]> git.donarmstrong.com Git - lilypond.git/commitdiff
Merge commit 'origin/dev/jneeman' into systems-per-page
authorJoe Neeman <joeneeman@gmail.com>
Fri, 13 Mar 2009 20:44:35 +0000 (13:44 -0700)
committerJoe Neeman <joeneeman@gmail.com>
Fri, 13 Mar 2009 20:44:35 +0000 (13:44 -0700)
2660 files changed:
.gitignore
Documentation/GNUmakefile
Documentation/SConscript [deleted file]
Documentation/TRANSLATION [deleted file]
Documentation/bibliography/GNUmakefile
Documentation/bibliography/SConscript [deleted file]
Documentation/de/index.html.in
Documentation/de/translations.html.in
Documentation/de/user/GNUmakefile
Documentation/de/user/ancient.itely
Documentation/de/user/changing-defaults.itely
Documentation/de/user/cheatsheet.itely
Documentation/de/user/chords.itely
Documentation/de/user/converters.itely
Documentation/de/user/dedication.itely
Documentation/de/user/editorial.itely
Documentation/de/user/expressive.itely
Documentation/de/user/fretted-strings.itely
Documentation/de/user/fundamental.itely
Documentation/de/user/input.itely
Documentation/de/user/install.itely
Documentation/de/user/introduction.itely
Documentation/de/user/keyboards.itely
Documentation/de/user/lilypond-book.itely
Documentation/de/user/lilypond-learning.tely
Documentation/de/user/lilypond-program.tely
Documentation/de/user/lilypond.tely
Documentation/de/user/literature.itely
Documentation/de/user/macros.itexi
Documentation/de/user/notation-appendices.itely
Documentation/de/user/notation.itely
Documentation/de/user/percussion.itely
Documentation/de/user/pitches.itely
Documentation/de/user/preface.itely
Documentation/de/user/programming-interface.itely
Documentation/de/user/repeats.itely
Documentation/de/user/rhythms.itely
Documentation/de/user/running.itely
Documentation/de/user/scheme-tutorial.itely
Documentation/de/user/setup.itely
Documentation/de/user/simultaneous.itely
Documentation/de/user/spacing.itely
Documentation/de/user/specialist.itely
Documentation/de/user/staff.itely
Documentation/de/user/templates.itely
Documentation/de/user/text.itely
Documentation/de/user/tutorial.itely
Documentation/de/user/tweaks.itely
Documentation/de/user/unfretted-strings.itely
Documentation/de/user/vocal.itely
Documentation/de/user/wind.itely
Documentation/de/user/working.itely
Documentation/de/user/world.itely
Documentation/devel.html.in [deleted file]
Documentation/devel/GNUmakefile [new file with mode: 0644]
Documentation/devel/compiling.itexi [new file with mode: 0644]
Documentation/devel/contrib-guide.texi [new file with mode: 0644]
Documentation/devel/doc-translation-list.itexi [new file with mode: 0644]
Documentation/devel/doc-work.itexi [new file with mode: 0644]
Documentation/devel/git-starting.itexi [new file with mode: 0644]
Documentation/devel/index.html.in [new file with mode: 0644]
Documentation/devel/issues.itexi [new file with mode: 0644]
Documentation/devel/lsr-work.itexi [new file with mode: 0644]
Documentation/devel/programming-work.itexi [new file with mode: 0644]
Documentation/devel/release-work.itexi [new file with mode: 0644]
Documentation/devel/website-work.itexi [new file with mode: 0644]
Documentation/es/GNUmakefile
Documentation/es/index.html.in
Documentation/es/topdocs/GNUmakefile [new file with mode: 0644]
Documentation/es/topdocs/NEWS.tely [new file with mode: 0644]
Documentation/es/translations.html.in
Documentation/es/user/GNUmakefile
Documentation/es/user/ancient.itely
Documentation/es/user/changing-defaults.itely
Documentation/es/user/cheatsheet.itely
Documentation/es/user/chords.itely
Documentation/es/user/converters.itely
Documentation/es/user/dedication.itely
Documentation/es/user/editorial.itely
Documentation/es/user/expressive.itely
Documentation/es/user/fretted-strings.itely
Documentation/es/user/fundamental.itely
Documentation/es/user/input.itely
Documentation/es/user/install.itely
Documentation/es/user/introduction.itely
Documentation/es/user/keyboards.itely
Documentation/es/user/lilypond-book.itely
Documentation/es/user/lilypond-learning.tely
Documentation/es/user/lilypond-program.tely
Documentation/es/user/lilypond.tely
Documentation/es/user/literature.itely
Documentation/es/user/macros.itexi
Documentation/es/user/notation-appendices.itely
Documentation/es/user/notation.itely
Documentation/es/user/percussion.itely
Documentation/es/user/pitches.itely
Documentation/es/user/preface.itely
Documentation/es/user/programming-interface.itely
Documentation/es/user/repeats.itely
Documentation/es/user/rhythms.itely
Documentation/es/user/running.itely
Documentation/es/user/scheme-tutorial.itely
Documentation/es/user/setup.itely
Documentation/es/user/simultaneous.itely
Documentation/es/user/spacing.itely
Documentation/es/user/specialist.itely
Documentation/es/user/staff.itely
Documentation/es/user/templates.itely
Documentation/es/user/text.itely
Documentation/es/user/tutorial.itely
Documentation/es/user/tweaks.itely
Documentation/es/user/unfretted-strings.itely
Documentation/es/user/vocal.itely
Documentation/es/user/wind.itely
Documentation/es/user/working.itely
Documentation/es/user/world.itely
Documentation/fr/index.html.in
Documentation/fr/translations.html.in
Documentation/fr/translations.template.html.in
Documentation/fr/user/ancient.itely
Documentation/fr/user/changing-defaults.itely
Documentation/fr/user/cheatsheet.itely
Documentation/fr/user/chords.itely
Documentation/fr/user/converters.itely
Documentation/fr/user/dedication.itely
Documentation/fr/user/editorial.itely
Documentation/fr/user/expressive.itely
Documentation/fr/user/fretted-strings.itely
Documentation/fr/user/fundamental.itely
Documentation/fr/user/input.itely
Documentation/fr/user/install.itely
Documentation/fr/user/introduction.itely
Documentation/fr/user/keyboards.itely
Documentation/fr/user/lilypond-learning.tely
Documentation/fr/user/lilypond-program.tely
Documentation/fr/user/lilypond.tely
Documentation/fr/user/macros.itexi
Documentation/fr/user/notation-appendices.itely
Documentation/fr/user/notation.itely
Documentation/fr/user/percussion.itely
Documentation/fr/user/pitches.itely
Documentation/fr/user/preface.itely
Documentation/fr/user/programming-interface.itely
Documentation/fr/user/repeats.itely
Documentation/fr/user/rhythms.itely
Documentation/fr/user/setup.itely
Documentation/fr/user/simultaneous.itely
Documentation/fr/user/spacing.itely
Documentation/fr/user/specialist.itely
Documentation/fr/user/staff.itely
Documentation/fr/user/text.itely
Documentation/fr/user/tutorial.itely
Documentation/fr/user/tweaks.itely
Documentation/fr/user/unfretted-strings.itely
Documentation/fr/user/vocal.itely
Documentation/fr/user/wind.itely
Documentation/fr/user/working.itely
Documentation/index.html.in
Documentation/ja/GNUmakefile [new file with mode: 0644]
Documentation/ja/index.html.in [new file with mode: 0644]
Documentation/ja/translations.html.in [new file with mode: 0644]
Documentation/ja/translations.template.html.in [new file with mode: 0644]
Documentation/ja/user/GNUmakefile [new file with mode: 0644]
Documentation/ja/user/converters.itely [new file with mode: 0644]
Documentation/ja/user/dedication.itely [new file with mode: 0644]
Documentation/ja/user/fundamental.itely [new file with mode: 0644]
Documentation/ja/user/install.itely [new file with mode: 0644]
Documentation/ja/user/introduction.itely [new file with mode: 0644]
Documentation/ja/user/lilypond-book.itely [new file with mode: 0644]
Documentation/ja/user/lilypond-learning.tely [new file with mode: 0644]
Documentation/ja/user/lilypond-program.tely [new file with mode: 0644]
Documentation/ja/user/macros.itexi [new file with mode: 0644]
Documentation/ja/user/preface.itely [new file with mode: 0644]
Documentation/ja/user/running.itely [new file with mode: 0644]
Documentation/ja/user/scheme-tutorial.itely [new file with mode: 0644]
Documentation/ja/user/setup.itely [new file with mode: 0644]
Documentation/ja/user/templates.itely [new file with mode: 0644]
Documentation/ja/user/tutorial.itely [new file with mode: 0644]
Documentation/ja/user/tweaks.itely [new file with mode: 0644]
Documentation/ja/user/working.itely [new file with mode: 0644]
Documentation/lilypond-blue.css
Documentation/lilypond-ie-fixes.css
Documentation/lilypond-mccarty.css
Documentation/lilypond.css
Documentation/pictures/GNUmakefile
Documentation/po/GNUmakefile
Documentation/po/de.po
Documentation/po/es.po
Documentation/po/fr.po
Documentation/po/ja.po [new file with mode: 0644]
Documentation/po/lilypond-doc.pot
Documentation/topdocs/AUTHORS.texi
Documentation/topdocs/GNUmakefile
Documentation/topdocs/NEWS.tely
Documentation/topdocs/README.texi
Documentation/topdocs/SConscript [deleted file]
Documentation/translations.html.in
Documentation/user/GNUmakefile
Documentation/user/README.txt
Documentation/user/SConscript [deleted file]
Documentation/user/ancient.itely
Documentation/user/changing-defaults.itely
Documentation/user/cheatsheet.itely
Documentation/user/chords.itely
Documentation/user/converters.itely
Documentation/user/dedication.itely
Documentation/user/editorial.itely
Documentation/user/expressive.itely
Documentation/user/fretted-strings.itely
Documentation/user/fundamental.itely
Documentation/user/input.itely
Documentation/user/install.itely
Documentation/user/introduction.itely
Documentation/user/keyboards.itely
Documentation/user/lilypond-book.itely
Documentation/user/lilypond-learning.tely
Documentation/user/lilypond-program.tely
Documentation/user/lilypond.tely
Documentation/user/literature.itely
Documentation/user/macros.itexi
Documentation/user/music-glossary.tely
Documentation/user/notation-appendices.itely
Documentation/user/notation.itely
Documentation/user/percussion.itely
Documentation/user/pitches.itely
Documentation/user/policy.txt
Documentation/user/preface.itely
Documentation/user/programming-interface.itely
Documentation/user/repeats.itely
Documentation/user/rhythms.itely
Documentation/user/running.itely
Documentation/user/scheme-tutorial.itely
Documentation/user/setup.itely
Documentation/user/simultaneous.itely
Documentation/user/spacing.itely
Documentation/user/specialist.itely
Documentation/user/staff.itely
Documentation/user/templates.itely
Documentation/user/text.itely
Documentation/user/tutorial.itely
Documentation/user/tweaks.itely
Documentation/user/unfretted-strings.itely
Documentation/user/vocal.itely
Documentation/user/wind.itely
Documentation/user/working.itely
Documentation/user/world.itely
GNUmakefile.in
ROADMAP
SConstruct [deleted file]
THANKS
VERSION
buildscripts/GNUmakefile [deleted file]
buildscripts/SConscript [deleted file]
buildscripts/bib2html.py [deleted file]
buildscripts/build-coverage.sh [deleted file]
buildscripts/build-profile.sh [deleted file]
buildscripts/builder.py [deleted file]
buildscripts/buildlib.py [deleted file]
buildscripts/catmidi.py [deleted file]
buildscripts/check_texi_refs.py [deleted file]
buildscripts/check_translation.py [deleted file]
buildscripts/coverage.py [deleted file]
buildscripts/extract_texi_filenames.py [deleted file]
buildscripts/find-superfluous-includes.py [deleted file]
buildscripts/fixcc.py [deleted file]
buildscripts/gen-emmentaler-scripts.py [deleted file]
buildscripts/genicon.py [deleted file]
buildscripts/git-update-changelog.py [deleted file]
buildscripts/grand-replace.sh [deleted file]
buildscripts/help2man.pl [deleted file]
buildscripts/html-gettext.py [deleted file]
buildscripts/install-info-html.sh [deleted file]
buildscripts/lilypond-words.py [deleted file]
buildscripts/lys-to-tely.py [deleted file]
buildscripts/makelsr.py [deleted file]
buildscripts/manuals_definitions.py [deleted file]
buildscripts/mass-link.py [deleted file]
buildscripts/mf-to-table.py [deleted file]
buildscripts/mf2pt1.pl [deleted file]
buildscripts/mirrortree.py [deleted file]
buildscripts/musicxml_generate_intervals.py [deleted file]
buildscripts/musicxml_generate_keys.py [deleted file]
buildscripts/musicxml_generate_timesignatures.py [deleted file]
buildscripts/mutopia-index.py [deleted file]
buildscripts/output-distance.py [deleted file]
buildscripts/pfx2ttf.fontforge [deleted file]
buildscripts/postprocess_html.py [deleted file]
buildscripts/readlink.py [deleted file]
buildscripts/tely-gettext.py [deleted file]
buildscripts/texi-gettext.py [deleted file]
buildscripts/texi-langutils.py [deleted file]
buildscripts/texi-skeleton-update.py [deleted file]
buildscripts/texi2omf.py [deleted file]
buildscripts/translations-status.py [deleted file]
buildscripts/update-snippets.py [deleted file]
buildscripts/www_post.py [deleted file]
config.make.in
configure.in
elisp/GNUmakefile
elisp/SConscript [deleted file]
elisp/lilypond-indent.el
elisp/lilypond-mode.el
flower/SConscript [deleted file]
flower/cpu-timer.cc
flower/file-cookie.cc
flower/file-name.cc
flower/file-path.cc
flower/getopt-long.cc
flower/include/arithmetic-operator.hh
flower/include/axis.hh
flower/include/compare.hh
flower/include/cpu-timer.hh
flower/include/direction.hh
flower/include/drul-array.hh
flower/include/file-name.hh
flower/include/file-path.hh
flower/include/flower-proto.hh
flower/include/guile-compatibility.hh
flower/include/international.hh
flower/include/interval.hh
flower/include/interval.tcc
flower/include/libc-extension.hh
flower/include/matrix.hh
flower/include/memory-stream.hh
flower/include/offset.hh
flower/include/parray.hh
flower/include/polynomial.hh
flower/include/pqueue.hh
flower/include/rational.hh
flower/include/real.hh
flower/include/std-string.hh
flower/include/std-vector.hh
flower/include/tuple.hh
flower/include/virtual-methods.hh
flower/include/warn.hh
flower/international.cc
flower/interval.cc
flower/libc-extension.cc
flower/memory-stream.cc
flower/offset.cc
flower/polynomial.cc
flower/rational.cc
flower/std-string.cc
flower/warn.cc
input/SConscript [deleted file]
input/bach-schenker.ly
input/cary-layout.ly
input/cary.ly
input/example-1.ly
input/example-2.ly
input/example-3.ly
input/les-nereides.ly
input/lsr/GNUmakefile
input/lsr/README
input/lsr/SConscript [deleted file]
input/lsr/accordion-discant-symbols.ly
input/lsr/adding-a-figured-bass-above-or-below-the-notes.ly
input/lsr/adding-ambitus-per-voice.ly
input/lsr/adding-an-extra-staff-at-a-line-break.ly
input/lsr/adding-an-extra-staff.ly
input/lsr/adding-bar-lines-to-chordnames-context.ly
input/lsr/adding-beams,-slurs,-ties-etc.-when-using-tuplet-and-non-tuplet-rythms..ly
input/lsr/adding-drum-parts.ly
input/lsr/adding-fingerings-to-a-score.ly
input/lsr/adding-fingerings-to-tablatures.ly
input/lsr/adding-parentheses-around-an-expressive-mark-or-chordal-note.ly
input/lsr/adding-the-current-date-to-a-score.ly
input/lsr/adding-volta-brackets-to-additional-staves.ly
input/lsr/additional-voices-to-avoid-collisions.ly
input/lsr/adjusting-lyrics-vertical-spacing.ly
input/lsr/adjusting-the-shape-of-falls-and-doits.ly
input/lsr/aligning-and-centering-instrument-names.ly
input/lsr/aligning-marks-with-various-notation-objects.ly
input/lsr/aligning-objects-created-with-the--mark-command.ly [new file with mode: 0644]
input/lsr/allowing-fingerings-to-be-printed-inside-the-staff.ly
input/lsr/ambitus-with-multiple-voices.ly
input/lsr/ambitus.ly
input/lsr/analysis-brackets-above-the-staff.ly
input/lsr/ancient-fonts.ly
input/lsr/ancient-notation-template----modern-transcription-of-gregorian-music.ly
input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly
input/lsr/ancient-notation.snippet-list
input/lsr/ancient-time-signatures.ly
input/lsr/applying-note-head-styles-depending-on-the-step-of-the-scale.ly
input/lsr/arabic-improvisation.ly
input/lsr/automatic-beam-subdivisions.ly
input/lsr/automatic-beams-two-per-two-in-4-4-or-2-2-time-signature.ly
input/lsr/avoiding-collisions-with-chord-fingerings.ly [new file with mode: 0644]
input/lsr/beam-endings-in-score-context.ly [new file with mode: 0644]
input/lsr/beam-grouping-in-7-8-time.ly
input/lsr/beams-across-line-breaks.ly
input/lsr/blanking-staff-lines-using-the--whiteout-command.ly
input/lsr/book-parts.ly [new file with mode: 0644]
input/lsr/breaks.snippet-list
input/lsr/breathing-signs.ly
input/lsr/broken-crescendo-hairpin.ly
input/lsr/caesura-railtracks-with-fermata.ly
input/lsr/center-text-below-hairpin-dynamics.ly
input/lsr/changing--flageolet-mark-size.ly
input/lsr/changing-a-single-notes-size-in-a-chord.ly
input/lsr/changing-beam-knee-gap.ly
input/lsr/changing-chord-separator.ly
input/lsr/changing-form-of-multi--measure-rests.ly
input/lsr/changing-midi-output-to-one-channel-per-voice.ly
input/lsr/changing-partcombine-texts.ly
input/lsr/changing-properties-for-individual-grobs.ly
input/lsr/changing-stanza-fonts.ly
input/lsr/changing-text-and-spanner-styles-for-text-dynamics.ly
input/lsr/changing-the-appearance-of-a-slur-from-solid-to-dotted-or-dashed.ly
input/lsr/changing-the-breath-mark-symbol.ly
input/lsr/changing-the-chord-names-to-german-or-semi-german-notation.ly
input/lsr/changing-the-default-text-font-family.ly
input/lsr/changing-the-number-of-lines-in-a-staff.ly
input/lsr/changing-the-positions-of-figured-bass-alterations.ly
input/lsr/changing-the-staff-size.ly
input/lsr/changing-the-tempo-without-a-metronome-mark.ly
input/lsr/changing-the-time-signature-without-affecting-the-beaming.ly
input/lsr/changing-the-tuplet-number.ly
input/lsr/changing-time-signatures-inside-a-polymetric-section-using-scaledurations.ly
input/lsr/chant-or-psalms-notation.ly
input/lsr/chord-name-exceptions.ly
input/lsr/chord-name-major7.ly [new file with mode: 0644]
input/lsr/chords.snippet-list
input/lsr/clip-systems.ly
input/lsr/clusters.ly
input/lsr/coloring-notes-depending-on-their-pitch.ly
input/lsr/combining-dynamics-with-markup-texts.ly
input/lsr/combining-two-parts-on-the-same-staff.ly
input/lsr/compound-time-signatures.ly
input/lsr/conducting-signs,-measure-grouping-signs.ly
input/lsr/contemporary-glissando.ly
input/lsr/contexts-and-engravers.snippet-list
input/lsr/controlling-the-placement-of-chord-fingerings.ly
input/lsr/controlling-the-vertical-ordering-of-scripts.ly
input/lsr/controlling-tuplet-bracket-visibility.ly
input/lsr/creating-a-delayed-turn.ly [new file with mode: 0644]
input/lsr/creating-a-sequence-of-notes-on-various-pitches.ly
input/lsr/creating-arpeggios-across-notes-in-different-voices.ly
input/lsr/creating-blank-staves.ly
input/lsr/creating-cross-staff-arpeggios-in-a-piano-staff.ly
input/lsr/creating-cross-staff-arpeggios-in-other-contexts.ly
input/lsr/creating-metronome-marks-in-markup-mode.ly
input/lsr/creating-real-parenthesized-dynamics.ly
input/lsr/creating-simultaneous-rehearsal-marks.ly
input/lsr/creating-slurs-across-voices.ly
input/lsr/creating-text-spanners.ly
input/lsr/custodes.ly
input/lsr/customizing-fretboard-fret-diagrams.ly
input/lsr/customizing-markup-fret-diagrams.ly
input/lsr/default-direction-of-stems-on-the-center-line-of-the-staff.ly
input/lsr/defining-predefined-fretboards-for-other-instruments.ly
input/lsr/demo-midiinstruments.ly
input/lsr/demonstrating-all-headers.ly
input/lsr/display-bracket-with-only-one-staff-in-a-system.ly
input/lsr/displaying-complex-chords.ly
input/lsr/dodecaphonic-style-accidentals-for-each-note-including-naturals.ly
input/lsr/dotted-harmonics.ly
input/lsr/double-glissando.ly
input/lsr/drawing-boxes-around-grobs.ly
input/lsr/drawing-circles-around-various-objects.ly
input/lsr/editorial-annotations.snippet-list
input/lsr/embedding-native-postscript-in-a--markup-block.ly
input/lsr/engravers-one-by-one.ly
input/lsr/engraving-ties-manually.ly
input/lsr/entering-several-tuplets-using-only-one--times-command.ly
input/lsr/expressive-marks.snippet-list
input/lsr/faking-a-hammer-in-tablatures.ly
input/lsr/fine-tuning-pedal-brackets.ly
input/lsr/fingerings,-string-indications,-and-right-hand-fingerings.ly
input/lsr/flamenco-notation.ly
input/lsr/flat-flags-and-beam-nibs.ly
input/lsr/flute-slap-notation.ly
input/lsr/forcing-horizontal-shift-of-notes.ly
input/lsr/forcing-rehearsal-marks-to-start-from-a-given-letter-or-number.ly
input/lsr/formatting-lyrics-syllables.ly
input/lsr/fret-diagrams-explained-and-developed.ly
input/lsr/fretboard-chordchanges.ly [new file with mode: 0644]
input/lsr/fretted-strings.snippet-list
input/lsr/generating-random-notes.ly
input/lsr/grid-lines--changing-their-appearance.ly
input/lsr/grid-lines--emphasizing-rhythms-and-notes-synchronization.ly
input/lsr/grouping-beats.ly
input/lsr/guitar-strum-rhythms.ly
input/lsr/heavily-customized-polymetric-time-signatures.ly
input/lsr/hiding-the-extender-line-for-text-dynamics.ly
input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly
input/lsr/how-to-change-fret-diagram-position.ly
input/lsr/how-to-put-ties-between-syllables-in-lyrics.ly
input/lsr/incipit.ly
input/lsr/indicating-cross-staff-chords-with-arpeggio-bracket.ly
input/lsr/inserting-a-caesura.ly
input/lsr/inserting-score-fragments-above-a-staff,-as-markups.ly
input/lsr/isolated-percent-repeats.ly
input/lsr/jazz-combo-template.ly
input/lsr/keyboards.snippet-list
input/lsr/laissez-vibrer-ties.ly
input/lsr/letter-tablature-formatting.ly
input/lsr/lilypond-snippets.tely
input/lsr/line-arrows.ly
input/lsr/lyrics-alignment.ly
input/lsr/makam-example.ly
input/lsr/making-an-object-invisible-with-the-transparent-property.ly
input/lsr/making-some-staff-lines-thicker-than-the-others.ly
input/lsr/manually-break-figured-bass-extenders-for-only-some-numbers.ly
input/lsr/manually-controlling-beam-positions.ly
input/lsr/marking-notes-of-spoken-parts-with-a-cross-on-the-stem.ly
input/lsr/markup-lines.ly
input/lsr/measure-counter.ly
input/lsr/mensurstriche-layout-bar-lines-between-the-staves.ly
input/lsr/merging-multi-measure-rests-in-a-polyphonic-part.ly
input/lsr/modern-tab-text-clef.ly
input/lsr/modifying-default-values-for-articulation-shorthand-notation.ly
input/lsr/modifying-tuplet-bracket-length.ly
input/lsr/multi--measure-rest-markup.ly
input/lsr/nesting-staves.ly
input/lsr/non-default-tuplet-numbers.ly [new file with mode: 0644]
input/lsr/non-traditional-key-signatures.ly
input/lsr/orchestra-choir-and-piano-template.ly [new file with mode: 0644]
input/lsr/ottava-text.ly
input/lsr/outputting-the-version-number.ly
input/lsr/page-label.ly
input/lsr/paper-and-layout.snippet-list
input/lsr/percent-repeat-count-visibility.ly [new file with mode: 0644]
input/lsr/percent-repeat-counter.ly
input/lsr/percussion-beaters.ly
input/lsr/percussion.snippet-list
input/lsr/permitting-line-breaks-within-beamed-tuplets.ly
input/lsr/piano-template-simple.ly
input/lsr/piano-template-with-centered-dynamics.ly
input/lsr/piano-template-with-centered-lyrics.ly
input/lsr/piano-template-with-melody-and-lyrics.ly
input/lsr/pitches.snippet-list
input/lsr/placement-of-right-hand-fingerings.ly
input/lsr/polyphony-in-tablature.ly
input/lsr/positioning-multi--measure-rests.ly
input/lsr/positioning-segno-and-coda-with-line-break.ly
input/lsr/positioning-text-markups-inside-slurs.ly [new file with mode: 0644]
input/lsr/preventing-extra-naturals-from-being-automatically-added.ly
input/lsr/preventing-natural-signs-from-being-printed-when-the-key-signature-changes.ly
input/lsr/printing-a-repeat-sign-at-the-beginning-of-a-piece.ly
input/lsr/printing-hairpins-using-al-niente-notation.ly
input/lsr/printing-marks-at-the-end-of-a-line-or-a-score.ly
input/lsr/printing-marks-on-every-staff.ly
input/lsr/printing-metronome-and-rehearsal-marks-below-the-staff.ly
input/lsr/printing-music-with-different-time-signatures.ly
input/lsr/printing-text-from-right-to-left.ly [new file with mode: 0644]
input/lsr/printing-the-bar-number-for-the-first-measure.ly [new file with mode: 0644]
input/lsr/proportional-strict-notespacing.ly
input/lsr/quoting-another-voice-with-transposition.ly
input/lsr/quoting-another-voice.ly
input/lsr/removing-the-first-empty-line.ly
input/lsr/repeats.snippet-list
input/lsr/rest-styles.ly
input/lsr/reverting-default-beam-endings.ly
input/lsr/rhythmic-slashes.ly
input/lsr/rhythms.snippet-list
input/lsr/score-for-diatonic-accordion.ly
input/lsr/separating-key-cancellations-from-key-signature-changes.ly [new file with mode: 0644]
input/lsr/setting-hairpin-behavior-at-bar-lines.ly
input/lsr/setting-the-minimum-length-of-hairpins.ly
input/lsr/shortening-volta-brackets.ly
input/lsr/showing-chords-at-changes.ly
input/lsr/simple-lead-sheet.ly
input/lsr/simultaneous-notes.snippet-list
input/lsr/single-staff-template-with-notes,-lyrics,-and-chords.ly
input/lsr/single-staff-template-with-notes,-lyrics,-chords-and-frets.ly
input/lsr/single-staff-template-with-notes-and-chords.ly
input/lsr/single-staff-template-with-notes-and-lyrics.ly
input/lsr/single-staff-template-with-only-notes.ly
input/lsr/skips-in-lyric-mode-2.ly
input/lsr/skips-in-lyric-mode.ly
input/lsr/snap-pizzicato-markup-bartok-pizzicato.ly
input/lsr/spacing.snippet-list
input/lsr/specifying-context-with-beatgrouping.ly
input/lsr/staff-notation.snippet-list
input/lsr/stand-alone-two-column-markup.ly [new file with mode: 0644]
input/lsr/stem-and-beam-behavior-in-tablature.ly
input/lsr/stemlets.ly
input/lsr/string-quartet-template-simple.ly
input/lsr/string-quartet-template-with-separate-parts.ly
input/lsr/sub-dividing-beams.ly
input/lsr/suppressing-warnings-for-clashing-note-columns.ly
input/lsr/table-of-contents.ly
input/lsr/template.snippet-list
input/lsr/text.snippet-list
input/lsr/three-sided-box.ly
input/lsr/tick-bar-lines.ly
input/lsr/time-signature-in-parentheses.ly
input/lsr/titles.snippet-list
input/lsr/transcription-of-ancient-music-with-incipit.ly
input/lsr/transposing-pitches-with-minimum-accidentals-smart-transpose.ly
input/lsr/tweaking-clef-properties.ly
input/lsr/tweaks-and-overrides.snippet-list
input/lsr/unfretted-strings.snippet-list
input/lsr/use-square-bracket-at-the-start-of-a-staff-group.ly
input/lsr/using-beatlength-and-beatgrouping.ly
input/lsr/using-double-slurs-for-legato-chords.ly
input/lsr/using-postscript-to-generate-special-note-head-shapes.ly
input/lsr/using-the--tweak-command-to-tweak-individual-grobs.ly
input/lsr/using-ties-with-arpeggios.ly
input/lsr/utf-8.ly
input/lsr/vertically-aligned-dynamics-and-textscripts.ly
input/lsr/vertically-aligning-dynamics-across-multiple-notes.ly
input/lsr/vertically-aligning-ossias-and-lyrics.ly
input/lsr/vertically-centered-common-lyrics.ly
input/lsr/vocal-ensemble-template-with-automatic-piano-reduction.ly
input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly
input/lsr/vocal-ensemble-template.ly
input/lsr/vocal-music.snippet-list
input/lsr/volta-below-chords.ly
input/lsr/volta-multi-staff.ly
input/lsr/volta-text-markup-using-repeatcommands.ly
input/lsr/world-music.snippet-list
input/manual/SConscript [deleted file]
input/manual/ancient-headword.ly
input/manual/chord-names-jazz.ly
input/manual/chord-names-languages.ly
input/manual/chords-headword.ly
input/manual/display-predefined-fretboards.ly
input/manual/divisiones.ly
input/manual/editorial-headword.ly
input/manual/expressive-headword.ly
input/manual/figured-bass-headword.ly
input/manual/font-table.ly
input/manual/fretted-headword.ly
input/manual/keyboard-headword.ly
input/manual/note-head-style.ly
input/manual/percussion-chart.ly
input/manual/pitches-headword.ly
input/manual/repeats-headword.ly
input/manual/rhythms-headword.ly
input/manual/screech-boink.ly
input/manual/script-chart.ly
input/manual/simultaneous-headword.ly
input/manual/staff-headword.ly
input/manual/text-headword.ly
input/manual/unfretted-headword.ly
input/manual/wind-headword.ly
input/mutopia-header.ly
input/mutopia/E.Satie/SConscript [deleted file]
input/mutopia/E.Satie/petite-ouverture-a-danser.ly
input/mutopia/F.Schubert/SConscript [deleted file]
input/mutopia/F.Schubert/morgenlied.ly
input/mutopia/F.Schubert/standchen.ly
input/mutopia/J.S.Bach/SConscript [deleted file]
input/mutopia/J.S.Bach/baerenreiter-sarabande.ly
input/mutopia/J.S.Bach/bwv940.ly
input/mutopia/J.S.Bach/wtk1-fugue2.ly
input/mutopia/R.Schumann/SConscript [deleted file]
input/mutopia/R.Schumann/romanze-op28-2.ly
input/mutopia/SConscript [deleted file]
input/mutopia/W.A.Mozart/SConscript [deleted file]
input/mutopia/W.A.Mozart/mozart-hrn-3.ly
input/mutopia/W.A.Mozart/mozart-hrn3-allegro.ily
input/new/SConscript [deleted file]
input/new/aligning-and-centering-instrument-names.ly
input/new/aligning-marks-with-various-notation-objects.ly
input/new/arabic-improvisation.ly
input/new/book-parts.ly [new file with mode: 0644]
input/new/broken-crescendo-hairpin.ly
input/new/center-text-below-hairpin-dynamics.ly [new file with mode: 0644]
input/new/changing-form-of-multi--measure-rests.ly
input/new/changing-properties-for-individual-grobs.ly [new file with mode: 0644]
input/new/changing-text-and-spanner-styles-for-text-dynamics.ly
input/new/changing-the-tempo-without-a-metronome-mark.ly
input/new/changing-time-signatures-inside-a-polymetric-section-using-scaledurations.ly
input/new/clip-systems.ly
input/new/coloring-notes-depending-on-their-pitch.ly
input/new/compound-time-signatures.ly [new file with mode: 0644]
input/new/creating-a-delayed-turn.ly [new file with mode: 0644]
input/new/creating-metronome-marks-in-markup-mode.ly
input/new/creating-simultaneous-rehearsal-marks.ly
input/new/creating-text-spanners.ly
input/new/customizing-fretboard-fret-diagrams.ly
input/new/customizing-markup-fret-diagrams.ly
input/new/defining-predefined-fretboards-for-other-instruments.ly
input/new/display-bracket-with-only-one-staff-in-a-system.ly
input/new/dodecaphonic-style-accidentals-for-each-note-including-naturals.ly
input/new/dotted-harmonics.ly
input/new/drawing-boxes-around-grobs.ly
input/new/drawing-circles-around-various-objects.ly
input/new/fine-tuning-pedal-brackets.ly
input/new/flute-slap-notation.ly [new file with mode: 0644]
input/new/fret-diagrams-explained-and-developed.ly
input/new/fretboard-chordchanges.ly [new file with mode: 0644]
input/new/guitar-strum-rhythms.ly
input/new/heavily-customized-polymetric-time-signatures.ly [new file with mode: 0644]
input/new/incipit.ly
input/new/inserting-a-caesura.ly
input/new/letter-tablature-formatting.ly
input/new/line-arrows.ly
input/new/makam-example.ly
input/new/making-an-object-invisible-with-the-transparent-property.ly
input/new/marking-notes-of-spoken-parts-with-a-cross-on-the-stem.ly
input/new/markup-lines.ly
input/new/modern-tab-text-clef.ly
input/new/multi--measure-rest-markup.ly
input/new/non-default-tuplet-numbers.ly [new file with mode: 0644]
input/new/non-traditional-key-signatures.ly [new file with mode: 0644]
input/new/orchestra-choir-and-piano-template.ly [new file with mode: 0644]
input/new/ottava-text.ly [new file with mode: 0644]
input/new/outputting-the-version-number.ly
input/new/page-label.ly
input/new/percent-repeat-count-visibility.ly [new file with mode: 0644]
input/new/piano-template-with-centered-dynamics.ly
input/new/positioning-multi--measure-rests.ly
input/new/printing-the-bar-number-for-the-first-measure.ly [new file with mode: 0644]
input/new/quoting-another-voice-with-transposition.ly
input/new/quoting-another-voice.ly
input/new/revised/non-traditional-key-signatures.ly
input/new/setting-hairpin-behavior-at-bar-lines.ly
input/new/specifying-context-with-beatgrouping.ly
input/new/suppressing-warnings-for-clashing-note-columns.ly
input/new/table-of-contents.ly
input/new/tick-bar-lines.ly [new file with mode: 0644]
input/new/transposing-pitches-with-minimum-accidentals-smart-transpose.ly
input/new/using-beatlength-and-beatgrouping.ly
input/new/using-the--tweak-command-to-tweak-individual-grobs.ly
input/new/utf-8.ly
input/new/volta-below-chords.ly
input/new/volta-multi-staff.ly
input/new/volta-text-markup-using-repeatcommands.ly
input/proportional.ly
input/puer-fragment.ly
input/regression/AAA-intro-regression.ly [deleted file]
input/regression/AAA-intro-regression.tely [new file with mode: 0644]
input/regression/SConscript [deleted file]
input/regression/accidental-ancient.ly
input/regression/accidental-broken-tie-spacing.ly
input/regression/accidental-cautionary.ly
input/regression/accidental-clef-change.ly
input/regression/accidental-collision.ly
input/regression/accidental-contemporary.ly
input/regression/accidental-double.ly
input/regression/accidental-forced-tie-barline.ly
input/regression/accidental-forced-tie.ly
input/regression/accidental-ledger.ly
input/regression/accidental-octave.ly
input/regression/accidental-piano.ly
input/regression/accidental-placement.ly
input/regression/accidental-quarter.ly
input/regression/accidental-single-double.ly
input/regression/accidental-suggestions.ly
input/regression/accidental-tie.ly
input/regression/accidental-unbroken-tie-spacing.ly
input/regression/accidental-voice.ly
input/regression/accidental.ly
input/regression/alignment-order.ly
input/regression/alignment-vertical-manual-setting.ly
input/regression/alignment-vertical-spacing.ly
input/regression/ambitus-percussion-staves.ly [new file with mode: 0644]
input/regression/ambitus-pitch-ordering.ly
input/regression/ambitus.ly
input/regression/apply-context.ly
input/regression/apply-output.ly
input/regression/arpeggio-bracket.ly
input/regression/arpeggio-collision.ly
input/regression/arpeggio-no-overshoot.ly
input/regression/arpeggio-parenthesis.ly
input/regression/arpeggio-span-one-staff.ly
input/regression/arpeggio.ly
input/regression/articulation-snappizzicato.ly [new file with mode: 0644]
input/regression/augmentum.ly
input/regression/auto-beam-bar.ly
input/regression/auto-beam-beaming-override.ly
input/regression/auto-beam-beat-grouping.ly
input/regression/auto-beam-no-beam.ly
input/regression/auto-beam-triplet.ly
input/regression/auto-beam-tuplets.ly
input/regression/auto-beam.ly
input/regression/auto-change.ly
input/regression/backend-excercise.ly
input/regression/backend-svg.ly
input/regression/balloon.ly
input/regression/bar-check-redefine.ly
input/regression/bar-line-dashed.ly
input/regression/bar-line-dotted.ly
input/regression/bar-line-thick.ly [new file with mode: 0644]
input/regression/bar-line-tick.ly [new file with mode: 0644]
input/regression/bar-number.ly
input/regression/bar-scripts.ly
input/regression/beam-auto-knee.ly
input/regression/beam-auto.ly
input/regression/beam-beamlet-break.ly
input/regression/beam-beamlet-grace.ly
input/regression/beam-beat-grouping.ly
input/regression/beam-break-no-bar.ly
input/regression/beam-break.ly
input/regression/beam-center-slope.ly
input/regression/beam-concave-chord.ly
input/regression/beam-concave-damped.ly
input/regression/beam-concave.ly
input/regression/beam-cross-staff-auto-knee.ly
input/regression/beam-cross-staff-script.ly
input/regression/beam-cross-staff-slope.ly
input/regression/beam-cross-staff.ly
input/regression/beam-damp.ly
input/regression/beam-default-lengths.ly
input/regression/beam-extreme.ly
input/regression/beam-feather-knee-stem-length.ly
input/regression/beam-feather.ly
input/regression/beam-flat-retain-direction.ly
input/regression/beam-french.ly
input/regression/beam-funky-beamlet.ly
input/regression/beam-funky.ly
input/regression/beam-isknee.ly
input/regression/beam-knee-symmetry.ly
input/regression/beam-length.ly
input/regression/beam-manual-beaming.ly
input/regression/beam-multiple-cross-staff.ly
input/regression/beam-multiplicity-over-rests.ly
input/regression/beam-outside-beamlets.ly
input/regression/beam-over-barline.ly
input/regression/beam-position.ly
input/regression/beam-quant-standard.ly
input/regression/beam-quanting-32nd.ly
input/regression/beam-quanting-horizontal.ly
input/regression/beam-quarter.ly
input/regression/beam-rest.ly
input/regression/beam-second.ly
input/regression/beam-shortened-lengths.ly
input/regression/beam-single-stem.ly
input/regression/beam-slope-stemlet.ly
input/regression/beam-unconnected-beamlets.ly
input/regression/beaming-ternary-metrum.ly
input/regression/beaming.ly
input/regression/beams.ly
input/regression/bend-after.ly
input/regression/bend-dot.ly
input/regression/bookparts.ly [new file with mode: 0644]
input/regression/break-alignment-anchor-alignment.ly
input/regression/break-alignment-anchors.ly
input/regression/break.ly
input/regression/breathing-sign-ancient.ly
input/regression/breathing-sign.ly
input/regression/chord-changes.ly
input/regression/chord-name-entry-11.ly
input/regression/chord-name-entry.ly
input/regression/chord-name-exceptions.ly
input/regression/chord-name-major7.ly
input/regression/chord-names-bass.ly
input/regression/chord-names-languages.ly
input/regression/chord-scripts.ly
input/regression/chord-tremolo-short.ly
input/regression/chord-tremolo-single.ly
input/regression/chord-tremolo-stem-direction.ly
input/regression/chord-tremolo-whole.ly
input/regression/chord-tremolo.ly
input/regression/chords-funky-ignatzek.ly
input/regression/chromatic-scales.ly
input/regression/clef-oct.ly
input/regression/clef-ottava.ly
input/regression/clef-warn.ly
input/regression/clefs.ly
input/regression/clip-systems.ly
input/regression/cluster-break.ly
input/regression/cluster-cross-staff.ly
input/regression/cluster-single-note.ly
input/regression/cluster-style.ly
input/regression/cluster.ly
input/regression/collision-2.ly
input/regression/collision-alignment.ly
input/regression/collision-dots-invert.ly
input/regression/collision-dots-move.ly
input/regression/collision-dots-up-space-dotted.ly
input/regression/collision-dots.ly
input/regression/collision-head-chords.ly
input/regression/collision-head-solfa-fa.ly
input/regression/collision-heads.ly
input/regression/collision-manual.ly
input/regression/collision-merge-differently-dotted.ly
input/regression/collision-merge-differently-headed.ly
input/regression/collision-merge-dots.ly
input/regression/collision-mesh.ly
input/regression/collision-seconds.ly
input/regression/collision-whole.ly
input/regression/collisions.ly
input/regression/color.ly
input/regression/completion-heads-lyrics.ly
input/regression/completion-heads-multiple-ties.ly
input/regression/completion-heads-polyphony.ly
input/regression/completion-heads-tie.ly
input/regression/completion-heads.ly
input/regression/context-die-staff.ly
input/regression/context-nested-staffgroup.ly [new file with mode: 0644]
input/regression/custos.ly
input/regression/display-lily-tests.ly
input/regression/dot-column-rest-collision.ly
input/regression/dot-flag-collision.ly
input/regression/dot-rest-beam-trigger.ly
input/regression/dot-up-voice-collision.ly
input/regression/dots.ly
input/regression/double-repeat-default-volta.ly
input/regression/double-repeat.ly
input/regression/drums.ly
input/regression/dynamics-broken-hairpin.ly
input/regression/dynamics-glyphs.ly
input/regression/dynamics-hairpin-length.ly
input/regression/dynamics-line.ly
input/regression/dynamics-text-spanner-abs-dynamic.ly
input/regression/dynamics-text-spanner-padding.ly
input/regression/dynamics-unbound-hairpin.ly
input/regression/easy-notation.ly
input/regression/fermata-rest-position.ly
input/regression/figured-bass-alteration.ly
input/regression/figured-bass-continuation-center.ly
input/regression/figured-bass-continuation-forbid.ly
input/regression/figured-bass-continuation-modifiers.ly [new file with mode: 0644]
input/regression/figured-bass-continuation.ly
input/regression/figured-bass-implicit.ly
input/regression/figured-bass-slashed-numbers.ly
input/regression/figured-bass-staff.ly
input/regression/figured-bass.ly
input/regression/fill-line-test.ly
input/regression/finger-chords-accidental.ly
input/regression/finger-chords-order.ly
input/regression/finger-chords.ly
input/regression/fingering-cross-staff.ly
input/regression/fingering.ly
input/regression/flags-default.ly
input/regression/flags-in-scheme.ly
input/regression/flags-straight-stockhausen-boulez.ly [new file with mode: 0644]
input/regression/flags-straight.ly [new file with mode: 0644]
input/regression/follow-voice-break.ly
input/regression/follow-voice-consecutive.ly
input/regression/font-bogus-ligature.ly
input/regression/font-family-override.ly
input/regression/font-kern.ly
input/regression/font-name.ly
input/regression/font-postscript.ly
input/regression/fret-board-alignment.ly [new file with mode: 0644]
input/regression/fret-boards.ly
input/regression/fret-diagrams-capo.ly [new file with mode: 0644]
input/regression/fret-diagrams-dots.ly [new file with mode: 0644]
input/regression/fret-diagrams-fingering.ly [new file with mode: 0644]
input/regression/fret-diagrams-fret-label.ly [new file with mode: 0644]
input/regression/fret-diagrams-landscape.ly [new file with mode: 0644]
input/regression/fret-diagrams-opposing-landscape.ly [new file with mode: 0644]
input/regression/fret-diagrams-string-frets.ly [new file with mode: 0644]
input/regression/fret-diagrams-string-thickness.ly [new file with mode: 0644]
input/regression/fret-diagrams-xo-label.ly [new file with mode: 0644]
input/regression/fret-diagrams.ly [deleted file]
input/regression/fretboard-chordchanges.ly [new file with mode: 0644]
input/regression/general-scheme-bindings.ly
input/regression/generic-output-property.ly
input/regression/glissando-broken.ly
input/regression/glissando-no-break.ly
input/regression/glissando.ly
input/regression/grace-auto-beam.ly
input/regression/grace-bar-line.ly
input/regression/grace-bar-number.ly
input/regression/grace-beam.ly
input/regression/grace-direction-polyphony.ly
input/regression/grace-end-2.ly
input/regression/grace-end.ly
input/regression/grace-nest1.ly
input/regression/grace-nest2.ly
input/regression/grace-nest3.ly
input/regression/grace-nest4.ly
input/regression/grace-nest5.ly
input/regression/grace-part-combine.ly
input/regression/grace-partial.ly
input/regression/grace-staff-length.ly
input/regression/grace-start.ly
input/regression/grace-stem-length.ly
input/regression/grace-stems.ly
input/regression/grace-sync.ly
input/regression/grace-types.ly
input/regression/grace-unfold-repeat.ly
input/regression/grace-volta-repeat-2.ly
input/regression/grace-volta-repeat.ly
input/regression/grace.ly
input/regression/graphviz.ly
input/regression/grid-lines.ly
input/regression/grob-tweak.ly
input/regression/hairpin-barline-break.ly
input/regression/hairpin-circled.ly
input/regression/hairpin-dashed.ly
input/regression/hairpin-ending.ly
input/regression/hairpin-to-barline-mark.ly
input/regression/hairpin-to-barline.ly
input/regression/hairpin-to-rest.ly
input/regression/hara-kiri-percent-repeat.ly
input/regression/hara-kiri-pianostaff.ly
input/regression/hara-kiri-stanza-number.ly
input/regression/harp-pedals-sanity-checks.ly
input/regression/harp-pedals-tweaking.ly
input/regression/harp-pedals.ly
input/regression/horizontal-bracket-break.ly
input/regression/horizontal-bracket.ly
input/regression/identifier-following-chordmode.ly
input/regression/identifiers.ly
input/regression/incipit.ly
input/regression/instrument-name-dynamic.ly
input/regression/instrument-name-hara-kiri.ly
input/regression/instrument-name-markup.ly
input/regression/instrument-name-partial.ly
input/regression/instrument-name-x-align.ly
input/regression/instrument-name.ly
input/regression/instrument-switch.ly
input/regression/key-clefs.ly
input/regression/key-signature-cancellation-extra-natural.ly
input/regression/key-signature-cancellation.ly
input/regression/key-signature-padding.ly
input/regression/key-signature-scordatura.ly
input/regression/keys.ly
input/regression/laissez-vibrer-tie-beam.ly
input/regression/laissez-vibrer-ties.ly
input/regression/landscape.ly
input/regression/ledger-line-minimum.ly
input/regression/ledger-line-shorten.ly
input/regression/ledger-lines-varying-staves.ly
input/regression/ligature-bracket.ly
input/regression/lily-in-scheme.ly
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-new.ly
input/regression/lyric-combine-polyphonic.ly
input/regression/lyric-combine-switch-voice-2.ly
input/regression/lyric-combine-switch-voice.ly
input/regression/lyric-combine.ly
input/regression/lyric-extender-broken.ly
input/regression/lyric-extender-no-heads.ly
input/regression/lyric-extender-rest.ly
input/regression/lyric-extender-right-margin.ly
input/regression/lyric-extender.ly
input/regression/lyric-hyphen-break.ly
input/regression/lyric-hyphen-retain.ly
input/regression/lyric-hyphen.ly
input/regression/lyric-melisma-manual.ly
input/regression/lyric-no-association-rhythm.ly
input/regression/lyric-phrasing.ly
input/regression/lyric-tie.ly
input/regression/lyrics-after-grace.ly
input/regression/lyrics-bar.ly
input/regression/lyrics-melisma-beam.ly
input/regression/lyrics-no-notes.ly
input/regression/lyrics-tenor-clef.ly
input/regression/markup-arrows.ly
input/regression/markup-bidi-pango.ly
input/regression/markup-column-align.ly
input/regression/markup-commands.ly
input/regression/markup-eps.ly
input/regression/markup-eyeglasses.ly [new file with mode: 0644]
input/regression/markup-line-thickness.ly
input/regression/markup-lines.ly
input/regression/markup-music-glyph.ly
input/regression/markup-note-dot.ly
input/regression/markup-note.ly
input/regression/markup-scheme.ly
input/regression/markup-score.ly
input/regression/markup-stack.ly
input/regression/markup-syntax.ly
input/regression/markup-user.ly
input/regression/markup-word-wrap.ly
input/regression/measure-grouping.ly
input/regression/mensural-ligatures.ly
input/regression/mensural.ly
input/regression/metronome-marking.ly
input/regression/metronome-parenthesized.ly
input/regression/metronome-text.ly
input/regression/midi-drums.ly
input/regression/midi-dynamics.ly
input/regression/midi-grace.ly
input/regression/midi-lyric-barcheck.ly
input/regression/midi-microtone-off.ly
input/regression/midi-microtone.ly
input/regression/midi-partial.ly
input/regression/midi-pedal.ly
input/regression/midi-scales.ly
input/regression/midi-transposition.ly
input/regression/midi-tuplets.ly
input/regression/midi-volume-equaliser.ly
input/regression/mm-rests2.ly
input/regression/multi-measure-rest-center.ly
input/regression/multi-measure-rest-center2.ly
input/regression/multi-measure-rest-grace.ly
input/regression/multi-measure-rest-instr-name.ly
input/regression/multi-measure-rest-multi-staff-center.ly
input/regression/multi-measure-rest-spacing.ly
input/regression/multi-measure-rest-text.ly
input/regression/multi-measure-rest-usebreve.ly
input/regression/multi-measure-rest.ly
input/regression/music-function-end-spanners.ly
input/regression/music-function.ly
input/regression/music-map.ly
input/regression/musicxml/00-Introduction.itexi [new file with mode: 0644]
input/regression/musicxml/00a-Basics-Pitches.xml [deleted file]
input/regression/musicxml/00b-Basics-Intervals.xml [deleted file]
input/regression/musicxml/00c-Basics-Durations.xml [deleted file]
input/regression/musicxml/00d-Basics-RestDurations.xml [deleted file]
input/regression/musicxml/00e-Basics-PitchedRests-PJB.xml [deleted file]
input/regression/musicxml/00f-Basics-Clefs.xml [deleted file]
input/regression/musicxml/00g-Basics-Keys.xml [deleted file]
input/regression/musicxml/00h-Basics-TimeSignatures.xml [deleted file]
input/regression/musicxml/00i-Basics-NoKeyOrClef.xml [deleted file]
input/regression/musicxml/00j-Basics-NoTime-PJB.xml [deleted file]
input/regression/musicxml/00k-Basics-Backup.xml [deleted file]
input/regression/musicxml/00l-Basics-MultiMeasureRests.xml [deleted file]
input/regression/musicxml/00l-Basics-Tie-PJB.xml [deleted file]
input/regression/musicxml/01-Pitches.itexi [new file with mode: 0644]
input/regression/musicxml/01a-Chord-Rosegarden.xml [deleted file]
input/regression/musicxml/01a-Pitches-Pitches.xml [new file with mode: 0644]
input/regression/musicxml/01b-Chords-Rosegarden.xml [deleted file]
input/regression/musicxml/01b-Pitches-Intervals.xml [new file with mode: 0644]
input/regression/musicxml/01c-Chords-Rosegarden.xml [deleted file]
input/regression/musicxml/01c-Pitches-NoVoiceElement.xml [new file with mode: 0644]
input/regression/musicxml/01d-Chords-SchubertStabatMater.xml [deleted file]
input/regression/musicxml/01d-Pitches-Microtones.xml [new file with mode: 0644]
input/regression/musicxml/01e-Chords-PickupMeasures.xml [deleted file]
input/regression/musicxml/02-Rests.itexi [new file with mode: 0644]
input/regression/musicxml/02a-Notations-MusicXML.xml [deleted file]
input/regression/musicxml/02a-Rests-Durations.xml [new file with mode: 0644]
input/regression/musicxml/02b-Articulations-Texts-PJB.xml [deleted file]
input/regression/musicxml/02b-Rests-PitchedRests.xml [new file with mode: 0644]
input/regression/musicxml/02c-MultipleNotationChildren-RFK.xml [deleted file]
input/regression/musicxml/02c-Rests-MultiMeasureRests.xml [new file with mode: 0644]
input/regression/musicxml/02d-Arpeggio.xml [deleted file]
input/regression/musicxml/02d-Rests-Multimeasure-TimeSignatures.xml [new file with mode: 0644]
input/regression/musicxml/02e-Rests-NoType.xml [new file with mode: 0644]
input/regression/musicxml/03-Rhythm.itexi [new file with mode: 0644]
input/regression/musicxml/03a-Directions-MusicXML.xml [deleted file]
input/regression/musicxml/03a-Rhythm-Durations.xml [new file with mode: 0644]
input/regression/musicxml/03b-AccordionRegistrations-MusicXML.xml [deleted file]
input/regression/musicxml/03b-Rhythm-Backup.xml [new file with mode: 0644]
input/regression/musicxml/03c-MetronomeMarks.xml [deleted file]
input/regression/musicxml/03c-Rhythm-DivisionChange.xml [new file with mode: 0644]
input/regression/musicxml/04a-Spanners-Finale.xml [deleted file]
input/regression/musicxml/04b-Glissando.xml [deleted file]
input/regression/musicxml/04c-Spanners-Noteedit.xml [deleted file]
input/regression/musicxml/04d-Spanners-JScore.xml [deleted file]
input/regression/musicxml/04e-OctaveShifts-Finale.xml [deleted file]
input/regression/musicxml/05a-HeaderQuotes-Finale.xml [deleted file]
input/regression/musicxml/06a-Lyrics-Finale.xml [deleted file]
input/regression/musicxml/06b-MultipleLyrics-Finale.xml [deleted file]
input/regression/musicxml/06c-Lyrics-Pianostaff-Finale.xml [deleted file]
input/regression/musicxml/06d-Lyrics-Melisma-Finale.xml [deleted file]
input/regression/musicxml/06e-Lyrics-Chords-Finale.xml [deleted file]
input/regression/musicxml/06f-Lyrics-GracedNotes-Finale.xml [deleted file]
input/regression/musicxml/06g-Lyrics-NameNumber.xml [deleted file]
input/regression/musicxml/06h-Lyrics-BeamsMelismata.xml [deleted file]
input/regression/musicxml/08a-Partorder-Rosegarden.xml [deleted file]
input/regression/musicxml/08b-StaffGroups-Finale.xml [deleted file]
input/regression/musicxml/08c-More-than-10-parts-Rosegarden.xml [deleted file]
input/regression/musicxml/08d-NestedPartsBrackets-Finale.xml [deleted file]
input/regression/musicxml/08e-LinebrokenInstrumentNames-Finale.xml [deleted file]
input/regression/musicxml/08f-PianoStaff-PJB.xml [deleted file]
input/regression/musicxml/08g-OverlappingPartGroups-Finale.xml [deleted file]
input/regression/musicxml/09a-SimpleRepeat-Finale.xml [deleted file]
input/regression/musicxml/09b-RepeatWithAlternatives-Finale.xml [deleted file]
input/regression/musicxml/09c-Barlines-Finale.xml [deleted file]
input/regression/musicxml/09d-RepeatMultipleTimes-Finale.xml [deleted file]
input/regression/musicxml/09e-Alternatives-Finale.xml [deleted file]
input/regression/musicxml/09f-Repeats-Finale.xml [deleted file]
input/regression/musicxml/09g-Endings-Finale.xml [deleted file]
input/regression/musicxml/09h-RepeatsNoEndBar-Finale.xml [deleted file]
input/regression/musicxml/09i-MidmeasureBarline.xml [deleted file]
input/regression/musicxml/09j-Midmeasure-Clef-Finale.xml [deleted file]
input/regression/musicxml/09k-Upbeats-ImplicitMeasures-Finale.xml [deleted file]
input/regression/musicxml/09l-PickupMeasure-SecondVoiceMessup.xml [deleted file]
input/regression/musicxml/10a-TwoVoicesOnStaff-Finale.xml [deleted file]
input/regression/musicxml/11-TimeSignatures.itexi [new file with mode: 0644]
input/regression/musicxml/11a-TimeSignatures.xml [new file with mode: 0644]
input/regression/musicxml/11b-TimeSignatures-NoTime.xml [new file with mode: 0644]
input/regression/musicxml/11c-TimeSignatures-CompoundSimple.xml [new file with mode: 0644]
input/regression/musicxml/11d-TimeSignatures-CompoundMultiple.xml [new file with mode: 0644]
input/regression/musicxml/11e-TimeSignatures-CompoundMixed.xml [new file with mode: 0644]
input/regression/musicxml/11f-TimeSignatures-SymbolMeaning.xml [new file with mode: 0644]
input/regression/musicxml/11g-TimeSignatures-SingleNumber.xml [new file with mode: 0644]
input/regression/musicxml/11h-TimeSignatures-SenzaMisura.xml [new file with mode: 0644]
input/regression/musicxml/12-Clefs.itexi [new file with mode: 0644]
input/regression/musicxml/12a-Clefs.xml [new file with mode: 0644]
input/regression/musicxml/12a-TripletsDuration-NoBracket-PJB.xml [deleted file]
input/regression/musicxml/12b-Clefs-NoKeyOrClef.xml [new file with mode: 0644]
input/regression/musicxml/12b-Tuplets-Finale.xml [deleted file]
input/regression/musicxml/13-KeySignatures.itexi [new file with mode: 0644]
input/regression/musicxml/13a-GraceNotes-Finale.xml [deleted file]
input/regression/musicxml/13a-KeySignatures.xml [new file with mode: 0644]
input/regression/musicxml/13b-ChordAsGraceNote-Finale.xml [deleted file]
input/regression/musicxml/13b-KeySignatures-ChurchModes.xml [new file with mode: 0644]
input/regression/musicxml/13c-KeySignatures-NonTraditional.xml [new file with mode: 0644]
input/regression/musicxml/13d-KeySignatures-Microtones.xml [new file with mode: 0644]
input/regression/musicxml/14a-MultistaffClefDynamics-Finale.xml [deleted file]
input/regression/musicxml/14b-DifferentKeys-PJB.xml [deleted file]
input/regression/musicxml/14b-DifferentKeysAfterBackup-PJB.xml [deleted file]
input/regression/musicxml/14c-StaffChange-Finale.xml [deleted file]
input/regression/musicxml/15a-Percussion-Finale.xml [deleted file]
input/regression/musicxml/17a-Chords-Finale.xml [deleted file]
input/regression/musicxml/17b-Fretboards-Finale.xml [deleted file]
input/regression/musicxml/17c-ChordsFrets-Finale.xml [deleted file]
input/regression/musicxml/17d-ChordsFretsOnMultistaff-Finale.xml [deleted file]
input/regression/musicxml/17e-TabStaves-Finale.xml [deleted file]
input/regression/musicxml/17f-AllChordTypes.xml [deleted file]
input/regression/musicxml/18a-FiguredBass.xml [deleted file]
input/regression/musicxml/19a-PageLayout-PrintMusic.xml [deleted file]
input/regression/musicxml/20a-Compressed-MusicXML-Sample.mxl [deleted file]
input/regression/musicxml/21-Chords.itexi [new file with mode: 0644]
input/regression/musicxml/21a-Chord-Basic.xml [new file with mode: 0644]
input/regression/musicxml/21b-Chords-TwoNotes.xml [new file with mode: 0644]
input/regression/musicxml/21c-Chords-ThreeNotesDuration.xml [new file with mode: 0644]
input/regression/musicxml/21d-Chords-SchubertStabatMater.xml [new file with mode: 0644]
input/regression/musicxml/21e-Chords-PickupMeasures.xml [new file with mode: 0644]
input/regression/musicxml/21f-Chord-ElementInBetween.xml [new file with mode: 0644]
input/regression/musicxml/22-NoteSettings.itexi [new file with mode: 0644]
input/regression/musicxml/22a-Noteheads.xml [new file with mode: 0644]
input/regression/musicxml/22b-Staff-Notestyles.xml [new file with mode: 0644]
input/regression/musicxml/22c-Noteheads-Chords.xml [new file with mode: 0644]
input/regression/musicxml/22d-Parenthesized-Noteheads.xml [new file with mode: 0644]
input/regression/musicxml/23-Tuplets.itexi [new file with mode: 0644]
input/regression/musicxml/23a-Tuplets.xml [new file with mode: 0644]
input/regression/musicxml/23b-Tuplets-Styles.xml [new file with mode: 0644]
input/regression/musicxml/23c-Tuplet-Display-NonStandard.xml [new file with mode: 0644]
input/regression/musicxml/23d-Tuplets-Nested.xml [new file with mode: 0644]
input/regression/musicxml/23e-Tuplets-Tremolo.xml [new file with mode: 0644]
input/regression/musicxml/23f-Tuplets-DurationButNoBracket.xml [new file with mode: 0644]
input/regression/musicxml/24-Grace-Notes.itexi [new file with mode: 0644]
input/regression/musicxml/24a-GraceNotes.xml [new file with mode: 0644]
input/regression/musicxml/24b-ChordAsGraceNote.xml [new file with mode: 0644]
input/regression/musicxml/24c-GraceNote-MeasureEnd.xml [new file with mode: 0644]
input/regression/musicxml/24d-AfterGrace.xml [new file with mode: 0644]
input/regression/musicxml/24e-GraceNote-StaffChange.xml [new file with mode: 0644]
input/regression/musicxml/24f-GraceNote-Slur.xml [new file with mode: 0644]
input/regression/musicxml/31-Directions.itexi [new file with mode: 0644]
input/regression/musicxml/31a-Directions.xml [new file with mode: 0644]
input/regression/musicxml/31b-Directions-MultimeasureRests.xml.broken [new file with mode: 0644]
input/regression/musicxml/31c-MetronomeMarks.xml [new file with mode: 0644]
input/regression/musicxml/32-Notations-Articulations.itexi [new file with mode: 0644]
input/regression/musicxml/32a-Notations.xml [new file with mode: 0644]
input/regression/musicxml/32b-Articulations-Texts.xml [new file with mode: 0644]
input/regression/musicxml/32c-MultipleNotationChildren.xml [new file with mode: 0644]
input/regression/musicxml/32d-Arpeggio.xml [new file with mode: 0644]
input/regression/musicxml/33-Spanners.itexi [new file with mode: 0644]
input/regression/musicxml/33a-Spanners.xml [new file with mode: 0644]
input/regression/musicxml/33b-Spanners-Tie.xml [new file with mode: 0644]
input/regression/musicxml/33c-Spanners-Slurs.xml [new file with mode: 0644]
input/regression/musicxml/33d-Spanners-OctaveShifts.xml [new file with mode: 0644]
input/regression/musicxml/33e-Spanners-OctaveShifts-InvalidSize.xml [new file with mode: 0644]
input/regression/musicxml/33f-Trill-EndingOnGraceNote.xml [new file with mode: 0644]
input/regression/musicxml/33g-Slur-ChordedNotes.xml [new file with mode: 0644]
input/regression/musicxml/33h-Spanners-Glissando.xml [new file with mode: 0644]
input/regression/musicxml/41-Multiple-Parts.itexi [new file with mode: 0644]
input/regression/musicxml/41a-MultiParts-Partorder.xml [new file with mode: 0644]
input/regression/musicxml/41b-MultiParts-MoreThan10.xml [new file with mode: 0644]
input/regression/musicxml/41c-StaffGroups.xml [new file with mode: 0644]
input/regression/musicxml/41d-StaffGroups-Nested.xml [new file with mode: 0644]
input/regression/musicxml/41e-StaffGroups-InstrumentNames-Linebroken.xml [new file with mode: 0644]
input/regression/musicxml/41f-StaffGroups-Overlapping.xml [new file with mode: 0644]
input/regression/musicxml/42-MultiVoice-Parts.itexi [new file with mode: 0644]
input/regression/musicxml/42a-MultiVoice-TwoVoicesOnStaff-Lyrics.xml [new file with mode: 0644]
input/regression/musicxml/42b-MultiVoice-MidMeasureClefChange.xml [new file with mode: 0644]
input/regression/musicxml/43-MultiStaff-Parts.itexi [new file with mode: 0644]
input/regression/musicxml/43a-PianoStaff.xml [new file with mode: 0644]
input/regression/musicxml/43b-MultiStaff-DifferentKeys.xml [new file with mode: 0644]
input/regression/musicxml/43c-MultiStaff-DifferentKeysAfterBackup.xml [new file with mode: 0644]
input/regression/musicxml/43d-MultiStaff-StaffChange.xml [new file with mode: 0644]
input/regression/musicxml/43e-Multistaff-ClefDynamics.xml [new file with mode: 0644]
input/regression/musicxml/45-Repeats.itexi [new file with mode: 0644]
input/regression/musicxml/45a-SimpleRepeat.xml [new file with mode: 0644]
input/regression/musicxml/45b-RepeatWithAlternatives.xml [new file with mode: 0644]
input/regression/musicxml/45c-RepeatMultipleTimes.xml [new file with mode: 0644]
input/regression/musicxml/45d-Repeats-Nested-Alternatives.xml [new file with mode: 0644]
input/regression/musicxml/45e-Repeats-Nested-Alternatives.xml [new file with mode: 0644]
input/regression/musicxml/45f-Repeats-InvalidEndings.xml [new file with mode: 0644]
input/regression/musicxml/45g-Repeats-NotEnded.xml [new file with mode: 0644]
input/regression/musicxml/46-Measures.itexi [new file with mode: 0644]
input/regression/musicxml/46a-Barlines.xml [new file with mode: 0644]
input/regression/musicxml/46b-MidmeasureBarline.xml [new file with mode: 0644]
input/regression/musicxml/46c-Midmeasure-Clef.xml [new file with mode: 0644]
input/regression/musicxml/46d-PickupMeasure-ImplicitMeasures.xml [new file with mode: 0644]
input/regression/musicxml/46e-PickupMeasure-SecondVoiceStartsLater.xml [new file with mode: 0644]
input/regression/musicxml/51-Header.itexi [new file with mode: 0644]
input/regression/musicxml/51b-Header-Quotes.xml [new file with mode: 0644]
input/regression/musicxml/51c-MultipleRights.xml [new file with mode: 0644]
input/regression/musicxml/52-PageLayout.itexi [new file with mode: 0644]
input/regression/musicxml/52a-PageLayout.xml [new file with mode: 0644]
input/regression/musicxml/61-Lyrics.itexi [new file with mode: 0644]
input/regression/musicxml/61a-Lyrics.xml [new file with mode: 0644]
input/regression/musicxml/61b-MultipleLyrics.xml [new file with mode: 0644]
input/regression/musicxml/61c-Lyrics-Pianostaff.xml [new file with mode: 0644]
input/regression/musicxml/61d-Lyrics-Melisma.xml [new file with mode: 0644]
input/regression/musicxml/61e-Lyrics-Chords.xml [new file with mode: 0644]
input/regression/musicxml/61f-Lyrics-GracedNotes.xml [new file with mode: 0644]
input/regression/musicxml/61g-Lyrics-NameNumber.xml [new file with mode: 0644]
input/regression/musicxml/61h-Lyrics-BeamsMelismata.xml [new file with mode: 0644]
input/regression/musicxml/61i-Lyrics-Chords.xml [new file with mode: 0644]
input/regression/musicxml/61j-Lyrics-Elisions.xml [new file with mode: 0644]
input/regression/musicxml/61k-Lyrics-SpannersExtenders.xml [new file with mode: 0644]
input/regression/musicxml/71-Guitar.itexi [new file with mode: 0644]
input/regression/musicxml/71a-Chordnames.xml [new file with mode: 0644]
input/regression/musicxml/71c-ChordsFrets.xml [new file with mode: 0644]
input/regression/musicxml/71d-ChordsFrets-Multistaff.xml [new file with mode: 0644]
input/regression/musicxml/71e-TabStaves.xml [new file with mode: 0644]
input/regression/musicxml/71f-AllChordTypes.xml [new file with mode: 0644]
input/regression/musicxml/72-TransposingInstruments.itexi [new file with mode: 0644]
input/regression/musicxml/72a-TransposingInstruments.xml [new file with mode: 0644]
input/regression/musicxml/72b-TransposingInstruments-Full.xml [new file with mode: 0644]
input/regression/musicxml/73-Percussion.itexi [new file with mode: 0644]
input/regression/musicxml/73a-Percussion.xml [new file with mode: 0644]
input/regression/musicxml/74-Figured-Bass.itexi [new file with mode: 0644]
input/regression/musicxml/74a-FiguredBass.xml [new file with mode: 0644]
input/regression/musicxml/75-OtherInstruments.itexi [new file with mode: 0644]
input/regression/musicxml/75a-AccordionRegistrations.xml [new file with mode: 0644]
input/regression/musicxml/90-Compressed-MusicXML.itexi [new file with mode: 0644]
input/regression/musicxml/90a-Compressed-MusicXML.mxl [new file with mode: 0644]
input/regression/musicxml/99-Compatibility.itexi [new file with mode: 0644]
input/regression/musicxml/99a-Sibelius5-IgnoreBeaming.xml
input/regression/musicxml/99b-Lyrics-BeamsMelismata-IgnoreBeams.xml
input/regression/musicxml/AAA-intro-regression.ly [deleted file]
input/regression/musicxml/GNUmakefile
input/regression/newaddlyrics.ly
input/regression/no-staff.ly
input/regression/non-centered-bar-lines.ly
input/regression/non-empty-text.ly
input/regression/note-head-chord.ly
input/regression/note-head-harmonic-dotted.ly
input/regression/note-head-harmonic-whole.ly
input/regression/note-head-harmonic.ly
input/regression/note-head-solfa.ly
input/regression/note-head-style.ly
input/regression/note-line.ly
input/regression/number-staff-lines.ly
input/regression/optimal-page-breaking-hstretch.ly
input/regression/option-help.ly
input/regression/ottava-broken.ly
input/regression/ottava-edge.ly
input/regression/ottava.ly
input/regression/override-nest.ly
input/regression/page-break-between-scores.ly
input/regression/page-break-turn-toplevel.ly
input/regression/page-break-warn-forbidden.ly
input/regression/page-breaking-max-systems-per-page.ly [new file with mode: 0644]
input/regression/page-breaking-min-systems-per-page1.ly [new file with mode: 0644]
input/regression/page-breaking-min-systems-per-page2.ly [new file with mode: 0644]
input/regression/page-breaking-page-count1.ly
input/regression/page-breaking-page-count2.ly
input/regression/page-breaking-page-count3.ly
input/regression/page-breaking-systems-per-page.ly [new file with mode: 0644]
input/regression/page-breaks.ly
input/regression/page-label.ly
input/regression/page-layout-manual-position.ly
input/regression/page-layout-twopass.ly
input/regression/page-layout.ly
input/regression/page-limited-space.ly
input/regression/page-minimal-page-breaking-last-page.ly
input/regression/page-minimal-page-breaking.ly
input/regression/page-spacing.ly
input/regression/page-top-space.ly
input/regression/page-turn-page-breaking-auto-first-page.ly
input/regression/page-turn-page-breaking-auto-first-page2.ly
input/regression/page-turn-page-breaking-badturns.ly
input/regression/page-turn-page-breaking-repeats.ly
input/regression/page-turn-page-breaking.ly
input/regression/parenthesize-singlenotes-chords-rests.ly
input/regression/parenthesize.ly
input/regression/part-combine-a2.ly
input/regression/part-combine-cross.ly
input/regression/part-combine-global.ly
input/regression/part-combine-markup.ly
input/regression/part-combine-mmrest-after-solo.ly
input/regression/part-combine-solo-end.ly
input/regression/part-combine-solo-global.ly
input/regression/part-combine-solo.ly
input/regression/part-combine-text.ly
input/regression/part-combine-tuplet-end.ly
input/regression/part-combine-tuplet-single.ly
input/regression/part-combine.ly
input/regression/pedal-bracket.ly
input/regression/pedal-end.ly
input/regression/pedal-ped.ly
input/regression/phrasing-slur-dash.ly [new file with mode: 0644]
input/regression/phrasing-slur-slur-avoid.ly
input/regression/phrasing-slur-tuplet.ly
input/regression/predefined-fretboards.ly
input/regression/prefatory-empty-spacing.ly
input/regression/prefatory-spacing-matter.ly
input/regression/profile-property-access.ly
input/regression/property-grace-polyphony.ly
input/regression/property-nested-override.ly [new file with mode: 0644]
input/regression/property-nested-revert.ly
input/regression/property-once.ly
input/regression/quote-cue-during.ly
input/regression/quote-cyclic.ly
input/regression/quote-during.ly
input/regression/quote-grace.ly
input/regression/quote-tie.ly
input/regression/quote-transposition.ly
input/regression/quote-tuplet-end.ly
input/regression/quote-tuplet.ly
input/regression/quote.ly
input/regression/ragged-bottom-one-page.ly [new file with mode: 0644]
input/regression/ragged-right-compressed.ly
input/regression/ragged-right-disabled.ly
input/regression/ragged-right-one-line.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-letter.ly
input/regression/rehearsal-mark-number.ly
input/regression/relative-repeat.ly
input/regression/repeat-line-break.ly
input/regression/repeat-percent-count-visibility.ly [new file with mode: 0644]
input/regression/repeat-percent-count.ly
input/regression/repeat-percent-grace.ly
input/regression/repeat-percent-kerning.ly [new file with mode: 0644]
input/regression/repeat-percent-skipbars.ly
input/regression/repeat-percent.ly
input/regression/repeat-slash.ly
input/regression/repeat-tie.ly
input/regression/repeat-tremolo-beams.ly
input/regression/repeat-tremolo-dots.ly
input/regression/repeat-unfold-all.ly
input/regression/repeat-unfold-tremolo.ly
input/regression/repeat-unfold.ly
input/regression/repeat-volta-skip-alternatives.ly
input/regression/repeat-volta.ly
input/regression/rest-collision-beam-note.ly
input/regression/rest-collision-beam-quantized.ly
input/regression/rest-collision-beam-restdir.ly
input/regression/rest-collision-beam.ly
input/regression/rest-collision-note-duration.ly [new file with mode: 0644]
input/regression/rest-collision.ly
input/regression/rest-dot-position.ly
input/regression/rest-ledger.ly
input/regression/rest-note-collision.ly
input/regression/rest-pitch.ly
input/regression/rest-pitched-beam.ly
input/regression/rest-polyphonic.ly
input/regression/rest.ly
input/regression/rhythmic-staff.ly
input/regression/safe.ly
input/regression/score-text.ly
input/regression/script-center-seconds.ly
input/regression/script-collision.ly
input/regression/script-horizontal-slur.ly
input/regression/script-shift.ly [new file with mode: 0644]
input/regression/script-stack-horizontal.ly
input/regression/script-stack-order.ly
input/regression/script-stacked.ly
input/regression/script-stem-tremolo.ly
input/regression/semi-tie-manual-direction.ly
input/regression/size11.ly
input/regression/size13.ly
input/regression/size16.ly
input/regression/size20.ly
input/regression/size23.ly
input/regression/size26.ly
input/regression/skip-of-length.ly
input/regression/skiptypesetting-bar-check.ly
input/regression/skiptypesetting-show-first-and-last.ly
input/regression/skiptypesetting-show-first.ly
input/regression/skiptypesetting-show-last.ly
input/regression/skiptypesetting-tuplet.ly
input/regression/skyline-debug.ly
input/regression/skyline-vertical-placement.ly
input/regression/skyline-vertical-spacing.ly
input/regression/slur-broken-trend.ly
input/regression/slur-clef.ly
input/regression/slur-cross-staff-beam.ly
input/regression/slur-cross-staff.ly
input/regression/slur-dash.ly
input/regression/slur-dots.ly
input/regression/slur-double.ly
input/regression/slur-dynamics.ly
input/regression/slur-extreme.ly
input/regression/slur-manual.ly
input/regression/slur-nice.ly
input/regression/slur-rest.ly
input/regression/slur-scoring.ly
input/regression/slur-script-inside.ly
input/regression/slur-script.ly
input/regression/slur-symmetry-1.ly
input/regression/slur-symmetry.ly
input/regression/slur-tilt.ly
input/regression/slur-tuplet.ly
input/regression/song-associated-voice.ly
input/regression/song-basic-nonenglish.ly
input/regression/song-basic.ly
input/regression/song-breathe.ly
input/regression/song-melisma.ly
input/regression/song-reordering.ly
input/regression/song-reordering2.ly
input/regression/song-repetition.ly
input/regression/song-skip-noword.ly
input/regression/song-skip.ly
input/regression/song-slurs.ly
input/regression/song-splitpart.ly
input/regression/song-stanzas.ly
input/regression/song-tempo.ly
input/regression/spacing-accidental-staffs.ly
input/regression/spacing-accidental-stretch.ly
input/regression/spacing-accidental-tie.ly
input/regression/spacing-accidental.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-clef-first-note.ly
input/regression/spacing-end-of-line.ly
input/regression/spacing-ended-voice.ly
input/regression/spacing-folded-clef-cross-staff.ly
input/regression/spacing-folded-clef.ly
input/regression/spacing-folded-clef2.ly
input/regression/spacing-folded-clef3.ly
input/regression/spacing-grace-duration.ly
input/regression/spacing-grace.ly
input/regression/spacing-horizontal-skyline-grace.ly
input/regression/spacing-horizontal-skyline.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-no-note.ly
input/regression/spacing-non-adjacent-columns1.ly
input/regression/spacing-non-adjacent-columns2.ly
input/regression/spacing-note-flags.ly
input/regression/spacing-packed.ly
input/regression/spacing-paper-column-padding.ly [new file with mode: 0644]
input/regression/spacing-proportional.ly
input/regression/spacing-ragged-last.ly
input/regression/spacing-rest.ly
input/regression/spacing-section.ly
input/regression/spacing-short-notes.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-stick-out.ly
input/regression/spacing-strict-notespacing.ly
input/regression/spacing-strict-spacing-grace.ly
input/regression/spacing-to-empty-barline.ly
input/regression/spacing-to-grace.ly
input/regression/spacing-uniform-stretching.ly
input/regression/span-bar-break.ly
input/regression/span-bar-partial.ly
input/regression/span-bar-spacing.ly
input/regression/span-bar.ly
input/regression/spanner-break-beyond-parent.ly
input/regression/spanner-break-overshoot.ly
input/regression/staccato-pos.ly
input/regression/staff-halfway.ly
input/regression/staff-line-positions.ly
input/regression/staff-mixed-size.ly
input/regression/staff-online-symbol-absence.ly
input/regression/staff-tweak.ly
input/regression/stanza-number.ly
input/regression/stem-direction-context.ly
input/regression/stem-direction.ly
input/regression/stem-shorten.ly
input/regression/stem-stemlet-whole.ly
input/regression/stem-stemlet.ly
input/regression/stem-tremolo-forced-dir.ly
input/regression/stem-tremolo-position.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/string-number-around-slur.ly
input/regression/string-number.ly
input/regression/system-extents.ly
input/regression/system-overstrike.ly
input/regression/system-separator.ly
input/regression/system-start-bracket.ly
input/regression/system-start-heavy-bar.ly
input/regression/system-start-nesting.ly
input/regression/tablature-banjo.ly
input/regression/tablature-harmonic.ly
input/regression/tablature-slide.ly
input/regression/tablature-string-tunings.ly
input/regression/tablature.ly
input/regression/tag-filter.ly
input/regression/test-output-distance.ly
input/regression/text-spanner-attachment-alignment.ly
input/regression/text-spanner-override-order.ly
input/regression/text-spanner.ly
input/regression/tie-accidental.ly
input/regression/tie-arpeggio-collision.ly
input/regression/tie-arpeggio.ly
input/regression/tie-broken-minimum-length.ly
input/regression/tie-broken-other-staff.ly
input/regression/tie-broken.ly
input/regression/tie-chord-broken-extremal.ly
input/regression/tie-chord-debug.ly
input/regression/tie-chord-partial.ly
input/regression/tie-chord.ly
input/regression/tie-direction-broken.ly
input/regression/tie-direction-manual.ly
input/regression/tie-dot.ly
input/regression/tie-grace.ly
input/regression/tie-manual-vertical-tune.ly
input/regression/tie-manual.ly
input/regression/tie-semi-single.ly
input/regression/tie-single-chord.ly
input/regression/tie-single-manual.ly
input/regression/tie-single.ly
input/regression/tie-whole.ly
input/regression/to-xml.ly
input/regression/toc.ly
input/regression/trill-spanner-broken.ly
input/regression/trill-spanner-grace.ly
input/regression/trill-spanner-pitched-consecutive.ly
input/regression/trill-spanner-pitched-forced.ly
input/regression/trill-spanner-pitched.ly
input/regression/trill-spanner.ly
input/regression/tuplet-beam.ly
input/regression/tuplet-bracket-cross-staff.ly
input/regression/tuplet-broken.ly
input/regression/tuplet-full-length-extent.ly
input/regression/tuplet-full-length-note.ly
input/regression/tuplet-full-length.ly
input/regression/tuplet-gap.ly
input/regression/tuplet-nest-beam.ly
input/regression/tuplet-nest.ly
input/regression/tuplet-no-stems.ly
input/regression/tuplet-properties.ly
input/regression/tuplet-rest.ly
input/regression/tuplet-single-note.ly
input/regression/tuplet-slope.ly
input/regression/tuplet-staffline-collision.ly
input/regression/tuplet-text-different-numbers.ly [new file with mode: 0644]
input/regression/tuplet-text-fraction-with-notes.ly [new file with mode: 0644]
input/regression/tuplet-text-note-appended.ly [new file with mode: 0644]
input/regression/tuplets.ly
input/regression/utf-8-mixed-text.ly
input/regression/utf-8.ly
input/regression/voice-follower.ly
input/regression/volta-broken-left-edge.ly
input/regression/volta-markup-text.ly
input/regression/volta-multi-staff-inner-staff.ly
input/regression/volta-multi-staff.ly
input/regression/warn-conflicting-key-signatures.ly
input/regression/whiteout.ly
input/sakura-sakura.ly
input/simple-song.ly
input/simple.ly
input/texidocs/adding-a-figured-bass-above-or-below-the-notes.texidoc
input/texidocs/adding-bar-lines-to-chordnames-context.texidoc
input/texidocs/adding-drum-parts.texidoc
input/texidocs/adding-fingerings-to-tablatures.texidoc [new file with mode: 0644]
input/texidocs/adding-the-current-date-to-a-score.texidoc
input/texidocs/adding-volta-brackets-to-additional-staves.texidoc
input/texidocs/additional-voices-to-avoid-collisions.texidoc
input/texidocs/adjusting-lyrics-vertical-spacing.texidoc
input/texidocs/adjusting-the-shape-of-falls-and-doits.texidoc
input/texidocs/aligning-marks-with-various-notation-objects.texidoc
input/texidocs/allowing-fingerings-to-be-printed-inside-the-staff.texidoc
input/texidocs/ancient-fonts.texidoc
input/texidocs/ancient-notation-template----modern-transcription-of-gregorian-music.texidoc
input/texidocs/ancient-notation-template----modern-transcription-of-mensural-music.texidoc
input/texidocs/arabic-improvisation.texidoc
input/texidocs/automatic-beams-two-per-two-in-4-4-or-2-2-time-signature.texidoc
input/texidocs/avoiding-collisions-of-chord-fingering-with-beams.texidoc [new file with mode: 0644]
input/texidocs/beam-endings-in-score-context.texidoc [new file with mode: 0644]
input/texidocs/beam-grouping-in-7-8-time.texidoc
input/texidocs/beams-across-line-breaks.texidoc
input/texidocs/changing--flageolet-mark-size.texidoc
input/texidocs/changing-beam-knee-gap.texidoc
input/texidocs/changing-chord-separator.texidoc
input/texidocs/changing-form-of-multi--measure-rests.texidoc
input/texidocs/changing-partcombine-texts.texidoc
input/texidocs/changing-text-and-spanner-styles-for-text-dynamics.texidoc
input/texidocs/changing-the-breath-mark-symbol.texidoc
input/texidocs/changing-the-positions-of-figured-bass-alterations.texidoc
input/texidocs/changing-the-tempo-without-a-metronome-mark.texidoc
input/texidocs/changing-the-time-signature-without-affecting-the-beaming.texidoc [new file with mode: 0644]
input/texidocs/changing-the-tuplet-number.texidoc
input/texidocs/chord-name-exceptions.texidoc
input/texidocs/chord-name-major7.texidoc [new file with mode: 0644]
input/texidocs/combining-two-parts-on-the-same-staff.texidoc
input/texidocs/compound-time-signatures.texidoc
input/texidocs/conducting-signs,-measure-grouping-signs.texidoc
input/texidocs/contemporary-glissando.texidoc
input/texidocs/controlling-the-placement-of-chord-fingerings.texidoc
input/texidocs/controlling-the-vertical-ordering-of-scripts.texidoc
input/texidocs/creating-a-delayed-turn.texidoc [new file with mode: 0644]
input/texidocs/creating-arpeggios-across-notes-in-different-voices.texidoc
input/texidocs/creating-cross-staff-arpeggios-in-a-piano-staff.texidoc
input/texidocs/creating-cross-staff-arpeggios-in-other-contexts.texidoc
input/texidocs/creating-metronome-marks-in-markup-mode.texidoc
input/texidocs/customizing-fretboard-fret-diagrams.texidoc
input/texidocs/customizing-markup-fret-diagrams.texidoc
input/texidocs/default-direction-of-stems-on-the-center-line-of-the-staff.texidoc
input/texidocs/defining-predefined-fretboards-for-other-instruments.texidoc [new file with mode: 0644]
input/texidocs/display-bracket-with-only-one-staff-in-a-system.texidoc
input/texidocs/engraving-ties-manually.texidoc
input/texidocs/entering-several-tuplets-using-only-one--times-command.texidoc
input/texidocs/fingerings,-string-indications,-and-right-hand-fingerings.texidoc
input/texidocs/flat-flags-and-beam-nibs.texidoc [new file with mode: 0644]
input/texidocs/forcing-horizontal-shift-of-notes.texidoc
input/texidocs/grid-lines--changing-their-appearance.texidoc
input/texidocs/grouping-beats.texidoc
input/texidocs/guitar-strum-rhythms.texidoc
input/texidocs/hiding-the-extender-line-for-text-dynamics.texidoc
input/texidocs/indicating-cross-staff-chords-with-arpeggio-bracket.texidoc
input/texidocs/inserting-a-caesura.texidoc
input/texidocs/isolated-percent-repeats.texidoc
input/texidocs/makam-example.texidoc
input/texidocs/making-some-staff-lines-thicker-than-the-others.texidoc
input/texidocs/mensurstriche-layout-bar-lines-between-the-staves.texidoc
input/texidocs/modifying-default-values-for-articulation-shorthand-notation.texidoc
input/texidocs/multi--measure-rest-markup.texidoc
input/texidocs/nesting-staves.texidoc
input/texidocs/orchestra-choir-and-piano-template.texidoc [new file with mode: 0644]
input/texidocs/percent-repeat-count-visibility.texidoc [new file with mode: 0644]
input/texidocs/percent-repeat-counter.texidoc
input/texidocs/permitting-line-breaks-within-beamed-tuplets.texidoc
input/texidocs/piano-template-with-centered-dynamics.texidoc
input/texidocs/piano-template-with-centered-lyrics.texidoc
input/texidocs/piano-template-with-melody-and-lyrics.texidoc
input/texidocs/placement-of-right-hand-fingerings.texidoc
input/texidocs/polyphony-in-tablature.texidoc
input/texidocs/positioning-multi--measure-rests.texidoc
input/texidocs/positioning-text-markups-inside-slurs.texidoc [new file with mode: 0644]
input/texidocs/printing-a-repeat-sign-at-the-beginning-of-a-piece.texidoc
input/texidocs/printing-hairpins-using-al-niente-notation.texidoc
input/texidocs/printing-marks-at-the-end-of-a-line-or-a-score.texidoc
input/texidocs/printing-marks-on-every-staff.texidoc
input/texidocs/printing-metronome-and-rehearsal-marks-below-the-staff.texidoc
input/texidocs/quoting-another-voice-with-transposition.texidoc
input/texidocs/quoting-another-voice.texidoc
input/texidocs/removing-the-first-empty-line.texidoc
input/texidocs/reverting-default-beam-endings.texidoc
input/texidocs/setting-hairpin-behavior-at-bar-lines.texidoc
input/texidocs/setting-the-minimum-length-of-hairpins.texidoc
input/texidocs/shortening-volta-brackets.texidoc
input/texidocs/showing-chords-at-changes.texidoc
input/texidocs/simple-lead-sheet.texidoc
input/texidocs/single-staff-template-with-notes,-lyrics,-and-chords.texidoc
input/texidocs/single-staff-template-with-notes-and-chords.texidoc
input/texidocs/single-staff-template-with-notes-and-lyrics.texidoc
input/texidocs/single-staff-template-with-only-notes.texidoc
input/texidocs/specifying-context-with-beatgrouping.texidoc [new file with mode: 0644]
input/texidocs/stand-alone-two-column-markup.texidoc [new file with mode: 0644]
input/texidocs/stem-and-beam-behavior-in-tablature.texidoc
input/texidocs/string-quartet-template-simple.texidoc
input/texidocs/string-quartet-template-with-separate-parts.texidoc
input/texidocs/sub-dividing-beams.texidoc
input/texidocs/use-square-bracket-at-the-start-of-a-staff-group.texidoc
input/texidocs/using-beatlength-and-beatgrouping.texidoc [new file with mode: 0644]
input/texidocs/using-double-slurs-for-legato-chords.texidoc
input/texidocs/using-postscript-to-generate-special-note-head-shapes.texidoc [new file with mode: 0644]
input/texidocs/using-ties-with-arpeggios.texidoc
input/texidocs/vertically-aligned-dynamics-and-textscripts.texidoc
input/texidocs/vertically-aligning-ossias-and-lyrics.texidoc
input/texidocs/vocal-ensemble-template-with-automatic-piano-reduction.texidoc
input/texidocs/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.texidoc
input/texidocs/vocal-ensemble-template.texidoc
input/texidocs/volta-below-chords.texidoc
input/twinkle-pop.ly
input/typography-demo.ly
input/wilhelmus.ly
input/xiao-haizi-guai-guai.ly
lily/GNUmakefile
lily/SConscript [deleted file]
lily/accidental-engraver.cc
lily/accidental-placement.cc
lily/accidental.cc
lily/align-interface.cc
lily/all-font-metrics-scheme.cc
lily/all-font-metrics.cc
lily/ambitus-engraver.cc
lily/ambitus.cc
lily/apply-context-iterator.cc
lily/arpeggio-engraver.cc
lily/arpeggio.cc
lily/audio-column.cc
lily/audio-element-info.cc
lily/audio-element.cc
lily/audio-item.cc
lily/audio-staff.cc
lily/auto-beam-engraver.cc
lily/auto-change-iterator.cc
lily/axis-group-engraver.cc
lily/axis-group-interface-scheme.cc
lily/axis-group-interface.cc
lily/balloon-engraver.cc
lily/balloon.cc
lily/bar-check-iterator.cc
lily/bar-engraver.cc
lily/bar-line.cc
lily/bar-number-engraver.cc
lily/beam-engraver.cc
lily/beam-performer.cc
lily/beam-quanting.cc
lily/beam.cc
lily/beaming-pattern.cc
lily/bend-engraver.cc
lily/bezier-bow.cc
lily/bezier.cc
lily/book-scheme.cc
lily/book.cc
lily/box.cc
lily/break-align-engraver.cc
lily/break-alignment-interface.cc
lily/break-substitution.cc
lily/breathing-sign-engraver.cc
lily/breathing-sign.cc
lily/change-iterator.cc
lily/chord-name-engraver.cc
lily/chord-name.cc
lily/chord-tremolo-engraver.cc
lily/chord-tremolo-iterator.cc
lily/clef-engraver.cc
lily/clef.cc
lily/cluster-engraver.cc
lily/cluster.cc
lily/coherent-ligature-engraver.cc
lily/collision-engraver.cc
lily/column-x-positions.cc
lily/completion-note-heads-engraver.cc
lily/constrained-breaking.cc
lily/context-def.cc
lily/context-handle.cc
lily/context-property.cc
lily/context-scheme.cc
lily/context-specced-music-iterator.cc
lily/context.cc
lily/custos-engraver.cc
lily/custos.cc
lily/default-bar-line-engraver.cc
lily/dimension-cache.cc
lily/dimensions-scheme.cc
lily/directional-element-interface.cc
lily/dispatcher-scheme.cc
lily/dispatcher.cc
lily/dot-column-engraver.cc
lily/dot-column.cc
lily/dot-configuration.cc
lily/dot-formatting-problem.cc
lily/dots-engraver.cc
lily/dots.cc
lily/drum-note-engraver.cc
lily/drum-note-performer.cc
lily/duration-scheme.cc
lily/duration.cc
lily/dynamic-align-engraver.cc
lily/dynamic-engraver.cc
lily/dynamic-performer.cc
lily/easy-notation.cc
lily/enclosing-bracket.cc
lily/engraver-group.cc
lily/engraver.cc
lily/event-chord-iterator.cc
lily/event-iterator.cc
lily/extender-engraver.cc
lily/figured-bass-continuation.cc
lily/figured-bass-engraver.cc
lily/figured-bass-position-engraver.cc
lily/file-name-map.cc
lily/fingering-engraver.cc
lily/font-config-scheme.cc
lily/font-config.cc
lily/font-interface.cc
lily/font-metric-scheme.cc
lily/font-metric.cc
lily/font-select.cc
lily/font-size-engraver.cc
lily/freetype-error.cc
lily/freetype.cc
lily/fretboard-engraver.cc
lily/function-documentation.cc
lily/general-scheme.cc
lily/glissando-engraver.cc
lily/global-context-scheme.cc
lily/global-context.cc
lily/global-ctor.cc
lily/grace-engraver.cc
lily/grace-iterator.cc
lily/grace-music.cc
lily/grace-spacing-engraver.cc
lily/gregorian-ligature-engraver.cc
lily/gregorian-ligature.cc
lily/grid-line-interface.cc
lily/grid-line-span-engraver.cc
lily/grid-point-engraver.cc
lily/grob-array-scheme.cc
lily/grob-array.cc
lily/grob-info.cc
lily/grob-interface-scheme.cc
lily/grob-interface.cc
lily/grob-pq-engraver.cc
lily/grob-scheme.cc
lily/grob-smob.cc
lily/grob.cc
lily/guile-init.cc
lily/hairpin.cc
lily/hara-kiri-engraver.cc
lily/hara-kiri-group-spanner.cc
lily/horizontal-bracket-engraver.cc
lily/horizontal-bracket.cc
lily/hyphen-engraver.cc
lily/identifier-smob.cc
lily/includable-lexer.cc
lily/include/accidental-interface.hh
lily/include/accidental-placement.hh
lily/include/align-interface.hh
lily/include/all-font-metrics.hh
lily/include/ambitus.hh
lily/include/arpeggio.hh
lily/include/audio-column.hh
lily/include/audio-element-info.hh
lily/include/audio-element.hh
lily/include/audio-item.hh
lily/include/audio-staff.hh
lily/include/axis-group-engraver.hh
lily/include/axis-group-interface.hh
lily/include/bar-line.hh
lily/include/bar.hh
lily/include/beam.hh
lily/include/beaming-pattern.hh
lily/include/bezier.hh
lily/include/book.hh
lily/include/break-align-interface.hh
lily/include/breathing-sign.hh
lily/include/change-iterator.hh
lily/include/chord-name.hh
lily/include/chord-tremolo-iterator.hh
lily/include/clef.hh
lily/include/cluster.hh
lily/include/coherent-ligature-engraver.hh
lily/include/column-x-positions.hh
lily/include/constrained-breaking.hh
lily/include/context-def.hh
lily/include/context-handle.hh
lily/include/context.hh
lily/include/custos.hh
lily/include/dimension-cache.hh
lily/include/directional-element-interface.hh
lily/include/dot-column.hh
lily/include/dot-configuration.hh
lily/include/dots.hh
lily/include/duration.hh
lily/include/engraver-group.hh
lily/include/engraver.hh
lily/include/event-chord-iterator.hh
lily/include/event-iterator.hh
lily/include/file-name-map.hh
lily/include/font-interface.hh
lily/include/font-metric.hh
lily/include/freetype.hh
lily/include/global-context.hh
lily/include/global-ctor.hh
lily/include/grace-fixup.hh
lily/include/grace-iterator.hh
lily/include/gregorian-ligature-engraver.hh
lily/include/gregorian-ligature.hh
lily/include/grid-line-interface.hh
lily/include/grob-array.hh
lily/include/grob-info.hh
lily/include/grob-interface.hh
lily/include/grob.hh
lily/include/group-interface.hh
lily/include/hairpin.hh
lily/include/hara-kiri-group-spanner.hh
lily/include/horizontal-bracket.hh
lily/include/identifier-smob.hh
lily/include/includable-lexer.hh
lily/include/input.hh
lily/include/item.hh
lily/include/keyword.hh
lily/include/kpath.hh [deleted file]
lily/include/least-squares.hh
lily/include/ligature-engraver.hh
lily/include/lily-guile-macros.hh
lily/include/lily-guile.hh
lily/include/lily-lexer.hh
lily/include/lily-parser.hh
lily/include/lily-proto.hh
lily/include/lily-version.hh
lily/include/lilypond-version.hh
lily/include/line-interface.hh
lily/include/lookup.hh
lily/include/ly-module.hh
lily/include/ly-smobs.icc
lily/include/lyric-extender.hh
lily/include/lyric-hyphen.hh
lily/include/main.hh
lily/include/measure-grouping-spanner.hh
lily/include/melody-spanner.hh
lily/include/mensural-ligature.hh
lily/include/midi-chunk.hh
lily/include/midi-item.hh
lily/include/midi-stream.hh
lily/include/midi-walker.hh
lily/include/mingw-compatibility.hh
lily/include/minimal-page-breaking.hh
lily/include/misc.hh
lily/include/modified-font-metric.hh
lily/include/moment.hh
lily/include/multi-measure-rest.hh
lily/include/music-function.hh
lily/include/music-iterator.hh
lily/include/music-output.hh
lily/include/music-sequence.hh
lily/include/music-wrapper-iterator.hh
lily/include/music-wrapper.hh
lily/include/music.hh
lily/include/note-collision.hh
lily/include/note-column.hh
lily/include/note-head.hh
lily/include/note-spacing.hh
lily/include/open-type-font.hh
lily/include/optimal-page-breaking.hh
lily/include/output-def.hh
lily/include/page-breaking.hh
lily/include/page-marker.hh
lily/include/page-spacing-result.hh
lily/include/page-spacing.hh
lily/include/page-turn-page-breaking.hh
lily/include/pango-font.hh
lily/include/paper-book.hh
lily/include/paper-column-engraver.hh
lily/include/paper-column.hh
lily/include/paper-outputter.hh
lily/include/paper-score.hh
lily/include/paper-system.hh
lily/include/parse-scm.hh
lily/include/percent-repeat-item.hh
lily/include/performance.hh
lily/include/performer-group.hh
lily/include/performer.hh
lily/include/pitch-interval.hh
lily/include/pitch.hh
lily/include/pointer-group-interface.hh
lily/include/prob.hh
lily/include/profile.hh
lily/include/program-option.hh
lily/include/property-iterator.hh
lily/include/protected-scm.hh
lily/include/relocate.hh
lily/include/repeated-music.hh
lily/include/rest-collision.hh
lily/include/rest.hh
lily/include/rhythmic-head.hh
lily/include/rod.hh
lily/include/scale.hh
lily/include/scheme-listener.hh
lily/include/scm-hash.hh
lily/include/score-engraver.hh
lily/include/score-performer.hh
lily/include/score.hh
lily/include/script-column.hh
lily/include/script-interface.hh
lily/include/self-alignment-interface.hh
lily/include/semi-tie-column.hh
lily/include/semi-tie.hh
lily/include/separation-item.hh
lily/include/sequential-iterator.hh
lily/include/side-position-interface.hh
lily/include/simple-closure.hh
lily/include/simple-music-iterator.hh
lily/include/simple-spacer.hh
lily/include/simultaneous-music-iterator.hh
lily/include/skyline-pair.hh
lily/include/skyline.hh
lily/include/slur-configuration.hh
lily/include/slur-score-parameters.hh
lily/include/slur-scoring.hh
lily/include/slur.hh
lily/include/smobs.hh
lily/include/source-file.hh
lily/include/sources.hh
lily/include/spaceable-grob.hh
lily/include/spacing-interface.hh
lily/include/spacing-options.hh
lily/include/spacing-spanner.hh
lily/include/span-bar.hh
lily/include/spanner.hh
lily/include/spring.hh
lily/include/staff-spacing.hh
lily/include/staff-symbol-referencer.hh
lily/include/staff-symbol.hh
lily/include/stem-info.hh
lily/include/stem-tremolo.hh
lily/include/stem.hh
lily/include/stencil.hh
lily/include/stream.hh
lily/include/system-start-delimiter.hh
lily/include/system.hh
lily/include/text-interface.hh
lily/include/text-metrics.hh [deleted file]
lily/include/tie-column-format.hh
lily/include/tie-column.hh
lily/include/tie-configuration.hh
lily/include/tie-details.hh
lily/include/tie-formatting-problem.hh
lily/include/tie-specification.hh
lily/include/tie.hh
lily/include/time-scaled-music-iterator.hh
lily/include/time-signature.hh
lily/include/timing-translator.hh
lily/include/translator-dispatch-list.hh
lily/include/translator-group.hh
lily/include/translator.hh
lily/include/translator.icc
lily/include/tuplet-bracket.hh
lily/include/type-swallow-translator.hh
lily/include/vaticana-ligature.hh
lily/include/volta-bracket.hh
lily/input-scheme.cc
lily/input-smob.cc
lily/input.cc
lily/instrument-name-engraver.cc
lily/instrument-switch-engraver.cc
lily/item-scheme.cc
lily/item.cc
lily/key-engraver.cc
lily/key-performer.cc
lily/key-signature-interface.cc
lily/laissez-vibrer-engraver.cc
lily/least-squares.cc
lily/ledger-line-engraver.cc
lily/ledger-line-spanner.cc
lily/lexer.ll
lily/ligature-bracket-engraver.cc
lily/ligature-engraver.cc
lily/lily-guile.cc
lily/lily-lexer-scheme.cc
lily/lily-lexer.cc
lily/lily-parser-scheme.cc
lily/lily-parser.cc
lily/lily-version.cc
lily/lilypond-version.cc
lily/lilypond.rc.in
lily/line-interface.cc
lily/line-spanner.cc
lily/lookup.cc
lily/ly-module.cc
lily/lyric-combine-music-iterator.cc
lily/lyric-combine-music.cc
lily/lyric-engraver.cc
lily/lyric-extender.cc
lily/lyric-hyphen.cc
lily/lyric-performer.cc
lily/main.cc
lily/mark-engraver.cc
lily/measure-grouping-engraver.cc
lily/measure-grouping-spanner.cc
lily/melody-engraver.cc
lily/melody-spanner.cc
lily/mensural-ligature-engraver.cc
lily/mensural-ligature.cc
lily/metronome-engraver.cc
lily/midi-chunk.cc
lily/midi-item.cc
lily/midi-stream.cc
lily/midi-walker.cc
lily/minimal-page-breaking.cc
lily/misc.cc
lily/modified-font-metric.cc
lily/module-scheme.cc
lily/moment-scheme.cc
lily/moment.cc
lily/multi-measure-rest-engraver.cc
lily/multi-measure-rest.cc
lily/music-function.cc
lily/music-iterator.cc
lily/music-output.cc
lily/music-scheme.cc
lily/music-sequence.cc
lily/music-wrapper-iterator.cc
lily/music-wrapper.cc
lily/music.cc
lily/new-dynamic-engraver.cc
lily/new-fingering-engraver.cc
lily/note-collision.cc
lily/note-column.cc
lily/note-head-line-engraver.cc
lily/note-head-scheme.cc
lily/note-head.cc
lily/note-heads-engraver.cc
lily/note-name-engraver.cc
lily/note-performer.cc
lily/note-spacing-engraver.cc
lily/note-spacing.cc
lily/open-type-font-scheme.cc
lily/open-type-font.cc
lily/optimal-page-breaking.cc
lily/ottava-bracket.cc
lily/ottava-engraver.cc
lily/output-def-scheme.cc
lily/output-def.cc
lily/output-property-engraver.cc
lily/page-breaking-scheme.cc
lily/page-breaking.cc
lily/page-marker-scheme.cc
lily/page-marker.cc
lily/page-spacing-result.cc
lily/page-spacing.cc
lily/page-turn-engraver.cc
lily/page-turn-page-breaking.cc
lily/pango-font-scheme.cc
lily/pango-font.cc
lily/pango-select-scheme.cc
lily/pango-select.cc
lily/paper-book-scheme.cc
lily/paper-book.cc
lily/paper-column-engraver.cc
lily/paper-column.cc
lily/paper-def.cc
lily/paper-outputter-scheme.cc
lily/paper-outputter.cc
lily/paper-score-scheme.cc
lily/paper-score.cc
lily/paper-system-scheme.cc
lily/paper-system.cc
lily/parenthesis-engraver.cc
lily/parse-scm.cc
lily/parser.yy
lily/part-combine-engraver.cc
lily/part-combine-iterator.cc
lily/percent-repeat-engraver.cc
lily/percent-repeat-item.cc
lily/percent-repeat-iterator.cc
lily/performance-scheme.cc
lily/performance.cc
lily/performer-group.cc
lily/performer.cc
lily/pfb-scheme.cc
lily/pfb.cc
lily/phrasing-slur-engraver.cc
lily/piano-pedal-align-engraver.cc
lily/piano-pedal-bracket.cc
lily/piano-pedal-engraver.cc
lily/piano-pedal-performer.cc
lily/pitch-interval.cc
lily/pitch-scheme.cc
lily/pitch-squash-engraver.cc
lily/pitch.cc
lily/pitched-trill-engraver.cc
lily/pointer-group-interface.cc
lily/prob-scheme.cc
lily/prob.cc
lily/profile.cc
lily/program-option-scheme.cc
lily/program-option.cc
lily/property-iterator.cc
lily/protected-scm.cc
lily/quote-iterator.cc
lily/relative-octave-check.cc
lily/relative-octave-music.cc
lily/relocate.cc
lily/repeat-acknowledge-engraver.cc
lily/repeat-tie-engraver.cc
lily/repeated-music.cc
lily/rest-collision-engraver.cc
lily/rest-collision.cc
lily/rest-engraver.cc
lily/rest.cc
lily/rhythmic-column-engraver.cc
lily/rhythmic-head.cc
lily/rod.cc
lily/scale.cc
lily/scheme-listener-scheme.cc
lily/scheme-listener.cc
lily/scm-hash.cc
lily/score-engraver.cc
lily/score-performer.cc
lily/score-scheme.cc
lily/score.cc
lily/script-column-engraver.cc
lily/script-column.cc
lily/script-engraver.cc
lily/script-interface.cc
lily/script-row-engraver.cc
lily/self-aligment-interface.cc
lily/semi-tie-column.cc
lily/semi-tie.cc
lily/separating-line-group-engraver.cc
lily/separation-item.cc
lily/sequential-iterator.cc
lily/side-position-interface.cc
lily/simple-closure.cc
lily/simple-music-iterator.cc
lily/simple-spacer-scheme.cc
lily/simple-spacer.cc
lily/simultaneous-music-iterator.cc
lily/skyline-pair.cc
lily/skyline.cc
lily/slash-repeat-engraver.cc
lily/slur-configuration.cc
lily/slur-engraver.cc
lily/slur-performer.cc
lily/slur-score-parameters.cc
lily/slur-scoring.cc
lily/slur.cc
lily/smobs.cc
lily/source-file.cc
lily/sources.cc
lily/spaceable-grob.cc
lily/spacing-basic.cc
lily/spacing-determine-loose-columns.cc
lily/spacing-engraver.cc
lily/spacing-interface.cc
lily/spacing-loose-columns.cc
lily/spacing-options.cc
lily/spacing-spanner.cc
lily/span-arpeggio-engraver.cc
lily/span-bar-engraver.cc
lily/span-bar.cc
lily/spanner-break-forbid-engraver.cc
lily/spanner-scheme.cc
lily/spanner.cc
lily/spring-smob.cc
lily/spring.cc
lily/staff-collecting-engraver.cc
lily/staff-performer.cc
lily/staff-spacing.cc
lily/staff-symbol-engraver.cc
lily/staff-symbol-referencer-scheme.cc
lily/staff-symbol-referencer.cc
lily/staff-symbol.cc
lily/stanza-number-align-engraver.cc
lily/stanza-number-engraver.cc
lily/stem-engraver.cc
lily/stem-tremolo.cc
lily/stem.cc
lily/stencil-expression.cc
lily/stencil-interpret.cc
lily/stencil-scheme.cc
lily/stencil.cc
lily/stream-event-scheme.cc
lily/string-number-engraver.cc
lily/sustain-pedal.cc
lily/swallow-engraver.cc
lily/swallow-perf.cc
lily/system-scheme.cc
lily/system-start-delimiter-engraver.cc
lily/system-start-delimiter.cc
lily/system-start-text.cc
lily/system.cc
lily/tab-harmonic-engraver.cc
lily/tab-note-heads-engraver.cc
lily/tab-staff-symbol-engraver.cc
lily/template5.cc
lily/tempo-performer.cc
lily/text-engraver.cc
lily/text-interface.cc
lily/text-metrics.cc [deleted file]
lily/text-spanner-engraver.cc
lily/tie-column.cc
lily/tie-configuration.cc
lily/tie-details.cc
lily/tie-engraver.cc
lily/tie-formatting-problem.cc
lily/tie-performer.cc
lily/tie.cc
lily/time-scaled-music-iterator.cc
lily/time-signature-engraver.cc
lily/time-signature-performer.cc
lily/time-signature.cc
lily/timing-translator.cc
lily/translator-ctors.cc
lily/translator-dispatch-list.cc
lily/translator-group-ctors.cc
lily/translator-group.cc
lily/translator-scheme.cc
lily/translator.cc
lily/trill-spanner-engraver.cc
lily/ttf.cc
lily/tuplet-bracket.cc
lily/tuplet-engraver.cc
lily/tuplet-number.cc
lily/tweak-engraver.cc
lily/type-swallow-translator.cc
lily/unfolded-repeat-iterator.cc
lily/vaticana-ligature-engraver.cc
lily/vaticana-ligature.cc
lily/vertical-align-engraver.cc
lily/vertically-spaced-context-engraver.cc
lily/volta-bracket.cc
lily/volta-engraver.cc
lily/volta-repeat-iterator.cc
lilypond-texi2html.init
ly/SConscript [deleted file]
ly/Welcome-to-LilyPond-MacOS.ly
ly/Welcome_to_LilyPond.ly
ly/arabic.ly
ly/bagpipe.ly
ly/catalan.ly
ly/chord-modifiers-init.ly
ly/declarations-init.ly
ly/deutsch.ly
ly/drumpitch-init.ly
ly/dynamic-scripts-init.ly
ly/english.ly
ly/engraver-init.ly
ly/espanol.ly
ly/festival.ly
ly/generate-documentation.ly
ly/generate-interface-doc-init.ly
ly/grace-init.ly
ly/graphviz-init.ly
ly/gregorian.ly
ly/init.ly
ly/italiano.ly
ly/lilypond-book-preamble.ly
ly/makam.ly
ly/markup-init.ly
ly/midi-init.ly
ly/music-functions-init.ly
ly/nederlands.ly
ly/norsk.ly
ly/paper-defaults-init.ly
ly/params-init.ly
ly/performer-init.ly
ly/portugues.ly
ly/predefined-fretboards-init.ly
ly/predefined-guitar-fretboards.ly
ly/predefined-guitar-ninth-fretboards.ly
ly/property-init.ly
ly/scale-definitions-init.ly
ly/script-init.ly
ly/spanners-init.ly
ly/suomi.ly
ly/svenska.ly
ly/titling-init.ly
ly/toc-init.ly
ly/vlaams.ly
make/doc-i18n-root-targets.make
make/doc-i18n-topdocs-rules.make [new file with mode: 0644]
make/doc-i18n-topdocs-targets.make [new file with mode: 0644]
make/doc-i18n-topdocs-vars.make [new file with mode: 0644]
make/doc-i18n-user-rules.make
make/doc-i18n-user-targets.make
make/doc-i18n-user-vars.make
make/generic-vars.make
make/lilypond-vars.make
make/ly-rules.make
make/ly-targets.make
make/ly-vars.make
make/lysdoc-rules.make
make/lysdoc-vars.make
make/musicxml-rules.make
make/musicxml-targets.make
make/musicxml-vars.make
make/mutopia-inclusions.make
make/mutopia-rules.make
make/mutopia-vars.make
make/ports-rules.make [deleted file]
make/ports-targets.make [deleted file]
make/ports-vars.make [deleted file]
make/substitute.make
mf/GNUmakefile
mf/SConscript [deleted file]
mf/feta-accordion.mf
mf/feta-arrow.mf
mf/feta-autometric.mf
mf/feta-banier.mf
mf/feta-beugel.mf
mf/feta-bolletjes.mf
mf/feta-braces-a.mf
mf/feta-braces-b.mf
mf/feta-braces-c.mf
mf/feta-braces-d.mf
mf/feta-braces-e.mf
mf/feta-braces-f.mf
mf/feta-braces-g.mf
mf/feta-braces-h.mf
mf/feta-braces-i.mf
mf/feta-din-code.mf
mf/feta-eindelijk.mf
mf/feta-generic.mf
mf/feta-haak.mf
mf/feta-klef.mf
mf/feta-macros.mf
mf/feta-nummer-code.mf
mf/feta-params.mf
mf/feta-pendaal.mf
mf/feta-puntje.mf
mf/feta-schrift.mf
mf/feta-slag.mf
mf/feta-timesig.mf
mf/feta-toevallig.mf
mf/parmesan-accidentals.mf
mf/parmesan-clefs.mf
mf/parmesan-custodes.mf
mf/parmesan-dots.mf
mf/parmesan-flags.mf
mf/parmesan-generic.mf
mf/parmesan-heads.mf
mf/parmesan-macros.mf
mf/parmesan-rests.mf
mf/parmesan-scripts.mf
mf/parmesan-timesig.mf
po/SConscript [deleted file]
po/TODO
po/de.po
po/es.po
po/fr.po
po/lilypond.pot
po/uk.po
po/vi.po
ps/SConscript [deleted file]
ps/music-drawing-routines.ps
python/GNUmakefile
python/SConscript [deleted file]
python/auxiliar/GNUmakefile [new file with mode: 0644]
python/auxiliar/buildlib.py [new file with mode: 0644]
python/auxiliar/manuals_definitions.py [new file with mode: 0644]
python/auxiliar/mirrortree.py [new file with mode: 0644]
python/auxiliar/postprocess_html.py [new file with mode: 0644]
python/convertrules.py
python/langdefs.py
python/lilylib.py
python/midi.c
python/musicexp.py
python/musicxml.py
scm/SConscript [deleted file]
scm/auto-beam.scm
scm/backend-library.scm
scm/c++.scm
scm/chord-entry.scm
scm/chord-generic-names.scm
scm/chord-ignatzek-names.scm
scm/chord-name.scm
scm/define-context-properties.scm
scm/define-grob-interfaces.scm
scm/define-grob-properties.scm
scm/define-grobs.scm
scm/define-markup-commands.scm
scm/define-music-display-methods.scm
scm/define-music-properties.scm
scm/define-music-types.scm
scm/define-stencil-commands.scm
scm/display-lily.scm
scm/document-backend.scm
scm/document-functions.scm
scm/document-markup.scm
scm/document-music.scm
scm/document-translation.scm
scm/documentation-generate.scm
scm/documentation-lib.scm
scm/editor.scm
scm/encoding.scm
scm/file-cache.scm
scm/flag-styles.scm
scm/font.scm
scm/framework-eps.scm
scm/framework-null.scm
scm/framework-ps.scm
scm/framework-scm.scm
scm/framework-socket.scm
scm/framework-svg.scm
scm/framework-tex.scm [deleted file]
scm/framework-texstr.scm [deleted file]
scm/fret-diagrams.scm
scm/graphviz.scm
scm/harp-pedals.scm
scm/kpathsea.scm
scm/layout-beam.scm
scm/layout-page-layout.scm
scm/layout-slur.scm
scm/lily-library.scm
scm/lily.scm
scm/ly-syntax-constructors.scm
scm/markup.scm
scm/memory-trace.scm
scm/midi.scm
scm/music-functions.scm
scm/output-lib.scm
scm/output-ps.scm
scm/output-svg.scm
scm/output-tex.scm [deleted file]
scm/output-texstr.scm [deleted file]
scm/page.scm
scm/paper.scm
scm/parser-clef.scm
scm/parser-ly-from-scheme.scm
scm/part-combiner.scm
scm/predefined-fretboards.scm
scm/ps-to-png.scm
scm/safe-lily.scm
scm/script.scm
scm/standalone.scm
scm/stencil.scm
scm/titling.scm
scm/to-xml.scm
scm/translation-functions.scm
scm/x11-color.scm
scripts/GNUmakefile
scripts/SConscript [deleted file]
scripts/abc2ly.py
scripts/auxiliar/GNUmakefile [new file with mode: 0644]
scripts/auxiliar/build-coverage.sh [new file with mode: 0755]
scripts/auxiliar/build-profile.sh [new file with mode: 0755]
scripts/auxiliar/check_texi_refs.py [new file with mode: 0755]
scripts/auxiliar/check_translation.py [new file with mode: 0755]
scripts/auxiliar/coverage.py [new file with mode: 0755]
scripts/auxiliar/find-superfluous-includes.py [new file with mode: 0755]
scripts/auxiliar/fixcc.py [new file with mode: 0755]
scripts/auxiliar/makelsr.py [new file with mode: 0755]
scripts/auxiliar/musicxml_generate_intervals.py [new file with mode: 0755]
scripts/auxiliar/musicxml_generate_keys.py [new file with mode: 0755]
scripts/auxiliar/musicxml_generate_timesignatures.py [new file with mode: 0755]
scripts/auxiliar/pfx2ttf.fontforge [new file with mode: 0644]
scripts/auxiliar/readlink.py [new file with mode: 0755]
scripts/auxiliar/tely-gettext.py [new file with mode: 0755]
scripts/auxiliar/texi-langutils.py [new file with mode: 0755]
scripts/auxiliar/texi-skeleton-update.py [new file with mode: 0755]
scripts/auxiliar/translations-status.py [new file with mode: 0755]
scripts/auxiliar/update-snippets.py [new file with mode: 0755]
scripts/build/GNUmakefile [new file with mode: 0644]
scripts/build/bib2html.py [new file with mode: 0644]
scripts/build/catmidi.py [new file with mode: 0644]
scripts/build/extract_texi_filenames.py [new file with mode: 0644]
scripts/build/gen-emmentaler-scripts.py [new file with mode: 0644]
scripts/build/genicon.py [new file with mode: 0644]
scripts/build/grand-replace.py [new file with mode: 0644]
scripts/build/help2man.pl [new file with mode: 0644]
scripts/build/html-gettext.py [new file with mode: 0644]
scripts/build/install-info-html.sh [new file with mode: 0644]
scripts/build/lilypond-words.py [new file with mode: 0644]
scripts/build/lys-to-tely.py [new file with mode: 0644]
scripts/build/mass-link.py [new file with mode: 0644]
scripts/build/mf-to-table.py [new file with mode: 0644]
scripts/build/mf2pt1.pl [new file with mode: 0644]
scripts/build/mutopia-index.py [new file with mode: 0644]
scripts/build/output-distance.py [new file with mode: 0644]
scripts/build/pytt.py [new file with mode: 0755]
scripts/build/relative.py [new file with mode: 0755]
scripts/build/texi-gettext.py [new file with mode: 0644]
scripts/build/texi2omf.py [new file with mode: 0644]
scripts/build/www_post.py [new file with mode: 0644]
scripts/convert-ly.py
scripts/etf2ly.py
scripts/lilymidi.py
scripts/lilypond-book.py
scripts/lilypond-invoke-editor.scm
scripts/lilysong.py
scripts/midi2ly.py
scripts/musicxml2ly.py
stepmake/aclocal.m4
stepmake/stepmake/generic-targets.make
stepmake/stepmake/generic-vars.make
stepmake/stepmake/help2man-rules.make
stepmake/stepmake/metafont-rules.make
stepmake/stepmake/metapost-rules.make [deleted file]
stepmake/stepmake/metapost-targets.make [deleted file]
stepmake/stepmake/metapost-vars.make [deleted file]
stepmake/stepmake/texinfo-rules.make
stepmake/stepmake/texinfo-targets.make
stepmake/stepmake/texinfo-vars.make
stepmake/stepmake/topdocs-vars.make
stepmake/stepmake/toplevel-targets.make
tex/GNUmakefile
tex/SConscript [deleted file]
tex/lily-ps-defs.tex [deleted file]
tex/lilyponddefs.tex [deleted file]
tex/quotes.patch [deleted file]
tex/texinfo.tex
tex/txi-fr.tex
vim/GNUmakefile
vim/SConscript [deleted file]

index af5ebb54061e07bfbf74378c2032640ac5e5c9be..63fb92cb71281fd65c65dd1c87da6c21dd75208f 100644 (file)
@@ -72,5 +72,6 @@ out-test
 pats
 tags
 test-output-distance
+ChangeLog
 Documentation/user/lilypond
 input/lsr/lilypond-snippets
index 2f99e82fd77c0ac53a88e1a3a1c00a818ddce9d8..747a8e304e612ed38698c5f6758b4d9b56767c97 100644 (file)
@@ -2,7 +2,7 @@ depth = ..
 
 NAME = documentation
 LANGS = $(shell $(PYTHON) $(top-src-dir)/python/langdefs.py)
-SUBDIRS=user bibliography pictures topdocs misc po $(LANGS)
+SUBDIRS=devel user bibliography pictures topdocs misc po $(LANGS)
 STEPMAKE_TEMPLATES=documentation texinfo tex
 LOCALSTEPMAKE_TEMPLATES=lilypond ly
 LILYPOND_BOOK_FLAGS=--extra-options '-e "(ly:set-option (quote internal-type-checking) \#t)"'
@@ -11,7 +11,7 @@ EXTRA_DIST_FILES= TRANSLATION
 
 include $(depth)/make/stepmake.make
 
-HTML_PAGE_NAMES= index devel translations
+HTML_PAGE_NAMES= index translations
 OUT_HTML_FILES= $(HTML_PAGE_NAMES:%=$(outdir)/%.html)
 OUT_CSS_FILES= $(CSS_FILES:%.css=$(outdir)/%.css)
 
@@ -36,12 +36,19 @@ $(OUT_HTML_FILES): $(OUT_CSS_FILES)
 $(outdir)/%.css: %.css
        ln -f $< $@
 
+
+### Translations maintenance targets
+
 po-update:
        make -C po po-update
 
 all-translations-update: po-update translation-status
        $(foreach lang, $(LANGS), make ISOLANG=$(lang) skeleton-update snippet-update &&) true
 
+ifneq ($(NO_COLOR),)
+CHECK_TRANSLATION_FLAGS = --no-color
+endif
+
 ifneq ($(ISOLANG),)
 new-lang:
        @if (( $$(file -b $(ISOLANG)) == directory )) 2>/dev/null; \
@@ -52,7 +59,7 @@ new-lang:
        cp fr/GNUmakefile $(ISOLANG)
        cp fr/user/GNUmakefile $(ISOLANG)/user
        sed -i -e 's/ISOLANG *= *fr/ISOLANG = $(ISOLANG)/' $(ISOLANG)/GNUmakefile $(ISOLANG)/user/GNUmakefile
-       $(PYTHON) $(buildscript-dir)/texi-langutils.py -d $(outdir) -l $(ISOLANG) -o doc.pot --skeleton --gettext ../user/lilypond-learning.tely
+       $(auxscript-dir)/texi-langutils.py -d $(outdir) -l $(ISOLANG) -o doc.pot --skeleton --gettext ../user/lilypond-learning.tely
        mv $(outdir)/*.*tely $(ISOLANG)/user
        msgmerge -U po/lilypond-doc.pot $(outdir)/doc.pot
        cp po/lilypond-doc.pot po/$(ISOLANG).po
@@ -60,17 +67,13 @@ new-lang:
 
 CHECKED_FILES = $(ISOLANG)/index.html.in $(shell find $(ISOLANG)/user/ -maxdepth 1 -name '*.*te??')
 
-ifneq ($(NO_COLOR),)
-CHECK_TRANSLATION_FLAGS = --no-color
-endif
-
 TELY_FILES = $(call src-wildcard,$(ISOLANG)/user/*.tely)
 skeleton-update:
-       $(PYTHON) $(buildscript-dir)/texi-langutils.py -d $(outdir) -l $(ISOLANG) --skeleton $(TELY_FILES:$(ISOLANG)/user/%.tely=../user/%.tely)
-       $(PYTHON) $(buildscript-dir)/texi-skeleton-update.py $(ISOLANG)/user $(outdir)
+       $(auxscript-dir)/texi-langutils.py -d $(outdir) -l $(ISOLANG) --skeleton $(TELY_FILES:$(ISOLANG)/user/%.tely=../user/%.tely)
+       $(auxscript-dir)/texi-skeleton-update.py $(ISOLANG)/user $(outdir)
 
 snippet-update:
-       $(PYTHON) $(buildscript-dir)/update-snippets.py user $(ISOLANG)/user '*.itely'
+       $(auxscript-dir)/update-snippets.py user $(ISOLANG)/user '*.itely'
 
 DOCUMENTS_INCLUDES:=-I $(ISOLANG)/user \
 -I $(top-build-dir)/Documentation/$(ISOLANG)/user/out-www \
@@ -88,22 +91,22 @@ DOCUMENTS_INCLUDES:=-I user \
 endif # ISOLANG
 
 check-xrefs:
-       $(PYTHON) $(buildscript-dir)/check_texi_refs.py --batch \
-       $(DOCUMENTS_INCLUDES) $(buildscript-dir)/manuals_definitions.py
+       $(auxscript-dir)/check_texi_refs.py --batch \
+       $(DOCUMENTS_INCLUDES) $(auxpython-dir)/manuals_definitions.py
 
 fix-xrefs:
-       $(PYTHON) $(buildscript-dir)/check_texi_refs.py --auto-fix \
-       $(DOCUMENTS_INCLUDES) $(buildscript-dir)/manuals_definitions.py
+       $(auxscript-dir)/check_texi_refs.py --auto-fix \
+       $(DOCUMENTS_INCLUDES) $(auxpython-dir)/manuals_definitions.py
 
 check-translation:
-       $(PYTHON) $(buildscript-dir)/check_translation.py $(CHECK_TRANSLATION_FLAGS) $(CHECKED_FILES)
+       $(auxscript-dir)/check_translation.py $(CHECK_TRANSLATION_FLAGS) $(CHECKED_FILES)
 
 update-translation:
-       $(PYTHON) $(buildscript-dir)/check_translation.py --update $(CHECK_TRANSLATION_FLAGS) $(CHECKED_FILES)
+       $(auxscript-dir)/check_translation.py --update $(CHECK_TRANSLATION_FLAGS) $(CHECKED_FILES)
 
 translation-status:
        make -C po out=www messages
-       $(PYTHON) $(buildscript-dir)/translations-status.py
+       $(auxscript-dir)/translations-status.py
 
 local-help: extra-local-help
 
diff --git a/Documentation/SConscript b/Documentation/SConscript
deleted file mode 100644 (file)
index 5813e91..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-# -*-python-*-
-
-Import ('env')
-env.AT_COPY ('index.html.in')
-
diff --git a/Documentation/TRANSLATION b/Documentation/TRANSLATION
deleted file mode 100644 (file)
index 9cf1fe1..0000000
+++ /dev/null
@@ -1,685 +0,0 @@
-LILYPOND DOCUMENTATION TRANSLATION
-
-TABLE OF CONTENTS
-
-SOURCES
-GIT
-REQUIREMENTS
-WHICH DOCUMENTATION CAN BE TRANSLATED
-STARTING A TRANSLATION IN A NEW LANGUAGE
-FILES TO BE TRANSLATED
-TRANSLATION DETAILED INSTRUCTIONS
-* LEARNING MANUAL AND OTHER TEXINFO DOCUMENTATION
-* REFERENCE NOTATION AND PROGRAM USAGE MANUAL
-* DOCUMENTATION INDEX index.html.in
-CHECK STATE OF TRANSLATION
-UPDATE A TRANSLATION
-POLICY DURING GDP PROCESS
-MANAGING TRANSLATIONS WITH GIT
-SOME GIT TIPS
-DEALING WITH SEVERAL GIT BRANCHES
-GIT PUSH ACCESS
-TECHNICAL BACKGROUND
-
-
-SOURCES
-
-The sources live in a GIT repository.  Git 1.5.x is required, and
-latest version available on your platform is always recommended.  To
-get a fresh version of LilyPond sources run
-
-    mkdir lily ; cd lily ; git init-db ; mkdir .git/remotes
-
-then write the two following lines to a text file named .git/remotes/trans
-
-URL: git://git.sv.gnu.org/lilypond.git/
-Pull: lilypond/translation:refs/remotes/origin/lilypond/translation
-
-then run
-
-    git fetch trans
-    git checkout -b lilypond/translation origin/lilypond/translation
-
-
-GIT
-
-The reader is supposed to be familiar with Git, for example by
-having experience from lilypond.org translation; see
-http://git.sv.gnu.org/gitweb/?p=lilypond.git;a=blob_plain;f=README;hb=web/master
-
-
-REQUIREMENTS
-
-Working on LilyPond documentation translations requires:
-
-    * python
-    * make
-    * gettext
-
-
-WHICH DOCUMENTATION CAN BE TRANSLATED
-
-The makfiles and scripts infrastructure currently supports translation
-of the following documentation:
-
-    * documentation index (HTML)
-    * user manual and program usage -- Texinfo source, PDF and HTML
-output; Info output might be added if there is enough demand for it.
-
-
-STARTING A TRANSLATION IN A NEW LANGUAGE
-
-At top of the source directory, do
-
-    ./autogen.sh
-
-or (if you want to install your self-compiled LilyPond locally):
-
-    ./autogen.sh --prefix=$HOME
-
-If you want to compile LilyPond -- which is almost required to build
-the docs, but is not required to do translation only -- fix all
-dependencies and rerun ./configure (with the same options as for
-autogen).
-
-Cd into Documentation and run:
-
-    make ISOLANG=<MY-LANGUAGE> new-lang
-
-where <MY-LANGUAGE> is the ISO 639 language code.
-
-Add a language definition for your language in
-buildscripts/langdefs.py.
-
-See next section about what files to translate and the following
-detailed instructions after the next section.
-
-
-FILES TO BE TRANSLATED
-
-All the following files are in Documentation/
-Translation of Documentation/foo/bar should be
-Documentation/<LANG>/foo/bar.
-Unmentioned files should not be translated.
-
-Priorities:
-  1. delivery
-  2. 3. 4. 5. later
-  6. optional
-
-Files marked with priority 3, 4 or 5 may be submitted individually.
-Word counts (excluding lilypond snippets) are given for each file.
-
--1- Documentation index and Tutorial
-415   user/lilypond-learning.tely
-6365  user/tutorial.itely
-23    user/dedication.itely
-409   user/macros.itexi
-171   index.html.in
-3792  po/lilypond-doc.pot (translate to po/<MY_LANGUAGE>.po)
-11175 total
-
--2- Introduction and beginning of Application Usage
-411   user/preface.itely
-3855  user/introduction.itely
-393   user/lilypond-program.tely
-1867  user/install.itely (partial translation)
-1149  user/setup.itely
-2896  user/running.itely
-10571 total
-
--3- Learning manual
-10318 user/fundamental.itely -- Fundamental concepts
-12705 user/tweaks.itely -- Tweaking output
-3007  user/working.itely -- Working on LilyPond files
-483   user/templates.itely -- Templates
-26513 total
-
--4- Notation reference
-680   user/lilypond.tely
-91    user/notation.itely -- Musical notation
-3147  user/pitches.itely
-6527  user/rhythms.itely
-1110  user/expressive.itely
-556   user/repeats.itely
-1452  user/simultaneous.itely
-1603  user/staff.itely
-902   user/editorial.itely
-2410  user/text.itely
-76    user/specialist.itely -- Specialist notation
-2679  user/vocal.itely
-1326  user/chords.itely
-702   user/piano.itely
-810   user/percussion.itely
-826   user/guitar.itely
-66    user/strings.itely
-242   user/bagpipes.itely
-4240  user/ancient.itely
-5689  user/input.itely -- Input syntax
-2164  user/non-music.itely -- Non-musical notation
-8297  user/spacing.itely -- Spacing issues
-11307 user/changing-defaults.itely -- Changing defaults
-5202  user/programming-interface.itely -- Interfaces for programmers
-1155  user/notation-appendices.itely -- Notation manual tables
-250   user/cheatsheet.itely -- Cheat sheet
-63509 total
-
--5- Application usage
-3194  user/lilypond-book.itely -- LilyPond-book
-1171  user/converters.itely -- Converting from other formats
-4365  total
-
--6- Appendices whose translation is optional
-310   user/literature.itely
-960   user/scheme-tutorial.itely (needs to be revised first)
-1270  total
-
-
-TRANSLATION DETAILED INSTRUCTIONS
-
-Please follow all these instructions with care to ensure quality work.
-
-All files should be encoded in UTF-8.
-
-* LEARNING MANUAL AND OTHER TEXINFO DOCUMENTATION
-
-Any title which comes with one of the following commands must not be
-translated directly in the Texinfo source
-
-@node                                                   @majorheading
-@chapter       @unnumbered          @appendix           @chapheading
-@section       @unnumberedsec       @appendixsec        @heading
-@subsection    @unnumberedsubsec    @appendixsubsec     @subheading
-@subsubsection @unnumberedsubsubsec @appendixsubsubsec  @subsubheading
-@ref           @rglos
-
-As a notable exception, the second argument 'Bar baz' of
-@ref{Foo,'Bar baz',,info-file} should be translated.
-
-@uref's names are to be translated.
-
-In any section which looks like
-
-@menu
-* node1:: thing1
-* node2:: thing2
-...
-@end menu
-
-the node names (nodeN) are NOT to be translated, whereas extra title
-information (thingN) is.
-
-Every node name or section title must from now on be translated
-separately in a .po file (just as well as LilyPond output messages).
-This .po file should be in Documentation/po.
-
-
-Take care of using typographic rules for your language, especially in
-user/macros.itexi.
-
-
-Please keep verbatim copies of music snippets (in @lilypond blocs).
-However, some music snippets containing text that shows in the
-rendered music, and sometimes translating this text really helps the
-user to understand the documentation; in this case, and only in this
-case, you may as an exception translate text in the music snippet, and
-then you must add a line immediately before the @lilypond block,
-beginning with
-
-@c KEEP LY
-
-Otherwise the music snippet would be reset to the same content as the
-English version at next 'make snippet-update' run (see UPDATING A
-TRANSLATION below).
-
-When you encounter
-
-  @lilypondfile[<number of fragment options>,texidoc]{FILENAME.ly}
-
-in the source, open input/lsr/FILENAME.ly, translate the `texidoc'
-header field it contains, enclose it with 'texidoc<MY-LANGUAGE> = "'
-and '"', and write it into input/texidocs/FILENAME.texidoc -- please
-keep possibly existing translations in other languages!
-Additionnally, you may translate the snippet's title in `doctitle'
-header field, in case `doctitle' is a fragment option used in
-@lilypondfile; you can do this exactly the same way as `texidoc'.  For
-instance, input/texidocs/FILENAME.texidoc may contain
-
-doctitlees = "Spanish title baz"
-texidoces = "
-Spanish translation blah
-"
-doctitlede = "German title bar"
-texidocde = "German translation foo
-"
-
-
-@example blocs need not be verbatim copies, e.g. variable names,
-file names and comments should be translated.
-
-Index entries (@cindex and so on) should be translated.
-
-Carefully apply every rule exposed in Documentation/README.txt.  If
-one of these rules conflicts with a rule specific to your language,
-please ask the Translation meister and/or the Documentation Editor on
-lilypond-devel@gnu.org.
-
-
-* REFERENCE NOTATION AND PROGRAM USAGE MANUAL
-
-Copy user/lilypond.tely (or user/lilypond-program.tely, respectively)
-into <MY-LANGUAGE>/user, then translate this file and run
-skeleton-update (see UPDATE A TRANSLATION below).  Your are now ready
-to translate notation reference (program usage manual, respectively)
-exactly like the learning manual.
-
-
-* DOCUMENTATION INDEX index.html.in
-
-Unlike almost all HTML pages in this documentation, links in this page
-are not tweaked by add_html_footer.py, so links should be manually
-edited to link to existing translations.
-
-
-CHECK STATE OF TRANSLATION
-
-First pull, then cd into Documentation (or at top of the source tree,
-replace 'make' with 'make -C Documentation') and run
-
-    make ISOLANG=<MY_LANGUAGE> check-translation
-
-This presents a diff of the original files since the most recent
-revision of the translation.  To check a single file, cd into
-Documentation and run
-
-    make CHECKED_FILES=<MY-LANGUAGE>/user/foo.itely check-translation
-
-
-Small tip: to see only which files need to be updated, do
-
-    make ISOLANG=<MY_LANGUAGE> check-translation | grep 'diff --git'
-
-To avoid printing terminal colors control characters, which is often
-desirable when you redirect output to a file, run
-
-    make ISOLANG=<MY_LANGUAGE> NO_COLOR=1 check-translation
-
-
-Global state of the translation is recorded in
-Documentation/translations.html.in, which is used to generate
-Translations status page.  To update that page, do from Documentation/
-
-    make translation-status
-
-This will also leave out/translations-status.txt, which contains
-up-to-dateness percentages for each translated file, and update word
-counts of documentation files in this file.
-
-
-UPDATE A TRANSLATION
-
-Instead of running check-translation, you can run update-translation,
-which will run your favorite text editor to update files.  First, make
-sure environment variable EDITOR is set to a text editor command, then
-run from Documentation
-
-    make ISOLANG=<MY-LANGUAGE> update-translation
-
-or to update a single file
-
-    make CHECKED_FILES=<MY-LANGUAGE>/user/foo.itely update-translation
-
-For each file to be udpated, update-translation will open your text
-editor with this file and a diff of the file in English; if the diff
-cannot be generated or is bigger than the file in English itself, the
-full file in English will be opened instead.
-
-Texinfo skeleton files, i.e. .itely files not yet translated,
-containing only the Texinfo structure can be updated automatically:
-whenever 'make check-translation' shows that such files should be
-updated, run from Documentation
-
-    make ISOLANG=<MY_LANGUAGE> skeleton-update
-
-.po message catalogs in Documentation/po may be updated with (from
-Documentation or Documentation/po)
-
-    make po-update
-
-WARNING: if you run po-update and somebody else does the same and
-pushes before you push or send a patch to be applied, there will be a
-conflict when you pull.  Therefore, it is better that only the
-Translation meister runs this command.
-
-Updating music snippets can quickly become cumbersome, as most
-snippets should be identical in all languages.  Fortunately, there is
-a script that can do this odd job for you (run from Documentation):
-
-    make ISOLANG=<MY_LANGUAGE> snippet-update
-
-This script overwrites music snippets in <MY_LANGUAGE>/user/every.itely
-with music snippets from user/every.itely.  It ignores skeleton files,
-and keeps intact music snippets preceded with a line starting with '@c
-KEEP LY'; it reports an error for each .itely that has not the same
-music snippet count in both languages.
-
-Finally, a command runs the three update processes above for all
-enabled languages (from Documentation):
-
-    make all-translations-update
-
-Use this command with caution, and keep in mind it will not be really
-useful until translations are stabilized after the end of GDP.
-
-
-POLICY DURING GDP PROCESS
-or "How to maintain translations without updating them"
-
-During GDP progress, documentation changes so much, and translators are
-often involved in GDP too, so keeping translations up to date is very
-difficult.  However, it is possible -- and even recommended -- to
-perform some maintaining that keeps translated documentation usable
-and eases future translation updating.  The rationale below the tasks
-list motivates this plan.
-
-The following tasks are listed in decreasing priority order.
-
-1) Update macros.itexi.  For each obsolete macro definition, if it is
-possible to update macro usage in documentation with an automatic text
-or regexp substitution, do it and delete the macro definition from
-macros.itexi; otherwise, mark this macro definition as obsolete with a
-comment, and keep it in macros.itexi until the documentation
-translation has been updated and no longer uses this macro.
-
-2) Update *.tely files completely with make check-translation -- you
-may want to redirect ouptput to a file because of overwhelming output,
-or call check-translation.py on individual files, see CHECK STATE OF
-TRANSLATION.
-
-3) in .itelys, match sections and .itely file names with those from
-English docs, which possibly involves moving nodes contents in block
-between files, without updating contents itself.  In other words, the
-game is catching where has gone each section.  In Learning manual, and
-in Notation Reference sections which have been revised in GDP, there
-may be completely new sections: in this case, copy @node and
-@section-command from English docs, and add the marker for
-untranslated status '@untranslated' on a single line.  Note that it is
-not possible to exactly match subsections or subsubsections of
-documentation in English, when contents has been deeply revised; in
-this case, keep obsolete (sub)subsections in the translation, marking
-them with a line '@c obsolete' just before the node.
-
-4) update sections finished in GDP; check sections status at GDP website.
-
-
-* Hints for Emacs users
-
-Emacs with Texinfo mode makes this step easier:
-
-- without Emacs AucTeX installed, C-c C-s shows structure of current
-Texinfo file in a new buffer *Occur*; to show structure of two files 
-simultaneously, first split Emacs window in 4 tiles (with C-x 1 and 
-C-x 2), press C-c C-s to show structure of one file (e.g. the translated
-file), copy *Occur* contents into *Scratch*, then press C-c C-s for the 
-other file.
-If you happen to have installed AucTeX, you can either call the macro
-by doing M-x texinfo-show-structure or create a key binding in your
-~/.emacs, by adding the four following lines:
-       (add-hook 'Texinfo-mode-hook
-                 '(lambda ()
-                    (define-key Texinfo-mode-map "\C-cs"
-                     'texinfo-show-structure)))
-and then obtain the structure in the *Occur* buffer with C-c s
-
-
-- Do not bother updating @menus when all menu entries are in the same
-file ; make sure there is at least a (possibly empty) @menu block
-everywhere it is needed, then do C-c C-u C-a ("update all menus") when
-you have updated all the rest of the file.
-
-- Moving to next or previous node: press C-s and type node (or C-s
-@node if the text contains the word 'node') then press C-s to move to
-next node or C-r to move to previous node.  Similar operation can be
-used to move to the next/previous section.
-
-- Moving a whole node (or even a sequence of nodes): jump to beginning
-of the node (quit incremental search by pressing an arrow), press
-C-SPACE, press C-s node and repeat C-s until you have selected enough
-text, cut it with C-w or C-x, jump to the right place (moving between
-nodes with the previous hint is often useful) and paste with C-y or
-C-v.
-
-
-4) update documentation PO.  Unless you have special interest in
-having all titles translated in the next development release, it is
-better to wait until step 3) has been completed, to avoid doing the
-work more than once.
-
-5) Fix broken cross-references by running (from Documentation/)
-
-  make ISOLANG=<YOUR-LANGUAGE> fix-xrefs
-
-This step requires a sucessful documentation build (with 'make web').
-Some cross-references are broken because they point to a node that
-exists in the documentation in English, which has not been added to
-the translation; in this case, do not fix the cross-reference but keep
-it "broken", so that the resulting HTML link will point to an existing
-page of documentation in English.
-
-Rationale
-
-You may wonder if it would not be better to leave translations as-is
-until you can really start updating translations.  There are several
-reasons to do these maintenance tasks right now.
-
-- This will have to be done sooner or later anyway, before updating
-translation of documentation contents, and this can already be done
-without needing to be redone later, as sections of documentation in
-English are mostly revised once.  However, note that not all
-documentation sectioning has been revised in one go, so all this
-maintenance plan has to be repeated whenever a big reorganization is
-made. Currently (in May 2008), only chapters 3-7 in Notation Reference
-and Application Usage have not been reorganized yet.
-
-- This just makes translated documentation take advantage of the new
-organization, which is far better than the old one.
-
-- Moving and renaming sections to match sectioning of documentation in
-English simplify future updating work: it allows updating the
-translation by side-by-side comparison, without bothering whether
-cross-reference names already exist in the translation.
-
-- Each maintenance task (except 4) updating PO files) can be done by
-the same person for all languages, which saves overall time spent by
-translators to achieve this task: the node names and section titles
-are in English, so you can do.  It is important to take advantage of
-this now, as it will be more complicated (but still possible) to do
-step 3) in all languages when documentation is compiled with
-texi2html and node names are directly translated in source files.
-
-
-MANAGING TRANSLATIONS WITH GIT
-
-This policy explains how to manage Git branches and commit
-translations to Git.
-
-* Translation changes matching master branch are preferably made on
-lilypond/translation branch; they may be pushed directly on master
-only if they do not break compilation of LilyPond and its
-documentation, and in this case they should be pushed to
-lilypond/translation too.  Similarly, changes matching stable/X.Y are
-preferably made on lilypond/X.Ytranslation.
-
-* lilypond/translation Git branch may be merged into master only if
-LilyPond ('make all') and documentation ('make web') compile
-succesfully.
-
-* master Git branch may be merged into lilypond/translation whenever
-'make' and 'make web' are succesful (in order to ease documentation
-compilation by translators), or when significant changes had been made
-in documentation in English in master branch.
-
-* General maintenance may be done by anybody who knows what he does
-in documentation in all languages, without informing translators
-first.  General maintenance include simple text substitutions
-(e.g. automated by sed), compilation fixes, updating Texinfo or
-lilypond-book commands, updating macros, updating ly code, fixing
-cross-references, and operations described in 'POLICY DURING GDP
-PROCESS'.
-
-
-SOME GIT TIPS
-
-* Saving uncommited changes in the working tree:
-
-    git diff > foo.diff
-
-This does not save untracked or ignored files.  If you prefer to
-include changes added to the index with 'git add', replace 'git diff'
-with 'git diff HEAD'.
-Then, you may try to apply foo.diff on a source tree with
-
-    patch -p1 < foo.diff
-
-
-DEALING WITH SEVERAL GIT BRANCHES
-
-* It is possible to work with several branches on the same local Git
-repository; this is especially useful for translators who may have to
-deal with both lilypond/translation and a stable branch
-(e.g. stable/2.12 or lilypond/translation-2.12).  To fetch and check
-out a new branch named BRANCH on git.sv.gnu.org, write the two
-following lines to a text file named .git/remotes/SHORTHAND --
-SHORTHAND is the name of the remote file, i.e. whatever easy-to-type
-name you would like to use when pulling or pushing BRANCH, and usually
-SHORTHAND is an abbreviation of BRANCH without slashes
-
-URL: git://git.sv.gnu.org/lilypond.git/
-Pull: BRANCH:refs/remotes/origin/BRANCH
-
-Then, run
-
-    git fetch SHORTHAND
-    git checkout -b BRANCH origin/BRANCH
-
-After this, you are able to pull BRANCH from git.sv.gnu.org with
-
-    git pull SHORTHAND
-
-You can check out another branch OTHER_BRANCH, i.e. check out
-OTHER_BRANCH to the working tree, with
-
-    git checkout OTHER_BRANCH
-
-E.g. lilypond/translation, which you still have in your local Git
-repository but is no longer checked out since you have created the new
-branch BRANCH.
-
-Note that it is possible to check out another branch while having
-uncommitted changes, but it is not recommended unless you know what
-you are doing; it is recommended to run 'git status' to check this
-kind of issue before checking out another branch.
-
-When pulling using SHORTHAND, do not forget to check first that the
-right branch is checked out, i.e. the branch named A in the first part
-of the "A:B" refspec in .git/remotes/SHORTHAND: as a matter of fact,
-when you pull using A:B refspec, Git fetch A on the server as B remote
-branch on your local repository, then tries to merge B into the
-currently checked out branch.
-
-To remember which branch is currently checked out, run 'git branch',
-which will list all branches and mark the currently checked out branch
-with a star, or 'git status'.
-
-
-* To merge branch FOO into branch BAR, i.e. to "add" all changes made
-in branch FOO to branch BAR, run
-
-    git checkout BAR
-    git merge FOO
-
-If any conflict happens, please carefully follow the instructions
-given by 'git merge' -- you usually must resolve conflicts with a text
-editor by merging pieces of files marked with "<<<" "===" and ">>>",
-removing these 3 kinds of conflict marks, then commit the result
-exactly like a usual commit.
-
-For example, as a translator, you will often want to merge master into
-lilypond/translation; on the other hand, the Translations meister
-wants to merge lilypond/translation into master whenever he has
-checked that lilypond/translation builds successfully.
-
-
-* If you play with several Git branches (e.g. master,
-lilypond/translation, stable/2.12), you may want to have one source
-and build tree for each branch; this is possible with subdirectories
-of your local Git repository, used as local cloned subrepositories.
-To create a local clone for the branch named BRANCH, run
-
-    git checkout BRANCH
-    git clone -l -s -n . SUBDIR
-    cd SUBDIR
-    git reset --hard
-
-Note that SUBDIR must be a directory name which does not already
-exist.  In SUBDIR, you can use all Git commands to browse revisions
-history, commit and uncommit changes; to update the cloned
-subrepository with changes made on the main repository, cd into SUBDIR
-and run 'git pull'; to send changes made on the subrepository back to
-the main repository, run 'git push' from SUBDIR.  Note that only one
-branch (the currently checked out branch) is created in the
-subrepository by default; it is possible to have several branches in a
-subrepository and do usual operations (checkout, merge, create,
-delete...) on these branches, but this possibility is not detailed
-here.
-
-Note that when you push BRANCH from SUBDIR to the main repository,
-and BRANCH is checked out in the main repository, you must save
-uncommitted changes (see SOME GIT TIPS) and do 'git reset --hard' in
-the main repository in order to apply pushed changes in the working
-tree of the main repository.
-
-
-GIT PUSH ACCESS
-
-If you have permission to push to Git with login USER, please start a
-new Git repository from scratch to avoid polluting history with
-duplicate commits; follow the usual instructions, except that every
-file you write in .git/remotes should contain instead
-
-URL: ssh://USER@git.sv.gnu.org/srv/git/lilypond.git
-Push: BRANCH:refs/heads/BRANCH
-Pull: BRANCH:refs/remotes/origin/BRANCH
-
-Then, you can use .git/remotes/NAME to push BRANCH with
-
-    git push NAME
-
-which works regardless of the branch checked out.
-
-
-TECHNICAL BACKGROUND
-
-A number of Python scripts handle a part of the documentation
-translation process.  All are located in buildscripts/, except
-langdefs.py which is in python/
-
-* buildlib.py -- module containing common functions (read piped output
-of a shell command, use Git)
-* langdefs.py  -- language definitions module
-* check_translation.py  -- show diff to update a translation
-* texi-langutils.py  -- quickly and dirtily parse Texinfo files to
-make message catalogs and Texinfo skeleton files
-* texi-skeleton-update.py -- update Texinfo skeleton files
-* html-gettext.py -- translate node names, section titles and cross
-references in HTML files generated by makeinfo
-* add_html_footer.py (module imported by www_post.py) -- add footer and
-tweak links in HTML pages
-* texi-gettext.py -- gettext node names, section titles and references
-before calling texi2pdf
-* mass-link.py -- link or symlink files between English documentation
-and documentation in other languages
-* update-snippets.py -- synchronize ly snippets with those from
-English docs
-* translations-status.py -- update translations status pages and word
-counts in the file you are reading.
index 89eb2d0bcbdde74bedc256b49a832e3edb5bbebd..798dad58a65c482e0aaede203dc9cc78dacccd79 100644 (file)
@@ -27,7 +27,7 @@ $(outdir)/%.bib: %.bib
        ln -f $< $@
 
 $(outdir)/%.html: %.bib
-       BSTINPUTS=$(src-dir) $(PYTHON) $(buildscript-dir)/bib2html.py -o $@ $<
+       BSTINPUTS=$(src-dir) $(buildscript-dir)/bib2html -o $@ $<
 
 local-clean:
        rm -f fonts.aux fonts.log feta*.tfm feta*.*pk
diff --git a/Documentation/bibliography/SConscript b/Documentation/bibliography/SConscript
deleted file mode 100644 (file)
index 538cfbd..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-# -*-python-*-
-
-Import ('env', 'src_glob')
-bib = src_glob ('*.bib')
-env.AT_COPY ('index.html.in')
-
-# todo: must make html-long.bst as source too.
-#  make as source?
-
-map (env.BIB2HTML, bib)
-env.Alias ('doc', bib)
-
index b848cd33d6251dd99222dc497fced4c898727f4f..90a768d6e9248b3a335e488dff37adead085f8f3 100644 (file)
@@ -1,6 +1,6 @@
 <html>
 <!--
-    Translation of GIT committish: b6d70bb967c980446372dab1d29ed8b40608b7c4
+    Translation of GIT committish: ee314252b42fe4eb69c87c13a38644bc214ff27f
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
@@ -65,7 +65,7 @@ als <a class="title" href="user/lilypond-learning.de.pdf">PDF</a>)
          <ul>
            <li>
 <a class="title" href="user/lilypond/index.de.html">Notationsreferenz (NR)</a>
- (auf <a class="title" href="user/lilypond-big-page.html">einer gro&szlig;en Seite</a> ~ 4 MB,
+ (auf <a class="title" href="user/lilypond-big-page.de.html">einer gro&szlig;en Seite</a> ~ 4 MB,
  als <a class="title" href="user/lilypond.de.pdf">PDF</a>)
        <br>(Notation mit LilyPond setzen.)
        <br>(<strong>Achtung:</strong> dieses Dokument ist erst teilweise auf deutsch &uuml;bersetzt,<br>
@@ -85,7 +85,7 @@ als <a class="title" href="user/lilypond-learning.de.pdf">PDF</a>)
          <ul>
          <li>
             <a class="title" href="user/lilypond-program/index.de.html">Anwendungsbenutzung (AU)</a>
- (auf <a class="title" href="user/lilypond-program-big-page.html">einer gro&szlig;en Seite</a>,
+ (auf <a class="title" href="user/lilypond-program-big-page.de.html">einer gro&szlig;en Seite</a>,
  als <a class="title" href="user/lilypond-program.de.pdf">PDF</a>)
        <br>(Wie das Programm installiert und gestartet wird.)</li>
           
@@ -100,7 +100,7 @@ als <a class="title" href="user/lilypond-snippets.pdf">PDF</a>)
         <tr>
           <td valign="baseline" class="left-column">
        <ul>
-            <li><a class="title"  href="devel.html">Resourcen f&uuml;r Entwickler</a>
+            <li><a class="title"  href="devel/index.html">Resourcen f&uuml;r Entwickler</a>
             <br>(Dokumentation f&uuml;r Entwickler und Mitwirkende.)</li>
        </ul>
     </td><td class="right-column">
index ad30f4f2e71f9c5d8cc3aa785a2b300616712438..079d91aa671c86675f675f843060fba853e9efc1 100644 (file)
@@ -1,4 +1,4 @@
-·<p><i>Zuletzt aktualisiert am·Mon Oct 27 11:16:48 UTC 2008
+·<p><i>Zuletzt aktualisiert am·Sat Feb 28 05:50:27 UTC 2009
 </i></p>
 <html>
 <!-- This page is automatically generated by translation-status.py from
@@ -58,11 +58,11 @@ translations.template.html.in; DO NOT EDIT !-->
   <th>Mehr Information</th>
  </tr>
  <tr align="left">
-  <td>Überschriften<br>(415)</td>
+  <td>Überschriften<br>(429)</td>
   <td>Till Rettig</td>
   <td></td>
   <td><span style="background-color: #1fff1f">ja</span></td>
-  <td><span style="background-color: #39ff22">teilweise</span></td>
+  <td><span style="background-color: #1fff1f">ja</span></td>
   <td>vor-GDP</td>
  </tr>
  <tr align="left">
@@ -79,7 +79,7 @@ translations.template.html.in; DO NOT EDIT !-->
    Reinhold Kainhofer</td>
   <td></td>
   <td><span style="background-color: #1fff1f">ja</span></td>
-  <td><span style="background-color: #25fe1f">teilweise</span></td>
+  <td><span style="background-color: #1fff1f">ja</span></td>
   <td>vor-GDP</td>
  </tr>
  <tr align="left">
@@ -87,7 +87,7 @@ translations.template.html.in; DO NOT EDIT !-->
   <td>Till Rettig</td>
   <td></td>
   <td><span style="background-color: #1fff1f">ja</span></td>
-  <td><span style="background-color: #47ff24">teilweise</span></td>
+  <td><span style="background-color: #1fff1f">ja</span></td>
   <td>vor-GDP</td>
  </tr>
  <tr align="left">
@@ -96,19 +96,19 @@ translations.template.html.in; DO NOT EDIT !-->
    Reinhold Kainhofer</td>
   <td></td>
   <td><span style="background-color: #1fff1f">ja</span></td>
-  <td><span style="background-color: #47ff24">teilweise</span></td>
+  <td><span style="background-color: #1fff1f">ja</span></td>
   <td>vor-GDP</td>
  </tr>
  <tr align="left">
-  <td>4 Die Ausgabe verändern<br>(12705)</td>
+  <td>4 Die Ausgabe verändern<br>(14775)</td>
   <td>Till Rettig</td>
   <td></td>
   <td><span style="background-color: #1fff1f">ja</span></td>
-  <td><span style="background-color: #91ff2e">teilweise</span></td>
+  <td><span style="background-color: #1fff1f">ja</span></td>
   <td>vor-GDP</td>
  </tr>
  <tr align="left">
-  <td>5 An LilyPond-Projekten arbeiten<br>(3007)</td>
+  <td>5 An LilyPond-Projekten arbeiten<br>(3144)</td>
   <td>Till Rettig</td>
   <td></td>
   <td><span style="background-color: #1fff1f">ja</span></td>
@@ -116,11 +116,11 @@ translations.template.html.in; DO NOT EDIT !-->
   <td>vor-GDP</td>
  </tr>
  <tr align="left">
-  <td>A Vorlagen<br>(483)</td>
+  <td>A Vorlagen<br>(498)</td>
   <td>Till Rettig</td>
   <td></td>
-  <td><span style="background-color: #1fff1f">ja</span></td>
-  <td><span style="background-color: #1fff1f">ja</span></td>
+  <td><span style="background-color: #dfef77">teilweise (40 %)</span></td>
+  <td><span style="background-color: #25fe1f">teilweise</span></td>
   <td>vor-GDP</td>
  </tr>
  <tr align="left">
@@ -143,20 +143,20 @@ translations.template.html.in; DO NOT EDIT !-->
   <th>Mehr Information</th>
  </tr>
  <tr align="left">
-  <td>Überschriften<br>(393)</td>
+  <td>Überschriften<br>(407)</td>
   <td>Till Rettig</td>
   <td></td>
   <td><span style="background-color: #1fff1f">ja</span></td>
-  <td><span style="background-color: #47ff24">teilweise</span></td>
+  <td><span style="background-color: #1fff1f">ja</span></td>
   <td>vor-GDP</td>
  </tr>
  <tr align="left">
-  <td>1 Installieren<br>(1867)</td>
+  <td>1 Installieren<br>(1901)</td>
   <td>Till Rettig<br>
    Reinhold Kainhofer</td>
   <td></td>
   <td><span style="background-color: #dfef77">teilweise (7 %)</span></td>
-  <td><span style="background-color: #33ff21">teilweise</span></td>
+  <td><span style="background-color: #1fff1f">ja</span></td>
   <td>vor-GDP</td>
  </tr>
  <tr align="left">
@@ -165,31 +165,32 @@ translations.template.html.in; DO NOT EDIT !-->
    Reinhold Kainhofer</td>
   <td></td>
   <td><span style="background-color: #1fff1f">ja</span></td>
-  <td><span style="background-color: #4efe25">teilweise</span></td>
+  <td><span style="background-color: #1fff1f">ja</span></td>
   <td>vor-GDP</td>
  </tr>
  <tr align="left">
-  <td>3 LilyPond starten<br>(2896)</td>
-  <td>Reinhold Kainhofer</td>
+  <td>3 LilyPond starten<br>(2827)</td>
+  <td>Reinhold Kainhofer<br>
+   Till Rettig</td>
   <td></td>
-  <td><span style="background-color: #dfef77">teilweise (84 %)</span></td>
-  <td><span style="background-color: #2cff20">teilweise</span></td>
+  <td><span style="background-color: #1fff1f">ja</span></td>
+  <td><span style="background-color: #1fff1f">ja</span></td>
   <td>vor-GDP</td>
  </tr>
  <tr align="left">
-  <td>4 @command{lilypond-book}: Noten in den Text integrieren<br>(3194)</td>
+  <td>4 @command{lilypond-book}: Noten in den Text integrieren<br>(3248)</td>
   <td>Reinhold Kainhofer</td>
-  <td></td>
+  <td>Till Rettig</td>
+  <td><span style="background-color: #1fff1f">ja</span></td>
   <td><span style="background-color: #1fff1f">ja</span></td>
-  <td><span style="background-color: #25fe1f">teilweise</span></td>
   <td>vor-GDP</td>
  </tr>
  <tr align="left">
   <td>5 Von anderen Formaten konvertieren<br>(1171)</td>
   <td>Reinhold Kainhofer</td>
-  <td></td>
+  <td>Till Rettig</td>
+  <td><span style="background-color: #1fff1f">ja</span></td>
   <td><span style="background-color: #1fff1f">ja</span></td>
-  <td><span style="background-color: #33ff21">teilweise</span></td>
   <td>vor-GDP</td>
  </tr>
 </table>
@@ -197,18 +198,18 @@ translations.template.html.in; DO NOT EDIT !-->
 
 <table align="center" border="2">
  <tr align="center">
-  <th>GNU LilyPond -- Das Notationsprogramm</th>  <th>Übersetzer</th>
+  <th>GNU LilyPond -- Notationsreferenz</th>  <th>Übersetzer</th>
   <th>Übersetzungsüberprüfer</th>
   <th>Übersetzt</th>
   <th>Aktuell</th>
   <th>Mehr Information</th>
  </tr>
  <tr align="left">
-  <td>Überschriften<br>(680)</td>
+  <td>Überschriften<br>(695)</td>
   <td>Till Rettig</td>
   <td></td>
   <td><span style="background-color: #1fff1f">ja</span></td>
-  <td><span style="background-color: #39ff22">teilweise</span></td>
+  <td><span style="background-color: #1fff1f">ja</span></td>
   <td>vor-GDP</td>
  </tr>
  <tr align="left">
@@ -220,7 +221,7 @@ translations.template.html.in; DO NOT EDIT !-->
   <td>vor-GDP</td>
  </tr>
  <tr align="left">
-  <td>1.1 Tonhöhen<br>(3147)</td>
+  <td>1.1 Tonhöhen<br>(3123)</td>
   <td>Till Rettig</td>
   <td></td>
   <td><span style="background-color: #1fff1f">ja</span></td>
@@ -228,15 +229,15 @@ translations.template.html.in; DO NOT EDIT !-->
   <td>vor-GDP</td>
  </tr>
  <tr align="left">
-  <td>1.2 Rhythmus<br>(6527)</td>
+  <td>1.2 Rhythmus<br>(5215)</td>
   <td>Till Rettig</td>
   <td></td>
-  <td><span style="background-color: #dfef77">teilweise (90 %)</span></td>
-  <td><span style="background-color: #ff6d58">teilweise</span></td>
+  <td><span style="background-color: #1fff1f">ja</span></td>
+  <td><span style="background-color: #1fff1f">ja</span></td>
   <td>vor-GDP</td>
  </tr>
  <tr align="left">
-  <td>1.3 Ausdrucksbezeichnungen<br>(1110)</td>
+  <td>1.3 Ausdrucksbezeichnungen<br>(1146)</td>
   <td>Till Rettig</td>
   <td></td>
   <td><span style="background-color: #1fff1f">ja</span></td>
@@ -244,7 +245,7 @@ translations.template.html.in; DO NOT EDIT !-->
   <td>vor-GDP</td>
  </tr>
  <tr align="left">
-  <td>1.4 Wiederholungszeichen<br>(556)</td>
+  <td>1.4 Wiederholungszeichen<br>(555)</td>
   <td>Till Rettig</td>
   <td></td>
   <td><span style="background-color: #1fff1f">ja</span></td>
@@ -252,7 +253,7 @@ translations.template.html.in; DO NOT EDIT !-->
   <td>vor-GDP</td>
  </tr>
  <tr align="left">
-  <td>1.5 Gleichzeitig erscheinende Noten<br>(1452)</td>
+  <td>1.5 Gleichzeitig erscheinende Noten<br>(1456)</td>
   <td>Till Rettig</td>
   <td></td>
   <td><span style="background-color: #1fff1f">ja</span></td>
@@ -260,15 +261,15 @@ translations.template.html.in; DO NOT EDIT !-->
   <td>vor-GDP</td>
  </tr>
  <tr align="left">
-  <td>1.6 Notation auf Systemen<br>(1603)</td>
+  <td>1.6 Notation auf Systemen<br>(1701)</td>
   <td>Till Rettig</td>
   <td></td>
   <td><span style="background-color: #1fff1f">ja</span></td>
-  <td><span style="background-color: #ff6f57">teilweise</span></td>
+  <td><span style="background-color: #1fff1f">ja</span></td>
   <td>vor-GDP</td>
  </tr>
  <tr align="left">
-  <td>1.7 Anmerkungen<br>(902)</td>
+  <td>1.7 Anmerkungen<br>(905)</td>
   <td>Till Rettig</td>
   <td></td>
   <td><span style="background-color: #1fff1f">ja</span></td>
@@ -276,11 +277,11 @@ translations.template.html.in; DO NOT EDIT !-->
   <td>vor-GDP</td>
  </tr>
  <tr align="left">
-  <td>1.8 Text<br>(2410)</td>
-  <td></td>
-  <td></td>
-  <td><span style="background-color: #d0f0f8">nein</span></td>
+  <td>1.8 Text<br>(2376)</td>
+  <td>Till Rettig</td>
   <td></td>
+  <td><span style="background-color: #1fff1f">ja</span></td>
+  <td><span style="background-color: #1fff1f">ja</span></td>
   <td>vor-GDP</td>
  </tr>
  <tr align="left">
@@ -288,99 +289,99 @@ translations.template.html.in; DO NOT EDIT !-->
   <td>Till Rettig</td>
   <td></td>
   <td><span style="background-color: #1fff1f">ja</span></td>
-  <td><span style="background-color: #47ff24">teilweise</span></td>
+  <td><span style="background-color: #1fff1f">ja</span></td>
   <td>vor-GDP</td>
  </tr>
  <tr align="left">
-  <td>2.1 Notation von Gesang<br>(2679)</td>
-  <td></td>
-  <td></td>
-  <td><span style="background-color: #d0f0f8">nein</span></td>
+  <td>2.1 Notation von Gesang<br>(2725)</td>
+  <td>Till Rettig</td>
   <td></td>
+  <td><span style="background-color: #1fff1f">ja</span></td>
+  <td><span style="background-color: #1fff1f">ja</span></td>
   <td>vor-GDP</td>
  </tr>
  <tr align="left">
-  <td>2.2 Tasteninstrumente und andere Instrumente mit mehreren Systemen<br>(679)</td>
+  <td>2.2 Tasteninstrumente und andere Instrumente mit mehreren Systemen<br>(747)</td>
   <td>Till Rettig</td>
   <td></td>
   <td><span style="background-color: #1fff1f">ja</span></td>
-  <td><span style="background-color: #ff6f57">teilweise</span></td>
+  <td><span style="background-color: #1fff1f">ja</span></td>
   <td>vor-GDP</td>
  </tr>
  <tr align="left">
-  <td>2.3 Bundlose Saiteninstrumente<br>(234)</td>
+  <td>2.3 Bundlose Saiteninstrumente<br>(235)</td>
   <td>Till Rettig</td>
   <td></td>
-  <td><span style="background-color: #d0f0f8">nein</span></td>
-  <td><span style="background-color: #ff6d58">teilweise</span></td>
+  <td><span style="background-color: #1fff1f">ja</span></td>
+  <td><span style="background-color: #1fff1f">ja</span></td>
   <td>vor-GDP</td>
  </tr>
  <tr align="left">
-  <td>2.4 Saiteninstrumente mit Bünden<br>(1748)</td>
+  <td>2.4 Saiteninstrumente mit Bünden<br>(1850)</td>
   <td>Till Rettig</td>
   <td></td>
-  <td><span style="background-color: #dfef77">teilweise (16 %)</span></td>
-  <td><span style="background-color: #ff6d58">teilweise</span></td>
+  <td><span style="background-color: #1fff1f">ja</span></td>
+  <td><span style="background-color: #1fff1f">ja</span></td>
   <td>vor-GDP</td>
  </tr>
  <tr align="left">
   <td>2.5 Schlagzeug<br>(810)</td>
   <td>Till Rettig</td>
   <td></td>
-  <td><span style="background-color: #dfef77">teilweise (42 %)</span></td>
-  <td><span style="background-color: #ff6d58">teilweise</span></td>
+  <td><span style="background-color: #1fff1f">ja</span></td>
+  <td><span style="background-color: #1fff1f">ja</span></td>
   <td>vor-GDP</td>
  </tr>
  <tr align="left">
   <td>2.6 Blasinstrumente<br>(136)</td>
   <td>Till Rettig</td>
   <td></td>
-  <td><span style="background-color: #dfef77">teilweise (1 %)</span></td>
-  <td><span style="background-color: #ff6d58">teilweise</span></td>
+  <td><span style="background-color: #1fff1f">ja</span></td>
+  <td><span style="background-color: #1fff1f">ja</span></td>
   <td>vor-GDP</td>
  </tr>
  <tr align="left">
-  <td>2.7 Notation von Akkorden<br>(1326)</td>
+  <td>2.7 Notation von Akkorden<br>(1464)</td>
   <td>Till Rettig</td>
   <td></td>
-  <td><span style="background-color: #dfef77">teilweise (64 %)</span></td>
-  <td><span style="background-color: #ff6f57">teilweise</span></td>
+  <td><span style="background-color: #1fff1f">ja</span></td>
+  <td><span style="background-color: #1fff1f">ja</span></td>
   <td>vor-GDP</td>
  </tr>
  <tr align="left">
-  <td>2.8 Notation von alter Musik<br>(4240)</td>
+  <td>2.8 Notation von alter Musik<br>(4487)</td>
   <td>Till Rettig</td>
   <td></td>
-  <td><span style="background-color: #dfef77">teilweise (82 %)</span></td>
-  <td><span style="background-color: #ff6d58">teilweise</span></td>
+  <td><span style="background-color: #1fff1f">ja</span></td>
+  <td><span style="background-color: #1fff1f">ja</span></td>
   <td>vor-GDP</td>
  </tr>
  <tr align="left">
   <td>2.9 Weltmusik<br>(1115)</td>
+  <td>Till Rettig</td>
   <td></td>
-  <td></td>
-  <td><span style="background-color: #d0f0f8">nein</span></td>
-  <td></td>
+  <td><span style="background-color: #1fff1f">ja</span></td>
+  <td><span style="background-color: #1fff1f">ja</span></td>
   <td>vor-GDP</td>
  </tr>
  <tr align="left">
-  <td>3 Allgemeine Eingabe und Ausgabe<br>(5689)</td>
+  <td>3 Allgemeine Eingabe und Ausgabe<br>(5873)</td>
   <td>Till Rettig</td>
   <td></td>
-  <td><span style="background-color: #dfef77">teilweise (6 %)</span></td>
-  <td><span style="background-color: #ff8353">teilweise</span></td>
+  <td><span style="background-color: #1fff1f">ja</span></td>
+  <td><span style="background-color: #1fff1f">ja</span></td>
   <td>vor-GDP</td>
  </tr>
  <tr align="left">
-  <td>4 Abstände<br>(8297)</td>
+  <td>4 Abstände<br>(8569)</td>
   <td>Till Rettig</td>
   <td></td>
-  <td><span style="background-color: #dfef77">teilweise (14 %)</span></td>
-  <td><span style="background-color: #f6fe3b">teilweise</span></td>
+  <td><span style="background-color: #1fff1f">ja</span></td>
+  <td><span style="background-color: #1fff1f">ja</span></td>
   <td>vor-GDP</td>
  </tr>
  <tr align="left">
-  <td>5 Standardeinstellungen verändern<br>(11307)</td>
+  <td>5 Standardeinstellungen verändern<br>(11747)</td>
   <td></td>
   <td></td>
   <td><span style="background-color: #d0f0f8">nein</span></td>
@@ -404,11 +405,11 @@ translations.template.html.in; DO NOT EDIT !-->
   <td>vor-GDP</td>
  </tr>
  <tr align="left">
-  <td>B Notationsübersicht<br>(1155)</td>
+  <td>B Notationsübersicht<br>(1190)</td>
   <td>Till Rettig</td>
   <td></td>
-  <td><span style="background-color: #dfef77">teilweise (98 %)</span></td>
-  <td><span style="background-color: #e1ff39">teilweise</span></td>
+  <td><span style="background-color: #1fff1f">ja</span></td>
+  <td><span style="background-color: #1fff1f">ja</span></td>
   <td>vor-GDP</td>
  </tr>
  <tr align="left">
index e983bd2fedd6508c73941e8a88a985740d1311ec..50042f40cbe0c94b2b39495b192c1710d006dc86 100644 (file)
@@ -1,5 +1,4 @@
 ISOLANG = de
 depth = ../../..
 LOCALSTEPMAKE_TEMPLATES = lilypond ly doc-i18n-user
-BIG_PAGE_MANUALS = lilypond-learning
 include $(depth)/make/stepmake.make
index 8c3448842a1b20ad7dac7367f9490ed63ca0c982..6278eb3b7d99396921bf0313b7065c47593f52cb 100644 (file)
@@ -1,14 +1,13 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
 @c This file is part of lilypond.tely
 @ignore
-    Translation of GIT committish: d0614c27e88dc7bd3993f3744a388749ba93b267
+    Translation of GIT committish: 1677311677140d5dd113513a3a678e313724c9bf
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
-
+@c \version "2.12.0"
 
 @node Ancient notation
 @section Ancient notation
 @cindex Mensuralnotation
 
 @menu
-* Introduction to ancient notation::
-* Alternative note signs::
-* Additional note signs::
-* Pre-defined contexts::
-* Transcribing ancient music::
-* Editorial markings::
+* Overview of the supported styles::
+* Ancient notation---common features::
+* Typesetting mensural music::
+* Typesetting Gregorian chant::
+* Working with ancient music---scenarios and solutions::
 @end menu
 
+Unterstützung für Notation der Alten Musik enthält einige Eigenheiten
+der Mensuralnotation und der Notation des gregorianischen
+Chorals.  Diese Eigenheiten können eingestellt werden, indem
+man Stileigenschaften von graphischen Objekten wie Notenköpfen
+und Pausen verändert, oder indem man vordefinierte fertige
+Kontexte für mensurale oder Choralnotation einsetzt.
+
+Viele graphische Objekte, wie Notenköpfe, Fähnchen,
+Versetzungszeichen, Taktarten und Pausen haben eine
+@code{style}-Eigenschaft, die verändert werden kann,
+um verschiedene Stile Alter Notation nachzuahmen.  Siehe auch:
+
+@itemize
+@item @ref{Mensural note heads},
+@item @ref{Mensural accidentals and key signatures},
+@item @ref{Mensural rests},
+@item @ref{Mensural clefs},
+@item @ref{Gregorian clefs},
+@item @ref{Mensural flags},
+@item @ref{Mensural time signatures}.
+@end itemize
+
+Ein paar notationelle Konzepte sind inbesondere für die Notation
+Alter Musik eingeführt worden:
+
+@itemize
+@item @ref{Custodes},
+@item @ref{Divisiones},
+@item @ref{Ligatures}.
+@end itemize
+
+
+@c {{{1 Overview of the supported styles
+@node Overview of the supported styles
+@subsection Overview of the supported styles
+
+Drei Stile sind vorhanden, um den gregorianischen Choral zu
+setzen:
+
+@itemize
+@item @emph{Editio Vaticana} ist ein vollständiger Stil für den
+gregorianischen Choral, der stilistisch den Choralausgaben
+von Solsemes folgt.  Hierbei handelt es sich um die offizielle
+Choralausgabe des Vatikans seit 1904.  LilyPond unterstützt
+alle Notationszeichen, die in diesem Stil benutzt werden,
+inklusive Ligaturen, custodes und besondere Zeichen wie die
+Quilisma und den Oriscus.
+
+@cindex Solesmes
+@cindex Vaticana, Editio
+
+@item Der @emph{Editio Medicaea}-Stil stellt bestimmte
+Eigenschaften zur Verfügung, die in den Medicaea (oder
+Ratisbona)-Editionen benutzt wurden.  Dieser Stil war vor
+den Solesmes-Editionen in Benutzung.  Der größte Unterschied
+von dem @emph{Vaticana}-Stil sind die Schlüssel, die
+nach unten gerichtete Striche haben, und die Notenköpfe, die
+hier quadratisch und ebenmäßig geformt sind.
 
-@node Introduction to ancient notation
-@subsection Introduction to ancient notation
+@cindex Ratisbona, Editio
+@cindex Medicaea, Editio
 
-@untranslated
+@item Der @emph{Hufnagel}- oder @emph{gothische} Stil ahmt
+den Stil der Schreiber bestimmter Manuskripte aus dem Deutschland
+und Mitteleuropa des Mittelalters nach.  Er ist nach der
+Form der wichtigsten Note (der @emph{Virga}) benannt, die wie
+ein kleiner Nagel aussieht.
 
-@menu
-* Ancient notation supported::
-@end menu
+@cindex Hufnagel
+
+@end itemize
+
+Drei Stile ahmen die Erscheinung von Renaissancehandschriften
+und -drucken der Mensuralmusik nach:
+
+@itemize
+@item Der @emph{Mensural}-Stil versucht, den Stil von Handschriften
+nachzuahmen und hat recht kleine, rhombenförmige Notenköpfe und
+wie handgeschriebene Pausenzeichen.
+
+@cindex Mensuralstil
+
+@item Der @emph{Neomensural}-Stil ist eine modernisierte
+und stilisierte Version des erstens:  Die Notenköpfe sind
+etwas breiter und die Pausen bestehen aus graden Linien.  Dieser
+Stil ist besonders gut geeignet, um moderne Editionen der
+Mensuralmusik mit einem Incipit zu versehen.
+
+@cindex Neomensuralstil
+
+@item Der @emph{Petrucci}-Stil ist nach Ottaviano Petrucci
+(1466-1539) benannt, dem ersten Drucker, der bewegliche
+Stempel benutzt hat, um musikalische Notation zu drucken
+(in seinem Buch @emph{Harmonice musices odhecaton}, 1501).
+Dieser Stil setzt größere Notenköpfe ein als die anderen
+mensuralen Stile.
 
+@cindex Petrucci-Stil
 
-@node Ancient notation supported
-@unnumberedsubsubsec Ancient notation supported
+@end itemize
 
-@untranslated
+@emph{Baroque} (Barockstil) und @emph{Classical} (klassischer
+Stil) sind keine vollständigen Stile, sondern unterscheiden
+sich vom Standard nur in einigen Details:  der Barockstil
+verändert bestimmte Notenköpfe, der klassische Stil die
+Form der Viertelpause.
 
+Nur der Mensuralstil hat für alle Aspekte der Notation eine
+alternative Form.  Die anderen Stile sind nur teilweise
+ausgeführt: die gregorianischen Stile haben keine Pausen
+oder Fähnchen, weil diese Zeichen im Choral nicht vorkommen,
+und der Petrucci-Stil hat keine eigenen Fähnchen und
+Versetzungszeichen.
 
-@node Alternative note signs
-@subsection Alternative note signs
+Jedes Notationselement kann unabhängig von den anderen
+verändert werden, sodass man gut mensurale Fähnchen,
+Petrucci-Notenköpfe, klassiche Pausen und Vatikana-Schlüssel
+nebeneinander benutzen kann, wenn das gewünscht ist.
 
-@untranslated
+
+@c {{{1 Ancient notation, general
+@node Ancient notation---common features
+@subsection Ancient notation---common features
 
 @menu
-* Ancient note heads::
-* Ancient accidentals::
-* Ancient rests::
-* Ancient clefs::
-* Ancient flags::
-* Ancient time signatures::
+* Pre-defined contexts::
+* Ligatures::
+* Custodes::
+* Figured bass support::
 @end menu
 
+@c {{{2 Pre-defined contexts
+@node Pre-defined contexts
+@unnumberedsubsubsec Pre-defined contexts
+
+Für den grogorianischen Choral und die Mensuralnotation gibt
+es vorgedifinierte Stimm- und Systemkontexte, die all die
+Notationszeichen auf Werte setzen, die diesem Stil angemessen
+sind.  Wenn man mit den Werten zufrieden ist, kann man sofort
+mit der Notation beginnen, ohne sich um die Einzelheiten von
+tiefergreifenden Kontextanpassungen kümmern zu müssen.  Die
+definierten Kontexte sind:
+@code{VaticanaVoice}, @code{VaticanaStaff}, @code{MensuralVoice}
+und @code{MensuralStaff}.
+
+Siehe auch
+@itemize
+@item @ref{Gregorian chant contexts},
+@item @ref{Mensural contexts}.
+@end itemize
+
+
+@c {{{2 Ligatures
+@node Ligatures
+@unnumberedsubsubsec Ligatures
 
-@node Ancient note heads
-@unnumberedsubsubsec Ancient note heads
+@cindex Ligaturen
 
-@cindex Notenköpfe, Alte Musik
+Eine Ligatur ist ein graphisches Symbol das wenigstens zwei unterschiedliche
+Noten darstellt.  Ligaturen treten ursprünglich in Manuskripten des
+Gregorianischen Chorals auf, um auf- oder absteigende Notensequenzen zu
+notieren.
 
-Für die Notation Alter Musik kann ein Notenkopfstil ausgewählt werden, der sich
-vom Standard (@code{default}) unterscheidet. Dies wird erreicht, indem die
-@code{style}-Eigenschaft der Notenkopf-(@rinternals{NoteHead})-Objekte auf
-einen der Werte @code{baroque}, @code{neomensural}, @code{mensural} oder
-@code{petrucci} gesetzt wird. Der barocke (@code{baroque}) Stil unterscheidet
-sich vom Standard (@code{default}) nur in sofern, als eine viereckige Form für
-die Brevis (@code{\breve}) benutzt wird. Der @code{neomensural}-Stil
-unterscheidet sich vom barocken Stil darin, dass hier rhomboide Notenköpfe für
-ganze Noten und kleinere Notenwerte eingesetzt werden. Hälse werden über oder
-unter den Notenköpfen zentriert. Dieser Stil ist vor allem dann sinnvoll, wenn
-mensurale Musik transkribiert werden soll, etwa für ein Incipit. Der
-mensurale (@code{mensural}) Stil erstellt Notenköpfe, die das Aussehen
-historischer Drucke des 16. Jahrhunderts imitieren. Der @code{petrucci}-Stil
-schließlich imitiert auch historische Drucke, verwendet allerdings größere
-Notenköpfe.
-
-Das folgende Beispiel soll den neomensuralen Stil demonstrieren:
+Ligaturen werden in LilyPond notiert, indem die dazugehörigen Noten zwischen
+@code{\[} und @code{\]} eingeschlossen werden. Einige Ligaturstile benötigen
+zusätzliche Syntax für eine bestimmte Ligatur.  In der Standardeinstellung
+setzt der @rinternals{LigatureBracket}-Engraver ganz einfach eckige
+Klammern über die Noten der Ligatur.
 
-@lilypond[quote,fragment,ragged-right,verbatim]
-\set Score.skipBars = ##t
-\override NoteHead #'style = #'neomensural
-a'\longa a'\breve a'1 a'2 a'4 a'8 a'16
+@lilypond[quote,ragged-right,verbatim]
+\transpose c c' {
+  \[ g c a f d' \]
+  a g f
+  \[ e f a g \]
+}
 @end lilypond
 
-Für die Notation des Gregorianischen Chorals werden vom
-@rinternals{Vaticana_ligature_engraver} automatisch die richtigen Notenköpfe
-ausgewählt, so dass man den Stil nicht manuell setzen muss. Trotzdem kann
-der Stil manuell verändert werden, z. B. auf den Wert
-@code{vaticana_punctum}, um Punktum-Neumen zu produzieren. Gleichfalls erstellt
-der @rinternals{Mensural_ligature_engraver} automatisch Ligaturen der
-Mensuralnotation. Siehe @ref{Ligatures} zu einer Übersicht über die Funktion
-und Notation von Ligaturen.
+Es gibt zwei weitere Ligaturstile: Vaticana für den gregorianischen
+Choral und mensural für Mensuralnotation (wobei hier nur weiße
+Ligaturen unterstützt sind, und auch sie nur beschränkt).
+Um einen gestimmten Ligaturstil auszuwählen, muss der
+@code{Ligature_bracket_engraver} mit einem entsprechenden
+Ligatur-Engraver im Stimmenkontext ausgetauscht werden, wie
+erklärt in @ref{White mensural ligatures} und @ref{Gregorian
+square neume ligatures}.
 
 @seealso
 
-@ref{Note head styles} stellt einen Überblick über alle verfügbaren
-Notenkopfstile zur Verfügung.
+@knownissues
+
+Ligaturen benötigen eine Platzaufteilung, die sich von der klassischen
+Notation deutlich unterscheidet.  Das ist bisher sehr schlecht verwirklicht,
+sodass fast immer zu viel Platz zwischen Ligaturen ist und Zeilenumbrüche
+unbefriedigend ausfallen.  Text lässt sich auch nicht richtig an Ligaturen
+ausrichten.
+
+Versetzungszeichen dürfen nicht innerhalb von einer Ligatur gedruckt
+werden, sondern müssen gesammelt und vor der Ligatur ausgegeben werden.
 
+Die Syntax verwendet immer noch den verworfenen Infix-Stil (@code{\[
+musik. Ausdr. \]}).  Aus Gründen der Konsistenz soll dies geändert werden
+in den Postfix-Stil (@code{Note\[ ... Note\]}).
 
-@node Ancient accidentals
-@unnumberedsubsubsec Ancient accidentals
 
-@cindex Vorzeichen, Alte Musik
+@c {{{2 Custodes
+@node Custodes
+@unnumberedsubsubsec Custodes
 
-Mit der @code{glyph-name-alist}-Eigenschaft der
-Versetzungszeichen-(@rinternals{Accidental})- und
-Vorzeichen-(@rinternals{KeySignature})-Eigenschaften können Vorzeichen
-und Versetzungszeichen für die Alte Musik ausgewählt werden.
+@cindex Custodes
+@cindex Custos
 
-@lilypond[quote,ragged-right,staffsize=26]
+Ein @emph{Custos} (Plural: @emph{Custodes}; Lateinisch: @qq{Beschützer}) ist
+ein Symbol, das am Ende jedes Notensystems erscheint.  Es nimmt die Tonhöhe
+der ersten Note der nächsten Zeile vorweg und hilft damit dem Vortragenden,
+die Zeilenwechsel während der Vorführung zu bewältigen.
+
+Custodes wurden bis zum 17. Jahrhundert sehr häufig in der Musiknotation
+eingesetzt.  Heute finden sie sich nur noch in einigen bestimmten
+Notationsformen, etwa modernen Editionen des Gregorianischen Chorals wie der
+@emph{editio vaticana}.  LilyPond stellt unterschiedliche Custos-Symbole für
+die unterschiedlichen Notationsstile zur Verfügung.
+
+Damit Custodes angezeigt werden, muss ein @rinternals{Custos_engraver}
+im @rinternals{Staff}-Kontext gefordert werden.  Der Aufruf folgt im Rahmen
+des Layout-Kontextes, wie das folgende Beispiel zeigt.  Der Stil des
+Custos wird mit dem @code{override}-Befehl eingestellt, wie in dem
+folgenden Beispiel gezeigt:
+
+@lilypond[quote,ragged-right]
 \score {
-{
-  \textLengthOn
-  s^\markup {
-    \column {
-      "vaticana"
-      \line { " " \musicglyph #"accidentals.vaticana-1"
-        " " \musicglyph #"accidentals.vaticana0" }
-    }
-    \column {
-      "medicaea"
-      \line { " " \musicglyph #"accidentals.medicaea-1" }
-    }
-    \column {
-      "hufnagel"
-      \line { " " \musicglyph #"accidentals.hufnagel-1" }
-    }
-    \column {
-      "mensural"
-      \line { " " \musicglyph #"accidentals.mensural-1"
-        " " \musicglyph #"accidentals.mensural1" }
-    }
+  \relative c'' {
+    a1
+    \break
+    g
   }
-}
-\layout {
-  interscoreline = 1
-  \context { \Score \remove "Bar_number_engraver" }
-  \context { \Staff
-      \remove "Clef_engraver"
-      \remove "Key_engraver"
-      \remove "Time_signature_engraver"
-      \remove "Staff_symbol_engraver"
-      \override VerticalAxisGroup #'minimum-Y-extent = ##f
+  \layout {
+    \context {
+      \Staff
+      \consists Custos_engraver
+      \override Custos #'style = #'mensural
     }
   }
 }
 @end lilypond
 
-Wie zu sehen ist, werden nicht alle Versetzungszeichen von jedem Stil
-unterstützt. Wenn versucht wird, ein Versetzungszeichen zu notieren,
-das von einem bestimmten Stil nicht unterstützt wird, wechselt LilyPond zu einem
-anderen Stil, wie in dem Beispiel
-@code{ancient-accidentals.ly} demonstriert wird.
-@c FIX: was @lsr{ancient,ancient-accidentals.ly} --FV
-
+Das Custos-Zeichen wird mit der @code{style}-Eigenschaft ausgewählt. Die
+unterstützten Stile sind: @code{vaticana}, @code{medicaea}, @code{hufnagel}
+und @code{mensural}. Sie werden im folgenden Fragment demonstriert.
 
-Ähnlich wie Versetzungszeichen können auch die Vorzeichen für die Angabe der
-Tonart verändert werden, indem die @code{glyph-name-alist}-Eigenschaft
-des @rinternals{KeySignature}-Objektes gesetzt wird.
+@lilypond[quote,ragged-right,fragment]
+\new Lyrics \lyricmode {
+  \markup { \column {
+    \typewriter "vaticana"
+    \line { " " \musicglyph #"custodes.vaticana.u0" }
+  } }
+  \markup { \column {
+    \typewriter "medicaea"
+    \line { " " \musicglyph #"custodes.medicaea.u0" }
+  }}
+  \markup { \column {
+    \typewriter "hufnagel"
+    \line { " " \musicglyph #"custodes.hufnagel.u0" }
+  }}
+  \markup { \column {
+    \typewriter "mensural"
+    \line { " " \musicglyph #"custodes.mensural.u0" }
+  }}
+}
+@end lilypond
 
 @seealso
-
-In diesem Handbuch: @ref{Pitches}, @ref{Accidentals} und
-@ref{Automatic accidentals} geben eine allgemeine Einführung in die Benutzung
-von Versetzungszeichen. Der Abschnitt @ref{Key signature} zeigt die allgemeine
-Benutzung von Vorzeichen.
-
-Programmreferenz:
-@rinternals{KeySignature}.
+Referenz der Interna:
+@rinternals{Custos}.
 
 Beispiele:
 @rlsr{Ancient notation}.
 
 
-@node Ancient rests
-@unnumberedsubsubsec Ancient rests
+@c {{{2 Figured bass support
+@node Figured bass support
+@unnumberedsubsubsec Figured bass support
 
-@cindex Pausen, Alte Musik
+Es gibt beschränkte Unterstützung für Generalbassziffern aus der
+Barockzeit.  Siehe hierzu @ref{Figured bass}.
 
-Besondere Pausensymbole für die Notation der Alten Musik können mit der
-@code{style}-Eigenschaft des graphischen Objektes (grob) @qq{Pause}
-(@rinternals{Rest}) angewählt werden. Unterstützte Stile sind
-klassisch (@code{classical}), @code{neomensural} und @code{mensural}.
-Der klassische (@code{classical}) Stil unterscheidet sich vom Standardstil
-(@code{default}) nur darin, dass die Viertelpause wie eine gespiegelte
-Achtelpause aussieht. Der neomensurale Stil eignet sich gut, um z. B. das
-Incipit von transkribierter Musik zu notieren. Der mensurale Stil ahmt die
-Form von Pausen nach, wie man sie in Drucken des 16. Jahrhunderts finden kann.
 
-Das nächste Beispiel demonstriert den neomensuralen (@code{neomensural})
-Stil:
 
-@lilypond[quote,fragment,ragged-right,verbatim]
-\set Score.skipBars = ##t
-\override Rest #'style = #'neomensural
-r\longa r\breve r1 r2 r4 r8 r16
-@end lilypond
+@c {{{1 Typesetting mensural music
+@node Typesetting mensural music
+@subsection Typesetting mensural music
+
+@menu
+* Mensural contexts::
+* Mensural clefs::
+* Mensural time signatures::
+* Mensural note heads::
+* Mensural flags::
+* Mensural rests::
+* Mensural accidentals and key signatures::
+* Annotational accidentals (musica ficta)::
+* White mensural ligatures::
+@end menu
+
 
-Es gibt keine 32-stel- und 64-stel-Pausen für den mensuralen oder neomensuralen
-Stil. Anstatt dessen werden die Pausenformen des Standardstiles verwendet.
-Vgl. eine Liste aller vorhandenen Pausen in @code{pitches,rests}.
-@c FIX: was lsr{pitches,rests}. -FV
+@c {{{2Mensural contexts
+@node Mensural contexts
+@unnumberedsubsubsec Mensural contexts
 
+@cindex MensuralVoiceContext
+@cindex MensuralStaffContext
 
-Für die Notation des Gregorianischen Chorals gibt es keine Pausen; anstelle
-dessen werden @ref{Divisiones} verwendet.
+@funindex MensuralVoice
+@funindex MensuralStaff
 
-@seealso
+Die vordefinierten Kontexte @code{MensuralVoice} und
+@code{MensuralStaff} können eingesetzt werden, um
+ein Stück in Mensuralnotation zu schreiben.  Die Kontexte
+initialisieren alle relevanten Eigenschaften und
+graphischen Objekte, so dass unmittelbar mit der Notation begonnen
+werden kann. Siehe das folgende Beispiel:
 
-In diesem Handbuch: Der Abschnitt @ref{Rests} enthält eine allgemeine
-Einführung zur Benutzung von Pausen.
+@lilypond[quote,ragged-right,verbatim]
+\score {
+  <<
+    \new MensuralVoice = "discantus" \transpose c c' {
+      \override Score.BarNumber #'transparent = ##t {
+        c'1\melisma bes a g\melismaEnd
+        f\breve
+        \[ f1\melisma a c'\breve d'\melismaEnd \]
+        c'\longa
+        c'\breve\melisma a1 g1\melismaEnd
+        fis\longa^\signumcongruentiae
+      }
+    }
+    \new Lyrics \lyricsto "discantus" {
+      San -- ctus, San -- ctus, San -- ctus
+    }
+  >>
+}
+@end lilypond
 
+@seealso
 
-@node Ancient clefs
-@unnumberedsubsubsec Ancient clefs
 
-@cindex Schlüssel, Alte Musik
+@c {{{2 Mensural clefs
+@node Mensural clefs
+@unnumberedsubsubsec Mensural clefs
 
-LilyPond unterstützt eine große Anzahl von Notenschlüsseln, von denen eine
-ganze Anzahl für die Alte Musik geeignet ist.
+@cindex Schlüssel, Mensuralnotation
 
-In der Tabelle unten werden alle Schlüssel für die Alte Musik gezeigt, die
-mit dem @code{\clef}-Befehl erreicht werden. Manche Schlüssel benutzen den
-selben Schlüssel, unterscheiden sich aber in der Notenlinie, auf der der
+In der Tabelle unten werden alle Mensuralschlüssel gezeigt, die
+mit dem @code{\clef}-Befehl erreicht werden. Manche Schlüssel benutzen
+dasselbe Zeichen, unterscheiden sich aber in der Notenlinie, auf der der
 Schlüssel notiert wird. In diesem Fällen ist eine Nummer im Schlüsselnamen
-eingefügt. Man kann aber trotzdem eine beliebige Nummer erzwingen, wie es im
-Abschnitt @ref{Clef} beschrieben wird. Die Note, die rechts von jedem Schlüssel
+eingefügt, nummeriert von unten nach oben. Man kann aber trotzdem eine
+beliebige Nummer erzwingen, wie es im Abschnitt @ref{Clef} beschrieben
+wird. Die Note, die rechts von jedem Schlüssel
 gesetzt ist, zeigt das @code{c'} in Bezug zu dem jeweiligen Schlüssel.
 
+Petrucci hat C-Schlüssel benutzt, die interschiedlich ausbalancierte
+vertikale Balken auf der linken Seite hatten, je nachdem, auf welcher
+Notelinie er sich befand.
+
 @multitable @columnfractions .4 .4 .2
 @item
 @b{Beschreibung}
@@ -244,53 +399,6 @@ gesetzt ist, zeigt das @code{c'} in Bezug zu dem jeweiligen Schlüssel.
 @tab
 @b{Beispiel}
 
-@item
-Mensuraler C-Schlüssel im modernen Stil
-@tab
-@code{neomensural-c1}, @code{neomensural-c2},@*
-@code{neomensural-c3}, @code{neomensural-c4}
-@tab
-@lilypond[fragment,relative=1,notime]
-  \clef "neomensural-c2" c
-@end lilypond
-
-@item
-Mensuraler C-Schlüssel im Petrucci-Stil, zur Benutzung auf verschiedenen
-Notenlinien (im
-Beispiel den Schlüssel auf der zweiten Linie)
-@tab
-@code{petrucci-c1}, @code{petrucci-c2},@*
-@code{petrucci-c3}, @code{petrucci-c4},@*
-@code{petrucci-c5}
-@tab
-@lilypond[fragment,relative=1,notime]
-  \clef "petrucci-c2"
-  \override NoteHead #'style = #'mensural
-  c
-@end lilypond
-
-@item
-Mensuraler F-Schlüssel im Petrucci-Stil
-@tab
-@code{petrucci-f}
-@tab
-@lilypond[fragment,relative=1,notime]
-  \clef "petrucci-f"
-  \override NoteHead #'style = #'mensural
-  c
-@end lilypond
-
-@item
-Mensuraler G-Schlüssel im Petrucci-Stil
-@tab
-@code{petrucci-g}
-@tab
-@lilypond[fragment,relative=1,notime]
-  \clef "petrucci-g"
-  \override NoteHead #'style = #'mensural
-  c
-@end lilypond
-
 @item
 Mensuraler C-Schlüssel im historischen Stil
 @tab
@@ -326,184 +434,72 @@ Mensuraler G-Schlüssel im historischen Stil
 @end lilypond
 
 @item
-Do-Schlüssel der Editio Vaticana
+Mensuraler C-Schlüssel im modernen Stil
 @tab
-@code{vaticana-do1}, @code{vaticana-do2},@*
-@code{vaticana-do3}
+@code{neomensural-c1}, @code{neomensural-c2},@*
+@code{neomensural-c3}, @code{neomensural-c4}
 @tab
 @lilypond[fragment,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 NoteHead #'style = #'vaticana.punctum
-  \clef "vaticana-do2"
-  c
+  \clef "neomensural-c2" c
 @end lilypond
 
 @item
-Fa-Schlüssel der Editio Vaticana
+Mensuraler C-Schlüssel im Petrucci-Stil, zur Benutzung auf verschiedenen
+Notenlinien (im
+Beispiel den Schlüssel auf der zweiten Linie)
 @tab
-@code{vaticana-fa1}, @code{vaticana-fa2}
+@code{petrucci-c1}, @code{petrucci-c2},@*
+@code{petrucci-c3}, @code{petrucci-c4},@*
+@code{petrucci-c5}
 @tab
 @lilypond[fragment,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 NoteHead #'style = #'vaticana.punctum
-  \clef "vaticana-fa2"
+  \clef "petrucci-c2"
+  \override NoteHead #'style = #'mensural
   c
 @end lilypond
 
 @item
-Do-Schlüssel der Editio Medicaea
+Mensuraler F-Schlüssel im Petrucci-Stil
 @tab
-@code{medicaea-do1}, @code{medicaea-do2},@*
-@code{medicaea-do3}
+@code{petrucci-f}
 @tab
 @lilypond[fragment,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 NoteHead #'style = #'medicaea.punctum
-  \clef "medicaea-do2"
+  \clef "petrucci-f"
+  \override NoteHead #'style = #'mensural
   c
 @end lilypond
 
 @item
-Fa-Schlüssel der Editio Medicaea
+Mensuraler G-Schlüssel im Petrucci-Stil
 @tab
-@code{medicaea-fa1}, @code{medicaea-fa2}
-@tab
-@lilypond[fragment,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 NoteHead #'style = #'medicaea.punctum
-  \clef "medicaea-fa2"
-  c
-@end lilypond
-
-@item
-Hufnagel Do-Schlüssel für den historischen Stil
-@tab
-@code{hufnagel-do1}, @code{hufnagel-do2},@*
-@code{hufnagel-do3}
-@tab
-@lilypond[fragment,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 NoteHead #'style = #'hufnagel.punctum
-  \clef "hufnagel-do2"
-  c
-@end lilypond
-
-@item
-Hufnagel Fa-Schlüssel für den historischen Stil
-@tab
-@code{hufnagel-fa1}, @code{hufnagel-fa2}
+@code{petrucci-g}
 @tab
 @lilypond[fragment,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 NoteHead #'style = #'hufnagel.punctum
-  \clef "hufnagel-fa2"
+  \clef "petrucci-g"
+  \override NoteHead #'style = #'mensural
   c
 @end lilypond
 
-@item
-Kombinierter Do/Fa-Hufnagelschlüssel für den historischen Stil
-@tab
-@code{hufnagel-do-fa}
-@tab
-@lilypond[fragment,relative=1,notime]
-  \override Staff.StaffSymbol #'color = #red
-  \override Staff.LedgerLineSpanner #'color = #red
-  \override Voice.Stem #'transparent = ##t
-  \override NoteHead #'style = #'hufnagel.punctum
-  \clef "hufnagel-do-fa"
-  c
-@end lilypond
 @end multitable
 
-@emph{Moderner Stil} bedeutet: @qq{Wie in modernen Editionen von
-transkribierter Mensuralmusik benutzt.}
-
-@emph{Petrucci-Stil} bedeutet: @qq{Inspiriert von Drucken, die der berühmte
-Notensetzer Petrucci (1466--1539) produziert hat.}
-
-@emph{Historischer Stil} bedeutet: @qq{Wie in anderen als Petruccis Editionen
-gedruckt oder geschrieben wurde.}
-
-@emph{Editio XXX-Stil} bedeutet: @qq{Wie in der Editio XXX gedruckt
-wird.}
-
-Petrucci verwendete C-Schlüssel mit unterschiedlich balanciertem vertikalen
-Balken auf der linken Seite in Abhängigkeit davon, auf welcher Notenlinie
-der Schlüssel gesetzt wird.
-
 @seealso
-
-In diesem Handbuch: siehe @ref{Clef}.
+Notationsreferenz:
+@ref{Clef}.
 
 @knownissues
 
 Der mensurale G-Schlüssel ist als Petrucci-G-Schlüssel deklariert.
 
 
-@node Ancient flags
-@unnumberedsubsubsec Ancient flags
-
-@cindex Fähnchen, Alte Musik
-
-Mit der Fähnchen-(@code{flag-style})-Eigenschaft der graphischen Objekte
-@qq{Hals} (@rinternals{Stem}) können auch Fähnchen passend zu den Notenköpfen
-der Alten Musik gesetzt werden. Neben dem Standardstil (@code{default}) ist
-auch ein mensuraler Stil (@code{mensural}) unterstützt.
-
-@lilypond[quote,fragment,ragged-right,verbatim]
-\override Stem #'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
-@end lilypond
-
-Dabei ist die innerste Fahne immer vertikal auf eine Notenlinie ausgerichtet.
-
-Es gibt keinen eigenen Stil für die @qq{neomensurale} Notation. Insofern sollte
-für das Incipit bei der Transkription mensuraler Musik der Standardstil
-benutzt werden. Für die Notation des Gregorianischen Chorals gibt es keine
-Fähnchen.
-
-@knownissues
-
-Die Positionierung der Fähnchen an den Hälsen ist leicht verschoben seit einer
-Änderung in einer frühen 2.3.x-Version.
-
-Vertikale Ausrichtung der Fähnchen an einer Notenlinie geht von der Annahme
-aus, dass der Hals entweder genau auf einer Notenlinie oder genau zwischen zwei
-Notenlinien endet. Das ist aber nicht unbedingt immer der Fall, weil LilyPond
-komplizierte Methoden zur Ermittlung des besten Layouts verwendet. Diese
-Methoden sollten aber eigentlich nicht zur Notation von mensuraler Musik
-eingesetzt werden.
-
-
-@node Ancient time signatures
-@unnumberedsubsubsec Ancient time signatures
+@c {{{2Mensural time signatures
+@node Mensural time signatures
+@unnumberedsubsubsec Mensural time signatures
 
-@cindex Taktart, Alte Musik
+@cindex Taktart, Mensuralnotation
 @cindex Mensur
 
-LilyPond besitzt grundlegende Unterstützung für mensurale Taktangaben. Die
+LilyPond besitzt beschränkte Unterstützung für Mensurzeichen (die den
+heutigen Taktarten ähneln, aber doch einige Eigenheiten haben). Die
 Symbole sind starr verknüpft mit bestimmten Brüchen. Darum müssen die Werte
 @code{n} und @code{m} der folgenden Tabelle in den Befehl
 @code{\time n/m} eingesetzt werden, um die entsprechenden Symbole zu erhalten.
@@ -556,11 +552,8 @@ Symbole sind starr verknüpft mit bestimmten Brüchen. Darum müssen die Werte
 Mit der @code{style}-Eigenschaft des Objektes @rinternals{TimeSignature}
 können die Taktarten angewählt werden. Unterstützte Stile sind:
 @code{neomensural} und @code{mensural}. In der Tabelle oben wurde der
-neomensurale Stil verwendet. Dieser Stil ist geeignet, um im Incipt von
-transkribierter Mensuralmusik eingesetzt zu werden. Der mensurale Stil dagegen
-ahmt die Form historischer Druck des 16. Jahrhunderts nach.
-
-Im folgenden Beispiel sind die unterschiedlichen Stile dargestellt.
+neomensurale Stil verwendet.  Im folgenden Beispiel sind die
+unterschiedlichen Stile dargestellt.
 
 @lilypond[ragged-right,fragment,relative=1,quote]
 {
@@ -587,13 +580,12 @@ Im folgenden Beispiel sind die unterschiedlichen Stile dargestellt.
 @end lilypond
 
 @seealso
-
-In diesem Handbuch: @ref{Time signature} bietet eine allgemeine Übersicht über
-den Einsatz von Taktangaben.
+Notationsreferenz:
+@ref{Time signature}.
 
 @knownissues
 
-Die Verhältnisse der Notenwerte ändern sich nicht, wenn die Taktart (Mensur)
+Die Verhältnisse der Notenwerte ändern sich nicht, wenn die Mensur
 gewechselt wird. Zum Beispiel muss das Verhältnis 1 brevis = 3 semibrevis
 (tempus perfectum) manuell erstellt werden, indem folgende Variable erstellt
 wird:
@@ -608,340 +600,746 @@ breveTP = #(ly:make-duration -1 0 3 2)
 Hiermit wird die Variable @code{breveTP} auf den Wert
 @qq{3/2 mal 2 = 3 mal eine Ganze} gesetzt.
 
-Das @code{old6/8alt}-Symbol (ein alternatives Symbol für 6/8) kann nicht
-mit dem Befehl @code{\time} angesprochen werden. Verwenden Sie anstatt dessen
-eine Textbeschriftung (@code{\markup}).
+Die Symbole @code{mensural68alt} und @code{neomensural68alt}
+(alternative Symbole für 6/8) können nicht mit dem
+@code{\time}-Befehl.  Anstelle dess muss
+@code{\markup @{\musicglyph #"timesig.mensural68alt" @}} benutzt
+werden.
 
 
-@node Additional note signs
-@subsection Additional note signs
+@c {{{2Mensural note heads
+@node Mensural note heads
+@unnumberedsubsubsec Mensural note heads
 
-@untranslated
+@cindex Notenköpfe, Mensuralnotation
 
-@menu
-* Ancient articulations::
-* Custodes::
-* Divisiones::
-* Ligatures::
-* White mensural ligatures::
-* Gregorian square neumes ligatures::
-@end menu
+Für die Mensuralnotation kann ein Notenkopfstil ausgewählt werden, der sich
+vom Standard (@code{default}) unterscheidet. Dies wird erreicht, indem die
+@code{style}-Eigenschaft der Notenkopf-(@rinternals{NoteHead})-Objekte auf
+einen der Werte @code{baroque}, @code{neomensural}, @code{mensural} oder
+@code{petrucci} gesetzt wird.
 
+Der barocke (@code{baroque}) Stil unterscheidet sich vom Standard
+(@code{default}) folgendermaßen:
 
-@node Ancient articulations
-@unnumberedsubsubsec Ancient articulations
+@itemize
+@item Er stellt einen @code{maxima}-Notenkopf zur Verfügung und
+@item setzt eine eckige Form für die Brevis (@code{\breve}) ein.
+@end itemize
 
-@cindex articulations
+Die Stile @code{neomensural}, @code{mensural} und @code{petrucci}
+unterscheiden sich vom barocken Stil folgendermaßen:
 
-Zusätzlich zu den Standardartikulationszeichen, wie sie im Abschnitt
-@ref{Articulations and ornamentations} beschrieben werden, werden auch Artikulationszeichen
-für die Alte Musik zur Verfügung gestellt. Diese sind darauf hin geformt, dass
-sie mit der Notation des Editio Vaticana-Stils verwendet werden können.
+@itemize
+@item Für Semibrevis und kleinere Notenwerte werden rhombenförmige
+Notenköpfe eingesetzt und
+@item die Hälse werden über den Kopf zentriert.
+@end itemize
 
-@lilypond[quote,ragged-right,verbatim]
-\include "gregorian.ly"
-\score {
-  \new VaticanaVoice {
-    \override TextScript #'font-family = #'typewriter
-    \override TextScript #'font-shape = #'upright
-    \override Script #'padding = #-0.1
-    a\ictus_"ictus" \break
-    a\circulus_"circulus" \break
-    a\semicirculus_"semicirculus" \break
-    a\accentus_"accentus" \break
-    \[ a_"episem" \episemInitium \pes b \flexa a b \episemFinis \flexa a \]
-  }
-}
+Das folgende Beispiel zeigt den Petrucci-Stil:
+
+@lilypond[quote,fragment,ragged-right,verbatim]
+\set Score.skipBars = ##t
+\autoBeamOff
+\override NoteHead #'style = #'petrucci
+a'\maxima a'\longa a'\breve a'1 a'2 a'4 a'8 a'16 a'
+
+@end lilypond
+
+@seealso
+Notationsreferenz:
+@ref{Note head styles}.
+
+
+@c {{{2Mensural flags
+@node Mensural flags
+@unnumberedsubsubsec Mensural flags
+
+@cindex Fähnchen, Mensuralnotation
+
+Mit der Fähnchen-(@code{flag-style})-Eigenschaft der graphischen Objekte
+@qq{Hals} (@rinternals{Stem}) können auch Mensuralfähnchen gesetzt
+werden.  Neben dem Standardstil (@code{default}) ist
+nur (@code{mensural}) unterstützt.
+
+@lilypond[quote,fragment,ragged-right,verbatim]
+\override Stem #'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
 @end lilypond
 
+Dabei ist die innerste Fahne immer vertikal auf eine Notenlinie ausgerichtet.
+
+Es gibt keinen eigenen Stil für den neomensuralen oder Petrucci-Stil.
+Für die Notation des Gregorianischen Chorals gibt es keine
+Fähnchen.
+
+@seealso
+
+
 @knownissues
 
-Einige Artikulationszeichen sind vertikal zu dich an den entsprechenden
-Notenköpfen gesetzt.
+Die Positionierung der Fähnchen an den Hälsen ist leicht verschoben.
 
-Die Episem-Linie wird in vielen Fällen nicht angezeigt. Wenn sie angezeigt wird,
-ist das rechte Ende der Episem-Linie oft zu weit rechts.
+Vertikale Ausrichtung der Fähnchen an einer Notenlinie geht von der Annahme
+aus, dass der Hals entweder genau auf einer Notenlinie oder genau zwischen zwei
+Notenlinien endet. Das ist aber nicht unbedingt immer der Fall, weil LilyPond
+komplizierte Methoden zur Ermittlung des besten Layouts verwendet. Diese
+Methoden sollten aber eigentlich nicht zur Notation von mensuraler Musik
+eingesetzt werden.
 
 
-@node Custodes
-@unnumberedsubsubsec Custodes
+@c {{{2Mensural rests
+@node Mensural rests
+@unnumberedsubsubsec Mensural rests
 
-@cindex Custodes
+@cindex Pausen, Mensuralnotation
 
-Ein @emph{custos} (Plural: @emph{custodes}; Lateinisch: @qq{Beschützer}) ist
-ein Symbol, das am Ende jedes Notensystems erscheint. Es nimmt die Tonhöhe
-der ersten Note der nächsten Zeile vorweg und hilft damit dem Vortragenden,
-die Zeilenwechsel während der Vorführung zu bewältigen.
+Besondere Pausensymbole für die Notation der Alten Musik können mit der
+@code{style}-Eigenschaft des graphischen Objektes (grob) @qq{Pause}
+(@rinternals{Rest}) angewählt werden. Unterstützte Stile sind
+klassisch (@code{classical}), @code{neomensural} und @code{mensural}.
+Der klassische (@code{classical}) Stil unterscheidet sich vom Standardstil
+(@code{default}) nur darin, dass die Viertelpause wie eine gespiegelte
+Achtelpause aussieht. Der mensurale und neomensurale Stil ahmt die
+Form von Pausen nach, wie man sie in Drucken bis zum 16. Jahrhundert
+finden kann.
 
-Custodes wurden bis zum 17. Jahrhundert sehr häufig in der Musiknotation
-eingesetzt. Heute finden sie sich nur noch in einigen bestimmten
-Notationsformen, etwa modernen Editionen des Gregorianischen Chorals wie die
-@emph{editio vaticana}. LilyPond stellt unterschiedliche Custos-Symbole für
-die unterschiedlichen Notationsstile zur Verfügung.
+Das folgende Beispiel demonstriert den mensuralen und den neomensuralen
+Stil:
 
-Damit Custodes angezeigt werden, muss ein @rinternals{Custos_engraver}
-im @rinternals{Staff}-Kontext gefordert werden. Der Aufruf folgt im Rahmen
-des Layout-Kontextes, wie das folgende Beispiel zeigt.
+@lilypond[quote,fragment,ragged-right,verbatim]
+\set Score.skipBars = ##t
+\override Rest #'style = #'classical
+r\longa^"classical" r\breve r1 r2 r4 r8 r16 s \break
+\override Rest #'style = #'mensural
+r\longa^"mensural" r\breve r1 r2 r4 r8 r16 s \break
+\override Rest #'style = #'neomensural
+r\longa^"neomensural" r\breve r1 r2 r4 r8 r16
+@end lilypond
 
-@example
-\layout @{
-  \context @{
-    \Staff
-    \consists Custos_engraver
-    Custos \override #'style = #'mensural
-  @}
-@}
-@end example
+Es gibt keine 32-stel- und 64-stel-Pausen für den mensuralen oder
+neomensuralen Stil. Anstatt dessen werden die Pausenformen des
+Standardstiles verwendet.
 
-Das Ergebnis sieht ungefähr folgendermaßen aus:
+Eine Liste aller Pausen findet sich in @rlsr{Ancient notation}.
 
-@lilypond[quote,ragged-right]
+@seealso
+Notationsreferenz:
+@ref{Rests}.
+
+
+@c {{{2Mensural accidentals and key signatures
+@node Mensural accidentals and key signatures
+@unnumberedsubsubsec Mensural accidentals and key signatures
+
+@cindex Versetzungszeichen, Mensuralnotation
+@cindex Vorzeuchen, Mensuralnotation
+@cindex Tonart, Mensuralnotation
+
+Der @code{mensural}-Stil stellt ein Kreuz und ein B zur Verfügung,
+die sich vom Standardstil unterscheiden.  Wenn das Auflösungszeichen
+notiert wird, wird es aus dem @code{vaticana}-Stil gesetzt.
+
+@lilypond[quote,ragged-right,staffsize=26]
 \score {
 {
-  a'1
-  \override Staff.Custos #'style = #'mensural
-  \break
-  g'
+  \textLengthOn
+  s^\markup {
+    \column {
+      "mensural"
+      \line { " " \musicglyph #"accidentals.mensural-1"
+        " " \musicglyph #"accidentals.mensural1" }
+    }
+  }
 }
 \layout {
-  \context { \Staff \consists Custos_engraver }
+  interscoreline = 1
+  \context { \Score \remove "Bar_number_engraver" }
+  \context { \Staff
+      \remove "Clef_engraver"
+      \remove "Key_engraver"
+      \remove "Time_signature_engraver"
+      \remove "Staff_symbol_engraver"
+      \override VerticalAxisGroup #'minimum-Y-extent = ##f
+    }
   }
 }
 @end lilypond
 
-Das Custos-Zeichen wird von der @code{style}-Eigenschaft ausgewählt. Die
-unterstützten Stile sind: @code{vaticana}, @code{medicaea}, @code{hufnagel}
-und @code{mensural}. Sie werden im folgenden Fragment demonstriert.
-
-@lilypond[quote,ragged-right,fragment]
-\new Lyrics \lyricmode {
-  \markup { \column {
-    \typewriter "vaticana"
-    \line { " " \musicglyph #"custodes.vaticana.u0" }
-  } }
-  \markup { \column {
-    \typewriter "medicaea"
-    \line { " " \musicglyph #"custodes.medicaea.u0" }
-  }}
-  \markup { \column {
-    \typewriter "hufnagel"
-    \line { " " \musicglyph #"custodes.hufnagel.u0" }
-  }}
-  \markup { \column {
-    \typewriter "mensural"
-    \line { " " \musicglyph #"custodes.mensural.u0" }
-  }}
-}
-@end lilypond
+Der Stil für Versetzungszeichen und Vorzeichen wird durch die
+@code{glyph-name-alist}-Eigenschaft der Grobs
+@rinternals{Accidental} und @rinternals{KeySignature} bestimmt,
+also etwa folgendermaßen:
 
-@seealso
+@code{\override Staff.Accidental #'glyph-name-alist =
+#alteration-mensural-glyph-name-alist}
 
-Programmreferenz:
-@rinternals{Custos}.
 
-Beispiele:
-@rlsr{Ancient notation}.
+@seealso
+Notationsreferenz:
+@ref{Pitches},
+@ref{Accidentals},
+@ref{Automatic accidentals},
+@ref{Key signature}.
 
+Referenz der Interna:
+@rinternals{KeySignature}.
 
-@node Divisiones
-@unnumberedsubsubsec Divisiones
 
-@cindex divisio
-@cindex divisiones
-@cindex finalis
+@c {{{2 Annotational accidentals (musica ficta)
+@node Annotational accidentals (musica ficta)
+@unnumberedsubsubsec Annotational accidentals (@emph{musica ficta})
 
-Eine @emph{divisio} (Plural: @emph{divisiones}; Latein: @qq{Teilung}) ist ein
-Symbol des Notensystemkontextes, das benutzt wird, um Phrasierung und
-Abschnitte im Gregorianischen Choral anzuzeigen. Die musikalische Bedeutung
-von @emph{divisio minima}, @emph{divisio maior} und @emph{divisio maxima} kann
-beschrieben werden als kurze, mittlere und lange Pause, ungefähr wie die
-Atemzeichen aus dem Abschnitt @ref{Breath marks}. Das @emph{finalis}-Zeichen
-bezeichnet nicht nur das Ende eines Chorals, sondern wird auch oft innerhalb
-eines Antiphons/Responsoriums benutzt, um das Ende eines Abschnitts anzuzeigen.
+In der europäischen Notation bis etwa 1600 wurde von Sängern erwartet,
+dass sie eigenständig Noten nach bestimmten Regeln chromatisch veränderten.
+Das wird als @notation{musica ficta} bezeichnet.  In modernen
+Transkriptionen werden diese Versetzungszeichen üblicherweise über
+die Note notiert.
 
-Divisiones können benutzt werden, indem die Datei @file{gregorian@/-init@/.ly}
-in die Quelldatei eingefügt wird. Hier sind die entsprechenden Definitionen
-schon abgelegt, so dass es genügt, die Befehle @code{\divisioMinima},
-@code{\divisioMaior}, @code{\divisioMaxima} und @code{\finalis} an den
-entsprechenden Stellen zu schreiben. Einige Editionen verwenden eine
-@emph{virgula} oder @emph{caesura} anstelle der divisio minima. Darum findet
-sich in der Datei @file{gregorian@/-init@/.ly} auch eine Definition für
-@code{\virgula} und @code{\caesura}.
+@cindex Versetzungszeichen, musica ficta
+@cindex Musica ficta
 
-@lilypondfile[quote,ragged-right]{divisiones.ly}
+Es ist möglich, derartige Versetzungszeichen zu notieren, und die Anzeige
+kann zwischen normaler Satzweise und musica ficta hin- und hergewechselt
+werden.  Hierzu muss @code{suggestAccidentals} auf wahr gesetzt werden:
 
-@predefined
+@funindex suggestAccidentals
 
-@funindex \virgula
-@code{\virgula},
+@lilypond[verbatim,fragment,relative=1]
+fis gis
+\set suggestAccidentals = ##t
+ais bis
+@end lilypond
+
+Damit wird @emph{jedes} folgende Versetzungszeichen über dem System
+gesetzt werden, bis die Eigenschaft mit @code{\set suggestAccidentals =
+##f} wieder zum Standardverhalten verändert wurde.  Eine praktischere
+Lösung ist es, @code{\once \set suggestAccidentals = ##t} zu benutzen,
+was man als Variable definieren kann:
+
+@lilypond[quote,verbatim]
+ficta = { \once \set suggestAccidentals = ##t }
+\score { \relative c''
+  \new MensuralVoice  {
+       \once \set suggestAccidentals = ##t
+  bes4 a2 g2 \ficta fis8 \ficta e! fis2 g1
+  }
+}
+@end lilypond
+
+
+@seealso
+Referenz der Interna:
+@rinternals{Accidental_engraver},
+@rinternals{AccidentalSuggestion}.
+
+
+@c {{{2White mensural ligatures
+@node White mensural ligatures
+@unnumberedsubsubsec White mensural ligatures
+
+@cindex Mensuralligaturen
+@cindex Weiße Mensuralligaturen
+@cindex Ligaturen, weiße Mensuralnotation
+
+Begrenzte Unterstützung für Ligaturen der weißen Mensuralnotation ist
+vorhanden.
+
+Um weiße Mensuralligaturen zu benutzen, muss innerhalb des Layout-Blocks
+im @rinternals{Voice}-Kontext der @rinternals{Mensural_ligature_engraver}
+aktiviert werden und gleichzeitig der
+@rinternals{Ligature_bracket_engraver} (der die Klammern über den Noten
+setzt) entfernt werden, wie im Beispiel.
+
+@example
+\layout @{
+  \context @{
+    \Voice
+    \remove Ligature_bracket_engraver
+    \consists Mensural_ligature_engraver
+  @}
+@}
+@end example
+
+Zusätzlich zu diesen Einstellungen gibt es keine eigenen Befehle, die die
+Form einer Ligatur bestimmen. Die Form wird vielmehr aus Tonhöhen und
+Tondauern der in Klammern gesetzten Noten geschlossen. Diese
+Herangehensweise erfordert einige Eingewöhnung, hat aber den großen
+Vorteil, dass der musikalische Inhalt der Ligatur dem Programm bekannt ist.
+Das ist nicht nur notwendig für korrekte MIDI-Ausgabe, sondern erlaubt
+es auch, automatische Transkriptionen von Ligaturen anzufertigen.
+
+Eine Datei kann zum Beispiel so aussehen:
+
+@lilypond[quote,ragged-right,verbatim]
+\score {
+  \transpose c c' {
+    \set Score.timing = ##f
+    \set Score.defaultBarType = "empty"
+    \override NoteHead #'style = #'neomensural
+    \override Staff.TimeSignature #'style = #'neomensural
+    \clef "petrucci-g"
+    \[ c'\maxima g \]
+    \[ d\longa c\breve f e d \]
+    \[ c'\maxima d'\longa \]
+    \[ e'1 a g\breve \]
+  }
+  \layout {
+    \context {
+      \Voice
+      \remove Ligature_bracket_engraver
+      \consists Mensural_ligature_engraver
+    }
+  }
+}
+@end lilypond
+
+Wenn der @rinternals{Ligature_bracket_engraver} nicht durch den
+@rinternals{Mensural_ligature_engraver} ersetzt wird, werden die Noten
+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
+  \clef "petrucci-g"
+  \[ c'\maxima g \]
+  \[ d\longa c\breve f e d \]
+  \[ c'\maxima d'\longa \]
+  \[ e'1 a g\breve \]
+}
+@end lilypond
+
+@seealso
+
+@knownissues
+
+Die horizontale Positionierung ist sehr schlecht.
+
+
+
+@c {{{1 Typesetting Gregorian chant
+@node Typesetting Gregorian chant
+@subsection Typesetting Gregorian chant
+
+@menu
+* Gregorian chant contexts::
+* Gregorian clefs::
+* Gregorian accidentals and key signatures::
+* Divisiones::
+* Gregorian articulation signs::
+* Augmentum dots (@emph{morae})::
+* Gregorian square neume ligatures::
+@end menu
+
+Wenn ein gregorianischer Choral notiert wird, wählt der
+@rinternals{Vaticana_ligature_engraver} automatisch die richtigen
+Notenköpfe aus, so dass man den Notenkopfstil nicht explizit
+setzen muss.  Der Stil kann dennoch gesetzt werden, etwa
+auf @code{vaticana_punctum} um punctum-Neumen zu erzeugen.  Ähnlich
+funktioniert auch der @rinternals{Mensural_ligature_engraver},
+der Mensuralligaturen setzt.  Siehe auch @ref{Ligatures}.
+
+
+@c {{{2Gregorian chant contexts
+@node Gregorian chant contexts
+@unnumberedsubsubsec Gregorian chant contexts
+
+@cindex VaticanaVoiceContext
+@cindex VaticanaStaffContext
+
+@funindex VaticanaVoice
+@funindex VaticanaStaff
+
+Die vordefinierten Kontexte @code{VaticanaVoice} (für eine
+gregorianische Stimme) und @code{VaticanaStaff} (für ein
+gregorianisches Notensystem) können eingesetzt werden, um
+Gregorianischen Choral im Stil der Editio Vaticana zu setzen. Diese
+Kontexte initialisieren alle relevanten Eigenschaften für das Notensystem
+und die graphischen Objekte, so dass unmittelbar mit der Notation
+begonnen werden kann. Siehe das folgende Beispiel:
+
+@lilypond[quote,ragged-right,verbatim]
+\include "gregorian.ly"
+\score {
+  <<
+    \new VaticanaVoice = "cantus" {
+      \[ c'\melisma c' \flexa a \]
+      \[ a \flexa \deminutum g\melismaEnd \]
+      f \divisioMinima
+      \[ f\melisma \pes a c' c' \pes d'\melismaEnd \]
+      c' \divisioMinima \break
+      \[ c'\melisma c' \flexa a \]
+      \[ a \flexa \deminutum g\melismaEnd \] f \divisioMinima
+    }
+    \new Lyrics \lyricsto "cantus" {
+      San- ctus, San- ctus, San- ctus
+    }
+  >>
+}
+@end lilypond
+
+@seealso
+TODO
+
+
+@c {{{2 Gregorian clefs
+@node Gregorian clefs
+@unnumberedsubsubsec Gregorian clefs
+
+@cindex Schlüssel, greg. Choral
+
+Die folgende Tabelle zeigt alle Schlüssel für den gregorianischen
+Choral, die mit dem @code{\clef}-Befehl unterstützt sind.  Einige
+Schlüssel benutzen das selbe Zeichen, unterscheiden sich aber in
+der Notenlinie, auf der der Schlüssel gesetzt wird.  In diesem
+Fall wird eine Nummer benutzt, die die Notenlinie von unten nach
+oben kennzeichnet.  Man kann die Schlüssel aber auch manuell auf
+eine bestimmte Notenlinie zwingen, wie gezeigt in @ref{Clef}.
+Die Note, die rechts von den Schlüsseln im Beispiel gezeigt wird,
+ist ein @code{c'} in Bezug auf den aktuellen Schlüssel.
+
+@multitable @columnfractions .4 .4 .2
+@item
+@b{Beschreibung}
+@tab
+@b{unterstützter Schlüssel}
+@tab
+@b{Beispiel}
+
+@item
+Do-Schlüssel der Editio Vaticana
+@tab
+@code{vaticana-do1}, @code{vaticana-do2},@*
+@code{vaticana-do3}
+@tab
+@lilypond[fragment,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 NoteHead #'style = #'vaticana.punctum
+  \clef "vaticana-do2"
+  c
+@end lilypond
+
+@item
+Fa-Schlüssel der Editio Vaticana
+@tab
+@code{vaticana-fa1}, @code{vaticana-fa2}
+@tab
+@lilypond[fragment,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 NoteHead #'style = #'vaticana.punctum
+  \clef "vaticana-fa2"
+  c
+@end lilypond
+
+@item
+Do-Schlüssel der Editio Medicaea
+@tab
+@code{medicaea-do1}, @code{medicaea-do2},@*
+@code{medicaea-do3}
+@tab
+@lilypond[fragment,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 NoteHead #'style = #'medicaea.punctum
+  \clef "medicaea-do2"
+  c
+@end lilypond
+
+@item
+Fa-Schlüssel der Editio Medicaea
+@tab
+@code{medicaea-fa1}, @code{medicaea-fa2}
+@tab
+@lilypond[fragment,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 NoteHead #'style = #'medicaea.punctum
+  \clef "medicaea-fa2"
+  c
+@end lilypond
+
+@item
+Hufnagel Do-Schlüssel für den historischen Stil
+@tab
+@code{hufnagel-do1}, @code{hufnagel-do2},@*
+@code{hufnagel-do3}
+@tab
+@lilypond[fragment,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 NoteHead #'style = #'hufnagel.punctum
+  \clef "hufnagel-do2"
+  c
+@end lilypond
+
+@item
+Hufnagel Fa-Schlüssel für den historischen Stil
+@tab
+@code{hufnagel-fa1}, @code{hufnagel-fa2}
+@tab
+@lilypond[fragment,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 NoteHead #'style = #'hufnagel.punctum
+  \clef "hufnagel-fa2"
+  c
+@end lilypond
+
+@item
+Kombinierter Do/Fa-Hufnagelschlüssel für den historischen Stil
+@tab
+@code{hufnagel-do-fa}
+@tab
+@lilypond[fragment,relative=1,notime]
+  \override Staff.StaffSymbol #'color = #red
+  \override Staff.LedgerLineSpanner #'color = #red
+  \override Voice.Stem #'transparent = ##t
+  \override NoteHead #'style = #'hufnagel.punctum
+  \clef "hufnagel-do-fa"
+  c
+@end lilypond
+
+@end multitable
+
+@seealso
+Notationsreferenz:
+@ref{Clef}.
+
+
+@c {{{2 Gregorian accidentals and key signatures
+@node Gregorian accidentals and key signatures
+@unnumberedsubsubsec Gregorian accidentals and key signatures
+
+@cindex Vorzeichen, greg. Choral
+@cindex Versetzungszeichen, greg. Choral
+@cindex Tonarten, greg. Choral
+
+Es gibt Versetzungszeichen in drei unterschiedlichen Stilen für die
+Notation des gregorianischen Chorals:
+
+@lilypond[quote,ragged-right,staffsize=26]
+\score {
+{
+  \textLengthOn
+  s^\markup {
+    \column {
+      "vaticana"
+      \line { " " \musicglyph #"accidentals.vaticana-1"
+        " " \musicglyph #"accidentals.vaticana0" }
+    }
+    \column {
+      "medicaea"
+      \line { " " \musicglyph #"accidentals.medicaea-1" }
+    }
+    \column {
+      "hufnagel"
+      \line { " " \musicglyph #"accidentals.hufnagel-1" }
+    }
+  }
+}
+\layout {
+  interscoreline = 1
+  \context { \Score \remove "Bar_number_engraver" }
+  \context { \Staff
+      \remove "Clef_engraver"
+      \remove "Key_engraver"
+      \remove "Time_signature_engraver"
+      \remove "Staff_symbol_engraver"
+      \override VerticalAxisGroup #'minimum-Y-extent = ##f
+    }
+  }
+}
+@end lilypond
+
+Wie zu sehen ist, werden nicht alle Versetzungszeichen von jedem Stil
+unterstützt. Wenn versucht wird, ein Versetzungszeichen zu notieren,
+das von einem bestimmten Stil nicht unterstützt wird, wechselt LilyPond zu einem
+anderen Stil.
+
+@c @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+@c {ancient-accidentals.ly}
+
+Der Stil für Versetzungs- und Vorzeichen wird von der 
+@code{glyph-name-alist}-Eigenschaft der Grobs
+@rinternals{Accidental} und @rinternals{KeySignature}
+kontrolliert, beispielsweise:
+
+@code{\override Staff.Accidental #'glyph-name-alist =
+#alteration-mensural-glyph-name-alist}
+
+@seealso
+Notationsreferenz:
+@ref{Pitches},
+@ref{Accidentals},
+@ref{Automatic accidentals},
+@ref{Key signature}.
+
+Referenz der Interna:
+@rinternals{KeySignature}.
+
+
+@c {{{2Divisiones
+@node Divisiones
+@unnumberedsubsubsec Divisiones
+
+@cindex divisio
+@cindex divisiones
+@cindex finalis
+
+Die Notation des gregorianischen Chorals benutzt keine Pausen, anstatt
+dessen werden @emph{Divisiones} eingesetzt.
+
+Eine @emph{divisio} (Plural: @emph{divisiones}; Latein: @qq{Teilung}) ist ein
+Symbol des Notensystemkontextes, das benutzt wird, um Phrasierung und
+Abschnitte im Gregorianischen Choral anzuzeigen. Die musikalische Bedeutung
+von @emph{divisio minima}, @emph{divisio maior} und @emph{divisio maxima} kann
+beschrieben werden als kurze, mittlere und lange Pause, ungefähr wie die
+Atemzeichen aus dem Abschnitt @ref{Breath marks}. Das @emph{finalis}-Zeichen
+bezeichnet nicht nur das Ende eines Chorals, sondern wird auch oft innerhalb
+eines Antiphons/Responsoriums benutzt, um das Ende eines Abschnitts anzuzeigen.
+
+Divisiones können benutzt werden, indem die Datei @file{gregorian@/-init@/.ly}
+in die Quelldatei eingefügt wird. Hier sind die entsprechenden Definitionen
+schon abgelegt, so dass es genügt, die Befehle @code{\divisioMinima},
+@code{\divisioMaior}, @code{\divisioMaxima} und @code{\finalis} an den
+entsprechenden Stellen zu schreiben. Einige Editionen verwenden eine
+@emph{virgula} oder @emph{caesura} anstelle der divisio minima. Darum findet
+sich in der Datei @file{gregorian@/-init@/.ly} auch eine Definition für
+@code{\virgula} und @code{\caesura}.
+
+@lilypondfile[quote,ragged-right]{divisiones.ly}
+
+@funindex \virgula
 @funindex \caesura
-@code{\caesura},
 @funindex \divisioMinima
-@code{\divisioMinima},
 @funindex \divisioMaior
-@code{\divisioMaior},
 @funindex \divisioMaxima
-@code{\divisioMaxima},
 @funindex \finalis
+@funindex virgula
+@funindex caesura
+@funindex divisioMinima
+@funindex divisioMaior
+@funindex divisioMaxima
+@funindex finalis
+
+@predefined
+@code{\virgula},
+@code{\caesura},
+@code{\divisioMinima},
+@code{\divisioMaior},
+@code{\divisioMaxima},
 @code{\finalis}.
+@endpredefined
 
-@seealso
 
-In diesem Handbuch:
+@seealso
+Notationsreferenz:
 @ref{Breath marks}.
 
-Programmreferenz:
+Referenz der Interna:
 @rinternals{BreathingSign}.
 
-Beispiele:
-@rlsr{Winds}.
-
-
-@node Ligatures
-@unnumberedsubsubsec Ligatures
-@cindex Ligaturen
-
-@c TODO: Should double check if I recalled things correctly when I wrote
-@c down the following paragraph by heart.
+@c {{{2Gregorian articulations
+@node Gregorian articulation signs
+@unnumberedsubsubsec Gregorian articulation signs
 
-Eine Ligatur ist ein graphisches Symbol das wenigstens zwei unterschiedliche
-Noten darstellt. Ligaturen treten ursprünglich in Manuskripten des
-Gregorianischen Chorals auf, um auf- oder absteigende Notensequenzen zu
-notieren.
+@cindex Artikulationszeichen, greg. Choral
 
-Ligaturen werden eingegeben, indem die dazugehörigen Noten zwischen
-@code{\[} und @code{\]} eingeschlossen werden. Einige Ligaturstile benötigen
-zusätzliche Syntax für eine bestimmte Ligatur. In der Standardeinstellung
-setzt der @rinternals{LigatureBracket} ganz einfach eckige Klammern über
-die Noten der Ligatur.
+Zusätzlich zu den Standardartikulationszeichen, wie sie im Abschnitt
+@ref{Articulations and ornamentations} beschrieben werden, werden
+auch Artikulationszeichen für die Notation des Editio
+Vaticana-Stils zur Verfügung gestellt.
 
 @lilypond[quote,ragged-right,verbatim]
-\transpose c c' {
-  \[ g c a f d' \]
-  a g f
-  \[ e f a g \]
+\include "gregorian.ly"
+\score {
+  \new VaticanaVoice {
+    \override TextScript #'font-family = #'typewriter
+    \override TextScript #'font-shape = #'upright
+    \override Script #'padding = #-0.1
+    a\ictus_"ictus" \break
+    a\circulus_"circulus" \break
+    a\semicirculus_"semicirculus" \break
+    a\accentus_"accentus" \break
+    \[ a_"episem" \episemInitium \pes b \flexa a b \episemFinis \flexa a \]
+  }
 }
 @end lilypond
 
-Um einen gestimmten Ligaturstil auszuwählen, muss ein entsprechender
-Ligatur-Engraver zum Stimmkontext hinzugefügt werden, wie in den folgenden
-Abschnitten erklärt wird. Nur weiße Mensuralligaturen sind unterstützt -- mit
-Einschränkungen.
+@seealso
+TODO
 
 @knownissues
 
-Ligaturen benötigen von klassischer Notation unterschiedliche Platzaufteilung,
-was sie aber noch nicht können. Darum ist fast immer zu viel Platz zwischen
-Ligaturen und Zeilenumbrüche sind ungenügend. Text lässt sich auch nicht
-richtig an Ligaturen ausrichten.
-
-Akzidentien dürfen nicht innerhalb von einer Ligatur gedruckt werden, sondern
-müssen gesammelt und vor der Ligatur ausgegeben werden.
-
-Die Syntax verwendet immer noch den verworfenen Infix-Stil (@code{\[
-musik. Ausdr. \]}). Für die Konsistenz soll dies geändert werden in den
-Postfix-Stil (@code{Note\[ ... Note\]}). Alternativ kann die Datei
-@file{gregorian@/-init@/.ly} eingefügt werden, die eine Scheme-Funktion
-@example
-\ligature @var{musik. Ausdr.}
-@end example
-mit der selben Wirkung zur Verfügung stellt und stabil zu sein scheint.
-
-
-@node White mensural ligatures
-@unnumberedsubsubsec White mensural ligatures
-
-@cindex Mensuralligaturen
-@cindex Weiße Mensuralligaturen
-@cindex Ligaturen, weiße Mensuralnotation
+Einige Artikulationszeichen sind vertikal zu dich an den
+entsprechenden Notenköpfen gesetzt.
 
-Begrenzte Unterstützung für Ligaturen der weißen Mensuralnotation.
-
-Um weiße Mensuralligaturen zu benutzen, muss innerhalb des Layout-Blocks
-im @rinternals{Voice}-Kontext der @rinternals{Mensural_ligature_engraver}
-aktiviert werden und gleichzeitig der
-@rinternals{Ligature_bracket_engraver} (der die Klammern über den Noten
-setzt) entfernt werden, wie im Beispiel.
+Die Episem-Linie wird in vielen Fällen nicht angezeigt.
+Wenn sie angezeigt wird, ist das rechte Ende der Episem-Linie
+oft zu weit rechts.
 
-@example
-\layout @{
-  \context @{
-    \Voice
-    \remove Ligature_bracket_engraver
-    \consists Mensural_ligature_engraver
-  @}
-@}
-@end example
 
-Zusätzlich zu diesen Einstellungen gibt es keine eigenen Befehle, die die
-Form einer Ligatur bestimmen. Die Form wird vielmehr aus Tonhöhen und
-Tondauern der in Klammern gesetzten Noten geschlossen. Diese
-Herangehensweise erfordert einige Eingewöhnung, hat aber den großen
-Vorteil, dass der musikalische Inhalt der Ligatur dem Programm bekannt ist.
-Das ist nicht nur notwendig für korrekte MIDI-Ausgabe, sondern erlaubt
-es auch, automatische Transkriptionen von Ligaturen anzufertigen.
+@c {{{2Augmentum dots (@emph{morae})
+@node Augmentum dots (@emph{morae})
+@unnumberedsubsubsec Augmentum dots (@emph{morae})
 
-Eine Datei kann zum Beispiel so aussehen:
+Verlängerungspunkte, auch als @emph{morae} bezeichnet, werden
+mit der Musikfunktion @code{\augmentum} hinzugefügt.  Es
+handelt sich um eine eigenständige Funktion und nicht um
+einen Präfix, der zu einer Note gehört.  Die Funktion wirkt
+sich nur auf den direkt vorhergehenden musik. Ausdruck aus.
+Das heißt, dass @code{\augmentum \virga c} keine sichtbare
+Wirkung hat.  Anstelle dessen sollte geschrieben werden:
+@code{\virga \augmentum c} oder @code{\augmentum @{\virga c@}}.
+Man kann @code{\augmentum @{a g@}} als Kurznotation für
+@code{\augmentum a \augmentum g} schreiben.
 
-@example
-\set Score.timing = ##f
-\set Score.defaultBarType = "empty"
-\override NoteHead #'style = #'neomensural
-\override Staff.TimeSignature #'style = #'neomensural
-\clef "petrucci-g"
-\[ c'\maxima g \]
-\[ d\longa c\breve f e d \]
-\[ c'\maxima d'\longa \]
-\[ e'1 a g\breve \]
-@end example
-@lilypond[quote,ragged-right]
+@lilypond[quote,ragged-right,verbatim]
+\include "gregorian.ly"
 \score {
-  \transpose c c' {
-    \set Score.timing = ##f
-    \set Score.defaultBarType = "empty"
-    \override NoteHead #'style = #'neomensural
-    \override Staff.TimeSignature #'style = #'neomensural
-    \clef "petrucci-g"
-    \[ c'\maxima g \]
-    \[ d\longa c\breve f e d \]
-    \[ c'\maxima d'\longa \]
-    \[ e'1 a g\breve \]
-  }
-  \layout {
-    \context {
-      \Voice
-      \remove Ligature_bracket_engraver
-      \consists Mensural_ligature_engraver
-    }
+  \new VaticanaVoice {
+    \[ \augmentum a \flexa \augmentum g \]
+    \augmentum g
   }
 }
 @end lilypond
 
-Wenn der @rinternals{Ligature_bracket_engraver} nicht durch den
-@rinternals{Mensural_ligature_engraver} ersetzt wird, werden die Noten
-wie folgt ausgegeben:
+@seealso
+Notationsreferenz:
+@ref{Breath marks}.
 
-@lilypond[quote,ragged-right]
-\transpose c c' {
-  \set Score.timing = ##f
-  \set Score.defaultBarType = "empty"
-  \override NoteHead #'style = #'neomensural
-  \override Staff.TimeSignature #'style = #'neomensural
-  \clef "petrucci-g"
-  \[ c'\maxima g \]
-  \[ d\longa c\breve f e d \]
-  \[ c'\maxima d'\longa \]
-  \[ e'1 a g\breve \]
-}
-@end lilypond
+Referenz der Interna:
+@rinternals{BreathingSign}.
 
-@knownissues
+Schnipsel:
+@rlsr{Ancient notation}.
 
-Die horizontale Positionierung ist sehr schlecht.
 
 
-@node Gregorian square neumes ligatures
-@unnumberedsubsubsec Gregorian square neumes ligatures
+@c {{{2Gregorian square neumes ligatures
+@node Gregorian square neume ligatures
+@unnumberedsubsubsec Gregorian square neume ligatures
 
 @cindex Quadratische Neumenligaturen
 @cindex Gregorianische quadratische Neumenligaturen
@@ -954,39 +1352,203 @@ anspruchsvoller Typographie wie horizontale Ausrichtung von mehreren
 Ligaturen, korrekte Silbenpositionierung und richtiger Umgang mit
 Versetzungszeichen fehlen noch.
 
-Die folgende Tabelle enthält die erweiterte Neumenliste des zweiten Bands des
- Antiphonale Romanum (@emph{Liber Hymnarius}),
-1983 von den Mönchen von Solesmes herausgegeben.
+Die Unterstützung für gregorianische Neumen wird aktiviert, indem
+man mit @code{\include} die Datei @code{gregorian.ly} am Anfang
+der Quelldatei aktiviert.  Damit werden zusätzliche Befehl
+zur Verfügung gestellt, mit denen man die Neumensymbole des
+Chorals produzieren kann.
 
-@multitable @columnfractions .4 .2 .2 .2
+Notenköpfe können verändert und/bzw. verbunden werden.
 
-@item
-@b{Neuma aut@*
-Neumarum Elementa}
-@tab
-@b{Figurae@*
-Rectae}
-@tab
-@b{Figurae@*
-Liquescentes@*
-Auctae}
-@tab
-@b{Figurae@*
-Liquescentes@*
-Deminutae}
+@funindex \virga
+@funindex \stropha
+@funindex \inclinatum
+@funindex \auctum
+@funindex \descendens
+@funindex \ascendens
+@funindex \oriscus
+@funindex \quilisma
+@funindex \cavum
+@funindex \deminutum
+@funindex linea
+@funindex virga
+@funindex stropha
+@funindex inclinatum
+@funindex auctum
+@funindex descendens
+@funindex ascendens
+@funindex oriscus
+@funindex quilisma
+@funindex cavum
+@funindex deminutum
+@funindex linea
+
+@itemize
+@item Die Form des Notenkopf kann verändert werden, indem man
+@emph{vor} die Noten folgende Befehle schreibt:
+@code{\virga},
+@code{\stropha},
+@code{\inclinatum},
+@code{\auctum},
+@code{\ascendens},
+@code{\descendens},
+@code{\oriscus},
+@code{\quilisma},
+@code{\deminutum},
+@code{\cavum},
+@code{\linea}.
+
+@item Eigentliche Ligaturen (also Noten, die miteinander verbunden sind),
+werden erstellt, indem man einen der verbindenden Befehle,
+@code{\pes} oder @code{\flexa} für Aufwärts- bzw. Abwärtsbewegung,
+zwischen die zu verbindenden Noten setzt.
+@end itemize
+
+Eine Notenbezeichnung ohne jeglichen Modifikator produziert
+ein @emph{punctum}.  Alle anderen Neumen, auch einzelne
+Noten-Neumen mit einer anderen Form als der @emph{Virga}
+werden generell als Ligaturen betrachtet und deshalb
+von den Zeichen @code{\[...\]} eingeklammert werden.
+
+@noindent
+Einzelne Noten-Neumen:
+
+@itemize
+@item Das @emph{punctum} ist die grundlegende Notenform (im
+@emph{Vaticana}-Stil: ein Quadrat mit gebogenen Ober- und
+Unterkanten).  Zusäztlich gibt es auch noch das oblique
+@emph{punctum inclinatum}, das mit dem Präfix @code{\inclinatum}
+erstellt wird.  Das normale @emph{punctum} kann durch
+@code{\cavum} verändert werden, wodurch eine hohle Note
+erstellt wird, und durch @code{\linea}, wodurch vertikale
+Linien zu den Seiten der Note gezogen werden.
+
+@item Die @emph{virga} hat einen absteigenden Hals auf der
+rechten Seite.  Sie wird durch den Modifikator @code{\virga}
+erstellt.
+@end itemize
+
+@noindent
+Ligaturen
+
+Anders als in anderen Neumennotationssystemen, wird das
+typographische Aussehen einer Ligatur nicht durch Eingabebefehle
+direkt vorgegeben, sondern richtet sich nach bestimmten
+Darstellungsregeln, die durch die musikalische Bedeutung
+bestimmt werden.  Eine Ligatur mit drei Noten beispielsweise,
+mit der Form tief-hoch-tief, wie etwa @code{\[ a \pes b
+\flexa g \]}, ergibt einen Torculus, der aus drei
+Punctum-Köpfen besteht, während die Form hoch-tief-hoch,
+wie etwa @code{\[ a \flexa g \pes b \]}, einen Porrectus
+mit einer gebogenen Flexa und nur einem Punctum-Kopf ergibt.
+Es gibt keinen Befehl, mit dem explizit eine gebogene
+Flexa gesetzt werden können; die Entscheidung, wann eine
+derartige Form im Notenbild vorkommen soll, wird durch die
+musikalische Bedeutung der Noten vorgegeben.  Die Idee
+hinter dieser Art der Eingabe ist es, dass der musikalische
+Inhalt von der graphischen Ausgabe getrennt wird.  Dadurch
+wird es möglich, die gleiche Quelldatei zu benutzen, um
+beispielsweise die Noten in einem anderen Stil darzustellen.
+
+@noindent
+Liquescente Neumen
+
+Eine weitere Hauptkategorie der Notation von gregorianischem
+Choral sind die sogenannten liquescenten Neumen.  Sie werden
+unter bestimmten Umständen am Ende einer Silbe eingesetzt,
+die auf einen @qq{liquescenten} Buchstaben endet (das sind
+die Konsonanten, die eine Tonhöhe haben können, also die
+Nasale, l, r, v, j und ihre diphtongalen Entsprechungen).
+Liquescente Neumen werden also nie alleine eingesetzt (auch
+wenn sie isoliert produziert werden können) und treten immer
+am Ende einer Silbe auf.
+
+Liquescente Neumen werden graphisch auf zwei Arten dargestellt:
+mit einer kleineren Note oder indem die Hauptnote nach oben
+bzw. unten @qq{gedreht} wird.  Die erste Darstellungsweise
+erreicht man, indem einen normalen @code{pes} oder @code{flexa}
+schreibt und dann die Form der zweiten Note verändert:
+@code{\[ a \pes \deminutum b \] }.  Die zweite Darstellungsweise
+erreicht man, indem die Form einer einzelnen Neume mit
+@code{\auctum} und einem der Richtungsanzeiger
+@code{\descendens} bzw. @code{\ascendens} versieht:
+@code{ \[ \auctum \descendens a \] }.
+
+@noindent
+Spezielle Zeichen
+
+Eine dritte Kategorie besteht aus einer kleinen Anzahl an
+Zeichen mit einer besonderen Bedeutung: die @emph{quilisma}, der
+@emph{oriscus} und der @emph{strophicus}.  Sie werden
+notiert, indem man vor die entsprechende Note den
+Modifikator @code{\quilisma}, @code{\oriscus} oder
+@code{\stropha} schreibt.
+
+Im Grunde kann innerhalb der Ligaturbegrenzer @code{\[} und
+@code{\]} eine beliebige Anzahl ans Notenköpfen eingefügt
+werden und Präfixe wie @code{\pes}, @code{\flexa}, @code{\virga},
+@code{\inclinatum} usw. können beliebig untereinander
+kombiniert werden.  Der Einsatz der Regeln, mit denen die
+Ligaturen konstruiert werden, wird entsprechend angepasst.
+Auf diese Art kann eine unendliche Anzahl an Ligaturen erstellt
+werden.
+
+Die Benutzung der Notationszeichen folgt allerdings bestimmten
+Regeln, die nicht von LilyPond überprüft werden.  Die
+@emph{quilisma} beispielsweise findet sich immer als
+mittlere Note einer aufsteigenden Ligatur und fällt
+üblicherweise auf einen Halbtonschritt, aber es ist durchaus
+möglich, wenn auch nicht @emph{richtig}, eine Quilisma
+bestehend aus einer Note zu notieren.
+
+Neben den Notenformen definiert die Datei @code{gregorian.ly}
+auch die Befehle @code{\versus}, @code{\responsum}, @code{\ij},
+@code{\iij}, @code{\IJ} und @code{\IIJ}, mit denen die
+entsprechenden Zeichen, etwa für den Text oder als
+Abschnittsmarkierung erstellt werden können.  Diese
+Befehl benutzen bestimmte Unicode-Zeichen und funktionieren
+nur, wenn eine Schriftart vorhanden ist, die diese Zeichen
+unterstützt.
+
+@c neume table
+
+In der folgenden Tabelle wird eine begrenzte, aber dennoch
+repräsentative Anzahl an Ligaturen der Neumennotation dargestellt,
+denen Fragmente beigefügt sind, die die Notation in LilyPond
+zeigen.  Die Tabelle basiert auf der erweiterten Neumentabelle
+des zweiten Bands des Antiphonale Romanum (@emph{Liber
+Hymnarius}), 1983 von den Mönchen von Solsemes herausgegeben.
+Die erste Spalte zeigt die Bezeichnungen der Ligaturen, fett für
+die Normalform, kursiv für die liquescente Form.  Die dritte
+Spalte zeigt Code-Schnipsel, mit denen die Ligatur notiert
+werden kann, wobei die Noten @code{g}, @code{a} und @code{b}
+als Tonhöhen eingesetzt werden.
+
+
+@b{Neumen aus einzlenen Noten}
+
+@multitable @columnfractions .4 .2 .4
+
+@item
+@b{Grundform} und @emph{liquescente Form}
+@tab
+@b{Ausgabe}
+@tab
+@b{Lilypond-Code}
 
 @c TODO: \layout block is identical in all of the below examples.
 @c Therefore, it should somehow be included rather than duplicated all
-@c the time. --jr
+@c the time.  --jr
 
-@c why not make identifiers in ly/engraver-init.ly? --hwn
+@c why not make variables in ly/engraver-init.ly? --hwn
 
 @c Because it's just used to typeset plain notes without
 @c a staff for demonstration purposes rather than something
-@c special of Gregorian chant notation. --jr
+@c special of Gregorian chant notation.  --jr
+
 
 @item
-@code{1. Punctum}
+@b{Punctum}
 @tab
 @lilypond[staffsize=26,line-width=1.5\cm]
 \include "gregorian.ly"
@@ -994,237 +1556,259 @@ Deminutae}
   \transpose c c' {
     % Punctum
     \[ b \]
-    \noBreak s^\markup {"a"} \noBreak
-
-    % Punctum Inclinatum
-    \[ \inclinatum b \]
-    \noBreak s^\markup {"b"}
   }
 \layout { \neumeDemoLayout }}
 @end lilypond
 @tab
-@lilypond[staffsize=26,line-width=2.5\cm]
+@code{\[ b \]}
+
+@item
+@tab
+@lilypond[staffsize=26,line-width=1.5\cm]
 \include "gregorian.ly"
 \score {
   \transpose c c' {
-    % Punctum Auctum Ascendens
-    \[ \auctum \ascendens b \]
-    \noBreak s^\markup {"c"} \noBreak
-
-    % Punctum Auctum Descendens
-    \[ \auctum \descendens b \]
-    \noBreak s^\markup {"d"} \noBreak
-
-    % Punctum Inclinatum Auctum
-    \[ \inclinatum \auctum b \]
-    \noBreak s^\markup {"e"}
+    % Punctum
+    \[ \cavum b \]
   }
 \layout { \neumeDemoLayout }}
 @end lilypond
 @tab
-@lilypond[staffsize=26,line-width=1.0\cm]
+@code{\[ \cavum b \]}
+
+@item
+@tab
+@lilypond[staffsize=26,line-width=1.5\cm]
 \include "gregorian.ly"
 \score {
   \transpose c c' {
-    % Punctum Inclinatum Parvum
-    \[ \inclinatum \deminutum b \]
-    \noBreak s^\markup {"f"}
+    % Punctum
+    \[ \linea b \]
   }
 \layout { \neumeDemoLayout }}
 @end lilypond
+@tab
+@code{\[ \linea b \]}
 
 @item
-@code{2. Virga}
+@emph{Punctum Auctum Ascendens}
 @tab
-@lilypond[staffsize=26,line-width=1.0\cm]
+@lilypond[staffsize=26,line-width=2.5\cm]
 \include "gregorian.ly"
 \score {
   \transpose c c' {
-    % Virga
-    \[ \virga b \]
-    \noBreak s^\markup {"g"}
+    % Punctum Auctum Ascendens
+    \[ \auctum \ascendens b \]
   }
 \layout { \neumeDemoLayout }}
 @end lilypond
 @tab
-@tab
+@code{\[ \auctum \ascendens b \]}
 
 @item
-@code{3. Apostropha vel Stropha}
+@emph{Punctum Auctum Descendens}
 @tab
-@lilypond[staffsize=26,line-width=1.0\cm]
+@lilypond[staffsize=26,line-width=2.5\cm]
 \include "gregorian.ly"
 \score {
   \transpose c c' {
-    % Stropha
-    \[ \stropha b \]
-    \noBreak s^\markup {"h"}
+    % Punctum Auctum Descendens
+    \[ \auctum \descendens b \]
   }
 \layout { \neumeDemoLayout }}
 @end lilypond
 @tab
-@lilypond[staffsize=26,line-width=1.0\cm]
+@code{\[ \auctum \descendens b \]}
+
+@item
+@b{Punctum inclinatum}
+@tab
+@lilypond[staffsize=26,line-width=1.5\cm]
 \include "gregorian.ly"
 \score {
   \transpose c c' {
-    % Stropha Aucta
-    \[ \stropha \auctum b \]
-    \noBreak s^\markup {"i"}
+    % Punctum Inclinatum
+    \[ \inclinatum b \]
   }
 \layout { \neumeDemoLayout }}
 @end lilypond
 @tab
+@code{\[ \inclinatum b \]}
 
 @item
-@code{4. Oriscus}
+@emph{Punctum Inclinatum Auctum}
 @tab
-@lilypond[staffsize=26,line-width=1.0\cm]
+@lilypond[staffsize=26,line-width=2.5\cm]
 \include "gregorian.ly"
 \score {
   \transpose c c' {
-    % Oriscus
-    \[ \oriscus b \]
-    \noBreak s^\markup {"j"}
+    % Punctum Inclinatum Auctum
+    \[ \inclinatum \auctum b \]
   }
 \layout { \neumeDemoLayout }}
 @end lilypond
 @tab
-@tab
+@code{\[ \inclinatum \auctum b \]}
 
 @item
-@code{5. Clivis vel Flexa}
+@emph{Punctum Inclinatum Parvum}
 @tab
 @lilypond[staffsize=26,line-width=1.0\cm]
 \include "gregorian.ly"
 \score {
   \transpose c c' {
-    % Clivis vel Flexa
-    \[ b \flexa g \]
-    s^\markup {"k"}
+    % Punctum Inclinatum Parvum
+    \[ \inclinatum \deminutum b \]
   }
 \layout { \neumeDemoLayout }}
 @end lilypond
 @tab
-@lilypond[staffsize=26,line-width=2.0\cm]
+@code{\[ \inclinatum \deminutum b \]}
+
+@item
+@b{Virga}
+@tab
+@lilypond[staffsize=26,line-width=1.0\cm]
 \include "gregorian.ly"
 \score {
   \transpose c c' {
-    % Clivis Aucta Descendens
-    \[ b \flexa \auctum \descendens g \]
-    \noBreak s^\markup {"l"} \noBreak
-
-    % Clivis Aucta Ascendens
-    \[ b \flexa \auctum \ascendens g \]
-    \noBreak s^\markup {"m"}
+    % Virga
+    \[ \virga b \]
   }
 \layout { \neumeDemoLayout }}
 @end lilypond
 @tab
+
+@end multitable
+
+@noindent
+@b{Ligaturen aus zwei Noten}
+
+@multitable @columnfractions .4 .2 .4
+
+@item
+@b{Clivis vel Flexa}
+@tab
 @lilypond[staffsize=26,line-width=1.0\cm]
 \include "gregorian.ly"
 \score {
   \transpose c c' {
-    % Cephalicus
-    \[ b \flexa \deminutum g \]
-    s^\markup {"n"}
+    % Clivis vel Flexa
+    \[ b \flexa g \]
   }
 \layout { \neumeDemoLayout }}
 @end lilypond
+@tab
+@code{\[ b \flexa g \]}
+
 
 @item
-@code{6. Podatus vel Pes}
+@emph{Clivis Aucta Descendens}
 @tab
-@lilypond[staffsize=26,line-width=1.0\cm]
+@lilypond[staffsize=26,line-width=2.0\cm]
 \include "gregorian.ly"
 \score {
   \transpose c c' {
-    % Podatus vel Pes
-    \[ g \pes b \]
-    s^\markup {"o"}
+    % Clivis Aucta Descendens
+    \[ b \flexa \auctum \descendens g \]
   }
 \layout { \neumeDemoLayout }}
 @end lilypond
 @tab
+@code{\[ b \flexa \auctum \descendens g \]}
+
+@item
+@emph{Clivis Aucta Ascendens}
+@tab
 @lilypond[staffsize=26,line-width=2.0\cm]
 \include "gregorian.ly"
 \score {
   \transpose c c' {
-    % Pes Auctus Descendens
-    \[ g \pes \auctum \descendens b \]
-    \noBreak s^\markup {"p"} \noBreak
-
-    % Pes Auctus Ascendens
-    \[ g \pes \auctum \ascendens b \]
-    \noBreak s^\markup {"q"}
+    % Clivis Aucta Ascendens
+    \[ b \flexa \auctum \ascendens g \]
   }
 \layout { \neumeDemoLayout }}
 @end lilypond
 @tab
-@lilypond[staffsize=26,line-width=1.0\cm]
+@code{\[ b \flexa \auctum \ascendens g \]}
+
+@item
+@emph{Cephalicus}
+@tab
+@lilypond[staffsize=26,line-width=2.0\cm]
 \include "gregorian.ly"
 \score {
   \transpose c c' {
-    % Epiphonus
-    \[ g \pes \deminutum b \]
-    s^\markup {"r"}
+    % Cephalicus
+    \[ b \flexa \deminutum g \]
   }
 \layout { \neumeDemoLayout }}
 @end lilypond
+@tab
+@code{\[ b \flexa \deminutum g \]}
 
 @item
-@code{7. Pes Quassus}
+@b{Podatus/Pes}
 @tab
 @lilypond[staffsize=26,line-width=1.0\cm]
 \include "gregorian.ly"
 \score {
   \transpose c c' {
-    % Pes Quassus
-    \[ \oriscus g \pes \virga b \]
-    s^\markup {"s"}
+    % Podatus vel Pes
+    \[ g \pes b \]
   }
 \layout { \neumeDemoLayout }}
 @end lilypond
 @tab
+@code{\[ g \pes b \]}
+
+@item
+@emph{Pes Auctus Descendens}
+@tab
 @lilypond[staffsize=26,line-width=1.0\cm]
 \include "gregorian.ly"
 \score {
   \transpose c c' {
-    % Pes Quassus Auctus Descendens
-    \[ \oriscus g \pes \auctum \descendens b \]
-    s^\markup {"t"}
+       % Pes Auctus Descendens
+    \[ g \pes \auctum \descendens b \]
   }
 \layout { \neumeDemoLayout }}
 @end lilypond
 @tab
+@code{\[ g \pes \auctum \descendens b \]}
 
 @item
-@code{8. Quilisma Pes}
+@emph{Pes Auctus Ascendens}
 @tab
 @lilypond[staffsize=26,line-width=1.0\cm]
 \include "gregorian.ly"
 \score {
   \transpose c c' {
-    % Quilisma Pes
-    \[ \quilisma g \pes b \]
-    s^\markup {"u"}
+    % Pes Auctus Ascendens
+    \[ g \pes \auctum \ascendens b \]
   }
 \layout { \neumeDemoLayout }}
 @end lilypond
 @tab
+@code{\[ g \pes \auctum \ascendens b \]}
+
+@item
+@emph{Epiphonus}
+@tab
 @lilypond[staffsize=26,line-width=1.0\cm]
 \include "gregorian.ly"
 \score {
   \transpose c c' {
-    % Quilisma Pes Auctus Descendens
-    \[ \quilisma g \pes \auctum \descendens b \]
-    s^\markup {"v"}
+       % Epiphonus
+    \[ g \pes \deminutum b \]
   }
 \layout { \neumeDemoLayout }}
 @end lilypond
 @tab
+@code{\[ g \pes \deminutum b \]}
 
 @item
-@code{9. Podatus Initio Debilis}
+@emph{Pes Initio Debilis}
 @tab
 @lilypond[staffsize=26,line-width=1.0\cm]
 \include "gregorian.ly"
@@ -1232,25 +1816,36 @@ Deminutae}
   \transpose c c' {
     % Pes Initio Debilis
     \[ \deminutum g \pes b \]
-    s^\markup {"w"}
   }
 \layout { \neumeDemoLayout }}
 @end lilypond
 @tab
+@code{\[ \deminutum g \pes b \]}
+
+@item
+@emph{Pes Auctus Descendens Initio Debilis}
+@tab
 @lilypond[staffsize=26,line-width=1.0\cm]
 \include "gregorian.ly"
 \score {
   \transpose c c' {
     % Pes Auctus Descendens Initio Debilis
     \[ \deminutum g \pes \auctum \descendens b \]
-    s^\markup {"x"}
   }
 \layout { \neumeDemoLayout }}
 @end lilypond
 @tab
+@code{\[ \deminutum g \pes \auctum \descendens b \]}
+
+@end multitable
+
+@noindent
+@b{Ligaturen mit mehr als zwei Noten}
+
+@multitable @columnfractions .4 .2 .4
 
 @item
-@code{10. Torculus}
+@b{Torculus}
 @tab
 @lilypond[staffsize=26,line-width=1.0\cm]
 \include "gregorian.ly"
@@ -1258,71 +1853,89 @@ Deminutae}
   \transpose c c' {
     % Torculus
     \[ a \pes b \flexa g \]
-    s^\markup {"y"}
   }
 \layout { \neumeDemoLayout }}
 @end lilypond
 @tab
+@code{\[ a \pes b \flexa g \]}
+
+@item
+@emph{Torculus Auctus Descendens}
+@tab
 @lilypond[staffsize=26,line-width=1.0\cm]
 \include "gregorian.ly"
 \score {
   \transpose c c' {
-    % Torculus Auctus Descendens
+       % Torculus Auctus Descendens
     \[ a \pes b \flexa \auctum \descendens g \]
-    s^\markup {"z"}
   }
 \layout { \neumeDemoLayout }}
 @end lilypond
 @tab
+@code{\[ a \pes b \flexa \auctum \descendens g \]}
+
+@item
+@emph{Torculus Deminutus}
+@tab
 @lilypond[staffsize=26,line-width=1.0\cm]
 \include "gregorian.ly"
 \score {
   \transpose c c' {
-    % Torculus Deminutus
+       % Torculus Deminutus
     \[ a \pes b \flexa \deminutum g \]
-    s^\markup {"A"}
   }
 \layout { \neumeDemoLayout }}
 @end lilypond
+@tab
+@code{\[ a \pes b \flexa \deminutum g \]}
 
 @item
-@code{11. Torculus Initio Debilis}
+@emph{Torculus Initio Debilis}
 @tab
 @lilypond[staffsize=26,line-width=1.0\cm]
 \include "gregorian.ly"
 \score {
   \transpose c c' {
-    % Torculus Initio Debilis
+       % Torculus Initio Debilis
     \[ \deminutum a \pes b \flexa g \]
-    s^\markup {"B"}
   }
 \layout { \neumeDemoLayout }}
 @end lilypond
 @tab
+@code{\[ \deminutum a \pes b \flexa g \]}
+
+@item
+@emph{Torculus Auctus Descendens Initio Debilis}
+@tab
 @lilypond[staffsize=26,line-width=1.0\cm]
 \include "gregorian.ly"
 \score {
   \transpose c c' {
-    % Torculus Auctus Descendens Initio Debilis
+       % Torculus Auctus Descendens Initio Debilis
     \[ \deminutum a \pes b \flexa \auctum \descendens g \]
-    s^\markup {"C"}
   }
 \layout { \neumeDemoLayout }}
 @end lilypond
 @tab
+@code{\[ \deminutum a \pes b \flexa \auctum \descendens g \]}
+
+@item
+@emph{Torculus Deminutus Initio Debilis}
+@tab
 @lilypond[staffsize=26,line-width=1.0\cm]
 \include "gregorian.ly"
 \score {
   \transpose c c' {
-    % Torculus Deminutus Initio Debilis
+       % Torculus Deminutus Initio Debilis
     \[ \deminutum a \pes b \flexa \deminutum g \]
-    s^\markup {"D"}
   }
 \layout { \neumeDemoLayout }}
 @end lilypond
+@tab
+@code{\[ \deminutum a \pes b \flexa \deminutum g \]}
 
 @item
-@code{12. Porrectus}
+@b{Porrectus}
 @tab
 @lilypond[staffsize=26,line-width=1.0\cm]
 \include "gregorian.ly"
@@ -1330,35 +1943,44 @@ Deminutae}
   \transpose c c' {
     % Porrectus
     \[ a \flexa g \pes b \]
-    s^\markup {"E"}
   }
 \layout { \neumeDemoLayout }}
 @end lilypond
 @tab
+@code{\[ a \flexa g \pes b \]}
+
+@item
+@emph{Porrectus Auctus Descendens}
+@tab
 @lilypond[staffsize=26,line-width=1.0\cm]
 \include "gregorian.ly"
 \score {
   \transpose c c' {
-    % Porrectus Auctus Descendens
+       % Porrectus Auctus Descendens
     \[ a \flexa g \pes \auctum \descendens b \]
-    s^\markup {"F"}
   }
 \layout { \neumeDemoLayout }}
 @end lilypond
 @tab
+@code{\[ a \flexa g \pes \auctum \descendens b \]}
+
+@item
+@emph{Porrectus Deminutus}
+@tab
 @lilypond[staffsize=26,line-width=1.0\cm]
 \include "gregorian.ly"
 \score {
   \transpose c c' {
-    % Porrectus Deminutus
+       % Porrectus Deminutus
     \[ a \flexa g \pes \deminutum b \]
-    s^\markup {"G"}
   }
 \layout { \neumeDemoLayout }}
 @end lilypond
+@tab
+@code{\[ a \flexa g \pes \deminutum b \]}
 
 @item
-@code{13. Climacus}
+@b{Climacus}
 @tab
 @lilypond[staffsize=26,line-width=1.0\cm]
 \include "gregorian.ly"
@@ -1366,36 +1988,44 @@ Deminutae}
   \transpose c c' {
     % Climacus
     \[ \virga b \inclinatum a \inclinatum g \]
-    s^\markup {"H"}
   }
-  \layout { \neumeDemoLayout }
-}
+\layout { \neumeDemoLayout }}
 @end lilypond
 @tab
+@code{\[ \virga b \inclinatum a \inclinatum g \]}
+
+@item
+@emph{Climacus Auctus}
+@tab
 @lilypond[staffsize=26,line-width=1.0\cm]
 \include "gregorian.ly"
 \score {
   \transpose c c' {
-    % Climacus Auctus
+       % Climacus Auctus
     \[ \virga b \inclinatum a \inclinatum \auctum g \]
-    s^\markup {"I"}
   }
 \layout { \neumeDemoLayout }}
 @end lilypond
 @tab
+@code{\[ \virga b \inclinatum a \inclinatum \auctum g \]}
+
+@item
+@emph{Climacus Deminutus}
+@tab
 @lilypond[staffsize=26,line-width=1.0\cm]
 \include "gregorian.ly"
 \score {
   \transpose c c' {
-    % Climacus Deminutus
+       % Climacus Deminutus
     \[ \virga b \inclinatum a \inclinatum \deminutum g \]
-    s^\markup {"J"}
   }
 \layout { \neumeDemoLayout }}
 @end lilypond
+@tab
+@code{\[ \virga b \inclinatum a \inclinatum \deminutum g \]}
 
 @item
-@code{14. Scandicus}
+@b{Scandicus}
 @tab
 @lilypond[staffsize=26,line-width=1.0\cm]
 \include "gregorian.ly"
@@ -1403,450 +2033,234 @@ Deminutae}
   \transpose c c' {
     % Scandicus
     \[ g \pes a \virga b \]
-    s^\markup {"K"}
   }
 \layout { \neumeDemoLayout }}
 @end lilypond
 @tab
+@code{\[ g \pes a \virga b \]}
+
+@item
+@emph{Scandicus Auctus Descendens}
+@tab
 @lilypond[staffsize=26,line-width=1.0\cm]
 \include "gregorian.ly"
 \score {
   \transpose c c' {
-    % Scandicus Auctus Descendens
+       % Scandicus Auctus Descendens
     \[ g \pes a \pes \auctum \descendens b \]
-    s^\markup {"L"}
   }
 \layout { \neumeDemoLayout }}
 @end lilypond
 @tab
+@code{\[ g \pes a \pes \auctum \descendens b \]}
+
+@item
+@emph{Scandicus Deminutus}
+@tab
 @lilypond[staffsize=26,line-width=1.0\cm]
 \include "gregorian.ly"
 \score {
   \transpose c c' {
-    % Scandicus Deminutus
+       % Scandicus Deminutus
     \[ g \pes a \pes \deminutum b \]
-    s^\markup {"M"}
   }
 \layout { \neumeDemoLayout }}
 @end lilypond
+@tab
+@code{\[ g \pes a \pes \deminutum b \]}
+
+@end multitable
+
+@noindent
+@b{Special Signs}
+
+@multitable @columnfractions .4 .2 .4
 
 @item
-@code{15. Salicus}
+@b{Quilisma}
 @tab
 @lilypond[staffsize=26,line-width=1.0\cm]
 \include "gregorian.ly"
 \score {
   \transpose c c' {
-    % Salicus
-    \[ g \oriscus a \pes \virga b \]
-    s^\markup {"N"}
+    % Quilisma
+    \[ g \pes \quilisma a \pes b \]
   }
 \layout { \neumeDemoLayout }}
 @end lilypond
 @tab
+@code{\[ g \pes \quilisma a \pes b \]}
+
+@item
+@emph{Quilisma Pes Auctus Descendens}
+@tab
 @lilypond[staffsize=26,line-width=1.0\cm]
 \include "gregorian.ly"
 \score {
   \transpose c c' {
-    % Salicus Auctus Descendens
-    \[ g \oriscus a \pes \auctum \descendens b \]
-    s^\markup {"O"}
+    % Quilisma Pes Auctus Descendens
+    \[ g \quilisma a \pes \auctum \descendens b \]
   }
 \layout { \neumeDemoLayout }}
 @end lilypond
 @tab
+@code{\[ \quilisma g \pes \auctum \descendens b \]}
 
 @item
-@code{16. Trigonus}
+@b{Oriscus}
 @tab
 @lilypond[staffsize=26,line-width=1.0\cm]
 \include "gregorian.ly"
 \score {
   \transpose c c' {
-    % Trigonus
-    \[ \stropha b \stropha b \stropha a \]
-    s^\markup {"P"}
+    % Oriscus
+    \[ \oriscus b \]
   }
-  \layout { \neumeDemoLayout }
-}
-@end lilypond
-@tab
-@tab
-
-@end multitable
-
-Anders als in den meisten Neumennotationssystemen zeigt der Quellcode
-von LilyPond nicht das typographische Aussehen der Ligatur an, sondern
-deren musikalischen Inhalt. Der Code  @code{\[ a \pes b
-\flexa g \]} etwa ergibt einen Torculus, der aus drei Punctum-Köpfen besteht,
-während @code{\[ a \flexa g \pes b \]} einen Porrectus mit einer gekrümmten
-Flexa und einem einzelnen Punctum ausgibt.
-Es gibt also keinen Befehl, der explizit eine gekrümmte Flexa setzen würde;
-die Entscheidung, wann diese gesetzt werden soll hängt vielmehr davon ab,
-welcher musikalische Inhalt dargestellt werden soll. Der Sinn dieser
-Herangehensweise ist es, den Inhalt von der graphischen Repräsentation zu
-trennen. Auf diese Art kann mit der gleichen Eingabe ein anderer gregorianischer
-Stil gesetzt werden, ohne die Notation zu verändern.
-
-Die folgende Tabelle zeigt Code-Fragmente, mit denen die Ligaturen der vorigen
-Tabelle erstellt werden können. Der Buchstabe in der ersten Spalte jeder Zeile
-der unteren Tabelle zeigt an, auf welche Ligatur in der vorigen Tabelle sie sich
-bezieht. In der zweiten Spalte erscheint die Bezeichnung der Ligatur. Die dritte
-Spalte enthält das Fragment, mit dem die Ligatur erzeugt wurde, wobei
-@code{g}, @code{a} und @code{b} als Beispieltonhöhen eingesetzt werden.
-
-@multitable @columnfractions .02 .31 .67
-@item
-@b{#}
-@tab
-@b{Name}
-@tab
-@b{Input Language}
-
-@item
-a
-@tab
-Punctum
-@tab
-@code{\[ b \]}
-
-@item
-b
-@tab
-Punctum Inclinatum
-@tab
-@code{\[ \inclinatum b \]}
-
-@item
-c
-@tab
-Punctum Auctum@*
-Ascendens
-@tab
-@code{\[ \auctum \ascendens b \]}
-
-@item
-d
-@tab
-Punctum Auctum@*
-Descendens
-@tab
-@code{\[ \auctum \descendens b \]}
-
-@item
-e
-@tab
-Punctum Inclinatum@*
-Auctum
-@tab
-@code{\[ \inclinatum \auctum b \]}
-
-@item
-f
-@tab
-Punctum Inclinatum@*
-Parvum @tab
-@code{\[ \inclinatum \deminutum b \]}
-
-@item
-g
-@tab
-Virga
-@tab
-@code{\[ \virga b \]}
-
-@item
-h
-@tab
-Stropha
-@tab
-@code{\[ \stropha b \]}
-
-@item
-i
-@tab
-Stropha Aucta
-@tab
-@code{\[ \stropha \auctum b \]}
-
-@item
-j
-@tab
-Oriscus
-@tab
-@code{\[ \oriscus b \]}
-
-@item
-k
-@tab
-Clivis vel Flexa
-@tab
-@code{\[ b \flexa g \]}
-
-@item
-l
-@tab
-Clivis Aucta@*
-Descendens
-@tab
-@code{\[ b \flexa \auctum \descendens g \]}
-
-@item
-m
-@tab
-Clivis Aucta@*
-Ascendens
-@tab
-@code{\[ b \flexa \auctum \ascendens g \]}
-
-@item
-n
-@tab
-Cephalicus
-@tab
-@code{\[ b \flexa \deminutum g \]}
-
-@item
-o
-@tab
-Podatus vel Pes
-@tab
-@code{\[ g \pes b \]}
-
-@item
-p
-@tab
-Pes Auctus@*
-Descendens
-@tab
-@code{\[ g \pes \auctum \descendens b \]}
-
-@item
-q
-@tab
-Pes Auctus@*
-Ascendens
-@tab
-@code{\[ g \pes \auctum \ascendens b \]}
-
-@item
-r
-@tab
-Epiphonus
-@tab
-@code{\[ g \pes \deminutum b \]}
-
-@item
-s
-@tab
-Pes Quassus
-@tab
-@code{\[ \oriscus g \pes \virga b \]}
-
-@item
-t
-@tab
-Pes Quassus@*
-Auctus Descendens @tab
-@code{\[ \oriscus g \pes \auctum \descendens b \]}
-
-@item
-u
-@tab
-Quilisma Pes
-@tab
-@code{\[ \quilisma g \pes b \]}
-
-@item
-v
-@tab
-Quilisma Pes@*
-Auctus Descendens
-@tab
-@code{\[ \quilisma g \pes \auctum \descendens b \]}
-
-@item
-w
-@tab
-Pes Initio Debilis
-@tab
-@code{\[ \deminutum g \pes b \]}
-
-@item
-x
-@tab
-Pes Auctus Descendens@*
-Initio Debilis
-@tab
-@code{\[ \deminutum g \pes \auctum \descendens b \]}
-
-@item
-y
-@tab
-Torculus
-@tab
-@code{\[ a \pes b \flexa g \]}
-
-@item
-z
-@tab
-Torculus Auctus@*
-Descendens
-@tab
-@code{\[ a \pes b \flexa \auctum \descendens g \]}
-
-@item
-A
-@tab
-Torculus Deminutus
-@tab
-@code{\[ a \pes b \flexa \deminutum g \]}
-
-@item
-B
-@tab
-Torculus Initio Debilis
-@tab
-@code{\[ \deminutum a \pes b \flexa g \]}
-
-@item
-C
-@tab
-Torculus Auctus@*
-Descendens Initio Debilis
-@tab
-@code{\[ \deminutum a \pes b \flexa \auctum \descendens g \]}
-
-@item
-D
-@tab
-Torculus Deminutus@*
-Initio Debilis
-@tab
-@code{\[ \deminutum a \pes b \flexa \deminutum g \]}
-
-@item
-E
-@tab
-Porrectus
-@tab
-@code{\[ a \flexa g \pes b \]}
-
-@item
-F
-@tab
-Porrectus Auctus@*
-Descendens
-@tab
-@code{\[ a \flexa g \pes \auctum \descendens b \]}
-
-@item
-G
-@tab
-Porrectus Deminutus
+\layout { \neumeDemoLayout }}
+@end lilypond
 @tab
-@code{\[ a \flexa g \pes \deminutum b \]}
+@code{\[ \oriscus b \]}
 
 @item
-H
+@emph{Pes Quassus}
 @tab
-Climacus
+@lilypond[staffsize=26,line-width=1.0\cm]
+\include "gregorian.ly"
+\score {
+  \transpose c c' {
+    % Pes Quassus
+    \[ \oriscus g \pes \virga b \]
+  }
+\layout { \neumeDemoLayout }}
+@end lilypond
 @tab
-@code{\[ \virga b \inclinatum a \inclinatum g \]}
+@code{\[ \oriscus g \pes \virga b \]}
 
 @item
-I
+@emph{Pes Quassus Auctus Descendens}
 @tab
-Climacus Auctus
+@lilypond[staffsize=26,line-width=1.0\cm]
+\include "gregorian.ly"
+\score {
+  \transpose c c' {
+    % Pes Quassus Auctus Descendens
+    \[ \oriscus g \pes \auctum \descendens b \]
+  }
+\layout { \neumeDemoLayout }}
+@end lilypond
 @tab
-@code{\[ \virga b \inclinatum a \inclinatum \auctum g \]}
+@code{\[ \oriscus g \pes \auctum \descendens b \]}
 
 @item
-J
+@b{Salicus}
 @tab
-Climacus Deminutus
+@lilypond[staffsize=26,line-width=1.0\cm]
+\include "gregorian.ly"
+\score {
+  \transpose c c' {
+    % Salicus
+    \[ g \oriscus a \pes \virga b \]
+  }
+\layout { \neumeDemoLayout }}
+@end lilypond
 @tab
-@code{\[ \virga b \inclinatum a \inclinatum \deminutum g \]}
+@code{\[ g \oriscus a \pes \virga b \]}
 
 @item
-K
+@emph{Salicus Auctus Descendens}
 @tab
-Scandicus
+@lilypond[staffsize=26,line-width=1.0\cm]
+\include "gregorian.ly"
+\score {
+  \transpose c c' {
+    % Salicus Auctus Descendens
+    \[ g \oriscus a \pes \auctum \descendens b \]
+  }
+\layout { \neumeDemoLayout }}
+@end lilypond
 @tab
-@code{\[ g \pes a \virga b \]}
+@code{\[ g \oriscus a \pes \auctum \descendens b \]}
 
 @item
-L
+@b{(Apo)stropha}
 @tab
-Scandicus Auctus@*
-Descendens
+@lilypond[staffsize=26,line-width=1.0\cm]
+\include "gregorian.ly"
+\score {
+  \transpose c c' {
+    % Stropha
+    \[ \stropha b \]
+  }
+\layout { \neumeDemoLayout }}
+@end lilypond
 @tab
-@code{\[ g \pes a \pes \auctum \descendens b \]}
+@code{\[ \stropha b \]}
 
 @item
-M
+@emph{Stropha Aucta}
 @tab
-Scandicus Deminutus
+@lilypond[staffsize=26,line-width=1.0\cm]
+\include "gregorian.ly"
+\score {
+  \transpose c c' {
+    % Stropha Aucta
+    \[ \stropha \auctum b \]
+  }
+\layout { \neumeDemoLayout }}
+@end lilypond
 @tab
-@code{\[ g \pes a \pes \deminutum b \]}
+@code{\[ \stropha \auctum b \]}
 
 @item
-N
+@b{Bistropha}
 @tab
-Salicus
+@lilypond[staffsize=26,line-width=1.0\cm]
+\include "gregorian.ly"
+\score {
+  \transpose c c' {
+    % Bistropha
+    \[ \stropha b \stropha b \]
+  }
+\layout { \neumeDemoLayout }}
+@end lilypond
 @tab
-@code{\[ g \oriscus a \pes \virga b \]}
+@code{\[ \stropha b \stropha b \]}
 
 @item
-O
+@b{Tristropha}
 @tab
-Salicus Auctus Descendens
+@lilypond[staffsize=26,line-width=1.0\cm]
+\include "gregorian.ly"
+\score {
+  \transpose c c' {
+    % Tristropha
+    \[ \stropha b \stropha b \stropha b \]
+  }
+\layout { \neumeDemoLayout }}
+@end lilypond
 @tab
-@code{\[ g \oriscus a \pes \auctum \descendens b \]}
+@code{\[ \stropha b \stropha b \stropha b \]}
 
 @item
-P
-@tab
-Trigonus
+@emph{Trigonus}
 @tab
-@code{\[ \stropha b \stropha b \stropha a \]}
-@end multitable
-
-Die Ligaturen dieser Liste dienen als begrenzter, aber doch
-repräsentativer Vorrat an Ligaturbeispielen des Gregorianischen
-Chorals. Innerhalb der Ligaturbegrenzungen  @code{\[} und
-@code{\]}  kann jedoch problemlos jede nur mögliche Anzahl an
-Noten gesetzt werden, und Präfixe wie
-@code{\pes}, @code{\flexa}, @code{\virga}, @code{\inclinatum},
-usw können nach Belieben gemischt werden. Die Regeln,
-die der Konstruktion der Ligaturen in den Tabellen zugrunde liegen,
-werden entsprechend angepasst. Auf diese Weise können unendlich
-viele Ligaturen gesetzt werden.
-
-Augmentum-Punkte, auch @emph{morae} genannt, werden mit dem
-Befehl @code{\augmentum} hinzugefügt. @code{\augmentum} ist allerdings
-als eigene musikalische Funktion gebaut und nicht als ein Notenpräfix.
-Insofern hat der Befehl in diesem Kontext:
-@code{\augmentum \virga c} keine sichtbaren Auswirkungen. Erst mit
-@code{\virga \augmentum c} oder @code{\augmentum @{\virga c@}}
-funktionieren beide Befehle. Es ist auch möglich, mit
-@code{\augmentum @{a g@}} die Schreibweise
-@code{\augmentum a \augmentum g} abzukürzen.
-
-@lilypond[quote,ragged-right,verbatim]
+@lilypond[staffsize=26,line-width=1.0\cm]
 \include "gregorian.ly"
 \score {
-  \new VaticanaVoice {
-    \[ \augmentum a \flexa \augmentum g \]
-    \augmentum g
+  \transpose c c' {
+    % Trigonus
+    \[ \stropha b \stropha b \stropha a \]
   }
+  \layout { \neumeDemoLayout }
 }
 @end lilypond
+@tab
+@code{\[ \stropha b \stropha b \stropha a \]}
 
-@predefined
+@end multitable
 
+@predefined
 Folgende Notenpräfixe sind unterstützt:
-
 @funindex \virga
 @code{\virga},
 @funindex \stropha
@@ -1869,19 +2283,23 @@ Folgende Notenpräfixe sind unterstützt:
 @code{\cavum},
 @funindex \linea
 @code{\linea}.
+@endpredefined
+
 
 Präfixe können kombiniert werden, wenn es hier auch Begrenzungen
 gibt. Zum Beispiel können die Präfixe @code{\descendens} oder
 @code{\ascendens} vor einer Note geschrieben werden, aber nicht
-beide für die selbe Note
-.
+beide für die selbe Note.
+
 @funindex \pes
 @funindex \flexa
+
 Zwei benachbarte Noten können mit den @code{\pes} und
 @code{\flexa}-Infixen verbunden werden, um eine steigende bwz.
 fallende Melodielinie zu notieren.
 
 @funindex \augmentum
+
 Die musikalische Funktion @code{\augmentum} muss benutzt werden, um
 augmentum-Punkte hinzuzufügen.
 
@@ -1897,167 +2315,297 @@ musikalische Funktion, so dass @code{\augmentum} mit den anderen
 Präfixen in arbiträrer Reihenfolge notiert werden kann.
 
 
-@node Pre-defined contexts
-@subsection Pre-defined contexts
-
-@untranslated
+@c Working with ancient music: scenarios and solutions::  {{{1
+@node Working with ancient music---scenarios and solutions
+@subsection Working with ancient music---scenarios and solutions
 
 @menu
-* Gregorian chant contexts::
-* Mensural contexts::
+* Incipits::
+* Mensurstriche layout::
+* Transcribing Gregorian chant::
+* Ancient and modern from one source::
+* Editorial markings::
 @end menu
 
+Wenn man mit Alter Notation zu tun hat, fallen oft Aufgaben
+an, die in der modernen Notation nicht vorkommen, für welche
+LilyPond geschaffen wurde.  In diesem Abschnitt sollen
+darum einige praktische Problemstellungen und Lösungsvorschläge
+dargestellt werden.  Dabei handelt es sich um:
+
+@itemize
+@item wie man Incipite in modernen Editionen von Mensuralnotation
+notieren kann (d.h. ein kleiner Abschnitt
+vor der eigentlichen Paritur, der die Originalnotenformen
+darstellt),
+@item wie man @emph{Mensurstriche} einstellt, mit denen
+oft moderne Transkriptionen polyphoner Musik notiert werden,
+@item wie man den gregorianischen Choral mit morderner Notation
+darstellt und
+@item wie man sowohl ein Mensuralnotationsbild als auch eine
+moderne Edition aus der selben Quelle erstellt.
+@end itemize
+
+
+@c {{{2Incipits
+@node Incipits
+@unnumberedsubsubsec Incipits
 
-@node Gregorian chant contexts
-@unnumberedsubsubsec Gregorian chant contexts
+@c TODO Add text
+@c clefs, mensuration signs etc from lsr and -user
+@c use snippet Transcription-of-ancient-music-with-incipit
+TBC
 
-@cindex VaticanaVoiceContext
-@cindex VaticanaStaffContext
 
-Die vordefinierten Kontexte @code{VaticanaVoiceContext} (für eine
-gregorianische Stimme) und @code{VaticanaStaffContext} (für ein
-gregorianisches Notensystem) können eingesetzt werden, um
-Gregorianischen Choral im Stil der Editio Vaticana zu setzen. Diese
-Kontexte initialisieren alle relevanten Eigenschaften für das Notensystem
-und die graphischen Objekte, so dass unmittelbar mit der Notation
-begonnen werden kann. Siehe das folgende Beispiel:
+@seealso
+@c ... and reference to other sections ...
 
-@lilypond[quote,ragged-right,packed,verbatim]
-\include "gregorian.ly"
-\score {
-  <<
-    \new VaticanaVoice = "cantus" {
-      \[ c'\melisma c' \flexa a \]
-      \[ a \flexa \deminutum g\melismaEnd \]
-      f \divisioMinima
-      \[ f\melisma \pes a c' c' \pes d'\melismaEnd \]
-      c' \divisioMinima \break
-      \[ c'\melisma c' \flexa a \]
-      \[ a \flexa \deminutum g\melismaEnd \] f \divisioMinima
-    }
-    \new Lyrics \lyricsto "cantus" {
-      San- ctus, San- ctus, San- ctus
-    }
-  >>
-}
-@end lilypond
 
+@c {{{2Mensurstriche layout
+@node Mensurstriche layout
+@unnumberedsubsubsec Mensurstriche layout
 
-@node Mensural contexts
-@unnumberedsubsubsec Mensural contexts
 
-@cindex MensuralVoiceContext
-@cindex MensuralStaffContext
+Als @emph{Mensurstriche} wird ein Notenlayout bezeichnet,
+in dem die Taktlinien nicht auf den Systemen, sondern nur
+zwischen Systemen gezogen werden.  Damit soll signalisiert
+werden, dass das Original keine Takteinteilung besessen hat
+und etwa Synkopen nicht über Taktlinien hinweg aufgeteilt 
+werden müssen, während mann sich dennoch an den Taktlinien
+rhythmisch orientieren kann.
 
-Die vordefinierten Kontexte @code{MensuralVoiceContext} und
-@code{MensuralStaffContext} können eingesetzt werden, um
-ein Stück in Mensuralnotations zu schreiben. Die Kontexte
-initialisieren alle relevanten Eigenschaften der Kontexte und
-graphischen Objekte, so dass unmittelbar mit der Notation begonnen
-werden kann. Siehe das folgende Beispiel:
+@lilypondfile[verbatim,lilyquote,texidoc]
+{mensurstriche-layout-bar-lines-between-the-staves.ly}
 
-@lilypond[quote,ragged-right,verbatim]
-\score {
-  <<
-    \new MensuralVoice = "discantus" \transpose c c' {
-      \override Score.BarNumber #'transparent = ##t {
-        c'1\melisma bes a g\melismaEnd
-        f\breve
-        \[ f1\melisma a c'\breve d'\melismaEnd \]
-        c'\longa
-        c'\breve\melisma a1 g1\melismaEnd
-        fis\longa^\signumcongruentiae
-      }
-    }
-    \new Lyrics \lyricsto "discantus" {
-      San -- ctus, San -- ctus, San -- ctus
-    }
-  >>
-}
-@end lilypond
+@c This simple setup will take care of the
+@c TODO Add text about lyrics to the lowest line, to be placed
+@c outside the StaffGroup.
+@c from lsr and -user
+@c TBC
 
+@seealso
+@c ... and reference to other sections ...
 
-@node Transcribing ancient music
-@subsection Transcribing ancient music
 
-@untranslated
+@c {{{2Transcribing Gregorian chant
+@node Transcribing Gregorian chant
+@unnumberedsubsubsec Transcribing Gregorian chant
 
-@menu
-* Ancient and modern from one source::
-* Incipits::
-* Mensurstriche layout::
-* Transcribing Gregorian chant::
-@end menu
+Gregorianischer Choral kann mit einigen einfachen Einstellungen
+in moderner Notation notiert werden.
 
+@b{Hälse}. Hälse können meistens weggelassen werden, was geschieht,
+indem man den @code{Stem_engraver} aus dem Stimmenkontext
+entfernt:
 
-@node Ancient and modern from one source
-@unnumberedsubsubsec Ancient and modern from one source
+@example
+\layout @{
+  ...
+  \context @{
+    \Voice
+      \remove "Stem_engraver"
+  @}
+@}
+@end example
 
-@untranslated
+In einigen Transkriptionsstilen werden jedoch teilweise
+Hälse einesetzt, 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}
+unsichtbar gemacht werden oder mit
+@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}
+sichtbar gemacht werden (siehe auch Beispiel unten).
+
+@b{Takt.} Für Gesang ohne Metrum gibt es einige Alternativen.
+
+Der @code{Time_signature_engraver} kann aus dem @code{Staff}-Kontext
+entfernt werden, ohne dass es negative Seiteneffekte gäbe.
+Alternativ kann er durchsichtig gemacht werden, dabei entsteht
+aber ein leerer Platz zu Beginn der Noten an der Stelle, wo
+normalerweise die Taktnagabe stehen würde.
+
+In vielen Fällen ergibt @code{\set Score.timing = ##f} gute
+Ergebnisse.  Eine andere Möglichkeit ist es, \@code{\CadenzaOn}
+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
+gemacht werden.
+
+Oft werden Rezitativtöne mit einer Brevis angezeigt.  Der
+Text für die Rezitativnote kann auf zwei Arten notiert
+werden: entweder als einzelne, links ausgerichtete Silbe:
+
+@lilypond[verbatim,ragged-right]
+\include "gregorian.ly"
+chant = \relative c' {
+  \clef "G_8"
+  c\breve c4 b4 a c2 c4  \divisioMaior
+  c\breve c4 c f, f \finalis
+}
 
+verba = \lyricmode {
+  \once \override LyricText #'self-alignment-X = #-1
+  "Noctem quietam et" fi -- nem per -- fec -- tum
+  \once \override LyricText #'self-alignment-X = #-1
+  "concedat nobis Dominus" om -- ni -- po -- tens.
+}
+\score {
+  \new Staff <<
+  \new Voice = "melody" \chant
+  \new Lyrics = "one" \lyricsto melody \verba
+  >>
+  \layout {
+    \context {
+      \Staff
+      \remove "Time_signature_engraver"
+      \remove "Bar_engraver"
+      \override Stem #'transparent = ##t
+    }
+  }
+}
+@end lilypond
 
-@node Incipits
-@unnumberedsubsubsec Incipits
+Das funktioniert gut, solange der Text nicht über einen Zeilenumbruch
+reicht.  In diesem Fall kann man etwa die Noten der
+Silben verstecken (hier werden auch die Hälse unsichtbar
+gemacht):
 
-@untranslated
+@lilypond[verbatim,ragged-right]
+\include "gregorian.ly"
+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 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 {
+  No -- ctem qui -- e -- tam et fi -- nem per -- fec -- tum
+  con -- ce -- dat no -- bis Do -- mi -- nus om -- ni -- po -- tens.
+}
 
-@node Mensurstriche layout
-@unnumberedsubsubsec Mensurstriche layout
+\score {
+  \new Staff <<
+    \new Voice = "melody" \chant
+    \new Lyrics \lyricsto "melody" \verba
+  >>
+  \layout {
+    \context {
+      \Staff
+      \remove "Time_signature_engraver"
+      \override BarLine #'transparent = ##t
+      \override Stem #'transparent = ##t
+    }
+  }
+}
+@end lilypond
 
-@untranslated
+Eine andere übliche Situation ist die Transkription von
+neumatischem oder melismatischem Gesang, d.h. Gesang, der
+eine unterschiedliche Anzahl von Noten pro Silbe hat.  In
+diesem Fall sollen die Silbengruppen üblicherweise deutlich
+voneinander getrennt gesetzt werden, oft auch die Untergruppen
+eines längeren Melismas.  Eine Möglichkeit, das zu erreichen,
+ist es, eine feste Taktart, etwa 1/4, zu benutzen und dann
+jeder Silbe oder Notengruppe einen ganzen Takt zuzuweisen,
+u.U. mit Hilfe von Triolen und kleinen Notenwerten.  Wenn
+die Taktstriche und alle anderen rhythmischen Anweisungen
+unsichtbar gemacht werden, und der Platz um die Taktstriche
+vergrößert wird, ergibt sich eine recht gute Repräsentation
+der Originalnotation.
+
+Damit Silben mit unterschiedlicher Länge (etwa @qq{-ri} und
+@qq{-rum}) die Silbengruppen nicht ungleichmäßig aufweiten,
+kann die @code{#'X-extent}-Eigenschaft des @code{LyricText}-Objekts
+auf einen festen Wert gesetzt werden.  Eine andere
+Möglichkeit wäre es, die Silben als Textbeschriftung
+einzufügen.  Wenn weitere horizontale Anpassungen nötig sind,
+können sie mit unsichtbaren (@code{s})-Noten vorgenommen
+werden.
+
+@lilypond[verbatim,quote]
+spiritus = \relative c' {
+  \time 1/4
+  \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
+}
 
+spirLyr = \lyricmode {
+  Spi -- ri -- _ _ tus  _ Do -- mi -- ni  _ re -- ple -- _ vit _
+  or -- _ bem _  ter -- ra -- _ rum, al -- _ _ le -- _ lu
+  -- _ ia.
+}
+\score {
+  \new Staff <<
+    \new Voice = "chant" \spiritus
+    \new Lyrics = "one" \lyricsto "chant" \spirLyr
+  >>
+  \layout {
+    \context {
+      \Staff
+      \remove "Time_signature_engraver"
+      \override BarLine #'X-extent = #'(-1 . 1)
+      \override Stem #'transparent = ##t
+      \override Beam #'transparent = ##t
+      \override BarLine #'transparent = ##t
+      \override TupletNumber #'transparent = ##t
+    }
+  }
+}
+@end lilypond
 
-@node Transcribing Gregorian chant
-@unnumberedsubsubsec Transcribing Gregorian chant
+@c extract from 1.6.1.1
 
-@untranslated
+@seealso
+@c ... and reference to other sections ...
 
 
-@node Editorial markings
-@subsection Editorial markings
+@c {{{2Ancient and modern from one source
+@node Ancient and modern from one source
+@unnumberedsubsubsec Ancient and modern from one source
 
-@untranslated
+@c TODO Add text
+@c Here among others the snippets about reducing note length
+TBC
 
-@menu
-* Annotational accidentals::
-* Baroque rhythmic notation::
-@end menu
+@seealso
+@c ... and reference to other sections ...
 
+@c {{{2Editorial markings
+@node Editorial markings
+@unnumberedsubsubsec Editorial markings
 
-@node Annotational accidentals
-@unnumberedsubsubsec Annotational accidentals
+@c {{{2Baroque rhythmic notation
+@c @node Baroque rhythmic notation
+@c @unnumberedsubsubsec Baroque rhythmic notation
 
-In der europäischen Musik vor 1600 wurden vom Sänger oftmals
-chromatische Alterationen erwartet, die nicht notiert wurden.
-Diese Praxis wird @qq{Musica Ficta} genannt. In modernen
-Transkripition werden die Versetzungszeichen üblicherweise
-oberhalb der Noten gesetzt.
+@c TODO Add text
+@c try Till Rettig
+@c Add example of white noteheads:
+@c In the french baroque some composers used white noteheads in slow pieces,
+@c mainly in 3/2-time.  A quarter looks there like a eighth with a white
+@c notehead.  (Franz-Rudolf Kuhnen)
 
-@cindex Versetzungszeichen, musica ficta
-@cindex Musica ficta
+@c TODO Add example of this:
+@c I was referring to e.g. notated a8. a16, which should, if I
+@c remember correctly, be interpreted more like a8.. a32 (in the french
+@c style).  The editor might want to show that rythmic figure above the
+@c staff as an hint to performers.  (Karl Hammer)
 
-Unterstützung für solche empfohlenen Versetzungszeichen ist
-implementiert und kann aktiviert werden, indem die
-Eigenschaft @code{suggestAccidentals} auf wahr gesetzt wird.
-Siehe auch das Beispiel.
 
-@funindex suggestAccidentals
+TBC
 
-@lilypond[verbatim,fragment,relative=1]
-fis gis
-\set suggestAccidentals = ##t
-ais bis
-@end lilypond
 
 @seealso
-
-Programmreferenz: @rinternals{Accidental_engraver}-Setzer und das
-@rinternals{AccidentalSuggestion}-Objekt.
-
-
-@node Baroque rhythmic notation
-@unnumberedsubsubsec Baroque rhythmic notation
-
-@untranslated
-
+@c ... and reference to other sections ...
index c2b6057d633001897b554110d1931c176474c215..4313e125eddda1ddb8578143f97caa3f995e1901 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*-
 @c This file is part of lilypond.tely
 @ignore
-    Translation of GIT committish: 4a527608c5ff2ce31e596495d00dce181dc1b9ea
+    Translation of GIT committish: 499a511d4166feaada31114e097f86b5e0c56421
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 
 
 @menu
-* Interpretation contexts::     
-* Explaining the Internals Reference::  
-* Modifying properties::        
-* Useful concepts and properties::  
-* Common properties::           
-* Advanced tweaks::             
-* Discussion of specific tweaks::  
+* Interpretation contexts::
+* Explaining the Internals Reference::
+* Modifying properties::
+* Useful concepts and properties::
+* Advanced tweaks::
 @end menu
 
 @node Interpretation contexts
 
 
 @menu
-* Contexts explained::          
-* Creating contexts::           
-* Modifying context plug-ins::  
-* Changing context default settings::  
-* Defining new contexts::       
-* Aligning contexts::           
+* Contexts explained::
+* Creating contexts::
+* Modifying context plug-ins::
+* Changing context default settings::
+* Defining new contexts::
+* Aligning contexts::
 @end menu
 
 @node Contexts explained
 
 
 @menu
-* Score - the master of all contexts::  
-* Top-level contexts - staff containers::  
-* Intermediate-level contexts - staves::  
-* Bottom-level contexts - voices::  
+* Score - the master of all contexts::
+* Top-level contexts - staff containers::
+* Intermediate-level contexts - staves::
+* Bottom-level contexts - voices::
 @end menu
 
 @node Score - the master of all contexts
 
 
 @menu
-* Navigating the program reference::  
-* Layout interfaces::           
-* Determining the grob property::  
-* Naming conventions::          
+* Navigating the program reference::
+* Layout interfaces::
+* Determining the grob property::
+* Naming conventions::
 @end menu
 
 @node Navigating the program reference
 
 
 @menu
-* Overview of modifying properties::  
-* The set command::             
-* The override command::        
-* set versus override::         
-* The tweak command::           
+* Overview of modifying properties::
+* The set command::
+* The override command::
+* The tweak command::
+* set versus override::
 @end menu
 
 @node Overview of modifying properties
 @untranslated
 
 
-@node set versus override
-@subsection @code{\set} vs. @code{\override}
+@node The tweak command
+@subsection The @code{\tweak} command
 
 @untranslated
 
 
-@node The tweak command
-@subsection The @code{\tweak} command
+@node set versus override
+@subsection @code{\set} vs. @code{\override}
 
 @untranslated
 
 
 
 @menu
-* Input modes::                 
-* Direction and placement::     
-* Distances and measurements::  
-* Spanners::                    
+* Input modes::
+* Direction and placement::
+* Distances and measurements::
+* Staff symbol properties::
+* Spanners::
+* Visibility of objects::
+* Line styles::
+* Rotating objects::
 @end menu
 
 @node Input modes
 @untranslated
 
 
-@node Spanners
-@subsection Spanners
+@node Staff symbol properties
+@subsection Staff symbol properties
 
 @untranslated
 
 
-@node Common properties
-@section Common properties
+@node Spanners
+@subsection Spanners
 
 @untranslated
 
 
-@menu
-* Controlling visibility of objects::  
-* Line styles::                 
-* Rotating objects::            
-* Aligning objects::            
-@end menu
-
-@node Controlling visibility of objects
-@subsection Controlling visibility of objects
+@unnumberedsubsubsec Using the @code{spanner-interface}
+@unnumberedsubsubsec Using the @code{line-spanner-interface}
+@node Visibility of objects
+@subsection Visibility of objects
 
 @untranslated
 
 
 @menu
-* Removing the stencil::        
-* Making objects transparent::  
-* Painting objects white::      
-* Using break-visibility::      
-* Special considerations::      
+* Removing the stencil::
+* Making objects transparent::
+* Painting objects white::
+* Using break-visibility::
+* Special considerations::
 @end menu
 
 @node Removing the stencil
 @untranslated
 
 
-@node Aligning objects
-@subsection Aligning objects
+@menu
+* Rotating layout objects::
+* Rotating markup::
+@end menu
+
+@node Rotating layout objects
+@unnumberedsubsubsec Rotating layout objects
+
+@untranslated
+
+
+@node Rotating markup
+@unnumberedsubsubsec Rotating markup
 
 @untranslated
 
 
 
 @menu
-* Vertical grouping of grobs::  
-* Modifying ends of spanners::  
-* Modifying stencils::          
-* Modifying shapes::            
+* Aligning objects::
+* Vertical grouping of grobs::
+* Modifying stencils::
+* Modifying shapes::
 @end menu
 
-@node Vertical grouping of grobs
-@subsection Vertical grouping of grobs
+@node Aligning objects
+@subsection Aligning objects
 
 @untranslated
 
 
-@node Modifying ends of spanners
-@subsection Modifying ends of spanners
+@menu
+* Setting @code{X-offset} and @code{Y-offset} directly::
+* Using the @code{side-position-interface}::
+* Using the @code{self-alignment-interface}::
+* Using the @code{break-aligned-interface}::
+@end menu
+
+@node Setting @code{X-offset} and @code{Y-offset} directly
+@unnumberedsubsubsec Setting @code{X-offset} and @code{Y-offset} directly
 
 @untranslated
 
 
-@node Modifying stencils
-@subsection Modifying stencils
+@node Using the @code{side-position-interface}
+@unnumberedsubsubsec Using the @code{side-position-interface}
 
 @untranslated
 
 
-@node Modifying shapes
-@subsection Modifying shapes
+@node Using the @code{self-alignment-interface}
+@unnumberedsubsubsec Using the @code{self-alignment-interface}
+
+@untranslated
+
+
+@unnumberedsubsubsec Using the @code{aligned-on-parent} procedures
+@unnumberedsubsubsec Using the @code{centered-on-parent} procedures
+@node Using the @code{break-aligned-interface}
+@unnumberedsubsubsec Using the @code{break-aligned-interface}
+
+@untranslated
+
+
+@node Vertical grouping of grobs
+@subsection Vertical grouping of grobs
 
 @untranslated
 
 
-@node Discussion of specific tweaks
-@section Discussion of specific tweaks
+@node Modifying stencils
+@subsection Modifying stencils
+
+@untranslated
+
+
+@node Modifying shapes
+@subsection Modifying shapes
 
 @untranslated
 
 
 @menu
-* old Contexts explained::      
+* Modifying ties and slurs::
 @end menu
 
-@node old Contexts explained
-@subsection old Contexts explained
+@node Modifying ties and slurs
+@unnumberedsubsubsec Modifying ties and slurs
 
 @untranslated
 
index cc880cf8d17f30f9c9456385951623a42b6e1f41..d6f085706862525229fc14e0baf1ef3184bc7083 100644 (file)
@@ -1,13 +1,13 @@
 @c -*- coding: utf-8; mode: texinfo; -*-
 @c This file is part of lilypond.tely
 @ignore
-    Translation of GIT committish: b54fc6953a8d70a3c51e8c3d0cbf9b3fe9652d78
+    Translation of GIT committish: 499a511d4166feaada31114e097f86b5e0c56421
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 
 @c TODO: add tablature.
@@ -36,7 +36,7 @@ c1 c2 c8 c16
 @tab
 @lilypond[fragment,relative=2,notime]
 \override Staff.Clef #'break-visibility = #all-invisible
-c4. c4..  
+c4. c4..
 @end lilypond
 
 @item @code{c d e f g a b }
@@ -67,7 +67,7 @@ s4_" "
 @tab Taktangaben
 @tab
 @lilypond[fragment]
-\override Staff.Clef #'transparent = ##t 
+\override Staff.Clef #'transparent = ##t
 \time 3/4
 s4_" "
 \time 4/4
@@ -98,7 +98,7 @@ d ~ d
 @lilypond[notime,fragment]
 \clef treble
 \key es \major
-s4 
+s4
 @end lilypond
 
 @item @var{note}@code{'}
@@ -212,7 +212,7 @@ a\> a a\!
 @tab
 @lilypond[fragment,relative=2]
 \set Staff.implicitTimeSignatureVisibility = #all-invisible
-<c e> 
+<c e>
 @end lilypond
 
 
@@ -249,21 +249,21 @@ twinkle
 
 
 @item @code{\new Lyrics}
-@tab Textausgabe
+@tab Gesangtext
 @tab
 @lilypond[fragment]
 \new Lyrics \lyricmode { twinkle }
 @end lilypond
 
 @item @code{twin -- kle}
-@tab Text-Trennstrich 
+@tab Gesangtext-Trennstrich 
 @tab
 @lilypond[fragment,relative=2]
 \set Staff.implicitTimeSignatureVisibility = #all-invisible
 <<
    { g'1 g }
   \new Lyrics \lyricsto "" { twin -- kle }
->> 
+>>
 @end lilypond
 
 @item @code{\chordmode @{ c:dim f:maj7 @}}
index 671bfc0cf17bcb345ff11cef1554f84c09df3f80..0d4044480d3341f0a7559ec856d53ad6c52948ca 100644 (file)
@@ -1,18 +1,23 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*-
 @c This file is part of lilypond.tely
 @ignore
-    Translation of GIT committish: 19fc0f930f921ca2609e0e60aa26f9d980771b97
+    Translation of GIT committish: 499a511d4166feaada31114e097f86b5e0c56421
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @node Chord notation
 @section Chord notation
 
-@untranslated
+@lilypondfile[quote]{chords-headword.ly}
+
+Akkorde können entweder als normale Noten oder im Akkordmodus
+notiert werden; bei letztere Eingabemethode können unterschiedliche
+europäische Akkordbezeichnungsstile eingesetzt werden.  Akkordbzeichnungen
+und Generalbass können auch angezeigt werden.
 
 @menu
 * Chord mode::
 @node Chord mode
 @subsection Chord mode
 
-@untranslated
+@cindex Akkorde
+@cindex chord-Akkorde
+
+Im Akkordmodus (engl. @qq{chord}) werden Akkorde anhand von einem
+Symbol der erwünschten Akkordstruktur notiert, anstatt dass die
+einzelnen Tonhöhen ausgeschrieben werden.
 
 @menu
 * Chord mode overview::
 * Extended and altered chords::
 @end menu
 
-@c This material comes from 'Entering chord names' --FV
+
 @node Chord mode overview
 @unnumberedsubsubsec Chord mode overview
 
 @cindex Akkordbezeichnungen
+@cindex Akkordmodus
 
-LilyPond bringt Unterstützung zur Ausgabe von Akkordsymbolen
-mit. Akkorde können entweder mithilfe der musikalischen
-Akkordeingabe (also @code{< ... >}) notiert werden, aber sie
-können auch mit ihren Bezeichnungen direkt eingegeben werden.
-Programmintern werden die Akkorde als eine Gruppe von Tonhöhen
-dargestellt und können somit transponiert werden.
+Akkorde können als simultane Noten eingegeben werden, wie gezeigt
+in @ref{Chorded notes}.
 
-@lilypond[quote,ragged-right,verbatim,ragged-right]
-twoWays = \transpose c c' {
-  \chordmode {
-    c1 f:sus4 bes/f
-  }
-  <c e g>
-  <f bes c'>
-  <f bes d'>
-}
+Akkorde können aber auch im Akkordmodus notiert werden.  Das ist
+ein Eingabemodus, der sich an Akkordstrukturen traditioneller
+europäischer Musik und nicht an bestimmten einzelnen Tonhöhen
+orientiert.  Er bietet sich an, wenn man es gewohnt ist, Akkordsymbole
+zur Beschreibung von Akkorden zu benutzen.  Mehr Information zu
+unterschiedlichen Eingabemethoden findet sich in @ref{Input modes}.
+
+@lilypond[verbatim,quote,ragged-right,relative=1]
+\chordmode { c1 g a g c }
+@end lilypond
+
+Akkorde, die im Akkordmodus eingegeben werden, sind musikalische
+Elemente und können genauso wie Akkorde im Notenmodus
+transponiert werden.
+
+Akkordmodus und Notenmodus können gemischt verwendet werden:
+
+@lilypond[verbatim,quote,ragged-right,relative=1]
+<c e g>2 <g b d>
+\chordmode { c2 f }
+<c e g>2 <g' b d>
+\chordmode { f2 g }
+@end lilypond
+
+@seealso
+Glossar:
+@rglos{chord}.
+
+Notationsreferenz:
+@ref{Chorded notes},
+@ref{Input modes}.
+
+Schnipsel:
+@rlsr{Chords}
+
+
+@knownissues
+
+Wenn Akkord- und Notenmodus in linearer Musik abwechseln eingesetzt
+werden und der Akkordmodus am Anfang steht, erstellt der
+Notenmodus ein neues Notensyste:
 
-<< \new ChordNames \twoWays
-   \new Voice \twoWays >>
+@lilypond[verbatim,quote,ragged-right,relative=1]
+\chordmode { c2 f }
+<c e g>2 <g' b d>
 @end lilypond
 
-Dieses Beispiel zeigt auch, dass die Ausgaberoutinen für die
-Akkordsymbole nicht besonders klug sind. Der letzte Akkord
-(@code{f bes d}) wird nicht als Umkehrung erkannt.
+@noindent
+Um dieses Verhalten zu verhindert, muss der @code{Staff}-Kontext
+explizit aufgerufen werden:
 
-Achtung: Die Dauer eines Akkordes muss außerhalb der
-spitzen Klammern @code{<>} notiert werden.
+@lilypond[verbatim,quote,ragged-right,relative=1]
+\new Staff {
+  \chordmode { c2 f }
+  <c e g>2  <g' b d>
+}
+@end lilypond
 
-@example
-<c e g>2
-@end example
 
-@c This material comes from 'Chords mode' --FV
 @node Common chords
 @unnumberedsubsubsec Common chords
 
-@cindex Akkord-Modus
+@cindex Dreiklänge
+@cindex Septakkorde
+@cindex Grundton eines Akkords
+@cindex Akkordeigenschaften
+@cindex Umkehrungen
+@cindex Modifikatoren, Akkorde
+@cindex Modi, in Akkorden
+@cindex Akkordmodi
 
-Im Akkord-Modus wird eine Anzahl von Tonhöhen (ein Akkord)
-durch eine normale Notenbezeichnung notiert. Ein Akkord wird
-mit seinem Grundton notiert, der einfach wie eine normale
-Note geschrieben wird:
+Ein Dreiklang wird
+mit seinem Grundton mit einer möglichen Dauer dahinter notiert:
 
-@lilypond[quote,ragged-right,fragment,verbatim]
-\chordmode { es4. d8 c2 }
+@lilypond[verbatim,quote,relative=1,ragged-right]
+\chordmode { c2 f4 g }
 @end lilypond
 
 @noindent
-Dieser Modus wird mit dem @code{\chordmode}-Befehl aktiviert.
+Moll- übermäßige und verminderte Dreiklänge werden notiert, indem
+@code{:} und ein Modifikator hinter der Dauer angegeben wird:
 
-@cindex Akkord-Notation
-@cindex Eingabe von Akkorden
+@lilypond[verbatim,quote,ragged-right,relative=1]
+\chordmode { c2:m f4:aug g:dim }
+@end lilypond
 
-Andere als die Grundakkorde können notiert werden, indem an
-die Notenbezeichnung ein Doppelpunkt und eine Spezifizierung
-(die auch aus einer Zahl bestehen kann) angefügt wird.
+Septakkorde können erstellt werden:
 
-@lilypond[quote,fragment,verbatim]
-\chordmode { e1:m e1:7 e1:m7 }
+@lilypond[quote,ragged-right,fragment,verbatim,relative=1]
+\chordmode { c1:7 c:m7 c:maj7 c:dim7 c:aug7 }
 @end lilypond
 
-@noindent
-Die erste Zahl, die auf den Grundton folgt, wird als @qq{Art}
+@funindex aug
+@funindex dim
+@funindex maj
+@funindex m
+
+Diese Tabelle zeigt die Funktion der Modifikatoren von Dreiklängen
+und Septakkorden.   Die siebte Stufe wird standardmäßig als kleine
+Septime realisiert, sodass der Dominantseptakkord die Grundform
+des Septakkordes darstellt.  Alle Alterationen sind relativ zur
+Dominantsept.  Eine vollständigere Tabelle findet sich in
+@ref{Common chord modifiers}.
+
+@c @table @code
+@multitable @columnfractions .2 .4 .3
+
+@item
+@b{Modifikator}
+@tab
+@b{Funktion}
+@tab
+@b{Beispiel}
+
+@item
+Kein
+@tab
+Standard: erzeugt einen Durdreiklang.
+@tab
+@lilypond[line-width=4\cm, noragged-right]
+\chordmode {
+  \override Staff.TimeSignature #'stencil = ##f
+  c1
+}
+@end lilypond
+
+@item
+m, m7
+@tab
+Mollakkord: Dieser Modifikator erniedrigt die dritte Stufe.
+@tab
+@lilypond[line-width=4\cm, noragged-right]
+\chordmode {
+  \override Staff.TimeSignature #'stencil = ##f
+  c1:m c:m7
+}
+@end lilypond
+
+
+@item
+dim, dim7
+@tab
+Verminderter Akkord: Dieser Modifikator erniedrigt die dritte, fünfte
+und (wenn vorhanden) die siebte Stufe.
+@tab
+@lilypond[line-width=4\cm, noragged-right]
+\chordmode {
+  \override Staff.TimeSignature #'stencil = ##f
+  c1:dim c:dim7
+}
+@end lilypond
+
+@item
+aug
+@tab
+Übermäßiger Akkord: Dieser Modifikator erhöht die fünfte Stufe.
+@tab
+@lilypond[line-width=4\cm, noragged-right]
+\chordmode {
+  \override Staff.TimeSignature #'stencil = ##f
+  c1:aug
+}
+@end lilypond
+
+@item
+maj, maj7
+@tab
+Großer Septakkord: Dieser Modifikator fügt eine erhöhte siebe
+Stufe hinzu.  @code{7} nach dem @code{maj} ist optional.  NICHT
+benutzen, um einen Durdreiklang zu notieren.
+@tab
+@lilypond[line-width=4\cm, noragged-right]
+\chordmode {
+  \override Staff.TimeSignature #'stencil = ##f
+  c1:maj c:maj7
+}
+@end lilypond
+
+@end multitable
+
+@seealso
+Notationsreferenz:
+@ref{Common chord modifiers},
+@ref{Extended and altered chords}.
+
+Schnipsel:
+@rlsr{Chords}.
+
+@knownissues
+
+Nur ein Qualitätsmodifikator sollte pro Akkord benutzt werden, meistens
+für die höchste Stufe des Akkordes.  Akkorde mit weiteren Qualitätsmodifikatoren
+werden ohne Warnung oder Fehlermeldung gelesen, aber das Ergebnis ist
+nicht vorhersagbar.  Akkorde, die nicht mit einem einzigen
+Qualitätsmodifikator erreicht werden können, sollten mit einzelnen
+Tonhöhen alteriert werden, wie beschrieben in
+@ref{Extended and altered chords}.
+
+
+@node Extended and altered chords
+@unnumberedsubsubsec Extended and altered chords
+
+@cindex erweiterte Akkorde
+@cindex veränderte Akkorde
+
+Akkordstrukturen können im Akkordmodus beliebig komplex konstruiert
+werden.  Die Modifikatoren können benutzt werden, um den Akkord zu
+erweitern, bestimmte Stufen hinzuzufügen oder zu entfernen, Stufen
+zu erhöhen oder zu erniedrigen und Bassnoten hinzuzufügen bzw.
+Umgkehrungen zu erzeugen.
+
+Die erste Zahl, die auf den Doppelpunkt folgt, wird als @qq{Bereich}
 des Akkordes interpretiert: Terzen werden auf dem Grundton
-gestapelt, bis die angegebene Zahl (=Tonhöhe) erreicht ist.
-Eine Ausnahme ist @code{c:13}, weil hier die 11 ausgelassen wird.
+gestapelt, bis die angegebene Zahl (=Tonstufe) erreicht ist.
+Die siebte Stufe, die zu einem Akkord hinzugefügt wird, ist die
+kleine Septime, nicht die große.  Wenn
+der Bereich keine Terz ist (also etwa 6), dann werden Terzen bis
+zur höchst möglichen Terz unter dem Bereich gestapelt, und der
+Endton des Bereichs wird hinzugefügt.  Der größtmögliche Wert ist
+13.  Jeder größere Werte wird als 13 interpretiert.
+
+@lilypond[quote,ragged-right,fragment,verbatim,relative=1]
+\chordmode {
+  c1:2 c:3 c:4 c:5
+  c1:6 c:7 c:8 c:9
+  c1:10 c:11 c:12 c:13
+  c1:14
+}
+@end lilypond
+
+@noindent
+Sowhohl @code{c:5} als auch @code{c} erzeugen einen D-Dur-Dreiklang.
+
+Da eine unveränderte 11 nicht gut klingt, wenn sie mit einer
+unveränderten 13 zusammenklingt, wird die 11 von einem @code{:13}-Akkord
+entfernt (es sei denn sie wird explizit verlangt).
 
-@lilypond[quote,fragment,verbatim]
-\chordmode { c:3 c:5 c:6 c:7 c:8 c:9 c:10 c:11 c:13 }
+@lilypond[quote,ragged-right,fragment,verbatim,relative=1]
+\chordmode {
+  c1:13 c:13.11 c:m13
+}
 @end lilypond
 
 @cindex Grundton eines Akkordes
@@ -116,124 +302,138 @@ Eine Ausnahme ist @code{c:13}, weil hier die 11 ausgelassen wird.
 
 Kompliziertere Akkorde können auch konstruiert werden, indem
 einzelne Intervalle zu dem Grundton addiert werden.
-Diese Additionen werden nach der ersten Zahl notiert und mit
-Punkten voneinander getrennt.
-
-@lilypond[quote,verbatim,fragment]
-\chordmode { c:5.6 c:3.7.8 c:3.6.13 }
+Diese Additionen werden nach dem Bereich notiert und mit
+Punkten voneinander getrennt.  Die normale Septime, die zu
+einem Akkord hinzugefügt wird, ist die kleine Septime, nicht
+die große.
+
+@lilypond[quote,verbatim,fragment,relative=1]
+\chordmode {
+  c1:5.6 c:3.7.8 c:3.6.13
+}
 @end lilypond
 
 @noindent
-Einzelne Intervalle können mit @code{-} oder @code{+} vergrößert
-oder verkleinert werden.
+Hinzugefügte Stufen können beliebig groß sein:
 
-@lilypond[quote,verbatim,fragment]
-\chordmode { c:7+ c:5+.3- c:3-.5-.7- }
+@lilypond[quote,verbatim,fragment,relative=1]
+\chordmode {
+  c4:5.15 c:5.20 c:5.25 c:5.30
+}
 @end lilypond
 
-@noindent
-Zu entfernende Töne werden mit der gleichen Methode notiert,
-allerdings mit einem Dach (@code{^}) vor der Sequenz, die
-nicht erscheinen soll. Sie müssen nach den zu addierenden
-Tönen notiert werden.
+@cindex Akkordstufen, Veränderung
+@cindex Akkordstufen, Alteration
+
+Einzelne Stufen können mit @code{-} oder @code{+} vergrößert
+oder verkleinert werden.  Um eine Stufe zu verändert, die automatisch
+in den Akkord aufgenommen wurde, kann sie in veränderter Form
+nach dem Bereich hinzugefügt werden.
 
-@lilypond[quote,verbatim,fragment]
-\chordmode { c^3 c:7^5 c:9^3.5 }
+@lilypond[quote,verbatim,fragment,relative=1]
+\chordmode {
+  c1:7+ c:5+.3- c:3-.5-.7-
+}
 @end lilypond
 
-Mit weiteren Endungen können Tonhöhen der Akkorde beeinflusst werden.
-Folgende Endungen sind unterstützt:
+@cindex Entfernen von Stufen in Akkorden
+@cindex Akkorde, Entfernen von Tönen
 
-@table @code
-@item m
-Der Moll-Akkord. Diese Endung erniedrigt die Terz (3) und die Septime (7),
-wenn vorhanden.
-
-@item dim
-Der verminderte Akkord. Diese Endung erniedrigt die Terz (3), Quinte (5)
-und Septime (7), wenn vorhanden.
-
-@item aug
-Der übermäßige Akkord. Diese Endung erhöht die Quinte (5).
-
-@item maj
-Der große Sept-Akkord. Diese Endung erhöht die Septime (7),
-wenn vorhanden.
-
-@item sus
-Der Sekundakkord. Diese Endung entfernt die Terz (3) aus dem
-Akkord. Schreiben Sie @code{2} oder @code{4} hinter die Endung,
-um entweder die Sekunde (2) oder die Quarte (4) zum Akkord
-hinzuzufügen.
-@end table
+@funindex ^
 
-Die Endungen können mit weiteren hinzugefügten Tönen kombiniert
-werden.
-@lilypond[quote,verbatim,fragment]
-  \chordmode { c:sus4 c:7sus4 c:dim7 c:m6 }
+Zu entfernende Töne werden mit der gleichen Methode notiert,
+allerdings mit einem Dach (@code{^}) vor der Sequenz, die
+nicht erscheinen soll.  Sie müssen nach den zu addierenden
+Tönen notiert werden.  Die einzelnen zu entfernenden Töne werden
+mit Punkten getrennt.
+
+@lilypond[quote,verbatim,fragment,relative=1]
+\chordmode {
+  c1^3 c:7^5 c:9^3 c:9^3.5 c:13.11^3.7
+}
 @end lilypond
 
-@cindex Modi, in Akkorden
-@cindex Akkordmodi
-@funindex aug
-@funindex dim
-@funindex maj
 @funindex sus
-@funindex m
 
-Da der unveränderte elfte Ton in Verbindung mit einem unveränderten
-13. Ton nicht gut klingt, wird die 11 in diesem Fall automatisch
-entfernt (es sei denn, sie wird explizit gefordert).
+Sekund- und Quartakkorde können mit dem Modifikator @code{sus}
+notiert werden.  Hiermit wird die dritte Stufe aus dem Akkord
+entfernt.  Mit einer anschließenden @code{2} wird die zweite, mit
+einer @code{4} die vierte Stufe hinzugefügt.  @code{sus} entspricht
+@code{^3} und @code{sus4} ist gleich @code{.4^3}.
 
 @lilypond[quote,ragged-right,fragment,verbatim]
-\chordmode { c:13 c:13.11 c:m13 }
+\chordmode {
+  c1:sus c:sus2 c:sus4 c:5.4^3
+}
 @end lilypond
 
+@cindex Umgekehrungen
+@cindex Bassnote in Akkorden
+
 @funindex /
 
 Eine Umkehrung (ein Ton des Akkordes wird unter den Grundton gesetzt)
-sowie auch Bassnoten können mit dem Schrägstrich (@code{/}) markiert
+sowie auch zusätzliche Bassnoten können mit dem Schrägstrich (@code{/}) markiert
 werden:
 
-@lilypond[quote,ragged-right,fragment,verbatim]
-\chordmode { c1 c/g c/f }
+@lilypond[quote,ragged-right,fragment,verbatim, relative=2]
+\chordmode {
+  c1 c/g c/f
+}
 @end lilypond
+
 @funindex /+
 
-Eine Bassnote kann hinzugefügt werden, anstatt dass sie aus dem Akkord
-entnommen wird, indem noch ein Plus zwischen den Schrägstrich und
-die Tonhöhe gesetzt wird:
+Eine Bassnote, die zum Akkord hinzugehört, kann hinzugefügt werden,
+anstatt dass sie aus dem Akkord entnommen wird, indem noch ein
+Plus zwischen den Schrägstrich und die Tonhöhe gesetzt wird:
 
 @lilypond[quote,ragged-right,fragment,verbatim]
-\chordmode { c1 c/+g c/+f }
+\chordmode {
+  c1 c/g c/+g
+}
 @end lilypond
 
-Der Akkord-Modus funktioniert ähnlich wie der Liedtext-Modus
-(@code{\lyricmode}) usw. Die meisten Befehle funktionieren weiter,
-so können etwa @code{r} und @code{\skip} benutzt werden,
-um Pausen und Zwischenräume einzufügen. Mit Eigenschaftsbefehlen
-können verschiedene Einstellungen verändert werden.
+Akkordmodifikatoren, die benutzt werden können, um eine große
+Anzahl an Standardakkorden zu erzeugen, werden gezeigt in
+@ref{Common chord modifiers}.
+
+@seealso
+Notationsreferenz:
+@ref{Common chord modifiers}.
+
+Schnipsel:
+@rlsr{Chords}
 
 @knownissues
 
-Jedes Intervall kann nur einmal in einem Akkord vorkommen.
-Im folgenden Beispiel wird nur der erweiterte Akkord erstellt,
-weil @code{5+} als letztes kommt.
+Jede Stufe kann nur einmal in einem Akkord vorkommen.
+Im folgenden Beispiel wird ein erweiterter Akkord erstellt,
+weil @code{5+} zuletzt gelesen wird.
 
 @cindex Cluster
 @lilypond[quote,ragged-right,verbatim,fragment]
-\chordmode { c:5.5-.5+ }
+\chordmode {
+  c:5.5-.5+
+}
 @end lilypond
 
-@node Extended and altered chords
-@unnumberedsubsubsec Extended and altered chords
+Nur die zweite Umkehrung kann erstellt werden, indem eine
+Bassnote hinzugefügt wird.  Die erste Umkehrung erfordert, dass
+der Grundton des Akkordes geändert wird.
+
+@lilypond[quote,ragged-right,verbatim,fragment]
+\chordmode {
+  c'1: c':/g e:6-3-^5 e:m6-^5
+}
+@end lilypond
 
-@untranslated
 
 @node Displaying chords
 @subsection Displaying chords
 
-@untranslated
+Akkorde können zusätzlich zur üblichen Notation als Töne auf
+einem Notensystem auch mit einem Akkordsymbol gesetzt werden.
 
 @menu
 * Printing chord names::
@@ -243,151 +443,198 @@ weil @code{5+} als letztes kommt.
 @node Printing chord names
 @unnumberedsubsubsec Printing chord names
 
+@funindex ChordNames
+
 @cindex Akkordsymbole
+@cindex Akkordbezeichnungen
 @cindex Ausgabe von Akkordbezeichnungen
-@cindex Akkorde
 @cindex Symbole, Akkord-
 
-Um Akkordsymbole anstelle der Noten zu setzen, muss der
-@rinternals{ChordNames}-Kontext. Die Akkorde können entweder
-mit der Notation aus dem vorigen Abschnitt oder direkt
-mit der Akkordeingabe für Noten (@code{<} und @code{>})
-notiert werden.
+Akkordsymbole anstelle der Noten werde im @code{ChordNames}-Kontext
+notiert.
 
-@lilypond[quote,verbatim,ragged-right]
-harmonies = {
-  \chordmode {a1 b c} <d' f' a'> <e' g' b'>
+@lilypond[verbatim,quote,relative=1,ragged-right]
+\new ChordNames {
+  \chordmode {
+    c2 f4. g8
+  }
 }
-<<
-  \new ChordNames \harmonies
-  \new Staff \harmonies
->>
 @end lilypond
 
-Sie können Akkordwiederholungen unterdrücken, so dass nur
-bei einer Änderung des Akkordes ein Symbol ausgegeben wird.
-Das aktuelle Symbol wird auch am Zeilenanfang wiederholt.
-Das geschieht mit dem Befehl @code{\set chordChanges = ##t}.
+Die Akkorde können entweder als simultane Noten oder unter Einsatz
+des Akkordmodus (@code{chordmode}) notiert werden.  Der angezeigte
+Akkord ist der gleiche, es sei denn, Umgkehrungen oder zusätzliche
+Basstöne werden notiert:
 
-@lilypond[quote,verbatim,ragged-right]
-harmonies = \chordmode {
-  c1:m c:m \break c:m c:m d
-}
+@lilypond[verbatim,quote,relative=1]
 <<
   \new ChordNames {
-    \set chordChanges = ##t
-    \harmonies }
-  \new Staff \transpose c c' \harmonies
+    <c e g>2  <f bes c>
+    <f c' e g>1
+    \chordmode {
+      c2 f:sus4 c1:/f
+    }
+  }
+  {
+    <c e g>2  <f bes c>
+    <f, c' e g>1
+    \chordmode {
+      c2 f:sus4 c1:/f
+    }
+  }
 >>
 @end lilypond
 
-In den vorangegangenen Beispielen wurden alle Akkorde über dem
-Notensystem mit den entsprechenden Noten ausgegeben. Das ist aber
-nicht erforderlich. Akkorde können auch alleine gedruckt werden.
-Dabei kann es nötig sein, @rinternals{Volta_engraver} und
-@rinternals{Bar_engraver} einzufügen, damit Wiederholungen
-angezeigt werden.
+@funindex{\chords}
 
-@lilypond[ragged-right,verbatim]
-\new ChordNames \with {
-  \override BarLine #'bar-size = #4
-  \consists Bar_engraver
-  \consists "Volta_engraver"
-}
-\chordmode { \repeat volta 2 {
-  f1:maj7 f:7 bes:7
-  c:maj7
-} \alternative {
-  es e
+@code{\chords @{ ... @}} ist eine Kurznotation für die Bezeichnung
+@code{\new ChordNames @{ \chordmode @{ ... @} @}}.
+
+@lilypond[verbatim,quote,ragged-right, relative=1]
+\chords {
+  c2 f4.:m g8:maj7
 }
+@end lilypond
+
+@lilypond[verbatim,quote,ragged-right, relative=1]
+\new ChordNames {
+  \chordmode {
+    c2 f4.:m g8:maj7
+  }
 }
 @end lilypond
 
+@snippets
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{showing-chords-at-changes.ly}
+
+@c @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+@c {adding-bar-lines-to-chordnames-context.ly}
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{simple-lead-sheet.ly}
+
+
+@seealso
+Glossar:
+@rglos{chord}.
+
+Notationsreferenz:
+@ref{Writing music in parallel}.
+
+Schnipsel:
+@rlsr{Chords}.
+
+Referenz der Interna:
+@rinternals{ChordNames},
+@rinternals{ChordName},
+@rinternals{Chord_name_engraver},
+@rinternals{Volta_engraver},
+@rinternals{Bar_engraver}.
+
+@knownissues
+
+Akkorde, die Umkehrungen oder zusätzliche Basstöne beinhalten,
+werden nicht richtig bezeichnet, wenn sie im Notenmodus notiert
+werden.
+
+
+
+@node Customizing chord names
+@unnumberedsubsubsec Customizing chord names
+
+@cindex Anpassen von Akkordsymbolen
+@cindex Akkordsymbole, anpassen
+
+Es gibt kein allein gültiges System zur Benennung von Akkorden.
+Unterschiedliche Musiktraditionen benutzen unterschiedliche Bezeichnungen
+für die gleichen Akkorde.  Es gibt zusätzlich auch unterschiedliche
+Symbole, die für den gleichen Akkord angezeigt werden können.  Die
+Bezeichnungen und dargestellten Symbole können angepasst werden.
+
 Die Standardeinstellungen für die Symbole entsprechen den Konventionen
 im Jazz, wie sie von Klaus Ignatzek (siehe @ref{Literature list}).
-vorgeschlagen wurden. Mit den folgenden Befehlen könne aber
-Anpassungen vorgenommen werden:
+vorgeschlagen wurden.  Das Benennungssystem für die Akkorde kann
+verändert werden, wie weiter unten gezeigt wird.  Ein alternatives
+Notationssystem für Jazzakkorde ist auch erhältlich.  Die
+Ignatzek und die alternative Jazznotation finden sich in der Tabelle in
+@ref{Chord name chart}.
+
+@c TODO --  Change this so we don't have a non-verbatim example.
+@c  Make short example in docs, then move longer example to
+@c  appendix, where the length of the snippet won't matter.
+
+Zusätzlich zu den unterschiedlichen Bezeichnungssystemen werden
+unterschiedliche Notenbezeichnungen für die Grundtöne.
+Die vordefinierten Befehle @code{\germanChords},
+@code{\semiGermanChords}, @code{\italianChords} und @code{\frenchChords}
+setzen diese Variablen. Die Auswirkungen werden im nächsten Beispiel
+gezeigt.
+
+@lilypondfile[ragged-right]{chord-names-languages.ly}
+
+Wenn keine der definierten Einstellungen zum gewünschten Ergebnis
+führt, kann die Anzeige des Akkordsymbols durch die folgenden
+Eigenschaften verändert werden:
 
 @table @code
-@funindex chordNameExceptions
-@item chordNameExceptions
-Das ist eine Liste, die alle Akkorde aufführt, die ungewöhnliche
-Form haben.
 
-Die Liste muss nach dem Schema
-@example
-@{ <c f g bes>1 \markup @{ \super "7" "wahh" @} @}
-@end example
-@noindent
-gesetzt werden.
-
-Diese Liste in die @code{chordNameExceptions}-Funktion einzulesen
-ist allerdings etwas kompliziert. Mit dem folgenden Code-Abschnitt
-wird @code{chExceptionMusic} (aufeinander folgende
-Noten) in eine Ausnahmeliste umgewandelt:
-@example
-(sequential-music-to-chord-exceptions chExceptionMusic #t)
-@end example
-Dann werden mit dem Code
-@example
-(append
- (sequential-music-to-chord-exceptions chExceptionMusic #t)
- ignatzekExceptions)
-@end example
-die neuen Ausnahmen zu den schon vorhandenen hinzugefügt, die in
-der Datei @file{ly/@/chord@/-modifier@/-init@/.ly} definiert sind.
-
-@c Ein Beispiel für die Benutzung dieser Eigenschaft findet sich
-@c auch in der Datei @lsr{chords,chord@/-name@/-exceptions@/.ly}.
-@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
-{chord-name-exceptions.ly}
+@funindex chordRootNamer
 
-@cindex Ausnahmen, Akkordsymbole
+@item chordRootNamer
+
+Das Akkordsymbol wird normalerweise als Buchstabe des Grundtons mit
+optionaler Alteration dargestellt. Die Interpretation
+einer Tonhöhe als Buchstabe wird von der @code{chordRootNamer}-Funktion
+übernommen.  Besondere Bezeichnungen, wie etwa im Deutschen H für
+einen H-Dur-Akkord (und nicht @qq{B} wie im Englischen), können
+durch Hinzufügen einer neuen Funktion zu dieser Eigenschaft
+erstellt werden.
 
 @funindex majorSevenSymbol
+
 @item majorSevenSymbol
+
 Mit dieser Eigenschaft wird das Aussehen der Notation für die
-große Septime (7) bestimmt. Vordefiniert sind die Optionen
+große Septime (7) bestimmt.  Vordefiniert sind die Optionen
 @code{whiteTriangleMarkup} und @code{blackTriangleMarkup}.
-@c Siehe auch
-@c @lsr{chords,chord@/-name@/-major7@/.ly} für ein Beispiel.
+
+@funindex chordNoteNamer
+
+@item chordNoteNamer
+
+Wenn das Akkordsymbol zusätzliche Tonhöhen enthält, die nicht den
+Grundton darstellen (etwa eine zusätzliche Bassnote), wird diese
+Funktion eingesetzt, um die zusätzliche Tonhöhe auszugeben.
+In den Standardeinstellungen wird die Tonhöhe mit der
+@code{chordRootNamer}-Funktion gesetzt.  Die
+@code{chordNoteNamer}-Eigenschaft hingegen kann dieses Verhalten
+verändern und etwa den Basston etwa als Kleinbuchstaben darstellen.
 
 @funindex chordNameSeparator
+
 @item chordNameSeparator
+
 Verschiedene Teile eines Akkordsymboles werden normalerweise
 durch einen Schrägstrich markiert. Indem @code{chordNameSeparator}
-ein anderer Wert zugewiesen wird, kann das Aussehen des Trenners
-verändert werden, z. B.:
-@lilypond[quote,ragged-right,fragment,verbatim]
-\new ChordNames \chordmode {
-  c:7sus4
-  \set chordNameSeparator
-    = \markup { \typewriter "|" }
-  c:7sus4
-}
-@end lilypond
+ein anderer Wert zugewiesen wird, kann ein beliebiges Zeichen für
+den Trenner benutzt werden.
 
-@funindex chordRootNamer
-@item chordRootNamer
-Der Grundton eines Akkordes wird normalerweise als Buchstabe mit
-optionaler Erhöhung oder Erniedrigung dargestellt. Die Interpretation
-einer Tonhöhe als Buchstabe wird von der @code{chordRootNamer}-Eigenschaft
-übernommen. Besondere Bezeichnungen, wie etwa im Deutschen H für
-einen H-Dur-Akkord (und nicht @qq{B} wie im Englischen), können
-durch Hinzufügen einer neuen Funktion zu dieser Eigenschaft
-erstellt werden.
+@funindex chordNameExceptions
 
-@funindex chordNoteNamer
-@item chordNoteNamer
-In den Standardeinstellungen wird ein einziger Buchstabe für einen
-Akkord ausgegeben, nämlich sein Grundton, der von der
-@code{chordRootNamer}-Eigenschaft bestimmt wird. Die
-@code{chordNoteNamer}-Eigenschaft hingegen kann das Aussehen dieses
-Buchstaben ändern, ihn etwa als Klein- und nicht als Großbuchstabe
-darstellen.
+@item chordNameExceptions
+
+Diese Funktion ist eine Liste mit Paaren.  Das erste Objekt eines
+Paares ist eine Anzahl von Tonhöhen, die die Stufen eines Akkordes
+definieren.  Das zweite Objekt ist eine Beschriftung, die nach
+@code{chordRootNamer} ausgegeben wird, um das Akkordsymbol zu
+erstellen.
 
 @funindex chordPrefixSpacer
+
 @item chordPrefixSpacer
+
 Das @qq{m} für Moll-Akkorde wird normalerweise direkt hinter dem
 Akkordbuchstaben gesetzt. Mit der Eigenschaft @code{chordPrefixSpacer}
 kann ein Abstand(halter) zwischen den Buchstaben und das @qq{m}
@@ -396,61 +643,85 @@ Grundton erhöht oder erniedrigt ist.
 
 @end table
 
-Die vordefinierten Befehle @code{\germanChords},
-@code{\semiGermanChords}, @code{\italianChords} und @code{\frenchChords}
-benutzen diese Variablen. Die Auswirkungen werden im nächsten Beispiel
-gezeigt.
-
-@lilypondfile[ragged-right]{chord-names-languages.ly}
-
-Zusätzlich sind zwei weitere Vorlagen: eine alternative Jazz-Notation
-und eine systematische Notation, genannt Banter-Akkorde. Die
-alternative Jazz-Notation findet sich auch in der Liste im
-Abschnitt @ref{Chord name chart}.
-
-@c Wie diese Stile verwendet werden,
-@c wird in der Datei
-@c @lsr{chords,chord-names-jazz.ly} gezeigt.
-
-@cindex Banter
-@cindex Jazz-Akkorde
-@cindex Akkorde, Jazz
-
 @predefined
-
+@funindex major seven symbols
+@code{\whiteTriangleMarkup},
+@code{\blackTriangleMarkup},
 @funindex \germanChords
 @code{\germanChords},
 @funindex \semiGermanChords
-@code{\semiGermanChords}.
+@code{\semiGermanChords},
 @funindex \italianChords
-@code{\italianChords}.
+@code{\italianChords},
 @funindex \frenchChords
 @code{\frenchChords}.
+@endpredefined
+
+@snippets
+
+@cindex Ausnahmen, Akkordsymbole
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{chord-name-exceptions.ly}
+
+@c TODO - tweak snippet to use \blackTriangleMarkup as well
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{chord-name-major7.ly}
+
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{adding-bar-lines-to-chordnames-context.ly}
+
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{volta-below-chords.ly}
+
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{changing-chord-separator.ly}
+
 
 @seealso
+Notationsreferenz:
+@ref{Chord name chart},
+@ref{Common chord modifiers}.
+
+Installierte Dateien:
+@file{scm/@/chords@/-ignatzek@/.scm},
+@file{scm/@/chord@/-entry@/.scm},
+@file{ly/@/chord@/-modifier@/-init@/.ly}.
 
-Beispiele:
+Schnipsel:
 @rlsr{Chords}.
 
-Init-Dateien: @file{scm/@/chords@/-ignatzek@/.scm} und
-@file{scm/@/chord@/-entry@/.scm}.
+@c Internals Reference:
+@c @r internals{}.
 
 @knownissues
 
-Akkordsymbole werden nur von den Tonhöhenbezeichnungen bestimmt.
-Akkordumkehrungen sind nicht definiert, noch werden Bassnoten
-hinzugefügt. Deshalb kann es zu seltsamen Akkord-Symbolen kommen,
-wenn die Akkorde mit der @code{< ... >} Syntax notiert werden.
+Akkordsymbole werden von den Tonhöhenbezeichnungen innerhalb des
+Akkordes und der Information über die Akkordstruktur, die innerhalb
+von @code{\chordmode} notiert wurde, bestimmt. Wenn der direkte
+Notenmodus benutzt wird, stammen unerwünschte Bezeichnungen daher,
+dass Umgkehrungen und zustätzliche Bassnoten nicht richtig
+interpretiert werden.
+
+@lilypond[quote,ragged-right,verbatim]
+myChords = \relative c' {
+  \chordmode { c1 c/g c/f }
+  <c e g>1 <g c e> <f c' e g>
+}
+<<
+  \new ChordNames { \myChords }
+  \new Staff { \myChords }
+>>
+@end lilypond
+
 
-@node Customizing chord names
-@unnumberedsubsubsec Customizing chord names
 
-@untranslated
 
 @node Figured bass
 @subsection Figured bass
 
-@untranslated
+@lilypondfile[quote]{figured-bass-headword.ly}
+
+Generalbassnotation kann dargestellt werden.
 
 @menu
 * Introduction to figured bass::
@@ -458,210 +729,383 @@ wenn die Akkorde mit der @code{< ... >} Syntax notiert werden.
 * Displaying figured bass::
 @end menu
 
-@c This material comes from 'Figured bass', needs redistribution by translator --FV
+
 @node Introduction to figured bass
 @unnumberedsubsubsec Introduction to figured bass
 
 @cindex Basso continuo
 @cindex Generalbass
 @cindex Bezifferter Bass
+@cindex Continuo, Generalbass
 
 @c TODO: musicological blurb about FB
 
-LilyPond stellt Unterstützung für Generalbassnotation zur Verfügung.
+LilyPond stellt Unterstützung für Generalbassnotation, auch als
+Basso Continuo bezeichnet, zur Verfügung.
 
 @lilypond[quote,ragged-right,verbatim,fragment]
 <<
   \new Voice { \clef bass dis4 c d ais g fis}
-  \new FiguredBass \figuremode {
-    < 6 >4 < 7\+ >8 < 6+ [_!] >
-    < 6 >4 <6 5 [3+] >
-    < _ >4 < 6 5/>4
+  \new FiguredBass {
+    \figuremode {
+      < 6 >4 < 7\+ >8 < 6+ [_!] >
+      < 6 >4 <6 5 [3+] >
+      < _ >4 < 6 5/>4
+    }
   }
 >>
 @end lilypond
 
-Die Unterstützung besteht aus zwei Teilen: Es gibt einen Eingabe-Modus,
-aktiviert durch den Befehl @code{\figuremode}, in dem Ziffern für den Bass
-als Nummern eingegeben werden können, und einen Kontext
- @rinternals{FiguredBass}, der dafür sorgt, dass die entsprechenden
- @rinternals{BassFigure}-Objekte auch erstellt werden.
+Die Unterstützung für Generalbass besteht aus zwei Teilen: Es gibt
+einen Eingabe-Modus, aktiviert durch den Befehl @code{\figuremode},
+in dem Ziffern für den Bass als Nummern eingegeben werden können,
+und einen Kontext @code{FiguredBass}, der dafür sorgt, dass die
+entsprechenden @code{BassFigure}-Objekte auch erstellt werden.
+Generalbass kann auch in einem @code{Staff}-Kontext dargestellt
+werden.
+
+@code{\figures@{ ... @}} ist eine Kurznotation für
+@code{\new FiguredBass @{ \figuremode @{ ... @} @}}.
 
-Im Eingabemodus wird eine Gruppe von Bassziffern mit den Zeichen
+Auch wenn die Unterstützung für Generalbass auf den ersten Blick
+wie die Akkordunterstützung ausschauen mag, ist sie sehr viel
+einfacher.  @code{\figuremode} speichert einfach die Zahlen und der
+@code{FiguredBass}-Kontext setzt sie in der Form, wie sie notiert
+wurden.  Sie werden nicht in Tonhöhen umgewandelt.
+
+@seealso
+Glossar:
+@rglos{figured bass}.
+
+Schnipsel:
+@rlsr{Chords}
+
+
+@node Entering figured bass
+@unnumberedsubsubsec Entering figured bass
+
+@code{\figuremode} (Zahlenmodus) wird benutzt, um den Eingabemodus
+auf den Zahlenmodus umzustellen.  Mehr Information zu unterschiedlichen
+Eingabemodi findet sich in @ref{Input modes}.
+
+Im Zahlenmodus wird eine Gruppe von Bassziffern mit den Zeichen
 @code{<} and @code{>} begrenzt. Die Dauer wird nach dem @code{>}-Zeichen
 eingegeben.
 
-@example
-<4 6>
-@end example
-@lilypond[quote,ragged-right,fragment]
-\new FiguredBass
-\figuremode { <4 6> }
+@lilypond[verbatim,quote,ragged-right,fragment]
+\new FiguredBass {
+  \figuremode {
+    <6 4>2
+  }
+}
+@end lilypond
+
+Versetzungszeichen (inklusive Auflösungszeichen) können hinzugefügt
+werden:
+
+@lilypond[verbatim,quote,ragged-right,fragment]
+\figures {
+  <7! 6+ 4-> <5++> <3-->
+}
 @end lilypond
 
-Versetzungszeichen werden durch Anhängen von @code{-}, @code{!} und @code{+}
-hinter die Nummern erreicht. Ein Pluszeichen wird mit dem Befehl @code{\+}
-gesetzt, verminderte Quinten und Septimen mit @code{5/} und @code{7/}.
+Übermäßige und verminderte Stufen können dargestellt werden:
 
-@example
-<4- 6+ 7!> <5++> <3--> <7/> r <6\+ 5/>
-@end example
-@lilypond[quote,ragged-right,fragment]
-\figures { <4- 6+ 7!> <5++> <3--> <7/> r <6\+ 5/> }
+@lilypond[verbatim,quote,ragged-right,fragment]
+\figures {
+  <6\+ 5/> <7/>
+}
 @end lilypond
 
-Pausen können mit @code{_} notiert werden. Klammern werden mit @code{[}
-und @code{]} gesetzt. Text kann auch eingefügt werden nach den Regeln im
-Abschnitt @ref{Text markup commands}.
+Ein Schrägstrich von links nach rechts (üblicherweise für erhöhte
+Sexten benutzt) kann erstellt werden:
 
-@example
-< [4 6] 8 [_! 12] > < 5 \markup @{ \number 6 \super (1) @} >
-@end example
-@lilypond[quote,ragged-right,fragment]
-\new FiguredBass
-\figuremode { < [4 6] 8 [_! 12] > < 5 \markup{ \tiny \number 6 \super (1)} > }
+@lilypond[verbatim,quote,ragged-right,fragment]
+\figures {
+  <6> <6\\>
+}
 @end lilypond
 
-Es ist auch möglich, Vortsetzungslinien für wiederholte Ziffern zu benutzen.
+Vertikaler Platz und Klammern können zu den Zahlen hinzugefügt
+werden:
 
-@lilypond[verbatim,relative=1]
+@lilypond[verbatim,quote,ragged-right,fragment]
+\figures {
+  <[12 _!] 8 [6  4]>
+}
+@end lilypond
+
+Beliebiger Text kann als Zahl notiert werden:
+
+@lilypond[verbatim,quote,ragged-right,fragment]
+\figures {
+  <\markup { \tiny \number 6 \super (1) } 5>
+}
+@end lilypond
+
+Es ist auch möglich, Fortsetzungslinien für wiederholte Ziffern zu benutzen.
+
+@lilypond[verbatim,quote,ragged-right,fragment]
 <<
-  \new Staff {
+  {
     \clef bass
-    c4 c c
+    e4 d c b,
+    e4 d c b,
   }
   \figures {
-    \set useBassFigureExtenders = ##t
-    <4 6> <3 6> <3 7>
+    \bassFigureExtendersOn
+    <6 4>4 <6 3> <7 3> <7 3>
+    \bassFigureExtendersOff
+    <6 4>4 <6 3> <7 3> <7 3>
   }
 >>
 @end lilypond
 
 @noindent
-In diesem Fall werden wiederholte Ziffern immer durch eine Linie ersetzt.
+In diesem Fall werden wiederholte Ziffern immer durch eine Linie ersetzt, es sei denn, die Linie wird explizit beendet.
 
-Der @code{FiguredBass}-Kontext kümmert sich nicht um die aktuelle Basslinie.
-Als Konsequenz müssen eventuell zusätzliche Ziffern eingefügt werden, um
-Linien unter alle Noten zu erhalten, und die Verwendung von @code{\!}
-kann nötig werden, um zu lange Linien zu stoppen.
-
-@lilypond[relative=1]
+@lilypond[verbatim,quote,ragged-right,fragment]
 <<
-  \new Voice
   \figures {
-    \set useBassFigureExtenders = ##t
-    <6 4->4. <6 4->16. <6 4->32 <5>8. r16 <6>8 <6\! 5->
+    \bassFigureExtendersOn
+    <6 4>4 <6 4> <6\! 4\!> <6 4>
   }
   {
     \clef bass
-    f16. g32 f16. g32 f16. g32 f16. g32 f8. es16 d8 es
+    d4 d c c
   }
 >>
 @end lilypond
-Bei der Benutzung von Linien werden gemeinsame Ziffern immer in die
-gleiche vertikale Position gesetzt. Wenn dies nicht gewünscht ist,
-können Pausen (@code{r}) eingefügt werden. Dadurch wird die vorangegangene
-Positionierung aufgehoben. So kann man etwa
-
-@example
-  <4 6>8 r8
-@end example
 
-@noindent
-anstelle von
-@example
-  <4 6>4
-@end example
+Die folgende Tabelle zeigt die vorhandenen Zahlenmodifikatoren:
+
+@multitable @columnfractions .1 .5 .4
+
+@item
+@b{Modifier}
+@tab
+@b{Purpose}
+@tab
+@b{Example}
+
+@item
++, -, !
+@tab
+Accidentals
+@tab
+@lilypond[line-width=4\cm]
+\figures {
+  <7! 6+ 4-> <5++> <3-->
+}
+@end lilypond
 
-@noindent
-schreiben.
+@item
+\+, /
+@tab
+Augmented and diminished steps
+@tab
+@lilypond[line-width=4\cm]
+\figures {
+  <6\+ 5/> <7/>
+}
+@end lilypond
 
-Versetzungszeichen und Pluszeichen können vor oder nach den Ziffern stehen,
-abhängig von den @code{figuredBassAlterationDirection}- und
-@code{figuredBassPlusDirection}-Eigenschaften.
+@item
+\\
+@tab
+Raised sixth step
+@tab
+@lilypond[line-width=4\cm]
+\figures {
+  <6\\>
+}
+@end lilypond
 
-@lilypond
+@item
+\!
+@tab
+End of continuation line
+@tab
+@lilypond[line-width=4\cm]
+<<
   \figures {
-    <6\+> <5+> <6 4-> r
-    \set figuredBassAlterationDirection = #1
-    <6\+> <5+> <6 4-> r
-    \set figuredBassPlusDirection = #1
-    <6\+> <5+> <6 4-> r
-    \set figuredBassAlterationDirection = #-1
-    <6\+> <5+> <6 4-> r
+    \bassFigureExtendersOn
+    <6 4> <6 4> <6\! 4\!> <6 4>
   }
+  {
+    \clef bass
+    d d c c
+  }
+>>
 @end lilypond
 
-Auch wenn die Unterstützung für bezifferten Bass anscheinend an die
-Akkord-Notation erinnert, ist sie doch sehr viel einfacher. Der Modus
-@code{\figuremode} speichert einfach die Ziffern und  der
-@rinternals{FiguredBass}-Kontext gibt sie so aus, wie sie notiert
-werden. Es gibt also keine Umrechnung von Tonhöhen und die Notation
-wird in der MIDI-Datei nicht umgesetzt.
+@end multitable
 
-Programmintern erstellt die Funktion einfache Textbeschriftung. Somit
-sind alle Textbeschriftungsbefehle verfügbar, um die Formatierungen zu
-verändern. So kann zum Beispiel die vertikale Position der Ziffern mit
-@code{baseline-skip} gesetzt werden.
+@predefined
+@cindex Generalbass Fortsetzungslinie
+@code{\bassFigureExtendersOn},
+@code{\bassFigureExtendersOff}.
+@endpredefined
+
+
+@snippets
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{changing-the-positions-of-figured-bass-alterations.ly}
+
+
+@seealso
+Schnipsel:
+@rlsr{Chords}.
+
+Referenz der Interna:
+@rinternals{BassFigure},
+@rinternals{BassFigureAlignment},
+@rinternals{BassFigureLine},
+@rinternals{BassFigureBracket},
+@rinternals{BassFigureContinuation},
+@rinternals{FiguredBass}.
 
-Bassziffern können auch direkt einem Notensystemkontext (@code{Staff})
-hinzugefügt werden. In diesem Fall wird ihre vertikale Position automatisch
-bestimmt.
 
-@lilypond[ragged-right,fragment,quote]
+
+@node Displaying figured bass
+@unnumberedsubsubsec Displaying figured bass
+
+Generalbass kann mit dem @code{FiguredBass}-Kontext, aber auch in
+den meisten anderen @code{Staff}-Kontexten dargestellt werden.
+
+Wenn die Ziffern im @code{FiguredBass}-Kontext dargestellt werden,
+ist die vertikale Position der Ziffern unabhängig von den Noten
+des paralellen Systems.
+
+@lilypond[verbatim,ragged-right,fragment,quote]
 <<
-  \new Staff = someUniqueName
   \relative c'' {
     c4 c'8 r8 c,4 c'
   }
+  \new FiguredBass {
+    \figuremode {
+      <4>4 <10 6>8 s8
+      <6 4>4 <6 4>
+    }
+  }
+>>
+@end lilypond
 
-  %% send to existing Staff.
-  \context Staff = someUniqueName
-  \figuremode {
-    <4>4 <6 10>8 s8
+In diesem Beispiel muss der @code{FiguredBass}-Kontext explizit
+erstellt werden, damit kein zusätzliches (leeres) Notensystem
+erstellt wird.
+
+Bassziffern können auch direkt einem Notensystemkontext (@code{Staff})
+hinzugefügt werden. In diesem Fall wird ihre vertikale Position automatisch
+bestimmt.
 
-    \set Staff.useBassFigureExtenders = ##t
-    <4 6>4 <4 6>
+@lilypond[verbatim,ragged-right,fragment,quote]
+<<
+  \new Staff = myStaff
+  \figuremode {
+    <4>4 <10 6>8 s8
+    <6 4>4 <6 4>
+  }
+  %% Put notes on same Staff as figures
+  \context Staff = myStaff
+  {
+    \clef bass
+    c4 c'8 r8 c4 c'
   }
 >>
 @end lilypond
 
-@commonprop
+Wenn Generalbass zu einem vorhandenen System hinzugefügt wird, ist
+es möglich, die Ziffern über oder unter dem System anzuzeigen:
 
-In der Standardeinstellung werden die Bassziffern über den Noten
-ausgegeben. Um Ziffern unter den Noten zu erhalten, kann der
-Befehl
+@lilypond[verbatim,ragged-right,fragment,quote]
+<<
+  \new Staff = myStaff
+  \figuremode {
+    <4>4 <10 6>8 s8
+    \bassFigureStaffAlignmentDown
+    <6 4>4 <6 4>
+  }
+  %% Put notes on same Staff as figures
+  \context Staff = myStaff
+  {
+    \clef bass
+    c4 c'8 r8 c4 c'
+  }
+>>
+@end lilypond
 
-@example
-\override Staff.BassFigureAlignmentPositioning #'direction = #DOWN
-@end example
+Schnipsel:
+@rlsr{Chords}.
 
-@noindent
-benutzt werden.
+Referenz der Interna:
+@rinternals{BassFigure},
+@rinternals{BassFigureAlignment},
+@rinternals{BassFigureLine},
+@rinternals{BassFigureBracket},
+@rinternals{BassFigureContinuation},
+@rinternals{FiguredBass}.
 
 @knownissues
 
-Wenn Bassziffern über dem Notensystem mit Ergänzungslinien und
-@code{implicitBassFigures}  benutzt werden, kann es vorkommen, dass
-die Linien vertauscht werden. Besonders kritisch wird es, wenn
-mehrere Bassziffern sich überschneidende Linien haben. Um dieses
-Problem zu vermeiden, sollte @code{stacking-dir}
-im @code{BassFigureAlignment} benutzt werden.
+Um sicherzugehen, dass die Fortsetzungslinien funktionieren, sollte
+der gleiche Rhythmus für die Bassfiguren und die eigentlichen
+Noten der Bassstimme benutzt werden.
 
-@seealso
-
-Programmreferenz: @rinternals{BassFigure}-,
-@rinternals{BassFigureAlignment}-, @rinternals{BassFigureLine}-,
-@rinternals{BassFigureBracket}- und
-@rinternals{BassFigureContinuation}-Objekte und der
-@rinternals{FiguredBass}-Kontext.
+@lilypond[verbatim,ragged-right,fragment,quote]
+<<
+  {
+    \clef bass
+    \repeat unfold 4 { f16. g32 } f8. es16 d8 es
+  }
+  \figures {
+    \bassFigureExtendersOn
+    % The extenders are correct here, with the same rhythm as the bass
+    \repeat unfold 4 { <6 4->16. <6 4->32 }
+    <5>8. r16 <6>8 <6\! 5->
+  }
+>>
+<<
+  {
+    \clef bass
+    \repeat unfold 4 { f16. g32 } f8. es16 d8 es
+  }
+  \figures {
+    \bassFigureExtendersOn
+    % The extenders are incorrect here, even though the timing is the same
+    <6 4->4 <6 4->4
+    <5>8. r16 <6>8 <6\! 5->
+  }
+>>
+@end lilypond
 
-@node Entering figured bass
-@unnumberedsubsubsec Entering figured bass
+Wenn Fortsetzungslinien eingesetzt werden, können aufeinander
+folgende Bezifferungen mit der selben Zahl in einer anderen
+Position dazu führen, dass sich die Reihenfolge der Zahlen
+umkehrt.
 
-@untranslated
+@lilypond[verbatim,ragged-right,fragment,quote,relative=1]
+<<
+ { fis4 g g, e' }
+  \figures {
+    \bassFigureExtendersOn
+    <6 5>4 <5\! 4> < 5 _!> <6>
+  }
+>>
+@end lilypond
 
-@node Displaying figured bass
-@unnumberedsubsubsec Displaying figured bass
+Um dieses Problem zu umgehen, kann die Fortsetzungslinie nach der
+Bezifferung, mit der die Linie beginnen soll, angeschaltet und
+am Ende der Linie wieder ausgeschaltet werden.
 
-@untranslated
+@lilypond[verbatim,ragged-right,fragment,quote,relative=1]
+<<
+ { fis4 g g, e' }
+  \figures {
+    <6 5>4 <5 4>
+    \bassFigureExtendersOn
+    < 5 _!>4 <6>
+    \bassFigureExtendersOff
+  }
+>>
+@end lilypond
index f645f00a268bde1ed73eb11eac59cb800c202cc5..6dc9f62837220a4b084a74e784add81061d1553d 100644 (file)
@@ -1,13 +1,16 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*-
 @c This file is part of lilypond-program.tely
 @ignore
-    Translation of GIT committish: c1be53409464d49dffa013f3dfeb9eb4910edd92
+    Translation of GIT committish: 499a511d4166feaada31114e097f86b5e0c56421
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
+@c \version "2.12.0"
+
 @c Translators: Reinhold Kainhofer
+@c Translation checkers: Till Rettig
 
 @node Converting from other formats
 @chapter Converting from other formats
@@ -21,8 +24,9 @@ findet sich auf der @uref{http://@/lilypond@/.org,Homepage} von LilyPond.
 
 Die im Folgenden beschriebenen Programme sind eigenständige Hilfsprogramme
 und werden üblicherweise von der Kommandozeile aufgerufen. Siehe
-@ref{Command-line usage} für weitere Informationen.
-
+@ref{Command-line usage} für weitere Informationen.  Wenn Sie MacOS
+10.3 oder 10.4 benutzen und Probleme mit diesen Skripten (z. B.
+@code{convert-ly}) haben, lesen Sie @ref{Setup for MacOS X}.
 
 @knownissues
 Leider haben wir nicht ausreichend viele Entwickler, um all die folgenden
@@ -32,12 +36,12 @@ Selbstverständlich sind Patches von Ihnen sehr willkommen!
 
 
 @menu
-* Invoking midi2ly::          Import von MIDI
-* Invoking musicxml2ly::      Import von MusicXML
-* Invoking abc2ly::           Import von ABC
-* Invoking etf2ly::           Import von (alten) Finale-Dateien
+* Invoking midi2ly::          Import von MIDI.
+* Invoking musicxml2ly::      Import von MusicXML.
+* Invoking abc2ly::           Import von ABC.
+* Invoking etf2ly::           Import von (alten) Finale-Dateien.
 * Generating LilyPond files:: Grafische Benutzeroberflächen,
-Musikübersetzer und Programme zur algorithmischen Komposition
+Musikübersetzer und Programme zur algorithmischen Komposition.
 @end menu
 
 @node Invoking midi2ly
@@ -338,7 +342,7 @@ Diese umfassen unter anderem:
 
 @itemize
 @item
-@uref{http://@/denemo@/.sourceforge@/.net/,Denemo}, ein grafisches 
+@uref{http://@/www@/.denemo@/.org/,Denemo}, ein grafisches 
 Programm zum Musiksatz.
 @item
 @uref{http://www@/.volny@/.cz/smilauer/rumor/rumor@/.html,Rumor}, ein 
index 509cef7c1af5e1bdda0c61e7809f9d533cfd4a7c..9028181cd3f5c03d1f1424c070e575c6876be125 100644 (file)
@@ -1,13 +1,13 @@
 @c -*- coding: utf-8; mode: texinfo; -*-
 @c This file is part of lilypond.tely
 @ignore
-    Translation of GIT committish: b54fc6953a8d70a3c51e8c3d0cbf9b3fe9652d78
+    Translation of GIT committish: 499a511d4166feaada31114e097f86b5e0c56421
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @quotation
 Wir wollen dieses Programm allen Freunden widmen, die wir
index 8b2cdf51804b825de25ce9b54a971dd7e72719d1..c1eda5856dfe7954050051fc8c0c425b5073ff5c 100644 (file)
@@ -1,12 +1,12 @@
 @c -*- coding: utf-8; mode: texinfo; -*-
 @ignore
-    Translation of GIT committish: 7c57f1469e057f25f5d7a7b75c18f33bb4e5bed9
+    Translation of GIT committish: 99b5022dc4baadd7000c94d5868cdb7cb9a8ed53
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @node Editorial annotations
 @section Editorial annotations
@@ -18,8 +18,8 @@ Erscheinung der Noten zu ändern und analytische bzw. pädagogische
 Anmerkungen anzubringen.
 
 @menu
-* Inside the staff::            
-* Outside the staff::           
+* Inside the staff::
+* Outside the staff::
 @end menu
 
 
@@ -30,12 +30,12 @@ Dieser Abschnitt zeigt, wie man Elemente hervorhebt, die sich
 innerhalb des Notensystems befinden.
 
 @menu
-* Selecting notation font size::  
-* Fingering instructions::      
-* Hidden notes::                
-* Coloring objects::            
-* Parentheses::                 
-* Stems::                       
+* Selecting notation font size::
+* Fingering instructions::
+* Hidden notes::
+* Coloring objects::
+* Parentheses::
+* Stems::
 @end menu
 
 @node Selecting notation font size
@@ -120,23 +120,17 @@ Die @code{font-size}-Eigenschaft kann nur für die Layoutobjekte gesetzt
 werden, die Schrift-Dateien benutzen.  Das sind die, welche die
 @code{font-interface}-Layoutschnittstelle unterstützen.
 
-@predefined
 
-@funindex \teeny
+@predefined
 @code{\teeny},
-@funindex \tiny
 @code{\tiny},
-@funindex \small
 @code{\small},
-@funindex \normalsize
 @code{\normalsize},
-@funindex \large
 @code{\large},
-@funindex \huge
 @code{\huge}.
+@endpredefined
 
 @seealso
-
 Schnipsel:
 @rlsr{Editorial annotations}.
 
@@ -162,7 +156,7 @@ c4-1 d-2 f-4 e-3
 
 Für Fingerwechsel muss eine Textbeschriftung (markup) benutzt werden:
 
-@lilypond[quote,verbatim,relative=2]
+@lilypond[verbatim,quote,relative=2]
 c4-1 d-2 f-4 c^\markup { \finger "2 - 3" }
 @end lilypond
 
@@ -201,8 +195,10 @@ Fingersatzanweisungen können manuell oberhalb des Systems gesetzt werden, siehe
 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
 {allowing-fingerings-to-be-printed-inside-the-staff.ly}
 
-@seealso
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{avoiding-collisions-with-chord-fingerings.ly}
 
+@seealso
 Notationsreferenz:
 @ref{Direction and placement}.
 
@@ -242,7 +238,7 @@ c4 d
 e4 f
 \unHideNotes
 g a
-\hideNotes 
+\hideNotes
 b
 \unHideNotes
 c
@@ -259,11 +255,11 @@ e4(\p f)--
 
 
 @predefined
-
-@code{\hideNotes}, @code{\unHideNotes}
+@code{\hideNotes},
+@code{\unHideNotes}.
+@endpredefined
 
 @seealso
-
 Schnipsel:
 @rlsr{Editorial annotations}.
 
@@ -340,17 +336,16 @@ definiert werden.
 \set Staff.instrumentName = \markup {
   \with-color #(x11-color 'navy) "Clarinet"
 }
-  
+
 \override Stem #'color = #(rgb-color 0 0 0)
 gis8 a
 \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
 
 @seealso
-
 Notationsreferenz:
 @ref{List of colors}, @ref{The
 tweak command}.
@@ -408,7 +403,6 @@ c2 \parenthesize r
 @end lilypond
 
 @seealso
-
 Schnipsel:
 @rlsr{Editorial annotations}.
 
@@ -431,6 +425,16 @@ gesetzt, anstatt den gesamten Akkord in eine große Klammer zu fassen.
 @cindex Hals, unsichtbar
 @cindex Notenhals, unsichtbar
 @cindex unsichtbarer Notenhals
+@cindex Hals, Richtung
+@cindex Richtung von Notenhälsen
+@cindex Notenhals, Richtung
+
+@funindex \stemNeutral
+@funindex \stemUp
+@funindex \stemDown
+@funindex stemNeutral
+@funindex stemUp
+@funindex stemDown
 
 Immer, wenn das Programm eine Note findet, wird automatisch 
 ein Notenhals (@rinternals{Stem}) -Objekt erzeugt. Auch 
@@ -438,14 +442,10 @@ für ganze Noten und Pausen werden sie erzeugt, aber unsichtbar
 gemacht.
 
 @predefined
-
-@funindex \stemUp
 @code{\stemUp} (Hälse nach oben),
-@funindex \stemDown
 @code{\stemDown} (Hälse nach unten),
-@funindex \stemNeutral
 @code{\stemNeutral} (Hälse je nach Notenposition).
-
+@endpredefined
 
 @snippets
 
@@ -479,9 +479,9 @@ Dieser Abschnitt zeigt, wie man Elemente im System von
 außerhalb des Systems hervorhebt.
 
 @menu
-* Balloon help::                
-* Grid lines::                  
-* Analysis brackets::           
+* Balloon help::
+* Grid lines::
+* Analysis brackets::
 @end menu
 
 @node Balloon help
@@ -499,6 +499,11 @@ außerhalb des Systems hervorhebt.
 @funindex Balloon_engraver
 @funindex balloonGrobText
 @funindex balloonText
+@funindex balloonLengthOn
+@funindex balloonLengthOff
+@funindex \balloonLengthOn
+@funindex \balloonLengthOff
+
 
 Notationselemente können bezeichnet und markiert werden, indem um sie eine
 rechteckige Blase gezeichnet wird.  Dies ist vor allem dazu da, Notation
@@ -508,10 +513,10 @@ zu erklären.
 \new Voice \with { \consists "Balloon_engraver" }
 {
   \balloonGrobText #'Stem #'(3 . 4) \markup { "I'm a Stem" }
-  a8 
+  a8
   \balloonGrobText #'Rest #'(-4 . -4) \markup { "I'm a rest" }
   r
-  <c, g'-\balloonText #'(-2 . -2) \markup { "I'm a note head" } c>2. 
+  <c, g'-\balloonText #'(-2 . -2) \markup { "I'm a note head" } c>2.
 }
 @end lilypond
 
@@ -530,26 +535,21 @@ aber das kann geändert werden.
 {
   \balloonLengthOff
   \balloonGrobText #'Stem #'(3 . 4) \markup { "I'm a Stem" }
-  a8 
+  a8
   \balloonGrobText #'Rest #'(-4 . -4) \markup { "I'm a rest" }
   r
   \balloonLengthOn
-  <c, g'-\balloonText #'(-2 . -2) \markup { "I'm a note head" } c>2. 
+  <c, g'-\balloonText #'(-2 . -2) \markup { "I'm a note head" } c>2.
 }
 @end lilypond
 
 
 @predefined
-
-@funindex balloonLengthOn
-@funindex balloonLengthOff
-@funindex \balloonLengthOn
-@funindex \balloonLengthOff
-
-@code{\balloonLengthOn}, @code{\balloonLengthOff}
+@code{\balloonLengthOn},
+@code{\balloonLengthOff}.
+@endpredefined
 
 @seealso
-
 Schnipsel:
 @rlsr{Editorial annotations}.
 
@@ -585,7 +585,7 @@ den Linien festgesetzt.
 \layout {
   \context {
     \Staff
-    \consists "Grid_point_engraver" 
+    \consists "Grid_point_engraver"
     gridInterval = #(ly:make-moment 1 4)
   }
   \context {
@@ -616,7 +616,6 @@ den Linien festgesetzt.
 
 
 @seealso
-
 Schnipsel:
 @rlsr{Editorial annotations}.
 
@@ -681,7 +680,6 @@ Analysis brackets may be nested.
 @end lilypond
 
 @seealso
-
 Schnipsel:
 @rlsr{Editorial annotations}.
 
index d2a1de519d459e38ca9c590c0a926973d13f49ea..4b57cd57c9243e644222b7ed6c7903bbd838b894 100644 (file)
@@ -1,12 +1,12 @@
 @c -*- coding: utf-8; mode: texinfo; -*-
 @ignore
-    Translation of GIT committish: acbcbe3683d629575967b972b64ca5e1589bf330
+    Translation of GIT committish: 499a511d4166feaada31114e097f86b5e0c56421
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @node Expressive marks
 @section Expressive marks
@@ -67,7 +67,6 @@ Ausdrucksbezeichnungen zu erstellen.
 
 @funindex -
 
-
 Eine Vielfalt an Symbolen kann über und unter den Noten erscheinen, 
 um zu markieren, auf welche Art die Note ausgeführt werden soll. 
 Hierzu wird folgende Syntax benutzt:
@@ -122,10 +121,12 @@ definiert.  Artikulationszeichen und Onrnamente können manuell
 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
 {controlling-the-vertical-ordering-of-scripts.ly}
 
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{creating-a-delayed-turn.ly}
 
-@seealso
 
-Musikglossar:
+@seealso
+Glossar:
 @rglos{tenuto},
 @rglos{accent},
 @rglos{staccato},
@@ -259,7 +260,7 @@ c4\< c\! d\> e\!
 In manchen Situationen kann auch der @code{\espressivo}-Befehl 
 geeignet sein, ein An- und Abschwellen einer Note anzuzeigen.
 
-@lilypond[quote,verbatim,relative=2]
+@lilypond[verbatim,quote,relative=2]
 c2 b4 a
 g1\espressivo
 @end lilypond
@@ -313,7 +314,6 @@ Vertikale Position der Zeichen wird von der Funktion
 @funindex dynamicNeutral
 
 @predefined
-
 @code{\dynamicUp},
 @code{\dynamicDown},
 @code{\dynamicNeutral},
@@ -323,6 +323,7 @@ Vertikale Position der Zeichen wird von der Funktion
 @code{\dimTextDecresc},
 @code{\crescHairpin},
 @code{\dimHairpin}.
+@endpredefined
 
 @snippets
 
@@ -349,8 +350,7 @@ Vertikale Position der Zeichen wird von der Funktion
 
 
 @seealso
-
-Musikglossar:
+Glossar:
 @rglos{al niente},
 @rglos{crescendo},
 @rglos{decrescendo},
@@ -471,7 +471,6 @@ Die Auswahl von Schriftarten in Textbeschriftungen ist erklärt in
 
 
 @seealso
-
 Notationsreferenz:
 @ref{Formatting text},
 @ref{Selecting font and font size},
@@ -491,10 +490,10 @@ Ausdrucksbezeichnungen erstellt: Legato- und Phrasierungsbögen,
 Atemzeichen und Glissandos zu unbestimmten Tonhöhen.
 
 @menu
-* Slurs::                       
-* Phrasing slurs::                    
-* Breath marks::                
-* Falls and doits::             
+* Slurs::
+* Phrasing slurs::
+* Breath marks::
+* Falls and doits::
 @end menu
 
 @node Slurs
@@ -506,8 +505,8 @@ Ein Legatobogen (engl. slur) zeigt an, dass die Noten
 @emph{legato} gespielt werden sollen. Er wird mit Klammern 
 hinter den Notenwerten notiert.
 
-@lilypond[quote,relative=2,verbatim]
-f( g a) a8 b(
+@lilypond[verbatim,quote,relative=2]
+f4( g a) a8 b(
 a4 g2 f4)
 <c e>2( <b d>2)
 @end lilypond
@@ -579,24 +578,25 @@ g4( e c2)
 @funindex slurUp
 
 @predefined
-
 @code{\slurUp},
 @code{\slurDown},
 @code{\slurNeutral},
 @code{\slurDashed},
 @code{\slurDotted},
 @code{\slurSolid}.
-
+@endpredefined
 
 @snippets
 
 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
 {using-double-slurs-for-legato-chords.ly}
 
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{positioning-text-markups-inside-slurs.ly}
 
-@seealso
 
-Musikglossar:
+@seealso
+Glossar:
 @rglos{slur}.
 
 Handbuch zum Lernen:
@@ -639,6 +639,12 @@ e2) d\)
 @funindex phrasingSlurDown
 @funindex \phrasingSlurNeutral
 @funindex phrasingSlurNeutral
+@funindex phrasingSlurDashed
+@funindex \phrasingSlurDashed
+@funindex \phrasingSlurDotted
+@funindex phrasingSlurDotted
+@funindex \phrasingSlurSolid
+@funindex phrasingSlurSolid
 
 Im typographischen Sinne verhalten sich Phrasierungsbögen genauso wie 
 Legatobögen. Sie werden aber als eigene Objekte behandelt. Ein 
@@ -662,15 +668,30 @@ c4\( g' c,( b) | c1\)
 Simultane oder überlappende Phrasierungsbögen sind nicht
 erlaubt.
 
+Phrasierungsbögen können durchgehend, gepunket oder gestrichelt dargestellt
+werden.  Standard ist der durchgehende Bogen:
+
+@lilypond[verbatim,quote,relative=1]
+c4\( e g2\)
+\phrasingSlurDashed
+g4\( e c2\)
+\phrasingSlurDotted
+c4\( e g2\)
+\phrasingSlurSolid
+g4\( e c2\)
+@end lilypond
 
-@predefined
 
+@predefined
 @code{\phrasingSlurUp},
 @code{\phrasingSlurDown},
-@code{\phrasingSlurNeutral}.
+@code{\phrasingSlurNeutral},
+@code{\phrasingSlurDashed},
+@code{\phrasingSlurDotted},
+@code{\phrasingSlurSolid}.
+@endpredefined
 
 @seealso
-
 Handbuch zum Lernen:
 @rlearning{On the un-nestedness of brackets and ties}.
 
@@ -695,7 +716,7 @@ Referenz der Interna:
 
 Atemzeichen werden mit dem Befehl @code{\breathe} eingegeben.
 
-@lilypond[quote,relative=2,verbatim]
+@lilypond[verbatim,quote,relative=2]
 c2. \breathe d4
 @end lilypond
 
@@ -716,8 +737,7 @@ Divisiones genannt, sind unterstützt.  Für Einzelheiten siehe
 
 
 @seealso
-
-Musikglossar: 
+Glossar:
 @rglos{caesura}.
 
 Notationsreferenz:
@@ -767,8 +787,7 @@ ist @emph{notwendig} um unbestimmte Glissandos zu notieren.
 
 
 @seealso
-
-Musikglossar:
+Glossar:
 @rglos{fall},
 @rglos{doit}.
 
@@ -814,8 +833,7 @@ Verschiedene Glissando-Stile sind möglich.  Für Einzelheiten siehe
 
 
 @seealso
-
-Musikglossar:
+Glossar:
 @rglos{glissando}.
 
 Notationsreferenz:
@@ -853,7 +871,7 @@ Ein @notation{Arpeggio} als Zeichen, dass ein Akkord gebrochen gespielt werden s
 kann mit dem Befehl @code{\arpeggio} hinter der
 Akkord-Konstruktion erzeugt werden.
 
-@lilypond[quote,relative=1,verbatim]
+@lilypond[verbatim,quote,relative=1]
 <c e g c>1\arpeggio
 @end lilypond
 
@@ -881,7 +899,7 @@ her:
 
 Besondere Arpeggios mit Klammern können erstellt werden:
 
-@lilypond[quote,relative=1,verbatim]
+@lilypond[verbatim,quote,relative=1]
 <c e g c>2
 \arpeggioBracket
 <c e g c>2\arpeggio
@@ -897,14 +915,13 @@ Ein Arpeggio kann auch explizit ausgeschrieben werden, indem
 
 
 @predefined
-
 @code{\arpeggio},
 @code{\arpeggioArrowUp},
 @code{\arpeggioArrowDown},
 @code{\arpeggioNormal},
 @code{\arpeggioBracket},
 @code{\arpeggioParenthesis}.
-
+@endpredefined
 
 @snippets
 
@@ -919,8 +936,7 @@ Ein Arpeggio kann auch explizit ausgeschrieben werden, indem
 
 
 @seealso
-
-Musikglossar:
+Glossar:
 @rglos{arpeggio}.
 
 Notationsreferenz:
@@ -996,7 +1012,7 @@ mit dem Befehl @code{pitchedTrill} notiert werden.  Das erste
 Argument ist die Hauptnote, das zweite die Note, auf der getrillert
 wird.  Sie wird als Note ohne Hals in Klammern ausgegeben.
 
-@lilypond[verbatim,relative=1,quote]
+@lilypond[verbatim,quote,relative=1]
 \pitchedTrill e2\startTrillSpan fis
 d\stopTrillSpan
 @end lilypond
@@ -1020,18 +1036,13 @@ g\stopTrillSpan
 g\stopTrillSpan
 @end lilypond
 
-
-
 @predefined
-
 @code{\startTrillSpan},
 @code{\stopTrillSpan}.
-
-
+@endpredefined
 
 @seealso
-
-Musikglossar:
+Glossar:
 @rglos{trill}.
 
 Notationsreferenz:
index 768fe3ac89b1a18d9960bb226fca019bd19b596a..7fd0f77691f572f3de40838d380f10fd8c9ccfac 100644 (file)
@@ -1,18 +1,25 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*-
 @c This file is part of lilypond.tely
 @ignore
-    Translation of GIT committish: 19fc0f930f921ca2609e0e60aa26f9d980771b97
+    Translation of GIT committish: 499a511d4166feaada31114e097f86b5e0c56421
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @node Fretted string instruments
 @section Fretted string instruments
 
-@untranslated
+@lilypondfile[quote]{fretted-headword.ly}
+
+Dieser Abschnitt erklärt bestimmte Eigenheiten der Notation für
+gebundene Saiteninstrumente.
+
+@cindex Tabulatur
+@cindex Gitarrentabulatur
+@cindex Banjo-Tabulatur
 
 @menu
 * Common notation for fretted strings::
@@ -23,7 +30,8 @@
 @node Common notation for fretted strings
 @subsection Common notation for fretted strings
 
-@untranslated
+Dieser Abschnitt zeigt Besonderheiten der Notation, die allen
+gebundenen Saiteninstrumenten eigen ist.
 
 @menu
 * References for fretted strings::
 * Default tablatures::
 * Custom tablatures::
 * Fret diagram markups::
+* Predefined fret diagrams::
+* Automatic fret diagrams::
 * Right-hand fingerings::
 @end menu
 
 @node References for fretted strings
 @unnumberedsubsubsec References for fretted strings
 
-@untranslated
+Noten für gebundene Saiteninstrumente wird normalerweise auf
+einem einzelnen System notiert, entweder als traditionelles
+Notensystem oder in Tabulaturform.  Manchmal werden beide
+Arten miteinander verbunden, und besonders in populärer
+Musik ist es üblich, über dem traditionellen System Griffsymbole
+zu setzen.  Gitarre und Banjo sind transponierende Instrumente,
+die eine Oktave tiefer klingen als sie notiert werden.  Partituren
+für diese Instrumente sollten den @qq{Tenorschlüssel}
+(@code{"treble_8"}) benutzen.  Einige Spezifika für gebundene
+Instrumente sind an anderer Stelle erklärt:
+
+@itemize
+@item Fingersatz kann notiert werden, siehe
+@ref{Fingering instructions}.
+
+@item Anweisungen für @notation{Laissez vibrer}-Bögen und
+Bögen zwischen Arpeggios und Tremolos sind beschrieben in
+@ref{Ties}.
+
+@item Hinweise, wie mehrere Stimmen gesetzt werden können, finden sich in
+@ref{Collision resolution}.
+
+@item Instructions for indicating harmonics can be found in
+@ref{Harmonics}.
+
+@end itemize
+
+
+@seealso
+Notationsreferenz:
+@ref{Fingering instructions},
+@ref{Ties},
+@ref{Collision resolution},
+@ref{Instrument names},
+@ref{Writing music in parallel},
+@ref{Arpeggio},
+@ref{List of articulations},
+@ref{Clef}.
+
 
 @node String number indications
 @unnumberedsubsubsec String number indications
 
-@cindex String numbers
+@cindex Saitenzahl
+@cindex Zahl von Saite
+@cindex Fingersatz versus Saitenzahl
+@cindex Nummerierung von Saite
 
-Saitennummerierung kann zu den Akkorden hinzugefügt werden,
-indem die Saitennummer nach einem Backslash als Zahl angegeben
-wird:
+Die Nummer der Saite, auf der gespielt werden soll, kann
+angezeigt werden, indem @code{\@var{Zahl}} an eine Note
+innerhalb eines Akkord-Konstrukts gesetzt wird:
 
-@lilypond[relative,relative=1,ragged-right,fragment]
-<c\1 e\2 g\3>
+@lilypond[verbatim,quote,relative=0]
+\clef "treble_8"
+<c\5>4 <e\4> <g\3>2
+<c,\5 e\4 g\3>1
 @end lilypond
 
-@seealso
+Wenn Fingersatz und Saitennummer zusammen benutzt werden, wird
+ihre Position anhand der Reihenfolge entschieden, mit der sie im
+Code auftauchen:
+
+@lilypond[verbatim,quote,relative=1]
+\clef "treble_8"
+<g\3-0>2
+<g-0\3>
+@end lilypond
+
+@snippets
+
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{controlling-the-placement-of-chord-fingerings.ly}
+
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{allowing-fingerings-to-be-printed-inside-the-staff.ly}
 
-Programmreferenz:
-@rinternals{StringNumber}.
 
-Beispiele:
+@seealso
+Notationsreferenz:
+@ref{Fingering instructions}.
+
+Schnipsel:
 @rlsr{Fretted strings}.
 
+Referenz der Interna:
+@rinternals{StringNumber},
+@rinternals{Fingering}.
+
+
 @node Default tablatures
 @unnumberedsubsubsec Default tablatures
 
-@cindex Tablatures basic
+@cindex Tabulatur, Grundlegendes
+
+@funindex TabStaff
+@funindex TabVoice
 
 Tabulatur-Notation wird für die Notation von Zupfinstrumenten benutzt.
 Tonhöhen werden hier nicht durch Notenköpfe, sondern durch Zahlen
-notiert. Diese Zahlen zeigen an, auf welcher Saite und welchem Bund
-der Ton gespielt werden soll. LilyPond bringt beschränkte Unterstützung
+notiert.  Diese Zahlen zeigen an, auf welcher Saite und welchem Bund
+der Ton gespielt werden soll.  LilyPond bringt beschränkte Unterstützung
 für Tabulaturen mit.
 
 Die Saitennummer, die mit einer Note assoziiert ist, wird durch einen
-Backslash, gefolgt von einer Zahl, notiert, etwa @code{c4\3} für eine
-Viertelnote C auf der dritten Saite. In der Standardeinstellung ist
+Backslash, gefolgt von einer Zahl, notiert.  In der Standardeinstellung ist
 die erste Saite die höchste Saite und als Stimmung wird die übliche
-Gitarrenstimmung auf sechs Saiten angenommen. Die Noten werden in
+Gitarrenstimmung auf sechs Saiten angenommen.  Die Noten werden in
 einer Tabulatur gesetzt, indem @rinternals{TabStaff} und
 @rinternals{TabVoice}-Kontexte verwendet werden.
 
@@ -87,44 +165,69 @@ einer Tabulatur gesetzt, indem @rinternals{TabStaff} und
 @end lilypond
 
 @funindex minimumFret
+
 @cindex Bund
 
-Wenn keine Saite angegeben wird, wird die Saite, deren Bund-Zahl
-weniger als der Betrag in @code{minimumFret} beträgt, ausgewählt.
-Der Standardwert für @code{minimumFret} beträgt 0.
+Wenn keine Saite für eine Note angegeben wird, wird die Note der
+Saite zugeordnet, welche die Note auf einem Bund erzeugen kann,
+der größer oder gleich als der Wert von @code{minimumFret}
+ist.  Der Standardwert für @code{minimumFret} beträgt 0.
 
-@example
-e16 fis gis a b4
-\set TabStaff.minimumFret = #8
-e16 fis gis a b4
-@end example
-@lilypond[quote,ragged-right]
-frag = {
-  \key e \major
-  e16 fis gis a b4
-  \set TabStaff.minimumFret = #8
-  e16 fis gis a b4
+@lilypond[quote,ragged-right,verbatim]
+\new StaffGroup <<
+   \new Staff \relative c {
+     \clef "treble_8"
+     c16 d e f g4
+     c,16 d e f g4
+   }
+   \new TabStaff \relative c {
+     c16 d e f g4
+     \set TabStaff.minimumFret = #5
+     c,16 d e f g4
+   }
+>>
+@end lilypond
+
+@cindex Flageolett in Tabulaturen
+@cindex Tabulatur und Flageolett
+@cindex Gleiten in Tabulaturen
+@cindex Tabulaturen und Gleiten
+@cindex Slide in Tabulaturen
+
+Flageolett und Gleiten (Slide) kann zur Tabulatur hinzugefügt
+werden:
+
+@lilypond[fragment, verbatim, quote, relative=1]
+\new TabStaff {
+  \new TabVoice {
+    <c g'\harmonic> d\2\glissando e\2
+  }
 }
-  \new StaffGroup <<
-    \new Staff { \clef "G_8" \frag }
-    \new TabStaff { \frag }
-  >>
 @end lilypond
 
-@commonprop
 
-Um Tabulaturen mit Hälsen nach unten und horizontalen Balken
-zu erstellen, muss der @code{TabStaff} mit folgenden Parametern
-initialisiert werden:
+@snippets
+
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{stem-and-beam-behavior-in-tablature.ly}
+
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{polyphony-in-tablature.ly}
 
-@example
-\stemDown
-\override Beam #'damping = #100000
-@end example
 
 @seealso
+Notationsreferenz:
+@ref{Stems}.
+
+Schnipsel:
+@rlsr{Fretted strings}.
+
+Referenz der Interna:
+@rinternals{TabNoteHead},
+@rinternals{TabStaff},
+@rinternals{TabVoice},
+@rinternals{Beam}.
 
-Programmreferenz: @rinternals{TabStaff}, @rinternals{TabVoice}.
 
 @knownissues
 
@@ -148,119 +251,939 @@ melodia = \partcombine { e4 g g g }{ e4 e e e }
 >>
 @end lilypond
 
+Spezialeffekte für Gitarre beschränken sich auf Flageolett und
+Slide.
+
+
 @node Custom tablatures
 @unnumberedsubsubsec Custom tablatures
 
-@cindex Non-guitar tablatures
+@cindex Tabulaturen, eigen
+@cindex eigene Tabulaturen
+@cindex Tabulatur, Banjo
+@cindex Tabulatur, Mandoline
+@cindex Tabulatur, Bassgitarre
+@cindex Saitenstimmung für Bundinstrumente
+@cindex Bundinstrumente, Saitenstimmung
+@cindex Tabulatur, Saitenstimmung
 
-Die Stimmung der Saiten kann verändert werden. Die Stimmung muss als
-eine Scheme-Liste dargestellt werden, in der jeder Saite eine Zahl
-zugewiesen ist, die die Tonhöhe der offenen Saite in Halbtönen
-(gemessen von c') darstellt. Die Liste wird als Definition von
-@code{stringTunings} dargestellt. Die Halbtöne können vom c' aus addiert
-oder subtrahiert werden. Die Reihenfolge der Zahlen bestimmt auch
-die Reihenfolge der Saiten. LilyPond entnimmt aus dieser Liste
-auch die Anzahl der Saiten.
+@funindex StringTunings
 
-Im nächsten Beispiel wird
-@code{stringTunings} für die Tonhöhen @code{e, a, d,} und @code{g} gesetzt.
+LilyPond errechnet automatisch den Bund für eine Note auf Grundlage
+der Saite, zu welcher der Ton zugeordnet ist.  Um das tun zu können,
+muss die Stimmung der Saiten angegeben werden.  Die Stimmung wird
+in der @code{StringTunings}-Eigenschaften bestimmt.
 
-@lilypond[quote,ragged-right,fragment,verbatim]
-\new TabStaff <<
-  \set TabStaff.stringTunings = #'(-5 -10 -15 -20)
-  {
-    a,4 c' a e' e c' a e'
+LilyPond hat vordefinierte Stimmungen für Banjo, Mandoline, Gitarre
+und Bassgitarre.  Für diese Stimmungen wird automatisch die
+richtige Transposition eingesetzt.  Das nächste Beispiel ist für
+Bassgitarre, welche eine Oktave niedriger erklingt, als sie
+geschrieben ist:
+
+@lilypond[quote,ragged-right,verbatim]
+<<
+  \new Staff {
+    \clef "bass_8"
+    \relative c, {
+      c4 d e f
+    }
+  }
+  \new TabStaff {
+    \set TabStaff.stringTunings = #bass-tuning
+    \relative c, {
+      c4 d e f
+    }
   }
 >>
 @end lilypond
 
-LilyPond bringt schon vordefinierte Stimmungen für Banjo, Mandoline,
-Gitarre und Bassgitarre mit.
 
-@example
-\set TabStaff.stringTunings = #bass-tuning
-@end example
+Die Standardstimmung ist die Gitarrenstimmung (@code{guitar-tuning})
+in der EADGHE-Stimmung.  Andere vordefinierte Stimmung sind:
+@code{guitar-open-g-tuning}, @code{mandolin-tuning} und
+@code{banjo-open-g-tuning}.  Die vordefinierten Stimmungen finden
+sich in @code{scm/output-lib.scm}.
+
+Die Stimmung ist eine Scheme-Liste von Tonhöhen der Saiten,
+eine für jede Saite, geordnet von Saitennummer 1 bis n, wobei 1
+die höchste Saite der Tabulatur ist und n die unterste.  Normalerweise
+wird so die Stimmung vom höchsten bis zum tiefsten Ton angegeben,
+aber bei einige Instrumente (etwa Ukulele) werden die Saiten nicht
+aufgrund der Tonhöhe angeordnet.
+
+Eine Tonhöhe in der Liste der Saitenstimmungen ist der Unterschied
+der entsprechenden Tonhöhe zum eingestrichenen C gemessen in
+Halbtönen.  Die Tonöhe muss eine Ganzzahl sein.  LilyPond
+errechnet die Tonhöhe einer Saite, indem die Tonhöhe der
+Saitenstimmung zu der Tonhöhe von c' hinzugerechnet wird.
+
+LilyPond erschließt die Anzahl der Saiten einer Tabulatur
+anhand der Anzahl der Saitenstimmungszahlen in @code{stringTunings}.
+
+Jede beliebige Saitenstimmung kann erzeugt werden.  Als Beispiel
+etwa kann die Saitenstimmung für ein viersaitiges Instrument
+mit den Tonhöhen  @code{a''},  @code{d''},  @code{g'}und @code{c'}
+so definiert werden:
+
+@lilypond[quote,verbatim]
+mynotes = {
+    c'4 e' g' c'' |
+    e'' g'' b'' c'''
+}
+
+<<
+  \new Staff {
+    \clef treble
+    \mynotes
+  }
+  \new TabStaff {
+    \set TabStaff.stringTunings = #'(21 14 7 0)
+    \mynotes
+  }
+>>
+@end lilypond
 
-Der Standard ist die Gitarrenstimmung (@code{guitar-tuning}) mit den
-Saiten EADGBE. Andere vordefinierte Stimmungen sind
-@code{guitar-open-g-tuning},
-@code{mandolin-tuning} und @code{banjo-open-g-tuning}.
 
 @seealso
+Installierte Dateien:
+@file{scm/output-lib.scm}.
 
-In der Datei @file{scm/@/output@/-lib@/.scm} sind die Stimmungen
-definiert.
-Programmreferenz: @rinternals{Tab_note_heads_engraver}.
+Schnipsel:
+@rlsr{Fretted strings}.
+
+Referenz der Interna:
+@rinternals{Tab_note_heads_engraver}.
 
-@knownissues
 
-Spezialeffekte für Gitarren sind noch nicht implementiert.
 
 @node Fret diagram markups
 @unnumberedsubsubsec Fret diagram markups
 
-@cindex Fret-Diagramme
-@cindex Griffsymbole
+@cindex Fret (Bunddiagramme)
+@cindex Griffsymbole, Bundinstrumente
 @cindex Gitarrengriffsymbole
-@cindex Akkordtabulartur
+@cindex Akkordtabulatur
 @cindex Akkorddiagramm
+@cindex Bunddiagramme
+@cindex eigene Bunddiagramme
+@cindex Bunddiagramme, eigene
+
+Bunddiagramme können zu Notation als Textbeschriftung
+hinzugefügt werden.  Die Beschriftung enthält Information zu dem
+gewünschten Bunddiagramm.  Es gibt drei unterschiedliche
+Darstellungsarten: normal, knapp und ausführlich.  Die drei
+Arten erzeugen die gleiche Ausgabe, aber mit jeweils mehr oder
+weniger Einzelheiten.  Einzelheiten zu Textbeschriftunsbefehlen
+findet sich in @ref{Text markup commands}.
+
+Die Standard-Bunddiagrammbeschriftung beinhaltet die Saitennummer
+und die Bundnummer für jeden Punkt, der notiert werden soll.
+Zusätzlich können offenen und nicht gespielte (schwingende) Saiten
+angezeigt werden.
+
+@lilypond[quote, verbatim]
+<<
+  \context ChordNames {
+     \chordmode {
+       c1 d:m
+     }
+  }
+  \context Staff {
+    \clef "treble_8"
+    < c e g c' e' > 1 ^\markup
+      \fret-diagram #"6-x;5-3;4-2;3-o;2-1;1-o;"
+    < d a d' f'> ^\markup
+      \fret-diagram #"6-x;5-x;4-o;3-2;2-3;1-1;"
+  }
+>>
+@end lilypond
 
-Akkordtabulaturen (Fret-Diagramme) können zu Noten als eine Beschriftung
-hinzugefügt werden. Die Beschriftung enthält Information über die
-erwünschte Akkordtabulatur, wie das folgende Beispiel zeigt:
+@cindex Barre, Gitarre
 
-@lilypond[verbatim, ragged-right, quote]
+Barre kann hinzugefügt werden:
+
+@lilypond[quote, verbatim]
+<<
+  \context ChordNames {
+     \chordmode {
+       f1 g
+     }
+  }
+  \context Staff {
+    \clef "treble_8"
+    < f, c f a c' f'>1 ^\markup
+      \fret-diagram #"c:6-1-1;6-1;5-3;4-3;3-2;2-1;1-1;"
+    < g, d g b d' g'> ^\markup
+      \fret-diagram #"c:6-1-3;6-3;5-5;4-5;3-4;2-3;1-3;"
+  }
+>>
+@end lilypond
+
+@cindex Bunddiagramme, normaler Stil
+@cindex fret (Bunddiagramme)
+
+@funindex fret-diagram
+@funindex \fret-diagram
+
+Die Größe des Bunddiagrammes und die Anzahl der Bünde im Diagramm
+kann geändert werden:
+
+@lilypond[quote, verbatim]
+<<
+  \context ChordNames {
+     \chordmode {
+       f1 g
+     }
+  }
+  \context Staff {
+    \clef "treble_8"
+    < f, c f a c' f'>1 ^\markup
+      \fret-diagram #"s:1.5;c:6-1-1;6-1;5-3;4-3;3-2;2-1;1-1;"
+    < g, b, d g b g'> ^\markup
+      \fret-diagram #"h:6;6-3;5-2;4-o;3-o;2-o;1-3;"
+  }
+>>
+@end lilypond
+
+Die Anzahl der Saiten kann geändert werden, um sie für andere
+Instrumente anzupassen, wie etwas Banjo oder Ukulele.
+
+@lilypond[quote, verbatim]
+<<
+  \context ChordNames {
+     \chordmode {
+       a1
+     }
+  }
+  \context Staff {
+        %% A chord for ukelele
+    a'1 ^\markup \fret-diagram #"w:4;4-2-2;3-1-1;2-o;1-o;"
+  }
+>>
+@end lilypond
+
+Fingersatz kann auch angezeigt werden, und die Position der
+Fingersatzzahlen kann kontrolliert werden.
+
+@lilypond[quote, verbatim]
+<<
+  \context ChordNames {
+     \chordmode {
+       c1 d:m
+     }
+  }
+  \context Staff {
+    \clef "treble_8"
+    < c e g c' e' > 1 ^\markup
+      \fret-diagram #"f:1;6-x;5-3-3;4-2-2;3-o;2-1-1;1-o;"
+    < d a d' f'> ^\markup
+      \fret-diagram #"f:2;6-x;5-x;4-o;3-2-2;2-3-3;1-1-1;"
+  }
+>>
+@end lilypond
+
+Die Größe und Position der Punkte kann geändert werden:
+
+@lilypond[quote, verbatim]
+<<
+  \context ChordNames {
+     \chordmode {
+       c1 d:m
+     }
+  }
+  \context Staff {
+    \clef "treble_8"
+    < c e g c' e' > 1 ^\markup
+      \fret-diagram #"d:0.35;6-x;5-3;4-2;3-o;2-1;1-o;"
+    < d a d' f'> ^\markup
+      \fret-diagram #"p:0.2;6-x;5-x;4-o;3-2;2-3;1-1;"
+  }
+>>
+@end lilypond
+
+@cindex fret-diagram-terse-Markup
+@cindex Bunddiagramme, knapper Stil
+
+@funindex fret-diagram-terse
+@funindex \fret-diagram-terse
+
+Die Beschriftungsfunktion @code{fret-diagram-terse} (knappe Version)
+lässt die Saitennummern aus: das Vorhandensein einer Saite wird
+durch ein Semikolon ausgedrückt.  Für jede Saite des Diagramms
+muss ein Semikolon gesetzt werden.  Das erste Semikolon entspricht
+der höchsten Saite, das letze der ersten Saite.  Stumme und
+offene Saiten sowie Bundnummern können angezeigt werden.
+
+@lilypond[quote, verbatim]
+<<
+  \context ChordNames {
+     \chordmode {
+       c1 d:m
+     }
+  }
+  \context Staff {
+    \clef "treble_8"
+    < c e g c' e' > 1 ^\markup
+      \fret-diagram-terse #"x;3;2;o;1;o;"
+    < d a d' f'> ^\markup
+      \fret-diagram-terse #"x;x;o;2;3;1;"
+  }
+>>
+@end lilypond
+
+Barre kann im knappen Modus auch angezeigt werden:
+
+@lilypond[quote, verbatim]
+<<
+  \context ChordNames {
+     \chordmode {
+       f1 g
+     }
+  }
+  \context Staff {
+    \clef "treble_8"
+    < f, c f a c' f'>1 ^\markup
+      \fret-diagram-terse #"1-(;3;3;2;1;1-);"
+    < g, d g b d' g'> ^\markup
+      \fret-diagram-terse #"3-(;5;5;4;3;3-);"
+  }
+>>
+@end lilypond
+
+Fingersatz kann im knappen Modus hinzugefügt werden:
+
+@c Need to use override to enable fingerings to show this -- can we do so?
+@lilypond[quote, verbatim]
+<<
+  \context ChordNames {
+     \chordmode {
+       c1 d:m
+     }
+  }
+  \context Staff {
+    \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;"
+    < d a d' f'> ^\markup
+      \fret-diagram-terse #"x;x;o;2-2;3-3;1-1;"
+  }
+>>
+@end lilypond
+
+Andere Eigenschaften der Bunddiagramme müssen im knappen Modus
+mit @code{\override}-Befehlen angegeben werden.
+
+@cindex fret-diagram-verbose-Markup
+@cindex Bunddiagramme, ausführlicher Stil
+
+@funindex fret-diagram-verbose
+@funindex \fret-diagram-verbose
+
+Die Beschriftungsfunktion @code{fret-diagram-verbose}
+(ausführlicher Stil) ist in der
+Form eine  Scheme-Liste.  Jedes Element stellt ein Element dar,
+dass im Bunddiagramm gesetzt werden soll.
+
+@lilypond[quote, verbatim]
+<<  \context ChordNames {
+     \chordmode {
+       c1 d:m
+     }
+  }
+  \context Staff {
+    \clef "treble_8"
+    < c e g c' e' > 1 ^\markup
+      \fret-diagram-verbose #'(
+        (mute 6)
+        (place-fret 5 3)
+        (place-fret 4 2)
+        (open 3)
+        (place-fret 2 1)
+        (open 1)
+      )
+    < d a d' f'> ^\markup
+      \fret-diagram-verbose #'(
+        (mute 6)
+        (mute 5)
+        (open 4)
+        (place-fret 3 2)
+        (place-fret 2 3)
+        (place-fret 1 1)
+      )
+  }
+>>
+@end lilypond
+
+Fingersatz und Barre kann im ausführlichen Modus notiert werden.
+Nur im ausführlichen Modus kann ein Capo angezeigt werden, das auf
+dem Bunddiagramm plaziert wird.  Die Capo-Anzeige ist ein dicker
+Strich, der alle Saiten bedeckt.  Der Bund mit dem Capo ist der
+unterste Bund im Diagramm.
+
+@c \override is necessary to make fingering visible
+@lilypond[quote, verbatim]
+<<
+  \context ChordNames {
+     \chordmode {
+       f1 g c
+     }
+  }
+  \context Staff {
+    \clef "treble_8"
+    \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)
+        (place-fret 5 3)
+        (place-fret 4 3)
+        (place-fret 3 2)
+        (place-fret 2 1)
+        (place-fret 1 1)
+        (barre 6 1 1)
+      )
+    < g, b, d g b g'> ^\markup
+      \fret-diagram-verbose #'(
+        (place-fret 6 3 2)
+        (place-fret 5 2 1)
+        (open 4)
+        (open 3)
+        (open 2)
+        (place-fret 1 3 3)
+      )
+    < c e g c' e'> ^\markup
+      \fret-diagram-verbose #'(
+        (capo 3)
+        (mute 6)
+        (place-fret 4 5 1)
+        (place-fret 3 5 2)
+        (place-fret 2 5 3)
+      )
+   }
+>>
+@end lilypond
+
+Alle anderen Bunddiagramm-Eigenschaften müssen im ausführlichen
+Modus mit mit @code{\override}-Befehlen angegeben werden.
+
+@ignore
+The following example shows the three fret-diagram markup
+interfaces, along with examples of common tweaks.  For example,
+the size of the verbose fret diagram is reduced to 0.75, and the
+finger indications are specified to appear below the diagram.  The
+terse diagram includes tweaks to specify placement of finger code
+and color of dots.
+
+@lilypond[verbatim,ragged-right,quote]
 \new Voice {
-  d'^\markup \fret-diagram #"6-x;5-x;4-o;3-2;2-3;1-2;"
-  d' d' d'
-  fis'^\markup \override #'(size . 0.75) {
+  \clef "treble_8"
+  d^\markup \fret-diagram #"6-x;5-x;4-o;3-2;2-3;1-2;"
+  d d d
+  fis^\markup \override #'(size . 0.75) {
     \override #'(finger-code . below-string) {
       \fret-diagram-verbose #'((place-fret 6 2 1) (barre 6 1 2)
-                               (place-fret 5 4 3) (place-fret 4 4 4)
-                               (place-fret 3 3 2) (place-fret 2 2 1)
+                               (place-fret 5 4 3)
+                               (place-fret 4 4 4)
+                               (place-fret 3 3 2)
+                               (place-fret 2 2 1)
                                (place-fret 1 2 1))
     }
   }
-  fis' fis' fis'
-  c'^\markup \override #'(dot-radius . 0.35) {
+  fis fis fis
+  c^\markup \override #'(dot-radius . 0.35) {
     \override #'(finger-code . in-dot) {
       \override #'(dot-color . white) {
         \fret-diagram-terse #"x;3-1-(;5-2;5-3;5-4;3-1-);"
       }
     }
   }
-  c' c' c'
+  c c c
 }
 @end lilypond
+@end ignore
+
+@cindex Bunddiagramme, anpassen
+@cindex eigene Bunddiagramme
+@cindex Anpassen von Bunddiagrammen
+
+@funindex fret-diagram-interface
 
-Es gibt drei Modi für die Abbildung der Tabulatur: den Standardmodus,
-einen ausführlichen Modus und einen knappen Modus. Die
-unterschiedlichen Modi werden angewählt, indem an den Befehl
-@code{fret-diagram} die Begriffe @code{-standard}, @code{-verbose}
-bzw. @code{-terse} angehängt werden.  Die Modi produzieren
-gleichwertige Ausgaben, haben aber unterschiedliche Informationen im
-Beschriftungsbefehl. Details über die Beschriftungsbefehle finden sich
-im Abschnitt @ref{Text markup commands}. Alle drei Modi werden im
-obigen Beispiel gezeigt.
+Die graphische Erscheinung eines Bunddiagramms kann den Wünschen
+des Notensetzers angepassen werden.  Hierzu werden die Eigenschaften
+des @code{fret-diagram-interface} (Bunddiagramm-Schnittstelle)
+eingesetzt.  Einzelheiten hierzu
+in @rinternals{fret-diagram-interface}.  Die Eigenschaften der
+Schnittstelle gehören dem @code{Voice.TextScript}-Kontext an.
 
-Einige graphische Eigenschaften können verändert werden. Genaueres zur
-Schnittstelle für die Griffsymboleigenschaften findet sich unter
+@snippets
+
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{customizing-markup-fret-diagrams.ly}
+
+
+@seealso
+Notationsreferenz:
+@ref{Text markup commands}.
+
+Schnipsel:
+@rlsr{Fretted strings}.
+
+Referenz der Interna:
 @rinternals{fret-diagram-interface}.
 
+
+
+@node Predefined fret diagrams
+@unnumberedsubsubsec Predefined fret diagrams
+
+
+@cindex Bunddiagramme
+@cindex Akkord-Diagramme
+
+@funindex FretBoards
+@funindex stringTunings
+
+Bunddiagramme können mit dem @code{FretBoards}-Kontext angezeigt
+werden.  Standardmäßig zeigt der @code{FretBoards}-Kontext
+Bunddiagramme an, die in einer Tabelle definiert sind:
+
+@lilypond[verbatim, ragged-right, quote]
+\include "predefined-guitar-fretboards.ly"
+\context FretBoards {
+  \chordmode {
+    c1 d
+  }
+}
+@end lilypond
+
+Die vordefinierten Diagramme sind in der Datei
+@code{predefined-guitar-fretboards.ly} enthalten.  Sie werden
+basierend auf der Tonhöhe eines Akkordes und dem Wert von
+@code{stringTunings} (Saitenstimmung), der gerade benutzt wird,
+gespeichert.  @code{predefined-guitar-fretboards.ly} beinhaltet
+vordefinierte Diagramme für die Gitarrenstimmtung (@code{guitar-tuning}).
+Anhand der Beispiele in dieser Datei können auch für andere
+Instrumente oder Stimmungen Diagramme definiert werden.
+
+Tonhöhen von Akkorden können entweder als Akkordkonstrukte
+oder im Akkordmodus notiert werden (siehe auch
+@ref{Chord mode overview}).
+
+@lilypond[verbatim, ragged-right,quote]
+\include "predefined-guitar-fretboards.ly"
+\context FretBoards {
+  \chordmode {c1}
+  <c' e' g'>1
+}
+@end lilypond
+
+@cindex Akkordbezeichnungen und Bunddiagramme
+@cindex Bunddiagramme und Akkordbezeichnungen
+
+@funindex ChordNames
+@funindex chordmode
+@funindex \chordmode
+
+Oft wird sowohl eine Akkordbezeichnung als ein Bunddiagramm
+notiert.  Das kann erreicht werden, indem ein
+@code{ChordNames}-Kontext parallel mit einem @code{FretBoards}-Kontext
+gesetzt wird und beiden Kontexten die gleichen Noten zugewiesen
+werden.
+
+@lilypond[verbatim, ragged-right, quote]
+\include "predefined-guitar-fretboards.ly"
+mychords = \chordmode{
+  c1 f g
+}
+
+<<
+  \context ChordNames {
+    \mychords
+  }
+  \context FretBoards {
+    \mychords
+  }
+>>
+@end lilypond
+
+@cindex Transposition von Bunddiagrammen
+@cindex Bunddiagramme, Transposition
+
+Vordefinierte Bunddiagramme können transponiert werden, solange
+ein Diagramm für den transponierten Akkord in der Bunddiagramm-Tabelle
+vorhanden ist.
+
+@lilypond[verbatim, ragged-right, quote]
+\include "predefined-guitar-fretboards.ly"
+mychords = \chordmode{
+  c1 f g
+}
+
+mychordlist = {
+  \mychords
+  \transpose c e { \mychords}
+}
+<<
+  \context ChordNames {
+    \mychordlist
+  }
+  \context FretBoards {
+    \mychordlist
+  }
+>>
+@end lilypond
+
+Die Tabelle der vordefinierten Bunddiagramme enthält sieben
+Akkorde (Dur, Moll, übermäßig, vermindert, Dominantseptakkord,
+große Septime und kleine Septime) für alle 17 Tonarten.  Eine
+vollständige Liste der vordefinierten Bunddiagramme findet sich
+in @ref{Predefined fret diagrams}.  Wenn in der Tabelle für
+einen Akkord kein Wert steht, wird ein Bunddiagramm vom
+@code{FretBoards}-Engraver errechnet, wobei die automatische
+Bunddiagrammfunktion zu Anwendung kommt. Siehe hierzu
+@ref{Automatic fret diagrams}.
+
+@lilypond[verbatim, ragged-right, quote]
+\include "predefined-guitar-fretboards.ly"
+mychords = \chordmode{
+  c1 c:9
+}
+
+<<
+  \context ChordNames {
+    \mychords
+  }
+  \context FretBoards {
+    \mychords
+  }
+>>
+@end lilypond
+
+@cindex Bunddiagramme, eigene definieren
+@cindex Definieren von eigenen Bunddiagrammen
+@cindex Eigene Bunddiagramme definieren
+
+Bunddiagramme können zu der Tabelle hinzugefügt werden.  Um ein
+Diagramm hinzuzufügen, muss der Akkord des Diagramms, die Stimmung
+und die Diagramm-Definition angegeben werden.  Die Diagramm-Definition
+kann entweder eine @code{fret-diagram-terse}-Definition oder eine
+@code{fret-diagram-verbose}-Liste sein.
+
+@lilypond[verbatim, ragged-right, quote]
+\include "predefined-guitar-fretboards.ly"
+
+\storePredefinedDiagram \chordmode {c:9}
+                        #guitar-tuning
+                        #"x;3-2;2-1;3-3;3-4;x;"
+
+mychords = \chordmode{
+  c1 c:9
+}
+
+<<
+  \context ChordNames {
+    \mychords
+  }
+  \context FretBoards {
+    \mychords
+  }
+>>
+@end lilypond
+
+Unterschiedliche Bunddiagramme für den selben Akkord können
+gespeichert werden, indem unterschiedliche Oktaven für die
+Tonhöhe benutzt werden.
+
+@lilypond[verbatim, ragged-right, quote]
+\include "predefined-guitar-fretboards.ly"
+
+\storePredefinedDiagram \chordmode {c'}
+                        #guitar-tuning
+                        #(offset-fret 2 (chord-shape 'bes guitar-tuning))
+
+mychords = \chordmode{
+  c1 c'
+}
+
+<<
+  \context ChordNames {
+    \mychords
+  }
+  \context FretBoards {
+    \mychords
+  }
+>>
+@end lilypond
+
+@cindex Bundinstrumente, Akkordformen
+@cindex Akkordformen für Bundinstrumente
+
+@funindex \addChordShape
+@funindex add ChordShape
+@funindex storePredefinedDiagram
+@funindex \storePredefinedDiagram
+
+Zusätzlich zu Bunddiagrammen speichert LilyPond auch eine interne
+Liste an Akkordformen.  Die Akkordformen sind Bunddiagramme,
+die am Hals entlang verschoben werden können und dabei unterschiedliche
+Akkorde ergeben.  Akkordformen können zu der internen Liste
+hinzugefügt werden und dann benutzt werden, um vordefinierte
+Bunddiagramme zu definieren.  Weil sie auf verschiedenen Positionen
+auf dem Steg gelegt werden können, beinhalten vordefinierte
+Akkord üblicherweise keine leeren Saiten.  Wie Bunddiagramme können auch
+Akkordformen entweder als @code{fret-diagram-terse}-Definition
+oder als @code{fret-diagram-verbose}-Liste erstellt werden.
+
+@lilypond[verbatim, ragged-right, quote]
+\include "predefined-guitar-fretboards.ly"
+
+% add a new chord shape
+
+\addChordShape #'powerf #guitar-tuning #"1-1;3-3;3-4;x;x;x;"
+
+% add some new chords based on the power chord shape
+
+\storePredefinedDiagram \chordmode {f'}
+                        #guitar-tuning
+                        #(chord-shape 'powerf guitar-tuning) 
+\storePredefinedDiagram \chordmode {g'}
+                        #guitar-tuning
+                        #(offset-fret 2 (chord-shape 'powerf guitar-tuning))
+
+mychords = \chordmode{
+  f1 f' g g'
+}
+
+<<
+  \context ChordNames {
+    \mychords
+  }
+  \context FretBoards {
+    \mychords
+  }
+>>
+@end lilypond
+
+Die graphische Form eines Bunddiagramms kann entsprechend den
+eigenen Wünschen verändert werden, indem man die Eigenschaften
+der @code{fret-diagram-interface}-Schnittstellt verändert.
+Einzelheiten hierzu in @rinternals{fret-diagram-interface}.  Die
+Schnittstelleneigenschaften eines vordefinierten Bunddiagrammes
+gehören dem @code{FretBoards.FretBoard}-Kontext an.
+
+@snippets
+
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{customizing-fretboard-fret-diagrams.ly}
+
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{defining-predefined-fretboards-for-other-instruments.ly}
+
+
 @seealso
+Notationsreferenz:
+@ref{Custom tablatures},
+@ref{Automatic fret diagrams},
+@ref{Chord mode overview},
+@ref{Predefined fret diagrams}.
+
+Installierte Dateien:
+@file{ly/predefined-guitar-fretboards.ly},
+@file{ly/predefined-guitar-ninth-fretboards.ly}.
 
-Beispiele:
+Schnipsel:
 @rlsr{Fretted strings}.
 
+Referenz der Interna:
+@rinternals {fret-diagram-interface}.
+
+
+@node Automatic fret diagrams
+@unnumberedsubsubsec Automatic fret diagrams
+
+@cindex Bunddiagramme, automatisch
+@cindex Akkorddiagramme, automatisch
+@cindex automatische Bunddiagramme
+
+Bunddiagramme können automatisch aus notierten Noten erstellt werden.
+Hierzu wird der @code{FretBoards}-Kontext eingesetzt.  Wenn keine
+vordefinierten Diagramme für die ensprechenden Noten mit
+der aktiven Saitenstimmung (@code{stringTunings}) vorhanden sind,
+errechnet der Kontext Saiten und Bünde die benutzt werden können,
+um die Noten zu spielen.
+
+@lilypond[quote,ragged-right,verbatim]
+<<
+  \context ChordNames {
+     \chordmode {
+       f1 g
+     }
+  }
+  \context FretBoards {
+    < f, c f a c' f'>1
+    < g,\6 b, d g b g'>
+  }
+  \context Staff {
+    \clef "treble_8"
+    < f, c f a c' f'>1
+    < g, b, d g b' g'>
+  }
+>>
+@end lilypond
+
+@funindex predefinedFretboardsOff
+@funindex \predefinedFretboardsOff
+@funindex predefinedFretboardsOn
+@funindex \predefinedFretboardsOn
+
+Da in den Standardeinstellungen keine vordefinierten Diagramme
+geladen werden, ist die automatische Diagrammerstellung das
+Standardverhalten.  Wenn die vordefinierten Diagramme eingesetzt
+werden, kann die automatische Berechnung an- und ausgeschaltet
+werden.
+
+@lilypond[quote,ragged-right,verbatim]
+
+\storePredefinedDiagram <c e g c' e'>
+                        #guitar-tuning
+                        #"x;3-1-(;5-2;5-3;5-4;3-1-1);"
+<<
+  \context ChordNames {
+     \chordmode {
+       c1 c c
+     }
+  }
+  \context FretBoards {
+    <c e g c' e'>1
+    \predefinedFretboardsOff
+    <c e g c' e'>
+    \predefinedFretboardsOn
+    <c e g c' e'>
+  }
+  \context Staff {
+    \clef "treble_8"
+    <c e g c' e'>1
+    <c e g c' e'>
+    <c e g c' e'>
+  }
+>>
+@end lilypond
+
+Manchmal kann die Berechnungsfunktion für Bunddiagramme kein
+passendes Diagramm finden.  Das kann oft umgangen werden, indem
+man manuell einer Note eine bestimmte Saite zuweist.  In vielen
+Fällen muss nur eine Note derart gekennzeichnet werden, der
+Rest wird dann ensprechend durch den @code{FretBoards}-Kontext
+behandelt.
+
+@cindex Bunddiagramme, Fingersatz
+@cindex Fingersatz in Bunddiagrammen
+
+Fingersatz kann zu FretBoard-Bunddiagrammen hinzugefügt werden.
+
+@lilypond[quote, verbatim]
+<<
+  \context ChordNames {
+     \chordmode {
+       c1 d:m
+     }
+  }
+  \context FretBoards {
+    < c-3 e-2 g c'-1 e' > 1
+    < d a-2 d'-3 f'-1>
+  }
+  \context Staff {
+    \clef "treble_8"
+    < c e g c' e' > 1
+    < d a d' f'>
+  }
+>>
+@end lilypond
+
+Der kleinste Bund, der benutzt wird, um Saiten und Bünde im
+FretBoard-Kontext zu errechnen, kann mit der
+@code{minimumFret}-Eigenschaft gesetzt werden.
+
+@lilypond[quote, verbatim]
+<<
+  \context ChordNames {
+     \chordmode {
+       d1:m d:m
+     }
+  }
+  \context FretBoards {
+    < d a d' f'>
+    \set FretBoards.minimumFret = #5
+    < d a d' f'>
+  }
+  \context Staff {
+    \clef "treble_8"
+    < d a d' f'>
+    < d a d' f'>
+  }
+>>
+@end lilypond
+
+Die Saiten und Bünde des @code{FretBoards}-Kontextes hängen von
+der @code{stringTunings}-Eigesnchaft ab, die die gleiche Bedeitung
+wie im TabStaff-Kontext hat.  Siehe auch @ref{Custom tablatures}
+zu Information über die @code{stringTunings}Eigenschaft.
+
+Die graphische Erscheindung eines Bunddiagrammes kann den
+Bedürfnissen angepasst werden, indem Eigenschaften der
+@code{fret-diagram-interface}-Schnittstelle verändert werden.
+Einzelheiten finden sich in @rinternals{fret-diagram-interface}.
+Die Schnittstelleneigenschaften eines @code{FretBoards}-Diagramms
+gehören dem @code{FretBoards.FretBoard}-Kontext an.
+
+
+@predefined
+@code{\predefinedFretboardsOff},
+@code{\predefinedFretboardsOn}.
+@endpredefined
+
+
+@seealso
+Notationsreferenz:
+@ref{Custom tablatures}.
+
+Schnipsel:
+@rlsr{Fretted strings}.
+
+Referenz der Interna:
+@rinternals {fret-diagram-interface}.
+
+
 @node Right-hand fingerings
 @unnumberedsubsubsec Right-hand fingerings
 
-Fingersatz für die rechte Hand in Akkorden kann notiert werden, indem
-der Befehl @code{@var{note}-\rightHandFinger @var{finger}}
-benutzt wird.
+@cindex Bundinstrumente, Fingersatz der rechten Hand
+@cindex Fingersatz der rechten Hand, Bundinstrumente
+@cindex rechte Hand, Fingersatz für Bundinstrumente
+
+@funindex rightHandFinger
+@funindex \rightHandFinger
 
-@lilypond[verbatim,fragment,relative=2]
-  <c-\rightHandFinger #1 e-\rightHandFinger #2 >
+
+Fingersatz für die rechte Hand in Akkorden kann mit den
+Bezeichnungen @var{p-i-m-a} notiert werden.  Er muss innerhalb
+eines Akkord-Konstruktes notiert werden.
+
+
+@warning{Nach der Note @strong{muss} ein Minuszeichen gesetzt
+werden und ein Leerzeichen nach dem schließenden @code{>}.}
+
+@lilypond[quote,verbatim,relative=0]
+\clef "treble_8"
+<c-\rightHandFinger #1 >4
+<e-\rightHandFinger #2 >
+<g-\rightHandFinger #3 >
+<c-\rightHandFinger #4 >
+<c,-\rightHandFinger #1 e-\rightHandFinger #2
+  g-\rightHandFinger #3 c-\rightHandFinger #4 >1
 @end lilypond
 
 Zur Erleichterung kann der Befehl @code{\rightHandFinger} zu ein paar
@@ -270,89 +1193,106 @@ Buchstaben abgekürzt werden, etwa @code{RH}.
 #(define RH rightHandFinger)
 @end example
 
-@cindex Fingersatz, rechte Hand, Gitarre
-@cindex Rechte Hand-Fingersatz für Gitarre
+@snippets
 
-@commonprop
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{placement-of-right-hand-fingerings.ly}
 
-Größere Kontrolle über den Fingersatz der rechten Hand kann
-mit einer Definition des Befehls @code{strokeFingerOrientations}
-erreicht werden:
-
-@lilypond[quote,verbatim,ragged-right,fragment,relative=1]
-#(define RH rightHandFinger)
-{
-  \set strokeFingerOrientations = #'(up down)
-  <c-\RH #1 es-\RH #2 g-\RH #4 > 4
-  \set strokeFingerOrientations = #'(up right down)
-  <c-\RH #1 es-\RH #2 g-\RH #4 > 4
-}
-@end lilypond
-
-Die Buchstaben, die für den Fingersatz verwendet werden, sind in der
-Eigenschaft @code{digit-names} enthalten, aber sie können auch individuell
-verändert werden, indem @code{\rightHandFinger} mit einer Zeichenfolge als
-Argument eingesetzt wird, wie im nächsten Beispiel:
-
-@lilypond[quote,verbatim,ragged-right,fragment,relative=1]
-#(define RH rightHandFinger)
-{
-  \set strokeFingerOrientations = #'(right)
-  \override StrokeFinger #'digit-names = #'#("x" "y" "z" "!" "@")
-  <c-\RH #5 >4
-  <c-\RH "@">4
-}
-@end lilypond
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{fingerings,-string-indications,-and-right-hand-fingerings.ly}
 
 @seealso
+Schnipsel:
+@rlsr{Fretted strings}.
+
+Referenz der Interna:
+@rinternals{StrokeFinger}.
 
-Program reference: @rinternals{StrokeFinger}
 
 @node Guitar
 @subsection Guitar
 
-@untranslated
+Die meisten der Besonderheiten von Gitarrennotation wurden im
+allgemeinen Abschnitt behandelt, aber es gibt noch einige, die
+hier gezeigt werden sollen.  Teilweise soll ein Lead-sheet nur
+die Akkordsymbole und den Gesangstext enthalten.  Da LilyPond
+ein Notensatzprogramm ist, wird es nicht für derartige
+Projekte empfohlen, die keine eigentliche Notation beinahlten.
+Anstattdessen sollte ein Textbearbeitungsprogramm, oder ein
+Satzprogramm wie GuitarTeX (für erfahrende Benutzer) eingesetzt
+werden.
 
 @menu
 * Indicating position and barring::
-* Indicating harmonics and dampened notes::  
+* Indicating harmonics and dampened notes::
 @end menu
 
 @node Indicating position and barring
 @unnumberedsubsubsec Indicating position and barring
 
-Dieses Beispiel zeigt, wie Griff - und Barre-Angaben
-eingefügt werden können.
+@cindex Position und Barret für Bundinstrumente
+@cindex Bundinstrumente, Position und Barret anzeigen
+@cindex Barret, anzeigen für Bundinstrumente
+
+Das Beispiel zeigt, wie man Griff- und Barreposition
+notieren kann.
 
 @lilypond[quote,ragged-right,fragment,verbatim,relative=0]
-\clef "G_8"
-b16 d16 g16 b16 e16
+\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 e16 g16 e16 b16 g16\stopTextSpan
-e16 b16 g16 d16
+  b16 e g e b g\stopTextSpan
+e16 b g d
 @end lilypond
 
-Gedämpfte (X) Notenköpfe werden in der Gitarrenmusik benutzt, um
-zu signalisieren, dass der Gitarrist eine Note oder einen Akkord spielen
-soll, indem seine Finger die Saiten nur berühren, anstatt sie vollständig
-herunterzudrücken. Damit werden schlagzeugartige Geräusche erreicht,
-die aber noch die ursprüngliche Tonhöhe ahnen lassen. Diese Spielart
-wird mit Kreuz-Notenköpfen notiert, wie im Abschnitt @ref{Special note heads}
-gezeigt.
+
+@seealso
+Notationsreferenz:
+@ref{Text spanners}.
+
+Schnipsel:
+@rlsr{Fretted strings},
+@rlsr{Expressive marks}.
+
 
 @node Indicating harmonics and dampened notes
 @unnumberedsubsubsec Indicating harmonics and dampened notes
 
-@untranslated
+@cindex Bundinstrumente, gedämpfte Noten
+@cindex Bundinstrumente, Flageolett
+@cindex Dämpfung, Bundinstrumente
+@cindex gedämpfte Noten, Bundinstrumente
+@cindex Flageolett, Bundinstrumente
+
+Besondere Notenköpfe können eingesetzt werden, um gedämpfte Noten
+oder Flageoletttöne anzuzeigen.  Flageoletttöne werden normalerweise
+mit einem Text erklärt.
+
+@lilypond[quote,ragged-right,fragment,verbatim]
+\relative c' {
+  \clef "treble_8"
+  \override Staff.NoteHead #'style = #'cross
+  g8 a b c b4
+  \override Staff.NoteHead #'style = #'harmonic-mixed
+  d^\markup { \italic { \fontsize #-2 { "harm. 12" }}} <g b>1
+}
+@end lilypond
+
+
+@seealso
+Notationsreferenz:
+@ref{Special note heads},
+@ref{Note head styles}.
+
+Schnipsel:
+@rlsr{Fretted strings}.
 
 
 @node Banjo
 @subsection Banjo
 
-@untranslated
-
 @menu
 * Banjo tablatures::
 @end menu
@@ -360,13 +1300,16 @@ gezeigt.
 @node Banjo tablatures
 @unnumberedsubsubsec Banjo tablatures
 
-@cindex Banjo tablatures
+@cindex Banjo-Tabulaturen
+@cindex Tabulatur, Banjo
 
-LilyPond unterstützt die Basisnotation für das fünfsaitige Banjo. Die
-Banjo-Tabulatur-Funktion sollte zum Notieren von Banjo-Tabulaturen
+LilyPond hat grundlegende Unterstützung für fünfsaitige Banjo.
+Die Banjo-Tabulatur-Funktion sollte zum Notieren von Banjo-Tabulaturen
 verwendet werden, damit die richtigen Bund-Nummern für die fünfte
 Saite gesetzt werden:
 
+@c due to crazy intervals of banjo music, absolute pitch is recommended
+
 @lilypond[quote,ragged-right,fragment,verbatim]
 \new TabStaff <<
   \set TabStaff.tablatureFormat = #fret-number-tablature-format-banjo
@@ -380,8 +1323,17 @@ Saite gesetzt werden:
 >>
 @end lilypond
 
-Eine Anzahl von üblichen Stimmungen für das Banjo sind in LilyPond
-schon vordefiniert:
+@cindex Banjo-Stimmung
+@cindex Stimmung, Banjo
+
+@funindex banjo-c-tuning
+@funindex banjo-modal-tuning
+@funindex banjo-open-d-tuning
+@funindex banjo-open-dm-tuning
+@funindex four-string-banjo
+
+Eine Anzahl von üblichen Stimmungen für Banjo sind in LilyPond
+vordefiniert: 
 @code{banjo-c-tuning} (gCGBD), @code{banjo-modal-tuning} (gDGCD),
 @code{banjo-open-d-tuning} (aDF#AD) und @code{banjo-open-dm-tuning}
 (aDFAD).
@@ -393,7 +1345,10 @@ indem die @code{four-string-banjo}-Funktion eingesetzt wird:
 \set TabStaff.stringTunings = #(four-string-banjo banjo-c-tuning)
 @end example
 
+
 @seealso
+Schnipsel:
+@rlsr{Fretted strings}.
 
-Die Datei @file{scm/@/output@/-lib@/.scm} enthält vordefinierte
-Banjo-Stimmungen.
+Die Datei @file{scm/@/output@/-lib@/.scm} beinhaltet vordefinierte
+Stimmungen für Banjo.
index be8d32fa0420cadf5ff3823e17c7a67caea37a85..1a9d369c10f272002ded957bdd5e395a26e0baa0 100644 (file)
@@ -1,13 +1,13 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*-
 @c This file is part of lilypond-learning.tely
 @ignore
-    Translation of GIT committish: 598a7ff07bb4752ea9169e592e3369016f014b57
+    Translation of GIT committish: 01361d46dc9d514a79683d003eeea5f4fbf2b746
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 @c Translators: Till Rettig, Reinhold Kainhofer
 
 @node Fundamental concepts
@@ -19,21 +19,21 @@ dieses Kapitel die Konzepte und Techniken vor, wie auch komplexere
 Partituren erstellt werden können.
 
 @menu 
-* How LilyPond files work::
+* How LilyPond input files work::
 * Voices contain music::
 * Contexts and engravers::
 * Extending the templates::
 @end menu
 
-@node How LilyPond files work
-@section How LilyPond files work
+@node How LilyPond input files work
+@section How LilyPond input files work
 
 Das LilyPond Eingabeformat hat eine ziemlich freie Form, so dass 
 für erfahrene Benutzer viel Freiheit besteht, die Struktur ihrer 
-Quelldateien anzulegen. Für Neulinge kann diese Flexibilität aber 
-erst einmal verwirrend sein. In diesem Kapitel soll darum ein Teil 
+Quelldateien anzulegen.  Für Neulinge kann diese Flexibilität aber 
+erst einmal verwirrend sein.  In diesem Kapitel soll darum ein Teil 
 dieser Strukturen dargestellt werden, vieles aber zur Vereinfachung 
-auch weggelassen werden. Für eine komplette Beschreibung des Eingabeformats 
+auch weggelassen werden.  Für eine komplette Beschreibung des Eingabeformats 
 siehe @ruser{File structure}.
 
 Die meisten Beispiele in diesem Handbuch sind kleine Schnipsel, wie 
@@ -44,8 +44,8 @@ c4 a b c
 @end example
 
 Wie hoffentlich bekannt ist, lässt sich solch ein Schnipsel nicht 
-in dieser Form übersetzen. Diese Beispiele sind also nur Kurzformen 
-von wirklichen Beispielen. Sie müssen wenigstens zusätzlich in 
+in dieser Form übersetzen.  Diese Beispiele sind also nur Kurzformen 
+von wirklichen Beispielen.  Sie müssen wenigstens zusätzlich in 
 geschweifte Klammern gesetzt werden.
 
 @example
@@ -80,6 +80,7 @@ im Kapitel @ruser{File structure}.
 
 @cindex Eingabeformat
 @cindex Dateistruktur
+@cindex Struktur, Datei
 
 Ein grundlegendes Beispiel einer Eingabedatei für LilyPond lautet:
 
@@ -87,7 +88,7 @@ Ein grundlegendes Beispiel einer Eingabedatei für LilyPond lautet:
 \version @w{"@version{}"}
 \header @{ @}
 \score @{
-  @var{...zusammengesetzter Musik-Ausdruck...}  % Die gesamte Musik kommt hier!
+  @var{...zusammengesetzter Musik-Ausdruck...}  % Die gesamten Noten kommen hier hin!
   \layout @{ @}
   \midi @{ @}
 @}
@@ -99,6 +100,8 @@ Schemas, aber dieses Beispiel dient als einfacher Ausgangspunkt.
 
 @funindex \book
 @funindex \score
+@funindex book
+@funindex score
 @cindex book
 @cindex score
 
@@ -117,7 +120,7 @@ Sehen wir uns als ein solches einfaches Beispiel an:
 
 @noindent
 Im Hintergrund kommen hier noch einige Ebenen dazu: LilyPond-Code 
-in der obigen Form ist in Wirklichkeit eine Abkürzung. Auch wenn man so 
+in der obigen Form ist in Wirklichkeit eine Abkürzung.  Auch wenn man so 
 Dateien schreiben kann und sie auch korrekt gesetzt werden, heißt 
 der vollständige Code, der hier gemeint ist, eigentlich:
 
@@ -137,13 +140,14 @@ der vollständige Code, der hier gemeint ist, eigentlich:
 @end example
 
 @noindent
-Mit anderen Worten: Wenn die Eingabedatei einen einfachen Musik-Ausdruck
+Mit anderen Worten:  Wenn die Eingabedatei einen einfachen Musik-Ausdruck
 enthält, wird LilyPond die Datei so interpretieren, als ob dieser
-Ausdruck in den oben gezeigten Befehlen eingegeben wurde. Diese nötige 
+Ausdruck in den oben gezeigten Befehlen eingegeben wurde.  Diese nötige 
 Stuktur wird automatisch im Speicher beim Aufruf von LilyPond erzeugt, 
 ohne dass der Benutzer davon etwas bemerkt.
 
 @cindex Implizite Kontexte
+@cindex Kontexte, implizit
 
 @strong{Ein Wort der Warnung ist jedoch angebracht!} Viele der Beispiele
 in der Dokumentation von LilyPond lassen die @code{\new Staff} und @code{\new Voice}
@@ -152,8 +156,8 @@ LilyPond ein sogenannter Kontext) bewusst aus,
 damit sie implizit von LilyPond im Speicher erzeugt werden.
 Für einfache Dokumente funktioniert das im Allgemeinen sehr gut, für 
 komplexere Partituren können dadurch aber unerwartete Ergebnisse 
-entstehen, teilweise sogar unerwartete leere Notenzeilen. Um 
-die entsprechenden Kontexte in diesem Fall explizit zu erzeugen, 
+entstehen, teilweise sogar unerwartete leere Notenzeilen.  Um 
+die entsprechenden Kontexte in diesem Fall explizit zu erzeugen,
 siehe @ref{Contexts and engravers}.
 
 @warning{Wenn mehr als ein paar Zeilen an Musik eingegeben werden,
@@ -164,7 +168,7 @@ Im Moment wollen wir aber zu unserem ersten Beispiel zurückkehren und
 nur den @code{\score}-Befehl näher betrachten.
 
 Eine Partitur (@code{\score}) muss immer mit einem musikalischen Ausdruck 
-beginnen. Das ist letztendlich alle Musik, angefangen bei einer 
+beginnen.  Das ist letztendlich alle Musik, angefangen bei einer 
 einzelnen
 Note bis hin zu einer riesigen Partitur mit vielen Notensystemen 
 (bezeichnet durch @code{GrandStaff}):
@@ -196,39 +200,43 @@ Ein @code{\score} auch andere Dinge enthalten, wie etwa
 @funindex \header
 @funindex \layout
 @funindex \midi
+@funindex header
+@funindex layout
+@funindex midi
 @cindex header
 @cindex midi
 @cindex Layout
 @cindex Kopfzeile
 
 @noindent
-
-@noindent
-Wie man sieht sind die drei Befehle @code{\header}, @code{\layout} und
+Wie man sieht, sind die drei Befehle @code{\header}, @code{\layout} und
 @code{\midi} von spezieller Natur: Im Gegensatz zu vielen Anderen Befehlen, 
 die auch mit einem @code{\} beginnen, liefern sie @emph{keinen} Musikausdruck
-und sind auch nicht Teil eines musikalischen Ausdrucks. Daher können sie
+und sind auch nicht Teil eines musikalischen Ausdrucks.  Daher können sie
 sowohl innerhalb eines @code{\score}-Blocks als auch außerhalb plaziert
-werden. Tatsächlich werden einige dieser Befehle meist außerhalb des 
+werden.  Tatsächlich werden einige dieser Befehle meist außerhalb des 
 @code{\score}-Blocksgesetzt, zum Beispiel findet sich der @code{\header} 
-sehr oft oberhalb der @code{\score}-Umgebung. Das 
+sehr oft oberhalb der @code{\score}-Umgebung.  Das 
 funktioniert genauso gut.
 
-
 Zwei bisher noch nicht aufgetauchte Befehle sind 
-@code{\layout @{ @}} und @code{\midi @{@}}. Wenn sie in einer 
+@code{\layout @{ @}} und @code{\midi @{@}}.  Wenn sie in einer 
 Datei vorkommen, führt dies dazu, dass Lilypond eine druckfähige PDF-Datei
-bzw. eine MIDI-Datei erzeugt. Genauer beschrieben werden sie im 
+bzw. eine MIDI-Datei erzeugt.  Genauer beschrieben werden sie im 
 Benutzerhandbuch -- @ruser{Score layout} und
 @ruser{Creating MIDI files}.
 
 @cindex Partituren, mehrfache
+@cindex book-Abschnitte, implizit
+@cindex implizite book-Umgebung
+@funindex \book
+@funindex book
 
 Ihr LilyPond Code kann auch mehrere @code{\score}-Blöcke enthalten. 
 Jeder davon wird als eigenständige Partitur interpretiert, die 
 allerdings alle in dieselbe Ausgabedatei plaziert weden.
 Ein @code{\book}-Befehl ist nicht explizit notwendig -- er wird 
-implizit erzeugt. Wenn jedoch für jeden @code{\score}-Block in einer 
+implizit erzeugt.  Wenn jedoch für jeden @code{\score}-Block in einer 
 einzigen @code{.ly}-Datei eine eigene Ausgabe-Datei erzeugt werden soll,
 dann muss jeder dieser Blöcke in einen eigenen @code{\book}-Block
 gesetzt werden: Jeder @code{\book}-Block erzeugt dann eine
@@ -237,15 +245,18 @@ eigene Ausgabedatei.
 Zusammenfassung:
 
 Jeder @code{\book}-Block erzeugt eine eigene Ausgabedatei (z.B. eine
-PDF-Datei). Wenn Sie keinen derartigen Block explizit angegeben haben,
+PDF-Datei).  Wenn Sie keinen derartigen Block explizit angegeben haben,
 setzt LilyPond den gesamten Dateiinhalt innerhalb eines einzigen 
 impliziten @code{\book}-Blocks.
 
 Jeder @code{\score}-Block beschreibt ein eigenständiges Musikstück 
 innerhalb des @code{\book}-Blocks.
 
+@cindex Layout-Umgebung, Platzierung
+@cindex Platzierung von layout-Umgebung
+
 Jeder @code{\layout}-Block wirkt sich auf den @code{\score}- oder
-@code{\book}-Block aus, in dem er auftritt. So wirkt z.B. ein 
+@code{\book}-Block aus, in dem er auftritt.  So wirkt z.B. ein 
 @code{\layout}-Block innerhalb eines @code{\score}-Blocks nur auf 
 diesen einen Block und seinen gesamten Inhalt, ein @code{\layout}-Block 
 außerhalb eines @code{\score}-Blocks (und daher innerhalb des implizit 
@@ -254,7 +265,6 @@ alle @code{\score}-Blocks innerhalb dieses @code{\book}-Blocks.
 
 Nähere Details finden sich im Abschnitt @ruser{Multiple scores in a book}.
 
-
 @cindex Variablen
 @cindex Bezeichner
 
@@ -274,26 +284,28 @@ melodie = \relative c' @{
 Wenn LilyPond diese Datei analysiert, nimmt es den Inhalt
 von @code{melodie} (alles nach dem Gleichheitszeichen) und 
 fügt ihn immer dann ein, wenn ein @code{\melodie} 
-vorkommt. Die Namen sind frei wählbar, die Variable kann genauso
+vorkommt.  Die Namen sind frei wählbar, die Variable kann genauso
 gut  @code{melodie}, @code{GLOBAL},
-@code{rechteHandklavier}, oder @code{foofoobarbaz} heißen. Für mehr
+@code{rechteHandklavier}, oder @code{foofoobarbaz} heißen.  Für mehr
 Information siehe
 @ref{Saving typing with variables and functions}.
 Als Variablenname kann fast jeder beliebige Name benutzt werden,
 allerdings dürfen nur Buchstaben vorkommen (also keine Zahlen, Unterstriche,
 Sonderzeichen, etc.) und er darf nicht wie ein LilyPond-Befehl
-lauten. Die genauen Einschränkungen sind beschrieben in 
+lauten.  Die genauen Einschränkungen sind beschrieben in 
 @ruser{File structure}.
 
-@seealso
 
+@seealso
 Eine vollständige Definition des Eingabeformats findet sich in 
 @ruser{File structure}.
 
+
 @node Score is a (single) compound musical expression
 @subsection Score is a (single) compound musical expression
 
 @funindex \score
+@funindex score
 @cindex score
 @cindex Partitur
 @cindex Musikstück
@@ -303,11 +315,11 @@ Eine vollständige Definition des Eingabeformats findet sich in
 
 Im vorigen Kapitel, @ref{Introduction to the LilyPond file structure}, 
 wurde die allgemeine Struktur einer LilyPond-Quelldatei 
-beschrieben. Aber anscheinend haben wir die wichtigste 
+beschrieben.  Aber anscheinend haben wir die wichtigste 
 Frage ausgelassen, nämlich wie man herausfindet, was nach 
 dem @code{\score} geschrieben werden soll.
 
-In Wirklichkeit ist das aber gar kein Geheimnis. Diese 
+In Wirklichkeit ist das aber gar kein Geheimnis.  Diese 
 Zeile ist die Antwort:
 
 @quotation
@@ -317,9 +329,9 @@ von einem einzelnen musikalischen Ausdruck.}
 
 @noindent
 Vielleicht wollen Sie noch einmal 
-@ref{Music expressions explained} überfliegen. In diesem
+@ref{Music expressions explained} überfliegen.  In diesem
 Kapitel wurde gezeigt, wie sich große musikalische Ausdrücke 
-aus kleinen Teilen zusammensetzen. Noten können zu Akkorden 
+aus kleinen Teilen zusammensetzen.  Noten können zu Akkorden 
 verbunden werden usw. Jetzt gehen wir aber in die andere Richtung 
 und betrachten, wie sich ein großer musikalischer Ausdruck 
 zerlegen lässt.
@@ -327,7 +339,7 @@ zerlegen lässt.
 @example
 \score @{
   @{   % diese Klammer startet den großen mus. Ausdruck
-    \new GrandStaff <<
+    \new StaffGroup <<
       @var{...hier eine ganze Wagner-Oper einfügen...}
     >>
   @}   % diese Klammer beendet den Ausdruck
@@ -336,9 +348,9 @@ zerlegen lässt.
 @end example
 
 Eine Wagner-Oper ist mindestens doppelt so lang wie dieses Handbuch,
-beschränken wir uns also auf einen Sänger und Klavier. Wir brauchen 
-keine Orchesterpartitur (@code{GrandStaff}) dafür, darum lassen wir 
-den Befehl weg. Wir brauchen aber einen Sänger und ein Klavier.
+beschränken wir uns also auf einen Sänger und Klavier.  Wir brauchen 
+keine ganze Orchesterpartitur, infolgedessen können wir die Systemgruppe
+(StaffGroup) auslassen, aber wir brauchen einen Sänger und ein Klavier.
 
 @example
 \score @{
@@ -346,7 +358,7 @@ den Befehl weg. Wir brauchen aber einen Sänger und ein Klavier.
     <<
       \new Staff = "Sänger" <<
       >>
-      \new PianoStaff = Klavier <<
+      \new PianoStaff = "Klavier" <<
       >>
     >>
   @}
@@ -356,11 +368,11 @@ den Befehl weg. Wir brauchen aber einen Sänger und ein Klavier.
 
 Zur Erinnerung: mit @code{<<} und @code{>>} werden Noten gleichzeitig
 gesetzt; wir wollen ja auch Klavier- und Sängerstimme gleichzeitig 
-und nicht hintereinander haben. Bei genauerem Hinsehen fällt auf, dass
+und nicht hintereinander haben.  Bei genauerem Hinsehen fällt auf, dass
 die @code{<< ... >>}-Konstruktion für die Notenzeile des Sängers eigentlich 
 nicht unbedingt nötig wäre, da sie ja nur einen (sequenzielle) musikalischen
-Ausdruck enthält, nämlich alle Noten des Sängers hintereinander. Daher
-könnte an sich auch einfach ein @code{@{...@}} benutzt werden. Die 
+Ausdruck enthält, nämlich alle Noten des Sängers hintereinander.  Daher
+könnte an sich auch einfach ein @code{@{...@}} benutzt werden.  Die 
 Spitzklammern sind allerdings notwendig, sobald die Notenzeile mehrere
 parallelle Ausdrücke -- wie etwa zwei parallele Stimmen oder eine Stimme
 mit zugehörigem Text -- enthält. 
@@ -383,19 +395,20 @@ wir uns mit einigen Platzhalter-Noten und -Texten.
 }
 @end lilypond
 
-Jetzt haben wir viel mehr Details. Wir haben ein System (engl. staff) 
+Jetzt haben wir viel mehr Details.  Wir haben ein System (engl. staff) 
 für einen Sänger, in dem sich wieder eine Stimme (engl. voice) 
-befindet. @code{Voice} bedeutet für LilyPond eine Stimme (sowohl 
-gesungen als auch gespielt) und evtl. zusätzlich einen Text. Zusätzlich 
+befindet.  @code{Voice} bedeutet für LilyPond eine Stimme (sowohl 
+gesungen als auch gespielt) und evtl. zusätzlich einen Text.  Zusätzlich 
 werden zwei Notensysteme für das Klavier mit dem Befehl @code{\new 
-PianoStaff} gesetzt. @code{PianoStaff} bezeichnet die Piano-Umgebung (etwa 
+PianoStaff} gesetzt.  @code{PianoStaff} bezeichnet die Piano-Umgebung (etwa 
 durchgehende Taktstriche und die geschweifte Klammer am Anfang), in der 
-dann wiederum zwei eigene Systeme ("upper" für die rechte Hand und 
-"lower
+dann wiederum zwei eigene Systeme ("oben" für die rechte Hand und 
+"unten
 für die linke) erstellt werden.
 
-Jetzt könnte man in diese Umgebung Noten einfügen. Innerhalb der 
-geschweiften Klammern neben @code{\new Voice = vocal} könnte man
+Jetzt könnte man in diese Umgebung Noten einfügen.  Innerhalb der 
+geschweiften Klammern neben @code{\new Voice = "Singstimme"}
+könnte man
 
 @example
 \relative c'' @{
@@ -403,9 +416,10 @@ geschweiften Klammern neben @code{\new Voice = vocal} könnte man
 @}
 @end example
 
-@noindent schreiben. Aber wenn man seine Datei so direkt schreibt, wird 
+@noindent
+schreiben.  Aber wenn man seine Datei so direkt schreibt, wird 
 der @code{\score}-Abschnitt sehr lang und es wird ziemlich schwer zu 
-verstehen, wie alles zusammenhängt. Darum bietet es sich an, Bezeichner 
+verstehen, wie alles zusammenhängt.  Darum bietet es sich an, Bezeichner 
 (oder Variablen) zu verwenden.
 
 @lilypond[verbatim,quote,ragged-right]
@@ -435,22 +449,22 @@ unten   = \relative c { b2 e2 }
 Achten Sie auf den Unterschied zwischen Noten, die mit @code{\relative}
 oder direkt in einem musikalischen Ausruck eingegeben werden, und 
 dem Text des Lieds, der innerhalb @code{\lyricmode} angegeben 
-werden muss. Diese Unterscheidung ist für LilyPond essentiell,
+werden muss.  Diese Unterscheidung ist für LilyPond essentiell,
 um zu entscheiden, ob der folgende Inhalt als Musik oder Text 
-interpretiert werden soll. Wie könnte LilyPond sonst entscheiden, 
+interpretiert werden soll.  Wie könnte LilyPond sonst entscheiden, 
 ob @code{@{a b c@}} die drei Noten a, b und c darstellen soll oder
 den Text eines Lieds über das Alphabet!
 
 Beim Schreiben (oder Lesen) einer @code{\score}-Umgebung 
-sollte man langsam und sorgfältig vorgehen. Am besten fängt 
+sollte man langsam und sorgfältig vorgehen.  Am besten fängt 
 man mit dem größten Gebilde an und definiert dann die darin 
-enthaltenen kleineren der Reihe nach. Es hilft auch, sehr 
+enthaltenen kleineren der Reihe nach.  Es hilft auch, sehr 
 genau mit den Einzügen zu sein, so dass jede Zeile, die 
 der gleichen Ebene angehört, wirklich horizontal an der 
 gleichen Stelle beginnt.
 
-@seealso
 
+@seealso
 Benutzerhandbuch: @ruser{Structure of a score}.
 
 
@@ -459,11 +473,12 @@ Benutzerhandbuch: @ruser{Structure of a score}.
 
 @cindex Notenzeilen, temporäre
 @cindex Ossia
+@cindex temporäre Notenzeilen
 
-Notenzeilen (die @q{Staff}-Kontexte) müssen nicht unbedingt gleib
+Notenzeilen (die @q{Staff}-Kontexte) müssen nicht unbedingt gleich
 zu Beginn erzeugt werden -- sie können auch zu einem späteren
-Zeitpunkt eingeführt weden. Das ist vor allem nützlichm um 
-@rglosnamed{ossia,Ossias} zu erzeugen. Hier folgt ein kures Beispiel,
+Zeitpunkt eingeführt weden.  Das ist vor allem nützlichm um 
+@rglosnamed{ossia,Ossias} zu erzeugen.  Hier folgt ein kures Beispiel,
 wie eine zusätzliche temporäre Notenzeile für nur drei Noten erzeugt 
 werden kann:
 
@@ -486,10 +501,11 @@ werden kann:
 @noindent
 Wie man sieht, ist die Größe des Notenschlüssels dieselbe, wie sie 
 auch bei einer Schlüsseländerung auftritt -- etwas kleiner als
-der Schlüssel am Beginn einer Notenzeile. Dies ist normal für
+der Schlüssel am Beginn einer Notenzeile.   Dies ist normal für
 Notenschlüssel, die innerhalb einer Notenzeile gesetzt werden.
 
 @cindex Notenzeile, Positionierung
+@cindex Positionierung einer Notenzeile
 
 Der Ossia-Abschnitt kann auch oberhalb der Hauptnotenzeile
 gesetzt werden:
@@ -502,7 +518,7 @@ gesetzt werden:
     <<
       { f c c }
       \new Staff \with {
-        alignAboveContext = "Hauptzeile" }
+        alignAboveContext = #"Hauptzeile" }
       { f8 f c }
     >>
     r4 |
@@ -511,18 +527,18 @@ gesetzt werden:
 @end lilypond
 
 Dieses Beispiel benutzt den @code{\with}-Befehl, der später noch
-genauer erklärt wird. Damit kann das Standardverhalten einer
+genauer erklärt wird.  Damit kann das Standardverhalten einer
 einzelnen Notenzeile geändert werden: Hier wird einfach angegeben,
 dass die neue Notenzeile oberhalb der bereits existierenden Zeile
 mit Namen @qq{Hauptzeile} plaziert werden soll, anstatt 
 standardmäßig unterhalb.
 
-@seealso
 
+@seealso
 Ossia werden oft ohne Notenschlüssel und Taktangabe gedruck, meist 
-auch etwas kleiner als die anderen Notenzeilen. Dies ist natürlich 
+auch etwas kleiner als die anderen Notenzeilen.  Dies ist natürlich 
 auch in LilyPond möglich, benötigt aber Befehle, die bisher noch 
-nicht vorgestellt wurden. Siehe @ref{Size of objects}
+nicht vorgestellt wurden.  Siehe @ref{Size of objects}
 und @ruser{Ossia staves}.
 
 
@@ -531,11 +547,12 @@ und @ruser{Ossia staves}.
 
 @cindex Klammern, geschachtelt
 @cindex Schachtelung von Klammern
+@cindex Klammer-Typen
 
 Sie haben bisher zahlreiche verschiedene Arten von Klammern
-beim Schreiben von Musik mit LilyPond kennengelernt. Diese
+beim Schreiben von Musik mit LilyPond kennengelernt.  Diese
 folgen verschiedenen Regeln, die zu Beginn vielleicht 
-verwirrend wirken. Bevor die genauen Regeln vorgestellt werden,
+verwirrend wirken.  Bevor die genauen Regeln vorgestellt werden,
 wollen wir die diversen Klammerarten kurz rekapitulieren:
 
 @c attempt to force this onto a new page
@@ -557,7 +574,6 @@ wollen wir die diversen Klammerarten kurz rekapitulieren:
   @tab Markiert den Beginn und das Ende eines manuell erzeugten Balkens
 @end multitable
 
-
 Zusätzlich sollten vielleicht noch einige weiter Konstruktionen
 erwähnt werden, die Noten auf irgendeine Art und Weise verbinden:
 Haltebögen (durch eine Tilde @code{~} markiert),
@@ -566,16 +582,16 @@ Vorschlagnoten (als @code{\grace@{..@}} notiert).
 
 Außerhalb von LilyPond fordert die übliche Benutzung von 
 Klammern, dass die entsprechenden Arten korrekt verschachtelt
-werden, wie z.B. in @code{<< [ @{ ( .. ) @} ] >>}. Die 
+werden, wie z.B. in @code{<< [ @{ ( .. ) @} ] >>}.  Die 
 schließenden Klammern kommen dabei in der umgekehrten Reihenfolge
-wie die öffnenden Klammern vor. Dies ist auch in LilyPond 
+wie die öffnenden Klammern vor.  Dies ist auch in LilyPond 
 ein @strong{Muss} für die drei Klammerarten, die in obiger 
 Tabelle mit dem Wort @q{Umschließt} beschrieben werden -- sie 
 müssen korrekt geschachtelt werden.
 Die restlichen Klammerarten (durch @q{Markiert} beschrieben),
 die Haltebögen und die Triolen brauchen jedoch mit den 
 anderen Klammerarten @strong{nicht} unbedingt korrekt 
-geschachtelt werden. Tatsächlich sind sie auch keine Klammern
+geschachtelt werden.  Tatsächlich sind sie auch keine Klammern
 in dem Sinn, dass sie etwas umschließen, sondern viel mehr
 Indikatoren, an welcher Stelle ein bestimmtes musikalisches 
 Objekt beginnt oder endet.
@@ -612,7 +628,7 @@ Phrasierungsbogen, der in einer Triole beginnt (Zeilen 3 und 4).
 
 Sänger brauchen Stimmen zum Singen, und LilyPond braucht sie auch:
 in der Tat sind alle Noten für alle Instrumente in einer Partitur
-innerhalb von Stimmen gesetzt. Die Stimme ist das grundlegendste Prinzip
+innerhalb von Stimmen gesetzt.  Die Stimme ist das grundlegendste Prinzip
 von LilyPond.
 
 @menu 
@@ -627,24 +643,27 @@ von LilyPond.
 @cindex Polyphonie
 @cindex Ebenen
 @cindex mehrere Stimmen
+@cindex Stimmen, mehrere
 @cindex Voice context
 @cindex context, Voice
 @cindex Kontext, Stimme
 @cindex Stimmenkontext
 @cindex gleichzeitige Noten
+@cindex Stimmen versus Akkorde
+@cindex Akkorde versus Stimmen
 @cindex Noten gleichzeitig
 
 Die grundegendsten und innersten Ebenen ein einer LilyPond-Partitur
 werden @qq{Voice context} (Stimmenkontext) oder auch nur @qq{Voice}
-(Stimme) genannt. Stimmen werden in anderen Notationsprogrammen
+(Stimme) genannt.  Stimmen werden in anderen Notationsprogrammen
 manchmal auch als @qq{layer} (Ebene) bezeichnet.
 
 Tatsächlich ist die Stimmenebene die einzige, die wirklich Noten 
-enthalten kann. Wenn kein Stimmenkontext explizit erstellt wird, 
+enthalten kann.  Wenn kein Stimmenkontext explizit erstellt wird, 
 wird er automatisch erstellt, wie am Anfang dieses Kapitels
-gezeigt. Manche Instrumente wie etwa die Oboe können nur eine
-Note gleichzeitig spielen. Noten für solche Instrumente sind
-monophon und brauchen nur eine einzige Stimme. Instrumente, die
+gezeigt.  Manche Instrumente wie etwa die Oboe können nur eine
+Note gleichzeitig spielen.  Noten für solche Instrumente sind
+monophon und brauchen nur eine einzige Stimme.  Instrumente, die
 mehrere Noten gleichzeitig spielen können, wie das Klavier, brauchen
 dagegeben oft mehrere Stimmen, um die verschiedenen gleichzeitig
 erklingenden Noten mit oft unterschiedlichen Rhythmen darstellen 
@@ -660,15 +679,15 @@ uns zuerst dieses Beispiel mit vier Akkorden an:
 @end lilypond
 
 Das kann ausgedrückt werden, indem man die einfachen spitzen Klammern
-@code{< ... >} benützt, um Akkorde anzuzeigen. Hierfür braucht man
-nur eine Stimme. Aber gesetzt der Fall das Fis sollte eigentlich
+@code{< ... >} benützt, um Akkorde anzuzeigen.  Hierfür braucht man
+nur eine Stimme.  Aber gesetzt der Fall das Fis sollte eigentlich
 eine Achtelnote sein, gefolgt von einer Achtelnote G (als Durchgangsnote
 hin zum A)? Hier haben wir also zwei Noten, die zur gleichen Zeit
 beginnen, aber unterschiedliche Dauern haben: die Viertelnote D und die
-Achtelnote Fis. Wie können sie notiert werden? Als Akkord kann man sie 
+Achtelnote Fis.  Wie können sie notiert werden? Als Akkord kann man sie 
 nicht schreiben, weil alle Noten in einem Akkord die gleiche Länge besitzen
-müssen. Sie können auch nicht als aufeinanderfolgende Noten geschrieben
-werden, denn sie beginnen ja zur selben Zeit. In diesem Fall also brauchen
+müssen.  Sie können auch nicht als aufeinanderfolgende Noten geschrieben
+werden, denn sie beginnen ja zur selben Zeit.  In diesem Fall also brauchen
 wir zwei Stimmen.
 
 Wie aber wird das in der LilyPond-Syntax ausgedrückt?
@@ -679,11 +698,11 @@ Wie aber wird das in der LilyPond-Syntax ausgedrückt?
 Die einfachste Art, Fragmente mit mehr als einer Stimme auf einem System
 zu notieren, ist, die Stimmen nacheinander (jeweils mit den Klammern
 @code{@{ ... @}}) zu schreiben und dann mit den spitzen Klammern
-(@code{<<...>>}) simultan zu kombinieren. Die beiden Fragmente müssen
+(@code{<<...>>}) simultan zu kombinieren.  Die beiden Fragmente müssen
 zusätzlich noch mit zwei Backslash-Zeichen (@code{\\}) voneinander
 getrennt werden, damit sie als zwei unterschiedliche Stimmen erkannt 
-werden. Ohne diese Trenner würden sie als eine einzige Stimme notiert
-werden. Diese Technik ist besonders dann angebracht, wenn es sich bei
+werden.  Ohne diese Trenner würden sie als eine einzige Stimme notiert
+werden.  Diese Technik ist besonders dann angebracht, wenn es sich bei
 den Noten um hauptsächlich homophone Musik handelt, in der hier und da
 polyphone Stellen vorkommen.
 
@@ -709,7 +728,7 @@ Hier ein anderes Beispiel:
 @end lilypond
 
 Es ist nicht notwendig, für jeden Takt eine eigene
-@code{<< \\ >>}-Konstruktion zu benutzen. Bei Musik mit nur wenigen
+@code{<< \\ >>}-Konstruktion zu benutzen.  Bei Musik mit nur wenigen
 Noten pro Takt kann es die Quelldatei besser lesbar machen, aber
 wenn in einem Takt viele Noten vorkommen, kann man die gesamten Stimmen
 separat schreiben, wie hier:
@@ -748,17 +767,17 @@ usw. entsprechend ausgerichtet.
 @end lilypond
 
 Diese Stimmen sind alle getrennt von der Hauptstimme, die die Noten 
-außerhalb der @code{<< .. >>}-Konstruktion beinhaltet. Lassen wir es
-uns die @emph{simultane Konstruktion} nennen. Bindebögen und Legatobögen
+außerhalb der @code{<< .. >>}-Konstruktion beinhaltet.  Lassen wir es
+uns die @emph{simultane Konstruktion} nennen.  Bindebögen und Legatobögen
 können nur Noten in der selben Stimmen miteinander verbinden und können
-also somit nicht aus der simultanen Konstruktion hinausreichen. Umgekehrt
+also somit nicht aus der simultanen Konstruktion hinausreichen.  Umgekehrt
 gilt, dass parallele Stimmen aus eigenen simultanen Konstruktionen auf
-dem gleichen Notensystem die gleiche Stimme sind. Auch andere, mit dem
+dem gleichen Notensystem die gleiche Stimme sind.  Auch andere, mit dem
 Stimmenkontext verknüpfte Eigenschaften erstrecken sich auf alle
-simultanen Konstrukte. Hier das gleiche Beispiel, aber mit unterschiedlichen Farben für die Notenköpfe der unterschiedlichen Stimmen.
+simultanen Konstrukte.  Hier das gleiche Beispiel, aber mit unterschiedlichen Farben für die Notenköpfe der unterschiedlichen Stimmen.
 Beachten Sie, dass Änderungen in einer Stimme sich nicht auf die anderen
 Stimmen erstrecken, aber sie sind weiterhin in der selben Stimme vorhanden,
-auch noch später im Stück. Beachten Sie auch, dass übergebundene Noten
+auch noch später im Stück.  Beachten Sie auch, dass übergebundene Noten
 über die gleiche Stimme in zwei Konstrukten verteilt werden können, wie
 hier an der blauen Dreieckstimme gezeigt.
 
@@ -802,19 +821,22 @@ Die Befehle @code{\voiceXXXStyle} sind vor allem dazu da, um in
 pädagogischen Dokumenten wie diesem hier angewandt zu werden.
 Sie verändern die Farbe des Notenkopfes, des Halses und des Balkens, und
 zusätzlich die Form des Notenkopfes, damit die einzelnen Stimmen
-einfach auseinander gehalten werden können. Die erste Stimme ist als
+einfach auseinander gehalten werden können.  Die erste Stimme ist als
 rote Raute definiert, die zweite Stimme als blaue Dreiecke, die dritte
 Stimme als grüne Kreise mit Kreuz und die vierte Stimme (die hier nicht
-benutzt wird) hat dunkelrote Kreuze. @code{\voiceNeutralStyle} (hier auch
-nicht benutzt) macht diese Änderungen rückgängig. Später soll gezeigt
+benutzt wird) hat dunkelrote Kreuze.  @code{\voiceNeutralStyle} (hier auch
+nicht benutzt) macht diese Änderungen rückgängig.  Später soll gezeigt
 werden, wie Befehle wie diese vom Benutzer selber erstellt werden 
-können. Siehe auch @ref{Visibility and color of objects} und
+können.  Siehe auch @ref{Visibility and color of objects} und
 @ref{Using variables for tweaks}.
 
+@cindex Polyphonie und relativer Notationsmodus
+@cindex relativer Notationsmodus und Polyphonie
+
 Polyphonie ändert nicht die Verhältnisse der Noten innerhalb eines
-@code{\relative @{ @}}-Blocks. Jede Note wird weiterhin relativ zu 
+@code{\relative @{ @}}-Blocks.  Jede Note wird weiterhin relativ zu 
 der vorherigen Note errechnet, oder relativ zur ersten Note des vorigen
-Akkords. So ist etwa hier
+Akkords.  So ist etwa hier
 
 @example
 \relative c' @{ NoteA << < NoteB NoteC > \\ NoteD >> NoteE @}
@@ -828,7 +850,7 @@ Akkords. So ist etwa hier
 @code{NoteE} bezüglich @code{NoteD}, nicht @code{NoteA} errechnet.
 
 Eine andere Möglichkeit ist, den @code{\relative}-Befehl vor jede
-Stimme zu stellen. Das bietet sich an, wenn die Stimmen weit voneinander
+Stimme zu stellen.  Das bietet sich an, wenn die Stimmen weit voneinander
 entfernt sind.
 
 @example
@@ -842,12 +864,12 @@ entfernt sind.
 @end example
 
 Zum Schluss wollen wir die Stimmen in einem etwas komplizierteren Stück
-analysieren. Hier die Noten der ersten zwei Takte von Chopins
-@notation{Deux Nocturnes}, Op. 32. Dieses Beispiel soll später in diesem
+analysieren.  Hier die Noten der ersten zwei Takte von Chopins
+@notation{Deux Nocturnes}, Op. 32.  Dieses Beispiel soll später in diesem
 und dem nächsten Kapitel benutzt werden, um verschiedene Techniken,
-Notation zu erstellen, zu demonstrieren. Ignorieren Sie deshalb an diesem
+Notation zu erstellen, zu demonstrieren.  Ignorieren Sie deshalb an diesem
 Punkt alles in folgendem Code, das Ihnen seltsam vorkommt, und konzentrieren
-Sie sich auf die Noten und die Stimmen. Die komplizierten Dinge werden
+Sie sich auf die Noten und die Stimmen.  Die komplizierten Dinge werden
 in späteren Abschnitten erklärt werden.
 
 @c The following should appear as music without code
@@ -873,23 +895,23 @@ in späteren Abschnitten erklärt werden.
 @end lilypond
 
 Die Richtung der Hälse wird  oft benutzt, um anzuzeigen, dass zwei 
-gleichzeitige Melodien sich fortsetzen. Hier zeigen die Hälse aller
+gleichzeitige Melodien sich fortsetzen.  Hier zeigen die Hälse aller
 oberen Noten nach oben und die Hälse aller unteren Noten nach unten.
 Das ist der erste Anhaltspunkt, dass mehr als eine Stimme benötigt 
 wird.
 
 Aber die wirkliche Notwendigkeit für mehrere Stimmen tritt erst
 dann auf, wenn unterschiedliche Noten gleichzeitig erklingen, aber
-unterschiedliche Dauern besitzen. Schauen Sie sich die Noten 
-auf dem dritten Schlag im ersten Takt an. Das As ist eine punktierte
-Viertel, das F ist eine Viertel und das Des eine Halbe. Sie können
+unterschiedliche Dauern besitzen.  Schauen Sie sich die Noten 
+auf dem dritten Schlag im ersten Takt an.  Das As ist eine punktierte
+Viertel, das F ist eine Viertel und das Des eine Halbe.  Sie können
 nicht als Akkord geschrieben werden, denn alle Noten in einem Akkord
-besitzen die gleiche Dauer. Sie können aber auch nicht nacheinander
-geschrieben werden, denn sie beginnen auf der gleichen Taktzeit. Dieser
+besitzen die gleiche Dauer.  Sie können aber auch nicht nacheinander
+geschrieben werden, denn sie beginnen auf der gleichen Taktzeit.  Dieser
 Taktabschnitt benötigt drei Stimmen, und normalerweise schreibt man
 drei Stimmen für den ganzen Takt, wie im Beispiel unten zu sehen ist;
 hier sind unterschiedliche Köpfe und Farben für die verschiedenen Stimmen
-eingesetzt. Nocheinmal: der Quellcode für dieses Beispiel wird später 
+eingesetzt.  Nocheinmal: der Quellcode für dieses Beispiel wird später 
 erklärt werden, deshalb ignorieren Sie alles, was Sie hier nicht 
 verstehen können.
 
@@ -921,8 +943,8 @@ verstehen können.
 }
 @end lilypond
 
-Versuchen wir also, diese Musik selber zu notieren. Wie wir sehen 
-werden, beinhaltet das einige Schwierigkeiten. Fangen wir an, wie
+Versuchen wir also, diese Musik selber zu notieren.  Wie wir sehen 
+werden, beinhaltet das einige Schwierigkeiten.  Fangen wir an, wie
 wir es gelernt haben, indem wir mit der @code{<< \\  >>}-Konstruktion
 die drei Stimmen des ersten Taktes notieren:
 
@@ -940,11 +962,14 @@ die drei Stimmen des ersten Taktes notieren:
 @cindex Hals nach oben
 @cindex Notenhals, Richtung
 @cindex Richtung des Notenhalses
+@cindex Notenhalsrichtung
+@cindex Stimmen und Notenhalsrichtung
+@cindex Notenhalsrichtung in Stimmen
 
 Die Richtung des Notenhalses wird automatisch zugewiesen; die ungeraden
-Stimmen tragen Hälse nach oben, die gerade Hälse nach unten. Die Hälse
+Stimmen tragen Hälse nach oben, die gerade Hälse nach unten.  Die Hälse
 für die Stimmen 1 und 2 stimmen, aber die Hälse in der dritten Stimme
-sollen in diesem Beispiel eigentlich nach unten zeigen. Wir können das
+sollen in diesem Beispiel eigentlich nach unten zeigen.  Wir können das
 korrigieren, indem wir die dritte Stimme einfach auslassen und die
 Noten in die vierte Stimme verschieben:
 
@@ -971,16 +996,16 @@ Die Hälse einer Stimme können mit den Hälsen anderer Stimmen kollidieren.
 LilyPond erlaubt Noten in verschiedenen Stimmen sich auf der gleichen
 vertikalen Position zu befinden, wenn die Hälse in entgegengesetzte
 Richtungen zeigen, und positioniert die dritte und vierte Stimme dann
-so, dass Zusammenstöße möglichst vermieden werden. Das funktioniert
+so, dass Zusammenstöße möglichst vermieden werden.  Das funktioniert
 gewöhnlich recht gut, aber in diesem Beispiel sind die Noten der untersten
-Stimme eindeutig standardmäßig schlecht positioniert. LilyPond bietet
+Stimme eindeutig standardmäßig schlecht positioniert.  LilyPond bietet
 verschiedene Möglichkeiten, die horizontale Position von Noten
-anzupassen. Wir sind aber noch nicht so weit, dass wir diese Funktionen
-anwenden könnten. Darum heben wir uns das Problem für einen späteren Abschnitt auf; siehe @code{force-hshift}-Eigenschaft in @ref{Fixing
+anzupassen.  Wir sind aber noch nicht so weit, dass wir diese Funktionen
+anwenden könnten.  Darum heben wir uns das Problem für einen späteren Abschnitt auf; siehe @code{force-hshift}-Eigenschaft in @ref{Fixing
 overlapping notation}.
 
-@seealso
 
+@seealso
 Notationsreferenz: @ruser{Multiple voices}.
 
 
@@ -988,19 +1013,24 @@ Notationsreferenz: @ruser{Multiple voices}.
 @subsection Explicitly instantiating voices
 
 @funindex \voiceOne
+@funindex voiceOne
 @funindex \voiceTwo
+@funindex voiceTwo
 @funindex \voiceThree
+@funindex voiceThree
 @funindex \voiceFour
+@funindex voiceFour
 @funindex \oneVoice
+@funindex oneVoice
 @funindex \new Voice
 @cindex Voice context, erstellen von
 @cindex Stimmenkontexte, erstellen von
 
 Voice-Kontexte können auch manuell innerhalb 
-eines @code{<< >>}-Abschnittes initiiert werden. Mit den Befehlen 
+eines @code{<< >>}-Abschnittes initiiert werden.  Mit den Befehlen 
 @code{\voiceOne} bis hin zu @code{\voiceFour} kann jeder Stimme 
 entsprechendes Verhalten von vertikaler Verschiebung und Richtung 
-von Hälsen und anderen Objekten hinzugefügt werden. In längeren 
+von Hälsen und anderen Objekten hinzugefügt werden.  In längeren 
 Partituren können die Stimmen damit besser auseinander gehalten 
 werden.
 
@@ -1035,14 +1065,16 @@ Beide würden folgendes Notenbild erzeugen:
 >>
 @end lilypond
 
+@cindex Stimmen, mehrere zu einer zusammenführen
+@cindex eine Stimme wiederherstellen
+
 Der @code{\voiceXXX}-Befehl setzt die Richtung von Hälsen, 
-Bögen, Artikulationszeichen, Text, Punktierungen und Fingersätzen. 
- @code{\voiceOne} und @code{\voiceThree} lassen diese Objekte 
- nach oben zeigen, 
- @code{\voiceTwo} und @code{\voiceFour}
+Bögen, Artikulationszeichen, Text, Punktierungen und Fingersätzen.
+@code{\voiceOne} und @code{\voiceThree} lassen diese Objekte
+nach oben zeigen, @code{\voiceTwo} und @code{\voiceFour}
 dagegen lassen sie abwärts zeigen. Diese Befehle erzeugen eine
 horizontale Verschiebung, wenn es erforderlich ist, um Zusammenstöße
-zu vermeiden. Der Befehl 
+zu vermeiden.  Der Befehl 
 @code{\oneVoice} stellt wieder auf das normale Verhalten um.
 
 Schauen wir uns in einigen einfachen Beispielen an, was genau
@@ -1076,15 +1108,15 @@ mit Text, Bögen und Dynamikbezeichnung anstellen:
 
 Schauen wir und nun drei unterschiedliche Arten an, den gleichen
 Abschnitt polyphoner Musik zu notieren, jede Art mit ihren 
-Vorteilen in unterschiedlichen Situationen. Wir benutzen dabei
+Vorteilen in unterschiedlichen Situationen.  Wir benutzen dabei
 das Beispiel vom vorherigen Abschnitt.
 
 Ein Ausdruck, der direkt innerhalb einer @code{<< >>}-Umgebung 
-auftritt, gehört der Hauptstimme an. Das ist nützlich, wenn zusätzliche 
-Stimme auftreten, während die Hauptstimme sich fortsetzt. Hier also 
-eine bessere Version des Beispiels aus dem vorigen Abschnitt. Die 
+auftritt, gehört der Hauptstimme an.  Das ist nützlich, wenn zusätzliche 
+Stimme auftreten, während die Hauptstimme sich fortsetzt.  Hier also 
+eine bessere Version des Beispiels aus dem vorigen Abschnitt.  Die 
 farbigen Kreuz-Notenköpfe zeigen, dass die Hauptstimme sich jetzt in 
-einem einzigen Stimmen (@code{voice})-Kontext befindet. Somit kann ein
+einem einzigen Stimmen (@code{voice})-Kontext befindet.  Somit kann ein
 Phrasierungsbogen ober sie gesetzt werden.
 
 @lilypond[quote,ragged-right,verbatim]
@@ -1115,9 +1147,10 @@ Phrasierungsbogen ober sie gesetzt werden.
 @cindex Verschachteln von musikalischen Ausdrücken
 @cindex Verschachteln von gleichzeitigen Ausdrücken
 @cindex Ausdrücke, Verschachteln von
-
 @cindex Stimmen, temporär
 @cindex Stimmen, Verschachteln von
+@cindex Verschachteln von Stimmen
+@cindex temporäre Stimmen
 
 Tiefer verschachtelte polyphone Konstrukte sind möglich, und
 wenn eine Stimme nur kurz auftaucht, kann das der bessere Weg
@@ -1148,7 +1181,7 @@ sein, Noten zu setzen:
 @cindex Noten verstecken
 
 Diese Methode, neue Stimmen kurzzeitig zu verschachteln, bietet sich
-an, wenn nur sehr kleine Abschnitte polyphonisch gesetzt sind. Wenn
+an, wenn nur sehr kleine Abschnitte polyphonisch gesetzt sind.  Wenn
 aber die ganze Partitur polyphon ist, ist es meistens klarer, direkt
 unterschiedliche Stimmen über die gesamte Partitur hinweg einzusetzen.
 Hierbei kann man mit unsichtbaren Noten dann die Stellen überspringen,
@@ -1179,6 +1212,9 @@ an denen die Stimme nicht auftaucht, wie etwa hier:
 @subsubheading Note columns
 
 @cindex Notenkolumne
+@cindex Notenkollision
+@cindex Zusammenstöße von Noten
+@cindex Kollisionen von Noten
 @cindex Vertikale Position
 @cindex shift-Befehle
 @cindex Verschieben von Noten
@@ -1186,14 +1222,18 @@ an denen die Stimme nicht auftaucht, wie etwa hier:
 @funindex \shiftOn
 @funindex \shiftOnn
 @funindex \shiftOnnn
+@funindex shiftOff
+@funindex shiftOn
+@funindex shiftOnn
+@funindex shiftOnnn
 
 Dicht notierte Noten in einem Akkord, oder Noten auf der gleichen
 Taktzeit aber in unterschiedlichen Stimmen, werden in zwei, manchmal
 auch mehreren Kolumnen getzt, um die Noten am Überschneiden zu 
-hindern. Wir bezeichnen sie als Notenkolumnen. Jede Stimme hat
+hindern.  Wir bezeichnen sie als Notenkolumnen.  Jede Stimme hat
 eine eigene Kolumne, und ein stimmenabhängiger Verschiebunsbefehl (engl.
-shift) wird eingesetzt, wenn eine Kollision auftreten könnte. 
-Das zeigt das Beispiel oben. Im zweiten Takt wird das C der zweiten
+shift) wird eingesetzt, wenn eine Kollision auftreten könnte.  
+Das zeigt das Beispiel oben.  Im zweiten Takt wird das C der zweiten
 Stimme nach rechts verschoben, relativ gesehen zum D der ersten Stimme,
 und im letzten Akkord wird das C der dritten Stimme auch nach 
 rechts verschoben im Verhältnis zu den anderen Stimmen.
@@ -1201,10 +1241,10 @@ rechts verschoben im Verhältnis zu den anderen Stimmen.
 Die Befehle @code{\shiftOn}, @code{\shiftOnn}, @code{\shiftOnnn} und
 @code{\shiftOff} bestimmen den Grad, zu dem Noten und Akkorde
 verschoben werden sollen, wenn sich sonst eine Kollision nicht
-vermeiden ließe. Die Standardeinstellung ist, dass die äußeren
+vermeiden ließe.  Die Standardeinstellung ist, dass die äußeren
 Stimmen (also normalerweise Stimme 1 und 2) @code{\shiftOff}
 eingestellt haben, während für die inneren Stimmen (3 und 4)
-@code{\shiftOn} eingeschaltet ist. Wenn eine Verschiebung
+@code{\shiftOn} eingeschaltet ist.  Wenn eine Verschiebung
 auftritt, werden Stimmen 1 und 3 nach rechts und Stimmen 2 und 4
 nach links verschoben.
 
@@ -1215,7 +1255,7 @@ Zusammenstöße in komplexen Situationen aufzulösen, siehe auch
 
 Eine Notenkolumne kann nur eine Note (oder einen Akkord) von
 einer Stimme mit Hälsen nach oben und eine Note (oder einen
-Akkord) von einer Stimme mit Hälsen nach unten tragen. Wenn
+Akkord) von einer Stimme mit Hälsen nach unten tragen.  Wenn
 Noten von zwei Stimmen mit den Hälsen in die gleiche Richtung
 an der selben Stelle auftreten und in beiden Stimmen ist
 keine Verschiebung oder die gleiche Verschiebungsebene
@@ -1223,8 +1263,8 @@ definiert, wird die Fehlermeldung
 @qq{zu viele kollidierende Notenspalten werden ignoriert}
 ausgegeben.
 
-@seealso
 
+@seealso
 Notationsreferenz: @ruser{Multiple voices}.
 
 
@@ -1238,12 +1278,14 @@ Achtung: Der Gesangstext wird auf Englisch @qq{lyrics} genannt.
 
 @funindex \new Lyrics
 @funindex \lyricsto
+@funindex lyricsto
+@funindex Lyrics
 @cindex Lyrics context, erstellen
 @cindex Gesangtext, Verbindung mit Noten
 
 Wir haben schon den @code{\addlyrics@{@}}-Befehl betrachtet,
-mit dem einfache Partituren gut erstellt werden können. 
-Diese Methode ist jedoch recht eingeschränkt. Wenn der Notensatz
+mit dem einfache Partituren gut erstellt werden können.  
+Diese Methode ist jedoch recht eingeschränkt.  Wenn der Notensatz
 komplexer wird, muss der Gesangstext mit einem neuen
 @code{Lyrics}-Kontext begonnen werden (mit dem Befehl
 @code{\new Lyrics}) und durch den Befehl @code{\lyricsto@{@}}
@@ -1273,6 +1315,7 @@ funktioniert.
 @cindex Text und Balken
 @cindex Balken und Text
 @funindex \autoBeamOff
+@funindex autoBeamOff
 
 Die automatischen Balken, die LilyPond in der Standardeinstellung
 setzt, eignen sich sehr gut für instrumentale Musik, aber nicht
@@ -1283,15 +1326,17 @@ eingesetzt um die automatischen Balken (engl. beam) auszuschalten.
 
 @funindex \new ChoirStaff
 @funindex \lyricmode
+@funindex ChoirStaff
+@funindex lyricmode
 @cindex Vokalpartitur, Aufbau
 @cindex Chorpartitur, Aufbau
 
 Wir wollen das frühere Beispiel von @notation{Judas Maccabæus}
 benutzen, um diese flexiblere Technik für Gesangstexte
-zu illustrieren. Das Beispiel wurde so umgeformt, dass jetzt
+zu illustrieren.  Das Beispiel wurde so umgeformt, dass jetzt
 Variablen eingesetzt werden, um den Text und die Noten
-von der Partiturstruktur zu trennen. Es wurde zusätzlich
-eine Chorpartiturklammer hinzugefügt. Der Gesangtext muss mit
+von der Partiturstruktur zu trennen.  Es wurde zusätzlich
+eine Chorpartiturklammer hinzugefügt.  Der Gesangtext muss mit
 @code{\lyricmode} eingegeben werden, damit er als Text und
 nicht als Noten interpretiert werden kann.
 
@@ -1330,7 +1375,7 @@ SopTwoLyrics = \lyricmode {
 }
 @end lilypond
 
-Dies ist die Grundstruktur für alle Chorpartituren. Mehr
+Dies ist die Grundstruktur für alle Chorpartituren.  Mehr
 Systeme können hinzugefügt werden, wenn sie gebraucht werden, mehr
 Stimmen können zu jedem System hinzugefügt werden, mehr
 Strophen können zum Text hinzugefügt werden, und schließlich
@@ -1339,14 +1384,18 @@ werden, wenn sie zu lang werden sollten.
 
 @cindex Choralnotation
 @cindex Hymnus-Notation
+@cindex SATB-Partitur
+@cindex mehrere Strophen
+@cindex Strophen, mehrere
+@cindex Choral mit mehreren Strophen
 
 Hier ein Beispiel der ersten Zeile eines Chorals mit vier
-Strophen für gemischten Chor. In diesem Fall ist der Text
-für alle vier Stimmen identisch. Beachten Sie, wie die
+Strophen für gemischten Chor.  In diesem Fall ist der Text
+für alle vier Stimmen identisch.  Beachten Sie, wie die
 Variablen eingesetzt werden, um Inhalt (Noten und Text) und Form
-(die Partitur) voneinander zu trennen. Eine Variable wurde
+(die Partitur) voneinander zu trennen.  Eine Variable wurde
 eingesetzt, um die Elemente, die auf beiden Systemen auftauchen,
-aufzunehmen, nämlich Taktart und Tonart. Solch eine 
+aufzunehmen, nämlich Taktart und Tonart.  Solch eine 
 Variable wird oft auch mit @qq{global} bezeichnet.
 
 @lilypond[quote,verbatim]
@@ -1394,14 +1443,14 @@ Stelle ist etwas kompliziert; es braucht etwas Aufmerksamkeit,
 um der Erklärung folgen zu können.
 
 Beginnen wir mit einer @code{score}-Umgebung, in der eine
-Chorpartitur (@code{ChoirStaff}) gesetzt wird. Die Partitur soll
+Chorpartitur (@code{ChoirStaff}) gesetzt wird.  Die Partitur soll
 schließlich mit der eckigen Klammer beginnen.
 Normalerweise bräuchten wir spitze Klammern im Quelltext
 nach dem @code{\new ChoirStaff}, damit die Systeme paralell
 gesetzt werden, aber hier wollen wir diese Parallelsierung
-ja erst nach dem Solo. Also benutzen wir geschweifte Klammern.
+ja erst nach dem Solo.  Also benutzen wir geschweifte Klammern.
 Innerhalb der Chorpartitur erstellen wir zuerst das System, 
-das die Strophe enthält. Es braucht Noten und Text parallel,
+das die Strophe enthält.  Es braucht Noten und Text parallel,
 also setzen wir hier die spitzen Klammern um @code{\new Voice} 
 und @code{\new Lyrics}.
 
@@ -1415,7 +1464,7 @@ versewords = \lyricmode {
   One two three four five six
 }
 \score {
-  \new Choirstaff {
+  \new ChoirStaff {
     \new Staff <<
       \new Voice = "verse" {
         \versenotes \break
@@ -1433,11 +1482,11 @@ Damit erhalten wir die Strophe.
 
 Jetzt soll @notation{refrainA} auf dem selben System gesetzt
 werden, während gleichzeitig in einem neuen System darunter 
-@notation{refrainB} gesetzt wird. Damit die Oberstimme das
+@notation{refrainB} gesetzt wird.  Damit die Oberstimme das
 gleiche System benutzt, muss alles direkt auf den Zeilenumbruchbefehl
 (@code{\break} folgen, innerhalb der @notation{verse}-Stimme.
 Ja, tatsächlich, @emph{innerhalb} der @notation{verse}-Stimme.
-Hier haben wir diese parallele Stelle isoliert. Weitere Systeme
+Hier haben wir diese parallele Stelle isoliert.  Weitere Systeme
 könnten auf die gleiche Weise hinzugefügt werden.
 
 @example
@@ -1515,6 +1564,7 @@ refrainwordsB = \lyricmode {
 
 @cindex book, Benutzung von
 @funindex \book
+@funindex book
 
 Dies ist zwar eine interessante und nützliche Übung um zu
 verstehen, wie sequentielle und parallele Notationsumgebungen
@@ -1580,8 +1630,8 @@ refrainwordsB = \lyricmode {
 }
 @end lilypond
 
-@seealso
 
+@seealso
 Notation Reference: @ruser{Vocal music}.
 
 
@@ -1609,7 +1659,7 @@ vornehmen zu können.
 
 Wenn Noten gesetzt werden, müssen viele Elemente zu der Notenausgabe
 hinzugefügt werden,
-die im Quellcode gar nicht explizit vorkommen. Vergleichen Sie
+die im Quellcode gar nicht explizit vorkommen.  Vergleichen Sie
 etwa den Quellcode und die Notenausgabe des folgenden Beispiels:
 
 @lilypond[quote,verbatim,relative=2,fragment]
@@ -1618,26 +1668,26 @@ cis4 cis2. g4
 
 Der Quellcode ist sehr kurz und knapp, während in der
 Notenausgabe Taktlinien, Vorzeichen, ein Schlüssel und
-eine Taktart hinzugefügt wurden. Während LilyPond
+eine Taktart hinzugefügt wurden.  Während LilyPond
 den Eingabetext @emph{interpretiert}, wird die
 musikalische Information in zeitlicher Reihenfolge
 inspiziert, etwa wie man eine Partitur von links nach
-rechts liest. Während das Programm den Code liest,
+rechts liest.  Während das Programm den Code liest,
 merkt es sich, wo sich Taktgrenzen befinden und
 für welche Tonhöhen Versetzungszeichen gesetzt werden
-müssen. Diese Information muss auf mehreren Ebenen
+müssen.  Diese Information muss auf mehreren Ebenen
 gehandhabt werden, denn Versetzungszeichen etwa
 beziehen sich nur auf ein System, Taktlinien dagegen
 üblicherweise auf die gesamte Partitur.
 
 Innerhalb von LilyPond sind diese Regeln und 
 Informationshappen in @emph{Kontexten} (engl.
-contexts) gruppiert. Wir sind schon auf den
-@code{Voice} (Stimmen)-Kontext gestoßen. Daneben
+contexts) gruppiert.  Wir sind schon auf den
+@code{Voice} (Stimmen)-Kontext gestoßen.  Daneben
 gibt es noch die @code{Staff} (Notensystem-) und
-@code{Score} (Partitur-) Kontexte. Kontexte sind
+@code{Score} (Partitur)-Kontexte.  Kontexte sind
 hierarchisch geschichtet um die hierarchische
-Struktur einer Partitur zu spiegeln. Ein @code{Staff}-Kontext
+Struktur einer Partitur zu spiegeln.  Ein @code{Staff}-Kontext
 kann zum Beispiel viele @code{Voice}-Kontexte beinhalten,
 und ein @code{Score}-Kontext kann viele
 @code{Staff}-Kontexte beinhalten.
@@ -1648,17 +1698,17 @@ und ein @code{Score}-Kontext kann viele
 
 Jeder Kontext hat die Aufgabe, bestimmte Notationsregeln
 zu erzwingen, bestimmte Notationsobjekte zu erstellen und
-verbundene Elemente zu ordnen. Der @code{Voice}-Kontext
+verbundene Elemente zu ordnen.  Der @code{Voice}-Kontext
 zum Beispiel kann eine Vorzeichenregel einführen und der
 @code{Staff}-Kontext hält diese Regel dann aufrecht, um
 einzuordenen, ob ein Versetzungszeichen gesetzt werden
 muss oder nicht.
 
 Ein anderes Beispiel: die Synchronisation der Taktlinien ist
-standardmäßig im @code{Score}-Kontext verankert. Manchmal sollen
+standardmäßig im @code{Score}-Kontext verankert.  Manchmal sollen
 die Systeme einer Partitur aber unterschiedliche Taktarten
 enthalten, etwa in einer polymetrischen Partitur mit 
-4/4- und 3/4-Takt. In diesem Fall müssen also die Standardeinstellungen
+4/4- und 3/4-Takt.  In diesem Fall müssen also die Standardeinstellungen
 der @code{Score}- und @code{Staff}-Kontexte verändert werden.
 
 In einfachen Partituren werden die Kontexte implizit erstellt,
@@ -1666,15 +1716,15 @@ und es kann sein, dass Sie sich dessen gar nicht bewusst sind.
 Für etwas größere Projekte, etwa mit vielen Systemen, müssen
 die Kontexte aber explizit erstellt werden, um sicher zu gehen,
 dass man auch wirklich die erwünschte Zahl an Systemen in der
-richtigen Reihenfolge erhält. Wenn Stücke mit spezialisierter
+richtigen Reihenfolge erhält.  Wenn Stücke mit spezialisierter
 Notation gesetzt werden sollen, ist es üblich, die existierenden
 Kontexte zu verändern oder gar gänzlich neue zu definieren.
 
 Zusätzlich zu den @code{Score,} @code{Staff} und
 @code{Voice}-Kontexten gibt es noch Kontexte, die zwischen
 der Partitur- und Systemebene liegen und Gruppen von Systemen
-kontrollieren. Das sind beispielsweise der 
-@code{PianoStaff} und @code{ChoirStaff}-Kontext. Es gibt zusätzlich
+kontrollieren.  Das sind beispielsweise der 
+@code{PianoStaff} und @code{ChoirStaff}-Kontext.  Es gibt zusätzlich
 alternative Kontexte für Systeme und Stimmen sowie eigene Kontexte
 für Gesangstexte, Perkussion, Griffsymbole, Generalbass usw.
 
@@ -1685,8 +1735,8 @@ begonnen und direkt an das folgende ohne Bindestrich oder Unterstrich
 angeschlossen, etwa 
 @code{GregorianTranscriptionStaff}.
 
-@seealso
 
+@seealso
 Notationreferenz: @ruser{Contexts explained}.
 
 
@@ -1694,20 +1744,21 @@ Notationreferenz: @ruser{Contexts explained}.
 @subsection Creating contexts
 
 @funindex \new
+@funindex new
 @cindex Neue Kontexte
 @cindex Erstellen von Kontexten
 @cindex Kontexte, Erstellen
 
 Es gibt nur einen Kontext der obersten Ebene: der 
-@code{Score}-Kontext. Er wird mit dem @code{\score}-Befehl, 
+@code{Score}-Kontext.  Er wird mit dem @code{\score}-Befehl, 
 oder -- in einfacheren Partituren -- automatisch
 erstellt.
 
 Wenn nur ein System vorhanden ist, kann man es ruhig
 LilyPond überlassen, die @code{Voice}- und @code{Staff}-Kontexte
 zu erstellen, aber für komplexere Partituren ist es notwendig, 
-sie mit einem Befehl zu erstellen. Der einfachste Befehl 
-hierzu ist @code{\new}. Er wird dem musikalischen Ausdruck 
+sie mit einem Befehl zu erstellen.  Der einfachste Befehl 
+hierzu ist @code{\new}.  Er wird dem musikalischen Ausdruck 
 vorangestellt, etwa so:
 
 @example
@@ -1716,7 +1767,7 @@ vorangestellt, etwa so:
 
 @noindent
 wobei @var{Typ} eine Kontextbezeichnung (wie etwa @code{Staff} oder
-@code{Voice}) ist. Dieser Befehl erstellt einen neuen Kontext und
+@code{Voice}) ist.  Dieser Befehl erstellt einen neuen Kontext und
 beginnt, den @var{muskalischen Ausdruck} innherhalb dieses
 Kontexts auszuwerten.
 
@@ -1770,15 +1821,15 @@ Umgebung entweder mit einer geschweiften Klammer (@code{@{})
 oder doppelten spitzen Klammern (@code{<<}) öffnen, mit
 jeweils zwei Leerzeichen, und die entsprechenden 
 schließenden Klammern mit der gleichen Anzahl Leerzeichen
-eingerückt werden. Dies ist nicht erforderlich, es wird aber
+eingerückt werden.  Dies ist nicht erforderlich, es wird aber
 zu einem großen Teil die nicht passenden Klammerpaar-Fehler
-eliminieren und ist darum sehr empfohlen. Es macht es 
+eliminieren und ist darum sehr empfohlen.  Es macht es 
 möglich, die Struktur einer Partitur auf einen Blick zu
 verstehen, und alle nicht passenden Klammern 
-erschließen sich schnell. Beachten Sie auch, dass das
+erschließen sich schnell.  Beachten Sie auch, dass das
 untere Notensystem mit eckigen Klammern erstellt wird,
 denn innerhalb dieses Systems brauchen wir zwei Stimmen,
-um die Noten darzustellen. Das obere System braucht
+um die Noten darzustellen.  Das obere System braucht
 nur einen einzigen musikalischen Ausdruck und ist deshalb
 von geschweiften Klammern umschlossen.)
 
@@ -1796,18 +1847,18 @@ selben Typs zu unterscheiden:
 Beachten Sie den Unterschied zwischen der Bezeichnung des
 Kontexttyps (@code{Staff}, @code{Voice}, usw.) und dem
 Namen, der aus beliebigen Buchstaben bestehen kann
-und vom Benutzer frei erfunden werden kann. Zahlen und 
+und vom Benutzer frei erfunden werden kann.  Zahlen und 
 Leerzeichen können auch benutzt werden, in dem Fall
 muss der Name aber von doppelten Anführungszeichen
 umgeben werden, also etwa  
 @code{\new Staff = "Mein System 1" @var{musikalischer Ausdruck}}.
 Der Name wird
 benutzt, um später auf genau diesen spezifischen Kontext 
-zu verweisen. Dieses Vorgehen wurde schon in dem Abschnitt
+zu verweisen.  Dieses Vorgehen wurde schon in dem Abschnitt
 zu Gesangstexten angewandt, siehe @ref{Voices and vocals}.
 
-@seealso
 
+@seealso
 Notationsreferenz: @ruser{Creating contexts}.
 
 
@@ -1818,7 +1869,7 @@ Notationsreferenz: @ruser{Creating contexts}.
 @cindex Stempel (Engraver)
 
 Jedes Zeichen des fertigen Notensatzes von LilyPond wird
-von einem @code{Engraver} (Stempel) produziert. Es gibt
+von einem @code{Engraver} (Stempel) produziert.  Es gibt
 also einen Engraver, der die Systeme erstellt, einen, der die
 Notenköpfe ausgibt, einen für die Hälse, einen für die
 Balken usw. Insgesamt gibt es über 120 Engraver! Zum
@@ -1826,7 +1877,7 @@ Glück braucht man für die meisten Partituren nur ein
 paar Engraver, und für einfache Partituren muss man eigentlich
 überhaupt nichts über sie wissen.
 
-Engraver leben und wirken aus den Kontexten heraus. Engraver
+Engraver leben und wirken aus den Kontexten heraus.  Engraver
 wie der @code{Metronome_mark_engraver}, dessen Aktion
 und Ausgabe sich auf die gesamte Partitur bezieht, wirken
 in der obersten Kontextebene -- dem @code{Score}-Kontext.
@@ -1843,15 +1894,15 @@ Der @code{Note_heads_engraver} (Notenkopf-Stempel) und der
 
 Jeder Engraver bearbeitet die bestimmten Objekte, die mit
 seiner Funktion assoziiert sind, und verwaltet die Eigenschaften
-dieser Funktion. Diese Eigenschaften, wie etwa die Eigenschaften,
+dieser Funktion.  Diese Eigenschaften, wie etwa die Eigenschaften,
 die mit Kontexten assoziiert sind, können verändert werden,
 um die Wirkungsweise des Engravers oder das Erscheinungsbild
 der von ihm produzierten Elemente in der Partitur zu ändern.
 
 Alle Engraver haben zusammengesetzte Bezeichnung, die aus
-den (englischen) Wörtern ihrer Funktionsweise bestehen. Nur
+den (englischen) Wörtern ihrer Funktionsweise bestehen.  Nur
 das erste Wort hat einen Großbuchstaben, und die restlichen
-Wörter werden mit einem Unterstrich angefügt. Ein
+Wörter werden mit einem Unterstrich angefügt.  Ein
 @code{Staff_symbol_engraver}  verantwortet also die Erstellung
 der Notenlinien, ein @code{Clef_engraver} entscheidet über die
 Art der Notenschlüssel und setzt die entsprechenden Symbole; damit
@@ -1900,22 +1951,24 @@ Es soll später gezeigt werden, wie die LilyPond-Ausgabe
 verändert werden kann, indem die Wirkungsweise der
 Engraver beeinflusst wird.
 
-@seealso
 
+@seealso
 Referenz der Interna: @rinternals{Engravers and Performers}.
 
 
 @node Modifying context properties
 @subsection Modifying context properties
 
-@cindex Kontext-Eigenschaften
+@cindex Kontext-Eigenschaften, Verändern
 @cindex Eigenschaften von Kontexten
 @cindex Verändern von Kontext-Eigenschaften
 @funindex \set
 @funindex \unset
+@funindex set
+@funindex unset
 
 Kontexte sind dafür verantwortlich, die Werte bestimmter
-Kontext-@emph{Eigenschaften} zu speichern. Viele davon
+Kontext-@emph{Eigenschaften} zu speichern.  Viele davon
 können verändert werden, um die Interpretation der
 Eingabe zu beeinflussen und die Ausgabe zu verändern.
 Kontexte werden mit dem @code{\set}-Befehl geändert.
@@ -1928,14 +1981,14 @@ Er wird in Form
 @noindent
 verwendet, wobei @var{KontextBezeichnung} üblicherweise
  @code{Score},
-@code{Staff} oder @code{Voice} ist. Der erste Teil kann auch
+@code{Staff} oder @code{Voice} ist.  Der erste Teil kann auch
 ausgelassen werden; in diesem Fall wird @code{Voice} eingesetzt.
 
 Die Bezeichnung von Kontexten-Eigenschaften besteht
 aus zwei Wörtern, die ohne Unterstrich oder Bindestrich
-verbunden sind. Alle außer dem ersten werden am Anfang
-groß geschrieben. Hier einige Beispiele der gebräuchlichsten
-Kontext-Eigenschaften. Es gibt sehr viel mehr.
+verbunden sind.  Alle außer dem ersten werden am Anfang
+groß geschrieben.  Hier einige Beispiele der gebräuchlichsten
+Kontext-Eigenschaften.  Es gibt sehr viel mehr.
 
 @c attempt to force this onto a new page
 @need 50
@@ -1975,24 +2028,27 @@ Ein boolischer Wert ist entweder wahr  (@code{#t})
 oder falsch (@code{#f}),
 ein Integer eine positive ganze Zahl, eine reale Zahl eine positive
 oder negative Dezimalzahl, und Text wird in doppelte
-Anführungszeichen (Shift+2) eingeschlossen. Beachten Sie
+Anführungszeichen (Shift+2) eingeschlossen.  Beachten Sie
 das Vorkommen des Rautenzeichens
 (@code{#}) an unterschiedlichen Stellen: als Teil eines
 booleschen Wertes vor dem @code{t} oder @code{f}, aber
 auch vor einem @emph{Wert} in der
-@code{\set}-Befehlskette. Wenn ein boolescher Wert
+@code{\set}-Befehlskette.  Wenn ein boolescher Wert
 eingegeben werden soll, braucht man also zwei
 Rautenzeichen, z. B. @code{##t}.
 
+@cindex Eigenschaften in Kontexten
+@cindex Veränderung von Eigenschaften in Kontexten
+
 Bevor eine Eigenschaft geändert werden kann, muss man wissen,
-in welchem Kontext sie sich befindet. Manchmal versteht das
+in welchem Kontext sie sich befindet.  Manchmal versteht das
 sich von selbst, aber in einigen Fällen kann es zunächst
-unverständlich erscheinen. Wenn der falsche Kontext angegeben
+unverständlich erscheinen.  Wenn der falsche Kontext angegeben
 wird, wird keine Fehlermeldung produziert, aber die
 Veränderung wird einfach nicht ausgeführt. 
 @code{instrumentName} befindet sich offensichtlich innerhalb
 von einem @code{Staff}-Kontext, denn das Notensystem soll
-benannt werden. In dem folgenden Beispiel erhält das erste
+benannt werden.  In dem folgenden Beispiel erhält das erste
 System korrekt die Instrumentenbezeichnung, das zweite aber
 nicht, weil der Kontext ausgelassen wurde.
 
@@ -2013,19 +2069,19 @@ Denken Sie daran, dass der Standardkontext @code{Voice} ist; in dem
 zweiten @code{\set}-Befehl wird also die Eigenschaft @code{instrumentName}
 im @code{Voice}-Kontext auf @qq{Alto}, gesetzt, aber weil LilyPond diese
 Eigenschaft nicht im @code{Voice}-Kontext vermutet, passiert einfach
-gar nichts. Das ist kein Fehler, und darum wird auch keine Fehlermeldung
+gar nichts.  Das ist kein Fehler, und darum wird auch keine Fehlermeldung
 prodziert.
 
 Ebenso gibt es keine Fehlermeldung, wenn die Kontext-Bezeichnung
 falsch geschrieben wird und die Änderung also nicht ausgeführt werden
-kann. Tatsächlich kann eine beliebige (ausgedachte) Kontextbezeichnung
+kann.  Tatsächlich kann eine beliebige (ausgedachte) Kontextbezeichnung
 mit dem @code{\set}-Befehl eingesetzt werden, genauso wie die, die
-wirklich existieren. Aber wenn LilyPond diese Bezeichnung nicht
-zuordnen kann, bewirkt der Befehl einfach gar nichts. Manche Editoren,
+wirklich existieren.  Aber wenn LilyPond diese Bezeichnung nicht
+zuordnen kann, bewirkt der Befehl einfach gar nichts.  Manche Editoren,
 die Unterstützung für LilyPond-Befehle mitbringen, markieren existierende
 Kontextbezeichnungen mit einem Punkt, wenn man mit der Maus darüber
 fährt (wie etwa JEdit mit dem LilyPondTool), oder markieren
-unbekannte Bezeichnungen anders (wie ConTEXT). Wenn Sie keinen
+unbekannte Bezeichnungen anders (wie ConTEXT).  Wenn Sie keinen
 Editor mit LilyPond-Unterstützung einsetzen, wird empfohlen, die
 Bezeichnungen in der Interna-Referenz zu überprüfen: siehe 
 @rinternals{Tunable context properties}, oder
@@ -2033,11 +2089,11 @@ Bezeichnungen in der Interna-Referenz zu überprüfen: siehe
 
 Die Eigenschaft @code{instrumentName} wird erst aktiv, wenn sie
 ineinem @code{Staff}-Kontext gesetzt wird, aber manche Eigenschaften
-können in mehr als einem Kontext benutzt werden. Als Beispiel mag die
+können in mehr als einem Kontext benutzt werden.  Als Beispiel mag die
 @code{extraNatural}-Eigenschaft dienen, die zusätzliche Erniedrigungszeichen
-setzt. Die Standardeinstellung ist ##t (wahr) in allen Systemen.
+setzt.  Die Standardeinstellung ist ##t (wahr) in allen Systemen.
 Wenn sie nur in einem @code{Staff} (Notensystem) auf ##f (falsch) 
-gesetzt wird, wirkt sie sich auf alle Noten in diesem System aus. Wird
+gesetzt wird, wirkt sie sich auf alle Noten in diesem System aus.  Wird
 sie dagegen in der @code{Score}-Umgebung gesetzt, wirkt sich das
 auf alle darin enthaltenen Systeme aus.
 
@@ -2085,9 +2141,9 @@ denn ein neues @code{\set} erledigt alles, was man braucht.
 Die @code{\set}- und @code{\unset}-Befehle könne überall im
 Eingabequelltext erscheinen und werden aktiv von dem Moment, an
 dem sie auftreten bis zum Ende der Partitur oder bis die Eigenschaft
-mit @code{\set} oder @code{\unset} neu gesetzt wird. Versuchen
+mit @code{\set} oder @code{\unset} neu gesetzt wird.  Versuchen
 wir als Beispiel, die Schriftgröße mehrmals zu ändern, was sich unter anderem
-auf die Notenköpfe auswirkt. Die Änderung bezieht sich immer auf den Standard,
+auf die Notenköpfe auswirkt.  Die Änderung bezieht sich immer auf den Standard,
 nicht vom letzten gesetzten Wert.
 
 @lilypond[quote,verbatim,ragged-right,relative=1,fragment]
@@ -2104,27 +2160,28 @@ a b
 @end lilypond
 
 Wir haben jetzt gesehen, wie sich die Werte von unterschiedlichen
-Eigenschaften ändern lassen. Beachten Sie, dass Integre und
+Eigenschaften ändern lassen.  Beachten Sie, dass Integre und
 Zahlen immer mit einem Rautenzeichen beginnen, während
 die Werte wahr und falsch (mit @code{##t} und @code{##f}
-notiert) immer mit zwei Rauten beginnen. Eine Eigenschaft, die
+notiert) immer mit zwei Rauten beginnen.  Eine Eigenschaft, die
 aus Text besteht, muss in doppelte Anführungsstriche gesetzt werden,
 auch wenn wir später sehen werden, dass Text auf eine sehr viel
 allgmeinere und mächtigere Art mit dem @code{markup}-Befehl
 eingegeben werden kann.
 
-@unnumberedsubsubsec Setting context properties with @code{\with}
+@subsubheading Setting context properties with @code{\with}
 
 @funindex \with
+@funindex with
 @cindex Kontexteigenschaft, setzen mit \with
 
 Kontexteigenschaften können auch gesetzt werden, wenn der Kontext
-erstellt wird. Das ist in manchen Fällen eine deutlichere Art,
+erstellt wird.  Das ist in manchen Fällen eine deutlichere Art,
 eine Eigenschaft zu bestimmen, die für die gesamte Partitur
-erhalten bleichen soll. Wenn ein Kontext mit einem
+erhalten bleichen soll.  Wenn ein Kontext mit einem
 @code{\new}-Befehl erstellt wird, dem direkt eine
 @code{\with @{ .. @}}-Umgebung folgt, können hier die
-Eigenschaften bestimmt werden. Wenn also die zusätzlichen
+Eigenschaften bestimmt werden.  Wenn also die zusätzlichen
 Auflösungszeichen für eine ganze Partitur gelten sollen, könnte
 man schreiben:
 
@@ -2152,26 +2209,34 @@ Eigenschaften, die auf diese Arte gesetzt werden, können immer noch
 dynamisch mit dem @code{\set}-Befehl geändert werden und mit
 @code{\unset} auf ihre Standardeinstellungen zurückgesetzt werden.
 
-Die @code{fontSize}-Eigenschaft wird anders behandelt. Wenn sie mit
+@cindex Schriftgröße, Standardeinstellung
+@cindex fontSize (Schriftgröße), Standardeinstellung
+
+Die @code{fontSize}-Eigenschaft wird anders behandelt.  Wenn sie mit
 einer @code{\with}-Umgebung gesetzt wird, wird die Standardschriftgröße
-neu gesetzt. Wenn die Schriftgröße später mit @code{\set} verändert
+neu gesetzt.  Wenn die Schriftgröße später mit @code{\set} verändert
 wird, kann dieser neue Standardwert mit dem Befehl
 @code{\unset fontSize} erreicht werden.
 
-@unnumberedsubsubsec Setting context properties with @code{\context}
+@subsubheading Setting context properties with @code{\context}
+
+@cindex Kontexteigenschaften, mit \context setzen
+@cindex Eigenschaften von Kontexten, mit \context setzen
+@funindex \context
+@funindex context
 
 Die Werte von Kontext-Eigenschaften können in @emph{allen} Kontexten
 eines bestimmten Typs (etwa alle @code{Staff}-Kontexte) 
-gleichzeitig mit einem Befehl gesetzt werden. Der Kontext wird
+gleichzeitig mit einem Befehl gesetzt werden.  Der Kontext wird
 spezifieziert, indem seine Bezeichnung benutzt wird, also etwa 
-@code{Staff}, mit einem Backslash davor: @code{\Staff}. Der Befehl
+@code{Staff}, mit einem Backslash davor: @code{\Staff}.  Der Befehl
 für die Eigenschaft ist der gleiche, wie er auch in der 
-@code{\with}-Konstruktion benutzt wird, wie oben gezeigt. Er wird in
+@code{\with}-Konstruktion benutzt wird, wie oben gezeigt.  Er wird in
 eine @code{\context}-Umgebung eingebettet, welche wiederum innerhalb
-von einer @code{\layout}-Umgebung steht. Jede @code{\context}-Umgebung
+von einer @code{\layout}-Umgebung steht.  Jede @code{\context}-Umgebung
 wirkt sich auf alle Kontexte dieses Types aus, welche sich in der
 aktuellen Partitur befinden (d. h. innherhalb einer @code{\score}-
-oder @code{\book}-Umgebung. Hier ist ein Beispiel, wie man diese
+oder @code{\book}-Umgebung.  Hier ist ein Beispiel, wie man diese
 Funktion anwendet:
 
 @lilypond[verbatim,quote]
@@ -2196,8 +2261,8 @@ bestimmten Kontexte überschrieben werden, indem die
 @code{\with}-Konstruktion eingesetzt wird, oder mit @code{\set}-Befehlen
 innerhalb der aktuellen Noten.
 
-@seealso
 
+@seealso
 Notationsreferenz:
 @ruser{Changing context default settings}.
 @c FIXME
@@ -2219,16 +2284,19 @@ Referenz der Interna:
 
 @funindex \consists
 @funindex \remove
+@funindex consists
+@funindex remove
 
 Wir haben gesehen, dass jeder Kontext eine Anzahl an Engravern
 (Stempeln) beinhaltet, von denen ein jeder einen bestimmten
 Teil des fertigen Notensatzes produziert, wie z. B. Taktlinien,
 Notenlinien, Notenköpfe, Hälse usw. Wenn ein Engraver aus
 einem Kontext entfernt wird, kann er seine Objekte nicht
-länger produzieren. Das ist eine eher grobe Methode, die
+länger produzieren.  Das ist eine eher grobe Methode, die
 Notenausgabe zu beeinflussen, aber es kann von großem
 Nutzen sein.
 
+
 @subsubheading Changing a single context
 
 Um einen Engraver von einem einzelnen Kontext zu entfernen,
@@ -2237,7 +2305,7 @@ den Befehl zur Kontext-Erstellung geschrieben, wie
 in dem vorigen Abschnitt gezeigt.
 
 Als ein Beispiel wollen wir das Beispiel aus dem letzten
-Abschnitt produzieren, aber die Notenlinien entfernen. Erinnern
+Abschnitt produzieren, aber die Notenlinien entfernen.  Erinnern
 Sie sich, dass die Notenlinien vom @code{Staff_symbol_engraver}
 erstellt werden.
 
@@ -2259,19 +2327,19 @@ erstellt werden.
 @cindex Ambitus-Engraver
 
 Engraver können auch zu einem bestimmten
-Kontext hinzugefügt werden. Dies geschieht
+Kontext hinzugefügt werden.  Dies geschieht
 mit dem Befehl
 
 @code{\consists @var{Engraver_bezeichnung}}
 
 @noindent
 welcher auch wieder innerhalb der @code{\with}-Umgebung
-gesetzt wird. Einige Chorpartituren zeigen einen
+gesetzt wird.  Einige Chorpartituren zeigen einen
 Ambitus direkt zu Beginn der ersten Notenzeile, um
 den Stimmumfang des Stückes anzuzeigen, siehe auch
-@rglos{ambitus}. Der Ambitus wird vom
+@rglos{ambitus}.  Der Ambitus wird vom
 @code{Ambitus_engraver} erstellt, der normalerweise
-in keinem Kontext enthalten ist. Wenn wir
+in keinem Kontext enthalten ist.  Wenn wir
 ihn zum @code{Voice}-Kontext hinzufügen, errechnet
 er automatisch den Stimmumfang für diese einzelne Stimme 
 und zeigt ihn an:
@@ -2316,16 +2384,17 @@ Stimmen in diesem Notensystem errechnet:
 >>
 @end lilypond
 
+
 @subsubheading Changing all contexts of the same type
 
 @funindex \layout
 
 Die vorigen Beispiele zeigen, wie man Engraver in einem
-bestimmten Kontext hinzufügen oder entfernen kann. Es ist
+bestimmten Kontext hinzufügen oder entfernen kann.  Es ist
 auch möglich, Engraver in jedem Kontext eines bestimmten
-Typs hinzuzufügen oder zu entfernen. Dazu werden die
+Typs hinzuzufügen oder zu entfernen.  Dazu werden die
 Befehle in dem entsprechenden Kontext in einer
-@code{\layout}-Umgebung gesetzt. Wenn wir also z. B. 
+@code{\layout}-Umgebung gesetzt.  Wenn wir also z. B. 
 den Ambitus für jedes Notensystem in einer Partitur 
 mit vier Systemen anzeigen wollen, könnte das so aussehen:
 
@@ -2362,8 +2431,8 @@ alle Kontexte eines bestimmten Typs auf die gleiche
 Weise geändert werden, indem der @code{\set}-Befehl in
 einer @code{\context}-Umgebung angewendet wird.
 
-@seealso
 
+@seealso
 Notationsreferenz: @ruser{Modifying context plug-ins},
 @ruser{Changing context default settings}.
 
@@ -2373,11 +2442,11 @@ Notationsreferenz: @ruser{Modifying context plug-ins},
 
 Sie haben sich durch die Übung gearbeitet, Sie
 wissen jetzt, wie Sie Notensatz produzieren, und Sie
-haben die grundlegenden Konzepte verstanden. Aber wie
+haben die grundlegenden Konzepte verstanden.  Aber wie
 erhalten Sie genau die Systeme, die Sie brauchen? Es
 gibt eine ganze Anzahl an fertigen Vorlagen
 (siehe @ref{Templates}), mit denen Sie beginnen 
-können. Aber was, wenn Sie nicht genau das finden,
+können.  Aber was, wenn Sie nicht genau das finden,
 was Sie brauchen? Lesen Sie weiter.
 
 @menu
@@ -2386,15 +2455,17 @@ was Sie brauchen? Lesen Sie weiter.
 * Building a score from scratch::
 @end menu
 
+
 @node Soprano and cello
 @subsection Soprano and cello
 
 @cindex Template, Verändern von
 @cindex Vorlage, Verändern von
+@cindex Veränderung von Vorlagen
 
 Beginnen Sie mit der Vorlage, die Ihren Vorstellungen
-am nächsten kommt. Nehmen wir einmal an, Sie wollen
-ein Stück für Sopran und Cello schreiben. In diesem 
+am nächsten kommt.  Nehmen wir einmal an, Sie wollen
+ein Stück für Sopran und Cello schreiben.  In diesem 
 Fall könnten Sie mit der Vorlage @qq{Noten und Text} 
 (für die Sopran-Stimme) beginnen.
 
@@ -2424,7 +2495,7 @@ text = \lyricmode @{
 @}
 @end example
 
-Jetzt wollen wir die Cello-Stimme hinzufügen. Schauen wir uns das
+Jetzt wollen wir die Cello-Stimme hinzufügen.  Schauen wir uns das
 Beispiel @qq{Nur Noten} an:
 
 @example
@@ -2443,24 +2514,24 @@ melody = \relative c' @{
 @}
 @end example
 
-Wir brauchen den @code{\version}-Befehl nicht zweimal. Wir
-brauchen aber den @code{melody}-Abschnitt. Wir wollen 
+Wir brauchen den @code{\version}-Befehl nicht zweimal.  Wir
+brauchen aber den @code{melody}-Abschnitt.  Wir wollen 
 keine zwei @code{\score} (Partitur)-Abschnitte -- mit zwei
 @code{\score}-Abschnitten würden wir zwei Stimmen
-getrennt voneinander erhalten. In diesem Fall wollen wir
-sie aber zusammen, als Duett. Schließlich brauchen wir 
+getrennt voneinander erhalten.  In diesem Fall wollen wir
+sie aber zusammen, als Duett.  Schließlich brauchen wir 
 innerhalb des @code{\score}-Abschnittes nur einmal die
 Befehle @code{\layout} und @code{\midi}.
 
 Wenn wir jetzt einfach zwei @code{melody}-Abschnitte in 
 unsere Datei kopieren würden, hätten wir zwei @code{melody}-Variable.
 Das würde zu keinem Fehler führen, aber die zweite von ihnen
-würde für beide Melodien eingesetzt werden. Wir müssen
+würde für beide Melodien eingesetzt werden.  Wir müssen
 ihnen also andere Bezeichnungen zuweisen, um sie voneinander
-zu unterscheiden. Nennen wir die Abschnitte also @code{sopranoMusic}
-für den Sopran und @code{celloMusic} für die Cellostimme. Wenn
+zu unterscheiden.  Nennen wir die Abschnitte also @code{SopranNoten}
+für den Sopran und @code{CelloNoten} für die Cellostimme.  Wenn
 wir schon dabei sind, können wir @code{text}auch nach
-@code{sopranoLyrics} umbenennen. Denken Sie daran, beide
+@code{SoprText} umbenennen.  Denken Sie daran, beide
 Vorkommen der Bezeichnung zu ändern: einmal die Definition
 gleich am Anfang (@code{melody = \relative c' @{ }) und
 dann auch noch die Benutzung der Variable innerhalb des
@@ -2472,18 +2543,18 @@ Wir ändern auch die Noten etwas ab.
 
 @example
 \version @w{"@version{}"}
-sopranoMusic = \relative c' @{
+SopranNoten = \relative c' @{
   \clef treble
   \key c \major
   \time 4/4
   a4 b c d
 @}
 
-sopranoLyrics = \lyricmode @{
+SoprText = \lyricmode @{
   Aaa Bee Cee Dee
 @}
 
-celloMusic = \relative c @{
+CelloNoten = \relative c @{
   \clef bass
   \key c \major
   \time 4/4
@@ -2492,11 +2563,11 @@ celloMusic = \relative c @{
 
 \score @{
   <<
-    \new Voice = "one" @{
+    \new Voice = "eins" @{
       \autoBeamOff
-      \sopranoMusic
+      \SopranNoten
     @}
-    \new Lyrics \lyricsto "one" \sopranoLyrics
+    \new Lyrics \lyricsto "eins" \Soprantext
   >>
   \layout @{ @}
   \midi @{ @}
@@ -2505,20 +2576,20 @@ celloMusic = \relative c @{
 
 Das sieht schon vielversprechend aus, aber die Cello-Stimme 
 erscheint noch nicht im Notensatz -- wir haben vergessen,
-sie in den @code{\score}-Abschnitt einzufügen. Wenn die
+sie in den @code{\score}-Abschnitt einzufügen.  Wenn die
 Cello-Stimme unterhalb des Soprans erscheinen soll, müssen
 wir
 
 @example
-\new Staff \celloMusic
+\new Staff \CelloNoten
 @end example
 
 @noindent
-unter dem Befehl für den Sopran hinzufügen. Wir brauchen auch
+unter dem Befehl für den Sopran hinzufügen.  Wir brauchen auch
 die spitzen Klammern (@code{<<} und @code{>>}) um die
 Noten, denn damit wird LilyPond mitgeteilt, dass mehr als
 ein Ereignis gleichzeitig stattfindet (in diesem Fall sind es
-zwei @code{Staff}-Instanzen). Der @code{\score}-Abschnitt
+zwei @code{Staff}-Instanzen).  Der @code{\score}-Abschnitt
 sieht jetzt so aus:
 
 @c Indentation in this example is deliberately poor
@@ -2526,13 +2597,13 @@ sieht jetzt so aus:
 \score @{
   <<
   <<
-    \new Voice = "one" @{
+    \new Voice = "eins" @{
       \autoBeamOff
-      \sopranoMusic
+      \SopranNoten
     @}
-    \new Lyrics \lyricsto "one" \sopranoLyrics
+    \new Lyrics \lyricsto "eins" \SoprText
   >>
-  \new Staff \celloMusic
+  \new Staff \CelloNoten
   >>
   \layout @{ @}
   \midi @{ @}
@@ -2541,7 +2612,7 @@ sieht jetzt so aus:
 
 @noindent
 Das sieht etwas unschön aus, vor allem die Einrückung stimmt
-nicht mehr. Das können wir aber schnell in Ordnung bringen.
+nicht mehr.  Das können wir aber schnell in Ordnung bringen.
 Hier also die gesamte Vorlage für Sopran und Cello:
 
 @lilypond[quote,verbatim,ragged-right,addversion]
@@ -2579,6 +2650,7 @@ celloMusic = \relative c {
 }
 @end lilypond
 
+
 @seealso
 Die Vorlagen, mit denen wir begonnen haben, können im
 Anhang @qq{Vorlagen} gefunden werden, siehe
@@ -2598,7 +2670,7 @@ mit Orchesterbegleitung (wie etwa Mendelssohns @notation{Elias}
 oder Händels @notation{Messias})  sind so aufgebaut, dass
 für jede der vier Stimmen ein eigenes System besteht und
 die Orchesterbegleitung dann als Klavierauszug darunter
-notiert wird. Hier ein Beispiel aus Händels @notation{Messias}:
+notiert wird.  Hier ein Beispiel aus Händels @notation{Messias}:
 
 @c The following should appear as music without code
 @lilypond[quote,ragged-right]
@@ -2644,29 +2716,29 @@ lower = \relative c, {
   <<  % combine ChoirStaff and PianoStaff in parallel
     \new ChoirStaff <<
       \new Staff = "sopranos" <<
-        \set Staff.instrumentName = "Soprano"
+        \set Staff.instrumentName = #"Soprano"
         \new Voice = "sopranos" { \global \sopranoMusic }
       >>
       \new Lyrics \lyricsto "sopranos" { \sopranoWords }
       \new Staff = "altos" <<
-        \set Staff.instrumentName = "Alto"
+        \set Staff.instrumentName = #"Alto"
         \new Voice = "altos" { \global \altoMusic }
       >>
       \new Lyrics \lyricsto "altos" { \altoWords }
       \new Staff = "tenors" <<
-        \set Staff.instrumentName = "Tenor"
+        \set Staff.instrumentName = #"Tenor"
         \new Voice = "tenors" { \global \tenorMusic }
       >>
       \new Lyrics \lyricsto "tenors" { \tenorWords }
       \new Staff = "basses" <<
-        \set Staff.instrumentName = "Bass"
+        \set Staff.instrumentName = #"Bass"
         \new Voice = "basses" { \global \bassMusic }
       >>
       \new Lyrics \lyricsto "basses" { \bassWords }
     >>  % end ChoirStaff
 
     \new PianoStaff <<
-      \set PianoStaff.instrumentName = "Piano"
+      \set PianoStaff.instrumentName = #"Piano"
       \new Staff = "upper" \upper
       \new Staff = "lower" \lower
     >>
@@ -2674,25 +2746,25 @@ lower = \relative c, {
 }
 @end lilypond
 
-Keine der Vorlage bietet diesen Aufbau direkt an. Die Vorlage, die
+Keine der Vorlage bietet diesen Aufbau direkt an.  Die Vorlage, die
 am nächsten daran liegt, ist @qq{SATB-Partitur und automatischer 
-Klavierauszug}, siehe @ref{Vocal ensembles}. Wir müssen diese
+Klavierauszug}, siehe @ref{Vocal ensembles}.  Wir müssen diese
 Vorlage aber so anpassen, dass die Noten für das Klavier nicht
-automatisch aus dem Chorsatz generiert werden. Die Variablen
+automatisch aus dem Chorsatz generiert werden.  Die Variablen
 für die Noten und den Text des Chores sind in Ordnung, wir
 müssen nun noch Variablen für die Klaviernoten hinzufügen.
 
 Die Reihenfolge, in welcher die Variablen in das Chorsystem
 (@code{ChoirStaff}) eingefügt werden, entspricht nicht der
-in dem Beispiel oben. Wir wollen sie so sortieren, dass die
+in dem Beispiel oben.  Wir wollen sie so sortieren, dass die
 Texte jeder Stimme direkt unter den Noten notiert werden.
 Alle Stimmen sollten als @code{\voiceOne} notiert werden,
 welches die Standardeinstellung ist; wir können also die 
-@code{\voiceXXX}-Befehle entfernen. Wir müssen auch noch
-den Schlüssel für den Tenor ändern. Die Methode, mit der
+@code{\voiceXXX}-Befehle entfernen.  Wir müssen auch noch
+den Schlüssel für den Tenor ändern.  Die Methode, mit der
 der Text den Stimmen zugewiesen wird, ist uns noch nicht 
 bekannt, darum wollen wir sie umändern auf die Weise, die
-wir schon kennen. Wir fügen auch noch Instrumentbezeichnungen
+wir schon kennen.  Wir fügen auch noch Instrumentbezeichnungen
 zu den Systemen hinzu.
 
 Damit erhalten wir folgenden @code{ChoirStaff}:
@@ -2700,26 +2772,26 @@ Damit erhalten wir folgenden @code{ChoirStaff}:
 @example
     \new ChoirStaff <<
       \new Staff = "sopranos" <<
-        \set Staff.instrumentName = "Soprano"
-        \new Voice = "sopranos" @{ \global \sopranoMusic @}
+        \set Staff.instrumentName = #"Soprano"
+        \new Voice = "sopranos" @{ \global \SopranNoten @}
       >>
-      \new Lyrics \lyricsto "sopranos" @{ \sopranoWords @}
+      \new Lyrics \lyricsto "sopranos" @{ \SopranText @}
       \new Staff = "altos" <<
-        \set Staff.instrumentName = "Alto"
-        \new Voice = "altos" @{ \global \altoMusic @}
+        \set Staff.instrumentName = #"Alto"
+        \new Voice = "altos" @{ \global \AltNoten @}
       >>
-      \new Lyrics \lyricsto "altos" @{ \altoWords @}
+      \new Lyrics \lyricsto "altos" @{ \AltText @}
       \new Staff = "tenors" <<
-        \set Staff.instrumentName = "Tenor"
-        \new Voice = "tenors" @{ \global \tenorMusic @}
+        \set Staff.instrumentName = #"Tenor"
+        \new Voice = "tenors" @{ \global \TenorNoten @}
       >>
-      \new Lyrics \lyricsto "tenors" @{ \tenorWords @}
+      \new Lyrics \lyricsto "tenors" @{ \TenorText @}
       \new Staff = "basses" <<
-        \set Staff.instrumentName = "Bass"
-        \new Voice = "basses" @{ \global \bassMusic @}
+        \set Staff.instrumentName = #"Bass"
+        \new Voice = "basses" @{ \global \BassNoten @}
       >>
-      \new Lyrics \lyricsto "basses" @{ \bassWords @}
-    >>  % end ChoirStaff
+      \new Lyrics \lyricsto "basses" @{ \BassText @}
+    >>  % Ende ChoirStaff
 @end example
 
 Als nächstes müssen wir das Klaviersystem bearbeiten.
@@ -2728,47 +2800,47 @@ aus der @qq{Piano solo}-Vorlage:
 
 @example
 \new PianoStaff <<
-  \set PianoStaff.instrumentName = "Piano  "
-  \new Staff = "upper" \upper
-  \new Staff = "lower" \lower
+  \set PianoStaff.instrumentName = #"Piano  "
+  \new Staff = "oben" \oben
+  \new Staff = "unten" \unten
 >>
 @end example
 
 @noindent
-und fügen die Variablen @code{upper}
-und @code{lower} hinzu.
+und fügen die Variablen @code{oben}
+und @code{unten} hinzu.
 
 Das Chorsystem und das Pianosystem müssen mit
 spitzen Klammern kombiniert werden, damit beide
 übereinandern erscheinen:
 
 @example
-<<  % combine ChoirStaff and PianoStaff one above the other
+<<  % ChoirStaff und PianoStaff parallel kombinieren
   \new ChoirStaff <<
     \new Staff = "sopranos" <<
-      \new Voice = "sopranos" @{ \global \sopranoMusic @}
+      \new Voice = "sopranos" @{ \global \SopranNoten @}
     >>
-    \new Lyrics \lyricsto "sopranos" @{ \sopranoWords @}
+    \new Lyrics \lyricsto "sopranos" @{ \SopranText @}
     \new Staff = "altos" <<
-      \new Voice = "altos" @{ \global \altoMusic @}
+      \new Voice = "altos" @{ \global \AltNoten @}
     >>
-    \new Lyrics \lyricsto "altos" @{ \altoWords @}
+    \new Lyrics \lyricsto "altos" @{ \AltText @}
     \new Staff = "tenors" <<
-      \clef "G_8"  % tenor clef
-      \new Voice = "tenors" @{ \global \tenorMusic @}
+      \clef "G_8"  % Tenorschlüssel
+      \new Voice = "tenors" @{ \global \TenorNoten @}
     >>
-    \new Lyrics \lyricsto "tenors" @{ \tenorWords @}
+    \new Lyrics \lyricsto "tenors" @{ \TenorText @}
     \new Staff = "basses" <<
       \clef "bass"
-      \new Voice = "basses" @{ \global \bassMusic @}
+      \new Voice = "basses" @{ \global \BassNoten @}
     >>
-    \new Lyrics \lyricsto "basses" @{ \bassWords @}
-  >>  % end ChoirStaff
+    \new Lyrics \lyricsto "basses" @{ \BassText @}
+  >>  % Ende ChoirStaff
 
   \new PianoStaff <<
-    \set PianoStaff.instrumentName = "Piano"
-    \new Staff = "upper" \upper
-    \new Staff = "lower" \lower
+    \set PianoStaff.instrumentName = #"Piano"
+    \new Staff = "oben" \oben
+    \new Staff = "unten" \unten
   >>
 >>
 @end example
@@ -2819,29 +2891,29 @@ lower = \relative c, {
   <<  % combine ChoirStaff and PianoStaff in parallel
     \new ChoirStaff <<
       \new Staff = "sopranos" <<
-        \set Staff.instrumentName = "Soprano"
+        \set Staff.instrumentName = #"Soprano"
         \new Voice = "sopranos" { \global \sopranoMusic }
       >>
       \new Lyrics \lyricsto "sopranos" { \sopranoWords }
       \new Staff = "altos" <<
-        \set Staff.instrumentName = "Alto"
+        \set Staff.instrumentName = #"Alto"
         \new Voice = "altos" { \global \altoMusic }
       >>
       \new Lyrics \lyricsto "altos" { \altoWords }
       \new Staff = "tenors" <<
-        \set Staff.instrumentName = "Tenor"
+        \set Staff.instrumentName = #"Tenor"
         \new Voice = "tenors" { \global \tenorMusic }
       >>
       \new Lyrics \lyricsto "tenors" { \tenorWords }
       \new Staff = "basses" <<
-        \set Staff.instrumentName = "Bass"
+        \set Staff.instrumentName = #"Bass"
         \new Voice = "basses" { \global \bassMusic }
       >>
       \new Lyrics \lyricsto "basses" { \bassWords }
     >>  % end ChoirStaff
 
     \new PianoStaff <<
-      \set PianoStaff.instrumentName = "Piano  "
+      \set PianoStaff.instrumentName = #"Piano  "
       \new Staff = "upper" \upper
       \new Staff = "lower" \lower
     >>
@@ -2855,13 +2927,16 @@ lower = \relative c, {
 
 @cindex Template, eigene schreiben
 @cindex Vorlagen, eigene schreiben
+@cindex eigene Vorlagen erstellen
+@cindex Erstellen von eigenen Vorlagen
+@cindex Schreiben von eigenen Vorlagen
 
 Wenn Sie einige Fertigkeit im Schreiben von LilyPond-Code
 gewonnen haben, werden Sie vielleicht feststellen, dass es
 manchmal einfacher ist, von Grund auf anzufangen, anstatt
-die fertigen Vorlagen zu verändern. Auf diese Art könne Sie
+die fertigen Vorlagen zu verändern.  Auf diese Art könne Sie
 auch Ihren eigenen Stil entwickeln, und ihn der Musik anpassen,
-die Sie notieren wollen. Als Beispiel wollen wir demonstrieren,
+die Sie notieren wollen.  Als Beispiel wollen wir demonstrieren,
 wie man die Partitur für ein Orgelpreludium von Grund auf
 konstruiert.
 
@@ -2869,15 +2944,15 @@ Beginnen wir mit dem Kopf, dem @code{header}-Abschnitt.
 Hier notieren wir den Titel, den Namen des Komponisten usw.
 Danach schreiben wir die einzelnen Variablen auf und
 schließlich am Ende die eigentliche Partitur, den
-@code{\score}-Abschnitt. Beginnen wir mit einer groben
+@code{\score}-Abschnitt.  Beginnen wir mit einer groben
 Struktur, in die wir dann die Einzelheiten nach und nach
 eintragen.
 
 Als Beispiel benutzen wir zwei Takte aus dem Orgelpreludium
 @notation{Jesu, meine Freude} von J. S. Bach, notiert
-für zwei Manuale und Pedal. Sie können die Noten am Ende
-dieses Abschnittes sehen. Das obere Manual trägt zwei Stimmen,
-das untere und das Pedalsystem jeweils nur eine. Wir 
+für zwei Manuale und Pedal.  Sie können die Noten am Ende
+dieses Abschnittes sehen.  Das obere Manual trägt zwei Stimmen,
+das untere und das Pedalsystem jeweils nur eine.  Wir 
 brauchen also vier Variablen für die Noten und eine, um
 Taktart und Tonart zu definieren.
 
@@ -2903,8 +2978,8 @@ Die Noten werden später hinzugefügt.
 
 Als nächstes schauen wir uns an, was in die
 Partitur (die @code{\score}-Umgebung)
-kommt. Dazu wird einfach die Notensystemstruktur
-konstruiert, die wir benötigen. Orgelmusik
+kommt.  Dazu wird einfach die Notensystemstruktur
+konstruiert, die wir benötigen.  Orgelmusik
 wird meistens auf drei Systemen notiert, eins
 für jedes Manual und ein drittes für die Pedalnoten.
 Die Systeme für die Manuale werden mit einer
@@ -2926,13 +3001,13 @@ das zweite nur eine.
 @end example
 
 Als nächstes soll das System für das Pedal hinzugefügt
-werden. Es soll unter das Klaviersystem gesetzt
+werden.  Es soll unter das Klaviersystem gesetzt
 werden, aber muss gleichzeitig mit ihm erscheinen.
 Wir brauchen also spitze Klammern um beide
-Definitionen. Sie wegzulassen würde eine Fehlermeldung
-in der Log-Datei hervorrufen. Das ist ein sehr
+Definitionen.  Sie wegzulassen würde eine Fehlermeldung
+in der Log-Datei hervorrufen.  Das ist ein sehr
 häufiger Fehler, der wohl auch Ihnen früher 
-oder später unterläuft. Sie können das fertige
+oder später unterläuft.  Sie können das fertige
 Beispiel am Ende des Abschnittes kopieren und die
 Klammern entfernen, um zu sehen, wie die
 Fehlermeldung aussehen kann, die Sie in solch
@@ -2958,7 +3033,7 @@ einem Fall erhalten würden.
 Es ist nicht notwendig, die simultane Konstruktion
 @code{<< .. >>} innerhalb des zweiten Manualsystems
 und des Pedalsystems zu benutzen, denn sie enthalten
-nur eine Stimme. Andererseits schadet es nichts, sie
+nur eine Stimme.  Andererseits schadet es nichts, sie
 zu schreiben, und es ist eine gute Angewohnheit, immer
 die spitzen Klammern nach einem @code{\new Staff} zu
 schreiben, wenn mehr als eine Stimme vorkommen könnten.
@@ -2969,12 +3044,12 @@ werden, falls Sie ihre Noten in mehrere Variable aufteilen,
 die nacheinander gesetzt werden sollen.
 
 Fügen wir also diese Struktur zu der @code{\score}-Umgebung
-hinzu und bringen wir die Einzüge in Ordnung. Gleichzeitig
+hinzu und bringen wir die Einzüge in Ordnung.  Gleichzeitig
 wollen wir die richtigen Schlüssel setzen und die Richtung der
 Hälse und Bögen in den Stimmen des oberen Systems
 kontrollieren, indem die obere Stimme ein
 @code{\voiceOne}, die untere dagegen ein @code{\voiceTwo}
-erhält. Die Taktart und Tonart werden mit unserer fertigen
+erhält.  Die Taktart und Tonart werden mit unserer fertigen
 Variable @code{\TimeKey} eingefügt.
 
 @example
@@ -3002,9 +3077,9 @@ Variable @code{\TimeKey} eingefügt.
 @}  % end Score context
 @end example
 
-Damit ist das Grundgerüst fertig. Jede Orgelmusik mit drei
+Damit ist das Grundgerüst fertig.  Jede Orgelmusik mit drei
 Systemen hat die gleiche Struktur, auch wenn die Anzahl der Stimmen
-in einem System sich ändern kann. Jetzt müssen wir nur noch
+in einem System sich ändern kann.  Jetzt müssen wir nur noch
 die Noten einfügen und alle Teile zusammenfügen, indem wir
 die Variablen mit einem Backslash in die Partitur einbauen.
 
index 08c20e32df8e5cdaaa77330fbed0eae593042d71..827c9f65070191e2c239e509cd22531b07c27f04 100644 (file)
-@c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*-
+@c -*- coding: utf-8; mode: texinfo; -*-
 @c This file is part of lilypond.tely
 @ignore
-    Translation of GIT committish: 02cb8b672238eeb53bffa2240c87f23dd8ca9e60
+    Translation of GIT committish: 01361d46dc9d514a79683d003eeea5f4fbf2b746
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @node General input and output
 @chapter General input and output
 
-@untranslated
-
+Dieses Kapitel erklärt allgemeine Fragen zur Eingabe und Ausgabe von
+Notation mit LilyPond und weniger direkte Fragen der Notation.
 
 @menu
-* Input structure::             
-* Titles and headers::          
-* Working with input files::    
-* Controlling output::          
-* MIDI output::                 
+* Input structure::
+* Titles and headers::
+* Working with input files::
+* Controlling output::
+* MIDI output::
 @end menu
 
+
 @node Input structure
 @section Input structure
 
-@untranslated
-
+Das hauptsächliche Eingabeformat von LilyPond sind Textdateien.
+Üblicherweise werden diese Dateien mit der Endung @code{.ly}
+versehen.
 
 @menu
-* Structure of a score::        
-* Multiple scores in a book::   
-* File structure::              
+* Structure of a score::
+* Multiple scores in a book::
+* File structure::
 @end menu
 
+
 @node Structure of a score
 @subsection Structure of a score
 
-@untranslated
+@funindex \score
+
+Eine @code{\score}-Umgebung muss einen einzelnen musikalischen
+Ausdruck beinhalten, der durch geschweifte Klammern begrenzt wird:
+
+@example
+\score @{
+...
+@}
+@end example
+
+@warning{Es darf @strong{nur ein} äußerer musikalischer Ausdruck
+in der @code{\score}-Umgebung geschrieben werden, und er @strong{muss}
+von geschweiften Klammern umgeben sein.}
+
+Dieser einzelne musikalische Ausdruck kann beliebige Größe annehmen und
+andere musikalische Ausdrücke von beliebiger Komplexität beinhalten.
+Alle diese Beispielse sind musikalische Ausdrücke:
+
+@example
+@{ c'4 c' c' c' @}
+@end example
+
+@lilypond[verbatim,quote]
+{
+  { c'4 c' c' c'}
+  { d'4 d' d' d'}
+}
+@end lilypond
+
+@lilypond[verbatim,quote]
+<<
+  \new Staff { c'4 c' c' c' }
+  \new Staff { d'4 d' d' d' }
+>>
+@end lilypond
+
+@example
+@{
+  \new GrandStaff <<
+    \new StaffGroup <<
+      \new Staff @{ \Flöte @}
+      \new Staff @{ \Oboe @}
+    >>
+    \new StaffGroup <<
+      \new Staff @{ \GeigeI @}
+      \new Staff @{ \GeigeII @}
+    >>
+  >>
+@}
+@end example
+
+Kommentare bilden eine Ausnahme dieser Regel.  (Andere Ausnahmen
+siehe @ref{File structure}.)  Sowohl einzeilige als auch
+Blockkommentare (eingegrenzt durch @code{%@{ .. %@}}) können
+an beliebiger Stelle einer Eingabedatei geschrieben werden.  Sie
+können innerhalb oder außerhalb der @code{\score}-Umgebung vorkommen,
+und innerhalb oder außerhalb des einzelnen musikalischen Ausdrucks
+innerhalb der @code{\score}-Umgebung.
+
+
+@seealso
+Handbuch zum Lernen:
+@rlearning{Working on input files},
+@rlearning{Music expressions explained},
+@rlearning{Score is a (single) compound musical expression}.
 
 
 @node Multiple scores in a book
 @subsection Multiple scores in a book
 
-@untranslated
+@funindex \book
+@cindex Sätze, mehrere
+
+Eine Partitur kann mehrere musikalische Stücke und verschiedene
+Texte beinhalten.  Beispiele hierzu sind etwa eine Etüdensammlung
+oder ein Orchesterstück mit mehreren Sätzen.  Jeder Satz wird
+in einer eigenen @code{\score}-Umgebung notiert:
+
+@example
+\score @{
+  @var{..Noten..}
+@}
+@end example
+
+@noindent
+und Texte werden mit einer @code{\markup}-Umgebung geschrieben:
+
+@example
+\markup @{
+  @var{..Text..}
+@}
+@end example
+
+@funindex \book
+
+Alle Sätze und Texte, die in derselben @code{.ly}-Datei vorkommen,
+werden normalerweise in eine einzige Ausgabedatei gesetzt.
+
+@example
+\score @{
+  @var{..}
+@}
+\markup @{
+  @var{..}
+@}
+\score @{
+  @var{..}
+@}
+@end example
+
+Wenn Sie aber mehrere Ausgabedateien aus einer einzigen @code{.ly}-Datei
+erstellen wollen, können Sie mehrere @code{\book}-Umgebungen notieren.
+Wenn Sie keine @code{\book}-Umgebung in Ihrer Datei angeben, interpretiert
+LilyPond die gesamte Datei als eine große @code{\book}-Umgebung (siehe
+auch @ref{File structure}.  Eine wichtige Ausnahme stellen Dokumente dar,
+die mit lilypond-book erstellt werden, für die Sie explizit
+@code{\book}-Umgebungen notieren müssen, weil sonst nur die erste
+@code{\score}- bzw. @code{\markup}-Umgebung angezeigt wird.
+
+Der Kopfbereich für jedes Musikstück kann innerhalb der @code{\score}-Umgebung
+definiert werden.  Die @code{piece}-(Stück)-Bezeichnung aus dieser
+@code{\header}-Umgebung wird vor jedem Satz ausgegeben.  Die Überschrift für
+ein ganzes Buch kann innerhalb von @code{\book} notiert werden, aber wenn
+diese Umgebung fehlt, wird die @code{\header}-Umgebung genommen, die auf
+erster Ebene der Datei notiert ist.
+
+@example
+\header @{
+  title = "Acht Miniaturen"
+  composer = "Igor Stravinsky"
+@}
+\score @{
+  @dots{}
+  \header @{ piece = "Romanze" @}
+@}
+\markup @{
+   ..Text der zweiten Strophe..
+@}
+\markup @{
+   ..Text der dritten Strophe..
+@}
+\score @{
+  @dots{}
+  \header @{ piece = "Menuetto" @}
+@}
+@end example
+
+@funindex \bookpart
+
+Stücke können innerhalb eines Buches mit @code{\bookpart} gruppiert
+werden.  Derartige Buchabschnitte werden durch einen Seitenumbruch
+voneinander getrennt und können wie auch das ganze Buch selber mit
+einem Titel innerhalb einer @code{\header}-Umgebung beginnen.
 
+@example
+\bookpart @{
+  \header @{
+    title = "Buchtitel"
+    subtitle = "Erster Teil"
+  @}
+  \score @{ @dots{} @}
+  @dots{}
+@}
+\bookpart @{
+  \header @{
+    subtitle = "Zweiter Teil"
+  @}
+  \score @{ @dots{} @}
+  @dots{}
+@}
+@end example
 
 @node File structure
 @subsection File structure
 
-@untranslated
+@funindex \paper
+@funindex \midi
+@funindex \layout
+@funindex \header
+@funindex \score
+@funindex \book
+@funindex \bookpart
+
+@cindex Dateistruktur
+@cindex Struktur, Datei
+@cindex Eingabedatei, Struktur
+@cindex Quelldatei, Struktur
+
+Eine @code{.ly}-Datei kann eine belibige Anzahl an Ausdrücken
+auf der obersten Ebene beinhalten, wobei ein Ausdrück der obersten
+Ebene einer der folgenden sein kann:
+
+@itemize @bullet
+@item
+Eine Ausgabedefinition, wie @code{\paper}, @code{\midi} und
+@code{\layout}.  Derartige Definitionen auf oberster Ebene verändern
+die globalen Einstellungen für das ganze @qq{Buch}.  Wenn mehr
+als eine derarte Definition desselben Typs angegeben wird, hat
+die spätere Vorrang.
+
+@item
+Ein direkter Scheme-Ausdruck, wie etwa
+@code{#(set-default-paper-size "a7" 'landscape)} oder
+@code{#(ly:set-option 'point-and-click #f)}.
+
+@item
+Eine @code{\header}-Umgebung.  Damit wird die globale Titelei
+eingestellt.  Das ist die Umgebung, in der sich Definition für
+das ganze Buch befinden, wie Komponist, Titel usw.
+
+@item
+Eine @code{\score}-Umgebung.  Die in ihr enthaltene Partitur wird
+zusammen mit anderen vorkommenden @code{\score}-Umgebungen gesammelt
+und in ein @code{\book} zusammengefasst.  Dieses Verhalten kann
+verändert werden, indem die Variable @code{toplevel-score-handler}
+auf höchster Ebene gesetzt wird.  Die Definition des Standards findet sich
+in der Datei @file{../scm/@/lily@/.scm}.
+
+@item
+Eine @code{\book}-Umgebung fasst mehrere Sätze (d. h. mehrere
+@code{\score}-Umgebungen) logisch in ein Dokument zusammen.
+Wenn mehrere @code{\score}-Partituren vorkommen, wird für jede
+@code{\book}-Umgebung eine eigene Ausgabedatei erstellt, in der
+alle in der Umgebung enthaltenen Partituren zusammengefasst sind.
+Der einzige Grund, explizit eine @code{\book}-Umgebung zu setzen,
+ist, wenn mehrere Ausgabedateien aus einer einzigen Quelldatei
+erstellt werden sollen.  Eine Ausnahme sind lilypond-book-Dokumente,
+in denen eine @code{\book}-Umgebung explizit hinzugefügt werden
+muss, wenn mehr als eine @code{\score}- oder @code{\markup}-Umgebung
+im gleichen Beispiel angezeigt werden soll.  Dieses Verhalten
+kann verändert werden, indem die Variable @code{toplevel-book-handler}
+auf höchster Ebene gesetzt wird.  Die Definition des Standards
+findet sich in der Datei @file{../scm/@/lily@/.scm}.
+
+@item
+Eine @code{\bookpart}-Umgebung.  Ein Buch (@code{\book}) kann in
+mehrere Teile untergliedert sein, indem @code{\bookpart}-Umgebungen
+eingesetzt werden. Jeder Buchabschnitt beginnt auf einer neuen
+Seite und kann eigene Papierdefinitionen in einer @code{\paper}-Umgebung
+haben.
+
+@item
+Ein zusammengesetzter musikalischer Ausdruck wie etwa
+@example
+@{ c'4 d' e'2 @}
+@end example
+
+Dieses Beispiel wird von LilyPond automatisch in einer
+@code{\score}-Umgebung in einem Buch interpretiert und
+mit anderen @code{\score}-Umgebungen und musikalischen
+Ausdrücken auf der höchsten Ebene zusammen ausgegeben.
+Anders gesagt: eine Datei, die nur das obige Beispiel
+beinhaltet, wird übersetzt zu
+
+@example
+\book @{
+  \score @{
+    \new Staff @{
+      \new Voice @{
+        @{ c'4 d' e'2 @}
+      @}
+    @}
+  @}
+       \layout @{ @}
+       \header @{ @}
+@}
+@end example
+
+Dieses Verhalten kann verändert werden, indem die Variable
+@code{toplevel-music-handler} auf der oberseten Ebene gesetzt
+wird.  Die Definition des Standards findet sich in der Datei
+@file{../scm/@/lily@/.scm}.
+
+@item
+Eine Textbeschriftung, eine Strophe etwa:
+@example
+\markup @{
+   2.  Die erste Zeile der zweiten Strophe.
+@}
+@end example
+
+Textbeschriftungen werden über, zwischen oder unter musikalischen
+Ausdrücken gesetzt, so wie sie notiert werde.
+
+@cindex Variablen
+
+@item
+Eine Variable, wie
+@example
+foo = @{ c4 d e d @}
+@end example
+
+Sie kann dann später in der Datei eingesetzt werden, indem @code{\foo}
+geschrieben wird.  Die Beizeichnung der Variable darf nur aus
+alphabetischen Zeichen bestehen, keine Zahlen, Unter- oder Bindestriche.
+
+@end itemize
+
+Das folgende Beispiel zeigt drei Dinge, die auf der obersten Ebene
+notiert werden können:
+
+@example
+\layout @{
+  % Zeilen rechtsbündig setzen
+  ragged-right = ##t
+@}
+
+\header @{
+   title = "Do-re-mi"
+@}
+
+@{ c'4 d' e2 @}
+@end example
+
+An einer beliebigen Stelle der Datei kann jede der folgenden lexikalen
+Anweisungen notiert werden:
+
+@itemize
+@item @code{\version}
+@item @code{\include}
+@item @code{\sourcefilename}
+@item @code{\sourcefileline}
+@item
+Ein einzeiliger Kommentar, beginnend mit @code{%}.
+
+@item
+Ein mehrzeiliger Kommentar, umgeben von @code{%@{ .. %@}}.
+
+@end itemize
+
+@seealso
+Hanbuch zum Lernen:
+@rlearning{How LilyPond input files work}.
 
 
 @node Titles and headers
 @section Titles and headers
 
-@untranslated
-
+Fast alle gedruckten Noten beinhalten einen Titel und den Namen
+des Komponisten, teilweise wird auch noch sehr viel mehr Information
+zur Verfügung gestellt.
 
 @menu
-* Creating titles::             
-* Custom titles::               
-* Reference to page numbers::   
-* Table of contents::           
+* Creating titles::
+* Custom titles::
+* Reference to page numbers::
+* Table of contents::
 @end menu
 
+
 @node Creating titles
 @subsection Creating titles
 
-@untranslated
+Überschriften können für jede @code{\score}-Umgebung erstellt werden, sowohl
+für die gesamte Datei (oder eine @code{\book}-Umgebung) als auch für
+einzelne Buchabschnitte (innerhalb einer @code{\bookpart}-Umgebung).
+
+Der Inhalt der Titelei wird aus der @code{\header}-Umgebung übernommen.  Die
+@code{\header}-Umgebung eines Buches unterstützt folgende Felder:
+
+@table @code
+@funindex dedication
+@item dedication
+Die Widmung der Noten, wird auf oben auf der ersten Seite gesetzt.
+
+@funindex title
+@item title
+Die Überschrift der Noten, wird unter der Widmung zentriert gesetzt.
+
+@funindex subtitle
+@item subtitle
+Untertitel, zentriert unter der Überschrift.
+
+@funindex subsubtitle
+@item subsubtitle
+Unteruntertitel, zentriert unter dem Untertitel.
+
+@funindex poet
+@item poet
+Name des Dichters, linksbündig unter dem Unteruntertitel.
+
+@funindex instrument
+@item instrument
+Bezeichnung des Instruments, zentriert unter dem Unteruntertitel.
+Auch oben auf der Seite zentriert (andere als erste Seite).
+
+@funindex composer
+@item composer
+Name des Komponisten, rechtsbüngig unter dem Unteruntertitel.
+
+@funindex meter
+@item meter
+Metrum, linksbündig unter dem Dichter.
+
+@funindex arranger
+@item arranger
+Name des Bearbeiters/Arrangeurs, rechtsbündig unter dem Komponisten.
+
+@funindex piece
+@item piece
+Bezeichnung des Stückes, linksbündig unter dem Metrum.
+
+@funindex opus
+@item opus
+Bezeichnung des Opus, rechtsbündig unter dem Bearbeiter.
+
+@cindex Seitenumbruch, erzwingen
+@funindex breakbefore
+
+@item breakbefore
+Hiermit beginnt der Titel auf einer neuen Steite. (Kann die Werte
+##t (wahr) oder ##f (falsch) haben.)
+
+@funindex copyright
+@item copyright
+Anzeige eines Copyright, zentriert unten auf der ersten Seite.  Um das
+Copyright-Symbol zu notieren, siehe @ref{Text encoding}.
+
+@funindex tagline
+@item tagline
+Zentriert unten auf der letzten Seite.  Enthält standardmäßig: @qq{Music
+engraving by LilyPond (@var{version})---www.lilypond.org}
+
+@end table
+
+Hier eine Demonstration der möglichen Felder.  Beliebige
+Formatierungsbefehle für Textbeschriftung können in der Titelei
+eingesetzt werden.  Siehe hierzu auch @ref{Formatting text}.
+
+@c KEEP LY
+@lilypond[quote,verbatim,line-width=11.0\cm]
+\paper {
+  line-width = 9.0\cm
+  paper-height = 10.0\cm
+}
+
+\book {
+  \header {
+    dedication = "mir gewidmet"
+    title = \markup \center-column { "Titel erste Zeile" "Titel zweite Zeile, länger" }
+    subtitle = "Untertitel"
+    subsubtitle = #(string-append "Unteruntertitel LilyPond-Version "
+(lilypond-version))
+    poet = "Dichter"
+    composer =  \markup \center-column { "Komponist" \small "(1847-1973)" }
+    texttranslator = "Übersetzer"
+    meter = \markup { \teeny "m" \tiny "e" \normalsize "t" \large "r" \huge
+"um" }
+    arranger = \markup { \fontsize #8.5 "Be" \fontsize #2.5 "ar" \fontsize
+#-2.5 "be" \fontsize #-5.3 "i" \fontsize #7.5 "ter" }
+    instrument = \markup \bold \italic "Instrument"
+    piece = "Stück"
+  }
+
+  \score {
+    { c'1 }
+    \header {
+      piece = "Stück zwei"
+      opus = "Opus1"
+    }
+  }
+  \markup {
+      und jetzt...
+  }
+  \score {
+    { c'1 }
+    \header {
+      piece = "Stück2"
+      opus = "Opus2"
+    }
+  }
+}
+@end lilypond
+
+Wie schon oben gezeigt, können mehrfache @code{\header}-Umgebungen
+eingesetzt werden.  Wenn das gleiche Feld in mehreren
+Umgebungen, wird die letzte vorkommende
+Version benutzt.  Hier ein kurzes Beispiel:
+
+@example
+\header @{
+  composer = "Komponist"
+@}
+\header @{
+  piece = "Stück"
+@}
+\score @{
+  \new Staff @{ c'4 @}
+  \header @{
+    piece = "Neues Stück"  % überschreibt die die vorige Definition
+  @}
+@}
+@end example
+
+Wenn @code{\header} innerhalb der @code{\score}-Umgebung definiert wird,
+wird normalerweise nur die Information von @code{piece} und @code{opus}
+ausgegeben.  Musikalische Ausdrücke innerhalb von @code{\score} müssen
+vor @code{\header} gesetzt werden.
+
+@lilypond[quote,verbatim,line-width=11.0\cm]
+\score {
+  { c'4 }
+  \header {
+    title = "title"  % not printed
+    piece = "piece"
+    opus = "opus"
+  }
+}
+@end lilypond
+
+@funindex print-all-headers
+
+@noindent
+Dieses Verhalten kann verändert werden (sodass alle Angaben aus der
+überschrift gesetzt werden, wenn sich @code{\header} innerhalb von
+@code{\score} befindet), indem man schreibt:
+
+@example
+\paper@{
+  print-all-headers = ##t
+@}
+@end example
+
+@cindex Copyright
+@cindex Tagline
+
+Die Standardfußzeile ist leer mit Ausnahme der ersten Seite, auf der
+das @code{copyright}-Feld aus der @code{\header}-Umgebung eingefügt wird,
+und die letzte Seite, auf der das @code{tagline}-Feld eingefügt wird.
+Der Standardinhalt von @code{tagline} ist @qq{Music engraving by 
+LilyPond (@var{version})---www.lilypond.org}.  Gut gesetzte Noten werben sehr effektiv
+für LilyPond, darum bitten wir darum, diese Zeile stehen zu lassen,
+wenn es möglich ist.
+
+Ein Titelfeld kann vollständig entfernt werden, indem es auf
+falsch gesetzt wird:
+
+@example
+\header @{
+  tagline = ##f
+  composer = ##f
+@}
+@end example
 
 
 @node Custom titles
 @subsection Custom titles
 
-@untranslated
+Kompliziertere Anpassungen können vorgenommen werden, indem die
+folgenden Variablen innerhalb der @code{\paper}-Umgebung geändert
+werden.  Die Init-Datei @file{../ly/titling-init.ly} enthält das
+Standardverhalten.
+
+@table @code
+
+@funindex bookTitleMarkup
+
+@item bookTitleMarkup
+Das ist die Überschrift, die für das gesamte Dokument gilt.  Üblicherweise
+wird hier der Komponist und die Überschrift des Werkes genannt.
+
+@funindex scoreTitleMarkup
+
+@item scoreTitleMarkup
+Das ist die Überschrift, die vor jede @code{\score}-Umgebung gesetzt wird.
+Überlicherweise wird hier etwa die Bezeichnung eines Satzes notiert
+(im @code{piece}-Feld).
+
+@funindex oddHeaderMarkup
+
+@item oddHeaderMarkup
+Das ist der Seitenkopf für ungerade Seiten.
+
+@funindex evenHeaderMarkup
+
+@item evenHeaderMarkup
+Das ist der Seitenkopf für gerade Seiten.  Wenn undefiniert, wird der
+ungerade Seitenkopf eingesetzt.
+
+Standardmäßig werden die Kopfzeilen so definiert, dass die Seitennummer
+sich außen befindet und das Instrument zentriert gesetzt wird.
+
+@funindex oddFooterMarkup
+
+@item oddFooterMarkup
+Das ist die Fußzeile für ungerade Seiten.
+
+@funindex evenFooterMarkup
+
+@item evenFooterMarkup
+Das ist die Fußzeile für gerade Seiten.  Wenn undefiniert, wird die
+ungerade Fußzeile eingesetzt.
+
+Standardmäßig wird in der Fußzeile auf der ersten Seite das Copyright
+und auf der letzten Seite die Tag-Zeile gesetzt.
+
+@end table
+
+
+@funindex \paper
+@cindex Kopfzeile
+@cindex Fußzeile
+@cindex Seitenlayout
+@cindex Layout der Seite
+@cindex Titel
+@cindex Überschriften
+
+Die folgende Definition setzt die Überschrift linksbündig und
+den Komponisten rechtsbündig auf einer einzelnen Zeile:
+
+@verbatim
+\paper {
+  bookTitleMarkup = \markup {
+   \fill-line {
+     \fromproperty #'header:title
+     \fromproperty #'header:composer
+   }
+  }
+}
+@end verbatim
 
 
 @node Reference to page numbers
 @subsection Reference to page numbers
 
-@untranslated
+Eine bestimmte Stelle der Partitur kann mit einem @code{\label}-Befehl
+markiert werden, sowohl auf oberster Ebene als auch innerhalb eines
+musikalischen Ausdrucks.  Auf diese Marke kann dann verwiesen werden,
+um die Seitenzahl zu erhalten, auf der die Marke vorkommt.  Der
+Verweis wird mit dem Befehl @code{\page-ref} gefordert (innerhalb
+von @code{\markup}).
+
+@c KEEP LY
+@lilypond[verbatim,line-width=11.0\cm]
+\header { tagline = ##f }
+\book {
+  \label #'ErstePartitur
+  \score {
+    {
+      c'1
+      \pageBreak \mark A \label #'ZeichenA
+      c'
+    }
+  }
+
+  \markup { Die erste Partitur fäng auf Seite \page-ref #'ErstePartitur "0" "?" an.}
+  \markup { Zeichen A befindet sich auf Seite \page-ref #'ZeichenA "0" "?". }
+}
+@end lilypond
+
+Der @code{\page-ref}-Textbeschriftungsbefehl braucht drei Argumente:
+
+@enumerate
+
+@item die Marke, ein Scheme-Symbol, etwa @code{#'ErstePartitur},
+@item eine Beschriftung, die als Platzhalter benutzt wird, um die Breite des Verweisen zu schätzen,
+@item eine Beschriftung, die anstelle der Seitenzahl gesetzt wird, wenn die Marke unbekann ist.
+@end enumerate
+
+Der Grund, warum ein Platzhalter benötigt wird, ist dass zu dem Zeitpunkt,
+an dem die Textbeschriftungen ausgewertet werden, noch keine Seitenumbrüche
+vorgenommen wurden und die Seitenzahlen deshalb noch nicht bekannt sind.
+Um hier ein Problem zu vermeiden, wird die eigentliche Auswertung der
+Textbeschriftung erst später ausgeführt, die Größe des Textes muss aber
+schon vorher bekannt sein.  Die Größe wird mithilfe des Platzhalters
+bestimmt.  Wenn eine Partitur zwischen 10 und 99 Seiten hat, kann man
+"00" schreiben, also eine zweistellige Zahl.
+
+@code{\label}
+@code{\page-ref}
+
+@predefined
+@funindex \label,
+@funindex \page-ref.
+@endpredefined
 
 
 @node Table of contents
 @subsection Table of contents
 
-@untranslated
+Ein Inhaltsverzeichnis kann eingefügt werden mit dem Befehl
+@code{\markuplines \table-of-contents}.  Die Elemente, die im
+Inhaltsverzeichnis aufgelistet werden sollen, werden mit dem
+@code{\tocItem}-Befehl markiert, welches sowohl auf höchster
+Ebene als auch in einem musikalischen Ausdruck verwendet werden
+kann.
+
+@verbatim
+\markuplines \table-of-contents
+\pageBreak
+
+\tocItem \markup "Erste Partitur"
+\score {
+  {
+    c'  % ...
+    \tocItem \markup "Ein bestimmter Punkt innerhalb der ersten Partitur"
+    d'  % ...
+  }
+}
 
+\tocItem \markup "zweite Partitur"
+\score {
+  {
+    e' % ...
+  }
+}
+@end verbatim
+
+Die Beschriftungen, die benutzt werden um das Inhaltsverzeichnis
+zu formatieren, sind in der @code{\paper}-Umgebung definiert.
+Die Standardformatierungselemente sind @code{tocTitleMarkup}
+um die Überschrift zu formatieren und @code{tocItemMarkup} um
+die einzelnen Inhaltselemente zu formatieren, bestehend aus
+dem Titelelement und einer Seitenzahl.  Die Variablen können
+durch den Benutzer geändert werden:
+
+@verbatim
+\paper {
+  %% Übersetzung der Inhaltsverzeichnisüberschrift nach französisch:
+  tocTitleMarkup = \markup \huge \column {
+    \fill-line { \null "Table des matières" \null }
+    \hspace #1
+  }
+  %% hier größere Schriftarten
+  tocItemMarkup = \markup \large \fill-line {
+    \fromproperty #'toc:text \fromproperty #'toc:page
+  }
+}
+@end verbatim
 
-@node Working with input files
-@section Working with input files
+Die Inhaltsverzeichniselemente Text und Seitenzahl werden
+in der Definition von @code{tocItemMarkup} aufgerufen mit
+@code{#'toc:text} und @code{#'toc:page}.
+
+Neue Befehle und Beschriftungen können auch definiert werden,
+um eigene Inhaltsverzeichnisse zu gestalten:
+
+@itemize
+
+@item zuerst muss eine neue Beschriftungsvariable in der
+@code{\paper}-Umgebung definiert werden
 
-@untranslated
+@item dann muss die musikalische Funktion definiert werden, die
+ein Element zum Inhaltsverzeichnis hinzufügt, indem die neue
+Variable benutzt wird.
+
+@end itemize
+
+Das folgende Beispiel definiert einen neuen Stil um Akt-Bezeichnungen
+einer Oper in das Inhaltsverzeichnis aufzunehmen:
+
+@verbatim
+\paper {
+  tocActMarkup = \markup \large \column {
+    \hspace #1
+    \fill-line { \null \italic \fromproperty #'toc:text \null }
+    \hspace #1
+  }
+}
+
+tocAct =
+#(define-music-function (parser location text) (markup?)
+   (add-toc-item! 'tocActMarkup text))
+@end verbatim
+
+@lilypond[line-width=11.0\cm]
+\header { tagline = ##f }
+\paper {
+  tocActMarkup = \markup \large \column {
+    \hspace #1
+    \fill-line { \null \italic \fromproperty #'toc:text \null }
+    \hspace #1
+  }
+}
+
+tocAct =
+#(define-music-function (parser location text) (markup?)
+   (add-toc-item! 'tocActMarkup text))
+
+\book {
+  \markuplines \table-of-contents
+  \tocAct \markup { Atto Primo }
+  \tocItem \markup { Coro. Viva il nostro Alcide }
+  \tocItem \markup { Cesare. Presti omai l'Egizzia terra }
+  \tocAct \markup { Atto Secondo }
+  \tocItem \markup { Sinfonia }
+  \tocItem \markup { Cleopatra. V'adoro, pupille, saette d'Amore }
+  \markup \null
+}
+@end lilypond
 
 
+@seealso
+Installierte Dateien: @file{../ly/@/toc@/-init@/.ly}.
+
+@funindex \table-of-contents
+@funindex \tocItem
+
+@predefined
+@code{\table-of-contents},
+@code{\tocItem}.
+@endpredefined
+
+
+@node Working with input files
+@section Working with input files
+
 @menu
-* Including LilyPond files::    
-* Different editions from one source::  
-* Text encoding::               
-* Displaying LilyPond notation::  
+* Including LilyPond files::
+* Different editions from one source::
+* Text encoding::
+* Displaying LilyPond notation::
 @end menu
 
+
 @node Including LilyPond files
 @subsection Including LilyPond files
 
-@untranslated
+@funindex \include
+@cindex einfügen  von Dateien
+@cindex Dateien einfügen
+
+Ein größeres Projekt kann in einzelne Dateien aufteteilt werden.
+Um eine andere Datei einzubinden, kann der Befehl
+
+@example
+\include "andereDatei.ly"
+@end example
+
+@noindent
+benutzt werden.
+
+Die Zeile @code{\include "andereDatei.ly"} benimmt sich genauso,
+also ob der Inhalt der Datei @code{andereDatei.ly} komplett in die
+Hauptdatei eingefügt werden würde.  So kann man für ein größeres
+Projekt die einzelnen Stimmen der Instrumente getrennt notieren
+und sie dann in einer Partitur-Datei benutzen.  Meistens werden
+in den eingefügten Dateien einige Variablen definiert, die dann
+auch in der Hauptdatei eingesetzt werden können.  Mit Marken (Tags)
+gekennzeichnete Abschnitte können eingesetzt werden, um die
+entsprechenden Noten etc. an verschiedenen Stellen in der Datei
+zur Verfügung zu stellen. Siehe auch @ref{Different editions from
+one source}.
+
+Auf Dateien im aktuellen Verzeichnis kann einfach mit dem Dateinamen
+nach dem @code{\include}-Befehl verwiesen werden.  Dateien an anderen
+Stellen können eingebunden werden, indem entweder ein vollständiger
+Pfad oder ein relativer Pfad zu der Datei angegeben wird.  Hierbei
+sollten die für UNIX typischen Schrägstriche (/) und nicht die
+rückwärtsgeneigten von Windows (\) verwendet werden, um die Verzeichnisse
+zu trennen.  Wenn etwa die Datei @file{kram.ly} ein Verzeichnis
+höher liegt als das aktuelle Verzeichnis, sollte der Befehl so
+aussehen:
+
+@example
+\include "../kram.ly"
+@end example
+
+@noindent
+Wenn die Orchesterstimmen andererseits in einem Unterordner mit
+der Bezeichnung @code{stimmen} liegen, sieht er folgendermaßen
+aus:
+
+@example
+\include "stimmen/VI.ly"
+\include "stimmen/VII.ly"
+... etc
+@end example
+
+Dateien, die eingebunden werden sollen, können selber auch wiederum
+ein @code{\include} enthalten.  Diese Einbindung zweiter Ebene
+werden erst interpretiert, wenn sie sich in der Hauptdatei befinden,
+sodass die Pfadangaben hier nicht relativ zur eingebundenen Datei,
+sondern relativ zur Hauptdatei gesetzt werden müssen.  Dieses Verhalten
+kann jedoch auch verändert werden, indem man lilypond die Option
+@code{-drelative-includes} auf der Kommandozeile zuweist (oder indem
+man den Befehl @code{#(ly:set-option 'relative-includes #t)} an den
+Beginn der Quelldatei schreibt).  Mit @code{relative-includes} wird
+der Pfad jedes @code{\include}-Befehls als relativ zu der Datei angenommen,
+in der sich der Befehl befindet.  Dieses Verhalten wird empfohlen und wird
+in zukünftigen Versionen von LilyPond den Standard darstellen.
+
+Dateien können auch aus einem Verzeichnis eingebunden werden,
+dass im Suchpfad von LilyPond liegt.  Hierzu muss auf der
+Kommandozeile das entsprechende Verzeichnis angegeben werden
+und die Dateien, die eingebunden werden, müssen nur mit ihrem Namen
+notiert sein.  Wenn etwa die Datei @file{Haupt.ly} kompiliert
+werden soll, die Dateien aus dem Unterverzeichnis @file{stimmen}
+einbindet, müssen sie sich im Verzeichnis von @file{Haupt.ly}
+befinden und dann LilyPond folgendermaßen aufrufen:
+
+@example
+lilypond --include=stimmen Haupt.ly
+@end example
+
+@noindent
+In @file{Haupt.ly} steht:
+
+@example
+\include "VI.ly"
+\include "VII.ly"
+... usw.
+@end example
+
+Dateien, die in vielen Partituren verwendet werden sollen, können
+im LilyPond-Verzeichnis @file{../ly} gespeichert werden.  (Die
+Stelle, an der dieses Verzeichnis sich befindet, hängt vom Betriebssystem
+ab, siehe hierzu @rlearning{Other sources of information}).  Dateien
+in diesem Verzeichnis können einfach mit ihrem Namen eingefügt werden.
+So werden auch die Sprachdateien wie etwa @file{deutsch.ly} eingefügt.
+
+LilyPond lädt eine Anzahl an Dateien, wenn das Programm aufgerufen wird.
+Diese Dateien sind für den Benutzer nicht ersichtlich, aber die Dateien
+können identifiziert werden, indem LilyPond auf der Komandozeile mit
+Option aufgerufen wird: @code{lilypond --verbose}.  Hiermit wird
+neben anderer Information auch eine Liste and Pfaden und Dateien
+aufgeführt, die LilyPond benutzt.  Die wichtigeren Dateien werden
+im Abschnitt @rlearning{Other sources of information} besprochen.
+Diese Dateien können verändert werden, aber Änderungen gehen verloren,
+wenn eine neue LilyPond-Version installiert wird.
+
+Eine einfache Beispiele, die die Benutzung von @code{\include} demonstrieren,
+sind dargestellt in
+@rlearning{Scores and parts}.
+
+@seealso
+Handbuch zum Lernen:
+@rlearning{Other sources of information},
+@rlearning{Scores and parts}.
+
+@knownissues
+
+Wenn eine Datei eingebunden wird, deren Name einer Datei aus
+dem Installationsverzeichnis von LilyPond entspricht, wird die
+installierte Datei anstelle der eigenen verwendet.
 
 
 @node Different editions from one source
 @subsection Different editions from one source
 
-@untranslated
-
+Es gibt verschiedene Funktionen, die es möglich machen, unterschiedliche
+Versionen einer Partitur aus der gleichen Quelldatei zu produzieren.
+Variablen werden am besten eingesetzt, wenn es darum geht, längere
+Notenpassagen und/oder Anmerkungen/Textmarken miteinander auf
+verschiedene Weise zu kombinieren.  Tag-Marken dagegen werden am
+besten eingesetzt, wenn eine von mehreren kurzen alternativen
+Notenabschnitten ausgewählt werden soll.  Egal welche Methode am
+Ende eingesetzt wird: Es erleichtert die Arbeit in jedem Fall, wenn
+die eigentlichen Noten und die Struktur der Paritur voneinander
+getrennt notiert werden -- so kann die Struktur geändert werden,
+ohne dass man Änderungen an den Noten vornehmen muss.
 
 @menu
-* Using variables::             
-* Using tags::                  
+* Using variables::
+* Using tags::
 @end menu
 
 @node Using variables
 @unnumberedsubsubsec Using variables
 
-@untranslated
+@cindex Variablen, Benutzung
+
+Wenn Notenabschnitt in Variablen definiert werden, können sie
+an unterschiedlichen Stellen in der Partitur eingesetzt werden,
+siehe auch @rlearning{Organizing pieces with variables}.  Zum
+Beispiel enthält eine Vokalpartitur für ein @notation{a cappella}
+Stück oft einen Klavierauszug, der das Einüben einfacher macht.
+Der Klavierauszug enthält die gleichen Noten, sodass man sie nur
+einmal notieren muss.  Noten aus zwei Variablen können auf einem
+System kombiniert werden, siehe @ref{Automatic part combining}.
+Hier ein Beispiel:
+
+@lilypond[verbatim,quote]
+sopranoMusic = \relative c'' { a4 b c b8( a)}
+altoMusic = \relative g' { e4 e e f }
+tenorMusic = \relative c' { c4 b e d8( c) }
+bassMusic = \relative c' { a4 gis a d, }
+allLyrics = \lyricmode {King of glo -- ry }
+<<
+  \new Staff = "Soprano" \sopranoMusic
+  \new Lyrics \allLyrics
+  \new Staff = "Alto" \altoMusic
+  \new Lyrics \allLyrics
+  \new Staff = "Tenor" {
+    \clef "treble_8"
+    \tenorMusic
+  }
+  \new Lyrics \allLyrics
+  \new Staff = "Bass" {
+    \clef "bass"
+    \bassMusic
+  }
+  \new Lyrics \allLyrics
+  \new PianoStaff <<
+    \new Staff = "RH" {
+      \set Staff.printPartCombineTexts = ##f
+      \partcombine
+      \sopranoMusic
+      \altoMusic
+    }
+    \new Staff = "LH" {
+      \set Staff.printPartCombineTexts = ##f
+      \clef "bass"
+      \partcombine
+      \tenorMusic
+      \bassMusic
+    }
+  >>
+>>
+@end lilypond
+
+Unterschiedliche Partituren, die entweder nur den Chor oder das
+Klavier zeigen, können produziert werden, indem die Struktur
+verändert wird; die Noten müssen dazu nicht verändert werden.
+
+Für längere Partituren können Variablen in eigene Dateien notiert
+werden, die dann eingebunden werden, siehe @ref{Including
+LilyPond files}.
 
 
 @node Using tags
 @unnumberedsubsubsec Using tags
 
-@cindex Erweiterung von Wiederholungen
-@funindex \unfoldRepeats
-
-Mit ein bisschen Anpassung können alle Wiederholungstypen 
-auch in der MIDI-Datei wiedergegeben werden. Das wird erreicht 
-durch die @code{\unfoldRepeats}-Funktion. Hiermit werden alle 
-Wiederholungen, welcher Art auch immer, in notengetreue Wiederholungen 
-umgewandelt, die Noten werden also wiederholt ausgegeben.
+@cindex Tag
+@cindex Marke
+@cindex markierte Noten entfernen
+@cindex markierte Noten behalten
+
+@funindex \tag
+@funindex \keepWithTag
+@funindex \removeWithTag
+@funindex tag
+@funindex keepWithTag
+@funindex removeWithTag
+
+Der @code{\tag #'@var{TeilA}}-Befehl markiert einen musikalischen
+Ausdruck mit der Bezeichnung @var{TeilA}.  Ausdrücke, die auf diese
+Weise markiert werden, können mit ihrer Bezeichnung später ausgewählt
+bzw. ausgefiltert werden.  Das geschieht mit den Befehlen 
+@code{\keepWithTag #'@var{Bezeichnung}} bzw. @code{\removeWithTag #'@var{Bezeichnung}}.
+Die Wirkung dieser Filter auf die markierten Notenabschnitte ist
+wie folgt:
+
+@multitable @columnfractions .5 .5
+
+@headitem Filter
+  @tab Resultat
+  
+@item
+Markierte Noten mit vorgesetztem @code{\keepWithTag #'@var{Bezeichnung}}
+  @tab Unmarkierte Noten und Noten mit der Marke @var{Bezeichnung} werden
+  gesetzt, Noten mit einer anderen Marke werden nicht angezeigt.
+  
+@item
+Markierte Noten mit vorgesetztem @code{\removeWithTag #'@var{Bezeichnung}}
+  @tab Unmarkierte Noten und Noten mit einer anderen Marke als
+  @var{Bezeichnung} wird angezeigt, Noten markiert mit @var{Bezeichnung}
+  werden nicht angezeigt.
+
+@item
+Markierte Noten, weder mit vorgesetztem @code{\keepWithTag} noch
+@code{\removeWithTag}
+  @tab Alle markierten und unmarkierten Noten werden angezeigt.
+
+@end multitable
+
+Die Argumente der Befehle @code{\tag}, @code{\keepWithTag} und
+@code{\removeWithTag} sollten ein Symbol sein (wie etwa
+@code{#'score} oder @code{#'part}), gefolgt von einem musikalischen
+Ausdruck.
+
+Im folgenden Beispiel erscheinen zwei Versionen der Noten, eine
+zeigt Triller in normaler Notation, die andere zeigt sie ausgeschrieben:
+
+@lilypond[verbatim,quote]
+music = \relative g' {
+  g8. c32 d
+  \tag #'trills {d8.\trill }
+  \tag #'expand {\repeat unfold 3 {e32 d} }
+  c32 d
+ }
+
+\score {
+  \keepWithTag #'trills \music
+}
+\score {
+  \keepWithTag #'expand \music
+}
+@end lilypond
 
-@lilypond[quote,verbatim,fragment,line-width=8.0\cm]
-\unfoldRepeats {
-  \repeat tremolo 8 {c'32 e' }
-  \repeat percent 2 { c''8 d'' }
-  \repeat volta 2 {c'4 d' e' f'}
-  \alternative {
-    { g' a' a' g' }
-    {f' e' d' c' }
-  }
+@noindent
+Entsprechend können auch Abschnitte ausgeschlossen werden; das
+erfordert manchmal weniger Schreibarbeit:
+
+@lilypond[verbatim,quote]
+music = \relative g' {
+  g8. c32 d
+  \tag #'trills {d8.\trill }
+  \tag #'expand {\repeat unfold 3 {e32 d} }
+  c32 d
+ }
+
+\score {
+  \removeWithTag #'expand
+  \music
+}
+\score {
+  \removeWithTag #'trills
+  \music
 }
-\bar "|."
 @end lilypond
 
-Wenn man eine Partitur schreibt, die diesen @code{\unfoldRepeats}-Befehl 
-für die MIDI-Ausgabe benutzt, muss man zwei @code{\score}-Umgebungen 
-schreiben: eine für die MIDI-Ausgabe, wo die Wiederholungen ausgeschrieben 
-werden, und eine für die gedruckte Notation, in der Klammern, Tremolo und 
-Prozent-Wiederholungen benutzt werden. Zum Beispiel:
+Marken können auch auf Artikulationen, Text usw angewendet werden,
+indem man ihnen
 
 @example
-\score @{
-  @var{..music..}
-  \layout @{ .. @}
-@}
-\score @{
-  \unfoldRepeats @var{..music..}
-  \midi @{ .. @}
-@}
+-\tag #'@var{your-tag}
+@end example
+
+@noindent
+voranstellt (jedoch nach der Note, an die sie gebunden sind).  Mit
+diesem Code etwa könnte man entweder Fingersatz oder aber einen
+Text ausgeben:
+
+@example
+c1-\tag #'finger ^4
+c1-\tag #'warn ^"Achtung!"
 @end example
 
+Mehrfache Marken können mithilfe von mehreren @code{\tag}-Befehlen
+notiert werden:
+
+@lilypond[quote,verbatim]
+music = \relative c'' {
+  \tag #'a \tag #'both { a a a a }
+  \tag #'b \tag #'both { b b b b }
+}
+<<
+\keepWithTag #'a \music
+\keepWithTag #'b \music
+\keepWithTag #'both \music
+>>
+@end lilypond
+
+Mehrfache @code{\removeWithTag}-Filter können auf einen
+musikalischen Ausdruck angewendet werden, um mehrere unterschiedliche
+markierte Abschnitte aus dem Druckbild zu entfernen.
+
+@lilypond[verbatim,quote]
+music = \relative c'' {
+\tag #'A { a a a a }
+\tag #'B { b b b b }
+\tag #'C { c c c c }
+\tag #'D { d d d d }
+}
+{
+\removeWithTag #'B
+\removeWithTag #'C
+\music
+}
+@end lilypond
+
+Zwei oder mehr @code{\keepWithTag}-Filter in einem musikalischen
+Ausdruck bewirken, dass @emph{alle} markierten Abschnitte entfernt
+werden, weil der erste Befehl alle markierten Abschnitt außer dem
+im Befehl genannten wegfiltert und der zweite Befehl dann auch diesen
+eben genannten zusätzlich entfernt.
+
+
+@seealso
+Handbuch zum Lernen:
+@rlearning{Organizing pieces with variables}.
+
+Notationsreferenz:
+@ref{Automatic part combining},
+@ref{Including LilyPond files}.
+
+
+@ignore
+@c This warning is more general than this placement implies.
+@c Rests are not merged whether or not they come from tagged sections.
+@c Should be deleted?  -td
+
+@knownissues
+
+Multiple rests are not merged if you create a score with more
+than one tagged section at the same place.
+
+@end ignore
+
 
 @node Text encoding
 @subsection Text encoding
 
-@untranslated
+LilyPond benutzt alle Zeichen, die durch das Unicode-Konsortium
+und ISO/IEC 10646 definiert sind.  Hiermit wird den Zeichen
+fast aller Schriftsysteme der Welt ein eindeutiger Name und ein
+Code-Punkt zugewiesen, mit dem sie identifizierbar sind.  Unicode
+kann mit mehreren Zeichenkodierungen verwirklicht werden.  LilyPond
+benutzt die UTF-8-Kodierung (UTF = Unicode Transformation Format),
+in der die normalen Zeichen des lateinischen Alphabets mit einem
+Byte dargestellt werden, während alle anderen Zeichen zwischen
+zwei und vier Byte Länge haben.
+
+Das Aussehen des Zeichens wird bestimmt durch die gerade benutzte
+Schriftart (engl. font).  In einer Schriftartdatei werden die
+Nummern der Unicode-Zeichen einem bestimmten Glyphen zugeordnet.
+LilyPond verwendet die Pango-Bibliothek um mehrsprachige Texte
+und komplexe Skripte korrekt zu setzen.
+
+LilyPond verändert die Kodierung der Eingabedatei nicht.  Das heißt,
+dass jeder Text -- Überschriften, Gesangstext, Spielanweisungen etc. --
+der nicht nur aus ASCII-Zeichen besteht, in UTF-8 kodiert sein
+musst.  Am einfachsten geht das, indem man einen Texteditor
+einsetzt, der mit Unicode-Zeichen umgehen kann.  Die meisten
+modernen weit verbreiteten Editoren besitzen heute UTF-8-Unterstützung,
+wie etwa vim, Emacs, jEdit oder GEdit.  Alle MS Windows-Systeme
+nach NT benutzen Unicode intern, sodass sogar Notepad Dateien
+in UTF-8 lesen und speichern kann.  Ein Editor mit mehr
+Funktionen unter Windows ist BabelPad oder Notepad++.
+
+Wenn eine LilyPond-Eingabedatei nicht-ASCII-Zeichen enthält
+und nicht in UTF-8 gespeichert ist, gibt es folgende Fehlermeldung:
+
+@example
+FT_Get_Glyph_Name () error: invalid argument
+@end example
+
+Heir ein Beispiel mit Kyrilliza, hebräischem und portugiesischem Text:
+
+@lilypond[quote]
+%c No verbatim here as the code does not display correctly in PDF
+% Cyrillic
+bulgarian = \lyricmode {
+  Жълтата дюля беше щастлива, че пухът, който цъфна, замръзна като гьон.
+}
+
+% Hebrew
+hebrew = \lyricmode {
+  זה כיף סתם לשמוע איך תנצח קרפד עץ טוב בגן.
+}
+
+% Portuguese
+portuguese = \lyricmode {
+  à vo -- cê uma can -- ção legal
+}
+
+\relative  {
+  c2 d e f g f e
+}
+\addlyrics { \bulgarian }
+\addlyrics { \hebrew }
+\addlyrics { \portuguese }
+@end lilypond
+
+Um einen einzelnen Buchstaben zu notieren, für den die Unicode-Buchstabenfolge
+bekannt ist, der aber nicht auf der Tastatur zu finden ist, kann
+der Befehl @code{\char ##xhhhh} innerhalb einer @code{\markup}-Umgebung
+benutzt werden.  Hierbei bedeutet @code{hhhh} die hexadezimale Zahl
+für das erforderliche Zeichen.  Mit @code{\char ##x03BE} wird
+beispielsweise das Unicode-Zeichen U+03BE notiert, welches die
+Unicode-Bezeichnung @qq{Greek Small Letter Xi} hat.  Alle existierenden
+Unicode-Zeichen können auf diese Weise notiert werden, und wenn für alle
+Zeichen dieses Format angewandt wird, muss die Datei nicht im utf-8-Format
+gespeichert werden.  Es muss natürlich auch noch eine Schriftart auf
+dem System installiert sein, die die notierten Zeichen darstellen kann.
+
+Das nächste Beispiel zeigt Unicode-Zeichen an vier Stellen mit dem
+Zahlencode notiert: in einem Übungszeichen, als Artikulationszeichen,
+im Gesangstext und als normaler Text außerhalb der Partitur.
+
+@lilypond[quote,verbatim]
+\score {
+  \relative c'' {
+    c1 \mark \markup { \char ##x03EE }
+    c1_\markup { \tiny { \char ##x03B1 " to " \char ##x03C9 } }
+  }
+  \addlyrics { O \markup { \concat{ Ph \char ##x0153 be! } } }
+}
+\markup { "Copyright 2008--2009" \char ##x00A9 }
+@end lilypond
+
+Um das Copyright-Zeichen zu notieren, kann folgender Code eingesetzt werden:
+
+@example
+\header @{
+  copyright = \markup @{ \char ##x00A9 "2008" @}
+@}
+@end example
 
 
 @node Displaying LilyPond notation
 @subsection Displaying LilyPond notation
 
-@untranslated
+@funindex \displayLilyMusic
 
+Ein musikalischer Ausdruck in LilyPond-Notation kann mit der Funktion
+@code{\displayMusic} angezeigt werden.  Der Code
 
-@node Controlling output
-@section Controlling output
+@example
+@{
+  \displayLilyMusic \transpose c a, @{ c e g a bes @}
+@}
+@end example
+
+@noindent
+etwa wird ausgeben:
+
+@example
+@{ a, cis e fis g @}
+@end example
 
-@untranslated
+Normalerweise werden diese Zeilen zusammen mit allen anderen
+Nachrichten auf der Kommandozeile ausgegeben.  Um sie separat zu
+speichern und das Ergebnis von @code{\displayMusic} weiterzubenutzen,
+kann die Ausgabe mit folgendem Befehl in eine Datei umgeleitet werden:
 
+@c TODO What happens under Windows?
+
+@example
+lilypond file.ly >display.txt
+@end example
+
+
+
+@node Controlling output
+@section Controlling output
 
 @menu
-* Extracting fragments of music::  
-* Skipping corrected music::    
+* Extracting fragments of music::
+* Skipping corrected music::
 @end menu
 
+
 @node Extracting fragments of music
 @subsection Extracting fragments of music
 
-@untranslated
+Es ist möglich, kleine Abschnitte einer großen Partitur direkt aus der
+Quelldatei zu erzeugen.  Das kann damit verglichen werden, dass man
+mit der Schere bestimmte Regionen ausschneidet.
+
+Es wird erreicht, indem man die Takte, die ausgeschnitten werden sollen
+(engl. to clip = ausschneiden), extra definiert.  Mit folgender
+Defintion beispielsweise
+
+@verbatim
+\layout {
+  clip-regions
+  = #(list
+      (cons
+       (make-rhythmic-location 5 1 2)
+       (make-rhythmic-location 7 3 4)))
+}
+@end verbatim
+
+@noindent
+wird ein Fragment ausgeschnitten, dass auf der Mitte des fünften Taktes
+beginnt und im siebten Takt endet.  Die Bedeutung von @code{5 1 2} ist:
+nach einer Halben in Takt fünf, @code{7 3 4} heißt: nach drei Vierteln
+in Takt 7.
+
+Weitere Bereiche, die ausgeschnitten werden sollen, können definiert
+werden, indem mehrere derartige Paare definiert werden.
+
+Um diese Funktion auch nutzen zu können, muss LilyPond mit dem
+Parameter @code{-dclip-systems} aufgerufen werden.  Die Schnipsel
+werden als EPS ausgegeben und dann zu PDF und PNG konvertiert, wenn
+diese Formate auch als Parameter angegeben werden.
+
+Zu mehr Information über Ausgabeformate siehe @rprogram{Invoking lilypond}.
 
 
 @node Skipping corrected music
 @subsection Skipping corrected music
 
-@untranslated
+
+@funindex skipTypesetting
+@funindex showFirstLength
+@funindex showLastLength
+
+Wenn man Noten eingibt oder kopiert, sind meistens nur die Noten nahe dem
+Ende (wo gerade neue Noten notiert wurden) wichtig für Kontrolle und
+Korrektur.  Um die Korrektur zu beschleunigen, kann eingestellt werden,
+dass nur die letzten paar Takte angezeigt werden.  Das erreicht man
+mit dem Befehl
+
+@verbatim
+showLastLength = R1*5
+\score { ... }
+@end verbatim
+
+@noindent
+in der Quelldatei.  Damit werden nur die letzten fünf Takte (in einem
+4/4-Takt) eines jeden @code{\score}-Abschnitts übersetzt.  Besonders
+bei längeren Stücken ist es meistens sehr viel schneller, nur einen
+kleinen Teil des Stückes zu setzen als die gesamte Länge.  Wenn man
+am Anfang eines Stückes arbeitet (weil etwa ein neuer Teil hinzugefügt
+werden soll), kann auch die @code{showFirstLength}-Eigenschaft
+nützlich sein.
+
+Nur bestimmte Teile einer Partitur zu überspringen, kann mit der
+Eigenschaft @code{Score.skipTypesetting} sehr genau kontrolliert
+werden.  Für den Bereich, für den sie auf @qq{wahr} gesetzt wird,
+wird kein Notensatz ausgegeben.
+
+Diese Eigenschaft kann auch benutzt werden, um die MIDI-Ausgabe zu
+kontrollieren.  Hiermit werden alle Ereignisse, auch Tempo- und
+Instrumentenwechsel ausgelassen.  Man muss also sehr genau darauf
+achten, dass nichts unerwartetes geschieht.
+
+@lilypond[quote,fragment,ragged-right,verbatim]
+\relative c'' {
+  c8 d
+  \set Score.skipTypesetting = ##t
+  e e e e e e e e
+  \set Score.skipTypesetting = ##f
+  c d b bes a g c2 }
+@end lilypond
+
+In polyphoner Notation wirkt sich @code{Score.skipTypesetting} auf
+alle Stimmen und Systeme aus, sodass noch mehr Zeit bei der
+Übersetzung der Datei gespart wird.
 
 
 @node MIDI output
 @section MIDI output
 
-@untranslated
+@cindex Klang
+@cindex MIDI
+
+MIDI (Musical Instrument Digital Interface) ist ein Standard zur
+Kontrolle und Interaktion mit digitalen Instrumenten.  Eine
+MIDI-Datei ist eine Anzahl von Noten auf einer Anzahl von
+Bändern/Stimmen.  Es ist keine eigentliche Klangdatei, denn man
+benötigt spezielle Programme die die Notenereignisse in Klang
+umwandeln können.
+
+Der Notensatz von LilyPond kann in MIDI umgewandelt werden, so dass
+man sich anhören kann, was man notiert hat.  Das hilft oft sehr gut
+bei der Überprüfung: falsche Oktaven oder falsche Versetzungszeichen
+lassen sich meist sehr gut hören.
+
+Die MIDI-Ausgabe benötigt einen Kanal für jedes System und einen für
+globale Einstellungen.  Darum sollte die Quelldatei für eine MIDI-Datei
+nicht mehr als 15 Systeme (oder 14 wenn kein Schlagzeug benützt wird)
+besitzen.  Jedes weitere System bleibt stumm.
 
 
 @menu
-* Creating MIDI files::         
-* MIDI block::                  
-* What goes into the MIDI output?::  
-* Repeats in MIDI::             
-* Controlling MIDI dynamics::   
+* Creating MIDI files::
+* MIDI block::
+* What goes into the MIDI output?::
+* Repeats in MIDI::
+* Controlling MIDI dynamics::
+* Percussion in MIDI::
 @end menu
 
+
 @node Creating MIDI files
 @subsection Creating MIDI files
 
-@untranslated
+Um eine MIDI-Datei aus einer LilyPond-Quelldatei zu erstellen, muss
+eine @code{\midi}-Umgebung zu der @code{\score}-Umgebung hinzugefügt
+werden, etwa so:
+
+@example
+\score @{
+  @var{...Noten...}
+  \midi @{ @}
+@}
+@end example
+
+Wenn in einer @code{\score}-Umgebung nur eine @code{\midi}-Umgebung,
+aber keine @code{\layout}-Umgebung vorkommt, wird nur MIDI produziert.
+Wenn auch die Notation gewünscht ist, muss zusätzlich die
+@code{\layout}-Umgebung vorhanden sein:
+
+@example
+\score @{
+  @var{...music...}
+  \midi @{ @}
+  \layout @{ @}
+@}
+@end example
+
+Tonhöhen, Rhythmen, Überbindungen, Dynamik und Tempoänderungen werden
+korrekt in das MIDI-Format übersetzt.  Dynamikzeichen, Crescendo und
+Decrescendo werden in den MIDI-Lautstärkekanal übertragen.  Dynamikzeichen
+werden in einen bestimmten Lautstärkenwert übersetzt, Crescendo und
+Decrescendo erreichen einen Übergang zwischen Lautstärkewerten.
+Die Wirkung von Dynamikzeichen kann auch aus der MIDI-Datei entfernt
+werden.  Siehe hierzu @ref{MIDI block}.
+
+Das Anfangstempo und spätere Tempoänderungen können mit dem
+@code{\tempo}-Befehl innerhalb der Notation notiert werden.  Er
+bewirkt Tempoänderungen auch in der MIDI-Datei.  Der Befehl setzt
+gleichzeitig auch eine Tempobezeichnung in die Noten, welches aber
+auch unterdrückt werden kann, siehe @ref{Metronome marks}.  Eine
+andere möglichkeit, ein eigenes MIDI-Tempo anzugeben, wird weiter
+unten gezeigt, siehe @ref{MIDI block}.
 
 
 @unnumberedsubsubsec Instrument names
+
+@cindex Instrumentbezeichnungen
+
+@funindex Staff.midiInstrument
+
+Das MIDI-Instrument, mit dem ein bestimmtes System wiedergegeben
+werden soll, wird durch die @code{Staff.midiInstrument}-Eigenschaft
+bestimmt, die auf eine Instrumentenbezeichnung gesetzt werden muss.
+Die Bezeichnungen sind aufgelistet in @ref{MIDI instruments} und müssen
+in der dort definierten Schreibweise notiert werden.
+
+@example
+\new Staff @{
+  \set Staff.midiInstrument = #"glockenspiel"
+  @var{...Noten...}
+@}
+@end example
+
+@example
+\new Staff \with @{midiInstrument = #"cello"@} @{
+  @var{...Noten...}
+@}
+@end example
+
+Wenn die Schreibweise nicht genau einem definierten Instrument aus
+der Liste entpsricht, wird ein Piano-Klang benutzt (@code{"acoustic grand"}).
+
+@snippets
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{changing-midi-output-to-one-channel-per-voice.ly}
+
+@knownissues
+
+Veränderungen der MIDI-Lautstärke sind nur effektiv, wenn sie zu Beginn
+einer Note angefordert werden, sodass die Lautstärke während einer Notendauer
+nicht geändert werden kann.
+
+Nicht alle MIDI-Spieler können Tempoänderungen richtig wiedergeben.
+Spieler, die hierzu in der Lage sind, sind unter Anderen MS Windows Media
+Player und @uref{http://@/timidity@/.sourceforge@/.net/,timidity}.
+
+
 @node MIDI block
 @subsection MIDI block
 
-@untranslated
+@cindex MIDI-Umgebung
+
+Eine @code{\midi}-Umgebung muss innerhalb von einer @code{\score}-Umgebung
+vorkommen, wenn MIDI-Ausgabe gewünscht ist.  Sie entspricht der
+@code{\layout}-Umgebung, aber ist etwas einfacher aufgebaut.  Oft wird
+die MIDI-Umgebung einfach leer gelassen, aber hier können auch
+Kontexte umgeändert werden, neue Kontexte definiert werden oder
+neue Werte definiert werden.  Das folgende Beispiel etwa definiert
+das MIDI-Tempo, ohne dass in der Partitur eine Metronombezeichnung
+gesetzt wird:
+
+@example
+\score @{
+  @var{...Noten...}
+  \midi @{
+    \context @{
+      \Score
+      tempoWholesPerMinute = #(ly:make-moment 72 4)
+    @}
+  @}
+@}
+@end example
+
+Hier wird das Tempo auf 72 Viertelnoten pro Minute definiert.  Wenn
+das Tempo auf diese Weise definiert wird, kann keine punktierte
+Note als Einheit angegeben werden.  Wenn sie benötigt wird, muss
+man sie in kleinere Einheiten auflösen.  Ein Tempo von 90 punktierten
+Viertelnoten pro Minute kann beispielsweise dargestellt werden
+als 270 Achtelnoten pro Minute:
+
+@example
+tempoWholesPerMinute = #(ly:make-moment 270 8)
+@end example
+
+@cindex MIDI-Kontextdefinitionen
+
+Kontextdefinitionen des @code{\midi}-Kontextes entsprechen
+der Syntax, wie sie in der @code{\layout}-Umgebung benutzt
+wird.  Klangübersetzungsmodule werden @code{performer}
+genannt.  Die Kontexte für die MIDI-Ausgabe sind in der
+Datei @file{../ly/@/performer@/-init@/.ly} definiert, siehe
+@rlearning{Other sources of information}.  Um beispielsweise
+die Auswirkung von Dynamikzeichen aus der MIDI-Ausgabe zu
+entfernen, müssen folgende Zeilen eingefügt werden:
+
+@example
+\midi @{
+  ...
+  \context @{
+    \Voice
+    \remove "Dynamic_performer"
+  @}
+@}
+@end example
+
+Eine MIDI-Ausgabe wird nur erstellt, wenn die @code{\midi}-Umgebung
+in eine Partiturumgebung eingefügt wird, die mit dem Befehl
+@code{\score} beginnt.  Wenn eine Partitur explizit etwa mit
+@code{\new Score} begonnen wird, und sich die MIDI-Umgebung hierin
+befindet, wird keine Ausgabe produziert.  Eine Lösung ist es, sowohl
+die @code{\new Score}- als auch die @code{\midi}-Umgebungen in eine
+@code{\score}-Umgebung einzuschließen.
+
+@example
+\score @{
+  \new Score @{ @dots{}Noten@dots{} @} 
+  \midi @{ @}
+@}
+@end example
 
 
 @node What goes into the MIDI output?
 @subsection What goes into the MIDI output?
 
-@untranslated
-
 
 @unnumberedsubsubsec Supported in MIDI
+
+@cindex Tonhöhen in MIDI
+@cindex MIDI, Tonhöhen
+@cindex Vierteltöne in MIDI
+@cindex MIDI, Vierteltöne
+@cindex Mikrotöne in MIDI
+@cindex MIDI, Mikrotöne
+@cindex Akkordsymbole in MIDI
+@cindex MIDI, Akkordsymbole
+@cindex Rhythmen in MIDI
+@cindex MIDI, Rhythmen
+
+Die folgenden Notationselemente werden in die MIDI-Ausgabe aufgenommen:
+
+@itemize
+@item Tonhöhen
+@item Mikrotöne (siehe @ref{Accidentals}. Für die Ausgabe wird ein
+Spieler benötigt, der Tonhöhen verändern kann.)
+@item Akkorde, die als Symbole notiert werden
+@item Rhythmen, die als Dauern notiert sind, inklusive N-tolen
+@item Tremolo, das ohne @q{@code{:}[@var{Zahl}]} notiert ist
+@item Überbindungen
+@item Dynamikzeichen
+@item Crescendi, decrescendi zu mehreren Noten
+@item Tempoänderungen, die mit einer Tempo-Bezeichnung eingegeben werden
+@item Gesangstext
+@end itemize
+
+
 @unnumberedsubsubsec Unsupported in MIDI
+
+Folgende Notationselemente werden nicht in die MIDI-Ausgabe einbeozogen:
+
+@itemize
+@item Rhythmus, der als Anmerkung notiert wird, bspw. Swing
+@item Tempoveränderungen, die als Anmerkung ohne Tempobezeichnung notiert werden
+@item Staccato und andere Artikultationen und Ornamente
+@item Legato- und Phrasierungsbögen
+@item Crescendi, decrescendi zu einer einzelnen Note
+@item Tremolo, notiert mit @q{@code{:}[@var{number}]}
+@item Bezifferter Bass
+@item Akkorde mit Mikrotönen
+@end itemize
+
+
 @node Repeats in MIDI
 @subsection Repeats in MIDI
 
-@untranslated
+@cindex Wiederholungen in MIDI
+@cindex MIDI und Wiederholungen
+
+@funindex \unfoldRepeats
+
+Mit einigen Veränderungungen im Notentext können alle Wiederholungstypen
+auch in der MIDI-Ausgabe wiedergegeben werden.  Das wird erreicht, indem
+die @code{\unfoldRepeats}-Funktion eingesetzt wird.  Diese Funktion
+verändert alle Wiederholungen in ausgeschriebene Noten.
+
+@lilypond[quote,verbatim]
+\unfoldRepeats {
+  \repeat tremolo 8 {c'32 e' }
+  \repeat percent 2 { c''8 d'' }
+  \repeat volta 2 {c'4 d' e' f'}
+  \alternative {
+    { g' a' a' g' }
+    {f' e' d' c' }
+  }
+}
+\bar "|."
+@end lilypond
+
+Wenn eine Partitur mit diesem Befehl erstellt wird, ist er notwendig,
+zwei @code{\score}-Umgebungen einzurichten: in der einen werden die
+Wiederholungen ausgeschrieben und nur eine MIDI-Ausgabe produziert,
+in der anderen werden die Wiederholungen notiert und als Partitur
+gesetzt.  Das Beispiel gibt einen Hinweis, wie eine derartige Datei
+aussehen kann:
+
+@example
+\score @{
+  @var{..music..}
+  \layout @{ .. @}
+@}
+\score @{
+  \unfoldRepeats @var{..music..}
+  \midi @{ .. @}
+@}
+@end example
 
 
 @node Controlling MIDI dynamics
 @subsection Controlling MIDI dynamics
 
-@untranslated
+Dynamik in der MIDI-Ausgabe wird durch den Dynamic_performer
+erstellt, welcher sich in einem @code{Voice}-Kontext befindet.
+Es ist möglich, sowohl die generelle Lautstärke einer MIDI-Datei
+als auch relative Lautstärken von Dynamikanweisungen und auch
+relative Lautstärke von einzelnen Instrumenten einzustellen.
 
 
 @unnumberedsubsubsec Dynamic marks
+
+
+Dynamikanweisungen werden als ein bestimmter Bruch der insgesamt
+zur Verfügung stehenden MIDI-Lautstärke notiert.  Die Standardbrüche
+reichen von 0,25 für @notation{ppppp} bis hin zu 0,95 für
+@notation{fffff}.  Diese Anweisung befinden sich in der Datei
+@file{../scm/midi.scm}, siehe auch @rlearning{Other sources of information}.
+Diese Brüche können nach Belieben geändert oder erweitert werden, indem
+eine Funktion erstellt wird, die ein Dynamikzeichen als Argument
+nimmt und den erforderlichen Bruch ausgibt; schließlich muss noch
+@code{Score.dynamicAbsoluteVolumeFunction} auf diese Funktion
+gesetzt werden.
+
+Beispielhaft soll gezeigt werden, wie man eine @notation{Rinforzando}-Dynamik,
+@code{\rfz}, auch in die MIDI-Ausgabe übernehmen kann.  Gleiches gilt
+für neue, selbstdefinierte Dynamikzeichen, die in den Standarddefinitionen
+nicht enthalten sind.  Die Scheme-Funktion, die hier definiert wird,
+setzt den Bruch von 0,9 für eine rfz-Anweisung und ruft andernfalls die
+Standardanweisungen auf:
+
+@lilypond[verbatim,quote]
+#(define (myDynamics dynamic)
+    (if (equal? dynamic "rfz")
+      0.9
+      (default-dynamic-absolute-volume dynamic)))
+
+\score {
+  \new Staff {
+    \set Staff.midiInstrument = #"cello"
+    \set Score.dynamicAbsoluteVolumeFunction = #myDynamics
+    \new Voice {
+       \relative c'' {
+         a\pp b c-\rfz
+       }
+    }
+  }
+  \layout {}
+  \midi {}
+}
+@end lilypond
+
+Alternativ, insbesondere wenn die gesamte Tabelle der MIDI-Lautstärken
+umdefiniert werden soll, ist es besser, die
+@notation{default-dynamic-absolute-volume}-Prozedur in der Datei
+@file{../scm/midi.scm} und die hiermit verknüpfte Tabelle als Modell
+zu benutzen.  Das letzte Beispiel dieses Abschnittes zeigt, wie das
+gemacht werden kann.
+
+
 @unnumberedsubsubsec Overall MIDI volume
+
+Die generellen Mindest- und Höchstwerte für die Lautstärke der MIDI-Datei
+wird kontrolliert, indem die Eigenschaften @code{midiMinimumVolume}
+unde @code{midiMaximumVolume} auf der @code{Score}-Ebene gesetzt
+werden.  Diese Eigenschaften haben nur Einfluss auf Dynamikzeichen, sodass
+ein Dynamikzeichen direkt an den Anfang der Partitur gestellt werden muss,
+wenn diese Einstellung von Anfang an Wirkung zeigen soll.  Der Bruch,
+der dann den einzelnen Dynamikzeichen entspricht, wird mit der
+Formel
+
+@example
+midiMinimumVolume + (midiMaximumVolume - midiMinimumVolume) * Bruch
+@end example
+
+@noindent
+errechnet.  Im folgenden Beispiel wird die generelle MIDI-Lautstärke
+auf den Bereich zwischen 0.2 und 0.5 eingeschränkt.
+
+@lilypond[verbatim,quote]
+\score {
+  <<
+    \new Staff {
+      \key g \major
+      \time 2/2
+      \set Staff.midiInstrument = #"flute"
+      \new Voice \relative c''' {
+        r2 g\mp g fis ~
+        fis4 g8 fis e2 ~
+        e4 d8 cis d2
+      }
+    }
+    \new Staff {
+      \key g \major
+      \set Staff.midiInstrument = #"clarinet"
+      \new Voice \relative c'' {
+        b1\p a2. b8 a
+        g2. fis8 e
+        fis2 r
+      }
+    }
+  >>
+  \layout { }
+  \midi {
+    \context {
+      \Score
+      tempoWholesPerMinute = #(ly:make-moment 72 2)
+      midiMinimumVolume = #0.2
+      midiMaximumVolume = #0.5
+    }
+  }
+}
+@end lilypond
+
+
 @unnumberedsubsubsec Equalizing different instruments (i)
+
+Wenn die Mindest- und Höchstwerte für die MIDI-Lautstärke
+innerhalb eines @code{Staff}-Kontextes gesetzt werden,
+kann damit die relative Lautstärke einzelner Instrumente kontrolliert
+werden.  Damit kann man die Qualität der MIDI-Datei
+merklich verbessern.
+
+In diesem Beispiel wird die Lautstärke der Klarinette relativ
+zur Lautstärke der Flöte verringert.  In jeder Stimme muss
+eine Dynamikanweisung für die erste Note gesetzt werden, damit
+diese Einstellung korrekt funktioniert.
+
+@lilypond[verbatim,quote]
+\score {
+  <<
+    \new Staff {
+      \key g \major
+      \time 2/2
+      \set Staff.midiInstrument = #"flute"
+      \set Staff.midiMinimumVolume = #0.7
+      \set Staff.midiMaximumVolume = #0.9
+      \new Voice \relative c''' {
+        r2 g\mp g fis ~
+        fis4 g8 fis e2 ~
+        e4 d8 cis d2
+      }
+    }
+    \new Staff {
+      \key g \major
+      \set Staff.midiInstrument = #"clarinet"
+      \set Staff.midiMinimumVolume = #0.3
+      \set Staff.midiMaximumVolume = #0.6
+      \new Voice \relative c'' {
+        b1\p a2. b8 a
+        g2. fis8 e
+        fis2 r
+      }
+    }
+  >>
+  \layout { }
+  \midi {
+    \context {
+      \Score
+      tempoWholesPerMinute = #(ly:make-moment 72 2)
+    }
+  }
+}
+@end lilypond
+
+
 @unnumberedsubsubsec Equalizing different instruments (ii)
+
+Wenn Mindest- und Höchstwerte für die Lautstärke der MIDI-Datei
+nicht vorgegeben werden, nimmt LilyPond standardmäßig einige
+Anpassungen für die Lautstärken bestimmter Instrumente vor.
+Diese Instrumente und ihre entsprechende Veränderung lassen
+sich aus der Tabelle @notation{instrument-equalizer-alist}
+in der Datei @file{../scm/midi.scm} entnehmen.
+
+Dieser grundlegende Equalizer kann ersetzt werden, indem die
+Funktion @code{instrumentEqualizer} im @code{Score}-Kontext auf
+eine neue Scheme-Funktion gesetzt wird, die MIDI-Instrumentbezeichnungen
+als einziges Argument akzeptiert und ein Zahlenpaar ausgibt, das
+den Höchst- und Mindestwert für die Lautstärke des entpsrechenden
+Instruments darstellt.  Die Ersetzung der Standardfunktion wird
+auf gleiche Weise vorgenommen, wie es schon für die
+@code{dynamicAbsoluteVolumeFunction} zu Beginn dieses Abschnittes
+gezeigt wurde.  Der Standard-Equalizer,
+@notation{default-instrument-equalizer} in der Datei
+@file{../scm/midi.scm} zeigt, wie solche eine Funktion erstellt werden
+kann.
+
+Das folgende Beispiel definiert für die Flöte und Klarinette relative
+Lautstärkewerte, die denen des vorigen Beispiels entsprechen.
+
+@lilypond[verbatim,quote]
+#(define my-instrument-equalizer-alist '())
+
+#(set! my-instrument-equalizer-alist
+  (append
+    '(
+      ("flute" . (0.7 . 0.9))
+      ("clarinet" . (0.3 . 0.6)))
+    my-instrument-equalizer-alist))
+
+#(define (my-instrument-equalizer s)
+  (let ((entry (assoc s my-instrument-equalizer-alist)))
+    (if entry
+      (cdr entry))))
+
+\score {
+  <<
+    \new Staff {
+      \key g \major
+      \time 2/2
+      \set Score.instrumentEqualizer = #my-instrument-equalizer
+      \set Staff.midiInstrument = #"flute"
+      \new Voice \relative c''' {
+        r2 g\mp g fis ~
+        fis4 g8 fis e2 ~
+        e4 d8 cis d2
+      }
+    }
+    \new Staff {
+      \key g \major
+      \set Staff.midiInstrument = #"clarinet"
+      \new Voice \relative c'' {
+        b1\p a2. b8 a
+        g2. fis8 e
+        fis2 r
+      }
+    }
+  >>
+  \layout { }
+  \midi {
+    \context {
+      \Score
+      tempoWholesPerMinute = #(ly:make-moment 72 2)
+    }
+  }
+}
+@end lilypond
+
+
+
+@node Percussion in MIDI
+@subsection Percussion in MIDI
+
+Schlagzeuginstrumente werden üblicherweise in einem @code{DrumStaff}-Kontext
+notiert.  Aus diese Weise werden sie korrekt in den MIDI-Kanal@tie{}10
+ausgegeben.  Eine Schlagzeuge mit diskreten Tonhöhen, wie Xylophon,
+Marima, Vibraphone, Pauken usw. werden wie @qq{normale} Instrumente
+in einem @code{Staff}-Kontext notiert.  Nur so lässt sich auch hier
+eine richtige MIDI-Ausgabe erreichen.
+
+Einige Instrumente, die keine diskreten Tonhöhen haben, können nicht
+über den MIDI-Kanal@tie{}10 erreicht werden und müssen deshalb in
+einem normalen @code{Staff}-Kontext notiert werden.  Es handelt sich
+um @code{melodic tom, taiko drum, synth drum} usw.
+
+Viele Schlagzeuginstrumnete sind nicht in den MIDI-Standard aufgenommen,
+z. B. Kastagnetten.  Die einfachste Methode, derartige Instrumente
+zu ersetzen, ist, einen Klang auszuwählen, der ihnen halbwegs ähnlich
+kommt.
+
+
+@knownissues
+
+Weil der MIDI-Standard keine Peitschenschläge kennt, wird ein
+Schlagstock (sidestick) für diesen Zweck eingesetzt.
index e960234bfcf2c357594514f88a2757dd8dfb0a62..7da20d298af4b741afa149f9b1282cdaaf5330b7 100644 (file)
@@ -1,12 +1,14 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*-
 @c This file is part of lilypond-program.tely
 @ignore
-    Translation of GIT committish: c6e236bc762071c4580cc15ea52695df646d31f7
+    Translation of GIT committish: 99b5022dc4baadd7000c94d5868cdb7cb9a8ed53
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
+@c \version "2.12.0"
+
 @c Translators: Till Rettig, Reinhold Kainhofer
 
 @ifclear INSTALL
@@ -50,12 +52,17 @@ darwin-x86  - MacOS X intel
 freebsd-64  - FreeBSD 6.x, x86_64
 freebsd-x86 - FreeBSD 4.x, x86
 linux-64    - Beliebige GNU/Linux Distribution, x86_64
-linux-arm   - Beliebige GNU/Linux Distribution, arm
 linux-ppc   - Beliebige GNU/Linux Distribution, powerpc
 linux-x86   - Beliebige GNU/Linux Distribution, x86
 mingw       - Windows x86
 @end example
 
+@knownissues
+
+Wenn Sie MacOS 10.3 oder 10.4 benutzen und Python-Skripte wie
+@command{convert-ly} und @command{lilypond-book} benutzen wollen,
+lesen Sie @ref{Setup for MacOS X,,,lilypond-program,Application Usage}.
+
 
 @node Compiling from source
 @section Compiling from source
@@ -63,8 +70,16 @@ mingw       - Windows x86
 LilyPond kann auch selbst direkt aus dem Quellcode des git-Depots 
 kompiliert werden. Da jedoch für die Kompilierung definitiv 
 Englisch-Kenntnisse vorhanden sein müssen, soll hier lediglich auf die 
-englische Dokumentation verwiesen werden.
-@c TODO: How do I insert a link to the English docs???
+englische Dokumentation verwiesen werden:
+@c DO NOT translate the following line at all.
+@iftex
+@ref{Compiling from source,,,lilypond-program,Application Usage}.
+@end iftex
+@ifhtml
+@c Please translate the following line (but not the .html file name)
+@uref{Compiling-from-source.html,Compiling from Source}.
+@end ifhtml
+
 
 @c TRANSLATORS:
 @c   Please **do not** translate anything below this line.  Users
index 49425f9b432b668eacc75fa44025df59bd006be9..69d5f5862398af3d1a468d7c1b4800e4d593a15a 100644 (file)
@@ -1,13 +1,13 @@
 @c -*- coding: utf-8; mode: texinfo; -*-
 @c This file is part of lilypond.tely
 @ignore
-    Translation of GIT committish: e831b9b97caae23725709d2fe11a6436240ed580
+    Translation of GIT committish: 499a511d4166feaada31114e097f86b5e0c56421
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 @c Translators: Till Rettig, Reinhold Kainhofer
 
 @node Introduction
@@ -17,8 +17,8 @@ Dieses Kapitel stellt dem Leser die Idee hinter LilyPond und die Dokumentation
 von LilyPond vor.
 
 @menu
-* Background::                  
-* About the documentation::     
+* Background::
+* About the documentation::
 @end menu
 
 
@@ -28,17 +28,23 @@ von LilyPond vor.
 Dieser Abschnitt behandelt die allgemeinen Ziele und die Architektur von LilyPond.
 
 @menu
-* Engraving::                   
-* Automated engraving::         
-* What symbols to engrave?::    
-* Music representation::        
-* Example applications::        
+* Engraving::
+* Automated engraving::
+* What symbols to engrave?::
+* Music representation::
+* Example applications::
 @end menu
 
 
 @node Engraving
 @unnumberedsubsec Engraving
 
+@cindex Notensatz
+@cindex Typographie
+@cindex Notengravur
+@cindex Gravur, Notensatz
+@cindex Plattendruck, Noten
+
 Die Kunst des Notensatzes wird auch als Notenstich bezeichnet. Dieser 
 Begriff stammt aus dem traditionellen Notendruck. Noch bis vor etwa 20 
 Jahren wurden Noten erstellt, indem man sie in eine Zink- oder Zinnplatte 
@@ -188,6 +194,8 @@ music = {
 
 @cindex normale Rhythmen
 @cindex normale Abstände
+@cindex Abstände, normal
+@cindex Rhythmen, normal
 
 In diesem Ausschnitt kommen nur Viertel vor, Noten, die in einem
  gleichmäßigen Rhythmus gespielt werden. Die Abstände sollten das
@@ -244,6 +252,9 @@ und von denen wir gerne spielen.
 @node Automated engraving
 @unnumberedsubsec Automated engraving
 
+@cindex Notensatz, automatisch
+@cindex automatischer Notensatz
+
 Wie sollen wir also jetzt die Typographie anwenden?
 Wie können wir erwarten, dass wir in der Lage wären, 
 ein Programm zu schreiben, dass den Beruf des 
@@ -286,6 +297,8 @@ Sprache C++ zwingt zu einer bestimmten Gruppierungsmethode,
 die nicht den Regeln für den Notensatz entspricht.
 @end itemize
 
+@cindex Scheme-Programmiersprache
+
 Diese Probleme wurden angegangen, indem ein Übersetzer für 
 die Programmiersprache Scheme integriert wurde und Teile
 von LilyPond in Scheme neu geschrieben wurden. Die derzeitige 
@@ -306,13 +319,17 @@ Beim ersten Akkord sind alle Objekte nach unten (oder links)
 \new Score \with {
    \override SpacingSpanner #'spacing-increment = #3
    \override TimeSignature #'transparent = ##t
-} \relative {
+} \relative c' {
    \stemDown <e g b>4_>-\arpeggio
    \override Arpeggio #'direction = #RIGHT
    \stemUp <e g b>4^>-\arpeggio
 }
 @end lilypond
 
+@cindex Formatierung einer Partitur
+@cindex Partitur, Formatierung
+@cindex Formatierungsregeln
+
 @noindent
 Der Prozess des Notensetzens besteht für das Programm darin,
 die Variablen der graphischen Objekte zu lesen und zu
@@ -354,34 +371,33 @@ die Notenköpfe gezeichnet werden, während des Ausschnitts verändert.
          (pos (ly:grob-property grob 'staff-position)))
     (if (memq 'note-head-interface interfaces)
         (begin
-          (ly:grob-set-property! grob 'stencil ly:text-interface::print)
-          (ly:grob-set-property! grob 'font-family 'roman)
-          (ly:grob-set-property! grob 'text
-            (make-raise-markup -0.5
-              (case pos
-                ((-5) (make-simple-markup "m"))
-                ((-3) (make-simple-markup "c "))
-                ((-2) (make-smaller-markup (make-bold-markup "2")))
-                (else (make-simple-markup "bla")))))))))
+          (ly:grob-set-property! grob 'stencil
+            (grob-interpret-markup grob
+              (make-lower-markup 0.5
+                (case pos
+                  ((-5) "m")
+                  ((-3) "c ")
+                  ((-2) (make-smaller-markup (make-bold-markup "2")))
+                  (else "bla")))))))))
 
 \new Voice \relative c' {
-   \stemUp
-   \set autoBeaming = ##f
-   \time 2/4
-   <d f g>4
-   \once \override NoteHead #'stencil = #ly: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>
-   \once \override NoteHead #'style = #'cross
-   <d f g>
-   \applyOutput #'Voice #mc-squared
-   <d f g>
-   <<
-      { d8[ es-( fis^^ g] fis2-) }
-      \repeat unfold 5 { \applyOutput #'Voice #mc-squared s8 }
-   >>
+  \stemUp
+  \set autoBeaming = ##f
+  \time 2/4
+  <d f g>4
+  \once \override NoteHead #'stencil = #ly: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
+  <d f g>4
+  \applyOutput #'Voice #mc-squared
+  <d f g>4
+  <<
+    { d8[ es-( fis^^ g] fis2-) }
+    \repeat unfold 5 { \applyOutput #'Voice #mc-squared s8 }
+  >>
 }
 @end lilypond
 
@@ -392,6 +408,10 @@ die Notenköpfe gezeichnet werden, während des Ausschnitts verändert.
 
 @cindex Notensatz
 @cindex Typographie
+@cindex Stempel
+@cindex Matrize
+@cindex Engraver
+@cindex Plugin
 
 Während des Notensatzprozesses entscheidet sich, wo
 Symbole platziert werden. Das kann aber nur gelingen, 
@@ -429,9 +449,9 @@ dem @code{Note_heads_engraver} (@qq{Notenkopfstecher}) der Satz begonnen wird.
 \include "engraver-example.ily"
 
 \score {
-   \topVoice
-   \layout {
-   \context {
+  \topVoice
+  \layout {
+    \context {
       \Voice
       \remove "Stem_engraver"
       \remove "Phrasing_slur_engraver"
@@ -439,8 +459,8 @@ dem @code{Note_heads_engraver} (@qq{Notenkopfstecher}) der Satz begonnen wird.
       \remove "Script_engraver"
       \remove "Beam_engraver"
       \remove "Auto_beam_engraver"
-   }
-   \context {
+    }
+    \context {
       \Staff
       \remove "Accidental_engraver"
       \remove "Key_engraver"
@@ -449,8 +469,8 @@ dem @code{Note_heads_engraver} (@qq{Notenkopfstecher}) der Satz begonnen wird.
       \remove "Time_signature_engraver"
       \remove "Staff_symbol_engraver"
       \consists "Pitch_squash_engraver"
-   }
-}
+    }
+  }
 }
 @end lilypond
 
@@ -559,6 +579,11 @@ hinzufügen, erhalten wir eine vollständige Notation.
 \score { \topVoice }
 @end lilypond
 
+@cindex Polyphonie
+@cindex Mehrstimmigkeit
+@cindex Notensatz, Mehrstimmigkeit
+@cindex Kontexte
+
 Dieses System funktioniert gut für monophone Musik, aber wie geht 
 es mit Polyphonie? Hier müssen sich mehrere Stimmen ein System teilen.
 
@@ -578,10 +603,11 @@ Taktstriche usw. dagegen in einer Gruppe mit dem Namen @qq{Staff context}
 mehr als nur einen Voice-Kontext. Auf gleiche Weise können auch mehrere Staff-Kontexte
 in einen großen Score-Kontext (Partiturkontext) eingebunden werden.
 
-@seealso
 
+@seealso
 Programmreferenz: @rinternals{Contexts}.
 
+
 @lilypond[quote,ragged-right]
 \include "engraver-example.ily"
 \score {
@@ -595,6 +621,9 @@ Programmreferenz: @rinternals{Contexts}.
 @node Music representation
 @unnumberedsubsec Music representation
 
+@cindex Syntax
+@cindex rekursive Strukturen
+
 Idealerweise ist das Eingabeformat für ein höheres Satzsystem die 
 abstrakte Beschreibung des Inhaltes. In diesem Fall wäre das die 
 Musik selber. Das stellt uns aber vor ein ziemlich großes Problem, 
@@ -629,7 +658,7 @@ kleine Teile zu größeren kombiniert werden, kann komplexere Musik
 dargestellt werden. So etwa hier:
 
 @lilypond[quote,verbatim,fragment,relative=1]
-c4
+f4
 @end lilypond
 
 @noindent
@@ -688,6 +717,9 @@ Analysieren und Darstellen nimmt nur etwa 10% des Codes ein:
 @node Example applications
 @unnumberedsubsec Example applications
 
+@cindex einfaches Beispiel
+@cindex Beispiel, einfach
+
 Wir haben LilyPond als einen Versuch geschrieben, wie man die Kunst des 
 Musiksatzes in ein Computerprogramm gießen kann. Dieses 
 Programm kann nun dank vieler harter Arbeitsstunden benutzt werden, 
@@ -708,15 +740,88 @@ ein Lead Sheet.
 @lilypond[quote,ragged-right]
 <<
    \chords { c2 c f2 c }
-   \new Staff \relative c' { \time 2/4 c4 c g'4 g a4 a g2 }
-   \new Lyrics \lyricmode { twin4 kle twin kle lit tle star2 }
+   \new Staff
+   \relative c' {
+     \time 2/4
+     c4 c g' g a a g2
+   }
+   \addlyrics { twin -- kle twin -- kle lit -- tle star }
 >>
 @end lilypond
 
 Mehrstimmige Notation und Klaviermusik kann auch gesetzt werden. Das 
 nächste Beispiel zeigt einige etwas exotischere Konstruktionen:
 
-@lilypondfile[quote,ragged-right]{screech-boink.ly}
+@lilypond[quote]
+\header {
+  title = "Screech and boink"
+  subtitle = "Random complex notation"
+  composer = "Han-Wen Nienhuys"
+}
+
+\score {
+  \context PianoStaff <<
+    \new Staff = "up" {
+      \time 4/8
+      \key c \minor
+      << {
+        \revert Stem #'direction
+        \change Staff = down
+        \set subdivideBeams = ##t
+        g16.[
+          \change Staff = up
+          c'''32
+          \change Staff = down
+          g32
+          \change Staff = up
+          c'''32
+          \change Staff = down
+          g16]
+        \change Staff = up
+        \stemUp
+        \set followVoice = ##t
+        c'''32([ b''16 a''16 gis''16 g''32)]
+      } \\ {
+        s4 \times 2/3 { d'16[ f' g'] } as'32[ b''32 e'' d'']
+      } \\ {
+        s4 \autoBeamOff d''8.. f''32
+      } \\ {
+        s4 es''4
+      } >>
+    }
+
+    \new Staff = "down" {
+      \clef bass
+      \key c \minor
+      \set subdivideBeams = ##f
+      \override Stem  #'french-beaming = ##t
+      \override 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
+        <cis, e, gis, b, cis>4\arpeggio
+      }
+    >> }
+  >>
+  \midi {
+    \context {
+      \Score
+      tempoWholesPerMinute = #(ly:make-moment 60 8)
+    }
+  }
+  \layout {
+    \context {
+      \Staff
+      \consists Horizontal_bracket_engraver
+    }
+  }
+}
+@end lilypond
 
 Die obenstehenden Beispiele wurde manuell erstellt, aber das ist nicht 
 die einzige Möglichkeit. Da der Satz fast vollständig automatisch abläuft, 
@@ -737,16 +842,22 @@ es sehr einfach, Noten und Text zu kombinieren.
 @node About the documentation
 @section About the documentation
 
+@cindex Handbuch zum Lernen
+@cindex Glossar
+@cindex Anwendungsbenutzung
+@cindex Schnipselliste
+@cindex Referenz der Interna
+
 Die Dokumentation zu LilyPond ist unterteilt in mehrere Handbücher.
 
 @c leave these lines wrapping around.  It's some texinfo 4.12 thing. -gp
 @c This is actually a limitation of texi2html. -jm
 @menu
-* About the Learning Manual::  Dieses Handbuch stellt LilyPond vor und vermittelt die Grundkenntnisse um damit arbeiten zu können.
+* About the Learning Manual::  Dieses Handbuch stellt LilyPond vor und vermittelt die Grundkenntnisse, um damit arbeiten zu können.
 * About the Music Glossary::  Dieses Handbuch erklärt zahlreiche musikalische Fachausdrücke inklusive Übersetzungen in verschiedene Sprachen.
-* About the Notation Reference::  Dieses Handbuch stellt den Hauptteil der Dokumentation dar.  Es liefert detaillierte Informationen zur Notation mit LilyPond.  Als Voraussetzung werden die Kenntnisse des @q{Handbuchs zum Lernen} angenommen.
-* About the Application Usage::  Dieses Handbuch diskutiert den konkreten Aufruf des @q{lilypond} Programms, sowie Betriebssystem-spezifische Aspekte.
-* About the Snippet List::  Dies ist eine Sammlung von kurzen LilyPond Beispielen.
+* About the Notation Reference::  Dieses Handbuch stellt den Hauptteil der Dokumentation dar.  Es liefert detaillierte Informationen zum Notensatz mit LilyPond.  Als Voraussetzung werden die Kenntnisse des @qq{Handbuchs zum Lernen} angenommen.
+* About the Application Usage::  Dieses Handbuch diskutiert den konkreten Aufruf des @qq{lilypond}-Programms und wie LilyPond-Notensatz in andere Programme integriert werden kann.
+* About the Snippet List::  Dies ist eine Sammlung von kurzen LilyPond-Beispielen.
 * About the Internals Reference::  Dieses Dokument liefert Referenzwissen über LilyPonds interne Strukturen und ist vor allem bei der Erstellung von tiefergehenden Optimierungen und Anpassungen hilfreich.
 * Other documentation::         Es existieren noch etliche weitere Teile der Dokumentation, wie etwa die @q{Neueigkeiten} Seite oder das Archiv der Mailingliste.
 @end menu
@@ -755,6 +866,8 @@ Die Dokumentation zu LilyPond ist unterteilt in mehrere Handbücher.
 @node About the Learning Manual
 @unnumberedsubsec About the Learning Manual
 
+@cindex Handbuch zum Lernen
+
 Dieses Handbuch erklärt die Grundbegriffe von LilyPond und stellt 
 die fundamentalen Konzepte hinter dem Programm vor. Diese Kapitel sollten
 in linearer Reihenfolge gelesen werden.
@@ -828,16 +941,20 @@ gar nicht.
 @cindex Thesaurus
 @cindex Fremdsprache
 
-@rglosnamed{Top,Das Musikglossar} erklärt musikalische Fachausdrücke und 
+@rglosnamed{Top,Das Glossar} erklärt musikalische Fachausdrücke und 
 enthält auch deren Übersetzungen in diverse Sprachen.  Wenn Sie mit
 Musiknotation oder der (englisch-sprachigen) Musikterminologie nicht vertraut 
 sind (vor allem, wenn Englisch nicht Ihre Muttersprache ist), ist es
-sehr empfehlenswert, das Musikglossar immer wieder zu Rate zu ziehen.
+sehr empfehlenswert, das Glossar immer wieder zu Rate zu ziehen.
 
 
 @node About the Notation Reference
 @unnumberedsubsec About the Notation Reference
 
+@cindex Notationsreferenz
+@cindex Anhänge
+@cindex Referenz zum Notensatz
+
 In diesem Buch werden alle LilyPond-Befehle erklärt, die Notationszeichen 
 produzieren. Es geht von der Annahme aus, dass der Leser sich mit den 
 Grundkonzepten des Programmes im Handbuch zum Lernen bekannt gemacht hat.
@@ -912,6 +1029,10 @@ ist ein vollständiger Index.
 @node About the Application Usage
 @unnumberedsubsec About the Application Usage
 
+@cindex Anwendungsbenutzung
+@cindex Benutzung, lilypond-Programm
+@cindex Integration von LilyPond in andere Programme
+
 In diesem Buch wird erklärt, wie das Programm ausgeführt wird und 
 wie die Notation von LilyPond in andere Programme integriert werden 
 kann.
@@ -955,11 +1076,13 @@ von Notensatzformaten in das @code{.ly}-Format.
 
 @cindex Schnipsel
 @cindex LSR
+@cindex LilyPond Snippet Repository
+@cindex LilyPond-Schnipsel-Depot
 
-Die @rlsrnamed{Top,Schnipsel} sind eine ausführliche Sammlung kurzer 
+Die @rlsrnamed{Top,LilyPond-Schnipsel} sind eine ausführliche Sammlung kurzer 
 Beispiele, anhand derer Tricks, Tipps und Spezialfunktionen von LilyPond
 demonstriert werden. Die meisten dieser Schnipsel können auch im 
- @uref{http://lsr.dsi.unimi.it/,LilyPond Schnipsel Depot} betrachtet 
+ @uref{http://lsr.dsi.unimi.it/,LilyPond-Schnipsel-Depot} betrachtet 
 werden. Diese Internetseite verfügt auch über ein 
 durchsuchbares LilyPond-Handbuch.
 
@@ -970,7 +1093,9 @@ dort jeweils im Abschnitt @strong{Siehe auch} verlinkt.
 @node About the Internals Reference
 @unnumberedsubsec About the Internals Reference
 
-Die @rinternalsnamed{Top,Programmreferenz} ist eine Sammlung intensiv 
+@cindex Referenz der Interna
+
+Die @rinternalsnamed{Top,Referenz der Interna} ist eine Sammlung intensiv 
 verlinkter HTML-Seiten, die alle Details jeder einzelnen 
 LilyPond-Klasse, jedes Objektes und jeder Funktion erklären. Sie wird 
 direkt aus den Satzdefinitionen im Quellcode produziert.
index a7d4f8634bf854be28d17d17a96a79453dad8fa6..c8c268241a8709df867ba77c477a69cf2ceafc45 100644 (file)
@@ -1,17 +1,27 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*-
 @c This file is part of lilypond.tely
 @ignore
-    Translation of GIT committish: 19fc0f930f921ca2609e0e60aa26f9d980771b97
+    Translation of GIT committish: 499a511d4166feaada31114e097f86b5e0c56421
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @node Keyboard and other multi-staff instruments
 @section Keyboard and other multi-staff instruments
 
+@lilypondfile[quote]{keyboard-headword.ly}
+
+Dieser Abschnitt behandelt verschiedene Notationsaspekte, die
+typischerweise in Noten für Tasteninstrumente und andere
+Instrumente auf mehreren Notensystemen auftreten, wie etwa
+Harfe und Vibraphon.  Hier wird die gesamte Gruppe von
+Instrumenten, die auf mehreren Systemen notiert werden, als
+@qq{Tasteninstrumente} bezeichnet, auch wenn einige von ihnen
+keine Tasten aufweisen.
+
 @menu
 * Common notation for keyboards::  
 * Piano::                       
@@ -22,6 +32,9 @@
 @node Common notation for keyboards
 @subsection Common notation for keyboards
 
+Dieser Abschnitt zeigt allgemeine Eigenschaften des Notensatzes, die
+für die meisten Instrumente mit mehreren Systemen benötigt werden.
+
 @menu
 * References for keyboards::    
 * Changing staff manually::     
 @node References for keyboards
 @unnumberedsubsubsec References for keyboards
 
+@cindex Klaviersystem
+@cindex Piano-System
+@cindex Notensystem, Klavier
+@cindex Notensystem, Tasteninstrumente
+@cindex Tasteninstrumente, Notensystem
+
+@funindex PianoStaff
+
+Tasteninstrumente werden normalerweise auf einem Klaviersystem
+notiert.  Es besteht aus zwei Notensystemen, die durch 
+eine Klammer verbunden sind.  Die gleiche Notation wird auch für
+andere Tasteninstrumente sowie Harfen verwendet.  Orgelmusik
+wird normalerweise auf zwei Systemen innerhalb eines Klaviersystems
+notiert, denen noch ein drittes normales Notensystem für die
+Pedaltöne hinzugefügt wird.
+
+Die Systeme eines Klaviersystems sind ziemlich unabhängig, aber
+Stimmen können bei Bedarf zwischen den Systemen wechseln.
+
+Einige häufige Besonderheiten von Notation für Tasteninstrumenten
+wird an anderen Stellen besprochen:
+
+@itemize
+
+@item Noten für Tasteninstrumente haben oft mehrere Stimmen und 
+die Anzahl der Stimmen kann sich häufig ändern.  Das ist
+beschrieben in
+@ref{Collision resolution}.
+
+@item Noten für Tasteninstrumente kann auch parallel, Takt für
+Takt notiert werden, wie gezeigt in
+@ref{Writing music in parallel}.
+
+@item Fingersatz wird erklärt in
+@ref{Fingering instructions}.
+
+@item Orgelpedal-Zeichen werden als Artikulationszeichen notiert,
+siehe
+@ref{List of articulations}.
+
+@item Vertikale Rasterlinien können erstellt werden, siehe
+@ref{Grid lines}.
+
+@item Noten für Tasteninstrumente beinhalten oft 
+@notation{Laissez vibrer}-Bögen und Bindebögen mit Arpeggio
+oder Tremolo, siehe hierzu
+@ref{Ties}.
+
+@item Arpeggios können auch zwischen den Systemen verbunden
+werden, siehe hierzu
+@ref{Arpeggio}.
+
+@item Tremolo-Zeichen finden sich in
+@ref{Tremolo repeats}.
+
+@item Viele der Optimierungen, die für Tastenmusik nötig sein
+können, sind demonstriert in
+@rlearning{Real music example}.
 
-Ein Pianosystem besteht aus zwei normalen Notensystemen, die durch 
-eine Klammer verbunden sind. Die Systeme sind verhältnismäßig 
-unabhängig, aber zeitweise können Stimmen zwischen den Systemen 
-wechseln. Die gleiche Notation wird auch für andere Tasteninstrumente 
-sowie Harfen verwendet. Das Klaviersystem (mit dem Befehl 
-@code{PianoStaff} erstellt) ist speziell dazu geschaffen, Stimmen 
-zwischen den Systemen wechseln zu lassen. In diesem Abschnitt werden 
-das Klaviersystem und andere Eigenheiten der Pianonotation besprochen.
+@item Unsichtbare Noten können eingesetzt werden, um
+Überbindungen zwischen Stimmen zu setzen, siehe
+@rlearning{Other uses for tweaks}.
+
+@end itemize
+
+
+@c @snippets
+@c @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+@c {forcing-visibility-of-systems-with-multi-bar-rests-when-using-\RemoveEmptyStaffContext.ly}
+@c http://lsr.dsi.unimi.it/LSR/Item?u=1&id=312
+
+
+@seealso
+Handbuch zum Lernen:
+@rlearning{Real music example},
+@rlearning{Other uses for tweaks}.
+
+Notationsreferenz:
+@ref{Grouping staves},
+@ref{Instrument names},
+@ref{Collision resolution},
+@ref{Writing music in parallel},
+@ref{Fingering instructions},
+@ref{List of articulations},
+@ref{Grid lines},
+@ref{Ties},
+@ref{Arpeggio},
+@ref{Tremolo repeats}.
+
+Schnipsel:
+@rlsr{Keyboards}.
+
+Referenz der Interna:
+@rinternals{PianoStaff}.
 
 @knownissues
 
-Dynamische Zeichen werden nicht automatisch mittig notiert, aber 
-dafür gibt es Lösungen, vgl. die 
-@q{piano centered dynamics}-Vorlage in @rlearning{Piano templates}.
+@cindex Tasteninstrumente, zentrierte Dynamik
+@cindex Dynamik, zentriert für Tasteninstrumente
+@cindex Klaviermusik, Dynamik zentrierten
+@cindex zentrierte Musik für Tasteninstrumente
+@funindex staff-padding
+
+Dynamikzeichen werden nicht automatische zwischen den Systemen
+zentriert, aber es gibt hierzu Lösungen.  Eine Möglichkeit ist
+die Vorlage @qq{Klavier mit zentrierten Lautstärkebezeichnungen} 
+im Abschnitt @rlearning{Piano templates}; eine andere Möglichkeit
+ist es, die @code{staff-padding}-Eigenschaft von
+Lautstärkebezeichnungen zu erhöhen, wie gezeigt in
+@rlearning{Moving objects}.
 
 
 @node Changing staff manually
@@ -57,100 +165,168 @@ dafür gibt es Lösungen, vgl. die
 @cindex manuelle Systemwechsel
 @cindex Systemwechsel, manuell
 @cindex Wechsel des Systems, manuell
+@cindex Noten, Wechsel zwischen Systemen
+@cindex Springen zwischen Systemen
+@cindex Balken zwischen Systemen
+
+@funindex \change
+@funindex change
 
 Stimmen können mit dem Befehl
+
 @example
-\change Staff = @var{Systembezeichnung} @var{Noten}
+\change Staff = @var{Systembezeichnung}
 @end example
 
 @noindent
-manuell erzielt werden. Die Zeichenkette @var{Systembezeichnung} ist die 
-Bezeichnung des Systems. Damit wird die aktuelle Stimme vom aktuellen 
-System zu dem System mit der @var{Systembezeichnung} gewechselt. 
-Üblicherweise ist die Systembezeichnung @code{"up"} oder
-@code{"down"}.  Dieses System (@code{Staff}), auf das verweisen wird, 
-muss auch wirklich existieren, weshalb die Aufstellung eines Klaviersystems 
-dann üblicherweise damit beginnt, die Systeme zu benennen. Hierbei können 
-natürlich beliebige Namen vergeben werden.
+manuell erzielt werden.  Die Zeichenkette @var{Systembezeichnung}
+ist die Bezeichnung des Systems.  Damit wird die aktuelle Stimme
+vom aktuellen System zu dem System mit der @var{Systembezeichnung}
+gewechselt.  Üblicherweise ist die Systembezeichnung @code{"up"}
+oder @code{"down"}, @code{"RH"} oder @code{"LH"}.
 
-@example
-<<
-  \new Staff = "up" @{
-    \skip 1 * 10  % @emph{keep staff alive}
-    @}
-  \new Staff = "down" @{
-    \skip 1 * 10  % @emph{idem}
-    @}
+Balken zwischen den Systemen werden automatisch erstellt:
+
+@lilypond[verbatim,quote]
+\new PianoStaff <<
+  \new Staff = "up" {
+    <e' c'>8
+    \change Staff = "down"
+    g8 fis g
+    \change Staff = "up"
+    <g'' c''>8
+    \change Staff = "down"
+    e8 dis e
+    \change Staff = "up"
+  }
+  \new Staff = "down" {
+    \clef bass
+    % keep staff alive
+    s1
+  }
 >>
-@end example
+@end lilypond
 
 @noindent
-Die einzelnen Stimmen werden mit dem @code{Voice}-Befehl 
-daraufhin eingefügt.
+Wenn die Balken verändert werden müssen, sollte zuerst die Richtung
+des Balkens beeinflusst werden.  Die Balkenposition wird dann von
+der Mitte des Systems gemessen, dass näher am Balken ist.  Ein
+einfaches Beispiel ist gezeigt in @rlearning{Fixing overlapping notation}.
 
-@example
-\context Staff = down
-  \new Voice @{ @dots{} \change Staff = up @dots{} @}
-@end example
+@seealso
+Handbuch zum Lernen:
+@rlearning{Fixing overlapping notation}.
+
+Notationsreferenz:
+@ref{Stems},
+@ref{Automatic beams}.
+
+Schnipsel:
+@rlsr{Keyboards}.
+
+Referenz der Interna:
+@rinternals{Beam},
+@rinternals{ContextChange}.
 
 
 @node Changing staff automatically
 @unnumberedsubsubsec Changing staff automatically
+
 @cindex Automatischer Systemwechsel
+@cindex Systemwechsel, automatisch
+@cindex Wechsel des Systems, automatisch
+
+@funindex \autochange
+@funindex autochange
+@funindex PianoStaff
 
 Stimmen können angewiesen werden, automatisch zwischen dem 
-oberen und unteren System zu wechseln. Die Syntax hierfür lautet:
+oberen und unteren System zu wechseln.  Die Syntax hierfür lautet:
 
-@quotation
 @example
 \autochange @dots{}@var{Noten}@dots{}
 @end example
-@end quotation
 
 @noindent
 Damit werden zwei Notensysteme innerhalb des aktiven Klaviersystems 
 erstellt, die @qq{oben} (@code{up}) und @qq{unten} (@code{down}) genannt 
-werden. Auf dem unteren System wird als Standard der Bassschlüssel 
-gesetzt.
+werden.  Auf dem unteren System wird als Standard der Bassschlüssel 
+gesetzt.  Der Wechsel wird automatisch basierend auf der Tonhöhe der Note 
+vorgenommen (als Wechselpunkt gilt das eingestrichene C).  Dabei 
+wird die Richtung auch über Pausen hinweg im Voraus bestimmt.
+
+@lilypond[quote,verbatim]
+\new PianoStaff {
+  \autochange {
+    g4 a b c'
+    d'4 r a g
+  }
+}
+@end lilypond
+
+@cindex relativer Modus und automatischer Systemwechsel
+@cindex automatischer Systemwechsel und relativer Modus
+
+@funindex \relative
+@funindex relative
 
 Ein @code{\relative}-Abschnitt, der sich außerhalb des 
 @code{\autochange}-Abschnittes befindet, hat keinen Einfluss auf die 
-Notenhöhen der @var{Noten}. Es muss also bei Bedarf ein 
-weiterer @code{\relative}-Befehl innerhalb des Abschnittes 
-benutzt werden.
+Notenhöhen.
 
-@quotation
-@example
-\autochange \relative @dots{} @dots{}
-@end example
-@end quotation
+Wenn individuelle Kontrolle über die einzelen Systeme benötigt
+wird, können sie manuell mit den Bezeichnungen  @code{"up"} und
+@code{"down"} erstellt werden.  Der @code{\autochange}-Befehl
+wechselt dann die Stimme zwischen den Systemen.
 
-Der Wechsel wird automatisch basierend auf der Tonhöhe der Note 
-vorgenommen (als Wechselpunkt gilt das eingestrichene C). Dabei 
-wird die Richtung auch über Pausen hinweg im Voraus bestimmt.
+@warning{Wenn Systeme manuell erstellt werden, @strong{müssen} sie genau
+die Bezeichnungen @code{"up"} und @code{"down"} bekommen, damit die
+automatische Wechselfunktion sie erkennen kann.}
 
-@lilypond[quote,verbatim,ragged-right]
-\new PianoStaff
-  \autochange \relative c'
-  {
-    g4 a b c d r4 a g
+Systeme müssen etwa manuell erstellt werden, damit die Tonart im unteren
+System gesetzt werden kann:
+
+@c Keep Ly needed, otherwise 'up' and 'down' get
+@c incorrectly translated in verbatim output
+@c KEEP LY
+@lilypond[quote,verbatim,nogettext]
+\new PianoStaff <<
+  \new Staff = "up" {
+    \new Voice = "melodieEins" {
+      \key g \major
+      \autochange \relative c' {
+        g8 b a c b d c e
+        d8 r fis, g a2
+      }
+    }
   }
+  \new Staff = "down" {
+    \key g \major
+    \clef bass
+  }
+>>
 @end lilypond
 
-
 @seealso
+Notationsreferenz:
+@ref{Changing staff manually}.
 
-Im Handbuch: @rlearning{Single staff}.
+Schnipsel:
+@rlsr{Keyboards}.
+
+Referenz der Interna:
+@rinternals{AutoChangeMusic}.
 
-Programmreferenz: @rinternals{AutoChangeMusic}.
 @knownissues
 
-Der Systemwechsel wird nicht immer an der optimalen Stelle vorgenommen. 
-Für hohe Qualität muss der Wechsel mit der Hand eingegeben werden.
+@cindex Akkorde, zwischen Systemen mit \autochange
+
+Die Auteilung auf die Systeme geschieht nicht unbedingt an optimaler
+Stelle.  Für bessere Qualität müssen die Wechsel manuell eingestellt
+werden.
 
-@code{\autochange} kann sich nicht innerhalb einer @code{\times}-Umgebung 
-befinden.
+Akkrode werde nicht über die Systeme verteilt, sie werden dem
+System zugewiesen, auf dem sich ihre erste Note befinden würde.
 
 
 @node Staff-change lines
@@ -159,36 +335,50 @@ befinden.
 @cindex Stimmkreuzung
 @cindex Systemwechsel von Stimmen
 @cindex Wechsel zwischen Systemen
+@cindex Stimme folgen
+@cindex Folgen einer Stimmen in anderes System
+@cindex Stimmfolgestriche
+@cindex Striche zur Stimmverfolgung
 
 @funindex followVoice
+@funindex \showStaffSwitch
+@funindex showStaffSwitch
+@funindex \hideStaffSwitch
+@funindex hideStaffSwitch
 
 Immer, wenn eine Stimme von einem Klaviersystem zu dem anderen 
 wechselt, kann automatisch eine Linie zur Verdeutlichung des 
-Stimmenverlaufs ausgegeben werden. Das wird erreicht, indem 
-@code{followVoice} aktiviert wird:
+Stimmenverlaufs ausgegeben werden:
 
-@lilypond[quote,ragged-right,fragment,relative=1,verbatim]
+@lilypond[quote,verbatim,relative=1]
 \new PianoStaff <<
-  \new Staff="one" {
-    \set followVoice = ##t
+  \new Staff = "one" {
+    \showStaffSwitch
     c1
-    \change Staff=two
+    \change Staff = "two"
     b2 a
   }
-  \new Staff="two" { \clef bass \skip 1*2 }
+  \new Staff = "two" {
+    \clef bass
+    s1*2
+  }
 >>
 @end lilypond
 
-@seealso
-
-Programmreferenz: @rinternals{VoiceFollower}.
-
 @predefined
-
 @funindex \showStaffSwitch
 @code{\showStaffSwitch},
 @funindex \hideStaffSwitch
 @code{\hideStaffSwitch}.
+@endpredefined
+
+@seealso
+Schnipsel:
+@rlsr{Keyboards}.
+
+Referenz der Interna:
+@rinternals{Note_head_line_engraver},
+@rinternals{VoiceFollower}.
 
 
 @node Cross-staff stems
@@ -197,116 +387,168 @@ Programmreferenz: @rinternals{VoiceFollower}.
 @cindex Hälse über zwei Systeme
 @cindex System querende Hälse
 @cindex Abstand zwischen Systemen in Klaviernoten
+@cindex Notenhälse über zwei Systeme
+@cindex Akkorde über zwei Systeme
+
+@funindex Stem
+@funindex cross-staff
+@funindex length
+@funindex flag-style
 
 Akkorde, die über zwei Systeme reichen, können erstellt werden,
 indem die Länge der Hälse im unteren System vergrößert wird, 
 bis sie zum oberen System hinauf reichen bzw. umgekehrt bei 
 Hälsen, die nach unten zeigen.
 
-@lilypond[ragged-right,verbatim,quote]
-stemExtend = {
-  \once \override Stem #'length = #10
-  \once \override Stem #'cross-staff = ##t
-}
-noFlag = \once \override Stem #'flag-style = #'no-flag
+@lilypond[verbatim,quote]
 \new PianoStaff <<
   \new Staff {
-    \stemDown \stemExtend
-    f'4
-    \stemExtend \noFlag
-    f'8
+    \relative c' {
+      f8 e4 d8 d f e4
+    }
   }
   \new Staff {
-    \clef bass
-    a4 a8
+    \relative c' {
+      << {
+        \clef bass
+        % stems may overlap the other staff
+        \override Stem #'cross-staff = ##t
+        % extend the stems to reach other other staff
+        \override Stem #'length = #12
+        % do not print extra flags
+        \override Stem #'flag-style = #'no-flag
+        % prevent beaming as needed
+        a8 g4 f8 f bes\noBeam g4
+      }
+      \\
+      {
+        f,2 bes4 c
+      } >>
+    }
   }
 >>
 @end lilypond
 
+@snippets
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{indicating-cross-staff-chords-with-arpeggio-bracket.ly}
+
+@seealso
+Schnipsel:
+@rlsr{Keyboards}.
+
+Referenz der Interna:
+@rinternals{Stem}.
+
 
 @node Piano
 @subsection Piano
 
+Dieser Abschnitt zeigt Eigenheiten der Notation von Klavermusik
+
 @menu
 * Piano pedals::                
 @end menu
 
 @node Piano pedals
 @unnumberedsubsubsec Piano pedals
-@cindex Pedalbezeichnung
-
-Klaviere haben Pedale, mit denen die Klangeigenschaften beeinflusst werden 
-können. Normalerweise besitzt ein Klavier drei Pedale, das linke oder 
-Haltepedal, das rechte oder Una-corda-Pedal und das Sostenuto-Pedal.
 
-Spielanweisungen für das Pedal können durch die Befehle 
-@code{\sustainOn} (linkes Pedal), @code{\sustainOff} (linkes Pedal 
-hoch), @code{\unaCorda} (rechtes Pedal), @code{\treCorde} (rechtes 
-Pedal hoch), @code{\sostenutoOn} (mittleres Pedal) und 
-@code{\sostenutoOff} (mittleres Pedal hoch) anschließend an eine 
-Note oder einen Akkord notiert werden.
-
-@lilypond[quote,ragged-right,fragment,verbatim]
-c'4\sustainOn c'4\sustainOff
+@cindex Pedalbezeichnung
+@cindex Klavier, Pedalbezeichnung
+@cindex Piano, Pedalbezeichnung
+@cindex sostenuto-Pedal
+@cindex Pedal, sostenuto
+@cindex una corda
+@cindex tre corde
+@cindex sos.
+@cindex U.C.
+
+@funindex \sustainOn
+@funindex sustainOn
+@funindex \sustainOff
+@funindex sustainOff
+@funindex \sostenutoOn
+@funindex sostenutoOn
+@funindex \sostenutoOff
+@funindex sostenutoOff
+@funindex \unaCorda
+@funindex unaCorda
+@funindex \treCorde
+@funindex treCorde
+
+Klaviere (teilweise auch Vibraphone und Celesta) besitzen üblicherweise
+drei Pedale, das linke oder Haltepedal, das rechte oder Una-corda-Pedal
+und das Sostenuto-Pedal.  Die englischen Begriff hierzu lauten:
+@notation{sustain}, @notation{sostenuto} und @notation{una corda}.
+
+@lilypond[quote,verbatim,relative=2]
+c4\sustainOn d e g
+<c, f a>1\sustainOff
+c4\sostenutoOn e g c,
+<bes d f>1\sostenutoOff
+c4\unaCorda d e g
+<d fis a>1\treCorde
 @end lilypond
 
-Die Ausgabe kann verändert werden, indem der Wert 
-What is printed can be modified by setting @code{pedal@var{X}Strings},
-where @var{X} is one of the pedal types: @code{Sustain},
-@code{Sostenuto} or @code{UnaCorda}.  Refer to
-@rinternals{SustainPedal} in the program reference for more
-information.
+@cindex Pedalbezeichnung, Stile
+@cindex Haltepedal, Stile
+@cindex Pedalbezeichnung, Text
+@cindex Pedalbezeichnung, Klammer
 
-Pedalbenutzung kann auch durch eine Anzahl von Klammern angezeigt 
-werden, wenn die @code{pedalSustainStyle}-Eigenschaft 
-auf Klammern (eng. bracket) gesetzt wird.
+@funindex pedalSustainStyle
+@funindex mixed
+@funindex bracket
+@funindex text
 
-@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
-\set Staff.pedalSustainStyle = #'bracket
-c\sustainOn d e
-b\sustainOff\sustainOn
-b g \sustainOff a \sustainOn \bar "|."
-@end lilypond
+Die Pedalbezeichnung kann auf drei Arten vorgenommen werden: mit
+Text, Klammern oder einer Mischung aus beidem.  Das Haltepedal
+und das Una-corda-Pedal benutzen als Standard die Textdarstellung,
+während das Sostenuto-Pedal den gemischten Stil benutzt:
 
-Eine dritte Art der Pedalnotation besteht aus einer Mischung von Text 
-und den Pedalklammern. Sie wird durch setzen von 
-@code{pedalSustainStyle} auf @code{mixed} erreicht. 
-
-@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
+@lilypond[quote,verbatim,relative=2]
+c4\sustainOn g c2\sustainOff
 \set Staff.pedalSustainStyle = #'mixed
-c\sustainOn d e
-b\sustainOff\sustainOn
-b g \sustainOff a \sustainOn \bar "|."
-@end lilypond
-
-Die Einstellungen für linkes @c ?
-und mittleres Pedal ist üblicherweise ein @code{#'text}-Stil. Für das 
-mittlere Pedal ist der gemischte Stil voreingestellt.
-
-@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
-c\sostenutoOn d e c, f g a\sostenutoOff
+c4\sustainOn g c d
+d\sustainOff\sustainOn g, c2\sustainOff
+\set Staff.pedalSustainStyle = #'bracket
+c4\sustainOn g c d
+d\sustainOff\sustainOn g, c2
+\bar "|."
 @end lilypond
 
-Die Erscheinung der Pedal-Klammer kann mit den Eigenschaften 
-@code{edge-width}, @code{edge-height} und @code{shorten-pair} des
-@code{PianoPedalBracket}-Objekts verändert werden (siehe 
-@rinternals{PianoPedalBracket} in der Programmreferenz). Zum 
-Beispiel kann die Klammer bis zum rechten Ende eines Notenkopfes 
-verlängert werden.
-
-@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
-\override Staff.PianoPedalBracket #'shorten-pair = #'(0 . -1.0)
-c\sostenutoOn d e c, f g a\sostenutoOff
-@end lilypond
+Die Platzierung der Befehle entspricht der Bewegung der Pedale
+während des Spielens.  Um das Pedal bis zur letzten Tatklinie zu
+halten, muss der letzte Pedal-hoch-Befehl weggelassen werden.
 
 @seealso
-
-Im Handbuch: @ref{Laissez vibrer ties}
+Notationsreferenz:
+@ref{Ties}.
+
+Schnipsel:
+@rlsr{Keyboards}.
+
+Referenz der Interna:
+@rinternals{SustainPedal},
+@rinternals{SustainPedalLineSpanner},
+@rinternals{SustainEvent},
+@rinternals{SostenutoPedal},
+@rinternals{SostenutoPedalLineSpanner},
+@rinternals{SostenutoEvent},
+@rinternals{UnaCordaPedal},
+@rinternals{UnaCordaPedalLineSpanner},
+@rinternals{UnaCordaEvent},
+@rinternals{PianoPedalBracket},
+@rinternals{Piano_pedal_engraver}.
 
 
 @node Accordion
 @subsection Accordion
 
+@cindex Akkordeon
+
+Dieser Abschnitt behandelt Notation, die nur für Akkordeonmusik
+benötigt wird.
+
 @menu
 * Discant symbols::             
 @end menu
@@ -314,12 +556,106 @@ Im Handbuch: @ref{Laissez vibrer ties}
 @node Discant symbols
 @unnumberedsubsubsec Discant symbols
 
-@untranslated
-@ifnothtml
-@englishref
-@end ifnothtml
+@cindex Akkordeon, Diskant-Symbole
+@cindex Diskantsymbole, Akkordeon
+@cindex Symbole, Akkordeon
+@cindex Akkordeon, Register
+
+Akkordeons werden oft mit mehreren Reihen an Zungen gebaut, welche
+Unisono oder eine Oktave höher bzw. tiefer erklingen.  Jedes
+Akkordeon hat eigene Bezeichnungen für die Register (engl. shift)
+wie etwa @notation{Oboe}, @notation{Bandonium} usw.  Eine
+Anzahl an Symbolen wird benutzt um die Wechsel anzuzeigen.
+
+@snippets
+
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{accordion-discant-symbols.ly}
+
+@seealso
+Schnipsel:
+@rlsr{Keyboards}.
+
+
 
 @node Harp
 @subsection Harp
 
-@untranslated
+Dieser Abschnitt zeigt Eigenheiten der Notation für Harfe.
+
+@menu
+* References for harps::
+* Harp pedals::
+@end menu
+
+
+@node References for harps
+@unnumberedsubsubsec References for harps
+
+@cindex Harfe
+
+Einige übliche Notationseigenheiten für Harfe sind woanders behandelt:
+
+@itemize
+
+@item Glissando ist die üblichste Harfentechnik, siehe
+@ref{Glissando}.
+
+@item Ein @notation{Bisbigliando} wird als ein Tremolo notiert, siehe @ref{Tremolo
+repeats}
+
+@item Flageolettöne werden hier beschrieben: @ref{Harmonics}.
+
+@item Für Arpeggio und non-arpeggio, siehe @ref{Arpeggio}.
+
+@end itemize
+
+@seealso
+Notationsreferenz:
+@ref{Tremolo repeats}
+@ref{Glissando}
+@ref{Arpeggio}
+@ref{Harmonics}
+
+
+
+@node Harp pedals
+@unnumberedsubsubsec Harp pedals
+
+@cindex Harfenpedal
+@cindex Pedal, Harfe
+@cindex Pedaldiagramme, Harfe
+
+Harfe haben sieben Saiten in einer Oktave, die entweder als normaler
+Ton, oder aber erhöht bzw. erniedrigt klingen können.  Bei einer
+Hakenharfe kann man jede Saite einzeln einstellen, bei Pedalharfen aber
+wird jede Saite mit der gleichen Notenbezeichnung von einem einzigen
+Pedal kontrolliert.  Vom Spieler aus gesehen von rechts nach links sind
+die Pedale: D, C und H für die linke und E, F, G und A für die rechte
+Seite.  Die Position des Pedals kann mit Textbeschriftungselementen:
+
+@lilypond[quote,verbatim,relative=2]
+\textLengthOn
+cis1_\markup \concat \vcenter { [D \flat C \sharp B|E \sharp F \sharp G A \flat] }
+c!1_\markup \concat \vcenter {[ C \natural ]}
+@end lilypond
+
+@noindent
+oder Pedaldiagrammen angezeigt werden:
+
+@lilypond[quote,verbatim,relative=2]
+\textLengthOn
+cis1_\markup { \harp-pedal #"^v-|vv-^" }
+c!1_\markup { \harp-pedal #"^o--|vv-^" }
+@end lilypond
+
+Der @code{\harp-pedal}-Befehl braucht eine Anzahl an Zeichen, von
+welchen @code{^} die höchste Pedalposition (erniedrigte Tonhöhe),
+@code{-} die mittlere Pedalposition (normale Tonhöhe, @code{v} die
+tiefste Pedalposition (erhöhter Ton) anzeigt.  @code{|} ist ein
+Trenner.  Ein @code{o} vor der Definition umrandet das Symbol.
+
+@seealso
+Notationsreferenz:
+@ref{Text scripts}
+@ref{Instrument Specific Markup}.
index a0137df8c4b54fd6bddff93168e9a406e630b51c..9b950b801ff85c22fb6e8d1de5193066cd787029 100644 (file)
@@ -1,18 +1,21 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*-
 @c This file is part of lilypond-program.tely
 @ignore
-    Translation of GIT committish: 023d49bb18cbc21a03e7711186d961b8b4fc5e80
+    Translation of GIT committish: 499a511d4166feaada31114e097f86b5e0c56421
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
+@c \version "2.12.0"
+
 @c Translators: Reinhold Kainhofer
+@c Translation checkers: Till Rettig
+
 
 @node LilyPond-book
 @chapter @command{lilypond-book}: Integrating text and music
 
-
 Wenn Sie in ein Dokument Grafiken Ihres Musiksatzes einfügen möchten, so
 können Sie genauso machen, wie Sie andere Grafiken einfügen würden: Die
 Bilder werden getrennt vom Dokument im PostScript- oder PNG-Format erstellt
@@ -26,7 +29,9 @@ werden dabei Ihrem Dokument angepasst.
 
 @command{lilypond-book} ist ein eigenständiges Programm und wird 
 üblicherweise von der Kommandozeile aufgerufen. Nähere Informationen
-hierzu finden sich in @ref{Command-line usage}.
+hierzu finden sich in @ref{Command-line usage}.  Wenn Sie MacOS 10.3
+oder 10.4 benutzen und Probleme mit @code{lilypond-book} haben, lesen
+Sie @ref{Setup for MacOS X}.
 
 Dieses Vorgehen kann bei @LaTeX{}, HTML, Texinfo oder DocBook Dokumenten
 angewendet werden.
@@ -214,10 +219,11 @@ oder
 \lilypond@{ IHR LILYPOND QUELLCODE @}
 @end example
 
-Der Aufruf von @command{lilypond-book} liefert eine Datei, die dann mit 
-@LaTeX{} weiter verarbeitet werden kann.
+Zusätzlich kann mit @code{\lilypondversion} die benutzte Versionsnummer
+von LilyPond angezeigt werden.  Der Aufruf von @command{lilypond-book}
+liefert eine Datei, die dann mit @LaTeX{} weiter verarbeitet werden kann.
 
-Dies soll hier an einigen Beispielen gezeigt werden. Die @code{lilypond} Umgebung
+Dies soll hier an einigen Beispielen gezeigt werden. Die @code{lilypond}-Umgebung
 
 @example
 \begin[quote,fragment,staffsize=26]@{lilypond@}
@@ -264,7 +270,7 @@ Befehls angeben kann.
 Jedes Musikbeispiele ruft die folgenden Makros auf, wenn sie vom Benutzer
 definiert wurden:
 
-@itemize bullet
+@itemize @bullet
 @item @code{\preLilyPondExample} -- wird vor der Musik aufgerufen,
 
 @item @code{\postLilyPondExample} -- wird nach der Musik aufgerufen,
@@ -408,6 +414,8 @@ oder
 @@lilypondfile[Optionen,kommen,hier]@{@var{Dateiname}@}
 @end example
 
+Zusätzlich kann mit @code{@@lilypondversion} die aktuelle Versionsnummer
+von LilyPond angezeigt werden.
 Wenn @command{lilypond-book} eine derartige Datei verarbeitet, 
 wird eine Texinfo-Datei mit der Erweiterung @file{.texi} erzeugt,
 die @code{@@image} Befehle für die Ausgabe nach HTML, Info und PDF 
@@ -460,7 +468,6 @@ Musik wird eingegeben als
 @command{lilypond-book} erzeugt dann daraus eine HTML-Datei mit den entsprechenden
 @code{<image>} Tags für die Musikbeispiele in jeweils einem eigenen Absatz.
 
-
 @lilypond[fragment,relative=2]
 \key c \minor c4 es g2
 @end lilypond
@@ -478,6 +485,8 @@ Um Dateien mit Musik einzubinden, kann folgendermaßen vorgegangen werden:
 <lilypondfile @var{Option1} @var{Option2} ...>@var{Dateiname}</lilypondfile>
 @end example
 
+Zusätzlich gibt @code{<lilypondversion/>} die aktuelle Versionsnummer
+von LilyPond aus.
 
 
 @node DocBook
@@ -531,7 +540,7 @@ wobei die Sprache auf @code{lilypond} gesetzt wird:
     <programlisting language="lilypond" role="fragment verbatim staffsize=16 ragged-right relative=2">
 \context Staff \with @{
   \remove Time_signature_engraver
-  \remove Clef_engraver@} 
+  \remove Clef_engraver@}
   @{ c4( fis) @}
     </programlisting>
   </textobject>
@@ -586,11 +595,6 @@ explizit angegeben ist.
 Streckt Musikfragmente mit nur einer Notenzeile auf die volle Breite,
 es wird also @code{ragged-right = ##f} in das Musikfragment eingefügt.
 
-@c does this option still exist in lilypond? -jm
-@item packed
-Erzeugt Notenzeilen mit möglichst engem Notenabstand, es wird also 
-@code{packed = ##t} in das Musikfragment eingefügt.
-
 @item line-width
 @itemx line-width=@var{Breite}\@var{Einheit}
 Setzt die Breite der Notenzeilen auf @var{Breite}, gemessen in Vielfachen
@@ -701,6 +705,13 @@ erzeugt ein Zitat der Form
   f2 e
 @end example
 
+@noindent
+Wenn Kommentare und Variablen im Zitat, aber nicht im Quelltext
+übersetzt werden sollen, kann die Umgebungsvariable @code{LYDOC_LOCALEDIR}
+auf einen Verzeichnispfad gesetzt werden.  Das Verzeichnis sollte
+einen Baum an @file{.mo}-Nachrichtenkatalogen beinhalten mit
+@code{lilypond-doc} als Domain.
+
 @item addversion
 (Nur innerhalb von Texinfo-Dateien.) Stellt @code{\version
 @@w@{"@@version@{@}"@}} an den Beginn des Fragments der Ausgabe mit
@@ -737,8 +748,8 @@ so liefert der folgende Aufruf von @code{lilypond-book} das gewünschte
 Ergebnis:
 
 @example
-lilypond-book --process="lilypond --format=tex --tex \
-              --header=texidoc test.texinfo
+lilypond-book --pdf --process="lilypond \
+  -dbackend=eps --header=texidoc" test.texinfo
 @end example
 
 Die meisten Test-Dateien (im @file{input/} Verzeichnis von LilyPond)
@@ -767,6 +778,10 @@ als @code{@@lydoctitle @var{Text}} eingefügt. @code{@@lydoctitle} muss
 allerdings in Ihrem Texinfo-Dokument als Makro selbst definiert werden.
 Die Übersetzung funktioniert völlig analog zu @code{texidoc}.
 
+@item nogettext
+Nur für Texinfo-Ausgabe: Kommentare und Variablenbezeichnungen im
+zitierten Quelltext des Schnipsel werden nicht übersetzt.
+
 @item printfilename
 Wenn eine LilyPond-Datei mittels @code{\lilypondfile} und dieser Option
 eingebunden wird, wird der Dateiname (ohne die Pfadangabe) unmittelbar vor 
@@ -1082,8 +1097,12 @@ Eine @file{EPS}-Datei kann mit folgendem Befehl erzeugt werden:
 
 @example
 lilypond -dbackend=eps -dno-gs-load-fonts -dinclude-eps-fonts   Dateiname.ly
+@end example
 
-Eine @file{PNG}-Datei mittels:
+@noindent
+eine @file{PNG}-Datei mittels:
+
+@example
 lilypond -dbackend=eps -dno-gs-load-fonts -dinclude-eps-fonts --png Dateiname.ly
 @end example
 
index fa1af7090666a3f688d1eab96cbc210fbf51fb94..6f7bc4d2143f9a1d706fddec9c2d0353ff482db7 100644 (file)
@@ -1,7 +1,7 @@
 \input texinfo @c -*- coding: utf-8; mode: texinfo; -*-
 @ignore
-    Translation of GIT committish: b54fc6953a8d70a3c51e8c3d0cbf9b3fe9652d78
-    
+    Translation of GIT committish: 01361d46dc9d514a79683d003eeea5f4fbf2b746
+
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
 @include macros.itexi
 
-@iftex
 @afourpaper
-@c don't replace quotes with directed quotes
-@tex
-\gdef\SETtxicodequoteundirected{Foo}
-\gdef\SETtxicodequotebacktick{Bla}
-@end tex
-@end iftex
-
 
 @c don't remove this comment.
 @ignore
 
 @c Translators: Till Rettig
 
+@ifnottex
+@node Top
+@top GNU LilyPond -- Handbuch zum Lernen
+@end ifnottex
+
 @ifhtml
+@ifclear bigpage
+Dieses Dokument ist auch als
+@uref{source/Documentation/user/lilypond-learning.de.pdf,PDF} und als
+@uref{source/Documentation/user/lilypond-learning-big-page.de.html,eine große Seite}
+verfügbar.
+@end ifclear
+@ifset bigpage
 Dieses Dokument ist auch als
-@uref{source/Documentation/user/lilypond-learning.de.pdf,PDF} und als 
-@uref{source/Documentation/user/lilypond-learning-big-page.html,eine große Seite}
-(auf Englisch) verfügbar.
+@uref{source/Documentation/user/lilypond-learning.de.pdf,PDF} und als
+@uref{source/Documentation/user/lilypond-learning/index.de.html,Separate HTML-Seiten mit Index}
+verfügbar.
+@end ifset
 @end ifhtml
 
 
@@ -55,20 +60,20 @@ Dieses Dokument ist auch als
 @author Das LilyPond-Entwicklerteam
 
 
-Copyright @copyright{} 1999--2008 bei den Autoren
+Copyright @copyright{} 1999--2009 bei den Autoren
 
 @emph{The translation of the following copyright notice is provided
 for courtesy to non-English speakers, but only the notice in English
 legally counts.}
 
-@emph{Die Übersetzung der folgenden Lizenzanmerkung ist zur Orientierung 
-für Leser, die nicht Englisch sprechen. Im rechtlichen Sinne ist aber 
+@emph{Die Übersetzung der folgenden Lizenzanmerkung ist zur Orientierung
+für Leser, die nicht Englisch sprechen. Im rechtlichen Sinne ist aber
 nur die englische Version gültig.}
 
 @quotation
 Es ist erlaubt, dieses Dokument unter den Bedingungen der
 GNU Free Documentation Lizenz (Version 1.1 oder
-spätere, von der Free Software Foundation publizierte Versionen, ohne Invariante Abschnitte), 
+spätere, von der Free Software Foundation publizierte Versionen, ohne Invariante Abschnitte),
 zu kopieren, verbreiten und/oder
 zu verändern. Eine Kopie der Lizenz ist im Abschnitt ``GNU
 Free Documentation License'' angefügt.
@@ -89,20 +94,20 @@ Für LilyPond Version @version{}
 @end titlepage
 
 @copying
-Copyright @copyright{} 1999--2008 bei den Autoren
+Copyright @copyright{} 1999--2009 bei den Autoren
 
 @emph{The translation of the following copyright notice is provided
 for courtesy to non-English speakers, but only the notice in English
 legally counts.}
 
-@emph{Die Übersetzung der folgenden Lizenzanmerkung ist zur Orientierung 
-für Leser, die nicht Englisch sprechen. Im rechtlichen Sinne ist aber 
+@emph{Die Übersetzung der folgenden Lizenzanmerkung ist zur Orientierung
+für Leser, die nicht Englisch sprechen. Im rechtlichen Sinne ist aber
 nur die englische Version gültig.}
 
 @quotation
 Es ist erlaubt, dieses Dokument unter den Bedingungen der
 GNU Free Documentation Lizenz (Version 1.1 oder
-spätere, von der Free Software Foundation publizierte Versionen, ohne Invariante Abschnitte), 
+spätere, von der Free Software Foundation publizierte Versionen, ohne Invariante Abschnitte),
 zu kopieren, verbreiten und/oder
 zu verändern. Eine Kopie der Lizenz ist im Abschnitt ``GNU
 Free Documentation License'' angefügt.
@@ -121,20 +126,20 @@ Free Documentation License''.
 @ifnottex
 Diese Datei dokumentiert die Erlernung des Programmes GNU LilyPond.
 
-Copyright @copyright{} 1999--2008 bei den Autoren
+Copyright @copyright{} 1999--2009 bei den Autoren
 
 @emph{The translation of the following copyright notice is provided
 for courtesy to non-English speakers, but only the notice in English
 legally counts.}
 
-@emph{Die Übersetzung der folgenden Lizenzanmerkung ist zur Orientierung 
-für Leser, die nicht Englisch sprechen. Im rechtlichen Sinne ist aber 
+@emph{Die Übersetzung der folgenden Lizenzanmerkung ist zur Orientierung
+für Leser, die nicht Englisch sprechen. Im rechtlichen Sinne ist aber
 nur die englische Version gültig.}
 
 @quotation
 Es ist erlaubt, dieses Dokument unter den Bedingungen der
 GNU Free Documentation Lizenz (Version 1.1 oder
-spätere, von der Free Software Foundation publizierte Versionen, ohne Invariante Abschnitte), 
+spätere, von der Free Software Foundation publizierte Versionen, ohne Invariante Abschnitte),
 zu kopieren, verbreiten und/oder
 zu verändern. Eine Kopie der Lizenz ist im Abschnitt ``GNU
 Free Documentation License'' angefügt.
@@ -151,9 +156,6 @@ Free Documentation License''.
 @end ifnottex
 
 @ifnottex
-@node Top
-@top GNU LilyPond -- Handbuch zum Lernen
-
 Das ist des Handbuch zum Erlernen von GNU LilyPond Version @version{}.
 Für einen Überblick über die gesamte Dokumentation von LilyPond und die Intention
 dieses Handbuchs siehe @ref{About the documentation}.
index c886f89b372880e8acc39a7c9ed91d2803e954f4..eccdf9f3b5052e8a4f32c030d10ffdb692f01dea 100644 (file)
@@ -1,6 +1,6 @@
 \input texinfo @c -*- coding: utf-8; mode: texinfo; -*-
 @ignore
-    Translation of GIT committish: b54fc6953a8d70a3c51e8c3d0cbf9b3fe9652d78
+    Translation of GIT committish: ee314252b42fe4eb69c87c13a38644bc214ff27f
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 
 @include macros.itexi
 
-@iftex
 @afourpaper
-@c don't replace quotes with directed quotes
-@tex
-\gdef\SETtxicodequoteundirected{Foo}
-\gdef\SETtxicodequotebacktick{Bla}
-@end tex
-@end iftex
-
 
 @c don't remove this comment.
 @ignore
 
 @c Translators: Till Rettig
 
+@ifnottex
+@node Top
+@top GNU LilyPond -- Programmbenutzung
+@c HJJ: Info needs `@top', which is a synonym for `@unnumbered' in TeX.
+@end ifnottex
+
 @ifhtml
+@ifclear bigpage
+Dieses Dokument ist auch als
+@uref{source/Documentation/user/lilypond-program.de.pdf,PDF} und auf
+@uref{source/Documentation/user/lilypond-program-big-page.html,einer großen Seite}
+@end ifclear
+@ifset bigpage
 Dieses Dokument ist auch als
-@uref{source/Documentation/user/lilypond-program.de.pdf,PDF} und als
-@uref{source/Documentation/user/lilypond-program-big-page.html,eine große Seite}.
+@uref{source/Documentation/user/lilypond-program.pdf,PDF} und auf
+@uref{source/Documentation/user/lilypond-program/index.html,separaten HTML-Seiten mit Index}
+@end ifset
 verfügbar.
 @end ifhtml
 
@@ -55,7 +60,7 @@ verfügbar.
 @author Das LilyPond-Entwicklerteam
 
 
-Copyright @copyright{} 1999--2008 bei den Autoren
+Copyright @copyright{} 1999--2009 bei den Autoren
 
 @emph{The translation of the following copyright notice is provided
 for courtesy to non-English speakers, but only the notice in English
@@ -90,7 +95,7 @@ Für LilyPond Version @version{}
 @end titlepage
 
 @copying
-Copyright @copyright{} 1999--2008 bei den Autoren
+Copyright @copyright{} 1999--2009 bei den Autoren
 
 @emph{The translation of the following copyright notice is provided
 for courtesy to non-English speakers, but only the notice in English
@@ -123,7 +128,7 @@ Free Documentation License''.
 @ifnottex
 Diese Datei dokumentiert die Programmbenutzung von GNU LilyPond.
 
-Copyright 1999--2008 bei den Autoren
+Copyright 1999--2009 bei den Autoren
 
 @emph{The translation of the following copyright notice is provided
 for courtesy to non-English speakers, but only the notice in English
@@ -154,9 +159,6 @@ Free Documentation License''.
 @end ifnottex
 
 @ifnottex
-@node Top
-@top GNU LilyPond -- Programmbenutzung
-
 Das ist das Handbuch zur Programmbenutzung für GNU LilyPond Version @version{}.
 Für einen Überblick über die gesamte Dokumentation von LilyPond und die Intention
 dieses Handbuchs siehe @rlearning{About the documentation}.
index da49d9b94dbce4f17af2d005b68aade7b91f0e69..8908c45f8d5a99d2abd8692d88026bc2f7869f7e 100644 (file)
@@ -1,6 +1,6 @@
 \input texinfo @c -*- coding: utf-8; mode: texinfo; -*-
 @ignore
-    Translation of GIT committish: b54fc6953a8d70a3c51e8c3d0cbf9b3fe9652d78
+    Translation of GIT committish: ee314252b42fe4eb69c87c13a38644bc214ff27f
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 
 @include macros.itexi
 
-@iftex
 @afourpaper
-@c don't replace quotes with directed quotes
-@tex
-\gdef\SETtxicodequoteundirected{Foo}
-\gdef\SETtxicodequotebacktick{Bla}
-@end tex
-@end iftex
 
 @c  Keep this here, since it pertains to the direntry below.
 @ignore
@@ -40,12 +33,12 @@ Distributions will want to install lilypond.info in postinstall, doing:
 
 
 @c
-@c Info files are installed in subdirectories to allow images to be present. 
-@c 
+@c Info files are installed in subdirectories to allow images to be present.
+@c
 @dircategory LilyPond
 @direntry
 * LilyPond: (lilypond/lilypond).                               Das GNU Notensatzprogramm.
-* abc2ly: (lilypond/lilypond-program)Invoking abc2ly.          ABC-Dateien importieren.      
+* abc2ly: (lilypond/lilypond-program)Invoking abc2ly.          ABC-Dateien importieren.
 * convert-ly: (lilypond/lilypond-program)Invoking convert-ly.  Ältere LilyPond-Versionen.
 * etf2ly: (lilypond/lilypond-program)Invoking etf2ly.          Finale-Dateien importieren.
 * lilypond-book: (lilypond/lilypond-program)LilyPond-book.     Noten in den Text integrieren.
@@ -63,11 +56,26 @@ Distributions will want to install lilypond.info in postinstall, doing:
 
 @c Translators: Till Rettig
 
+@ifnottex
+@node Top
+@top GNU LilyPond --- Notation Reference
+@chapheading Das Notensatzprogramm
+@c HJJ: Info needs `@top', which is a synonym for `@unnumbered' in TeX.
+@end ifnottex
+
 @ifhtml
+@ifclear bigpage
 Dieses Dokument ist auch als
-@uref{source/Documentation/user/lilypond.de.pdf,PDF} und als 
-@uref{source/Documentation/user/lilypond-big-page.html,eine große Seite}
+@uref{source/Documentation/user/lilypond.de.pdf,PDF} und auf
+@uref{source/Documentation/user/lilypond-big-page.html,einer großen Seite}
 (auf Englisch) verfügbar.
+@end ifclear
+@ifset bigpage
+Dieses Dokument ist auch als
+@uref{source/Documentation/user/lilypond.de.pdf,PDF} und als
+@uref{source/Documentation/user/lilypond/index.de.html,separate HTML-Seiten mit Index}
+verfügbar.
+@end ifset
 @end ifhtml
 
 
@@ -87,21 +95,21 @@ Dieses Dokument ist auch als
 @titlefont{Benutzerhandbuch}
 @author Das LilyPond-Entwicklerteam
 
-Copyright @copyright{} 1999--2008 bei den Autoren
+Copyright @copyright{} 1999--2009 bei den Autoren
 
 @emph{The translation of the following copyright notice is provided
 for courtesy to non-English speakers, but only the notice in English
 legally counts.}
 
-@emph{Die Übersetzung der folgenden Lizenzanmerkung ist zur Orientierung 
-für Leser, die nicht Englisch sprechen. Im rechtlichen Sinne ist aber 
+@emph{Die Übersetzung der folgenden Lizenzanmerkung ist zur Orientierung
+für Leser, die nicht Englisch sprechen. Im rechtlichen Sinne ist aber
 nur die englische Version gültig.}
 
 @quotation
 Es ist erlaubt, dieses Dokument unter den Bedingungen der
 GNU Free Documentation Lizenz (Version 1.1 oder
-spätere, von der Free Software Foundation publizierte Versionen, ohne 
-invariante Abschnitte), 
+spätere, von der Free Software Foundation publizierte Versionen, ohne
+invariante Abschnitte),
 zu kopieren, verbreiten und/oder
 zu verändern. Eine Kopie der Lizenz ist im Abschnitt ``GNU
 Free Documentation License'' angefügt.
@@ -122,23 +130,23 @@ Für LilyPond Version @version{}
 @end titlepage
 
 @copying
-Copyright @copyright{} 1999--2008 bei den Autoren
+Copyright @copyright{} 1999--2009 bei den Autoren
 
 @emph{The translation of the following copyright notice is provided
 for courtesy to non-English speakers, but only the notice in English
 legally counts.}
 
-@emph{Die Übersetzung der folgenden Lizenzanmerkung ist zur Orientierung 
-für Leser, die nicht Englisch sprechen. Im rechtlichen Sinne ist aber 
+@emph{Die Übersetzung der folgenden Lizenzanmerkung ist zur Orientierung
+für Leser, die nicht Englisch sprechen. Im rechtlichen Sinne ist aber
 nur die englische Version gültig.}
 
 @quotation
 Es ist erlaubt, dieses Dokument unter den Bedingungen der
 GNU Free Documentation Lizenz (Version 1.1 oder
-spätere, von der Free Software Foundation publizierte Versionen, ohne 
-invariante Abschnitte), 
+spätere, von der Free Software Foundation publizierte Versionen, ohne
+invariante Abschnitte),
 zu kopieren, verbreiten und/oder
-zu verändern. Eie Kopie der Lizenz ist im Abschnitt ``GNU
+zu verändern. Eine Kopie der Lizenz ist im Abschnitt ``GNU
 Free Documentation License'' angefügt.
 @end quotation
 
@@ -155,23 +163,23 @@ Free Documentation License''.
 @ifnottex
 Diese Datei dokumentiert GNU LilyPond.
 
-Copyright 1999--2008 bei den Autoren.
+Copyright 1999--2009 bei den Autoren.
 
 @emph{The translation of the following copyright notice is provided
 for courtesy to non-English speakers, but only the notice in English
 legally counts.}
 
-@emph{Die Übersetzung der folgenden Lizenzanmerkung ist zur Orientierung 
-für Leser, die nicht Englisch sprechen. Im rechtlichen Sinne ist aber 
+@emph{Die Übersetzung der folgenden Lizenzanmerkung ist zur Orientierung
+für Leser, die nicht Englisch sprechen. Im rechtlichen Sinne ist aber
 nur die englische Version gültig.}
 
 @quotation
 Es ist erlaubt, dieses Dokument unter den Bedingungen der
 GNU Free Documentation Lizenz (Version 1.1 oder
-spätere, von der Free Software Foundation publizierte Versionen, ohne 
-Invariante Abschnitte), 
+spätere, von der Free Software Foundation publizierte Versionen, ohne
+Invariante Abschnitte),
 zu kopieren, verbreiten und/oder
-zu verändern. Eie Kopie der Lizenz ist im Abschnitt ``GNU
+zu verändern. Eine Kopie der Lizenz ist im Abschnitt ``GNU
 Free Documentation License'' angefügt.
 @end quotation
 
@@ -186,10 +194,6 @@ Free Documentation License''.
 @end ifnottex
 
 @ifnottex
-@node Top
-@top GNU LilyPond -- Das Notationsprogramm
-@c HJJ: Info needs `@top', which is a synonym for `@unnumbered' in TeX.
-
 Das ist das Benutzerhandbuch für GNU LilyPond Version @version{}.
 Für einen Überblick über die gesamte Dokumentation von LilyPond und die Intention
 dieses Handbuchs siehe @rlearning{About the documentation}.
@@ -245,7 +249,7 @@ Anhänge
 
 Dieser Index listet alle LilyPond Befehle und Schlüsselwörter auf,
 versehen mit Verweisen zu den Abschnitten im Handbuch, die den Befehl
-beschreiben oder seine Verwendung diskutieren. Der erste Teil zeigt auf 
+beschreiben oder seine Verwendung diskutieren. Der erste Teil zeigt auf
 die genaue Stelle im Handbuch, an der der Befehl oder das Schlüsselwort
 erscheint, der zweite Teil zeigt auf den entsprechenden Abschnitt.
 
@@ -256,7 +260,7 @@ erscheint, der zweite Teil zeigt auf den entsprechenden Abschnitt.
 
 Zusätzlich zu allen LilyPond Befehlen und Schlüsselwörtern listet
 dieser Index alle relevanten Begriffe auf und verlinkt sie mit den
-entsprechenden Abschnitten, wo sie erklärt werden. Der erste Teil 
+entsprechenden Abschnitten, wo sie erklärt werden. Der erste Teil
 zeigt auf  die genaue Stelle im Handbuch, an der der der Begriff
 vorkommt, der zweite Teil zeigt auf den gesamten Abschnitt, in dem
 das Thema behandelt wird.
index 329497311c84ec38a62c7a8f76203587cd4c946e..ef0d2dbb1331e3727c58b9c27d1e4024a8534a19 100644 (file)
@@ -1,13 +1,13 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*-
 @c This file is part of lilypond.tely
 @ignore
-    Translation of GIT committish: b54fc6953a8d70a3c51e8c3d0cbf9b3fe9652d78
+    Translation of GIT committish: 499a511d4166feaada31114e097f86b5e0c56421
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 
 @node Literature list
@@ -18,6 +18,7 @@ hier einige interessante Titel gesammelt.
 
 
 @table @cite
+
 @item Ignatzek 1995
 Klaus Ignatzek, Die Jazzmethode für Klavier. Schott's Söhne
 1995. Mainz, Germany ISBN 3-7957-5140-3.
index 333775a2cc03d1d96f4abfc900418528079a2dfc..aff2f6ab4538fcd5f59cbfe92f3cffa804e67705 100644 (file)
@@ -1,6 +1,6 @@
 @c -*- coding: utf-8; mode: texinfo; -*-
 @ignore
-    Translation of GIT committish: 2881ea603b63e4e335dc1104b0c22c71f373b20d
+    Translation of GIT committish: 01361d46dc9d514a79683d003eeea5f4fbf2b746
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @include version.itexi
 
 
+@c Don't replace quotes with directed quotes.
+
+@set txicodequoteundirected
+@set txicodequotebacktick
+
+
+
 @c   ***** Displaying text *****
 
-@c we need this since @q{\} doesn't work with makeinfo 4.11 --
-@c say @q{@bs{}} instead
+@c We need this since @q{\} doesn't work with makeinfo 4.11 --
+@c say @q{@bs{}} instead.
+
 @macro bs
 \\
 @end macro
 
-@c to get decent quotes in `foo' and ``foo''
-@c  these need to be split up so that "@qq{foo}." looks nice.  :(
+
+@c To get decent quotes in ,foo' and ,,foo''.
+@c These need to be split up so that "@qq{foo}." looks nice.  :(
+
 @macro q{TEXT}
 @quotesinglbase{}\TEXT\@quoteleft{}
 @end macro
 @quotedblbase{}\TEXT\@quotedblleft{}
 @end macro
 
+
 @ifhtml
+
 @macro warning{TEXT}
 @cartouche
 @b{Achtung:} \TEXT\
 @end cartouche
 @end macro
+
 @end ifhtml
 
 @ifnothtml
+
 @macro warning{TEXT}
 @quotation
 @quotation
 @end quotation
 @end quotation
 @end macro
+
 @end ifnothtml
 
+
 @ifnotinfo
+
 @macro notation{TEXT}
 @var{\TEXT\}
 @end macro
+
 @end ifnotinfo
 
 @ifinfo
+
 @macro notation{TEXT}
 \TEXT\
 @end macro
+
 @end ifinfo
 
+
 @macro smallspace
 @sp 1
 @end macro
 
 
-@c   **** Displaying images not generated by lilypond-book
 
-@c current installation setup of Info docs requires that all images are
-@c expected to be found in lilypond/ subdirectory.  lilypond-book already
-@c generates proper @image commands for images of music; these macros
-@c definitions do the same for other images.
+@c   ***** Displaying images not generated by lilypond-book *****
+
+@c Current installation setup of Info docs requires that all images are
+@c expected to be found in the `lilypond/' subdirectory.  `lilypond-book'
+@c already generates proper @image commands for images of music; these
+@c macro definitions do the same for other images.
 
 @ifnotinfo
+
 @macro sourceimage{FILENAME,WIDTH,HEIGHT,ALTTEXT}
 @image{\FILENAME\,\WIDTH\,\HEIGHT\,\ALTTEXT\}
 @end macro
+
 @end ifnotinfo
 
 @ifinfo
+
 @macro sourceimage{FILENAME,WIDTH,HEIGHT,ALTTEXT}
 @image{lilypond/\FILENAME\,\WIDTH\,\HEIGHT\,\ALTTEXT\}
 @end macro
+
 @end ifinfo
 
 
 
-@c   **** Headings in a doc subsection ****
+@c   ***** Headings in a doc subsection *****
+
+@c Don't insert an empty line after @predefined!  Right now
+@c it doesn't matter, but a future implementation will probably
+@c add some code which needs this restriction.
 
 @macro predefined
 @noindent
 @subsubheading Predefined commands
+@end macro
 
+@c The next macro is a dummy currently since texinfo doesn't
+@c provide a real ragged-right environment yet.
+@c
+@c Due to a bug in texi2html (texi2html.pl CVS versions <= 1.245)
+@c the macro must not be empty.
+
+@macro endpredefined
+@c
 @end macro
 
+
 @macro snippets
 @noindent
 @subsubheading Selected Snippets
-
 @end macro
 
+
 @c obsolete, remove when translation is fully updated
 @macro commonprop
 @noindent
 @subsubheading Commonly tweaked properties
-
 @end macro
 
+
+@c Don't insert an empty line after @seealso!  Otherwise we get
+@c unwanted extra vertical space in the PDF output.
+
 @macro seealso
 @noindent
 @subsubheading See also
-
+@indent
 @end macro
 
+
 @macro knownissues
 @noindent
 @subsubheading Known issues and warnings
-
 @end macro
 
+
 @macro lydoctitle {TEXT}
 @emph{\TEXT\}
-
 @end macro
 
+
+@c Don't remove the `@c' within the macro definition!  See section 19.3,
+@c `Macro Details and Caveats', in the texinfo info file for explanation.
+
 @macro funindex {TEXT}
 @findex \TEXT\
 @kindex \TEXT\
+@c
 @end macro
 
 
 
-@c   **** Links and references ****
+@c   ***** Links and references *****
 
 @c obsolete
 @c usage: @lsr{ancient,custodes.ly}
 @end macro
 
 
-
-
-@c   **** Links and references ****
-
 @c  Definitions for references:
+@c
 @c     @rglos
 @c     @rlearning
 @c     @ruser
 @c     @rprogram
 @c     @rlsr
 @c     @rinternals
-@c  all these also have a @...named version, which allows to specify the
-@c  displayed text for the reference as second argument
+@c
+@c  All these also have a @...named version which allows to specify the
+@c  displayed text for the reference as second argument.
+@c
+@c ***** HTML + bigpage is a special case (other manual names); all other
+@c formats are treated similarly.
 
-@c ***** HTML + bigpage is a special case (other manual names), all other
-@c formats are treated similarly
+
+@c *** not TeX ***
 
 @ifnottex
 
+@c ** bigpage **
+
 @ifset bigpage
 
 @macro rglos{TEXT}
 @end ifset
 
 
+@c ** not bigpage **
+
 @ifclear bigpage
 
 @macro rglos{TEXT}
 @end ifnottex
 
 
-@c **** TEX ****
+@c *** TeX ***
+
 @iftex
 
+@c All commands below should work in the middle of the line;
+@c we thus must not use @vindex directly since it works only if placed
+@c on a line of its own.  To overcome this problem, we define a
+@c replacement macro using the internal definition of @vindex which
+@c delimits arguments in the standard way (i.e., with braces).
+
+@tex
+\gdef\lilyvindex#1{\doind{vr}{\code #1}\ignorespaces}
+@end tex
+
 @macro rglos{TEXT}
-@vindex \TEXT\
+@lilyvindex{\TEXT\}
 @ref{\TEXT\,,,music-glossary,Glossar}
 @end macro
 
 @macro rglosnamed{TEXT,DISPLAY}
-@vindex \TEXT\
+@lilyvindex{\TEXT\}
 @ref{\TEXT\,,\DISPLAY\,music-glossary,Glossar}
 @end macro
 
 @macro rlearning{TEXT}
-@vindex \TEXT\
+@lilyvindex{\TEXT\}
 @ref{\TEXT\,,,lilypond-learning.de,Handbuch zum Lernen}
 @end macro
 
 @macro rlearningnamed{TEXT,DISPLAY}
-@vindex \TEXT\
+@lilyvindex{\TEXT\}
 @ref{\TEXT\,,\DISPLAY\,lilypond-learning.de,Handbuch zum Lernen}
 @end macro
 
 @macro ruser{TEXT}
-@vindex \TEXT\
+@lilyvindex{\TEXT\}
 @ref{\TEXT\,,,lilypond.de,Notationsreferenz}
 @end macro
 
 @macro rusernamed{TEXT,DISPLAY}
-@vindex \TEXT\
+@lilyvindex{\TEXT\}
 @ref{\TEXT\,,\DISPLAY\,lilypond.de,Notationsreferenz}
 @end macro
 
 @macro rprogram{TEXT}
-@vindex \TEXT\
+@lilyvindex{\TEXT\}
 @ref{\TEXT\,,,lilypond-program.de,Anwendungsbenutzung}
 @end macro
 
 @macro rprogramnamed{TEXT,DISPLAY}
-@vindex \TEXT\
+@lilyvindex{\TEXT\}
 @ref{\TEXT\,,\DISPLAY\,lilypond-program.de,Anwendungsbenutzung}
 @end macro
 
 @macro rlsr{TEXT}
+@lilyvindex{\TEXT\}
 @ref{\TEXT\,,,lilypond-snippets,Schnipsel}
 @end macro
 
 @macro rlsrnamed{TEXT,DISPLAY}
+@lilyvindex{\TEXT\}
 @ref{\TEXT\,,\DISPLAY\,lilypond-snippets,Schnipsel}
 @end macro
 
 @macro rinternals{TEXT}
-@vindex \TEXT\
+@lilyvindex{\TEXT\}
 @ref{\TEXT\,,,lilypond-internals,Referenz der Interna}
 @end macro
 
 @macro rinternalsnamed{TEXT,DISPLAY}
-@vindex \TEXT\
+@lilyvindex{\TEXT\}
 @ref{\TEXT\,,\DISPLAY\,lilypond-internals,Referenz der Interna}
 @end macro
 
 @end iftex
 
-@c **** Macros specific to translated docs ****
+
+
+@c   ***** Macros specific to translated docs *****
 
 @c ugh, cannot set/define global variable 'translationof' in some way?
+
 @iftex
+
 @macro translationof{TEXT}
 @end macro
+
 @end iftex
 
 @ifinfo
+
 @macro
 @macro translationof{TEXT}
 @set translationof \TEXT\
 @end macro
+
 @end ifinfo
 
-@c TODO when @translationof is used in translated docs
-@c see if it's feasible to say @value{translationof}
+
+@c TODO: If @translationof is used in translated docs
+@c see whether it is feasible to say @value{translationof}.
+
 @macro englishref
-Dieser Abschnitt wurde noch nicht übersetzt, bitte lesen Sie den
+Dieser Abschnitt wurde noch nicht übersetzt.  Bitte lesen Sie den
 Abschnitt im englischen Benutzerhandbuch.
 @end macro
 
+
 @ifhtml
+
+@ifset bigpage
+@macro untranslated
+@end macro
+@end ifset
+
+@ifclear bigpage
 @macro untranslated
 UNTRANSLATED NODE: IGNORE ME
 @end macro
+@end ifclear
+
 @end ifhtml
 
 @ifnothtml
index f2bf71dddcaa1073db784fb337483e5922949de5..a8f41f52f67081029befbd888780fb549ac50cf9 100644 (file)
@@ -1,13 +1,13 @@
 @c -*- coding: utf-8; mode: texinfo; -*-
 @c This file is part of lilypond.tely
 @ignore
-    Translation of GIT committish: 2ae5726ea4fcbcd40e42678db32d7da3227ef44a
+    Translation of GIT committish: 499a511d4166feaada31114e097f86b5e0c56421
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @node Notation manual tables
 @appendix Notation manual tables
@@ -31,14 +31,17 @@ and just before
 @end ignore
 
 @menu
-* Chord name chart::            
-* MIDI instruments::            
+* Chord name chart::   
+* Common chord modifiers::
+* Predefined fretboard diagrams::         
+* MIDI instruments::         
 * List of colors::              
 * The Feta font::               
 * Note head styles::            
 * Text markup commands::        
 * Text markup list commands::   
-* List of articulations::       
+* List of articulations::
+* Percussion notes::   
 * All context properties::      
 * Layout properties::           
 * Identifiers::                 
@@ -53,6 +56,361 @@ ausgegeben werden. Es wird auch die entsprechende Note ausgegeben.
 
 @lilypondfile{chord-names-jazz.ly}
 
+
+@node Common chord modifiers
+@appendixsec Common chord modifiers
+
+Die Tabelle zeigt Modifikatoren für Akkorde, die im @code{\chordmode}-Modus
+benutzt werden können, um übliche Akkordkonstrukte zu notieren.
+
+@multitable @columnfractions .2 .3 .2 .2
+
+@item
+@b{Akkordtyp}
+@tab
+@b{Intervalle}
+@tab
+@b{Modifikator(en)}
+@tab
+@b{Beispiel}
+
+
+@item
+Dur
+@tab
+große Terz, Quinte
+@tab
+@code{5} oder nichts
+@tab
+@lilypond[line-width=3\cm,noragged-right, notime]
+\chordmode {
+  c1:5
+}
+@end lilypond
+
+@item
+Moll
+@tab
+kleine Terz, Quinte
+@tab
+@code{m} oder @code{m5}
+@tab
+@lilypond[line-width=3\cm,noragged-right, notime]
+\chordmode {
+  c1:m
+}
+@end lilypond
+
+@item
+Übermäßig
+@tab
+Große Terz, übermäßige Quinte
+@tab
+@code{aug}
+@tab
+@lilypond[line-width=3\cm,noragged-right, notime]
+\chordmode {
+  c1:aug
+}
+@end lilypond
+
+@item
+Vermindert
+@tab
+Kleine Terz, verminderte Quinte
+@tab
+@code{dim}
+@tab
+@lilypond[line-width=3\cm,noragged-right, notime]
+\chordmode {
+  c1:dim
+}
+@end lilypond
+
+@item
+Dominantsieben
+@tab
+Durdreiklang, kleine Septime
+@tab
+@code{7}
+@tab
+@lilypond[line-width=3\cm,noragged-right, notime]
+\chordmode {
+  c1:7
+}
+@end lilypond
+
+@item
+Große Septime
+@tab
+Durdreiklang, große Septime
+@tab
+@code{maj7} oder @code{maj}
+@tab
+@lilypond[line-width=3\cm,noragged-right, notime]
+\chordmode {
+  c1:maj7
+}
+@end lilypond
+
+@item
+Kleine Septime
+@tab
+Molldreiklang, kleine Septime
+@tab
+@code{m7}
+@tab
+@lilypond[line-width=3\cm,noragged-right, notime]
+\chordmode {
+  c1:m7
+}
+@end lilypond
+
+@item
+Verminderte Septime
+@tab
+Verminderter Dreiklang, verminderte Septime
+@tab
+@code{dim7}
+@tab
+@lilypond[line-width=3\cm,noragged-right, notime]
+\chordmode {
+  c1:dim7
+}
+@end lilypond
+
+@item
+Übermäßige Septime
+@tab
+Übermäßiger Dreiklang, kleine Septime
+@tab
+@code{aug7}
+@tab
+@lilypond[line-width=3\cm,noragged-right, notime]
+\chordmode {
+  c1:aug7
+}
+@end lilypond
+
+@item
+halbverminderte Septime
+@tab
+Verminderter Dreklang, kleine Sept
+@tab
+@code{m7.5-}
+@tab
+@lilypond[line-width=3\cm,noragged-right, notime]
+\chordmode {
+  c1:m7.5-
+}
+@end lilypond
+
+@item
+Kleine MollSept
+@tab
+Molldreiklang, Durseptime
+@tab
+@code{maj7.5-}
+@tab
+@lilypond[line-width=3\cm,noragged-right, notime]
+\chordmode {
+  c1:maj7.5-
+}
+@end lilypond
+
+@item
+Große Sexte
+@tab
+Durdreiklang, Sexte
+@tab
+@code{6}
+@tab
+@lilypond[line-width=3\cm,noragged-right, notime]
+\chordmode {
+  c1:6
+}
+@end lilypond
+
+@item
+Kleine Sexte
+@tab
+Molldreiklang, Sexte
+@tab
+@code{m6}
+@tab
+@lilypond[line-width=3\cm,noragged-right, notime]
+\chordmode {
+  c1:m6
+}
+@end lilypond
+
+@item
+Dominantnone
+@tab
+Dominantsept, große None
+@tab
+@code{9}
+@tab
+@lilypond[line-width=3\cm,noragged-right, notime]
+\chordmode {
+  c1:9
+}
+@end lilypond
+
+@item
+Dur None
+@tab
+Große None, große Septime
+@tab
+@code{maj9}
+@tab
+@lilypond[line-width=3\cm,noragged-right, notime]
+\chordmode {
+  c1:maj9
+}
+@end lilypond
+
+@item
+Moll None
+@tab
+Große None, kleine Septime
+@tab
+@code{m9}
+@tab
+@lilypond[line-width=3\cm,noragged-right, notime]
+\chordmode {
+  c1:m9
+}
+@end lilypond
+
+@item
+Dominantundezime
+@tab
+Dominantnone, perfekte Undezime
+@tab
+@code{11}
+@tab
+@lilypond[line-width=3\cm,noragged-right, notime]
+\chordmode {
+  c1:11
+}
+@end lilypond
+
+@item
+Durundezime
+@tab
+Große None, perfekte Unidezime
+@tab
+@code{maj11}
+@tab
+@lilypond[line-width=3\cm,noragged-right, notime]
+\chordmode {
+  c1:maj11
+}
+@end lilypond
+
+@item
+Mollundezime
+@tab
+Kleine None, perfekte Undezime
+@tab
+@code{m11}
+@tab
+@lilypond[line-width=3\cm,noragged-right, notime]
+\chordmode {
+  c1:m11
+}
+@end lilypond
+
+@item
+Dominant-13
+@tab
+Dominantnone, große 13
+@tab
+@code{13}
+@tab
+@lilypond[line-width=3\cm,noragged-right, notime]
+\chordmode {
+  c1:13
+}
+@end lilypond
+
+@item
+Dominant-13
+@tab
+@code{13.11}
+@tab
+@lilypond[line-width=3\cm,noragged-right, notime]
+\chordmode {
+  c1:13.11
+}
+@end lilypond
+
+@item
+Dur-13
+@tab
+Große Undezime, große 13
+@tab
+@code{maj13.11}
+@tab
+@lilypond[line-width=3\cm,noragged-right, notime]
+\chordmode {
+  c1:maj13.11
+}
+@end lilypond
+
+@item
+Moll-13
+@tab
+Kleine Undezime, große 13
+@tab
+@code{m13.11}
+@tab
+@lilypond[line-width=3\cm,noragged-right, notime]
+\chordmode {
+  c1:m13.11
+}
+@end lilypond
+
+@item
+Sekundakkord
+@tab
+große Sekunde, perfekte Quinte
+@tab
+@code{sus2}
+@tab
+@lilypond[line-width=3\cm,noragged-right, notime]
+\chordmode {
+  c1:sus2
+}
+@end lilypond
+
+@item
+Quartakkord
+@tab
+perfekte Quarte, perfekte Quinte
+@tab
+@code{sus4}
+@tab
+@lilypond[line-width=3\cm,noragged-right, notime]
+\chordmode {
+  c1:sus4
+}
+@end lilypond
+
+
+@end multitable
+
+
+@node Predefined fretboard diagrams
+@appendixsec Predefined fretboard diagrams
+
+Die Tabelle zeigt alle vordefinierten Bunddiagramme.
+
+@lilypondfile{display-predefined-fretboards.ly}
+
+
+
 @node MIDI instruments
 @appendixsec MIDI instruments
 
@@ -277,6 +635,13 @@ Hier ist eine Liste, die alle möglichen Zeichen darstellt:
 
 @lilypondfile[ragged-right,quote]{script-chart.ly}
 
+
+@node Percussion notes
+@appendixsec Percussion notes
+
+@lilypondfile[quote]{percussion-chart.ly}
+
+
 @node All context properties
 @appendixsec All context properties
 
index 18f5f0e1240cc371470e9407d138b5df16733baa..3e03b133864e123273f10813764297eb64795808 100644 (file)
@@ -1,12 +1,12 @@
 @c -*- coding: utf-8; mode: texinfo; -*-
 @ignore
-    Translation of GIT committish: 47df71eb9aa3217537cd902ef0161ec3bef88ec5
+    Translation of GIT committish: 499a511d4166feaada31114e097f86b5e0c56421
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @node Musical notation
 @chapter Musical notation
index f37c89eca17ac144b8d2c0f204d6956cd2db3204..64115295ca8cbde7d1b47b452b34898cb8f6258a 100644 (file)
@@ -1,24 +1,22 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*-
 @c This file is part of lilypond.tely
 @ignore
-    Translation of GIT committish: 19fc0f930f921ca2609e0e60aa26f9d980771b97
+    Translation of GIT committish: 499a511d4166feaada31114e097f86b5e0c56421
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.62"
+@c \version "2.12.0"
 
 @node Percussion
 @section Percussion
 
-@untranslated
-
-
 @menu
 * Common notation for percussion::
 @end menu
 
+
 @node Common notation for percussion
 @subsection Common notation for percussion
 
@@ -29,42 +27,149 @@ aber hiermit kann auch der Rhythmus einer Melodie dargestellt werden.
 @menu
 * References for percussion::
 * Basic percussion notation::
+* Drum rolls::
+* Pitched percussion::
 * Percussion staves::
+* Custom percussion staves::
 * Ghost notes::
 @end menu
 
+
 @node References for percussion
 @unnumberedsubsubsec References for percussion
 
-@untranslated
+@itemize
+
+@item Viele Schlagzeugmusik kann auf einem rhythmischen System notiert
+werden.  Das wird gezeigt in
+@ref{Showing melody rhythms} und @ref{Instantiating new staves}.
+
+@item MIDI-Ausgabe wird behandelt in
+@ref{Percussion in MIDI}.
+
+@end itemize
+
+
+@seealso
+Notationsreferenz:
+@ref{Showing melody rhythms},
+@ref{Instantiating new staves}.
+@ref{Percussion in MIDI}.
+
+Schnipsel:
+@rlsr{Percussion}.
+
 
 @node Basic percussion notation
 @unnumberedsubsubsec Basic percussion notation
 
-@cindex Percussion
+@cindex Perkussion
 @cindex Drums
 @cindex Schlagzeug
 
-
 Schlagzeug-Noten können im @code{\drummode}-Modus notiert werden, 
-der sich ähnlich verhält wie der Standardmodus für die Noteneingabe. 
+der sich ähnlich verhält wie der Standardmodus für die Noteneingabe.
+Am einfachsten kann der @code{\drums}-Befehl benutzt werden, der sich
+um den richtigen Kontext und Eingabemodus kümmert:
+
+@lilypond[quote,verbatim]
+\drums {
+  hihat4 hh bassdrum bd
+}
+@end lilypond
+
+@noindent
+Das ist die Kurzschreibweise für:
+
+@lilypond[quote,verbatim]
+\new DrumStaff {
+  \drummode {
+    hihat4 hh bassdrum bd
+  }
+}
+@end lilypond
+
 Jedes Schlagzeuginstrument hat einen langen Namen und eine Abkürzung,
-und beide können nebeneinander benutzt werden.
+und beide können nebeneinander benutzt werden.  Eine Liste der
+Notenbezeichnungen für Schlagzeug findet sich in @ref{Percussion notes}.
+
+Beachten Sie, dass normale Tonhöhen (wie @code{cis4}) in einem
+@code{DrumStaff}-Kontext eine Fehlernachricht erzielen.  Schlüssel für
+Schlagzeug werden automatisch hinzugefügt, aber andere Schlüssel können
+auch benutzt werden.
+
+Es gibt einige Probleme mit der MIDI-Unterstützung für Schlagzeuginstrumente.
+Details finden sich in @ref{Percussion in MIDI}.
+
+@seealso
+Notationsreferenz:
+@ref{Percussion in MIDI},
+@ref{Percussion notes}.
+
+Installierte Dateien:
+@file{ly/@/drumpitch@/-init@/.ly}.
+
+Schnipsel:
+@rlsr{Percussion}.
+
+
+@node Drum rolls
+@unnumberedsubsubsec Drum rolls
+
+Trommelwirbel werden mit drei Balken durch den Notenhals notiert. Für
+Viertelnoten oder längere Noten werden die drei Balken explizit notiert,
+Achtel werden mit zwei Balken gezeigt (und der dritte ist der eigentliche
+Balken), und Trommelwirbel mit kürzeren Werten als Achtelnoten
+haben einen Balken zusätzlich zu den eigentlichen Balken der Noten.
+Dieses Verhalten wird mit der Tremolonotation erreicht, wie in
+@ref{Tremolo repeats} gezeigt.  Hier ein Beispiel kleinerer Wirbel:
 
-@lilypond[quote,ragged-right,verbatim]
+@lilypond[quote,verbatim]
 \drums {
-  hihat hh bassdrum bd
+  \time 2/4
+  sn16 sn8 sn16 sn8 sn8:32 ~
+  sn8 sn8 sn4:32 ~
+  sn4 sn8 sn16 sn16
+  sn4 r4
+}
+@end lilypond
+
+Benutzung der Stöcke kann angezeigt werden durch @code{^"R"} oder
+@code{^"L"} nach jeder Note. Die @code{staff-padding}-Eigenschaft
+kann verändert werden, um eine Orientierung an einer gemeinsamen
+Linie zu ermöglichen.
+
+@lilypond[quote,verbatim]
+\drums {
+  \repeat unfold 2 {
+    sn16 ^"L" sn^"R" sn^"L" sn^"L" sn^"R" sn^"L"  sn^"R" sn^"R"
+  }
 }
 @end lilypond
 
-Eine vollständige Liste der Schlagwerk-Bezeichnungen findet sich in 
-der Datei @file{ly/@/drumpitch@/-init@/.ly}.
-@c TODO: properly document this.
 
 @seealso
+Schnipsel:
+@rlsr{Percussion}.
+
 
-Programmreferenz:
-@rinternals{note-event}.
+@node Pitched percussion
+@unnumberedsubsubsec Pitched percussion
+
+Bestimmte Schlagzeuginstrumente mit Tonhöhe (z. B. Xylophone,
+vibraphone und Pauken) werden auf normalen Systemen geschrieben.  Das
+wird in anderen Abschnitten des Handbuchs behandelt.
+
+
+@seealso
+@c TODO: possibly link to an alternate section of NR 3.5, if
+@c "percussion in MIDI" gets a separate subsubsection for
+@c pitched percussion sounds.  -gp
+Notationsreferenz:
+@ref{Percussion in MIDI}.
+
+Schnipsel:
+@rlsr{Percussion}.
 
 
 @node Percussion staves
@@ -75,44 +180,46 @@ Programmreferenz:
 
 Ein Schlagzeug-System besteht üblicherweise aus einem Notensystem 
 mit mehreren Linien, wobei jede Linie ein bestimmtes Schlagzeug-Instrument 
-darstellt.
-
-Um die Noten darstellen zu können, müssen sie sich innerhalb von 
-einem @rinternals{DrumStaff}- und einem 
-@rinternals{DrumVoice}-Kontext befinden.
-
-@lilypond[quote,ragged-right,verbatim]
-up = \drummode { crashcymbal4 hihat8 halfopenhihat hh hh hh openhihat }
-down = \drummode { bassdrum4 snare8 bd r bd sn4 }
-  \new DrumStaff <<
-    \new DrumVoice { \voiceOne \up }
-    \new DrumVoice { \voiceTwo \down }
-  >>
+darstellt.  Um die Noten darstellen zu können, müssen sie sich innerhalb von 
+einem @code{DrumStaff}- und einem 
+@code{DrumVoice}-Kontext befinden.
+
+@lilypond[quote,verbatim]
+up = \drummode {
+  crashcymbal4 hihat8 halfopenhihat hh hh hh openhihat
+}
+down = \drummode {
+  bassdrum4 snare8 bd r bd sn4
+}
+\new DrumStaff <<
+  \new DrumVoice { \voiceOne \up }
+  \new DrumVoice { \voiceTwo \down }
+>>
 @end lilypond
+
 Das Beispiel zeigt ausdrücklich definierte mehrstimmige Notation. Die 
 Kurznotation für mehrstimmige Musik, wie sie im Abschnitt 
-@ref{Basic polyphony} beschrieben wird, kann auch verwendet werden, 
-wenn die @rinternals{DrumVoice} (Schlagzeugstimmen) am Anfang explizit 
-initialisiert werden.
+@rlearning{I'm hearing Voices} beschrieben wird, kann auch verwendet werden, 
+wenn die Stimmen am Anfang explizit initialisiert werden.
 
-@lilypond[quote,ragged-right,fragment,verbatim]
+@lilypond[quote,verbatim]
 \new DrumStaff <<
-  \new DrumVoice = "1" { s1 *2 }
-  \new DrumVoice = "2" { s1 *2 }
+  \new DrumVoice = "1" { s1*2 }
+  \new DrumVoice = "2" { s1*2 }
   \drummode {
     bd4 sn4 bd4 sn4
-    <<
-      { \repeat unfold 16 hh16 }
-      \\
-      { bd4 sn4 bd4 sn4 }
-    >>
+    << {
+      \repeat unfold 16 hh16
+    } \\ {
+      bd4 sn4 bd4 sn4
+    >>
   }
 >>
 @end lilypond
 
 Es gibt auch weitere Layout-Einstellungen. Um diese zu verwenden, 
 muss die Eigenschaft @code{drumStyleTable} im 
-@rinternals{DrumVoice}-Kontext entsprechend eingestellt werden. 
+@code{DrumVoice}-Kontext entsprechend eingestellt werden. 
 Folgende Variablen sind vordefiniert:
 
 @table @code
@@ -146,6 +253,7 @@ mus = \drummode {
   }
 }
 @end lilypond
+
 Die Schlagzeugdefinitionen unterstützen sechs unterschiedliche 
 Tom Toms. Falls eine geringere Anzahl verwendet wird, kann man 
 einfach die Tom Toms auswählen, deren Notation man haben will. 
@@ -253,10 +361,14 @@ mus = \drummode { tri trio trim gui guis guil cb cl tamb cab mar hc s16 }
 @end lilypond
 @end table
 
+
+@node Custom percussion staves
+@unnumberedsubsubsec Custom percussion staves
+
 Wenn ihnen keine der vordefinierten Stile gefällt, können Sie auch eine 
 eigene Liste der Positionen und Notenköpfe am Anfang ihrer Datei erstellen.
 
-@lilypond[quote,ragged-right,verbatim]
+@lilypond[quote,verbatim]
 #(define mydrums '(
          (bassdrum     default   #f         -1)
          (snare        default   #f         0)
@@ -274,16 +386,187 @@ down = \drummode { bd4 sn bd toml8 toml }
 @end lilypond
 
 
-@seealso
+@snippets
+
+Hier einige Beispiele:
 
-Init-Dateien: @file{ly/@/drumpitch@/-init@/.ly}.
+Zwei Holzblöcke, notiert mit wbh (hoch) und wbl (tief)
 
-Programmreferenz: @rinternals{DrumStaff}, @rinternals{DrumVoice}.
+@lilypond[quote,verbatim]
+% These lines define the position of the woodblocks in the stave;
+% if you like, you can change it or you can use special note heads
+% for the woodblocks.
+#(define mydrums '((hiwoodblock default #t  3)
+                   (lowoodblock default #t -2)))
 
-@knownissues
+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)
+
+  % This is neccessary; if not entered, the barline would be too short!
+  \override Staff.BarLine #'bar-size = #3
+}
 
-Weil in den allgemeinen MIDI-Definitionen kein Rimshot enthalten ist, 
-wird sidestick für diesen Zweck benutzt.
+\new DrumStaff {
+  \set DrumStaff.drumStyleTable = #(alist->hash-table mydrums)
+
+  % with this you load your new drum style table
+  \woodstaff
+
+  \drummode {
+    \time 2/4
+    wbl8 wbl16 wbl wbh8-> wbl |
+    wbl8 wbl16 wbh-> ~ wbh wbl16 r8 |
+  }
+}
+@end lilypond
+
+In diesem Spezialfalls muss die Länge der Taktlinie mit
+@code{\override Staff.BarLine #'bar-size #number} angepasst werden.
+Andernfalls wäre sie zu kurz.  Die Position der beiden Linien muss
+auch definiert werden.
+
+Tamburin, notiert mit @code{tamb}:
+
+@lilypond[quote,verbatim]
+#(define mydrums '((tambourine default #t 0)))
+
+tambustaff = {
+  \override Staff.StaffSymbol #'line-positions = #'( 0 )
+  \override Staff.BarLine #'bar-size = #3
+  \set DrumStaff.instrumentName = #"Tambourine"
+}
+
+\new DrumStaff {
+  \tambustaff
+  \set DrumStaff.drumStyleTable = #(alist->hash-table mydrums)
+
+  \drummode {
+    \time 6/8
+    tamb8. tamb16 tamb8 tamb tamb tamb |
+    tamb4. tamb8 tamb tamb |
+    % the trick with the scaled duration and the shorter rest
+    % is neccessary for the correct ending of the trill-span!
+    tamb2.*5/6 \startTrillSpan s8 \stopTrillSpan |
+  }
+}
+@end lilypond
+
+Noten für Tam-Tam (notiert mit @code{tt}):
+
+@lilypond[quote,verbatim]
+#(define mydrums '((tamtam default #t 0)))
+
+tamtamstaff = {
+  \override Staff.StaffSymbol #'line-positions = #'( 0 )
+  \override Staff.BarLine #'bar-size = #3
+  \set DrumStaff.instrumentName = #"Tamtam"
+}
+
+\new DrumStaff {
+  \tamtamstaff
+  \set DrumStaff.drumStyleTable = #(alist->hash-table mydrums)
+
+  \drummode {
+    tt 1 \pp \laissezVibrer
+  }
+}
+@end lilypond
+
+Zwei Glocken, notiert mit @code{cb} (Kuhglocke) und @code{rb}
+(Reisterglocke)
+
+@lilypond[quote,verbatim]
+#(define mydrums '((ridebell default #t  3)
+                   (cowbell  default #t -2)))
+
+bellstaff = {
+  \override DrumStaff.StaffSymbol #'line-positions = #'(-2 3)
+  \set DrumStaff.drumStyleTable = #(alist->hash-table mydrums)
+  \override Staff.BarLine #'bar-size = #3
+  \set DrumStaff.instrumentName = #"Different Bells"
+}
+
+\new DrumStaff {
+  \bellstaff
+  \drummode {
+    \time 2/4
+    rb8 rb cb cb16 rb-> ~ |
+    rb16 rb8 rb16 cb8 cb |
+  }
+}
+@end lilypond
+
+Here an short example by maestro Stravinsky (from @q{L'histoire du Soldat})
+
+@lilypond[quote,verbatim]
+#(define mydrums '((bassdrum   default #t  4)
+                   (snare      default #t -4)
+                   (tambourine default #t  0)))
+
+global = {
+  \time 3/8 s4.
+  \time 2/4 s2*2
+  \time 3/8 s4.
+  \time 2/4 s2
+}
+
+drumsA = {
+  \context DrumVoice <<
+    { \global }
+    { \drummode {
+        \autoBeamOff
+        \stemDown sn8 \stemUp tamb s8 |
+        sn4 \stemDown sn4 |
+        \stemUp tamb8 \stemDown sn8 \stemUp sn16 \stemDown sn \stemUp sn8 |
+        \stemDown sn8 \stemUp tamb s8 |
+        \stemUp sn4 s8 \stemUp tamb
+      }
+    }
+  >>
+}
+
+drumsB = {
+  \drummode {
+    s4 bd8 s2*2 s4 bd8 s4 bd8 s8
+  }
+}
+
+\layout {
+  indent = #40
+}
+
+\score {
+  \new StaffGroup <<
+    \new DrumStaff {
+      \set DrumStaff.instrumentName = \markup {
+        \column {
+          "Tambourine"
+          "et"
+          "caisse claire s. timbre"
+        }
+      }
+      \set DrumStaff.drumStyleTable = #(alist->hash-table mydrums)
+      \drumsA
+    }
+
+   \new DrumStaff {
+     \set DrumStaff.instrumentName = #"Grosse Caisse"
+     \set DrumStaff.drumStyleTable = #(alist->hash-table mydrums)
+     \drumsB }
+  >>
+}
+@end lilypond
+
+
+@seealso
+Schnipsel:
+@rlsr{Percussion}.
+
+Referenz der Interna:
+@rinternals{DrumStaff},
+@rinternals{DrumVoice}.
 
 
 @node Ghost notes
@@ -292,24 +575,23 @@ wird sidestick für diesen Zweck benutzt.
 Geisternoten für Schlagzeug und Perkussion können mit dem 
 Klammer- (@code{\parenthesize})-Befehl, beschrieben in @ref{Parentheses}, 
 erstellt werden. Im Standard-@code{\drummode}-Modus ist aber 
-das @code{Parenthesis_engraver}-Plugin nicht automatisch enthalten. 
-Sie müssen das Plugin ausdrücklich in den Kontext-Definitionen 
-laden, wie im Abschnitt @rlearning{Modifying context properties}
-detailliert beschrieben.
+das @code{Parenthesis_engraver}-Plugin nicht automatisch enthalten.
 
 @lilypond[quote,ragged-right,verbatim,fragment]
 \new DrumStaff \with {
   \consists "Parenthesis_engraver"
-} <<
-  \context DrumVoice  = "1"  { s1 *2 }
-  \context DrumVoice  = "2" { s1 *2 }
+}
+<<
+  \context DrumVoice  = "1" { s1 }
+  \context DrumVoice  = "2" { s1 }
   \drummode {
     <<
       {
         hh8[ hh] <hh sn> hh16
-        < \parenthesize sn > hh < \parenthesize
-        sn > hh8 <hh sn> hh
-      } \\ {
+        < \parenthesize sn > hh
+        < \parenthesize sn > hh8 <hh sn> hh
+      } \\
+      {
         bd4 r4 bd8 bd r8 bd
       }
     >>
@@ -322,4 +604,6 @@ Um jede Klammer-Definition (@code{\parenthesize}) müssen
  zusätzlich die spitzen 
 Klammern für Akkorde (@code{< >}) gesetzt werden.
 
-
+@seealso
+Schnipsel:
+@rlsr{Percussion}.
index 43383f4be59a2ebe7f0fcb766f96386f349b84e4..5164b5663e49413bd652d8705da684dcf0fbcfae 100644 (file)
@@ -1,12 +1,12 @@
 @c -*- coding: utf-8; mode: texinfo; -*-
 @ignore
-    Translation of GIT committish: 7c57f1469e057f25f5d7a7b75c18f33bb4e5bed9
+    Translation of GIT committish: 499a511d4166feaada31114e097f86b5e0c56421
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @node Pitches
 @section Pitches
@@ -47,6 +47,7 @@ Modus besser.
 @cindex Tonhöhenbezeichnungen
 @cindex Absoluter Modus: Tonhöhen
 @cindex Absolute Spezifikation von Oktaven
+@cindex Angabe der Oktave: absolut
 
 Tonhöhenbezeichnungen werden durch Kleinbuchstaben
 von@tie{}@code{a} bis@tie{}@code{g} angegeben.  Dabei
@@ -60,7 +61,7 @@ werden in der Oktave unter dem zweigestrichenen C
 gesetzt.
 
 @c don't use c' here.
-@lilypond[quote,fragment,verbatim]
+@lilypond[verbatim,quote,fragment]
 \clef bass
 c d e f
 g a b c
@@ -70,6 +71,7 @@ d e f g
 @cindex Oktavwechsel: Tonhöhe
 @cindex Wechsel der Oktave
 @cindex Tonhöhe: Wechsel der Oktave
+
 @funindex '
 @funindex ,
 
@@ -89,8 +91,7 @@ d,, d, d c
 @end lilypond
 
 @seealso
-
-Musikglossar:
+Glossar:
 @rglos{Pitch names}.
 
 Schnipsel:
@@ -102,8 +103,11 @@ Schnipsel:
 
 @cindex Relativ
 @cindex Relative Oktavbestimmung
+@cindex Oktavbestimmung, relativ
 @cindex Noteneingabe: relative Oktavbestimmung
+
 @funindex \relative
+@funindex relative
 
 Wenn Oktaven im absoluten Modus notiert, passiert es
 schnell, eine Note auf der falschen Oktave zu notieren.  Mit
@@ -162,7 +166,7 @@ So funktioniert der relative Modus:
 Oktavversetzungen müssen für alle Intervalle angezeigt werden, 
 die größer als eine Quarte sind.
 
-@lilypond[quote,verbatim]
+@lilypond[verbatim,quote]
 \relative c'' {
   c g c f,
   c' a, e'' c
@@ -179,13 +183,17 @@ aber trotzdem weite Intervalle umfassen:
 }
 @end lilypond
 
+@cindex Akkorde und relativer Modus
+@cindex relativer Modus und Akkorde
+@cindex Oktavenmodus (relativ) und Akkorde
+
 Wenn der vorherige Ausdruck ein Akkord ist, wird die erste Note 
 des Akkordes benutzt, um die erste Note des nächsten Akkordes zu 
 bestimmen.  Innerhalb von Akkorden ist die nächste Note immer
 relativ zur vorherigen.  Betrachten Sie das folgende Beispiel
 aufmerksam, insbesondere die @code{c}-Noten.
 
-@lilypond[quote,verbatim]
+@lilypond[verbatim,quote]
 \relative c' {
   c
   <c e g>
@@ -214,7 +222,6 @@ Intervall enthält.
 
 
 @seealso
-
 Musickgossar:
 @rglos{fifth},
 @rglos{interval},
@@ -232,9 +239,13 @@ Referenz der Interna:
 
 @cindex Relativer Oktavenmodus und Transposition
 @cindex Transposition und relativer Modus
+
 @funindex \transpose
 @funindex \chordmode
 @funindex \relative
+@funindex transpose
+@funindex chordmode
+@funindex relative
 
 @knownissues
 
@@ -272,8 +283,10 @@ Mehr Information dazu in @rlearning{Accidentals and key
 signatures}.}
 
 @cindex Notenbezeichnungen, Deutsch
+@cindex Notenbezeichnungen, Holländisch
 @cindex Notenbezeichnungen, Standard
 @cindex Versetzungszeichen, Deutsch
+@cindex Standardnotenbezeichnungen
 @cindex Kreuz
 @cindex B
 @cindex Doppelkreuz
@@ -290,7 +303,7 @@ Syntax leitet sich von den holländischen Notenbezeichnungen
 ab. Um andere Bezeichnungen für Versetzungszeichen zu
 benutzung, siehe @ref{Note names in other languages}.
 
-@lilypond[quote,verbatim,relative=2]
+@lilypond[verbatim,quote,relative=2]
 ais1 aes aisis aeses
 @end lilypond
 
@@ -302,8 +315,8 @@ B, während his als @code{bis} geschrieben werden muss. Das kann
 aber auch verändert werden, siehe @ref{Note names in other languages}.
 
 
-@lilypond[fragment,quote,ragged-right,verbatim,relative=2]
-a2 as e es
+@lilypond[verbatim,quote,relative=2]
+a4 aes a2
 @end lilypond
 
 Ein Auflösungszeichen macht die Wirkung eines Kreuzes oder Bs
@@ -321,6 +334,8 @@ a4 aes a2
 @cindex Vorzeichen, Vierteltöne
 @cindex Versetzungszeichen, Vierteltöne
 @cindex Mikrotöne
+@cindex Halbkreuz
+@cindex Halb-B
 
 Versetzungszeichen für Vierteltöne werden durch Anhängen der Endungen 
 @code{-eh} (Erniedrigung) und @code{-ih} (Erhöhung) an den 
@@ -338,8 +353,9 @@ ceseh1 ces ceh c cih cis cisih
 @cindex Vorzeichen in Klammern
 @cindex Erinnerungsvorzeichen
 @cindex Warnungsvorzeichen
-@funindex ?
 @cindex Klammern um Vorzeichen
+
+@funindex ?
 @funindex !
 
 Normalerweise werden Versetzungszeichen automatisch gesetzt, aber
@@ -371,9 +387,11 @@ cis
 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
 {preventing-extra-naturals-from-being-automatically-added.ly}
 
-@seealso
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{makam-example.ly}
 
-Musikglossar:
+@seealso
+Glossar:
 @rglos{sharp},
 @rglos{flat},
 @rglos{double sharp},
@@ -386,7 +404,7 @@ Handbuch zum Lernen:
 
 Notationsreferenz:
 @ref{Automatic accidentals},
-@ref{Annotational accidentals},
+@ref{Annotational accidentals (musica ficta)},
 @ref{Note names in other languages}.
 
 Schnipsel:
@@ -421,55 +439,75 @@ Sprachen als Englisch. Um sie zu benutzen, muss nur die
 entsprechende Datei für die jeweilige Sprache eingefügt werden.
 Zum Beispiel fügt man mit @code{\include "deutsch.ly"} die 
 Notendefinitionen für die deutsche Sprache am Anfang der Datei 
-hinzu. In der Tabelle sind die existierenden Definitionen
-mit den dazugehörigen Notenbezeichnungen dargestellt.
+hinzu. In der Tabelle sind die existierenden Sprachdefinitionen
+mit den dazugehörigen Notenbezeichnungen dargestellt
 
-@smallexample
-@multitable {nederlands.ly} {do re mi fa sol la sib si} {-iss/-is} {-ess/-es} {-ss/-x/-sharpsharp} {-essess/-eses}
-@headitem Sprache
+@quotation
+@multitable {@file{nederlands.ly}} {do re mi fa sol la sib si}
+@headitem Sprachdatei
   @tab Notenbezeichnung
-  @tab sharp @tab flat @tab double sharp @tab double flat
-@item nederlands.ly
+@item @file{nederlands.ly}
   @tab c d e f g a bes b
-  @tab -is @tab -es @tab -isis @tab -eses
-@item arabic.ly
+@item @file{arabic.ly}
   @tab do re mi fa sol la sib si
-  @tab -d @tab -b @tab -dd @tab -bb
-@item catalan.ly
+@item @file{catalan.ly}
   @tab do re mi fa sol la sib si
-  @tab -d/-s @tab -b @tab -dd/-ss @tab -bb
-@item deutsch.ly
+@item @file{deutsch.ly}
   @tab c d e f g a b h
-  @tab -is @tab -es @tab -isis @tab -eses
-@item english.ly
+@item @file{english.ly}
   @tab c d e f g a bf b
+@item @file{espanol.ly}
+  @tab do re mi fa sol la sib si
+@item @file{italiano.ly}
+  @tab do re mi fa sol la sib si
+@item @file{norsk.ly}
+  @tab c d e f g a b h
+@item @file{portugues.ly}
+  @tab do re mi fa sol la sib si
+@item @file{suomi.ly}
+  @tab c d e f g a b h
+@item @file{svenska.ly}
+  @tab c d e f g a b h
+@item @file{vlaams.ly}
+  @tab do re mi fa sol la sib si
+@end multitable
+@end quotation
+
+@noindent
+und die dazugehörigen Versetzungszeichen-Endungen:
+
+@quotation
+@multitable {@file{nederlands.ly}} {-s/-sharp} {-ess/-es} {-ss/-x/-sharpsharp} {-essess/-eses}
+@headitem Sprachdatei
+  @tab Kreuz @tab B @tab Doppelkreuz @tab Doppel-B
+@item @file{nederlands.ly}
+  @tab -is @tab -es @tab -isis @tab -eses
+@item @file{arabic.ly}
+  @tab -d @tab -b @tab -dd @tab -bb
+@item @file{catalan.ly}
+  @tab -d/-s @tab -b @tab -dd/-ss @tab -bb
+@item @file{deutsch.ly}
+  @tab -is @tab -es @tab -isis @tab -eses
+@item @file{english.ly}
   @tab -s/-sharp @tab -f/-flat @tab -ss/-x/-sharpsharp
     @tab -ff/-flatflat
-@item espanol.ly
-  @tab do re mi fa sol la sib si
+@item @file{espanol.ly}
   @tab -s @tab -b @tab -ss @tab -bb
-@item italiano.ly
-  @tab do re mi fa sol la sib si
+@item @file{italiano.ly}
   @tab -d @tab -b @tab -dd @tab -bb
-@item norsk.ly
-  @tab c d e f g a b h
+@item @file{norsk.ly}
   @tab -iss/-is @tab -ess/-es @tab -ississ/-isis
     @tab -essess/-eses
-@item portugues.ly
-  @tab do re mi fa sol la sib si
+@item @file{portugues.ly}
   @tab -s @tab -b @tab -ss @tab -bb
-@item suomi.ly
-  @tab c d e f g a b h
+@item @file{suomi.ly}
   @tab -is @tab -es @tab -isis @tab -eses
-@item svenska.ly
-  @tab c d e f g a b h
+@item @file{svenska.ly}
   @tab -iss @tab -ess @tab -ississ @tab -essess
-@item vlaams.ly
-  @tab do re mi fa sol la sib si
+@item @file{vlaams.ly}
   @tab -k @tab -b @tab -kk @tab -bb
 @end multitable
-@end smallexample
-
+@end quotation
 
 @noindent
 Auf Holländisch, Deutsch, Norwegisch und Schwedisch (u. a.) werden die 
@@ -495,36 +533,29 @@ Tabelle aufgeführt. Die Präfixe @qq{Semi-} und @qq{Sesqui-} bedeuten
 @qq{halb} bzw. @qq{eineinhalb}. Für alle anderen
 Sprachen sind noch keine eigenen Namen definiert.
 
-@smallexample
-@multitable {nederlands.ly} {do re mi fa sol la sib si} {-iss/-is} {-ess/-es} {-ississ/-isis} {-ississ/-isis}
-@headitem Sprache
-  @tab Notenbezeichnung
-  @tab semi-sharp @tab semi-flat @tab sesqui-sharp @tab sesqui-flat
+@quotation
+@multitable {@file{nederlands.ly}} {@b{semi-sharp}} {@b{semi-flat}} {@b{sesqui-sharp}} {@b{sesqui-flat}}
+@headitem Sprachdatei
+  @tab Vierteltonkreuz @tab Viertelton-B @tab 3/4-tonkreuz @tab 3/4-ton-B
 
-@item nederlands.ly
-  @tab c d e f g a bes b
+@item @file{nederlands.ly}
   @tab -ih @tab -eh @tab -isih @tab -eseh
-@item arabic.ly
-  @tab do re mi fa sol la sib si
+@item @file{arabic.ly}
   @tab -sd @tab -sb @tab -dsd @tab -bsb
-@item deutsch.ly
-  @tab c d e f g a b h
+@item @file{deutsch.ly}
   @tab -ih @tab -eh @tab -isih @tab -eseh
-@item english.ly
-  @tab c d e f g a bf b
+@item @file{english.ly}
   @tab -qs @tab -qf @tab -tqs @tab -tqf
-@item italiano.ly
-  @tab do re mi fa sol la sib si
+@item @file{italiano.ly}
   @tab -sd @tab -sb @tab -dsd @tab -bsb
-@item portugues.ly
-  @tab do re mi fa sol la sib si
+@item @file{portugues.ly}
   @tab -sqt @tab -bqt @tab -stqt @tab -btqt
 @end multitable
-@end smallexample
+@end quotation
 
-@seealso
 
-Musikglossar:
+@seealso
+Glossar:
 @rglos{Pitch names}.
 
 Schnipsel:
@@ -547,8 +578,10 @@ Dieser Abschnitt zeigt, wie man Tonhöhen beeinflusst.
 @cindex Oktavenüberprüfung
 @cindex Oktavierungskorrektur
 @cindex Kontroll-Tonhöhe
+
 @funindex =
 @funindex \octaveCheck
+@funindex octaveCheck
 @funindex controlpitch
 
 Im relativen Modus geschieht es recht häufig, dass ein
@@ -610,7 +643,6 @@ einen Fehler aus, die zweite dagegen ist erfolgreich:
 @end lilypond
 
 @seealso
-
 Schnipsel:
 @rlsr{Pitches}.
 
@@ -625,7 +657,9 @@ Referenz der Interna:
 @cindex Transponieren
 @cindex Noten, transponieren
 @cindex Tonhöhen, transponieren
+
 @funindex \transpose
+@funindex transpose
 
 Ein musikalischer Ausdruck kann mit dem Befehl @code{\transpose}
 transponiert werden. Die Syntax lautet:
@@ -654,9 +688,6 @@ werden auch die Vorzeichen entsprechend angepasst:
 }
 @end lilypond
 
-@cindex Transponierende Instrumente
-@cindex Instrumente, transponierende
-
 Wenn eine Stimme, die in C notiert ist, von einer A-Klarinette
 gespielt werden soll (für die A als C notiert wird,
 aber eine kleine Terz tiefer erklingt als es notiert
@@ -683,7 +714,7 @@ Vorzeichen angezeigt werden.
 die Musik einen Halbton nach oben.  Aber die erste Version gibt als 
 Versetzungszeichen Kreuze aus, die zweite dagegen B-Versetzungszeichen.
 
-@lilypond[quote,ragged-right,verbatim]
+@lilypond[verbatim,quote]
 music = \relative c' { c d e f }
 \new Staff {
   \transpose c cis { \music }
@@ -730,7 +761,6 @@ siehe auch @ref{Instrument transpositions}.
 {transposing-pitches-with-minimum-accidentals-smart-transpose.ly}
 
 @seealso
-
 Notationsreferenz:
 @ref{Instrument transpositions}.
 
@@ -743,6 +773,9 @@ Referenz der Interna:
 @funindex \transpose
 @funindex \chordmode
 @funindex \relative
+@funindex transpose
+@funindex chordmode
+@funindex relative
 
 @knownissues
 
@@ -771,7 +804,6 @@ verändern werden kann.
 @node Clef
 @unnumberedsubsubsec Clef
 
-@funindex \clef
 @cindex G-Schlüssel
 @cindex C-Schlüssel
 @cindex F-Schlüssel
@@ -794,6 +826,9 @@ verändern werden kann.
 @cindex Schlüssel, G
 @cindex Schlüssel, F
 
+@funindex \clef
+@funindex clef
+
 Der Schlüssel kann verändert werden. Das eingestrichene
 C wird in jedem Beispiel gezeigt:
 
@@ -832,12 +867,14 @@ c2 c
 c2 c
 @end lilypond
 
-Weitere unterstützte Schlüssel sind beschrieben in @ref{Ancient clefs}.
+Weitere unterstützte Schlüssel sind beschrieben in @ref{Mensural clefs}
+und @ref{Gregorian clefs}.
 
-@cindex transposing clefs
-@cindex clef, transposing
-@cindex octave transposition
-@cindex choral tenor clef
+@cindex transponierende Schlüssel
+@cindex Schlüssel, transponierend
+@cindex Oktavtransposition
+@cindex Chor-Tenorschlüssel
+@cindex Tenorschlüssel, Chor
 
 Indem @code{_8} oder @code{^8} an die jeweilige Schlüsselbezeichnung 
 angehängt wird, wird der Schlüssel um eine Oktave nach oben oder unten 
@@ -861,8 +898,8 @@ c2 c
 
 
 @seealso
-
-Notationsreferenz: @ref{Ancient clefs}.
+Notationsreferenz:
+@ref{Mensural clefs}, @ref{Gregorian clefs}.
 
 Schnipsel:
 @rlsr{Pitches}.
@@ -879,7 +916,9 @@ Referenz der Interna:
 
 @cindex Tonart
 @cindex Vorzeichen
+
 @funindex \key
+@funindex key
 
 @c duplicated in Key signature and Accidentals
 @warning{Neue Benutzer sind manchmal verwirrt, wie
@@ -913,6 +952,17 @@ Die Tonart kann geändert werden:
 @funindex \lydian
 @funindex \phrygian
 @funindex \dorian
+@funindex minor
+@funindex major
+@funindex minor
+@funindex ionian
+@funindex locrian
+@funindex aeolian
+@funindex mixolydian
+@funindex lydian
+@funindex phrygian
+@funindex dorian
+
 @cindex Kirchentonarten
 @cindex Modus
 @cindex Dur
@@ -950,8 +1000,7 @@ fis
 
 
 @seealso
-
-Musikglossar:
+Glossar:
 @rglos{church mode},
 @rglos{scordatura}.
 
@@ -979,7 +1028,10 @@ Referenz der Interna:
 @cindex 8va
 @cindex 8ve
 @cindex Oktavierung
+
 @funindex set-octavation
+@funindex \ottava
+@funindex ottava
 
 @notation{Oktavierungsklammern} zeigen eine zusätzliche
 Transposition von einer Oktave an:
@@ -1005,8 +1057,7 @@ haben.
 
 
 @seealso
-
-Musikglossar:
+Glossar:
 @rglos{octavation}.
 
 Schnipsel:
@@ -1026,7 +1077,9 @@ Referenz der Interna:
 @cindex Transponierendes Instrument
 @cindex MIDI
 @cindex MIDI-Transposition
+
 @funindex \transposition
+@funindex transposition
 
 Wenn man Noten setzt, die von transponierenden Instrumenten
 gespielt werden, sind oft einige Stimmen auf einer
@@ -1061,8 +1114,8 @@ spielen unisono.
 \new GrandStaff <<
   \new Staff = "violin" {
     \relative c'' {
-      \set Staff.instrumentName = "Vln"
-      \set Staff.midiInstrument = "violin"
+      \set Staff.instrumentName = #"Vln"
+      \set Staff.midiInstrument = #"violin"
       % not strictly necessary, but a good reminder
       \transposition c'
 
@@ -1073,7 +1126,7 @@ spielen unisono.
   \new Staff = "clarinet" {
     \relative c'' {
       \set Staff.instrumentName = \markup { Cl (B\flat) }
-      \set Staff.midiInstrument = "clarinet"
+      \set Staff.midiInstrument = #"clarinet"
       \transposition bes
 
       \key d \major
@@ -1088,7 +1141,7 @@ geändert werden.  Ein Klarinetist zum Beispiel kann
 zwischen B- und A-Klarinette wechseln.
 
 @lilypond[verbatim,quote,relative=2]
-\set Staff.instrumentName = "Cl (A)"
+\set Staff.instrumentName = #"Cl (A)"
 \key a \major
 \transposition a
 c d e f
@@ -1103,8 +1156,7 @@ c2 g
 
 
 @seealso
-
-Musikglossar:
+Glossar:
 @rglos{concert pitch},
 @rglos{transposing instrument}.
 
@@ -1124,8 +1176,10 @@ Schnipsel:
 @cindex Automatische Versetzungszeichen
 @cindex Versetzungszeichen, automatisch
 @cindex Standard-Versetzungszeichenstil
+
 @funindex set-accidental-style
 @funindex voice
+@funindex default
 
 Es gibt viele unterschiedliche Regeln, wie Versetzungszeichen
 notiert werden.  LilyPond hat eine Funktion, mit der
@@ -1156,8 +1210,6 @@ Folgende Versetzungszeichenstile sind unterstützt.
 Um jeden Stil zu erklären, wird folgendes Beispiel
 benützt:
 
-@funindex default
-
 @lilypond[verbatim,quote]
 musicA = {
   <<
@@ -1230,7 +1282,6 @@ in beiden Systemen benutzt werden soll:
 
 @cindex Standard-Versetzungszeichenstil
 @cindex Versetzungszeichenstil, Standard
-@funindex default
 
 Das ist das Standardverhalten.  Es entspricht der
 Konvention für Notation von Musik des 18. Jahrhunderts:
@@ -1295,6 +1346,7 @@ musicB = {
 @cindex Versetzungszeichenstil modern
 @cindex Versetzungszeichenstil, modern-cautionary
 @cindex modern-Warnung-Versetzungszeichenstil
+
 @funindex voice
 
 Das normale Verhalten ist es, die Versetzungszeichen
@@ -1365,6 +1417,7 @@ musicB = {
 
 @cindex Versetzungszeichen, moderne Stile
 @cindex Moderner Stil, Versetzungszeichen
+
 @funindex modern
 
 Dieser Stil orientiert sich an den üblichen Regeln für
@@ -1428,6 +1481,7 @@ musicB = {
 @cindex Versetzungszeichen, moderner Stil mit Warnungen
 @cindex moderner Versetzungszeichenstil
 @cindex moderner Verseztungszeichenstil mit Warnungen
+
 @funindex modern-cautionary
 
 Dieser Stil ähnelt @code{modern}, aber die @qq{zusätzlichen}
@@ -1490,6 +1544,7 @@ musicB = {
 @cindex moderner Versetzungszeichenstil
 @cindex moderne Versetzungszeichen
 @cindex Stimmen, Versetzungszeichen für
+
 @funindex modern-voice
 
 Diese Regel wird für vielstimmige Noten benutzt, die sowohl von
@@ -1551,6 +1606,7 @@ musicB = {
 @cindex Versetzungszeichenstil, modern mit Warnung für Stimmen
 @cindex Stimmen, Versetzungszeichenstil mit Warnung für Stimmen
 @cindex moderner Versetzungszeichensitl mit Warnungen für Stimmen
+
 @funindex modern-voice-cautionary
 
 @item modern-voice-cautionary (modern mit Warnungen für einzelne Stimmen)
@@ -1613,6 +1669,7 @@ musicB = {
 @cindex Versetzungszeichen für Klavier
 @cindex Klavier-Versetzungszeichenstil
 @cindex Piano-Versetzungszeichenstil
+
 @funindex piano
 
 Dieser Stil orientiert sich an den Regeln im 20. Jahrhundert für die
@@ -1671,6 +1728,7 @@ musicB = {
 @item piano-cautionary (Klavier mit Warnungen)
 
 @funindex piano-cautionary
+
 @cindex Versetzungszeichen, piano cautionary
 @cindex Warnungsversetzungszeichen für Klavier
 @cindex Klavier: Warnungsversetzungszeichen
@@ -1728,6 +1786,7 @@ musicB = {
 @item neo-modern
 
 @funindex neo-modern
+
 @cindex neo-moderner Versetzungszeichenstil
 @cindex Versetzungszeichenstil, neo-modern
 
@@ -1785,6 +1844,7 @@ musicB = {
 @item neo-modern-cautionary (neo-modern mit Warnungen)
 
 @funindex neo-modern-cautionary
+
 @cindex neo-modern-cautionary-Versetzungszeichenstil
 @cindex Versetzungszeichenstil neo-modern mit Warnungen
 @cindex Warnungsversetzungszeichen, neo-modern
@@ -1842,6 +1902,7 @@ musicB = {
 @item dodecaphonic (Zwölftonmusik)
 
 @funindex dodecaphonic
+
 @cindex dodekaphoner Versetzungszeichenstil
 @cindex Zwölftonmusik, Versetzungszeichenstil
 @cindex Versetzungszeichenstil, Zwölftonmusik
@@ -1901,6 +1962,7 @@ musicB = {
 @item teaching (didaktisch)
 
 @funindex teaching
+
 @cindex teaching-Versetzungszeichenstil
 @cindex Versetzungszeichenstil teaching
 @cindex didaktischer Versetzungszeichenstil
@@ -1963,6 +2025,7 @@ musicB = {
 @item no-reset (nicht zurücksetzen)
 
 @funindex no-reset
+
 @cindex Versetzungszeichenstil, no reset
 @cindex Versetzungszeichenstil: nicht zurücksetzen
 
@@ -2018,6 +2081,7 @@ musicB = {
 @item forget (vergessen)
 
 @funindex forget
+
 @cindex forget-Versetzungszeichenstil
 @cindex Versetzungszeichenstil forget
 @cindex Versetzungszeichenstil Vergessen
@@ -2082,7 +2146,6 @@ musicB = {
 
 
 @seealso
-
 Schnipsel:
 @rlsr{Pitches}.
 
@@ -2158,8 +2221,7 @@ Tonart definiert werden.
 
 
 @seealso
-
-Musikglossar:
+Glossar:
 @rglos{ambitus}.
 
 Schnipsel:
@@ -2209,6 +2271,7 @@ Dieser Abschnitt zeigt, wie man Notenköpfe ändern kann.
 @cindex Gitarrennotenköpfe
 @cindex Flageolett-Notenköpfe
 @cindex Stile, Notenköpfe
+
 @funindex cross
 
 Notenköpfe können verändert werden:
@@ -2233,7 +2296,6 @@ Alle möglichen Notenkopf-Stile finden sich in
 @ref{Note head styles}.
 
 @seealso
-
 Schnipsel:
 @rlsr{Pitches}.
 
@@ -2263,6 +2325,11 @@ Referenz der Interna:
 @cindex Anfänger, Notenlernen
 @cindex Notenköpfe für Anfänger
 
+@funindex \easyHeadsOn
+@funindex easyHeadsOn
+@funindex \easyHeadsOff
+@funindex easyHeadsOff
+
 Die @qq{einfachen Notenköpfe} haben die Bezeichnung der Note
 im Kopf gedruckt.  Das wird eingesetzt, um die Notation beizubringen.
 Damit die Buchstaben noch lesbar sind, müssen sie sehr groß
@@ -2280,14 +2347,15 @@ sich in @ref{Setting the staff size}.
 }
 @end lilypond
 
-@predefined
-
 @funindex \easyHeadsOn
 @funindex \easyHeadsOff
-@code{\easyHeadsOn}, @code{\easyHeadsOff}
 
-@seealso
+@predefined
+@code{\easyHeadsOn},
+@code{\easyHeadsOff}.
+@endpredefined
 
+@seealso
 Notationsreferenz:
 @ref{Setting the staff size}.
 
@@ -2310,9 +2378,13 @@ Referenz der Interna:
 @cindex Form-Notenköpfe
 @cindex Aiken-Notenköpfe
 @cindex sacred harp-Notenköpfe
+
 @funindex \key
 @funindex \aikenHeads
 @funindex \sacredHarpHeads
+@funindex key
+@funindex aikenHeads
+@funindex sacredHarpHeads
 
 In dieser Notation haben die Notenköpfe eine Form, die ihrer
 harmonischen Funktion innherhalb der Tonleiter entspricht.  Die
@@ -2332,10 +2404,9 @@ Skala, wobei der Grundton der Skala aus dem @code{\key}-Befehl
 entnommen wird.
 
 @predefined
-
-@funindex \aikenHeads
-@funindex \sacredHarpHeads
-@code{\aikenHeads}, @code{\sacredHarpHeads}
+@code{\aikenHeads},
+@code{\sacredHarpHeads}.
+@endpredefined
 
 @snippets
 
@@ -2346,7 +2417,6 @@ entnommen wird.
 Alle Notenkopfstile finden sich in @ref{Note head styles}.
 
 @seealso
-
 Schnipsel:
 @rlsr{Pitches}.
 
@@ -2369,6 +2439,11 @@ Referenz der Interna:
 @cindex Strichnotenköpfe
 @cindex Striche: Notenköpfe
 
+@funindex \improvisationOn
+@funindex improvisationOn
+@funindex \improvisationOff
+@funindex improvisationOff
+
 Improvisation wird manchmal angezeigt, indem schräge Notenköpfe
 gesetzt werden, wenn der Spieler eine beliebige Tonhöhe wählen kann
 aber den vorgegebenen Rhythmus spielen soll. Sie können wie folgt
@@ -2388,16 +2463,12 @@ benutzt werden:
 }
 @end lilypond
 
-
 @predefined
-
-@funindex \improvisationOn
-@funindex \improvisationOff
-
-@code{\improvisationOn}, @code{\improvisationOff}
+@code{\improvisationOn},
+@code{\improvisationOff}.
+@endpredefined
 
 @seealso
-
 Schnipsel:
 @rlsr{Pitches}.
 
index 50bedbe2d57e2d67035ebde47e3cac721ad59fcb..ea608c796a9988477d3305512e5ee47d6050c12a 100644 (file)
@@ -1,13 +1,13 @@
 @c -*- coding: utf-8; mode: texinfo; -*-
 @c This file is part of lilypond.tely
 @ignore
-    Translation of GIT committish: b54fc6953a8d70a3c51e8c3d0cbf9b3fe9652d78
+    Translation of GIT committish: 499a511d4166feaada31114e097f86b5e0c56421
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @node Preface
 @unnumbered Preface
index ff9bf97237478ee9886f736271769142f8cd9568..6f45cf81e1a657643ab613679bc793bdbc1d05e4 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*-
 @c This file is part of lilypond.tely
 @ignore
-    Translation of GIT committish: 4a527608c5ff2ce31e596495d00dce181dc1b9ea
+    Translation of GIT committish: 99b5022dc4baadd7000c94d5868cdb7cb9a8ed53
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
@@ -21,7 +21,8 @@
 * Markup programmer interface::
 * Contexts for programmers::
 * Scheme procedures as properties::
-* TODO moved into scheme::
+* Using Scheme code instead of \tweak::
+* Difficult tweaks::
 @end menu
 
 @node Music functions
 @untranslated
 
 
-@node TODO moved into scheme
-@section TODO moved into scheme
-
-@untranslated
-
-
-@menu
-* Using Scheme code instead of \tweak::
-* Difficult tweaks::
-@end menu
-
 @node Using Scheme code instead of \tweak
-@subsection Using Scheme code instead of @code{\tweak}
+@section Using Scheme code instead of @code{\tweak}
 
 @untranslated
 
 
 @node Difficult tweaks
-@subsection Difficult tweaks
+@section Difficult tweaks
 
 @untranslated
 
index cd44af444207baabc348f5e92f36e53052490102..d8626084ea1c61a50e02c011eb07804b7916551f 100644 (file)
@@ -1,12 +1,12 @@
 @c -*- coding: utf-8; mode: texinfo; -*-
 @ignore
-    Translation of GIT committish: 5d5dd3611abe9f0599080f6235c436f48c2ba31b
+    Translation of GIT committish: 01361d46dc9d514a79683d003eeea5f4fbf2b746
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @node Repeats
 @section Repeats
@@ -20,7 +20,7 @@ LilyPond unterstützt folgende Arten von Wiederholungen:
 @table @code
 @item volta (Wiederholungsklammer)
 Die wiederholte Musik wird nicht geschreiben, sondern zwischen
-zwei Wiederholungstaktlinien eingeschlossen. Wenn die Wiederholung
+zwei Wiederholungstaktstrichen eingeschlossen. Wenn die Wiederholung
 am Anfang eines Stückes beginnt, wird nur am Ende der Wiederholung
 eine Wiederholungstaktlinie gesetzt.  Alternative Schlüsse (Volta)
 werden von links nach rechts mit Klammern gesetzt.  Das ist die
@@ -42,16 +42,16 @@ Das wird benutzt, um Tremolo-Wiederholungen am Notenhals zu notieren.
 
 
 @menu
-* Long repeats::                
-* Short repeats::              
+* Long repeats::
+* Short repeats::
 @end menu
 
 @node Long repeats
 @subsection Long repeats
 
 @menu
-* Normal repeats::              
-* Manual repeat marks::         
+* Normal repeats::
+* Manual repeat marks::
 * Written-out repeats::
 @end menu
 
@@ -127,7 +127,7 @@ e |
 oder
 
 @lilypond[verbatim,quote,relative=2]
-\partial 4 
+\partial 4
 \repeat volta 4 { e4 | c2 d | e2 f | }
 \alternative {
   { \partial 4*3 g4 g g }
@@ -163,8 +163,8 @@ c1
 
 
 @seealso
-
-Musikglossar: @rglos{repeat}, @rglos{volta}.
+Glossar:
+@rglos{repeat}, @rglos{volta}.
 
 Notationsreferenz: @ref{Bar lines}, @ref{Modifying context plug-ins}.
 
@@ -231,7 +231,7 @@ Bindebögen nicht wiederholt.
 Wiederholungskonstruktionen darzustellen und können sich unerwünscht
 verhalten.  In den meisten Fällen sollten Wiederholungen mit dem
 Befehl @code{\\repeat} erstellt werden oder indem die entsprechenden
-Taktlinien eingegeben werden.  Mehr Information in @ref{Bar lines}.}
+Taktstriche eingegeben werden.  Mehr Information in @ref{Bar lines}.}
 
 Die Eigenschaft @code{repeatCommands} kann verwendet werden, um das 
 Aussehen der Wiederholungen zu beeinflussen. Ihr Argument ist eine 
@@ -248,7 +248,7 @@ d4 e f g
 c1
 @end lilypond
 
-Der Notensatzpraxis folgend werden Wiederholungstaktlinien nicht zu
+Der Notensatzpraxis folgend werden Wiederholungstaktstrichen nicht zu
 Beginn eines Stückes gesetzt.
 
 @item end-repeat
@@ -285,6 +285,7 @@ g4 a g a
 c1
 \set Score.repeatCommands = #'((volta #f) (volta "95") end-repeat)
 b1
+\set Score.repeatCommands = #'((volta #f))
 @end lilypond
 
 @cindex Volta-Klammer mit Text
@@ -318,7 +319,6 @@ voltaAdLib = \markup { 1. 2. 3... \text \italic { ad lib. } }
 
 
 @seealso
-
 Notationsreferenz:
 @ref{Bar lines},
 @ref{Formatting text}.
@@ -378,7 +378,6 @@ c1
 @end lilypond
 
 @seealso
-
 Schnipsel:
 @rlsr{Repeats}.
 
@@ -397,8 +396,8 @@ von einer Note bis zu zwei Takten, die mit Schrägstrichen oder
 Prozentzeichen dargestellt werden, und Tremolos.
 
 @menu
-* Percent repeats::             
-* Tremolo repeats::                 
+* Percent repeats::
+* Tremolo repeats::
 @end menu
 
 @node Percent repeats
@@ -437,12 +436,15 @@ wobei @var{musikAusdr} ein musikalischer Ausdruck ist.
 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
 {percent-repeat-counter.ly}
 
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{percent-repeat-count-visibility.ly}
+
 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
 {isolated-percent-repeats.ly}
 
 @seealso
-
-Musikglossar: @rglos{percent repeat}, @rglos{simile}.
+Glossar:
+@rglos{percent repeat}, @rglos{simile}.
 
 Schnipsel: @rlsr{Repeats}.
 
@@ -528,8 +530,8 @@ c: c:
 @end lilypond
 
 @seealso
-
-Schnipsel: @rlsr{Repeats}.
+Schnipsel:
+@rlsr{Repeats}.
 
 @cindex Tremolo über Systeme
 @cindex Systeme, Tremolo zwischen
index 85415e2f6f46a3b15701e4509b19bb8f236d3a9f..a044187caaf5f20a6e1818b007238b484ae5ec4a 100644 (file)
@@ -1,19 +1,20 @@
 @c -*- coding: utf-8; mode: texinfo; -*-
 @ignore
-    Translation of GIT committish: d0614c27e88dc7bd3993f3744a388749ba93b267
+    Translation of GIT committish: 99b5022dc4baadd7000c94d5868cdb7cb9a8ed53
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @node Rhythms
 @section Rhythms
 
 @lilypondfile[quote]{rhythms-headword.ly}
 
-This section discusses rhythms, durations, and bars.
+Dieser Abschnitt erklärt die Eingabe von Rhythmen, Pausen,
+Dauern, Bebalkung und Takten.
 
 @menu
 * Writing rhythms::             
@@ -40,90 +41,138 @@ This section discusses rhythms, durations, and bars.
 
 @cindex Dauer
 @cindex Notenlänge
+
+
 @funindex \longa
 @funindex \breve
 @funindex \maxima
+@funindex longa
+@funindex breve
+@funindex maxima
 
-Im Noten-, Akkord- und Liedtextmodus werden Notenlängen (Dauern) durch 
+Notenlängen (Dauern) werden durch 
 Zahlen und Punkte notiert: Dauern werden als reziproke Werte geschrieben. 
 Zum Beispiel wird eine Viertelnote mit @code{4} notiert (weil sie eine 
 1/4-Note ist), eine halbe Note mit @code{2} (weil sie eine 1/2-Note ist). 
 Noten, die länger als eine Ganze sind, müssen mit @code{\longa} 
 (für die Longa, also vier Ganze) und 
 @code{\breve} (für die Brevis, auch Doppelganze genannt) notiert werden.
+Notendauern bis hin zu 128steln sind unterstützt. Kürzere Notenwerte können
+auch notiert werden, können allerdings nur als Noten mit Balken auftreten.
+
+@c Two 64th notes are needed to obtain beams
+@lilypond[quote,ragged-right,verbatim,fragment,relative=2]
+\time 8/1
+c\longa c\breve c1 c2
+c4 c8 c16 c32 c64 c64
+@end lilypond
 
-@example
-c'\breve
-c'1 c'2 c'4 c'8 c'16 c'32 c'64 c'64
-r\longa r\breve
-r1 r2 r4 r8 r16 r32 r64 r64
-@end example
-
-@lilypond[quote]
-\score {
-\relative c'' {
-    a\breve*1/2 \autoBeamOff
-    a1 a2 a4 a8 a16 a32 a64 a64
-   \bar "empty"
-   \break
-    r\longa*1/4 r\breve *1/2
-    r1 r2 r4 r8 r16 r32 r64 r64
-  }
-  \layout {
-    ragged-right = ##t
-    indent=0\mm
-    \context {
-      \Score
-        \remove "Bar_number_engraver"
-    }
-    \context {
-      \Staff
-        \remove "Clef_engraver"
-        \override StaffSymbol #'transparent = ##t
-        \override TimeSignature #'transparent = ##t
-        \override BarLine #'transparent = ##t
-        \consists "Pitch_squash_engraver"
-    }
-  }
-}
+@noindent
+Hier die selben Notendauern ohne die Balken.
+
+@c not strictly "writing rhythms"; more of a "displaying" thing,
+@c but it's ok here.  -gp
+@lilypond[quote,verbatim,relative=2]
+\time 8/1
+\autoBeamOff
+c\longa c\breve c1 c2
+c4 c8 c16 c32 c64 c64
 @end lilypond
 
+Eine Note mit der vierfacheen Dauer einer Brevis kann mit dem
+Befehl @code{\maxima} eingegeben werden, aber ihre Darstellung
+ist nur für die Alte Musiknotation unterstützt.  Zu Einzelheiten
+siehe @ref{Ancient notation}.
+
 Wenn die Dauer hinter einer Notenbezeichnung nicht angegeben ist, 
-wird die Dauer der vorhergehenden Note eingesetzt. Der Standardwert 
+wird die Dauer der vorhergehenden Note eingesetzt.  Der Standardwert 
 für die erste Note ist eine Viertel.
 
-@lilypond[quote,ragged-right,verbatim,fragment]
-{ a a a2 a a4 a a1 a }
+@lilypond[quote,verbatim,relative=2]
+a a a2 a a4 a a1 a
 @end lilypond
 
-
 @funindex .
+
 @cindex Punktierung
+@cindex Noten, punktiert
+@cindex Doppelpunktierung
+@cindex Noten, doppelpunktiert
 
 Um punktierte Notendauern zu erhalten, muss einfach nur ein Punkt 
-(@code{.}) hinter die Zahl der Dauer gesetzt werden. Zwei Punkte 
-ergeben eine doppelte Punktierung.
+(@code{.}) hinter die Zahl der Dauer gesetzt werden.  Zwei Punkte 
+ergeben eine doppelte Punktierung, usw.
 
-@lilypond[quote,ragged-right,fragment,verbatim]
-a'4 b' c''4. b'8 a'4. b'4.. c''8.
+@lilypond[quote,verbatim,relative=2]
+a4 b c4. b8 a4. b4.. c8.
 @end lilypond
 
-@predefined
+Manche Notenlängen können nicht mit binären Dauern und Punkten
+dargestellt werden, sie können nur erreicht werden, indem man
+Noten überbindet.  Für Einzelheiten siehe @ref{Ties}.
 
-Punkte werden normalerweise nach oben verschoben, damit sie die Notenlinien 
-nicht berühren. Das gilt aber nicht für mehrstimmige Passagen. Mit den 
-folgenden Befehlen kann ein anderes Verhalten der Punktierung erreicht werden.
+Wie den Silben von Gesangtext eigene Dauern zu gewiesen werden 
+können und wie man sie an den Noten ausrichtet ist erklärt in
+@ref{Vocal music}.
+
+Optional können Noten streng proportional nach ihrer exakten
+Dauer gesetzt werden.  Zu Einzelheiten hierzu und weiteren
+Einstellungen für proportionale Notation siehe
+@ref{Proportional notation}.
 
 @funindex \dotsUp
-@code{\dotsUp} (Der Punkt wird nach oben verschoben.),
 @funindex \dotsDown
-@code{\dotsDown} (Der Punkt wird nach unten verschoben.),
-@funindex \dotsNeutral (Wiederherstellung des Standards.)
+@funindex \dotsNeutral
+@funindex dotsUp
+@funindex dotsDown
+@funindex dotsNeutral
+
+Punkte werden normalerweise nach oben verschoben, damit sie die Notenlinien 
+nicht berühren.  Fertige Befehle können eingesetzt werden, um
+eine bestimmte Richtung manuell zu erzwingen, zu Einzelheiten
+siehe @ref{Direction and placement}.
+
+@predefined
+@code{\autoBeamOff},
+@code{\dotsUp},
+@code{\dotsDown},
 @code{\dotsNeutral}.
+@endpredefined
 
 @seealso
+Glossar:
+@rglos{breve},
+@rglos{longa},
+@rglos{maxima},
+@rglos{note value},
+@rglos{Duration names notes and rests}.
+
+Notationsreferenz:
+@ref{Automatic beams},
+@ref{Ties},
+@ref{Stems},
+@ref{Writing rhythms},
+@ref{Writing rests},
+@ref{Vocal music},
+@ref{Ancient notation},
+@ref{Proportional notation}.
+
+Schnipsel:
+@rlsr{Rhythms}.
+
+Referenz der Interna:
+@rinternals{Dots},
+@rinternals{DotColumn}.
+
+
+@knownissues
+
+@c Deliberately duplicated in Durations and Rests.  -gp
+Es gibt keine grundlegende Grenze für die Dauer von Pausen
+(sowohl kürzer als auch länger), aber die Anzahl an Symbolen
+ist begrenzt: Einzelne Pausen können von 128stel bis zur
+Maxima (8 Ganze) gesetzt werden.
 
-Programmreferenz: @rinternals{Dots}, and @rinternals{DotColumn}.
 
 
 @node Tuplets
@@ -132,6 +181,8 @@ Programmreferenz: @rinternals{Dots}, and @rinternals{DotColumn}.
 @cindex N-tolen
 @cindex Triolen
 @cindex Rhythmische Aufteilungen
+
+@funindex times
 @funindex \times
 
 Triolen und andere rhythmische Aufteilungen werden aus einem musikalischen 
@@ -143,168 +194,181 @@ Ausdruck erstellt, indem dessen Tondauern mit einem Bruch multipliziert werden.
 
 @noindent
 Die Dauer eines @var{musikalischen Ausdrucks} wird mit dem Bruch multipliziert. 
-Der Nenner des Bruchs wird über den Noten ausgegeben, optional mit einer 
-eckigen Klammer, die die Noten einfasst. Die üblichste Aufteilung ist die 
+Der Nenner des Bruchs wird über (oder unter) den Noten ausgegeben,
+optional mit einer eckigen Klammer, die die Noten einfasst.
+Die üblichste Aufteilung ist die 
 Triole, in welcher drei Noten die Länge von zwei haben, der Wert jeder 
 einzelnen Note ist also 2/3 der notierten Länge.
 
-@lilypond[quote,ragged-right,fragment,verbatim]
-g'4 \times 2/3 {c'4 c' c'} d'4 d'4
+@lilypond[quote,verbatim,relative=2]
+a2 \times 2/3 { b4 b b }
+c4 c \times 2/3 { b4 a g }
 @end lilypond
 
-Diese Brüche können auch ineinander geschachtelt werden, etwa so:
+@funindex \tupletUp
+@funindex \tupletDown
+@funindex \tupletNeutral
+@funindex tupletUp
+@funindex tupletDown
+@funindex tupletNeutral
 
-@lilypond[fragment,ragged-right,verbatim,relative=2]
-\override TupletNumber #'text = #tuplet-number::calc-fraction-text
-\times 4/6 {
-  a4 a
-  \times 3/5 { a a a a a }
-}
+Die automatische Platzierung der Triolenklammer über oder unter
+den Noten kann manuell geändert werden mit definierten Befehlen,
+siehe @ref{Direction and placement}.
+
+
+N-tolen können ineinander geschachtelt werden:
+
+@lilypond[quote,verbatim,relative=2]
+\autoBeamOff
+c4 \times 4/5 { f8 e f \times 2/3 { e[ f g] } } f4 |
 @end lilypond
 
-@predefined
+Wenn man die Eigenschaften von N-tolen verändern will, die zum
+selben musikalischen Zeitpunkt beginnen, muss @code{\tweak}
+eingesetzt werden.
 
-@funindex \tupletUp
+Um die Dauern von Noten zu ändern, ohne die N-tolen-Klammern
+zu setzen, siehe @ref{Scaling durations}.
+
+@predefined
 @code{\tupletUp},
-@funindex \tupletDown
 @code{\tupletDown},
-@funindex \tupletNeutral
 @code{\tupletNeutral}.
+@endpredefined
 
+@snippets
 
-@commonprop
-
-@funindex tupletNumberFormatFunction
-@cindex Formatierung von Brüchen
+@cindex N-tole, Formatierung
+@cindex Triole, Formatierung
 @cindex Formatierung von Triolen
-@cindex N-tolen, Formatierung
-
-Der Wert von @code{tupletSpannerDuration} definiert, wie lange jede 
-Klammer dauert. Mit entsprechender Einstellung kann man beliebig 
-viele Triolen schreiben, aber nur einmal den Befehl @code{\times}
-benutzen. Im nächsten Beispiel etwa werden zwei Triolen gedruckt, 
-@code{\times} aber nur einmal benutzt. Das gilt natürlich auch für alle 
-anderen Brüche.
 
-@lilypond[quote,fragment,relative=2,ragged-right,verbatim]
-\set tupletSpannerDuration = #(ly:make-moment 1 4)
-\times 2/3 { c8 c c c c c }
-@end lilypond
-
-@noindent
-Mehr Information zu @code{make-moment} findet sich im Abschnitt 
-@ref{Time administration}.
+@funindex tupletNumberFormatFunction
+@funindex tupletSpannerDuration
 
-Die Formatierung der Nummer wird durch die Eigenschaft @code{text} 
-in @code{TupletNumber} bestimmt. Die Standardeinstellung gibt nur 
-den Nenner aus, aber wenn @code{TupletNumber} auf den Wert 
-@code{tuplet-number::calc-fraction-text}
-gestellt wird, wird @var{Zähler}:@var{Nenner} ausgegeben.
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{entering-several-tuplets-using-only-one--times-command.ly}
 
-Um gar keine Nummern anzeigen zu lassen, kann folgender Code benutzt
- werden:
+@funindex TupletNumber
 
-@lilypond[quote,fragment,relative=2,ragged-right,verbatim]
-\times 2/3 { c8 c c } \times 2/3 { c8 c c }
-\override TupletNumber #'transparent = ##t
-\times 2/3 { c8 c c } \times 2/3 { c8 c c }
-@end lilypond
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{changing-the-tuplet-number.ly}
 
-Mit der  @code{\tweak}-Funktion können die Zahlen von geschachtelten Brüchen 
-eingestellt werden, die  zur gleichen Zeit beginnen. Im Beispiel unten 
-wird mit @code{\tweak} definiert, dass für die äußere Klammer der Bruch
-ausgegeben wird, für die innere aber nur der Nenner.
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{permitting-line-breaks-within-beamed-tuplets.ly}
 
-@lilypond[quote,ragged-right,verbatim]
-\new Staff {
-  \tweak #'text #tuplet-number::calc-fraction-text
-  \times 4/3 {
-     \tweak #'text #tuplet-number::calc-denominator-text
-     \times 2/3 { c'8[ c'8 c'8] }
-     \times 2/3 { c'8[ c'8 c'8] }
-     \times 2/3 { c'8[ c'8 c'8] }
-  }
-}
-@end lilypond
+@seealso
+Glossar:
+@rglos{triplet},
+@rglos{tuplet},
+@rglos{polymetric}.
 
-Im nächsten Beispiel werden @code{\tweak} und @code{\override} 
-zusammen verwendet, um die Darstellung der Klammer 
-(@code{TupletBracket}) zu bestimmen. Mit dem ersten @code{\tweak} 
-wird die Klammer der äußeren Triole über dem Notensystem platziert. 
-Das zweite @code{\tweak} platziert die erste der drei inneren Klammern 
-unter dem System (von der Klammer wird hier nur der Nenner des
-Bruchs dargestellt). Dieses Paar von @code{\tweak}-Einstellungen wirkt 
-sich jedoch nur auf die äußere und die @emph{erste} innere Klammer 
-aus, weil nur sie zur gleichen Zeit beginnen. Mit dem @code{\override}-Befehl 
-kann die Richtung der zweiten und dritten @code{TupletBracket} 
-verändert werden, in 
-diesem Fall wird sie unter das Notensystem geschrieben.
-
-@lilypond[quote,ragged-right,verbatim]
-\new Staff {
-  \tweak #'text #tuplet-number::calc-fraction-text
-  \tweak #'direction #up
-  \times 4/3 {
-     \tweak #'direction #down
-     \times 2/3 { c'8[ c'8 c'8] }
-     \override TupletBracket #'direction = #down
-     \times 2/3 { c'8[ c'8 c'8] }
-     \times 2/3 { c'8[ c'8 c'8] }
-  }
-}
-@end lilypond
+Handbuch zum Lernen:
+@rlearning{Tweaking methods}.
 
-Die Klammern können so eingestellt werden, dass sie bis zu 
-einem Taktvorspann oder bis zur nächsten Note reichen.
+Notationrreferenz:
+@ref{Time administration},
+@ref{Scaling durations},
+@ref{The tweak command},
+@ref{Polymetric notation}.
 
-@lilypond[ragged-right]
-\new RhythmicStaff {
-  \set tupletFullLength = ##t
-  \time 4/4
-  \times 4/5 {
-    c4 c1
-  }
-  \set tupletFullLengthNote = ##t
-  \time 2/4
-  \times 2/3 {
-    c4 c c 
-  }
-  \time 3/4
-  c4 
-}
-@end lilypond
+Schnipsel:
+@rlsr{Rhythms}.
 
+Referenz der Interna:
+@rinternals{TupletBracket},
+@rinternals{TupletNumber},
+@rinternals{TimeScaledMusic}.
 
-@seealso
+@knownissues
+@cindex Verzierung innerhalb von rhythmischer Kombination
+@cindex Stichnoten innerhalb von rhythmischer Kombination
+@cindex Verzierung innerhalb von Triole
 
-Programmreferenz: @rinternals{TupletBracket},
-@rinternals{TupletNumber} und @rinternals{TimeScaledMusic}.
+Wenn die erste Noten eines Systems ein Vorschlag (eine Verzierung)
+ist, die von einer N-tole gefolgt ist, muss der Vorschlag
+vor den @code{\times}-Befehl gesetzt werden um Fehler zu
+vermeiden.  Überall sonst können Vorschläge innerhalb von
+N-tolen gesetzt werden.
 
 
 
 @node Scaling durations
 @unnumberedsubsubsec Scaling durations
 
-Die Dauer von Längen kann mit einem Bruch multipliziert werden, 
-indem hinter die Note  @qq{*@var{N/M}} (oder @qq{*@var{N}} wenn @var{M=1}) 
-geschrieben wird. Das beeinflusst nicht die Erscheinung der Note oder 
-Pause im Druckbild. Die Werte können auch kombiniert werden, etwa 
-@qq{*M*N}.
+@cindex Dauern skalieren
+@cindex Skalieren von Dauern
+
+Die Dauer von einzelnen Noten, Pausen oder Akkorden kann mit einem Bruch multipliziert werden, 
+indem hinter die Notendauer @qq{*@var{N/M}} (oder @qq{*@var{N}} wenn @var{M} 1 ist) 
+geschrieben wird.  Die Erscheinung der Noten oder Pausen wird
+dadurch nicht beeinflusst, die neue Dauer wird aber dazu
+benutzt, ihre Position im Takt zu errechnen und die neue
+Dauer in der MIDI-Ausgabe einzusetzen. Die Faktoren, mit
+denen multipliziert wird, können auch kombiniert werden, etwa 
+@qq{*L*M*/N}.
 
 Im nächsten Beispiel nehmen die drei ersten Noten genau zwei Schläge ein, 
 aber es wird keine Triolenklammer über ihnen ausgegeben.
 
-@lilypond[quote,ragged-right,fragment,relative=2,verbatim]
+@lilypond[quote,relative=2,verbatim]
 \time 2/4
+% Alter durations to triplets
 a4*2/3 gis4*2/3 a4*2/3
-a4 a4 a4*2
+% Normal durations
+a4 a4
+% Double the duration of chord
+<a d>4*2
+% Duration of quarter, appears like sixteenth
 b16*4 c4
 @end lilypond
 
+Die Dauer von unsichtbaren Noten kann auch mit einem Faktor
+beeinflusst werden.  Das ist sinnvoll, wenn man viele Takte
+überspringen muss, etwa @code{s1*23}.
+
+@cindex Musik komprimieren
+@cindex Komprimieren von Noten
+@cindex Noten komprimieren
+
+@funindex scaleDurations
+@funindex \scaleDurations
+
+Längere Notenabschnitte können auf die gleiche Art durch Multiplikation
+mit einem Bruch komprimiert werden, als ob jede Note, jeder
+Akkord oder jede Pause mit dem Bruch multipliziert würde.
+Damit bleibt das Aussehen der Musik unverändert, aber die
+interne Dauer der Noten wird mit dem Bruch multipliziert.
+Die Leerzeichen um den Punkt im Beispiel sind notwendig.
+Hier ein Beispiel, das zeigt, wie Noten komprimiert und
+ausgedehnt werden kann:
+
+@lilypond[quote,relative=2,verbatim]
+\time 2/4
+% Normal durations
+<c a>4 c8 a
+% Scale music by *2/3
+\scaleDurations #'(2 . 3) {
+  <c a f>4. c8 a f
+}
+% Scale music by *2
+\scaleDurations #'(2 . 1) {
+  <c' a>4 c8 b
+}
+@end lilypond
+
+@noindent
+Eine Anwendung für diesen Befehl ist polymetrische Notation,
+siehe @ref{Polymetric notation}.
 
 @seealso
+Notationsreferenz:
+@ref{Tuplets},
+@ref{Invisible rests},
+@ref{Polymetric notation}.
 
-Abschnitt @ref{Tuplets}
+Schnipsel:
+@rlsr{Rhythms}.
 
 
 @node Ties
@@ -312,120 +376,158 @@ Abschnitt @ref{Tuplets}
 
 @cindex Bindebogen
 @cindex Überbindung
+
 @funindex ~
 
 Ein Bindebogen verbindet zwei benachbarte Noten der selben 
-Tonhöhe. Als Resultat wird die Dauer der Notenlänge verlängert. 
-Bindebögen dürfen nicht mit Legatobögen verwechselt werden, durch 
+Tonhöhe.  Als Resultat wird die Dauer der Notenlänge verlängert.
+@warning{Bindebögen dürfen nicht mit Legatobögen verwechselt werden, durch 
 die die Vortragsart bezeichnet wird, noch mit Phrasierungsbögen, 
-die musikalische Phrasen anzeigen. Eine Bindebogen wird mit der 
+die musikalische Phrasen anzeigen.  Ein Bindebogen ist nur eine
+Art, die Tondauer zu verlängern, ähnlich etwa wie die
+Punktierung.}
+
+Ein Bindebogen wird mit der 
 Tilde @code{~} (AltGr++) notiert.
 
-@lilypond[quote,ragged-right,fragment,verbatim]
-e' ~ e' <c' e' g'> ~ <c' e' g'>
+@lilypond[quote,verbatim,relative=2]
+a2 ~ a
+@end lilypond
+
+@noindent
+Bindebögen werden eingesetzt, wenn die Note entweder über eine
+Taktlinie hinüberreicht, oder wenn die entsprechende Dauer der
+Note nicht mit Punktierung erreicht werden kann.  Bindebögen
+sollten auch benutzt werden, wenn Notenwerte über die
+inneren Unterteilungen von Takten hinüberreichen:
+
+@lilypond[quote]
+\relative c' {
+  r8 c8 ~ c2 r4 |
+  r8^"not" c2 ~ c8 r4
+}
 @end lilypond
 
+Wenn viele Noten über Taktlinien gebunden werden müssen, kann
+es einfacher sein, automatische Notenaufteilung einzustellen,
+wie beschrieben in @ref{Automatic note
+splitting}.  Mit diesem Mechanismus werden lange Noten
+automatisch aufgeteilt, wenn sie über Taktgrenzen reichen.
+
+@cindex Bindebögen und Akkorde
+@cindex Überbindungen und Akkorde
+@cindex Akkorde und Überbindungen
+
 Wenn ein Bindebogen an einen Akkord gehängt wird, werden alle Noten 
-dieses Akkordes übergebunden. Wenn kein Notenkopf passt, wird auch 
-kein Bogen erzeugt. Noten in Akkorden können auch einzeln übergebunden 
+dieses Akkordes übergebunden.  Wenn kein Notenkopf passt, wird auch 
+kein Bogen erzeugt.  Noten in Akkorden können auch einzeln übergebunden 
 werden, indem sie innerhalb des Akkordes hinter die entsprechende Note 
 geschrieben werden.
 
-@lilypond[quote,ragged-right,fragment,verbatim,relative=1]
+@lilypond[quote,verbatim,relative=1]
+<c e g> ~ <c e g>
 <c~ e g~ b> <c e g b>
 @end lilypond
 
-Ein Bindebogen ist nur eine andere Art, die Notendauer zu verlängern, 
-ähnlich wie die Punktierung. Im nächsten Beispiel sind zwei Arten gezeigt, 
-die gleiche Notenlänge zu notieren:
-
-@lilypond[quote,fragment,ragged-right]
-\time 3/4 c'2. c'2 ~ c'4
-@end lilypond
+@cindex Bindebögen wiederholen
+@cindex Wiederholung und Bindebögen
+@cindex Überbindung und Wiederholungen
+@cindex Volta-Klammern und Wiederholungen
+@cindex Volta und Überbindung
 
-@noindent
-Bindebögen werden verwendet, wenn die Note entweder über die Taktgrenze 
-hinausragt, oder wenn Punktierung nicht benutzt werden kann, um die 
-Verlängerung anzuzeigen. Wenn man Überbindungen verwendet, sollten 
-größere Notenwerte an die Unterteilungen des Taktes angepasst werden.
-
-@lilypond[fragment,quote,ragged-right]
-\relative {
-  r8 c8 ~ c2 r4 | r8^"not" c2 ~ c8 r4
-}
+@funindex \repeatTie
+@funindex repeatTie
+
+Wenn die zweite Variante einer Wiederholung mit einer übergebundenen
+Note anfängt, muss der Bindebogen wie folgt notiert werden:
+
+@lilypond[quote,relative=2,verbatim]
+\repeat volta 2 { c g <c e>2 ~ }
+\alternative {
+  % First alternative: following note is tied normally
+  { <c e>2. r4 }
+  % Second alternative: following note has a repeated tie
+  { <c e>2\repeatTie d4 c } }
 @end lilypond
 
-Wenn sehr viele Noten über die Taktgrenzen hinüber angebunden 
-werden müssen, ist es oft einfacher, die automatische Aufteilung 
-von Noten einzusetzen (siehe @ref{Automatic note splitting}). Mit 
-dieser Funktion werden automatisch lange Noten aufgeteilt und über 
-die Taktgrenze übergebunden.
+@cindex Laissez vibrer
+@cindex Ausklingen lassen, Bögen
+@cindex Bögen, laissez vibrer
+@cindex Ausklingen lassen
 
-@funindex \repeatTie
+@funindex laissezVibrer
+@funindex \laissezVibrer
 
-Wenn die zweite Variante einer Wiederholung mit einer Überbindung 
-anfängt, muss der Bindebogen wiederholt werden. Dass geschieht durch 
-den Befehl @code{\repeatTie}.
+So genannte @notation{laissez vibrer}-Bögen werden verwendet um anzuzeigen, dass 
+man die Musik ausklingen lassen soll. Sie werden in der Klavier-, Harfen-, 
+anderer Saiteninstrument- und Schlagzeugnotation verwendet. Sie können folgendermaßen notiert werden:
 
-@lilypond[fragment,quote,ragged-right,relative=2]
-r <c e g>\repeatTie
+@lilypond[quote,verbatim,relative=1]
+<c f g>1\laissezVibrer
 @end lilypond
 
-@cindex Volta und Überbindung
-@cindex Wiederholung und Überbindung
-
-@commonprop
+@cindex ties, placement
 
-Bindebögen werden teilweise verwendet, um Arpeggien auszuschreiben. 
-In diesem Fall müssen mehrere übergebundene Noten nacheinander 
-erscheinen. Das ist möglich, indem die @code{tieWaitForNote}-Eigenschaft 
-auf wahr (##t) gesetzt wird. Diese Funktion ist auch nützlich, um 
-ein Tremolo an einen Akkord zu binden. Siehe das Beispiel:
+@funindex \tieUp
+@funindex \tieDown
+@funindex \tieNeutral
+@funindex tieUp
+@funindex tieDown
+@funindex tieNeutral
 
-@lilypond[fragment,verbatim,relative=1,ragged-right,quote]
-\set tieWaitForNote = ##t
-\grace { c16[~ e~ g]~ } <c, e g>2
-\repeat tremolo 8 { c32~ c'~ } <c c,>1
-e8~ c~ a~ f~ <e' c a f>2
-@end lilypond
+Die vertikale Position von Bindebögen kann kontrolliert werden,
+siehe die vordefinierten Befehle unten oder für Einzelheiten
+@ref{Direction and placement}.
 
-Bindebögen können manuell gesetzt werden, indem die 
-@code{tie-configuration}-Eigenschaft verändert wird. 
-Die erste Zahl zeigt den Abstand von der Mitte des 
-Notensystems in Notenlinienzwischenräumen, die zweite 
-die Richtung (1=nach oben, -1=nach unten).
+@cindex Bindebögen, Ausehen
+@cindex Bindebögen, gestrichelt
+@cindex Bindebögen, gepunktet
+@cindex Bindebögen, durchgehend
 
-@lilypond[fragment,verbatim,relative=1,ragged-right,quote]
-<c e g>2~ <c e g> |
-\override TieColumn #'tie-configuration =
-  #'((0.0 . 1) (-2.0 . 1) (-4.0 . 1))
-<c e g>~ <c e g> |
-@end lilypond
+@funindex \tieDotted
+@funindex \tieDashed
+@funindex \tieSolid
+@funindex tieDotted
+@funindex tieDashed
+@funindex tieSolid
 
+Durchgehende, gepunktete oder gestrichelte Bindebögen können
+spezifiziert werden, siehe die vordefinieren Befehle.
 
 @predefined
-
-
-@funindex \tieUp
 @code{\tieUp},
-@funindex \tieDown
 @code{\tieDown},
-@funindex \tieNeutral
 @code{\tieNeutral},
-@funindex \tieDotted
 @code{\tieDotted},
-@funindex \tieDashed
 @code{\tieDashed},
-@funindex \tieSolid
 @code{\tieSolid}.
+@endpredefined
+
+@snippets
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{using-ties-with-arpeggios.ly}
 
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{engraving-ties-manually.ly}
 
 @seealso
+Glossar:
+@rglos{tie},
+@rglos{laissez vibrer}.
 
-Im Handbuch: @ref{Automatic note splitting}.
+Notationsreferenz:
+@ref{Automatic note splitting}.
 
-Programmreferenz: @rinternals{Tie}.
+Schnipsel:
+@rlsr{Rhythms}.
 
+Referenz der Interna:
+@rinternals{LaissezVibrerTie},
+@rinternals{LaissezVibrerTieColumn},
+@rinternals{TieColumn},
+@rinternals{Tie}.
 
 @knownissues
 
@@ -440,6 +542,10 @@ Legatobogen zu verwenden.
 @node Writing rests
 @subsection Writing rests
 
+Pausen werden als Teil der musikalischen Ausdrücke zusammen mit
+den Noten notiert.
+
+
 @menu
 * Rests::                       
 * Invisible rests::             
@@ -448,17 +554,48 @@ Legatobogen zu verwenden.
 
 @node Rests
 @unnumberedsubsubsec Rests
+
 @cindex Pausen
+@cindex Pausendauern
+@cindex Maxima-Pause
+@cindex Longa-Pause
+@cindex Brevis-Pause
 
 @funindex \rest
 @funindex r
+@funindex \maxima
+@funindex \longa
+@funindex \breve
+@funindex rest
+@funindex maxima
+@funindex longa
+@funindex breve
 
 Pausen werden wie Noten eingegeben, ihre Bezeichnung ist @code{r}.
+Dauern, die länger als eine Ganze sind, haben die gezeigten
+vordefinierten Befehle:
 
-@lilypond[fragment,quote,ragged-right,verbatim]
-r1 r2 r4 r8
+@c \time 16/1 is used to avoid spurious bar lines
+@c and long tracts of empty measures
+@lilypond[quote,verbatim]
+\new Staff {
+  % These two lines are just to prettify this example
+  \time 16/1
+  \override Staff.TimeSignature #'stencil = ##f
+  % Print a maxima rest, equal to four breves
+  r\maxima
+  % Print a longa rest, equal to two breves
+  r\longa
+  % Print a breve rest
+  r\breve
+  r1 r2 r4 r8 r16 r32 r64 r128
+}
 @end lilypond
 
+@cindex Pausen, mehrtaktig
+@cindex Ganztaktpausen
+@cindex Mehrtaktpausen
+
 Pausen, die ganze Takte ausfüllen und in der Taktmitte zentriert 
 werden sollen, müssen als mehrtaktige Pausen eingegeben werden. 
 Sie können sowohl für einen einzigen Takt als auch für mehrere 
@@ -468,21 +605,40 @@ Takte verwendet werden, Näheres im Abschnitt
 Um die vertikale Position einer Pause explizit festzulegen, 
 kann eine Note eingegeben werden, gefolgt vom Befehl @code{\rest}. 
 Die Pause wird dann an die Stelle gesetzt, wo sich sonst die 
-Note befinden würde.
-
-@lilypond[fragment,quote,ragged-right,verbatim]
-a'4\rest d'4\rest
-@end lilypond
-
-@noindent
-Damit wird die manuelle Formatierung von mehrstimmiger Musik 
+Note befinden würde.  Damit wird die manuelle Formatierung von mehrstimmiger Musik 
 sehr viel einfacher, da die Formatierungsfunktion zur automatischen 
 Auflösung von Zusammenstößen diese Pausen nicht mit einbezieht.
 
+@lilypond[quote,verbatim,relative=2]
+a4\rest d4\rest
+@end lilypond
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{rest-styles.ly}
 
 @seealso
+Glossar:
+@rglos{breve},
+@rglos{longa},
+@rglos{maxima}.
+
+Notationsreferenz:
+@ref{Full measure rests}.
+
+Schnipsel:
+@rlsr{Rhythms}.
+
+Referenz der Interna:
+@rinternals{Rest}.
+
+
+@knownissues
 
-Programmreferenz: @rinternals{Rest}.
+@c Deliberately duplicated in Durations and Rests.  -gp
+Es gibt keine gundlegende Grenze für die Dauer von Pausen (sowohl
+kürzer als auch länger), aber die Anzahl von Symbolen ist
+begrenzt: Es gibt Zeichen für Pausen von einer 128 bis zu einer
+Maxima (8 Ganze).
 
 
 @node Invisible rests
@@ -491,52 +647,278 @@ Programmreferenz: @rinternals{Rest}.
 @cindex Skip
 @cindex Überspringen von Zeichen
 @cindex Unsichtbare Pausen
+@cindex Pausen, unsichtbar
 @cindex Platzhalternoten
+
 @funindex \skip
+@funindex skip
 @funindex s
 
 Eine unsichtbare Pause (auch als @qq{skip} oder Überspringung bezeichnet) 
-kann wie eine Note eingegeben werden, die Notationsbezeichnung ist @code{s}. 
-Man kann aber auch die Dauer extra angeben mit @code{\skip @var{Dauer}}.
+kann wie eine Note eingegeben werden, die Notationsbezeichnung ist @code{s}.
 
-@lilypond[fragment,quote,ragged-right,verbatim,relative=2]
+@lilypond[quote,verbatim,relative=2]
 a4 a4 s4 a4 \skip 1 a4
 @end lilypond
 
+@cindex Gesangstext, überspringen
+
 Die @code{s}-Syntax steht nur im Noten- oder Akkordmodus zur Verfügung. In 
 anderen Situationen, z. B. innerhalb eines Liedtextes, muss @code{\skip} 
-benutzt werden.
+benutzt werden.  @code{\skip} benötigt eine explizite Dauerangabe.
 
-@lilypond[quote,ragged-right,verbatim]
+@lilypond[quote,verbatim,relative=2]
 <<
-  \relative { a'2 a2 }
-  \new Lyrics \lyricmode { \skip 2 bla2 }
+  {
+    a2 \skip2 a2 a2
+  }
+  \new Lyrics {
+    \lyricmode {
+      foo2 \skip 1 bla2
+    }
+  }
 >>
 @end lilypond
 
+Die Überspringung mit @code{s} erstellt @code{Staff} und
+@code{Voice}-Kontext, wenn es erforderlich ist, genauso wie Noten und Pausen.
+
+@lilypond[quote,verbatim,fragment]
+s1 s s
+@end lilypond
+
 Der Überspringungsbefehl (@code{\skip}) ist einfach ein leerer Platzhalter. 
 Durch ihn wird 
 überhaupt nichts gesetzt, auch keine transparenten Objekte.
 
-Die Überspringung mit @code{s} hingegen erstellt  @rinternals{Staff} und
-@rinternals{Voice} wenn es erforderlich ist, genauso wie Noten und Pausen. 
-Das folgende Beispiel etwa setzt ein leeres Notensystem:
-
-@lilypond[quote,ragged-right,verbatim]
-{ s4 }
+@lilypond[quote,verbatim,fragment]
+% This is valid input, but does nothing
+\skip 1 \skip1 \skip 1
 @end lilypond
 
-Das Fragment @code{@{ \skip 4 @}} würde nur eine leere Seite produzieren.
-
 @seealso
+Schnipsel:
+@rlsr{Rhythms}.
+
+Referenz der Interna:
+@rinternals{SkipMusic}
 
-Programmreferenz: @rinternals{SkipMusic}.
 
 
 @node Full measure rests
 @unnumberedsubsubsec Full measure rests
 
-@untranslated
+@cindex Ganztaktpausen
+@cindex Mehrtaktpausen
+@cindex Pausen, Ganztakt-
+@cindex Pausen, Mehrtakt-
+
+@funindex R
+
+Pausen für einen oder mehrere ganze Takte werden wie
+Noten eingegeben, wobei die Bezeichnung ein Großbuchstabe
+@code{R} ist:
+
+@lilypond[quote,verbatim,relative=2]
+% Rest measures contracted to single measure
+\compressFullBarRests
+R1*4
+R1*24
+R1*4
+b2^"Tutti" b4 a4
+@end lilypond
+
+Die Dauer von Ganztaktpausen wird genauso angegeben wie die
+Dauer von Noten.  Die Dauer einer Ganztaktpause muss immer
+eine ganze Anzahl an Taktlängen sein, weshalb Punktierungen
+und Brüche recht häufig eingesetzt werden müssen.
+
+@lilypond[quote,fragment,verbatim]
+\compressFullBarRests
+\time 2/4
+R1 | R2 |
+\time 3/4
+R2. | R2.*2 |
+\time 13/8
+R1*13/8 | R1*13/8*12 |
+\time 10/8
+R4*5*4 |
+@end lilypond
+
+Eine Ganztaktpause wird abhängig von der Taktart entweder als
+Ganze oder Brevis-Pause gesetzt, zentriert im Takt.
+
+@lilypond[quote,verbatim,fragment]
+\time 4/4
+R1 |
+\time 6/4
+R1*3/2 |
+\time 8/4
+R1*2 |
+@end lilypond
+
+@cindex Mehrtaktpausen, ausschreiben
+@cindex Pausen, mehrere Takte ausschreiben
+@cindex Pausen, mehrere Takte komprimieren
+@cindex Mehrtaktpausen, komprimieren
+
+@funindex \expandFullBarRests
+@funindex \compressFullBarRests
+@funindex expandFullBarRests
+@funindex compressFullBarRests
+
+In den Standardeinstellungen werden mehrtaktige Pausen
+ausgeschrieben gesetzt, sodass sie die entsprechende Anzahl von
+Takten einnehmen.  Alternativ kann die mehrtaktige Pause
+aber auch nur in einem Takt angezeigt werden, der ein
+Mehrtaktpausensymbol geinhaltet, wobei die Anzahl der Takte
+der Pausendauer über dem Pausenzeichen ausgegeben wird:
+
+@lilypond[quote,fragment,verbatim]
+% Default behavior
+\time 3/4 r2. | R2.*2 |
+\time 2/4 R2 |
+\time 4/4
+% Rest measures contracted to single measure
+\compressFullBarRests
+r1 | R1*17 | R1*4 |
+% Rest measures expanded
+\expandFullBarRests
+\time 3/4
+R2.*2 |
+@end lilypond
+
+
+@cindex Text über Mehrtaktpausen
+@cindex Mehrtaktpausen, Text hinzufügen
+@cindex Beschriftung über Mehrtaktpausen
+@cindex Mehrtaktpausen, Beschriftung
+@cindex Fermate über Mehrtaktpausen
+@cindex Mehrtaktpause mit Fermate
+
+@funindex \fermataMarkup
+@funindex fermataMarkup
+
+Textbeschriftung kann Mehrtaktpausen mit @code{\markup}
+hinzugefügt werden.  Ein 
+vordefinierte Befehl @code{\fermataMarkup} fügt eine
+Fermate ein.
+
+@lilypond[quote,ragged-right,verbatim,fragment]
+\compressFullBarRests
+\time 3/4
+R2.*10^\markup { \italic "ad lib." }
+R2.^\fermataMarkup
+@end lilypond
+
+@warning{
+Beschriftungen, die an Mehrtaktpausen gehängt werden, sind
+Objekte vom Typ @code{MultiMeasureRestText}, nicht vom Typ
+@code{TextScript}.  Änderungen etwa mit @code{\override}
+müssen auf das richtige Objekt gerichtet werden, damit sie
+nicht ignoriert werden.  Siehe auch das folgende Beispiel.
+}
+
+@lilypond[quote,ragged-right,verbatim,fragment]
+% This fails, as the wrong object name is specified
+\override TextScript #'padding = #5
+R1^"wrong"
+% This is correct and works
+\override MultiMeasureRestText #'padding = #5
+R1^"right"
+@end lilypond
+
+Wenn eine Mehrtaktpause direkt auf einen Auftakt mit @code{\partial}
+folgt, werden möglicherweise daraus resultierende
+Taktprüfungswarnungen nicht angezeigt.
+
+@predefined
+@code{\textLengthOn},
+@code{\textLengthOff},
+@code{\fermataMarkup},
+@code{\compressFullBarRests},
+@code{\expandFullBarRests}.
+@endpredefined
+
+@snippets
+
+@cindex Kirchenpausen
+@cindex Pausen, Kirchenstil
+@cindex Balkenpausen, mehrtaktig
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{changing-form-of-multi--measure-rests.ly}
+
+@cindex Mehrtaktpausen, Positionierung
+@cindex Position von Mehrtaktpausen
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{positioning-multi--measure-rests.ly}
+
+@c TODO -- convert to snippet -- submitted to Neil
+Markups attached to a multi-measure rest will be centered above or
+below it.  Long markups attached to multi-measure rests do not cause
+the measure to expand. To expand a multi-measure rest to fit the markup,
+use a spacer rest with an attached markup before the multi-measure rest:
+
+@lilypond[quote,verbatim,relative=2]
+\compressFullBarRests
+\textLengthOn
+s1*0^\markup { [MAJOR GENERAL] }
+R1*19
+s1*0_\markup { \italic { Cue: ... it is yours } }
+s1*0^\markup { A }
+R1*30^\markup { [MABEL] }
+\textLengthOff
+c4^\markup { CHORUS } d f c
+@end lilypond
+
+@noindent
+Note that the spacer rest causes a bar to be inserted.
+Text attached to a spacer rest in this way is left-aligned to the
+position where the note would be placed in the measure, but if the
+measure length is determined by the length of the text, the text will
+appear to be centered.
+
+@seealso
+Glossar:
+@rglos{multi-measure rest}.
+
+Notationsreferenz:
+@ref{Durations},
+@ref{Text},
+@ref{Formatting text},
+@ref{Text scripts}.
+
+Schnipsel:
+@rlsr{Rhythms}.
+
+Referenz der Interna:
+@rinternals{MultiMeasureRest},
+@rinternals{MultiMeasureRestNumber},
+@rinternals{MultiMeasureRestText}.
+
+@cindex Fingersatz und Mehrtaktpausen
+@cindex Mehrtaktpausen und Fingersatz
+@cindex Ganztaktpausen und Fingersatz
+
+@knownissues
+
+Wenn man versucht, mit Fingersatz (etwa @code{R1*10-4} Zahlen
+über Ganztaktpausen zu setzen, kann die Zahl des Fingersatzes
+(4) mit der Taktanzahl (10) zusammenstoßen.
+
+@cindex Zusammenfalten von Pausen
+@cindex Pausen, Zusammenfalten
+
+Es gibt keine Möglichkeit, normale Pausen automatisch zu
+Ganztaktpausen zu reduzieren.
+
+@cindex Pausen, Zusammenstöße
+
+Ganztaktpausen werden bei der Vermeidung von Zusammenstößen nicht
+berücksichtigt.
+
 
 
 @node Displaying rhythms
@@ -556,88 +938,95 @@ Programmreferenz: @rinternals{SkipMusic}.
 
 @cindex Taktangabe
 @cindex Metrum
+
+@funindex time
 @funindex \time
 
-Taktangaben zeigen das Metrum eines Stückes an: eine 
-regelmäßige Folge von betonten und unbetonten Zeiten. 
-Es wird angezeigt als ein Bruch vor Beginn der Noten.
-
-Die Taktangabe wird mit dem @code{\time}-Befehl gesetzt.
-
-@lilypond[quote,ragged-right,fragment,verbatim]
-\time 2/4 c'2 \time 3/4 c'2.
-@end lilypond
-
-@commonprop
-
-Das Symbol, das angezeigt wird, kann durch die 
-@code{style}-Eigenschaft angepasst werden. Wenn man 
-es auf den Wert @code{#'()} setzt, wird auch für 
-4/4- und 2/2-Takte ein Bruch angezeigt.
-
-@lilypond[fragment,quote,ragged-right,verbatim]
-\time 4/4 c'1
-\time 2/2 c'1
-\override Staff.TimeSignature #'style = #'()
-\time 4/4 c'1
-\time 2/2 c'1
-@end lilypond
-
-Es gibt noch sehr viel mehr Optionen für das Layout. 
-Siehe den Abschnitt @ref{Ancient time
-signatures} für weitere Beispiele.
-
-Der Befehl @code{\time} stellt die Eigenschaften 
-@code{timeSignatureFraction}, @code{beatLength} 
-und @code{measureLength} im @code{Timing}-Kontext ein, 
-der normalerweise zu den Eigenschaften aller System 
-(@rinternals{Score}-Ebene) gehört. Die Eigenschaft 
-@code{measureLenght} bestimmt, wo Taktlinien eingefügt werden, 
-und wie automatische Balken gesetzt werden. Ein Verändern 
-der Eigenschaften von @code{timeSignatureFraction} gibt 
-das neue Symbol an dieser Stelle aus.
-
-Auf weitere Optionen kann man über die Scheme-Funktion
-@code{set-time-signature} zugreifen. In Kombination mit
-@rinternals{Measure_grouping_engraver} werden hiermit 
-@rinternals{MeasureGrouping}-Zeichen erzeugt. Solche 
-Zeichen erleichtern es, rhythmisch komplexe moderne Musik 
-zu lesen. Im nächsten Beispiel ist der 9/8-Takt in 2, 2, 2 
-und 3 Achtel unterteilt. Das wird im dritten Argument an 
-@code{set-time-signature} weitergegeben @code{(2 2 2 3)}.
-
-@lilypond[quote,ragged-right,verbatim]
-\score {
-  \relative c'' {
-    #(set-time-signature 9 8 '(2 2 2 3))
-    g8[ g] d[ d] g[ g] a8[( bes g]) |
-    #(set-time-signature 5 8 '(3 2))
-    a4. g4
-  }
-  \layout {
-    \context {
-      \Staff
-      \consists "Measure_grouping_engraver"
-    }
-  }
-}
+Taktangaben könne wie folgt erstellt werden.
+
+@lilypond[quote,verbatim,relative=2]
+\time 2/4 c'2
+\time 3/4 c'2.
+@end lilypond
+
+@cindex Taktangabe, Sichtbarkeit
+
+Taktangaben werden zu Beginn eines Stückes gesetzt und immer dann,
+wenn sich die Taktart ändert.  Wenn eine Änderung am Ende einer
+Zeile geschieht, wird eine warnende Taktangabe am Ende der Zeile
+ausgegeben.  Dieses Verhalten kann verändert werden, siehe
+@ref{Visibility of objects}.
+
+@lilypond[quote,verbatim,relative=2]
+\time 2/4
+c2 c
+\break
+c c
+\break
+\time 4/4
+c c c c
+@end lilypond
+
+@funindex \numericTimeSignature
+@funindex \defaultTimeSignature
+@funindex numericTimeSignature
+@funindex defaultTimeSignature
+
+@cindex Stil von Taktangaben
+@cindex Taktangaben-Stile
+
+Das Symbol für die Taktarten 2/2 und 4/4 kann in ein Zahlensymbol
+umgewandelt werden:
+
+@lilypond[quote,verbatim,relative=2]
+% Default style
+\time 4/4 c1
+\time 2/2 c1
+% Change to numeric style
+\numericTimeSignature
+\time 4/4 c1
+\time 2/2 c1
+% Revert to default style
+\defaultTimeSignature
+\time 4/4 c1
+\time 2/2 c1
 @end lilypond
 
+Symbole für Modus und Proprietas der mensuralen Notation
+werden behandelt unter @ref{Mensural time signatures}.
+
+@predefined
+@code{\numericTimeSignature},
+@code{\defaultTimeSignature}.
+@endpredefined
+
+@snippets
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{changing-the-time-signature-without-affecting-the-beaming.ly}
+
+@cindex compound time signatures
+@cindex time signature, compound
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{compound-time-signatures.ly}
+
 
 @seealso
+Glossar:
+@rglos{time signature}
 
-Programmreferenz:
-@rinternals{TimeSignature} und
-@rinternals{Timing_translator}.
+Notationsreferenz:
+@ref{Mensural time signatures},
+@ref{Time administration}.
 
-Beispiele:
+Schnipsel:
 @rlsr{Rhythms}.
 
+Referenz der Interna:
+@rinternals{TimeSignature},
+@rinternals{Timing_translator}.
 
-@knownissues
-
-Automatische Balken richten sich nicht nach den Taktunterteilungen, die 
-mit @code{set-time-signature} erzeugt werden.
 
 
 @node Upbeats
@@ -645,22 +1034,28 @@ mit @code{set-time-signature} erzeugt werden.
 
 @cindex Auftakt
 @cindex Takte verkürzen
-@funindex \partial
-
-Verkleinerte Takte, wie etwa ein Auftakt, werden wie folgt notiert:
+@cindex partieller Takt
+@cindex halber Takt
+@cindex Taktlänge ändern
 
-@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
-\partial 16*5 c16 cis d dis e | a2. c,4 | b2
-@end lilypond
+@funindex measurePosition
+@funindex \partial
+@funindex partial
 
-Die Syntax für den Befehl lautet:
+Verkleinerte Takte, wie etwa ein Auftakt, werden mit dem
+Befehl @code{\partial} notiert, dessen Syntax lautet:
 
 @example
 \partial @var{Dauer}
 @end example
 
-wobei @code{Dauer} eine rhythmische Länge ist, die vor dem nächsten Taktstrich 
-eingefügt wird.
+wobei @var{Dauer} die rhythmische Länger der Noten darstellt,
+die vor dem ersten vollständigen Takt gesetzt werden sollen:
+
+@lilypond[quote,verbatim,relative=2]
+\partial 4 e4 |
+a2. c,4 |
+@end lilypond
 
 Das wird intern übersetzt nach:
 
@@ -668,23 +1063,26 @@ Das wird intern übersetzt nach:
 \set Timing.measurePosition = -@var{Länge der Dauer}
 @end example
 
-Die Eigenschaft @code{measurePosition} enthält eine rationale Zahl, 
-die darstellt, wie groß der Abstand zum Taktanfang ist. Deshalb ist 
+Die Eigenschaft @code{measurePosition} (Takt-Position) enthält
+eine rationale Zahl, 
+die anezigt, wie groß der Abstand zum Taktanfang ist. Deshalb ist 
 sie eine negative Zahl; @code{\partial 4} wird also intern übersetzt 
 zu: @qq{Eine Viertel bleibt übrig vom ganzen Takt.}
 
-@knownissues
+@seealso
+Glossar:
+@rglos{anacrusis}.
 
-Dieser Befehl berücksichtigt keine Verzierungen/Vorschläge am Anfang der 
-Noten. Wenn ein Stück mit einem Vorschlag anfängt, muss der Befehl 
-@code{\partial} @emph{nach} dem Vorschlag kommen:
+Notationsreferenz:
+@ref{Grace notes}.
 
-@lilypond[verbatim,quote,ragged-right,relative,fragment]
-\grace f16
-\partial 4
-g4
-a2 g2
-@end lilypond
+Schnipsel:
+@rlsr{Rhythms}.
+
+Referenz der Interna:
+@rinternals{Timing_translator}.
+
+@knownissues
 
 @code{\partial} ist nur für den Anfang eines Stückes vorgesehen. Wenn der 
 Befehl innerhalb eines Stückes verwendet wird, können seltsame Warnungen 
@@ -695,16 +1093,24 @@ auftreten.
 @unnumberedsubsubsec Unmetered music
 
 @cindex Kadenz
+@cindex Taktlinen, ausschalten
+@cindex Taktnummern, ausschalten
+@cindex Noten ohne Takt
+@cindex Taktart, Noten ohne
+@cindex Metrum, Noten ohne
+
 @funindex \cadenzaOn
 @funindex \cadenzaOff
+@funindex cadenzaOn
+@funindex cadenzaOff
 
 Taktlinien und Taktzahlen werden automatisch erzeugt. Für Musik 
-ohne Meter hingegen (etwa Kadenzen) ist das allerdings nicht 
+ohne Metrum hingegen (etwa Kadenzen) ist das jedoch nicht 
 erwünscht. Mit den Befehlen @code{\cadenzaOn} und 
 @code{\cadenzaOff} kann dieses Verhalten ausgeschaltet und 
 wieder angeschaltet werden.
 
-@lilypond[verbatim,quote,ragged-right,relative=2,fragment]
+@lilypond[verbatim,quote,relative=2,fragment]
 c4 d e d
 \cadenzaOn
 c4 c d8 d d f4 g4.
@@ -713,14 +1119,42 @@ c4 c d8 d d f4 g4.
 d4 e d c
 @end lilypond
 
+Taktnummerierung wird am Ende der Kadenz wieder aufgenommen, als
+ob es die Kadenz nicht gegeben hätte:
 
-@knownissues
+@lilypond[verbatim,relative=2,fragment]
+% Show all bar numbers
+\override Score.BarNumber #'break-visibility = #all-visible
+c4 d e d
+\cadenzaOn
+c4 c d8 d d f4 g4.
+\cadenzaOff
+\bar "|"
+d4 e d c
+@end lilypond
 
-LilyPond fügt Zeilen- und Seitenumbrüche nur an einer Taktlinie 
-ein. Wenn die Kadenz nicht vor einem Umbruch endet, müssen Sie 
-selber unsichtbare Taktlinien 
+@predefined
+@code{\cadenzaOn},
+@code{\cadenzaOff}.
+@endpredefined
 
-@example
+@seealso
+Glossar:
+@rglos{cadenza}.
+
+@c Notationsreferenz:
+@c ref{Controlling visibility of objects}.
+
+Schnipsel:
+@rlsr{Rhythms}.
+
+@knownissues
+
+LilyPond fügt Zeilen- und Seitenumbrüche nur an einer Taktlinie 
+ein. Wenn die Kadenz nicht vor einem Umbruch endet, müssen Sie 
+selber unsichtbare Taktlinien mit
+
+@example
 \bar ""
 @end example
 
@@ -731,39 +1165,201 @@ einfügen, um anzuzeigen, wo umgebrochen werden darf.
 @node Polymetric notation
 @unnumberedsubsubsec Polymetric notation
 
-@untranslated
+@cindex doppelte Taktartensymbole
+@cindex Taktartensymbole, doppelt
+@cindex Taktartensymbole, unterteilt
+@cindex Taktarten, polymetrisch
+@cindex polymetrische Taktarten
+@cindex Metrum, polymetrisch
+@cindex unterteilte Taktarten
+
+@funindex timeSignatureFraction
+@funindex \scaleDurations
+@funindex scaleDurations
+@funindex \times
+@funindex times
+
+Polymetrische Notation ist unterstützt, entweder direkt, oder
+indem man das sichtbare Taktart-Symbol verändert und zusätzlich
+die Notendauern skaliert.
+
+@strong{@i{Systeme mit unterschiedlichen Taktarten, gleiche
+Taktlänge}}
+
+Diese Art der Notation kann erstellt werden, indem für jedes
+System eine identische Taktart eingestellt wird, aber manuell
+für jeden Takt durch Einstellung von @code{timeSignatureFraction}
+auf den gewünschten Bruch geändert und dann die Länge der
+Noten entsprechenden skaliert wird, siehe auch @ref{Time signature}.
+Die Skalierung geschieht mit dem Befehl
+@code{\scaleDurations}, der auf ähnliche Weise wie @code{\times}
+benutzt wird, aber keine Klammer über den Noten ausgibt. Siehe
+auch @ref{Scaling durations}.
+
+@cindex Bebalkung in polymetrischer Notation
+@cindex Polymetrische Notation und Balken
+
+In diesem Beispiel werden Noten mit den Taktarten 3/4, 9/8 und
+10/8 parallel benutzt.  Im zweiten System werden die gezeigten
+Dauern mit 2/3 multipliziert, da 2/3x9/8=3/4, und im dritten
+System werden die gezeigten Dauern mit 3/5 multipliziert, da
+3/5x10/8=3/4.  Oft wird es nötig sein, Balken manuell zu setzen,
+weil die Skalierung sich auch auf die automatische Bebalkung
+auswirkt.
+
+@lilypond[quote,verbatim,fragment]
+\relative c' <<
+  \new Staff {
+    \time 3/4
+    c4 c c |
+    c c c |
+  }
+  \new Staff {
+    \time 3/4
+    \set Staff.timeSignatureFraction = #'(9 . 8)
+    \scaleDurations #'(2 . 3)
+    \repeat unfold 6 { c8[ c c] }
+  }
+  \new Staff {
+    \time 3/4
+    \set Staff.timeSignatureFraction = #'(10 . 8)
+    \scaleDurations #'(3 . 5) {
+      \repeat unfold 2 { c8[ c c] }
+      \repeat unfold 2 { c8[ c] } |
+      c4. c4. \times 2/3 { c8[ c c] } c4
+    }
+  }
+>>
+@end lilypond
+
+@strong{@i{Systeme mit unterschiedlichen Taktarten, unterschiedliche
+Taktlänge}}
+
+Jedes System kann auch eine eigene unabhängige Taktart erhalten.
+Dazu muss der @code{Timing_translator} und der
+@code{Default_bar_line_engraver} in den @code{Staff}-Kontext
+verschoben werden.
+
+@lilypond[quote,verbatim]
+\layout {
+  \context {
+    \Score
+    \remove "Timing_translator"
+    \remove "Default_bar_line_engraver"
+  }
+  \context {
+    \Staff
+    \consists "Timing_translator"
+    \consists "Default_bar_line_engraver"
+  }
+}
+
+% Now each staff has its own time signature.
+
+\relative c' <<
+  \new Staff {
+    \time 3/4
+    c4 c c |
+    c c c |
+  }
+  \new Staff {
+    \time 2/4
+    c4 c |
+    c c |
+    c c |
+  }
+  \new Staff {
+    \time 3/8
+    c4. |
+    c8 c c |
+    c4. |
+    c8 c c |
+  }
+>>
+@end lilypond
+
+@snippets
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{compound-time-signatures.ly}
+
+
+@seealso
+Glossar:
+@rglos{polymetric},
+@rglos{polymetric time signature},
+@rglos{meter}.
+
+Notationreferenz:
+@ref{Time signature},
+@ref{Scaling durations}.
+
+Schnipsel:
+@rlsr{Rhythms}.
+
+Referenz der Intera:
+@rinternals{TimeSignature},
+@rinternals{Timing_translator},
+@rinternals{Default_bar_line_engraver},
+@rinternals{Staff}.
+
+@knownissues
+
+Wenn unterschiedliche Taktarten paralell benutzt werden, werden
+Noten auf demselben musikalischen Moment horizontal auf die
+gleiche Position gesetzt.  Die unterschiedlichen Taktlinien
+führen allerdings dazu, dass die Noten nicht ganz so regelmäßig
+gesetzt werden, wie es ohne unterschiedliche Taktarten der
+Fall wäre.
 
 
 @node Automatic note splitting
 @unnumberedsubsubsec Automatic note splitting
 
-Lange Noten können automatisch in übergebundene Noten aufgeteilt werden. 
+@cindex Noten, aufteilen
+@cindex Aufteilen von Noten
+@cindex automatisches Aufteilen von Noten
+
+@funindex Note_heads_engraver
+@funindex Completion_heads_engraver
+
+Lange Noten, die über Taktlinien hinüberreichen, können
+automatisch in übergebundene Noten aufgeteilt werden. 
 Dieses Verhalten erreicht man, indem der  @rinternals{Note_heads_engraver} 
 mit dem @rinternals{Completion_heads_engraver} ausgetauscht wird. 
 Im nächsten Beispiel werden Noten, die über die Taktlinie dauern, aufgeteilt 
 und übergebunden.
 
-@lilypond[quote,fragment,verbatim,relative=1,line-width=12\cm]
+@lilypond[quote,verbatim,relative=1]
 \new Voice \with {
   \remove "Note_heads_engraver"
   \consists "Completion_heads_engraver"
-} {
-  c2. c8 d4 e f g a b c8 c2 b4 a g16 f4 e d c8. c2
 }
+
+{ c2. c8 d4 e f g a b c8 c2 b4 a g16 f4 e d c8. c2 }
 @end lilypond
 
-Dieser Notationsformatierer (eng. engraver) teilt alle Noten 
+Dieser Engraver teilt alle Noten 
 auf, die über eine Taktlinie dauern und fügt Bindebögen hinzu. 
 Er kann unter Anderem dann nützlich sein, wenn man komplexe 
 Partituren auf Fehler überprüfen möchte: Wenn die Takte nicht 
 vollständig gefüllt sind, zeigt die Überbindung genau an, wie viele 
 Notenwerte noch in dem jeweiligen Takt fehlen.
 
-Wenn Sie wollen, dass auch Zeilenumbrüche an den Stellen, an denen 
-automatisch Noten aufgeteilt wurden, stattfinden, müssen Sie auch 
-den Formatierer  @rinternals{Forbid_line_break_engraver}  mit 
-dem @code{\remove}-Befehl entfernen.
+@seealso
+Glossar: @rglos{tie}
 
+Handbuch zum Lernen:
+@rlearning{Engravers explained},
+@rlearning{Adding and removing engravers}.
+
+Schnipsel:
+@rlsr{Rhythms}.
+
+Referenz der Interna:
+@rinternals{Note_heads_engraver},
+@rinternals{Completion_heads_engraver},
+@rinternals{Forbid_line_break_engraver}.
 
 @knownissues
 
@@ -775,31 +1371,91 @@ trotzdem keine Triolen etc.
 @code{Completion_heads_engraver} wirkt sich nur auf Noten aus; 
 Pausen werden nicht aufgeteilt.
 
-@seealso
-
-Programmreferenz:
-@rinternals{Completion_heads_engraver}.
-
 
 @node Showing melody rhythms
 @unnumberedsubsubsec Showing melody rhythms
 
+@cindex Melodierhythmus: Anzeige
+@cindex Rhythmus der Melodie anzeigen
+
 Manchmal soll nur der Rhythmus einer Melodie dargestellt werden. Das 
-erreicht man mit einem Schlagzeug-Notensystem. Alle Tonhöhen werden 
+erreicht man mit einem Rhythmus-Notensystem. Alle Tonhöhen werden 
 auf eine Linie reduziert und das System hat auch nur eine einzige 
 Linie.
 
-@lilypond[quote,ragged-right,fragment,relative=1,verbatim]
-\new RhythmicStaff {
-  \time 4/4
-  c4 e8 f g2 | r4 g r2 | g1:32 | r1 |
-}
+@lilypond[quote,relative=1,verbatim]
+<<
+  \new RhythmicStaff {
+    \new Voice = "myRhythm" {
+      \time 4/4
+      c4 e8 f g2
+      r4 g g f
+      g1
+    }
+  }
+  \new Lyrics {
+    \lyricsto "myRhythm" {
+      This is my song
+      I like to sing
+    }
+  }
+>>
 @end lilypond
 
+@cindex Gitarren-Akkordnotation
+@cindex Schlagrhythmus, Gitarre
+@cindex Gitarrenschlagrhythmus, Notation
+
+@funindex Pitch_squash_engraver
+@funindex \improvisationOn
+@funindex improvisationOn
+@funindex \improvisationOff
+@funindex improvisationOff
+
+Akkordnotation für Gitarren bezeichnet auch oft zusätzlich den
+geschlagenen Rhythmus.  Das kann notiert werden unter Verwendung
+des @code{Pitch_squash_engraver} und indem  Tonhöhenimprovisation
+eingeschaltet wird mit @code{\improvisationOn}.
+
+@lilypond[quote,verbatim]
+<<
+  \new ChordNames {
+    \chordmode {
+      c1 f g c
+    }
+  }
+
+  \new Voice \with {
+    \consists Pitch_squash_engraver
+  } \relative c'' {
+    \improvisationOn
+    c4 c8 c c4 c8 c
+    f4 f8 f f4 f8 f
+    g4 g8 g g4 g8 g
+    c4 c8 c c4 c8 c
+  }
+>>
+@end lilypond
+
+@predefined
+@code{\improvisationOn},
+@code{\improvisationOff}.
+@endpredefined
+
+@snippets
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{guitar-strum-rhythms.ly}
+
 @seealso
+Schnipsel:
+@rlsr{Rhythms}.
+
+Referenz der Interna:
+@rinternals{RhythmicStaff},
+@rinternals{Pitch_squash_engraver}.
+
 
-Programmreferenz:
-@rinternals{RhythmicStaff}.
 
 @node Beams
 @subsection Beams
@@ -811,138 +1467,574 @@ Programmreferenz:
 * Feathered beams::             
 @end menu
 
+
 @node Automatic beams
 @unnumberedsubsubsec Automatic beams
 
 LilyPond setzt Balken (engl. beam) automatisch.
 
-@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
-\time 2/4 c8 c c c \time 6/8 c c c c8. c16 c8
+@cindex Balken, Einstellungen
+@cindex Balken, eigene Regeln
+@cindex automatische Bebalkung
+@cindex Balken, automatisch
+
+@funindex measureLength
+@funindex beatLength
+@funindex beatGrouping
+@funindex \autoBeamOn
+@funindex autoBeamOn
+@funindex \autoBeamOff
+@funindex autoBeamOff
+
+@lilypond[quote,verbatim,relative=2]
+\time 2/4 c8 c c c
+\time 6/8 c c c c8. c16 c8
 @end lilypond
 
 Wenn diese automatischen Entscheidungen nicht gut genug sind, können 
-die Balken auch explizit eingegeben werden. Es können auch bestimmte 
-Balkenmuster, die sich vom Standard unterscheiden, definiert werden. 
-Hierzu siehe den Abschnitt @ref{Setting automatic beam behavior} 
-für Einzelheiten.
+die Balken auch explizit eingegeben werden, siehe
+@ref{Manual beams}.  Balken müssen auch auf diese Weise eingegeben
+werden, wenn sie über Pausen hinwegreichen sollen.
+
+Es können auch bestimmte 
+Balkenmuster, die sich vom Standard unterscheiden, definiert werden.
+Die Standard-Regeln für die gebräuchlichsten Taktarten sind
+in der Datei @file{scm/@/auto@/-beam@/.scm} definiert.  Wenn
+dort keine Balkenregeln für die bestimmte Balkendauer in der
+aktuellen Taktart vorhanden
+sind, wird die Bebalkung geregelt von drei Kontexteigenschaften:
+@code{measureLength}, @code{beatLength} und @code{beatGrouping}.
+Sowohl die Balkenregeln als auch diese Kontexteigenschaften
+können geändert werden, siehe @ref{Setting automatic beam behavior}.
+
+@warning{Wenn Balken eingesetzt werden, um Melismen in Gesang
+anzuzeigen, müssen die automatische Bebalkung ausgeschaltet werden
+mit dem Befehl @code{\autoBeamOff} und die Balken mit der Hand
+eingegeben werden.}
 
-Einzelne Noten können mit dem Befehl @code{\noBeam} markiert werden, 
-damit sie nicht mit einem Balken versehen werden.
-
-@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
-\time 2/4 c8 c\noBeam c c
+@noindent
+Automatische Bebalkung kann mit dem Befehl @code{\autoBeamOff}
+aufgehoben werden und mit dem Befehl @code{\autoBeamOn} wieder
+eingeschaltet werden.
+
+@lilypond[quote,relative=1,verbatim]
+c4 c8 c8. c16 c8. c16 c8
+\autoBeamOff
+c4 c8 c8. c16 c8.
+\autoBeamOn
+c16 c8
 @end lilypond
 
+@predefined
+@code{\autoBeamOff},
+@code{\autoBeamOn}.
+@endpredefined
+
+@snippets
+
+@funindex breakable
+
+@cindex Zeilenumbruch, Balken
+@cindex Balken und Zeilenumbrüche
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{beams-across-line-breaks.ly}
+
+@cindex Balken mit Knie
+@cindex weit außeinander liegende Balken
+@cindex auto-knee-gap
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{changing-beam-knee-gap.ly}
 
 @seealso
+Notationsreferenz:
+@ref{Manual beams},
+@ref{Setting automatic beam behavior}.
+
+Installierte Dateien:
+@file{scm/@/auto@/-beam@/.scm}.
+
+Schnipsel:
+@rlsr{Rhythms}.
+
+Referenz der Interna:
+@rinternals{Beam}.
+
+
+@knownissues
+
+Automatische Bebalkung von weit außeinander liegenden Noten
+(wobei der Balken als Knie erscheint) kann nicht mit versteckten
+Systemen benutzt werden.  Siehe @ref{Hiding staves}.
+
+Balken können mit Notenköpfen und Versetzungszeichen in anderen
+Stimmen zusammenstoßen.
 
-Programmreferenz: @rinternals{Beam}.
 
 
 @node Setting automatic beam behavior
 @unnumberedsubsubsec Setting automatic beam behavior
 
-@untranslated
+@cindex Automatische Balken, einstellen
+@cindex Einstellungen der Bebalkung
+@cindex autobeam
+@cindex Verändern von automatischer Bebalkung
+@cindex Bebalkung, automatisch, Einstellungen
+@cindex Text und Balken
+@cindex Gesangstext und Balken
+
+@funindex autoBeaming
+@funindex autoBeamSettings
+@funindex (end * * * *)
+@funindex (begin * * * *)
+@funindex measureLength
+@funindex beatLength
+@funindex beatGrouping
+@funindex \time
+@funindex time
+@funindex \set
+@funindex set
+
+Die Position und Länge der automatischen Balken wird bestimmt
+von bestimmten Regeln, wie beschrieben in @ref{Automatic beams}.
+Es gibt zwei einander ausschließende Arten, diese Regeln zu
+verändern.  Mit der ersten Art verändert man Gruppen von
+Noten, die einer bestimmten Taktart entsprechend mit Balken
+versehen werden.  Das muss manuell getan werden für die Taktarten,
+für welche keine fertigen Regeln definiert worden sind.  Die
+zweite Methode verändert die Definitionen für die Endpunkte
+der Balken und kann für jede Taktart eingesetzt werden.  Diese
+zweite Methode @strong{muss}
+eingesetzt werden für die Taktarten, für welche schon Regeln
+definiert worden sind, es sei denn, alle Regeln wurden mit
+@code{revert} rückgängig gemacht.  Regeln sind definiert für
+die Taktarten 3/2, 3/4, 4/4, 2/4, 4/8, 4/16, 6/8, 9/8 und 12/8.
+
+@i{@strong{Die Gruppierung von Noten verändern}}
+
+Wenn keine Regeln für die Beendung von Balken für die aktuelle
+Balkendauer in der benutzen Taktart vorhanden sind, wird die
+Bebalkung von drei Kontext-Eigenschaften kontrolliert:
+@code{measureLength}, @code{beatLength} und @code{beatGrouping}.
+Diese Eigenschaften können in den @code{Score}, @code{Staff} oder
+@code{Voice}-Kontexten gesetzt werden, um ihre Wirkungsweise zu
+begrenzen.  Die Standardwerte werden gesetzt, wenn der @code{\time}-Befehl
+gelesen wird, sodass alle @code{\set}-Befehle nach den @code{\time}-Befehlen
+geschrieben werden müssen.
+
+Durch sie werden die Balken wie folgt bestimmt:
+
+Balken können überall beginnen (außer ein Balken ist schon aktiv).
+Balken enden zu den Werten, die @code{beatGrouping} und
+@code{beatLength} bestimmten, nach folgenden Regeln:
+
+@itemize
+
+@item Wenn @code{beatGrouping} und @code{beatLength} den gleichen
+Wert wie @code{measureLength} haben, wird @code{beatGrouping}
+benutzt, um die Endpunkte der Balken zu bestimmen.
+
+@item  Wenn @code{beatGrouping} und @code{beatLength} nicht mit
+@code{measureLength} übereinstimmen, wird @code{beatLength}
+benutzt, um die Endpunkte der Balken zu bestimmen.
+
+@end itemize
+
+@warning{Diese drei Eigenschaften werden für einen bestimmten
+Balken @strong{nur dann} aktiv, wenn für diese Balkendauer keine
+Beendungsregeln für die benutzte Taktart definiert sind, oder
+wenn alle diese Regeln mit @code{revert} rückgängig gemacht
+wurden.}
+
+Standardmäßig werden @code{measureLength}
+(Taktlänge) und @code{beatLength} von der Taktart entnommen, die
+mit @code{\time} gesetzt wurde. @code{measureLength} hat
+standardmäßig genau die gleiche Länge wie die Taktlänge und der
+Standardwert für @code{beatLength} (Taktzeit-Länge) wird durch
+den Nenner des Taktart-Bruches bestimmt.
+
+Der Standardwert von @code{beatGrouping} wird aus einer Tabelle
+in der Datei @file{scm/@/music@/-functions@/.scm} entnommen.  Um
+sie zu finden, siehe @rlearning{Other sources of information}.
+Hier werden Taktzeiten-Gruppen für die Taktarten 5/8, 6/8, 8/8,
+9/8 und 12/8 definiert.
+
+Sowohl @code{measureLength} als auch @code{beatLength} sind
+@i{Momente}, Einheiten musikalischer Dauer.  Eine Größe der
+Art @i{Moment} wird durch die Scheme-Funktion
+@code{ly:make-moment} erstellt.  Für mehr Information zu dieser
+Funktion siehe @ref{Time administration}.
+
+@code{beatGrouping} ist eine Liste an Integren, die die Anzahl
+von Zählzeiten für jede Gruppe darstellen.
+
+@snippets
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{grouping-beats.ly}
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{specifying-context-with-beatgrouping.ly}
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{using-beatlength-and-beatgrouping.ly}
+
+@funindex subdivideBeams
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{sub-dividing-beams.ly}
+
+@cindex Taktgruppen
+@cindex Schlaggruppen
+@cindex Taktschläge gruppieren
+@cindex Takt unterteilen
+@cindex Unterteilen von Takten
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{conducting-signs,-measure-grouping-signs.ly}
+
+
+@strong{@i{Die Endpunkte von Balken bestimmen}}
+
+In üblichen Taktarten können automatisch gesetzte Balken an jeder
+Note beginnen, aber nur an einigen bestimmten Positionen innerhalb
+des Taktes beendet werden.  Diese Positionen werden durch die
+Eigenschaften in @code{autoBeamSettings} bestimmt.  Sie bestehen
+aus einer Liste an Regeln, die bestimmen, wo Balken enden können.
+Die Standardeinstellungen dieser automatischen Einstellungen 
+befinden sich in der Datei @file{scm/@/auto@/-beam@/.scm}.  Um diese
+Datei zu finden, siehe @rlearning{Other sources of information}.
+
+Diese Methode @strong{muss} benutzt werden, wenn die Einstellungen
+für die Balken in Taktarten verändert werden sollen, für welche
+schon Regeln existieren, es sei denn, alle diese Regeln wurden
+rückgängig gemacht. Die Methode ist auch in vielen anderen
+Taktarten gut anzuwenden, wenn die Taktart sich oft ändert, oder
+wenn die Balken unterschiedlich für unterschiedliche Balkendauern
+gesetzt werden sollen.
+
+Um eine neue Regel zu der Liste hinzuzufügen, muss folgende
+Syntax verwendet werden:
+
+@example
+#(override-auto-beam-setting
+  '(Balken-Limit
+    Balken-Zähler Balken-Nenner
+    Taktart-Zähler Taktart-Nenner)
+  Moment-Zähler Moment-Nenner [Kontext])
+@end example
+
+@noindent
+wobei
+
+@itemize
+
+@item @code{Balken-Limit} die Art der Balkenbegrenzung ist.  Das
+kann entweder der Wert @code{begin} (Anfang) oder @code{end}
+(Ende) sein, aber nur @code{end} hat eine Auswirkung.
+
+@item @code{Balken-Zähler/Balken-Nenner} ist die Balken-Dauer,
+auf die die Regel sich bezieht.  Ein Balken hat per Definition
+die Dauer seiner kürzesten Note.  Wenn sowohl
+@code{Balken-Zähler} als auch @code{Balken-Nenner} auf
+ @code{'*'} gesetzt werden, gilt die Regel für alle Dauern.
+
+@item @code{Taktart-Zähler/Taktart-Nenner} bestimmen die
+Taktart, auf die die Regel sich bezieht. Wenn @code{Taktart-Zähler}
+und @code{Taktart-Nenner} auf @code{'*'} gesetzt werden, gilt
+die Regel für alle Taktarten.
+
+@item @code{Moment-Zähler/Moment-Nenner} ist die Position im
+Takt, an welcher der Balken aufhören soll.
+
+@item @code{Kontext} ist optional und bestimmt den Kontext, in
+welchem die Änderungen vorgenommen werden sollen.  Der
+Standard ist @code{'Voice}.
+
+@code{#(score-override-auto-beam-setting '(A B C D) E F)} ist
+gleichbedeutend mit
+@code{#(override-auto-beam-setting '(A B C D) E F 'Score)}.
+
+@end itemize
+
+Wenn beispielsweise die automatischen Balken immer auf der ersten
+Viertel enden sollen, unabhängig von der Taktart oder Dauer
+des Balkens, kann
+
+@lilypond[quote,verbatim,relative=2]
+a8 a a a a a a a
+#(override-auto-beam-setting '(end * * * *) 1 4)
+a8 a a a a a a a
+@end lilypond
+
+@noindent
+benutzt werden.
+
+Balkenregeln können aber auch auf Notengruppen beschränkt werden,
+deren kürzeste Note einen bestimmten Wert hat:
+
+@lilypond[quote,verbatim,relative=2]
+\time 2/4
+% end 1/16 beams for all time signatures at the 1/16 moment
+#(override-auto-beam-setting '(end 1 16 * *) 1 16)
+a16 a a a a a a a |
+a32 a a a a16 a a a a a |
+% end 1/32 beams for all time signatures at the 1/16 moment
+#(override-auto-beam-setting '(end 1 32 * *) 1 16)
+a32 a a a a16 a a a a a |
+@end lilypond
+
+Balkenregeln können so definiert werden, dass sie nur in bestimmten
+Taktarten angewendet werden:
+
+@lilypond[quote,verbatim,relative=2]
+\time 5/8
+% end beams of all durations in 5/8 time signature at the 2/8 moment
+#(override-auto-beam-setting '(end * * 5 8) 2 8)
+c8 c d d d
+\time 4/4
+e8 e f f e e d d
+\time 5/8
+c8 c d d d
+@end lilypond
+
+Wenn mehrfache Stimmen benutzt werden, muss der @code{Staff}-Kontext
+angegeben werden, wenn die Balkenregeln auf alle Stimmen im System
+angewendet werden sollen:
+
+@lilypond[quote,verbatim,relative=2]
+\time 7/8
+% rhythm 3-1-1-2
+% Context not specified - does not work correctly
+#(override-auto-beam-setting '(end * * 7 8) 3 8)
+#(override-auto-beam-setting '(end * * 7 8) 4 8)
+#(override-auto-beam-setting '(end * * 7 8) 5 8)
+<< {a8 a a a16 a a a a8 a} \\ {f4. f8 f f f} >>
+
+% Works correctly with context specified
+#(override-auto-beam-setting '(end * * 7 8) 3 8 'Staff)
+#(override-auto-beam-setting '(end * * 7 8) 4 8 'Staff)
+#(override-auto-beam-setting '(end * * 7 8) 5 8 'Staff)
+<< {a8 a a a16 a a a a8 a} \\ {f4. f8 f f f} >>
+@end lilypond
+
+@warning{Wenn eine unerwartete Bebalkung auftritt, schauen Sie
+zuerste die Balkeneinstellungen in @file{scm/@/auto@/-beam@/.scm} 
+nach, ob sich hier Überschneidungen ergeben, weil die
+Balkenenden, die dort definiert sind, auch noch weiterhin
+wirksam sind zusätzlich zu den von Ihnen definierten.}
+
+Jede ungewollte oder störende Balkenbeendigung aus den Standard-Eingesllungen
+muss für Ihre Taktart rückgängig gemacht werden.  Existierende
+automatische Bebalkungsregeln werden entfernt mit folgender
+Syntax:
+
+@example
+#(revert-auto-beam-setting
+  '(Balken-Limit
+    Balken-Zähler Balken-Nenner
+    Taktart-Zähler Taktart-Nenner)
+  Moment-Zähler Moment-Nenner [Kontext])
+@end example
+
+@noindent
+wobei @code{Balken-Limit}, @code{Balken-Zähler}, @code{Balken-Nenner},
+@code{Taktart-Zähler}, @code{Taktart-Nenner}, @code{Moment-Zähler},
+@code{Moment-Nenner} sowie @code{Kontext} die gleichen sind
+wie oben erklärt.
+
+@lilypond[quote,verbatim,relative=2]
+\time 4/4
+a16 a a a a a a a a a a a a a a a
+% undo a rule ending 1/16 beams in 4/4 time at 1/4 moment
+#(revert-auto-beam-setting '(end 1 16 4 4) 1 4)
+a16 a a a a a a a a a a a a a a a
+@end lilypond
+
+Die Regel in einer @code{revert-auto-beam-setting}-Definition
+muss exakt der ursprünglichen Regel entsprechen.  Dabei werden
+keine Platzhalter akzeptiert.
+
+@lilypond[quote,verbatim,relative=2]
+\time 1/4
+#(override-auto-beam-setting '(end 1 16 1 4) 1 8)
+a16 a a a
+#(revert-auto-beam-setting '(end 1 16 * *) 1 8) % this won't revert it!
+a a a a
+#(revert-auto-beam-setting '(end 1 16 1 4) 1 8) % this will
+a a a a
+@end lilypond
+
+@snippets
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{beam-grouping-in-7-8-time.ly}
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{reverting-default-beam-endings.ly}
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{beam-endings-in-score-context.ly}
+
+@funindex \autoBeamOff
+@funindex autoBeamOff
+@funindex \autoBeamOn
+@funindex autoBeamOn
+
+@predefined
+@code{\autoBeamOff},
+@code{\autoBeamOn}.
+@endpredefined
+
+@cindex Balken, letzter in einer Partitur
+@cindex letzter Balken einer Partitur
+@cindex Balken, letzter in einer polyphonen Stimme
+
+@knownissues
+
+Wenn eine Partitur aufhört, während ein automatischer Balken noch
+nicht geschlossen ist und noch Noten erwartet, wird dieser letzte
+Balken überhaupt nicht ausgegeben.  Das gilt auch für polyphone
+Stimmen, die mit @code{<< @dots{} \\ @dots{} >>} gesetzt wurden.
+Wenn eine polyphone Stimme endet, während ein Balken noch Noten
+erwartet, wird dieser Balken nicht gesetzt.
+
+@seealso
+Schnipsel:
+@rlsr{Rhythms}.
 
 
 @node Manual beams
 @unnumberedsubsubsec Manual beams
 
+@cindex manuelle Balken
 @cindex Balken, manuell
+
 @funindex ]
 @funindex [
 
 In einigen Fällen kann es nötig sein, den automatischen Algorithmus 
 für die Balken zu überschreiben. Die automatischen Balken werden 
-beispielsweise nicht über Pausen oder Taktlinien hinweg gesetzt. 
+beispielsweise nicht über Pausen oder Taktlinien hinweg gesetzt, und
+in Gesang werden die Balken oft nach dem Rhythmus des Textes und
+nicht dem der Musik gesetzt. 
 Manuell definierte Balken werden mit den Zeichen @code{[} und 
 @code{]} (AltGr+8 bzw. 9) markiert.
 
-@lilypond[quote,ragged-right,fragment,relative=1,verbatim]
+@lilypond[quote,relative=1,verbatim]
 {
   r4 r8[ g' a r8] r8 g[ | a] r8
 }
 @end lilypond
 
+@funindex \noBeam
+@funindex noBeam
 
-@commonprop
-
-@funindex stemLeftBeamCount
-@funindex stemRightBeamCount
-
-LilyPond kann die Balkengruppen innerhalb eines größeren Balkens
-selber bestimmen, aber dabei können teilweise seltsame Ergebnisse 
-entstehen. Mit den Eigenschaften @code{stemLeftBeamCount} und 
-@code{stemRightBeamCount} können diese Unterteilungen manuell
-eingestellt werden. Wenn eine dieser Eigenschaften gesetzt ist, 
-wird es nur einmal verwendet und dann wieder zum Standard zurück 
-geschaltet.
-
+Einzelne Noten können mit dem Befehl @code{\noBeam} markiert werden, 
+damit sie nicht mit einem Balken versehen werden.
 
-@lilypond[quote,ragged-right,fragment,relative=1,verbatim]
-{
-   f8[ r16
-      f g a]
-   f8[ r16
-   \set stemLeftBeamCount = #1
-      f g a]
-}
+@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
+\time 2/4 c8 c\noBeam c c
 @end lilypond
 
-Die Eigenschaft @code{subdivideBeams} kann benutzt werden, um alle 
-16tel-Balken oder kleinere Werte zu bestimmten Taktzeiten zu 
-unterteilen. Diese Zeiten werden mit der @code{beatLength}-Eigenschaft 
-gesetzt.
+@funindex stemLeftBeamCount
+@funindex stemRightBeamCount
 
-@lilypond[fragment,quote,relative=2,verbatim]
-c16[ c c c c c c c]
-\set subdivideBeams = ##t
-c16[ c c c c c c c]
-\set Score.beatLength = #(ly:make-moment 1 8)
-c16[ c c c c c c c]
+Noch bessere manuelle Kontrolle über die Balken kann durch Setzen
+der Eigenschaften @code{stemLeftBeamCount} und
+@code{stemRightBeamCount} erreicht werden.  Sie bestimmen
+die Anzahl von Balken, die rechts und links vom Hals der nächsten
+Note gesetzt werden sollen.  Wenn eine Eigenschaften gesetzt ist,
+wird ihr Wert nur einmal eingesetzt und dann wieder auf Null gesetzt.
+Im folgenden Beispiel hat das letzte @code{f} nur einen Balken
+an seiner linken Seite (der als Achtelbalken der gesamten
+Gruppe gewertet wird).
+
+@lilypond[quote,relative=2,verbatim]
+a8[ r16 f g a]
+a8[ r16
+\set stemLeftBeamCount = #2
+\set stemRightBeamCount = #1
+f
+\set stemLeftBeamCount = #1
+g a]
 @end lilypond
-@funindex subdivideBeams
 
-@noindent
-Zu mehr Information über @code{make-moment} siehe
-@ref{Time administration}.
+@snippets
 
-Zeilenumbrüche sind normalerweise verboten, wenn Balken sich über 
-die Taktlinien erstrecken. Das kann aber durch Setzen von 
-@code{breakable} verändert werden.
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{flat-flags-and-beam-nibs.ly}
 
-@funindex breakable
 
-@cindex Balken und Zeilenumbrüche
-@cindex Balken zwischen Systemen
-@funindex auto-knee-gap
+@node Feathered beams
+@unnumberedsubsubsec Feathered beams
 
+@cindex Balken, gespreizt
+@cindex gespreizte Balken
+
+@funindex featherDurations
+@funindex \featherDurations
+@funindex grow-direction
+
+Gespreizte Balken werden teilweise eingesetzt um anzuzeigen, dass
+kleine Notengruppen in beschleunigendem oder verlangsamendem Tempo
+gespielt werden sollen, ohne dass sich das Tempo des Stückes
+verändert.  Die Reichweite der gespreizten Balken muss manuell
+mit @code{[} und @code{]} angegeben werden und die Spreizung wird
+kontrolliert, indem der Balken-Eigenschaft @code{grow-direction}
+eine Richtung zugewiesen wird.
+
+Wenn die Anordnung der Noten und die MIDI-Ausgabe das Ritardando
+oder Accelerando, wie es die Spreizung angibt, reflektieren soll,
+müssen die Noten als ein musikalischer Ausdruck notiert werden,
+der von geschweiften Klammern umgeben ist und dem ein
+@code{featheredDurations}-(gespreizteDauern)-Befehl vorangestellt
+ist, der das Verhaltnis der ersten und letzten Dauer definiert.
+
+Die eckigen Klammern geben die Reichweite des Balkens an und die
+geschweiften Klammern zeigen, auf welche Noten sich die Veränderung
+der Dauern auswirkt.  Normalerweise bezieht sich das auf die
+selbe Notengruppe, aber das ist nicht unbedingt erforderlich: beide
+Befehle sind unabhängig voneinander.
+
+Im folgenden Beispiel nehmen die acht 16-Noten exakt die gleiche
+Zeit ein wie eine halbe Note, aber die erste Note ist halb so lang
+wie die letzte der Gruppe, und die Noten dazwischen werden stufenweise
+verlängert.  Die ersten vier 32-Noten beschleunigen stufenweise
+das Tempo, während die darauffolgenden vier 32-Noten ein
+gleichmäßiges Tempo haben.
+
+@lilypond[relative=1,verbatim,quote]
+\override Beam #'grow-direction = #LEFT
+\featherDurations #(ly:make-moment 2 1)
+{ c16[ c c c c c c c] }
+\override Beam #'grow-direction = #RIGHT
+\featherDurations #(ly:make-moment 2 3)
+{ c32[ d e f] }
+% revert to non-feathered beams
+\override Beam #'grow-direction = #'()
+{ g32[ a b c] }
+@end lilypond
 
-Balken mit Hälsen nach oben und unten werden automatisch eingesetzt, 
-wenn ein großer Abstand zwischen Notenköpfen gefunden wird. Die Größe 
-des Wertes kann mit dem 
-@code{auto-knee-gap}-Objekt eingestellt werden.
+@noindent
+Die Platzierung der Noten im Druckbild entspricht den Notendauern
+nur annähernd, aber die MIDI-Ausgabe ist exakt.
 
 @knownissues
 
-Automatisch erstellte Balken zwischen Systemen können nicht zusammen 
-mit automatisch versteckten Systemen verwendet werden. Siehe auch
- @ref{Hiding staves}.
-
-@c Is this still true with skyline spacing stuff? -J.Mandereau
-Balken vermeiden nicht andere Objekte, wie etwa Text und Versetzungszeichen.
+Der @code{\featherDurations}-Befehl funktioniert nur mit kurzen
+Notenabschnitten, und wenn die Zahlen in den Brüchen klein
+sind.
 
-
-@node Feathered beams
-@unnumberedsubsubsec Feathered beams
-
-@untranslated
+@seealso
+Snippets:
+@rlsr{Rhythms}.
 
 
 @node Bars
 @subsection Bars
 
-
 @menu
 * Bar lines::                   
 * Bar numbers::                 
@@ -954,49 +2046,120 @@ Balken vermeiden nicht andere Objekte, wie etwa Text und Versetzungszeichen.
 @unnumberedsubsubsec Bar lines
 
 @cindex Taktlinien
-@funindex \bar
+@cindex Taktstriche
 @cindex Doppellinie
 @cindex Wiederholungszeichen
 
-Taktlinien trennen die Takte voneinander, werden aber auch verwendet, 
+@funindex \bar
+@funindex bar
+
+Taktstriche trennen Takte voneinander, werden aber auch verwendet, 
 um Wiederholungen anzuzeigen. Normalerweise werden sie automatisch 
-eingefügt. Zeilenumbrüche können nur an Taktlinien stattfinden.
+nach Vorgabe der aktuellen Taktart eingefügt.
 
-Besondere Taktlinien-Arten können mit dem @code{\bar}-Befehl erzwungen 
-werden.
+Die einfachen, automatisch eingefügten Taktstriche können mit dem
+@code{\bar}-Befehl geändert werden.  Eine doppelter Tatkstrich etwa
+wird normalerweise am Ende eines Stückes gesetzt:
 
-@lilypond[quote,ragged-right,relative=2,fragment,verbatim]
-c4 \bar "|:" c4
+@lilypond[quote,relative=1,verbatim]
+e4 d c2 \bar "|."
 @end lilypond
 
-Folgende Taktlinienarten sind vorhanden:
-
-@c @lilypondfile[ragged-right,quote]{bar-lines.ly}
-
-Als letztes ist @code{"||:"} notiert, das sich ähnlich wie 
-@code{"|:"} verhält. Es gibt jedoch nur an Zeilenenden eine doppelte 
-Taktlinie aus und fängt die Wiederholungslinie erst in der nächsten 
-Zeile an.
-
-Um einen Zeilenumbruch an einer Stelle zu erlauben, wo keine sichtbare 
-Taktlinie ist, kann man 
+Es ist kein Fehler, wenn die letzte Note in einem Takt nicht
+zum automatisch eingefügten Taktstrich aufhört: es wird angenommen,
+dass die Note im nächsten Takt weitergeht.  Wenn aber eine ganze
+Reihe solcher überlappenden Takte auftritt, können die Noten
+gedrungen aussehen oder sogar über den Seitenrand hinausragen.  Das
+kommt daher, dass Zeilenumbrüche nur dann vorgenommen werden, wenn
+ein vollständiger Takt auftritt, also ein Takt, an dem alle Noten
+vor dem Taktstrich zu Ende sind.
+
+@warning{Eine falsche Dauer kann bewirken, dass Zeilenumbrüche
+verhindert werden, woraus resultiert, dass die Noten entweder
+sehr stark gedrängt auf der Zeile notiert werden, oder die Zeile
+über den Seitenrand hinausragt.}
+
+@cindex Zeilenumbrüche
+@cindex unsichtbare Taktstriche
+@cindex Taktstriche, unsichtbar
+@cindex Taktlinien, unsichtbar
+
+Zeilenumbrüche werden erlaubt, wenn ein Taktstrich manuell eingefügt
+wird, auch, wenn es sich um keinen vollständigen Takt handelt.  Um
+einen Zeilenumbruch zu erlauben, ohne den Taktstrich auszugeben,
+kann
 
 @example
 \bar ""
 @end example
 
 @noindent
-benutzen. Damit wird eine unsichtbare Taktlinie an dieser Stelle eingefügt 
-und damit ein Zeilenumbruch erlaubt (ohne dass sich die Anzahl der Takte 
-erhöhen würde).
+benutzt werden.  Damit wird ein unsichtbarer Taktstrich an dieser Stelle eingefügt 
+und damit ein Zeilenumbruch erlaubt (aber nicht erzwungen), ohne 
+dass sich die Anzahl der Takte erhöhen würde.  Um einen
+Zeilenumbruch zu erzwingen, siehe
+@ref{Line breaking}.
+
+@cindex manuelle Taktstriche
+@cindex Taktstriche, manuell
+@cindex Taktlinene, manuell
+
+Diese Art von Taktstrichen und auch andere besondere Taktstriche
+können manuell an jeder Stelle in der Partitur eingefügt werden.
+Wenn sie mit dem Ende eines Taktes übereinstimmen, wird der
+automatische Taktstrich durch den manuellen ersetzt.  Diese
+manuellen Einfügungen haben keine Auswirkung auf die Zählung und
+Position der folgenden automatischen Taktstriche.
+
+Manuell können der einfache Taktstrich und zusätzlich fünf Arten
+eines doppelten Taktstriches gesetzt werden:
+
+@lilypond[quote,relative=1,verbatim]
+f1 \bar "|" g \bar "||" a \bar ".|" b \bar ".|." c \bar "|.|" d \bar "|." e
+@end lilypond
+
+Zusätzlich gibt es noch punktierte und gestrichelte Taktstriche:
+
+@lilypond[quote,relative=1,verbatim]
+f1 \bar ":" g \bar "dashed" a
+@end lilypond
+
+@noindent
+und fünf unterschiedliche Wiederholungstaktstriche:
+
+@lilypond[quote,relative=1,verbatim]
+f1 \bar "|:" g \bar ":|:" a \bar ":|.|:" b \bar ":|.:" c \bar ":|" d
+@end lilypond
+
+@cindex Wiederholungen
+
+Auch wenn die Taktlinien, die Wiederholungen angeben, manuell
+eingefügt werden können, wird die Wiederholung dadurch nicht von
+LilyPond erkannt.  Wiederholte Stellen werden besser notiert, indem
+man die Wiederholguns-Befehle einsetzt, die automatische die
+richtigen Taktlinien setzen.  Das ist beschrieben in@ref{Repeats}.
+
+Zusätzlich kann noch @code{"||:"} verwendet werden, dass sich
+genauso wie @code{"|:"} verhält, außer bei Zeilenumbrüchen, wo ein
+doppeltre Taktstrich am Ende der Zeile ausgegeben wird und ein
+öffnender Wiederholungsstrich am Anfang der nächsten Zeile.
+
+@lilypond[quote,relative=2,verbatim]
+\override Score.RehearsalMark #'padding = #3
+c c c c
+\bar "||:"
+c c c c \break
+\bar "||:"
+c c c c
+@end lilypond
 
 In Partituren mit vielen Systemen wird ein @code{\bar}-Befehl in einem 
 System automatisch auf alle anderen Systeme angewendet. Die resultierenden 
-Taktlinien sind miteinander verbunden innerhalb einer Gruppe 
- (@code{StaffGroup}) oder einem Klaviersystem (@code{PianoStaff} 
-bzw. (@code{GrandStaff}).
+Taktstriche sind miteinander verbunden innerhalb einer Gruppe 
+(@code{StaffGroup}) oder einem Klaviersystem
+(@code{PianoStaff} bzw. (@code{GrandStaff}).
 
-@lilypond[quote,ragged-right,fragment,verbatim]
+@lilypond[quote,fragment,verbatim]
 <<
   \new StaffGroup <<
     \new Staff {
@@ -1011,40 +2174,200 @@ bzw. (@code{GrandStaff}).
 @end lilypond
 
 
-@commonprop
+@snippets
 
 @funindex whichBar
-@funindex repeatCommands
 @funindex defaultBarType
+@funindex \bar
+@funindex bar
+@funindex bartype
 
 Der Befehl @code{\bar }@var{Taktart} ist eine Kurzform von:
 @code{\set Timing.whichBar = }@var{Taktart}. Immer, wenn 
-@code{whichBar} auf einen Wert gesetzt wird, wird eine 
-Taktlinie dieses Typs erzeugt.
-
-Eine Taktlinie wird auch durch Setzen der 
- @code{whichBar}-Eigenschaft erzeugt. Am Anfang eines Taktes 
-wird sie auf den Wert von @code{Timing.defaultBarType} 
-gesetzt. Der Inhalt des @code{repeatCommands}-Befehls 
-wird benutzt, um Standardtaktlinien zu überschreiben.
-
-Sie sollten jedoch Wiederholungen mit dem @code{\repeat}-Befehl 
-erzeugen. Siehe Abschnitt @ref{Repeats}.
+@code{whichBar} auf einen Wert gesetzt wird, wird ein 
+Taktstrich dieses Typs erzeugt.
 
+Der automatisch erzeugte Taktstrich ist @code{"|"}.  Das kann
+jederzeit durch den Befehl @code{\set Timing.defaultBarType = }
+@var{Takstrichart} geändert werden.
 
 @seealso
+Notationsreferenz:
+@ref{Line breaking},
+@ref{Repeats},
+@ref{Grouping staves}.
+
+Schnipsel:
+@rlsr{Rhythms}.
 
-Im Handbuch: @ref{Repeats}, @ref{System start delimiters}.
+Referenz der Interna:
+@rinternals{BarLine} (created at
+@rinternals{Staff} level), @rinternals{SpanBar} (across
+staves), @rinternals{Timing_translator} (for Timing
+properties).
 
-Programmreferenz: @rinternals{BarLine} (auf Partitur 
-(@rinternals{Staff})-Ebene erstellt), 
-@rinternals{SpanBar} (zwischen Systemen).
 
 
 @node Bar numbers
 @unnumberedsubsubsec Bar numbers
 
-@untranslated
+@cindex Taktnummern
+@cindex Nummierung von Takten
+@cindex Zahl eines Taktes
+@cindex Taktzahlen
+
+@funindex currentBarNumber
+
+Taktnummern werden standardmäßig zu Beginn eines jeden Systems
+ausgegeben, ausgenommen ist die erste Zeile.  Die Zahl selber
+wird in der @code{currentBarNumber}-Eigenschaft gespeichert, die
+normalerweise für jeden Takt aktualisiert wird.  Sie kann aber auch
+manuell gesetzt werden:
+
+@lilypond[verbatim,quote,fragment,relative=1]
+c1 c c c
+\break
+\set Score.currentBarNumber = #50
+c1 c c c
+@end lilypond
+
+
+@snippets
+
+@funindex barNumberVisibility
+
+@cindex Taktnummern, regelmäßiger Abstand
+
+@c Uncomment this after next LSR update.
+@c @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+@c {printing-the-bar-number-for-the-first-measure.ly}
+
+Taktnummern können in regelmäßigem Abstand ausgegeben werden,
+anstatt dass sie nur am Beginn des Systems erscheinen.  Um das
+zu erreichen, muss die Standardeinstellung verändert werden, um
+zu erlauben, dass Taktnummern an anderen Stellen als dem
+Beginn von Systemen ausgegeben werden.  Das wird mit der
+Eigenschaft @code{break-visibility} von @code{BarNumber} vorgenommen.
+Sie braucht drei Werte, die auf @code{#t} (wahr) oder @code{#f}
+(falsch) gestellt werden können, womit angegeben wird, ob die
+Taktnummer an der entprechenden Stelle sichtbar ist.  Die
+Reihenfolge der Werte ist: @var{Ende der Zeile}, @var{Mitte
+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)
+\set Score.currentBarNumber = #11
+\bar ""  % Permit first bar number to be printed
+c1 c c c
+\break
+c c c c
+@end lilypond
+
+@c  All the rest of these examples will be added to LSR
+@c  and moved into the Snippets.  -gp
+
+Im nächsten Beispiel werden die Taktnummern nur für jeden
+zweiten Takt gesetzt, außer am Ende der Zeile:
+
+@lilypond[verbatim,quote,relative=1]
+\override Score.BarNumber #'break-visibility = #'#(#f #t #t)
+\set Score.currentBarNumber = #11
+\bar ""  % Permit first bar number to be printed
+% Print a bar number every second measure
+\set Score.barNumberVisibility = #(every-nth-bar-number-visible 2)
+c1 c c c c
+\break
+c c c c c
+@end lilypond
+
+@cindex Taktnummer, Form
+@cindex Aussehen von Taktnummern
+
+Die Größe der Taktnummer kann geändert werden.  Das wird im folgenden
+Beispiel gezeigt, welches auch illustriert, wie man Taktnummern
+in Kästen oder Kreise einfasst und eine Alternative zeigt,
+wie man @code{#(#f #t #t)} für @code{break-visibility} definieren
+kann.
+
+@lilypond[verbatim,quote,relative=1]
+% Prevent bar numbers at the end of a line and permit them elsewhere
+\override Score.BarNumber #'break-visibility
+  = #end-of-line-invisible
+
+% Increase the size of the bar number by 2
+\override Score.BarNumber #'font-size = #2
+\repeat unfold 3 { c1 } \bar "|"
+
+% Draw a box round the following bar number(s)
+\override Score.BarNumber  #'stencil
+  = #(make-stencil-boxer 0.1 0.25 ly:text-interface::print)
+\repeat unfold 3 { c1 } \bar "|"
+
+% Draw a circle round the following bar number(s)
+\override Score.BarNumber  #'stencil
+  = #(make-stencil-circler 0.1 0.25 ly:text-interface::print)
+\repeat unfold 4 { c1 } \bar "|."
+@end lilypond
+
+@cindex Ausrichtung von Taktlinien
+@cindex Taktlinien, Ausrichtung
+
+Taktnummern sind standardmäßig links von ihrem Anker angeordnet.
+Der Anker ist meistens das linke Ende einer Zeile, oder, wenn die
+Zahlen innerhalb der Zeile gesetzt werden, die linke Taktlinie
+eines Taktes.  Die Nummern können auch direkt auf der Taktlinie
+positioniert oder rechts davon gesetzt werden:
+
+@lilypond[verbatim,quote,relative=1]
+\set Score.currentBarNumber = #111
+\override Score.BarNumber #'break-visibility = #'#(#t #t #t)
+% Increase the size of the bar number by 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 = #0
+c1 c1
+% Right-align bar numbers
+\override Score.BarNumber #'self-alignment-X = #-1
+c1 c1
+@end lilypond
+
+Taktnummern können vollständig entfernt werden, indem man den
+@code{Bar_number_engraver} aus dem @code{Score}-Kontext entfernt.
+
+@lilypond[verbatim,quote]
+\layout {
+  \context {
+    \Score
+    \remove "Bar_number_engraver"
+  }
+}
+\relative c''{
+  c4 c c c \break
+  c4 c c c
+}
+@end lilypond
+
+
+@seealso
+Schnipsel:
+@rlsr{Rhythms}.
+
+Referenz der Interna:
+@rinternals{BarNumber}.
+
+@cindex Taktnummern, Zusammenstöße
+@cindex Zusammenstöße, Taktnummern
+
+@knownissues
+
+Taktnummern können mit der oberen Ecke der Klammer zu Beginn des
+Systems zusammenstoßen.  Um das zu verhindert, kann die
+@code{padding}-Eigenschaft von @code{BarNumer} verwendet werden,
+um die Zahl zu verschieben.
 
 
 @node Bar and bar number checks
@@ -1066,7 +2389,7 @@ in einer Fehlermeldung.
 \time 3/4 c2 e4 | g2 |
 @end example
 
-Taktüberprüfungen können auch in Liedtexten verwendet werden:
+Taktüberprüfungen können auch in Gesangstexten verwendet werden:
 
 @example
 \lyricmode @{
@@ -1075,25 +2398,40 @@ Taktüberprüfungen können auch in Liedtexten verwendet werden:
 @}
 @end example
 
-Eine Taktüberprüfung gilt als nicht bestanden, wenn die Notenwerte 
-nicht stimmen. Besonders in mehrstimmiger komplizierter Musik können 
-solche falschen Notenwerte die ganze Partitur durcheinander bringen. 
+Besonders in mehrstimmiger komplizierter Musik können 
+falschen Notenwerte die ganze Partitur durcheinander bringen. 
 Es lohnt sich also, die Fehlersuche damit zu beginnen, nicht bestandene 
 Taktüberprüfungen zu kontrollieren.
 
+Wenn aufeinander folgende Taktüberprüfungen mit dem gleichen
+Abstand Fehler produzieren, wird eventuell nur die erste Warnung
+ausgegeben.  Damit wird die Warnung auf den Ursprung de Fehlers
+fokussiert.
+
 @funindex |
 @funindex pipeSymbol
 
-Es ist auch möglich, die Bedeutung des Symbols @code{|} umzudefinieren. 
+Es ist auch möglich, die Bedeutung des Symbols @code{|} 
+umzudefinieren, so dass hiermit eine andere Aktion als eine
+Taktüberprüfung erreicht wird. 
 Das geschieht, indem man der Pipe (@code{pipeSymbol} einen musikalischen 
-Ausdruck zuweist:
+Ausdruck zuweist.  Im nächsten Beispiel wird @code{|} dazu
+verwendet, eine doppelte Taktlinie auszugeben, woimmer man
+das Zeichen auchsetzt.  Gleichzeitig hört das Zeichen auf,
+als Taktüberprüfung zu funktionieren.
 
-@lilypond[quote,ragged-right,verbatim]
+@lilypond[quote,verbatim]
 pipeSymbol = \bar "||"
-
-{ c'2 c' | c'2 c' }
+{
+  c'2 c'2 |
+  c'2 c'2
+  c'2 | c'2
+  c'2 c'2
+}
 @end lilypond
 
+@funindex \barNumberCheck
+@funindex barNumberCheck
 
 Wenn man größere Musikstücke kopiert, kann es hilfreich sein, wenn 
 LilyPond überprüft, ob die Taktnummer, in der Sie gerade kopieren, 
@@ -1110,16 +2448,151 @@ Eine Warnung wird ausgegeben, wenn der interne Zähler
 nicht mit dem Wert 123 übereinstimmt.
 
 
+
 @node Rehearsal marks
 @unnumberedsubsubsec Rehearsal marks
 
-@untranslated
+@cindex Übungszeichen
+@cindex Abschnitte markieren
+
+@funindex mark
+@funindex \mark
+
+Übungszeichen können mit dem @code{\mark}-Befehl ausgegeben werden:
+
+@lilypond[quote,verbatim,relative=2]
+c1 \mark \default
+c1 \mark \default
+c1 \mark #8
+c1 \mark \default
+c1 \mark \default
+@end lilypond
+
+@noindent
+Der Buchstabe@tie{}@qq{I} wird ausgelassen, was den allgemeinen
+Notensatzregeln entspricht. Wenn Sie dennoch den Buchstaben
+@qq{I} benutzen, wollen, müssen Sie
+
+@example
+\set Score.markFormatter = #format-mark-alphabet
+@end example
+
+@noindent
+benutzen.
+
+Das Zeichen wird automatisch erhöht, wenn Sie @code{\mark
+\default} schreiben, aber Sie können auch eine beliebige
+Ganzzahl als Argument angeben.  Der Wert, der gesetzt werden
+soll, wird in der Eigenschaft @code{rehearsalMark} gespeichert.
+
+@cindex Übungszeichen formatieren
+@cindex Stil von Übungszeichen
+@cindex Übungszeichenstil
+@cindex Art der Übungszeichen
+@cindex Zeichen, Übung: Formatierung
+@cindex manuelles Übungszeichen
+@cindex Formatierung von Übungszeichen
+
+Der Stil der Übungszeichen wird von der Eigenschaft @code{markFormatter} definiert.  Das ist eine Funktion, die
+das aktuelle Zeichen und den aktuellen Kontext als Argument
+annimmt.  Sie gibt dann ein Textbeschriftungsobjekt aus.  Im
+folgenden Beispiel ist @code{markFormatter} so definiert, dass
+eine Zahl ausgegeben wird.  In den folgenden Takten
+werden dann andere mögliche Einstellungen gezeigt.
+
+@lilypond[quote,verbatim,relative=2]
+\set Score.markFormatter = #format-mark-numbers
+c1 \mark \default
+c1 \mark \default
+\set Score.markFormatter = #format-mark-box-numbers
+c1 \mark \default
+\set Score.markFormatter = #format-mark-circle-numbers
+c1 \mark \default
+\set Score.markFormatter = #format-mark-circle-letters
+c1
+@end lilypond
+
+Die Datei @file{scm/@/translation@/-functions@/.scm} beinhaltet
+die Definitionen für @code{format-mark-numbers} (erstelle-Zeichen-Nummern),
+@code{format-mark-box-numbers} (erstelle-Zeichen-Kasten-Nummern),
+@code{format-mark-letters} (erstelle-Zeichen-Buchstaben) und
+@code{format-mark-box-letters} (erstelle-Zeichen-Kasten-Buchstaben).  Sie können als Anleitung
+für eigene Formatierungsfunktionen dienen.
+
+Die Funktionen @code{format-mark-barnumbers},
+@code{format-mark-box-barnumbers}und
+@code{format-mark-circle-barnumbers} könenn eingesetzt werden,
+um Taktnummern anstelle der fortlaufenden Zahlen bzw. Buchstaben
+zu erhalten.
+
+Andere Übungszeichenstile können auch manuell gesetzt werden:
+
+@example
+\mark "A1"
+@end example
+
+@noindent
+@code{Score.markFormatter} hat keine Auswirkungen auf solcherart
+definierte Zeichen.  Man kann aber auch mit @code{\markup}
+Textbeschriftungsobjekte zu dem selbstdefinierten Zeichen
+hinzufügen:
+
+@example
+\mark \markup@{ \box A1 @}
+@end example
+
+@cindex Segno
+@cindex Coda
+@cindex D.S al Fine
+@cindex Dal Segno
+@cindex Fermate
+@cindex Noten-Schriftzeichen
+@cindex Schriftzeichen, Notenschrift
+@cindex Musikbuchstaben
+
+@funindex \musicglyph
+@funindex musicglyph
+
+Musikbuchstaben (wie etwa das Segno-Zeichen) können mit dem Befehl
+@code{\musicglyph} als ein
+@code{\mark}-Zeichen definierte werden:
+
+@lilypond[quote,verbatim,relative=1]
+c1 \mark \markup { \musicglyph #"scripts.segno" }
+c1 \mark \markup { \musicglyph #"scripts.coda" }
+c1 \mark \markup { \musicglyph #"scripts.ufermata" }
+c1
+@end lilypond
+
+@noindent
+Siehe @ref{The Feta font}, wo alle Symbole gezeigt sind, die
+mit dem Befehl @code{\musicglyph} ausgegeben werden können.
+
+Übliche Veränderungen der Positionierung von Übungszeichen finden
+sich in
+@ref{Formatting text}.
+
+@seealso
+Notationsreferenz:
+@ref{The Feta font},
+@ref{Formatting text}.
+
+Installierte Dateien:
+@file{scm/@/translation@/-functions@/.scm} beinhaltet die Definition
+von @code{format-mark-numbers} und
+@code{format-mark-letters}.  Sie können als Anleitung für eigene
+Funktionen benutzt werden.
+
+Schnipsel:
+@rlsr{Rhythms}.
+
+Referenz der Interna:
+@rinternals{RehearsalMark}.
 
 
 @node Special rhythmic concerns
 @subsection Special rhythmic concerns
 
-
 @menu
 * Grace notes::                 
 * Aligning to cadenzas::        
@@ -1130,182 +2603,193 @@ nicht mit dem Wert 123 übereinstimmt.
 @unnumberedsubsubsec Grace notes
 
 @funindex \grace
+@funindex grace
+
 @cindex Verzierungen
 @cindex Ziernoten
 @cindex Vorhalt
 @cindex Vorschlag
+@cindex Ornamente
 
-Verzierungen sind ausgeschriebene Ornamente. Die üblichste ist der 
-Vorschlag. Er wird durch eine verkleinerte Note mit Schrägstrich 
-und Bogen notiert. Der Vorhalt dagegen ist eine Verzierung, die 
-einen bestimmten Notenwert der Hauptnote für sich beansprucht. 
-Er wird als verkleinerte Note ohne Schrägstrich notiert. 
-Der Vorschlag wird mit dem Befehl @code{\acciaccatura} und der Vorhalt 
-mit @code{\appoggiatura} eingegeben.
+Verzierungen sind ausgeschriebene Verzierungen.  Sie werden in
+einer kleineren Schriftgröße gesetzt und nehmen keine logische
+Zeit im Takt ein.
 
-@lilypond[quote,ragged-right,relative=2,verbatim,fragment]
-b4 \acciaccatura d8 c4 \appoggiatura e8 d4
-\acciaccatura { g16[ f] } e4
-@end lilypond
-
-Bei beiden handelt es sich um spezielle Formen des @code{\grace} 
-(engl. Verzierung)-Befehl. Wenn dieser Befehl einem musikalischen 
-Ausdruck vorgestellt wird, wird ein neuer Ausdruck geschaffen, 
-der in kleineren Noten gesetzt wird und von der logischen Zeit 
-innerhalb des Taktes keinen Raum beansprucht.
-
-@lilypond[quote,ragged-right,relative=2,verbatim,fragment]
+@lilypond[quote,relative=2,verbatim]
 c4 \grace c16 c4
-\grace { c16[ d16] } c2 c4
+\grace { c16[ d16] } c2
 @end lilypond
 
-@noindent
-Anders als @code{\acciaccatura} oder @code{\appoggiatura} setzt 
-der @code{\grace}-Befehl keinen Bogen.
-
-@cindex Zeitberechnung, intern
-
-Programmintern wird die Zeitberechnung für Verzierungen in einer 
-zweiten Zählebene vorgenommen. Jeder Zeitpunkt beinhaltet zwei 
-rationale Zahlen: die eine steht für die logische Zeit, die andere 
-für die @qq{Verzierungszeit}. Das obere Beispiel ist hier 
-mit den entsprechenden Zeitwerten angezeigt:
+LilyPond hat auch Unterstützung für zwei besondere Verzierungen,
+den Vorschlag und den Vorhalt.  Der Vorschlag wird durch eine 
+verkleinerte Note mit Schrägstrich 
+und Bogen notiert.  Der Vorhalt dagegen ist eine Verzierung, die 
+einen bestimmten Notenwert der Hauptnote für sich beansprucht. 
+Er wird als verkleinerte Note ohne Schrägstrich notiert.
 
-@lilypond[quote,ragged-right]
-<<
-  \relative c''{
-    c4 \grace c16 c4 \grace {
-    c16[ d16] } c2 c4
-  }
-  \new Lyrics \lyricmode {
-    \override LyricText #'font-family = #'typewriter
-
-    \markup { (0,0) } 4
-    \grace { \markup {
-      ( \fraction 1 4 , \fraction -1 16 ) } 16 }
-    \markup { (\fraction 1 4 , 0 ) } 4
-    \grace {
-      \markup { (\fraction 2 4 , \fraction "-1" 8 ) } 16
-      \markup { (\fraction 2 4 , \fraction "-1" 16 ) } 16
-    }
-    \markup { ( \fraction 2 4 , 0 ) }
-  }
->>
+@lilypond[quote,relative=2,verbatim]
+\grace c8 b4
+\acciaccatura d8 c4
+\appoggiatura e8 d4
+\acciaccatura { g16[ f] } e4
 @end lilypond
 
-Die Position von Verzierungen wird zwischen den Systemen synchronisiert. 
-Im folgenden Beispiel sind jeweils zwei Sechzehntel gegen jede Achtel 
-gesetzt:
+Die Position von Verzierungen ist zwischen Notensystemen 
+synchronisiert.  Im nächsten Beispiel stehen im einen
+System zwei 16-Noten für jede 8-Note des zweiten Systems:
 
-@lilypond[quote,ragged-right,relative=2,verbatim,fragment]
-<< \new Staff { e4 \grace { c16[ d e f] } e4 }
-   \new Staff { c4 \grace { g8[ b] } c4 } >>
+@lilypond[quote,relative=2,verbatim]
+<< \new Staff { e2 \grace { c16[ d e f] } e2 }
+   \new Staff { c2 \grace { g8[ b] } c2 } >>
 @end lilypond
 
 @funindex \afterGrace
+@funindex afterGrace
 
-Eine Verzierung kann auch auf eine Note folgend gesetzt werden. Dazu wird 
-der @code{\afterGrace}-Befehl benutzt. Er nimmt zwei Argumente: die 
-Hauptnote und die Verzierungen, die nach der Hauptnote erscheinen sollen.
+@cindex Verzierung, danach
+@cindex Nachschlag
 
-@lilypond[ragged-right, verbatim,relative=2,fragment]
-c1 \afterGrace d1 { c16[ d] } c4
-@end lilypond
+Wenn Sie eine Note mit einer Verzierung abschließen wollen, müssen
+Sie den @code{\afterGrace}-Befehl benutzen.  Er benötigt zwei
+Argumente: die Hauptnote und die Verzierung, die nach der
+Hauptnote folgen soll:
 
-Damit wird die Verzierung im Abstand von 3/4 der Länge der Hauptnote 
-gesetzt. Dieser Bruch kann durch Setzen von 
-@code{afterGraceFraction} verändert werden:
+@lilypond[quote,verbatim,relative=2]
+c1 \afterGrace d1 { c16[ d] } c1
+@end lilypond
 
-@example
-#(define afterGraceFraction (cons 7 8))
-@end example
+Damit wird die Verzierung mit einem Abstand von der Hauptnote
+gesetzt, der 3/4 der Dauer der Hauptnote entspricht.  Dieser
+Standard kann durch Definition von @code{afterGraceFraction}
+verändert werden.  Das nächste Beispiel zeigt, wie sich
+der Abstand verändert, wenn der Wert 3/4, 15/16 und 1/2 der
+Hauptnote beträgt.
 
-@noindent
-Hier wurde die Position auf das vorletzte Achtel der Notenlänge gesetzt.
+@lilypond[quote,verbatim,relative=2]
+<<
+  \new Staff {
+    c1 \afterGrace d1 { c16[ d] } c1
+  }
+  \new Staff {
+    #(define afterGraceFraction (cons 15 16))
+    c1 \afterGrace d1 { c16[ d] } c1
+  }
+  \new Staff {
+    #(define afterGraceFraction (cons 1 2))
+    c1 \afterGrace d1 { c16[ d] } c1
+  }
+>>
+@end lilypond
 
-Der gleiche Effekt kann auch manuell erreicht werden:
+Der Abstand zwischen der Hauptnote und der Verzierung kann auch
+mit unsichtbaren Noten beeinflusst werden.  Im nächsten Beispiel
+wird die Verzierung mit einem Abstand von 7/8 zur Hauptnote
+gesetzt.
 
-@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
+@lilypond[quote,verbatim,relative=2]
 \new Voice {
   << { d1^\trill_( }
-     { s2 \grace { c16[ d] } } >>
-  c4)
+     { s2 s4. \grace { c16[ d] } } >>
+  c1)
 }
 @end lilypond
 
-@noindent
-Indem die Dauer der unsichtbaren Note (hier eine Halbe) wird der 
-Abstand zwischen Hauptnote und Verzierung angepasst.
-
 Ein @code{\grace}-Notenabschnitt wird nach besonderen Satzregeln 
 gesetzt, um z. B. kleinere Noten zu benutzen und die Richtung der 
-Hälse einzustellen. Veränderungen am Layout müssen also innerhalb 
-des Verzierungsausdrucks gesetzt werden, damit sie auch eine Auswirkung haben.
+Hälse einzustellen.  Veränderungen am Layout müssen also innerhalb 
+des Verzierungsausdrucks gesetzt werden, damit sie auch eine Auswirkung haben.  Die Veränderungen müssen auch innerhalb des
+Verzierungsausdrucks rückgängig gemacht werden.  In diesem
+Fall wird die Richtung der Hälse geändert und dann wieder der
+Standard eingestellt:
 
-@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
+@lilypond[quote,verbatim,relative=2]
 \new Voice {
   \acciaccatura {
     \stemDown
     f16->
     \stemNeutral
   }
-  g4
+  g4 e c2
 }
 @end lilypond
 
-@noindent
-Diese Einstellungen müssen auch innerhalb der Verzierungsebene wieder 
-rückgängig gemacht werden.
-
-Das Layout der Verzierungsausdrücke kann mit der Funktion 
- @code{add-grace-property} verändert werden. Im folgenden Beispiel 
-wird die Richtung der Notenhälse neutralisiert, so dass sie nicht 
-unbedingt in nach oben zeigen.
+@cindex Hals, mit Schrägstrich
+@cindex durchgestrichener Hals
+@cindex Notenhals, durchgestrichen
 
-@example
-\new Staff @{
-  #(add-grace-property 'Voice 'Stem 'direction '())
-  @dots{}
-@}
-@end example
-
-@noindent
-Eine andere Option ist es, die Variablen @code{startGraceMusic},
-@code{stopGraceMusic}, @code{startAcciaccaturaMusic},
-@code{stopAcciaccaturaMusic}, @code{startAppoggiaturaMusic} und
-@code{stopAppoggiaturaMusic} zu vermeiden. Mehr Information findet sich 
-in der Datei @file{ly/@/grace@/-init@/.ly}.
 
-@noindent
-Der Schrägstrich durch den Notenhals der Vorschläge kann auch in anderen 
-Situation erreicht werden mit 
-@code{\override Stem  #'stroke-style = #"grace"}.
+@snippets
 
+The slash through the stem found in @emph{acciaccatura}s can be applied
+in other situations:
 
-@commonprop
+@lilypond[quote,verbatim,relative=2]
+\relative c'' {
+  \override Stem #'stroke-style = #"grace"
+  c8( d2) e8( f4)
+}
+@end lilypond
 
-Verzierungen könne gezwungen werden, den Hauptnoten entsprechend aufgeteilt 
-zu werden.
+The layout of grace expressions can be changed throughout the
+music using the function @code{add-grace-property}.  The following
+example undefines the @code{Stem} direction for this grace, so
+that stems do not always point up.
 
-@lilypond[verbatim,quote,relative=2]
-<<
-  \override Score.SpacingSpanner #'strict-grace-spacing = ##t
-  \new Staff {
-    c4
-    \afterGrace c4 { c16[ c8 c16] }
-    c4 r
-  }
+@lilypond[quote,verbatim,relative=2]
+\relative c'' {
   \new Staff {
-    c16 c c c c c c c c4 r
+    #(add-grace-property 'Voice 'Stem 'direction ly:stem::calc-direction)
+    #(remove-grace-property 'Voice 'Stem 'direction)
+    \new Voice {
+       \acciaccatura { f16 } g4
+       \grace { d16[ e] } f4
+       \appoggiatura { a,32[ b c d] } e2
+    }
   }
->>
+}
 @end lilypond
 
+Another option is to change the variables @code{startGraceMusic},
+@code{stopGraceMusic}, @code{startAcciaccaturaMusic},
+@code{stopAcciaccaturaMusic}, @code{startAppoggiaturaMusic},
+@code{stopAppoggiaturaMusic}.  The default values of these can be
+seen in the file @code{ly/@/grace@/-init@/.ly}.  By redefining
+them other effects may be obtained.
+
+Grace notes may be forced to align with regular notes
+in other staves:
+
+@lilypond[verbatim,quote]
+\relative c'' {
+  <<
+    \override Score.SpacingSpanner #'strict-grace-spacing = ##t
+    \new Staff {
+      c4
+      \afterGrace c4 { c16[ c8 c16] }
+      c4 r
+    }
+    \new Staff {
+      c16 c c c c c c c c4 r
+    }
+  >>
+}
+@end lilypond
 
 
 @seealso
+Glossar:
+@rglos{grace notes},
+@rglos{acciaccatura},
+@rglos{appoggiatura}.
+
+Installierte Dateien:
+@file{ly/@/grace@/-init@/.ly}.
+
+Schnipsel:
+@rlsr{Rhythms}.
 
-Programmreferenz: @rinternals{GraceMusic}.
+Referenz der Interna:
+@rinternals{GraceMusic}.
 
 
 @knownissues
@@ -1314,12 +2798,18 @@ Eine Partitur, die mit einem @code{\grace}-Ausdruck beginnt, benötigt
 eine explizit gesetzte neue Stimme (@code{\new Voice}), sonst werden 
 Hauptnote und Verzierung auf verschiedenen Systemen gesetzt.
 
+Ein Vorschlag (@emph{acciaccatura}) mit mehreren Noten und 
+Balken wird ohne den Schrägstrich gesetzt und sieht einem
+Vorhalt (@emph{appoggiatura}) sehr ähnlich.
+
+@c TODO Add link to LSR snippet to add slash when available
+
 Die Synchronisation von Verzierungen kann auch zu Überraschungen führen. 
 Auch andere Symbole der Systeme, wie Vorzeichen, Taktlinien usw., werden 
 synchronisiert. Vorsicht ist geboten, wenn nur in bestimmten Systemen 
 Verzierungen vorkommen:
 
-@lilypond[quote,ragged-right,relative=2,verbatim,fragment]
+@lilypond[quote,relative=2,verbatim]
 << \new Staff { e4 \bar "|:" \grace c16 d4 }
    \new Staff { c4 \bar "|:" d4 } >>
 @end lilypond
@@ -1344,11 +2834,134 @@ zu Fehlermeldungen oder Abstürzen kommen.
 @node Aligning to cadenzas
 @unnumberedsubsubsec Aligning to cadenzas
 
-@untranslated
+@cindex Kadenz, Ausrichten an
+@cindex Ausrichten an Kadenz
+
+In Orchesterpartituren stellen Kadenzen ein besonderes Problem dar:
+Wenn in der Partitur ein Instrument eine Kadenz spielt, die notiert
+wird, müssen die anderen Stimmen genau die entsprechende Anzahl Noten
+überspringen, damit sie nicht zu früh oder zu spät einsetzen.
+
+Eine Lösung ist es, die Funktionen @code{mmrest-of-length} oder
+@code{skip-of-length} zu benutzen.  Diese Scheme-Funktionen
+brauchen einen definierten Notenabschnitt (eine Variable)
+als Argument und produzieren entweder Ganztaktpausen oder leere
+Takte, die genauso lang sind wie der Notenabschnitt.
+
+@lilypond[verbatim,quote]
+MyCadenza = \relative c' {
+  c4 d8 e f g g4
+  f2 g4 g
+}
+
+\new GrandStaff <<
+  \new Staff {
+    \MyCadenza c'1
+    \MyCadenza c'1
+  }
+  \new Staff {
+    #(ly:export (mmrest-of-length MyCadenza))
+    c'1
+    #(ly:export (skip-of-length MyCadenza))
+    c'1
+  }
+>>
+@end lilypond
+
+@seealso
+Glossar:
+@rglos{cadenza}.
+
+Schnipsel:
+@rlsr{Rhythms}.
+
 
 
 @node Time administration
 @unnumberedsubsubsec Time administration
 
-@untranslated
+@cindex Verwaltung der Zeiteinheiten
+@cindex Zeit (in der Partitur)
+@cindex Noten ohne Takt
+@cindex Takt, Noten ohne
+@cindex Noten ohne Metrum
+@cindex Metrum, Noten ohne
+
+@funindex currentBarNumber
+@funindex measurePosition
+@funindex measureLength
+
+Die Zeit in einer Partitur wird vom @code{Timing_translator}
+verwaltet, der sich in den Standardeinstellungen im @code{Score}-Kontext
+befindet.  Eine Parallelbezeichnung, @code{Timing}, wird
+dem Kontext hinzugefügt, in dem sich @code{Timing_translator}
+befindet.
+
+Die folgenden Eigenschaften von @code{Timing} werden eingesetzt,
+um die Zeit in Partituren zu verwalten.
+
+@cindex Taktnummer
+
+@table @code
+@item currentBarNumber (aktuelle Taktnummer)
+Die gerade aktuelle Taktzahl.  Für ein Beispiel, das die Benutzung
+dieser Eigenschaft zeigt, siehe @ref{Bar numbers}.
+
+@item measureLength (Taktlänge)
+Die Länge der Takte mit der aktuellen Taktart.  In einem 4/4-Takt
+ist sie 1, in einem 6/8-Takt 3/4.  Dieser Wert bestimmt, wann
+eine Taktlinie gezogen wird und wie automatische Balken erstellt
+werden sollen.
+
+@item measurePosition (Taktposition)
+Der Schlag im Takt zum aktuellen Moment.  Dieser Wert wird
+zurückgesetzt, indem @code{measureLength} (die Taktlänge) abgezogen
+wird, wenn der Wert von @code{measureLength} erreicht oder
+überschritten wird.  Wenn das passiert, wird der Zähler
+@code{currentBarNumber} (aktuelle Taktnummer) erhöht.
+
+@item timing (Zeitberechnung)
+Wenn auf wahr gesetzt, werden die oben genannten Variablen
+zu jedem Zeitpunkt aktualisiert.  Wenn auf falsch gesetzt,
+bleibt der Engraver unendlich lange im aktuellen Takt.
+
+@end table
+
+Zeitverwaltung kann geändert werden, indem man diese Variablen
+direkt beeinflusst.  Im nächsten Beispiel wird die normale
+Taktart mit 4/4 angegeben, aber @code{measureLength} wird
+auf 5/4 gesetzt.  An der Stelle 4/8 des dritten Taktes wird die
+Taktposition (@code{measurePosition}) um 1/8 auf 5/8 erhöht, so
+dass der Takt im Ergebnis 1/8 kürzer ist.  Die nächste Taktlinie
+wird dann auch bei 9/8 gezogen und nicht bei 5/4.
+
+@lilypond[quote,verbatim,relative=1]
+\set Score.measureLength = #(ly:make-moment 5 4)
+c1 c4
+c1 c4
+c4 c4
+\set Score.measurePosition = #(ly:make-moment 5 8)
+b4 b4 b8
+c4 c1
+@end lilypond
+
+@noindent
+Wie das Beispiel zeigt, erstellt @code{ly:make-moment n m} 
+die Dauer Zähler/Nenner einer ganzen Note.  Zum Beispiel heißt
+@code{ly:make-moment 1 8} die Dauer einer Achtelnote, und
+@code{ly:make-moment 7 16} die Dauer von sieben Sechszehntelnoten.
+
+
+@seealso
+Notationsreferenz:
+@ref{Bar numbers}, @ref{Unmetered music}
+
+Schnipsel:
+@rlsr{Rhythms}.
+
+Referenz der Interna:
+@rinternals{Timing_translator},
+@rinternals{Score}
+
+
 
index 46086d6f1fd060aa637f586e02baed0bf6412421..4592fccd00d7bc73b8351274947abca251570360 100644 (file)
@@ -1,13 +1,15 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*-
 @c This file is part of lilypond-program.tely
 @ignore
-    Translation of GIT committish: 317e451cbe00c0fa25e177976327e260f3dc6539
+    Translation of GIT committish: 499a511d4166feaada31114e097f86b5e0c56421
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c Translators: Reinhold Kainhofer
+@c \version "2.12.0"
+
+@c Translators: Reinhold Kainhofer, Till Rettig
 
 @node Running LilyPond
 @chapter Running LilyPond
@@ -43,7 +45,7 @@ Unter @q{Kommandozeile} verstehen wir die Kommandozeile des jeweiligen
 Betriebssystems. Windows Benutzern ist sie vielleicht eher unter den
 englischen Begriffen @q{DOS shell} oder @q{command shell} bekannt.
 MacOS@tie{}X Benutzer kennen sie eher unter @q{Terminal} oder @q{Konsole}.
-Sie sollten auch den Abschnitt @ref{MacOS X on the command-line} konsultieren.
+Sie sollten auch den Abschnitt @ref{Setup for MacOS X} konsultieren.
 
 Wie die Kommandozeile im jeweiligen Betriebssystem benutzt werden kann,
 soll in diesem Handbuch nicht näher beschrieben werden. Sehen Sie bitte
@@ -53,15 +55,15 @@ Internet, wenn Sie mit der Kommandozeile nicht vertraut sind.
 
 @menu
 * Invoking lilypond::
-* Command line options::
+* Command line options for lilypond::
 * Environment variables::
 @end menu
 
 @node Invoking lilypond
-@subsection Invoking lilypond
+@subsection Invoking @command{lilypond}
 
-@cindex LilyPond aufrufen
-@cindex Kommandozeilen-Optionen
+@cindex @command{lilypond} aufrufen
+@cindex Kommandozeilen-Optionen für @command{lilypond}
 @cindex Optionen an der Kommandozeile
 
 Das @command{lilypond} Programm kann folgendermaßen von der Kommandozeile
@@ -104,8 +106,8 @@ erzeugt daher die Dateien @var{Dateiname}@file{-Geige.pdf} und
 
 
 
-@node Command line options
-@subsection Command line options
+@node Command line options for lilypond
+@subsection Command line options for @command{lilypond}
 
 Die folgenden Kommandozeilenoptionen werden von @command{lilypond} unterstützt:
 
@@ -135,7 +137,7 @@ Am Beginn der @file{.ly}-Datei muss dann das @code{guile-user} Modul noch gelade
 
 @item -f,--format=@var{Format}
 Bestimmt das Ausgabeformat. Mögliche Werte von @var{Format} sind
-@code{svg}, @code{ps}, @code{pdf}, @code{png}, @code{tex} und @code{dvi}.
+@code{svg}, @code{ps}, @code{pdf} und @code{png}.
 
 Beispiel: @code{lilypond -fpng @var{Dateiname}.ly}
 
@@ -200,8 +202,7 @@ abgeleitet und fügt noch zahlreiche weitere erlaubte Funktionen der
 LilyPond Programm-Schnittstelle hinzu. Diese Funktionen sind in 
 @file{scm/@/safe@/-lily@/.scm} angegeben.
 
-Zusätzliche verbietet der sichere Modus auch @code{\include} Befehle sowie
-die Benutzung eines Backslashs in @TeX{} Zeichenketten.
+Zusätzliche verbietet der sichere Modus auch @code{\include} Befehle.
 
 Im sicheren Modus ist es nicht möglich, LilyPond-Variablen nach Scheme 
 zu exportieren.
@@ -221,46 +222,45 @@ Einrichtung.
 @item backend
 Gibt an, welches Ausgabeformat das LilyPond Backend benutzt. Mögliche Werte
 für diese Option sind:
+
 @table @code
-@item tex
-@TeX{}-Ausgabeformat, das mit La@TeX{} weiterverarbeitet werden kann. Falls sie
-existiert, wird die Datei @file{file.textmetrics} gelesen, um die Textweiten 
-zu bestimmen.
-@item texstr
-Schreibt alle Zeichenketten in eine @file{.texstr}-Datei, die mit (La)@TeX{}
-verarbeitet werden kann, um eine @code{.textmetrics}-Datei mit den Textweiten
-zu erstellen. @strong{Achtung:} Diese Funktionalität ist momentan nicht 
-verfügbar, da der Quellcode stark umstrukturiert wurde.
 @item ps
- PostScript-Ausgabeformat.
+PostScript-Ausgabeformat.
+
 @cindex PostScript Ausgabeformat
 
-  Postscript-Dateien enthalten auch TTF-, Type1- und OTF-Schriften. Allerdings 
-  wird die gesamte Schriftart eingefügt und nicht nur die benötigten Zeichen.
-  Vor allem wenn nicht-westliche Zeichensätze benutzt werden, kann dies zu sehr
-  großen Dateien führen.
+Postscript-Dateien enthalten auch TTF-, Type1- und OTF-Schriften. Allerdings 
+wird die gesamte Schriftart eingefügt und nicht nur die benötigten Zeichen.
+Vor allem wenn nicht-westliche Zeichensätze benutzt werden, kann dies zu sehr
+großen Dateien führen.
 
 @item eps
- Erzeugt @q{encapsulated PostScript} (EPS). Jede Seite (oder jedes System) wird
- als eigene @file{EPS}-Datei ausgegeben, inklusive Schriftarten. Außerdem wird
- eine Datei mit allen Seiten (bzw. Systemen) und Schriftarten erzeugt.
+Erzeugt @q{encapsulated PostScript} (EPS). Jede Seite (oder jedes System) wird
+als eigene @file{EPS}-Datei ausgegeben, inklusive Schriftarten. Außerdem wird
+eine Datei mit allen Seiten (bzw. Systemen) und Schriftarten erzeugt.
 
 Dies ist die Standardeinstellung von @command{lilypond-book}.
 
 @item svg
- SVG-Ausgabe (Scalable Vector Graphics). Jede Seite wird als eigene 
- @file{SVG}-Datei ausgegeben, inklusive eingebetteten Schriftarten.
+SVG-Ausgabe (Scalable Vector Graphics). Jede Seite wird als eigene 
+@file{SVG}-Datei ausgegeben, inklusive eingebetteten Schriftarten.
 @cindex SVG (Scalable Vector Graphics)
-  Sie benötigen einen SVG-Betrachter, der eingebettete Schriftarten unterstützt,
-  oder einen SVG-Betrachter, der eingebettete Schriftarten durch OTF-Schriften
-  ersetzen kann. In UNIX und Linux kann z.B. @uref{http://www.inkscape.org,Inkscape}
-  (ab Version 0.42) benutzt werden, nachdem die OTF-Schriften aus dem 
-  LilyPond-Verzeichnis (typischerweise @file{/usr/share/lilypond/VERSION/fonts/otf/})
-  in das Verzeichnis @file{~/.fonts/} kopiert wurden.
+Sie benötigen einen SVG-Betrachter, der eingebettete Schriftarten unterstützt,
+oder einen SVG-Betrachter, der eingebettete Schriftarten durch OTF-Schriften
+ersetzen kann. In UNIX und Linux kann z.B. @uref{http://www.inkscape.org,Inkscape}
+(ab Version 0.42) benutzt werden, nachdem die OTF-Schriften aus dem 
+LilyPond-Verzeichnis (typischerweise @file{/usr/share/lilypond/VERSION/fonts/otf/})
+in das Verzeichnis @file{~/.fonts/} kopiert wurden.
+
 @item scm
- Gibt die rohen Scheme-basierenden Zeichenbefehle aus, wie sie intern von 
-  LilyPond benutzt werden.
+gibt die rohen Scheme-basierenden Zeichenbefehle aus, wie sie intern von 
+LilyPond benutzt werden.
+
 @cindex Scheme dump
+
+@item null
+Keine Partitur wird ausgegeben, hat gleichen Effekt wie @code{-dno-print-pages}.
+
 @end table
 
 Beispiel: @code{lilypond -dbackend=svg @var{Dateiname}.ly}
@@ -298,15 +298,11 @@ Standardwert ist @file{init.ly}.
 @item -o,--output=@var{DATEI}
 Schreibt das Ergebnis der Verarbeitung mit LilyPond in die Ausgabedatei
 @var{DATEI}. Die entsprechende Dateinamenserweiterung wird angehängt (z.B. 
-@code{.pdf} für pdf, @code{.tex} für tex, etc.).
+@code{.pdf} für pdf).
 
 @item --ps
 Erzeugt PostScript.
 
-@item --dvi
-Erzeugt DVI-Dateien. In diesem Fall sollte das @TeX{}-Backend angegeben werden,
-d.h. auch @code{-dbackend=tex}.
-
 @item --png
 Erzeugt eine Grafik-Datei im PNG-Format von jeder Seite. Diese Option
 impliziert auch @code{--ps}. Die Auflösung in DPI der Grafik kann festgelegt
@@ -318,8 +314,6 @@ werden durch
 @item --pdf
 Erzeugt PDF-Dateien. Dies impliziert @code{--ps}.
 
-
-
 @item -j,--jail=@var{Benutzer},@var{Gruppe},@var{Jail-Verzeichnis},@var{Arbeitsverzeichnis}
 Führt @command{lilypond} in einem chroot-Jail aus.
 
@@ -504,20 +498,174 @@ oberhalb der angegebenen Stelle genauer unter die Lupe nehmen.
 
 
 @node Updating files with convert-ly
-@section Updating with @command{convert-ly}
+@section Updating files with @command{convert-ly}
+
+@cindex Aktualisierung von LilyPond-Dateien
+@cindex Aktualisierung mit convert-ly
+@cindex convert-ly: Aktualisierung
+
+Die Eingabesyntax von LilyPond ändert sich graduell um etwa die
+Eingabe zu erleichtern oder neue Funktionen zu ermöglichen.  Ein
+Nebeneffekt hiervon ist, dass das LilyPond-Übersetzerprogramm nicht
+mehr mit älteren Eingabedateien kompatibel sein kann.  Um dies
+zu umgehen, kann @command{convert-ly} benutzt werden, welches die
+meisten der Syntaxänderungen korrigieren kann.
+
+Das Programm benötigt eine @code{\version}-Information in der
+Eingabedatei, um zu wissen, von welcher Version konvertiert werden
+soll.  In den meisten Fällen genügt es, den Befehl
 
-@untranslated
+@example
+convert-ly -e meineDatei.ly
+@end example
+
+@noindent
+auszuführen.
+@c MacOS@tie{}X-Benutzer können diesen Befehl im Menu unter
+@c @code{Compile > Update syntax} finden.
+@c Does it work? TR
+
+Wenn keine Veränderungen in @code{meineDatei.ly} vorgenommen wurden
+und eine Datei @code{meineDatei.ly.NEW} erstellt wird, it
+@code{meineDatei.ly} schon aktuell.
 
 
-@subsection Command line options
 @menu
+* Command line options for convert-ly::
 * Problems with convert-ly::
 @end menu
 
+@node Command line options for convert-ly
+@subsection Command line options for @command{convert-ly}
+
+@command{convert-ly} konvertiert immer bis zur letzten Syntaxänderung,
+die es beherrscht.  Das heißt, dass die neue @code{version}-Nummer
+in der Datei überlicherweise etwas niedriger ist als die
+Version von @command{convert-ly}.
+
+Um LilyPond-Fragmente in texinfo-Dateien zu aktualisieren, gilt
+der Befehl:
+
+@example
+convert-ly --from=... --to=... --no-version *.itely
+@end example
+
+Um die Änderungen der LilyPond-Syntax zwischen bestimmten Versionen
+zu sehen, kann der Befehl
+
+@example
+convert-ly --from=... --to=... -s
+@end example
+
+@noindent
+benutzt werden.
+
+Viele Dateien können auf einmal aktualisiert werden, indem
+@code{convert-ly} mit den üblichen UNIX-Befehlen kombiniert
+wird.  Das folgende Beispiel aktualisiert alle @code{.ly}-Dateien
+im aktuellen Verzeichnis:
+
+@example
+for f in *.ly; do convert-ly -e $f; done;
+@end example
+
+Die allgemeine Syntax des Programms lautet:
+
+@example
+convert-ly [@var{option}]@dots{} @var{file}@dots{}
+@end example
+
+Folgende Optionen sind möglich:
+
+@table @code
+@item -e,--edit
+Verändere die entsprechende Zeile der Eingabedatei. Überschreibt
+@code{--output}.
+
+@item -f,--from=@var{von-Versionsnummer}
+Setze die Version, ab welcher konvertiert werden soll.  Wenn diese
+Option nicht gesetzt ist, versucht @command{convert-ly}, die
+Version auf Grundlage von @code{\version} zu raten.
+
+@item -n,--no-version
+Normalerweise fügt @command{convert-ly} eine @code{\version}-Zeile
+zur Ausgabe hinzu.  Mit dieser Option kann das unterdrückt werden.
+
+@item -s, --show-rules
+Zeige alle bekannten Konversionsregeln und beende.
+
+@item --to=@var{bis-Versionsnummer}
+Hiermit kann das Ziel der Konversion gesetzt werden.  Standard ist
+die neueste mögliche Version.
+
+@item -h, --help
+Benutzerhilfe ausgeben.
+@end table
+
+
 @node Problems with convert-ly
 @subsection Problems with @code{convert-ly}
 
-@untranslated
+Nicht alle Änderungen der Syntax können konvertiert werden.  Nur
+eine Ausgabeoption kann angegeben werden.  Scheme- und
+LilyPond-Scheme-Code wird sehr unwahrscheinlich korrekt aktualisiert,
+hier ist meistens Nacharbeit erforderlich.
+
+@verbatim
+Hier eine Liste einiger Befehle, die convert-ly nicht konvertieren kann.
+
+Diese Liste ist in Form von Fehlermeldungen, denn convert-ly
+ist so strukturiert, dass nicht alle benötigten Änderungen
+implementiert werden können.  Es handelt sich also eher um eine
+Wunschliste zur Referenz.
+
+1.6->2.0:
+ Bezifferter Bass wird nicht immer korrekt konvertiert, besonders
+ Befehle wie {< >}.  Mats Kommentar hierzu:
+    Um convert-ly korrekt ausführen zu können, müssen alle Vorkommen
+    von '{<' in etwas beliebiges wie '{#' und genauso '>}' in '&}'
+    geändert werden.  Nach der Konversion können sie dann zurück
+    in '{ <' und '> }' verwandelt werden
+ Nicht alle Textbeschriftungen werden richtig konvertiert.  In der
+ alten Syntax  konnten Beschriftungsbefehle mit Klammern gruppiert
+ werden, etwa
+   -#'((bold italic) "string")
+   This will incorrectly be converted into
+   -\markup{{\bold italic} "string"}
+   instead of the correct
+   -\markup{\bold \italic "string"}
+2.0->2.2:
+ \partcombine wird nicht konvertiert
+ \addlyrics => \lyricsto wird nicht konvertiert, dadurch kompilieren
+ manche Dateien mit mehreren Strophen nicht.
+2.0->2.4:
+ \magnify wird nicht nach \fontsize konvertiert.
+    - \magnify #m => \fontsize #f, where f = 6ln(m)/ln(2)
+ remove-tag wird nicht verändert.
+    - \applyMusic #(remove-tag '. . .) => \keepWithTag #'. . .
+ first-page-number wird nicht geändert.
+    - first-page-number no => print-first-page-number = ##f
+ Zeilenumbrüche im \header-Feld werde nicht konvertiert.
+    - \\\\  als Zeilenumbruch in \header{...} => \markup \center-align <
+      "First Line" "Second Line" >
+ Crescendo- und Decrescendo-Enden werden nicht konvertiert.
+    - \rced => \!
+    - \rc => \!
+2.2->2.4:
+ \turnOff (in \set Staff.VoltaBracket = \turnOff eingesetzt) wird nicht korrekt behandelt.
+2.4.2->2.5.9
+ \markup{ \center-align <{ ... }> } sollte umgewandelt werden in:
+ \markup{ \center-align {\line { ... }} }
+ aber im Moment fehlt \line.
+2.4->2.6
+ Besondere LaTeX-Zeichen wie $~$ im Text werden nicht nach UTF(
+ konvertiert.
+2.8
+ \score{} muss jetzt mit einem musikalischen Ausdruck beginnen.
+ Alles andere (insbesondere \header{}) darf erst nach den Noten
+ kommen.
+@end verbatim
+
 
 
 @node Reporting bugs
index 77575357063e6391b37cc4b745f89e35148e805f..e556b2558b51012c6de5c8c7fada549acb37dcd8 100644 (file)
@@ -1,13 +1,13 @@
 @c -*- coding: utf-8; mode: texinfo; -*-
 @c This file is part of lilypond.tely
 @ignore
-    Translation of GIT committish: 550152ed5d5015d13abf2af83b2e040f996a66a4
+    Translation of GIT committish: 01361d46dc9d514a79683d003eeea5f4fbf2b746
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @node Scheme tutorial
 @appendix Scheme tutorial
@@ -15,9 +15,7 @@
 @funindex #
 @cindex Scheme
 @cindex GUILE
-@cindex Scheme, in-line code
-@c @cindex accessing Scheme
-@c @cindex evaluating Scheme
+@cindex Scheme, in einer LilyPond-Datei
 @cindex LISP
 
 LilyPond verwendet die Scheme-Programmiersprache sowohl als Teil 
@@ -223,7 +221,7 @@ Symbolliste und eine Liste von Listen:
 
 
 @menu
-* Tweaking with Scheme::        
+* Tweaking with Scheme::
 @end menu
 
 @node Tweaking with Scheme
index 46a6cb72b38613685603ed312e9b683d68e38cfe..b467ad2cfdb9e5844600fbe43b29f18ddc57ffb3 100644 (file)
@@ -1,13 +1,13 @@
 @c -*- coding: utf-8; mode: texinfo; -*-
 @c This file is part of lilypond-program.tely
 @ignore
-    Translation of GIT committish: cdb8fdf689c58f742333f4bf4f92cbfae2e01a5b
+    Translation of GIT committish: 499a511d4166feaada31114e097f86b5e0c56421
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @c Translators: Till Rettig, Reinhold Kainhofer
 
@@ -20,9 +20,9 @@ Kapitel kann als Referenz betrachtet werden, lesen Sie einen Abschnitt nur,
 wenn er auf Sie zutrifft.
 
 @menu
-* Setup for specific Operating Systems::  
-* Text editor support::         
-* Point and click::             
+* Setup for specific Operating Systems::
+* Text editor support::
+* Point and click::
 @end menu
 
 
@@ -32,15 +32,39 @@ wenn er auf Sie zutrifft.
 Dieser Abschnitt erklärt zusätzliche Einstellungen für bestimmte Betriebssysteme.
 
 @menu
-* MacOS X on the command-line::  
+* Setup for MacOS X::
 @end menu
 
+@node Setup for MacOS X
+@subsection Setup for MacOS X
 
-@node MacOS X on the command-line
-@subsection MacOS X on the command-line
+@subsubheading Using Python scripts on MacOS 10.3 or 10.4
 
-Die Skripte (wie lilypond-book, convert-ly, abc2ly und sogar
-lilypond selber) sind innerhalb der .app-Datei für MacOS@tie{}X enthalten. Sie können 
+Das LilyPond-Programmpaket für MacOS X stellt Python nicht zur
+Verfügung, aber Python 2.4 oder höher wird benötigt, um
+Skripte wie @command{convert-ly} zu benutzen.  Wenn Sie MaxOS
+10.3 oder 10.4 besitzen, müssen Sie eine neurere Python-Version
+von @uref{http://python.org/download/} installieren und dann
+die erste Zeile von @command{convert-ly} und @command{lilypond-book}
+auf folgende Weise ändern: Wenn sich das installierte Python-Programm
+in Ihrem @var{PFAD} befindet, muss die erste Zeile heißen:
+
+@example
+#!/usr/bin/env python
+@end example
+
+@noindent
+andernfalls muss sie heißen:
+
+@example
+#!@var{/path/to/newly_installed/python}
+@end example
+
+@subsubheading MacOS X on the command line
+
+Die Skripte (etwa @command{lilypond-book}, @command{convert-ly},
+@command{abc2ly} und sogar @command{lilypond}) befinden sich
+innerhalb der @code{.app}-Datei für MacOS@tie{}X.  Sie können 
 auf der Kommandozeile direkt aufgerufen werden, etwa
 
 @example
@@ -48,8 +72,8 @@ auf der Kommandozeile direkt aufgerufen werden, etwa
 @end example
 
 @noindent
-Entsprechend funktionieren auch die anderen Skripte wie lilypond-book, 
-convert-ly, abc2ly usw.
+Entsprechend funktionieren auch die anderen Skripte wie 
+@command{lilypond-book}, @command{convert-ly}, @command{abc2ly} usw.
 
 Sie können sich auch selber Skripte anlegen, die diesen Pfad automatisch 
 hinzufügen. Erstellen Sie ein Verzeichnis, indem die Skripte gespeichert werden:
@@ -104,12 +128,12 @@ Beachten Sie, dass @var{Pfad/zu} üblicherweise @code{/Applications/} ist.
 Verschiedene Texteditoren haben Unterstützung für LilyPond.
 
 @menu
-* Emacs mode::                  
-* Vim mode::                    
-* jEdit::                       
-* TexShop::                     
-* TextMate::                    
-* LilyKDE::                     
+* Emacs mode::
+* Vim mode::
+* jEdit::
+* TexShop::
+* TextMate::
+* LilyKDE::
 @end menu
 
 @node Emacs mode
index 54a645dfa4fd2b0f5574c2de677f034e608ab337..3474013841a38ac3e947b26637c741cfe99db914 100644 (file)
@@ -1,12 +1,12 @@
 @c -*- coding: utf-8; mode: texinfo; -*-
 @ignore
-    Translation of GIT committish: acbcbe3683d629575967b972b64ca5e1589bf330
+    Translation of GIT committish: 99b5022dc4baadd7000c94d5868cdb7cb9a8ed53
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @node Simultaneous notes
 @section Simultaneous notes
@@ -67,7 +67,6 @@ Tonhöhe des vorherigen Akkords.
 Mehr Information über Akkorden findet sich in @ref{Chord notation}.
 
 @seealso
-
 Musikglossar:
 @rglos{chord}.
 
@@ -146,7 +145,6 @@ automatisch Zusammenstöße zwischen normalen Noten und Clustern
 aufzulösen.
 
 @seealso
-
 Musikglossar:
 @rglos{cluster}.
 
@@ -343,22 +341,22 @@ Mit dieser Methode können sich seltsame Balken und Warnungen
 ergeben, wenn die Musikausdrücke nicht den gleichen Rhythmus haben.
 
 @predefined
-
 @code{\voiceOne},
 @code{\voiceTwo},
 @code{\voiceThree},
 @code{\voiceFour},
 @code{\oneVoice}.
+@endpredefined
 
 @seealso
-
 Handbuch zum Lernen:
 @rlearning{Voices contain music},
 @rlearning{Explicitly instantiating voices}.
 
 Notationsreferenz:
 @ref{Percussion staves},
-@ref{Invisible rests}.
+@ref{Invisible rests},
+@ref{Stems}.
 
 Schnipsel:
 @rlsr{Simultaneous notes}.
@@ -398,17 +396,14 @@ Der @code{\voiceNeutralstyle}-Befehl wird benutzt, um wieder
 die Standardausgabe einzuschalten.
 
 @predefined
-
-
 @code{\voiceOneStyle},
-
 @code{\voiceTwoStyle},
 @code{\voiceThreeStyle},
 @code{\voiceFourStyle},
 @code{\voiceNeutralStyle}.
+@endpredefined
 
 @seealso
-
 Handbuch zum Lernen:
 @rlearning{I'm hearing Voices},
 @rlearning{Other sources of information}.
@@ -560,16 +555,15 @@ Richtungen zeigen (also etwa wie @code{Voice} 1 und 2).
 
 
 @predefined
-
 @code{\mergeDifferentlyDottedOn},
 @code{\mergeDifferentlyDottedOff},
 @code{\mergeDifferentlyHeadedOn},
-@code{\mergeDifferentlyHeadedOff}.
-
+@code{\mergeDifferentlyHeadedOff},
 @code{\shiftOn},
 @code{\shiftOnn},
 @code{\shiftOnnn},
 @code{\shiftOff}.
+@endpredefined
 
 @snippets
 
@@ -580,7 +574,6 @@ Richtungen zeigen (also etwa wie @code{Voice} 1 und 2).
 {forcing-horizontal-shift-of-notes.ly}
 
 @seealso
-
 Musikglossar:
 @rglos{polyphony}.
 
@@ -706,7 +699,6 @@ die Tonhöhen von @var{musikAusdr1} oder @var{musikAusdr2}.
 {changing-partcombine-texts.ly}
 
 @seealso
-
 Musikglossar:
 @rglos{a due},
 @rglos{part}.
@@ -865,7 +857,6 @@ global = {
 @end lilypond
 
 @seealso
-
 Handbuch zum Lernen:
 @rlearning{Organizing pieces with variables}.
 
index 4411022f0fa27a0f260793a1639d96ffccc10758..b100de1d84d987976a3e66326ea2035410e031ae 100644 (file)
@@ -1,18 +1,43 @@
-@c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*-
+@c -*- coding: utf-8; mode: texinfo; -*-
 @c This file is part of lilypond.tely
 @ignore
-    Translation of GIT committish: 3121682025660b6c85fbf3f22bb9cd8396699ad1
+    Translation of GIT committish: 99b5022dc4baadd7000c94d5868cdb7cb9a8ed53
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
+@c \version "2.12.0"
+
 
 @node Spacing issues
 @chapter Spacing issues
 
-@untranslated
-
+Das finale Layout der Seite wird von drei Faktoren bestimmt: dem Layout
+der Seite, den Zeilenumbrüchen und der Platzverteilung.  Jeder Faktor
+beeinflusst auch die anderen mit.  Die Wahl der Platzverteilung
+entscheidet, wie eng die Notensysteme gesetzt werden.  Das wiederum
+hat Einfluss auf die gewählten Zeilenumbrüche und letztendlich also
+auch darauf, wieviele Seiten ein Stück beansprucht.
+
+Die Verteilung der Musik auf der Seite geschieht grob gesagt in
+vier Schritten.  Zuerst werden flexible Entfernungen (@qq{springs})
+gewählt, die auf den Notendauern basieren.  Alle möglichen
+Zeilenumbrüche werden getestet und ein @qq{Schlechtigkeitsscore}
+für die Umbrüche erstellt.  Danach wird die mögliche Höhe eines Systems
+ermittelt und schließlich wird eine bestimmte Kombination aus
+Seiten- und Zeilenumbruch ausgewählt, sodass weder die horizontale
+noch die vertikale Platzverteilung zu eng oder zu weit gesetzt wird.
+
+Einstellungen, die das Layout beeinflussen, können in zwei Umgebungen
+gesetzt werden: Die @code{\paper @{...@}}-Umgebung wird außerhalb einer
+@code{\score @{...@}}-Umgebung geschrieben und enthält Einstellungen,
+die für das gesamte Dokument gelten.  Die @code{\layout @{...@}}-Umgebung
+wird innerhalb von einer @code{\score @{...@}}-Umgebung notiert und
+enthält die Einstellungen für eine bestimmte Partitur.  Wenn Sie
+nur eine @code{\score @{...@}}-Umgebung in der Datei haben, haben
+beide Umgebungen den gleichen Effekt.  Die Befehle, die in diesem Abschnitt
+erklärt werden, können in beiden Umgebungen nach Bedarf gesetzt werden.
 
 @menu
 * Paper and pages::
 * Fitting music onto fewer pages::
 @end menu
 
+
 @node Paper and pages
 @section Paper and pages
 
-@untranslated
-
+Dieser Abschnitt behandelt die Grenzen, die Notationsgebiete
+definieren.
 
 @menu
 * Paper size::
 * Page formatting::
 @end menu
 
+
 @node Paper size
 @subsection Paper size
 
-@untranslated
+@cindex Papiergröße
+@cindex Größe, Papier
+@cindex Seitegröße
+@cindex Größe, Seite
+
+Zwei Funktionen ermöglichen es, die Papiergröße zu ändern:
+@code{set-default-paper-size} und @code{set-paper-size}.
+@code{set-default-paper-size} muss auf der obersten Ebene in
+der Quelldatei gesetzt werden, @code{set-paper-size} hingegegen
+muss sich in einer @code{\paper}-Umgebung befinden:
+
+@example
+#(set-default-paper-size "a4")
+@end example
+
+@example
+\paper @{
+  #(set-paper-size "a4")
+@}
+@end example
+
+@noindent
+@code{set-default-paper-size} bestimmt die Größe aller Seiten, während
+@code{set-paper-size} nur die Seitengröße für die Seiten definiert,
+auf die sich die aktuelle @code{\paper}-Umgebung bezieht.  Wenn die
+@code{\paper}-Umgebung auf der höchsten Ebene steht, bezieht sich die
+Papiergröße auf alle Seiten, wenn sie aber innerhalb einer
+@code{\book}-Umgebung definiert wird, nur auf die Seiten innerhalb
+dieses Buches.
+
+Die normalen Papierformate sind definiert, u.A. @code{a4},
+@code{letter}, @code{legal} und @code{11x17} (auch als
+Tabloit bekannt).  Sehr viel mehr Formate sind unterstützt.
+Einzelheiten finden sich in der Datei
+@file{scm/@/paper@/.scm} in der Definition von
+@code{paper-alist}.
+
+@warning{Das Standardformat ist @code{a4}.}
+
+Weitere Papierformate können hinzugefügt werden, indem die
+Definition von @code{paper-alist} in der Datei
+@file{scm/@/paper@/.scm} verändert wird.  Derartige
+Änderungen werden jedoch bei einer Aktualisierung des
+Programmes überschrieben.
+
+@cindex Ausrichtung, Papier
+@cindex Papier, Ausrichtung
+@cindex hochkant, Papier
+@cindex quer, Papier
+
+@funindex landscape
+
+Wenn das Symbol @code{'landscape} als Argument an die Funktion
+@code{set-default-paper-size}gehänt wird, werden die Seiten um
+90° gedreht und die Notensysteme entsprechend breiter gesetzt.
+
+@example
+#(set-default-paper-size "a6" 'landscape)
+@end example
+
+Wenn man die Seitengröße setzt, werden einige Variablen der
+@code{\paper}-Umgebung verändert, wie etwa Seitenränder.  Um
+eine bestimmte Papiergröße mit veränderten @code{\paper}-Variablen
+zubenuttzen, muss die Papiergröße definiert werden, bevor diese
+Variablen neu gesetzt werden.
+
+
+@seealso
+Installierte Dateien:
+@file{scm/@/paper@/.scm}.
+
+Schnipsel:
+@rlsr{Spacing}.
 
 
 @node Page formatting
 @subsection Page formatting
 
-@untranslated
+Ränder, Kopf- und Fußzeilen und andere Layoutvariablen werden
+entsprechend dem Papierformat automatisch gesetzt.
+
+Dieser Abschnitt zeigt einige der Papiervariablen, die geändert
+werden können.
+
+@menu
+* Vertical dimensions::
+* Horizontal dimensions::
+* Other layout variables::
+@end menu
+
+
+@node Vertical dimensions
+@unnumberedsubsubsec Vertical dimensions
+
+Diese Variablen werden benutzt um andere vertikale Verhältnisse
+auf einer Seite zu produzieren:
+
+@funindex \paper
+@funindex after-title-space
+@funindex before-title-space
+@funindex between-system-padding
+@funindex between-system-space
+@funindex between-title-space
+@funindex bottom-margin
+@funindex foot-separation
+@funindex head-separation
+@funindex page-top-space
+@funindex paper-height
+@funindex top-margin
+
+@table @code
+
+@item after-title-space
+
+Die Größe des Abstands zwischen der Überschrift und dem ersten
+Notensystem.  Standard: @code{5\mm}.
+
+@item before-title-space
+
+Die Größe des Abstands zwischen dem letzten Notensystem einer
+Partitur und dem Titel der nächsten Partitur. Standard: @code{10\mm}.
+
+@item between-system-padding
+
+Der Mindestabstand zwischen dem untersten Symbol in einem Notensystem
+und dem obersten Symbol im sich darunter befindlichen System.
+Standard: @code{4\mm}.
+
+Wenn dieser Wert erhöht wird, werden Systeme, deren @qq{bounding box}
+sich beinahe berühren, weiter auseinander gezogen.
+
+@item between-system-space
+
+Der Abstand zwischen Systemen.  Das ist der ideale Abstand zwischen
+der Mitte des eines Systems (bzw. des untersten Systems einer Systemgruppe)
+und der Mitte des nächsten Systems (bzw. des obersten System der
+nächsten Systemgruppe).  Standard: @code{20\mm}.
+
+Wenn dieser Wert erhöhrt wird, erscheinen die Noten auf der Seite gleichmäßiger,
+wobei sie aber auch mehr Platz einnehmen.
+
+@item between-title-space
+
+Der Abstand zwischen aufeinanderfolgenden Überschriften (etwa die
+Überschrift für ein @code{book} und die Überschrift einer Partitur.
+Standard: @code{2\mm}.
+
+@item bottom-margin
+
+Der Rand zwischen der Fußzeile und dem unteren Rand der Seite.
+Standard: @code{6\mm}.
+
+@item foot-separation
+
+Der Abstand zwischen dem untersten Notensystem und der Fußzeile.
+Standard: @code{4\mm}.
+
+@item head-separation
+
+Der Abstand zwischen dem obersten System und der Kopfzeile. Standard:
+@code{4\mm}.
+
+@item page-top-space
+
+Der Abstand von der Oberkante des druckbaren Bereichs bis zur
+Mitte des ersten Notensystems.  Das funktioniert nur für Systeme,
+die nicht vertikal ausgedehnt sind.  Hohe Systeme bzw. Systemgruppen
+werden mit ihrer @qq{bounding box} an der Oberkante des
+druckbaren Bereichs ausgerichtet.  Standard: @code{12\mm}.
+
+@item paper-height
+
+Die Höhe der Seite.  Standard:  Die Höhe des aktuellen Papierformats.
+Zu Einzelheiten siehe @ref{Paper size}.
+
+@item top-margin
+
+Der Rand zwischen der Kopfzeile und dem oberen Rand der Seite. Standard:
+@code{5\mm}.
+
+@end table
+
+
+@snippets
+
+Kopf- und Fußzeile werden von den Funktionen @code{make-footer} und
+@code{make-header} erstellt, welche in der @code{\paper}-Umgebung definiert
+werden.  Die Standardeinstellungen sind in den Dateien
+@file{ly/paper-defaults.ly} und @code{ly/titling-init.ly} dargestellt.
+
+Das Seitenlayout wird durch zwei Funktionen der @code{\paper}-Umgebung
+bestimmt: @code{page-music-height} und @code{page-make-stencil}.  Die erste
+teilt dem Zeilenumbruchsalgorithmus mit, wieviel Platz auf einer Seite
+belegt werden kann, die zweite hingegegen erstellt die konkrete Seite,
+nachdem sie die Systeme entgegengenommen hat, die auf der Seite platziert
+werden sollen.
+
+Beispiel:
+
+@example
+\paper@{
+  paper-width = 2\cm
+  top-margin = 3\cm
+  bottom-margin = 3\cm
+  ragged-last-bottom = ##t
+@}
+@end example
+
+Das nächste Beispiel zentriert Seitenzahlen unten auf jeder Seite:
+
+@example
+\paper @{
+  print-page-number = ##t
+  print-first-page-number = ##t
+  oddHeaderMarkup = \markup \fill-line @{ " " @}
+  evenHeaderMarkup = \markup \fill-line @{ " " @}
+  oddFooterMarkup = \markup @{ \fill-line @{
+     \bold \fontsize #3 \on-the-fly #print-page-number-check-first
+     \fromproperty #'page:page-number-string @} @}
+  evenFooterMarkup = \markup @{ \fill-line @{
+     \bold \fontsize #3 \on-the-fly #print-page-number-check-first
+     \fromproperty #'page:page-number-string @} @}
+@}
+@end example
+
+Werte der @code{\paper}-Umgebung können in Scheme definiert werden.  In diesem
+Fall sind @code{mm}, @code{in}, @code{pt} und @code{cm} Variablen,
+die in der Datei @file{paper-defaults.ly} mit Millimeter-Werten definiert
+sind.  Darum muss der Wert 2 cm in dem Beispiel unten multilpliziert werden
+muss:
+
+@example
+\paper @{
+ #(define bottom-margin (* 2 cm))
+@}
+@end example
+
+@seealso
+Notationsreferenz:
+@ref{Vertical spacing between systems}.
+
+Schnipsel:
+@rlsr{Spacing}.
+
+
+@node Horizontal dimensions
+@unnumberedsubsubsec Horizontal dimensions
+
+@funindex horizontal-shift
+@funindex indent
+@funindex left-margin
+@funindex line-width
+@funindex paper-width
+@funindex short-indent
+
+@warning{Wenn @code{paper-width} manuell gesetzt wird, müssen
+möglicherweise auch die Werte von @code{line-width},
+@code{left-margin}, @code{indent} und @code{short-indent} angepasst
+werden.}
+
+Es gibt einige Variablen, die die horizontalen Dimensionen der Seite
+beeinflussen:
+
+@table @code
+
+@item horizontal-shift
+
+Der Wert, um den alle Systeme (und auch Überschriften und Systemtrenner)
+nach rechts verschoben werden.  Standard: @code{0.0}.
+
+@item indent
+
+Der Einzug für das erste System einer Partitur.  Standard:
+@code{paper-width} geteilt durch @code{14}, definiert in
+@code{set-default-paper-size} bzw. @code{set-paper-size}.
+
+@item left-margin
+
+Der Rand zwischen dem linken Rand der Seite und dem Anfang der Notensysteme.
+Standard: @code{10\mm}, definiert in
+@code{set-default-paper-size} oder @code{set-paper-size}.
+
+@item line-width
+
+Die Breite der Notensystems. Standard: @code{paper-width} minus
+@code{20\mm}, dfiniert in @code{set-default-paper-size} bzw.
+@code{set-paper-size}.
+
+@item paper-width
+
+Die Breite der Seite.  Standard: Die Breite des aktuellen
+Papierformats.  Zu Einzelheiten siehe @ref{Paper size}.
+
+@item short-indent
+
+Der Einzug für alle Systeme einer Partitur ausschließlich das
+erste System.  Standard: @code{0}, dfiniert in
+@code{set-default-paper-size} bzw. @code{set-paper-size}.
+
+@end table
+
+
+@seealso
+Schnipsel:
+@rlsr{Spacing}.
+
+
+@knownissues
+
+Die Option @code{right-margin} ist definiert, bestimmt aber nicht den
+rechten Rand der Seite.  Der Wert für den rechten Rand ergibt sich
+aus den Werten des linken Randes (@code{left-margin}) und der Zeilenbreite
+(@code{line-width}).
+
+
+@node Other layout variables
+@unnumberedsubsubsec Other layout variables
+
+Diese Variablen können verwendet werden, um das allgemeine Layout der Seite
+anzupassen.
+
+@funindex auto-first-page-number
+@funindex blank-last-page-force
+@funindex blank-page-force
+@funindex first-page-number
+@funindex page-breaking-between-system-padding
+@funindex page-count
+@funindex page-limit-inter-system-space
+@funindex page-limit-inter-system-space-factor
+@funindex page-spacing-weight
+@funindex print-all-headers
+@funindex print-first-page-number
+@funindex print-page-number
+@funindex ragged-bottom
+@funindex ragged-last
+@funindex ragged-last-bottom
+@funindex ragged-right
+@funindex system-separator-markup
+@funindex system-count
+
+@table @code
+
+@item auto-first-page-number
+
+Der Seitenumbruchsalgorithmus wird davon beeinflusst, ob die erste
+Seitenzahl gerade oder ungerade ist.  Wenn die Variable auf wahr
+gesetzt wird, entscheidet der Seitenumbruchsalgorithmus selber,
+ob die Noten auf einer geraden oder ungeraden Seite beginnen sollen.
+Das hat dann zur Folge, dass die erste Seite entweder bleibt wie
+sie ist oder um eins erhöht wird.  Standard: @code{##f}.
+
+@ignore
+
+FIXME: this variable is used, but I don't know what it does. -pm
+@item blank-after-score-page-force
+@funindex blank-after-score-page-force
+
+Default: @code{2}.
+
+@end ignore
+
+@item blank-last-page-force
+
+Die Strafpunkte, wenn eine Partitur auf einer ungeraden Seite
+beendet wird. Stadnard: @code{0}.
+
+@item blank-page-force
+
+Die Strafpunkte, wenn eine leere Seite mitten in einer Partitur
+auftritt.  Das wird nicht benutzt von @code{ly:optimal-breaking},
+weil hiermit niemals leere Seiten mitten in einer Partitur zugelassen
+werden.  Standard: @code{5}.
+
+@item first-page-number
+
+Der Wert der Seitenzahl auf der ersten Seite.  Standard: @code{#1}.
+
+@item page-breaking-between-system-padding
+
+Überlistet die Seitenumbruchfunktion, indem ihr ein anderer Wert
+für @code{between-system-padding} mitgeteilt wird, als in Wirklichkeit
+eingestellt ist.  Wenn diese Variable beispielsweise auf einen
+deutlich größeren Wert als @code{between-system-padding} gesetzt
+wird, setzt die Seitenumbruchsfunktion weniger Systeme auf eine
+Seite.  Standard: nicht gesetzt.
+
+@item page-count
+
+Die Zahl der Seiten, die für eine Partitur benutzt werden sollen.
+Standard: nicht gesetzt.
+
+@item page-limit-inter-system-space
+
+Wenn wahr, wird Platz zwischen Systemen eingeschränkt, wenn viel
+Platz auf der Seite ist.  Standard: @code{##f}.  Einzelheiten siehe
+@ref{Vertical spacing between systems}.
+
+@item page-limit-inter-system-space-factor
+
+Der Faktor, der von @code{page-limit-inter-system-space} verwendet
+wird.  Standard: @code{1.4}.  Einzelheiten siehe
+@ref{Vertical spacing between systems}.
+
+@item page-spacing-weight
+
+Die relative Gewichtung von (vertikalem) Abstand auf der Seite und
+(horizontalem) Abstand innerhalb der Zeilen.  Hohe Werte gewichten
+die vertikalen Abstände mehr.  Standard: @code{#10}.
+
+@item print-all-headers
+
+Wenn wahr, werden alle Einträge des Titelfeldes (@code{\header}-Umgebung)
+für jede Partitur ausgegeben.  Normalerweise wird nur die
+Satzbezeichnung und die Opuszahl (@code{piece} und @code{opus})
+ausgegeben.  Standard: @code{##f}.
+
+@item print-first-page-number
+
+Wenn wahr, wird auch auf der ersten Seite die Seitenzahl ausgegeben.
+Standard: @code{##f}.
+
+@item print-page-number
+
+Wenn falsch, werden Seitenzahl nicht ausgegeben.  Standard:
+@code{##t}.
+
+@item ragged-bottom
+
+Wenn wahr, werden die Systeme nicht gleichmäßig über die Seite
+verteilt sondern am oberen Seitenrand beginnend eng angeordnet.
+Das wirkt sich nicht auf die letzte Seite aus.  Standard: @code{##f}.
+
+Die Variable sollte auf wahr gesetzt werden für Stücke, die nur
+zwei oder drei Systeme pro Seite haben, wie etwa Orchesterpartituren.
+
+@item ragged-last
+
+Wenn wahr, wird die letzte Notenzeile einer Partitur nicht bis
+zum Zeilenende durchgezogen, sondern entsprechend mit Noten
+gefüllt und dann abgebrochen.  Standard: @code{##f}.
+
+@item ragged-last-bottom
+
+Wenn falsch, werden Systeme gleichmäßig über die letzte Seite
+verteilt.  Standard: @code{##t}.
+
+Stücke, die zwei oder mehr Seiten gut füllen, sollten die Option auf wahr
+gesetzt haben.
+
+Sie wirkt sich auch auf die letzte Seite von Buchteilen aus, d.h.
+Teilen eines Buches, die mit der @code{\bookpart}-Umgebung erstellt werden.
+
+@item ragged-right
+
+Wenn wahr, werden Systeme nicht im Blocksatz gesetzt, sondern erhalten
+nur ihre normale Breite.  Standard: @code{##f}.
+
+Wenn eine Partitur nur ein System hat, ist der Standardwert @code{##t}.
+
+@item system-separator-markup
+
+Ein Beschriftungsobjekt, das zwischen zwei Systeme gesetzt wird.  Das
+wird oft in Orchesterpartituren eingesetzt.  Standard: nicht gesetzt.
+
+Der Beschriftungsbefehl @code{\slashSeparator} kann für einen Trenner
+benutzt werden, etwa so:
+
+@lilypond[quote,ragged-right]
+#(set-default-paper-size "a6" 'landscape)
+\book {
+  \score {
+    \relative { c1 \break c1 }
+  }
+  \paper {
+    system-separator-markup = \slashSeparator
+  }
+}
+@end lilypond
+
+@item system-count
+
+Die Anzahl der Systeme, auf denen eine Partitur gesetzt werden soll.
+Standard: nicht gesetzt.
+
+@end table
+
+
+@seealso
+Schnipsel:
+@rlsr{Spacing}.
+
+
+@knownissues
+
+Die Standard-Kopfzeilendefinition setzt die Seitenzahl und das
+@code{instrument}-Feld aus der @code{\header}-Umgebung in eine
+Zeile.
+
+Die Überschriften (aus der @code{\header}-Umgebung) werden als
+ein System interpretiert, sodass @code{ragged-bottom} und
+@code{ragged-last-bottom} Platz zwischen die Überschrift und
+das erste System der Partitur setzen.
 
 
 @node Music layout
 @section Music layout
 
-@untranslated
+@menu
+* Setting the staff size::
+* Score layout::
+@end menu
+
+
+@node Setting the staff size
+@subsection Setting the staff size
+
+@cindex Schriftgröße, Einstellung
+@cindex Systemgröße, Einstellung
+@cindex Verändern der Schriftgröße
+@cindex Verändern der Systemgröße
+@funindex layout file
+
+Die Standardgröße der Notensysteme beträgt 20 Punkte (pt).
+Das kann auf zwei Arten geändert werden:
+
+Um die Systemgröße global für alle Partituren einer
+Datei (bzw. einer @code{\book}-Umgebung) zu verändern,
+geht man wie folgt vor:
+
+@example
+#(set-global-staff-size 14)
+@end example
+
+@noindent
+Hiermit wird die Standardhöhe der Notensysteme auf 14 pt
+gesetzt.  Die Schriftarten werden entsprechend verkleinert.
+
+Um die Systemhöhe für jede Partitur einzeln zu verändern,
+muss
+
+@example
+\score@{
+  ...
+  \layout@{
+  #(layout-set-staff-size 15)
+  @}
+@}
+@end example
+
+@noindent
+eingesetzt werden.
+
+Die Feta-Schriftart stellt die Noten- und Musiksymbole
+für acht verschiedene Größen zur Verfügung.  Jede
+Schriftgröße ist einer bestimmten Systemgröße angepasst:
+für kleinere Schriftgrößen werden die Zeichen etwas
+schwerer, um mit den ebenfalls dickeren Notenlinien
+zu harmonieren.  Die empfohlenen Notensystemgrößen
+sind in der Tabelle aufgeführt:
+
+@quotation
+@multitable @columnfractions .15 .2 .22 .2
+
+@item @b{Schriftbezeichnung}
+@tab @b{Höhe des Systems (pt)}
+@tab @b{Höhe des Systems (mm)}
+@tab @b{Benutzung}
+
+@item feta11
+@tab 11.22
+@tab 3.9
+@tab Taschenparituren
+
+@item feta13
+@tab 12.60
+@tab 4.4
+@tab
+
+@item feta14
+@tab 14.14
+@tab 5.0
+@tab
+
+@item feta16
+@tab 15.87
+@tab 5.6
+@tab
+
+@item feta18
+@tab 17.82
+@tab 6.3
+@tab Liederbücher
+
+@item feta20
+@tab 20
+@tab 7.0
+@tab Orchesterstimmen
+
+@item feta23
+@tab 22.45
+@tab 7.9
+@tab
+
+@item feta26
+@tab 25.2
+@tab 8.9
+@tab
+@c modern rental material?
+
+@end multitable
+@end quotation
+
+Diese Schriftarten sind in allen Größen erhältlich.  Die Kontext-Eigenschaft
+@code{fontSize} und die Layout-Eigenschaft @code{staff-space} (in
+@code{StaffSymbol}) können benutzt werden, um die Schriftgröße für
+einzelne Systeme zu verändern.  Die Größe von einzelnen Systemen
+ist relativ zur globalen Systemgröße.
+
+
+@seealso
+Notationsreferenz:
+@ref{Selecting notation font size}.
+
+Schnipsel:
+@rlsr{Spacing}.
+
+
+@knownissues
+
+@code{layout-set-staff-size} verändert nicht den Abstand zwischen den
+Notenlinien.
+
+
+@node Score layout
+@subsection Score layout
+
+@cindex Partitur, Layout
+@cindex Layout, Partitur
+
+@funindex \layout
+
+Während die @code{\paper}-Umgebung Einstellungen für die Formatierung
+der Seiten eines gesamten Dokuments enthalten, enthält die
+@code{\layout}-Umgebung Einstellungen für einzelne Parituren.
+
+@example
+\layout @{
+  indent = 2.0\cm
+  \context @{ \Staff
+    \override VerticalAxisGroup #'minimum-Y-extent = #'(-6 . 6)
+  @}
+  \context @{ \Voice
+    \override TextScript #'padding = #1.0
+    \override Glissando #'thickness = #3
+  @}
+@}
+@end example
+
+@seealso
+Notationsreferenz:
+@ref{Changing context default settings}.
+
+Schnipsel:
+@rlsr{Spacing}.
+
+
+@node Breaks
+@section Breaks
+
+@menu
+* Line breaking::
+* Page breaking::
+* Optimal page breaking::
+* Optimal page turning::
+* Minimal page breaking::
+* Explicit breaks::
+* Using an extra voice for breaks::
+@end menu
+
+
+@node Line breaking
+@subsection Line breaking
+
+@cindex Zeilenumbrüche
+@cindex Umbrüche von Zeilen
+
+Zeilenumbrüche werden normalerweise automatisch erstellt.  Sie
+werden so ausgewählt, dass die Zeilen weder gedrängt nocht zu
+weit gespreizt wirken und aufeinander folgende Seiten einen
+ähnlichen Grauwert haben.  In seltenen Fällen kann es jedoch
+nötig sein, manuell Zeilenumbrüche einzufügen.  Das geschieht
+mit dem Befehl @code{\break}.  Hiermit wird direkt nach dem Befehl
+ein Zeilenumbruch erzwungen.  Zeilenumbrüche können jedoch nur
+am Ende von @qq{vollständigen} Takten stattfinden.  Damit sind
+Takte gemeint, in welchen alle Noten mit der letzten Taktzeit
+komplett abgeschlossen sind und nicht über das Taktende hinausragen.
+Wenn Sie einen Zeilenumbruch an einer Stelle benötigen, an der
+keine Taktlinie vorliegt, können Sie mit @code{\bar ""} eine
+unsichtbare Taktlinie hinzufügen, die dann den Zeilenumbruch
+erlaubt.  Wiederum gilt, dass keine Noten überstehen dürfen,
+sonst wird diese unsichtbare Taktlinie ignoriert.
+
+Mit dem Befehl @code{\noBreak} wird ein Zeilenumbruch an dem
+entsprechenden Taktstrich verboten.
+
+Die grundlegenden Einstellungen, die Einfluss auf die Zeilenlänge
+haben, sind @code{indent} (Einzug) und @code{line-width}
+(Zeilenbreite).  Sie werden in der @code{\layout}-Umgebung
+einestellt.  Der erste Befehl bestimmt den Einzug der ersten
+Zeile, der zweite die Zeilenlänge der weiteren Notenzeilen.
+
+Wenn @code{ragged-right} eingestellt ist (als in der
+@code{\layout}-Umgebung auf den Wert @code{#t} gesetzt wurde),
+werden die Systeme linksbündig gesetzt und nicht bis zum
+rechten Rand hin durchgezogen, sondern den Noten entsprechend
+gesetzt.  Das ist oftmals nützlich für kleine Notenfragmente
+und um zu überprüfen, wie eng die Noten natürlicherweise
+gesetzt werden würden.
+
+Die Option @code{ragged-last} verhält sich ähnlich zu @code{ragged-right},
+aber wirkt sich nur auf die letzte Zeile eines Stückes aus.
+
+@example
+\layout @{
+indent = #0
+line-width = #150
+ragged-last = ##t
+@}
+@end example
+
+@cindex regelmäßige Zeilenumbrüche
+@cindex Zeilenumbrüche in Intervallen
+
+Um Zeilenumbrüche zu erzwingen, die in festgelegten Intervallen
+stattfinden, kann der Befehl @code{\break} in Kombination
+mit unsichtbaren Noten und einer Wiederholung eingesetzt
+werden.  Das folgende Beispiel etwa setzt die nächsten
+28 Takte (im 4/4-Takt) in Zeilen zu jeweils 4 Takten:
+
+@example
+<< \repeat unfold 7 @{
+         s1 \noBreak s1 \noBreak
+         s1 \noBreak s1 \break @}
+   @notation{Hier die Noten}
+>>
+@end example
+
+Eine Zeilenumbruchkonfiguration kann auch als eine @code{.ly}-Datei
+automatisch gespeichert werden.  Damit kann die vertikale Ausrichtung
+während eines zweiten Programmdurchlaufs angepasst werden um die
+Seiten besser zu füllen.  Diese Eigenschaft ist recht neu und
+kompliziert.  Mehr Einzelheiten finden sich in
+@rlsr{Spacing}.
+
+@funindex \break
+@funindex \noBreak
+
+@predefined
+@code{\break},
+@code{\noBreak}.
+@endpredefined
+
+@seealso
+Referenz der Interna:
+@rinternals{LineBreakEvent}.
+
+Schnipsel:
+@rlsr{Spacing}.
+
+@knownissues
+
+Zeilenumbrüche können nur gesetzt werden, wenn eine
+@qq{richtige} Taktlinie vorliegt.  Wenn eine Note
+über die Taktlinie übersteht, wie etwa in folgendem
+Beispiel:
+
+@lilypond[quote,ragged-right,relative=2,fragment,verbatim]
+c4 c2 << c2 {s4 \break } >>  % this does nothing
+c2 c4 |           % a break here would work
+c4 c2 c4 ~ \break % as does this break
+c4 c2 c4
+@end lilypond
+
+@noindent
+kann ein Umbruchbefehl nicht ausgeführt werden.  Dieses
+Verhalten kann jedoch vermieden werden, indem der
+@code{Forbid_line_break_engraver} aus dem Stimmen-Kontext
+entfernt wird.
+
+@lilypond[quote,ragged-right,verbatim]
+\new Voice \with {
+  \remove Forbid_line_break_engraver
+} {
+  c4 c2 << c2 {s4 \break } >>  % now the break is allowed
+  c2 c4
+}
+@end lilypond
+
+@noindent
+Entsprechend werden Umbrüche auch verhindert, wenn Balken über
+Taktlinien reichen.  Das kann mit folgendem Befehl verhindert
+werden: @code{\override Beam #'breakable = ##t}.
+
+
+@node Page breaking
+@subsection Page breaking
+
+@cindex Seiteumbrüche
+@cindex Umbrüche, Seite
+
+Die Standardseitenumbrüche können verändert werden, indem
+man die Befehle @code{\pageBreak} bzw. @code{\noPageBreak}
+benutzt.  Sie verhalten sich analog zu den Befehlen
+@code{\break} und @code{\noBreak}.  Sie sollten an einem
+Taktstrich notiert werden.  Diese Befehle erzwingen bzw.
+verbieten einen Seitenumbruch.  Mit dem @code{\pageBreak}-Befehl
+wird natürlich gleichzeitig auch ein Zeilenumbruch erzwungen.
+
+Die @code{\pageBreak} und @code{\noPageBreak}-Befehle können
+auch auf der höchsten Ebene einer Datei benutzt werden, etwa
+zwischen Partituren und Textbeschriftungen.
+
+Es gibt auch vertikale Gegenstücke zu den Variablen
+@code{ragged-right} und @code{ragged-last}:
+@code{ragged-bottom} und @code{ragged-last-bottom}.  Wenn diese
+Variablen auf @code{##t} gesetzt werden, werden im ersten
+Fall die Notensysteme auf allen Seiten eng nach oben orientiert
+gesetzt werden.  Im zweiten Fall bezieht sich dies nur auf die
+letzte Seite.
+
+Zu Einzelheiten siehe @ref{Vertical spacing}.
+
+Seitenumbrüche werden von der @code{page-breaking}-Funktion errechnet.
+LilyPond kennt drei Algorithmen um Seitenumbrüche zu errechnen:
+@code{ly:optimal-breaking}, @code{ly:page-turn-breaking} und
+@code{ly:minimal-breaking}.  Der Standard ist @code{ly:optimal-breaking},
+aber der Wert kann in der @code{\paper}-Umgebung geändert werden:
+
+@example
+\paper@{
+  #(define page-breaking ly:page-turn-breaking)
+@}
+@end example
+
+Der alte Algorithmus für Umbruch hat die Bezeichnung
+@code{optimal-page-breaks}.  Wenn Sie Problememit der neuen
+Umbruchsfunktion haben, können sie die alte vorläufig wieder
+aktivieren.
+
+@funindex \bookpart
+
+When a book has many scores and pages, the page breaking problem may be
+difficult to solve, requiring large processing time and memory.  To ease
+the page breaking process, @code{\bookpart} blocks are used to divide
+the book into several parts: the page breaking occurs separately on each
+part.  Different page breaking functions may also be used in different
+book parts.
+
+@example
+\bookpart @{
+  \header @{
+    subtitle = "Vorwort"
+  @}
+  \paper @{
+     %% In einem Abschnitt, der vor allem Text hat,
+     %% funktioniert womöglich ly:minimal-breaking besser
+     #(define page-breaking ly:minimal-breaking)
+  @}
+  \markup @{ @dots{} @}
+  @dots{}
+@}
+\bookpart @{
+  %% In diesem Abschnitt mit Noten wird
+  %% die Standard-Seitenumbruchsfunktion benutzt.
+  \header @{
+    subtitle = "Erster Satz"
+  @}
+  \score @{ @dots{} @}
+  @dots{}
+@}
+@end example
+
+@funindex \pageBreak
+@funindex \noPageBreak
+
+@predefined
+@code{\pageBreak},
+@code{\noPageBreak}.
+@endpredefined
+
+@seealso
+Schnipsel:
+@rlsr{Spacing}.
+
+
+@node Optimal page breaking
+@subsection Optimal page breaking
+
+@funindex ly:optimal-breaking
+
+Die @code{ly:optimal-breaking}-Funktion ist die Standardmethode für
+LilyPond, um Seitenumbrüche zu errechnen.  Hiermit wird versucht,
+Seitenumbrüche zu finden, die das Stauchen oder Strecken von Zeilen
+minimieren, sowohl horizontal als auch vertikal.  Anders als die
+@code{ly:page-turn-breaking}-Funktion hat diese Methode keine
+Möglichkeit, Überlegungen zum Umblättern mit einzubeziehen.
+
+@seealso
+Schnipsel:
+@rlsr{Spacing}.
+
+
+@node Optimal page turning
+@subsection Optimal page turning
+
+@funindex ly:page-turn-breaking
+
+Es ist oft nötig, die Seiten so umzubrechen, dass sich eine Pause am
+Ende jeder zweiten Seite befindet, damit der Musiker es leichter hat,
+die Seite umzublättern ohne das Spielen zu Unterbrechen.  Die
+@code{ly:page-turn-breaking}-Funktion versucht, Seitenumbrüche zu
+finden, died das Stauchen oder Strecken von Zeilen minimieren und
+gleichzeitig auch noch Seitenumbrüchen an angegebenen Stellen 
+den Vorrang zu geben.
+
+Die Funktion wird in zwei Schritten eingesetzt.  Zunächst muss sie
+in der @code{\paper}-Umgebung aktiviert werden, wie gezeigt in
+@ref{Page breaking}.  Dann muss noch angegeben werden, welche Stellen
+bevorzugt für Seitenumbrüche benutzt werden sollen.
+
+Für diesen zweiten Schritt gibt es zwei Methoden.  Am Einfachsten ist
+es, die möglichen Seitenumbrüche mit dem Befehl @code{\allowPageTurn}
+an jeder Stelle manuell anzugeben.
+
+Wenn Ihnen das zu aufwändig ist, können Sie den @code{Page_turn_engraver}
+zu einem @code{Staff}- oder @code{Voice}-Kontext hinzufügen.  Dieser
+Engraver durchsucht den entsprechenden Kontext nach Stellen ohne Noten.
+(Es wird also nicht nach Pausen gesucht, sondern nach Stellen ohne
+Noten.  Dieses Verhalten verhindert, dass an polyphonen Stellen umgebrochen
+wird, wo nur in einer Stimme Pausen vorhanden sind.)  Wenn eine
+derartige Stelle ohne Noten gefunden wird, fügt der Engraver den
+Befehl @code{\allowPageTurn} am letzten Taktstrich des Abschnitts ein.  Wenn
+in dem Abschnitt ein besonderer Taktstrich vorkommt (wie etwa ein
+Doppelstrich), wird der Befehl nach diesem Taktstrich gesetzt.
+
+@funindex minimumPageTurnLength
+
+Der @code{Page_turn_engraver} list die Kontexteigenschaft
+@code{minimumPageTurnLength} um zu erkennen, wie lang eine Stelle
+frei von Noten sein muss, damit ein Seitenumbruch in Frage kommt.  Der
+Standardwert hierfür ist @code{#(ly:make-moment 1 1)}.  Wenn Sie
+Seitenumbrüche zum Umblättern ausschalten wollen, können Sie
+einen sehr großen Wert angeben.
+
+@example
+\new Staff \with @{ \consists "Page_turn_engraver" @}
+@{
+  a4 b c d |
+  R1 | % Ein Seitenumbruch zum Umblättern erlaubt
+  a4 b c d |
+  \set Staff.minimumPageTurnLength = #(ly:make-moment 5 2)
+  R1 | % Seitenumbruch nicht erlaubt
+  a4 b r2 |
+  R1*2 | % Seitenumbruch erlaubt
+  a1
+@}
+@end example
+
+@funindex minimumRepeatLengthForPageTurn
+
+Der @code{Page_turn_engraver} erkennt Wiederholungen vom Typ @code{volta}.
+Ein Seitenumbruch zum Umblättern wird nur zugelassen, wenn vor und nach
+der Wiederholung genug Zeit ist, um die Seite wieder zurückzublättern.
+Wenn die Wiederholung sehr kurz ist, kann auch Umblättern verboten
+werden.  Wenn Sie die Kontexteigenschaft
+@code{minimumRepeatLengthForPageTurn} definieren, erlaubt der
+@code{Page_turn_engraver} nur Umblättern in Wiederholungen, deren
+Dauer länger als dieser Wert ist.
+
+Die Seitenumblätter-Befehle @code{\pageTurn}, @code{\noPageTurn} und
+@code{\allowPageTurn} können auch auf oberster Dateiebene benutzt
+werden, etwa zwischen Parituren und Textabschnitten.
+
+@funindex \pageTurn
+@funindex \noPageTurn
+@funindex \allowPageTurn
+
+@predefined
+@code{\pageTurn},
+@code{\noPageTurn},
+@code{\allowPageTurn}.
+@endpredefined
+
+@seealso
+Schnipsel:
+@rlsr{Spacing}.
+
+@knownissues
+
+In einer Partitur sollte nur ein @code{Page_turn_engraver} vorkommen.  Wenn
+mehr als einer definiert werden, stören sie sich gegenseitig.
+
+
+@node Minimal page breaking
+@subsection Minimal page breaking
+
+@funindex ly:minimal-breaking
+
+Die @code{ly:minimal-breaking}-Funktion benötigt nur minimale Berechnungen,
+um die Seitenumbrüche zu bestimmen.  Die Seite wird mit möglichst
+vielen Systemen gefüllt und dann zur nächsten Seite gewechselt.  Die
+Funktion kann benutzt werden um Partituren mit vielen Seiten zu
+setzen, wenn die anderen Seitenumbruchsfunktionen zu langsam wären
+oder zu viel Speicher beanspruchen.  Auch für Seiten mit viel Text
+ist die Funktion geeignet.  Sie wird folgendermaßen aktiviert:
+
+@example
+\paper @{
+  #(define page-breaking ly:minimal-breaking)
+@}
+@end example
+
+
+@seealso
+Schnipsel:
+@rlsr{Spacing}.
+
+
+@node Explicit breaks
+@subsection Explicit breaks
+
+Es kann vorkommen, dass LilyPond direkte @code{\break} oder
+@code{\pageBreak}-Befehl nicht beachtet.  Mit folgenden
+Einstellungen kann dieses Verhalten ausgeschaltet werden:
+
+@example
+\override NonMusicalPaperColumn #'line-break-permission = ##f
+\override NonMusicalPaperColumn #'page-break-permission = ##f
+@end example
+
+Wenn @code{line-break-permission} die Einstellung falsch
+(@code{##f}) hat, werden Zeilenumbrüche nur an den Befehlen
+@code{\break} eingefügt und nirgendwo anders.  Wenn
+@code{page-break-permission} die Einstellung falsch
+(@code{##f}) hat, werden Seitenumbrüche nur an den Befehlen
+@code{\pageBreak} eingefügt und nirgendwo anders.
+
+@lilypond[quote,verbatim]
+\paper {
+  indent = #0
+  ragged-right = ##t
+  ragged-bottom = ##t
+}
+
+\score {
+  \new Score \with {
+    \override NonMusicalPaperColumn #'line-break-permission = ##f
+    \override NonMusicalPaperColumn #'page-break-permission = ##f
+  } {
+    \new Staff {
+      \repeat unfold 2 { c'8 c'8 c'8 c'8 } \break
+      \repeat unfold 4 { c'8 c'8 c'8 c'8 } \break
+      \repeat unfold 6 { c'8 c'8 c'8 c'8 } \break
+      \repeat unfold 8 { c'8 c'8 c'8 c'8 } \pageBreak
+      \repeat unfold 8 { c'8 c'8 c'8 c'8 } \break
+      \repeat unfold 6 { c'8 c'8 c'8 c'8 } \break
+      \repeat unfold 4 { c'8 c'8 c'8 c'8 } \break
+      \repeat unfold 2 { c'8 c'8 c'8 c'8 }
+    }
+  }
+}
+@end lilypond
+
+@seealso
+Schnipsel:
+@rlsr{Spacing}.
+
+
+@node Using an extra voice for breaks
+@subsection Using an extra voice for breaks
+
+Zeilen- und Seitenumbruchbefehle werden normalerweise direkt
+zusammen mit den Noten eingegeben.
+
+@example
+\new Score @{
+  \new Staff @{
+    \repeat unfold 2 @{ c'4 c'4 c'4 c'4 @}
+    \break
+    \repeat unfold 3 @{ c'4 c'4 c'4 c'4 @}
+  @}
+@}
+@end example
+
+Hierdurch sind zwar die Befehle @code{\break} und @code{\pageBreak}
+einfach zu notieren, es werden aber Informationen zur Notation
+mit Informationen zur Anordnung auf der Seite vermischt.  Man kann
+diese Informationen auch voneinander trennen, indem man eine zusätzliche
+Stimme einfügt, in der Zeilen- und Seitenumbrüche vorgenommen werden.
+Diese zusätzliche Stimme enthält nur unsichtbare Noten und die
+Umbruchbefehle:
+
+@lilypond[quote,verbatim]
+\new Score {
+  \new Staff <<
+     \new Voice {
+        s1 * 2 \break
+        s1 * 3 \break
+        s1 * 6 \break
+        s1 * 5 \break
+     }
+     \new Voice {
+        \repeat unfold 2 { c'4 c'4 c'4 c'4 }
+        \repeat unfold 3 { c'4 c'4 c'4 c'4 }
+        \repeat unfold 6 { c'4 c'4 c'4 c'4 }
+        \repeat unfold 5 { c'4 c'4 c'4 c'4 }
+     }
+  >>
+}
+@end lilypond
+
+Mit dieser Herangehensweise kann der Code insbesondere
+dann klarer notiert werden, wenn man Einstellungen der
+@code{line-break-system-details}-Eigenschaft oder
+anderer Eigenschaften von
+@code{NonMusicalPaperColumnGrob} vornimmt (hierzu auch 
+@ref{Vertical spacing}).
+
+@lilypond[quote,verbatim]
+\new Score {
+  \new Staff <<
+     \new Voice {
+
+        \overrideProperty "Score.NonMusicalPaperColumn"
+        #'line-break-system-details #'((Y-offset . 0))
+        s1 * 2 \break
+
+        \overrideProperty "Score.NonMusicalPaperColumn"
+        #'line-break-system-details #'((Y-offset . 35))
+        s1 * 3 \break
+
+        \overrideProperty "Score.NonMusicalPaperColumn"
+        #'line-break-system-details #'((Y-offset . 70))
+        s1 * 6 \break
+
+        \overrideProperty "Score.NonMusicalPaperColumn"
+        #'line-break-system-details #'((Y-offset . 105))
+        s1 * 5 \break
+     }
+     \new Voice {
+        \repeat unfold 2 { c'4 c'4 c'4 c'4 }
+        \repeat unfold 3 { c'4 c'4 c'4 c'4 }
+        \repeat unfold 6 { c'4 c'4 c'4 c'4 }
+        \repeat unfold 5 { c'4 c'4 c'4 c'4 }
+     }
+  >>
+}
+@end lilypond
+
+
+@seealso
+Notationsreferenz:
+@ref{Vertical spacing}.
+
+Schnipsel:
+@rlsr{Spacing}.
+
+
+@node Vertical spacing
+@section Vertical spacing
+
+@cindex vertikale Positionierung
+@cindex Positionierung, vertikal
+@cindex Abstände, vertikal
+
+Vertikale Abstände werden durch drei Eigenschaften
+bestimmt:  wieviel Platz frei ist (etwa Papiergröße
+und Ränder), wieviel Platz zwischen Systemgruppen
+(engl. system) gesetzt werden soll und wieviel 
+Platz zwischen Notensystemen (engl. staff, Pl. staves)
+innerhalb von Gruppen gesetzt wird.
+
+@menu
+* Vertical spacing inside a system::
+* Vertical spacing between systems::
+* Explicit staff and system positioning::
+* Two-pass vertical spacing::
+* Vertical collision avoidance::
+@end menu
+
+
+@node Vertical spacing inside a system
+@subsection Vertical spacing inside a system
+
+@cindex Abstand zwischen Notensystemen
+@cindex Notensystemabstand
+@cindex Platz zwischen Notensystemen
+@cindex Platz innerhalb von Systemgruppen
+@cindex Systemgruppen, Abstände innerhalb
+
+Die Höhe jeder Notensystemgruppe (engl. system) wird automatisch errechnet.
+Um einzelne Notensysteme daran zu hindern, sich zu überschneiden,
+werden Minimalabstände festgelegt.  Indem man diese ändert,
+können die Systeme enger zusammen gerückt werden.  Dadurch
+brauchen die Gruppen weniger Platz und es passen mehr Gruppen
+auf eine Seite.
+
+Normalerweise werden die Notensysteme vertikal gestapelt.  Damit
+die Systeme einen bestimten Abstand einhalten, haben sie
+Füllabstände, die in der Eigenschaft @code{minimum-Y-extent}
+definiert sind.  Wenn diese Eigenschaft für ein
+@code{VerticalAxisGroup}-Objekt gesetzt wird, kann eingestellt
+werden, wieviel Platz nach unten oder oben die vertikale Linie
+(also das Notensystem oder eine Textzeile) einnimmt.  Die
+Eigenschaft braucht ein Zahlenpaar; der Standardwert ist
+@code{#'(-4 . 4)}.  Um also ein Notensystem schmaler zu machen,
+kann man schreiben:
+
+@example
+\override Staff.VerticalAxisGroup #'minimum-Y-extent = #'(-3 . 3)
+@end example
+
+@noindent
+Damit wird die vertikale Größe des Systems auf jeweils drei
+Notenlinienzwischenräume nach oben und unten von der Systemmitte
+aus eingestellt.  Der Wert @code{(-3 . 3)} wird als ein
+Intervall ausgewertet, dessen Zentrum bei 0 liegt; deshalb
+ist die erste Zahl immer negativ.  Die Zahlen müssen nicht
+gleich sein: man kann etwa die Ausdehnung nach unten vergrößern,
+indem man @code{(-6 . 4)} setzt.
+
+Nachdem die Seitenumbrüche bestimmt wurden, wird die vertikale
+Platzverteilung innerhalb jeder Systemgruppe neu ausgewertet
+um die Seite so gleichmäßig wie möglich zu füllen.  Wenn auf
+einer Seite viel Platz übrigbleibt, werden die Gruppen etwas
+gedehnt um die Seite besser auszufüllen.  Die Größe dieser
+Dehnung kann mit der @code{max-stretch}-Eigenschaft
+des @code{VerticalAlignment}-Grobs eingestellt werden.
+Standardmäßig hat @code{max-stretch} den Wert 0, sodass
+die Dehnung ausgeschaltet ist.  Um sie einzuschalten, kann
+als guter Wert für @code{max-stretch} der Wert von
+@code{ly:align-interface::calc-max-stretch} eingesetzt werden.
+
+In manchen Situationen sollen zwar die meisten Systeme gedehnt
+werden, einige Gruppen sollen aber einen festen Abstand einhalten.
+Das kann etwa der Fall sein, wenn ein Klaviersystem in der
+Mitte einer Orchesterpartitur vorkommt.  Mit der
+@code{keep-fixed-while-stretching}-Eigenschaft des
+@code{VerticalAxisGroup}-Objektes kann das erreicht werden.
+Wenn sie auf @code{##t} gesetzt wird, wird das entsprechende
+System (oder die Textzeile) nicht von der Zeile entfernt, die
+sich direkt darüber befindet.  Man müsste diese Einstellung
+als beispielsweise für das zweite Notensystem eines Klaviersystems
+vornehmen:
+
+@lilypond[verbatim]
+#(set-default-paper-size "a6")
+#(set-global-staff-size 14.0)
+
+\book {
+\paper {
+  ragged-last-bottom = ##f
+}
+
+\new Score \with
+{
+  \override VerticalAlignment #'max-stretch = #ly:align-interface::calc-max-stretch
+}
+{
+\new GrandStaff
+<<
+  \new StaffGroup
+  <<
+    \new Staff {c' d' e' f'}
+    \new Staff {c' d' e' f'}
+    \new Staff {c' d' e' f'}
+  >>
+
+  \new PianoStaff
+  <<
+    \new Staff {c' d' e' f'}
+    \new Staff \with {
+      \override VerticalAxisGroup #'keep-fixed-while-stretching = ##t
+    }
+    {c' d' e' f'}
+  >>
+
+  \new StaffGroup
+  <<
+    \new Staff {c' d' e' f'}
+    \new Staff {c' d' e' f'}
+  >>
+>>
+}
+}
+@end lilypond
+
+Die vertikale Ausrichtung von Notensystemen wird
+von dem @code{VerticalAlignment}-Objekt vorgenommen.
+Die Kontextparameter für die vertikale Ausdehnung
+werden für den @code{Axis_group_engraver} angegeben.
 
+@seealso
+Schnipsel:
+@rlsr{Spacing}.
 
-@menu
-* Setting the staff size::
-* Score layout::
-@end menu
+@c @lsr{spacing,page-spacing.ly},
+@c @lsr{spacing,alignment-vertical-spacing.ly}.
 
-@node Setting the staff size
-@subsection Setting the staff size
+Referenz der Interna:
+@rinternals{VerticalAlignment},
+@rinternals{Axis_group_engraver}.
 
-@untranslated
 
+@node Vertical spacing between systems
+@subsection Vertical spacing between systems
 
-@node Score layout
-@subsection Score layout
+Der Platz zwischen Notensystembruppen wird von vier
+Variablen in der @code{\paper}-Umgebung kontrolliert:
 
-@untranslated
+@example
+\paper @{
+  between-system-space = 1.5\cm
+  between-system-padding = #1
+  ragged-bottom=##f
+  ragged-last-bottom=##f
+@}
+@end example
 
+Wenn nur ein paar schmale Systeme auf eine Seite gesetzt werden,
+kann die vertikale Platzverteilung recht negativ ausfallen, so
+dass etwa ein System ganz oben auf der Seite und das nächste
+unten auf der Seite erscheint, mit einer großen Lücke dazwischen.
+Um derartige Situationen zu umgehen, kann der Platz, der zwischen
+Gruppen eingefügt wird, begrenzt werden.  Dieses Verhalten wird
+aktiviert, indem die @code{page-limit-inter-system-space}-Variable
+in der @code{\paper}-Umgebung auf @code{##t} gesetzt wird.  Die
+Variable @code{page-limit-inter-system-space-factor} bestimmt,
+um wieviel der Platz zwischen Gruppen gedehnt werden darf:  Bei
+einem Wert von @code{1.3} etwa darf der Platz 30% größer sein
+als er es wäre, wenn die Seite mit der Option @code{ragged-bottom}
+gesetzt worden wäre.
+
+Im folgenden Beispiel würde das zweite System der ersten Seite
+unten auf der Seite gesetzt werden, wenn der Platz zwischen
+den Systemen nicht begrenzt wäre.  Weil aber die Begrenzung
+eingesetzt wurde, wird das zweite System näher am ersten
+platziert.  Wenn @code{page-limit-inter-system-space-factor}
+auf @code{1} gesetzt wird, wäre die Platzverteilung die gleiche
+auf einer Seite mit @code{ragged-bottom}, wie etwa die letzte
+Seite einer Partitur.
+
+@lilypond[verbatim]
+#(set-default-paper-size "a6")
+\book {
+  \paper {
+    page-limit-inter-system-space = ##t
+    page-limit-inter-system-space-factor = 1.3
+
+    oddFooterMarkup = \markup "page bottom"
+    evenFooterMarkup = \markup "page bottom"
+    oddHeaderMarkup = \markup \fill-line {
+      "page top" \fromproperty #'page:page-number-string }
+    evenHeaderMarkup = \markup \fill-line {
+      "page top" \fromproperty #'page:page-number-string }
+  }
+  \new Staff << \repeat unfold 4 { g'4 g' g' g' \break }
+                { s1*2 \pageBreak } >>
+}
+@end lilypond
 
-@node Breaks
-@section Breaks
 
-@untranslated
+@seealso
+Schnipsel:
+@rlsr{Spacing}.
 
 
-@menu
-* Line breaking::
-* Page breaking::
-* Optimal page breaking::
-* Optimal page turning::
-* Minimal page breaking::
-* Explicit breaks::
-* Using an extra voice for breaks::
-@end menu
+@node Explicit staff and system positioning
+@subsection Explicit staff and system positioning
 
-@node Line breaking
-@subsection Line breaking
+Man kann die Einstellungen des @code{VerticalAxisGroup}-Objekts
+und der @code{\paper}-Umgebung, wie sie im vorigen Abschnitt
+erklärt wurden, als eine Sammlung verschiedenerer Einstellmöglichkeiten
+verstehen, die vor allem die Größe des vertikalen Platzes zwischen
+Notensystemen und Gruppen auf der Seite kontrollieren.
 
-@untranslated
+Die vertikale Platzverteilung kann aber auch auf andere Weise
+eingestellt werden: mit den Optionen von
+@code{NonMusicalPaperColumn #'line-break-system-details}.  Während
+Einstellungen in @code{VerticalAxisGroup} und @code{\paper} Füllplatz
+definieren, werden mit
+@code{NonMusicalPaperColumn #'line-break-system-details} absolute vertikale
+Positionen auf der Seite festgelegt.
 
+@code{NonMusicalPaperColumn #'line-break-system-details} akzeptiert eine
+Liste aus fünf unterschiedlichen Einstellungen:
 
-@node Page breaking
-@subsection Page breaking
+@itemize
+@item @code{X-offset}
+@item @code{Y-offset}
+@item @code{alignment-offsets}
+@item @code{alignment-extra-space}
+@item @code{fixed-alignment-extra-space}
+@end itemize
 
-@untranslated
+Veränderungen von Grobs (wozu auch @code{NonMusicalPaperColumn} gehört),
+können an drei unterschiedlichen Stellen in der Quelldatei vorgenommen
+werde:
 
+@itemize
+@item mitten im Notentext
+@item in einer @code{\context}-Umgebung
+@item in einer @code{\with}-Umgebung
+@end itemize
 
-@node Optimal page breaking
-@subsection Optimal page breaking
+Wenn der Grob @code{NonMusicalPaperColumn} verändert werden soll,
+wird der @code{\override}-Befehl in der @code{\context} oder
+@code{\with}-Umgebung eingesetzt.  Wenn die Veränderungen aber
+mitten im Notentext stattfinden sollen, müssen Sie den Befehl
+@code{\overrideProperty} einsetzen.  Einige Beispiele für eine
+Veränderungen von @code{NonMusicalPaperColumn} mit dem
+@code{\overrideProperty}-Befehl sind hier aufgelistet:
 
-@untranslated
+@example
+\overrideProperty NonMusicalPaperColumn
+  #'line-break-system-details #'((X-offset . 20))
 
+\overrideProperty NonMusicalPaperColumn
+  #'line-break-system-details #'((Y-offset . 40))
 
-@node Optimal page turning
-@subsection Optimal page turning
+\overrideProperty NonMusicalPaperColumn
+  #'line-break-system-details #'((X-offset . 20) (Y-offset . 40))
 
-@untranslated
+\override NonMusicalPaperColumn
+  #'line-break-system-details #'((alignment-offsets . (0 -15)))
 
+\override NonMusicalPaperColumn
+  #'line-break-system-details #'((X-offset . 20) (Y-offset . 40)
+                                 (alignment-offsets . (0 -15)))
+@end example
 
-@node Minimal page breaking
-@subsection Minimal page breaking
+Um zu verstehen, wie jede dieser unterschiedlichen Einstellungen
+funktioniert, wollen wir uns ein Beispiel vornehmen, dass überhaupt
+keine Einstellungen (d.h. @code{override}-Befehle) enthält:
+
+@c \book { } is required in these examples to ensure the spacing
+@c overrides can be seen between systems. -np
+
+@lilypond[quote]
+\header { tagline = ##f }
+\paper { left-margin = 0\mm }
+\book {
+  \score {
+    <<
+      \new Staff <<
+        \new Voice {
+          s1*5 \break
+          s1*5 \break
+          s1*5 \break
+        }
+        \new Voice { \repeat unfold 15 { c'4 c' c' c' } }
+      >>
+      \new Staff {
+        \repeat unfold 15 { d'4 d' d' d' }
+      }
+    >>
+  }
+}
+@end lilypond
 
-@untranslated
+Diese Partitur nimmt Zeilen- und Seitenumbruchinformationen in einer
+eigenen Stimme vor.  Mit dieser Methode kann die Layout-Information
+einfach von den Noten getrennt werden, was sehr hilfreich ist, wenn
+das Beispiel komplizierter wird.  Siehe auch
+@ref{Using an extra voice for breaks}.
+
+Ausdrückliche @code{\break}-Befehle teilen die Noten in sechs Takte
+lange Zeilen.  Die vertikale Platzverteilung wird von LilyPond
+errechnet.  Um den vertikalen Beginn einer jeden Systemgruppe
+genau anzugeben, kann @code{Y-offset} in der
+@code{line-break-system-details}-Eigenschaft des
+@code{NonMusicalPaperColumn}-Grobs wie in dem Beispiel
+ersichtlich benutzt werden:
+
+@lilypond[quote]
+\header { tagline = ##f }
+\paper { left-margin = 0\mm }
+\book {
+  \score {
+    <<
+      \new Staff <<
+        \new Voice {
+          \overrideProperty #"Score.NonMusicalPaperColumn"
+            #'line-break-system-details #'((Y-offset . 0))
+          s1*5 \break
+          \overrideProperty #"Score.NonMusicalPaperColumn"
+            #'line-break-system-details #'((Y-offset . 40))
+          s1*5 \break
+          \overrideProperty #"Score.NonMusicalPaperColumn"
+            #'line-break-system-details #'((Y-offset . 80))
+          s1*5 \break
+        }
+        \new Voice { \repeat unfold 15 { c'4 c' c' c' } }
+      >>
+      \new Staff {
+        \repeat unfold 15 { d'4 d' d' d' }
+      }
+    >>
+  }
+}
+@end lilypond
 
+In der @code{line-break-system-details}-Eigenschaft kann eine Liste
+mit vielen Einstellungen eingegeben werden, aber hier wird nur eine
+Einstellung angegeben.  Die @code{Y-offset}-Eigenschaft bestimmt
+hier die exakte vertikale Position auf der Seite, an welcher jede
+neue Systemgruppe begonnen wird.
+
+Da jetzt der exakte Beginn eines jeden Systems explizit festgelegt wurde,
+können wir auch den exakten Beginn eines jeden Notensystems in der
+Gruppe festlegen.  Dies geschieht mit der @code{alignment-offsets}-Eigenschaft
+von @code{line-break-system-details}.
+
+@lilypond[quote]
+\header { tagline = ##f }
+\paper { left-margin = 0\mm }
+\book {
+  \score {
+    <<
+      \new Staff <<
+        \new Voice {
+          \overrideProperty #"Score.NonMusicalPaperColumn"
+            #'line-break-system-details #'((Y-offset . 20)
+                                           (alignment-offsets . (0 -15)))
+          s1*5 \break
+          \overrideProperty #"Score.NonMusicalPaperColumn"
+            #'line-break-system-details #'((Y-offset . 60)
+                                           (alignment-offsets . (0 -15)))
+          s1*5 \break
+          \overrideProperty #"Score.NonMusicalPaperColumn"
+            #'line-break-system-details #'((Y-offset . 100)
+                                           (alignment-offsets . (0 -15)))
+          s1*5 \break
+        }
+        \new Voice { \repeat unfold 15 { c'4 c' c' c' } }
+      >>
+      \new Staff {
+        \repeat unfold 15 { d'4 d' d' d' }
+      }
+    >>
+  }
+}
+@end lilypond
 
-@node Explicit breaks
-@subsection Explicit breaks
+Dem @code{line-break-system-details}-Attribut des
+@code{NonMusicalPaperColumn}-Grobs werden zwei Eigenschaften
+zugewiesen.  Auch wenn die Liste (alist) von
+@code{line-break-system-details} sehr viel mehr Platzierungsparameter
+akzeptiert, müssen hier nu die Parameter @code{Y-offset} und
+@code{alignment-offsets} gesetzt werden, um den vertikalen Beginn
+jedes Systems und jeder Systemgruppe zu kontrollieren.  @code{Y-offset}
+bestimmt also die vertikale Position von Systemgruppen und @code{alignment-offsets}
+die vertikale Position von einzelnen Notensystemen.
+
+@lilypond[quote]
+\header { tagline = ##f }
+\paper { left-margin = 0\mm }
+\book {
+  \score {
+    <<
+      \new Staff <<
+        \new Voice {
+          \overrideProperty #"Score.NonMusicalPaperColumn"
+            #'line-break-system-details #'((Y-offset . 0)
+                                           (alignment-offsets . (0 -30 -40)))
+          s1*5 \break
+          \overrideProperty #"Score.NonMusicalPaperColumn"
+            #'line-break-system-details #'((Y-offset . 60)
+                                           (alignment-offsets . (0 -10 -20)))
+          s1*5 \break
+          \overrideProperty #"Score.NonMusicalPaperColumn"
+            #'line-break-system-details #'((Y-offset . 100)
+                                           (alignment-offsets . (0 -10 -40)))
+          s1*5 \break
+        }
+        \new Voice { \repeat unfold 15 { c'4 c' c' c' } }
+      >>
+      \new StaffGroup <<
+        \new Staff { \repeat unfold 15 { d'4 d' d' d' } }
+        \new Staff { \repeat unfold 15 { e'4 e' e' e' } }
+      >>
+    >>
+  }
+}
+@end lilypond
 
-@untranslated
+Einige Dinge sollten beachtet werden:
 
+@itemize
+@item Wenn @code{alignment-offsets} benutzt wird, werden Gesangtextzeilen
+als ein System gezählt.
+
+@item Die Einheiten der Zahlen, die für @code{X-offset},
+@code{Y-offset} und @code{alignment-offsets} benutzt werden, werden als
+Vielfaches des Abstandes zwischen zwei Notenlinien gewertet.  Positive
+Werte verschieben Systeme und Gesangstext nach oben, negative Werte nach
+unten.
+
+@item Weil die Einstellungen von @code{NonMusicalPaperColumn #'line-break-system-details}
+es möglich machen, Notensysteme und Gruppen an beliebigen Stellen auf der
+Seite zu platzieren, kann man damit auch Ränder überschreiben oder sogar
+Notensysteme übereinander platzieren.  Sinnvolle Werte für diese
+Parameter werden derartiges Verhalten vermeiden.
+@end itemize
 
-@node Using an extra voice for breaks
-@subsection Using an extra voice for breaks
 
-@untranslated
+@seealso
+Schnipsel:
+@rlsr{Spacing}.
 
 
-@node Vertical spacing
-@section Vertical spacing
+@node Two-pass vertical spacing
+@subsection Two-pass vertical spacing
 
-@untranslated
+@warning{Vertikale Positionierung in zwei Durchgängen ist veraltet
+(deprecated) und wird in zukünftigen Versionen von LilyPond entfernt
+werden.  Systeme werden jetzt automatisch in einem einzigen
+Durchlauf gedehnt.  Siehe auch @ref{Vertical spacing inside a system}.}
 
+Um Systeme zu dehnen, sodass sie den restlichen Platz auf der Seite
+auffüllen, kann ein Verfahren benutzt werden, dass die Positionierung
+in zwei Durchläufen ermittelt:
 
-@menu
-* Vertical spacing inside a system::
-* Vertical spacing between systems::
-* Explicit staff and system positioning::
-* Two-pass vertical spacing::
-* Vertical collision avoidance::
-@end menu
+@enumerate
+@item Im ersten Durchlauf wird der Platz berechnet, um den jede
+Systemgruppe gedehnt werden sollte und in eine Datei geschrieben.
+@item Im zweiten Durchlauf werden die Systemgruppen anhand der
+Daten aus dieser Datei entsprechend gedehnt.
+@end enumerate
 
-@node Vertical spacing inside a system
-@subsection Vertical spacing inside a system
+Die @code{ragged-bottom}-Eigenschaft fügt den Platz zwischen
+Systemgruppen ein, während mit der Technik in zwei Durchläufen
+die Systemgruppen selber gedehnt werden.
 
-@untranslated
+Um dieses Verhalten zu erzeugen, muss die @code{tweak-key}-Eigenschaft
+in der @code{\layout}-Umgebung jeder Partitur definiert werden und diese
+Anpassungen dann in jeder Paritur mit dem Befehl @code{\scoreTweak}
+angewandt werden.
 
+@quotation
+@verbatim
+%% die erstellte Layout-Datei einfügen
+\includePageLayoutFile
 
-@node Vertical spacing between systems
-@subsection Vertical spacing between systems
+\score {
+  \new StaffGroup <<
+    \new Staff <<
+      %% Anpassungen für diese Partitur einfügen
+      \scoreTweak "scoreA"
+      { \clef french c''1 \break c''1 }
+    >>
+    \new Staff { \clef soprano g'1 g'1 }
+    \new Staff { \clef mezzosoprano e'1 e'1 }
+    \new Staff { \clef alto g1 g1 }
+    \new Staff { \clef bass c1 c1 }
+  >>
+  \header {
+    piece = "Score with tweaks"
+  }
+  %% Definieren, wie die Anpassungen für diese Datei genannt werden:
+  \layout { #(define tweak-key "scoreA") }
+}
+@end verbatim
+@end quotation
 
-@untranslated
+Für den ersten Durchgang sollte die @code{dump-tweaks}-Option gesetzt
+werden, damit die Layout-Datei erstellt wird.
 
+@example
+lilypond -dbackend=null -d dump-tweaks <file>.ly
+lilypond <file>.ly
+@end example
 
-@node Explicit staff and system positioning
-@subsection Explicit staff and system positioning
 
-@untranslated
+@seealso
+Schnipsel:
+@rlsr{Spacing}.
 
 
-@node Two-pass vertical spacing
-@subsection Two-pass vertical spacing
+@node Vertical collision avoidance
+@subsection Vertical collision avoidance
 
-@untranslated
+@cindex Vermeidung von vertikalen Zusammenstößen
+@cindex Zusammenstöße, vertikal, vermeiden
+@cindex vertikale Zusammenstöße, vermeiden
+@cindex Kollisionen, vertikal, vermeiden
+
+@funindex outside-staff-priority
+@funindex outside-staff-padding
+@funindex outside-staff-horizontal-padding
+
+Intuitiv gibt es in der Notation einige Objekte, die zu dem Notensystem
+gehören, und einige andere, die immer außerhalb des Notensystems
+positioniert werden sollten.  Zu diesen letzteren gehören etwa
+Übungszeichen, Textbeschriftung und Dynamikbezeichnung (die als
+Objekte außerhalb des Systems bezeichnet werden können).  LilyPonds
+Regeln um diese Objekte zu positionieren lautet: so nah am Notensystem
+wie möglich, aber gerade so weit weg, dass sie nicht mit anderen
+Objekten zusammenstoßen.
+
+Dabei setzt LilyPon die @code{outside-staff-priority}-Eigenschaft
+ein um herauszufinden, ob ein Grob ein Objekt außerhalb des Systems
+ist: wenn @code{outside-staff-priority} eine Zahl ist, dann handelt
+es sich um ein Objekt außerhalb des Systems.  Zusätzlich teilt
+@code{outside-staff-priority} noch mit, in welcher Reihenfolge
+die Objekte außerhalb des Systems gesetzt werden sollen.
+
+Zuerst werden alle Objekte gesetzt, die nicht außerhalb des Systems
+gehören.  Dann werden die Objekte außerhalb des Systems nach dem Wert
+ihrer @code{outside-staff-priority}  (in aufsteigender Anordnung)
+sortiert.  Eins nach dem anderen werden diese Objekte schließlich
+genommen und so platziert, dass sie nicht mit den Objekten zusammenstoßen,
+die bereits platziert worden sind.  Wenn also zwei Objekte außerhalb
+des Systems um den gleichen Platz streiten, wird das mit dem
+geringeren Wert von @code{outside-staff-priority} näher an das
+entsprechende Notensystem gesetzt.
+
+@lilypond[quote,ragged-right,relative=2,fragment,verbatim]
+c4_"Text"\pp
+r2.
+\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
+c4_"Text"\pp % now they will collide
+@end lilypond
 
+Der Platz, der zwischen einem Objekt außerhalb des Systems und
+dem vorhergehenden Objekt eingefügt werden kann (auch als
+padding bezeichnet), kann durch @code{outside-staff-padding}
+kontrolliert werden.
+
+@lilypond[quote,ragged-right,relative=2,fragment,verbatim]
+\once \override TextScript #'outside-staff-padding = #0
+a'^"This text is placed very close to the note"
+\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
 
-@node Vertical collision avoidance
-@subsection Vertical collision avoidance
+Standardmäßig werden Objekte außerhalb des Systems so gesetzt,
+dass sie eine horizontale Überschneidung mit einem der
+vorher gesetzten Grobs vermeiden.  Das kann zu Situationen
+führen, in denen Objekte sehr dicht nebeneinander gesetzt
+werden.  Der vertikale Platz zwischen Notensystemen kann
+auch gesetzt werden, sodass Objekte außerhalb des Systems
+ineinander greifen. Mit der Eigenschaft
+@code{outside-staff-horizontal-padding} können Objekte vertikal
+verschoben werden und derartige Situationen kommen nicht
+vor.
+
+@lilypond[quote,ragged-right,relative=2,fragment,verbatim]
+% the markup is too close to the following note
+c4^"Text"
+c4
+c''2
+% setting outside-staff-horizontal-padding fixes this
+R1
+\once \override TextScript #'outside-staff-horizontal-padding = #1
+c,,4^"Text"
+c4
+c''2
+@end lilypond
 
-@untranslated
+@seealso
+Schnipsel:
+@rlsr{Spacing}.
 
 
 @node Horizontal spacing
-@section Horizontal Spacing
-
-@untranslated
+@section Horizontal spacing
 
+@cindex horizontale Platzierung
+@cindex horizontale Anordnung
+@cindex Anordnung, horizontal
 
 @menu
 * Horizontal spacing overview::
 * Proportional notation::
 @end menu
 
+
 @node Horizontal spacing overview
 @subsection Horizontal spacing overview
 
-@untranslated
+Die Setzmaschine interpretiert unterschiedliche Notendauern als
+dehnbare Abstände (engl. spring) unterschiedlicher Länge.  Längere
+Dauern erhalten mehr Platz, kürzere weniger.  Die kürzeste Dauer
+erhält eine feste Breite (die mit @code{shortest-duration-space}
+im @code{SpacingSpanner}-Objekt kontrolliert werden kann).  Je
+länger die Dauer, umso mehr Platz erhält die Note: wenn ihre
+Dauer verdoppelt wird, wird ein bestimmter Platz hinzugefügt
+(dessen Breite durch @code{spacing-increment} bestimmt werden
+kann).
+
+Das folgende Stück beispielsweise enthält Halbe, Viertel und Achtel.
+Die Achtelnote wird gefolgt von einem Notenkopfabstand (NKA).  Die
+Viertel wird von 2 NKA gefolgt, die Halbe von 3 NKA usw.
+
+@lilypond[quote,fragment,verbatim,relative=1]
+c2 c4. c8 c4. c8 c4. c8 c8
+c8 c4 c4 c4
+@end lilypond
+
+Normalerweise ist @code{spacing-increment} definiert als 1.2 mal
+der Abstand zwischen zwei Notenlinien, was in etwa die Breite eines
+Notenkopfes ist.  @code{shortest-duration-space} ist definiert als
+2.0, was bedeutet, dass die kürzeste Note 2.4 Notenlinienabstände
+2.0 mal der Wert von @code{spacing-increment}) horizontalen
+Abstand erhält.  Der Abstand wirdvon der linken Kande des Symbols
+errechnet, so dass die kürzeste Note üblicherweise von 1 NKA
+Abstand gefolgt wird.
+
+Wenn diese Herangehensweise konsequent angewandt würde, würde eine
+einzige Zweiunddreißigstel eine Partitur, in der vor allem Achtel und
+Sechzehntel vorkommen, sehr weit auseinanderdehnen.  Die kürzeste
+Note wäre nun keine Sechzehntel mehr, sondern eine Zweiunddreißigstel,
+wodurch an jede Note der Wert von 1 NKA hinzugefügt würde.  Um das
+zu vermeiden, ist die kürzeste Dauer für die Platzverteilung nicht die
+kürzeste Note einer Partitur, sondern die, die am häufigsten vorkommt.
+
+Die Notendauer, die am häufigsten vorkommt, wird auf folgende
+Weise bestimmt: in jedem Takt wird die kürzeste Note bestimmt.  Die
+häufigste kürzeste Note wird dann als Grundlage für die Platzverteilung
+der Noten herangezogen, mit der Bedingung, dass diese kürzeste
+Note immer ein Achtel oder kürzer sein soll.  Die kürzeste Dauer
+wird ausgegeben, wenn @code{lilypond} mit der Option @code{--verbose}
+aufgerufen wird.
+
+Diese Dauern können aber auch angepasst werden.  Wenn Sie die Eigenschaft
+@code{common-shortest-duration} in dem @code{SpacingSpanner} setzen,
+dann wird hiermit die Grunddauer für die Platzverteilung eingestellt.
+Die maximale Dauer für diesen Grundwert (normalerweise eine Achtel)
+wird definiert mit @code{base-shortest-duration}.
+
+@funindex common-shortest-duration
+@funindex base-shortest-duration
+@funindex stem-spacing-correction
+@funindex spacing
+
+Noten, die noch kürzer sind als die häufigste kürzeste Note, werden
+durch einen Platz voneinander getrennt, der proportional zu ihrer
+Dauer in Beziehung zur häufigsten kürzesten Note ist.  Wenn also
+nur ein paar Sechszehntel zu dem obigen Beispiel hinzugefügt werden,
+würden sie von 1/2 NKA gefolgt werden:
+
+@lilypond[quote,fragment,verbatim,relative=2]
+c2 c4. c8 c4. c16[ c] c4. c8 c8 c8 c4 c4 c4
+@end lilypond
+
+In der Einleitung (siehe @rlearning{Engraving}) wurde erklärt, dass die
+Richtung der Notenhälse die Platzverteilung beeinflusst.  Das wird
+kontrolliert durch die @code{stem-spacing-correction}-Eigenschaft
+in dem @code{NoteSpacing}-Objekt.  Dieses Objekt wird für jeden
+@code{Voice}-Kontext erstellt.  Das @code{StaffSpacing}-Objekt (in
+einem @code{Staff}-Kontext erstellt) enthält die gleiche Eigenschaft,
+um die Verteilung von Hälsen neben Taktlinien zu kontrollieren.  In
+dem folgenden Beispiel werden diese Einstellungen gezeigt, einmal
+mit den Standardwerten und dann mit größeren Werten, damit man sie
+besser sieht:
+
+@lilypond[quote,ragged-right]
+{
+  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
+  c'4 e''4 e'4 b'4 |
+  b'4 e''4 b'4 e''4|
+}
+@end lilypond
+
+Proportionale Notation ist unterstützt, siehe @ref{Proportional notation}.
+
+@seealso
+Schnipsel:
+@rlsr{Spacing}.
+
+Referenz der Interna:
+@rinternals{SpacingSpanner},
+@rinternals{NoteSpacing},
+@rinternals{StaffSpacing},
+@rinternals{SeparationItem}.
+
+@knownissues
+
+Es gibt keine sinnvolle Möglichkeit, die horizontale Verteilung der
+Noten zu unterdrücken.  Die folgende Problemumgehung kann benutzt
+werden, um zusätzlichen Platz in eine Partitur einzufügen.
+
+@example
+ \once \override Score.SeparationItem #'padding = #1
+@end example
+
+Es gibt derzeit keine Möglichkeit, den Platz zu verringern.
 
 
 @node New spacing area
 @subsection New spacing area
 
-@untranslated
+@cindex horizontale Notenabstände, Abschnitte definierten
+@cindex Notenabstände, Abschnitte definieren
+@cindex Abschnitte definieren, Notenabstände
+
+Neue Abschnitte mit unterschiedlichen Notenabstandsparametern
+können mit dem Befehl @code{newSpacingSection} begonnen werden.
+Das ist hilfreich, wenn in verschiedenen Abschnitten die
+Verhältnisse von kurzen und langen Noten sehr unterschiedlich
+ausfallen.
+
+Im folgenden Beispiel wird durch die neue Taktart ein neuer
+Abschnitt begonnen, in dem die Sechszehntel weiter außeinander
+gesetzt werden sollen.
+
+@lilypond[relative,fragment,verbatim,quote]
+\time 2/4
+c4 c8 c
+c8 c c4 c16[ c c8] c4
+\newSpacingSection
+\time 4/16
+c16[ c c8]
+@end lilypond
+
+Der @code{\newSpacingSection}-Befehl erstellt ein neues
+@code{SpacingSpanner}-Objekt, weshalb auch neue Anpassungen
+mit dem @code{\override}-Befehl an dieser Stelle eingesetzt
+werden können.
+
+@seealso
+Schnipsel:
+@rlsr{Spacing}.
+
+Referenz der Interna:
+@rinternals{SpacingSpanner}.
 
 
 @node Changing horizontal spacing
 @subsection Changing horizontal spacing
 
-@untranslated
+@cindex Notenabstände, horizontal
+@cindex horizontale Abstände
+@cindex horizontale Notenabstände
+
+Die horizontalen Abstände können mit der
+@code{base-shortest-duration}-Eigenschaft
+verändert werden.  In den folgenden Beispielen
+werden die gleichen Noten eingesetzt, zuerst
+ohne die Eigenschaft zu verändern, im zweiten
+Beispiel dann mit einem anderen Wert.  Größere
+Werte für @code{ly:make-moment} ergeben dichtere
+Noten.  @code{ly:make-moment} erstellt eine Dauer,
+die als Bruch notiert wird, sodass @code{1 4}
+eine größere Dauer ist als @code{1 16}.
+
+@lilypond[verbatim,line-width=12\cm]
+\score {
+  \relative c'' {
+    g4 e e2 | f4 d d2 | c4 d e f | g4 g g2 |
+    g4 e e2 | f4 d d2 | c4 e g g | c,1 |
+    d4 d d d | d4 e f2 | e4 e e e | e4 f g2 |
+    g4 e e2 | f4 d d2 | c4 e g g | c,1 |
+  }
+}
+@end lilypond
+
+@lilypond[verbatim,line-width=12\cm]
+\score {
+  \relative c'' {
+    g4 e e2 | f4 d d2 | c4 d e f | g4 g g2 |
+    g4 e e2 | f4 d d2 | c4 e g g | c,1 |
+    d4 d d d | d4 e f2 | e4 e e e | e4 f g2 |
+    g4 e e2 | f4 d d2 | c4 e g g | c,1 |
+  }
+  \layout {
+    \context {
+      \Score
+      \override SpacingSpanner
+                #'base-shortest-duration = #(ly:make-moment 1 16)
+    }
+  }
+}
+@end lilypond
+
+
+@snippets
+
+Standardmäßig wird die Platzverteilung in Triolen und andern
+rhythmischen Aufteilungen nach verschiedenen nicht von der
+Dauer abgeleiteten Faktoren (wie Versetzungszeichen,
+Schlüsselwechseln usw.) berechnet.  Um diese Symbole zu
+ignorieren und eine gleichmäßige Verteilung der Noten
+zu erzwingen, kann die gleichmäßige Dehnung (engl.
+uniform stretching) zu Beginn einer Partitur eingeschaltet
+werden:
+
+@lilypond[quote,ragged-right,relative=2,fragment,verbatim]
+\new Score \with {
+  \override SpacingSpanner #'uniform-stretching = ##t
+} <<
+  \new Staff{
+    \times 4/5 {
+      c8 c8 c8 c8 c8
+    }
+    c8 c8 c8 c8
+  }
+  \new Staff{
+    c8 c8 c8 c8
+    \times 4/5 {
+      c8 c8 c8 c8 c8
+    }
+  }
+>>
+@end lilypond
+
+Wenn @code{strict-note-spacing} eingestellt ist, werden Noten
+gesetzt, ohne dass Schlüssel, Taktlinine oder Verzierungsnoten
+zusätzlichen Platz erhalten.
+
+@lilypond[quote,ragged-right,relative=2,fragment,verbatim]
+\override Score.SpacingSpanner #'strict-note-spacing = ##t
+\new Staff { c8[ c \clef alto c \grace { c16[ c] } c8 c c]  c32[ c32] }
+@end lilypond
+
+
+@seealso
+Schnipsel:
+@rlsr{Spacing}.
 
 
 @node Line length
 @subsection Line length
 
-@untranslated
+@cindex Seitenumbrüche
+@cindex Umbrechen von Seiten
+@cindex Zeilenlänge
+@cindex Länge von Zeilen
+
+@funindex indent
+@funindex line-width
+@funindex ragged-right
+@funindex ragged-last
+
+@c Although line-width can be set in \layout, it should be set in paper
+@c block, to get page layout right.
+@c Setting indent in \paper block makes not much sense, but it works.
+
+@c Bit verbose and vague, use examples?
+Die grundlegenden Einstellungen, die Einfluss auf die Zeilenlänge
+haben, sind @code{indent} (Einzug) und @code{line-width}
+(Zeilenbreite).  Sie werden in der @code{\layout}-Umgebung
+einestellt.  Der erste Befehl bestimmt den Einzug der ersten
+Zeile, der zweite die Zeilenlänge der weiteren Notenzeilen.
+
+Wenn @code{ragged-right} eingestellt ist (als in der
+@code{\layout}-Umgebung auf den Wert @code{#t} gesetzt wurde),
+werden die Systeme linksbündig gesetzt und nicht bis zum
+rechten Rand hin durchgezogen, sondern den Noten entsprechend
+gesetzt.  Das ist oftmals nützlich für kleine Notenfragmente
+und um zu überprüfen, wie eng die Noten natürlicherweise
+gesetzt werden würden.
+
+Die Option @code{ragged-last} verhält sich ähnlich zu @code{ragged-right},
+aber wirkt sich nur auf die letzte Zeile eines Stückes aus.
+Für diese letzte Zeile gibt es keine Einschränkungen.  Das
+Resultat erinnert an Textabsätze im Blocksatz, wo die letzte
+Zeile des Absatzes mit ihrer natürlichen Länge gestzt wird.
+
+@example
+\layout @{
+indent = #0
+line-width = #150
+ragged-last = ##t
+@}
+@end example
+
+@seealso
+Schnipsel:
+@rlsr{Spacing}.
 
 
 @node Proportional notation
 @subsection Proportional notation
 
-@untranslated
+LilyPond hat Unterstützung für proportionale Notation.  Dabei handelt
+es sich um eine horizontale Platzverteilung, die jeder Note einen
+exakt ihrer Dauer entsprechenden Platz zuordnet.  Man kann es vergleichen
+mit der Notenplatzierung auf einem Raster.  In einigen Partituren
+des späten 20. und frühen 21. Jahrhunderts wird dies proportionale
+Notation benutzt, um sehr komplizierte rhythmische Verhältnisse
+klarer darzustellen, oder um einen Zeitstrahl oder ähnliche Graphiken
+direkt in die Partitur zu integrieren.
+
+LilyPond hat Unterstützung für fünf verschiedene Einstellungen der
+proportionalen Notation, die alle zusammen oder jede für sich
+benutzt werden können:
+
+@itemize
+@item @code{proportionalNotationDuration} (proportionale Notendauer)
+@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)
+@end itemize
+
+In den Beispielen unten werden diese fünf unterschiedlichen Einstellungen
+für die proportionale Notation vorgestellt und ihre Wirkungen
+untereinander illustriert.
+
+Es soll mit diesem 1 Takt langen Beispiel begonnen werden, in welchem
+die klassischen Abstände und Flattersatz (ragged-right) eingesetzt werden:
+
+@lilypond[quote,verbatim,ragged-right]
+\new Score <<
+  \new RhythmicStaff {
+    c'2
+    c'16 c'16 c'16 c'16
+    \times 4/5 {
+      c'16 c'16 c'16 c'16 c'16
+    }
+  }
+>>
+@end lilypond
+
+Die Halbe, mit der der Takt beginnt, braucht weitaus weniger
+Platz als die Hälfte des Taktes.  Gleichermaßen haben die
+Sechszehntel und die Sechszehntel-Quintolen (oder Zwanzigstel),
+mit denen der Takt endet, insgesamt weitaus mehr als die Hälfte
+der Taktbreite.
+
+Im klassischen Notensatz kann dieses Verhalten genau das gewünschte
+Ergebnis bringen, weil dadurch horizontaler Platz von der Halben
+weggenommen werden kann und so insgesamt Platz in dem Takt eingespart
+wird.
+
+Wenn allerdings ein Zeitstrahl oder andere zeitliche ablaufende
+Graphiken über oder unter dem Takt eingefügt werden soll, braucht man
+eine Notenplatzierung, die exakt der von ihnen eingenommenen Dauer
+entspricht.  Auf folgende Art wird die proportionale Notation
+eingeschaltet:
+
+@lilypond[quote,verbatim,ragged-right]
+\new Score \with {
+  proportionalNotationDuration = #(ly:make-moment 1 20)
+} <<
+  \new RhythmicStaff {
+    c'2
+    c'16 c'16 c'16 c'16
+    \times 4/5 {
+      c'16 c'16 c'16 c'16 c'16
+    }
+  }
+>>
+@end lilypond
+
+Die Halbe zu Beginn des Taktes und die schnelleren Noten in der zweiten
+Takthälfte nehmen jetzt genau den gleichen horizontalen Platz ein.  Jetzt
+könnte man einen Zeitstrahl mit dem Takt synchronisieren.
+
+Die Einstellung von @code{proportionalNotationDuration} gehört zum
+@code{Score}-Kontext.  Kontexteinstellungen können an drei verschiedenen
+Stellen in der Quelldatei geschrieben werden: in einer @code{\with}-Umgebung,
+in einer @code{\context}-Unmgebung oder direkt in den Noten mit dem
+@code{\set}-Befehl.  Alle drei Positionen sind gleichwertig und es hängt
+vom Benutzer ab, welche bevorzugt wird.
+
+Die Eigenschaft @code{proportionalNotationDuration} braucht ein Argument,
+welches die Referenzdauer ist, anhand welcher alle Noten platziert werden.
+Hier wird die LilyPond Scheme-Funktion @code{make-moment} eingesetzt.  Sie
+braucht zwei Argumente: einen Zähler und einen Nenner, die einen Bruch einer
+Ganzen darstellen.  Die Funktion @code{#(ly:make-moment 1 20)} ergibt also
+eine Referenzdauer von einer Zwanzigstel.  Genauso gut können etwa die Dauern
+@code{#(ly:make-moment 1 16)}, @code{#(ly:make-moment 1 8)} oder
+@code{#(ly:make-moment 3 97)} eingesetzt werden.
+
+Die richtige Referenzdauer, mit der eine vernünftige Verteilung der Noten
+proportional möglich ist, muss durch Ausprobieren herausgefunden werden.
+Dabei sollte man mit einer Dauer beginnen, die der kleinsten Note des
+Stückes nahekommt.  Kleine Referenzdauern lassen die Noten sehr gedehnt
+erscheinen, größere Referenzdauern zwingen sie dichter zusammen.
+
+@lilypond[quote,verbatim,ragged-right]
+\new Score \with {
+  proportionalNotationDuration = #(ly:make-moment 1 8)
+} <<
+  \new RhythmicStaff {
+    c'2
+    c'16 c'16 c'16 c'16
+    \times 4/5 {
+      c'16 c'16 c'16 c'16 c'16
+    }
+  }
+>>
+
+\new Score \with {
+  proportionalNotationDuration = #(ly:make-moment 1 16)
+} <<
+  \new RhythmicStaff {
+    c'2
+    c'16 c'16 c'16 c'16
+    \times 4/5 {
+      c'16 c'16 c'16 c'16 c'16
+    }
+  }
+>>
+
+\new Score \with {
+  proportionalNotationDuration = #(ly:make-moment 1 32)
+} <<
+  \new RhythmicStaff {
+    c'2
+    c'16 c'16 c'16 c'16
+    \times 4/5 {
+      c'16 c'16 c'16 c'16 c'16
+    }
+  }
+>>
+@end lilypond
+
+Man muss beachten, dass die Referenzdauer nicht zu groß ist
+(wie die Achtel in dem Beispiel oben), denn dadurch werden
+die Noten so dicht gesetzt, dass sich eventuell sogar Notenköpfe
+von sehr kleinen Notenwerten überschneiden können.  Die proportionale
+Notation nimmt üblicherweise mehr Platz ein als die klassische
+Platzverteilung.  Der rhythmischen Klarheit muss ein eng gesetztes
+Notenbild geopfert werden.
+
+In Folgenden soll betrachtet werden, wie sich überlappende
+rhythmische Aufteilungen am besten positioniert werden.  Als Referenz
+wird das erste Beispiel herangezogen, zu welchem ein zweites
+System mit anderen rhythmischen Werten hinzugefügt wird:
+
+@lilypond[quote,verbatim,ragged-right]
+\new Score <<
+  \new RhythmicStaff {
+    c'2
+    c'16 c'16 c'16 c'16
+    \times 4/5 {
+      c'16 c'16 c'16 c'16 c'16
+    }
+  }
+  \new RhythmicStaff {
+    \times 8/9 {
+      c'8 c'8 c'8 c'8 c'8 c'8 c'8 c'8 c'8
+    }
+  }
+>>
+@end lilypond
+
+Die Platzaufteilung ist schlecht, weil die gleichlangen Noten des
+untersten Systems nicht gleichmäßig verteilt sind.  Im klassischen
+Notensatz kommen komplexe rhythmische Verhältnisse wie dieses sehr
+selten vor, sodass der Notensatz nicht in Hinsicht auf sie optimiert
+ist.  @code{proportionalNotationDuration} hilft in
+dieser Situation deutlich:
+
+@lilypond[quote,verbatim,ragged-right]
+\new Score \with {
+  proportionalNotationDuration = #(ly:make-moment 1 20)
+} <<
+  \new RhythmicStaff {
+    c'2
+    c'16 c'16 c'16 c'16
+    \times 4/5 {
+      c'16 c'16 c'16 c'16 c'16
+    }
+  }
+  \new RhythmicStaff {
+    \times 8/9 {
+      c'8 c'8 c'8 c'8 c'8 c'8 c'8 c'8 c'8
+    }
+  }
+>>
+@end lilypond
+
+Aber bei sehr genauer Betrachtung sind die Noten der zweiten Hälfte
+der Nonole doch immernoch eine Spur weiter gesetzt als die Noten
+der ersten Hälfte.  Um wirklich gleichmäßige Abstände zu erzwingen,
+sollte auch noch die gleichmäßige Dehnung angeschaltet werden:
+
+@lilypond[quote,verbatim,ragged-right]
+\new Score \with {
+  proportionalNotationDuration = #(ly:make-moment 1 20)
+  \override SpacingSpanner #'uniform-stretching = ##t
+} <<
+  \new RhythmicStaff {
+    c'2
+    c'16 c'16 c'16 c'16
+    \times 4/5 {
+      c'16 c'16 c'16 c'16 c'16
+    }
+  }
+  \new RhythmicStaff {
+    \times 8/9 {
+      c'8 c'8 c'8 c'8 c'8 c'8 c'8 c'8 c'8
+    }
+  }
+>>
+@end lilypond
+
+Das Beispiel mit den zwei Systemen ist nun exakt nach den
+rhythmischen Werten der Noten gesetzt, sodass ein Zeitstrahl
+oder ähnliches eingefügt werden könnte.
+
+Alle Einstellungen zur proportionalen Notation erwarten,
+dass die @code{uniform-stretching}-Eigenschaft des
+@code{SpacingSpanner}-Objekts auf wahr gesetzt wird.  Andernfalls
+kann es vorkommen, dass bestimmte Abstände (etwa von
+unsichtbaren Noten) nicht richtig gesetzt werden.
+
+Das @code{SpacingSpanner}-Objekt ist ein abstraktes Grob, dass sich im
+@code{Score}-Kontext befindet.  Genauso wie die Einstellungen
+von @code{proportionalNotationDuration} können auch diese
+Veränderungen an den drei Stellen in der Quelldatei vorkommen:
+in der @code{\with}-Umgebung innerhalb von @code{Score}, in
+einer @code{\context}-Umgebung oder direkt im Notentext.
+
+Standardmäßig gibt es nur ein @code{SpacingSpanner} pro @code{Score}.
+Das heißt, dass @code{uniform-stretching} für die gesamte Partitur
+(d.h. für die Reichweite von @code{Score}) entweder an- oder
+ausgeschaltet ist.  Man kann allerdings in einer Partitur unterschiedliche
+Abschnitte mit verschiedenem Platzierungsverhalten definieren.
+Hierzu ist der Befehl @code{\newSpacingSection} da.  Siehe auch @ref{New spacing area}.
+
+Im Folgenden soll gezeigt werden, wie sich der @code{Separating_line_group_engraver}
+auswirkt und warum er normalerweise für proportionale Notation ausgeschaltet wird.
+In diesem Beispiel wird verdeutlicht, dass vor jeder ersten Note eines Notensystems
+immer etwas zusätzlicher Platz gesetzt wird:
+
+@lilypond[quote,verbatim,ragged-right]
+\paper {
+  indent = #0
+}
+
+\new Staff {
+  c'1
+  \break
+  c'1
+}
+@end lilypond
+
+Der gleiche horizontale Platz wird vor eine Noten gesetzt, wenn sie
+einer Taktart, einem Schlüssel oder einer Tonartbezeichnung folgt.
+Dieser Platz wird durch @code{Separating_line_group_engraver}
+eingefügt; wenn wir ihn aus der Partitur entfernen, entfällt
+auch dieser zusätzliche Platz:
+
+@lilypond[quote,verbatim,ragged-right]
+\paper {
+  indent = #0
+}
+
+\new Staff \with {
+  \remove Separating_line_group_engraver
+} {
+  c'1
+  \break
+  c'1
+}
+@end lilypond
+
+Nichmusikalische Elemente wir Takt- und Tonartangaben, Schlüssel und
+Versetzungszeichen sind problematisch in proportionaler
+Notation.  Keine dieser Elemente hat eine rhythmische Dauer, aber
+alle brauchen horizontalen Platz.  Das Problem wird auf unterschiedliche
+Weise gelöst.
+
+Es ist manchmal möglich, Probleme mit Tonarten zu lösen, indem keine
+benutzt werden.  Das ist durchaus eine ernstzunehmende Option, weil
+die meisten Partituren mit proportionaler Notation für heutige
+Musik geschrieben werden.  Ähnliches gilt für Taktarten, insbesondere,
+wenn ein Zeitstrahl in die Partitur eingearbeitet werden soll.
+In den meisten Parituren kommt jedoch irgendeine Taktart vor.
+Schlüssel und Versetzungszeichen sind noch wichtiger; auf
+sie kann selten verzichtet werden.
+
+Eine Lösungsmöglichkeit ist es, die @code{strict-note-spacing}-Eigenschaft
+des @code{SpacingSpanner}-Objekts zu benutzen.  Zum Vergleich
+die beiden Partituren unten:
+
+@lilypond[quote,verbatim,ragged-right]
+\new Staff {
+  \set Score.proportionalNotationDuration = #(ly:make-moment 1 16)
+  c''8
+  c''8
+  c''8
+  \clef alto
+  d'8
+  d'2
+}
+
+\new Staff {
+  \set Score.proportionalNotationDuration = #(ly:make-moment 1 16)
+  \override Score.SpacingSpanner #'strict-note-spacing = ##t
+  c''8
+  c''8
+  c''8
+  \clef alto
+  d'8
+  d'2
+}
+@end lilypond
+
+Bei beiden handelt es sich um proportionale Notation, aber
+die Platzverteilung im oberen Beispiel ist zu weit wegen
+des Schlüsselwechsels.  Die Platzverteilung des zweiten
+Beispiels dagegen bleibt rhythmisch korrekt.
+@code{strict-note-spacing} bewirkt, dass Takt- und
+Tonartbezeichnungen, Schlüssel und Versetzungszeichen
+keine Rolle bei der Berechnung der Abstände spielen.
+
+Zusätzlich zu den hier vorgestellten Einstellungen gibt es
+noch eine Reihe von Möglichkteiten, die oft in proportionaler
+Notation benutzt werden.  Dazu gehören:
+
+@itemize
+@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 in the Voice context}
+@end itemize
+
+Diese Einstellungn bewirken, dass auch Verzierungsnoten proportional
+gesetzt werden, dass Klammern von rhythmischen Gruppen bis zu den
+Anfangs- und Endpunkten ausgedehnt werden und lassen dehnbare
+Objekte wie Balken und Glissandi auch über Taktstriche hinweg zu.
+
+@seealso
+Notationsreferenz:
+@ref{New spacing area}.
+
+Schnipsel:
+@rlsr{Spacing}.
 
 
 @node Fitting music onto fewer pages
 @section Fitting music onto fewer pages
 
-@untranslated
+Manchmal kommt es vor, dass nur ein oder zwei Systeme auf die
+nächste Seite geraten, obwohl es so aussieht, als ob auf der
+vorigen Seite genügend Platz ist, um diese Systeme auch noch
+unterzubringen.
 
+Wenn man derartige Platzierungsprobleme untersucht, ist die
+Funktion @code{annotate-spacing} von sehr großer Hilfe.  Hiermit
+wird in den Musiksatz zusätzlich Information darüber ausgegeben,
+wieviel Platz bestimmten Parametern zugewiesen wird.  Genaueres
+hierzug in
+@ref{Displaying spacing}.
 
 @menu
 * Displaying spacing::
 * Changing spacing::
 @end menu
 
+
 @node Displaying spacing
 @subsection Displaying spacing
 
-@untranslated
+@cindex Platzierung, Layouteinstellungen
+
+@funindex annotate-spacing
+
+Die Dimensionen von vertikalen und horizontalen Platzierungsvariablen,
+die veränderbar sind, lassen sich mit ihren aktuellen Werten im
+Notentext anzeigen, wenn man die Funktion
+@code{annotate-spacing} in der @code{\paper}-Umgebung einschaltet:
+
+@c need to have \book{} otherwise we get the separate systems. -hwn
+@lilypond[verbatim,quote]
+#(set-default-paper-size "a6" 'landscape)
+\book {
+  \score { { c4 } }
+  \paper { annotate-spacing = ##t }
+}
+@end lilypond
+
+@noindent
+Alle Layoutdimensionen werden in Notenlinienzwischenräumen
+aufgelistet, unabhängig von den Einheiten, mit denen sie in der
+@code{\paper}- oder @code{\layout}-Umgebung definiert worden
+sind.  In dem letzten Beispiel hat @code{paper-height} einen Wert von
+59.75 Notenlinienzwischenräumen und @code{staff-size}
+Systemhöhe) ist 20 Punkte.  Dabei gilt:
+
+@multitable {1 Notenlinienzwischenraum} {Systemgröße)/4 * (25.4/72.27) mm}
+
+@item 1 Punkt
+@tab = (25.4/72.27) mm
+
+@item 1 Notenlinienzwischenraum
+@tab = (@code{staff-size})/4 pts
+@item
+@tab = (@code{staff-size})/4 * (25.4/72.27) mm
+
+@end multitable
+
+In diesem Fall ist ein @code{staff-space} (Notenlinienzwischenraum)
+etwa gleich 1.757 mm.  Deshalb entspricht der Wert von 95.75
+@code{staff-space} für @code{paper-height} (Papierhöhe) 105 mm,
+die Höhe eines quer gelegten A6-Papiers.  Die Paare (@var{a},@var{b}) sind
+Intervalle, wobei @var{a} der untere Rand und @var{b} der
+obere Rand des Intervalls.
+
+@seealso
+
+Notationsreferenz:
+@ref{Setting the staff size}
+
+Schnipsel:
+@rlsr{Spacing}.
 
 
 @node Changing spacing
 @subsection Changing spacing
 
-Manchmal bleiben nur noch ein oder zwei Systeme auf der 
-letzten Seite übrig. Das ist immer ärgerlich, besonders 
-wenn es scheint, dass auf den vorigen Seiten genug Platz 
-ist, um die Systeme noch unterzubringen.
+Die Ausgabe von @code{annotate-spacing} bietet sehr viele
+Details zu den vertikalen Dimensionen einer Paritur.  Zu Information,
+wie Seitenränder und andere Layout-Variablen geändert werden
+können, siehe @ref{Page formatting}.
 
-Wenn man versucht, das Layout zu verändern, kommt einem 
-der Befehl @code{annotate-spacing} zu Hilfe. Mit diesem 
-Befehl erhält man die Werte von verschiedenen Abstandsbefehlen 
-ausgedruckt, mehr Information im Kapitel @ref{Displaying spacing}.
-Anhand dieser Angaben kann dann entschieden werden, welche 
-Werte verändert werden müssen.
-
-Neben Rändern gibt es nämlich weitere Optionen, Platz zu sparen:
+Neben Rändern gibt es einige weitere Optionen, Platz zu sparen:
 
 @itemize
 @item
@@ -285,37 +2640,70 @@ nur auf einer Zeile gedruckt werden.
 Ein anderes Beispiel ist es, Dynamik-Zeichen, die besonders 
 weit @qq{hervorstehen}, zu verschieben.
 
-@lilypond[verbatim,quote,fragment]
+@lilypond[verbatim,quote]
 \relative c' {
   e4 c g\f c
-  \override DynamicLineSpanner #'padding = #-1.8
-  \override DynamicText #'extra-offset = #'( -2.1 . 0)
+  \override DynamicText #'extra-offset = #'( -2.2 . 2.0)
   e4 c g\f c
 }
 @end lilypond
 
 @item
 Die horizontalen Abstände können mit der 
- @code{SpacingSpanner}-Eigenschaft verändert werden.  Siehe
-@ref{Changing horizontal spacing} für Einzelheiten.
+@code{SpacingSpanner}-Eigenschaft verändert werden.  Siehe
+@ref{Changing horizontal spacing} für Einzelheiten.  Dieses
+Beispiel zeigt die normalen Abstände:
 
 @lilypond[verbatim,quote]
 \score {
   \relative c'' {
-    g4 e e2 | f4 d d2 | c4 d e f | g4 g g2 |
-    g4 e e2 | f4 d d2 | c4 e g g | c,1 |
-    d4 d d d | d4 e f2 | e4 e e e | e4 f g2 |
-    g4 e e2 | f4 d d2 | c4 e g g | c,1 |
+    g4 e e2 |
+    f4 d d2 |
+    c4 d e f |
+    g4 g g2 |
+    g4 e e2 |
+  }
+}
+@end lilypond
+
+@noindent
+Das nächste Beispiel verändert @code{common-shortest-duration} (die
+häufigste kürzeste Note) von @code{1/4} zu @code{1/2}.  Die Viertelnote
+ist dennoch die häufigste Note in diesem Abschnitt, sodass der
+Notentext zusammengedrängt, wird, wenn eine Halbe als Standard
+angegeben wird:
+
+@lilypond[verbatim,quote]
+\score {
+  \relative c'' {
+    g4 e e2 |
+    f4 d d2 |
+    c4 d e f |
+    g4 g g2 |
+    g4 e e2 |
   }
   \layout {
     \context {
       \Score
       \override SpacingSpanner
-                #'base-shortest-duration = #(ly:make-moment 1 4)
+        #'common-shortest-duration = #(ly:make-moment 1 2)
     }
   }
 }
 @end lilypond
 
+@noindent
+Die @code{common-shortest-duration}-Eigenschaft kann nicht
+dynamisch verändert werden, darum muss sie immer in der
+@code{\context}-Umgebung definiert werden und wirkt sich somit
+auf eine ganze @code{\score}-Umgebung aus.
+
 @end itemize
 
+@seealso
+Notationsreferenz:
+@ref{Page formatting},
+@ref{Changing horizontal spacing}.
+
+Schnipsel:
+@rlsr{Spacing}.
index cdafdd8887577db9b8267375c40ded611f790cfa..726894174d7afda9406a320b3ec32968b81a39cf 100644 (file)
@@ -1,22 +1,22 @@
 @c -*- coding: utf-8; mode: texinfo; -*-
 @ignore
-    Translation of GIT committish: b54fc6953a8d70a3c51e8c3d0cbf9b3fe9652d78
+    Translation of GIT committish: 499a511d4166feaada31114e097f86b5e0c56421
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @node Specialist notation
 @chapter Specialist notation
 
-This chapter explains how to create musical notation for specific
-types of instrument or in specific styles.
+Dieser Abschnitt erklärt, wie Notation erstellt wird, die nur für ein
+bestimmtes Instrument oder einen Stil eingesetzt wird.
 
 @menu
 * Vocal music::
-* Keyboard instruments::
+* Keyboard and other multi-staff instruments::
 * Unfretted string instruments::
 * Fretted string instruments::
 * Percussion::
index b3bf3b044d42ad9e57ec7eb454af552b8eee6b70..4895c2e9049bb8fbd2b30cc15f4612fd68bad24e 100644 (file)
@@ -1,20 +1,25 @@
 @c -*- coding: utf-8; mode: texinfo; -*-
 @ignore
-    Translation of GIT committish: d0614c27e88dc7bd3993f3744a388749ba93b267
+    Translation of GIT committish: 499a511d4166feaada31114e097f86b5e0c56421
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @node Staff notation
 @section Staff notation
 
 @lilypondfile[quote]{staff-headword.ly}
 
+Dieser Abschnitt zeigt, wie die Erscheinung von Systemen beeinflusst
+wird, wie Partituren mit mehr als einem System gesetzt werden und wie
+man Aufführungsanweisungen und Stichnoten zu einzelnen Systemen hinzufügt.
+
 @menu
-* Displaying staves::           
+* Displaying staves:: 
+* Modifying single staves::          
 * Writing parts::               
 @end menu
 
 @node Displaying staves
 @subsection Displaying staves
 
+Dieser Abschnitt zeigt unterschiedliche Methoden, Notensysteme und 
+Gruppen von Systemen zu erstellen.
+
 @menu
-* System start delimiters::     
-* Staff symbol::                
-* Hiding staves::               
+* Instantiating new staves::
+* Grouping staves::
+* Nested staff groups::
 @end menu
 
-@node System start delimiters
-@unnumberedsubsubsec System start delimiters
+@node Instantiating new staves
+@unnumberedsubsubsec Instantiating new staves
 
 @cindex Beginn eines Notensystems
+@cindex Notensystem, neu
+@cindex Percussionsnotensystem
+@cindex Perkussionsnotensystem
+@cindex einzelnes Notensystem
+@cindex rhythmisches Notensystem
+@cindex Tabulatursystem
+@cindex Tabulatur
+@cindex Gregorianischer Choral, Transkription
+@cindex neues Notensystem
+
+@funindex \drummode
+@funindex drummode
+
+@notation{Notensysteme} (engl. @notation{staff}, Pl. @notation{staves})
+werden mit dem @code{\new} oder @code{\context}-Befehl erstellt.  Zu
+Einzelheiten siehe
+@ref{Creating contexts}.
+
+Der einfachste Notensystem-Kontext ist @code{Staff}:
+
+@lilypond[verbatim,quote,relative=2]
+\new Staff { c4 d e f }
+@end lilypond
+
+@code{DrumStaff} (Perkussionsnotensystem) erstellt ein Notensystem
+mit fünf Linien, das für ein typisches Schlagzeug eingerichtet ist.
+Für jedes Instrument werden unterschiedliche Symbole dargestellt.
+Die Instrumente werden innerhalb der
+@code{drummode}-Umgebung gesetzt, wo jedes Instrument seine eigene
+Bezeichnung hat.  Zu Einzelheiten siehe
+@ref{Percussion staves}.
+
+@lilypond[verbatim,quote]
+\new DrumStaff {
+  \drummode { cymc hh ss tomh }
+}
+@end lilypond
+
+@code{RhythmicStaff} (Rhythmus-System) erstellt ein Notensystem mit
+nur einer Notenlinie, auf welcher nur die rhythmischen Werte der
+eingegebenen Noten dargestellt werden.  Die wirklichen Längen bleiben
+erhalten.  Zu Einzelheiten, siehe
+@ref{Showing melody rhythms}.
+
+@lilypond[verbatim,quote,relative=2]
+\new RhythmicStaff { c4 d e f }
+@end lilypond
+
+@code{TabStaff} (Tabulatursystem) erstellt eine Tabulatur mit sechs
+Saiten in der üblichen Gitarrenstimmung.  Zu Einzelheiten siehe
+@ref{Default tablatures}.
+
+@lilypond[verbatim,quote,relative=2]
+\new TabStaff { c4 d e f }
+@end lilypond
+
+Es gibt zwei Notensysteme, die zur Notation von Alter Musik eingesetzt
+werden: @code{MensuralStaff} and @code{VaticanaStaff}.  Sie sind
+erklärt in
+@ref{Pre-defined contexts}.
+
+Das @code{GregorianTranscriptionStaff} (System zur Transkription des
+Gregorianischen Chorals) erstellt ein Notensystem, um modernen
+Gregorianischen Choral zu notieren.  Es hat keine Notenlinien.
+
+@lilypond[verbatim,quote,relative=2]
+\new GregorianTranscriptionStaff { c4 d e f e d }
+@end lilypond
+
+
+Neue Notensystem-Kontexte können selber definiert werden.  Zu Einzelheiten,
+siehe
+@ref{Defining new contexts}.
+
+
+@seealso
+Glossar:
+@rglos{staff},
+@rglos{staves}.
+
+Notationsreferenz:
+@ref{Creating contexts},
+@ref{Percussion staves},
+@ref{Showing melody rhythms},
+@ref{Default tablatures},
+@ref{Pre-defined contexts},
+@ref{Staff symbol},
+@ref{Gregorian chant contexts},
+@ref{Mensural contexts},
+@ref{Defining new contexts}.
+
+Schnipsel:
+@rlsr{Staff notation}.
+
+Referenz der Interna:
+@rinternals{Staff},
+@rinternals{DrumStaff},
+@rinternals{GregorianTranscriptionStaff},
+@rinternals{RhythmicStaff},
+@rinternals{TabStaff},
+@rinternals{MensuralStaff},
+@rinternals{VaticanaStaff},
+@rinternals{StaffSymbol}.
+
+
+@node Grouping staves
+@unnumberedsubsubsec Grouping staves
+
 @cindex Systeme, mehrere
 @cindex Notensysteme, mehrere
 @cindex Klammer, vertikal
 @cindex Klammer, geschweift
+@cindex geschweifte Klammer
+@cindex Klaviersystem
+@cindex Akkolade
+@cindex Notensystemgruppe
+@cindex Notensysteme, gruppieren
 @cindex Partitur
 @cindex Systemgruppe
 @cindex Instrumentengruppe
 @cindex Stimmgruppe
 @cindex System, Chor
+@cindex Chorsystem
 
-Viele Partituren bestehen aus mehr als einem Notensystem. Diese Systeme 
-können auf vier unterschiedliche Arten verbunden werden:
+Es gibt verschiedene Kontexte, um einzelne Notensysteme zu gruppieren
+und einer Partitur zu verbinden.  Jeder Gruppenstil beeinflusst das
+Aussehen des Systemanfangs und das Verhalten der Taktlinien.
 
-@itemize @bullet
-@item Die Gruppe wird mit einer Klammer an der linken Seite geöffnet und 
-die Taktlinien sind verbunden. Das ist der Klaviersystem 
-(@rinternals{GrandStaff})-Kontext.
+Wenn kein Kontext angegeben ist, wird die Standardeinstellung eingesetzt:
+die Gruppe beginnt mit einer vertikalen Linie und die Taktlinien sind
+nicht verbunden.
 
-@lilypond[verbatim,ragged-right,quote]
-\new GrandStaff
-\relative <<
+@lilypond[verbatim,quote,relative=2]
+<<
+  \new Staff { c1 c }
   \new Staff { c1 c }
-  \new Staff { c c }
 >>
 @end lilypond
 
-@item Die Gruppe beginnt mit einer Klammer und die Taktlinien sind verbunden. 
-Dieses Verhalten erzeugt der Stimmgruppen 
-(@rinternals{StaffGroup})-Kontext.
+Im @code{StaffGroup}-Kontext die Gruppe mit einer eckigen Klammer
+begonnen und die Taktlinien durch alle Systeme gezogen.
 
-@lilypond[verbatim,ragged-right,quote]
-\new StaffGroup
-\relative <<
+@lilypond[verbatim,quote,relative=2]
+\new StaffGroup <<
+  \new Staff { c1 c }
   \new Staff { c1 c }
-  \new Staff { c c }
 >>
 @end lilypond
 
-@item Die Gruppe beginnt mit einer Klammer, aber die Taktlinien sind nicht 
-miteinander verbunden. Das wird mit dem Chorsystem 
-(@rinternals{ChoirStaff})-Kontext erreicht.
+In einem @code{ChoirStaff} (Chorsystem) beginnt die Gruppe mit einer
+eckigen Klammer, aber die Taktlinien sind nicht verbunden.
 
-@lilypond[verbatim,ragged-right,quote]
-\new ChoirStaff
-\relative <<
+@lilypond[verbatim,quote,relative=2]
+\new ChoirStaff <<
+  \new Staff { c1 c }
   \new Staff { c1 c }
-  \new Staff { c c }
 >>
 @end lilypond
 
-@item Die Gruppe beginnt mit einer vertikalen Linie. Taktlinien sind nicht 
-verbunden. Das ist die Standardeinstellung für eine Partitur.
+In einem @code{GrandStaff} (Akkolade) beginnt die Gruppe mit einer
+geschweiften Klammer und die Taktlinien sind durchgezogen.
 
-@lilypond[verbatim,ragged-right,quote]
-\relative <<
+@lilypond[verbatim,quote,relative=2]
+\new GrandStaff <<
+  \new Staff { c1 c }
   \new Staff { c1 c }
-  \new Staff { c c }
 >>
 @end lilypond
-@end itemize
+
+Der @code{PianoStaff}-(Klaviersystem)-Kontext ist identisch mit dem
+@code{GrandStaff}-Kontext, aber es ermöglicht zusätzlich direkt
+die Angabe einer Instrumentbezeichnung.  Zu Einzelheiten siehe
+@ref{Instrument names}.
+
+@lilypond[verbatim,quote,relative=2]
+\new PianoStaff <<
+  \set PianoStaff.instrumentName = #"Piano"
+  \new Staff { c1 c }
+  \new Staff { c1 c }
+>>
+@end lilypond
+
+Jede Systemgruppe stellt die Eigenschaft
+@code{systemStartDelimiter} (SystemBeginnBegrenzer) auf einen der
+folgenden Werte:
+@code{SystemStartBar}, @code{SystemStartBrace} oder
+@code{SystemStartBracket}.  Ein vierter Begrenzer,
+@code{SystemStartSquare}, ist auch erreichbar, aber man muss ihr
+explizit einstellen.
+
+Neue Systemgruppen können definiert werden.  Zu Einzelheiten siehe
+@ref{Defining new contexts}.
+
+
+@snippets
+
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{use-square-bracket-at-the-start-of-a-staff-group.ly}
+
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{display-bracket-with-only-one-staff-in-a-system.ly}
+
+@cindex Mensurstriche
+@cindex Renaissancemusik
+@cindex Transkription von Mensuralmusik
+@cindex Mensuralmusik, Transkription
+
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{mensurstriche-layout-bar-lines-between-the-staves.ly}
 
 
 @seealso
+Glossar:
+@rglos{brace},
+@rglos{bracket},
+@rglos{grand staff}.
+
+Notationsreferenz:
+@ref{Instrument names},
+@ref{Defining new contexts}.
+
+Schnipsel:
+@rlsr{Staff notation}.
 
-Die Definition der Taktlinien am Beginn jedes Systems werden mit 
-den Befehlen @rinternals{SystemStartBar}, @rinternals{SystemStartBrace} 
-und @rinternals{SystemStartBracket} festgelegt. Nur einer dieser 
-drei Typen wird in jedem Kontext erstellt, und dieser Typ wird durch 
-die @code{systemStartDelimiter}-Eigenschaft bestimmt.
+Referenz der Interna:
+@rinternals{Staff},
+@rinternals{StaffGroup},
+@rinternals{ChoirStaff},
+@rinternals{GrandStaff},
+@rinternals{PianoStaff},
+@rinternals{SystemStartBar},
+@rinternals{SystemStartBrace},
+@rinternals{SystemStartBracket},
+@rinternals{SystemStartSquare}.
 
 
-@commonprop
+@node Nested staff groups
+@unnumberedsubsubsec Nested staff groups
 
-Anfangsklammern können tief einander verschachtelt werden.
+@cindex System, geschachtelt
+@cindex Schachtelung von Systemen
+@cindex Verschachtelung von Systemen
+@cindex SystemBeginnBegrenzer, geschachtelt
+@cindex verschachtelte Systemklammern
+@cindex Klammern, Verschachteln
+@cindex geschweifte Klammern, Schachteln
+@cindex Systemgruppen, Verschachtelung
 
-@lilypond[quote,ragged-right,verbatim]
-\new StaffGroup
-\relative <<
-  \set StaffGroup.systemStartDelimiterHierarchy
-    = #'(SystemStartSquare (SystemStartBracket a (SystemStartSquare b)) d)
-  \new Staff { c1 }
-  \new Staff { c1 }
-  \new Staff { c1 }
-  \new Staff { c1 }
-  \new Staff { c1 }
+System-Gruppen können in beliebiger Tiefe geschachtelt werden.  In
+diesem Fall erstellt jeder neue, innen liegende Kontext eine neue
+Klammer außerhalb der Klammer der Systemgruppe, in der er sich
+befindet.
+
+@lilypond[verbatim,quote,relative=2]
+\new StaffGroup <<
+  \new Staff { c2 c | c2 c }
+  \new StaffGroup <<
+    \new Staff { g2 g | g2 g }
+    \new StaffGroup \with {
+      systemStartDelimiter = #'SystemStartSquare
+    }
+    <<
+      \new Staff { e2 e | e2 e }
+      \new Staff { c2 c | c2 c }
+    >>
+  >>
 >>
 @end lilypond
 
+Neue geschachtelte Systemgruppen können definiert werden.  Zu Einzelheiten siehe
+@ref{Defining new contexts}.
+
+
+@snippets
+
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{nesting-staves.ly}
+
+
+@seealso
+Notationsreferenz:
+@ref{Grouping staves},
+@ref{Instrument names},
+@ref{Defining new contexts}.
+
+Schnipsel:
+@rlsr{Staff notation}.
+
+Referenz der Interna:
+@rinternals{StaffGroup},
+@rinternals{ChoirStaff},
+@rinternals{SystemStartBar},
+@rinternals{SystemStartBrace},
+@rinternals{SystemStartBracket},
+@rinternals{SystemStartSquare}.
+
+
+@node Modifying single staves
+@subsection Modifying single staves
+
+Dieser Abschnitt zeigt, wie man bestimmte Eigenschaften eines Systems
+ändert -- etwa die Anzahld der Notenlinien oder die Größe des Systems.
+Es werden auch Methoden dargestellt, ein System zu beginnen und zu
+beenden sowie eine Methode, Ossia-Systeme zu erstellen.
+
+@menu
+* Staff symbol::
+* Ossia staves::
+* Hiding staves::
+@end menu
+
 
 @node Staff symbol
 @unnumberedsubsubsec Staff symbol
 
 @cindex Justierung von Notensystemen
 @cindex Notensysteme, Modifikation
+@cindex Notenlinien, Anzahl
+@cindex Notenlinien, Dicke
+@cindex Notenlinien, Einstellungen
+@cindex Staff symbol, Erstellen
+@cindex Notenlinien, Erstellen
+@cindex Dicke der Notenlinien einstellen
+@cindex Anzahl der Notenlinien einstellen
+@cindex Zahl der Notenlinien einstellen
+@cindex Hilfslinien, Einstellungen
+@cindex Hilfslinien, Abstände
+@cindex Abstand von Hilfslinien
+@cindex Einstellung von Hilfslinien
+@cindex Notensystem stoppen
+@cindex Notensystem beginnen
+@cindex Beginnen eines Notensystems
+@cindex Beenden eines Notensystems
+
+Die Linien eines Notensystems gehören zu dem 
+@code{StaffSymbol}-(NotensystemSymbol)-Grob.
+@code{StaffSymbol}-Eigenschaften können verändert werden, um die
+Erscheinung des Notensystems zu beeinflussen, aber sie müssen
+gesetzt werden, bevor das System erstellt wird.
 
-Noten, Dynamikzeichen usw. werden auf den Notenlinien angeordnet, die 
-sich zu einem Notensystem zusammenfassen lassen. Das Programm LilyPond 
-zeichnet diese Linien durch ein spezielles graphisches Objekt, 
-@code{staff symbol} (engl. @qq{staff} = Notensystem) genannt.
+Die Anzahl der Notenlinien kann verändert werden.  Die Position
+des Notenschlüssels und die Position von c' können geändert werden,
+um dem neuen System zu entsprechen.  Eine Erklärung findet sich
+im Schnipselabschnit in
+@ref{Clef}.
 
-Dieses Objekt kann bezüglich seiner Eigenschaften, wie Anzahl, Dicke und 
-Abstand der Linien verändert werden.
+@lilypond[verbatim,quote,relative=2]
+\new Staff \with {
+  \override StaffSymbol #'line-count = #3
+}
+{ d4 d d d }
+@end lilypond
+
+Die Liniendicke der Notenlinien kann verändert werden.  Die Dicke
+der Hilfslinien und Notenhälse wird auch beeinflusst, weil sie
+von der Notenliniendicke abhängen.
+
+@lilypond[verbatim,quote,relative=1]
+\new Staff \with {
+  \override StaffSymbol #'thickness = #3
+}
+{ e4 d c b }
+@end lilypond
+
+Die Dicke der Hilfslinien kann auch unabhängig von der
+Notenliniendicke verändert werden.  Die zwei Zahlen in dem Beispiel
+sind Faktoren, mit denen die Notenlinien-Dicke und der
+Notenlinienabstand multipliziert werden.  Die Addition beider
+Werte ergibt die Dicke der Hilfslinien.
+
+@lilypond[verbatim,quote,relative=1]
+\new Staff \with {
+  \override StaffSymbol #'ledger-line-thickness = #'(1 . 0.2)
+}
+{ e4 d c b }
+@end lilypond
+
+Der Abstand zwischen Notenlinien kann verändert werden.  Diese
+Einstellung wirkt sich auch auf den Abstand der Hilfslinien aus.
+
+@lilypond[verbatim,quote,relative=1]
+\new Staff \with {
+  \override StaffSymbol #'staff-space = #1.5
+}
+{ a4 b c d }
+@end lilypond
 
-@c Das wird gezeigt in den Beispieldateien 
-@c @lsr{staff,changing-the-number-of-lines-in-a-staff.ly} und
-@c @lsr{staff,changing-the-staff-size.ly}.
+Weitere Einzelheiten zu den Eigenschaften von @code{StaffSymbol} 
+findet sich in @rinternals{staff-symbol-interface}.
 
-Zusätzlich können Systeme beliebig begonnen und beendet werden. Das 
-geschieht mit den Befehlen @code{\startStaff} und @code{\stopStaff}.
+@cindex Notenlinien, beginnen
+@cindex Notenlinien, beenden
+@cindex Beenden von Notenlinien
+@cindex Beginnen von Notenlinien
+@cindex Beenden eines Systems
+@cindex System, beenden
+@cindex Notensystem, beenden
 
-@lilypond[verbatim,relative=2,fragment]
-b4 b
-\override Staff.StaffSymbol #'line-count = 2
-\stopStaff \startStaff
-b b
+@funindex \startStaff
+@funindex \stopStaff
+@funindex startStaff
+@funindex stopStaff
+
+Veränderungen der Eigenschaften eines Notensystems mitten in einer
+Partitur können zwischen die Befehle @code{\stopStaff} und
+@code{\startStaff} gesetzt werden:
+
+@lilypond[verbatim,quote,relative=2]
+c2 c
+\stopStaff
+\override Staff.StaffSymbol #'line-count = #2
+\startStaff
+b2 b
+\stopStaff
 \revert Staff.StaffSymbol #'line-count
-\stopStaff \startStaff
-b b
+\startStaff
+a2 a
+@end lilypond
+
+@noindent
+Die Befehle @code{\startStaff} und @code{\stopStaff} können
+benutzt werden, um ein Notensystem irgendwo zu beenden oder zu
+beginnen.
+
+@lilypond[verbatim,quote,relative=2]
+c4 b a2
+\stopStaff
+b4 c d2
+\startStaff
+e4 d c2
 @end lilypond
 
-Kombiniert mit verkleinerten Systemen, kann man diese Funktion etwa 
-benutzen, um Ossia-Abschnitte zu notieren. Siehe das Beispiel:
 
+@predefined
+@code{\startStaff},
+@code{\stopStaff}.
+@endpredefined
+
+
+@snippets
+
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{making-some-staff-lines-thicker-than-the-others.ly}
+
+
+@seealso
+Glossar:
+@rglos{line},
+@rglos{ledger line},
+@rglos{staff}.
+
+Notationsreferenz:
+@ref{Clef}.
+
+Schnipsel:
+@rlsr{Staff notation}.
+
+Referenz der Interna:
+@rinternals{StaffSymbol},
+@rinternals{staff-symbol-interface}.
+
+
+@knownissues
+
+Wenn die vertikale Position der Notenlinien manuell verändert wird,
+werden Taktlinien immer auf der Position 0 zentriert.  Somit muss
+die Distanz der äußeren Notenlinien vom Zentrum des
+Systems gleichgroß sein.
+
+
+@node Ossia staves
+@unnumberedsubsubsec Ossia staves
+
+@cindex Ossia-Systeme
 @cindex Ossia
+@cindex versteckte Notensysteme
+@cindex System, Größe verändern
+@cindex Notensystem, Größe verändern
+@cindex Größe von Notensystem verändern
 
-@c @lilypondfile{ossia.ly}
+@funindex \startStaff
+@funindex \stopStaff
+@funindex startStaff
+@funindex stopStaff
+
+@notation{Ossia}-Systeme können gesetzt werden, indem zwei
+gleichzeitige Notensysteme an der entsprechenden Position
+erstellt werden:
+
+@lilypond[verbatim,quote]
+\new Staff \relative c'' {
+  c4 b d c
+  <<
+    { c4 b d c }
+    \new Staff { e4 d f e }
+  >>
+  c4 b c2
+}
+@end lilypond
+
+@noindent
+Dieses Beispiel ist aber normalerweise nicht erwünscht.
+Um Ossia-Systeme zu setzen, die sich über dem eigentlichen
+System befinden, keine Takt- und Schlüsselangaben haben und kleiner
+gesetzt sind, müssen einige Optimierungen angewendet werden.  Im
+Handbuch zum Lernen wird eine Technik vorgestellt, mit der das
+gewünschte Ergebnis erreicht werden kann, beginnend in
+@rlearning{Nesting music expressions}.
+
+Das Beispiel unten setzt die 
+@code{alignAboveContext}-(oberhalbAusrichtenKontext)-Eigenschaft
+ein, um den Ossia-Abschnitt auszurichten.  Diese Methode
+bietet sich an, wenn nur einige Ossia-Systeme benötigt werden.
+
+@lilypond[verbatim,quote]
+\new Staff = main \relative c'' {
+  c4 b d c
+  <<
+    { c4 b d c }
+
+    \new Staff \with {
+      \remove "Time_signature_engraver"
+      alignAboveContext = #"main"
+      fontSize = #-3
+      \override StaffSymbol #'staff-space = #(magstep -3)
+      \override StaffSymbol #'thickness = #(magstep -3)
+      firstClef = ##f
+    }
+    { e4 d f e }
+  >>
+  c4 b c2
+}
+@end lilypond
+
+Wenn mehrere isolierte Ossia-Systeme gebraucht werden, kann es
+günstiger sein, einen leeren @code{Staff}-Kontext mit einer
+spezifischen @emph{Kontextidentifikation} zu erstellen.  Die
+Ossia-Abschnitte werden dann erstellt, indem dieser Kontext
+@emph{aufgerufen} wird und  mit @code{\startStaff} und
+@code{\stopStaff} an den richtigen Stellen sichtbar gemacht
+wird.  Der Vorteil dieser Methode zeigt sich, wenn man längere
+Stücke setzt.
+
+@lilypond[verbatim,quote,ragged-right]
+<<
+  \new Staff = ossia \with {
+    \remove "Time_signature_engraver"
+    \override Clef #'transparent = ##t
+    fontSize = #-3
+    \override StaffSymbol #'staff-space = #(magstep -3)
+    \override StaffSymbol #'thickness = #(magstep -3)
+  }
+  { \stopStaff s1*6 }
+
+  \new Staff \relative c' {
+    c4 b c2
+    <<
+      { e4 f e2 }
+      \context Staff = ossia {
+        \startStaff e4 g8 f e2 \stopStaff
+      }
+    >>
+    g4 a g2 \break
+    c4 b c2
+    <<
+      { g4 a g2 }
+      \context Staff = ossia {
+        \startStaff g4 e8 f g2 \stopStaff
+      }
+    >>
+    e4 d c2
+  }
+>>
+@end lilypond
+
+Man kann auch den @code{\RemoveEmptyStaffContext}-Befehl einsetzen,
+um Ossia-Systeme zu erstellen.  Diese Methode eignet sich am
+besten, wenn nach dem Ossia sofort ein Zeilenumbruch erfolgt.
+In diesem Fall müssen auch keine unsichtbaren Pausen eingesetzt
+werden; es reicht, @code{\startStaff} und @code{\stopStaff}
+einzusetzen.  Mehr Information zu @code{\RemoveEmptyStaffContext}
+findet sich in
+@ref{Hiding staves}.
+
+@lilypond[verbatim,quote,ragged-right]
+<<
+  \new Staff = ossia \with {
+    \remove "Time_signature_engraver"
+    \override Clef #'transparent = ##t
+    fontSize = #-3
+    \override StaffSymbol #'staff-space = #(magstep -3)
+    \override StaffSymbol #'thickness = #(magstep -3)
+  }
+  \new Staff \relative c' {
+    c4 b c2
+    e4 f e2
+    g4 a g2 \break
+    <<
+      { c4 b c2 }
+      \context Staff = ossia {
+        c4 e8 d c2 \stopStaff
+      }
+    >>
+    g4 a g2
+    e4 d c2
+  }
+>>
+
+\layout {
+  \context {
+    \RemoveEmptyStaffContext
+    \override VerticalAxisGroup #'remove-first = ##t
+  }
+}
+@end lilypond
+
+
+@snippets
+
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{vertically-aligning-ossias-and-lyrics.ly}
 
-@cindex Notenlinien, Anzahl
-@cindex Notenlinien, Dicke
-@cindex Dicke der Notenlinien einstellen
-@cindex Anzahl der Notenlinien einstellen
-@cindex Zahl der Notenlinien einstellen
 
 @seealso
+Glossar:
+@rglos{ossia},
+@rglos{staff},
+@rglos{Frenched staff}.
 
-Programmreferenz:
-@rinternals{StaffSymbol}.
+Handbuch zum Lernen:
+@rlearning{Nesting music expressions},
+@rlearning{Size of objects},
+@rlearning{Length and thickness of objects}.
 
-Beispiele:
+Notationsreferenz:
+@ref{Hiding staves}.
+
+Schnipsel:
 @rlsr{Staff notation}.
 
+Referenz der Interna:
+@rinternals{StaffSymbol}.
+
 
 @node Hiding staves
 @unnumberedsubsubsec Hiding staves
 
-@untranslated
+@cindex Systeme verstecken
+@cindex leere Systeme verstecken
+@cindex Verstecken von Systemen
+@cindex Systeme, leere
+@cindex Verschwinden von leeren Systemen
+
+@funindex \RemoveEmptyStaffContext
+@funindex RemoveEmptyStaffContext
+
+Die Notenlinien können entfernt werden, indem der
+@code{Staff_symbol_engraver} aus dem @code{Staff}-Kontext
+entfernt wird.  Alternativ kann auch @code{\stopStaff} 
+eingesetzt werden.
+
+@lilypond[verbatim,quote]
+\new Staff \with {
+  \remove "Staff_symbol_engraver"
+}
+\relative c''' { a8 f e16 d c b a2 }
+@end lilypond
+
+Leere Systeme können versteckt werden, wenn der
+@code{\RemoveEmptyStaffContext}-Befehl im @code{\layout}-Abschnitt
+benutzt wird.  In großen Orchesterpartituren wird dies oft
+verwendet, um die leeren Systeme von gerade nicht spielenden
+Instrumenten zu verstecken.  In der Standardeinstellung werden alle
+leeren Notenzeilen außer die des ersten Systems entfernt.
+
+@warning{Eine Notenzeile gilt als leer, wenn sie nur Ganztaktpausen,
+unsichtbare Noten, @code{\skip}-Befehle oder eine Kombination 
+der drei enthält.}
+
+@lilypond[verbatim,quote,ragged-right]
+\layout {
+  \context {
+    \RemoveEmptyStaffContext
+  }
+}
+
+\relative c' <<
+  \new Staff {
+    e4 f g a \break
+    b1 \break
+    a4 b c2
+  }
+  \new Staff {
+    c,4 d e f \break
+    R1 \break
+    f4 g c,2
+  }
+>>
+@end lilypond
+
+@cindex ossia
+
+@noindent
+@code{\RemoveEmptyStaffContext} kann auch eingesetzt werden,
+um Ossiaabschnitte zu erstellen.  Zu Einzelheiten, siehe
+@ref{Ossia staves}.
+
+@cindex Verstecken von Systemen der Alten Musik
+@cindex Verstecken von Rhythmus-Systemen
+
+@funindex \RemoveEmptyStaffContext
+@funindex RemoveEmptyStaffContext
+@funindex \AncientRemoveEmptyStaffContext
+@funindex \RemoveEmptyRhythmicStaffContext
+@funindex AncientRemoveEmptyStaffContext
+@funindex RemoveEmptyRhythmicStaffContext
+
+Der @code{\AncientRemoveEmptyStaffContext}-Befehl kann
+benutzt werden, um leere Takte in Notation der Alten Musik
+zu entfernen.  Gleichermaßen kann 
+@code{\RemoveEmptyRhythmicStaffContext} eingesetzt werden, um
+leere Takte in einem
+@code{RhythmicStaff}-Kontext zu entfernen.
+
+
+@predefined
+@code{\RemoveEmptyStaffContext},
+@code{\AncientRemoveEmptyStaffContext},
+@code{\RemoveEmptyRhythmicStaffContext}.
+@endpredefined
+
+
+@snippets
+
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{removing-the-first-empty-line.ly}
+
+
+@seealso
+Glossar:
+@rglos{Frenched staff}.
+
+Notationsreferenz:
+@ref{Staff symbol},
+@ref{Ossia staves}.
+
+Schnipsel:
+@rlsr{Staff notation}.
+
+Referenz der Interna:
+@rinternals{ChordNames},
+@rinternals{FiguredBass},
+@rinternals{Lyrics},
+@rinternals{Staff},
+@rinternals{VerticalAxisGroup},
+@rinternals{Staff_symbol_engraver}.
+
+
+@knownissues
+
+Wenn man den @code{Staff_symbol_engraver} entfernt, werden auch
+die Taktlinien entfernt.  Wenn eine sichtbare Taktlinie
+angefordert wird, kann es zu Formatierungsfehlern kommen.  In
+diesem Fall sollten folgende Befehle eingesetzt werden, anstatt
+den Engraver zu entfernen:
+
+@example
+\override StaffSymbol #'stencil = ##f
+\override NoteHead #'no-ledgers = ##t
+@end example
+
 
 
 @node Writing parts
 @subsection Writing parts
 
+Dieser Abschnitt zeigt, wie man Tempo-Anweisungen und
+Instrumentenbezeichnungen einfügt.  Es werden auch Möglichkeiten
+vorgestellt, andere Stimmen zu zitieren und Stichnoten zu
+formatieren.
+
 @menu
-* Metronome marks::             
-* Instrument names::            
-* Quoting other voices::        
-* Formatting cue notes::        
+* Metronome marks::
+* Instrument names::
+* Quoting other voices::
+* Formatting cue notes::
 @end menu
 
+
 @node Metronome marks
 @unnumberedsubsubsec Metronome marks
 
-@untranslated
+@cindex Tempo
+@cindex Metronombezeichnung
+@cindex Tempobezeichnung
+@cindex Aufführungsanweisung: Tempo
+
+@funindex tempo
+@funindex \tempo
+
+Eine Metronomanweisung wird wie folgt erstellt:
+
+@lilypond[verbatim,quote,relative=1]
+\tempo 4 = 120
+c2 d
+e4. d8 c2
+@end lilypond
+
+Anstelle dessen kann auch Text als Argument angegeben werden:
+
+@lilypond[verbatim,quote,relative=2]
+\tempo "Allegretto"
+c4 e d c
+b4. a16 b c4 r4
+@end lilypond
+
+Wenn eine Metronombezeichnung und Text kombiniert wird, wird
+die Metronombezeichnung automatisch in Klammern gesetzt:
+
+@lilypond[verbatim,quote,relative=2]
+\tempo "Allegro" 4 = 160
+g4 c d e
+d4 b g2
+@end lilypond
+
+Der Text kann ein beliebiges Textbeschriftungsobjekt sein:
+
+@lilypond[verbatim,quote,relative=2]
+\tempo \markup { \italic Faster } 4 = 132
+a8-. r8 b-. r gis-. r a-. r
+@end lilypond
+
+Eine Metronombezeichnung in Klammern ohne Text kann erstellt
+werden, indem eine leere Zeichenkette hinzugefügt wird:
+
+@lilypond[verbatim,quote,relative=2]
+\tempo "" 8 = 96
+d4 g e c
+@end lilypond
+
+
+@snippets
+
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{printing-metronome-and-rehearsal-marks-below-the-staff.ly}
+
+@c perhaps also an example of how to move it horizontally?
+
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{changing-the-tempo-without-a-metronome-mark.ly}
+
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{creating-metronome-marks-in-markup-mode.ly}
+
+Zu Einzelheiten siehe @ref{Formatting text}.
+
+
+@seealso
+Glossar:
+@rglos{metronome},
+@rglos{metronomic indication},
+@rglos{tempo indication},
+@rglos{metronome mark}.
+
+Notationsreferenz:
+@ref{Formatting text},
+@ref{MIDI output}.
+
+Schnipsel:
+@rlsr{Staff notation}.
+
+Referenz der Interna:
+@rinternals{MetronomeMark}.
 
 
 @node Instrument names
 @unnumberedsubsubsec Instrument names
 
-@untranslated
+@cindex Instrumentenbezeichnungen
+@cindex kurze Instrumentenbezeichnungen
+
+Instrumentbezeichnungen können an der linken Seite von Notensystemen
+im @code{Staff}- und @code{PianoStaff}-Kontext gesetzt
+werden.  Der Wert von @code{instrumentName} wird für das erste
+System eingesetzt, der Wert von @code{shortInstrumentName} für
+alle weiteren Systeme.
+
+@lilypond[verbatim,quote,ragged-right,relative=1]
+\set Staff.instrumentName = #"Violin "
+\set Staff.shortInstrumentName = #"Vln "
+c4.. g'16 c4.. g'16
+\break
+c1
+@end lilypond
+
+Mit dem Textbeschriftungsmodus können auch komplizierte
+Instrumentenbezeichnungen erstellt werden:
+
+@lilypond[verbatim,quote,relative=2]
+\set Staff.instrumentName = \markup {
+  \column { "Clarinetti"
+            \line { "in B" \smaller \flat } } }
+c4 c,16 d e f g2
+@end lilypond
+
+@cindex Instrumentenbezeichnung, Notation
+
+Wenn zwei oder mehr Systeme gruppiert werden, werden die
+Instrumentenbezeichnungen automatisch zentriert.  Um auch
+mehrzeilige Instrumentenbezeichnungen zentriert zu setzen, muss
+@code{\center-column} benutzt werden:
+
+@lilypond[verbatim,quote,indent=1.5\cm,relative=2]
+<<
+  \new Staff {
+    \set Staff.instrumentName = #"Flute"
+    f2 g4 f
+  }
+  \new Staff {
+    \set Staff.instrumentName = \markup \center-column {
+      Clarinet
+      \line { "in B" \smaller \flat }
+    }
+    c4 b c2
+  }
+>>
+@end lilypond
+
+@cindex Einzug
+
+@funindex indent
+@funindex short-indent
+
+Wenn die Instrumentenbezeichnung zu lang ist, kann es vorkommen,
+dass die Bezeichnungen in einer Gruppe nicht zentriert werden.
+Um dennoch eine Zentrierung zu erhalten, müssen die Werte des
+Einzugs (@code{indent} und @code{short-indent}) vergrößert werden.
+Zu Einzelheiten siehe @ref{Horizontal dimensions}.
+
+@lilypond[verbatim,quote,ragged-right]
+\layout {
+  indent = 3.0\cm
+  short-indent = 1.5\cm
+}
+
+\relative c'' <<
+  \new Staff {
+    \set Staff.instrumentName = #"Alto Flute in G"
+    \set Staff.shortInstrumentName = #"Fl."
+    f2 g4 f \break
+    g4 f g2
+  }
+  \new Staff {
+    \set Staff.instrumentName = #"Clarinet"
+    \set Staff.shortInstrumentName = #"Clar."
+    c,4 b c2 \break
+    c2 b4 c
+  }
+>>
+@end lilypond
+
+Um Instrumentenbezeichnungen zu anderen Kontexten (wie etwa
+@code{GrandStaff}, @code{ChoirStaff} oder @code{StaffGroup})
+hinzuzufügen, muss der @code{Instrument_name_engraver} dem
+entsprechenden Kontext hinzugefügt werden.  Zu Einzelheiten
+siehe @ref{Modifying context plug-ins}.
+
+@cindex Ändern von Instrumentenbezeichnungn
+@cindex Instrumentenbezeichnungen, wechseln
+@cindex Wechseln von Instrumentenbezeichnungen
+
+Instrumentenbezeichnungen können mitten in einer Partitur
+geändert werden:
+
+@lilypond[verbatim,quote,ragged-right,relative=1]
+\set Staff.instrumentName = #"First"
+\set Staff.shortInstrumentName = #"one"
+c1 c c c \break
+c1 c c c \break
+\set Staff.instrumentName = #"Second"
+\set Staff.shortInstrumentName = #"two"
+c1 c c c \break
+c1 c c c \break
+@end lilypond
+
+@cindex Instrumentenwechsel
+@cindex Wechsel von Instrument
+
+@funindex \addInstrumentDefinition
+@funindex addInstrumentDefinition
+@funindex \instrumentSwitch
+@funindex instrumentSwitch
+
+Wenn das Instrument gewechselt werden soll, kann der Befehl
+@code{\addInstrumentDefinition} in Begleitung von
+@code{\instrumentSwitch} benutzt werden, um eine detaillierte
+Auflistung aller notwendigen Änderungen für den Wechsel zu
+definieren.  Der @code{\addInstrumentDefinition}-Befehl hat
+zwei Argumente: eine Identifikation und eine Assosiationsliste
+von Kontexteigenschaften und Werten, die für dieses Instrument
+benutzt werden müssen.  Der Befehl muss sich auf der höchsten
+Ebene in der Eingabedatei befinden.  @code{\instrumentSwitch}
+wird dann benutzt, um den Wechsel vorzunhemen:
+
+@lilypond[verbatim,quote,ragged-right]
+\addInstrumentDefinition #"contrabassoon"
+  #`((instrumentTransposition . ,(ly:make-pitch -1 0 0))
+     (shortInstrumentName . "Cbsn.")
+     (clefGlyph . "clefs.F")
+     (middleCPosition . 6)
+     (clefPosition . 2)
+     (instrumentCueName . ,(make-bold-markup "cbsn."))
+     (midiInstrument . "bassoon"))
+
+\new Staff \with {
+  instrumentName = #"Bassoon"
+}
+\relative c' {
+  \clef tenor
+  \compressFullBarRests
+  c2 g'
+  R1*16
+  \instrumentSwitch "contrabassoon"
+  c,,2 g \break
+  c,1 ~ | c1
+}
+@end lilypond
+
+
+@seealso
+Notationsreferenz:
+@ref{Horizontal dimensions},
+@ref{Modifying context plug-ins}.
+
+Schnipsel:
+@rlsr{Staff notation}.
+
+Referenz der Interna:
+@rinternals{InstrumentName},
+@rinternals{PianoStaff},
+@rinternals{Staff}.
 
 
 @node Quoting other voices
 @unnumberedsubsubsec Quoting other voices
 
-@untranslated
+@cindex Stichnoten
+@cindex Zitieren von anderen Stimmen
+@cindex Fragmente
+@cindex Stimmen, zitieren
+
+@funindex \addQuote
+@funindex addQuote
+@funindex \quoteDuring
+@funindex quoteDuring
+@funindex \transposition
+@funindex transposition
+
+Es kommt sehr oft vor, dass eine Orchesterstimme die gleichen
+Noten wie eine andere spielt.  So können etwa die ersten und
+zweiten Geigen für eine Passage die gleichen Noten haben.  In
+LilyPond kann man das erreichen, indem eine Stimme von der
+anderen @emph{zitiert}, sodass man die Noten nicht nocheinmal
+eingeben muss.
+
+Bevor eine Stimme zitiert werden kann, muss der
+@code{\addQuote}-Befehl benutzt werden, um das zitierbare
+Fragment zu kennzeichnen.  Dieser Befehl muss auf der höchsten
+Ebene der Eingabedatei benutzt werden.  Das erste Argument
+dient zur Identifikation, das zweite ein musikalischer Ausdruck:
+
+@example
+flute = \relative c'' @{
+  a4 gis g gis
+@}
+\addQuote "flute" @{ \flute @}
+@end example
+
+Der @code{\quoteDuring}-Befehl wird benutzt, um den Punkt
+anzuzeigen, an dem das Zitat beginnt.  Er benötigt zwei
+Argumente: die Bezeichnung der zitierten Stimme, wie vorher mit
+@code{\addQuote} definiert, und einen musikalischen Ausdruck,
+der Angibt, wie lange das Zitat dauern soll; normalerweise
+Ganztaktpausen oder unsichtbare Noten.  Die entsprechenden
+Noten der zitierten Stimme wird an der Stelle in die aktuelle
+Stimme eingefügt:
+
+@lilypond[verbatim,quote]
+flute = \relative c'' {
+  a4 gis g gis
+}
+\addQuote "flute" { \flute }
+
+\relative c' {
+  c4 cis \quoteDuring #"flute" { s2 }
+}
+@end lilypond
+
+Wenn der musikalische Ausdruck, der mit dem
+@code{\quoteDuring}-Befehl benutzt wird, etwas anderes
+als unsichtbare Noten oder Ganztaktpausen enthält, wird eine
+polyphone Stelle begonnen, was meistens nicht erwünscht ist:
+
+@lilypond[verbatim,quote]
+flute = \relative c'' {
+  a4 gis g gis
+}
+\addQuote "flute" { \flute }
+
+\relative c' {
+  c4 cis \quoteDuring #"flute" { c4 b }
+}
+@end lilypond
+
+Zitate erkennen die Einstellungen von transponierten Instrumenten
+sowohl der Quell- als auch der Zielstimme, wenn der
+@code{\transposition}-Befehl eingesetzt wird.  Zu Einzelheiten
+über @code{\transposition} siehe
+@ref{Instrument transpositions}.
+
+@lilypond[verbatim,quote]
+clarinet = \relative c'' {
+  \transposition bes
+  a4 gis g gis
+}
+\addQuote "clarinet" { \clarinet }
+
+\relative c' {
+  c4 cis \quoteDuring #"clarinet" { s2 }
+}
+@end lilypond
+
+Es ist möglich, Zitate mit eindeutigen Bezeichnungen zu versehen
+(unter Benutzung von @emph{tags}), um sie auf unterschiedliche
+Weise zu verarbeiten.  Einzelheiten zu diesem Vorgehen werden
+vorgestellt in
+@ref{Using tags}.
+
+
+@snippets
+
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{quoting-another-voice-with-transposition.ly}
+
+@cindex note-event
+@cindex articulation-event
+@cindex dynamic-event
+@cindex rest-event
+
+@funindex quotedEventTypes
+
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{quoting-another-voice.ly}
+
+
+@seealso
+Notationsreferenz:
+@ref{Instrument transpositions},
+@ref{Using tags}.
+
+Schnipsel:
+@rlsr{Staff notation}.
+
+Referenz der Interna:
+@rinternals{QuoteMusic},
+@rinternals{Voice}.
+
+
+@knownissues
+
+Nur der Inhalt der ersten Stimme innerhalb eines
+@code{\addQuote}-Befehls wird für das Zitat herangezogen, die
+Variable @var{Noten} kann also keine @code{\new} oder @code{\context Voice}-Einheiten enthalten, die zu einer anderen
+Stimme wechseln würden.
+
+Ziernoten und Vorschläge können nicht zitiert werden und können
+sogar dazu führen, dass LilyPond abstürzt.
+
+Wenn geschachtelte Triolen zitiert werden, ist das Notenbild
+unter Umständen sehr schlecht.
+
+In früheren LilyPond-Versionen (vor 2.11) wurde der Befehl
+@code{addQuote} vollständig in Kleinbuchstaben geschrieben:
+@code{\addquote}.
 
 
 @node Formatting cue notes
 @unnumberedsubsubsec Formatting cue notes
 
-@untranslated
+@cindex Stichnoten
+@cindex Noten, Stichnoten
+@cindex Stichnoten, Formatierung
+@cindex Fragmente
+@cindex andere Stimmen zitieren
+@cindex Zitieren von anderen Stimmen
+
+@funindex \cueDuring
+@funindex cueDuring
+
+Der vorige Abschnitt zeigt, wie man Zitate erstellt.  Der
+@code{\cueDuring}-Befehl (engl. cue note = Stichnote)
+ist eine spezialisierte Form des
+@code{\quoteDuring}-Befehls, der insbesondere dazu dient,
+Stichnoten zu einer Stimme hinzuzufügen.  Seine Syntax lautet:
+
+@example
+\cueDuring #@var{Stimmenbezeichnung} #@var{Stimme} @var{Noten}
+@end example
+
+Dieser Befehl kopiert die entsprechenden Takte von
+@var{Stimmenbezeichnung} in einen @code{CueVoice}-Kontext.  Eine
+@code{CueVoice} (Stichnoten-Stimme) wird implizit erstellt
+und erscheint simultan mit @var{Noten}, wobei folglich eine
+polyphone Situation entsteht.  Das @var{Stimme}-Argument entscheidet,
+ob die Stichnoten als eine erste oder zweite Stimme
+eingefügt werden sollen; @code{UP} entspricht der ersten Stimme,
+@code{DOWN} der zweiten.
+
+@lilypond[verbatim,quote]
+oboe = \relative c'' {
+  r2 r8 d16 f e g f a
+  g8 g16 g g2.
+}
+\addQuote "oboe" { \oboe }
+
+\new Voice \relative c'' {
+  \cueDuring #"oboe" #UP { R1 }
+  g2 c,
+}
+@end lilypond
+
+@noindent
+In diesem Beispiel muss der @code{Voice}-Kontext explizit
+begonnen werden, damit nicht der gesamte musikalische Ausdruck
+als Stichnoten-Stimme formatiert wird.
+
+Die Bezeichnung des Instruments, von dem die Stichnoten genommen
+werden, kann auch ausgegeben werden, wenn die Eigenschaft
+@code{instrumentCueName} im @code{CueVoice}-Kontext definiert wird.
+
+@lilypond[verbatim,quote]
+oboe = \relative c''' {
+  g4 r8 e16 f e4 d
+}
+\addQuote "oboe" { \oboe }
+
+\new Staff \relative c'' <<
+  \new CueVoice \with {
+    instrumentCueName = "ob."
+  }
+  \new Voice {
+    \cueDuring #"oboe" #UP { R1 }
+    g4. b8 d2
+  }
+>>
+@end lilypond
+
+@cindex Entfernen von Stichnoten
+@cindex Stichnoten, entfernen
+
+@funindex \killCues
+@funindex killCues
+@funindex \transposedCueDuring
+@funindex transposedCueDuring
+
+Zusätzlich zu der Instrumentenbezeichnung kann auch die
+Bezeichnung des Originalinstruments ausgegeben werden, und alle
+Änderungen, die für die Stichnoten gemacht wurden, müssen
+wieder rückgängig gemacht werden.  Das kann mit den Befehlen
+@code{\addInstrumentDefinition} und @code{\instrumentSwitch}
+vorgenommen werden.  Ein Beispiel und mehr Information findet
+sich in
+@ref{Instrument names}.
+
+Der @code{\killCues}-Befehl entfernt Stichnoten aus einem
+musikalischen Ausdruck.  Das kann nützlich sein, wenn die
+Stichnoten von einer Stimme entfernt werden sollen, aber in
+einer anderen Edition benötigt werden.
+
+@lilypond[verbatim,quote]
+flute = \relative c''' {
+  r2 cis2 r2 dis2
+}
+\addQuote "flute" { \flute }
+
+\new Voice \relative c'' {
+  \killCues {
+    \cueDuring #"flute" #UP { R1 }
+    g4. b8 d2
+  }
+}
+@end lilypond
+
+Der @code{\transposedCueDuring}-Befehl bietet sich an, wenn man
+Stichnoten eines Instrumentes mit einem vollständig anderen
+Register hinzufügen will.  Die Syntax ähnelt der des
+@code{\cueDuring}-Befehls, aber ein zusätzliches Argument
+wird benötigt, das die Transposition der Stichnoten-Stimme
+bezeichnet.  Mehr Information zu Transposition siehe
+@ref{Instrument transpositions}.
+
+@lilypond[verbatim,quote]
+piccolo = \relative c''' {
+  \clef "treble^8"
+  R1
+  c8 c c e g2
+  a4 g g2
+}
+\addQuote "piccolo" { \piccolo }
+
+cbassoon = \relative c, {
+  \clef "bass_8"
+  c4 r g r
+  \transposedCueDuring #"piccolo" #UP c,, { R1 }
+  c4 r g r
+}
+
+<<
+  \new Staff = "piccolo" \piccolo
+  \new Staff = "cbassoon" \cbassoon
+>>
+@end lilypond
+
+Es ist möglich, Zitate mit eindeutigen Bezeichnungen zu versehen
+(unter Benutzung von @emph{tags}), um sie auf unterschiedliche
+Weise zu verarbeiten.  Einzelheiten zu diesem Vorgehen werden
+vorgestellt in
+@ref{Using tags}.
+
+
+@seealso
+Notationsreferenz:
+@ref{Instrument transpositions},
+@ref{Instrument names},
+@ref{Using tags}.
+
+Schnipsel:
+@rlsr{Staff notation}.
+
+Referenz der Interna:
+@rinternals{CueVoice},
+@rinternals{Voice}.
+
+
+@knownissues
 
+Zusammenstöße können zwischen Pausen der Hauptstimme und 
+den Stichnoten des @code{CueVoice}-Kontexts auftreten.
index 4d15e9a8d079a97e22640b17b314af7cb7bc4501..dfb362915275411a923532810a594d172d05eca7 100644 (file)
@@ -1,13 +1,13 @@
 @c -*- coding: utf-8; mode: texinfo; -*-
 @c This file is part of lilypond-learning.tely
 @ignore
-    Translation of GIT committish: d650ba9e33bf95a14c8b99882142d04acf8435d5
+    Translation of GIT committish: 499a511d4166feaada31114e097f86b5e0c56421
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @node Templates
 @appendix Templates
@@ -19,13 +19,13 @@ schönen Notenbild erfreuen!
 
 @c bad node name for ancient notation to avoid conflict
 @menu
-* Single staff::                
-* Piano templates::             
-* String quartet::              
-* Vocal ensembles::             
-* Ancient notation templates::  
-* Jazz combo::                  
-* Lilypond-book templates::     
+* Single staff::
+* Piano templates::
+* String quartet::
+* Vocal ensembles::
+* Ancient notation templates::
+* Jazz combo::
+* Lilypond-book templates::
 @end menu
 
 
@@ -162,7 +162,7 @@ violin concerto as TchaikovskyPI, whereas perhaps you wish to print
 
 @ The `line-width' is for \header.
 @li lypond[quote,verbatim,ragged-right,line-width]
-\version "2.11.61"
+\version "2.12.0"
 \header {
   dedication = "dedication"
   title = "Title"
index a256a7fc702322bc3e3df6f8c7a00661dc0d3804..6c0d8702196abe9ed17b38434a315c21c5925f8d 100644 (file)
@@ -1,18 +1,25 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*-
 @c This file is part of lilypond.tely
 @ignore
-    Translation of GIT committish: 4a527608c5ff2ce31e596495d00dce181dc1b9ea
+    Translation of GIT committish: 99b5022dc4baadd7000c94d5868cdb7cb9a8ed53
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
+@c \version "2.12.0"
 
 @node Text
 @section Text
 
-@untranslated
+@lilypondfile[quote]{text-headword.ly}
 
+Dieser Abschnitt erklärt, wie man Text (mit vielfältiger
+Formatierung) in Partituren einfügt.
+
+@noindent
+Einige Textelemente, die hier nicht behandelt werden, finden sich
+in anderen Abschnitten: @ref{Vocal music}, @ref{Titles and headers}.
 
 @menu
 * Writing text::
 * Fonts::
 @end menu
 
+
 @node Writing text
 @subsection Writing text
 
-@untranslated
+Dieser Abschnitt zeigt verschiedene Arten, wie Text in die Partitur
+eingefügt werden kann.
 
+@cindex Text, andere Sprachen
+
+@warning{Wenn man Zeichen mit Akzenten und Umlaute oder besondere
+Zeichen (wie etwa Text mit anderen Alphabeten) eingeben möchte,
+kann man die Zeichen einfach direkt in die Datei einfügen.  Die
+Datei muss als UTF-8 gespeichert werden.  Für mehr Information
+siehe @ref{Text encoding}.}
 
 @menu
 * Text scripts::
 * Separate text::
 @end menu
 
+
 @node Text scripts
 @unnumberedsubsubsec Text scripts
 
-@untranslated
+@cindex Textarten
+@cindex Textelemente, nicht leer
+@cindex zitierter Text
+
+Am einfachsten kann Text mit geraden Anführungsstrichen
+in eine Partitur eingefügt werden, wie das folgende Beispiel
+zeigt.  Derartiger Text kann manuell über oder unter dem
+Notensystem platziert werden, die Syntax hierzu ist beschrieben
+in @ref{Direction and placement}.
+
+@lilypond[quote,verbatim,relative=2]
+d8^"pizz." g f e a4-"scherz." f
+@end lilypond
+
+Diese Syntax ist eine Kurzform, komplexere Formatierungen
+können einem Text hinzugefügt werden, wenn man
+explizit den @code{\markup}-Befehl mit darauf folgenden
+geschweiften Klammern einsetzt, wie beschrieben in
+@ref{Formatting text}.
+
+@lilypond[quote,verbatim,relative=2]
+a8^\markup { \italic pizz. } g f e
+a4_\markup { \tiny scherz. \bold molto } f
+@end lilypond
+
+Standardmäßig haben Textbeschriftungen keinen Einfluss auf die
+Positionierung der Noten.  Man kann aber auch bestimmen, dass
+die Breite des Textes mit berücksichtigt wird.  Im nächsten
+Beispiel fordert der erste Text keinen Platz, während der
+zweite die Note nach rechts verschiebt.  Das Verhalten wird mit
+dem Befehl @code{\textLengthOn} (Textlänge an) erreicht, rückgängig
+kann es mit dem Befehl @code{\textLengthOff} gemacht werden.
+
+@lilypond[quote,verbatim,relative=2]
+a8^"pizz." g f e
+\textLengthOn
+a4_"scherzando" f
+@end lilypond
+
+
+@predefined
+@funindex \textLengthOn
+@code{\textLengthOn},
+@funindex \textLengthOff
+@code{\textLengthOff}.
+@endpredefined
+
+
+@seealso
+Notationsreferenz:
+@ref{Formatting text},
+@ref{Direction and placement}.
+
+Schnipsel:
+@rlsr{Text}.
+
+Referenz der Interna:
+@rinternals{TextScript}.
+
+@knownissues
+
+Eine Überprüfung, ob sich auch alle Textbeschriftungen und Gesangstext
+innerhalb der Ränder der Noten befinden, braucht verhältnismäßig
+viel Rechenaufwand.  Diese Überprüfung ist standardmäßig ausgestellt,
+damit LilyPond die Dateien schneller bearbeiten kann.  Man kann
+die Überprüfung aber mit folgendem Code einschalten:
+
+@example
+\override Score.PaperColumn #'keep-inside-line = ##t
+@end example
+
 
 
 @node Text spanners
 @unnumberedsubsubsec Text spanners
 
-@untranslated
+@cindex Textstrecker
+@cindex Strecker, Text
+
+Einige Aufführungsanweisungen, etwa @notation{rallentando} oder
+@notation{accelerando}, werden als Text geschrieben, gefolgt von 
+einer gestrichelten Linie, die anzeigt, wie weit sich die Anweisung
+auswirkt.  Solche Objekte, @qq{Strecker} (engl. spanners) genannt,
+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."
+b1\startTextSpan
+e,\stopTextSpan
+@end lilypond
+
+@noindent
+Der Text wird durch Objekteigenschaften beeinflusst.  In den
+Standardeinstellungen wird er kursiv ausgegeben, aber eine andere
+Formatierung kann erreicht werden, indem man @code{\markup}-Blöcke
+einsetzt, wie beschrieben in @ref{Formatting text}.
+
+@lilypond[quote,relative=2,verbatim]
+\override TextSpanner #'(bound-details left text) =
+  \markup { \upright "rit." }
+b1\startTextSpan c
+e,\stopTextSpan
+@end lilypond
+
+Auch der Stil der Linie kann ähnlich wie der Text mit den Objekteigenschaften
+geändert werden.  Diese Syntax ist beschrieben in @ref{Line styles}.
+
+
+@predefined
+@funindex textSpannerUp
+@code{\textSpannerUp},
+@funindex textSpannerDown
+@code{\textSpannerDown},
+@funindex textSpannerNeutral
+@code{\textSpannerNeutral}.
+@endpredefined
+
+
+@seealso
+Notationsreferenz:
+@ref{Line styles},
+@ref{Dynamics}.
+
+Schnipsel:
+@rlsr{Text}.
+
+Referenz der Interna:
+@rinternals{TextSpanner}.
+
 
 
 @node Text marks
 @unnumberedsubsubsec Text marks
 
-@untranslated
+@cindex Coda an Taktlinie
+@cindex Segno an Taktlinie
+@cindex Fermate an Taktlinie
+@cindex Taktlinie, Symbole anfügen
+@cindex Symbole auf der Taktlinie
+@funindex \mark
+
+Verschiedene Textelemente können der Partitur hinzugefügt werden,
+indem man die Syntax für Zeichen einsetzen, wie beschrieben in
+@ref{Rehearsal marks}:
+
+@c \mark needs to be placed on a separate line (it's not
+@c attached to an object like \markup is). -vv
+
+@lilypond[verbatim,quote,relative=2]
+c4
+\mark "Allegro"
+c c c
+@end lilypond
+
+Diese Syntax ermöglicht es, beliebigen Text über eine Taktlinie
+zu platzieren, weitere Formatierungsmöglichkeiten sind mit dem
+@code{\markup}-Befehl gegeben, wie beschrieben in 
+@ref{Formatting text}:
+
+@lilypond[fragment,quote,relative=1]
+<c e>1
+\mark \markup { \italic { colla parte } }
+<d f>2 <e g>
+<c f aes>1
+@end lilypond
+
+@noindent
+Diese Syntax ermöglicht es auch, besondere Zeichen einzufügen, wie
+etwa Coda-, Segno- oder Fermatenzeichen, indem das entsprechende
+Symbol mit dem Befehl @code{\musicglyph} angegeben wird, wie
+beschrieben in
+@ref{Music notation inside markup}:
+
+@lilypond[fragment,quote,relative=2]
+<bes f>2 <aes d>
+\mark \markup { \musicglyph #"scripts.ufermata" }
+<e g>1
+@end lilypond
+
+@noindent
+Derartige Objekte werden über dem höchsten System einer Partitur
+gesetzt -- abhängig davon, ob sie mitten im Takt oder an seinem
+Ende notiert werden, werden sie zwischen Noten oder über der
+Taktlinie gesetzt.  Wenn sie an einem Zeilenumbruch angegeben
+werden, wird das Zeichen zu Beginn der nächsten Zeile ausgegeben.
+
+@lilypond[fragment,quote,relative=2]
+\mark "Allegro"
+c1 c
+\mark "assai" \break
+c  c
+@end lilypond
+
+
+@snippets
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{printing-marks-at-the-end-of-a-line-or-a-score.ly}
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{aligning-marks-with-various-notation-objects.ly}
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{printing-marks-on-every-staff.ly}
+
+@seealso
+Notationsreferenz:
+@ref{Rehearsal marks},
+@ref{Formatting text},
+@ref{Music notation inside markup},
+@ref{The Feta font}.
+
+Schnipsel:
+@rlsr{Text}.
+
+Referenz der Interna:
+@rinternals{RehearsalMark}.
+
+@knownissues
+@c  To be removed when Issue 69 in the tracker gets fixed. -vv
+
+Wenn ein Zeichen am Ende des letzten Taktes eines Stückes notiert
+wird (wo also keine nächste Zeile mehr existiert), wird das Zeichen
+überhaupt nicht gesetzt.
+
 
 
 @node Separate text
 @unnumberedsubsubsec Separate text
 
-@untranslated
+@cindex separater Text
+@cindex Text alleine
+@cindex nur Text
+
+@funindex \markup
+
+Eine @code{\markup}-Umgebung kann auch für sich alleine existieren,
+außerhalb einer @code{\score}-Umgebung, als ein Ausdruck auf der
+höchsten Ebene.
+
+@c KEEP LY
+@lilypond[verbatim,quote]
+\markup {
+  Morgen, morgen, und morgen...
+}
+@end lilypond
+
+@noindent
+Damit kann Text unabhängig von den Noten gesetzt werden.  Das
+bietet sich vor allem in Situationen an, in denen mehrere Stücke
+in einer Datei vorkommen, wie beschrieben in
+@ref{Multiple scores in a book}.
+
+@c KEEP LY
+@lilypond[quote,verbatim]
+\score {
+  c'1
+}
+\markup {
+  Morgen, übermorgen, und überübermorgen...
+}
+\score {
+  c'1
+}
+@end lilypond
+
+Unabhängige Textabschnitte können über mehrere Seiten reichen, so
+dass man Textdokumente oder Bücher ausschließlich mit LilyPond
+setzen kann.  Einzelheiten zu den vielfältigen Möglichkeiten finden
+sich in @ref{Multi-page markup}.
+
+
+@predefined
+@code{\markup},
+@funindex \markuplines
+@code{\markuplines}.
+@endpredefined
+
+
+@snippets
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{stand-alone-two-column-markup.ly}
+
+@seealso
+Notationsreferenz:
+@ref{Formatting text},
+@ref{File structure}, 
+@ref{Multiple scores in a book},
+@ref{Multi-page markup}.
+
+Schnipsel:
+@rlsr{Text}.
+
+Referenz der Interna:
+@rinternals{TextScript}.
+
 
 
 @node Formatting text
 @subsection Formatting text
 
-@untranslated
-
+Dieser Abschnitt zeigt grundlegende und fortgeschrittene
+Formatierung von Text, wobei der Textbeschriftungsmodus
+(@code{\markup} benutzt wird.
 
 @menu
 * Text markup introduction::
 @node Text markup introduction
 @unnumberedsubsubsec Text markup introduction
 
-@untranslated
+@cindex markup
+@cindex Textbeschriftung
+@cindex Beschriftung, Text
+@cindex Setzen von Text
+@funindex \markup
+
+Eine @code{\markup}-Umgebung wird benutzt, um Text mit einer
+großen Anzahl von Formatierungsmöglichkeiten (im @qq{markup-Modus})
+zu setzen.
+
+@cindex Textbeschriftungs-Ausdrücke
+@cindex Text, Syntax
+@cindex markup, Syntax
+
+Die Syntax für Textbeschriftungen ähnelt der normalen Syntax von
+LilyPond: ein @code{\markup}-Ausdruck wird in geschweifte Klammern
+eingeschlossen (@code{@{@dots{} @}}).  Ein einzelnes Wort wird als
+ein Minimalausdruck erachtet und muss deshalb nicht notwendigerweise
+eingeklammert werden.
+
+Anders als Text in Anführungsstrichen können sich in einer
+Textbeschriftungsumgebung (@code{\markup}) geschachtelte Ausdrücke
+oder weitere Textbefehle befinden, eingeführt mit einem Backslash
+(@code{\}).  Derartige Befehle beziehen sich nur auf den ersten
+der folgenden Ausdrücke.
+
+@lilypond[quote,verbatim,relative=2]
+a1-\markup intenso
+a2^\markup { poco \italic più forte  }
+c e1
+d2_\markup { \italic "string. assai" }
+e
+b1^\markup { \bold { molto \italic  agitato } }
+c
+@end lilypond
+
+@cindex Sonderzeichen in Textbeschriftungen
+@cindex Textbeschriftung, Sonderzeichen
+@cindex besondere Zeichen, Text
+@cindex Text mit Sonderzeichen
+@cindex Anführungsstriche im Text
+
+Eine @code{\markup}-Umgebung kann auch Text in
+Anführungszeichen beinhalten.  Derartige Zeichenketten werden als
+ein Textausdruck angesehen, und darum werden innerhalb von ihnen
+Befehle oder Sonderzeichen (wie @code{\} oder @code{#}) so
+ausgegeben, wie sie eingeben werden.  Doppelte Anführungsstriche
+können gesetzt werden, indem man ihnen einen Backslash voranstellt.
+
+@c KEEP LY
+@lilypond[quote,verbatim,relative=2]
+a1^"\italic Text..."
+a_\markup { \italic "... setzt \"kursive\" Buchstaben!" }
+a a
+@end lilypond
+
+Damit eine Anzahl von Wörtern als ein einziger Ausdruck behandelt
+wird, müssen alle Wörter zwischen geraden Anführungszeichen (Shift+2)
+stehen oder ihnen muss ein Befehl vorangestellt werden.  Die Art,
+wie die Ausdrücke definiert sind, wirkt sich darauf aus, wie
+sie übereinander gestapelt, mittig und aneinander ausgerichtet
+werden.  Im folgenden Beispiel verhält sich der zweite
+@code{\markup}-Ausdruck genauso wie der erste:
+
+@lilypond[quote,verbatim,relative=2]
+c1^\markup { \center-column { a bbb c } }
+c1^\markup { \center-column { a { bbb c } } }
+c1^\markup { \center-column { a \line { bbb c } } }
+c1^\markup { \center-column { a "bbb c" } }
+@end lilypond
+
+Textbeschriftung kann auch durch Variablen definiert werden.  Diese
+Variablen können dann direkt an Noten angefügt werden:
+
+@lilypond[quote,verbatim]
+allegro = \markup { \bold \large Allegro }
+
+{
+  d''8.^\allegro
+  d'16 d'4 r2
+}
+@end lilypond
+
+
+@noindent
+Eine ausführliche Liste der @code{\markup}-Befehle findet sich in
+@ref{Text markup commands}.
+
+
+@seealso
+Notationsreferenz:
+@ref{Text markup commands}.
+
+Schnipsel:
+@rlsr{Text}.
+
+Installierte Dateien:
+@file{scm/@/markup@/.scm}.
+
+
+@knownissues
+
+Syntaxfehler im Textbeschriftungsmodus können sehr verwirrend sein.
 
 
 @node Selecting font and font size
 @unnumberedsubsubsec Selecting font and font size
 
-@untranslated
+@cindex Schriftschnitt verändern
+@funindex \italic
+@funindex \bold
+@funindex \underline
+
+Einfache Änderungen des Schriftartschnitts können im Textbeschriftungsmodus
+vorgenommen werden:
+
+@lilypond[quote,verbatim,relative=2]
+d1^\markup {
+  \bold { Più mosso }
+  \italic { non troppo \underline Vivo }
+}
+r2 r4 r8
+d,_\markup { \italic quasi \smallCaps Tromba }
+f1 d2 r
+@end lilypond
+
+@cindex Schriftgröße
+@cindex Textgröße
+@cindex Größe der Schriftart
+@funindex \fontsize
+@funindex \smaller
+@funindex \larger
+@funindex \magnify
+
+Die Größe von Buchstaben kann auf verschiedene Arten verändert werden:
+@itemize
+@item
+die Schriftgröße kann auf bestimmte deinierte Standardgrößen gesetzt werden,
+
+@item
+die Schriftgröße kann mit einem absoluten Wert gesetzt werden,
+
+@item
+die Schriftgröße kann relativ zur vorhergehenden Größe geändert werden.
+@end itemize
+
+@noindent
+Das Beispiel unten zeigt alle drei Möglichkeiten:
+
+@lilypond[quote,verbatim,relative=1]
+f1_\markup {
+  \tiny espressivo
+  \large e
+  \normalsize intenso
+}
+a^\markup {
+  \fontsize #5 Sinfonia
+  \fontsize #2 da
+  \fontsize #3 camera
+}
+bes^\markup { (con
+  \larger grande
+  \smaller emozione
+  \magnify #0.6 { e sentimento } )
+}
+d c2 r8 c bes a g1
+@end lilypond
+
+@cindex hochgestellt
+@cindex tiefergestellt
+@funindex \super
+@funindex \sub
+
+Text kann auch hoch- bzw. tiefgestellt gesetzt werden.  Die so markierten
+Buchstaben werden automatisch in einer kleineren Schriftgröße gesetzt,
+aber die normale Schriftgröße kann auch eingesetzt werden:
+
+@lilypond[quote,verbatim]
+\markup {
+  \column {
+    \line { 1 \super st movement }
+    \line { 1 \normal-size-super st movement
+      \sub { (part two) }  }
+  }
+}
+@end lilypond
+
+@cindex Schriftfamilien
+@cindex Schriftschnitte
+
+Der Textbeschriftungsmodus stellt eine einfache Möglichkeit zur Verfügung
+unterschiedliche Schriftschnitte anzuwählen.  Ohne besondere Einstellungen
+wird automatisch eine Schriftart mit Serifen ausgewählt.  Das Beispiel
+unten zeigt die Verwendung der eigenen Zahlenschriftart von LilyPond,
+den Einsatz von serifenloser Schriftart und von Schreibmaschinenschriftart.
+Die letzte Zeile zeigt, dass sich die Standardeinstellung mit dem
+Befehl @code{\roman} wieder herstellen lässt.
+
+@lilypond[quote,verbatim]
+\markup {
+  \column {
+    \line { Act \number 1 }
+    \line { \sans { Scene I. } }
+    \line { \typewriter { Verona. An open place. } }
+    \line { Enter \roman Valentine and Proteus. }
+  }
+}
+@end lilypond
+
+@noindent
+Einige dieser Schriftarten, etwa die Zahlenschriftart oder die Schriftart
+für Dynamikzeichen, stellen nicht alle Zeichen zur Verfügung, wie beschrieben
+in @ref{New dynamic marks} und @ref{Manual repeat marks}.
+
+@c \concat is actually documented in Align (it is not
+@c a font-switching command). But we need it here. -vv
+
+Einige Schriftartbefehle können ungewollte Leerzeichen innerhalb von Wörtern
+hervorrufen.  Das kann vermieden werden, indem die einzelnen Elemente mit
+dem Befehl @code{\concat} zu einem Element verschmolzen werden:
+
+@lilypond[quote,verbatim]
+\markup {
+  \column {
+    \line {
+      \concat { 1 \super st }
+      movement
+    }
+    \line {
+      \concat { \dynamic p , }
+      \italic { con dolce espressione }
+    }
+  }
+}
+@end lilypond
+
+Eine ausführliche Liste der unterschiedlichen Befehl zur Beeinflussung
+der Schriftarten findet sich in @ref{Font}.
+
+Es ist auch möglich, eigene Schriftfamlien zu definieren, wie erklärt in
+@ref{Fonts}.
+
+
+@predefined
+@funindex \teeny
+@code{\teeny},
+@funindex \tiny
+@code{\tiny},
+@funindex \small
+@code{\small},
+@funindex \normalsize
+@code{\normalsize},
+@funindex \large
+@code{\large},
+@funindex \huge
+@code{\huge},
+@funindex \smaller
+@code{\smaller},
+@funindex \larger
+@code{\larger}.
+@endpredefined
+
+
+@seealso
+Notationsreferenz:
+@ref{Font},
+@ref{New dynamic marks},
+@ref{Manual repeat marks},
+@ref{Fonts}.
+
+Schnipsel:
+@rlsr{Text}.
+
+Referenz der Interna:
+@rinternals{TextScript}.
+
+Installierte Dateien:
+@file{scm/@/define@/-markup@/-commands@/.scm}.
 
 
 @node Text alignment
 @unnumberedsubsubsec Text alignment
 
-@untranslated
+@cindex Text, Ausrichtung
+@cindex Ausrichtung von Text
+
+Dieser Abschnitt zeigt, wie man Text im Textbeschriftungsmodus
+eingibt.  Textobjekte können auch als eine Einheit verschoben
+werden, wie beschrieben in @rlearning{Moving objects}.
+
+@c Padding commands should be mentioned on this page, but
+@c most of these require \box to be more clearly illustrated. -vv
+
+@cindex Text, horizontale Ausrichtung
+@cindex horizontale Ausrichtung von Text
+@funindex \left-align
+@funindex \center-align
+@funindex \right-align
+
+Textbeschriftungsobjekte können auf verschiedene Weise ausgerichtet
+werden.  Standardmäßig wird ein Textobjekt an seiner linken Ecke
+ausgerichtet, darum wird das erste und zweite Objekt gleichermaßen
+an der linken Ecke ausgerichtet.
+
+@lilypond[quote,verbatim,relative=2]
+d1-\markup { poco }
+f
+d-\markup { \left-align poco }
+f
+d-\markup { \center-align { poco } }
+f
+d-\markup { \right-align poco }
+@end lilypond
+
+@funindex \halign
+
+Die horizontale Ausrichtung kann mit einer Zahl auf einen exakten
+Wert festgelegt werden:
+
+@lilypond[quote,verbatim,relative=2]
+a1-\markup { \halign #-1 poco }
+e'
+a,-\markup { \halign #0 poco }
+e'
+a,-\markup { \halign #0.5 poco }
+e'
+a,-\markup { \halign #2 poco }
+@end lilypond
+
+@noindent
+Manche Objekte haben eigene Ausrichtungsvorgänge und werden deshalb
+nicht von diesen Befehlen beeinflusst.  Es ist möglich, solche
+Objekte als eine Einheit anzusprechen und zu bewegen, wie
+gezeigt in @ref{Text marks}.
+
+@cindex Text, vertikale Ausrichtung
+@cindex vertickale Ausrichtung von Text
+@funindex \raise
+@funindex \lower
+
+Die vertikale Ausrichtung ist etwas schwieriger.  Textelemente
+können komplett verschoben werden, es ist aber auch möglich, nur
+einen Teil innerhalb der Textbeschriftung zu bewegen.  In diesem
+Fall muss dem zu verschiebenden Objekt ein Ankerpunkt zugewiesen
+werden, welcher entweder ein anderes Textelement oder ein
+unsichtbares Objekt sein kann (im Beispiel mit @code{\null} erstellt).
+Der letzte Text im Beispiel hat keinen Anker und wird deshalb auch nicht verschoben.
+
+@lilypond[quote,verbatim,relative=1]
+d2^\markup {
+  Acte I
+  \raise #2 { Scène 1 }
+}
+a'
+g_\markup {
+  \null
+  \lower #4 \bold { Très modéré }
+}
+a
+d,^\markup {
+  \raise #4 \italic { Une forêt. }
+}
+a'4 a g2 a
+@end lilypond
+
+@funindex \general-align
+@funindex \translate
+@funindex \translate-scaled
+
+Einige Befehle können sowohl die horizontale als auch die vertikale
+Ausrichtung von Textobjekten beeinflussen.  Jedes Objekt, das auf
+diese Weise verschoben wird, benötigt einen Anker:
+
+@lilypond[quote,verbatim,relative=1]
+d2^\markup {
+  Acte I
+  \translate #'(-1 . 2) "Scène 1"
+}
+a'
+g_\markup {
+  \null
+  \general-align #Y #3.2 \bold "Très modéré"
+}
+a
+d,^\markup {
+  \null
+  \translate-scaled #'(-1 . 2) \teeny "Une forêt."
+}
+a'4 a g2 a
+@end lilypond
+
+@funindex \column
+@funindex \center-column
+
+@cindex mehrzeiliger Text
+@cindex Text, mehrere Zeilen
+@cindex Blöcke, Text
+@cindex Textblöcke
+
+Ein Textbeschriftungsobjekt kann mehrere Zeilen beinhalten.  Im folgenden
+Beispiel wird jeder Ausdruck innerhalb von @code{\markup} auf einer
+eigenen Zeile gesetzt, entweder linksbündig oder zentriert:
+
+@lilypond[quote,verbatim]
+\markup {
+  \column {
+    a
+    "b c"
+    \line { d e f }
+  }
+  \hspace #10
+  \center-column {
+    a
+    "b c"
+    \line { d e f }
+  }
+}
+@end lilypond
+
+@funindex \fill-line
+
+@cindex Text auf der Seite zentrieren
+@cindex Zentrieren von Text auf der Seite
+
+Eine Anzahl an Ausdrücken innerhalb von @code{\markup} kann auch
+gestreckt werden, so dass die gesamte Seitenbreite benutzt wird.  Wenn
+nur ein Objekt vorhanden ist, wird es zentriert gesetzt.  Die Ausdrücke
+selber können wiederum mehrzeilig sein und andere Textbeschriftungsbefehle
+beinhalten.
+
+@lilypond[quote,verbatim]
+\markup {
+  \fill-line {
+    \line { William S. Gilbert }
+    \center-column {
+      \huge \smallCaps "The Mikado"
+      or
+      \smallCaps "The Town of Titipu"
+    }
+    \line { Sir Arthur Sullivan }
+  }
+}
+\markup {
+  \fill-line { 1885 }
+}
+@end lilypond
+
+@funindex \wordwrap
+@funindex \justify
+
+@cindex Umbruch von Text
+@cindex Blocksatz, Text
+@cindex Text, Blocksatz
+
+Längere Texte können auch automatisch umgebrochen werden, wobei es
+möglich ist, die Zeilenbreite zu bestimmen.  Der Text ist entweder
+linksbündig oder im Blocksatz, wie das nächste Beispiel illustriert:
+
+@lilypond[quote,verbatim]
+\markup {
+  \column {
+    \line  \smallCaps { La vida breve }
+    \line \bold { Acto I }
+    \wordwrap \italic {
+      (La escena representa el corral de una casa de
+      gitanos en el Albaicín de Granada. Al fondo una
+      puerta por la que se ve el negro interior de
+      una Fragua, iluminado por los rojos resplandores
+      del fuego.)
+    }
+    \hspace #0
+
+    \line \bold { Acto II }
+    \override #'(line-width . 50)
+    \justify \italic {
+      (Calle de Granada. Fachada de la casa de Carmela
+      y su hermano Manuel con grandes ventanas abiertas
+      a través de las que se ve el patio
+      donde se celebra una alegre fiesta)
+    }
+  }
+}
+@end lilypond
+
+Eine vollständige Liste der Textausrichtungsbefehle findet sich in
+@ref{Align}.
+
+@seealso
+Handbuch zum Lernen:
+@rlearning{Moving objects}.
+
+Notationsreferenz:
+@ref{Align},
+@ref{Text marks}.
+
+Schnipsel:
+@rlsr{Text}.
+
+Installierte Dateien:
+@file{scm/@/define@/-markup@/-commands@/.scm}.
+
+Referenz der Interna:
+@rinternals{TextScript}.
+
 
 
 @node Graphic notation inside markup
 @unnumberedsubsubsec Graphic notation inside markup
 
-@untranslated
+@cindex Graphik, eingebunden
+@cindex Illustrationen im Text
+@cindex Zeichnen im Text
+@cindex Abbildungen im Text
+
+Verschiedene graphische Objekte können im Textbeschriftungsmodus
+eingefügt werden.
+
+@funindex \box
+@funindex \circle
+@funindex \rounded-box
+@funindex \bracket
+@funindex \hbracket
+
+@cindex Kasten, Graphik
+@cindex gerundeter Kasten, Graphik
+@cindex Klammern, Graphik
+@cindex Text verzieren
+@cindex Text einrahmen
+@cindex Rahmen, Text
+
+Mit bestimmten Textbeschriftungsbefehlen kann man Textelementen
+Graphik hinzufügen, wie das nächste Beispiel zeigt:
+
+@lilypond[quote,verbatim]
+\markup \fill-line {
+  \center-column {
+    \circle Jack
+    \box "in the box"
+    \null
+    \line {
+      Erik Satie
+      \hspace #3
+      \bracket "1866 - 1925"
+    }
+    \null
+    \rounded-box \bold Prelude
+  }
+}
+@end lilypond
+
+@funindex \pad-markup
+@funindex \pad-x
+@funindex \pad-to-box
+@funindex \pad-around
+
+@cindex Platz um Text
+@cindex Rand um Text
+@cindex Füllung um Text
+@cindex Text, Rand außen
+
+Es kann nötig sein, einem Text mehr Platz einzuräumen.  Das geschieht mit
+verschiedenen Befehlen, wie das folgende Beispiel zeigt.  Eine ausführliche
+Übersicht findet sich in @ref{Align}.
+
+@lilypond[quote,verbatim]
+\markup \fill-line {
+  \center-column {
+    \box "Charles Ives (1874 - 1954)"
+    \null
+    \box \pad-markup #2 "THE UNANSWERED QUESTION"
+    \box \pad-x #8 "A Cosmic Landscape"
+    \null
+  }
+}
+\markup \column {
+  \line {
+    \hspace #10
+    \box \pad-to-box #'(-5 . 20) #'(0 . 5)
+      \bold "Largo to Presto"
+  }
+  \pad-around #3
+      "String quartet keeps very even time,
+Flute quartet keeps very uneven time."
+}
+@end lilypond
+
+@funindex \combine
+@funindex \draw-circle
+@funindex \filled-box
+@funindex \triangle
+@funindex \draw-line
+@funindex \arrow-head
+
+@cindex Graphische Notation
+@cindex Symbole, nicht Musik-
+
+Andere graphische Elemente oder Symbole können gesetzt werden, ohne dass
+man Text benötigt.  Wie mit allen Textbeschriftungen können Objekte
+innerhalb von @code{\markup} kombiniert werden.
+
+@lilypond[quote,verbatim]
+\markup {
+  \combine
+    \draw-circle #4 #0.4 ##f
+    \filled-box #'(-4 . 4) #'(-0.5 . 0.5) #1
+  \hspace #5
+
+  \center-column {
+    \triangle ##t
+    \combine
+      \draw-line #'(0 . 4)
+      \arrow-head #Y #DOWN ##f
+  }
+}
+@end lilypond
+
+@funindex \epsfile
+@funindex \postscript
+
+@cindex Einbinden von Graphik
+@cindex Bilder einbinden
+@cindex Graphik einbinden
+@cindex Postscript, Graphik
+
+Fortgeschrittene graphische Möglichkeiten bietet unter Anderem eine
+Funktion, mit der man externe Graphiken im 
+Encapsulated PostScript (@emph{eps}) -Format einbinden kann oder
+aber Graphiken direkt in den Quelltext unter Verwendung von 
+PostScript-Code notiert.  In diesem Fall kann es nötig sein, die
+Größe der Zeichnung explizit anzugeben, wie im Beispiel unten gezeigt:
+
+@lilypond[quote,verbatim,relative=1]
+c1^\markup {
+  \combine
+    \epsfile #X #10 #"./context-example.eps"
+    \with-dimensions #'(0 . 6) #'(0 . 10)
+    \postscript #"
+      -2 3 translate
+      2.7 2 scale
+      newpath
+      2 -1 moveto
+      4 -2 4 1 1 arct
+      4 2 3 3 1 arct
+      0 4 0 3 1 arct
+      0 0 1 -1 1 arct
+      closepath
+      stroke"
+  }
+c
+@end lilypond
+
+Eine ausführliche Liste der Graphik-Befehle findet sich in
+@ref{Graphic}.
+
+@seealso
+Notationsreferenz:
+@ref{Graphic},
+@ref{Editorial annotations}.
+
+Schnipsel:
+@rlsr{Text}.
+
+Referenz der Interna:
+@rinternals{TextScript}.
+
+Installierte Dateien:
+@file{scm/@/define@/-markup@/-commands@/.scm},
+@file{scm/@/stencil@/.scm}.
+
 
 
 @node Music notation inside markup
 @unnumberedsubsubsec Music notation inside markup
 
-@untranslated
+@cindex Notationsobjekte, Einfügen
+@cindex Einfügen von Notationsobjekten
+@cindex Musikobjekte, Einfügen
+
+Auch Musikobjekte können innerhalb der Textbeschriftungsumgebung gesetzt
+werden.
+
+Noten und Versetzungszeichen lassen sich mit @code{\markup} einfügen:
+
+@lilypond[quote,verbatim,relative=2]
+a2 a^\markup {
+  \note #"4" #1
+  =
+  \note-by-number #1 #1 #1.5
+}
+b1_\markup {
+  \natural \semiflat \flat
+  \sesquiflat \doubleflat
+}
+\glissando
+a1_\markup {
+  \natural \semisharp \sharp
+  \sesquisharp \doublesharp
+}
+\glissando b
+@end lilypond
+
+Andere Notationsobjekte können auch eingefügt werden:
+
+@lilypond[quote,verbatim,relative=1]
+g1 bes
+ees-\markup {
+  \finger 4
+  \tied-lyric #"~"
+  \finger 1
+}
+fis_\markup { \dynamic rf }
+bes^\markup {
+  \beam #8 #0.1 #0.5
+}
+cis
+d-\markup {
+  \markalphabet #8
+  \markletter #8
+}
+@end lilypond 
+
+Allgemeiner gesagt kann jedes verfügbare Notationssymbol unabhängig
+von der Notation als ein Textbeschriftungsobjekt eingefügt werden, wie
+unten gezeigt.  Eine vollständige Liste der verfügbaren Symbole findet
+sich in
+@ref{The Feta font}.
+
+@lilypond[quote,verbatim,relative=2]
+c2
+c'^\markup { \musicglyph #"eight" }
+c,4
+c,8._\markup { \musicglyph #"clefs.G_change" }
+c16
+c2^\markup { \musicglyph #"timesig.neomensural94" }
+@end lilypond
+
+@noindent
+Eine andere Möglichkeit, andere als Textsymbole zu schreiben, findet sich
+in @ref{Fonts explained}.  Diese Methode bietet sich an, um Klammern
+unterschiedlicher Größe zu setzen.
+
+Der Textbeschriftungsmodus unterstützt auch Diagramme für bestimmte
+Instrumente:
+
+@lilypond[quote,verbatim,relative=2]
+c1^\markup {
+  \fret-diagram-terse #"x;x;o;2;3;2;"
+}
+c^\markup {
+  \harp-pedal #"^-v|--ov^"
+}
+c
+c^\markup {
+  \combine
+    \musicglyph #"accordion.accDiscant"
+    \combine
+      \raise #0.5 \musicglyph #"accordion.accDot"
+      \raise #1.5 \musicglyph #"accordion.accDot"
+}
+@end lilypond
+
+@c The accordion diagram is actually taken from a snippet.
+
+@noindent
+Derartige Digramme sind dokumentiert in @ref{Instrument Specific Markup}.
+
+Sogar eine ganze Partitur kann in ein Textbeschriftungsobjekt eingefügt
+werden.  In diesem Fall muss die eingefügte @code{\score}-Umgebung
+eine @code{\layout}-Umgebung haben, wie in diesem Beispiel:
+
+@lilypond[quote,verbatim,relative=1]
+c4 d^\markup {
+  \score {
+    \relative { c4 d e f }
+    \layout { }
+  }
+}
+e f |
+c d e f
+@end lilypond
+
+Eine vollständige Liste der Musiksymbol-Befehle findet sich in
+@ref{Music}.
+
+@seealso
+Notationsreferenz:
+@ref{Music},
+@ref{The Feta font},
+@ref{Fonts explained}.
+
+Schnipsel:
+@rlsr{Text}.
+
+Referenz der Interna:
+@rinternals{TextScript}.
+
+Installierte Dateien:
+@file{scm/@/define@/-markup@/-commands@/.scm},
+@file{scm/@/fret@/-diagrams@/.scm},
+@file{scm/@/harp@/-pedals@/.scm}.
+
 
 
 @node Multi-page markup
 @unnumberedsubsubsec Multi-page markup
 
-@untranslated
+Normale Textbeschriftungsobjekte können nicht getrennt werden, aber mit
+einer spezifischen Umgebung ist es möglich, Text auch über mehrere Seiten
+fließen zu lassen:
+
+@lilypond[quote,verbatim]
+\markuplines {
+  \justified-lines {
+    A very long text of justified lines.
+    ...
+  }
+  \wordwrap-lines {
+    Another very long paragraph.
+    ...
+  }
+  ...
+}
+@end lilypond
+
+Die Syntax braucht eine Liste von Textbeschriftungen folgender Art:
+
+@itemize
+@item
+das Resultat eines Beschriftungslistenbefehls,
+@item
+eine Textbeschriftungsliste,
+@item
+eine Liste von Beschriftungslisten.
+@end itemize
+
+Eine vollständige Liste der Beschriftungslistenbefehle findet sich in
+@ref{Text markup list commands}.
+
+@seealso
+Notationsreferenz:
+@ref{Text markup list commands},
+@ref{New markup list command definition}.
+
+Schnipsel:
+@rlsr{Text}.
+
+Referenz der Interna: @rinternals{TextScript}.
+
+Installierte Dateien:
+@file{scm/@/define@/-markup@/-commands@/.scm}.
+
+
+@predefined
+@funindex \markuplines
+@code{\markuplines}.
+@endpredefined
 
 
 @node Fonts
 @subsection Fonts
 
-@untranslated
-
+Dieser Abschnitt zeigt, wie Schriftarten eingesetzt werden können und
+wie man sie in Partituren ändern kann.
 
 @menu
-* Entire document fonts::
+* Fonts explained::
 * Single entry fonts::
+* Entire document fonts::
 @end menu
 
-@node Entire document fonts
-@unnumberedsubsubsec Entire document fonts
+@node Fonts explained
+@unnumberedsubsubsec Fonts explained
 
-@untranslated
+@cindex Pango
+@cindex Schriftarten, Hintergrundinformation
+@cindex Klammern, unterschiedliche Größen
+@funindex font-interface
+
+Schriftarten werden von mehreren Bibliotheken verwaltet. FontConfig wird
+benützt, um die vorhandenen Schriftarten des Systems zu erkennen, die
+gewählte Schriftart wird dann mit Pango verarbeitet.
+
+Notationsschriftarten können als eine Ansammlung von besonderen Zeichen
+erklärt werden, wobei die Sonderzeichen in verschiedene Familien
+klassifiziert werden.  Die Syntax des folgenden Beispiels ermöglicht es,
+direkt auf verschiedene nicht textuelle Sonderzeichen der
+@code{feta}-Schriftart zuzugreifen.  Das ist die Standardschriftart
+für Notationselemente in LilyPond.
+
+@lilypond[quote,verbatim,relative=2]
+a1^\markup {
+  \vcenter {
+    \override #'(font-encoding . fetaBraces)
+    \lookup #"brace120"
+    \override #'(font-encoding . fetaNumber)
+    \column { 1 3 }
+    \override #'(font-encoding . fetaDynamic)
+    sf
+    \override #'(font-encoding . fetaMusic)
+    \lookup #"noteheads.s0petrucci"
+  }
+}
+@end lilypond
+
+@noindent
+Außer den verschiedenen Klammern, die in @code{fetaBraces}
+in verschiedenen Größen enthalten sind, lassen sich alle
+dieses Symbole auch mit einer einfacheren Syntax notieren.
+Sie ist beschrieben in
+@ref{Music notation inside markup}.
+
+Wenn man die Klammern von @code{fetaBraces} benutzt, wird die
+Größe der Klammer durch einen numeralen Part in der
+Bezeichnung des Glyphs bestimmt.  Als Wert kann eine
+Ganzzahl von @code{0} bis @code{575} benutzt werden, wobei
+@code{0} die kleinste Klammern ergibt.  Der optimale Wert
+muss durch Ausprobieren herausgefunden werden.  Diese Glyphen
+sind alle linke Klammern, rechte Klammern lassen sich durch
+eine Drehung herstellen, siehe
+@ref{Rotating objects}.
+
+Drei Textschriftarten sind verfügbar (auf Englisch @code{family} genannt): 
+mit @code{roman} eine Schriftart
+mit Serifen (Standard ist New Century Schoolbook), mit @code{sans}
+eine serifenlose (gerade) Schriftart und mit @code{typewriter} eine
+Schreibmaschinenschrift, in welcher die Buchstaben alle die gleiche
+Weite haben.  Die aktuelle Schriftart von @code{sans} und
+@code{tpyewriter} wird durch Pango entspechend den Systemvorgaben
+gewählt.
+
+Jede Familie kann verschiedene Schriftschnitte besitzen. Im Englischen
+wird unterschieden zwischen @code{shape} für kursive Schnitte und 
+@code{series} für fette Schnitte.  Im folgenden Beispiel wird
+demonstriert, wie man die verschiedenen Eigenschaften auswählen kann.
+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
+  \mark \markup "Ouverture"
+  \override  Voice.TextScript #'font-shape = #'italic
+  \override  Voice.TextScript #'font-series = #'bold
+  d'2.^\markup "Allegro"
+  \override Voice.TextScript #'font-size = #-3
+  c4^smaller
+@end lilypond
+
+@noindent
+Eine ähnliche Syntax kann im Textbeschriftungsmodus eingesetzt werden,
+hier bietet es sich aber an, die einfacheren Befehle zu verwenden, die
+erklärt wurden in
+@ref{Selecting font and font size}:
+
+@lilypond[quote,verbatim]
+\markup {
+  \column {
+    \line {
+      \override #'(font-shape . italic)
+      \override #'(font-size . 4)
+      Idomeneo,
+    }
+    \line {
+      \override #'(font-family . typewriter)
+      {
+        \override #'(font-series . bold)
+        re
+        di
+      }
+      \override #'(font-family . sans)
+      Creta
+    }
+  }
+}
+@end lilypond
+
+Auch wenn es einfach ist, zwischen den vorefinierten Schriftarten
+umzuschalten, kann man auch eigene Schriftarten verwenden, wie erklärt
+in folgenden Abschnitten: @ref{Single entry fonts} und
+@ref{Entire document fonts}.
+
+@seealso
+Notationsreferenz:
+@ref{The Feta font},
+@ref{Music notation inside markup},
+@ref{Selecting font and font size},
+@ref{Font}.
 
 
 @node Single entry fonts
 @unnumberedsubsubsec Single entry fonts
 
-@untranslated
+Jede Schriftart, die über das Betriebssystem installiert ist und von
+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 = #"Charter"
+\override Staff.TimeSignature #'font-size = #2
+\time 3/4
+
+a1_\markup {
+  \override #'(font-name . "Vera Bold")
+    { Vera Bold }
+}
+@end lilypond
+
+@funindex show-available-fonts
+
+Mit folgendem Befehl erhält man eine Liste aller verfügbaren Schriftarten
+des Betriebssystems:
+
+@example
+lilypond -dshow-available-fonts x
+@end example
+
+@noindent
+Das letzte Argument kann ein beliebiges Zeichen sein, aber es darf nicht
+fehlen.
+
+@seealso
+Notationsreferenz:
+@ref{Fonts explained},
+@ref{Entire document fonts}.
+
+Schnipsel:
+@rlsr{Text}.
+
+Installierte Dateien:
+@file{lily/@/font@/-config@/-scheme@/.cc}.
+
+
+
+@node Entire document fonts
+@unnumberedsubsubsec Entire document fonts
+
+Es ist auch möglich, die Schriftarten für die gesamte Partitur zu ändern.
+In diesem Fall müssen die Familien @code{roman},
+@code{sans} und @code{typewriter} in genaus dieser Reihenfolge
+entsprechend der Syntax unten definiert werden.  Einzelheiten zu
+Schriftarten in @ref{Fonts explained}.
+
+@cindex Schriftartenfamilien, Definieren
+@funindex make-pango-font-tree
+
+@lilypond[verbatim,quote]
+\paper  {
+  myStaffSize = #20
+  #(define fonts
+    (make-pango-font-tree "Times New Roman"
+                          "Nimbus Sans"
+                          "Luxi Mono"
+                           (/ myStaffSize 20)))
+}
+
+\relative c'{
+  c1-\markup {
+    roman,
+    \sans sans,
+    \typewriter typewriter. }
+}
+@end lilypond
 
+@c we don't do Helvetica / Courier, since GS incorrectly loads
+@c Apple TTF fonts
 
+@seealso
+Notationsreferenz:
+@ref{Fonts explained},
+@ref{Single entry fonts},
+@ref{Selecting font and font size},
+@ref{Font}.
 
-@c -- SKELETON FILE --
index 341b4cbbab30ba668053eecb8fe8ac5feae9f5c4..7a9ac2851f1467732ac03834d5c52951493f45c4 100644 (file)
@@ -1,13 +1,13 @@
 @c -*- coding: utf-8; mode: texinfo; -*-
 @c This file is part of lilypond.tely
 @ignore
-    Translation of GIT committish: 579452b61befcfd488fe53eda9a4b7166edca3d8
+    Translation of GIT committish: 499a511d4166feaada31114e097f86b5e0c56421
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @ignore
 Tutorial guidelines:
@@ -35,11 +35,11 @@ schönen Notendruck umgesetzt werden können.
 
 
 @menu
-* First steps::                 
-* Single staff notation::       
-* Multiple notes at once::      
-* Songs::                       
-* Final touches::               
+* First steps::
+* Single staff notation::
+* Multiple notes at once::
+* Songs::
+* Final touches::
 @end menu
 
 
@@ -50,10 +50,10 @@ In diesem Abschnitt werden die Grundlagen zur Benutzung
 des Programmes erklärt.
 
 @menu
-* Compiling a file::            
-* Simple notation::             
-* Working on input files::       
-* How to read the manual::      
+* Compiling a file::
+* Simple notation::
+* Working on input files::
+* How to read the manual::
 @end menu
 
 
@@ -499,13 +499,13 @@ Hier ist ein kleines Beispiel, dass all diese Definitionen beinhaltet:
 }
 @end lilypond
 
+
 @seealso
 Notationsreferenz: @ruser{Writing pitches},
 @ruser{Writing rhythms}, @ruser{Writing rests},
 @ruser{Time signature}, @ruser{Clef}.
 
 
-
 @node Working on input files
 @subsection Working on input files
 
@@ -686,8 +686,8 @@ bei dem Beispiel selber erreichen, müssen Sie alles kopieren ab der
 Zeile @qq{Start
 cut-&-pastable section} bis ganz zum Ende der Datei.
 
-@seealso
 
+@seealso
 Mehr Hinweise dazu, wie LilyPond-Eingabedateien konstruiert werden 
 sollten, finden sich in @ref{Suggestions for writing LilyPond input files}. 
 Es ist aber wahrscheinlich am Besten, zuerst
@@ -701,12 +701,12 @@ Dieses Kapitel lehrt grundlegende Bestandteile der Notation,
 die für eine Stimme auf einem System gebraucht werden.
 
 @menu
-* Accidentals and key signatures::  
-* Ties and slurs::              
-* Articulation and dynamics::   
-* Adding text::                 
-* Automatic and manual beams::  
-* Advanced rhythmic commands::  
+* Accidentals and key signatures::
+* Ties and slurs::
+* Articulation and dynamics::
+* Adding text::
+* Automatic and manual beams::
+* Advanced rhythmic commands::
 @end menu
 
 
@@ -744,7 +744,7 @@ deutsche Benutzer kein Problem. Es ist aber möglich, die Namen für die
 @notation{Versetzungszeichen} in anderen
 Sprachen zu benutzen, siehe @ruser{Note names in other languages}.
 
-@lilypond[verbatim,quote,fragment,relative=2]
+@lilypond[verbatim,quote,relative=2]
 cis1 ees fisis, aeses
 @end lilypond
 
@@ -774,7 +774,7 @@ Befehl @code{\key}, gefolgt von einer Notenbezeichnung und
 @code{\major} (für Dur) oder @code{\minor}
 (für Moll).
 
-@lilypond[verbatim,quote,fragment,relative=2]
+@lilypond[verbatim,quote,relative=2]
 \key d \major
 a1
 \key c \minor
@@ -811,7 +811,7 @@ den Ton eingeben, den man @emph{hören} will.
 
 In diesem Beispiel
 
-@lilypond[verbatim,quote,fragment,relative=2]
+@lilypond[verbatim,quote,relative=2]
 \key d \major
 d cis fis
 @end lilypond
@@ -820,15 +820,16 @@ d cis fis
 hat keine der Noten ein Versetzungszeichen, trotzdem muss im Quelltext
 das @q{is} für @code{cis} und @code{fis} notiert werden.
 
-Der Code @q{e} heißt also nicht: @qq{Zeichne einen schwarzen Punkt
-auf die erste Linie des Systems.} Im Gegenteil, er heißt vielmehr:
- @qq{Hier soll eine Note mit der Tonhöhe E gesetzt werden.}
+Der Code @q{b} (nach der holländischen Notenbezeichnung wird der Ton H mit
+@code{b} gesetzt) heißt also nicht: @qq{Zeichne einen schwarzen Punkt
+auf die Mittellinie des Systems.} Im Gegenteil, er heißt vielmehr:
+ @qq{Hier soll eine Note mit der Tonhöhe H gesetzt werden.}
 In der Tonart As-Dur @emph{bekommt} sie ein Versetzungszeichen:
 
 
-@lilypond[verbatim,quote,fragment,relative=2]
+@lilypond[verbatim,quote,relative=2]
 \key aes \major
-e
+b
 @end lilypond
 
 Alle diese Versetzungszeichen ausdrücklich zu schreiben, bedeutet vielleicht
@@ -839,8 +840,8 @@ unterschiedlichen Regeln erfolgen kann. Siehe
 @ruser{Automatic accidentals} für einige Beispiele, wie Vorzeichen
 anhand von unterschiedlichen Regeln ausgegeben werden können.
 
-@seealso
 
+@seealso
 Notationsreferenz: @ruser{Note names in other languages},
 @ruser{Accidentals}, @ruser{Automatic accidentals},
 @ruser{Key signature}.
@@ -869,7 +870,7 @@ Glossar: @rglos{tie}.
 Ein @notation{Bindebogen} wird geschrieben, indem man eine Tilde @code{~} 
 an die erste der zu verbindenden Noten hängt.
 
-@lilypond[verbatim,quote,fragment,relative=2]
+@lilypond[verbatim,quote,relative=2]
 g4~ g c2~
 c4 ~ c8 a8 ~ a2
 @end lilypond
@@ -883,7 +884,7 @@ Ein @notation{Legatobogen} ist ein Bogen, der sich über mehrere Noten
 erstreckt. Seine 
 Beginn- und Endnote werden mit @q{(} beziehungsweise @q{)} markiert.
 
-@lilypond[verbatim,quote,fragment,relative=2]
+@lilypond[verbatim,quote,relative=2]
 d4( c16) cis( d e c cis d) e( d4)
 @end lilypond
 
@@ -898,7 +899,7 @@ Phrasierungsbögen gleichzeitig vorkommen, aber es kann nicht mehr
 als jeweils einen Legato- und einen Phrasierungsbogen gleichzeitig
 geben.
 
-@lilypond[verbatim,quote,fragment,relative=2]
+@lilypond[verbatim,quote,relative=2]
 a8(\( ais b c) cis2 b'2 a4 cis,\)
 @end lilypond
 
@@ -920,8 +921,8 @@ geschachtelt werden.
 c2~( c8 fis fis4 ~ fis2 g2)
 @end lilypond
 
-@seealso
 
+@seealso
 Notationsreferenz: @ruser{Ties}, @ruser{Slurs},
 @ruser{Phrasing slurs}.
 
@@ -1013,8 +1014,8 @@ Auch mit dem Befehl @code{\!} kann es explizit beendet werden.
 c2\< c2\ff\> c2 c2\!
 @end lilypond
 
-@seealso
 
+@seealso
 Notationsreferenz: @ruser{Articulations and ornamentations},
 @ruser{Fingering instructions}, @ruser{Dynamics}.
 
@@ -1047,8 +1048,8 @@ a1_\markup{
 }
 @end lilypond
 
-@seealso
 
+@seealso
 Notationsreferenz: @ruser{Writing text}.
 
 
@@ -1097,8 +1098,8 @@ a8 c b4 d8. c16 b4
 a8 c b4 d8. c16 b4
 @end lilypond
 
-@seealso
 
+@seealso
 Notationsreferenz: @ruser{Automatic beams}, @ruser{Manual beams}.
 
 
@@ -1172,8 +1173,8 @@ c2 \appoggiatura b16 c2
 c2 \acciaccatura b16 c2
 @end lilypond
 
-@seealso
 
+@seealso
 Notationsreferenz: @ruser{Grace notes}, @ruser{Tuplets},
 @ruser{Upbeats}.
 
@@ -1204,7 +1205,7 @@ das Vorkommen von mehr als einer Stimme pro System.
 @subsection Music expressions explained
 
 @cindex Musikalischer Ausdruck
-@cindex Ausdruck
+@cindex Ausdruck, musikalischer
 @cindex zusammengesetzter musikalischer Ausdruck
 
 In LilyPond-Quelldateien wird Musik durch  @emph{musikalische
@@ -1464,8 +1465,8 @@ des Systems erstellt werden und der zusätzlich auch
 darüber entscheidet, ob die Taktlinien nur auf dem System 
 oder auch zwischen System gesetzt werden.
 
-@seealso
 
+@seealso
 Notationsreferenz:
 @ruser{Keyboard and other multi-staff
 instruments},
@@ -1573,8 +1574,8 @@ kombiniert werden.
 >>
 @end lilypond
 
-@seealso
 
+@seealso
 Notationsreferenz: 
 @ruser{Simultaneous notes}.
 
@@ -1605,6 +1606,9 @@ gezeigt.
 @cindex Lieder
 @cindex Liedtext
 
+@funindex \addlyrics
+@funindex addlyrics
+
 Glossar: @rglos{lyrics}.
 
 Hier ist der Beginn eines einfachen Kinderliedes, 
@@ -1644,7 +1648,6 @@ Text und Noten gleichzeitig gesetzt werden.
 @node Aligning lyrics to a melody
 @subsection Aligning lyrics to a melody
 
-
 @cindex Gesangstext, Ausrichten
 @cindex Ausrichten von Gesangstext
 @cindex Worte mit mehreren Silben
@@ -1665,7 +1668,7 @@ notiert aus:
   \relative c'' {
     \key g \major
     \time 6/8
-    d4 b8 c4 a8 d4 b8 g4 
+    d4 b8 c4 a8 d4 b8 g4
     g8 a4 b8 c b a d4 b8 g4.
   }
   \addlyrics {
@@ -1690,14 +1693,14 @@ betroffenen Noten zu notieren, zu Einzelheiten siehe
   \relative c'' {
     \key g \major
     \time 6/8
-    d4 b8 c4 a8 d4 b8 g4 
+    d4 b8 c4 a8 d4 b8 g4
     g8 a4 b8 c( b) a d4 b8 g4.
   }
   \addlyrics {
     Girls and boys come out to play,
     The moon doth shine as bright as day;
   }
->> 
+>>
 @end lilypond
 
 Die Wörter orientieren sich jetzt richtig an den Noten,
@@ -1732,7 +1735,7 @@ für jede Note, die übersprungen werden soll, ein Unterstrich
   \relative c'' {
     \key g \major
     \time 6/8
-    d4 b8 c4 a8 d4 b8 g4 
+    d4 b8 c4 a8 d4 b8 g4
     g8 a4 b8 c[ b] a d4 b8 g4.
   }
   \addlyrics {
@@ -1755,11 +1758,11 @@ aus Purcells @notation{Dido and Æneas}:
   \relative c'' {
     \key g \minor
     \time 3/2
-    g2 a bes bes( a) 
+    g2 a bes bes( a)
     b c4.( bes8 a4. g8 fis4.) g8 fis1
   }
   \addlyrics {
-    When I am laid, 
+    When I am laid,
     am laid __ in earth,
   }
 >>
@@ -1775,17 +1778,17 @@ zeigt, mit denen Text an den Noten ausgerichtet werden kann:
 
 @c no ragged-right here because otherwise the hyphens get lost,
 @c but the example is long enough to avoid looking strange.
-@lilypond[verbatim,quote]
+@lilypond[verbatim,quote,noragged-right]
 <<
   \relative c' {
     \key g \major
     \time 3/4
     \partial 4
-    d4 g4 g a8( b) g4 g4 
+    d4 g4 g a8( b) g4 g4
     b8( c) d4 d e4 c2
   }
   \addlyrics {
-    A -- way in a __ man -- ger, 
+    A -- way in a __ man -- ger,
     no __ crib for a bed, __
   }
 >>
@@ -1803,13 +1806,13 @@ in Figaros Arie @notation{Largo al factotum} gesungen werden mus.
 
 @c no ragged-right here because otherwise the hyphens get lost,
 @c but the example is long enough to avoid looking strange.
-@lilypond[verbatim,quote]
+@lilypond[verbatim,quote,noragged-right]
 <<
   \relative c' {
     \clef bass
     \key c \major
     \time 6/8
-    c4.~ c8 d b c([ d)] b c d b c
+    c4.~ c8 d b c([ d]) b c d b c
   }
   \addlyrics {
     Lar -- go_al fac -- to -- tum del -- la cit -- tà
@@ -1819,7 +1822,6 @@ in Figaros Arie @notation{Largo al factotum} gesungen werden mus.
 
 
 @seealso
-
 Notationsreferenz: @ruser{Vocal music}.
 
 
@@ -1827,6 +1829,7 @@ Notationsreferenz: @ruser{Vocal music}.
 @subsection Lyrics to multiple staves
 
 @cindex Gesangstext auf mehreren Systemen
+@cindex Mehrere Systeme und Gesangstext
 
 Die einfache Lösung mit @code{\addlyrics} kann benutzt werden, um 
 Text zu einem oder mehreren Systemen zu setzen. Hier ein Beispiel
@@ -1838,7 +1841,7 @@ aus Händels @notation{Judas Maccabäus}:
     \key f \major
     \time 6/8
     \partial 8
-    c8 c([ bes)] a a([ g)] f f'4. b, c4.~ c4
+    c8 c([ bes]) a a([ g]) f f'4. b, c4.~ c4
   }
   \addlyrics {
     Let flee -- cy flocks the hills a -- dorn, __
@@ -1847,7 +1850,7 @@ aus Händels @notation{Judas Maccabäus}:
     \key f \major
     \time 6/8
     \partial 8
-    r8 r4. r4 c8 a'([ g)] f f([ e)] d e([ d)] c bes'4
+    r8 r4. r4 c8 a'([ g]) f f([ e]) d e([ d]) c bes'4
   }
   \addlyrics {
     Let flee -- cy flocks the hills a -- dorn,
@@ -1860,8 +1863,8 @@ werden besser notiert, indem man die Systemstruktur von den
 Noten und dem Gesangstext durch Variablen trennt. Die Benutzung 
 von Variablen wird erklärt im Abschnitt @ref{Organizing pieces with variables}.
 
-@seealso
 
+@seealso
 Notationsreferenz: @ruser{Vocal music}.
 
 
index 764195d8b8a7e44ced923b780e016b40b9130a30..ace2c67eca6e0f9bb877ac66763474a575341adc 100644 (file)
@@ -1,13 +1,13 @@
 @c -*- coding: utf-8; mode: texinfo; -*-
 @c This file is part of lilypond-learning.tely
 @ignore
-    Translation of GIT committish: 550152ed5d5015d13abf2af83b2e040f996a66a4
+    Translation of GIT committish: 499a511d4166feaada31114e097f86b5e0c56421
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @node Tweaking output
 @chapter Tweaking output
@@ -18,12 +18,12 @@ Notenfragment kann geändert werden.
 
 
 @menu
-* Tweaking basics::             
-* The Internals Reference manual::  
-* Appearance of objects::       
-* Placement of objects::        
-* Collisions of objects::                    
-* Further tweaking::            
+* Tweaking basics::
+* The Internals Reference manual::
+* Appearance of objects::
+* Placement of objects::
+* Collisions of objects::
+* Further tweaking::
 @end menu
 
 
@@ -31,10 +31,10 @@ Notenfragment kann geändert werden.
 @section Tweaking basics
 
 @menu
-* Introduction to tweaks::      
-* Objects and interfaces::      
-* Naming conventions of objects and properties::  
-* Tweaking methods::            
+* Introduction to tweaks::
+* Objects and interfaces::
+* Naming conventions of objects and properties::
+* Tweaking methods::
 @end menu
 
 @node Introduction to tweaks
@@ -72,6 +72,11 @@ von Optimierungen verstehen zu können.
 @cindex Interfaces
 @cindex Strecker
 @cindex Schnittstellen
+@cindex graphische Objekte (Grob)
+@cindex Objekteigenschaften
+@cindex Layout-Objekt
+@cindex Objekt, Layout-
+@cindex Eigenschaften von Objekten
 
 Optimierung bedeutet, die internen Operationen und Strukturen
 des LilyPond-Programmes zu verändern, darum sollen hier
@@ -107,8 +112,7 @@ Crescendo-Klammern, Oktavierungszeichen und viele andere
 Grobs sind nicht an einer Stelle plaziert -- sie haben vielmehr
 einen Anfangspunkt, einen Endpunkt und eventuell noch andere
 Eigenschaften, die ihre Form bestimmen. Objekte mit solch
-einer erweiterten Gestalt werden als
-@qq{Strecker} (engl. Spanners)
+einer erweiterten Gestalt werden als @qq{Strecker} (engl. Spanners)
 bezeichnet.
 
 Es bleibt uns noch übrig zu erklären, was @qq{Schnittstellen}
@@ -134,6 +138,12 @@ kommen sollen.
 @node Naming conventions of objects and properties
 @subsection Naming conventions of objects and properties
 
+@cindex Benennungskonventionen für Objekte
+@cindex Benennungskonventionen für Eigenschaften
+@cindex Objekte, Benennungskonventionen
+@cindex Eigenschaften, Benennungskonventionen
+@cindex Regeln zur Benennung von Objekten/Eigenschaften
+
 Es wurden schon früher einige Regeln zur Benennung von
 Objekten vorgestellt, siehe
 @ref{Contexts and engravers}. Hier eine Referenzliste der
@@ -145,7 +155,7 @@ beliebige Anzahl an Kleinbuchstaben eingesetzt. Andere
 Zeichen werden explizit angegeben.
 
 @multitable @columnfractions .33 .33 .33
-@headitem Objekt-/Eigenschaftstyp           
+@headitem Objekt-/Eigenschaftstyp
   @tab Naming convention
   @tab Beispiele
 @item Kontexte
@@ -159,7 +169,7 @@ Zeichen werden explizit angegeben.
   @tab Clef_engraver, Note_heads_engraver
 @item Schnittstellen
   @tab aaa-aaa-interface
-  @tab grob-interface, break-aligned-interface 
+  @tab grob-interface, break-aligned-interface
 @item Kontext-Eigenschaften
   @tab aaa oder aaaAaaaAaaa
   @tab alignAboveContext, skipBars
@@ -168,7 +178,7 @@ Zeichen werden explizit angegeben.
   @tab direction, beam-thickness
 @end multitable
 
-Es wird bald ersichtlich werden, dass die Eigenschaften von 
+Es wird bald ersichtlich werden, dass die Eigenschaften von
 unterschiedlichen Objekttypen mit unterschiedlichen Befehlen
 geändert werden. Deshalb ist es nützlich, aus der
 Schreibweise zu erkennen, um was
@@ -179,10 +189,11 @@ Befehl einsetzen zu können.
 @node Tweaking methods
 @subsection Tweaking methods
 
-@strong{Der \override-Befehl}
-
 @cindex override-Befehl
 @funindex \override
+@funindex override
+
+@strong{Der \override-Befehl}
 
 Wir haben uns schon mit den Befehlen @code{\set}
 und @code{\with} bekannt gemacht, mit welchen
@@ -205,7 +216,8 @@ uns an, wie das vor sich geht.
 Die allgemeine Syntax dieses Befehles ist:
 
 @example
-\override @var{Kontext}.@var{LayoutObjekt} #'@var{layout-eigenschaft} = #@var{Wert}
+\override @var{Kontext}.@var{LayoutObjekt} #'@var{layout-eigenschaft} =
+#@var{Wert}
 @end example
 
 @noindent
@@ -234,6 +246,11 @@ und der größte Teil dieses Abschnittes wird dazu benutzt, seine Benutzung
 zu erläutern. Hier ein einfaches Beispiel, um die Farbe des Notenkopfes
 zu ändern:
 
+@cindex color-Eigenschaft, Beispiel
+@cindex Farb-Eigenschaft, Beispiel
+@cindex NoteHead, Beispiel für override
+@cindex Notenkopf, Beispiel für Veränderung
+
 @lilypond[quote,fragment,ragged-right,verbatim,relative=1]
 c d
 \override NoteHead #'color = #red
@@ -242,10 +259,12 @@ e f g
 a b c
 @end lilypond
 
+
 @strong{Der \revert-Befehl}
 
 @cindex revert-Befehl
 @funindex \revert
+@funindex revert
 
 Wenn eine Eigenschaft einmal überschrieben wurde, wird ihr
 neuer Wert so lange bewahrt, bis er noch einmal überschrieben
@@ -264,6 +283,11 @@ wird @var{Kontext} oft nicht benötigt. Er wird in vielen der folgenden
 Beispiele ausgelassen. Im nächsten Beispiel wird die Farbe des Notenkopfes
 wieder auf den Standardwert für die letzten zwei Noten gesetzt.
 
+@cindex color-Eigenschaft, Beispiel
+@cindex Farb-Eigenschaft, Beispiel
+@cindex NoteHead, Beispiel für override
+@cindex Notenkopf, Beispiel für Veränderung
+
 @lilypond[quote,fragment,ragged-right,verbatim,relative=1]
 c d
 \override NoteHead #'color = #red
@@ -276,6 +300,9 @@ b c
 
 @strong{\once-Präfix}
 
+@funindex \once
+@funindex once
+
 Sowohl der @code{\override}-Befehl als auch der @code{\set}-Befehl können mit
 dem Präfix @code{\once} (@emph{einmal}) versehen werden. Dadurch wird
 der folgende @code{\override}- oder @code{\set}-Befehl nur für den aktuellen
@@ -283,6 +310,11 @@ Musik-Moment wirksam, bevor sich wieder der Standard einstellt. Am gleichen
 Beispiel demonstriert, kann damit die Farbe eines einzelnen Notenkopfes
 geändert werden:
 
+@cindex color-Eigenschaft, Beispiel
+@cindex Farb-Eigenschaft, Beispiel
+@cindex NoteHead, Beispiel für override
+@cindex Notenkopf, Beispiel für Veränderung
+
 @lilypond[quote,fragment,ragged-right,verbatim,relative=1]
 c d
 \once \override NoteHead #'color = #red
@@ -291,10 +323,13 @@ e f g
 a b c
 @end lilypond
 
+
 @strong{Der \overrideProperty-Befehl}
 
 @cindex overrideProperty-Befehl
+
 @funindex \overrideProperty
+@funindex overrideProperty
 
 Es gibt eine andere Form des @code{override}-Befehls,
 @code{\overrideProperty} (überschreibe Eigenschaft), 
@@ -303,10 +338,12 @@ Vollständigkeit halber erwähnt, sein Einsatz wird demonstriert
 in @ruser{Difficult tweaks}.
 @c Maybe explain in a later iteration  -td
 
+
 @strong{Der \tweak-Befehl}
 
 @cindex tweak-Befehl
 @funindex \tweak
+@funindex tweak
 
 Der letzte Optimierungsbefehl in LilyPond ist @code{\tweak}
 (engl. optimieren). Er wird eingesetzt um Eigenschaften
@@ -321,6 +358,10 @@ Notenkopfes (ein E) in einem C-Dur-Akkord soll geändert
 werden. Schauen wir zuerst, was wir mit 
 @code{\once \override} erhalten:
 
+@cindex Schriftgröße, Beispiel
+@cindex NoteHead, Beispiel für override
+@cindex Notenkopf, Beispiel für Veränderung
+
 @lilypond[quote,fragment,ragged-right,verbatim,relative=1]
   <c e g>4
   \once \override NoteHead #'font-size = #-3
@@ -350,6 +391,10 @@ der spitzen Klammern zusammen mit der Note eingegeben werden.
 Um also zu unserem Beispiel zurückzukommen, könnte man die
 mittlere Note eines Akkordes auf diese Weise ändern:
 
+@cindex font-size-Eigenschaft, Beispiel
+@cindex Schriftgröße, Beispiel
+@cindex @code{\tweak}-Beispiel
+
 @lilypond[quote,fragment,ragged-right,verbatim,relative=1]
   <c e g>4
   <c \tweak #'font-size #-3 e g>4
@@ -359,17 +404,21 @@ Beachten Sie, dass die Syntax des @code{\tweak}-Befehls sich
 von der des @code{\override}-Befehls unterscheidet. Weder
 Kontext noch Layout-Objekt konnen angegeben werden, denn 
 das würde zu einem Fehler führen. Beide Angaben sind 
-durch das folgende Element impliziert. Die verallgemeinerte
+durch das folgende Element impliziert. Hier sollte auch
+kein Gleichheitzeichen vorhanden sein.  Die verallgemeinerte
 Syntax des @code{\tweak}-Befehls ist also einfach
 
 @example
-\tweak #'@var{layout-eigenschaft} #@var{Wert}
+\tweak #'@var{layout-eigenschaft} #@var{Wert}
 @end example
 
 Ein @code{\tweak}-Befehl kann auch benutzt werden, um nur 
 eine von mehreren Artikulationen zu ändern, wie im nächsten
 Beispiel zu sehen ist.
 
+@cindex Farb-Eigenschaft, Beispiel
+@cindex @code{\tweak}-Beispiel
+
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 a ^Black
   -\tweak #'color #red ^Red
@@ -402,6 +451,12 @@ werden soll, und der zweite, dass die Zahl der rhythmischen
 Aufteilung für die erste der kurzen Klammern in rot
 gesetzt wird.
 
+@cindex Farb-Eigenschaft, Beispiel
+@cindex @code{\tweak}-Beispiel
+@cindex Richtungs-Eigenschaft, Beispiel
+@cindex color-Eigenschaft, Beispiel
+@cindex direction-Eigenschaft, Beispiel
+
 @lilypond[quote,ragged-right,verbatim,fragment,relative=2]
 \tweak #'direction #up
 \times 4/3 {
@@ -416,6 +471,13 @@ Wenn geschachtelte N-tolen nicht zum gleichen Zeitpunkt
 beginnen, kann ihr Aussehen auf die übliche Art mit dem
 @code{\override}-Befehl geändert werden:
 
+@cindex text-Eigenschaft, Beispiel
+@cindex tuplet-number-Funktion, Beispiel
+@cindex transparent-Eigenschaft, Beispiel
+@cindex TupletNumber, Beispiel zur Veränderung
+@cindex Triolennummer, Beispiel zur Veränderung
+@cindex Triolen-Nummer-Funktion, Beispiel
+
 @c NOTE Tuplet brackets collide if notes are high on staff
 @c See issue 509
 @lilypond[quote,ragged-right,verbatim,fragment,relative=1]
@@ -431,22 +493,19 @@ beginnen, kann ihr Aussehen auf die übliche Art mit dem
 }
 @end lilypond
 
-@seealso
 
+@seealso
 Notationsreferenz:
 @ruser{The tweak command}.
 
 
-
-
-
 @node The Internals Reference manual
 @section The Internals Reference manual
 
 @menu
-* Properties of layout objects::  
-* Properties found in interfaces::  
-* Types of properties::         
+* Properties of layout objects::
+* Properties found in interfaces::
+* Types of properties::
 @end menu
 
 @node Properties of layout objects
@@ -457,6 +516,7 @@ Notationsreferenz:
 @cindex Grobs, Eigenschaften von
 @cindex Layout-Objekte, Eigenschaften von
 @cindex Property (Layout-Objekte, Grobs)
+@cindex Regerenz der Interna
 
 Angenommen, in Ihrer Partitur tritt ein Legatobogen
 auf, der Ihrer Meinung nach zu dünn ausgefallen ist.
@@ -494,6 +554,7 @@ die englischen Begriffe in viele andere Sprachen übersetzt sind.
 @cindex Override-Beispiel
 @cindex Referenz der Interna, Benutzung
 @cindex IR (Referenz der Interna), Benutzung
+@cindex @code{\addlyrics}-Beispiel
 
 Das Vorgehen soll an einem konkreten Beispiel einer echten
 Komposition demonstriert werden. Hier das Beispiel:
@@ -510,7 +571,7 @@ Komposition demonstriert werden. Hier das Beispiel:
     The man who feels love's sweet e -- mo -- tion
   }
 }
-@end lilypond 
+@end lilypond
 
 Angenommen also, wir wollen die Legatobögen etwas
 dicker setzten. Ist das möglich? Die Legatobögen sind mit
@@ -569,7 +630,7 @@ für die Dicke eine andere Eigenschaft mit der
 Bezeichnung @code{line-thickness} ist.
 
 Wie schon früher gesagt, gibt es wenig bis gar keine Erklärungen
-in der IR, aber wir haben schon genug Informationen, um 
+in der IR, aber wir haben schon genug Informationen, um
 zu versuchen, die Dicke eines Legatobogens zu ändern. Die
 Bezeichnung des Layout-Objekts ist offensichtlich
 @code{Slur} und die Bezeichnung der Eigenschaft, die geändert
@@ -585,7 +646,7 @@ Befehl auch funktioniert. Also:
 
 @example
 \override Slur #'thickness = #5.0
-@end example 
+@end example
 
 Vergessen Sie nicht das Rautenzeichen und Apostroph
 (@code{#'}) vor der Eigenschaftsbezeichnung und das
@@ -596,6 +657,10 @@ werden?} Solange wir uns noch im Lernstadium befinden, ist
 die beste Antwort: @qq{Innerhalb der Noten, vor den ersten
 Legatobogen und nahe bei ihm.} Also etwa so:
 
+@cindex Legatobogen, Beispiel für Veränderung
+@cindex thickness-Eigenschaft, Beispiel
+@cindex Dicke-Eigenschaft, Beispiel
+
 @lilypond[quote,verbatim,relative=2]
 {
   \time 6/8
@@ -610,7 +675,7 @@ Legatobogen und nahe bei ihm.} Also etwa so:
     The man who feels love's sweet e -- mo -- tion
   }
 }
-@end lilypond 
+@end lilypond
 
 @noindent
 und wirklich wird der Legatobogen dicker.
@@ -623,8 +688,10 @@ eigenen Befehle zu konstruieren -- wenn Sie auch noch etwas
 Übung benötigen. Die sollen Sie durch die folgenden Übungen
 erhalten.
 
+
 @subheading Finding the context
-@cindex Kontext, Finden
+
+@cindex Kontext, Finden und identifizieren
 
 Manchmal muss dennoch der Kontext spezifiziert werden.
 Welcher aber ist der richtige Kontext? Wir könnten raten,
@@ -645,11 +712,13 @@ der untersten Ebene ist, welcher eindeutig schon dadurch
 definiert ist, dass wir Noten eingeben, kann er an dieser Stelle
 auch weggelassen werden.
 
+
 @subheading Overriding once only
 
 @cindex Override nur einmal
 @cindex once override
 @funindex \once
+@funindex once
 
 Im Beispiel oben wurden @emph{alle} Legatobögen dicker
 gesetzt. Vielleicht wollen Sie aber nur den ersten Bogen
@@ -662,6 +731,9 @@ gar nichts -- der Befehl wird nicht gespeichert, sondern einfach
 vergessen. Der Befehl, mit @code{\once} zusammen benutzt,
 muss also wie folgt positioniert werden:
 
+@cindex Legatobogen, Beispiel zur Veränderung
+@cindex thickness-Eigenschaft, Beispiel
+
 @lilypond[quote,verbatim,relative=2]
 {
   \time 6/8
@@ -677,7 +749,7 @@ muss also wie folgt positioniert werden:
     The man who feels love's sweet e -- mo -- tion
   }
 }
-@end lilypond 
+@end lilypond
 
 @noindent
 Jetzt bezieht er sich nur noch auf den ersten Legatobogen.
@@ -685,6 +757,7 @@ Jetzt bezieht er sich nur noch auf den ersten Legatobogen.
 Der @code{\once}-Befehl kann übrigens auch vor einem @code{\set}-Befehl
 eingesetzt werden.
 
+
 @subheading Reverting
 
 @cindex Revert
@@ -692,12 +765,16 @@ eingesetzt werden.
 @cindex Wiederherstellen von Standardeinstellungen
 @cindex Standardeinstellungen, Wiederherstellen
 @funindex \revert
+@funindex revert
 
 Eine weitere Möglichkeit: nur die beiden ersten Legatobögen sollen
 dicker gesetzt werden. Gut, wir könnten jetzt zwei Befehle benutzen,
 jeden mit dem @code{\once}-Präfix und direkt vor die entsprechende
 Note gestellt, an welcher der Bogen beginnt:
 
+@cindex Legatobogen, Beispiel zur Veränderung
+@cindex thickness-Eigenschaft, Beispiel
+
 @lilypond[quote,verbatim,relative=2]
 {
   \time 6/8
@@ -715,13 +792,16 @@ Note gestellt, an welcher der Bogen beginnt:
     The man who feels love's sweet e -- mo -- tion
   }
 }
-@end lilypond 
+@end lilypond
 
 @noindent
 Wir könnten aber auch den @code{\once}-Befehl weglassen und anstelle 
 dessen später den @code{\revert}-Befehl einsetzen, um die
 @code{thickness}-Eigenschaft wieder auf ihren Standardwert zurückzusetzen:
 
+@cindex Legatobogen, Beispiel zur Veränderung
+@cindex thickness-Eigenschaft, Beispiel
+
 @lilypond[quote,verbatim,relative=2]
 {
   \time 6/8
@@ -845,6 +925,11 @@ kursiv gesetzt wird, lautet:
 und er muss direkt vor den Text gesetzt werden, auf den er sich
 bezieht, etwa so:
 
+@cindex font-shape-Eigenschaft, Beispiel
+@cindex LyricText, Beispiel zur Veränderung
+@cindex kursiv, Beispiel
+@cindex @code{\addlyrics}, Beispiel
+
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 {
   \time 6/8
@@ -863,8 +948,12 @@ bezieht, etwa so:
 @noindent
 Jetzt wird der Text kursiv gesetzt.
 
+
 @subheading Specifying the context in lyric mode
-@cindex context, specifying in lyric mode
+
+
+@cindex Kontext im Gesangstextmodus angeben
+@cindex Gesangstextmodus, Kontext angeben
 
 Bei Gesangstexten funktioniert der @code{\override}-Befehl
 nicht mehr, wenn Sie den Kontext im oben dargestellten
@@ -912,7 +1001,7 @@ ein Rautenzeichen (@code{#}) vor den Typeintrag setzen,
 wenn sie in einem @code{\override}-Befehl benutzt werden.
 
 @multitable @columnfractions .2 .45 .35
-@headitem Eigenschaftstyp           
+@headitem Eigenschaftstyp
   @tab Regeln
   @tab Beispiele
 @item Boolesch
@@ -962,8 +1051,8 @@ wenn sie in einem @code{\override}-Befehl benutzt werden.
   @tab @code{'#(#t #t #f)}
 @end multitable
 
-@seealso
 
+@seealso
 Handbuch zum Lernen: @ref{Scheme tutorial}.
 
 
@@ -975,9 +1064,9 @@ vorigen Abschnitte in der Praxis angewandt werden können,
 um das Aussehen des Musiksatzes zu beeinflussen.
 
 @menu
-* Visibility and color of objects::  
-* Size of objects::             
-* Length and thickness of objects::  
+* Visibility and color of objects::
+* Size of objects::
+* Length and thickness of objects::
 @end menu
 
 
@@ -1024,6 +1113,7 @@ beeinflussen.  Schauen wir uns diese Eigenschaften eine
 nach der anderen an.
 
 @subheading stencil
+
 @cindex Stencil-Eigenschaft
 @cindex Matrizen-Eigenschaft
 
@@ -1035,6 +1125,9 @@ auf @code{#f} (falsch) gesetzt wird.  Ein Versuch also,
 wie vorher, indem wir den impliziten Kontext (@code{Voice})
 auslassen:
 
+@cindex Taktlinie, Beispiel zur Veränderung
+@cindex stencil-Eigenschaft, Beispiel
+
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 {
   \time 12/16
@@ -1062,6 +1155,9 @@ nichts.  Keine Fehlermeldung wird ausgegeben und auch
 nichts in die Log-Datei geschrieben.  Versuchen wir also,
 den richtigen Kontext mitanzugeben:
 
+@cindex Taktlinie, Beispiel zur Veränderung
+@cindex stencil-Eigenschaft, Beispiel
+
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 {
   \time 12/16
@@ -1075,6 +1171,7 @@ den richtigen Kontext mitanzugeben:
 @noindent
 Jetzt sind die Taktlinien wirklich verschwunden.
 
+
 @subheading break-visibility
 
 @cindex break-visibility-Eigenschaft
@@ -1094,6 +1191,9 @@ vor der öffnenden Klammer schreiben müssen:
 signalisieren, und das erste @code{#} wird benötigt, um
 den Wert in einem @code{\override}-Befehl anzuführen.
 
+@cindex Taktlinie, Beispiel zur Veränderung
+@cindex break-visibility-Eigenschaft, Beispiel
+
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 {
   \time 12/16
@@ -1107,7 +1207,9 @@ den Wert in einem @code{\override}-Befehl anzuführen.
 @noindent
 Auch auf diesem Weg gelingt es, die Taktlinien unsichtbar zu machen.
 
+
 @subheading transparent
+
 @cindex transparent-Eigenschaft
 @cindex Durchsichtig machen (transparent)
 
@@ -1125,6 +1227,9 @@ der sich auch im @code{Staff}-Kontext befindet und genauso das
 überzeugen können.  Der Befehl, um die Taktangabe unsichtbar zu
 machen, ist also:
 
+@cindex Taktart, Beispiel zur Veränderung
+@cindex transparent-Eigenschaft, Beispiel
+
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 {
   \time 12/16
@@ -1144,6 +1249,9 @@ Fällen ist diese Lücke nicht schön.  Um auch die Lücke zu entfernen,
 muss die Matrize (stencil) der Taktangabe auf @code{#f} (falsch)
 gesetzt werden:
 
+@cindex Taktart, Beispiel zur Veränderung
+@cindex stencil-Eigenschaft, Beispiel
+
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 {
   \time 12/16
@@ -1159,8 +1267,11 @@ Und der Unterschied wird deutlich: hiermit wird das gesamte Objekt
 entfernt, während man mit @code{transparent} ein Objekt
 unsichtbar machen kann, es aber an seinem Platz gelassen wird.
 
+
 @subheading color
-@cindex color property
+
+@cindex color-Eigenschaft
+@cindex Farb-Eigenschaft
 
 Abschließend wollen wir die Taktlinien unsichtbar machen, indem
 wir sie weiß einfärben.  (Es gibt hier eine Schwierigkeit: die weiße
@@ -1182,6 +1293,9 @@ Tabelle in @ruser{List of colors} aufgelistet sind.  Beachten Sie,
 dass die Bezeichnungen auf English sind.  Um die Taktlinien auf
 weiß zu setzen, können Sie schreiben:
 
+@cindex Taktlinie, Beispiel zur Veränderung
+@cindex color-Eigenschaft, Beispiel
+
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 {
   \time 12/16
@@ -1205,6 +1319,7 @@ anderen Funktionen dieser Liste abändern.
 
 @cindex Farben, X11
 @cindex X11-Farben
+@funindex x11-color
 
 Die zweite Art die Farbe zu ändern geschieht, indem die Liste
 der X11-Farbbezeichnungen einzusetzen, siehe die zweite Liste
@@ -1213,6 +1328,9 @@ andere Funktion vorangestellt werden, die die X11-Farbbezeichnungen
 in interne Werte konvertiert: 
 @code{x11-color}.  Das geschieht wie folgt:
 
+@cindex Taktlinie, Beispiel zur Veränderung
+@cindex color-Eigenschaft, Beispiel
+
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 {
   \time 12/16
@@ -1230,6 +1348,7 @@ und beide zusammen in Klammern gesetzt werden.
 
 @cindex RGB-Farben
 @cindex Farben, RGB
+@funindex rgb-color
 
 Es gibt noch eine dritte Funktion, die RGB-Werte in die
 internen Werte übersetzt -- die @code{rgb-color}-Funktion.  Sie
@@ -1239,6 +1358,9 @@ Blau darzustellen. Die Werte befinden sich zwischen
 Wert der Funktion lauten: @code{(rgb-color 1 0 0)}, weiß
 würde sein: @code{(rgb-color 1 1 1)}.
 
+@cindex Taktlinie, Beispiel zur Veränderung
+@cindex color-Eigenschaft, Beispiel
+
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 {
   \time 12/16
@@ -1255,6 +1377,20 @@ weiß (@code{'grey100}), in Einserschritten.  Wir wollen das
 illustrieren, indem alle Layout-Objekte im Beispiel
 verschiede Grauschattierungen erhalten:
 
+@cindex StaffSymbol, Beispiel zur Veränderung
+@cindex TimeSignature, Beispiel zur Veränderung
+@cindex Schlüssel, Beispiel zur Veränderung
+@cindex Notenhals, Beispiel zur Veränderung
+@cindex Taktlinie, Beispiel zur Veränderung
+@cindex Farbeigenschaft, Beispiel
+@cindex x11-Farben, Beispiel
+@cindex Taktlinien, Beispiel zur Veränderung
+@cindex Taktart, Beispiel zur Veränderung
+@cindex Clef, Beispiel zur Veränderung
+@cindex Stem, Beispiel zur Veränderung
+@cindex NoteHead, Beispiel zur Veränderung
+@cindex Notenkopf, Beispiel zur Veränderung
+
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 {
   \time 12/16
@@ -1285,11 +1421,19 @@ Engraver normalerweise befindet.
 @node Size of objects
 @subsection Size of objects
 
+@cindex Veränderung von Objektgrößen
+@cindex Objektgrößen, verändern
+@cindex Größen von Objekten verändern
+
 Als Startpunkt wollen wir wieder ein früheres Beispiel
 wählen, siehe @ref{Nesting music expressions}. Hier wurde
 ein neues Notensystem erstellt, wie man es für ein @rglos{ossia}
 braucht.
 
+@cindex alignAboveContext-Eigenschaft, Beispiel
+@cindex über dem System anordnen, Beispiel
+@cindex @code{\with}-Beispiel
+
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 \new Staff ="main" {
        \relative g' {
@@ -1298,7 +1442,7 @@ braucht.
          <<
            { f c c }
            \new Staff \with {
-             alignAboveContext = "main" }
+             alignAboveContext = #"main" }
            { f8 f c }
          >>
          r4 |
@@ -1311,6 +1455,13 @@ geschrieben, und sie werden etwas kleiner als das Hauptsystem gesetzt.
 Wie man Schlüssel und Taktangabe entfernt, wissen wir schon:
 wir setzen den Stencil von beiden auf @code{#f}:
 
+@cindex alignAboveContext-Eigenschaft, Beispiel
+@cindex über dem System anordnen, Beispiel
+@cindex @code{\with}-Beispiel
+@cindex stencil-Eigenschaft, Beispiel
+@cindex Schlüssel, Beispiel zur Veränderung
+@cindex Taktart, Beispiel zur Veränderung
+
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 \new Staff ="main" {
   \relative g' {
@@ -1319,7 +1470,7 @@ wir setzen den Stencil von beiden auf @code{#f}:
     <<
       { f c c }
       \new Staff \with {
-        alignAboveContext = "main"
+        alignAboveContext = #"main"
       }
       {
         \override Staff.Clef #'stencil = ##f
@@ -1373,6 +1524,13 @@ eine Fehlermeldung.
 
 Das obige Beispiel könnte also auch so aussehen:
 
+@cindex alignAboveContext-Eigenschaft, Beispiel
+@cindex über dem System anordnen, Beispiel
+@cindex @code{\with}-Beispiel
+@cindex stencil-Eigenschaft, Beispiel
+@cindex Schlüssel, Beispiel zur Veränderung
+@cindex Taktart, Beispiel zur Veränderung
+
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 \new Staff ="main" {
   \relative g' {
@@ -1381,7 +1539,7 @@ Das obige Beispiel könnte also auch so aussehen:
     <<
       { f c c }
       \new Staff \with {
-        alignAboveContext = "main"
+        alignAboveContext = #"main"
         % Don't print clefs in this staff
         \override Clef #'stencil = ##f
         % Don't print time signatures in this staff
@@ -1437,6 +1595,13 @@ Schriftgröße um etwa 12% verändert.
 
 Setzen wir das also in unserem Ossia-Beispiel ein:
 
+@cindex alignAboveContext-Eigenschaft, Beispiel
+@cindex über dem System anordnen, Beispiel
+@cindex @code{\with}-Beispiel
+@cindex stencil-Eigenschaft, Beispiel
+@cindex Schlüssel, Beispiel zur Veränderung
+@cindex Taktart, Beispiel zur Veränderung
+
 @lilypond[quote,verbatim,fragment,ragged-right,relative=2]
 \new Staff ="main" {
   \relative g' {
@@ -1445,7 +1610,7 @@ Setzen wir das also in unserem Ossia-Beispiel ein:
     <<
       { f c c }
       \new Staff \with {
-        alignAboveContext = "main"
+        alignAboveContext = #"main"
         \override Clef #'stencil = ##f
         \override TimeSignature #'stencil = ##f
         % Reduce all font sizes by ~24%
@@ -1464,13 +1629,14 @@ dazu zu lang und die Notenlinien zu weit auseinander.
 Sie müssen auch proportional zur Schriftart verkleinert
 werden.  Der nächste Abschnitt behandelt diese Anpassung.
 
+
 @node Length and thickness of objects
 @subsection Length and thickness of objects
 
 @cindex Entfernungen
 @cindex Dicke
 @cindex Länge
-@cindex magstep
+@funindex magstep
 @cindex Größe, verändern
 @cindex Notenhalslänge, verändern
 @cindex Hälse, Länge verändern
@@ -1497,6 +1663,17 @@ und gibt einen Skalierungsfaktor aus, der dazu dient,
 Objekte proportionell zueinander zu verändern.  So wird
 sie benutzt:
 
+@cindex alignAboveContext-Eigenschaft, Beispiel
+@cindex über dem System anordnen, Beispiel
+@cindex @code{\with}-Beispiel
+@cindex stencil-Eigenschaft, Beispiel
+@cindex Schlüssel, Beispiel zur Veränderung
+@cindex Taktart, Beispiel zur Veränderung
+@cindex Notenlinienabstände verändern
+@cindex staff-space-Eigenschaft verändern
+@cindex magstep-Funktion, Beispiel
+@cindex Schriftart-Eigenschaft, Beispiel
+
 @lilypond[quote,verbatim,fragment,ragged-right,relative=2]
 \new Staff ="main" {
   \relative g' {
@@ -1505,7 +1682,7 @@ sie benutzt:
     <<
       { f c c }
       \new Staff \with {
-        alignAboveContext = "main"
+        alignAboveContext = #"main"
         \override Clef #'stencil = ##f
         \override TimeSignature #'stencil = ##f
         fontSize = #-2
@@ -1551,14 +1728,20 @@ stammen) können auf gleiche Weise geändert werden.
 @section Placement of objects
 
 @menu
-* Automatic behavior::          
-* Within-staff objects::        
-* Outside staff objects::       
+* Automatic behavior::
+* Within-staff objects::
+* Outside-staff objects::
 @end menu
 
+
 @node Automatic behavior
 @subsection Automatic behavior
 
+@cindex within-staff-Objekte
+@cindex outside-staff-Objekte
+@cindex Objekte innerhalb des Notensystems
+@cindex Objekte außerhalb des Notensystems
+
 Es gibt Objekte der Notation, die zum Notensystem gehören, und
 andere, die außerhalb des Systems gesetzt werden müssen.  Sie
 werden @code{within-staff}-Objekte bzw.
@@ -1601,6 +1784,8 @@ Priorität (weil sie nicht explizit gesetzt worden ist).  Beachten Sie,
 dass @qq{Text3} wieder dicht am System gesetzt wurde, weil
 er unter @qq{Text2} passt.
 
+@cindex Textbeschriftungsbeispiel
+
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 c2^"Text1"
 c^"Text2"
@@ -1624,7 +1809,7 @@ Im nächsten Beispiel sehen Sie, wie Noten auf zwei Systemen
     \relative c'''' { c a, }
   }
 >>
-@end lilypond 
+@end lilypond
 
 
 @node Within-staff objects
@@ -1650,12 +1835,24 @@ je nach der Richtung, in die sie zeigen.  Das wird automatisch
 berücksichtigt, wenn die @code{direction}-Eigenschaft verändert
 wird.
 
+@funindex down
+@funindex up
+@funindex center
+@funindex neutral
+@cindex hoch-Eigenschaft
+@cindex runter-Eigenschaft
+@cindex zentriert-Eigenschaft
+@cindex neutral-Eigenschaft
+
 Das folgende Beispiel zeigt im ersten Takt die Standardeinstellung
 für Hälse, die bei hohen Noten nach unten zeigen und bei tiefen
 noten nach oben. Im nächsten Takt werden alle Hälse nach unten
 gezwungen, im dritten Takt nach oben, und im vierten wird wieder
 der Standard eingestellt.
 
+@cindex Notenhals, Beispiel zur Veränderung
+@cindex Richtungseigenschaft, Beispiel
+
 @lilypond[quote,verbatim,relative=2]
 a4 g c a
 \override Stem #'direction = #DOWN
@@ -1675,7 +1872,8 @@ andere Objekte jedoch @qq{zentiert}.  Es gibt hierzu die Konstante
 @code{CENTER}, die den Wert @code{0} hat.
 
 Es gibt aber einfachere Befehle, die normalerweise benutzt werden.
-Hier eine Tabelle der häufigsten.
+Hier eine Tabelle der häufigsten.  Die Bedeutung des Befehls wird
+erklärt, wenn sie nicht selbsverständlich ist.
 
 @multitable @columnfractions .2 .2 .25 .35
 @headitem Runter/Links
@@ -1728,11 +1926,16 @@ müssen Sie den entsprechenden
 Befehl, gefolgt von dem entsprechenden neutralisierenden
 @code{xxxNeutral}-Befehl nach der Note.
 
+
 @subheading Fingering
+
 @cindex Fingersatz, Positionierung
+@cindex Fingersatz, Akkorde
 
-Die Positionierung von Fingersatz wird beeinflusst vom Wert
-seiner @code{direction}-Eigenschaft, aber es gibt auch hier
+Die Positionierung von Fingersatz kann auch durch den Wert
+seiner @code{direction}-Eigenschaft beeinflusst werden, aber
+eine Veränderung von  @code{direction} hat keinen Einfluss auf
+Akkorde. es gibt auch hier
 besondere Befehle, mit denen der Fingersatz von einzelnen
 Noten in Akkorden kontrolliert werden kann, wobei mögliche
 Positionen über, unter der Note und rechts bzw. links von
@@ -1743,6 +1946,9 @@ den Fingersatz: im ersten Takt der Standard, dann
 die Wirkung von @code{DOWN} (runter) und @code{UP}
 (hinauf).
 
+@cindex Fingersatz, Beispiel zur Veränderung
+@cindex direction-Eigenschaft, Beispiel
+
 @lilypond[quote,verbatim,relative=2]
 c-5 a-3 f-1 c'-5
 \override Fingering #'direction = #DOWN
@@ -1751,18 +1957,46 @@ c-5 a-3 f-1 c'-5
 c-5 a-3 f-1 c'-5
 @end lilypond
 
-So kann die Fingersatzposition für einzelne Noten
-kontrolliert werden, aber das funktioniert nicht für Akkorde.
-Anstelle dessen wird der Fingersatz automatisch entweder
+Eine Beeinflussung der @code{direction}-Eigenschaft ist jedoch 
+nicht die einfachste Art, Fingersatzbezeichnungen manuell über oder
+unter das System zu setzen.  Normalerweise bietet es sich an,
+@code{_} oder @code{^} anstelle von @code{-} vor der Fingersatz-Zahl
+zu benutzen.  Hier das vorherigen Beispiel mit dieser Methode:
+
+@cindex Fingersatz-Beispiel
+
+@lilypond[quote,verbatim,relative=2]
+c-5 a-3 f-1 c'-5
+c_5 a_3 f_1 c'_5
+c^5 a^3 f^1 c'^5
+@end lilypond
+
+Die @code{direction}-Eigenschaft wirkt sich nicht auf
+Akkorde aus, während die Präfixe @code{_} und @code{^} funktionieren.
+Standardmäßig wird der Fingersatz automatisch entweder
 über oder unter dem Akkord gesetzt:
 
+@cindex Fingersatz-Beispiel
+
 @lilypond[quote,verbatim,relative=2]
 <c-5 g-3>
 <c-5 g-3 e-2>
 <c-5 g-3 e-2 c-1>
 @end lilypond
 
-Bessere Kontrolle über die Positionierung von Fingersatz für
+@noindent
+aber das kann manuell geändert werden, um einzelne Fingersatzanweisungen
+nach oben oder unten zu zwingen:
+
+@cindex Fingersatz-Beispiel
+
+@lilypond[quote,verbatim,relative=2]
+<c-5 g-3 e-2 c-1>
+<c^5 g_3 e_2 c_1>
+<c^5 g^3 e^2 c_1>
+@end lilypond
+
+Noch bessere Kontrolle über die Positionierung von Fingersatz für
 einzelne Noten in einem Akkord ist mit dem
 @code{\set fingeringOrientations}-Befehl möglich.  Die Syntax
 lautet:
@@ -1776,7 +2010,7 @@ lautet:
 Eigenschaft des @code{Voice}-Kontextes ist, erstellt und eingesetzt
 vom @code{New_fingering_engraver}.
 
-Die Eigenschaft kann als Wert eine Liste mit einem bis drei Eintragen
+Die Eigenschaft kann als Wert eine Liste mit einem bis drei Einträgen
 haben.  Damit wird bestimmt, ob Fingersatz oberhalb gesetzt
 werden kann (wenn @code{up} in der Liste auftaucht), darunter
 (wenn@code{down} auftaucht), links (wenn @code{left} auftaucht)
@@ -1788,13 +2022,17 @@ Die seitliche Positionierung kann nur auf einer Seite des Akkordes
 geschehen, nicht auf beiden gleichzeitig, es kann also nur entweder
 @code{left} oder @code{right} auftreten, nicth beide gleichzeitig.
 
-Damit eine einzelne Note mit diesem Befehl beeinflusst werden
+@warning{Damit eine einzelne Note mit diesem Befehl beeinflusst werden
 kann, muss sie als ein @qq{Ein-Noten-Akkord} geschrieben
 werden, indem einfache spitze Klammern um die Note positioniert
-werden.
+werden.}
 
 Hier ein paar Beispiele:
 
+@cindex Fingersatz-Beispiel
+@cindex @code{\set}, Benutzungsbeispiel
+@cindex fingerOrientations-Eigenschaft, Beispiel
+
 @lilypond[quote,verbatim,relative=1]
 \set fingeringOrientations = #'(left)
 <f-2>
@@ -1811,7 +2049,7 @@ Hier ein paar Beispiele:
 \set fingeringOrientations = #'(right)
 <f-2>
 < c-1  e-2 g-3 b-5 > 4
-@end lilypond 
+@end lilypond
 
 @noindent
 Wenn die Fingersatzbezeichnung zu gedrungen aussieht,
@@ -1841,9 +2079,8 @@ er ist @code{-5}, versuchen wir es also mit @code{-7}.
 
 
 
-
-@node Outside staff objects
-@subsection Outside staff objects
+@node Outside-staff objects
+@subsection Outside-staff objects
 
 Objekte außerhalb des Notensystems werden automatisch gesetzt,
 um Kollisionen zu vermeiden.  Objekten mit einem geringeren
@@ -1862,8 +2099,8 @@ die den Voreinstellungen nach im
 @code{Staff}- oder @code{Voice}-Kontext gesetzt werden.
 
 @multitable @columnfractions .3 .3 .3
-@headitem Layout-Objekt           
-  @tab Priorität     
+@headitem Layout-Objekt        
+  @tab Priorität
   @tab Kontrolliert Position von:
 @item @code{MultiMeasureRestText}
   @tab @code{450}
@@ -1895,12 +2132,17 @@ Objekten zeigt.
 @cindex Text-Spanner
 @funindex \startTextSpan
 @funindex \stopTextSpan
+@funindex startTextSpan
+@funindex stopTextSpan
 @cindex Ottava-Klammer
 @cindex Oktavierungsklammer
 
+@cindex TextSpanner, Beispiel zur Veränderung
+@cindex bound-details-Eigenschaft, Beispiel
+
 @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
@@ -1932,6 +2174,14 @@ Mehr Einzelheiten siehe @ruser{Text spanners}.
 Im Beispiel wird auch gezeigt, wie Oktavierungsklammern
 (Ottava) erstellt werden.
 
+@cindex Taktzahlposition verändern
+@cindex Verändern der Taktzahlposition
+@cindex Position der Taktzahl, verändern
+@cindex Metronom-Bezeichnungsposition verändern
+@cindex Verändern der Metronom-Bezeichnungsposition
+@cindex Übungszeichenposition verändern
+@cindex Verändern der Übungszeichenposition
+
 Beachten Sie, dass Taktnummern, Metronombezeichnungen
 und Übungszeichen nicht gezeigt werden.  Sie werden
 standardmäßig im @code{Score}-(Partitur)-Kontext
@@ -1966,9 +2216,12 @@ das @code{TextSpanner}-(Strecker)-Objekt bekommt, wobei noch daran
 zu denken ist, dass @code{OttavaBracket} im @code{Staff}-Kontext
 erstellt wird:
 
+@cindex TextSpanner, Beispiel zur Veränderung
+@cindex bound-details-Eigenschaft, Beispiel
+
 @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
@@ -1991,6 +2244,32 @@ c\ff c \stopTextSpan
 c, c c c
 @end lilypond
 
+@cindex Legatobögen und outside-staff-priority
+@cindex Legatobögen und Artikulationszeichen
+@cindex Artikulationszeichen und Legatobögen
+
+Legatobögen werden als Innersystem-Objekte klassifiziert, aber
+sie erscheinen oft auch über dem System, wenn die Noten, an die
+sie verbunden sind, sehr hoch im System notiert sind.  Dadurch
+können Außersystem-Objekte, wie Artikulationszeichen, zu hoch
+gerückt werden.  Die @code{avoid-slur}-Eigenschaft hat nur
+eine Auswirkung, wenn auch die @code{outside-staff-priority}
+auf @code{#f} gesetzt ist.  Alternativ kann die
+@code{outside-staff-priority}  des Legatobogens auf einen
+numerischen Wert gesetzt werden, sodass er mit anderen
+Außersystem-Objekten anhand dieses Wertes gesetzt wird.
+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
+c^\markup\tiny\sharp d4.) c8
+\once \override Slur #'outside-staff-priority = #500
+c4( c^\markup\tiny\sharp d4.) c8
+@end lilypond
+
 Eine Änderung der @code{outside-staff-priority} kann auch dazu
 benutzt werden, die vertikale Plazierung von individuellen Objekten
 zu kontrollieren, auch wenn das Ergebnis nicht immer optimal
@@ -2001,6 +2280,9 @@ die Eigenschaft @code{TextScript} entweder in der IR oder in der
 Tabelle oben festgestellt werden und dann die Priorität für
 @qq{Text3} höher eingestellt werden:
 
+@cindex TextScript, Beispiel zur Veränderung
+@cindex outside-staff-priority-Eigenschaft, Beispiel
+
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 c2^"Text1"
 c^"Text2"
@@ -2019,8 +2301,11 @@ werden.  Das kann erreicht werden mit dem
 
 @subheading \textLengthOn
 
-@funindex \textLengthOn
 @cindex Noten, durch Text gespreizt
+@funindex \textLengthOn
+@funindex textLengthOn
+@funindex \textLengthOff
+@funindex textLengthOff
 
 Standardmäßig wird Text, der mit dem Beschriftungsbefehl
 @code{\markup} bzw. Äquivalenten erstellt wird, kein
@@ -2035,21 +2320,26 @@ c2^"Text1"
 c^"Text2"
 c^"Text3"
 c^"Text4"
-@end lilypond  
+@end lilypond
 
-Dieses Verhalten wird mit dem
-@code{\textLengthOff}-Befehl rückgängig gemacht.  Erinnern Sie
-sich, dass @code{\once} nur mit
+Dieses Verhalten wird mit dem @code{\textLengthOff}-Befehl 
+rückgängig gemacht.  Erinnern Sie sich, dass @code{\once} nur mit
 @code{\override}, @code{\set}, @code{\revert} oder @code{unset}
 funktioniert, der Befehl kann also nicht zusammen mit
 @code{\textLengthOn} benutzt werden.
 
+@cindex Textbeschriftung, Vermeidung von Zusammenstößen
+@cindex Zusammenstöße vermeiden mit Textbeschriftung
+
 Textbeschriftung vermeidet auch Noten, die über das System hinausstehen.
 Wenn das nicht gewünscht ist, kann die automatische Verschiebung
 nach oben hin auch vollständig ausgeschaltet werden, indem die
 Priorität auf @code{#f} gesetzt wird.  Hier ein Beispiel, wie
 eine Textbeschriftung mit diesen Noten reagiert:
 
+@cindex Textbeschriftung, Beispiel zur Veränderung
+@cindex outside-staff-priority-Eigenschaft, Beispiel
+
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 % This markup is short enough to fit without collision
 c2^"Tex"
@@ -2074,6 +2364,9 @@ c''2
 
 @subheading Dynamics
 
+@cindex Verändern der Positionierung von Dynamikzeichen
+@cindex Dynamikzeichen: Positionierung verändern
+
 Dynamikbezeichnung wird üblicherweise unter dem System
 gesetzt, kann aber auch nach oben mit dem Befehl
 @code{dynamicUp} gezwungen werden.  Die Bezeichnung
@@ -2113,14 +2406,11 @@ aber es gibt keinen entsprechenden Befehl für Dynamik.  Wir
 müssen also unsere eigenen Befehle mit @code{\override}
 konstruieren.
 
+
 @subheading Grob sizing
 
 @cindex Grob, Größenveränderung
 @cindex Größenveränderung von grobs
-@cindex @code{X-offset}
-@cindex @code{Y-offset}
-@cindex @code{X-extent}
-@cindex @code{Y-extent}
 
 Zuallererst müssen wir lernen, wie die Größe von Grobs verändert
 wird.  Alle Grobs besitzen einen Referenzpunkt, der
@@ -2157,6 +2447,9 @@ Dynamik-Zeichen erledigt:
 @noindent
 Schauen wir uns an, wie es mit dem vorigen Beispiel funktioniert:
 
+@cindex DynamicText, Beispiel zur Veränderung
+@cindex extra-spacing-width-Eigenschaft, Beispiel
+
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 \dynamicUp
 \override DynamicText #'extra-spacing-width = #'(0 . 0)
@@ -2174,6 +2467,9 @@ wählen.  Die Einheit wird gemessen in dem Abstand zwischen zwei
 Notenlinien, es scheint also gut, den rechten und linken
 Rand eine halbe Einheit zu vergrößern:
 
+@cindex DynamicText, Beispiel zur Veränderung
+@cindex extra-spacing-width-Eigenschaft, Beispiel
+
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 \dynamicUp
 % Extend width by 1 staff space
@@ -2194,14 +2490,20 @@ die wir uns im folgenden Abschnitt genauer anschauen werden.
 @section Collisions of objects
 
 @menu
-* Moving objects::              
-* Fixing overlapping notation::  
-* Real music example::          
+* Moving objects::
+* Fixing overlapping notation::
+* Real music example::
 @end menu
 
 @node Moving objects
 @subsection Moving objects
 
+@cindex Verschieben von überschneidenden Objekten
+@cindex Verschieben von Zusammenstößen
+@cindex Zusammenstöße vermeiden
+@cindex Objekte, verschieben von Zusammestößen
+@cindex Vermeiden von Zusammenstößen
+
 Es wird vielleicht eine Überraschung sein, aber LilyPond ist nicht 
 perfekt. Einige Notationselemente können sich überschneiden. Das 
 ist nicht schön, aber zum Glück sehr selten.  Normalerweise müssen
@@ -2251,6 +2553,8 @@ Das wurde schon detailliert behandelt, siehe
 @cindex staff-padding-Eigenschaft
 @cindex Verschieben (padding)
 @cindex Füllung (padding)
+@cindex padding (Füllung)
+
 Wenn ein Objekt platziert wird, bestimmt der Wert seiner
 @code{padding}-(Füllungs)-Eigenschaft die Größe des
 Abstandes, der zwischen dem Objekt selber und dem
@@ -2262,7 +2566,6 @@ ignoriert.  Abstände mit @code{padding} können zu
 allen Objekten hinzugefügt werden, die das
 @code{side-position-interface} unterstützen.
 
-
 Anstelle von @code{padding} wird die Position von
 Versetzungszeichengruppen durch die Eigenschaften
 @code{left-padding} und @code{right-padding} bestimmt.
@@ -2313,6 +2616,7 @@ kleinerer) Abstand gewünscht wird.
 @cindex self-alignment-X-Eigenschaft
 @cindex Selbstpositionierung von Objekten
 @cindex Ausrichtung von Objekten
+
 Diese Eigenschaft kann benutzt werden, um ein Objekt
 nach links, rechts oder zentriert an dem Referenzpunkt des Objekts
 auszurichten, an das es verknüpft ist.  Es kann bei allen
@@ -2334,6 +2638,7 @@ die halbe Textbreite.
 @code{extra-spacing-width} (zusätzliche Breite)
 
 @cindex extra-spacing-width-Eigenschaft
+
 Diese Eigenschaft steht für alle Objekte zur Verfügung, die
 das @code{item-interface} unterstützen.  Es braucht zwei
 Zahlen als Argument, die erste wird zur rechten Ausdehnung,
@@ -2349,6 +2654,7 @@ nur erste Zahl für die linke Ausdehnung.
 @code{staff-position} (Notensystempositionierung)
 
 @cindex staff-position-Eigenschaft
+
 @code{staff-position} ist eine Eigenschaft des
 @code{staff-symbol-referencer-interface}, die von Objekten unterstützt
 wird, die relativ zum Notensystem (engl. staff) positioniert werden.
@@ -2362,6 +2668,7 @@ zu lösen.
 @code{force-hshift} (vertikale Verschiebung erzwingen)
 
 @cindex force-hshift-Eigenschaft
+
 Eng beeinander stehende Noten in einem Akkord oder Noten, die zum
 gleichen Zeitpunkt in unterschiedlichen Stimmen stehen, werden
 in zwei oder manchmal auch mehr Kolumnen gesetzt, um Kollisionen
@@ -2403,7 +2710,9 @@ Arte der manuellen Verschiebung verwendet werden können, sind:
 
 @table @code
 @item extra-offset (zusätzlicher Abstand)
+
 @cindex extra-offset-Eigenschaft
+
 Diese Eigenschaft gehört zu jedem Layout-Objekt, das das
 @code{grob-interface} unterstützt.  Sie braucht ein Zahlenpaar,
 das die exakte Verschiebung in horizontaler und vertikaler Richtung
@@ -2414,7 +2723,9 @@ platziert sind, weshalb ein Objekt irgendwohin verschoben werden
 kann, ohne den restlichen Satz zu beeinflussen.
 
 @item positions (Position)
+
 @cindex positions-Eigenschaft
+
 Diese Eigenschaft ist am sinnvollsten, um die Steigung und die
 Höhe von Balken, Bögen und Triolenklammern anzupassen.
 Sie braucht ein Zahlenpaar, das die Position des rechten und linken
@@ -2463,18 +2774,29 @@ mit sich überschneidenden Notationselementen eingesetzt
 werden können.
 
 @subheading padding property
-@cindex padding (Verschiegungs-Eigenschaft)
+
+@cindex padding (Verschiebungs-Eigenschaft)
+@cindex Überschneidende Notation korrigieren
+@cindex Korrigieren von überschneidender Notation
 
 Die @code{padding}-(Verschiebungs-)Eigenschaft kann benutzt
 werden, um den Abstand zwischen Symbolen zu vergößern (oder
 zu verkleinern), die über oder unter den Noten gesetzt werden.
 
+@cindex Script, Beispiel zur Veränderung
+@cindex Verschiebungs-Eigenschaft, Beispiel
+@cindex padding (Verschiebuns-Eigenschaft), Beispiel
+
 @lilypond[quote,fragment,relative=1,verbatim]
 c2\fermata
 \override Script #'padding = #3
 b2\fermata
 @end lilypond
 
+@cindex MetronomMark, Beispiel zur Veränderung
+@cindex Verschiebungs-Eigenschaft, Beispiel
+@cindex padding (Verschiebuns-Eigenschaft), Beispiel
+
 @lilypond[quote,fragment,relative=1,verbatim]
 % This will not work, see below:
 \override MetronomeMark #'padding = #3
@@ -2499,6 +2821,7 @@ werden das Objekt und alle,  die sich außerhalb davon befinden,
 entsprechend verschoben.
 
 @subheading left-padding and right-padding
+
 @cindex left-padding-Eigenschaft (Verschiebung nach links)
 @cindex Verschiebung nach rechts oder links
 @cindex right-padding-Eigenschaft (Verschiebung nach rechts)
@@ -2527,6 +2850,14 @@ Stencil des Versetzungszeichens zu ersetzen mit einer
 Textbeschriftung (Markup), die sowohl das B als auch das
 Aulösungszeichen enthält:
 
+@cindex Versetzungszeichen, Beispiel zur Veränderung
+@cindex Accidental, Beispiel zur Veränderung
+@cindex Text-Eigenschaft, Beispiel
+@cindex stencil-Eigenschaft, Beispiel
+@cindex AccidentalPlacement, Beispiel zur Veränderung
+@cindex right-padding-Eigenschaft, Beispiel
+@cindex Verschiebung nach rechts (rigth-padding), Beispiel
+
 @lilypond[quote,ragged-right,verbatim]
 naturalplusflat = \markup { \natural \flat }
 \relative c'' {
@@ -2550,7 +2881,10 @@ weiter nach rechts verschoben.
 
 
 @subheading staff-padding property
+
 @cindex staff-padding-Eigenschaft
+@cindex Objekte an der Grundlinie ausrichten
+@cindex Ausrichten von Objekten an der Grundlinie
 
 @code{staff-padding} (Verschiebung zum Notensystem) kann 
 verwendet werden um Objekte wie Dynamikzeichen an einer
@@ -2563,6 +2897,11 @@ Das liegt daran, dass die Grundlinie sich gleicherweise auf
 die als Strecker erstellt wurden.  Hier also die Lösung, die Dynamikzeichen
 aus dem Beispiel des vorigen Abschnitts auszurichten:
 
+@cindex DynamikText, Beispiel zur Veränderung
+@cindex extra-spacing-width-Eigenschaft, Beispiel
+@cindex DynamicLineSpanner, Beispiel zur Veränderung
+@cindex staff-padding-Eigenschaft, Beispiel
+
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 \dynamicUp
 % Extend width by 1 unit
@@ -2574,6 +2913,7 @@ a4\f b\mf c\mp b\p
 
 
 @subheading self-alignment-X property
+
 @cindex self-alignment-X-Eigenschaft
 
 Das nächste Beispiel zeigt, wie man den Zusammenstoß
@@ -2581,6 +2921,8 @@ einer Fingersatzbezeichnung mit einem Notenhals
 verhindern kann, indem die rechte Ecke an dem
 Referenzpunkt der abhängigen Note angeordnet wird:
 
+@cindex StringNumber, Beispiel zur Veränderung
+
 @lilypond[quote,fragment,ragged-right,verbatim,relative=3]
 \voiceOne
 < a \2 >
@@ -2590,8 +2932,11 @@ Referenzpunkt der abhängigen Note angeordnet wird:
 
 
 @subheading staff-position property
+
 @cindex staff-position-Eigenschaft
 @cindex Notensystem-Position-Eigenschaft
+@cindex Kollision von Objekten im System
+@cindex Zusammenstöße von Objekten im System
 
 Vieltaktpausen in einer Stimmen können mit Noten in anderen
 Stimmen kollidieren.  Da diese Pausen zentriert zwischen den
@@ -2616,6 +2961,10 @@ für @code{MultiMeasureRest}, in unserem Beispiel muss
 es also bspw. auf die Position @code{-8} gesetzt werden, 
 d.h. vier halbe Notenlinienabstände weiter nach unten:
 
+@cindex MultiMeasureRest, Beispiel zur Veränderung
+@cindex Ganztaktpausen, Beispiel zur Veränderung
+@cindex staff-position-Eigenschaft, Beispiel
+
 @lilypond[quote,verbatim,fragment,ragged-right, relative=1]
 <<
   {c c c c}
@@ -2628,9 +2977,13 @@ d.h. vier halbe Notenlinienabstände weiter nach unten:
 Das ist besser, als etwa @code{extra-offset} zu benutzen, denn
 in unserem Fall wird die Hilfslinie der Pause automatisch gesetzt.
 
+
 @subheading extra-offset property
+
 @cindex extra-offset-Eigenschaft
 @cindex Zusätzlicher Abstand, Positionierung
+@cindex Positionierung von Objekten
+@cindex Objekte, Positionierung
 
 Die @code{extra-offset}-Eigenschaft bietet vollständige Kontrolle
 über die Positionierung von Objekten in horizontaler und vertikaler
@@ -2639,6 +2992,9 @@ Richtung.
 Im Beispiel unten ist das zweite Fingersatzzeichen (@code{Fingering}) etwas nach
 links und 1,8 Notenlinienabstände nach unten verschoben:
 
+@cindex Fingersatz, Beispiel zur Veränderung
+@cindex extra-offset-Eigenschaft, Beispiel
+
 @lilypond[quote,fragment,relative=1,verbatim]
 \stemUp
 f-5
@@ -2649,7 +3005,15 @@ f-5
 
 
 @subheading positions property
+
 @cindex positions-Eigenschaft
+@cindex Kontrolle über Triolen, Bögen und Balken manuell
+@cindex manuelle Kontrolle über Triolen, Bögen, Balken
+@cindex Balken, manuelle Kontrolle
+@cindex Bögen, manuelle Kontrolle
+@cindex Legatobögen, manuelle Kontrolle
+@cindex Phrasierungsbögen, manuelle Kontrolle
+@cindex Triollen-Klammer, manuelle Kontrolle
 
 Die @code{positions}-Eigenschaft erlaubt die Kontrolle von Position und
 Steigung von Balken, Legato- und Phrasierungsbögen sowie Triolenklammern.
@@ -2664,6 +3028,10 @@ r4  \acciaccatura e8\( d8 c ~c d c d\)
 Man könnte einfach den Phrasierungsbogen oberhalb der Noten setzen, und
 das wäre auch die beste Lösung:
 
+@cindex Phrasierungsbogen, Beispiel zur Veränderung
+@cindex positions-Eigenschaft, Beispiel
+@cindex Positionierung, Beispiel
+
 @lilypond[quote,verbatim,fragment,ragged-right,relative=1]
 r4
 \phrasingSlurUp
@@ -2700,6 +3068,10 @@ Das kann manuell gelöst werden, indem beide Enden des Balkens
 von ihrer Position 2 Notenlinienabstände über der Mittellinie
 hochgeschoben werden, etwa auf 3:
 
+@cindex Balken, Beispiel zur Veränderung
+@cindex positions-Eigenschaft, Beispiel
+@cindex Positionierung, Beispiel
+
 @lilypond[quote,verbatim,fragment,ragged-right]
 {
   \clef "bass"
@@ -2719,8 +3091,10 @@ weiteren Achtelbalken der ersten Stimme auwirkt, während sie keine
 Auswirkung auf die Balken der zweiten Stimme hat.
 
 @subheading force-hshift property
+
 @cindex force-hshift-Eigenschaft
 @cindex Vertikale Verschiebung erzwingen
+
 @c FIXME: formatting stuff  (ie not important right now IMO)
 @c @a nchor Chopin finally corrected TODOgp
 
@@ -2759,6 +3133,10 @@ der Kolumne der oberen Noten aus.
 
 Hier das Endergebnis:
 
+@cindex Notenkolumne, Beispiel zur Veränderung
+@cindex force-hshift-Eigenschaft, Beispiel
+@cindex vertikale Verschiebung, Beispiel
+
 @lilypond[quote,verbatim,fragment,ragged-right]
 \new Staff \relative c'' {
   \key aes \major
@@ -2793,7 +3171,7 @@ Hier zunächst der Satz, wie er aussehen soll, allerdings ohne
 Dynamik, Fingersatz und Pedalbezeichnung, um das Beispiel nicht
 zu kompliziert zu machen.
 
-@c The following should appear as music without code
+@c This example should not be indexed
 @lilypond[quote,ragged-right]
 rhMusic = \relative c'' {
   r2
@@ -3052,6 +3430,9 @@ Abschnittes stellen und
 @noindent
 um das Verhalten wieder auszuschalten. Das sieht so aus:
 
+@cindex Bindebogen, Beispiel zur Veränderung
+@cindex staff-position-Eigenschaft, Beispiel
+
 @lilypond[quote,verbatim,ragged-right]
 rhMusic = \relative c'' {
   r2 c4.\( g8 |
@@ -3174,6 +3555,12 @@ gelernten Optimierungsmethoden erreichen. Den Hals machen
 wir durchsichtig und das C verschieben wir mit der
 @code{force-hshift}-Eigenschaft.  Hier ist das Endergebnis:
 
+@cindex Notenkolumne, Beispiel zur Veränderung
+@cindex force-hshift-Eigenschaft, Beispiel
+@cindex Hals, Beispiel zur Veränderung
+@cindex Notenhals, Beispiel zur Veränderung
+@cindex transparent-Eigenschaft, Beispiel
+
 @lilypond[quote,verbatim,ragged-right]
 rhMusic = \relative c'' {
   r2
@@ -3230,11 +3617,11 @@ lhMusic = \relative c' {
 @section Further tweaking
 
 @menu
-* Other uses for tweaks::       
-* Using variables for tweaks::  
-* Other sources of information::  
-* Avoiding tweaks with slower processing::  
-* Advanced tweaks with Scheme::  
+* Other uses for tweaks::
+* Using variables for tweaks::
+* Other sources of information::
+* Avoiding tweaks with slower processing::
+* Advanced tweaks with Scheme::
 @end menu
 
 @node Other uses for tweaks
@@ -3245,8 +3632,9 @@ lhMusic = \relative c' {
 @cindex Verstecken von Objekten
 @cindex Unsichtbare Objekte
 @cindex transparent-Eigenschaft, Benutzung
-@cindex Objekte, unsichtbar machen
-@cindex Objekte, entfernen
+@cindex Objekte unsichtbar machen
+@cindex Objekte entfernen
+@cindex Objekte verstecken
 @cindex Noten zwischen Stimmen überbinden
 @cindex Überbinden von Noten zwischen Stimmen
 
@@ -3267,9 +3655,13 @@ sich in der selben befinden,
 
 @noindent
 und dann den ersten Hals nach oben unsichtbar macht,
-sieht es so aus, als ober die Überbindung zwischen
+sieht es so aus, als ob die Überbindung zwischen
 den Stimmen stattfindet:
 
+@cindex Hals, Beispiel zur Veränderung
+@cindex Notenhals, Beispiel zur Veränderung
+@cindex transparent-Eigenschaft, Beispiel
+
 @lilypond[quote,fragment,relative=2,verbatim]
 <<
   {
@@ -3298,6 +3690,7 @@ gesetzt wird:
 >>
 @end lilypond
 
+
 @subheading Simulating a fermata in MIDI
 
 @cindex stencil-Eigenschaft, Benutzung
@@ -3323,6 +3716,9 @@ zwei Systemen beeinflussen.  Darum ist es am besten,
 der Unterschied zwischen einem unsichtbaren Objekt und
 einem entfernten Objekt gezeigt:
 
+@cindex Metronom-Bezeichnung, Beispiel zur Veränderung
+@cindex transparent-Eigenschaft, Beispiel
+
 @lilypond[quote,verbatim,ragged-right]
 \score {
   \relative c'' {
@@ -3369,6 +3765,7 @@ schiebt aber die folgende Bezeichnung in die Höhe, während
 das im zweiten Beispiel, in dem der @code{stencil} entfernt
 wurde, nicht passiert.
 
+
 @node Using variables for tweaks
 @subsection Using variables for tweaks
 
@@ -3379,12 +3776,16 @@ wurde, nicht passiert.
 tippen, und sie müssen immer absolut richtig sein.  Wenn
 derselbe Befehl mehrere Male benutzt werden muss, lohnt
 es sich oft schon, eine Variable zu definieren, in der er
-sich befindet.  Als Beispiel sollen einige Worte im
+sich befindet.
+
+Als Beispiel sollen einige Worte im
 Gesangstext fett und kursiv hervorgehoben werden.
 Die Befehle @code{\italic} und @code{\bold} funktionieren
-im Gesangstext-Kontext nur, wenn sie gleichzeitig
-noch in eine @code{\markup}-Umgebung eingeschlossen
-werden, was es mühsam macht, sie zu tippen.  Als
+im Gesangstext-Kontext nur, wenn sie gleichzeitig mit den Wörtern,
+auf die sie angewendet werden sollen, zusätzlich
+in eine @code{\markup}-Umgebung eingeschlossen
+werden. Durch diese Einbettung können einzelne Wörter nicht
+einfach zu einer Variable umgeformt werden.  Als
 Alternative versuchen wir, einen Befehl mit
 @code{\override} und @code{\revert} zu konstruieren.
 
@@ -3396,20 +3797,29 @@ Alternative versuchen wir, einen Befehl mit
 @code{\revert Lyrics . LyricText #'font-series}
 @end example
 
-Das wäre natürlich noch viel mühsamer.  Also setzen wir
-anstatt dessen zwei Variablen, die diese Befehlsketten
-enthalten.  Die Namen können natürlich auch kürzer sein,
-um noch weniger schreiben zu müssen.  Die Benutzung der Befehle
-ist im Notenbeispiel gezeigt.
+Das wäre natürlich noch viel mühsamer, wenn viele Wörter eine
+Hervorhebung benötigen.  Anstelle dieser Befehlsketten @emph{können}
+wir jedoch zwei Variablen definieren.  Mit ihnen und dem entsprechenden
+Wort in geschweiften Klammern erreichen wir den gewünschten Effekt.
+Ein weiterer Vorteil ist, dass in diesem Fall die Leerzeichn um die
+Punkte herum nicht benötigt werden, weil sie nicht innerhalb des
+@code{lyricmode}-Kontextes interpretiert werden.  Hier ein Beispiel;
+die Bezeichnungen können natürlich auch kürzer sein,
+um noch weniger schreiben zu müssen:
+
+@cindex LyricText, Beispiel zur Veränderung
+@cindex Gesangstext, Beispiel zur Veränderung
+@cindex font-shape-Eigenschaft, Beispiel
+@cindex font-series-Eigenschaft, Beispiel
 
 @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 = { \time 4/4 \partial 4 \key c \major}
@@ -3529,12 +3939,14 @@ Hier sind die wichtisgsten Dateien, die sich im Ordner
   @tab Inhalt
 @item @file{ly/engraver-init.ly}
   @tab Definitionen von Engraver-Kontexten
-@item @file{ly/paper-defaults.ly}
-  @tab Specifikationen von Voreinstellungen für Papiermaße
+@item @file{ly/paper-defaults-init.ly}
+  @tab Spezifikationen von Voreinstellungen für Papiermaße
 @item @file{ly/performer-init.ly}
   @tab Definitionen von Performer-Kontexten
 @item @file{ly/property-init.ly}
   @tab Definitionen aller vordefinierten Befehle
+@item @file{ly/spanner-init.ly}
+  @tab Definitionen aller vordefinierten Strecker-Befehle
 @end multitable
 
 Andere Einstellungen (wie die Definitionen von Beschriftungsbefehlen)
@@ -3615,6 +4027,10 @@ gesetzt werden, der durch die Prozedur jedes Mal neu bestimmt
 wird.  In diesem Beispiel wird die Farbe der Notenköpfe entsprechend
 zu ihrer Position innerhalb der Tonleiter gesetzt.
 
+@cindex x11-Farben, Beispiel zur Benutzung
+@cindex Notenkopf, Beispiel zur Veränderung
+@cindex Farb-Eigenschaft, in Scheme-Prozedur gesetzt
+
 @lilypond[quote,verbatim,ragged-right]
 #(define (color-notehead grob)
   "Color the notehead according to its position on the staff."
@@ -3635,9 +4051,9 @@ zu ihrer Position innerhalb der Tonleiter gesetzt.
 \relative c' {
   % Arrange to obtain color from color-notehead procedure
   \override NoteHead #'color = #color-notehead
-  c2 c' | 
-  b4 g8 a b4 c | 
-  c,2 a' | 
+  c2 c' |
+  b4 g8 a b4 c |
+  c,2 a' |
   g1 |
 }
 \addlyrics {
index 63cc3df9c37d64747ff1ee548bf640934f0fad58..f3b3ca33ccffd975710a14c3c00454c59b066efa 100644 (file)
@@ -1,18 +1,27 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*-
 @c This file is part of lilypond.tely
 @ignore
-    Translation of GIT committish: b03ad3631e3a6c5bd657eda5f4ba6963dfb22c36
+    Translation of GIT committish: 499a511d4166feaada31114e097f86b5e0c56421
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @node Unfretted string instruments
 @section Unfretted string instruments
 
-@untranslated
+@lilypondfile[quote]
+{unfretted-headword.ly}
+
+@cindex Streicher
+@cindex Orcherster, Streicher
+@cindex Notation für Streicher
+
+Dieser Abschnitt stellt Information und Referenzen zur Verfügung, die
+beim Setzen von Noten für Saiteninstrumente ohne Bund herangezogen
+werden können.
 
 @menu
 * Common notation for unfretted strings::  
 @node Common notation for unfretted strings
 @subsection Common notation for unfretted strings
 
-@untranslated
+Es gibt wenige Spezifikat für die Notation von Saiteninstrumenten ohne
+Bund.  Die Noten werden auf einem System notiert und meistens ist auch nur
+eine Stimme erforderlich.  Zwei Stimmen können für Doppelgriff- oder
+Divisi-Stellen erforderlich sein.
 
 @menu
-* References for unfretted strings::  
-* Bowing indications::          
-* Harmonics::                   
-* Snap (Bartók) pizzicato::     
+* References for unfretted strings::
+* Bowing indications::
+* Harmonics::
+* Snap (Bartok) pizzicato::     
 @end menu
 
 @node References for unfretted strings
 @unnumberedsubsubsec References for unfretted strings
 
-@untranslated
+Die meisten Notationseigenschaften, die für Orchersterstreicher eingesetzt
+werden, sind an anderer Stelle beschrieben:
+
+@itemize
+
+@item Textanweisungen wie @qq{pizz.} oder @qq{arco} werden als einfacher
+Text eingefügt, siehe @ref{Text scripts}.
+
+@item Fingersatz, auch das Zeichen für den Daumen, ist erklärt in
+@ref{Fingering instructions}.
+
+@item Doppelgriffe werden normalerweise als Akkord notiert, siehe hierzu
+@ref{Chorded notes}.  Anweisungen, wie Akkorde gespielt werden sollen, können
+auch hinzugefügt werden, siehe @ref{Arpeggio}.
+
+@item Eine Vorlage für Streichquartett findet sich in
+@rlearning{String quartet}.  Andere sind als Schnipsel zur Verfügung
+gestellt.
+
+@end itemize
+
+@seealso
+Handbuch zum Lernen:
+@rlearning{String quartet}.
+
+Notationsreferenz:
+@ref{Text scripts},
+@ref{Fingering instructions},
+@ref{Chorded notes},
+@ref{Arpeggio}.
+
+Schnipsel:
+@rlsr{Unfretted strings}.
 
 @node Bowing indications
 @unnumberedsubsubsec Bowing indications
 
-@untranslated
+@funindex \upbow
+@funindex \downbow
+@funindex \open
+
+@cindex Bogen, Anzeige
+@cindex Streicher, Bogenanzeige
+@cindex Offene Saite, anzeigen
+@cindex Saite, offen
+
+Hinweise zur Bogenfügung können als Artikulationen erstellt werden, wie
+beschrieben in
+@ref{Articulations and ornamentations}.
+
+Die Befehle @code{\upbow} und @code{\downbow} werden mit Legatobögen
+in folgender Weise eingesetzt:
+
+@lilypond[verbatim,quote,relative=2]
+c4(\downbow d) e(\upbow f)
+@end lilypond
+
+@noindent
+und das nächste Beispiel zeigt drei Arten, eine offene A-Saite auf der
+Geige anzuzeigen:
+
+@lilypond[verbatim,quote,relative=2]
+a4 \open
+a^\markup { \teeny "II" }
+a2^\markup { \small "sul A" }
+@end lilypond
+
+@predefined
+@code{\downbow},
+@code{\upbow},
+@code{\open}.
+@endpredefined
+
+@seealso
+Notation Reference:
+@ref{Articulations and ornamentations},
+@ref{Slurs}.
+
 
 @node Harmonics
 @unnumberedsubsubsec Harmonics
 
+@strong{@i{Natürliches Flageolett}}
 
 @cindex Flageolett
+@funindex \harmonic
+@funindex harmonic
+
+Flageolett-Töne können auf verschiedene Arten notiert werden.
+Üblicherweise werden sie mit einem Rautenkopf notiert, wenn
+ein Ton angezeigt werde, bei dem die Saite berührt wird, wo sie
+sonst abgegriffen würde.
+
+@warning{Flageolett-Töne @strong{müssem} innerhalb von Akkorden
+definiert werden, auch wenn nur eine einzelne Note vorhanden ist.}
+
+@lilypond[verbatim,quote,relative=2]
+<d\harmonic>4 <e\harmonic>2.
+\set harmonicDots = ##t
+<d\harmonic>4 <e\harmonic>2.
+@end lilypond
+
+Alternativ kann auch eine normale Noten die Tonhöhe anzeigen, die
+erklingen soll, wobei ein kleiner Kreis angibt, dass es sich um
+einen Flageolett-Ton handelt:
+
+@lilypond[verbatim,quote,relative=2]
+d2^\flageolet d_\flageolet
+@end lilypond
 
-Flageolett-Töne werden mit einem anderen Notenkopfstil notiert.
-Sie werden eingegeben, indem die Flageolettnote mit dem
-Befehl @code{\harmonic} markiert wird.
+
+@strong{@i{Künstliches Flageolett}}
+
+@cindex künstliches Flageolett
+@cindex Flageolett, künstliches
+
+Künstliche Flageoletttöne werden mit zwei Noten notiert, von denen
+einen einen normalen Notenkopf besitzt und die Griffposition des
+Fingers angibt, während die andere in Rautenform die Position des
+leicht aufgesetzten Fingers anzeigt.
 
 @lilypond[verbatim,quote,relative=1]
 <e a\harmonic>2  <c g'\harmonic>
 @end lilypond
 
-@node Snap (Bartók) pizzicato
-@unnumberedsubsubsec Snap (Bartók) pizzicato
+@seealso
+Glossar:
+@rglos{harmonics}.
+
+Notationsreferenz:
+@ref{Special note heads},
+@ref{References for unfretted strings}.
+
+
+
+@node Snap (Bartok) pizzicato
+@unnumberedsubsubsec Snap (Bartok) pizzicato
+
+@cindex Pizzicato, Bartók
+@cindex Pizzicato, Knall-
+@cindex Bartók-Pizzicato
+@cindex Knall-Pizzicato
+
+@snippets
 
-@untranslated
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{snap-pizzicato-markup-bartok-pizzicato.ly}
index 7b803357d28fef85b9aed2b5b728de442117e1bf..eda4095bace81169c9a6fdd46a406964dcb531cd 100644 (file)
@@ -1,18 +1,20 @@
-@c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*-
-@c This file is part of lilypond.tely
+@c -*- coding: utf-8; mode: texinfo; -*-
 @ignore
-    Translation of GIT committish: 4a527608c5ff2ce31e596495d00dce181dc1b9ea
+    Translation of GIT committish: 499a511d4166feaada31114e097f86b5e0c56421
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
+@c \version "2.12.0"
 
 @node Vocal music
 @section Vocal music
 
-@untranslated
+@c TODO: inspirational headword
 
+Dieser Abschnitt erklärt, wie Vokalmusik gesetzt werden kann und
+die Silben von Gesangstext an den Noten ausgerichtet werden.
 
 @menu
 * Common notation for vocal music::
 @end menu
 
 
-
 @node Common notation for vocal music
 @subsection Common notation for vocal music
 
-@untranslated
+Dieser Abschnitt behandelt allgemeine Fragen der Notation
+von Vokalmusik und einige spezifische Vokalmusikstile.
 
 @menu
 * References for vocal music and lyrics::
 * Opera::
 * Song books::
-* Chants::
 * Spoken music::
+* Chants::
 * Ancient vocal music::
 @end menu
 
 @node References for vocal music and lyrics
 @unnumberedsubsubsec References for vocal music and lyrics
 
-@untranslated
+@c TODO: split this section in two parts? -vv
+
+Viele Probleme können auftreten, wenn man Vokalmusik setzt.  Einige
+davon werden in diesem Abschnitt behandelt, während weitere sich
+in anderen Abschnitten befinden:
+
+@itemize
+@item
+Die meisten Vokalmusikstile benutzen Text für den Gesangstext.  Eine
+Einleitung hierzu findet sich in @rlearning{Setting simple songs}.
+
+@item
+Vokalmusik braucht oft die Benutzung von Textbeschriftung (dem
+@code{markup}-Modus) für den Gesangstext oder andere Textelemente
+(Namen von Figuren usw.).  Die entsprechende Syntax ist beschrieben in
+@ref{Text markup introduction}.
+
+@item
+Liedblätter können erstellt werden, indem eine Gesangsstimme mit Akkorden
+kombiniert wird, Einzelheiten finden sich in @ref{Chord notation}.
+
+@item
+@q{Ambitus} können zu Beginn der Stimmen hinzugefügt werden, dies findet
+sich erklärt in
+@ref{Ambitus}.
+
+@item
+Gesangsstimmen können auch mit traditionellen Schlüsseln gesetzt werden,
+siehe @ref{Clef}.
+
+@item
+Alte Vokalmusik ist unterstützt, Einzelheiten hierzu in @ref{Ancient notation}.
+@end itemize
+
 
 @node Opera
 @unnumberedsubsubsec Opera
 
-@untranslated
+@c TODO
+TBC
+
+@c add characters names snippet -vv
+
 
 @node Song books
 @unnumberedsubsubsec Song books
 
-@untranslated
+@c TODO
+TBC
+
+@snippets
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{simple-lead-sheet.ly}
+
+@seealso
+Notationsreferenz:
+@ref{Chord notation}.
+
 
 @node Spoken music
 @unnumberedsubsubsec Spoken music
 
-@untranslated
+@cindex Parlato
+@cindex Sprechgesang
+
+Effekte wie @qq{Parlato} bzw. @qq{Sprechgesang} erfordern, dass die Noten
+ohne Tonhöhe, aber mit dem notierten Rhythmus gesprochen werden.  Solche
+Noten werden mit einem Kreuz als Notenkopf notiert, siehe hierzu
+@ref{Special note heads}.
+
+@c TODO add "marking-notes-on-spoken-parts" snippet -vv
+@c add "showing the rhythm of a melody" snip
+@c add "one staff-line notation"
+@c add "improvisation" ref
+@c add "lyrics independents of notes" ref
+
 
 @node Chants
 @unnumberedsubsubsec Chants
 
-@untranslated
+@c TODO Add text from lsr and -user
+TBC
+
 
 @node Ancient vocal music
 @unnumberedsubsubsec Ancient vocal music
 
-@untranslated
+@c TODO
+TBC
+
+@c Add "Printing both the ancient and the modern clef in vocal music" snippet,
+@c and "Transcription of Ancient music with incipit" snippet. -vv
+
+@seealso
+Notationsreferenz:
+@ref{Ancient notation}.
+
 
 @node Entering lyrics
 @subsection Entering lyrics
 
-@untranslated
-
+@c TODO add one sentence here. -vv
 
 @menu
 * Lyrics explained::
 @node Lyrics explained
 @unnumberedsubsubsec Lyrics explained
 
-@untranslated
-
-
+@cindex Gesangstext
+@funindex \lyricmode
+@cindex Satzzeichen
+@cindex Leerzeichen, Gesangstext
+@cindex Anführungszeichen, Gesangstext
+
+LilyPond-Eingabedateien sind einfache Textdateien, in denen
+Text verwendet wird, um Notationssymbole darzustellen.  Für
+die Notation von Gesangstext muss also sichergestellt sein,
+dass ein Buchstabe, etwa@tie{}@code{d}, nicht als Note, sondern
+als Buchstabe @qq{d} interpretiert wird.  Darum gibt es einen
+besonderen Modus, in dem Gesangstext geschreiben werden kann,
+den @qq{Lyric}-Modus (engl. lyrics = Gesangstext).
+
+Der Gesangstextmodus kann mit der Umgebung @code{\lyricmode}
+spezifiziert werden, oder indem @code{\addlyrics} bzw.
+@code{\lyricsto} eingesetzt wird.  In diesem Modus kann
+Text mit Akzenten und Satzzeichen notiert werden, und das
+Programm geht davon aus, dass es sich auch um Text handelt.
+Silben werden wie Noten notiert, indem ihnen ihre Dauer
+angehängt wird:
+
+@example
+\lyricmode @{ Twin-4 kle4 twin- kle litt- le star2 @}
+@end example
+
+Es gibt zwei generelle Methoden, die horizontale Orientierung der
+Textsilben zu spezifizieren, entweder indem ihre Dauer angegeben wird,
+wie oben in dem Beispiel, oder indem die Silben automatisch an den
+Noten ausgerichtet werden. Dazu muss entweder @code{\addlyrics}
+oder @code{\lyricsto} eingesetzt werden.
+@c  TODO: broken
+@c For more details see @ref{The Lyrics context}.
+
+Ein Wort oder eine Silbe beginnt mit einem alphabetischen Zeichen und
+endet mit einem Leerzeichen oder einer Zahl.  Die folgenden Zeichen
+können beliebig sein, außer Leerzeichen und Zahlen.
+
+Jedes Zeichen, das nicht Leerzeichen noch Zahl ist, wird als Bestandteil
+der Silbe angesehen. Eine Silbe kann also auch mit @code{@}} enden,
+was oft zu dem Fehler
+
+@example
+\lyricmode @{ lah- lah@}
+@end example
+
+@noindent
+führen kann.  Hier wird @code{@}} als Teil der letzten Silbe gerechnet, so
+dass die öffnende Klammer keine schließende Klammer hat und die Eingabedatei
+nicht funktioniert.
+
+
+@funindex \property in \lyricmode
+
+@noindent
+Auch ein Punkt, der auf eine Silbe folgt, wird in die Silbe inkorporiert. 
+Infolgedessen müssen auch um Eigenschaftsbezeichnungen Leerzeichen gesetzt
+werden.  Ein Befehl heißt also @emph{nicht}:
+
+@example
+\override Score.LyricText #'font-shape = #'italic
+@end example
+
+@noindent
+sondern
+
+@example
+\override Score . LyricText #'font-shape = #'italic
+@end example
+
+@funindex _
+@cindex Leerzeichen, Gesangstext
+@cindex Bindestriche, Gesangstext
+@cindex Gedanktenstriche, Gesangstext
+
+Um mehr als eine Silbe einer einzelnen Note zuzuweisen, kann
+man die Silben mit geraden Anführungszeichen umgeben (Shift+2)
+oder einen Unterstrich (@code{_}) benutzen, um Leerzeichen
+zwischen die Silben zu setzen, bzw. die Tilde (@code{~})
+einsetzen, um einen Bindebogen zu erhalten.
+
+@lilypond[quote,ragged-right,fragment,verbatim]
+\time 3/4
+\relative c' { c2 e4 g2 e4 }
+\addlyrics { gran- de_a- mi- go }
+\addlyrics { pu- "ro y ho-" nes- to }
+\addlyrics { pu- ro~y~ho- nes- to }
+@end lilypond
+
+@noindent
+Dieser Bindebogen ist definiert als das Unicode-Zeichen
+@code{U+203F}; es muss deshalb sichergestellt werden,
+dass eine Schriftart benutzt wird (wie etwa DejaVuLGC),
+die dieses Zeichen enthält.  Mehr Information zur
+Schriftartauswahl findet sich in @ref{Fonts}.
+
+Um Gesangstext mit Akzenten, Umlauten, besonderen Zeichen
+oder anderen Alphabeten
+zu setzen, müssen diese Zeichen direkt in den Text geschrieben
+werden und die Datei als UTF-8 gespeichert werden.  Für weitere
+Information siehe @ref{Text encoding}.
+
+@lilypond[quote,ragged-right,fragment,verbatim]
+\relative c' { e4 f e d e f e2 }
+\addlyrics { He said: “Let my peo ple go”. }
+@end lilypond
+
+Um gerade Anführungszeichen im Gesangstext zu verwenden, müssen
+sie mit einem Backslash markiert werden, beispielsweise:
+
+@lilypond[quote,ragged-right,fragment,verbatim]
+\relative c' { \time 3/4 e4 e4. e8 d4 e d c2. }
+\addlyrics { "\"I" am so lone- "ly\"" said she }
+@end lilypond
+
+Die vollständige Definition eines Wortanfangs im Gesangstextmodus
+ist jedoch etwas komplizierter.
+
+Eine Silbe im Gesangstextmodus beginnt mit: einem alphabetischen Zeichen,
+@code{_}, @code{?}, @code{!}, @code{:}, @code{'}, den Kontrollzeichen @code{^A}
+bis @code{^F}, @code{^Q} bis @code{^W}, @code{^Y}, @code{^^},
+einem beliebigen 8-Bit-Zeichen mit ASCII über 127, oder
+Zeichenkombinationen, in denen ein Backslas mit @code{`}, @code{'},
+@code{"} oder @code{^} kommbiniert wird.
+
+@c " to balance double quotes for not-so-bright context-sensitive editors
+
+Um Variablen zu definieren, in denen sich Gesangstext befindet, muss
+die @code{lyricmode}-Umgebung benutzt werden:
+
+@example
+stropheEins = \lyricmode @{ Joy to the world the Lord is come @}
+\score @{
+  <<
+    \new Voice = "eins" \relative c'' @{
+      \autoBeamOff
+      \time 2/4
+      c4 b8. a16 g4. f8 e4 d c2
+    @}
+    \addlyrics @{ \stropheEins @}
+  >>
+@}
+@end example
+
+
+@seealso
+Notationsreferenz:
+@ref{Fonts}.
+
+Referenz der Interna:
+@rinternals{LyricText},
+@rinternals{LyricSpace}.
+
+@c FIXME: this title has to be changed (possible confusion with LM) -vv
 @node Setting simple songs
 @unnumberedsubsubsec Setting simple songs
 
-@untranslated
+@funindex \addlyrics
+
+Am einfachsten kann Gesangstext zu Noten mit dem Befehl
+
+@example
+\addlyrics @{ @var{Gesangstext} @}
+@end example
+
+@noindent
+hinzugefügt werden.  Hier ein Beispiel:
+
+@lilypond[ragged-right,verbatim,fragment,quote]
+\time 3/4
+\relative c' { c2 e4 g2. }
+\addlyrics { play the game }
+@end lilypond
+
+Weitere Strophen können hinzugefügt werden, indem
+weitere @code{\addlyrics}-Abschnitte erstellt werden:
+
+@lilypond[ragged-right,verbatim,fragment,quote]
+\time 3/4
+\relative c' { c2 e4 g2. }
+\addlyrics { play the game }
+\addlyrics { speel het spel }
+\addlyrics { joue le jeu }
+@end lilypond
+
+Der Befehl @code{\addlyrics} funktioniert nicht in polyphonen 
+Situationen.  In diesem Fall solte man @code{\lyricsto} in Kombination
+mit @code{\lyricmode} benutzen, wie erklärt in
+@ref{Lyrics explained}.
+
+@c TODO: one additional section may be needed here,
+@c such as "advanced lyric syntax" or whatever -vv
+
 
 @node Working with lyrics and variables
 @unnumberedsubsubsec Working with lyrics and variables
 
-@untranslated
+@cindex Gesangstext, Variablen
+@cindex Variablen, Gesangstext
+
+Um Variablen zu definieren, die Gesangstext beinhalten, muss die
+@code{\lyricmode}-Umgebung benutzt werden.  Man braucht hier
+keine Dauern einzugeben, wenn die Variable mit
+@code{\addlyrics} oder @code{\lyricsto} zu einer Melodie hinzugefügt
+wird.
+
+@example
+stropheEins = \lyricmode @{ Joy to the world the Lord is come @}
+\score @{
+ <<
+   \new Voice = "eins" \relative c'' @{
+     \autoBeamOff
+     \time 2/4
+     c4 b8. a16 g4. f8 e4 d c2
+   @}
+   \addlyrics @{ \stropheEins @}
+ >>
+@}
+@end example
+
+Für eine andere Anordnung oder kompliziertere Sitationen bietet
+es sich an, zuerst Systeme und Gesangstextumgebungen zu definieren
+
+@example
+\new ChoirStaff <<
+  \new Voice = "soprano" @{ @emph{Noten} @}
+  \new Lyrics = "sopranoLyrics" @{ s1 @}
+  \new Lyrics = "tenorLyrics" @{ s1 @}
+  \new Voice = "tenor" @{ @emph{Noten} @}
+>>
+@end example
+
+@noindent
+und erst dann die entsprechenden Stimmen mit den dem Text zu kombinieren
+
+@example
+\context Lyrics = sopranoLyrics \lyricsto "soprano"
+@emph{Gesangstext}
+@end example
+
+
+
+@ignore
+@c FIXME
+http://code.google.com/p/lilypond/issues/detail?id=329
+The problem cannot be reproduced.
+The following has no sense, because the issue seems to be fixed.
+A comment is in tracker waiting for response ---FV
+
+
+Be careful when defining a variable with lyrics that creates a new
+context, for example, using the deprecated @code{\lyrics} command. See
+the next erroneous example:
+
+@example
+words = \lyrics{ %warning: this creates a new context
+ one two
+}
+<<
+  \new Voice = "sop" { c1 }
+  \new Lyrics \lyricsto "sop" { \words }
+  \new Voice = "alt" { c2 c }
+  \new Lyrics \lyricsto "alt" { \words }
+>>
+@end example
+
+the problem is that \lyricsto will try to connect the "sop" melody with the context
+created by "\new Lyrics".
+
+Then \lyrics in \words creates another context, and the original "\new Lyrics" one
+remains empty.
+
+@end ignore
+
+@seealso
+@c TODO: document \new Staff << Voice \lyricsto >> bug
+Referenz der Interna:
+@rinternals{LyricCombineMusic},
+@rinternals{Lyrics}.
 
 
 @node Aligning lyrics to a melody
 @subsection Aligning lyrics to a melody
 
-@untranslated
+@funindex \lyricmode
+@funindex \addlyrics
+@funindex \lyricsto
+
+@c FIXME: this stuff is to be rewritten. -vv
+
+Gesangstext kann an einer Melodie automatisch ausgerichtet werden, aber
+wenn die Dauern der Silben angegeben werden, kann man sie auch manuell
+ausrichten.  Die Ausrichtung kann angepasst werden mit leeren Noten
+(mit @code{\skip} oder @code{_}), Trennungsstrichen und Fülllinien.
+
+Gesantstext wird gesetzt, wenn er sich in dem Kontext @code{Lyrics}
+befindet:
+
+@example
+\new Lyrics \lyricmode @dots{}
+@end example
+
+Es gibt zwei Methoden, mit denen man die horizontale Ausrichtung der Silben
+beeinflussen kann:
+
+@itemize
+@item
+Automatische Ausrichtung mit @code{\addlyrics} oder @code{\lyricsto}.
+
+@item
+Definition der Silbendauer innerhalb von @code{\lyricmode}.
+@end itemize
 
 
 @menu
 @node Automatic syllable durations
 @unnumberedsubsubsec Automatic syllable durations
 
-@untranslated
+@cindex automatische Ausrichtung von Silben
+@cindex Gesangstext, Ausrichtung
+@cindex Ausrichtung von Gesangstext
+
+Die Silben des Gesangstextes können automatisch an einer
+Melodie ausgerichtet werden.  Das erreicht man, indem
+der Gesangstext mit dem @code{\lyricsto}-Befehl einer
+Melodie zugewiesen wird:
+
+@example
+\new Lyrics \lyricsto @var{Bezeichnung} @dots{}
+@end example
+
+Hiermit werden die Silben an den Noten eines @code{Voice}-Kontexts
+mit der Bezeichnung @var{Bezeichnung} ausgerichtet.  Dieser Kontext
+muss schon vorher definiert sein, damit er aufgerufen werden kann.
+Mit dem Befehl @code{\lyricsto} wird in den @code{\lyricmode} 
+gewechselt, so dass der Gesangstextmodus nicht mehr extra angegeben
+werden muss.
+
+Das folgende Beispiel zeigt die Wirkung der unterschiedlichen
+Befehle, mit welchen Gesangtext mit einer Melodie kombiniert werden
+kann:
+
+@lilypond[quote,fragment,ragged-right,verbatim]
+<<
+  \new Voice = "one" \relative c'' {
+    \autoBeamOff
+    \time 2/4
+    c4 b8. a16 g4. f8 e4 d c2
+  }
+
+% not recommended: left aligns syllables
+  \new Lyrics \lyricmode { Joy4 to8. the16 world!4. the8 Lord4 is come.2 }
+
+% wrong: durations needed
+  \new Lyrics \lyricmode { Joy to the earth! the Sa -- viour reigns. }
+
+%correct
+  \new Lyrics \lyricsto "one" { No more let sins and sor -- rows grow. }
+>>
+@end lilypond
+
+@noindent
+Die zweite Strophe ist nicht richtig ausgerichtet, weil die Dauern der
+Silben nicht angegeben wurden.  Anstelle dessen könnte besser @code{\lyricsto}
+eingesetzt werden.
+
+Der @code{\addlyrics}-Befehl ist eigentlich nur eine Abkürzung für eine
+etwas kompliziertere LilyPond-Struktur:
+
+@example
+@{ Noten @}
+\addlyrics @{ Gesangstext @}
+@end example
+
+@noindent
+bedeutet das Gleiche wie
+
+@example
+\new Voice = "bla" @{ Noten @}
+\new Lyrics \lyricsto "bla" @{ Gesangstext @}
+@end example
 
 
 @node Manual syllable durations
 @unnumberedsubsubsec Manual syllable durations
 
-@untranslated
+Gesangstext kann auch ohne @code{\addlyrics} bezw. @code{\lyricsto}
+notiert werden.  In diesem Fall werden die Silben wie Noten notiert
+-- indem die Tonhöhen durch den Text der Silbe ersetzt werden -- und
+die Dauer jeder Silbe muss angegeben werden.  Beispielsweise so:
+
+@example
+play2 the4 game2.
+sink2 or4 swim2.
+@end example
+
+Die Ausrichtung an einer Melodie kann mit der
+@code{associatedVoice}-Eigenschaft bestimmt werden, etwa:
+
+@example
+\set associatedVoice = #"lala"
+@end example
+
+@noindent
+Das Argument dieser Eigenschaft (hier @code{"lala"}) muss die Bezeichnung
+der entsprechenden Stimme sein.  Ohne diese Einstellung werden 
+Fülllinien nicht richtig formatiert.
+
+Hier ein Beispiel, dass die manuale Ausrichtung von Gesangstext zeigt:
+
+@lilypond[relative=1,ragged-right,verbatim,fragment,quote]
+<< \new Voice = "melody" {
+    \time 3/4
+    c2 e4 g2.
+ }
+ \new Lyrics \lyricmode {
+   \set associatedVoice = #"melody"
+   play2 the4 game2.
+ } >>
+@end lilypond
+
+@seealso
+Referenz der Interna:
+@rinternals{Lyrics}.
 
 
 @node Multiple syllables to one note
 @unnumberedsubsubsec Multiple syllables to one note
 
-@untranslated
+
+@funindex _
+@cindex Bindebogen, Gesangstext
+
+Um mehr als eine Silbe zu einer Note zuzuordnen, können die Silben
+mit geraden Anführungszeichen (@code{"}) umgeben werden oder ein
+Unterstricht (@code{_}) benutzt werden, um ein Leerzeichen zwischen
+Silben zu setzen.  Mit der Tilde (@code{~}) kann ein Bindebogen
+gesetzt werden.  Dies erfordert, dass eine Schriftart vorhanden ist,
+die das entsprechende Symbol (U+203F) beinhaltet, wie etwa DejaVuLGC.
+
+@lilypond[quote,ragged-right,fragment,verbatim]
+\time 3/4
+\relative c' { c2 e4 g2 e4 }
+\addlyrics { gran- de_a- mi- go }
+\addlyrics { pu- "ro y ho-" nes- to }
+\addlyrics { pu- ro~y~ho- nes- to }
+@end lilypond
+
+@seealso
+Referenz der Interna:
+@rinternals{LyricCombineMusic}.
+
+@c Here come the section which used to be "Melismata"
+@c the new title might be more self-explanatory
 
 
 @node Multiple notes to one syllable
 @unnumberedsubsubsec Multiple notes to one syllable
 
-@untranslated
+@cindex Melisma
+@cindex Phrasierung, Gesang
+
+Öfters wird eine einzige Silbe zu mehreren Noten gesungen, was
+als Melisma bezeichnet wird.
+
+@c this method seems to be the simplest; therefore
+@c it might be better to present it first - vv
+
+Melismen können direkt im Gesangstext definiert werden, indem
+ein Unterstrich (@code{_}) für jede Note notiert wird, die
+übersprungen werden soll.
+
+@c FIXME: clarify: __ is used to crate a lyric extender,
+@c _ is used to add a note to a melisma, so both __ and _ are needed.
+
+@c verbose! --FV
+@c duplicated: TODO fix
+
+Zusätzlich kann auch eine Fülllinie eingefügt werden, die das Melisma anzeigt.
+Sie wird notiert, indem ein doppelter Unterstrich direkt hinter
+die Silbe des Melismas gesetzt wird.  Das Beispiel unten zeigt
+drei Elemente, die eingesetzt werden können: ein doppelter Bindestrich
+erstellt Trennungsstriche zwischen Silben, mit Unterstrichen wird
+eine Note übersprungen und mit einem doppelten Unterstrich wird eine
+Fülllinie gesetzt.  Alle diese Zeichen müssen von Leerzeichen umgeben
+sein, damit sie erkannt werden.
+
+@c wrong: extender line only on last syllable of a word. Change example
+@lilypond[relative=1,verbatim,fragment,quote]
+{ \set melismaBusyProperties = #'()
+ c d( e) f f( e) e e  }
+\addlyrics
+ { Ky -- _ _ ri __ _ _ _  e }
+@end lilypond
+
+Legatobögen können eingesetzt werden, wenn die Funktion
+@code{melismaBusyProperties} aufgerufen wird, wie in dem Beispiel oben.
+
+Mit dem @code{\lyricsto}-Befehl können Melismen aber auch automatisch
+zugewiesen werden: unter übergebundene Noten oder Notengruppen mit einem
+Legatobogen wird nur eine einzige Silbe gesetzt.  Wenn eine Notengruppe
+ohne Legatobogen als Melisma definiert werden soll, kann die Reichweite
+mit den Befehlen @code{\melisma} und @code{\melismaEnd} eingegrenzt
+werden:
+
+@lilypond[quote,relative=2,ragged-right,fragment,verbatim]
+<<
+  \new Voice = "lala" {
+    \time 3/4
+    f4 g8
+    \melisma
+    f e f
+    \melismaEnd
+    e2
+  }
+  \new Lyrics \lyricsto "lala" {
+    la di __ daah
+  }
+>>
+@end lilypond
+
+Zusätzlich werden Noten als Melisma erachtet, wenn man sie manuell
+zu einer Balkengruppe verbindet und die automatische Bebalkung
+gleichzeitig ausgeschaltet ist.  Siehe auch @ref{Setting automatic beam
+behavior}.
+
+@c FIXME: this now links to LM -vv
+
+@cindex SATB
+@cindex choral score
+
+Ein vollständiges Beispiel für einen SATB-Chorsatz findet
+sich in
+@rlearning{Vocal ensembles}.
+
+
+@predefined
+@code{\melisma}, @code{\melismaEnd}
+@funindex \melismaEnd
+@funindex \melisma
+@endpredefined
+
+@seealso
+@c @lsr{vocal,lyric@/-combine.ly}.
+
+@knownissues
+
+Melismen werde nicht automatisch erkannt, und Fülllinien müssen
+manuell gestzt werden.
 
 
 @node Skipping notes
 @unnumberedsubsubsec Skipping notes
 
-@untranslated
+Damit der Gesangstext langsamer als die Melodie fortschreitet,
+kann man @code{\skip}-Befehle einfügen.  Jeder @code{\skip}-Befehl
+schiebt den Text eine Note weiter.  Der Befehl muss von einer
+gültigen Dauer gefolgt werden, wie das Beispiel zeigt: dieser
+Dauerwert wird jedoch ignoriert, wenn man @code{\skip} im
+Gesangstext einsetzt.
+
+@lilypond[verbatim,ragged-right,quote]
+\relative c' { c c g' }
+\addlyrics {
+  twin -- \skip 4
+  kle
+}
+@end lilypond
 
 
 @node Extenders and hyphens
 @unnumberedsubsubsec Extenders and hyphens
 
-@untranslated
+@cindex Melisma
+@cindex Fülllinie
+
+@c leave this as samp. -gp
+Wenn die letzte Silbe eines Wortes auf ein Melisma fällt, wird
+das Melisma oft mit einer langen horizontalen Linie angezeigt,
+die nach dem Wort beginnt und mit der letzten Note des Melismas
+endet.  Derartige Fülllinien werden mit einem doppelten
+Unterstrich (@code{ __ }) eingegeben, wobei beachtet werden muss,
+dass er von Leerzeichen umgeben ist.
+
+@warning{Melismen werden mit Fülllinien angezeigt, die als doppelter
+Unterstrich notiert sind.  Kurze Melismen können auch notiert werden,
+indem eine Note übersprungen wird.  Hierzu wird ein einfacher
+Unterstrich notiert und keine Fülllinie gezogen.}
+
+@cindex Trennstriche, Gesangstext
+@cindex Bindestriche, Gesangstext
+
+@c leave this as samp. -gp
+Zentrierte Bindestriche zwischen den einzelnen Silben werden mit
+einem doppelten Bindestrich (@code{ -- }) eingegeben, wobei beachtet
+werden muss, dass er von Leerzeichen umgeben ist.  Der Bindestrich
+wird zwischen den Silben zentriert und seine Länge dem Notenabstand
+angepasst.
+
+In sehr eng notierter Musik können die Bindestriche ganz wegfallen.
+Dieses Verhalten kann aber auch unterbunden werden, wenn den Eigenschaften
+@code{minimum-distance} (minimaler Abstand zwischen Silben) und
+@code{minimum-length} (Wert, unterhalb von dem Bindestriche wegfallen)
+andere Werte erhalten.
+
+@seealso
+Referenz der Interna:
+@rinternals{LyricExtender},
+@rinternals{LyricHyphen}
 
 
 @node Lyrics and repeats
 @unnumberedsubsubsec Lyrics and repeats
 
-@untranslated
+@c TODO New section.  Add text
+TBC
 
 
 @node Specific uses of lyrics
 @subsection Specific uses of lyrics
 
-@untranslated
+@c FIXME This whole section is to be reorganized. -vv
 
+In vielen Fällen werden unterschiedliche Strophen mit einer
+Liedmelodie angeordnet, wobei kleine Schwankungen in der
+Silbenaufteilung auftreten können.  Derartige Variationen
+können mit @code{\lyricsto} notiert werden.
 
 @menu
 * Divisi lyrics::
 * Centering lyrics between staves::
 @end menu
 
+
+
 @node Divisi lyrics
 @unnumberedsubsubsec Divisi lyrics
 
-@untranslated
+Alternative (oder @emph{divisi} Gesangstexte können notiert
+werden, indem Stimmenkontexten Bezeichnungen zugewiesen werden
+und die Texte dann jeweils der entsprechenden Bezeichnung
+zugewiesen wird.
+
+@lilypond[verbatim,ragged-right,quote]
+\score{ <<
+  \new Voice = "melody" {
+    \relative c' {
+      c4
+      <<
+        { \voiceOne c8 e }
+        \new Voice = "splitpart" { \voiceTwo c4 }
+      >>
+      \oneVoice c4 c | c
+    }
+  }
+  \new Lyrics \lyricsto "melody" { we shall not o- ver- come }
+  \new Lyrics \lyricsto "splitpart" { will }
+>> }
+@end lilypond
+
+Mit diesem Trick kann auch ein unterschiedlicher Text für eine
+wiederholte Stelle gesetzt werden:
+
+@lilypond[verbatim,ragged-right,quote]
+\score{ <<
+  \new Voice = "melody" \relative c' {
+    c2 e | g e | c1 |
+    \new Voice = "verse" \repeat volta 2 {c4 d e f | g1 | }
+    a2 b | c1}
+  \new Lyrics = "mainlyrics" \lyricsto melody \lyricmode {
+    do mi sol mi do
+    la si do }
+  \context Lyrics = "mainlyrics" \lyricsto verse \lyricmode {
+   do re mi fa sol }
+  \new Lyrics = "repeatlyrics" \lyricsto verse \lyricmode {
+   dodo rere mimi fafa solsol }
+>>
+}
+@end lilypond
+
 
 
 @node Lyrics independent of notes
 @unnumberedsubsubsec Lyrics independent of notes
 
-@untranslated
+@cindex Devnull-Kontext
+
+In sehr komplexer Vokalmusik ist es manchmal erforderlich,
+den Gesangstext vollständig unabhängig von den Noten zu
+setzen.  Das Beispiel unten zeigt das Vorgehen: die
+Noten, die für @code{lyricrhythm} definiert sind, verschwinden
+im @code{Devnull}-Kontext, während ihre Dauern immernoch
+gültig sind, um die Silben daran auszurichten.
+
+@lilypond[quote,verbatim,ragged-right]
+voice = {
+  c''2
+  \tag #'music { c''2 }
+  \tag #'lyricrhythm { c''4. c''8 }
+  d''1
+}
+
+lyr = \lyricmode { I like my cat! }
+
+<<
+  \new Staff \keepWithTag #'music \voice
+  \new Devnull="nowhere" \keepWithTag #'lyricrhythm \voice
+  \new Lyrics \lyricsto "nowhere" \lyr
+  \new Staff { c'8 c' c' c' c' c' c' c'
+  c' c' c' c' c' c' c' c' }
+>>
+@end lilypond
+
+Diese Vorgehensweise ist nur empfehlenswert, wenn die Noten innerhalb
+des @code{Devnull}-Kontextes keine Melismen enthalten.  Melismen
+werden im @code{Voice}-Kontext definiert.  Wenn ein Gesangstext
+mit einem @code{Devnull}-Kontext verknüpft wird, wird die Verbindung
+von @code{Voice}- und @code{Lyrics}-Kontext aufgehoben und somit
+auch die Information zu Melismen.  Darum werden implizite Melismen
+ignoriert.
+
+@c Conclusion: do not use devnull for lyrics -FV
+
+@c this clarifies http://code.google.com/p/lilypond/issues/detail?id=248
 
 
 @node Spacing out syllables
 @unnumberedsubsubsec Spacing out syllables
 
-@untranslated
+@cindex Silben spreizen
+@cindex Spreizen von Silben
+@cindex Gesangstext, Platz zwischen Silben
+@cindex Abstand vergrößern, Gesangstext
+
+Um den Abstand zwischen Silben zu vergrößern, kann die
+@code{minimum-distance}-Eigenschaft des
+@code{LyricSpace}-Objekts gesetzt werden:
+
+@lilypond[relative,verbatim,fragment,quote,ragged-right]
+{
+  c c c c
+  \override Lyrics.LyricSpace #'minimum-distance = #1.0
+  c c c c
+}
+\addlyrics {
+  longtext longtext longtext longtext
+  longtext longtext longtext longtext
+}
+@end lilypond
+
+Damit diese Einstellung für alle Gesangtextzeilen in einer Partitur
+wirkt, muss sie im @code{layout}-Block vorgenommen werden.
+
+@lilypond[verbatim,quote,ragged-right]
+\score {
+  \relative c' {
+  c c c c
+  c c c c
+  }
+  \addlyrics {
+  longtext longtext longtext longtext
+  longtext longtext longtext longtext
+  }
+  \layout {
+    \context {
+      \Lyrics
+      \override LyricSpace #'minimum-distance = #1.0
+    }
+  }
+}
+@end lilypond
+
+@c @snippets
+@c This snippet has been renamed to "lyrics-alignment.ly"
+@c update as soon as lsr/is updated -vv
+@c @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+@c {lyrics-alignment.ly}
+
+@c TODO: move to LSR -vv
+@snippets
+
+Eine Überprüfung, mit der sichergestellt wird, dass kein Text in die
+Seitenränder ragt, ist sehr rechenintensiv.  Damit die Bearbeitungszeit
+von Dateien nicht so lange dauert, wird diese Überprüfung nicht
+automatisch vorgenommen.  Man kann sie mit dem Befehl
+
+@example
+\override Score.PaperColumn #'keep-inside-line = ##t
+@end example
+
+@noindent
+aktivieren.  Damit Gesangstext auch nicht mit Taktlinien
+zusammenstößt, kann folgende Einstellung gesetzt werden:
+
+@example
+\layout @{
+  \context @{
+    \Lyrics
+      \consists "Bar_engraver"
+      \consists "Separating_line_group_engraver"
+      \override BarLine #'transparent = ##t
+  @}
+@}
+@end example
+
+@c TODO Create and add lsr example of lyricMelismaAlignment
+@c It's used like this to center-align all lyric syllables,
+@c even when notes are tied. -td
+
+@ignore
+\layout
+{
+     \context { \Score lyricMelismaAlignment = #0 }
+}
+@end ignore
 
 
 @node Centering lyrics between staves
 @unnumberedsubsubsec Centering lyrics between staves
 
-@untranslated
-
+@c TODO Add text from -user
+TBC
 
 @node Stanzas
 @subsection Stanzas
 
-@untranslated
-
-
 @menu
-* Adding stanza numbers ::
+* Adding stanza numbers::
 * Adding dynamics marks to stanzas::
 * Adding singers' names to stanzas::
 * Stanzas with different rhythms::
-* Printing stanzas at the end ::
-* Printing stanzas at the end in multiple columns ::
+* Printing stanzas at the end::
+* Printing stanzas at the end in multiple columns::
 @end menu
 
+
 @node Adding stanza numbers
 @unnumberedsubsubsec Adding stanza numbers
 
-@untranslated
+@cindex Strophennummer
+@cindex Nummerierung, Strophen
+
+Strophennummerierung kann hinzugefügt werden:
+
+@lilypond[quote,ragged-right,verbatim,relative=2,fragment]
+\new Voice {
+  \time 3/4 g2 e4 a2 f4 g2.
+} \addlyrics {
+  \set stanza = #"1. "
+  Hi, my name is Bert.
+} \addlyrics {
+  \set stanza = #"2. "
+  Oh, ché -- ri, je t'aime
+}
+@end lilypond
+
+@noindent
+Die Zahl wird direkt vor die erste Silbe gesetzt.
+
+@c TODO Create and add snippet to show how two lines of a
+@c stanza can be grouped together, along these lines:
+@c (might need improving a bit) -td
+
+@ignore
+leftbrace = \markup { \override #'(font-encoding . fetaBraces) \lookup
+#"brace105" }
+
+stanzaOneOne = {
+  \set stanza = \markup { "1. " \leftbrace }
+  \lyricmode { Child, you're mine and I love you.
+    Lend thine ear to what I say.
+
+  }
+}
+
+stanzaOneThree =  {
+%  \set stanza = \markup { "   "}
+  \lyricmode { Child, I have no great -- er joy
+    Than to have you walk in truth.
+
+  }
+}
+
+\new Voice {
+  \repeat volta 2 { c'8 c' c' c' c' c' c'4
+                    c'8 c' c' c' c' c' c'4   }
+}  \addlyrics { \stanzaOneOne }
+   \addlyrics { \stanzaOneThree }
+
+@end ignore
 
 
 @node Adding dynamics marks to stanzas
 @unnumberedsubsubsec Adding dynamics marks to stanzas
 
-@untranslated
+Dynamikzeichen können zur Strophennummer hinzugefügt werden.
+In LilyPond muss alles, was vor einer Strophe gesetzt wird,
+als Teil der @code{stanza}-Eigenschaft definiert werden, also
+auch Dynamikbezeichnung.  Aus technischen Gründen muss die
+Strophe außerhalb von @code{lyricmode} gesetzt werden:
+
+@lilypond[quote,ragged-right,verbatim]
+text = {
+  \set stanza = \markup { \dynamic "ff" "1. " }
+  \lyricmode {
+    Big bang
+  }
+}
+
+<<
+  \new Voice = "tune" {
+    \time 3/4
+    g'4 c'2
+  }
+\new Lyrics \lyricsto "tune" \text
+>>
+@end lilypond
 
 
 @node Adding singers' names to stanzas
 @unnumberedsubsubsec Adding singers' names to stanzas
 
-@untranslated
+@cindex Sängername
+@cindex Name von Sänger
+
+Namen von Sängern können auch eingefügt werden.  Sie werden zu Beginn
+der Zeile gesetzt, ähnlich wie eine Instrumentenbezeichnung.  Sie
+werden mit der @code{vocalName}-Eigenschaft erstellt.  Eine Kurzversion
+kann mit @code{shortVocalName} definiert werden.
+
+@lilypond[fragment,ragged-right,quote,verbatim,relative=2]
+\new Voice {
+  \time 3/4 g2 e4 a2 f4 g2.
+} \addlyrics {
+  \set vocalName = #"Bert "
+  Hi, my name is Bert.
+} \addlyrics {
+  \set vocalName = #"Ernie "
+  Oh, ché -- ri, je t'aime
+}
+@end lilypond
 
 
 @node Stanzas with different rhythms
 @unnumberedsubsubsec Stanzas with different rhythms
 
-@untranslated
+@subsubheading Ignorieren von Melismen
+
+Teilweise wird zu einer Silbe ein Melisma in einer Strophe
+gesungen, während in einer anderen jede Note eine Silbe erhält.
+Eine Möglichkeit ist, dass die Strophe mit mehr Text das
+Melisma ignoriert.  Das wird mit der 
+@code{ignoreMelismata}-Eigenschaft im @code{Lyrics}-Kontext
+vorgenommen.
+
+@lilypond[verbatim,ragged-right,quote]
+<<
+  \relative c' \new Voice = "lahlah" {
+    \set Staff.autoBeaming = ##f
+    c4
+    \slurDotted
+    f8.[( g16])
+    a4
+  }
+  \new Lyrics \lyricsto "lahlah" {
+    more slow -- ly
+  }
+  \new Lyrics \lyricsto "lahlah" {
+    go
+    \set ignoreMelismata = ##t
+    fas -- ter
+    \unset ignoreMelismata
+    still
+  }
+>>
+@end lilypond
+
+@knownissues
+Anders als die meisten @code{\set}-Befehle funktioniert
+@code{\set ignoreMelismata} nicht zusammen mit @code{\once}.
+Es ist notwendig, explizit @code{\set} und @code{\unset} zu
+verwenden, um den Text einzugrenzen, für den Melismen ignoriert
+werden sollen.
 
 
-@subsubheading Ignoring melismata
 @subsubheading Switching to an alternative melody
+
+Es ist auch möglich, die Silben von verschiedenen Textzeilen an
+unterschiedlichen Melodien auszurichten.  Das wird mit der
+@code{associatedVoice}-Eigenschaft vorgenommen:
+
+@lilypond[ragged-right,quote]
+<<
+  \relative c' \new Voice = "lahlah" {
+    \set Staff.autoBeaming = ##f
+    c4
+    <<
+      \new Voice = "alternative" {
+        \voiceOne
+        \times 2/3 {
+          % show associations clearly.
+          \override NoteColumn #'force-hshift = #-3
+          f8 f g
+        }
+      }
+      {
+        \voiceTwo
+        f8.[ g16]
+        \oneVoice
+      } >>
+    a8( b) c
+  }
+  \new Lyrics \lyricsto "lahlah" {
+    Ju -- ras -- sic Park
+  }
+  \new Lyrics \lyricsto "lahlah" {
+    % Tricky: need to set associatedVoice
+    % one syllable too soon!
+    \set associatedVoice = alternative % applies to "ran"
+    Ty --
+    ran --
+    no --
+    \set associatedVoice = lahlah % applies to "rus"
+    sau -- rus Rex
+  } >>
+@end lilypond
+
+@noindent
+Der Text der ersten Strophe wird an der Stimme @qq{lahlah}
+ausgerichtet:
+
+@example
+\new Lyrics \lyricsto "lahlah" @{
+  Ju -- ras -- sic Park
+@}
+@end example
+
+@noindent
+Auch die zweite Strophe wird an @qq{lahlah} ausgerichtet, aber für die
+Silbe @qq{ran} wird zu einer anderen Melodie gewechselt.  Dazu wird
+der Befehl
+
+@example
+\set associatedVoice = alternative
+@end example
+
+@noindent
+eingesetzt.  @code{alternative} ist die Bezeichnung der Stimme, die
+die Triole enthält.
+
+@c FIXME: make this easier to understand -vv
+Dieser Befehl muss eine Silbe vor der Note notiert werden, auf die er
+sich auswirken soll, also vor @qq{Ty} in diesem Fall.
+
+@example
+\new Lyrics \lyricsto "lahlah" @{
+  \set associatedVoice = alternative % applies to "ran"
+  Ty --
+  ran --
+  no --
+  \set associatedVoice = lahlah % applies to "rus"
+  sau -- rus Rex
+@}
+@end example
+
+@noindent
+Zurück zu der alten Stimme kommt man, indem wieder
+@qq{lahlah} mit dem Text verknüpft wird.
+
+
 @node Printing stanzas at the end
 @unnumberedsubsubsec Printing stanzas at the end
 
-@untranslated
+Manchmal soll nur eine Strophe mit der Melodie gesetzt
+werden und die weiteren Strophen als Text under den Noten
+hinzugefügt werden.  Dazu wird der Text in einer
+@code{markup}-Umgebung außerhalb der @code{\score}-Umgebung
+gesetzt.  Es gibt zwei Arten, die Zeilen auszurichten,
+wie das Beispiel zeigt:
+
+@lilypond[ragged-right,verbatim,quote]
+melody = \relative c' {
+e d c d | e e e e |
+d d e d | c1 |
+}
+
+text = \lyricmode {
+\set stanza = #"1." Ma- ry had a lit- tle lamb,
+its fleece was white as snow.
+}
+
+\score{ <<
+  \new Voice = "one" { \melody }
+  \new Lyrics \lyricsto "one" \text
+>>
+  \layout { }
+}
+\markup { \column{
+  \line{ Verse 2. }
+  \line{ All the children laughed and played }
+  \line{ To see a lamb at school. }
+  }
+}
+\markup{
+  \wordwrap-string #"
+  Verse 3.
+
+  Mary took it home again,
+
+  It was against the rule."
+}
+@end lilypond
 
 
 @node Printing stanzas at the end in multiple columns
 @unnumberedsubsubsec Printing stanzas at the end in multiple columns
 
-@untranslated
+Wenn in einem Lied sehr viele Strophen vorkommen, werden sie oft in 
+mehreren Spalten unter den Noten gesetzt.  Eine nach außen versetzte Zahl
+zeigt die Strophennummer an.  Dieses Beispiel zeigt eine Methode, diese
+Art von Notensatz zu produzieren.
+
+@lilypond[ragged-right,quote,verbatim]
+melody = \relative c' {
+  c c c c | d d d d
+}
+
+text = \lyricmode {
+  \set stanza = #"1." This is verse one.
+  It has two lines.
+}
+
+\score{ <<
+    \new Voice = "one" { \melody }
+    \new Lyrics \lyricsto "one" \text
+   >>
+  \layout { }
+}
+
+\markup {
+  \fill-line {
+    \hspace #0.1 % moves the column off the left margin;
+        % can be removed if space on the page is tight
+     \column {
+      \line { \bold "2."
+        \column {
+          "This is verse two."
+          "It has two lines."
+        }
+      }
+      \hspace #0.1 % adds vertical spacing between verses
+      \line { \bold "3."
+        \column {
+          "This is verse three."
+          "It has two lines."
+        }
+      }
+    }
+    \hspace #0.1  % adds horizontal spacing between columns;
+        % if they are still too close, add more " " pairs
+        % until the result looks good
+     \column {
+      \line { \bold "4."
+        \column {
+          "This is verse four."
+          "It has two lines."
+        }
+      }
+      \hspace #0.1 % adds vertical spacing between verses
+      \line { \bold "5."
+        \column {
+          "This is verse five."
+          "It has two lines."
+        }
+      }
+    }
+  \hspace #0.1 % gives some extra space on the right margin;
+      % can be removed if page space is tight
+  }
+}
+@end lilypond
+
+
+@seealso
+Referenz der Interna:
+@rinternals{LyricText},
+@rinternals{StanzaNumber}.
+
 
 
 
-@c -- SKELETON FILE --
index 48d53ba9411ce152bfa5ffd0805fe441838b99dd..9ec26a833c9a324988e745546e274fbb81b4a5e1 100644 (file)
@@ -1,29 +1,34 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*-
 @c This file is part of lilypond.tely
 @ignore
-    Translation of GIT committish: b03ad3631e3a6c5bd657eda5f4ba6963dfb22c36
+    Translation of GIT committish: 499a511d4166feaada31114e097f86b5e0c56421
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 
 @node Wind instruments
 @section Wind instruments
 
-@untranslated
+@lilypondfile[quote]{wind-headword.ly}
+
+Dieser Abschnitt beinhaltet einige Notationselemente, die
+bei der Notation von Blasinstrumenten auftreten.
 
 @menu
 * Common notation for wind instruments::
 * Bagpipes::
 @end menu
 
+
 @node Common notation for wind instruments
 @subsection Common notation for wind instruments
 
-@untranslated
+Dieser Abschnitt erklärt Eigenheiten, die für die meisten
+Blasinstrumente gültig sind.
 
 @menu
 * References for wind instruments::
 @node References for wind instruments
 @unnumberedsubsubsec References for wind instruments
 
-@untranslated
+@cindex Blasinstrumente
+
+Viele Besonderheiten der Blasinstrumentenotation haben mit
+Atmung und Spielart zu tun:
+
+@itemize
+@item Atmung kann durch Pausen oder mit Atemzeichen angezeigt werden,,
+siehe @ref{Breath marks}.
+@item Legato kann durch Legatobögen angezeigt werden, siehe
+@ref{Slurs}.
+@item Unterschiedliche Artikulationen, Legato, Portato, Staccato,
+werden normalerweise mit Artikulationszeichen angemerkt, teilweise
+auch in Verbindung mit Legatobögen, siehe @ref{Articulations and
+ornamentations} und @ref{List of articulations}.
+@item Flatterzunge wird angezeigt, indem ein Tremolozeichen und eine
+Anmerkung für die ensprechende Note gesetzt wird. Siehe @ref{Tremolo repeats}.
+@end itemize
+
+Es gibt auch noch weitere Aspekte der Notation, die für Blasinstrumente
+relevant sein können:
+
+@itemize
+@item Viele Instrumente sind transponierend, siehe
+@ref{Instrument transpositions}.
+@item Das Zug-Glissando ist charakteristisch für die Posaune, aber
+auch andere Instrumente können Glissandos ausführen. Siehe
+@ref{Glissando}.
+@item Obertonreihenglissandi, die auf allen Blechblasinstrumenten möglich,
+aber besonders üblich für das Waldhorn sind, werden üblicherweise mit
+Verzierungsnoten geschrieben. Siehe
+@ref{Grace notes}.
+@item Tonhöhenschwankungen am Ende eines Tons werden gezeigt in
+@ref{Falls and doits}.
+@item Ventil- oder Klappenschläge werden oft als Kreuznoten
+dargestellt, siehe
+@ref{Special note heads}.
+@item Holzbläser können tiefe Noten überblasen.  Derartige Noten
+werden als @code{flageolet}-Artikulation notiert. Siehe
+@ref{List of articulations}.
+@item Die Benutzung von Dämpfern für Blechblasinstrumente wird meistens
+durch Text gefordert, aber bei schnellem Wechsel bietet es sich an,
+die Artikulationszeichen @code{stopped} und @code{open} zu benutzen.
+Siehe
+@ref{Articulations and ornamentations} und
+@ref{List of articulations}.
+@item Gestopfte Hörner werden mit dem @code{stopped}-Artikulationszeichen
+notiert. Siehe
+@ref{Articulations and ornamentations}.
+@end itemize
+
+@snippets
+
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{changing--flageolet-mark-size.ly}
+
+
+@seealso
+Notationsreferenz:
+@ref{Breath marks},
+@ref{Slurs},
+@ref{Articulations and ornamentations},
+@ref{List of articulations},
+@ref{Tremolo repeats},
+@ref{Instrument transpositions},
+@ref{Glissando},
+@ref{Grace notes},
+@ref{Falls and doits},
+@ref{Special note heads},
+
+Schnipsel:
+@rlsr{Winds}
+
 
 @node Fingerings
 @unnumberedsubsubsec Fingerings
 
-@untranslated
+Alle Blasinstrumente außer der Posaune benötigen mehrere Finger, um
+verschiedene Tonhöhen zu produzieren.
+
+TBC
+
 
 @node Bagpipes
 @subsection Bagpipes
 
-@untranslated
+Dieser Abschnitt beinhaltet Information zur Notation von Dudelsackmusik.
 
 @menu
 * Bagpipe definitions::
 * Bagpipe example::
 @end menu
 
+
 @node Bagpipe definitions
 @unnumberedsubsubsec Bagpipe definitions
 
+@cindex Dudelsack
+@cindex Sackpfeife
+@cindex Schottischer Dudelsack
+@funindex \taor
+@funindex taor
+@funindex \hideKeySignature
+@funindex hideKeySignature
+@funindex \showKeySignature
+@funindex showKeySignature
+
 LilyPond besitzt spezielle Definitionen, mit der die Musik
 des schottischen Hochland-Dudelsacks notiert wird. Um sie
 zu benutzen, muss
@@ -82,18 +173,23 @@ Dudelsacknoten in bestimmten Oktaven, so dass man sich nicht mehr um
 { \grg G4 \grg a \grg b \grg c \grg d \grg e \grg f \grA g A }
 @end lilypond
 
-Musik für den Dudelsack wird dem Namen nach in D-Dur
- geschrieben (auch wenn das eigentlich nicht stimmt). Weil
- das aber die einzige Tonart ist, die benutzt werden kann, werden
- die Vorzeichen meistens nicht geschrieben. Damit das funktioniert,
- müssen die Noten immer mit @code{\hideKeySignature} beginnen.
- Wenn die Vorzeichen hingegen angezeigt werden sollen, kann das
- mithilfe des Befehls @code{\showKeySignature} vorgenommen werden.
+Musik für den Dudelsack wird in D-Dur
+geschrieben (auch wenn das eigentlich nicht stimmt). Weil
+das aber die einzige Tonart ist, die benutzt werden kann, werden
+die Vorzeichen meistens nicht geschrieben. Damit das funktioniert,
+müssen die Noten immer mit @code{\hideKeySignature} beginnen.
+Wenn die Vorzeichen hingegen angezeigt werden sollen, kann das
+mithilfe des Befehls @code{\showKeySignature} vorgenommen werden.
+
+Einige moderne Dudelsacknoten benutzen halbe Finger auf c und f, um
+diese Noten zu erniedrigen.  Das kann angezeigt werden mit @code{cflat}
+bzw. @code{fflat}.  Gleicherweise kann das piobaireachd hohe g als
+@code{gflat} geschrieben werden, wenn es in leichter Musik vorkommt.
+
+@seealso
+Schnipsel:
+@rlsr{Winds}
 
-Some modern music use cross fingering on c and f to flatten those notes.
-This can be indicated by @code{cflat} or @code{fflat}. Similarly, the
-piobaireachd high g can be written @code{gflat} when it occurs in light
-music.
 
 @node Bagpipe example
 @unnumberedsubsubsec Bagpipe example
@@ -137,3 +233,7 @@ Dudelsack notiert.
   \bar "|."
 }
 @end lilypond
+
+@seealso
+Schnipsel:
+@rlsr{Winds}
index 3803169ee8b2b5041fd38e49bef0c21c1f5c5925..f14c7dce850f94f47ef7b84907e16347231e2b6d 100644 (file)
@@ -1,13 +1,13 @@
 @c -*- coding: utf-8; mode: texinfo; -*-
 @c This file is part of lilypond.tely
 @ignore
-    Translation of GIT committish: 550152ed5d5015d13abf2af83b2e040f996a66a4
+    Translation of GIT committish: 5395f0433b4f09b18360118a23227a4a3cef8e72
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @node Working on LilyPond projects
 @chapter Working on LilyPond projects
@@ -20,9 +20,9 @@ zu lesen.
 
 
 @menu
-* Suggestions for writing LilyPond input files::  
-* When things don't work::      
-* Scores and parts::            
+* Suggestions for writing LilyPond input files::
+* When things don't work::
+* Scores and parts::
 @end menu
 
 
@@ -30,8 +30,7 @@ zu lesen.
 @section Suggestions for writing LilyPond input files
 
 Jetzt sind Sie so weit, größere Stücke mit LilyPond zu schreiben -- 
-nicht 
-nur die kleinen Beispiele aus der Übung, sondern ganze Stücke.
+nicht nur die kleinen Beispiele aus der Übung, sondern ganze Stücke.
 Aber wie geht man das am besten an?
 
 Solange LilyPond Ihre Dateien versteht und die Noten so setzt, 
@@ -58,11 +57,11 @@ strukturiert werden, damit sie einfacher aktualisierbar sind.
 @end itemize
 
 @menu
-* General suggestions::         
-* Typesetting existing music::  
-* Large projects::              
-* Saving typing with variables and functions::  
-* Style sheets::                
+* General suggestions::
+* Typesetting existing music::
+* Large projects::
+* Saving typing with variables and functions::
+* Style sheets::
 @end menu
 
 
@@ -75,7 +74,7 @@ Hier einige Vorschläge, wie Sie Probleme vermeiden oder lösen können:
 @item @strong{Schreiben Sie immer mit @code{\version} die 
 Versionsnummer 
 in jede Datei}.  Beachten Sie, dass in allen Vorlagen die Versionsnummer  
-@code{\version "2.11.61"} eingetragen ist.  Es empfiehlt sich, in alle 
+@code{\version "2.12.0"} eingetragen ist.  Es empfiehlt sich, in alle 
 Dateien, unabhängig von ihrer Größe, den @code{\version}-Befehl 
 einzufügen.  Persönliche Erfahrung hat gezeigt, dass es ziemlich 
 frustrierend sein kann zu erinnern, welche Programmversion man etwa 
@@ -136,7 +135,7 @@ LilyPond-Eingabe einer gedruckten Partitur):
 @item Schreiben Sie ein System ihrer Quelle nach dem anderen 
 (aber trotzdem nur einen Takt pro Textzeile) und überprüfen 
 Sie jedes System, nachdem Sie es fertig kopiert haben.  Mit dem 
-@code{showLastLength}-Befehl können Sie den Übersetzungsprozess 
+@code{showLastLength}- oder @code{showFirstLenght}-Befehl können Sie den Übersetzungsprozess 
 beschleunigen. Siehe auch 
 @ruser{Skipping corrected music}.
 
@@ -149,6 +148,25 @@ also leer definieren, um diese manuellen Zeilenumbrüche zu entfernen.
 Damit kann dann LilyPond selber entscheiden, wohin es passende 
 Zeilenumbrüche platziert.
 
+@item Wenn Sie eine Stimme für ein transponierendes Instrument als eine
+Variable notieren, wird empfohlen, dass die Noten von
+
+@example
+\transpose c klingende-Tonhöhe @{...@}
+@end example
+
+eingefasst werden (wobei @code{klingende-Tonhöhe} die klingende Tonhöhe
+des Instruments ist), sodass die Noten innerhalb der Variable für klingendes C
+geschrieben sind.  Sie können die Variable zurücktransponieren, wenn es
+nötig ist, aber Sie müssen es nicht tun.  Fehler in Transpositionen sind
+treten seltener auf, wenn alle Noten in den Variablen für die gleiche
+Ausgangstonhöhe geschrieben werden.
+
+Denken Sie auch daran, dass Sie nur von/nach C transponieren.  Das heißt,
+dass die einzigen anderen Tonhöhen, die Sie in Transpositionen benutzen,
+die Tonhöhen der Instrumente sind, für die Sie schreiben: @code{bes} für
+eine B-Trompete oder @code{aes} für eine As-Klarinette usw.
+
 @end itemize
 
 
@@ -218,9 +236,9 @@ hornNotes = \relative c'' { c4 b dis c }
 Das könnte auch nützlich in Minimal-Music sein:
 
 @lilypond[quote,verbatim,ragged-right]
-fragA = \relative c'' { a4 a8. b16 }
-fragB = \relative c'' { a8. gis16 ees4 }
-violin = \new Staff { \fragA \fragA \fragB \fragA }
+fragmentA = \relative c'' { a4 a8. b16 }
+fragmentB = \relative c'' { a8. gis16 ees4 }
+violin = \new Staff { \fragmentA \fragmentA \fragmentB \fragmentA }
 \score {
   {
     \violin
@@ -560,7 +578,7 @@ für meine Projekte.  Jede Notationsdatei fängt an mit
 
 @example
 %%%   global.ly
-\version "2.11.61"
+\version "2.12.0"
 #(ly:set-option 'point-and-click #f)
 \include "../init/init-defs.ly"
 \include "../init/init-layout.ly"
@@ -573,9 +591,9 @@ für meine Projekte.  Jede Notationsdatei fängt an mit
 @section When things don't work
 
 @menu
-* Updating old files::          
-* Troubleshooting (taking it all apart)::  
-* Minimal examples::            
+* Updating old files::
+* Troubleshooting (taking it all apart)::
+* Minimal examples::
 @end menu
 
 @node Updating old files
index 6c125343dcc7b82e6e3489ea485f06f95a7faf66..f4982e82afff723a1dbe006cf3675222fe2d453c 100644 (file)
@@ -1,17 +1,22 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*-
 @c This file is part of lilypond.tely
 @ignore
-    Translation of GIT committish: 4a527608c5ff2ce31e596495d00dce181dc1b9ea
+    Translation of GIT committish: 499a511d4166feaada31114e097f86b5e0c56421
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
+@c Translators: Till Rettig
+
+@c \version "2.12.0"
 
 @node World music
 @section World music
 
-@untranslated
+Dieser Abschnitt soll Besonderheiten der Notation aufzeigen, die
+insbesondere relevant sind, um Musik nicht-westlicher Tradition
+zu notieren.
 
 
 @menu
@@ -21,7 +26,8 @@
 @node Arabic music
 @subsection Arabic music
 
-@untranslated
+Dieser Abschnitt zeigt Möglichkeiten, wie arabische Musik notiert
+werden kann.
 
 
 @menu
 @node References for Arabic music
 @unnumberedsubsubsec References for Arabic music 
 
-@untranslated
+@cindex arabische Musik
+@cindex Maqam
+
+Arabische Musik wurde bisher vor allem mündlich tradiert.  Wenn
+Musik transkribiert wird, handelt es sich meistens um ein Gerüst,
+auf dem der Musiker eigene Improvisationen ausführt.  Mehr und mehr
+wird die westliche Notation mit einigen Veränderungen benutzt, um
+die arabische Musiktradition weiterzugeben und zu konservieren.
+
+Einige Elemente der westlichen Notation wie etwa die Transkription
+von Akkorden oder eigenständige Stimmen werden für die traditionelleren
+arabischen Noten nicht benötigt.  Es gibt allerdings einige andere
+Probleme, wie etwa die Notwendigkeit, Zwischenintervalle zu
+notieren, die sich irgendwo zwischen einem Halbton und einem
+Ganzton befinden.  Daneben werden auch die westlichen Halb- und
+Ganztöne eingesetzt.  Es muss auch möglich sein, eine große
+Anzahl an maqam (Modi) der arabischen Musik zu bezeichnen und zu
+gruppieren.
+
+Üblicherweise müssen Mikrotöne in der arabischen Musik nicht
+präzise notiert werden.
+
+Einige Bereiche, die für die arabische Notation wichtig sind, sind
+an anderer Stelle behandelt:
+
+@itemize
+@item Notenbezeichnungen und Versetzungszeichen (inklusive Vierteltöne)
+können angepasst werden, wie behandelt in
+@ref{Note names in other languages}.
+
+@item Zusätzliche Taktarten können erstellt werden, siehe
+@ref{Key signature}.
+
+@item Komplexe Taktarten erfordern evtl., dass Noten manual gruppiert
+werden, wie gezeigt in
+@ref{Manual beams}.
+
+@item @notation{Takasim}, rhythmisch freie Improvisationen,
+können ohne Taktlinien notiert werden, siehe hierzu
+@ref{Unmetered music}.
+
+@end itemize
+
+
+@seealso
+Notationsreferenz:
+@ref{Note names in other languages},
+@ref{Key signature},
+@ref{Manual beams}.
+
+Schnipsel:
+@rlsr{World music}.
 
 
 @node Arabic note names 
 @unnumberedsubsubsec Arabic note names 
 
-@untranslated
+@cindex arabische Notenbezeichnungen
+@cindex Notenbezeichnungen, arabisch
+
+An der arabischen Tradition orientierte Notenbezeichnungen können sehr
+land sein und eignen sich daher nicht gut für die Notation von Musik.
+Sie werden nicht benutzt.  Englische Notenbezeichnungen hingegen sind
+in der arabischen Musikerziehung recht unbekannt, weshalb italienische
+Notenbezeichnungen (@code{do, re, mi, fa, sol, la, si}) eingesetzt
+werden.  Modifikatoren (Versetzungszeichen) können auch benutzt werden,
+wie gezeigt in @ref{Note names in other languages}.
+
+Hier ein Beispiel der arabischen @notation{rast}-Tonleiter:
+
+@lilypond[quote,verbatim]
+\include "arabic.ly"
+\relative do' {
+  do re misb fa sol la sisb do sisb la sol fa misb re do
+}
+@end lilypond
+
+@cindex arabisches Halb-B Versetzungszeichen
+@cindex Halb-B-Versetzungszeichen, arabische Musik
+
+Das Symbol für das Halb-B sieht anders aus als das Symbol, was
+üblicherweise in arabischer Notation benutzt wird.  Das
+@code{\dwn}-Symbol, das in der Datei @code{arabic.ly} definiert
+ist, kann als ein Workaround eingesetzt werden, wenn es notwendig
+ist, das arabische Symbol zu benutzen.  Das Aussehen des
+Halb-Bs in den Vorzeichen kann mit dieser methode nicht verändert
+werden.
+
+@lilypond[quote,verbatim]
+\include "arabic.ly"
+\relative do' {
+  \set Staff.extraNatural = ##f
+  dod dob dosd \dwn dob dobsb dodsd do do
+}
+@end lilypond
+
+@seealso
+Notationsreferenz:
+@ref{Note names in other languages}.
+
+Schnipsel:
+@rlsr{World music}.
+
 
 
 @node Arabic key signatures
 @unnumberedsubsubsec Arabic key signatures 
 
-@untranslated
+@cindex arabische Tonarten
+@cindex arabische Vorzeichen
+
+Neben den westlichen Dur- und Moll-Tonarten sind folgende
+Tonarten in @code{arabic.ly} definiert: @notation{bayati},
+@notation{rast}, @notation{sikah}, @notation{iraq} und
+@notation{kurd}.  Diese Tonarten definieren eine kleine
+Gruppe von Maqams, die weitverbreitet sind.
+
+Ein Maqam kann die Tonart der Gruppe benutzen, zu der er gehört,
+oder die einer benachbarten Gruppe.  Zusätzlich können verschiedene
+Versetzungszeichen in den Noten markiert werden.
+
+Um also etwa die Tonart des Maqams @qq{muhayer} folgendermaßen
+notiert:
+
+@example
+\key re \bayati
+@end example
+
+@var{re} ist die Tonhöhe für den @qq{muhayer}-Maqam und @var{bayati}
+ist die Bezeichnung des Basismaqams der Gruppe.
+
+Während die Vorzeichen eine Gruppe anzeigen, wird meistens der
+eigentliche Maqam im Titel definiert.  In diesem Beispiel müsste
+also der @qq{muhayer}-Maqam im Titel erscheinen.
+
+Andere Maqams derselben Bayati-Gruppe, wie in der Tabelle unten
+gezeigt ((bayati, hussaini, saba und ushaq) können auf die gleiche
+Weise notiert werden.  Sie sind alle Variationen des
+Grundmaqams Bayati.  Sie unterscheiden sich üblicherweise vom
+grundlegenden Maqam in ihrem oberen Tetrachord oder in bestimmten
+Einzelheiten, die aber nicht ihre eigentliche Qualität verändern.
+
+Der andere Maqam der gleichen Gruppe (Nawa) ist mit bayati durch
+eine Modulation verwandt, deren Grundton in der Tabelle angezeigt
+wird, wenn es sich um einen Maqam handelt, der eine Modulation
+eines anderen Maqams darstellt.  Nawa kann folgenderweise
+notiert werden:
+
+@example
+\key sol \bayati
+@end example
+
+In der arabischen Musik ist ein Begriff wie bayati, der eine
+Maqam-Gruppe bezeichnet, gleichzeitig auch selber ein Maqam,
+meistens der häufigste dieser Gruppe.
+
+Hier ist eine Möglichkeit, Maqams zu gruppieren, womit die
+häufigsten Maqams bestimmten Vorzeichen zugeordnet werden:
+
+@multitable @columnfractions 0.1 0.1 0.1 0.6
+@headitem Maqam-Gruppe
+  @tab Vorzeichen (@code{\key})
+  @tab Finalis
+  @tab Andere Maqams der Gruppe (Finalis)
+@item ajam
+  @tab major
+  @tab sib
+  @tab jaharka (fa)
+@item bayati
+  @tab bayati
+  @tab re
+  @tab hussaini, muhayer, saba, ushaq, nawa (sol)
+@item hijaz
+  @tab kurd
+  @tab re
+  @tab shahnaz, shad arban (sol), hijazkar (do)
+@item iraq
+  @tab iraq
+  @tab sisb
+  @tab -
+@item kurd
+  @tab kurd
+  @tab re
+  @tab hijazkar kurd (do)
+@item nahawand
+  @tab minor
+  @tab do
+  @tab busalik (re), farah faza (sol)
+@item nakriz
+  @tab minor
+  @tab do
+  @tab nawa athar, hisar (re)
+@item rast
+  @tab rast
+  @tab do
+  @tab mahur, yakah (sol)
+@item sikah
+  @tab sikah
+  @tab misb
+  @tab huzam
+@end multitable
+
+@snippets
+
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{non-traditional-key-signatures.ly}
+
+@seealso
+Notationsreferenz:
+@ref{Key signature}.
+
+Handbuch zum Lernen:
+@rlearning{Accidentals and key signatures}.
+
+Referenz der Interna:
+@rinternals{KeySignature}.
+
+Schnipsel:
+@rlsr{World music},
+@rlsr{Pitches}.
 
 
 @node Arabic time signatures
 @unnumberedsubsubsec Arabic time signatures 
 
-@untranslated
+@cindex Arabische Taktarten
+@cindex Taktarten, arabisch
+@cindex Semai-Form
+@cindex taqasim
+
+Einige klassische Formen der arabischen und türkischen Musik
+wie etwa @notation{Semai} haben ungewöhnliche Taktarten wie
+etwa 10/8.  Das kann dazu führen, dass die automatische
+Bebalkung der Noten nicht zu dem Ergebnis kommt, welches in
+der üblichen Notation dieser Musik eingesetzt wird.  Die Noten
+werden nicht anhand einer Taktzeit, sondern anhand von Kriterien
+gruppiert, die man schwer mit einer automatischen Balkenfunktion
+erfassen kann.  Das kann umgangen werden, indem die automatische
+Bebalkung ausgeschaltet wird und die Balken explizit gesetzt werden.
+Auch wenn es nicht darauf ankommen sollte, eine schon notierte
+Musik nachzuahmen, ist es in vielen Fällen dennoch erforderlich,
+die Bebalkung anzupassen und/oder zusammengesetzte Taktarten
+zu benutzen.
+
+@snippets
+
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{compound-time-signatures.ly}
+
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{arabic-improvisation.ly}
+
+
+@seealso
+Notationsreferenz:
+@ref{Manual beams},
+@ref{Automatic beams},
+@ref{Unmetered music},
+@ref{Automatic accidentals},
+@ref{Setting automatic beam behavior},
+@ref{Time signature}.
+
+Schnipsel:
+@rlsr{World music}.
 
 
 @node Arabic music example
 @unnumberedsubsubsec Arabic music example 
 
-@untranslated
+@cindex Beispiel der arabischen Musik
+@cindex arabische Musik, Beispiel
+@cindex Vorlage, arabische Musik
+
+Hier eine Vorlage, welche den Beginn eines türkischen Semai
+benutzt, der in der arabischen Musikerziehung oft herangezogen
+wird, um Besonderheiten der arabischen Musiknotation, wie
+etwa Zwischenintervalle und ungewöhnliche Modi, zu illustrieren.
+
+@lilypond[quote,verbatim]
+\include "arabic.ly"
+\score {
+  \relative re' {
+    \set Staff.extraNatural = ##f
+    \set Staff.autoBeaming = ##f
+    \key re \bayati
+    \time 10/8
+
+    re4 re'8 re16 [misb re do] sisb [la sisb do] re4 r8
+    re16 [misb do re] sisb [do] la [sisb sol8] la [sisb] do [re] misb
+    fa4 fa16 [misb] misb8. [re16] re8 [misb] re  [do] sisb
+    do4 sisb8 misb16 [re do sisb] la [do sisb la] la4 r8
+  }
+  \header {
+    title = "Semai Muhayer"
+    composer = "Jamil Bek"
+  }
+}
+@end lilypond
+
+
+@seealso
+Schnipsel:
+@rlsr{World music}
 
 
 @node Further reading
 @unnumberedsubsubsec Further reading
 
-@untranslated
+@enumerate
+
+@item
+The Music of the Arabs von Habib Hassan Touma (Amadeus Press, 1996)
+enthält eine Beschreibung von Maqams und Methoden zu ihrer
+Gruppierung.
+
+Es gibt auch einige Internetseiten, die Maqams erklären und
+teilweise auch Klangdateien zur Verfügung stellen:
+
+@itemize @bullet
+@item
+@uref{http://www.maqamworld.com/}
+@item
+@uref{http://www.turath.org/}
+@end itemize
+
+Die Maqam-Gruppierungen unterscheiden sich in einigen Details, auch
+wenn die allgemeinen Kriterien weithin anerkannt sind:
+gemeinsame untere Tetrachorde sowie Modulation.
 
+@item
+Es gibt keine Übereinstimmung darüber, wie die Vorzeichen für
+bestimmte Maqams angegeben werden sollen.  Oft wird eine
+Vorzeichenart für eine ganze Maqam-Gruppe verwendet, anstatt
+dass jeder Maqam eigene Vorzeichen hätte.
 
+Oud-Lehrbücher folgender Autoren enthalten Beispiele vor
+allem türkischer und arabischer Kompositionen:
 
-@c -- SKELETON FILE --
+@itemize @bullet
+@item
+Charbel Rouhana
+@item
+George Farah
+@item
+Ibrahim Ali Darwish Al-masri
+@end itemize
+@end enumerate
diff --git a/Documentation/devel.html.in b/Documentation/devel.html.in
deleted file mode 100644 (file)
index 703a3d7..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
-<html>
-<!--
-    Translation of GIT committish: FILL-IN-HEAD-COMMITTISH
-
-    When revising a translation, copy the HEAD committish of the
-    version that you are working on.  See TRANSLATION for details.
-!-->
-  <head>
-    <title>LilyPond @TOPLEVEL_VERSION@ Developers Resources</title>
-    <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
-    <meta name="aesop" content="links">
-    <meta name="description"
-          content="Top-level index to developers documentation for
-                   LilyPond @TOPLEVEL_VERSION@">
-  </head>
-  
-  <body>
-
-    <div class="header">
-      <h1>LilyPond developers resources</h1>
-    </div>
-
-    <div class="subheader">
-      <p>
-       <strong>Version @TOPLEVEL_VERSION@</strong>
-       <br>
-       <strong>@DATE@</strong>
-      </p>
-    </div>
-
-    <table id="navigation">
-      <tbody>
-        <tr>
-          <td class="left-column">
-         <ul>
-      <li><a class="title"
-         href="../input/regression/collated-files.html">Regression
-         tests</a> (~ 5 Mb, in <a class="title"
-         href="../input/regression/collated-files.pdf">PDF</a>)
-        <br>(general tests)</li>
-      <li><a class="title"
-         href="../input/regression/musicxml/collated-files.html">MusicXML regression
-         tests</a> (in <a class="title"
-         href="../input/regression/musicxml/collated-files.pdf">PDF</a>)
-        <br>(musicxml2ly tests)</li>
-          </ul></td>
-         <td class="right-column">
-          <ul>
-      <li><a class="title" href="http://lilypond.org/test">Regression tests results</a>
-      <br>(for comparison between releases)</li>
-      <li><a class="title" href="bibliography/index.html">Bibliography</a>
-      <br>(on background information)</li>
-          </ul></td>
-        </tr>
-        <tr>
-          <td valign="baseline" class="left-column">
-       <ul>
-           <li><a class="title" href="http://lilypond.org/web/devel">lilypond.org development page</a>
-            <br>(for all contributors)</li>
-            <li><a class="title" href="http://git.sv.gnu.org/gitweb/?p=lilypond.git">lilypond.git repository</a>
-            <br>(official sources)</li>
-            <li><a class="title" href="http://git.sv.gnu.org/gitweb/?p=lilypond.git;a=blob_plain;f=README;hb=gub">GUB Readme</a>
-            <br>(about Grand Unified Binaries packages)</li>
-       </ul>
-    </td><td class="right-column">
-       <ul>
-           <li><a class="title" href="http://git.sv.gnu.org/gitweb/?p=lilypond.git;a=blob_plain;f=Documentation%2Fuser%2FREADME.txt;hb=master">Documentation Readme</a>
-            <br>(for documentation editors)</li>
-            <li><a class="title" href="http://git.sv.gnu.org/gitweb/?p=lilypond.git;a=blob_plain;f=README;hb=web">lilypond.org Readme</a>
-and <a class="title" href="http://git.sv.gnu.org/gitweb/?p=lilypond.git;a=blob_plain;f=TRANSLATION;hb=web">Translation</a>
-<br>(how to translate and build lilypond.org website)</li>
-            <li>
-             <a class="title" href="http://git.sv.gnu.org/gitweb/?p=lilypond.git;a=blob_plain;f=Documentation%2FTRANSLATION;hb=lilypond%2Ftranslation">Documentation translation</a>
-              <br>(how to translate documentation)</li>
-       </ul>
-       </td>
-        </tr>
-     </tbody>
-</table>
-
-<p><a href="index.html">Go back</a> to the Documentation index.</a></p>
-
-</body>
-</html>
diff --git a/Documentation/devel/GNUmakefile b/Documentation/devel/GNUmakefile
new file mode 100644 (file)
index 0000000..640afba
--- /dev/null
@@ -0,0 +1,35 @@
+depth = ../..
+
+XREF_MAP_FLAGS = --split section -I $(abs-src-dir)
+
+STEPMAKE_TEMPLATES = documentation tex texinfo topdocs
+LOCALSTEPMAKE_TEMPLATES = ly
+
+include $(depth)/make/stepmake.make
+
+HTML_PAGE_NAMES = index
+OUT_HTML_FILES = $(HTML_PAGE_NAMES:%=$(outdir)/%.html)
+
+
+MASTER_TEXI_FILES = contrib-guide.texi
+PDF_FILES = $(MASTER_TEXI_FILES:%.texi=$(outdir)/%.pdf)
+HTML_FILES = $(MASTER_TEXI_FILES:%.texi=$(outdir)/%/index.html) \
+  $(MASTER_TEXI_FILES:%.texi=$(outdir)/%-big-page.html)
+source-links = $(outdir)/source $(MASTER_TEXI_FILES:%.texi=$(outdir)/%/source)
+
+default: local-doc
+
+$(outdir)/source:
+       @rm -f $(@)
+       ln -sf $(depth) $(@)
+
+$(outdir)/%/source:
+       @rm -f $(@)
+       mkdir -p $(dir $@)
+       ln -sf $(depth)/.. $(@)
+
+local-WWW-1: $(PDF_FILES)
+
+local-WWW-2: $(HTML_FILES) $(OUT_HTML_FILES) $(source-links)
+
+$(PDF_FILES) $(HTML_FILES): $(ITEXI_FILES)
diff --git a/Documentation/devel/compiling.itexi b/Documentation/devel/compiling.itexi
new file mode 100644 (file)
index 0000000..49b69fa
--- /dev/null
@@ -0,0 +1,518 @@
+@c -*- coding: us-ascii; mode: texinfo; -*-
+@node Compiling from source
+@chapter Compiling from source
+
+@ignore
+You can also compile LilyPond directly from the source code. This
+requires that you can read English, so this section is not
+translated.  If you really want to compile LilyPond, see
+@iftex
+@c DO NOT translate the following line at all.
+@ref{Compiling from source,,,lilypond-program,Application Usage}.
+@end iftex
+@ifhtml
+@c Please translate the following line (but not the .html file name)
+the @uref{Compiling-from-source.html,documentation in English}.
+@end ifhtml
+@end ignore
+
+@c TRANSLATORS:
+@c   Please **do not** translate anything below this line.  Users
+@c   should not be compiling LilyPond themselves; if they really
+@c   want to do so, they should be able to read the English docs,
+@c   because they'll probably need to ask questions in English
+@c   on the -devel list.   -gp
+@c Instead, please uncomment and translate the paragraph above,
+@c and remove all stuff (menu, nodes, contents) below this line.
+
+@menu
+* Downloading source code::
+* Requirements::
+* Building LilyPond::
+* Building documentation::
+* Testing LilyPond::
+* Problems::
+@end menu
+
+@node Downloading source code
+@section Downloading source code
+
+Download source
+
+@itemize
+@item tarballs from
+@uref{http://lilypond.org/download/} by HTTP.
+@item tarballs from
+@uref{http://download.linuxaudio.org/lilypond/} by HTTP.
+@item
+GIT from @uref{http://git.sv.gnu.org/gitweb/?p=lilypond.git;a=summary,git.sv.gnu.org}
+
+@example
+git clone git://git.sv.gnu.org/lilypond.git
+@end example
+
+The repository does not contain generated files.  To create
+@file{configure}, run
+@example
+./autogen.sh
+@end example
+@end itemize
+
+For information on packaging, see @uref{http://lilypond.org/devel}.
+
+
+@node Requirements
+@section Requirements
+
+@unnumberedsubsubsec Compilation
+
+In addition to the packages needed for running LilyPond (see below), you
+need the following extra packages for building.
+
+When installing a binary package FOO, you may need to install the
+FOO-devel, libFOO-dev or FOO-dev package too.
+
+@itemize
+
+@item @uref{http://fontforge.sf.net/,FontForge} 20060125 or newer.
+
+@item @uref{http://metafont.tutorial.free.fr/,MetaFont} (mf-nowin, mf, mfw or
+mfont binaries) and @uref{http://cm.bell-labs.com/who/hobby/MetaPost.html,MetaPost}
+(mpost binary), usually packaged with a @LaTeX{} distribution like
+tetex or texlive.
+
+@item @uref{http://www.lcdf.org/~eddietwo/type/#t1utils,t1utils}
+(version 1.33 or newer recommended).
+
+@item New Century Schoolbook fonts, as PFB files.  These are shipped with
+X11 and Ghostscript, and are named @file{c059033l.pfb}
+@file{c059036l.pfb}, @file{c059013l.pfb} and @file{c059016l.pfb}.
+
+@item @uref{http://www.gnu.org/software/guile/guile.html,GUILE} (version
+1.8.2 or newer).  If you are installing binary packages, you may need to
+install guile-devel or guile-dev or libguile-dev too.
+
+@item @uref{ftp://ftp.gnu.org/gnu/texinfo/,Texinfo} (version 4.11 or newer).
+
+@item @uref{http://gcc.gnu.org/, The GNU c++ compiler} (version 3.4 or
+newer.  4.x is strongly recommended).
+
+@item @uref{http://www.python.org,Python} (version 2.4 or newer)
+
+@item @uref{ftp://ftp.gnu.org/gnu/make/,GNU Make} (version 3.78 or newer).
+
+@item @uref{http://www.gnu.org/software/gettext/gettext.html,gettext}
+(version 0.17 or newer).
+
+@item @uref{http://www.gnu.org/software/flex/,Flex}.
+
+@item @uref{http://www.perl.org/,Perl}.
+
+@item @uref{http://www.gnu.org/software/flex/,GNU Bison}.
+
+@item All packages required for running, including development packages with
+header files and libraries.
+
+@end itemize
+
+
+@unnumberedsubsubsec Running requirements
+
+Running LilyPond requires proper installation of the following software
+
+@itemize
+
+@item @uref{http://www.freetype.org/,Freetype} (version 2.1.10 or newer).
+@item @uref{http://fontconfig.org/,FontConfig} (version 2.2 or newer).
+@item @uref{http://www.pango.org/,Pango} (version 1.12 or newer).
+@item @uref{http://www.gnu.org/software/guile/guile.html,GUILE}
+(version 1.8.2 or newer), or patch 1.8.1 with
+@uref{http://lilypond.org/vc/gub.darcs/patches/guile-1.8-rational.patch}.
+@item @uref{http://www.python.org,Python} (version 2.4 or newer).
+@item @uref{http://www.ghostscript.com,Ghostscript} (version 8.15 or
+newer. 8.60 recommended)
+@item Dejaview.  (This is normally installed by default)
+@end itemize
+
+International fonts are required to create music with international text
+or lyrics.
+
+
+@unnumberedsubsubsec Requirements for building documentation
+
+You can view the documentation online at
+@uref{http://lilypond.org/doc/}, but you can also build it locally.
+This process requires a successful compile of LilyPond, and some
+additional tools and packages:
+
+@itemize
+@item The @uref{http://netpbm.sourceforge.net/,netpbm utilities}
+@item ImageMagick
+@item International fonts (see input/regression/utf-8.ly for hints
+about which font packages are necessary for your platform)
+@item Ghostscript 8.60 or newer, or 8.50 with the patch from
+@uref{http://bugs.ghostscript.com/show_bug.cgi?id=688154}
+and the patch from
+@uref{http://bugs.ghostscript.com/show_bug.cgi?id=688017}.
+@item @uref{http://www.nongnu.org/texi2html/,Texi2HTML} 1.80 or newer
+@item rsync
+@end itemize
+
+
+@node Building LilyPond
+@section Building LilyPond
+
+@unnumberedsubsubsec Compiling
+
+To install GNU LilyPond, type
+
+@example
+gunzip -c lilypond-x.y.z | tar xf -
+cd lilypond-x.y.z
+./configure            # run with --help for applicable options
+make
+su -c 'make install'
+@end example
+
+@noindent
+If you are not root, you should choose a @code{--prefix} argument that
+points into your home directory, e.g.
+
+@example
+./configure --prefix=$HOME/usr
+@end example
+
+
+@unnumberedsubsubsec Compiling for multiple platforms
+
+If you want to build multiple versions of LilyPond with different
+configuration settings, you can use the @code{--enable-config=CONF}
+option of @command{configure}.  You should use @code{make conf=CONF}
+to generate the output in @file{out-CONF}.  For example, suppose you
+want to build with and without profiling, then use the following for
+the normal build
+
+@example
+./configure --prefix=$HOME/usr/ --enable-checking
+make
+make install
+@end example
+
+and for the profiling version, specify a different configuration
+
+@example
+./configure --prefix=$HOME/usr/ --enable-profiling --enable-config=prof --disable-checking
+make conf=prof
+make conf=prof install
+@end example
+
+
+@unnumberedsubsubsec Compiling outside the source tree
+
+It is possible to compile LilyPond in a build tree different from the
+source tree, with @code{--srcdir} option of @command{configure}:
+
+@example
+mkdir lily-build && cd lily-build
+@var{sourcedir}/configure --srcdir=@var{sourcedir}
+
+@end example
+
+
+@unnumberedsubsubsec Useful @command{make} variables
+
+If a less verbose build output if desired, the variable
+@code{QUIET_BUILD} may be set to @code{1} on @command{make} command
+line, or in @file{local.make} at top of the build tree.
+
+
+@node Building documentation
+@section Building documentation
+
+This requires a successful compile of LilyPond, or using an external
+LilyPond binary.
+
+@menu
+* Commands for building documentation:: Compiling and installing the documentation.
+* Building documentation without compiling LilyPond:: Using a LilyPond binary already installed.
+@end menu
+
+@node Commands for building documentation
+@unnumberedsubsec Commands for building documentation
+
+The documentation is built by issuing
+
+@example
+make web
+@end example
+
+After compilation, the HTML documentation tree is available in
+@file{out-www/offline-root/}, and can be browsed locally.
+
+The HTML and PDF files can be installed into the standard documentation
+path by issuing
+
+@example
+make web-install
+@end example
+
+@noindent
+This also installs Info documentation with images if the installation
+prefix is properly set; otherwise, instructions for manual installation
+of Info documentation are printed on standard output.
+
+It is also possible to build a documentation tree in
+@file{out-www/online-root/}, with special processing, so it can be used
+on a website with content negotiation for automatic language selection;
+this can be achieved by issuing
+
+@example
+make WEB_TARGETS=online web
+@end example
+
+@noindent
+and both @q{offline} and @q{online} targets can be generated by issuing
+
+@example
+make WEB_TARGETS="offline online" web
+@end example
+
+Several targets are available to clean the documentation build and
+help with maintaining documentation; an overview of these targets is
+available with
+
+@example
+make help
+@end example
+
+@noindent
+from every directory in the build tree.  Most targets for
+documentation maintenance are available from @file{Documentation/};
+for more information, see @file{Documentation/user/README.txt} and
+@file{Documentation/TRANSLATION}.
+
+The makefile variable @code{QUIET_BUILD} may be set to @code{1} for a
+less verbose build output, just like for building the programs.
+
+@knownissues
+
+The most time consuming task for building the documentation is running
+LilyPond to build images of music, and there cannot be several
+simultaneously running @command{lilypond-book} instances, so @code{-j}
+@command{make} option does not significantly speed up the build process.
+To help speed it up, the makefile variable @var{CPU_COUNT} may be set
+in @file{local.make} or on the command line to the number of
+@code{.ly} files that LilyPond should process simultaneously, e.g. on
+a bi-processor or dual core machine
+
+@example
+make -j3 CPU_COUNT=3 web
+@end example
+
+@noindent
+The recommended value of @var{CPU_COUNT} is one plus the number of
+cores or processors, but it is advisable to set it to a smaller value
+if your system has not enough RAM to run that many simultaneous
+LilyPond instances.
+
+If source files have changed since last documentation build, output
+files that need to be rebuilt are normally rebuilt, even if you do not
+run @code{make web-clean} first.  However, building dependencies in the
+documentation are so complex that rebuilding of some targets may not
+be triggered as they should be; a workaround is to force rebuilding
+by touching appropriate files, e.g.
+
+@example
+touch Documentation/user/*.itely
+touch input/lsr/*.ly
+@end example
+
+
+@node Building documentation without compiling LilyPond
+@unnumberedsubsec Building documentation without compiling LilyPond
+
+The documentation can be built locally without compiling LilyPond
+binary, if LilyPond is already installed on your system.
+
+From a fresh Git checkout, do
+
+@example
+./autogen.sh   # ignore any warning messages
+cp GNUmakefile.in GNUmakefile
+make -C python
+nice make LILYPOND_EXTERNAL_BINARY=/path/to/bin/lilypond web
+@end example
+
+Please note that this may break sometimes -- for example, if a new
+feature is added with a test file in input/regression, even the latest
+development release of LilyPond will fail to build the docs.
+
+You may build the manual without building all the @file{input/*}
+stuff: change directory, for example to @file{Documentation/user},
+issue @code{make web}, which will build documentation in a
+subdirectory @file{out-www} from the source files in current
+directory.  In this case, if you also want to browse the documentation
+in its post-processed form, change back to top directory and issue
+
+@example
+make out=www WWW-post
+@end example
+
+@knownissues
+
+You may also need to create a script for @command{pngtopnm} and
+@code{pnmtopng}.  On GNU/Linux, I use this:
+
+@verbatim
+export LD_LIBRARY_PATH=/usr/lib
+exec /usr/bin/pngtopnm "$@"
+@end verbatim
+
+On MacOS@tie{}X, I use this:
+
+@verbatim
+export DYLD_LIBRARY_PATH=/sw/lib
+exec /sw/bin/pngtopnm "$@"
+@end verbatim
+
+
+
+@node Testing LilyPond
+@section Testing LilyPond
+
+@html
+<a name="testing"></a>
+@end html
+
+LilyPond comes with an extensive suite that exercises the entire
+program.  This suite can be used to automatically check the impact of a
+change.  This is done as follows
+
+@example
+make test-baseline
+@emph{## apply your changes, compile}
+make check
+@end example
+
+This will leave an HTML page @file{out/test-results/index.html}.  This
+page shows all the important differences that your change introduced,
+whether in the layout, MIDI, performance or error reporting.
+
+To rerun tests, use
+
+@example
+make test-redo           @emph{## redo files differing from baseline}
+make test-clean          @emph{## remove all test results}
+@end example
+
+@noindent
+and then run @code{make check} again.
+
+For tracking memory usage as part of this test, you will need GUILE
+CVS; especially the following patch:
+@uref{http://lilypond.org/vc/gub.darcs/patches/guile-1.9-gcstats.patch}.
+
+For checking the coverage of the test suite, do the following
+
+@example
+./scripts/auxiliar/build-coverage.sh
+@emph{# uncovered files, least covered first}
+./scripts/auxiliar/coverage.py  --summary out-cov/*.cc
+@emph{# consecutive uncovered lines, longest first}
+./scripts/auxiliar/coverage.py  --uncovered out-cov/*.cc
+@end example
+
+
+@node Problems
+@section Problems
+
+For help and questions use @email{lilypond-user@@gnu.org}.  Send bug
+reports to @email{bug-lilypond@@gnu.org}.
+
+Bugs that are not fault of LilyPond are documented here.
+
+@unnumberedsubsubsec Bison 1.875
+
+There is a bug in bison-1.875: compilation fails with "parse error
+before `goto'" in line 4922 due to a bug in bison.  To fix, please
+recompile bison 1.875 with the following fix
+
+@example
+$ cd lily; make out/parser.cc
+$ vi +4919 out/parser.cc
+# append a semicolon to the line containing "__attribute__ ((__unused__))
+# save
+$ make
+@end example
+
+
+@unnumberedsubsubsec Solaris
+
+Solaris7, ./configure
+
+@file{./configure} needs a POSIX compliant shell.  On Solaris7,
+@file{/bin/sh} is not yet POSIX compliant, but @file{/bin/ksh} or bash
+is.  Run configure like
+
+@example
+CONFIG_SHELL=/bin/ksh ksh -c ./configure
+@end example
+
+@noindent
+or
+
+@example
+CONFIG_SHELL=/bin/bash bash -c ./configure
+@end example
+
+@unnumberedsubsubsec FreeBSD
+
+To use system fonts, dejaview must be installed.  With the default
+port, the fonts are installed in @file{usr/X11R6/lib/X11/fonts/dejavu}.
+
+Open the file @file{$LILYPONDBASE/usr/etc/fonts/local.conf} and add the
+following line just after the @code{<fontconfig>} line.  (Adjust as necessary
+for your hierarchy.)
+
+@example
+<dir>/usr/X11R6/lib/X11/fonts</dir>
+@end example
+
+
+@unnumberedsubsubsec International fonts
+
+On MacOS@tie{}X, all fonts are installed by default.  However, finding all
+system fonts requires a bit of configuration; see
+@uref{http://lists.gnu.org/archive/html/lilypond-user/2007-03/msg00472.html,
+this post} on the @code{lilypond-user} mailing list.
+
+On Linux, international fonts are installed by different means on
+every distribution.  We cannot list the exact commands or packages
+that are necessary, as each distribution is different, and the exact
+package names within each distribution changes.  Here are some
+hints, though:
+
+@verbatim
+Red Hat Fedora
+
+    taipeifonts fonts-xorg-truetype ttfonts-ja fonts-arabic \
+         ttfonts-zh_CN fonts-ja fonts-hebrew
+
+Debian GNU/Linux
+
+   apt-get install emacs-intl-fonts xfonts-intl-.* \
+        ttf-kochi-gothic ttf-kochi-mincho \
+        xfonts-bolkhov-75dpi xfonts-cronyx-100dpi xfonts-cronyx-75dpi
+@end verbatim
+
+
+
+ALSO ADD:
+
+- how to make a stable version and development version coexist on
+  your system
+
+- how to build with debug info
+
+
+
diff --git a/Documentation/devel/contrib-guide.texi b/Documentation/devel/contrib-guide.texi
new file mode 100644 (file)
index 0000000..65287bd
--- /dev/null
@@ -0,0 +1,124 @@
+\input texinfo @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.  See TRANSLATION for details.
+@end ignore
+@setfilename contrib-guide.info
+@settitle GNU LilyPond Contributor's Guide
+@documentencoding UTF-8
+@documentlanguage en
+
+@include macros.itexi
+
+@afourpaper
+
+@ifnottex
+@node Top
+@top GNU LilyPond --- Contributor's Guide
+@chapheading The music typesetter
+@end ifnottex
+
+
+@ifhtml
+@ifclear bigpage
+This document is also available as a
+@uref{source/Documentation/devel/contrib-guide.pdf,PDF} and as
+@c FIXME: update @uref{} stuff.
+@uref{source/Documentation/devel/,one big page}.
+@end ifclear
+@ifset bigpage
+This document is also available as a
+@uref{source/Documentation/devel/contrib-guide.pdf,PDF} and as a
+@uref{source/Documentation/devel/contrib-guide/index.html,HTML indexed multiple pages}.
+@end ifset
+@end ifhtml
+
+
+@iftex
+@exampleindent 0
+@finalout
+
+@titlepage
+@title LilyPond
+@subtitle The music typesetter
+@titlefont{Contributor's Guide}
+@author The LilyPond development team
+
+Copyright @copyright{} 1999--2008 by the authors
+
+@quotation
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.1
+or any later version published by the Free Software Foundation;
+with no Invariant Sections.
+A copy of the license is included in the section entitled ``GNU
+Free Documentation License''.
+@end quotation
+
+@vskip 20pt
+
+For LilyPond version
+@end titlepage
+@end iftex
+
+@copying
+Copyright @copyright{} 1999--2008 by the authors
+
+@quotation
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.1
+or any later version published by the Free Software Foundation;
+with no Invariant Sections.
+A copy of the license is included in the section entitled ``GNU
+Free Documentation License''.
+@end quotation
+@end copying
+
+@ifnottex
+This file documents contributing to GNU LilyPond.
+
+Copyright 1999--2008 by the authors
+
+@quotation
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.1
+or any later version published by the Free Software Foundation;
+with no Invariant Sections.
+A copy of the license is included in the section entitled ``GNU
+Free Documentation License''.
+@end quotation
+@end ifnottex
+
+@ifnottex
+
+More information can be found at
+@uref{http://@/www@/.lilypond@/.org/}.  The website contains
+on-line copies of this and other documentation.
+
+@menu
+* Starting with git::
+* Compiling from source::
+* Documentation work::
+* Website work::
+* LSR work::
+* Issues::
+* Programming work::
+* Release work::
+@end menu
+@end ifnottex
+
+@contents
+
+@include git-starting.itexi
+@include compiling.itexi
+@include doc-work.itexi
+@include website-work.itexi
+@include lsr-work.itexi
+@include issues.itexi
+@include programming-work.itexi
+@include release-work.itexi
+
+@bye
+
diff --git a/Documentation/devel/doc-translation-list.itexi b/Documentation/devel/doc-translation-list.itexi
new file mode 100644 (file)
index 0000000..71bef56
--- /dev/null
@@ -0,0 +1,84 @@
+@c -*- coding: us-ascii; mode: texinfo; -*-
+@c This file is part of file doc-work.itexi
+@c Word counts are updated automatically by translations-status.py 
+
+Translation of @file{Documentation/foo/bar} should be
+@file{Documentation/@var{LANG}/foo/bar}.  Unmentioned files should not
+be translated.
+
+Priorities:
+@itemize
+@item 1. delivery,
+@item 2. 3. 4. 5. later,
+@item 6. optional.
+@end itemize
+
+Files marked with priority 3, 4 or 5 may be submitted individually.
+Word counts (excluding LilyPond snippets) are given for each file.
+
+@example
+-1- Documentation index and Tutorial
+429   user/lilypond-learning.tely
+6365  user/tutorial.itely
+23    user/dedication.itely
+423   user/macros.itexi
+171   index.html.in
+6346  po/lilypond-doc.pot (translate to po/@var{MY_LANGUAGE}.po)
+---   ../lilypond-texi2html.init (section TRANSLATIONS)
+13757 total
+
+-2- Introduction and beginning of Application Usage
+411   user/preface.itely
+3855  user/introduction.itely
+407   user/lilypond-program.tely
+1928  user/install.itely (partial translation)
+1149  user/setup.itely
+2827  user/running.itely
+10577 total
+
+-3- Learning manual
+10318 user/fundamental.itely -- Fundamental concepts
+14775 user/tweaks.itely -- Tweaking output
+3007  user/working.itely -- Working on LilyPond files
+483   user/templates.itely -- Templates
+28583 total
+
+-4- Notation reference
+695   user/lilypond.tely
+91    user/notation.itely -- Musical notation
+3123  user/pitches.itely
+5236  user/rhythms.itely
+1146  user/expressive.itely
+555   user/repeats.itely
+1455  user/simultaneous.itely
+1701  user/staff.itely
+895   user/editorial.itely
+2286  user/text.itely
+76    user/specialist.itely -- Specialist notation
+2670  user/vocal.itely
+1464  user/chords.itely
+702   user/piano.itely
+810   user/percussion.itely
+826   user/guitar.itely
+66    user/strings.itely
+242   user/bagpipes.itely
+4487  user/ancient.itely
+5873  user/input.itely -- Input syntax
+2164  user/non-music.itely -- Non-musical notation
+8451  user/spacing.itely -- Spacing issues
+11391 user/changing-defaults.itely -- Changing defaults
+5202  user/programming-interface.itely -- Interfaces for programmers
+1190  user/notation-appendices.itely -- Notation manual tables
+250   user/cheatsheet.itely -- Cheat sheet
+63047 total
+
+-5- Application usage
+3248  user/lilypond-book.itely -- LilyPond-book
+1171  user/converters.itely -- Converting from other formats
+4419  total
+
+-6- Appendices whose translation is optional
+310   user/literature.itely
+960   user/scheme-tutorial.itely (needs to be revised first)
+1270  total
+@end example
diff --git a/Documentation/devel/doc-work.itexi b/Documentation/devel/doc-work.itexi
new file mode 100644 (file)
index 0000000..c26a524
--- /dev/null
@@ -0,0 +1,1534 @@
+@c -*- coding: utf-8; mode: texinfo; -*-
+@node Documentation work
+@chapter Documentation work
+
+@menu
+* Introduction to documentation work::  
+* Texinfo introduction and usage policy::  
+* Documentation policy::        
+* Tips for writing docs::       
+* Updating docs with convert-ly::  
+* Translating the documentation::  
+@end menu
+
+
+@node Introduction to documentation work
+@section Introduction to documentation work
+
+Our documentation tries to adhere to our @ref{Documentation
+policy}.  This policy contains a few items which may seem odd.
+One policy in particular is often questioned by potential
+contributors: we do not repeat material in the Notation Reference,
+and instead provide links to the @qq{definitive} presentation of
+that information.  Some people point out, with good reason, that
+this makes the documentation harder to read.  If we repeated
+certain information in relevant places, readers would be less
+likely to miss that information.
+
+That reasoning is sound, but we have two counter-arguments.
+First, the Notation Reference -- one of @emph{five} manuals for
+users to read -- is already over 500 pages long.  If we repeated
+material, we could easily exceed 1000 pages!  Second, and much
+more importantly, LilyPond is an evolving project.  New features
+are added, bugs are fixed, and bugs are discovered and documented.
+If features are discussed in multiple places, the documentation
+team must find every instance.  Since the manual is so large, it
+is impossible for one person to have the location of every piece
+of information memorized, so any attempt to update the
+documentation will invariably omit a few places.  This second
+concern is not at all theoretical; the documentation used to be
+plagued with inconsistent information.
+
+If the documentation were targeted for a specific version -- say,
+LilyPond 2.10.5 -- and we had unlimited resources to spend on
+documentation, then we could avoid this second problem.  But since
+LilyPond evolves (and that is a very good thing!), and since we
+have quite limited resources, this policy remains in place.
+
+A few other policies (such as not permitting the use of tweaks in
+the main portion of NR 1+2) may also seem counter-intuitive, but
+they also stem from attempting to find the most effective use of
+limited documentation help.
+
+
+
+@node Texinfo introduction and usage policy
+@section Texinfo introduction and usage policy
+
+@menu
+* Texinfo introduction::        
+* Sectioning commands::         
+* LilyPond formatting::         
+* Text formatting::             
+* Syntax survey::               
+* Other text concerns::         
+@end menu
+
+
+@node Texinfo introduction
+@subsection Texinfo introduction
+
+The language is called Texinfo; you can see its manual here:
+
+@uref{http://www.gnu.org/software/texinfo/manual/texinfo/}
+
+However, you don't need to read those docs.  The most important
+thing to notice is that text is text.  If you see a mistake in the
+text, you can fix it.  If you want to change the order of
+something, you can cut-and-paste that stuff into a new location.
+
+@warning{Rule of thumb: follow the examples in the existing docs.
+You can learn most of what you need to know from this; if you want
+to do anything fancy, discuss it on @code{lilypond-devel} first.}
+
+
+@node Sectioning commands
+@subsection Sectioning commands
+
+Most of the manual operates at the
+
+@example
+@@node Foo
+@@subsubsection Foo
+@end example
+
+@noindent
+level.  Sections are created with
+
+@example
+@@node Foo
+@@subsection Foo
+@end example
+
+@itemize
+@item
+Please leave two blank lines above a @@node; this makes it
+easier to find sections in texinfo.
+
+@item
+Sectioning commands (@@node and @@section) must not appear
+inside an @@ignore.  Separate those commands with a space, ie @@n
+ode.
+
+@end itemize
+
+
+@node LilyPond formatting
+@subsection LilyPond formatting
+
+@itemize
+
+@item
+Use two spaces for indentation in lilypond examples.  (no
+tabs)
+
+@item
+All text strings should be prefaced with #.  LilyPond does
+not strictly require this, but it is helpful to get users
+accustomed to this scheme construct.  ie @code{\set
+Staff.instrumentName = #"cello"}
+
+@item
+All engravers should have double-quotes around them:
+
+@example
+\consists "Spans_arpeggio_engraver"
+@end example
+
+Again, LilyPond does not strictly require this, but it is a useful
+standard to follow.
+
+@item
+Examples should end with a complete bar if possible.
+
+@item
+If possible, only write one bar per line.  The notes on each
+line should be an independent line -- tweaks should occur on their
+own line if possible.  Bad:
+
+@example
+\override textscript #'padding = #3 c1^"hi"
+@end example
+
+Good:
+
+@example
+\override textscript #'padding = #3
+c1^"hi"
+@end example
+
+@item
+Most LilyPond input should be produced with:
+
+@example
+@@lilypond[verbatim,quote,relative=2]
+@end example
+
+@noindent
+or
+
+@example
+@@lilypond[verbatim,quote,relative=1]
+@end example
+
+If you want to use \layout@{@} or define variables, use
+
+@example
+@@lilypond[verbatim,quote]
+@end example
+
+In rare cases, other options may be used (or omitted), but ask first.
+
+@item
+Inspirational headwords are produced with
+
+@example
+@@lilypondfile[quote,ragged-right,line-width=16\cm,staffsize=16]
+@{pitches-headword.ly@}
+@end example
+
+@item
+LSR snippets are linked with
+
+@example
+@@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+@{filename.ly@}
+@end example
+
+@noindent
+excepted in Templates, where `doctitle' may be omitted.
+
+@item
+Avoid long stretches of input code.  Noone is going to read
+them in print.  Please create a smaller example.  (the smaller
+example does not need to be minimal, however)
+
+@item
+Specify durations for at least the first note of every bar.
+
+@item
+If possible, end with a complete bar.
+
+@item
+Comments should go on their own line, and be placed before
+the line(s) to which they refer.
+
+@item
+Add extra spaces around @{ @} marks; ie
+
+@example
+not:          \chordmode @{c e g@}
+but instead:  \chordmode @{ c e g @}
+@end example
+
+@item
+If you only have one bar per line, omit bar checks.  If you
+put more than one bar per line (not recommended), then include bar
+checks.
+
+@item
+If you want to work on an example outside of the manual (for
+easier/faster processing), use this header:
+
+@example
+\paper @{
+  #(define dump-extents #t)
+  indent = 0\mm
+  line-width = 160\mm - 2.0 * 0.4\in
+  ragged-right = ##t
+  force-assignment = #""
+  line-width = #(- line-width (* mm  3.000000))
+@}
+
+\layout @{
+@}
+@end example
+
+You may not change any of these values.  If you are making an
+example demonstrating special \paper@{@} values, contact the
+Documentation Editor.
+
+@end itemize
+
+
+@node Text formatting
+@subsection Text formatting
+
+@itemize
+
+@item
+Lines should be less than 72 characters long.  (I personally
+recommend writing with 66-char lines, but don't bother modifying
+existing material.)
+
+@item
+Do not use tabs.
+
+@item
+Do not use spaces at the beginning of a line (except in
+@@example or @@verbatim environments), and do not use more than a
+single space between words.  `makeinfo' copies the input lines
+verbatim without removing those spaces.
+
+@item
+Use two spaces after a period.
+
+@item
+In examples of syntax, use @@var@{musicexpr@} for a music
+expression.
+
+@item
+Don't use @@rinternals@{@} in the main text.  If you're
+tempted to do so, you're probably getting too close to "talking
+through the code".  If you really want to refer to a context, use
+@@code@{@} in the main text and @@rinternals@{@} in the @@seealso.
+
+@item
+Variables or numbers which consist of a single character
+(probably followed by a punctuation mark) should be tied properly,
+either to the previous or the next word.  Example:
+
+@example
+The variable@@tie@{@}@@var@{a@} ...
+@end example
+
+@item
+To get consistent indentation in the DVI output it is better
+to avoid the @@verbatim environment.  Use the @@example
+environment instead if possible, but without extraneous
+indentation.  For example, this
+
+@example
+@@example
+  foo @{
+    bar
+  @}
+@@end example
+@end example
+
+@noindent
+should be replaced with
+
+@example
+@@example
+foo @{
+  bar
+@}
+@@end example
+@end example
+
+@noindent
+where `@@example' starts the line (without leading spaces).
+
+@item
+Do not compress the input vertically; this is, do not use
+
+@example
+    Beginning of logical unit
+    @@example
+    ...
+    @@end example
+    continuation of logical unit
+@end example
+
+@noindent
+but instead do
+
+@example
+Beginning of logical unit
+
+@@example
+...
+@@end example
+
+@@noindent
+continuation of logical unit
+@end example
+
+This makes it easier to avoid forgetting the `@@noindent'.  Only
+use @@noindent if the material is discussing the same material;
+new material should simply begin without anything special on the
+line above it.
+
+@item
+in @@itemize use @@item
+on a separate line like this:
+
+@example
+@@itemize
+@@item
+Foo
+
+@@item
+Bar
+@end example
+
+Do not use @@itemize @@bullet.
+
+@item
+To get LilyPond version, use @@version@{@} (this does not work
+inside LilyPond snippets).  If you write "@@version@{@}" (enclosed
+with quotes), or generally if @@version@{@} is not followed by a
+space, tere will be an ugly line break in PDF output unless you
+enclose it with
+
+@example
+@@w@{ ... @}
+
+  e.g.
+
+@@w@{"@@version@{@}"@}
+@end example
+
+@end itemize
+
+
+@node Syntax survey
+@subsection Syntax survey
+
+@itemize
+@item
+@@c - single line comments
+  "@@c NOTE:" is a comment which should remain in the final
+  version.  (gp only command ;)
+@item
+@@ignore ... @@end ignore - multi-line comment
+
+@item
+@@cindex - General index. Please add as many as you can.  Don't
+  capitalize the first word.
+@item
+@@funindex - is for a \lilycommand.
+
+@item
+@@example ... @@end ignore - example text that should be set as a
+  blockquote.  Any @{@} must be escaped with @@@{ @}@@
+@item
+@@itemize @@item
+A @@item
+B ... @@end itemize - for bulleted lists.
+  Do not compress vertically like this.
+
+@item
+@@code@{@} - typeset in a tt-font. Use for actual lilypond code or
+  property/context names.  If the name contains a space, wrap
+  the entire thing inside @@w@{@@code@{  @}@}.
+@item
+@@notation@{@} - refers to pieces of notation, e.g.
+  "@@notation@{cres.@}".  Also use to specific lyrics ("the
+  @@notation@{A - men@} is centered").  Only use once per subsection
+  per term.
+@item
+@@q@{@} - Single quotes. Used for `vague' terms.
+@item
+@@qq@{@} - Double quotes.  Used for actual quotes ("he said") or for
+  introducing special input modes.
+
+@item
+@@tie@{@} - Variables or numbers which consist of a single character
+  (probably followed by a punctuation mark) should be tied
+  properly, either to the previous or the next word.  Example:
+    "The letter@@tie@{@}@@q@{I@} is skipped"
+
+@item
+@@var - Use for variables.
+@item
+@@warning@{@} - produces a "Note: " box. Use for important messages.
+
+@item
+@@bs - Generates a backslash inside @@warning.
+    Any `\' used inside @@warning (and @@q or @@qq) must be written as `@@bs@{@}' 
+    (texinfo would also allow \\, but this breaks with PDF output).
+
+@end itemize
+
+
+
+@node Other text concerns
+@subsection Other text concerns
+
+@itemize
+
+@item
+References must occur at the end of a sentence, for more
+information see @@ref@{the texinfo manual@}.  Ideally this should
+also be the final sentence of a paragraph, but this is not
+required.  Any link in a doc section must be duplicated in the
+@@seealso section at the bottom.
+
+@item
+Introducing examples must be done with
+
+@example
+     . (ie finish the previous sentence/paragaph)
+     : (ie `in this example:')
+     , (ie `may add foo with the blah construct,')
+@end example
+
+The old "sentence runs directly into the example" method is not
+allowed any more.
+
+@item
+Abbrevs in caps, e.g., HTML, DVI, MIDI, etc.
+
+@item
+Colon usage
+
+@enumerate
+
+@item
+To introduce lists
+
+@item
+When beginning a quote: "So, he said,...".
+
+This usage is rarer.  Americans often just use a comma.
+
+@item
+When adding a defining example at the end of a sentence.
+
+@end enumerate
+
+@item
+Non-ASCII characters which are in utf-8 should be directly used;
+this is, don't say `Ba@@ss@{@}tuba' but `Baßtuba'.  This ensures
+that all such characters appear in all output formats.
+
+@end itemize
+
+
+
+
+@node Documentation policy
+@section Documentation policy
+
+@menu
+* Books::                       
+* Section organization::        
+* Checking cross-references::   
+* General writing::             
+* Technical writing style::     
+@end menu
+
+@node Books
+@subsection Books
+
+There are four parts to the documentation: the Learning Manual,
+the Notation Reference, the Program Reference, and the Music
+Glossary.
+
+@itemize
+
+@item
+Learning Manual:
+
+The LM is written in a tutorial style which introduces the most
+important concepts, structure and syntax of the elements of a
+LilyPond score in a carefully graded sequence of steps.
+Explanations of all musical concepts used in the Manual can be
+found in the Music Glossary, and readers are assumed to have no
+prior knowledge of LilyPond.  The objective is to take readers to
+a level where the Notation Reference can be understood and
+employed to both adapt the templates in the Appendix to their
+needs and to begin to construct their own scores.  Commonly used
+tweaks are introduced and explained.  Examples are provided
+throughout which, while being focussed on the topic being
+introduced, are long enough to seem real in order to retain the
+readers' interest.  Each example builds on the previous material,
+and comments are used liberally.  Every new aspect is thoroughly
+explained before it is used.
+
+Users are encouraged to read the complete Learning Manual from
+start-to-finish.
+
+
+@item
+Notation Reference: a (hopefully complete) description of LilyPond
+input notation.  Some material from here may be duplicated in the
+Learning Manual (for teaching), but consider the NR to be the
+"definitive" description of each notation element, with the LM
+being an "extra".  The goal is _not_ to provide a step-by-step
+learning environment -- do not avoid using notation that has not
+be introduced previously in the NR  (for example, use \break if
+appropriate).  This section is written in formal technical writing
+style.
+
+Avoid duplication.  Although users are not expected to read this
+manual from start to finish, they should be familiar with the
+material in the Learning Manual (particularly ``Fundamental
+Concepts''), so do not repeat that material in each section of
+this book.  Also watch out for common constructs, like ^ - _ for
+directions -- those are explained in NR 3.  In NR 1, you can
+write: DYNAMICS may be manually placed above or below the staff,
+see @@ref@{Controlling direction and placement@}.
+
+Most tweaks should be added to LSR and not placed directly in the
+.itely file.  In some cases, tweaks may be placed in the main
+text, but ask about this first.
+
+Finally, you should assume that users know what the notation
+means; explaining musical concepts happens in the Music Glossary.
+
+
+@item
+Application Usage: information about using the program lilypond
+with other programs (lilypond-book, operating systems, GUIs,
+convert-ly, etc).  This section is written in formal technical
+writing style.
+
+Users are not expected to read this manual from start to finish.
+
+
+@item
+Music Glossary: information about the music notation itself.
+Explanations and translations about notation terms go here.
+
+Users are not expected to read this manual from start to finish.
+
+@item
+Internals Reference: not really a documentation book, since it is
+automagically generated from the source, but this is its name.
+
+@end itemize
+
+
+@node Section organization
+@subsection Section organization
+
+@itemize
+
+@item
+The order of headings inside documentation sections should
+be:
+
+@example
+main docs
+@@predefined
+@@endpredefined
+@@snippets
+@@seealso
+@@knownissues
+@end example
+
+@item
+You @emph{must} include a @@seealso.
+
+@itemize
+@item
+The order of items inside the @@seealso section is
+
+@example
+Music Glossary:
+@@rglos@{foo@},
+@@rglos@{bar@}.
+
+Learning Manual:
+@@rlearning@{baz@},
+@@rlearning@{foozle@}.
+
+Notation Reference:
+@@ruser@{faazle@},
+@@ruser@{boo@}.
+
+Application Usage:
+@@rprogram@{blah@}.
+
+Installed Files:
+@@file@{path/to/dir/blahz@}.
+
+Snippets: @@rlsr@{section@}.
+
+Internals Reference:
+@@rinternals@{fazzle@},
+@@rinternals@{booar@}.
+@end example
+
+@item
+If there are multiple entries, separate them by commas but do not
+include an `and'.
+
+@item
+Always end with a period.
+
+@item
+Place each link on a new line as above; this makes it much easier
+to add or remove links.  In the output, they appear on a single
+line.
+
+("Snippets" is REQUIRED; the others are optional)
+
+@item
+Any new concepts or links which require an explanation should go
+as a full sentence(s) in the main text.
+
+@item
+Don't insert an empty line between @@seealso and the first entry!
+Otherwise there is excessive vertical space in the PDF output.
+
+@end itemize
+
+@item
+To create links, use @@ref@{@} if the link is within the same
+manual.
+
+@item
+@@predefined ... @@endpredefined is for commands in ly/*-init.ly
+FIXME?
+
+@item
+Do not include any real info in second-level sections (ie 1.1
+Pitches).  A first-level section may have introductory material,
+but other than that all material goes into third-level sections
+(ie 1.1.1 Writing Pitches).
+
+@end itemize
+
+
+@node Checking cross-references
+@subsection Checking cross-references
+
+Cross-references between different manuals are heavily used in the
+documentation, but they are not checked during compilation.
+However, if you compile the documentation, a script called
+check_texi_refs can help you with checking and fixing these
+cross-references; for information on usage, cd into a source tree
+where documentation has been built, cd into Documentation and look
+for check-xrefs and fix-xrefs targets in 'make help' output.  Note
+that you have to find yourself the source files to fix
+cross-references in the generated documentation such as the
+Internals Reference; e.g. you can grep scm/ and lily/.
+
+
+@node General writing
+@subsection General writing
+
+@itemize
+
+@item
+Do not forget to create @@cindex entries for new sections of text.
+Enter commands with @@funindex, i.e.
+
+@example
+@@cindex pitches, writing in different octaves
+@@funindex \relative
+@end example
+
+@noindent
+do not bother with the @@code@{@} (they are added automatically).
+These items are added to both the command index and the unified
+index.
+
+Both index commands should go in front of the actual material.
+
+@@cindex entries should not be capitalized, ie
+
+@example
+@@cindex time signature
+@end example
+
+@noindent
+is preferred instead of @qq{Time signature},   Only use capital
+letters for musical terms which demand them, like D.S. al Fine.
+
+For scheme functions, only include the final part, i.e.,
+
+@example
+@@funindex modern-voice-cautionary
+     and NOT
+@@funindex #(set-accidental-style modern-voice-cautionary)
+@end example
+
+@item
+Preferred terms:
+
+@itemize
+
+@item
+In general, use the American spellings.  The internal lilypond
+property names use this spelling.
+
+@item
+List of specific terms:
+
+@example
+canceled
+simultaneous    NOT concurrent
+measure: the unit of music
+bar line: the symbol delimiting a measure   NOT barline
+note head   NOT notehead
+chord construct   NOT chord (when referring to <>)
+@end example
+
+@end itemize
+
+@end itemize
+
+
+@node Technical writing style
+@subsection Technical writing style
+
+These refer to the NR.  The LM uses a more gentle, colloquial
+style.
+
+@itemize
+
+@item
+Do not refer to LilyPond in the text.  The reader knows what the
+manual is about.  If you do, capitalization is LilyPond.
+
+@item
+If you explicitly refer to @q{lilypond} the program (or any other
+command to be executed), write @code{@@command@{lilypond@}}.
+
+@item
+Do not explicitly refer to the reader/user.  There is no one else
+besides the reader and the writer.
+
+@item
+Avoid contractions (don't, won't, etc.).  Spell the words out completely.
+
+@item
+Avoid abbreviations, except for commonly used abbreviations of foreign
+language terms such as etc. and i.e.
+
+@item
+Avoid fluff (@qq{Notice that,} @qq{as you can see,}
+@qq{Currently,}).
+
+@item
+The use of the word @q{illegal} is inappropriate in most cases.
+Say @q{invalid} instead.
+
+@end itemize
+
+
+@node Tips for writing docs
+@section Tips for writing docs
+
+In the NR, I highly recommend focusing on one subsection at a
+time.  For each subsection,
+
+@itemize
+
+@item
+check the mundane formatting.  Are the headings (@@predefined,
+@@seealso, etc.) in the right order?
+
+@item
+add any appropriate index entries.
+
+@item
+check the links in the @@seealso section -- links to music
+glossary, internal references, and other NR sections are the main
+concern.  Check for potential additions.
+
+@item
+move LSR-worthy material into LSR.  Add the snippet, delete the
+material from the .itely file, and add a @@lilypondfile command.
+
+@item
+check the examples and descriptions.  Do they still work?
+@strong{Do not} assume that the existing text is
+accurate/complete; some of the manual is highly out of date.
+
+@item
+is the material in the @@knownissues  still accurate?
+
+@item
+can the examples be improved (made more explanatory), or is there
+any missing info?  (feel free to ask specific questions on -user;
+a couple of people claimed to be interesting in being
+@qq{consultants} who would help with such questions)
+
+@end itemize
+
+In general, I favor short text explanations with good examples --
+@qq{an example is worth a thousand words}.  When I worked on the
+docs, I spent about half my time just working on those tiny
+lilypond examples.  Making easily-understandable examples is much
+harder than it looks.
+
+
+@subsubheading TWEAKS
+
+In general, any \set or \override commands should go in the
+@qq{select snippets} section, which means that they should go in
+LSR and not the .itely file.  For some cases, the command
+obviously belongs in the @qq{main text} (i.e. not inside
+@@predefined or @@seealso or whatever) -- instrument names are a
+good example of this.
+
+@example
+\set Staff.instrumentName = #"foo"
+@end example
+
+On the other side of this,
+
+@example
+\override Score.Hairpin #'after-line-breaking = ##t
+@end example
+
+clearly belongs in LSR.
+
+I'm quite willing to discuss specific cases if you think that a
+tweaks needs to be in the main text.  But items that can go into
+LSR are easier to maintain, so I'd like to move as much as
+possible into there.
+
+
+It would be @qq{nice} if you spent a lot of time crafting nice
+tweaks for users... but my recommendation is @strong{not} to do
+this.  There's a lot of doc work to do without adding examples of
+tweaks.  Tweak examples can easily be added by normal users by adding
+them to the LSR.
+
+One place where a documentation writer can profitably spend time writing
+or upgrading tweaks is creating tweaks to deal with known issues.  It
+would be ideal if every significant known issue had a workaround to avoid
+the difficulty.
+
+
+@node Updating docs with convert-ly
+@section Updating doc with @command{convert-ly}
+
+cd into Documentation and run
+
+@example
+find . -name '*.itely' | xargs convert-ly -e
+@end example
+
+@noindent
+This also updates translated documentation.
+
+
+
+@node Translating the documentation
+@section Translating the documentation
+
+@menu
+* Getting started with documentation translation::  
+* Documentation translation details::  
+* Documentation translation maintenance::  
+* Translations management policies::  
+* Technical background::        
+@end menu
+
+@node Getting started with documentation translation
+@subsection Getting started with documentation translation
+
+First, get the sources from the Git repository, see @ref{Documentation
+translations source code}.
+
+@menu
+* Translation requirements::    
+* Which documentation can be translated::  
+* Starting translation in a new language::  
+@end menu
+
+@node Translation requirements
+@unnumberedsubsubsec Translation requirements
+
+Working on LilyPond documentation translations requires the following
+pieces of software, in order to make use of dedicated helper tools:
+
+@itemize
+@item Python 2.4 or higher,
+@item GNU Make,
+@item Gettext.
+@end itemize
+
+It is not required to build LilyPond and the documentation to
+translate the documentation.  However, if you have enough time and
+motivation and a suitable system, it can be very useful to build at
+least the documentation so that you can check the output yourself and
+more quickly; if you are interested, see @ref{Compiling from source}.
+
+@menu
+@end menu
+
+@node Which documentation can be translated
+@unnumberedsubsubsec Which documentation can be translated
+
+The makefiles and scripts infrastructure currently supports translation
+of the following documentation:
+
+@itemize
+@item documentation index (HTML);
+@item user manual and program usage -- Texinfo source, PDF and HTML
+output; Info output might be added if there is enough demand for it;
+@item the News document.
+@end itemize
+
+The following pieces of documentation should be added soon, by
+descending order of priority:
+
+@itemize
+@item automatically generated documentation: markup commands,
+predefined music functions;
+@item the Snippets List;
+@item the examples page;
+@item the Internals Reference.
+@end itemize
+
+
+@node Starting translation in a new language
+@unnumberedsubsubsec Starting translation in a new language
+
+At top of the source directory, do
+
+@example
+./autogen.sh
+@end example
+
+@noindent
+or (if you want to install your self-compiled LilyPond locally)
+
+@example
+./autogen.sh --prefix=$HOME
+@end example
+
+@noindent
+If you want to compile LilyPond -- which is almost required to build
+the documentation, but is not required to do translation only -- fix
+all dependencies and rerun @command{./configure} (with the same
+options as for @command{autogen.sh}).
+
+Then @command{cd} into @file{Documentation} and run
+
+@example
+make ISOLANG=@var{MY-LANGUAGE} new-lang
+@end example
+
+@noindent
+where @var{MY-LANGUAGE} is the ISO 639 language code.
+
+Finally, add a language definition for your language in
+@file{python/langdefs.py}.
+
+Before starting the real translation work, it is recommended to commit
+changes you made so far to Git, so e.g. you are able to get back to
+this state of the sources easily if needed; see @ref{Sharing your
+changes}.
+
+
+@node Documentation translation details
+@subsection Documentation translation details
+
+Please follow all the instructions with care to ensure quality work.
+
+All files should be encoded in UTF-8.
+
+@menu
+* Files to be translated::      
+* Translating the Learning Manual and other Texinfo documentation::  
+* Translating the Notation Reference and Application Usage::  
+* Translating the Documentation index index.html.in::  
+@end menu
+
+@node Files to be translated
+@unnumberedsubsubsec Files to be translated
+
+@include doc-translation-list.itexi
+
+@node Translating the Learning Manual and other Texinfo documentation
+@unnumberedsubsubsec Translating the Learning Manual and other Texinfo documentation
+
+Any title which comes with one of the following commands must not be
+translated directly in the Texinfo source
+
+@example
+@@node                                                   @@majorheading
+@@chapter       @@unnumbered          @@appendix           @@chapheading
+@@section       @@unnumberedsec       @@appendixsec        @@heading
+@@subsection    @@unnumberedsubsec    @@appendixsubsec     @@subheading
+@@subsubsection @@unnumberedsubsubsec @@appendixsubsubsec  @@subsubheading
+@@ref           @@rglos
+@end example
+
+As a notable exception, the second argument @var{Bar baz} of
+@code{@@ref@{@var{Foo},@var{Bar baz},,@var{info-file}@}} should be
+translated.
+
+@code{@@uref}'s names are to be translated.
+
+In any section which looks like
+
+@example
+@@menu
+* @var{node1}:: @var{thing1}
+* @var{node2}:: @var{thing2}
+...
+@@end menu
+@end example
+
+@noindent
+the node names @var{nodeN} are @emph{not} to be translated, whereas
+extra title information @var{thingN} is.
+
+Every node name or section title must from now on be translated
+separately in a @file{.po} file (just as well as LilyPond output
+messages) in @file{Documentation/po}.  The Gettext domain is named
+@code{lilypond-doc}, and unlike @code{lilypond} domain it is not
+managed through the Free Translation Project.
+
+
+Take care of using typographic rules for your language, especially in
+@file{user/macros.itexi}.
+
+
+Please keep verbatim copies of music snippets (in @code{@@lilypond}
+blocs).  However, some music snippets containing text that shows in
+the rendered music, and sometimes translating this text really helps
+the user to understand the documentation; in this case, and only in
+this case, you may as an exception translate text in the music
+snippet, and then you must add a line immediately before the
+@code{@@lilypond} block, starting with
+
+@example
+@@c KEEP LY
+@end example
+
+@noindent
+Otherwise the music snippet would be reset to the same content as the
+English version at next @command{make snippet-update} run -- see
+@ref{Updating documentation translation}.
+
+When you encounter
+
+@example
+@@lilypondfile[<number of fragment options>,texidoc]@{@var{filename.ly}@}
+@end example
+
+@noindent
+in the source, open @file{input/lsr/@var{filename}.ly}, translate the
+@code{texidoc} header field it contains, enclose it with
+@code{texidoc@var{MY-LANGUAGE} = "} and @code{"}, and write it into
+@file{input/texidocs/@var{filename}.texidoc} -- please keep possibly
+existing translations in other languages!  Additionnally, you may
+translate the snippet's title in @code{doctitle} header field, in case
+@code{doctitle} is a fragment option used in @code{@@lilypondfile};
+you can do this exactly the same way as @code{texidoc}.  For instance,
+@file{input/texidocs/@var{filename}.texidoc} may contain
+
+@example
+doctitlees = "Spanish title baz"
+texidoces = "
+Spanish translation blah
+"
+doctitlede = "German title bar"
+texidocde = "German translation foo
+"
+@end example
+
+@code{@@example} blocs need not be verbatim copies, e.g. variable
+names, file names and comments should be translated.
+
+Index entries (@code{@@cindex} and so on) should be translated.
+
+Finally, please carefully apply every rule exposed in @ref{Texinfo
+introduction and usage policy}, and @ref{Documentation policy}.  If
+one of these rules conflicts with a rule specific to your language,
+please ask the Translation meister and/or the Documentation Editors on
+@email{lilypond-devel@@gnu.org}.
+
+
+@node Translating the Notation Reference and Application Usage
+@unnumberedsubsubsec Translating the Notation Reference and Application Usage
+
+Copy @file{user/lilypond.tely} (or @file{user/lilypond-program.tely},
+respectively) into @file{@var{MY-LANGUAGE}/user}, then translate this
+file and run @code{skeleton-update} -- see @ref{Updating documentation
+translation}.  Your are now ready to translate the Notation Reference
+(Application Usage, respectively) exactly like the Learning Manual.
+
+
+@node Translating the Documentation index index.html.in
+@unnumberedsubsubsec Translating the Documentation index @file{index.html.in}
+
+Unlike almost all HTML pages in this documentation, links in this page
+are not tweaked by @file{postprocess_html.py}, so links should be
+manually edited to link to existing translations.
+
+
+@node Documentation translation maintenance
+@subsection Documentation translation maintenance
+
+Several tools have been developed to make translations maintenance
+easier.  These helper scripts make use of the power of Git, the
+version control system used for LilyPond development.
+
+@menu
+* Check state of translation::  
+* Updating documentation translation::  
+@end menu
+
+@node Check state of translation
+@unnumberedsubsubsec Check state of translation
+
+First pull from Git, then cd into @file{Documentation/} (or at top of
+the source tree, replace @command{make} with @command{make -C
+Documentation}) and run
+
+@example
+make ISOLANG=@var{MY_LANGUAGE} check-translation
+@end example
+
+@noindent
+This presents a diff of the original files since the most recent
+revision of the translation.  To check a single file, cd into
+@file{Documentation/} and run
+
+@example
+make CHECKED_FILES=@var{MY_LANGUAGE/user/foo.itely} check-translation
+@end example
+
+To see only which files need to be updated, do
+
+@example
+make ISOLANG=@var{MY_LANGUAGE} check-translation | grep 'diff --git'
+@end example
+
+To avoid printing terminal colors control characters, which is often
+desirable when you redirect output to a file, run
+
+@example
+make ISOLANG=@var{MY_LANGUAGE} NO_COLOR=1 check-translation
+@end example
+
+Global state of the translation is recorded in
+@file{Documentation/translations.html.in}, which is used to generate
+Translations status page.  To update that page, do from
+@file{Documentation/}
+
+@example
+make translation-status
+@end example
+
+This will also leave @file{out/translations-status.txt}, which contains
+up-to-dateness percentages for each translated file, and update word
+counts of documentation files in this Guide.
+
+@seealso
+
+@ref{Maintaining without updating translations}.
+
+
+@node Updating documentation translation
+@unnumberedsubsubsec Updating documentation translation
+
+Instead of running @code{check-translation}, you may want to run
+@code{update-translation}, which will run your favorite text editor to
+update files.  First, make sure environment variable @code{EDITOR} is
+set to a text editor command, then run from @file{Documentation/}
+
+@example
+make ISOLANG=@var{MY_LANGUAGE} update-translation
+@end example
+
+or to update a single file
+
+@example
+make CHECKED_FILES=@var{MY_LANGUAGE/user/foo.itely} update-translation
+@end example
+
+For each file to be udpated, update-translation will open your text
+editor with this file and a diff of the file in English; if the diff
+cannot be generated or is bigger than the file in English itself, the
+full file in English will be opened instead.
+
+Texinfo skeleton files, i.e. @file{.itely} files not yet translated,
+containing only the Texinfo structure can be updated automatically:
+whenever @command{make check-translation} shows that such files should
+be updated, run from @file{Documentation/}
+
+@example
+make ISOLANG=@var{MY_LANGUAGE} skeleton-update
+@end example
+
+@file{.po} message catalogs in @file{Documentation/po/} may be updated
+by issuing from @file{Documentation/} or @file{Documentation/po/}
+
+@example
+make po-update
+@end example
+
+@warning{if you run po-update and somebody else does the same and
+pushes before you push or send a patch to be applied, there will be a
+conflict when you pull.  Therefore, it is better that only the
+Translation meister runs this command.}
+
+Updating music snippets can quickly become cumbersome, as most
+snippets should be identical in all languages.  Fortunately, there is
+a script that can do this odd job for you (run from
+@file{Documentation/}):
+
+@example
+make ISOLANG=@var{MY_LANGUAGE} snippet-update
+@end example
+
+This script overwrites music snippets in
+@file{@var{MY_LANGUAGE/user/every.itely}} with music snippets from
+@file{@var{user/every.itely}}.  It ignores skeleton files, and keeps
+intact music snippets preceded with a line starting with @code{@@c
+KEEP LY}; it reports an error for each @file{.itely} that has not the
+same music snippet count in both languages.  Always use this script
+with a lot of care, i.e. run it on a clean Git working tree, and check
+the changes it made with @command{git diff} before committing; if you
+don't do so, some @code{@@lilypond} snippets might be broken or make
+no sense in their context.
+
+Finally, a command runs the three update processes above for all
+enabled languages (from @file{Documentation/}):
+
+@example
+make all-translations-update
+@end example
+
+Use this command with caution, and keep in mind it will not be really
+useful until translations are stabilized after the end of GDP.
+
+@seealso
+
+@ref{Maintaining without updating translations}.
+
+
+@node Translations management policies
+@subsection Translations management policies
+
+These policies show the general intent of how the translations should
+be managed, they aim at helping translators, developers and
+coordinators work efficiently.
+
+@menu
+* Maintaining without updating translations::  
+* Managing documentation translation with Git::  
+@end menu
+
+@node Maintaining without updating translations
+@unnumberedsubsubsec Maintaining without updating translations
+
+Keeping translations up to date under heavy changes in the
+documentation in English may be almost impossible, especially as
+during the former Grand Documentation Project (GDP) or the Grand
+Organization Project (GOP) when a lot of contributors brings changes.
+In addition, transloators may be (and that) involved in these porjects too.
+
+it is possible -- and even recommended -- to
+perform some maintaining that keeps translated documentation usable
+and eases future translation updating.  The rationale below the tasks
+list motivates this plan.  The rationale below the tasks
+list motivates this plan.
+
+The following tasks are listed in decreasing priority order.
+
+@enumerate
+@item Update macros.itexi.
+For each obsolete macro definition, if it is possible to update macro
+usage in documentation with an automatic text or regexp substitution,
+do it and delete the macro definition from macros.itexi; otherwise,
+mark this macro definition as obsolete with a comment, and keep it in
+macros.itexi until the documentation translation has been updated and
+no longer uses this macro.
+
+@item Update @file{*.tely} files completely with
+@command{make check-translation} -- you may want to redirect ouptput
+to a file because of overwhelming output, or call check-translation.py
+on individual files, see @ref{Check state of translation}.
+
+@item In @file{.itelys}, match sections and .itely file names with those from
+English docs, which possibly involves moving nodes contents in block
+between files, without updating contents itself.  In other words, the
+game is catching where has gone each section.  In Learning manual, and
+in Notation Reference sections which have been revised in GDP, there
+may be completely new sections: in this case, copy @code{@@node} and
+@code{@@section}-command from English docs, and add the marker for
+untranslated status @code{@@untranslated} on a single line.  Note that
+it is not possible to exactly match subsections or subsubsections of
+documentation in English, when contents has been deeply revised; in
+this case, keep obsolete (sub)subsections in the translation, marking
+them with a line @code{@@c obsolete} just before the node.
+
+Emacs with Texinfo mode makes this step easier:
+
+@itemize
+@item without Emacs AucTeX installed, @key{C-c C-s} shows structure of current
+Texinfo file in a new buffer *Occur*; to show structure of two files
+simultaneously, first split Emacs window in 4 tiles (with @key{C-x 1}
+and @key{C-x 2}), press @key{C-c C-s} to show structure of one file
+(e.g. the translated file), copy *Occur* contents into *Scratch*, then
+press @key{C-c C-s} for the other file.
+
+If you happen to have installed AucTeX, you can either call the macro
+by doing @key{M-x texinfo-show-structure} or create a key binding in your
+@file{~/.emacs}, by adding the four following lines:
+
+@example
+(add-hook 'Texinfo-mode-hook
+          '(lambda ()
+             (define-key Texinfo-mode-map "\C-cs"
+              'texinfo-show-structure)))
+@end example
+
+@noindent
+and then obtain the structure in the *Occur* buffer with @key{C-c s}.
+
+@item Do not bother updating @code{@@menu}s when all menu entries are in the same
+file, just do @key{C-c C-u C-a} ("update all menus") when you have
+updated all the rest of the file.
+
+@item Moving to next or previous node using incremental search: press
+@key{C-s} and type @code{node} (or @key{C-s @@node} if the text
+contains the word @q{node}) then press @key{C-s} to move to next node
+or @key{C-r} to move to previous node.  Similar operation can be used
+to move to the next/previous section.  Note that every cursor move
+exits incremental search, and hitting @key{C-s} twice starts
+incremental search with the text entered in previous incremental
+search.
+
+@item Moving a whole node (or even a sequence of nodes): jump to beginning
+of the node (quit incremental search by pressing an arrow), press
+@key{C-SPACE}, press @key{C-s node} and repeat @key{C-s} until you
+have selected enough text, cut it with @key{C-w} or @key{C-x}, jump to
+the right place (moving between nodes with the previous hint is often
+useful) and paste with @key{C-y} or @key{C-v}.
+@end itemize
+
+@item Update sections finished in the English documentation; check
+sections status at
+@uref{http://lilypondwiki.tuxfamily.org/index.php?title=Documentation_coordination}.
+
+@item Update documentation PO.  It is recommended not to update
+strings which come from documentation that is currently deeply revised
+in English, to avoid doing the work more than once.
+
+@item Fix broken cross-references by running (from @file{Documentation/})
+
+@example
+make ISOLANG=@var{YOUR-LANGUAGE} fix-xrefs
+@end example
+
+@noindent
+This step requires a sucessful documentation build (with @command{make
+web}).  Some cross-references are broken because they point to a node
+that exists in the documentation in English, which has not been added
+to the translation; in this case, do not fix the cross-reference but
+keep it "broken", so that the resulting HTML link will point to an
+existing page of documentation in English.
+@end enumerate
+
+@subsubheading Rationale
+
+You may wonder if it would not be better to leave translations as-is
+until you can really start updating translations.  There are several
+reasons to do these maintenance tasks right now.
+
+@itemize
+@item This will have to be done sooner or later anyway, before updating
+translation of documentation contents, and this can already be done
+without needing to be redone later, as sections of documentation in
+English are mostly revised once.  However, note that not all
+documentation sectioning has been revised in one go, so all this
+maintenance plan has to be repeated whenever a big reorganization is
+made.
+
+@item This just makes translated documentation take advantage of the new
+organization, which is better than the old one.
+
+@item Moving and renaming sections to match sectioning of documentation in
+English simplify future updating work: it allows updating the
+translation by side-by-side comparison, without bothering whether
+cross-reference names already exist in the translation.
+
+@item Each maintenance task except @q{Updating PO files} can be done by
+the same person for all languages, which saves overall time spent by
+translators to achieve this task: the node names and section titles
+are in English, so you can do.  It is important to take advantage of
+this now, as it will be more complicated (but still possible) to do
+step 3 in all languages when documentation is compiled with
+@command{texi2html} and node names are directly translated in source
+files.
+@end itemize
+
+
+@node Managing documentation translation with Git
+@unnumberedsubsubsec Managing documentation translation with Git
+
+This policy explains how to manage Git branches and commit
+translations to Git.
+
+@itemize
+@item Translation changes matching master branch are preferably made on
+@code{lilypond/translation} branch; they may be pushed directly to
+@code{master} only if they do not break compilation of LilyPond and
+its documentation, and in this case they should be pushed to
+@code{lilypond/translation} too.  Similarly, changes matching
+@code{stable/X.Y} are preferably made on
+@code{lilypond/X.Ytranslation}.
+
+@item @code{lilypond/translation} Git branch may be merged into master only if
+LilyPond (@command{make all}) and documentation (@command{make web}) compile
+succesfully.
+
+@item @code{master} Git branch may be merged into
+@code{lilypond/translation} whenever @command{make} and @command{make
+web} are succesful (in order to ease documentation compilation by
+translators), or when significant changes had been made in
+documentation in English in master branch.
+
+@item General maintenance may be done by anybody who knows what he does
+in documentation in all languages, without informing translators
+first.  General maintenance include simple text substitutions
+(e.g. automated by sed), compilation fixes, updating Texinfo or
+lilypond-book commands, updating macros, updating ly code, fixing
+cross-references, and operations described in @ref{Maintaining
+without updating translations}.
+@end itemize
+
+
+@node Technical background
+@subsection Technical background
+
+A number of Python scripts handle a part of the documentation
+translation process.  All scripts used to maintain the translations
+are located in @file{scripts/auxiliar/}.
+
+@itemize
+@item @file{check_translation.py}  -- show diff to update a translation,
+@item @file{texi-langutils.py}  -- quickly and dirtily parse Texinfo files to
+make message catalogs and Texinfo skeleton files,
+@item @file{texi-skeleton-update.py} -- update Texinfo skeleton files,
+@item @file{update-snippets.py} -- synchronize ly snippets with those
+from English docs,
+@item @file{translations-status.py} -- update translations status pages and word
+counts in the file you are reading,
+@item @file{tely-gettext.py} -- gettext node names, section titles and references
+in the sources; WARNING only use this script once for each file, when support for
+"makeinfo --html" has been dropped.
+@end itemize
+
+Other scripts are used in the build process, in @file{scripts/build/}:
+
+@itemize
+@item @file{html-gettext.py} -- translate node names, section titles and cross
+references in HTML files generated by @command{makeinfo},
+@item @file{texi-gettext.py} -- gettext node names, section titles and references
+before calling @command{texi2pdf},
+@item @file{mass-link.py} -- link or symlink files between English documentation
+and documentation in other languages.
+@end itemize
+
+Python modules used by scripts in @file{scripts/auxiliar/} or @file{scripts/build/} (but
+not by installed Python scripts) are located in @file{python/auxiliar/}:
+@itemize
+@item @file{manuals_definitions.py} -- define manual names and name of
+cross-reference Texinfo macros,
+@item @file{buildlib.py} -- common functions (read piped output
+of a shell command, use Git),
+@item @file{postprocess_html.py} (module imported by @file{www_post.py}) -- add footer and
+tweak links in HTML pages.
+@end itemize
+
+And finally
+@itemize
+@item @file{python/langdefs.py}  -- language definitions module
+@end itemize
diff --git a/Documentation/devel/git-starting.itexi b/Documentation/devel/git-starting.itexi
new file mode 100644 (file)
index 0000000..165122f
--- /dev/null
@@ -0,0 +1,861 @@
+@c -*- coding: us-ascii; mode: texinfo; -*-
+@node Starting with git
+@chapter Starting with git
+
+To complete or present in another form the introduction to Git usage
+in this chapter, it may be a good idea to look for Git documentation
+at @uref{http://git-scm.com/documentation}, 
+
+@menu
+* Getting the source code::     
+* Updating the source code::    
+* Working with several Git branches::  
+* Sharing your changes::        
+* Other interesting Git commands::  
+* Git on Windows::              
+@end menu
+
+
+@node Getting the source code
+@section Getting the source code
+
+@menu
+* Git introduction::            
+* Main source code::            
+* Website source code::         
+* Documentation translations source code::  
+* Other branches::              
+* Other locations for git::     
+* Git user configuration::      
+@end menu
+
+@node Git introduction
+@subsection Git introduction
+
+The source code is kept in a Git respository.  This allows us to
+track changes to files, and for multiple people to work on the
+same set of files efficiently.
+
+@warning{These instructions assume that you are using the
+command-line version of Git 1.5 or higher.  Windows users should
+skip to @ref{Git on Windows}.}
+
+
+@node Main source code
+@subsection Main source code
+
+To get the main source code and documentation,
+
+@c WARNING: when updating the commands below, please
+@c update the other flavors in the two next nodes
+@c and in Introduction to Git concepts
+@smallexample
+mkdir lilypond; cd lilypond
+git init-db
+git remote add -f -t master -m master origin git://git.sv.gnu.org/lilypond.git/
+git checkout -b master origin/master
+@end smallexample
+
+
+@node Website source code
+@subsection Website source code
+
+To get the website (including translations),
+
+@smallexample
+mkdir lilypond-web ; cd lilypond-web
+git init-db
+git remote add -f -t web -m web origin git://git.sv.gnu.org/lilypond.git/
+git checkout -b web origin/web
+@end smallexample
+
+
+@node Documentation translations source code
+@subsection Documentation translations source code
+
+To translate the documentation (@emph{not} the website),
+
+@smallexample
+mkdir lilypond-translation; cd lilypond-translation
+git init-db
+git remote add -f -t lilypond/translation -m lilypond/translation origin git://git.sv.gnu.org/lilypond.git/
+git checkout -b lilypond/translation origin/lilypond/translation
+@end smallexample
+
+
+@node Other branches
+@subsection Other branches
+
+Most contributors will never need to touch the other branches.  If
+you wish to do so, you will need more familiarity with git.
+
+@itemize
+
+@item @code{gub}:
+This stores the Grand Unified Binary, our cross-platform building
+tool.  
+@c TODO: merge the gub stuff with this CG.
+For more info, see @uref{http://lilypond.org/gub}.  The git
+location is:
+
+@example
+http://github.com/janneke/gub
+@end example
+
+@item @code{dev/XYZ}:
+These branches are for individual developers.  They store code
+which is not yet stable enough to be added to the @code{master}
+branch.
+
+@item @code{stable/XYZ}:
+The branches are kept for archival reasons.
+
+@end itemize
+
+
+@node Other locations for git
+@subsection Other locations for git
+
+If you have difficulty connecting to most of the repositories
+listed in earlier sections, try:
+
+@example
+http://git.sv.gnu.org/r/lilypond.git
+git://git.sv.gnu.org/lilypond.git
+ssh://git.sv.gnu.org/srv/git/lilypond.git
+@end example
+
+Using HTTP protocol is slowest, so it is not recommended unless both
+SSH and Git protocols fail, which happens e.g. if you connect to
+internet through a router that filters out Git and/or SSH connections.
+
+
+@node Git user configuration
+@subsection Git user configuration
+
+To configure git to automatically use your name and email address
+for commits and patches,
+
+@example
+git config --global user.name "MYNAME"
+git config --global user.email MYEMAIL@@EXAMPLE.NET
+@end example
+
+
+@node Updating the source code
+@section Updating the source code
+
+@menu
+* Importance of updating::      
+* Update command::              
+* Resolving conflicts::         
+* Introduction to Git concepts::  
+@end menu
+
+
+@node Importance of updating
+@subsection Importance of updating
+
+In a large project like LilyPond, contributors sometimes edit the same
+file at the same time.  As long as everybody updates their version of
+the file with the most recent changes (@emph{pulling}), there are
+generally no problems with this multiple-person editing.  However,
+boring problems can arise if you do not pull before attempting commit,
+e.g. you may encounter a conflict; in this case, see @ref{Resolving
+conflicts}.
+
+
+@node Update command
+@subsection Updating command
+
+Whenever you are asked to pull, it means you should update your
+local copy of the repository with the changes made by others on
+the remote @code{git.sv.gnu.org} repository:
+
+@example
+git pull origin
+@end example
+
+
+@node Resolving conflicts
+@subsection Resolving conflicts
+
+Occasionally an update may result in conflicts -- this happens
+when you and somebody else have modified the same part of the same
+file and git cannot figure out how to merge the two versions
+together.  When this happens, you must manually merge the two
+versions.
+
+If you need some documentation to understand and resolve conflicts,
+see paragraphs @emph{How conflicts are presented} and @emph{How to
+resolve conflicts} in @command{git merge} man page.
+
+
+@node Introduction to Git concepts
+@subsection Introduction to Git concepts
+
+A bit of Git vocabulary will be explained below.  The following is
+just introduction material; for better understanding of Git concepts,
+you are invited to read further documentation, especially Git
+Community Book at @uref{http://book.git-scm.com/}.
+
+The @code{git pull origin} command above is just a shortcut for this
+command:
+
+@example
+git pull git://git.sv.gnu.org/lilypond.git/ @var{branch}:origin/@var{branch}
+@end example
+
+@noindent
+where @code{@var{branch}} is typically @code{master}, @code{web} or
+@code{lilypond/translation}; if you do not know or remember, see
+@ref{Getting the source code} to remember which commands you issued or
+which source code you wanted to get.
+
+A @emph{commit} is a set of changes made to the sources; it also
+includes the committish of the parent commit, the name and e-mail of
+the @emph{author} (the person who wrote the changes), the name and
+e-mail of the @emph{committer} (the person who brings these changes
+into the Git repository), and a commit message.
+
+A @emph{committish} is the SHA1 checksum of a commit, a number made of
+40 hexadecimal digits, which acts as the internal unique identifier
+for this commit.  To refer to a particular revision, don't use vague
+references like the (approximative) date, simply copy and paste the
+committish.
+
+A @emph{branch} is nothing more than a pointer to a particular commit,
+which is called the @emph{head} of the branch; when referring to a
+branch, one often acutally thinks about its head and the ancestor
+commits of the head.
+
+Now we will explain the two last commands you used to get the source
+code from Git -- see @ref{Getting the source code}.
+
+@example
+git remote add -f -t @var{branch} -m @var{branch} origin git://git.sv.gnu.org/lilypond.git/
+git checkout -b @var{branch} origin/@var{branch}
+@end example
+
+The @command{git remote} has created a branch called
+@code{origin/@var{branch}} in your local Git repository.  As this
+branch is a copy of the remote branch web from git.sv.gnu.org LilyPond
+repository, it is called a @emph{remote branch}, and is meant to track
+the changes on the branch from git.sv.gnu.org: it will be updated
+every time you run @command{git pull origin} or @command{git fetch
+origin}.
+
+The @command{git checkout} command has created a branch named
+@code{@var{branch}}.  At the beginning, this branch is identical to
+@code{origin/@var{branch}}, but it will differ as soon as you make
+changes, e.g. adding newly translated pages or editing some
+documentation or code source file.  Whenever you pull, you merge the
+changes from @code{origin/@var{branch}} and @code{@var{branch}} since
+the last pulling.  If you do not have push (i.e. @qq{write}) access on
+git.sv.gnu.org, your @code{@var{branch}} will always differ from
+@code{origin/@var{branch}}.  In this case, remember that other people
+working like you with the remote branch @code{@var{branch}} of
+git://git.sv.gnu.org/lilypond.git/ (called @code{origin/@var{branch}}
+on your local repository) know nothing about your own
+@code{@var{branch}}: this means that whenever you use a committish or
+make a patch, others expect you to take the latest commit of
+@code{origin/@var{branch}} as a reference.
+
+Finally, please remember to read the man page of every Git command you
+will find in this manual in case you want to discover alternate
+methods or just understand how it works.
+
+
+@node Working with several Git branches
+@section Working with several Git branches
+
+It is possible to work with several branches on the same local Git
+repository; this is especially useful for translators who may have to
+deal with both @code{lilypond/translation} and a stable branch,
+e.g. @code{stable/2.12}.
+
+Some Git commands are introduced first, then a workflow with several
+Git branches of LilyPond source code is presented.
+
+@menu
+* Git commands for managing several branches::  
+* Working on LilyPond sources with several branches::  
+@end menu
+
+@node Git commands for managing several branches
+@subsection Git commands for managing several branches
+
+@subsubheading Listing branches and remotes
+
+You can get the exact path or URL of all remotes with
+running
+
+@example
+git remote -v
+@end example
+
+To list Git branches on your local repositories, run
+
+@example
+git branch     # list local branches only
+git branch -r  # list remote branches
+git branch -a  # list all branches
+@end example
+
+
+@subsubheading Checking out branches
+
+To know the currently checked out branch, i.e. the branch whose source
+files are present in your working tree, read the first line of the
+output of
+
+@example
+git status
+@end example
+
+@noindent
+The currently checked out branch is also marked with an asterisk in
+the output of @command{git branch}.
+
+You can check out another branch @code{@var{other_branch}}, i.e. check
+out @code{@var{other_branch}} to the working tree, by running
+
+@example
+git checkout @var{other_branch}
+@end example
+
+Note that it is possible to check out another branch while having
+uncommitted changes, but it is not recommended unless you know what
+you are doing; it is recommended to run @command{git status} to check
+this kind of issue before checking out another branch.
+
+
+@subsubheading Merging branches
+
+To merge branch @code{@var{foo}} into branch @code{@var{bar}}, i.e. to
+@qq{add} all changes made in branch @code{@var{foo}} to branch
+@code{@var{bar}}, run
+
+@example
+git checkout @var{bar}
+git merge @var{foo}
+@end example
+
+If any conflict happens, see @ref{Resolving conflicts}.
+
+There are common usage cases for merging: as a translator, you will
+often want to merge @code{master} into @code{lilypond/translation}; on
+the other hand, the Translations meister wants to merge
+@code{lilypond/translation} into @code{master} whenever he has checked
+that @code{lilypond/translation} builds successfully.
+
+
+@node Working on LilyPond sources with several branches
+@subsection Working on LilyPond sources with several branches
+
+@subsubheading Fetching new branches from git.sv.gnu.org
+
+To fetch and check out a new branch named @code{@var{branch}} on
+git.sv.gnu.org, run from top of the Git repository
+
+@example
+git config --add remote.origin.fetch +refs/heads/@var{branch}:refs/remotes/origin/@var{branch}
+git checkout --track -b @var{branch} origin/@var{branch}
+@end example
+
+After this, you can pull @code{@var{branch}} from git.sv.gnu.org with
+
+@example
+git pull origin
+@end example
+
+Note that this command generally fetches all branches you added with
+@command{git remote add} (when you initialized the repository) or
+@command{git config --add}, i.e. it updates all remote branches from
+remote @code{origin}, then it merges the remote branch tracked by
+current branch into current branch.  For example, if your current
+branch is @code{master} --- which is the case if you got the sources
+with the commands described in @ref{Main source code} and did not
+issue any @command{git checkout} command --- @code{origin/master} will
+be merged into @code{master}.
+
+
+@subsubheading Local clones, or having several working trees
+
+If you play with several Git branches, e.g. @code{master},
+@code{lilypond/translation}, @code{stable/2.12}), you may want to have
+one source and build tree for each branch; this is possible with
+subdirectories of your local Git repository, used as local cloned
+subrepositories.  To create a local clone for the branch named
+@code{@var{branch}}, run
+
+@example
+git checkout @var{branch}
+git clone -l -s -n . @var{subdir}
+cd @var{subdir}
+git reset --hard
+@end example
+
+Note that @code{@var{subdir}} must be a directory name which does not
+already exist.  In @code{@var{subdir}}, you can use all Git commands
+to browse revisions history, commit and uncommit changes; to update
+the cloned subrepository with changes made on the main repository, cd
+into @code{@var{subdir}} and run @command{git pull}; to send changes
+made on the subrepository back to the main repository, run
+@command{git push} from @code{@var{subdir}}.  Note that only one
+branch (the currently checked out branch) is created in the
+subrepository by default; it is possible to have several branches in a
+subrepository and do usual operations (checkout, merge, create,
+delete...) on these branches, but this possibility is not detailed
+here.
+
+When you push @code{@var{branch}} from @code{@var{subdir}} to the main
+repository, and @code{@var{branch}} is checked out in the main
+repository, you must save uncommitted changes (see @command{git
+stash}) and do @command{git reset --hard} in the main repository in
+order to apply pushed changes in the working tree of the main
+repository.
+
+
+@node Sharing your changes
+@section Sharing your changes
+
+@menu
+* Producing a patch::           
+* Committing directly::         
+@end menu
+
+
+@node Producing a patch
+@subsection Producing a patch
+
+Once you have finished editing your files, checked that your changes
+meet the @ref{Code style}, and/or @ref{Documentation policy}, properly
+set up your name and email in @ref{Git user configuration}, and
+checked that the entire thing compiles, you may
+
+@example
+git commit -a 
+git format-patch origin
+@end example
+
+Send an email to @email{lilypond-devel@@gnu.org} with the diff as
+an attachment.
+
+
+@node Committing directly
+@subsection Committing directly
+
+Most contributors do not have permission to commit directly.  If you
+do, make sure you have set up your name and email in @ref{Git user
+configuration}, then edit @file{.git/config}: change the line
+
+@example
+        url = git://git.sv.gnu.org/lilypond.git/
+@end example
+
+@noindent
+into
+@example
+        url = ssh://@var{user}@@git.sv.gnu.org/srv/git/lilypond.git
+@end example
+
+@noindent
+where @var{user} is your login name on Savannah.
+
+If you have not already done so, you should generate and upload a SSH
+key: open @uref{https://savannah.gnu.org/my/} in your browser, then go to
+@q{Preferences} then to something like @q{Edit SSH Keys}, and follow
+the instructions on that page.
+
+You may then
+
+@example
+git push origin
+@end example
+
+
+@node Other interesting Git commands
+@section Other interesting Git commands
+
+@menu
+* Git log::                     
+* Applying git patches::        
+@end menu
+
+
+@node Git log
+@subsection Git log
+
+The commands above don't only bring you the latest version of the
+sources, but also the full history of revisions (revisons, also
+called commits, are changes made to the sources), stored in the
+.git directory.  You can browse this history with
+
+@example
+git log     # only shows the logs (author, committish and commit message)
+git log -p  # also shows diffs
+gitk        # shows history graphically
+@end example
+
+@warning{The @code{gitk} command may require a separate @code{gitk} package,
+available in the appropriate distribution's repositories.}
+
+@node Applying git patches
+@subsection Applying git patches
+
+Well-formed git patches should be committed with
+
+@example
+git am
+@end example
+
+Patches created without @code{git format-patch} should be
+committed with
+
+@example
+git apply
+@end example
+
+
+
+@node Git on Windows
+@section Git on Windows
+
+@c Some of this may duplicate stuff in other sections
+@c Clear this up later  -td
+
+@subsection Background to nomenclature
+
+Git is a system for tracking the changes made to source files by
+a distributed set of editors.  It is designed to work without a
+master repository, but we have chosen to have a master respository
+for LilyPond files.  Editors hold local copies of the master
+repository together with any changes they have made locally.  Local
+changes are held in a local @q{branch}, of which there may be
+several, but these instructions assume you are using just one.  The
+files visible in the local repository always correspond to those
+on the currently @q{checked out} local branch.
+
+Files are edited on a local branch, and in that state the
+changes are said to be @q{unstaged}.  When editing is complete, the
+changes are moved to being @q{staged for commit}, and finally the
+changes are @q{committed} to the local branch.  Once
+committed, the changes are given a unique reference number called the
+@q{Committish} which identifies them to Git.  Such committed changes
+can be sent to the master repository by @q{pushing} them (if you
+have write permission) or by sending them by email to someone who
+has, either complete or as a @q{diff} or @q{patch} (which send
+just the differences from master).
+
+@subsection Installing git
+
+Obtain Git from
+@uref{http://code.google.com/p/msysgit/downloads/list}.
+(Note, not msysGit, which is for Git developers) and
+install.
+
+Start Git by clicking on the desktop icon.
+This will bring up a command line bash shell.  This may be
+unfamiliar to Windows users.  If so, follow these
+instructions carefully.  Commands are entered at a $ prompt
+and are terminated by keying a newline.
+
+@subsection Initialising Git
+
+Decide where you wish to place your local Git repository,
+creating the folders in Windows as necessary.  Here we
+call the folder to contain the repository [path]/Git.
+You will need to have space for around 150Mbytes.
+
+In the git bash shell type
+
+@example
+cd [path]/Git
+@end example
+
+to position the shell at your new Git repository.
+
+Note: if [path] contains folders with names containing
+spaces use
+
+@example
+cd "[path]/Git"
+@end example
+
+Then type
+
+@example
+git init
+@end example
+
+to initialize your Git repository.
+
+Then type (all on one line; the shell will wrap automatically)
+
+@example
+git remote add -f -t master origin git://git.sv.gnu.org/lilypond.git
+@end example
+
+to download the lilypond master files.
+
+@warning{Be patient!  Even on a broadband connection this can take
+10 minutes or more.  Wait for lots of [new tag] messages
+and the $ prompt.}
+
+We now need to generate a local copy of the downloaded files
+in a new local branch.  Your local branch needs to have a
+name, here we call it @q{lily-local} - you may wish to make up
+your own.
+
+Then, finally, type
+
+@example
+git checkout -b lily-local origin/master
+@end example
+
+to create the lily-local branch containing the local copies of the
+master files.  You will be advised your local branch has been set
+up to track the remote branch.
+
+Return to Windows Explorer and look in your Git repository.  You
+should see lots of folders.  For example, the LilyPond documentation
+can be found in Git/Documentation/user.
+
+Terminate the Git bash shell by typing @code{exit}.
+
+@subsection Git GUI
+
+Almost all subsequent work will use the Git Graphical User
+Interface, which avoids having to type command line
+commands. To start Git GUI first start the Git bash shell by
+clicking on the desktop icon, and type
+
+@example
+cd [path]/Git
+git gui
+@end example
+
+The Git GUI will open in a new window.  It contains four panels
+and 7 pull-down menus.  At this stage do not use any of the
+commands under Branch, Commit, Merge or Remote.  These will
+be explained later.
+
+The two panels on the left contain the names of files which
+you are in the process of editing (Unstaged Changes), and
+files you have finished editing and have staged ready for
+committing (Staged Changes).  At this stage these panels will
+be empty as you have not yet made any changes to any file.
+After a file has been edited and saved the top panel on the right
+will display the differences between the edited file selected
+in one of the panels on the left and the last version committed.
+
+The final panel at bottom right is used to enter a descriptive
+message about the change before committing it.
+
+The Git GUI is terminated by entering CNTL-Q while it is the
+active window or by clicking on the usual Windows close-window
+widget.
+
+@subsection Personalising your local git repository
+
+Open the Git GUI, click on
+
+@example
+Edit -> Options
+@end example
+
+and enter your name and email address in the
+left-hand (Git Repository) panel.  Leave everything
+else unchanged and save it.
+
+@subsection Checking out a branch
+
+At this stage you have two branches in your local repository,
+both identical.  To see them click on
+
+@example
+Branch -> Checkout
+@end example
+
+You should have one local branch called @w{lily-local} and one
+tracking branch called @w{origin/master}.  The latter is your
+local copy of the @w{remote/origin/master} branch in the master
+LilyPond repository.  The @w{lily-local} branch is where you
+will make your local changes.
+
+When a particular branch is selected, i.e., checked out, the
+files visible in your repository are changed to reflect the
+state of the files on that branch.
+
+@subsection Updating files from @w{remote/origin/master}
+
+Before starting the editing of a file, ensure your local branches
+contain the latest version in @w{remote/origin/master} by first
+clicking
+
+@example
+Remote -> Fetch from -> origin
+@end example
+
+@noindent
+in the Git GUI.
+
+This will place the latest version of every file, including all the
+changes made by others,
+into the @q{origin/master} branch of the tracking branches
+in your git repository.  You can see these files by checking
+out this branch.  This will not affect any files you have
+modified in your local branch.
+
+You then need to merge these fetched files into your local
+branch by clicking on
+
+@example
+Merge -> Local Merge
+@end example
+
+@noindent
+and if necessary select the local branch into which the merge
+is to be made.
+
+Note that a merge cannot be completed if there are any local
+uncommitted changes on the lily-local branch.
+
+This will update all the files in that branch to reflect the
+current state of the @w{origin/master} branch.  If any of the
+changes conflict with changes you have made yourself recently
+you will be notified of the conflict (see below).
+
+@subsection Editing files
+
+First ensure your lily-local branch is checked out, then
+simply edit the files in your local Git repository with your
+favourite editor and save them back there.  If any file contains
+non-ASCII characters ensure you save it in UTF-8 format.  Git will
+detect any changes whenever you restart Git GUI and the file names
+will then be listed in the Unstaged Changes panel.
+Or you can click the Rescan button to refresh the panel
+contents at any time.  You may break off and resume at
+editing any time.
+
+The changes you have made may be displayed in diff form
+in the top right-hand panel by clicking on the name in
+Git GUI.
+
+When your editing is complete, move the files from being
+Unstaged to Staged by clicking the document symbol to
+the left of each name.  If you change your mind it can
+be moved back by clicking on the ticked box to the
+left of the name.
+
+Finally the changes you have made may be committed to
+your lily-local branch by entering a brief message in
+the Commit Message box and clicking the Commit button.
+
+If you wish to amend your changes after a commit has been
+made, the original version and the changes you made in that
+commit may be recovered by selecting
+
+@example
+Commit -> Amend Last Commit
+@end example
+
+@noindent
+or by checking the Amend Last Commit radio button at bottom left.
+This will return the changes to the Staged state, so further
+editing made be carried out within that commit.  This must only be
+done @emph{before} the changes have been Pushed or sent to your
+mentor for Pushing - after that it is too late and corrections
+have to be made as a separate commit.
+
+
+@subsection Sending changes to remote/origin/master
+
+If you do not have write access to @w{remote/origin/master} you will
+need to send your changes by email to someone who does.
+
+First you need to create a diff or patch file containing
+your changes.  To create this, the file must first be
+committed.  Then terminate the Git GUI.  In the
+git bash shell first cd to your Git repository with
+
+@example
+cd [path]/Git
+@end example
+
+if necessary, then produce the patch with
+
+@example
+git format-patch origin
+@end example
+
+This will create a patch file for all the locally committed files
+which differ from @w{origin/master}.  The patch file can be found
+in [path]/Git and will have a name formed from n and the commit
+message.
+
+@subsection Resolving merge conflicts
+
+As soon as you have committed a changed file your local
+branch has diverged from @w{origin/master}, and will
+remain diverged until your changes have been committed
+in @w{remote/origin/master} and Fetched back into your
+@w{origin/master}.  Similarly, if a new commit has been made
+to @w{remote/origin/master} by someone else and Fetched, your
+lily-local branch is divergent.  You can detect a divergent
+branch by clicking on
+
+@example
+Repository -> Visualise all branch history
+@end example
+
+This opens up a very useful new window called @q{gitk}.
+Use this to browse all the commits made by others.
+
+If the diagram at top left of the resulting window
+does not show your branch's tag on the same node as
+the @w{remote/origins/master} tag your branch has diverged from
+@w{origin/master}.  This is quite normal if files you have modified
+yourself have not yet been Pushed to @w{remote/origin/master} and
+Fetched, or if files modified and committed by others have been
+Fetched since you last Merged @w{origin/master} into your lily-local
+branch.
+
+If a file being merged from @w{origin/master} differs from
+one you have modified in a way that cannot be resolved
+automatically by git, Merge will report a Conflict
+which you must resolve by editing the file to create the
+version you wish to keep.
+
+This could happen if the person updating @w{remote/origin/master}
+for you has added some changes of his own before
+committing your changes to @w{remote/origin/master}, or if someone
+else has changed the same file since you last
+fetched the file from @w{remote/origin/master}.
+
+Open the file in your editor and look for sections which
+are delimited with ...
+
+[to be completed when I next have a merge conflict to be
+sure I give the right instructions  -td]
+
+
+@subsection Other actions
+
+The instructions above describe the simplest way of using
+git on Windows.  Other git facilities which may usefully
+supplement these include
+
+@itemize
+
+@item Using multiple local branches (Create, Rename, Delete)
+@item Resetting branches
+@item Cherry-picking commits
+@item Pushing commits to @w{remote/origin/master}
+@item Using gitk to review history
+
+@end itemize
+
+Once familiarity with using git on Windows has been gained the
+standard git manuals can be used to learn about these.
diff --git a/Documentation/devel/index.html.in b/Documentation/devel/index.html.in
new file mode 100644 (file)
index 0000000..5e11693
--- /dev/null
@@ -0,0 +1,92 @@
+<html>
+<!--
+    Translation of GIT committish: FILL-IN-HEAD-COMMITTISH
+
+    When revising a translation, copy the HEAD committish of the
+    version that you are working on.  See TRANSLATION for details.
+!-->
+  <head>
+    <title>LilyPond @TOPLEVEL_VERSION@ Developers Resources</title>
+    <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
+    <meta name="aesop" content="links">
+    <meta name="description"
+          content="Top-level index to developers documentation for
+                   LilyPond @TOPLEVEL_VERSION@">
+  </head>
+  
+  <body>
+
+    <div class="header">
+      <h1>LilyPond developers resources</h1>
+    </div>
+
+    <div class="subheader">
+      <p>
+       <strong>Version @TOPLEVEL_VERSION@</strong>
+       <br>
+       <strong>@DATE@</strong>
+      </p>
+    </div>
+
+    <table align="center">
+      <tr>
+       <td>
+         <br>
+         <a class="title" href="contrib-guide/index.html">Contributors'
+           Guide</a>
+         (in <a class="title" href="contrib-guide-big-page.html">one
+           big page</a>,       in <a class="title" href="contrib-guide.pdf">PDF</a>)
+         <br>(how to participate in development)
+       </td>
+      <tr>
+    </table>
+
+    <table id="navigation">
+      <tbody>
+        <tr>
+          <td class="left-column">
+         <ul>
+      <li><a class="title"
+         href="../../input/regression/collated-files.html">Regression
+         tests</a> (~ 5 Mb, in <a class="title"
+         href="../../input/regression/collated-files.pdf">PDF</a>)
+        <br>(general tests)</li>
+      <li><a class="title"
+         href="../../input/regression/musicxml/collated-files.html">MusicXML regression
+         tests</a> (in <a class="title"
+         href="../../input/regression/musicxml/collated-files.pdf">PDF</a>)
+        <br>(musicxml2ly tests)</li>
+          </ul></td>
+         <td class="right-column">
+          <ul>
+      <li><a class="title" href="http://lilypond.org/test">Regression tests results</a>
+      <br>(for comparison between releases)</li>
+      <li><a class="title" href="../bibliography/index.html">Bibliography</a>
+      <br>(on background information)</li>
+          </ul></td>
+        </tr>
+        <tr>
+          <td valign="baseline" class="left-column">
+       <ul>
+           <li><a class="title" href="http://lilypond.org/web/devel">lilypond.org development page</a>
+            <br>(for all contributors)</li>
+            <li><a class="title" href="http://git.sv.gnu.org/gitweb/?p=lilypond.git">lilypond.git repository</a>
+            <br>(official sources)</li>
+       </ul>
+    </td><td class="right-column">
+       <ul>
+            <li><a class="title" href="http://git.sv.gnu.org/gitweb/?p=lilypond.git;a=blob_plain;f=README;hb=web">lilypond.org Readme</a>
+and <a class="title" href="http://git.sv.gnu.org/gitweb/?p=lilypond.git;a=blob_plain;f=TRANSLATION;hb=web">Translation</a>
+<br>(how to translate and build lilypond.org website)</li>
+            <li><a class="title" href="http://git.sv.gnu.org/gitweb/?p=lilypond.git;a=blob_plain;f=README;hb=gub">GUB Readme</a>
+            <br>(about Grand Unified Binaries packages)</li>
+       </ul>
+       </td>
+        </tr>
+     </tbody>
+</table>
+
+<p><a href="../index.html">Go back</a> to the Documentation index.</a></p>
+
+</body>
+</html>
diff --git a/Documentation/devel/issues.itexi b/Documentation/devel/issues.itexi
new file mode 100644 (file)
index 0000000..f7b5260
--- /dev/null
@@ -0,0 +1,38 @@
+@c -*- coding: us-ascii; mode: texinfo; -*-
+@node Issues
+@chapter Issues
+
+@menu
+* Introduction to issues::      
+* Issue classification::        
+* Adding issues to the tracker::  
+@end menu
+
+
+@node Introduction to issues
+@section Introduction to issues
+
+First, @qq{issue} isn't just a politically-correct term for
+@qq{bug}.  We use the same tracker for feature requests and code
+TODOs, so the term @qq{bug} wouldn't be accurate.
+
+Second, the classification of what counts as a bug vs. feature
+request, and the priorities assigned to bugs, are a matter of
+concern @strong{for developers only}.  If you are curious about
+the classification, read on, but don't complain that your
+particular issue is higher priority or counts as a bug rather than
+a feature request.
+
+
+@node Issue classification
+@section Issue classification
+
+
+@node Adding issues to the tracker
+@section Adding issues to the tracker
+
+
+
+
+
+
diff --git a/Documentation/devel/lsr-work.itexi b/Documentation/devel/lsr-work.itexi
new file mode 100644 (file)
index 0000000..2fcbb56
--- /dev/null
@@ -0,0 +1,154 @@
+@c -*- coding: us-ascii; mode: texinfo; -*-
+@node LSR work
+@chapter LSR work
+
+@menu
+* Introduction to LSR::
+* Adding and editing snippets::
+* Approving snippets::
+* LSR to Git::
+* Fixing snippets in LilyPond sources::
+@end menu
+
+
+@node Introduction to LSR
+@section Introduction to LSR
+
+The
+@uref{http://lsr.dsi.unimi.it/, LilyPond Snippet Repository (LSR)}
+is a collection of lilypond examples.  A subset of these examples
+are automatically imported into the documentation, making it easy
+for users to contribute to the docs without learning git and
+texinfo.
+
+
+@node Adding and editing snippets
+@section Adding and editing snippets
+
+When you create (or find!) a nice snippet, please add it to LSR.  Go
+to @uref{http://lsr.dsi.unimi.it/, LSR} and log in (if you haven't
+already, create an account).  Follow the instructions on the website.
+These instructions also explain how to modify existing snippets.
+
+If you think the snippet is particularly informative and you think
+it should be included in the documentation, tag it with @qq{docs}
+and one or more other categories.
+
+Please make sure that the lilypond code follows the guidelines in
+@ref{LilyPond formatting}.
+
+
+@node Approving snippets
+@section Approving snippets
+
+The main task of LSR editors is approving snippets.  To find a list of
+unapproved snippets, log into @uref{http://lsr.dsi.unimi.it/, LSR} and
+select @qq{No} from the dropdown menu to the right of the word
+@qq{Approved} at the bottom of the interface, then click
+@qq{Enable filter}.
+
+Check each snippet:
+
+@enumerate
+
+@item
+Does the snippet make sense and does what the author claims that
+it does?  If you think the snippet is particularly helpful, add
+the @qq{docs} tag and at least one other tag.
+
+@item
+If the snippet is tagged with @qq{docs}, check to see if it
+matches our guidelines for @ref{LilyPond formatting}.
+
+@item
+If the snippet uses scheme, check that everything looks good and
+there are no security risks.
+
+@warning{Somebody could sneak a @code{#'(system "rm -rf /")}
+command into our source tree if you do not do this!  Take this
+step @strong{VERY SERIOUSLY}.}
+
+@end enumerate
+
+
+@node LSR to Git
+@section LSR to Git
+
+@enumerate
+
+@item
+Make sure that @command{convert-ly} and @command{lilypond} commands in
+current PATH are in a bleeding edge version -- latest release from
+master branch, or even better a fresh snapshot from Git master branch.
+
+@item
+From the top source directory, run:
+
+@example
+wget http://lsr.dsi.unimi.it/download/lsr-snippets-docs-@var{YYYY-MM-DD}.tar.gz
+tar -xzf lsr-snippets-docs-@var{YYYY-MM-DD}.tar.gz
+scripts/auxiliar/makelsr.py lsr-snippets-docs-@var{YYYY-MM-DD}
+@end example
+
+@noindent
+where @var{YYYY-MM-DD} is the current date, e.g. 2009-02-28.
+
+@item
+Follow the instructions printed on the console to manually check for
+unsafe files.
+
+@warning{Somebody could sneak a @code{#'(system "rm -rf /")}
+command into our source tree if you do not do this!  Take this
+step @strong{VERY SERIOUSLY}.}
+
+@item
+Do a git add / commit / push.
+
+@end enumerate
+
+
+@node Fixing snippets in LilyPond sources
+@section Fixing snippets in LilyPond sources
+
+In case some snippet from @file{input/lsr} cause the documentation
+compilation to fail, the following steps should be followed to fix it
+reliably.
+
+@enumerate
+
+@item
+Look up the snippet filename @file{@var{foo}.ly} in the error output
+or log, then fix the file @file{input/lsr/@var{foo}.ly} to make the
+documentation build succesfully.
+
+@item
+Determine where it comes from by looking at its first line, e.g. run
+
+@example
+head -1 input/lsr/@var{foo}.ly
+@end example
+
+@item
+@strong{In case the snippet comes from LSR}, apply the fix to the
+snippet in LSR and send a notification email to a LSR editor with CC
+to the development list -- see @ref{Adding and editing snippets}.  The
+failure may sometimes not be caused by the snippet in LSR but by the
+syntax conversion made by @command{convert-ly}; in this case, try to
+fix @command{convert-ly} or report the problem on the development
+list, then run @command{makelsr.py} again, see @ref{LSR to Git}.  In
+some cases, when some features has been introduced or vastly changed
+so it requires (or takes significant advantage of) important changes
+in the snippet, it is simpler and recommended to write a new version
+of the snippet in @file{input/new}, then run @command{makelsr.py}.
+
+@item
+@strong{In case the snippet comes from} @file{input/new}, apply in
+@file{input/new/@var{foo}.ly} the same fix you did in
+@file{input/lsr/@var{foo}.ly}.  In case the build failure was caused
+by a translation string, you may have to fix
+@file{input/texidocs/@var{foo}.texidoc} instead.
+
+@item
+In any case, commit all changes to Git.
+
+@end enumerate
diff --git a/Documentation/devel/programming-work.itexi b/Documentation/devel/programming-work.itexi
new file mode 100644 (file)
index 0000000..1c97019
--- /dev/null
@@ -0,0 +1,515 @@
+@c -*- coding: us-ascii; mode: texinfo; -*-
+@node Programming work
+@chapter Programming work
+
+@menu
+* Introduction to programming::  
+* Programming without compiling::  
+* Finding functions::           
+* Code style::                  
+* Debugging LilyPond::          
+* other stuff::                 
+@end menu
+
+
+@node Introduction to programming
+@section Introduction to programming 
+
+FIXME -- decide what goes in here and put it here.  I'm not sure what
+should be here -- CDS
+
+@node Programming without compiling
+@section Programming without compiling
+
+Much of the development work in LilyPond takes place by changing *.ly or
+*.scm files.  These changes can be made without compiling LilyPond.  Such
+changes are described in this section.
+
+
+@subsection Modifying distribution files
+
+Much of LilyPond is written in Scheme or LilyPond input files.  These
+files are interpreted when the program is run, rather than being compiled
+when the program is built, and are present in all LilyPond distributions.
+You will find .ly files in the ly/ directory and the Scheme files in the
+scm/ directory.  Both Scheme files and .ly files can be modified and
+saved with any text editor.  It's probably wise to make a backup copy of
+your files before you modify them, although you can reinstall if the
+files become corrupted.
+
+Once you've modified the files, you can test the changes just by running
+LilyPond on some input file.  It's a good idea to create a file that
+demonstrates the feature you're trying to add.  This file will eventually
+become a regression test and will be part of the LilyPond distribution.
+
+@subsection Desired file formatting
+
+Files that are part of the LilyPond distribution have Unix-style line
+endings (LF), rather than DOS (CR+LF) or MacOS 9 and earlier (CR).  Make
+sure you use the necessary tools to ensure that Unix-style line endings are
+preserved in the patches you create.
+
+Tab characters should not be included in files for distribution.  All
+indentation should be done with spaces.  Most editors have settings to
+allow the setting of tab stops and ensuring that no tab characters are
+included in the file.
+
+Scheme files and LilyPond files should be written according to standard
+style guidelines.  Scheme file guidelines can be found at
+@uref{http://community.schemewiki.org/?scheme-style}.  Following these
+guidelines will make your code easier to read.  Both you and others that
+work on your code will be glad you followed these guidelines.
+
+For LilyPond files, you should follow the guidelines for LilyPond snippets
+in the documentation.  You can find these guidelines at
+@ref{Texinfo introduction and usage policy}.
+
+@node Finding functions
+@section Finding functions
+
+When making changes or fixing bugs in LilyPond, one of the initial
+challenges is finding out where in the code tree the functions to
+be modified live.  With nearly 3000 files in the source tree,
+trial-and-error searching is generally ineffective. This section
+describes a process for finding interesting code.
+
+@subsection Using the ROADMAP
+
+The file ROADMAP is located in the main directory of the lilypond source.
+ROADMAP lists all of the directories in the LilPond source tree, along
+with a brief description of the kind of files found in each directory.
+This can be a very helpful tool for deciding which directories to search
+when looking for a function.
+
+
+@subsection Using grep to search
+
+Having identified a likely subdirectory to search, the grep utility can
+be used to search for a function name.  The format of the grep command is
+
+@example 
+grep -i functionName subdirectory/*
+@end example
+
+This command will search all the contents of the directory subdirectory/
+and display every line in any of the files that contains
+functionName.  The @code{-i} option makes @command{grep} ignore
+case -- this can be very useful if you are not yet familiar with
+our capitalization conventions.
+
+The most likely directories to grep for function names are scm/ for
+scheme files, ly/ for lilypond input (*.ly) files, and lily/ for C++
+files.  
+
+
+@subsection Using git grep to search
+
+If you have used git to obtain the source, you have access to a
+powerful tool to search for functions.  The command:
+
+@example
+git grep functionName
+@end example
+
+will search through all of the files that are present in the git
+repository looking for functionName.  It also presents the results
+of the search using @code{less}, so the results are displayed one page
+at a time.
+
+@subsection Searching on the git repository at Savannah
+
+You can also use the equivalent of git grep on the Savannah server.
+
+@itemize
+
+@item
+Go to http://git.sv.gnu.org/gitweb/?p=lilypond.git
+
+@item
+In the pulldown box that says commit, select grep.
+
+@item
+Type functionName in the search box, and hit enter/return
+
+@end itemize
+
+This will initiate a search of the remote git repository.
+
+
+@node Code style
+@section Code style 
+@c email to wl@gnu.org when I get here.
+
+@menu
+@end menu
+
+@subsection Handling errors
+
+As a general rule, you should always try to continue computations,
+even if there is some kind of error.  When the program stops, it
+is often very hard for a user to pinpoint what part of the input
+causes an error.  Finding the culprit is much easier if there is
+some viewable output.
+
+So functions and methods do not return errorcodes, they never
+crash, but report a programming_error and try to carry on.
+
+@subsection Languages
+
+C++ and Python are preferred.  Python code should use PEP 8.
+
+@subsection Filenames
+
+Definitions of classes that are only accessed via pointers (*) or
+references (&) shall not be included as include files.
+
+@verbatim
+   filenames
+
+        ".hh"   Include files
+             ".cc"      Implementation files
+             ".icc"     Inline definition files
+             ".tcc"     non inline Template defs
+
+   in emacs:
+
+             (setq auto-mode-alist
+                   (append '(("\\.make$" . makefile-mode)
+                        ("\\.cc$" . c++-mode)
+                        ("\\.icc$" . c++-mode)
+                        ("\\.tcc$" . c++-mode)
+                        ("\\.hh$" . c++-mode)
+                        ("\\.pod$" . text-mode)
+                        )
+                      auto-mode-alist))
+@end verbatim
+
+The class Class_name is coded in @q{class-name.*}
+
+@subsection Indentation
+
+Standard GNU coding style is used. In emacs:
+
+@verbatim
+             (add-hook 'c++-mode-hook
+                  '(lambda() (c-set-style "gnu")
+                     ))
+@end verbatim
+
+If you like using font-lock, you can also add this to your
+@q{.emacs}:
+
+@verbatim
+             (setq font-lock-maximum-decoration t)
+             (setq c++-font-lock-keywords-3
+                   (append
+                    c++-font-lock-keywords-3
+                    '(("\\b\\(a-zA-Z_?+_\\)\\b" 1 font-lock-variable-name-face) ("\\b\\(A-Z?+a-z_?+\\)\\b" 1 font-lock-type-face))
+                    ))
+@end verbatim
+
+
+@subsection Classes and Types
+
+@verbatim
+This_is_a_class
+@end verbatim
+
+
+@subsection Members
+
+Member variable names end with an underscore:
+
+@verbatim
+Type Class::member_
+@end verbatim
+
+
+@subsection Macros
+
+Macro names should be written in uppercase completely.
+
+
+@subsection Broken code
+
+Do not write broken code.  This includes hardwired dependencies,
+hardwired constants, slow algorithms and obvious limitations.  If
+you can not avoid it, mark the place clearly, and add a comment
+explaining shortcomings of the code.
+
+We reject broken-in-advance on principle.
+
+@subsection Naming
+
+
+@subsection Messages
+
+Messages need to follow Localization.
+
+
+@subsection Localization
+
+This document provides some guidelines for programmers write user
+messages.  To help translations, user messages must follow
+uniform conventions.  Follow these rules when coding for LilyPond.
+Hopefully, this can be replaced by general GNU guidelines in the
+future.  Even better would be to have an English (en_BR, en_AM)
+guide helping programmers writing consistent messages for all GNU
+programs.
+
+Non-preferred messages are marked with `+'. By convention,
+ungrammatical examples are marked with `*'.  However, such ungrammatical
+examples may still be preferred.
+
+@itemize
+
+@item
+Every message to the user should be localized (and thus be marked
+for localization). This includes warning and error messages.
+
+@item
+Don't localize/gettextify:
+
+@itemize
+@item
+`programming_error ()'s
+
+@item
+`programming_warning ()'s
+
+@item
+debug strings
+
+@item
+output strings (PostScript, TeX, etc.)
+
+@end itemize
+
+@item
+Messages to be localised must be encapsulated in `_ (STRING)' or
+`_f (FORMAT, ...)'. E.g.:
+
+@example
+warning (_ ("need music in a score"));
+error (_f ("cannot open file: `%s'", file_name));
+@end example
+    
+In some rare cases you may need to call `gettext ()' by hand. This
+happens when you pre-define (a list of) string constants for later
+use. In that case, you'll probably also need to mark these string
+constants for translation, using `_i (STRING)'. The `_i' macro is
+a no-op, it only serves as a marker for `xgettext'.
+
+@example
+char const* messages[] = @{
+  _i ("enable debugging output"),
+  _i ("ignore lilypond version"),
+  0
+@};
+
+void
+foo (int i)
+@{
+  puts (gettext (messages i));
+@}
+@end example
+    
+See also `flower/getopt-long.cc' and `lily/main.cc'.
+
+@item
+Do not use leading or trailing whitespace in messages. If you need
+whitespace to be printed, prepend or append it to the translated
+message
+
+@example
+message ("Calculating line breaks..." + " ");
+@end example
+
+@item
+Error or warning messages displayed with a file name and line
+number never start with a capital, eg,
+
+@example
+foo.ly: 12: not a duration: 3
+@end example
+      
+Messages containing a final verb, or a gerund (`-ing'-form) always
+start with a capital. Other (simpler) messages start with a
+lowercase letter
+
+@example
+Processing foo.ly...
+`foo': not declared.
+Not declaring: `foo'.
+@end example
+    
+@item
+Avoid abbreviations or short forms, use `cannot' and `do not'
+rather than `can't' or `don't'
+To avoid having a number of different messages for the same
+situation, we'll use quoting like this `"message: `%s'"' for all
+strings. Numbers are not quoted:
+
+@example
+_f ("cannot open file: `%s'", name_str)
+_f ("cannot find character number: %d", i)
+@end example
+    
+@item
+Think about translation issues. In a lot of cases, it is better to
+translate a whole message. The english grammar mustn't be imposed
+on the translator. So, instead of
+
+@example
+stem at  + moment.str () +  does not fit in beam
+@end example
+    
+have
+
+@example
+_f ("stem at %s does not fit in beam", moment.str ())
+@end example
+    
+@item
+Split up multi-sentence messages, whenever possible. Instead of
+
+@example
+warning (_f ("out of tune!  Can't find: `%s'", "Key_engraver"));
+warning (_f ("cannot find font `%s', loading default", font_name));
+@end example
+    
+rather say:
+
+@example
+warning (_ ("out of tune:"));
+warning (_f ("cannot find: `%s', "Key_engraver"));
+warning (_f ("cannot find font: `%s', font_name));
+warning (_f ("Loading default font"));
+@end example
+    
+@item
+If you must have multiple-sentence messages, use full punctuation.
+Use two spaces after end of sentence punctuation. No punctuation
+(esp. period) is used at the end of simple messages.
+
+@example
+_f ("Non-matching braces in text `%s', adding braces", text)
+_ ("Debug output disabled.  Compiled with NPRINT.")
+_f ("Huh?  Not a Request: `%s'.  Ignoring.", request)
+@end example
+    
+@item
+Do not modularise too much; words frequently cannot be translated
+without context. It's probably safe to treat most occurences of
+words like stem, beam, crescendo as separately translatable words.
+
+@item
+When translating, it is preferable to put interesting information
+at the end of the message, rather than embedded in the middle.
+This especially applies to frequently used messages, even if this
+would mean sacrificing a bit of eloquency. This holds for original
+messages too, of course.
+
+@example
+en: cannot open: `foo.ly'
++   nl: kan `foo.ly' niet openen (1)
+kan niet openen: `foo.ly'*   (2)
+niet te openen: `foo.ly'*    (3)
+@end example
+
+    
+The first nl message, although grammatically and stylistically
+correct, is not friendly for parsing by humans (even if they speak
+dutch). I guess we'd prefer something like (2) or (3).
+
+@item
+Do not run make po/po-update with GNU gettext < 0.10.35
+
+@end itemize
+
+
+
+@node Debugging LilyPond
+@section Debugging LilyPond
+
+The most commonly used tool for debugging LilyPond is the GNU debugger
+gdb.  Use of gdb is described in this section.
+
+@subsection Debugging overview
+
+Using a debugger simplifies troubleshooting in at least two ways.
+
+First, breakpoints can be set to pause execution at any desired point.
+Then, when execution has paused, debugger commands can be issued to 
+explore the values of various variables or to execute functions.
+
+Second, the debugger allows the display of a stack trace, which shows
+the sequence in which functions are called and the arguments to the
+various function calls.
+
+
+@subsection Compiling with debugging information
+
+In order to use a debugger with LilyPond, it is necessary to compile
+LilyPond with debugging information.  This is accomplished by ...
+
+TODO -- get good description here, or perhaps add debugging compile
+to AU1.1 as it comes to CG and just use a reference here.
+
+TODO -- Test the following to make sure it is true.
+
+If you want to be able to set breakpoints in Scheme functions, it is
+necessary to compile guile with debugging information.  This is done
+by ...
+
+TODO -- get compiling description for guile here.
+
+@subsection Typical gdb usage
+
+@subsection Typical .gdbinit files
+
+The behavior of gdb can be readily customized through the use of
+@var{.gdbinit} files.  A @var{.gdbinit} file is a file named
+@var{.gdbinit} (notice the @qq{.} at the beginning of the file name)
+  that is placed in a user's home directory.
+
+The @var{.gdbinit} file below is from Han-Wen.  It sets breakpoints
+for all errors and defines functions for displaying scheme objects
+(ps), grobs (pgrob), and parsed music expressions (pmusic).
+
+@example
+file lily/out/lilypond 
+b scm_error 
+b programming_error 
+b Grob::programming_error 
+
+define ps 
+   print ly_display_scm($arg0) 
+  end 
+  define pgrob 
+     print ly_display_scm($arg0->self_scm_) 
+     print ly_display_scm($arg0->mutable_property_alist_) 
+     print ly_display_scm($arg0->immutable_property_alist_) 
+     print ly_display_scm($arg0->object_alist_) 
+  end 
+  define pmusic 
+     print ly_display_scm($arg0->self_scm_) 
+     print ly_display_scm($arg0->mutable_property_alist_) 
+     print ly_display_scm($arg0->immutable_property_alist_) 
+  end 
+@end example
+
+
+
+
+
+@node other stuff
+@section other stuff
+
+Copied from an email from Carl.  Maybe already included.
+
+- how to use a debugger with lilypond.
+
+- how to get lilypond running and pause at a guile prompt
+
+- brief overview of how lilypond processes a file.
diff --git a/Documentation/devel/release-work.itexi b/Documentation/devel/release-work.itexi
new file mode 100644 (file)
index 0000000..4ce6945
--- /dev/null
@@ -0,0 +1,162 @@
+@c -*- coding: us-ascii; mode: texinfo; -*-
+@node Release work
+@chapter Release work
+
+@menu
+* Development phases::          
+* Minor release checklist::     
+* Major release checklist::     
+@end menu
+
+
+@node Development phases
+@section Development phases
+
+There are 2.5 states of development for LilyPond.
+
+@itemize
+
+@item @strong{Stable phase}:
+Starting from the release of a new major version @code{2.x.0}, the
+following patches @strong{MAY NOT} be merged with master:
+
+@itemize
+@item Any change to the input syntax.  If a file compiled with a
+previous @code{2.x} version, then it must compile in the new
+version.
+
+@item New features with new syntax @emph{may be committed},
+although once committed that syntax cannot change during the
+remainder of the stable phase.
+
+@item Any change to the build dependencies (including programming
+libraries, documentation process programs, or python modules used
+in the buildscripts).  If a contributor could compile a previous
+lilypond @code{2.x}, then he must be able to compile the new
+version.
+
+@end itemize
+
+@item @strong{Development phase}:
+Any commits are fine.  Readers may be familiar with the term
+@qq{merge window} from following Linux kernel news.
+
+
+@item @strong{Release prep phase}:
+FIXME: I don't like that name.
+
+A new git branch @code{stable/2.x} is created, and a major release
+is made in two weeks.
+
+@itemize
+
+@item @code{stable/2.x branch}:
+Only translation updates and important bugfixes are allows.
+
+@item @code{master}:
+Normal @qq{stable phase} development occurs.
+
+@end itemize
+
+If we discover the need to change the syntax or build system, we
+will apply it and re-start the release prep phase.
+
+@end itemize
+
+This marks a radical change from previous practice in LilyPond.
+However, this setup is not intended to slow development -- as a
+rule of thumb, the next development phase will start within a
+month of somebody wanting to commit something which is not
+permitted during the stable phase.
+
+
+
+@node Minor release checklist
+@section Minor release checklist
+
+A @qq{minor release} means an update of @code{y} in @code{2.x.y}.
+
+email brief summary to info-lilypond
+
+
+
+@node Major release checklist
+@section Major release checklist
+
+A @qq{major release} means an update of @code{x} in @code{2.x.0}.
+
+Before release:
+
+* write release notes. note: stringent size requirements for
+ various websites, so be brief.
+
+* write preface section for manual.
+
+* submit pots for translation : send url of tarball to
+translation@@iro.umontreal.ca, mentioning lilypond-VERSION.pot
+
+* Check reg test
+
+* Check all 2ly scripts.
+
+* Run convert-ly on all files, bump parser minimum version.
+
+* Make FTP directories on lilypond.org
+
+* website:
+  - Make new table in download.html
+
+  - add to documentation list
+
+  - revise examples tour.html/howto.html
+
+  - add to front-page quick links
+
+  - change all links to the stable documentation
+
+  - doc auto redirects  to v2.LATEST-STABLE
+
+News:
+
+        comp.music.research
+        comp.os.linux.announce
+
+        comp.text.tex
+        rec.music.compose
+
+Mail:
+
+        info-lilypond@@gnu.org
+
+linux-audio-announce@@lists.linuxaudio.org
+linux-audio-user@@lists.linuxaudio.org
+linux-audio-dev@@lists.linuxaudio.org
+
+        tex-music@@icking-music-archive.org
+
+   --- non-existant?
+        abcusers@@blackmill.net
+
+        rosegarden-user@@lists.sourceforge.net
+        info-gnu@@gnu.org
+        noteedit-user@@berlios.de
+
+        gmane.comp.audio.fomus.devel
+        gmane.linux.audio.users
+        gmane.linux.audio.announce
+        gmane.comp.audio.rosegarden.devel
+
+Web:
+
+        lilypond.org
+        freshmeat.net
+        linuxfr.com
+        http://www.apple.com/downloads
+        harmony-central.com (news@@harmony-central.com)
+        versiontracker.com [auto]
+        hitsquad.com [auto]
+        http://www.svgx.org
+
+
+
+
diff --git a/Documentation/devel/website-work.itexi b/Documentation/devel/website-work.itexi
new file mode 100644 (file)
index 0000000..cb4e0aa
--- /dev/null
@@ -0,0 +1,22 @@
+@c -*- coding: us-ascii; mode: texinfo; -*-
+@node Website work
+@chapter Website work
+
+@menu
+* Introduction to website work::  
+* Translating the website::
+@end menu
+
+
+@node Introduction to website work
+@section Introduction to website work
+
+Short answer: don't do it yet.  We're completely revamping the
+website.
+
+
+@node Translating the website
+@section Translating the website
+
+
+
index 90e3f678e975d77fd8f8f875023d7e2452c96b31..ed20093b3ddfe79cb5d4897d76121490a9342486 100644 (file)
@@ -1,6 +1,6 @@
 ISOLANG = es
 depth = ../..
-SUBDIRS = user
+SUBDIRS = topdocs user
 STEPMAKE_TEMPLATES = documentation
 LOCALSTEPMAKE_TEMPLATES = doc-i18n-root
 
index d5721ba5f4ca4528f4883ca0276bf7bfa34c4265..d70eb337804f08e99ddecd73c9710451aae1db83 100644 (file)
@@ -1,6 +1,6 @@
 <html>
 <!--
-    Translation of GIT committish: 126a314c8e97b6fcd31dae8a1f099d6b0c4c0e2f
+    Translation of GIT committish: c7d6848e128f461a4cec093f7a71a34b2dc314eb
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
@@ -49,7 +49,7 @@
          <td class="right-column">
          <ul>
             <li>
-             <a class="title" href="topdocs/NEWS.html">Noticias</a><br>
+             <a class="title" href="topdocs/NEWS.es.html">Noticias</a><br>
               (cambios producidos desde el último<br>lanzamiento importante)</li>
            <li>
              <a class="title" href="../examples.html">Ejemplos</a><br>
@@ -93,7 +93,7 @@
           <td valign="baseline" class="left-column">
          <ul>
            <li>
-             <a class="title" href="devel.html">Recursos para desarrolladores</a><br>
+             <a class="title" href="devel/index.html">Recursos para desarrolladores</a><br>
               (documentos de interés para desarrolladores y colaboradores)</li>
          </ul>
          </td>
diff --git a/Documentation/es/topdocs/GNUmakefile b/Documentation/es/topdocs/GNUmakefile
new file mode 100644 (file)
index 0000000..ac75004
--- /dev/null
@@ -0,0 +1,8 @@
+depth = ../../..
+
+ISOLANG=es
+
+STEPMAKE_TEPLATES=documentation tex topdocs
+LOCALSTEPMAKE_TEMPLATES=lilypond ly doc-i18n-topdocs
+
+include $(depth)/make/stepmake.make
diff --git a/Documentation/es/topdocs/NEWS.tely b/Documentation/es/topdocs/NEWS.tely
new file mode 100644 (file)
index 0000000..7b00560
--- /dev/null
@@ -0,0 +1,641 @@
+\input texinfo @c -*- coding: utf-8; mode: texinfo; -*-
+@ignore
+    Translation of GIT committish: f2bae9bceb818cad5bacc86c15114156b2cd5cc9
+
+    When revising a translation, copy the HEAD committish of the
+    version that you are working on.  See TRANSLATION for details.
+@end ignore
+@setfilename NEWS.info
+@settitle NEWS
+
+@ifhtml
+@macro inputfileref{DIR,NAME}
+@uref{../../\DIR\/collated-files.html#\NAME\,@file{\DIR\/\NAME\}}@c
+@end macro
+@macro usermanref{NAME}
+@inforef{\NAME\,,../user/lilypond/lilypond}@c
+@end macro
+@end ifhtml
+
+@ifnothtml
+@macro inputfileref{DIR,NAME}
+@file{\DIR\/\NAME\}@c
+@end macro
+@macro usermanref{NAME}
+Véase el manual del usuario, \NAME\
+@end macro
+@end ifnothtml
+
+@macro textanchor{NAME}
+@html
+<a name="\NAME\"></a>
+@end html
+@end macro
+
+
+@documentencoding utf-8
+@documentlanguage es
+@c Translators: Francisco Vila
+
+@finalout
+
+@node Top
+@top New features in 2.12 since 2.10
+
+@ifhtml
+Este documento está disponible también en formato @uref{NEWS.es.pdf,PDF}. Forma parte de
+la @uref{../,Documentación de LilyPond}.
+@end ifhtml
+
+
+
+
+@itemize @bullet
+
+@ignore
+
+HINTS
+
+* only show verbatim input for syntax/input changes
+
+* try to be as brief possible in those cases
+
+* don't try to provide real-world examples, they often get too big,
+which scares away people.
+
+* Write complete sentences.
+
+* only show user-visible changes.
+
+@end ignore
+@item
+Los diagramas de posiciones ahora pueden tener cuerdas de grosor variable:
+@lilypond[quote]
+\include "predefined-guitar-fretboards.ly"
+<<
+  \new ChordNames {
+    \chordmode {
+      c1
+    }
+  }
+  \new FretBoards {
+    \override FretBoard #'fret-diagram-details
+      #'string-thickness-factor = #0.3
+    \chordmode {
+      c1
+    }       
+  }
+>>
+@end lilypond
+
+@item
+Se dispone de una nueva orientación para los diagramas de posiciones, opposing-landscape (apaisado en oposición):
+@lilypond[quote]
+\include "predefined-guitar-fretboards.ly"
+<<
+  \new ChordNames {
+    \chordmode {
+      c1
+    }
+  }
+  \new FretBoards {
+    \override FretBoard #'fret-diagram-details
+      #'orientation = #'opposing-landscape
+    \chordmode {
+      c1
+    }       
+  }
+>>
+@end lilypond
+
+@item
+Ahora se contemplan las garrapateas sueltas:
+@lilypond[quote]
+\relative c'' {
+  g128
+}
+@end lilypond
+
+@item
+Como extensión de la forma en que LilyPond contempla actualmente los
+microtonos, ahora hay alteraciones con flecha para la notación de las
+alteraciones microtonales.  Para usarlas, redefina la propiedad
+@code{glyph-name-alist} de @code{Accidental} como en el ejemplo
+siguiente que utiliza cuartos de tono para la composición tipográfica
+de alteraciones con flecha.  De forma alternativa, es posible definir
+nombres distintos para todas las notas con alteraciones con flecha
+(consulte @code{ly/makam.ly} para ver un ejemplo de código estándar).
+
+@lilypond[quote]
+microAccs = #'((0 . "accidentals.natural")
+               (-1/2 . "accidentals.flat")
+               (1/2 . "accidentals.sharp")
+
+               (1 . "accidentals.doublesharp")
+               (-1 . "accidentals.flatflat")
+
+               (3/4 . "accidentals.sharp.arrowup")
+               (1/4 . "accidentals.sharp.arrowdown")
+               (-1/4 . "accidentals.flat.arrowup")
+               (-3/4 . "accidentals.flat.arrowdown"))
+
+\relative c'' {
+  #(set-accidental-style 'modern)
+  \override Accidental #'glyph-name-alist = #microAccs
+  geseh geh aih aisih
+}
+@end lilypond
+
+@item
+Ahora están implementados los corchetes rectos (utilizados en
+partituras antiguas de p.ej. Bach, pero también de forma distinta en
+partituras modernas de p.ej. Stockhausen):
+@lilypond[quote]
+\relative c'' {
+  \override Stem #'flag = #modern-straight-flag
+  c,16 \acciaccatura {c'8} d4 d32
+  \bar":"
+  \override Stem #'flag = #old-straight-flag
+  c,16 \acciaccatura {c'8} d4 d32
+}
+@end lilypond
+
+@item
+Los bloques @code{\bookpart} se pueden usar para dividir un libro en
+varias partes, separadas por un salto de página, con el objeto de
+facilitar la división en páginas o usar distintos ajustes de
+@code{\paper} en partes distintas.
+
+@example
+\bookpart @{
+  \header @{
+    title = "Título del libro"
+    subtitle = "Primera parte"
+  @}
+  \score @{ @dots{} @}
+  @dots{}
+@}
+\bookpart @{
+  \header @{
+    subtitle = "Segunda parte"
+  @}
+  \score @{ @dots{} @}
+  @dots{}
+@}
+@end example
+
+@item
+Ahora se permiten contextos anidados del mismo tipo.
+Esto hace obsoletos @code{InnerStaffGroup} e @code{InnerChoirStaff}.
+@lilypond[quote,relative=1]
+\new StaffGroup <<
+  \new Staff { c1 }
+  \new StaffGroup <<
+    \new Staff { c1 }
+    \new Staff { c1 }
+  >>
+>>
+@end lilypond
+
+@item
+Se pueden mostrar contadores de repetición de tipo porcentaje a
+intervalos regulares usando la propiedad de contexto
+@code{repeatCountVisibility}.
+@lilypond[quote,relative=1]
+{
+  \set countPercentRepeats = ##t
+  \set repeatCountVisibility = #(every-nth-repeat-count-visible 2)
+  \repeat percent 6 { c4 d e f }
+}
+@end lilypond
+
+@item
+Además de la propiedad existente @code{showLastLength}, ahora se puede
+establecer también @code{showFirstLength}, componiendo sólo los
+primeros compases de una pieza.  Las dos propiedades se pueden
+establecer al mismo tiempo:
+@lilypond[quote]
+showFirstLength = R1*2
+showLastLength = R1*3
+\relative c' { c1 d e f g a b c }
+@end lilypond
+
+@item
+La extensión de archivo para el MIDI se puede fijar usando el valor
+predeterminado del programa en la línea de órdenes
+@code{midi-extension}.  Para Windows, la extensión predeterminada ha
+cambiado a @code{.mid}.
+
+@item
+Ahora están disponibles dos variaciones sobre la doble barra predeterminada de repetición.
+@lilypond[quote]
+{
+  \set Score.doubleRepeatType = #":|.:"
+  \repeat volta 2 {
+    c'1
+  }
+  \repeat volta 2 {
+    c'1
+  }
+  \bar ":|.|:"
+  c'1
+}
+@end lilypond
+
+@item
+Se han añadido cuatro reglas de alteraciones accidentales automáticas:
+@code{neo-modern}, @code{neo-modern-cautionary}, @code{dodecaphonic} y
+@code{teaching}.  El ejemplo siguiente ilustra la regla
+@code{neo-modern}.
+@lilypond[quote]
+notes = {
+  <<
+    \relative c' {
+      cis'8 fis, d'4 <a cis>8 f bis4 |
+      cis2. <c, fis>4 |
+    }
+    \\
+    \relative c' {
+      ais'2 cis, |
+      fis8 b a4 cis2 |
+    }
+  >>
+}
+
+\new Staff {
+  #(set-accidental-style 'neo-modern)
+  \notes
+}
+@end lilypond
+
+@item
+Ahora se pueden generar los corchetes con código de Scheme usando la
+propiedad @code{'flag} (corchete) del grob @code{Stem} (plica).  Las
+partituras existentes siguen funcionando sin ningún cambio.
+@lilypond[quote]
+testnotes = {
+  \autoBeamOff
+  c'8 d'16 c''8 d''16
+}
+
+#(define (inverted-flag stem-grob)
+  (let* ((dir (if (eqv? (ly:grob-property stem-grob 'direction) UP) "d" "u"))
+         (flag (retrieve-glyph-flag "" dir "" stem-grob))
+         (line-thickness (ly:staff-symbol-line-thickness stem-grob))
+         (stem-thickness (ly:grob-property stem-grob 'thickness))
+         (stem-width (* line-thickness stem-thickness))
+         (stroke-style (ly:grob-property stem-grob 'stroke-style))
+         (stencil (if (null? stroke-style) flag
+                         (add-stroke-glyph flag stem-grob dir stroke-style "")))
+                         (rotated-flag (ly:stencil-rotate-absolute stencil 180 0 0)))
+    (ly:stencil-translate rotated-flag (cons (- (/ stem-width 2))  0))))
+
+#(define-public (weight-flag stem-grob)
+  (let* ((log (- (ly:grob-property stem-grob 'duration-log) 2))
+         (is-up (eqv? (ly:grob-property stem-grob 'direction) UP))
+         (yext (if is-up (cons (* log -0.8) 0) (cons 0 (* log 0.8))))
+         (flag-stencil (make-filled-box-stencil '(-0.4 . 0.4) yext))
+         (stroke-style (ly:grob-property stem-grob 'stroke-style))
+         (stroke-stencil (if (equal? stroke-style "grace")
+             (make-line-stencil 0.2 -0.9 -0.4 0.9 -0.4)
+             empty-stencil)))
+    (ly:stencil-add flag-stencil stroke-stencil)))
+
+{
+  \time 3/8
+  \override Stem #'flag = #weight-flag
+  \testnotes
+
+  \override Stem #'flag = #inverted-flag
+  \testnotes
+}
+@end lilypond
+
+@item
+Se han añadido diagramas de pedal de arpa:
+
+@lilypond[quote]
+\markup { \harp-pedal #"^v-|vv-o^" }
+@end lilypond
+
+@item
+Ahora están disponibles diagramas de posiciones predefinidos,
+configurables por el usuario y transportables, en el contexto
+@code{FretBoards}:
+@lilypond[quote]
+\include "predefined-guitar-fretboards.ly"
+<<
+  \new ChordNames {
+    \chordmode {
+      c1
+      \transpose c e { c }
+    }
+  }
+  \new FretBoards {
+    \chordmode {
+      c1
+      \transpose c e { c }
+    }
+  }
+>>
+@end lilypond
+
+@item
+Se han hecho los siguientes cambios en la sintaxis, en orden
+cronológico. Además, las propiedades de los diagramas de posiciones se
+han movido a @code{fret-diagram-details}, y se usa la propiedad
+@code{#'style} para seleccionar líneas continuas o discontinuas en vez
+de @code{#'dash-fraction}.
+
+@example
+'break-align-symbol -> 'break-align-symbols
+scripts.caesura -> scripts.caesura.curved
+\setEasyHeads -> \easyHeadsOn
+\easyHeadsOff (instrucción nueva)
+\fatText -> \textLengthOn
+\emptyText -> \textLengthOff
+\set hairpinToBarline -> \override Hairpin #'to-barline
+\compressMusic -> \scaleDurations
+\octave -> \octaveCheck
+\arpeggioUp -> \arpeggioArrowUp
+\arpeggioDown -> \arpeggioArrowDown
+\arpeggioNeutral -> \arpeggioNormal
+\setTextCresc -> \crescTextCresc
+\setTextDecresc -> \dimTextDecresc
+\setTextDecr -> \dimTextDecr
+\setTextDim -> \dimTextDim
+\setHairpinCresc -> \crescHairpin
+\setHairpinDecresc -> \dimHairpin
+\sustainUp -> \sustainOff
+\sustainDown -> \sustainOn
+\sostenutoDown -> \sostenutoOn
+\sostenutoUp -> \sostenutoOff
+'infinite-spacing-height -> 'extra-spacing-height
+#(set-octavation oct) -> \ottava #oct
+\put-adjacent marcado eje dirección marcad -> \put-adjacent eje dirección marcado marcado
+\pointAndClickOn (instrucción nueva)
+\pointAndClickOff (instrucción nueva)
+\center-align -> \center-column
+\hcenter -> \center-align
+printallheaders -> print-all-headers
+\bigger -> \larger (instrucción existente)
+systemSeparatorMarkup -> system-separator-markup
+@end example
+
+@noindent
+Además se han renombrado ciertos archivos del directorio @code{ly/};
+ahora los nombres de archivo *-init.ly sólo se usan para archivos que
+se incluyen automáticamente, mientras que los archivos como
+@code{makam-init.ly} o @code{gregorian-init.ly} se han renombrado como
+@code{makam.ly} o @code{gregorian.ly}.
+
+@item
+Se han suprimido los backends ``tex'' y ``texstr''.  Ahora se accede a
+las tipografías a través de la biblioteca fontconfig; para presentar
+las cadenas de texto se usa la biblioteca Pango.
+
+@item
+Ahora las indicaciones metronómicas también pueden contener una
+dscripción textual.  La duración y número (si se indican) se muestran
+entre paréntesis después del texto.
+
+@lilypond[quote]
+{
+  \tempo "Fast"
+  c'4 c' c' c'
+  c'4 c' c' c'
+  \tempo "Andante" 4 = 120
+  c'4 c' c' c'
+  c'4 c' c' c'
+  \tempo 4 = 100
+  c'4 c' c' c'
+  c'4 c' c' c'
+  \tempo "" 4 = 30
+  c'4 c' c' c'
+  c'4 c' c' c'
+}
+@end lilypond
+
+@item
+En el bajo cifrado podemos ahora usar también una barra invertida
+tachando una cifra para indicar una sexta aumentada.
+
+@lilypond[quote]
+\new FiguredBass \figuremode { < 6\\ 5\\ > < 6/ > }
+@end lilypond
+
+@item
+Los arpegios pueden usar ahora corchetes de estilo ``paréntesis'':
+
+@lilypond[quote,relative=1]
+\override Arpeggio #'stencil = #ly:arpeggio::brew-chord-slur
+
+% Note: does not work for cross-staff arpeggios.
+\override Arpeggio #'X-extent = #ly:grob::stencil-width
+<c g' c>2\arpeggio ~ c
+@end lilypond
+
+@item
+Las partituras de un solo sistema reciben ahora un especiado natural
+en lugar de estirarse hasta llenar el ancho del papel.  Se puede
+cambiar estableciendo @code{ragged-right = ##f}.
+
+@item
+Ahora es posible encerrar texto en rectángulos con esquinas
+redondeadas, usando la instrucción de marcado @code{\rounded-box}.
+
+@item
+@command{lilypond-book} puede ejecutar cualquier porgrama en lugar de
+@command{latex} para determinar la anchura de la línea, gracias a la
+opción de la línea de órdenes @code{--latex-program}.
+
+@item
+Ahora se puede subrayar el texto con la instrucción de marcado
+@code{\underline}.
+
+@item
+Es posible ahora especificar, utilizando la variable @code{page-count}
+en el bloque del papel, el número de páginas que usar.
+
+@item
+Se dedica una función nueva, @code{ly:minimal-breaking}, a los libros
+con muchas páginas o con mucho texto.
+
+@item
+Se puede incluir un índice general usando @code{\markuplines
+\table-of-contents}.  Se añaden elementos a este índice usando la
+instrucción @code{\tocItem}.
+
+@item
+Los textos que abarcan varias páginas se introducen usando la palabra
+clave @code{\markuplines}.  Se pueden usar las instrucciones de lista
+de marcado incorporadas, como @code{\justified-lines} o
+@code{\wordwrap-lines}, y las nuevas que se crean usando el macro de
+Scheme @code{define-markup-list-command}.
+
+@item
+Se pueden marcar puntos concretos de un libro con la instrucción
+@code{\label}.  Luego nos podemos referir a la página en que estos
+puntos se han colocado, usando la instrucción de marcado
+@code{\page-ref}.
+
+@item
+Las instrucciones de salto y paso de página (@code{\pageBreak},
+@code{\noPageBreak}, etc.) se pueden usar en el nivel superior,
+intercaladas entre las partituras y los elementos de marcado del
+superior.
+
+@item
+Han cambiado las siguientes opciones a una sub-opción @code{-d}:
+@code{--backend}, @code{--safe}, @code{--preview} y @code{--no-pages}
+(que se ha convertido en @code{-dno-print-pages}).  La opción
+@code{-b} ya no existe.
+
+@item
+Unos procedimientos de prueba mejorados ahora captan los cambios en el
+desempeño de CPU y memoria, disposición de página, resultado MIDI y
+advertencias.  Esto ayuda a reducir el número de errores de regresión
+durante el desarrollo, dando como resultado lanzamientos más estables.
+
+Consulte @uref{INSTALL.html#Testing-LilyPond} para ver más
+información.
+
+@item
+Las propiedades anidadas como @code{'details} en el objeto
+@code{Slur}, se pueden también revertir.  La sintaxis de esto es
+
+@example
+\revert Slur #'(details closeness-factor)
+@end example
+
+@item
+Todos los objetos de extensión de líne son ahora más flexibles en la
+configuración de los puntos extremos.  Entre aquellos están el
+glissando, las líneas de seguimiento de voz, los crescendos de texto y
+otros objetos extensores de texto.  La sintaxis antigua para fijar el
+texto de los objetos de extensión ya no es válida.
+
+@lilypond[quote]
+\relative c'' {
+  \override Glissando #'(bound-details right text) = \markup { \center-align \bold down }
+  \override Glissando #'(bound-details right Y) = #-4
+  \override Glissando #'(bound-details right padding) = #0.0
+  \override Glissando #'(bound-details left arrow) = ##t
+  \override Glissando #'(bound-details left padding) = #3.0
+  \override Glissando #'style = #'trill
+  \override Glissando #'springs-and-rods = #ly:spanner::set-spacing-rods
+  \override Glissando #'minimum-length = #12
+
+  c1 \glissando c'
+}
+@end lilypond
+
+Esta funcionalidad fue patrocinada por Trevor Bača.
+
+@item
+La variable de entorno @code{LILYPONDPREFIX} se ha renombrado como
+@code{LILYPOND_DATADIR}.
+
+@item
+Las típicas notas o silencios finales que ocupan un compás completo
+ahora vienen precedidas de algo más de espacio.
+@lilypond[quote,relative=1]
+\time 4/4
+s1
+c2. c4
+\time 3/4
+c2.
+@end lilypond
+
+@item
+Todas las @code{\score}s de un fragmento de lilypond-book se insertan
+ahora dentro del documento.  Asimismo, los marcados de nivel superior
+no dan como resultado una página completa por sí solos.
+
+@item
+Las alteraciones como el sostenido y el bemol pueden ahora ser
+fracciones arbitrarias.  Esto permite ciertas formas de música
+microtonal.  Por ejemplo, la música makam turca usa alteraciones de
+1/9 de tono.
+
+@lilypondfile[quote]{makam-example.ly}
+
+@item
+Se puede establecer la dirección de las ligaduras de unión con
+@code{^~} y @code{_~}.
+
+@item
+Las tablaturas contemplan ahora la posibilidad de armónicos y
+deslizamientos:
+
+@lilypond[quote,relative=1]
+\new TabVoice {
+  <c g'\harmonic>4 d\2\glissando e2\2
+}
+@end lilypond
+
+Esta funcionalidad fue patrocinada por Mike Amundsen.
+
+@item
+El espaciado horizontal ahora sigue el contorno de los objetos de
+manera más precisa.  Esto permite un espaciado horizontal más
+apretado.
+
+@lilypond[quote]
+{
+  \stemUp
+  c''4... ceses'! s16
+}
+@end lilypond
+
+@item
+Los objetos que corresponden a fuera del pentagrama ahora se
+posicionan automáticamente para evitar las colisiones.
+
+@lilypond[quote,relative=1]
+c''4
+\once \override TextScript #'self-alignment-X = #CENTER
+a,4^"this doesn't collide with the c"
+b4^"this goes above the previous markup"
+a8_"this goes below the dynamic"
+a8\f
+@end lilypond
+
+@item
+Los pentagramas se disponen verticalmente utilizando un algoritmo de
+línea de horizonte.  Esto ayuda a evitar un espaciado vertical
+disparejo.
+
+@lilypond[quote,ragged-right]
+
+%% todo: fix 'landscape PDF.
+#(set-default-paper-size "a6")
+\header {
+  tagline = ##f
+}
+
+\book {
+  \score {
+    {
+      a,,1
+      a'4 b' c'' d'' \break
+      \repeat unfold 2 { a'4 b' c'' d''}
+      b''''1
+    }
+  }
+}
+@end lilypond
+
+@end itemize
+
+
+
+@ifhtml
+Para ver noticias más antiguas, diríjase a
+@uref{http://lilypond.org/doc/v2.10/Documentation/topdocs/NEWS.html},
+o @uref{../,vuelva} al índica de la documentación.
+
+
+@end ifhtml
+
+@bye
index 7b9707fc46c11b95cf873c48bdef40052ef35989..9c0fa64d4127b11e67c0b9c51116eba7e289c7bc 100644 (file)
@@ -1,4 +1,4 @@
- <p><i>Actualizado en Mon Oct 27 16:09:51 UTC 2008
+ <p><i>Actualizado en Sat Feb 28 05:50:27 UTC 2009
 </i></p>
 <html>
 <!-- This page is automatically generated by translation-status.py from
@@ -45,6 +45,25 @@ translations.template.html.in; DO NOT EDIT !-->
   <a href="http://es.groups.yahoo.com/group/lilypond-es/">lilypond-es</a>.
 </p>
 
+<table align="center" border="2">
+ <tr align="center">
+  <th>New features in 2.12 since 2.10</th>  <th>Traductores</th>
+  <th>Revisores</th>
+  <th>Traducido</th>
+  <th>Actualizado</th>
+  <th>Más inf.</th>
+ </tr>
+ <tr align="left">
+  <td>Títulos de sección<br>(1181)</td>
+  <td>Francisco Vila</td>
+  <td></td>
+  <td><span style="background-color: #1fff1f">sí</span></td>
+  <td><span style="background-color: #1fff1f">sí</span></td>
+  <td>pre-GDP</td>
+ </tr>
+</table>
+<p></p>
+
 <table align="center" border="2">
  <tr align="center">
   <th>GNU LilyPond: Manual de aprendizaje</th>  <th>Traductores</th>
@@ -54,7 +73,7 @@ translations.template.html.in; DO NOT EDIT !-->
   <th>Más inf.</th>
  </tr>
  <tr align="left">
-  <td>Títulos de sección<br>(415)</td>
+  <td>Títulos de sección<br>(429)</td>
   <td>Francisco Vila</td>
   <td></td>
   <td><span style="background-color: #1fff1f">sí</span></td>
@@ -94,7 +113,7 @@ translations.template.html.in; DO NOT EDIT !-->
   <td>pre-GDP</td>
  </tr>
  <tr align="left">
-  <td>4 Trucar la salida<br>(12705)</td>
+  <td>4 Trucar la salida<br>(14775)</td>
   <td>Francisco Vila</td>
   <td></td>
   <td><span style="background-color: #1fff1f">sí</span></td>
@@ -102,7 +121,7 @@ translations.template.html.in; DO NOT EDIT !-->
   <td>pre-GDP</td>
  </tr>
  <tr align="left">
-  <td>5 Trabajar en proyectos de LilyPond<br>(3007)</td>
+  <td>5 Trabajar en proyectos de LilyPond<br>(3144)</td>
   <td>Francisco Vila</td>
   <td></td>
   <td><span style="background-color: #1fff1f">sí</span></td>
@@ -110,7 +129,7 @@ translations.template.html.in; DO NOT EDIT !-->
   <td>pre-GDP</td>
  </tr>
  <tr align="left">
-  <td>A Plantillas<br>(483)</td>
+  <td>A Plantillas<br>(498)</td>
   <td>Francisco Vila</td>
   <td></td>
   <td><span style="background-color: #1fff1f">sí</span></td>
@@ -137,7 +156,7 @@ translations.template.html.in; DO NOT EDIT !-->
   <th>Más inf.</th>
  </tr>
  <tr align="left">
-  <td>Títulos de sección<br>(393)</td>
+  <td>Títulos de sección<br>(407)</td>
   <td>Francisco Vila</td>
   <td></td>
   <td><span style="background-color: #1fff1f">sí</span></td>
@@ -145,7 +164,7 @@ translations.template.html.in; DO NOT EDIT !-->
   <td>pre-GDP</td>
  </tr>
  <tr align="left">
-  <td>1 Instalación<br>(1867)</td>
+  <td>1 Instalación<br>(1901)</td>
   <td>Francisco Vila</td>
   <td></td>
   <td><span style="background-color: #dfef77">parcialmente (11 %)</span></td>
@@ -161,7 +180,7 @@ translations.template.html.in; DO NOT EDIT !-->
   <td>pre-GDP</td>
  </tr>
  <tr align="left">
-  <td>3 Ejecutar LilyPond<br>(2896)</td>
+  <td>3 Ejecutar LilyPond<br>(2827)</td>
   <td>Francisco Vila</td>
   <td></td>
   <td><span style="background-color: #1fff1f">sí</span></td>
@@ -169,7 +188,7 @@ translations.template.html.in; DO NOT EDIT !-->
   <td>pre-GDP</td>
  </tr>
  <tr align="left">
-  <td>4 @command{lilypond-book}: integrar texto y música<br>(3194)</td>
+  <td>4 @command{lilypond-book}: integrar texto y música<br>(3248)</td>
   <td>Francisco Vila</td>
   <td></td>
   <td><span style="background-color: #1fff1f">sí</span></td>
@@ -196,7 +215,7 @@ translations.template.html.in; DO NOT EDIT !-->
   <th>Más inf.</th>
  </tr>
  <tr align="left">
-  <td>Títulos de sección<br>(680)</td>
+  <td>Títulos de sección<br>(695)</td>
   <td>Francisco Vila</td>
   <td></td>
   <td><span style="background-color: #1fff1f">sí</span></td>
@@ -212,7 +231,7 @@ translations.template.html.in; DO NOT EDIT !-->
   <td>pre-GDP</td>
  </tr>
  <tr align="left">
-  <td>1.1 Alturas<br>(3147)</td>
+  <td>1.1 Alturas<br>(3123)</td>
   <td>Francisco Vila</td>
   <td></td>
   <td><span style="background-color: #1fff1f">sí</span></td>
@@ -220,7 +239,7 @@ translations.template.html.in; DO NOT EDIT !-->
   <td>pre-GDP</td>
  </tr>
  <tr align="left">
-  <td>1.2 Duraciones<br>(6527)</td>
+  <td>1.2 Duraciones<br>(5215)</td>
   <td>Francisco Vila</td>
   <td></td>
   <td><span style="background-color: #1fff1f">sí</span></td>
@@ -228,7 +247,7 @@ translations.template.html.in; DO NOT EDIT !-->
   <td>pre-GDP</td>
  </tr>
  <tr align="left">
-  <td>1.3 Expresiones<br>(1110)</td>
+  <td>1.3 Expresiones<br>(1146)</td>
   <td>Francisco Vila</td>
   <td></td>
   <td><span style="background-color: #1fff1f">sí</span></td>
@@ -236,7 +255,7 @@ translations.template.html.in; DO NOT EDIT !-->
   <td>pre-GDP</td>
  </tr>
  <tr align="left">
-  <td>1.4 Repeticiones<br>(556)</td>
+  <td>1.4 Repeticiones<br>(555)</td>
   <td>Francisco Vila</td>
   <td></td>
   <td><span style="background-color: #1fff1f">sí</span></td>
@@ -244,7 +263,7 @@ translations.template.html.in; DO NOT EDIT !-->
   <td>pre-GDP</td>
  </tr>
  <tr align="left">
-  <td>1.5 Notas simultáneas<br>(1452)</td>
+  <td>1.5 Notas simultáneas<br>(1456)</td>
   <td>Francisco Vila</td>
   <td></td>
   <td><span style="background-color: #1fff1f">sí</span></td>
@@ -252,7 +271,7 @@ translations.template.html.in; DO NOT EDIT !-->
   <td>post-GDP</td>
  </tr>
  <tr align="left">
-  <td>1.6 Notación de los pentagramas<br>(1603)</td>
+  <td>1.6 Notación de los pentagramas<br>(1701)</td>
   <td>Francisco Vila</td>
   <td></td>
   <td><span style="background-color: #1fff1f">sí</span></td>
@@ -260,7 +279,7 @@ translations.template.html.in; DO NOT EDIT !-->
   <td>pre-GDP</td>
  </tr>
  <tr align="left">
-  <td>1.7 Anotaciones editoriales<br>(902)</td>
+  <td>1.7 Anotaciones editoriales<br>(905)</td>
   <td>Francisco Vila</td>
   <td></td>
   <td><span style="background-color: #1fff1f">sí</span></td>
@@ -268,7 +287,7 @@ translations.template.html.in; DO NOT EDIT !-->
   <td>pre-GDP</td>
  </tr>
  <tr align="left">
-  <td>1.8 Texto<br>(2410)</td>
+  <td>1.8 Texto<br>(2376)</td>
   <td>Francisco Vila</td>
   <td></td>
   <td><span style="background-color: #1fff1f">sí</span></td>
@@ -284,7 +303,7 @@ translations.template.html.in; DO NOT EDIT !-->
   <td>pre-GDP</td>
  </tr>
  <tr align="left">
-  <td>2.1 Música vocal<br>(2679)</td>
+  <td>2.1 Música vocal<br>(2725)</td>
   <td>Francisco Vila</td>
   <td></td>
   <td><span style="background-color: #1fff1f">sí</span></td>
@@ -292,7 +311,7 @@ translations.template.html.in; DO NOT EDIT !-->
   <td>pre-GDP</td>
  </tr>
  <tr align="left">
-  <td>2.2 Teclados y otros instrumentos de varios pentagramas<br>(679)</td>
+  <td>2.2 Teclados y otros instrumentos de varios pentagramas<br>(747)</td>
   <td>Francisco Vila</td>
   <td></td>
   <td><span style="background-color: #1fff1f">sí</span></td>
@@ -300,7 +319,7 @@ translations.template.html.in; DO NOT EDIT !-->
   <td>pre-GDP</td>
  </tr>
  <tr align="left">
-  <td>2.3 Instrumentos de cuerda sin trastes<br>(234)</td>
+  <td>2.3 Instrumentos de cuerda sin trastes<br>(235)</td>
   <td>Francisco Vila</td>
   <td></td>
   <td><span style="background-color: #1fff1f">sí</span></td>
@@ -308,7 +327,7 @@ translations.template.html.in; DO NOT EDIT !-->
   <td>pre-GDP</td>
  </tr>
  <tr align="left">
-  <td>2.4 Instrumentos de cuerda con trastes<br>(1748)</td>
+  <td>2.4 Instrumentos de cuerda con trastes<br>(1850)</td>
   <td>Francisco Vila</td>
   <td></td>
   <td><span style="background-color: #1fff1f">sí</span></td>
@@ -332,7 +351,7 @@ translations.template.html.in; DO NOT EDIT !-->
   <td>pre-GDP</td>
  </tr>
  <tr align="left">
-  <td>2.7 Notación de acordes<br>(1326)</td>
+  <td>2.7 Notación de acordes<br>(1464)</td>
   <td>Francisco Vila</td>
   <td></td>
   <td><span style="background-color: #1fff1f">sí</span></td>
@@ -340,7 +359,7 @@ translations.template.html.in; DO NOT EDIT !-->
   <td>pre-GDP</td>
  </tr>
  <tr align="left">
-  <td>2.8 Notación antigua<br>(4240)</td>
+  <td>2.8 Notación antigua<br>(4487)</td>
   <td>Francisco Vila</td>
   <td></td>
   <td><span style="background-color: #1fff1f">sí</span></td>
@@ -356,7 +375,7 @@ translations.template.html.in; DO NOT EDIT !-->
   <td>pre-GDP</td>
  </tr>
  <tr align="left">
-  <td>3 Entrada y salida generales<br>(5689)</td>
+  <td>3 Entrada y salida generales<br>(5873)</td>
   <td>Francisco Vila</td>
   <td></td>
   <td><span style="background-color: #1fff1f">sí</span></td>
@@ -364,7 +383,7 @@ translations.template.html.in; DO NOT EDIT !-->
   <td>pre-GDP</td>
  </tr>
  <tr align="left">
-  <td>4 Problemas de espaciado<br>(8297)</td>
+  <td>4 Problemas de espaciado<br>(8569)</td>
   <td>Francisco Vila</td>
   <td></td>
   <td><span style="background-color: #1fff1f">sí</span></td>
@@ -372,7 +391,7 @@ translations.template.html.in; DO NOT EDIT !-->
   <td>pre-GDP</td>
  </tr>
  <tr align="left">
-  <td>5 Cambiar los valores por omisión<br>(11307)</td>
+  <td>5 Cambiar los valores por omisión<br>(11747)</td>
   <td>Francisco Vila</td>
   <td></td>
   <td><span style="background-color: #1fff1f">sí</span></td>
@@ -396,7 +415,7 @@ translations.template.html.in; DO NOT EDIT !-->
   <td>pre-GDP</td>
  </tr>
  <tr align="left">
-  <td>B Tablas del manual sobre notación<br>(1155)</td>
+  <td>B Tablas del manual sobre notación<br>(1190)</td>
   <td>Francisco Vila</td>
   <td></td>
   <td><span style="background-color: #1fff1f">sí</span></td>
index 548217e511d1034c022d90d54a51e88190749184..4a3d585310f203d490feb738352b4d5fe0551b26 100644 (file)
@@ -1,5 +1,4 @@
 ISOLANG = es
 depth = ../../..
 LOCALSTEPMAKE_TEMPLATES = lilypond ly doc-i18n-user
-BIG_PAGE_MANUALS = lilypond-learning lilypond lilypond-program
 include $(depth)/make/stepmake.make
index 37ccf26bc39d85a850b5458c4af99982a60f4bd0..33db9b0b314e6489df19d5f947b028a8bdb25aef 100644 (file)
@@ -1,13 +1,13 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 @c This file is part of lilypond.tely
 @ignore
-    Translation of GIT committish: 6c367cb1ca6f8c7c0eef6cf0d9405df713495ab5
+    Translation of GIT committish: 41ef91786a08102d9b9a839f6a2f40cec263d723
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @node Ancient notation
 @section Ancient notation
@@ -39,7 +39,7 @@ gregoriana.
 Muchos objetos gráficos, como la cabeza y el corchete de las figuras,
 las alteraciones, la indicación de compás y los silencios ofrecen una
 propiedad @code{style} (estilo), que se puede cambiar para emular
-varios estilos diferentes de notación antigua. Véase
+varios estilos diferentes de notación antigua.  Véase
 
 @itemize
 @item @ref{Mensural note heads},
@@ -181,13 +181,13 @@ Véanse uno de los contextos predefinidos @code{VaticanaVoice},
 Una ligadura es un símbolo gráfico que representa al menos dos notas
 distintas.  Las ligaduras aparecieron originalmente en los manuscritos
 de la notación del canto gregoriano para denotar secuencias de notas
-ascendentes o descendentes en la misma sílaba. Se usan también en
+ascendentes o descendentes en la misma sílaba.  Se usan también en
 notación mensural.
 
-Las ligaduras se escriben encerrándolas dentro de un par @code{\[} y
-@code{\]}.  Ciertos estilos de ligadura podrían necesitar una sintaxis
-de entrada adicional específica para este tipo de ligadura en
-particular.  De forma predeterminada, el grabador
+Las ligaduras se escriben @emph{encerrándolas} dentro de un par
+@code{\[} y @code{\]}.  Ciertos estilos de ligadura podrían necesitar
+una sintaxis de entrada adicional específica para este tipo de
+ligadura en particular.  De forma predeterminada, el grabador
 @rinternals{LigatureBracket} se limita a colocar un corchete recto
 sobre la ligadura:
 
@@ -209,8 +209,10 @@ especializados en ligaduras del contexto @rinternals{Voice}, como se
 explica en @ref{White mensural ligatures} y @ref{Gregorian square
 neume ligatures}.
 
+
 @seealso
 
+
 @knownissues
 
 Las ligaduras necesitan un espaciado especial que aún no se ha
@@ -296,8 +298,8 @@ fragmento:
 }
 @end lilypond
 
-@seealso
 
+@seealso
 Referencia de funcionamiento interno:
 @rinternals{Custos}.
 
@@ -360,8 +362,10 @@ escribir el canto, como lo demuestra el siguiente fragmento:
 }
 @end lilypond
 
+
 @seealso
 
+
 @node Mensural clefs
 @unnumberedsubsubsec Mensural clefs
 
@@ -471,11 +475,12 @@ clave de Sol en el estilo de Petrucci
 @end lilypond
 @end multitable
 
-@seealso
 
+@seealso
 Referencia de la notación:
 @ref{Clef}.
 
+
 @knownissues
 
 La clave de Sol mensural está asignada a la clave de Sol de Petrucci.
@@ -544,7 +549,7 @@ Utilice la propiedad @code{style} del elemento gráfico
 @rinternals{TimeSignature} para seleccionar las indicaciones de compás
 de la música antigua.  Los estilos contemplados son @code{neomensural}
 y @code{mensural}.  La tabla anterior utiliza el estilo
-@code{neomensural}. Los ejemplos siguientes muestran las diferencias
+@code{neomensural}.  Los ejemplos siguientes muestran las diferencias
 que existen entre los estilos:
 
 @lilypond[ragged-right,fragment,relative=1,quote]
@@ -571,8 +576,8 @@ que existen entre los estilos:
 }
 @end lilypond
 
-@seealso
 
+@seealso
 Referencia de la notación:
 @ref{Time signature}
 ofrece una introducción general al uso de las indicaciones de compás.
@@ -638,8 +643,8 @@ a'\maxima a'\longa a'\breve a'1 a'2 a'4 a'8 a'16 a'
 
 @end lilypond
 
-@seealso
 
+@seealso
 @ref{Note head styles} ofrece una visión de conjunto sobre la
 totalidad de los estilos de cabeza disponibles.
 
@@ -670,8 +675,10 @@ No existe un estilo particular de corchete para la notación neo-mensural.
 
 No existen corchetes en la notación del canto gregoriano.
 
+
 @seealso
 
+
 @knownissues
 
 La unión de los corchetes antiguos a las plicas está ligeramente
@@ -716,14 +723,11 @@ No existen silencios de fusa y semifusa específicos para los estilos
 mensural ni neo-mensural.  En su lugar se tomarán los silencios del
 estilo predeterminado.
 
-Consulte @rlsr{Pitches,rests} para ver un cuadro de todos los
+Consulte @rlsr{Ancient notation} para ver un cuadro de todos los
 silencios.
 
-No hay silencios en la notación del canto gregoriano; en su lugar, se
-utilizan @ref{Divisiones}.
 
 @seealso
-
 Referencia de la notación:
 @ref{Rests}
 ofrece una introducción general al uso de los silencios.
@@ -773,8 +777,8 @@ elementos gráficos @rinternals{Accidental} y
 @code{\override Staff.Accidental #'glyph-name-alist =
 #alteration-mensural-glyph-name-alist}
 
-@seealso
 
+@seealso
 Referencia de la notación:
 @ref{Pitches},
 @ref{Accidentals} y
@@ -786,6 +790,7 @@ ofrece una introducción general al uso de las armaduras de tonalidad.
 Referencia de funcionamiento interno:
 @rinternals{KeySignature}.
 
+
 @cindex alteraciones accidentales
 
 
@@ -794,8 +799,8 @@ Referencia de funcionamiento interno:
 
 En la música europea de hasta aprox. 1600, se esperaba de los
 cantantes que alterasen cromáticamente ciertas notas según su propia
-iniciativa y de acuerdo a ciertas reglas. Esto recibe el nombre de
-@notation{musica ficta}. En las transcripciones modernas, estas
+iniciativa y de acuerdo a ciertas reglas.  Esto recibe el nombre de
+@notation{musica ficta}.  En las transcripciones modernas, estas
 alteraciones accidentales se imprimen normalmente encima de la nota.
 
 @cindex alteraciones de la musica ficta
@@ -828,8 +833,8 @@ ficta = { \once \set suggestAccidentals = ##t }
 }
 @end lilypond
 
-@seealso
 
+@seealso
 Referencia de funcionamiento interno:
 el grabador @rinternals{Accidental_engraver}
 y el objeto
@@ -913,11 +918,13 @@ transcribe de la siguiente manera:
 }
 @end lilypond
 
+
 @seealso
 
+
 @knownissues
 
-El espaciado horizontal es pobre.
+El espaciado horizontal de las ligaduras es pobre.
 
 
 @node Typesetting Gregorian chant
@@ -936,10 +943,10 @@ El espaciado horizontal es pobre.
 Al componer tipográficamente una pieza en notación de canto
 gregoriano, el grabador @rinternals{Vaticana_ligature_engraver}
 selecciona automáticamente la cabeza adecuada de las figuras, de
-manera que no es neceario establecer explícitamente el estilo de las
+manera que no es necesario establecer explícitamente el estilo de las
 cabezas.  A pesar de ello se puede establecer el estilo de las
 cabezas, p.ej.: a @code{vaticana_punctum} para producir neumas de
-punctum. De forma similar, el grabador
+punctum.  De forma similar, el grabador
 @rinternals{Mensural_ligature_engraver} construye ligaduras mensurales
 automáticamente.  Consulte @ref{Ligatures} para ver cómo funcionan los
 grabadores de ligaduras.
@@ -959,7 +966,7 @@ propiedades relevantes de los contextos y de los objetos gráficos, de
 forma que pueda inmediatamente comenzar a escribir el canto en sí,
 como lo demuestra el siguiente fragmento:
 
-@lilypond[quote,ragged-right,packed,verbatim]
+@lilypond[quote,ragged-right,verbatim]
 \include "gregorian.ly"
 \score {
   <<
@@ -979,6 +986,7 @@ como lo demuestra el siguiente fragmento:
 }
 @end lilypond
 
+
 @seealso
 
 
@@ -1114,8 +1122,8 @@ Clave combinada de Do y Fa, estilo hufnagel
 @end lilypond
 @end multitable
 
-@seealso
 
+@seealso
 Referencia de la notación:
 @ref{Clef}.
 
@@ -1175,8 +1183,8 @@ respectivamente; p.ej.:
 @code{\override Staff.Accidental #'glyph-name-alist =
 #alteration-mensural-glyph-name-alist}
 
-@seealso
 
+@seealso
 Referencia de la notación:
 @ref{Pitches},
 @ref{Accidentals} y
@@ -1196,6 +1204,9 @@ Referencia de funcionamiento interno:
 @cindex divisiones
 @cindex finalis
 
+En la notación del canto gregoriano no existen silencios, sino
+@ref{Divisiones}.
+
 Una @emph{divisio} (en plural: @emph{divisiones}, que en latín
 significa @q{división}) es un símbolo del contexto del pentagrama que
 se usa para estructurar la música gregoriana en frases y secciones.
@@ -1207,18 +1218,18 @@ marca el final de un canto, sino que se usa también con frecuencia
 dentro de un único canto antifonal o responsorial para marcar el final
 de cada una de las secciones.
 
-Para usar divisiones, incluya el archivo @file{gregorian@/-init@/.ly}.
+Para usar divisiones, incluya el archivo @file{gregorian@/.ly}.
 Contiene definiciones que podrá aplicar con tan sólo escribir
 @code{\divisioMinima}, @code{\divisioMaior}, @code{\divisioMaxima} y
 @code{\finalis} en los lugares adecuados de la entrada.  Algunas
 ediciones usan @emph{virgula} o @emph{caesura} en vez de divisio
-minima.  Por ello, @file{gregorian@/-init@/.ly} define también las
+minima.  Por ello, @file{gregorian@/.ly} define también las
 instrucciones @code{\virgula} y @code{\caesura}.
 
 @lilypondfile[quote,ragged-right]{divisiones.ly}
 
-@predefined
 
+@predefined
 @funindex \virgula
 @code{\virgula},
 @funindex \caesura
@@ -1231,6 +1242,7 @@ instrucciones @code{\virgula} y @code{\caesura}.
 @code{\divisioMaxima},
 @funindex \finalis
 @code{\finalis}.
+@endpredefined
 
 
 @node Gregorian articulation signs
@@ -1259,8 +1271,10 @@ la notación en el estilo de la @emph{Editio Vaticana}.
 }
 @end lilypond
 
+
 @seealso
 
+
 @knownissues
 
 Ciertas articulaciones se colocan demasiado cerca verticalmente de las
@@ -1294,8 +1308,8 @@ de @code{\augmentum a \augmentum g}.
 }
 @end lilypond
 
-@seealso
 
+@seealso
 Referencia de la notación:
 @ref{Breath marks}.
 
@@ -1322,7 +1336,7 @@ accidentales.
 
 Se habilita el soporte de los neumas gregorianos por medio de la
 inclusión con @code{\include} del archivo "gregorian.ly" al principio
-del archivo. Esto hace que estén disponibles una cierta cantidad de
+del archivo.  Esto hace que estén disponibles una cierta cantidad de
 instrucciones adicionales para producir los símbolos de los neumas que
 se usan en la notación de canto llano.
 
@@ -1357,7 +1371,7 @@ cualquiera de las instrucciones siguientes:
 
 @item Las ligaduras hablando en propiedad,
 (es decir, notas unidas), se producen escribiendo una de las
-instrucciones de unión @code{pes} o @code{flexa}, para el movimiento
+instrucciones de unión @code{\pes} o @code{\flexa}, para el movimiento
 ascendente y descendente, respectivamente, @emph{intercaladas} entre
 las notas que se han de unir.
 @end itemize
@@ -1379,7 +1393,7 @@ excelencia tipográfica).  Además del @emph{punctum} normal, están el
 @code{\cavum}, que produce una nota vacía, y @code{\linea}, que traza
 líneas verticales a ambos lados de la nota.
 
-@item La @emph{virga} tiene una plica descendente en el lado derecho. Se
+@item La @emph{virga} tiene una plica descendente en el lado derecho.  Se
 produce mediante el modificador @code{\virga}.
 @end itemize
 
@@ -1420,14 +1434,14 @@ distintas más o menos intercambiables: con una nota pequeña o
 forma se produce haciendo un @code{pes} o una @code{flexa} normales y
 modificando la forma de la segunda nota: @code{\[ a \pes \deminutum b
 \] }, mientras que la segunda se hace modificando la forma de un neuma
-de una nota con @code{\auctus} y uno de los generadores de
+de una nota con @code{\auctum} y uno de los generadores de
 dirección @code{\descendens} o @code{\ascendens}, p.ej. @code{ \[
-\auctus \descendens a \] }.
+\auctum \descendens a \] }.
 
 @noindent
 Símbolos especiales
 
-Hay una tercera categoría de símbolos que se hace a partiru de un
+Hay una tercera categoría de símbolos que se hace a partir de un
 pequeño número de símbolos que tienen un significado especial (que,
 por cierto, casi siempre se conocen sólo vagamente): el
 @emph{quilisma}, el @emph{oriscus} y el @emph{strophicus}.  Todos
@@ -1446,8 +1460,16 @@ número infinito de ligaduras distintas.
 Observe que el uso de esos símbolos en la propia música sigue ciertas
 reglas que LilyPond no comprueba.  P.ej., el @emph{quilisma} siempre
 es la nota intermedia de una ligadura ascendente, y suele caer sobre
-un intervalo de semitono, pero es perfectamente posible hacer un
-quilisma de una nota.
+un intervalo de semitono, pero es perfectamente posible, si bien
+incorrecto, hacer un quilisma de una nota.
+
+Además de los símbolos de nota, el archivo gregorian.ly define también
+las instrucciones @code{\versus}, @code{\responsum}, @code{\ij},
+@code{\iij}, @code{\IJ} y @code{\IIJ}, que producen los caracteres
+correspondientes, p.ej. para utilizarlos en la letra, como marcas de
+sección, etc.  Estas instrucciones utilizan caracteres de Unicode
+especiales y sólo funcionan si se usa una fuente tipográfica que los
+contemple.
 
 La tabla siguiente muestra un conjunto limitado, pero representativo,
 de ligaduras gregorianas, junto a los fragmentos de código que las
@@ -2184,9 +2206,7 @@ Formas @b{Básica} y @emph{Licuescente}
 @end multitable
 
 @predefined
-
 Están contemplados los siguientes prefijos de cabeza:
-
 @funindex \virga
 @code{\virga},
 @funindex \stropha
@@ -2209,6 +2229,8 @@ Están contemplados los siguientes prefijos de cabeza:
 @code{\cavum},
 @funindex \linea
 @code{\linea}.
+@endpredefined
+
 
 Se pueden acumular los prefijos de cabeza, aunque con ciertas
 restricciones.  Por ejemplo, se pueden aplicar @code{\descendens} o
@@ -2224,14 +2246,16 @@ descendente, respectivamente.
 Utilice la función musical unaria @code{\augmentum} para añadir puntos
 de augmentum.
 
+
 @seealso
 
+
 @knownissues
 
 Cuando aparece un punto de @code{\augmentum} al final de la última
 pauta dentro de una ligadura, a veces se posiciona defectuosamente en
 el sentido vertical.  Para rodear el problema, escriba una nota
-adicionall de salto (p.ej. @code{s8}) como última nota de la pauta.
+adicional de salto (p.ej. @code{s8}) como última nota de la pauta.
 
 @code{\augmentum} debería estar implementado como un prefijo de cabeza
 en vez de una función musical unaria, de forma que @code{\augmentum}
@@ -2260,7 +2284,7 @@ ellos están los siguientes:
 @item cómo hacer incipits
 (o sea, material a modo de prefacio que indica cómo era el original) a
 las transcripciones modernas de música mensural;
-@item cómo cosneguir el diseño @emph{Mensurstriche}
+@item cómo conseguir el diseño @emph{Mensurstriche}
 que se usa con frecuencia para las transcripciones modernas de música
 polifónica;
 @item cómo transcribir canto gregoriano en notación moderna;
@@ -2273,6 +2297,7 @@ polifónica;
 
 Continuará...
 
+
 @seealso
 
 
@@ -2291,29 +2316,203 @@ proporcionan las barras de compás.
 @lilypondfile[verbatim,lilyquote,texidoc]
 {mensurstriche-layout-bar-lines-between-the-staves.ly}
 
-Continuará...
 
 @seealso
+@c ... and reference to other sections ...
 
 
 @node Transcribing Gregorian chant
 @unnumberedsubsubsec Transcribing Gregorian chant
 
-Continuará...
+El canto gregoriano se puede transcribir a notación moderna con
+ciertos trucos sencillos.
+
+@b{Plicas}.  Todas las plicas se pueden eliminar de una vez retirando
+el grabador @code{Stem_engraver} del contexto de voz:
+
+
+@example
+\layout @{
+  ...
+  \context @{
+    \Voice
+      \remove "Stem_engraver"
+  @}
+@}
+@end example
+
+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).
+
+@b{Compás}.  Para el canto no medido, existen diversas alternativas.
+
+Se puede eliminar el grabador Time_signature_engraver del contexto de
+Staff sin ningún efecto secundario negativo.  La alternativa, que es
+hacer transparente la indicación de compás, deja un espacio en blanco
+en la partitura, pues la indicación invisible sigue ocupando un
+espacio.
+
+En muchos casos da un buen resultado @code{\set Score.timing = ##f}.
+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
+necesita ocasionalmente una barra de compás.
+
+Un tipo de transcripción muy común es el canto de recitativo, en el
+que la nota repetida se indica con una breve.  Se puede tratar el
+texto del tono de recitativo de dos maneras.  Podemos ponerlo como una
+sola sílaba alineada por la izquierda:
+
+@lilypond[verbatim,ragged-right]
+\include "gregorian.ly"
+chant = \relative c' {
+  \clef "G_8"
+  c\breve c4 b4 a c2 c4  \divisioMaior
+  c\breve c4 c f, f \finalis
+}
+
+verba = \lyricmode {
+  \once \override LyricText #'self-alignment-X = #-1
+  "Noctem quietam et" fi -- nem per -- fec -- tum
+  \once \override LyricText #'self-alignment-X = #-1
+  "concedat nobis Dominus" om -- ni -- po -- tens.
+}
+\score {
+  \new Staff <<
+  \new Voice = "melody" \chant
+  \new Lyrics = "one" \lyricsto melody \verba
+  >>
+  \layout {
+    \context {
+      \Staff
+      \remove "Time_signature_engraver"
+      \remove "Bar_engraver"
+      \override Stem #'transparent = ##t
+    }
+  }
+}
+@end lilypond
+
+Esto funciona bien en la medida en que el texto no comprenda un salto
+de línea.  Si es el caso, una alternativa sería añadir notas ocultas a
+la partitura, en combinación con cambios en la visibilidad de las
+plicas:
+
+
+@lilypond[verbatim,ragged-right]
+\include "gregorian.ly"
+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 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 {
+  No -- ctem qui -- e -- tam et fi -- nem per -- fec -- tum
+  con -- ce -- dat no -- bis Do -- mi -- nus om -- ni -- po -- tens.
+}
+
+\score {
+  \new Staff <<
+    \new Voice = "melody" \chant
+    \new Lyrics \lyricsto "melody" \verba
+  >>
+  \layout {
+    \context {
+      \Staff
+      \remove "Time_signature_engraver"
+      \override BarLine #'transparent = ##t
+      \override Stem #'transparent = ##t
+    }
+  }
+}
+@end lilypond
+
+Otra situación común es la transcripción de cantos neumáticos o
+melismáticos, es decir, cantos con un número variable de notas en cada
+sílaba.  En este caso, podemos establecer los grupos de sílabas
+claramente separados, normalmente también las subdivisiones de un
+melisma mayor.  Una forma de conseguirlo es usar un @code{\time} fijo,
+p.ej. 1/4, y dejar que cada sílaba o grupo de notas llene uno de esos
+compases, con la ayuda de grupos de valoración especial o duraciones
+más breves.  Si las líneas divisorias y todas las demás indicaciones
+rítmicas se hacen transparentes, y el espacio que rodea las líneas
+divisorias se aumenta, ello proporciona una aceptable representación
+del original, en notación moderna.
+
+Para evitar que las sílabas de distinta anchura (como @qq{-ri} y
+@qq{-rum}) dispongan los grupos de notas de las sílabas de forma
+irregular, se puede ajustar la propiedad @code{#'X-extent} del objeto
+@code{LyricText} a un valor fijo.  Otra forma más engorrosa sería
+añadir las sílabas como elementos de @code{\markup}.  Si se necesitan
+más ajustes posteriormente, esto se puede hacer fácilmente con
+@q{notas} @code{s}.
+
+@lilypond[verbatim,quote]
+spiritus = \relative c' {
+  \time 1/4
+  \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
+}
+
+spirLyr = \lyricmode {
+  Spi -- ri -- _ _ tus  _ Do -- mi -- ni  _ re -- ple -- _ vit _
+  or -- _ bem _  ter -- ra -- _ rum, al -- _ _ le -- _ lu
+  -- _ ia.
+}
+\score {
+  \new Staff <<
+    \new Voice = "chant" \spiritus
+    \new Lyrics = "one" \lyricsto "chant" \spirLyr
+  >>
+  \layout {
+    \context {
+      \Staff
+      \remove "Time_signature_engraver"
+      \override BarLine #'X-extent = #'(-1 . 1)
+      \override Stem #'transparent = ##t
+      \override Beam #'transparent = ##t
+      \override BarLine #'transparent = ##t
+      \override TupletNumber #'transparent = ##t
+    }
+  }
+}
+@end lilypond
+
+@c extract from 1.6.1.1
 
 @seealso
+@c ... and reference to other sections ...
+
 
 @node Ancient and modern from one source
 @unnumberedsubsubsec Ancient and modern from one source
 
 Continuará...
 
+
 @seealso
 
+
 @node Editorial markings
 @unnumberedsubsubsec Editorial markings
 
 Continuará...
 
-@seealso
 
+@seealso
index fffd408999a524d2420c9507959cebb6d7437e8f..509a3ec75cef472a0729356be5a60ad0d5183fc5 100644 (file)
@@ -1,13 +1,13 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 @c This file is part of lilypond.tely
 @ignore
-Translation of GIT committish: 88f1608ae6fd17b05344bafb2f0721aafdac657b
+Translation of GIT committish: 19841b86e54ac60d93af1150c31b7c246741ce1c
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @node Changing defaults
 @chapter Changing defaults
@@ -25,7 +25,7 @@ adecuado para un manual de referencia.
 
 @cindex Referencia de funcionamiento interno
 
-La descripción definitiva de los controles que están dipsonibles para
+La descripción definitiva de los controles que están disponibles para
 su ajuste fino están en un documento aparte: @rinternalsnamed{Top,la
 Referencia de funcionamiento interno}.  Dicho manual relaciona todas
 las variables, funciones y opciones que se encuentran disponibles en
@@ -61,14 +61,15 @@ Esta sección explica qué son los contextos y cómo modificarlos.
 @menu
 * Contexts explained::
 * Creating contexts::
+* Keeping contexts alive::
 * Modifying context plug-ins::
 * Changing context default settings::
 * Defining new contexts::
 * Aligning contexts::
 @end menu
 
-@seealso
 
+@seealso
 Manual de aprendizaje:
 @rlearning{Contexts and engravers}.
 
@@ -117,13 +118,13 @@ procesa un bloque @code{\score @{@dots{}@}} o @code{\layout
 
 Agrupa pentagramas y añade un corchete en la parte izquierda, formando
 un grupo.  Las líneas divisorias de los pentagramas contenidos se
-conectan verticalmente.  StaffGroup sólo consiste en una colección de
-pentagramas, con un corchete delante y líneas divisorias de arriba a
-abajo.
+conectan verticalmente.  @code{StaffGroup} sólo consiste en una
+colección de pentagramas, con un corchete delante y líneas divisorias
+de arriba a abajo.
 
 @strong{@emph{ChoirStaff}}
 
-Idéntico a StaffGroup excepto que las barras de compás de los
+Idéntico a @code{StaffGroup} excepto que las barras de compás de los
 pentagramas contenidos no se conectan verticalmente.
 
 @strong{@emph{GrandStaff}}
@@ -134,21 +135,8 @@ se conectan verticalmente.
 
 @strong{@emph{PianoStaff}}
 
-@c TODO No longer correct?  Check.  -td
-Igual que GrandStaff pero con una distancia fija entre los
-pentagramas, de manera que se pueden usar ligaduras y barras que
-cruzan de un pentagrama a otro.
-
-@ignore
-@strong{@emph{InnerStaffGroup}}
-
-TODO  -td
-
-@strong{@emph{InnerChoirStaff}}
-
-TODO  -td
-
-@end ignore
+Igual que @code{GrandStaff}, pero contempla la posibilidad de poner el
+nombre del instrumento a la izquierda del sistema.
 
 @node Intermediate-level contexts - staves
 @unnumberedsubsubsec Intermediate-level contexts - staves
@@ -156,12 +144,12 @@ TODO  -td
 @strong{@emph{Staff}}
 
 Maneja claves, barras de compás, tonalidades y alteraciones
-accidentales.  Puede contener contextos de Voice.
+accidentales.  Puede contener contextos de @code{Voice}.
 
 @strong{@emph{RhythmicStaff}}
 
-Como Staff, pero para imprimir ritmos.  Se ignoran las alturas de las
-notas; las notas se imprimen sobre una línea.
+Como @code{Staff}, pero para imprimir ritmos.  Se ignoran las alturas
+de las notas; las notas se imprimen sobre una línea.
 
 @strong{@emph{TabStaff}}
 
@@ -172,17 +160,17 @@ líneas.
 @strong{@emph{DrumStaff}}
 
 Maneja el tipografiado para instrumentos de percusión.  Puede contener
-contextos DrumVoice.
+contextos @code{DrumVoice}.
 
 @strong{@emph{VaticanaStaff}}
 
-Iguall que Staff, excepto que está pensado para tipografiar piezas en
-estilo gregoriano.
+Igual que @code{Staff}, excepto que está pensado para tipografiar
+piezas en estilo gregoriano.
 
 @strong{@emph{MensuralStaff}}
 
-Igual que Staff, excepto que está diseñado para tipografiar piezas en
-estilo mensural.
+Igual que @code{Staff}, excepto que está diseñado para tipografiar
+piezas en estilo mensural.
 
 
 @node Bottom-level contexts - voices
@@ -202,13 +190,13 @@ voces en el mismo pentagrama.
 
 @strong{@emph{VaticanaVoice}}
 
-Lo mismo que Voice, excepto que está diseñado para tipografiar piezas
-en estilo gregoriano.
+Lo mismo que @code{Voice}, excepto que está diseñado para tipografiar
+piezas en estilo gregoriano.
 
 @strong{@emph{MensuralVoice}}
 
-Lo mismmo que Voice, con modificaciones para el tipografiado de piezas
-en estilo mensural.
+Lo mismo que @code{Voice}, con modificaciones para el tipografiado de
+piezas en estilo mensural.
 
 @strong{@emph{Lyrics}}
 
@@ -221,13 +209,13 @@ El contexto de voz utilizado en una pauta de percusión.
 
 @strong{@emph{FiguredBass}}
 
-El contexto en que los objetos BassFigure se crean a partir de la
-entrada escrita en el modo @code{\figuremode}.
+El contexto en que los objetos @code{BassFigure} se crean a partir de
+la entrada escrita en el modo @code{\figuremode}.
 
 @strong{@emph{TabVoice}}
 
-El contexto de voz utilizado dentro de un contexto TabStaff.  Se suele
-dejar que se cree implícitamente.
+El contexto de voz utilizado dentro de un contexto @code{TabStaff}.
+Se suele dejar que se cree implícitamente.
 
 @strong{@emph{ChordNames}}
 
@@ -375,6 +363,161 @@ Para que se interprete dentro de los niveles de @code{Score} o
 
 @end itemize
 
+@node Keeping contexts alive
+@subsection Keeping contexts alive
+
+@cindex contextos, mantener vivos
+@cindex contextos, tiempo de vida
+
+Normalmente los contextos finalizan en el primer momento musical en
+que no tienen nada que hacer.  Así, los contextos de @code{Voice}
+mueren tan pronto como ya no contienen ningún evento; los contextos de
+@code{Staff} mueren tan pronto como todos los contextos de
+@code{Voice} que contenían ya no contengan ningún evento; etc.  Esto
+puede ocasionar dificultades si se tiene que hacer referencia a
+contextos anteriores que ya han muerto, por ejemplo, al cambiar de
+pentagramas con instrucciones @code{\change}, asociar letra con una
+voz mediante instrucciones @code{\lyricsto}, o cuando se añaden
+eventos musicales adicionales a un contexto anterior.
+
+Existe una excepción a esta regla general: precisamente uno de los
+contextos de @code{Voice} que están dentro de un contexto de
+@code{Staff} o de una construcción @code{<<...>>} persiste siempre
+hasta el final de, contexto de @code{Staff} circundante o la
+construcción @code{<<...>>}, incluso aunque puede haber períodos en
+que no tiene nada que hacer.  El contexto que persiste de esta forma
+será el primero que se encuentre en la primera construcción encerrada
+entre llaves @code{@{...@}}, ignorando cualquiera que se encuentre
+dentro de construcciones encerradas por ángulos dobles @code{<<...>>}.
+
+Cualquier contexto se puede mantener vivo si nos aseguramos de que
+tiene algo que hacer en cualquier momento musical dado.  Los
+contextos de @code{Staff} se mantienen con vida si nos aseguramos de
+que una de sus voces se mantiene viva.  Una manera de hacerlo es
+añadir silencios de separación a una voz en paralelo con la música
+real.  Éstos deben añadirse a todos y cada uno de los contextos de
+@code{Voice} que se hayan de mantener vivos.  Si se van a usar
+esporádicamente varias voces, es más seguro mantenerlas todas vivas en
+lugar de tratar de confiar en las excepciones que hemos mencionado
+arriba.
+
+En el ejemplo siguiente, tanto la voz A como la voz B se mantienen
+vivas de esta manera durante la duración de la pieza:
+
+@lilypond[quote,verbatim]
+musicA = \relative c'' { d4 d d d }
+musicB = \relative c'' { g4 g g g }
+keepVoicesAlive = {
+  <<
+    \new Voice = "A" { s1*5 }  % Keep Voice "A" alive for 5 bars
+    \new Voice = "B" { s1*5 }  % Keep Voice "B" alive for 5 bars
+  >>
+}
+
+music = {
+  \context Voice = "A" {
+    \voiceOneStyle
+    \musicA
+  }
+  \context Voice = "B" {
+    \voiceTwoStyle
+    \musicB
+  }
+  \context Voice = "A" { \musicA }
+  \context Voice = "B" { \musicB }
+  \context Voice = "A" { \musicA }
+}
+
+\score {
+  \new Staff <<
+    \keepVoicesAlive
+    \music
+  >>
+}
+@end lilypond
+
+@cindex letra, alineación con melodía esporádica
+
+El ejemplo siguiente muestra cómo se puede escribir una línea melódica
+esporádica con letra utilizando este enfoque.  Por supuesto, en una
+situación real la melodía y el acompañamiento consistirían en varias
+secciones diferentes.
+
+@lilypond[quote,verbatim]
+melody = \relative c'' { a4 a a a }
+accompaniment = \relative c' { d4 d d d }
+words = \lyricmode { These words fol -- low the mel -- o -- dy }
+\score {
+  <<
+    \new Staff = "music" {
+      <<
+        \new Voice = "melody" {
+          \voiceOne
+          s1*4  % Keep Voice "melody" alive for 4 bars
+        }
+        {
+          \new Voice = "accompaniment" {
+            \voiceTwo
+            \accompaniment
+          }
+          <<
+            \context Voice = "melody" { \melody }
+            \context Voice = "accompaniment" { \accompaniment }
+          >>
+          \context Voice = "accompaniment" { \accompaniment }
+          <<
+            \context Voice = "melody" { \melody }
+            \context Voice = "accompaniment" { \accompaniment }
+          >>
+        }
+      >>
+    }
+    \new Lyrics \with { alignAboveContext = #"music" }
+    \lyricsto "melody" { \words }
+  >>
+}
+@end lilypond
+
+Una forma alternativa, que podría resultar mejor en muchas
+situaciones, es mantener con vida la línea melódica simplemente
+incluyendo notas espaciadoras para alinearla correctamente con el
+acompañamiento:
+
+@lilypond[quote,verbatim]
+melody = \relative c'' {
+  s1  % skip a bar
+  a4 a a a
+  s1  % skip a bar
+  a4 a a a
+}
+accompaniment = \relative c' {
+  d4 d d d
+  d4 d d d
+  d4 d d d
+  d4 d d d
+}
+words = \lyricmode { These words fol -- low the mel -- o -- dy }
+
+\score {
+  <<
+    \new Staff = "music" {
+      <<
+        \new Voice = "melody" {
+          \voiceOne
+          \melody
+        }
+        \new Voice = "accompaniment" {
+          \voiceTwo
+          \accompaniment
+        }
+      >>
+    }
+    \new Lyrics \with { alignAboveContext = #"music" }
+    \lyricsto "melody" { \words }
+  >>
+}
+@end lilypond
+
 
 @node Modifying context plug-ins
 @subsection Modifying context plug-ins
@@ -490,52 +633,40 @@ compás independiente.
 @node Changing context default settings
 @subsection Changing context default settings
 
-Los ajustes de las secciones previas ( @ref{The set command},
-@ref{Modifying context plug-ins} y @ref{Overview of modifying
-properties}) también se pueden escribir separados de la música dentro
-del bloque @code{\layout}:
-
-@example
-\layout @{
-  @dots{}
-  \context @{
-    \Staff
-
-    \set fontSize = #-2
-    \override Stem #'thickness = #4.0
-    \remove "Time_signature_engraver"
-  @}
-@}
-@end example
-
-La instrucción @code{\Staff} recupera la definición existente del
-contexto de pentagrama de manera que se pueda modificar.
-
-Los enunciados
-@example
-\set fontSize = #-2
-\override Stem #'thickness = #4.0
-\remove "Time_signature_engraver"
-@end example
-
-@noindent
-afectan a todos los pentagramas de la partitura.  Otros contextos se
-pueden modificar de forma análoga.
-
-La palabra clave @code{\set} es opcional dentro del bloque
-@code{\layout}, y así
-
-@example
-\context @{
-  @dots{}
-  fontSize = #-2
-@}
-@end example
-
-@noindent
-también funciona.
+Los ajustes de contexto que están preparados para usarse de forma
+predeterminada en los contextos @code{Score}, @code{Staff} y
+@code{Voice}, se pueden especificar dentro de un bloque
+@code{\layout}, como se ilustra en el ejemplo siguiente.  El bloque
+@code{\layout} se debe colocar dentro del bloque @code{\score} en que
+se quiere que haga efecto, pero fuera de la música.
+
+Observe que la propia instrucción @code{\set} y el contexto se deben
+omitir cuando se especifican de esta manera los valores de contexto
+predeterminados:
+
+@lilypond[quote,verbatim]
+\score {
+  \relative c'' {
+    a4^"Really small, thicker stems, no time signature" a a a
+    a a a a
+  }
+  \layout {
+    \context {
+      \Staff
+      fontSize = #-4
+      \override Stem #'thickness = #4.0
+      \remove "Time_signature_engraver"
+    }
+  }
+}
+@end lilypond
 
+En este ejemplo, la instrucción @code{\Staff} especifica que los
+ajustes siguientes se apliquen a todos los pentagramas dentro del
+bloque de partitura.
 
+Se pueden realizar de forma similar modificaciones al contexto
+@code{Score} o a todos los contextos @code{Voice}.
 
 @knownissues
 
@@ -578,6 +709,7 @@ para indicar improvisación en piezas de jazz,
   \name ImproVoice
   \type "Engraver_group"
   \consists "Note_heads_engraver"
+  \consists "Rhythmic_column_engraver"
   \consists "Text_engraver"
   \consists Pitch_squash_engraver
   squashedPosition = #0
@@ -743,7 +875,7 @@ ossia = { f4 f f f }
   \relative c' \new Staff = "main" {
     c4 c c c
     <<
-      \new Staff \with {alignAboveContext=main} \ossia
+      \new Staff \with { alignAboveContext = #"main" } \ossia
       { d8 f d f d f d f }
     >>
   }
@@ -965,8 +1097,8 @@ pueden modificar.
 
 Hemos estado hablando de @emph{el} objeto @code{Fingering}, pero
 realmente esto no significa mucho.  El archivo de inicialización
-(véase @ref{File structure}) @file{scm/@/define@/-grobs@/.scm} muestra
-el alma del @q{objeto},
+(véase @rlearning{Other sources of information})
+@file{scm/@/define@/-grobs@/.scm} muestra el alma del @q{objeto},
 
 @example
 (Fingering
@@ -1205,12 +1337,11 @@ 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
 
 
 @seealso
-
 Referencia de funcionamiento interno:
 @rinternals{OverrideProperty},
 @rinternals{RevertProperty},
@@ -1310,7 +1441,7 @@ ajuste también se aplica a la @code{Voice} actual.  Sin embargo:
 @end example
 
 @noindent
-no tiene ningúun efecto.  Para cancelar este ajuste, se debe
+no tiene ningún efecto.  Para cancelar este ajuste, se debe
 especificar el @code{\unset} en el mismo nivel que el @code{\set}
 original.  Dicho de otra forma, para deshacer el efecto de
 @code{Staff.autoBeaming = ##f} se necesita
@@ -1383,7 +1514,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
@@ -1398,7 +1529,7 @@ propiedad, si se establece el valor de la propiedad a falso
 (@code{##f}) se producirá su desactivación, ocasionando que LilyPond
 ignore por completo dicha propiedad.  Esto es especialmente útil para
 «apagar» propiedades de grobs (objetos gráficos) que de otra manera
-causarína problemas.
+causarían problemas.
 
 Mostraremos a continuación cómo localizar esta información en el
 manual de notación y en la referencia de funcionamiento interno.
@@ -1411,7 +1542,7 @@ manual de notación y en la referencia de funcionamiento interno.
 @cindex trucar
 
 En ocasiones es posible tomar un atajo para realizar el ajuste fino de
-los objetos gráficos.  Para objetos que reusultan directamente de un
+los objetos gráficos.  Para objetos que resultan directamente de un
 elemento de código de la entrada, puede usar la función @code{\tweak},
 por ejemplo
 
@@ -1524,14 +1655,15 @@ puede examinarse, véase @ref{Displaying music expressions}.  Esto
 puede ser de utilidad en la determinación de lo que puede modificarse
 por medio de una instrucción @code{\tweak}.
 
-@seealso
 
+@seealso
 Manual de aprendizaje:
 @rlearning{Tweaking methods}.
 
 Referencia de la notación:
 @ref{Displaying music expressions}.
 
+
 @knownissues
 
 @cindex trucos en una variable
@@ -1618,7 +1750,7 @@ Al ser éste un cambio muy común, se creó la propiedad especial
 @node Input modes
 @subsection Input modes
 
-La forma en que se interpreta la notación conenida dentro de un
+La forma en que se interpreta la notación contenida dentro de un
 archivo de entrada, está determinada por el modo de entrada en curso.
 
 @strong{Modo de acordes}
@@ -1630,7 +1762,7 @@ pentagrama.
 
 El modo de acordes se activa también con la instrucción
 @code{\chords}.  Esto crea también un contexto @code{ChordNames} nuevo
-y produce que el código que sigue se interprete conla sintaxis de la
+y produce que el código que sigue se interprete con la sintaxis de la
 notación de acordes y se imprima como nombres de acorde dentro del
 contexto @code{ChordNames}, véase @ref{Printing chord names}.
 
@@ -1661,7 +1793,7 @@ figured bass}.
 
 @strong{Modos de traste y tablatura}
 
-No existen modos de entrada especiales para introducir símibolos de
+No existen modos de entrada especiales para introducir símbolos de
 trastes y de tablatura.
 
 Para crear diagramas de trastes, escriba las notas o acordes en el
@@ -1760,8 +1892,8 @@ presentan, véase @ref{Aligning contexts}
 Al añadir articulaciones a notas se puede omitir normalmente el
 indicador de dirección, @code{^} (que significa @qq{arriba}), @code{_}
 (que significa @qq{abajo}) o @code{-} (que significa @qq{usar la
-dirección predeterminada}), en cuyo caso se supone el perdeterminado
-@code{-}.  Pero se necesita un indicador de dirección @strong{always}
+dirección predeterminada}), en cuyo caso se supone el predeterminado
+@code{-}.  Pero se necesita un indicador de dirección @strong{siempre}
 antes de:
 
 @itemize
@@ -1855,8 +1987,8 @@ convertir de un cambio en el tamaño de la fuente al cambio equivalente
 en @code{staff-space}.  Para ver una explicación y un ejemplo de su
 utilización, consulte @rlearning{Length and thickness of objects}.
 
-@seealso
 
+@seealso
 Manual de aprendizaje:
 @rlearning{Length and thickness of objects}.
 
@@ -1929,7 +2061,7 @@ extensores.
 
 @strong{@i{La propiedad @code{minimum-length}}}
 
-La longitud mínima del objeto de extensión se pesoecifica a través de
+La longitud mínima del objeto de extensión se especifica a través de
 la propiedad @code{minimum-length}.  Su aumento suele producir el
 efecto necesario de aumentar el espaciado de las notas entre los dos
 puntos extremos.  Sin embargo, esta sobreescritura no tiene ningún
@@ -1998,7 +2130,7 @@ a
 \( a\)
 @end lilypond
 
-Para algunos objetos de preesentación, la propiedad
+Para algunos objetos de presentación, la propiedad
 @code{minimum-length} es efectiva sólo si se llama explícitamente al
 procedimiento @code{set-spacing-rods}.  Para hacerlo, se debe fijar la
 propiedad @code{springs-and-rods} al valor
@@ -2041,7 +2173,7 @@ haciendo que los reguladores y otros objetos de extensión que terminan
 sobre la primera nota de un compás, en vez de eso terminen en la línea
 divisoria inmediatamente precedente.  Si se establece al valor falso,
 el extensor llegará más allá de la barra de compás y terminará
-excatamente sobre la nota:
+exactamente sobre la nota:
 
 @lilypond[verbatim,quote,relative=2]
 a \< a a a a \! a a a \break
@@ -2079,8 +2211,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
 
@@ -2099,7 +2231,7 @@ especifican por las sub-listas @code{left-broken} y
 
 @lilypond[relative=2,ragged-right,verbatim,fragment]
 \override Glissando #'breakable = ##t
-\override Glissando #'bound-details #'right-broken #'Y = #-3
+\override Glissando #'(bound-details right-broken Y) = #-3
 c1 \glissando \break
 f1
 @end lilypond
@@ -2121,7 +2253,7 @@ trinos, está inamoviblemente codificado como 0.
 @item attach-dir (dirección de anclaje)
 Determina dónde comienza y termina la línea en la dirección X, con
 relación al objeto ancla.  Sí, un valor de @code{-1} (o @code{LEFT},
-izquierda) hace que la línea comienze o termine en el lado izquierdo
+izquierda) hace que la línea comience o termine en el lado izquierdo
 de la cabeza de la nota a la que está anclado.
 
 @item X
@@ -2139,7 +2271,7 @@ usa para escribir @i{cresc.}, @i{tr} y otros textos sobre los objetos
 de extensión horizontales.
 
 @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
@@ -2147,27 +2279,27 @@ c2\startTextSpan b c a\stopTextSpan
 @item stencil-align-dir-y (alineación del sello en y)
 @item stencil-offset (desplazamiento del sello)
 Si no se modifican uno u otro, el sello se coloca sencillamente en el
-punto extremo, centrado sobrer la línea, como viene definido por las
+punto extremo, centrado sobre la línea, como viene definido por las
 subpropiedades @code{X} e @code{Y}.  Si se fijan
 @code{stencil-align-dir-y} o @code{stencil-offset} se moverá el
 símbolo del borde verticalmente con relación al extremo de la línea:
 
 @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
 
 Observe que los valores negativos mueven el texto @emph{hacia arriba},
-al contrario de lo que podríoa esperarse, pues el valor de @code{-1} o
-@code{DOWN} (abajo) significa alinear el bborde @emph{inferior} del
+al contrario de lo que podría esperarse, pues el valor de @code{-1} o
+@code{DOWN} (abajo) significa alinear el borde @emph{inferior} del
 texto con la línea de extensión.  Un valor de @code{1} o @code{UP}
 (arriba) alinea el borde superior del texto con la línea extensora.
 
@@ -2198,8 +2330,8 @@ c2 \< c2 c2
 Si se usa @code{\endSpanners} no es necesario cerrar \startTextSpan
 con \stopTextSpan, ni cerrar los reguladores con @code{\!}.
 
-@seealso
 
+@seealso
 Referencia de funcionamiento interno:
 @rinternals{TextSpanner},
 @rinternals{Glissando},
@@ -2243,7 +2375,7 @@ objetos de presentación.  Se estudian bajo Consideraciones especiales.
 
 Todo objeto de presentación tiene una propiedad stencil (sello).  De
 forma predeterminada está establecida a la función específica que
-dibuja ese objeto.  Se se sobreescribe eesta propiedad a @code{#f} no
+dibuja ese objeto.  Si se sobreescribe esta propiedad a @code{#f} no
 se llama a ninguna función y el objeto no se dibuja.  La acción
 predeterminada se puede recuperar con @code{\revert}.
 
@@ -2310,7 +2442,7 @@ indeterminado.
 
 En el ejemplo de arriba, la clave blanca, con un valor @code{layer}
 predeterminado de @code{1}, se dibuja después de las líneas del
-pentragrama (valor @code{layer} predeterminado de @code{0}),
+pentagrama (valor @code{layer} predeterminado de @code{0}),
 sobreimpresionándolas.  Para cambiarlo, se debe dar al objeto
 @code{Clef} un valor de @code{layer} más bajo, digamos @code{-1}, para
 que se dibuje antes:
@@ -2356,30 +2488,26 @@ objeto se imprime al final, dentro, o al principio de la línea.  O,
 para ser más exactos: antes del salto de línea, si no hay salto, o
 después del salto.
 
-Como alternativa se pueden especificar siete de las ocho combinaciones
-mediante funciones predefinidas cuya definición está en
+Como alternativa se puede especificar cualquiera de las ocho
+combinaciones mediante funciones predefinidas cuya definición está en
 @file{scm/output-lib.scm}, donde las tres últimas columnas indican si
 los objetos de presentación serán visibles en las posiciones que se
 muestran en el encabezamiento de cada columna:
 
-@multitable @columnfractions .40 .15 .1 .1 .1
-@c TODO check these more carefully
+@multitable {@code{begin-of-line-invisible}} {@code{'#(#t #t #t)}} {yes} {yes} {yes}
 @headitem Forma                   @tab Forma                  @tab Antes del @tab Si no hay    @tab Después del
 @headitem de función              @tab de vector              @tab salto     @tab salto        @tab salto
 
-@item @code{all-invisible}           @tab @code{'#(#f #f #f)} @ @ @tab no     @tab no       @tab no
+@item @code{all-visible}             @tab @code{'#(#t #t #t)}     @tab sí     @tab sí       @tab sí
 @item @code{begin-of-line-visible}   @tab @code{'#(#f #f #t)}     @tab no     @tab no       @tab sí
+@item @code{center-visible}          @tab @code{'#(#f #t #f)}     @tab no     @tab sí       @tab no
 @item @code{end-of-line-visible}     @tab @code{'#(#t #f #f)}     @tab sí     @tab no       @tab no
-@item @code{all-visible}             @tab @code{'#(#t #t #t)}     @tab sí     @tab sí       @tab sí
-@c The center-visible function is not defined
-@c @item @code{center-visible}       @tab @code{'#(#f #t #f)}     @tab no     @tab sí       @tab no
 @item @code{begin-of-line-invisible} @tab @code{'#(#t #t #f)}     @tab sí     @tab sí       @tab no
-@item @code{end-of-line-invisible}   @tab @code{'#(#f #t #t)}     @tab no     @tab sí       @tab sí
 @item @code{center-invisible}        @tab @code{'#(#t #f #t)}     @tab sí     @tab no       @tab sí
+@item @code{end-of-line-invisible}   @tab @code{'#(#f #t #t)}     @tab no     @tab sí       @tab sí
+@item @code{all-invisible}           @tab @code{'#(#f #f #f)}     @tab no     @tab no       @tab no
 @end multitable
 
-La función @code{center-visible} no está predefinida.
-
 Los ajustes predeterminados de @code{break-visibility} dependen del
 objeto de presentación.  La tabla siguiente muestra todos los objetos
 de presentación de interés que resultan afectados por
@@ -2556,8 +2684,8 @@ Para los cambios de clave explícitos, la propiedad
 @code{explicitClefVisibility} controla tanto el símbolo de clave como
 el símbolo de octava asociado.
 
-@seealso
 
+@seealso
 Manual de aprendizaje:
 @rlearning{Visibility and color of objects}
 
@@ -2598,7 +2726,7 @@ posible sobreescribirlos:
 
 @lilypond[relative=2,ragged-right,verbatim,fragment]
 e2 \glissando f
-\once \override Glissando #'bound-details #'right #'Y = #-2
+\once \override Glissando #'(bound-details right Y) = #-2
 e2 \glissando f
 @end lilypond
 
@@ -2637,7 +2765,7 @@ Todos los objetos de presentación que contemplan el interface
 @code{rotation}.  Acepta una lista de tres elementos: el ángulo de la
 rotación en sentido antihorario, y las coordenadas x e y del punto con
 relación al punto de referencia del objeto, alrededor del que se va a
-realizar la rotación.  El ángulo de rotación se pespecifica en grados
+realizar la rotación.  El ángulo de rotación se especifica en grados
 y las coordenadas en espacios de pentagrama.
 
 El ángulo de rotación y las coordenadas del punto de rotación se deben
@@ -2660,7 +2788,7 @@ g,,4\< e' d' f\!
 @unnumberedsubsubsec Rotating markup
 
 Todos los textos de marcado se pueden rotar para que se dispongan en
-cualquier ángulo predeciéndolos de la instrucción @code{\rotate}.  La
+cualquier ángulo precediéndolos de la instrucción @code{\rotate}.  La
 instrucción acepta dos argumentos: el ángulo de rotación en grados en
 sentido antihorario, y el texto que rotar.  Los límites que ocupa el
 texto no se rotan: toman su valor a partir de los extremos de las
@@ -2690,8 +2818,8 @@ ajustes finos a la apariencia de la partitura impresa.
 * Modifying shapes::
 @end menu
 
-@seealso
 
+@seealso
 Manual de aprendizaje:
 @rlearning{Tweaking output},
 @rlearning{Other sources of information}.
@@ -2728,7 +2856,7 @@ partir del punto de referencia de los bordes izquierdo y derecho,
 siendo negativos los desplazamientos hacia la izquierda.  La extensión
 vertical es una pareja de números que dan el desplazamiento a partir
 del punto de referencia hasta los bordes inferior y superior, siendo
-negativos los deplazamientos hacia abajo.
+negativos los desplazamientos hacia abajo.
 
 La posición de un objeto sobre el pentagrama viene dada por los
 valores de las propiedades @code{X-offset} e @code{Y-offset}.  El
@@ -2759,7 +2887,7 @@ de ensayo sobre dichos objetos.
 * Setting @code{X-offset} and @code{Y-offset} directly::
 * Using the @code{side-position-interface}::
 * Using the @code{self-alignment-interface}::
-* Using the @code{break-aligned-interface}::
+* Using the @code{break-alignable-interface}::
 @end menu
 
 @node Setting @code{X-offset} and @code{Y-offset} directly
@@ -2791,7 +2919,7 @@ Un objeto que contempla el @code{side-position-interface} se puede
 colocar junto a su objeto padre de forma que los bordes especificados
 de los dos objetos se toquen.  El objeto se puede situar encima,
 debajo, a la derecha o a la izquierda del objeto padre.  El padre no
-se puede especificar; ciene determinado por el orden de los elementos
+se puede especificar; viene determinado por el orden de los elementos
 en el flujo de entrada.  Casi todos los objetos tienen la cabeza de la
 nota asociada como padre.
 
@@ -2927,8 +3055,11 @@ example shows the difference:
 @c TODO The align-interface, BassFigureAlignment and VerticalAlignment
 
 
-@node Using the @code{break-aligned-interface}
-@unnumberedsubsubsec Using the @code{break-aligned-interface}
+@node Using the @code{break-alignable-interface}
+@unnumberedsubsubsec Using the @code{break-alignable-interface}
+
+@cindex alineación a objetos
+@cindex break-align-symbols
 
 Las letras de ensayo se pueden alinear con objetos de notación
 distintos a las barras de compás.  Estos objetos son @code{ambitus},
@@ -2936,8 +3067,8 @@ distintos a las barras de compás.  Estos objetos son @code{ambitus},
 @code{left-edge}, @code{key-cancellation}, @code{key-signature} y
 @code{time-signature}.
 
-De forma predeterminada, las letras de ensayo se centran
-horizontalmente sobre el objeto:
+De forma predeterminada, las letras de ensayo y los números de compás
+se centran horizontalmente sobre el objeto:
 
 @lilypond[verbatim,quote,relative=1]
 e1
@@ -2956,7 +3087,33 @@ e
 e2.
 @end lilypond
 
-La alineación de la letra de enzayo con relación al objeto de notación
+Se puede especificar una lista de posibles objetos para la alineación.
+Si algunos de los objetos son invisibles en ese punto debido al valor
+de @code{break-visibility} o a valores de visibilidad explícitos para
+las armaduras y las claves, la letra de ensayo o número de compás se
+alinean con el primer objeto de la lista que sea visible.  Si ningún
+objeto de la lista es visible, el objeto se alinea con la línea
+divisoria.  Si la línea divisoria es invisible, el objeto se alinea
+con el punto en el que se encontraría la línea divisoria.
+
+@lilypond[verbatim,quote,relative=1]
+e1
+% the RehearsalMark will be centered above the Key Signature
+\override Score.RehearsalMark #'break-align-symbols = #'(key-signature clef)
+\key a \major
+\clef treble
+\mark "↓"
+e
+% the RehearsalMark will be centered above the Clef
+\set Staff.explicitKeySignatureVisibility = #all-invisible
+\override Score.RehearsalMark #'break-align-symbols = #'(key-signature clef)
+\key a \minor
+\clef bass
+\mark "↓"
+e,
+@end lilypond
+
+La alineación de la letra de ensayo con relación al objeto de notación
 se puede cambiar, como se ve en el ejemplo siguiente.  En una
 partitura con varios pentagramas, este ajuste se debe hacer para todos
 los pentagramas.
@@ -3064,8 +3221,8 @@ font}.
 
 @c TODO Add inserting Postscript or ref to later
 
-@seealso
 
+@seealso
 Referencia de la notación:
 @ref{Graphic notation inside markup},
 @ref{Formatting text},
@@ -3093,7 +3250,7 @@ orden.
 Las curvas Bézier de tercer orden o cúbicas están definidas por cuatro
 puntos de control.  El primer y cuarto puntos de control son
 exactamente los puntos extremos de comienzo y de final de la curva.
-Los dos puntos de contros intermedios definen la forma.  Se pueden
+Los dos puntos de control intermedios definen la forma.  Se pueden
 encontrar en la web animaciones que muestran cómo se traza la curva,
 pero la descripción siguiente puede ser de ayuda.  La curva comienza a
 partir del primer punto de control dirigiéndose directamente hacia el
@@ -3126,7 +3283,7 @@ las coordenadas de los dos puntos extremos, y luego tratar de adivinar
 los dos puntos intermedios.  Los valores óptimos se encuentran por
 ensayo y error.
 
-Es útil recordar que una curva simétrica necesita puntos de contros
+Es útil recordar que una curva simétrica necesita puntos de control
 simétricos, y que las curvas de Bézier tienen la útil propiedad de que
 las transformaciones de la curva tales como la traslación, rotación y
 escalado se pueden obtener aplicando la misma transformación a los
@@ -3149,6 +3306,6 @@ satisfactoria:
 
 No es posible modificar la forma de las ligaduras de unión o de
 expresión cambiando la propiedad @code{control-points} si hay más de
-una en el mismo mom ento musical, ni siquiera usando la instrucción
+una en el mismo momento musical, ni siquiera usando la instrucción
 @code{\tweak}.
 
index e1858fc4fef4ad35e5257d9ea2baa5288268d41b..b2946e657eb16b88cadb86e36a0de34f0bb0b311 100644 (file)
@@ -1,13 +1,13 @@
-@c -*- coding: utf-8; mode: texinfo; -*-
+@c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 @c This file is part of lilypond.tely
 @ignore
-    Translation of GIT committish: 85b54e04be6730bd0781f3135ee741010e099fd8
+    Translation of GIT committish: 41ef91786a08102d9b9a839f6a2f40cec263d723
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 
 @c TODO: add tablature.
index e3b72dc6f5f8b7ffec29ab306c2613882af48424..c2095dbcbcf5883684afd62e65f501c4ebc99b89 100644 (file)
@@ -1,22 +1,24 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 @c This file is part of lilypond.tely
 @ignore
-    Translation of GIT committish: 85b54e04be6730bd0781f3135ee741010e099fd8
+    Translation of GIT committish: 41ef91786a08102d9b9a839f6a2f40cec263d723
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @node Chord notation
 @section Chord notation
 
+@lilypondfile[quote]{chords-headword.ly}
+
 Los acordes se pueden escribir en el modo de acordes, que reconoce
 ciertas convenciones europeas tradicionales de nomenclatura de
 acordes.  También se pueden imprimir los nombres de los acordes.
 Además se puede imprimir notación de bajo cifrado.
-
 @menu
 * Chord mode::
 * Displaying chords::
@@ -76,9 +78,9 @@ secuencial:
 \chordmode { f2 g }
 @end lilypond
 
-@seealso
 
-Glossario musical:
+@seealso
+Glosario musical:
 @rglos{chord}.
 
 Referencia de la notación:
@@ -88,6 +90,7 @@ Referencia de la notación:
 Fragmentos de código:
 @rlsr{Chords}
 
+
 @knownissues
 
 Cuando se mezclan los modos de acorde y de nota en música secuencial,
@@ -144,33 +147,106 @@ Se pueden crear acordes de séptima:
 @funindex m
 
 La tabla que aparece más abajo muestra el efecto de los modificadores
-de variante sobre los acordes de tríada y de séptima.
+de variante sobre los acordes de tríada y de séptima.  La séptima
+añadida de forma predeterminada a los acordes es menor, lo que hace
+del acorde de séptima dominante el acorde básico de séptima.  Todas
+las alteraciones se consideran en relación con la séptima dominante.
+Hay una tabla más completa donde aparecen los usos de los
+modificadores en @ref{Common chord modifiers}.
 
-@table @code
+@c @table @code
+@multitable @columnfractions .2 .4 .3
+
+@item
+@b{Modificador}
+@tab
+@b{Acción}
+@tab
+@b{Ejemplo}
 
-@item m
-Acorde menor.  Este modificador baja la tercera y, si existe, la
-séptima.
+@item
+Ninguno
+@tab
+Acción predeterminada; produce una tríada mayor.
+@tab
+@lilypond[line-width=4\cm, noragged-right]
+\chordmode {
+  \override Staff.TimeSignature #'stencil = ##f
+  c1
+}
+@end lilypond
 
-@item dim
+@item
+m, m7
+@tab
+Acorde menor.  Este modificador baja la tercera.
+@tab
+@lilypond[line-width=4\cm, noragged-right]
+\chordmode {
+  \override Staff.TimeSignature #'stencil = ##f
+  c1:m c:m7
+}
+@end lilypond
+
+
+@item
+dim, dim7
+@tab
 Acorde disminuido.  Este modificador baja la tercera, la quinta y, si
 existe, la séptima.
+@tab
+@lilypond[line-width=4\cm, noragged-right]
+\chordmode {
+  \override Staff.TimeSignature #'stencil = ##f
+  c1:dim c:dim7
+}
+@end lilypond
 
-@item aug
+@item
+aug
+@tab
 Acorde aumentado.  Este modificador eleva la quinta.
+@tab
+@lilypond[line-width=4\cm, noragged-right]
+\chordmode {
+  \override Staff.TimeSignature #'stencil = ##f
+  c1:aug
+}
+@end lilypond
 
-@item maj
+@item
+maj, maj7
+@tab
 Acorde de séptima mayor.  Este modificador añade una séptima elevada.
 El @code{7} que sigue a @code{maj} es opcional.  NO utilice este
 modificador para crear una tríada mayor.
+@tab
+@lilypond[line-width=4\cm, noragged-right]
+\chordmode {
+  \override Staff.TimeSignature #'stencil = ##f
+  c1:maj c:maj7
+}
+@end lilypond
+
+@end multitable
 
-@end table
 
 @seealso
+Referencia de la notación:
+@ref{Common chord modifiers},
+@ref{Extended and altered chords}.
 
 Fragmentos de código:
 @rlsr{Chords}.
 
+@knownissues
+Sólo se puede usar un modificador por cada acorde, normalmente sobre
+la nota más aguda del mismo.  Los acordes con más de un modificador se
+analizan sin producir errores ni advertencias, pero el resultado es
+impredecible.  Los acordes que no se pueden conseguir con un solo
+modificador se deben alterar en sus notas individuales como se
+describe en @ref{Extended and altered chords}.
+
 @node Extended and altered chords
 @unnumberedsubsubsec Extended and altered chords
 
@@ -184,11 +260,12 @@ acorde y añadir un bajo distinto o crear una inversión.
 
 El primer número que sigue al @code{:} se considera que es el ámbito
 del acorde.  El acorde se construye secuencialmente añadiendo terceras
-a la fundamental hasta que se alcanza el número especificado.  Si el
-ámbito no es una tercera (p.ej. 6), se añaden terceras hasta la
-tercera más alta inferior al ámbito, y después se añade la nota del
-ámbito.  El mayor valor posible para el ámbito es 13.  Cualquier valor
-mayor se interpreta como 13.
+a la fundamental hasta que se alcanza el número especificado.  Observe
+que la séptima añadida como parte de un acorde extendido es la séptima
+menor, no mayor.  Si el ámbito no es una tercera (p.ej. 6), se añaden
+terceras hasta la tercera más alta inferior al ámbito, y después se
+añade la nota del ámbito.  El mayor valor posible para el ámbito es
+13.  Cualquier valor mayor se interpreta como 13.
 
 @lilypond[quote,ragged-right,fragment,verbatim,relative=1]
 \chordmode {
@@ -216,7 +293,8 @@ con una trecena sin alteración, se elimina la oncena de los acordes de
 @cindex adiciones en acordes
 
 Se pueden añadir notas individuales a un acorde.  Las adiciones siguen
-el ámbito y van prefijadas por un punto (@code{.}).
+el ámbito y van prefijadas por un punto (@code{.}).  La séptima normal
+que se añade a un acorde es la séptima menor, no mayor.
 
 @lilypond[quote,verbatim,fragment,relative=1]
 \chordmode {
@@ -256,7 +334,7 @@ modificadora.
 
 @lilypond[quote,verbatim,fragment,relative=1]
 \chordmode {
-  c1^3 c:7^5 c:9^3.5
+  c1^3 c:7^5 c:9^3 c:9^3.5 c:13.11^3.7
 }
 @end lilypond
 
@@ -264,7 +342,7 @@ modificadora.
 
 Se puede añadir el modificador @code{sus} a la cadena modificadora
 para crear acordes suspendidos.  Esto elimina la tercera del acorde.
-Esciba bien @code{2} o bien @code{4} para añadir la seguna o la cuarta
+Escriba bien @code{2} o bien @code{4} para añadir la segunda o la cuarta
 al acorde, respectivamente.  @code{sus} equivale a @code{^3};
 @code{sus4} equivale a @code{.4^3}.
 
@@ -274,9 +352,6 @@ al acorde, respectivamente.  @code{sus} equivale a @code{^3};
 }
 @end lilypond
 
-Es posible eliminar la tercera con @code{sus} y eliminar otra nota con
-@code{^} dentro de una cadena modificadora.
-
 @funindex /
 @cindex acordes, inversiones
 @cindex bajo de los acordes
@@ -304,10 +379,18 @@ de ser movida por efecto de una inversión, mediante el uso de
 }
 @end lilypond
 
+Los modificadores de acorde que se pueden utilizar para producir una
+amplia variedad de acordes estándar se muestran en @ref{Common chord
+modifiers}.
+
+
 @seealso
+Referencia de la notación:
+@ref{Common chord modifiers}.
 
 Fragmentos de código:
-@rlsr{Chords}
+@rlsr{Chords}.
+
 
 @knownissues
 
@@ -319,10 +402,6 @@ interpreta en último lugar.
 \chordmode { c1:5.5-.5+ }
 @end lilypond
 
-Sólo se puede eliminar una nota de un acorde.  Si se desa hacer un
-acorde con varias notas eliminadas, se debe construir a través de la
-adición de varias notas.
-
 Sólo se puede crear la primera inversión mediante la adición de un
 bajo.  La segunda inversión requiere cambiar la fundamental del
 acorde.
@@ -416,8 +495,8 @@ inversiones o bajos añadidos:
 @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
 {simple-lead-sheet.ly}
 
-@seealso
 
+@seealso
 Glosario musical:
 @rglos{chord}.
 
@@ -434,6 +513,7 @@ Referencia de funcionamiento interno:
 @rinternals{Volta_engraver},
 @rinternals{Bar_engraver}.
 
+
 @knownissues
 
 Los acordes que contienen inversiones o bajos alterados no reciben un
@@ -446,7 +526,7 @@ nombre adecuado si se escriben usando música simultánea.
 
 No hay un sistema único para nombrar acordes.  Las distintas
 tradiciones musicales usan distintos nombres para el mismo conjunto de
-acordes.  Tabién hay distintos símbolos impresos para un nombre de
+acordes.  También hay distintos símbolos impresos para un nombre de
 acorde dado.  Los nombres y símbolos que se imprimen para los nombres
 de acorde dados se pueden personalizar.
 
@@ -487,7 +567,7 @@ El nombre de acorde se imprime normalmente como una letra para la
 fundamental con una alteración opcional.  La transformación de la nota
 en la letra se realiza por parte de esta función.  Los nombres de nota
 especiales (por ejemplo, la @q{H} alemana para un acorde de Si) se
-pueden producir almacenando una cunción nueva en esta propiedad.
+pueden producir almacenando una función nueva en esta propiedad.
 
 @funindex majorSevenSymbol
 
@@ -533,15 +613,15 @@ el nombre del acorde.
 @item chordPrefixSpacer
 
 La @q{m} de los acordes menores se imprime por lo general
-imediatamente a la derecha de la fundamental.  Se puede insertar un
+inmediatamente a la derecha de la fundamental.  Se puede insertar un
 símbolo separador entre la fundamental y @q{m} estableciendo
 @code{chordPrefixSpacer}.  El símbolo separador no se usa cuando el
 acorde está alterado.
 
 @end table
 
-@predefined
 
+@predefined
 @funindex major seven symbols
 @code{\whiteTriangleMarkup},
 @code{\blackTriangleMarkup},
@@ -553,6 +633,8 @@ acorde está alterado.
 @code{\italianChords},
 @funindex \frenchChords
 @code{\frenchChords}.
+@endpredefined
+
 
 @snippets
 
@@ -564,32 +646,21 @@ acorde está alterado.
 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
 {chord-name-major7.ly}
 
-@c @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
-@c {adding-bars-to-chordnames.ly)
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{adding-bar-lines-to-chordnames-context.ly}
 
-@c @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
-@c {volta-brackets-over-chord-names.ly}
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{volta-below-chords.ly}
 
-@c TODO  convert to snippet
-@c @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
-@c {changing-chord-separator.ly}
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{changing-chord-separator.ly}
 
-El separador entre las distintas partes del nombre de un acorde se
-puede establecer para que sea cualquier elemento de marcado.
 
-@lilypond[quote,ragged-right,fragment,verbatim]
-\chords {
-  c:7sus4
-  \set chordNameSeparator
-    = \markup { \typewriter "|" }
-  c:7sus4
-}
-@end lilypond
 
 @seealso
-
 Referencia de la notación:
-@ref{Chord name chart}.
+@ref{Chord name chart},
+@ref{Common chord modifiers}.
 
 Archivos instalados:
 @file{scm/@/chords@/-ignatzek@/.scm},
@@ -602,6 +673,7 @@ Fragmentos de código:
 @c Internals Reference:
 @c @rinternals{  }.
 
+
 @knownissues
 
 Los nombres de acorde se determinan a partir de las notas que están
@@ -625,6 +697,8 @@ myChords = \relative c' {
 @node Figured bass
 @subsection Figured bass
 
+@lilypondfile[quote]{figured-bass-headword.ly}
+
 Se puede imprimir notación de bajo cifrado.
 
 @menu
@@ -683,8 +757,8 @@ impresión de las cifras.  Por ejemplo, el espaciado vertical de las
 cifras se puede ajustar con @code{baseline-skip}.
 @end ignore
 
-@seealso
 
+@seealso
 Glosario musical:
 @rglos{figured bass}.
 
@@ -695,7 +769,7 @@ Fragmentos de código:
 @node Entering figured bass
 @unnumberedsubsubsec Entering figured bass
 
-Se usa @code{\figuremode} para cambiar el mod de entrada al modo de
+Se usa @code{\figuremode} para cambiar el modo de entrada al modo de
 cifras.  Hay más información sobre los distintos modos de entrada en
 @ref{Input modes}.
 
@@ -800,7 +874,7 @@ La siguiente tabla resume los modificadores de cifrado disponibles.
 @multitable @columnfractions .1 .5 .4
 
 @item
-@b{Modifcador}
+@b{Modificador}
 @tab
 @b{Propósito}
 @tab
@@ -864,14 +938,15 @@ Fin de línea de continuación
 @cindex bajo cifrado, líneas de extensión
 @code{\bassFigureExtendersOn},
 @code{\bassFigureExtendersOff}.
+@endpredefined
+
 
 @snippets
-@c TODO  Fix this snippet -- Plus direction should be RIGHT.
 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
 {changing-the-positions-of-figured-bass-alterations.ly}
 
-@seealso
 
+@seealso
 Fragmentos de código:
 @rlsr{Chords}.
 
@@ -883,8 +958,10 @@ Referencia de funcionamiento interno:
 @rinternals{BassFigureContinuation},
 @rinternals{FiguredBass}.
 
+
 @c @knownissues
 
+
 @node Displaying figured bass
 @unnumberedsubsubsec Displaying figured bass
 
@@ -919,11 +996,6 @@ El bajo cifrado se puede añadir también a contextos de @code{Staff}
 directamente.  En este caso, la posición vertical de las cifras se
 ajusta automáticamente.
 
-@c TODO add a second paragraph to show direction change.  First
-@c   example should be UP (default), second should be DOWN.
-
-@c  TODO change to use predefined command once it is added to
-@c  property-init.ly  -cds
 @lilypond[verbatim,ragged-right,fragment,quote]
 <<
   \new Staff = myStaff
@@ -960,48 +1032,33 @@ se puede presentar encima o debajo del mismo.
 >>
 @end lilypond
 
-@ignore
-@c I don't understand this -cs
-When using continuation lines, common figures are always put in the
-same vertical position.  When this is unwanted, you can insert a rest.
-The rest will clear any previous alignment.  For
-example, you can write
-
-@example
-<6 4>8 r8
-@end example
-
-@noindent
-instead of
-@example
-<4 6>4
-@end example
-@end ignore
 
 @predefined
 @cindex bajo cifrado, alineación
 @code{\bassFigureStaffAlignmentDown},
 @code{\bassFigureStaffAlignmentUp},
 @code{\bassFigureStaffAlignmentNeutral}.
+@endpredefined
+
 
 @c @snippets
 
 @seealso
 @c Music Glossary:
 @c @rg los{}.
-
+@c
 @c Learning Manual:
 @c @rle arning{}.
-
+@c
 @c Notation Reference:
 @c @re f{}.
-
+@c
 @c Application Usage:
 @c @rpr ogram{}.
-
+@c
 @c Installed Files:
 @c @fil e{}.
-
+@c
 Snippets:
 @rlsr{Chords}.
 
@@ -1013,6 +1070,7 @@ Referencia de funcionamiento interno:
 @rinternals{BassFigureContinuation},
 @rinternals{FiguredBass}.
 
+
 @knownissues
 
 Para asegurar que las líneas extensoras funcionan adecuadamente, lo
index 516422590bd9bd0d9f0c4ad770d47e2a7caba84b..b08dd151d00a7bce1b3a8a6599449a0754c627aa 100644 (file)
@@ -1,22 +1,22 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 @c This file is part of lilypond-program.tely
 @ignore
-    Translation of GIT committish: 88f1608ae6fd17b05344bafb2f0721aafdac657b
+    Translation of GIT committish: 41ef91786a08102d9b9a839f6a2f40cec263d723
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @node Converting from other formats
 @chapter Converting from other formats
 
 También se puede escribir la música a través de su importación desde
 otros formatos.  Este capítulo trata de documentar las herramientas
-incluidas en la dirstribución que permiten hacerlo.  Existen otras
+incluidas en la distribución que permiten hacerlo.  Existen otras
 herramientas que producen código de entrada de LilyPond, como por
-ejemplo secuenciadores con interfaz gráfico y comvertidores de XML.
+ejemplo secuenciadores con interfaz gráfico y convertidores de XML.
 Consulte el @uref{http://@/lilypond@/.org,website} para ver más
 detalles.
 
@@ -29,7 +29,7 @@ p.ej. @code{convert-ly}, consulte @ref{Setup for MacOS X}.
 
 @knownissues
 Por desgracia no disponemos de los recursos necesarios para poder
-mantener estos programas; le rogramos que los tome @qq{tal cual
+mantener estos programas; le rogamos que los tome @qq{tal cual
 están}.  Se agradecerá el envío de parches correctores, pero los
 informes de fallo casi con certeza no se resolverán a medio plazo.
 
@@ -48,7 +48,7 @@ informes de fallo casi con certeza no se resolverán a medio plazo.
 
 @cindex MIDI
 
-@command{midi2ly} traduce un archivo MIDI de tipo@tie{}1 a un acrhivo
+@command{midi2ly} traduce un archivo MIDI de tipo@tie{}1 a un archivo
 de código fuente de LilyPond.
 
 El MIDI (Music Instrument Digital Interface, Interfase Digital para
@@ -87,7 +87,7 @@ formats} para ver más información sobre esto.
 
 @table @code
 @item -a, --absolute-pitches
-Imprimir alturas absoultas.
+Imprimir alturas absolutas.
 
 @item -d, --duration-quant=@var{DURACIÓN}
 Cuantizar las duraciones a @var{DURACIÓN}.
@@ -238,7 +238,7 @@ fijar el nombre del archivo de salida como @var{archivo}.
 @item -s,--strict
 ser estricto respecto al éxito
 @item --version
-imprimir la infomación de la versión.
+imprimir la información de la versión.
 @end table
 
 Existe una posibilidad rudimentaria para añadir código de LilyPond el
index 837c28be789a9a4f5537b87c77e879bffd47a63f..95ac2e4af6ed47ab0ea573a31074f1889c5234da 100644 (file)
@@ -1,13 +1,13 @@
 @c -*- coding: utf-8; mode: texinfo; -*-
 @c This file is part of lilypond.tely
 @ignore
-    Translation of GIT committish: 85b54e04be6730bd0781f3135ee741010e099fd8
+    Translation of GIT committish: 41ef91786a08102d9b9a839f6a2f40cec263d723
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @quotation
 Queremos dedicar este programa a todos los amigos que hemos
index 1b392fa4618cf628ba98ba8075213afe33946f0f..09c49e303d13da9568fd9a2187720ea439f32ef0 100644 (file)
@@ -1,13 +1,13 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 @c This file is included from notation.itely
 @ignore
-    Translation of GIT committish: 85b54e04be6730bd0781f3135ee741010e099fd8
+    Translation of GIT committish: ccd5be7a5e4ec9e1c1dfdcecc1eb290d8c4a59fc
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @node Editorial annotations
 @section Editorial annotations
@@ -45,6 +45,7 @@ dentro del pentagrama.
 @cindex selección del tamaño de la fuente tipográfica (de notación)
 @cindex notación, tamaño de la fuente
 @cindex notas, cabezas de
+
 @funindex fontSize
 @funindex font-size
 @funindex magstep
@@ -108,6 +109,7 @@ c4.-> d8---3
 
 @cindex estándar, tamaño de la tipografía (de notación)
 @cindex fuente tipográfica (de notación), tamaño estándar de
+
 @funindex font-interface
 @funindex font-size
 
@@ -118,26 +120,21 @@ deseado.  El tamaño estándar para la tipografía (para @code{font-size
 pentagrama de 20 puntos, se selecciona una fuente de 10 puntos.
 
 La propiedad @code{font-size} sólo se puede establecer en objetos
-gráficos que utilicesn fuentes tipográficas.  Éstos son los que
+gráficos que utilicen fuentes tipográficas.  Éstos son los que
 contemplan el interfaz de presentación @code{font-interface}.
 
-@predefined
 
-@funindex \teeny
+@predefined
 @code{\teeny} (enano),
-@funindex \tiny
 @code{\tiny} (muy pequeño),
-@funindex \small
 @code{\small} (pequeño),
-@funindex \normalsize
 @code{\normalsize} (normal),
-@funindex \large
 @code{\large} (grande),
-@funindex \huge
 @code{\huge} (enorme).
+@endpredefined
 
-@seealso
 
+@seealso
 Fragmentos de código:
 @rlsr{Editorial annotations}.
 
@@ -150,8 +147,9 @@ Referencia de funcionamiento interno:
 
 @cindex digitación
 @cindex cambio de dedo
-@funindex font-interface
-@funindex font-size
+
+@funindex \finger
+@funindex finger
 
 Las instrucciones de digitación se pueden introducir usando
 @var{nota}-@var{dígito}:
@@ -167,6 +165,7 @@ c4-1 d-2 f-4 c^\markup { \finger "2 - 3" }
 @end lilypond
 
 @cindex thumb-script
+
 @funindex \thumb
 @funindex thumb
 
@@ -174,7 +173,7 @@ Puede usar la articulación de pulgar para indicar que una nota se debe
 tocar con el pulgar (p.ej. en música de cello).
 
 @lilypond[verbatim,quote,relative=2]
-<a_\thumb a'-3>8 <b_\thumb b'-3>
+<a_\thumb a'-3>2 <b_\thumb b'-3>
 @end lilypond
 
 @cindex digitación de acordes
@@ -200,10 +199,13 @@ and placement}.
 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
 {allowing-fingerings-to-be-printed-inside-the-staff.ly}
 
-@seealso
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{avoiding-collisions-with-chord-fingerings.ly}
 
+
+@seealso
 Referencia de la notación:
-@ref{Direction and placement}
+@ref{Direction and placement}.
 
 Fragmentos de código:
 @rlsr{Editorial annotations}.
@@ -225,6 +227,7 @@ Referencia de funcionamiento interno:
 @cindex notas ocultas
 @cindex notas invisibles
 @cindex notas transparentes
+
 @funindex \hideNotes
 @funindex hideNotes
 @funindex \unHideNotes
@@ -254,12 +257,14 @@ c4( d)
 e4(\p f)--
 @end lilypond
 
+
 @predefined
+@code{\hideNotes},
+@code{\unHideNotes}.
+@endpredefined
 
-@code{\hideNotes}, @code{\unHideNotes}
 
 @seealso
-
 Fragmentos de código:
 @rlsr{Editorial annotations}.
 
@@ -273,7 +278,8 @@ Referencia de funcionamiento interno:
 
 @cindex coloreados, objetos
 @cindex colores
-@cindex colorear objects
+@cindex colorear objetos
+@cindex objetos, colorear
 @cindex coloreadas, notas
 @cindex colorear notas
 @cindex notas coloreadas
@@ -281,6 +287,7 @@ Referencia de funcionamiento interno:
 @cindex x11-color
 @cindex colores de x11
 @cindex with-color
+
 @funindex color
 @funindex \with-color
 @funindex with-color
@@ -330,6 +337,7 @@ b2 cis
 @cindex rgb-color
 @cindex color rgb
 @cindex rgb, color
+
 @funindex rgb-color
 
 Se pueden especificar colores RGB exactos utilizando la función de
@@ -349,8 +357,8 @@ gis8 a
 gis4 a
 @end lilypond
 
-@seealso
 
+@seealso
 Referencia de la notación:
 @ref{List of colors},
 @ref{The tweak command}.
@@ -358,10 +366,12 @@ Referencia de la notación:
 Fragmentos de código:
 @rlsr{Editorial annotations}.
 
+
 @cindex x11,  color de
 @cindex coloreadas, notas de acorde
 @cindex notas coloreadas en acordes
 @cindex color en acordes
+
 @funindex x11-color
 
 @knownissues
@@ -386,6 +396,7 @@ ver más detalles.
 @cindex notas fantasma
 @cindex notas entre paréntesis
 @cindex paréntesis
+
 @funindex \parenthesize
 @funindex parenthesize
 
@@ -401,18 +412,20 @@ c2 <c \parenthesize e g>
 @end lilypond
 
 Los objetos que no son notas también se pueden poner entre paréntesis.
+Para las articulaciones se necesita un guión antes de la instrucción
+@code{\parenthesize}.
 
 @lilypond[verbatim,quote,relative=2]
 c2-\parenthesize -. d
 c2 \parenthesize r
 @end lilypond
 
-@seealso
 
+@seealso
 Fragmentos de código:
 @rlsr{Editorial annotations}.
 
-Referencia de funciionamiento interno:
+Referencia de funcionamiento interno:
 @rinternals{Parenthesis_engraver},
 @rinternals{ParenthesesItem},
 @rinternals{parentheses-interface}.
@@ -423,37 +436,41 @@ Al poner un acorde entre paréntesis, se encierra cada una de las notas
 individuales entre paréntesis, en vez de un solo paréntesis grande
 rodeando al acorde completo.
 
+
 @node Stems
 @unnumberedsubsubsec Stems
 
 @cindex plica
 @cindex plica invisible
 @cindex invisible, plica
+@cindex plica, dirección
+@cindex plica arriba
+@cindex plica abajo
+@cindex plica neutral
+
+@funindex \stemUp
+@funindex stemUp
+@funindex \stemDown
+@funindex stemDown
+@funindex \stemNeutral
+@funindex stemNeutral
 
 Cuando se encuentra con una nota, se crea automáticamente un objeto
 @code{Stem} (plica).  Para las redondas y los silencios, también se
 crean pero se hacen invisibles.
 
 @predefined
-
-@funindex \stemUp
 @code{\stemUp},
-@funindex \stemDown
 @code{\stemDown},
-@funindex \stemNeutral
 @code{\stemNeutral}.
-
+@endpredefined
 
 @snippets
 
-@cindex stem, direction
-@cindex stem, up
-@cindex stem, down
-@cindex stem, neutral
-
 @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
 {default-direction-of-stems-on-the-center-line-of-the-staff.ly}
 
+
 @seealso
 Referencia de la notación:
 @ref{Direction and placement}.
@@ -486,11 +503,16 @@ pentagrama, desde fuera del pentagrama.
 @cindex notación, explicación de
 @cindex globo de ayuda
 @cindex ayuda, globos de
+
 @funindex \balloonGrobText
 @funindex \balloonText
 @funindex Balloon_engraver
 @funindex balloonGrobText
 @funindex balloonText
+@funindex \balloonLengthOn
+@funindex balloonLengthOn
+@funindex \balloonLengthOff
+@funindex balloonLengthOff
 
 Los elementos de notación se pueden marcar y nombrar con la ayuda de
 un cartel o globo de ayuda rectangular.  El propósito principal de
@@ -510,7 +532,7 @@ esta funcionalidad es la explicación de la notación.
 
 Existen dos funciones musicales, @code{balloonGrobText} y
 @code{balloonText}; el primero se usa como @code{\once\override} para
-adjuntar un texto a cualquier grob, y el último se usa coqmo
+adjuntar un texto a cualquier grob, y el último se usa como
 @code{\tweak}, normalmente dentro de acordes, para adjuntar un texto a
 una nota individual.
 
@@ -533,16 +555,12 @@ pero esto puede cambiarse:
 
 
 @predefined
+@code{\balloonLengthOn},
+@code{\balloonLengthOff}.
+@endpredefined
 
-@funindex balloonLengthOn
-@funindex balloonLengthOff
-@funindex \balloonLengthOn
-@funindex \balloonLengthOff
-
-@code{\balloonLengthOn}, @code{\balloonLengthOff}
 
 @seealso
-
 Fragmentos de código:
 @rlsr{Editorial annotations}.
 
@@ -559,6 +577,7 @@ Referencia de funcionamiento interno:
 @cindex líneas de rejilla
 @cindex vertical, línea, entre pentagramas
 @cindex línea vertical entre pentagramas
+
 @funindex Grid_point_engraver
 @funindex Grid_line_span_engraver
 @funindex gridInterval
@@ -610,7 +629,6 @@ especificar la duración entre las líneas de rejilla.
 
 
 @seealso
-
 Fragmentos de código:
 @rlsr{Editorial annotations}.
 
@@ -630,9 +648,11 @@ Referencia de funcionamiento interno:
 @cindex fraseo, corchetes de
 @cindex corchetes de fraseo
 @cindex musicológico, análisis
+@cindex análisis musicológico
 @cindex notas, corchetes de agrupación de
 @cindex horizontal, corchete
 @cindex corchete horizontal
+
 @funindex Horizontal_bracket_engraver
 @funindex \startGroup
 @funindex startGroup
@@ -673,8 +693,8 @@ Los corchetes de análisis se pueden anidar.
 }
 @end lilypond
 
-@seealso
 
+@seealso
 Fragmentos de código:
 @rlsr{Editorial annotations}.
 
index 28237a31150a7499d5824eb3481873f29e1e37b2..208a95efe0a865ae08772b5bc59c47a38aadfc07 100644 (file)
@@ -1,12 +1,12 @@
-@c -*- coding: utf-8; mode: texinfo; -*-
+@c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 @ignore
-    Translation of GIT committish: 541aafa12474496930f99f617890a944c3db4989
+    Translation of GIT committish: 41ef91786a08102d9b9a839f6a2f40cec263d723
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @node Expressive marks
 @section Expressive marks
@@ -124,10 +124,11 @@ por debajo del pentagrama, véase @ref{Direction and placement}.
 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
 {controlling-the-vertical-ordering-of-scripts.ly}
 
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{creating-a-delayed-turn.ly}
 
 @seealso
-
-Gloario musical:
+Glosario musical:
 @rglos{tenuto},
 @rglos{accent},
 @rglos{staccato},
@@ -202,8 +203,8 @@ para ver más detalles, consulte @ref{Direction and placement}.
 
 @lilypond[verbatim,quote,relative=2]
 c2\ppp c\mp
-c\rfz c^\mf
-c_\spp c^\ff
+c2\rfz c^\mf
+c2_\spp c^\ff
 @end lilypond
 
 @cindex regulador
@@ -278,7 +279,7 @@ g1\espressivo
 @funindex dimHairpin
 
 Los crescendi y decrescendi se pueden tipografiar como marcas
-textuales en lugar de reguladores.  Las instrucciones incorporadaas
+textuales en lugar de reguladores.  Las instrucciones incorporadas
 que activan estos modos de texto son @code{\crescTextCresc},
 @code{\dimTextDecresc}, @code{\dimTextDecr} y @code{\dimTextDim}.  Las
 instrucciones correspondientes @code{\crescHairpin} y
@@ -314,8 +315,8 @@ parte de @rinternals{DynamicLineSpanner}.
 @funindex \dynamicNeutral
 @funindex dynamicNeutral
 
-@predefined
 
+@predefined
 @code{\dynamicUp},
 @code{\dynamicDown},
 @code{\dynamicNeutral},
@@ -325,6 +326,8 @@ parte de @rinternals{DynamicLineSpanner}.
 @code{\dimTextDecresc},
 @code{\crescHairpin},
 @code{\dimHairpin}.
+@endpredefined
+
 
 @snippets
 
@@ -349,8 +352,8 @@ parte de @rinternals{DynamicLineSpanner}.
 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
 {changing-text-and-spanner-styles-for-text-dynamics.ly}
 
-@seealso
 
+@seealso
 Glosario musical:
 @rglos{al niente},
 @rglos{crescendo},
@@ -464,8 +467,8 @@ moltoF = #(make-dynamic-script
 Los ajustes para las fuentes tipográficas en el modo de marcado se
 describen en @ref{Selecting font and font size}.
 
-@seealso
 
+@seealso
 Referencia de la notación:
 @ref{Formatting text},
 @ref{Selecting font and font size},
@@ -568,14 +571,15 @@ g4( e c2)
 @funindex \slurUp
 @funindex slurUp
 
-@predefined
 
+@predefined
 @code{\slurUp},
 @code{\slurDown},
 @code{\slurNeutral},
 @code{\slurDashed},
 @code{\slurDotted},
 @code{\slurSolid}.
+@endpredefined
 
 
 @snippets
@@ -583,9 +587,10 @@ g4( e c2)
 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
 {using-double-slurs-for-legato-chords.ly}
 
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{positioning-text-markups-inside-slurs.ly}
 
 @seealso
-
 Glosario musical:
 @rglos{slur}.
 
@@ -628,6 +633,12 @@ e2) d\)
 @funindex phrasingSlurDown
 @funindex \phrasingSlurNeutral
 @funindex phrasingSlurNeutral
+@funindex phrasingSlurDashed
+@funindex \phrasingSlurDashed
+@funindex \phrasingSlurDotted
+@funindex phrasingSlurDotted
+@funindex \phrasingSlurSolid
+@funindex phrasingSlurSolid
 
 Tipográficamente, la ligadura de fraseo se comporta casi exactamente
 igual que una ligadura de expresión normal.  Sin embargo, se tratan
@@ -651,14 +662,31 @@ c4\( g' c,( b) | c1\)
 
 No se pueden tener varias ligaduras de fraseo simultáneas o solapadas.
 
-@predefined
+Las ligaduras de fraseo pueden ser continuas, de puntos o de rayas.
+El estilo predeterminado para las ligaduras de fraseo es el continuo:
 
+@lilypond[verbatim,quote,relative=1]
+c4\( e g2\)
+\phrasingSlurDashed
+g4\( e c2\)
+\phrasingSlurDotted
+c4\( e g2\)
+\phrasingSlurSolid
+g4\( e c2\)
+@end lilypond
+
+
+@predefined
 @code{\phrasingSlurUp},
 @code{\phrasingSlurDown},
-@code{\phrasingSlurNeutral}.
+@code{\phrasingSlurNeutral},
+@code{\phrasingSlurDashed},
+@code{\phrasingSlurDotted},
+@code{\phrasingSlurSolid}.
+@endpredefined
 
-@seealso
 
+@seealso
 Manual de aprendizaje:
 @rlearning{On the un-nestedness of brackets and ties}.
 
@@ -700,8 +728,8 @@ detalles, consulte @ref{Divisiones}.
 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
 {inserting-a-caesura.ly}
 
-@seealso
 
+@seealso
 Glosario musical:
 @rglos{caesura}.
 
@@ -747,8 +775,8 @@ al escribir caídas y elevaciones.
 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
 {adjusting-the-shape-of-falls-and-doits.ly}
 
-@seealso
 
+@seealso
 Glosario musical:
 @rglos{fall},
 @rglos{doit}.
@@ -792,8 +820,8 @@ consulte @ref{Line styles}.
 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
 {contemporary-glissando.ly}
 
-@seealso
 
+@seealso
 Glosario musical:
 @rglos{glissando}.
 
@@ -806,6 +834,7 @@ Fragmentos de código:
 Referencia de funcionamiento interno:
 @rinternals{Glissando}.
 
+
 @knownissues
 
 La impresión de texto sobre la línea (como @notation{gliss.}) no está
@@ -872,8 +901,8 @@ Se pueden crear símbolos especiales de arpegio @emph{con corchete}:
 Los acordes arpegiados se pueden desarrollar explícitamente utilizando
 @notation{ligaduras de unión}.  Véase @ref{Ties}.
 
-@predefined
 
+@predefined
 @funindex \arpeggio
 @code{\arpeggio},
 @funindex \arpeggioArrowUp
@@ -884,6 +913,8 @@ Los acordes arpegiados se pueden desarrollar explícitamente utilizando
 @code{\arpeggioNormal},
 @funindex \arpeggioBracket
 @code{\arpeggioBracket}.
+@endpredefined
+
 
 @snippets
 
@@ -896,8 +927,8 @@ Los acordes arpegiados se pueden desarrollar explícitamente utilizando
 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
 {creating-arpeggios-across-notes-in-different-voices.ly}
 
-@seealso
 
+@seealso
 Glosario musical:
 @rglos{arpeggio}.
 
@@ -911,6 +942,7 @@ Referencia de funcionamiento interno:
 @rinternals{Arpeggio},
 @rinternals{PianoStaff}.
 
+
 @knownissues
 
 @cindex pentagrama cruzado, arpegios con paréntesis
@@ -957,15 +989,15 @@ d1\startTrillSpan { c32[ d]\stopTrillSpan }
 e2 r2
 @end lilypond
 
-@cindex pitched trills
-@cindex trills, pitched
+@cindex trinos de nota explícita
+@cindex explícita, trinos de nota
 @funindex \pitchedTrill
 @funindex pitchedTrill
 
 Los trinos que se tienen que ejecutar sobre notas auxiliares
 explícitas se pueden tipografiar con la instrucción
 @code{pitchedTrill}.  El primer argumento es la nota principal, y el
-segndo es la nota @emph{trinada}, que se imprime como una cabeza de
+segundo es la nota @emph{trinada}, que se imprime como una cabeza de
 nota, sin plica y entre paréntesis.
 
 @lilypond[verbatim,quote,relative=1]
@@ -992,13 +1024,14 @@ g\stopTrillSpan
 g\stopTrillSpan
 @end lilypond
 
-@predefined
 
+@predefined
 @code{\startTrillSpan},
 @code{\stopTrillSpan}.
+@endpredefined
 
-@seealso
 
+@seealso
 Glosario musical:
 @rglos{trill}.
 
index 6402336cc712619241e38f027215452e45e023e1..5b8f10888036e86265fe17a7c707cf5d0765248e 100644 (file)
@@ -1,13 +1,13 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 @c This file is part of lilypond.tely
 @ignore
-    Translation of GIT committish: 770ccfb9bd8536d7fb570a5c25ce874a461486f0
+    Translation of GIT committish: 41ef91786a08102d9b9a839f6a2f40cec263d723
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @node Fretted string instruments
 @section Fretted string instruments
@@ -19,7 +19,7 @@ exclusivos de los instrumentos de cuerda con trastes.
 
 @cindex tablatura
 @cindex guitarra, tablatura de
-@cindex tablatura de banj
+@cindex tablatura de banjo
 @cindex banjo, tablatura de
 
 @menu
@@ -61,21 +61,24 @@ manual:
 
 @itemize
 @item
-Las digitaciones se indican con @ref{Fingering instructions}.
+Las digitaciones se indican como se explica en @ref{Fingering instructions}.
 
 @item
 Las instrucciones para ligaduras @notation{Laissez vibrer} así como
-ligaduras de unión sobre arpegios y trémolos se describe en
+ligaduras de unión sobre arpegios y trémolos están en
 @ref{Ties}.
 
 @item
-Las instrucciones para el manejo de varias voces se describe en
+Las instrucciones para el manejo de varias voces se encuentran en
 @ref{Collision resolution}.
 
+@item Las instrucciones para la indicación de armónicos está en
+@ref{Harmonics}.
+
 @end itemize
 
-@seealso
 
+@seealso
 Referencia de la notación:
 @ref{Fingering instructions},
 @ref{Ties},
@@ -86,6 +89,7 @@ Referencia de la notación:
 @ref{List of articulations},
 @ref{Clef}.
 
+
 @node String number indications
 @unnumberedsubsubsec String number indications
 
@@ -125,8 +129,8 @@ estos elementos en el código:
 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
 {allowing-fingerings-to-be-printed-inside-the-staff.ly}
 
-@seealso
 
+@seealso
 Referencia de la notación:
 @ref{Fingering instructions}.
 
@@ -171,10 +175,10 @@ aguda, y la afinación normal es la afinación estándar de guitarra (con
 
 @cindex traste
 
-Cuando no se especifica ninguna cuerda, se selecciona la primera
-cuerda que produce la nota con un número de traste mayor o igual que
-el valor de @code{minimumFret} (traste mínimo).  El valor por defecto
-de @code{minimumFret} es cero:
+Si se especifica ninguna cuerda para una nota, se le asigna la cuerda
+más aguda que produce la nota con un número de traste mayor o igual
+que el valor de @code{minimumFret} (traste mínimo).  El valor
+predeterminado de @code{minimumFret} es cero.
 
 @lilypond[quote,ragged-right,verbatim]
 \new StaffGroup <<
@@ -193,11 +197,11 @@ de @code{minimumFret} es cero:
 
 @cindex armónicos en tablatura
 @cindex tablatura y armónicos
-@cindex slides en notación de tablatura
-@cindex tablatura y slides
+@cindex deslizamientos en notación de tablatura
+@cindex tablatura y deslizamientos
 
-Se pueden añadir indicaciones de armónicos y @emph{slides} a la
-notación de tablatura.
+Se pueden añadir indicaciones de armónicos y @emph{slides} o
+deslizamientos a la notación de tablatura.
 
 @lilypond[fragment, verbatim, quote, relative=1]
 \new TabStaff {
@@ -215,8 +219,8 @@ notación de tablatura.
 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
 {polyphony-in-tablature.ly}
 
-@seealso
 
+@seealso
 Referencia de la notación:
 @ref{Stems}.
 
@@ -229,6 +233,7 @@ Referencia de funcionamiento interno:
 @rinternals{TabVoice},
 @rinternals{Beam}.
 
+
 @knownissues
 
 Los acordes no se tratan de una forma especial, y de aquí que el
@@ -236,7 +241,7 @@ selector automático de la cuerda puede elegir fácilmente la misma
 cuerda para dos notas del acorde.
 
 Para manejar @code{\partcombine}, es necesario que @code{TabStaff}
-utilice voces expecialmente creadas:
+utilice voces especialmente creadas:
 
 @lilypond[quote,ragged-right,verbatim]
 melodia = \partcombine { e4 g g g }{ e4 e e e }
@@ -274,7 +279,7 @@ afinación de las cuerdas se da en la propiedad @code{StringTunings}.
 LilyPond trae afinaciones predefinidas para el banjo, la mandolina, la
 guitarra y el bajo.  Lilypond establece automáticamente la
 transposición correcta para las afinaciones predefinidas.  El ejemplo
-siguiente es para bajo, que suena una octaba por debajo de lo escrito.
+siguiente es para bajo, que suena una octava por debajo de lo escrito.
 
 @lilypond[quote,ragged-right,verbatim]
 <<
@@ -297,8 +302,8 @@ La afinación por omisión es @code{guitar-tuning} (la afinación
 estándar Mi-La-Re-Sol-Si-Mi).  Otras afinaciones predefinidas son
 @code{guitar-open-g-tuning} (Sol Mayor al aire, Re-Sol-Re-Sol-Si-Re),
 @code{mandolin-tuning} (mandolina) y @code{banjo-open-g-tuning} (banjo
-con Sol Mayor al aire).    The predefined string tunings
-are found in @code{scm/output-lib.scm}.
+con Sol Mayor al aire).  Las afinaciones predefinidas están en
+@code{scm/output-lib.scm}.
 
 Una afinación de las cuerdas es una lista de Scheme de alturas, una
 por cada cuerda, ordenadas de 1 a N, donde la cuerda 1 está arriba en
@@ -340,8 +345,8 @@ mynotes = {
 >>
 @end lilypond
 
-@seealso
 
+@seealso
 Archivos de inicio:
 @file{scm/output-lib.scm}.
 
@@ -458,7 +463,7 @@ la cadena de marcado del diagrama.
 >>
 @end lilypond
 
-Se pueden apadir indicaciones de digitación, y la posición de las
+Se pueden añadir indicaciones de digitación, y la posición de las
 etiquetas de los dedos se puede controlar mediante la cadena de
 marcado del diagrama.
 
@@ -562,7 +567,7 @@ escueta @code{fret-diagram-terse}
   }
   \context Staff {
     \override Voice.TextScript
-      #'fret-diagram-details #'finger-code = #'below-string
+      #'(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;"
@@ -616,20 +621,24 @@ colocación un elemento sobre el diagrama de trastes.
 @end lilypond
 
 Se pueden incluir digitaciones y cejillas en una cadena de marcado
-prolija @code{fret-diagram-verbose}.
+prolija @code{fret-diagram-verbose}.  Es exclusiva del interfaz de
+fret-diagram-verbose la indicación @q{capo} que se puede colocar sobre
+el diagrama de posición.  La indicación de capo es una barra gruesa
+que cubre todas las cuerdas.  El traste que tiene el capo es el más
+bajo del diagrama de posición.
 
 @c \override is necessary to make fingering visible
 @lilypond[quote, verbatim]
 <<
   \context ChordNames {
      \chordmode {
-       f1 g
+       f1 g c
      }
   }
   \context Staff {
     \clef "treble_8"
     \override Voice.TextScript
-      #'fret-diagram-details #'finger-code = #'below-string
+      #'(fret-diagram-details finger-code) = #'below-string
 
     < f, c f a c' f'>1 ^\markup
       \fret-diagram-verbose #'(
@@ -650,7 +659,15 @@ prolija @code{fret-diagram-verbose}.
         (open 2)
         (place-fret 1 3 3)
       )
-  }
+    < c e g c' e'> ^\markup
+      \fret-diagram-verbose #'(
+        (capo 3)
+        (mute 6)
+        (place-fret 4 5 1)
+        (place-fret 3 5 2)
+        (place-fret 2 5 3)
+      )
+   }
 >>
 @end lilypond
 
@@ -712,8 +729,8 @@ trastes, las propiedades del interface pertenecen a
 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
 {customizing-markup-fret-diagrams.ly}
 
-@seealso
 
+@seealso
 Referencia de la notación:
 @ref{Text markup commands}.
 
@@ -723,6 +740,7 @@ Fragmentos de código:
 Referencia de funcionamiento interno:
 @rinternals{fret-diagram-interface}.
 
+
 @node Predefined fret diagrams
 @unnumberedsubsubsec Predefined fret diagrams
 
@@ -757,7 +775,7 @@ afinaciones siguiendo los ejemplos que aparecen en
 @code{predefined-guitar-fretboards.ly}.
 
 Las notas de los acordes se pueden introducir como música simultánea o
-bein usando el modo de acordes (véase @ref{Chord mode overview}).
+bien usando el modo de acordes (véase @ref{Chord mode overview}).
 
 @lilypond[verbatim, ragged-right,quote]
 \include "predefined-guitar-fretboards.ly"
@@ -854,11 +872,12 @@ mychords = \chordmode{
 @cindex personalizados, añadir diagramas de traste
 @cindex diagramas de trastes personalizados, añadir
 
-Se pueden añadir diagramas de traste a la tabla de diagramas sFret
-diagrams can be added to the fret diagram table.  Para añadir un
-diagrama debemos especificar el acorde del diagrama, la afinación
-utilizadathe tuning to be used y la cadena de definición escueta
-fret-diagram-terse del diagrama.
+Se pueden añadir diagramas de posiciones a la tabla de diagramas de
+posiciones.  Para añadir un diagrama debemos especificar el acorde del
+diagrama, la afinación utilizada y una definición del diagrama.  La
+definición del diagrama puede ser una cadena de definición escueta
+fret-diagram-terse o una lista de marcados prolija
+fret-diagram-verbose.
 
 @lilypond[verbatim, ragged-right, quote]
 \include "predefined-guitar-fretboards.ly"
@@ -882,14 +901,14 @@ mychords = \chordmode{
 @end lilypond
 
 Se pueden almacenar distintos diagramas de traste para el mismo acorde
-usando distinas octavas para las notas.
+usando distintas octavas para las notas.
 
 @lilypond[verbatim, ragged-right, quote]
 \include "predefined-guitar-fretboards.ly"
 
 \storePredefinedDiagram \chordmode {c'}
                         #guitar-tuning
-                        #(offset-fret 2 (chord-shape 'bes))
+                        #(offset-fret 2 (chord-shape 'bes guitar-tuning))
 
 mychords = \chordmode{
   c1 c'
@@ -917,23 +936,28 @@ Además de los diagramas de traste, LilyPond almacena una lista interna
 de formas de acorde.  Las formas de acorde son diagramas de traste que
 se pueden desplazar por el mástil para dar acordes distintos.  Se
 pueden añadir formas de acorde a la lista interna y luego usarlas para
-definir diagramas de traste predefinidos.
+definir diagramas de posición predefinidos.  Dado que se pueden mover
+a distintas posiciones dentro del mástil, las formas de acorde
+normalmente no contienen cuerdas al aire.  Como los diagramas de
+posiciones, las formas de acorde se pueden introducir como cadenas
+escuetas fret-diagram-terse o como listas de marcado prolijas
+fret-diagram-verbose.
 
 @lilypond[verbatim, ragged-right, quote]
 \include "predefined-guitar-fretboards.ly"
 
 % add a new chord shape
 
-\addChordShape #'powerf #"1-1;3-3;3-4;x;x;x;"
+\addChordShape #'powerf #guitar-tuning #"1-1;3-3;3-4;x;x;x;"
 
 % add some new chords based on the power chord shape
 
 \storePredefinedDiagram \chordmode {f'}
                         #guitar-tuning
-                        #(chord-shape 'powerf)
+                        #(chord-shape 'powerf guitar-tuning)
 \storePredefinedDiagram \chordmode {g'}
                         #guitar-tuning
-                        #(offset-fret 2 (chord-shape 'powerf))
+                        #(offset-fret 2 (chord-shape 'powerf guitar-tuning))
 
 mychords = \chordmode{
   f1 f' g g'
@@ -961,17 +985,20 @@ predefinido, las propiedades de interface pertenecen a
 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
 {customizing-fretboard-fret-diagrams.ly}
 
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{defining-predefined-fretboards-for-other-instruments.ly}
+
 
 @seealso
-
 Referencia de la notación:
 @ref{Custom tablatures},
 @ref{Automatic fret diagrams},
 @ref{Chord mode overview},
 @ref{Predefined fretboard diagrams}.
 
-Installed Files:
-@file{ly/predefined-guitar-fretboards.ly}.
+Archivos de inicio:
+@file{ly/predefined-guitar-fretboards.ly},
+@file{ly/predefined-guitar-ninth-fretboards.ly}.
 
 Fragmentos de código:
 @rlsr{Fretted strings}.
@@ -1057,25 +1084,6 @@ manual de una nota a una cuerda.  En muchos casos sólo hay que colocar
 manualmente una nota sobre una cuerda; el resto de las notas se
 situará en el lugar adecuado por parte del contexto @code{FretBoards}.
 
-@lilypond[quote,ragged-right,verbatim]
-<<
-  \context ChordNames {
-     \chordmode {
-       c1 c
-     }
-  }
-  \context FretBoards {
-    < c g c' e' g'> 1
-    < c g\4 c' e' g'> 1
-  }
-  \context Staff {
-    \clef "treble_8"
-    < c g c' e' g'> 1
-    < c g c' e' g'> 1
-  }
->>
-@end lilypond
-
 @cindex trastes, añadir digitaciones a diagramas de
 @cindex digitaciones, añadir, a diagramas de trastes
 
@@ -1131,18 +1139,20 @@ tablatures} para ver más información sobre la propiedad
 @code{stringTunings}.
 
 El aspecto gráfico de un diagrama de trastes se puede personalizar de
-acuerdo a las preferncias del usuario a través de las propiedades del
+acuerdo a las preferencias del usuario a través de las propiedades del
 interface @code{fret-diagram-interface}.  Los detalles están en
 @rinternals{fret-diagram-interface}.  Para un diagrama de
 @code{FretBoards}, las propiedades del interface pertenecen a
 @code{FretBoards.FretBoard}.
 
+
 @predefined
 @code{\predefinedFretboardsOff},
 @code{\predefinedFretboardsOn}.
+@endpredefined
 
-@seealso
 
+@seealso
 Referencia de la notación:
 @ref{Custom tablatures}.
 
@@ -1172,9 +1182,9 @@ antes del ángulo de cierre @code{>}.}
 
 @lilypond[quote,verbatim,relative=0]
 \clef "treble_8"
-<c-\rightHandFinger #1 >4 
-<e-\rightHandFinger #2 > 
-<g-\rightHandFinger #3 > 
+<c-\rightHandFinger #1 >4
+<e-\rightHandFinger #2 >
+<g-\rightHandFinger #3 >
 <c-\rightHandFinger #4 >
 <c,-\rightHandFinger #1 e-\rightHandFinger #2
   g-\rightHandFinger #3 c-\rightHandFinger #4 >1
@@ -1195,8 +1205,8 @@ corto, como por ejemplo @code{RH}:
 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
 {fingerings,-string-indications,-and-right-hand-fingerings.ly}
 
-@seealso
 
+@seealso
 Fragmentos de código:
 @rlsr{Fretted strings}.
 
@@ -1207,7 +1217,7 @@ Referencia de funcionamiento interno:
 @node Guitar
 @subsection Guitar
 
-Casi todos los asintos de notación relacionados con la música para
+Casi todos los asuntos de notación relacionados con la música para
 guitarra están suficientemente cubiertos en la sección general sobre
 ajustes de instrumentos de trastes, pero hay algunos más de los que
 merece la pena hablar aquí.  De forma ocasional, los usuarios quieren
@@ -1228,7 +1238,7 @@ experiencia, un tipografiador como GuitarTeX.
 @unnumberedsubsubsec Indicating position and barring
 
 @cindex posición y cejilla, indicación para instrumentos de trastes
-@cindex trastes, instrumentos de, indicacion de la posición y cejilla
+@cindex trastes, instrumentos de, indicación de la posición y cejilla
 
 Este ejemplo muestra cómo incluir indicaciones de posición y cejilla
 de guitarra:
@@ -1237,14 +1247,14 @@ 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
 @end lilypond
 
-@seealso
 
+@seealso
 Referencia de la notación:
 @ref{Text spanners}.
 
@@ -1252,6 +1262,7 @@ Fragmentos de código:
 @rlsr{Fretted strings},
 @rlsr{Expressive marks}.
 
+
 @node Indicating harmonics and dampened notes
 @unnumberedsubsubsec Indicating harmonics and dampened notes
 
@@ -1274,8 +1285,8 @@ con un marcado de texto.
 }
 @end lilypond
 
-@seealso
 
+@seealso
 Fragmentos de código:
 @rlsr{Fretted strings}.
 
@@ -1283,6 +1294,7 @@ Referencia de la notación:
 @ref{Special note heads},
 @ref{Note head styles}.
 
+
 @node Banjo
 @subsection Banjo
 
@@ -1338,8 +1350,8 @@ cuatro cuerdas utilizando la función @code{four-string-banjo}:
 \set TabStaff.stringTunings = #(four-string-banjo banjo-c-tuning)
 @end example
 
-@seealso
 
+@seealso
 Fragmentos de código:
 @rlsr{Fretted strings}.
 
index beb30b964c77b2fde116f5339caf9fa1bd1224df..3645d8e13ac9ca8d299d444934fc836bfa5ef445 100644 (file)
@@ -1,13 +1,13 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 @c This file is part of lilypond-learning.tely
 @ignore
-    Translation of GIT committish: 85b54e04be6730bd0781f3135ee741010e099fd8
+    Translation of GIT committish: 41ef91786a08102d9b9a839f6a2f40cec263d723
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 
 @node Fundamental concepts
@@ -108,7 +108,7 @@ como una abreviatura de esta otra:
 @end example
 
 En otras palabras, si la entrada consta de una única expresión
-musical, LilyPond interpreta el archivo como si la expresción musical
+musical, LilyPond interpreta el archivo como si la expresión musical
 estuviera rodeada por un envoltorio hecho por las instrucciones que
 acabamos de ver.
 
@@ -140,7 +140,7 @@ cosa entre una sola nota hasta una enorme expresión compuesta como
 
 @example
 @{
-  \new GrandStaff <<
+  \new StaffGroup <<
     @var{...inserte aquí la partitura completa de una ópera de Wagner...}
   >>
 @}
@@ -186,7 +186,7 @@ por lo general fuera del bloque @code{\score} (por ejemplo,
 como muestra el ejemplo que aparece al principio de la sección.
 
 Dos instrucciones más que no hemos visto aún son @code{\layout @{ @}}
-y @code{\midi @{@}}.  Si aparecen tal y como se muestran aquí, hacen
+y @code{\midi @{ @}}.  Si aparecen tal y como se muestran aquí, hacen
 que LilyPond produzca una salida impresa y una salida MIDI,
 respectivamente.  Se describen con todo detalle en el manual de
 Referencia de la notación, en @ruser{Score layout} y en
@@ -212,7 +212,7 @@ En resumen:
 Cada bloque @code{\book} crea un archivo de salida distinto (por
 ejemplo, un archivo PDF).  Si no hemos escrito uno de forma explícita,
 LilyPond envuelve todo nuestro código de entrada dentro de un bloque
-@code{\book} de forma implícita.q
+@code{\book} de forma implícita.
 
 Cada bloque @code{\score} es un trozo de música separado dentro de un
 bloque @code{\book}.
@@ -257,11 +257,12 @@ nombres de instrucción de LilyPond.  Las limitaciones exactas que
 afectan a los nombres de variable se detallan en @ruser{File
 structure}.
 
-@seealso
 
+@seealso
 Para ver una definición completa del formato del código de entrada,
 consulte @ruser{File structure}.
 
+
 @node Score is a (single) compound musical expression
 @subsection Score is a (single) compound musical expression
 
@@ -292,7 +293,7 @@ compuesta.}
 @noindent
 Para comprender lo que se entiende por expresión musical y expresión
 musical compuesta, quizá encuentre útil dar un repaso al tutorial,
-@ref{Music expressions explained}.  En esta sección, vimos cómo
+@ref{Music expressions explained}.  En esta sección vimos cómo
 elaborar grandes expresiones musicales a partir de pequeñas piezas
 (comenzábamos con notas, luego acordes, etc.).  Ahora partiremos de
 una gran expresión musical y recorreremos el camino inverso hacia
@@ -301,7 +302,7 @@ abajo.
 @example
 \score @{
   @{   % esta llave da inicio a toda la expresión musical compuesta
-    \new GrandStaff <<
+    \new StaffGroup <<
       @var{...introduzca aquí la partitura completa de una ópera de Wagner...}
     >>
   @}   % esta llave da por terminada toda expresión musical completa
@@ -311,9 +312,10 @@ abajo.
 
 Una ópera de Wagner completa puede ser fácilmente el doble de larga
 que este manual, por tanto vamos a hacer sólo un cantante y un piano.
-No necesitamos un @code{GrandStaff} para este conjunto, así que lo
-retiramos.  Sin embargo, sí que @emph{necesitamos} un cantante y un
-piano.
+No necesitamos un @code{StaffGroup} (que simplemente agrupa un cierto
+número de pautas con un corchete a la izquierda) para este conjunto,
+así que lo retiramos.  Sin embargo, @emph{sí} necesitamos un cantante
+y un piano.
 
 @example
 \score @{
@@ -414,8 +416,8 @@ ayuda ser muy estricto con los márgenes (asegúrese de que en su editor
 de texto cada elemento del mismo nivel comienza en la misma posición
 horizontal).
 
-@seealso
 
+@seealso
 Referencia de la notación:
 @ruser{Structure of a score}.
 
@@ -469,7 +471,7 @@ siguiente:
     <<
       { f c c }
       \new Staff \with {
-        alignAboveContext = "main" }
+        alignAboveContext = #"main" }
       { f8 f c }
     >>
     r4 |
@@ -483,8 +485,8 @@ de un solo pentagrama.  Aquí, dice que el pentagrama nuevo se debe
 colocar por encima del pentagrama llamado @qq{main} en vez de la
 posición predeterminada que sería por debajo.
 
-@seealso
 
+@seealso
 Los fragmentos de ossia se escriben a menudo sin clave y sin
 indicación de compás, y generalmente en un tipo más pequeño.  Esto
 necesitaría más instrucciones que aún no se han visto.  Véase
@@ -648,7 +650,7 @@ solo pentagrama es escribir cada voz como una secuencia (con
 @code{@{...@}}), y combinarlas simultáneamente con ángulos dobles,
 @code{<<...>>}.  Los fragmentos también se deben separar mediante una
 doble barra invertida, @code{\\}, para situarlos en voces separadas.
-Sin esto, las notas irían a una sola voz, lo que normalmente producirá
+Sin esto, las notas irían a una sola voz, lo que normalmente produce
 errores.  Esta técnica se adapta especialmente bien a piezas de música
 que son mayormente monofónicas pero ocasionalmente tienen cortas
 secciones de polifonía.
@@ -856,7 +858,7 @@ Pero la necesidad real de varias voces aflora cuando hay notas que
 comienzan en el mismo tiempo pero tienen distintas duraciones.
 Observe las notas que comienzan en la tercera parte del primer compás.
 El La bemol es una negra con puntillo, el Fa es una negra y el Re
-bemol es una blanca.  Estas notas noe pueden escribir como un acorde
+bemol es una blanca.  Estas notas no se pueden escribir como un acorde
 porque todas las notas de un acorde deben tener la misma duración.
 Tampoco se pueden escribir como notas secuenciales, pues deben
 comenzar al mismo tiempo.  Esta sección del compás requiere tres
@@ -953,8 +955,8 @@ estamos preparados para ver cómo corregir esto, así que dejaremos este
 problema aparcado hasta una sección posterior (véase la propiedad
 @code{force-hshift} en @ref{Fixing overlapping notation}).
 
-@seealso
 
+@seealso
 Referencia de la notación:
 @ruser{Multiple voices}.
 
@@ -1004,7 +1006,7 @@ equivale a
 >>
 @end example
 
-Los dos ejemplos anteriores producirán:
+Los dos ejemplos anteriores producen:
 
 @c The following example should not display the code
 @lilypond[ragged-right,quote]
@@ -1034,7 +1036,7 @@ las ligaduras de unión y de expresión y las indicaciones de dinámica:
 
 @lilypond[quote,ragged-right,verbatim]
 \relative c'{
-  % Default behaviour or behaviour after \oneVoice
+  % Default behavior or behavior after \oneVoice
   c d8 ~ d e4 ( f g a ) b-> c
 }
 @end lilypond
@@ -1203,8 +1205,8 @@ voces no tienen ningún desplazamiento o llevan especificado el mismo
 desplazamiento, se producirá el mensaje de error @qq{Chocan demasiadas
 columnas de notas}.
 
-@seealso
 
+@seealso
 Referencia de la notación:
 @ruser{Multiple voices}.
 
@@ -1270,9 +1272,9 @@ para desactivar el barrado automático.
 
 Ahora vamos a reutilizar el ejemplo anterior de «Judas Macabeo» para
 ilustrar esta técnica más flexible.  Primero la reescribiremos para
-que use variables de manera que la música y la letra se pueda separar
-de la estructura de pentagramas.  También introduciremos una llave de
-grupo de ChoirStaff.  La letra en sí se debe introducir con
+que use variables, de manera que la música y la letra se puedan
+separar de la estructura de pentagramas.  También introduciremos una
+llave de grupo de ChoirStaff.  La letra en sí se debe introducir con
 @code{\lyricmode} para estar seguros de que se interpreta como letra y
 no como música.
 
@@ -1381,7 +1383,7 @@ Comenzamos el ejemplo con un bloque de partitura que contiene un
 @code{ChoirStaff}, pues queremos que aparezca un corchete al comienzo
 de la parte de coro.  Normalmente necesitaríamos dobles ángulos
 después de @code{\new ChoirStaff} para meter dentro todos los
-pentagramas en paralelo, pero aquí queremos postponer el paralelismo
+pentagramas en paralelo, pero aquí queremos posponer el paralelismo
 mientras dura el solo y por ello usaremos llaves, aunque aquí unos
 ángulos dobles no harían daño.  Dentro del @code{ChoirStaff} queremos
 en primer lugar el pentagrama que va a contener la estrofa.  Debe
@@ -1399,7 +1401,7 @@ versewords = \lyricmode {
   One two three four five six
 }
 \score {
-  \new Choirstaff {
+  \new ChoirStaff {
     \new Staff <<
       \new Voice = "verse" {
         \versenotes \break
@@ -1414,9 +1416,9 @@ versewords = \lyricmode {
 
 Con esto tenemos la línea de la estrofa.
 
-Ahora deseamos continuar con refrainA (la primera parte del
+Ahora deseamos continuar con estribilloA (la primera parte del
 estribillo) sobre el mismo pentagrama, mientras un segundo pentagrama
-aparece en paralelo con él para refrainB (estribillo, segunda parte),
+aparece en paralelo con él para estribilloB (estribillo, segunda parte),
 por lo que ésta es una sección paralela que se debe situar
 inmediatamente a continuación del salto de línea @code{\break} en la
 voz de la estrofa.  ¡Sí, @emph{dentro} de la voz de la estrofa!  He
@@ -1425,16 +1427,16 @@ la misma forma.
 
 @example
 <<
-  \refrainnotesA
-  \new Lyrics \lyricsto verse @{
-    \refrainwordsA
+  \notas_estribilloA
+  \new Lyrics \lyricsto estrofa @{
+    \letra_estribilloA
   @}
   \new Staff <<
-    \new Voice = "refrainB" @{
-      \refrainnotesB
+    \new Voice = "estribilloB" @{
+      \notas_estribilloB
     @}
-    \new Lyrics \lyricsto "refrainB" @{
-      \refrainwordsB
+    \new Lyrics \lyricsto "estribilloB" @{
+      \letra_estribilloB
     @}
   >>
 >>
@@ -1471,7 +1473,7 @@ refrainwordsB = \lyricmode {
 \score {
   \new ChoirStaff {
     \new Staff <<
-      \context Voice = "verse" {
+      \new Voice = "verse" {
         \versenotes \break
         <<
           \refrainnotesA
@@ -1564,8 +1566,8 @@ refrainwordsB = \lyricmode {
 }
 @end lilypond
 
-@seealso
 
+@seealso
 Referencia de la notación:
 @ruser{Vocal music}.
 
@@ -1653,7 +1655,7 @@ unos completamente nuevos.
 
 Además de los contextos @code{Score,} @code{Staff} y @code{Voice}, hay
 contextos que se sitúan entre los niveles de partitura y de pentagrama
-para controlar los grupos de pentagraamas, como los contextos
+para controlar los grupos de pentagramas, como los contextos
 @code{PianoStaff} y @code{ChoirStaff}.  También existen contextos
 alternativos de pentagrama y de voz, y contextos para la letra, la
 percusión, diagramas de trastes, bajo cifrado, etc.
@@ -1663,11 +1665,12 @@ palabras que comienzan con mayúscula y que están unidas unas a otras
 sin guión ni barra baja, por ejemplo:
 @code{GregorianTranscriptionStaff}.
 
-@seealso
 
+@seealso
 Referencia de la notación:
 @ruser{Contexts explained}.
 
+
 @node Creating contexts
 @subsection Creating contexts
 
@@ -1702,7 +1705,7 @@ Observe que no hay ninguna instrucción @code{\new Score}; el contexto
 @code{\score}.
 
 
-En las secciones anteriore ha podido ver muchos ejemplos prácticos que
+En las secciones anteriores ha podido ver muchos ejemplos prácticos que
 creaban nuevos contextos de @code{Staff} y de @code{Voice}, pero para
 recordarle cómo se emplean estas instrucciones en la práctica, he aquí
 un ejemplo anotado de música real:
@@ -1751,7 +1754,7 @@ Aunque no es necesario, la observancia de esta práctica reducirá
 considerablemente el número de errores de @q{paréntesis
 descompensados}, y se recomienda vivamente.  Permite apreciar de un
 solo vistazo la estructura de la música, y cualquier paréntesis
-descompensado aprecerá con obviedad.  Observe también cómo el
+descompensado aparecerá con obviedad.  Observe también cómo el
 pentagrama de la MI se crea usando dobles ángulos porque requiere dos
 voces, mientras que el pentagrama de la MD se crea con una expresión
 musical única encerrada entre llaves porque sólo requiere una voz.)
@@ -1779,8 +1782,8 @@ referirnos más tarde a esa instancia en particular de un contexto.
 Hemos visto esto en la sección acerca de la letra, en @ref{Voices and
 vocals}.
 
-@seealso
 
+@seealso
 Referencia de la notación:
 @ruser{Creating contexts}.
 
@@ -1842,12 +1845,12 @@ a partir del nombre (en inglés), y viceversa.
 @item Clef_engraver
   @tab Graba las claves
 @item Completion_heads_engraver
-  @tab Splits notes which cross bar lines
+  @tab Divide las notas que atraviesan una línea divisoria
 @c The old Dynamic_engraver is deprecated. -jm
 @item New_dynamic_engraver
   @tab Crea reguladores e indicaciones dinámicas textuales
 @item Forbid_line_break_engraver
-  @tab Prevents line breaks if a musical element is still active
+  @tab Evita los saltos de línea si queda algún elemento musical activo
 @item Key_engraver
   @tab Crea la armadura de la tonalidad
 @item Metronome_mark_engraver
@@ -1869,8 +1872,8 @@ a partir del nombre (en inglés), y viceversa.
 Más adelante veremos cómo la salida de LilyPond se puede cambiar
 mediante la modificación del funcionamiento de los Grabadores.
 
-@seealso
 
+@seealso
 Referencia de funcionamiento interno:
 @rinternals{Engravers and Performers}.
 
@@ -1992,7 +1995,7 @@ en cualquier contexto que exista, mediante el uso de la instrucción
 @code{\set}.  Pero si el nombre no es conocido para LilyPond, no
 producirá ninguna acción.  Algunos editores de texto que apoyan a los
 archivos de entrada de LilyPond de manera especial, documentan los
-nombres de propiedades con viñetas cuando psamos sobre ellos con el
+nombres de propiedades con viñetas cuando pasamos sobre ellos con el
 puntero del ratón, como JEdit con la extensión LilyPondTool, o
 resaltan los nombres de propiedades desconocidas de manera diferente,
 como ConTEXT.  Si no se utiliza un editor con tales posibilidades, se
@@ -2046,7 +2049,7 @@ valor predeterminado que se aplicará a todos los pentagramas.
 
 La instrucción opuesta, @code{\unset}, tiene el efecto de suprimir la
 propiedad del contexto, lo que ocasiona que la mayoría de las
-porpiedades vuelvan a su valor predeterminado.  Normalmente no es
+propiedades vuelvan a su valor predeterminado.  Normalmente no es
 necesario el uso de @code{\unset}, pues una nueva instrucción
 @code{\set} hará el ajuste deseado.
 
@@ -2067,7 +2070,7 @@ d e
 % make note heads larger
 \set fontSize = #2.5
 f g
-% return to original size
+% return to default size
 \unset fontSize
 a b
 @end lilypond
@@ -2081,7 +2084,7 @@ se debe encerrar entre comillas dobles, como antes, aunque veremos más
 adelante que el texto realmente se puede especificar de una forma
 mucho más general utilizando la potentísima instrucción @code{markup}.
 
-@unnumberedsubsubsec Setting context properties with @code{\with}
+@subsubheading Setting context properties with @code{\with}
 
 @funindex \with
 @funindex with
@@ -2131,7 +2134,7 @@ valor predeterminado del tamaño de la fuente tipográfica.  Si más
 tarde se modifica con @code{\set}, este nuevo valor predeterminado
 puede restablecerse con la instrucción @code{\unset fontSize}.
 
-@unnumberedsubsubsec Setting context properties with @code{\context}
+@subsubheading Setting context properties with @code{\context}
 
 @cindex contextos, establecer propiedades de, con \context
 @funindex \context
@@ -2172,8 +2175,8 @@ sobreescribir para ejemplares concretos de contextos mediante
 enunciados dentro de un bloque @code{\with}, y mediante instrucciones
 @code{\set} intercaladas dentro de enunciados musicales.
 
-@seealso
 
+@seealso
 Referencia de la notación:
 @ruser{Changing context default settings}.
 @c FIXME
@@ -2332,8 +2335,8 @@ también se pueden establecer para todos los contextos de un tipo en
 particular incluyendo la instrucción @code{\set} dentro de un bloque
 @code{\context} de la misma forma.
 
-@seealso
 
+@seealso
 Referencia de la notación:
 @ruser{Modifying context plug-ins},
 @ruser{Changing context default settings}.
@@ -2511,7 +2514,6 @@ sopranoMusic = \relative c' {
   \clef treble
   \key c \major
   \time 4/4
-
   a4 b c d
 }
 
@@ -2523,11 +2525,10 @@ celloMusic = \relative c {
   \clef bass
   \key c \major
   \time 4/4
-
   d4 g fis8 e d4
 }
 
-\score{
+\score {
   <<
     <<
       \new Voice = "one" {
@@ -2543,8 +2544,8 @@ celloMusic = \relative c {
 }
 @end lilypond
 
-@seealso
 
+@seealso
 Las plantillas de inicio se pueden encontrar en el apéndice
 @q{Templates}, véase @ref{Single staff}.
 
@@ -2603,29 +2604,29 @@ lower = \relative c, {
   <<  % combine ChoirStaff and PianoStaff in parallel
     \new ChoirStaff <<
       \new Staff = "sopranos" <<
-        \set Staff.instrumentName = "Soprano"
+        \set Staff.instrumentName = #"Soprano"
         \new Voice = "sopranos" { \global \sopranoMusic }
       >>
       \new Lyrics \lyricsto "sopranos" { \sopranoWords }
       \new Staff = "altos" <<
-        \set Staff.instrumentName = "Alto"
+        \set Staff.instrumentName = #"Alto"
         \new Voice = "altos" { \global \altoMusic }
       >>
       \new Lyrics \lyricsto "altos" { \altoWords }
       \new Staff = "tenors" <<
-        \set Staff.instrumentName = "Tenor"
+        \set Staff.instrumentName = #"Tenor"
         \new Voice = "tenors" { \global \tenorMusic }
       >>
       \new Lyrics \lyricsto "tenors" { \tenorWords }
       \new Staff = "basses" <<
-        \set Staff.instrumentName = "Bass"
+        \set Staff.instrumentName = #"Bass"
         \new Voice = "basses" { \global \bassMusic }
       >>
       \new Lyrics \lyricsto "basses" { \bassWords }
     >>  % end ChoirStaff
 
     \new PianoStaff <<
-      \set PianoStaff.instrumentName = "Piano"
+      \set PianoStaff.instrumentName = #"Piano"
       \new Staff = "upper" \upper
       \new Staff = "lower" \lower
     >>
@@ -2636,7 +2637,7 @@ lower = \relative c, {
 Ninguna de las plantillas proporciona esta disposición con exactitud.
 La más parecida es @q{partitura vocal SATB y reducción de piano
 automática} (véase @ref{Vocal ensembles}), pero necesitamos cambiar la
-disposición y añadir un acompañamiento de piano que no esté derviado
+disposición y añadir un acompañamiento de piano que no esté derivado
 automáticamente de las partes vocales.  Las variables que contienen la
 música y la letra de las partes vocales es adecuada, pero tendremos
 que añadir variables para la reducción de piano.
@@ -2658,22 +2659,22 @@ Al hacerlo así obtenemos el ChoirStaff siguiente:
 @example
     \new ChoirStaff <<
       \new Staff = "sopranos" <<
-        \set Staff.instrumentName = "Soprano"
+        \set Staff.instrumentName = #"Soprano"
         \new Voice = "sopranos" @{ \global \musicaSoprano @}
       >>
       \new Lyrics \lyricsto "sopranos" @{ \latraSoprano @}
       \new Staff = "altos" <<
-        \set Staff.instrumentName = "Alto"
+        \set Staff.instrumentName = #"Alto"
         \new Voice = "altos" @{ \global \musicaAlto @}
       >>
       \new Lyrics \lyricsto "altos" @{ \letraAlto @}
       \new Staff = "tenores" <<
-        \set Staff.instrumentName = "Tenor"
+        \set Staff.instrumentName = #"Tenor"
         \new Voice = "tenores" @{ \global \musicaTenor @}
       >>
       \new Lyrics \lyricsto "tenores" @{ \letraTenor @}
       \new Staff = "bajos" <<
-        \set Staff.instrumentName = "Bass"
+        \set Staff.instrumentName = #"Bass"
         \new Voice = "bajos" @{ \global \musicaBajo @}
       >>
       \new Lyrics \lyricsto "bajos" @{ \letraBajo @}
@@ -2686,7 +2687,7 @@ solista}:
 
 @example
 \new PianoStaff <<
-  \set PianoStaff.instrumentName = "Piano"
+  \set PianoStaff.instrumentName = #"Piano"
   \new Staff = "superior" \superior
   \new Staff = "inferior" \inferior
 >>
@@ -2722,7 +2723,7 @@ Los grupos ChoirStaff y PianoStaff se deben combinar utilizando
   >>  % fin del ChoirStaff
 
   \new PianoStaff <<
-    \set PianoStaff.instrumentName = "Piano"
+    \set PianoStaff.instrumentName = #"Piano"
     \new Staff = "upper" \upper
     \new Staff = "lower" \lower
   >>
@@ -2734,28 +2735,28 @@ del ejemplo anterior, obtenemos:
 
 @lilypond[quote,verbatim,ragged-right,addversion]
 global = { \key d \major \time 4/4 }
-sopMusic = \relative c'' {
+sopranoMusic = \relative c'' {
   \clef "treble"
   r4 d2 a4 | d4. d8 a2 | cis4 d cis2 |
 }
-sopWords = \lyricmode {
+sopranoWords = \lyricmode {
   Wor -- thy is the lamb that was slain
 }
 altoMusic = \relative a' {
   \clef "treble"
   r4 a2 a4 | fis4. fis8 a2 | g4 fis fis2 |
 }
-altoWords = \sopWords
+altoWords = \sopranoWords
 tenorMusic = \relative c' {
   \clef "G_8"
   r4 fis2 e4 | d4. d8 d2 | e4 a, cis2 |
 }
-tenorWords = \sopWords
+tenorWords = \sopranoWords
 bassMusic = \relative c' {
   \clef "bass"
   r4 d2 cis4 | b4. b8 fis2 | e4 d a'2 |
 }
-bassWords = \sopWords
+bassWords = \sopranoWords
 upper = \relative a' {
   \clef "treble"
   \global
@@ -2775,29 +2776,29 @@ lower = \relative c, {
   <<  % combine ChoirStaff and PianoStaff in parallel
     \new ChoirStaff <<
       \new Staff = "sopranos" <<
-        \set Staff.instrumentName = "Soprano"
-        \new Voice = "sopranos" { \global \sopMusic }
+        \set Staff.instrumentName = #"Soprano"
+        \new Voice = "sopranos" { \global \sopranoMusic }
       >>
-      \new Lyrics \lyricsto "sopranos" { \sopWords }
+      \new Lyrics \lyricsto "sopranos" { \sopranoWords }
       \new Staff = "altos" <<
-        \set Staff.instrumentName = "Alto"
+        \set Staff.instrumentName = #"Alto"
         \new Voice = "altos" { \global \altoMusic }
       >>
       \new Lyrics \lyricsto "altos" { \altoWords }
       \new Staff = "tenors" <<
-        \set Staff.instrumentName = "Tenor"
+        \set Staff.instrumentName = #"Tenor"
         \new Voice = "tenors" { \global \tenorMusic }
       >>
       \new Lyrics \lyricsto "tenors" { \tenorWords }
       \new Staff = "basses" <<
-        \set Staff.instrumentName = "Bass"
+        \set Staff.instrumentName = #"Bass"
         \new Voice = "basses" { \global \bassMusic }
       >>
       \new Lyrics \lyricsto "basses" { \bassWords }
     >>  % end ChoirStaff
 
     \new PianoStaff <<
-      \set PianoStaff.instrumentName = "Piano"
+      \set PianoStaff.instrumentName = #"Piano  "
       \new Staff = "upper" \upper
       \new Staff = "lower" \lower
     >>
@@ -2956,7 +2957,7 @@ ManualOneVoiceOneMusic = \relative g' {
   g4 g f ees | d2 c2 |
 }
 ManualOneVoiceTwoMusic = \relative c' {
-  ees16 d ees8~ ees16 f ees s c8 d~ d c~ |
+  ees16 d ees8~ ees16 f ees d c8 d~ d c~ |
   c c4 b8 c8. g16 c b c d |
 }
 ManualTwoMusic = \relative c' {
index 9d82c326b384f2005bce4e1ea15d35eab07c6e06..217e7a8dd0ca7e4792b4098dc79f1333f1879d79 100644 (file)
@@ -1,13 +1,13 @@
-@c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*-
+@c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 @c This file is part of lilypond.tely
 @ignore
-    Translation of GIT committish: 270753f1475f23809437eadd7cbbb5a2abddb7b3
+    Translation of GIT committish: c7d6848e128f461a4cec093f7a71a34b2dc314eb
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @node General input and output
 @chapter General input and output
@@ -42,7 +42,7 @@ Por convenio, el nombre de estos archivos termina en @code{.ly}.
 
 @funindex \score
 
-Ub bloque @code{\score} debe contener una expresión musical única
+Un bloque @code{\score} debe contener una expresión musical única
 delimitada por un par de llaves:
 
 @example
@@ -99,8 +99,8 @@ pueden escribir en cualquier lugar dentro del archivo de entrada.  Se
 pueden escribir dentro o fuera del bloque @code{\score}, y dentro o
 fuera de la expresión musical única dentro del bloque @code{\score}.
 
-@seealso
 
+@seealso
 Manual de aprendizaje:
 @rlearning{Working on input files},
 @rlearning{Music expressions explained},
@@ -190,6 +190,33 @@ principio del archivo.
 @end example
 
 
+@funindex \bookpart
+
+Se pueden agrupar distintas piezas de música en partes de un libro
+utilizando bloques @code{\bookpart}.  Las partes de libro se separan
+por medio de saltos de página, y pueden dar comienzo con un título,
+como el libro propiamente dicho, mediante la especificación del bloque
+@code{\header}.
+
+@example
+\bookpart @{
+  \header @{
+    title = "Título del libro"
+    subtitle = "Primera parte"
+  @}
+  \score @{ @dots{} @}
+  @dots{}
+@}
+\bookpart @{
+  \header @{
+    subtitle = "Segunda parte"
+  @}
+  \score @{ @dots{} @}
+  @dots{}
+@}
+@end example
+
+
 @node File structure
 @subsection File structure
 
@@ -199,8 +226,9 @@ principio del archivo.
 @funindex \header
 @funindex \score
 @funindex \book
+@funindex \bookpart
 
-Un archivo @code{.ly} puede contener cualquier número de expresions
+Un archivo @code{.ly} puede contener cualquier número de expresiones
 del nivel superior, donde una expresión del nivel superior es una de
 las siguientes posibilidades:
 
@@ -235,18 +263,24 @@ Un bloque @code{\book} combina lógicamente varios movimientos (es
 decir, varios bloques @code{\score}) en un solo documento.  Si hay
 varias partituras @code{\score}, se crea un solo archivo de salida
 para cada bloque @code{\book}, en el que se concatenan todos los
-movimientos correspondientes.  La únca razón para especificar
+movimientos correspondientes.  La única razón para especificar
 explícitamente bloques @code{\book} en un archivo de entrada
 @code{.ly} es si queremos crear varios archivos de salida a partir de
 un único archivo de entrada.  Una excepción se da dentro de los
 documentos de lilypond-book, en los que tenemos que escribir
 explícitamente un bloque @code{\book} si queremos tener más de una
 única partitura @code{\score} o marcado @code{\markup} en el mismo
-ejemplo.  Se puede cmbiar este comportamiento estableciendo el valor
+ejemplo.  Se puede cambiar este comportamiento estableciendo el valor
 de la variable @code{toplevel-book-handler} en el nivel superior.  El
 @emph{handler} predeterminado se define en el archivo de inicio
 @file{../scm/@/lily@/.scm}.
 
+@item
+Un bloque @code{\bookpart}.  Un libro puede dividirse en varias
+partes, utilizando bloques @code{\bookpart}, con objeto de facilitar
+la inserción de saltos de página o usar distintos ajustes de
+@code{\paper} en las distintas partes.
+
 @item
 Una expresión musical compuesta, como
 @example
@@ -273,7 +307,7 @@ contiene sólo la expresión musical anterior se traduce a
 @end example
 
 Se puede cambiar este comportamiento estableciendo el valor de la
-bariable @code{toplevel-music-handler} en el nivel más alto.  El
+variable @code{toplevel-music-handler} en el nivel más alto.  El
 @emph{handler} predeterminado se define en el archivo de inicio
 @file{../scm/@/lily@/.scm}.
 
@@ -334,8 +368,8 @@ Un comentario de varias líneas, delimitado por @code{%@{ .. %@}}.
 
 @end itemize
 
-@seealso
 
+@seealso
 Manual de aprendizaje:
 @rlearning{How LilyPond input files work}.
 
@@ -358,7 +392,8 @@ compositor; ciertas piezas tienen mucha más información.
 @subsection Creating titles
 
 Se crean títulos para cada uno de los bloques @code{\score} así como
-para todo el archivo de entrada (o bloque @code{\book} (libro)).
+para todo el archivo de entrada (o bloque @code{\book}, libro) y las
+partes de libro (creadas mediante bloques @code{\bookpart}).
 
 El contenido de cada título se extrae a partir de los bloques
 @code{\header} (cabecera).  El bloque de cabecera de un libro
@@ -419,7 +454,7 @@ Esto fuerza que el título comience sobre una página nueva (establézcalo a ##t
 @funindex copyright
 @item copyright
 Aviso de Copyright, centrado en la parte inferior de la primera
-página.  Para insertar el símbolo de copyright symbol, consulte
+página.  Para insertar el símbolo de copyright, consulte
 @ref{Text encoding}.
 
 @funindex tagline
@@ -552,7 +587,7 @@ falso.
 @subsection Custom titles
 
 Una opción más avanzada es cambiar las definiciones de las variables
-siguientes dentro del bloque @code{\paper} block.  El archivo de
+siguientes dentro del bloque @code{\paper}.  El archivo de
 inicio @file{ly/titling-init.ly} ofrece un listado de la disposición
 predeterminada.
 
@@ -577,7 +612,7 @@ normalmente contiene el nombre del movimiento (campo @code{piece}).
   sin especificar, se usará el encabezamiento de las páginas impares.
 
   De forma predeterminada, los encabezamientos se definen de tal forma
-que el número de página está en el borde exterior, y el isntrumento
+que el número de página está en el borde exterior, y el instrumento
 está centrado.
 
 @funindex oddFooterMarkup
@@ -661,12 +696,14 @@ para decidir estas dimensiones.  Si el libro tiene entre 10 y 99
 páginas, el medidor puede ser "00", es decir, un número de dos
 dígitos.
 
-@predefined
 
+@predefined
 @funindex \label
-@code{\label}
+@code{\label},
 @funindex \page-ref
-@code{\page-ref}
+@code{\page-ref}.
+@endpredefined
+
 
 @node Table of contents
 @subsection Table of contents
@@ -724,7 +761,7 @@ Observe la forma en que nos referimos al texto y al número de página
 del elemento de índice, dentro de la definición @code{tocItemMarkup}.
 
 También se pueden definir nuevas instrucciones y elementos de
-marcado para crear índices generales más eleborados:
+marcado para crear índices generales más elaborados:
 @itemize
 @item en primer lugar, defina una variable de marcado nueva dentro del bloque @code{\paper}
 @item luego defina una función de música cuyo propósito es añadir un elemento al índice general
@@ -774,17 +811,18 @@ tocAct =
 }
 @end lilypond
 
-@seealso
 
+@seealso
 Archivos de inicio:
 @file{ly/@/toc@/-init@/.ly}.
 
-@predefined
 
+@predefined
 @funindex \table-of-contents
-@code{\table-of-contents}
+@code{\table-of-contents},
 @funindex \tocItem
-@code{\tocItem}
+@code{\tocItem}.
+@endpredefined
 
 
 @node Working with input files
@@ -824,7 +862,7 @@ etiquetadas para ayudar a hacerlas utilizables en distintos lugares de
 la partitura, véase @ref{Different editions from one source}.
 
 Los archivos que están en el directorio de trabajo actual se pueden
-referenciar simplemente especificando el nombre depués de la
+referenciar simplemente especificando el nombre después de la
 instrucción @code{\include}.  Los archivos en otros lugares se pueden
 incluir proporcionando una referencia de ruta completa o una ruta
 relativa (pero utilice la barra inclinada normal del UNIX, /, no la
@@ -848,11 +886,19 @@ directorio actual, use
 @end example
 
 Los archivos de inclusión también pueden contener enunciados
-@code{\include} a su vez.  Estos enunciados @code{\include} de segundo
-nivel no se interpretan hasta que se incorporan al archivo principal,
-por lo que los nombres de archivo que especifican deben ser relativos
-al directorio que contiene el archivo principal, no al directorio que
-contiene el archivo incluido.
+@code{\include} a su vez.  De forma predeterminada, estos enunciados
+@code{\include} de segundo nivel no se interpretan hasta que se
+incorporan al archivo principal, por lo que los nombres de archivo que
+especifican deben ser relativos al directorio que contiene el archivo
+principal, no al directorio que contiene el archivo incluido.  Sin
+embargo, este comportamiento se puede modificar pasando la opción
+@code{-drelative-includes} en la línea de órdenes (o mediante la
+adición de @code{#(ly:set-option 'relative-includes #t)} al principio
+del archivo principal de entrada).  Con el valor de
+@code{relative-includes} establecido, la ruta de cada instrucción
+@code{\include} se considera relativa al archivo que contiene dicha
+instrucción.  Este comportamiento es el recomendado y se convertirá en
+el comportamiento predeterminado en una versión futura de lilypond.
 
 También se pueden incluir archivos de un directorio que está en una
 ruta de búsqueda especificada como opción al invocar a LilyPond desde
@@ -876,10 +922,11 @@ y en @file{principal.ly} escriba
 
 Los archivos que se incluyen en muchas partituras se pueden poner en
 el directorio de LilyPond @file{../ly} (la localización de este
-directorio depende de la instalación: véase @rlearning{Other sources
-of information}).  Estos archivos se pueden incluir sencillamente por
-su nombre en un enunciado @code{\include}.  De esta forma se incluyen
-los archivos dependientes del idioma como @file{english.ly}.
+directorio depende de la instalación: véase
+@rlearning{Other sources of information}).  Estos archivos se pueden
+incluir sencillamente por su nombre en un enunciado @code{\include}.
+De esta forma se incluyen los archivos dependientes del idioma como
+@file{espanol.ly}.
 
 LilyPond incluye de forma predeterminada ciertos archivos cuando se
 inicia el programa.  Estas inclusiones no son visibles para el
@@ -895,12 +942,13 @@ instalar una nueva versión de LilyPond.
 Pueden verse ejemplos sencillos sobre el uso de @code{\include} en
 @rlearning{Scores and parts}.
 
-@seealso
 
+@seealso
 Manual de aprendizaje:
 @rlearning{Other sources of information},
 @rlearning{Scores and parts}.
 
+
 @knownissues
 
 Si un archivo incluido recibe un nombre igual al de uno de los
@@ -935,7 +983,7 @@ Si las secciones de la música se definen dentro de variables, se
 pueden reutilizar en distintas partes de la partitura, véase
 @rlearning{Organizing pieces with variables}.  Por ejemplo, una
 partitura vocal @notation{a cappella} con frecuencia incluye una
-reducción de piano de las partes para ensayar que ees idéntica a la
+reducción de piano de las partes para ensayar que es idéntica a la
 música vocal, por lo que ésta sólo se tiene que escribir una vez.  Se
 puede combinar sobre un solo pentagrama la música de dos variables,
 véase @ref{Automatic part combining}.  He aquí un ejemplo:
@@ -995,11 +1043,11 @@ LilyPond files}.
 @funindex \keepWithTag
 @funindex \removeWithTag
 @cindex etiqueta
-@cindex manetener música etiquetada
+@cindex mantener música etiquetada
 @cindex quitar música etiquetada
 
 La instrucción @code{\tag #'@var{parteA}} marca una expresión musical
-con el nombre @var{parteA}.  Las expresiones etoiquetadas de esta
+con el nombre @var{parteA}.  Las expresiones etiquetadas de esta
 manera se pueden seleccionar o filtrar más tarde por su nombre, usando
 bien @code{\keepWithTag #'@var{nombre}} o bien @code{\removeWithTag
 #'@var{nombre}}.  El resultado de la aplicación de estos filtros a la
@@ -1071,7 +1119,7 @@ music = \relative g' {
 }
 @end lilypond
 
-El flitrado con etiquetas se puede aplicar a articulaciones, textos,
+El filtrado con etiquetas se puede aplicar a articulaciones, textos,
 etc. anteponiendo
 
 @example
@@ -1126,8 +1174,8 @@ etiquetadas, porque el primer filtro quita todas las secciones
 etiquetadas excepto la que se nombra, y el segundo filtro elimina
 incluso esa sección etiquetada.
 
-@seealso
 
+@seealso
 Manual de aprendizaje:
 @rlearning{Organizing pieces with variables}.
 
@@ -1135,11 +1183,13 @@ Referencia de la notación:
 @ref{Automatic part combining},
 @ref{Including LilyPond files}.
 
+
 @ignore
 @c This warning is more general than this placement implies.
 @c Rests are not merged whether or not they come from tagged sections.
 @c Should be deleted?  -td
 
+
 @knownissues
 
 Multiple rests are not merged if you create a score with more
@@ -1215,7 +1265,7 @@ portuguese = \lyricmode {
 \addlyrics { \portuguese }
 @end lilypond
 
-Para introducir un caracter aislado para el que se conoce la secuencia
+Para introducir un carácter aislado para el que se conoce la secuencia
 de escape de Unicode pero no está disponible en el editor que se está
 usando, use @code{\char ##xhhhh} dentro de un bloque @code{\markup},
 donde @code{hhhh} es el código hexadecimal del carácter en cuestión.
@@ -1240,7 +1290,7 @@ partitura:
   }
   \addlyrics { O \markup { \concat{ Ph \char ##x0153 be! } } }
 }
-\markup { "Copyright 2008" \char ##x00A9 }
+\markup { "Copyright 2008--2009" \char ##x00A9 }
 @end lilypond
 
 Para escribir el símbolo de copyright en la nota de créditos, utilice:
@@ -1339,7 +1389,7 @@ Para ver más información sobre los formatos de salida, consulte
 @funindex showLastLength
 
 Al escribir o copiar música, normalmente sólo es interesante de ver y
-corregir la música cercana al final (donde estams añadiendo las
+corregir la música cercana al final (donde estamos añadiendo las
 notas).  Para acelerar este proceso de corrección, es posible saltar
 la composición tipográfica de todos excepto unos pocos de los últimos
 compases.  Esto se consigue poniendo
@@ -1351,7 +1401,7 @@ showLastLength = R1*5
 
 @noindent
 en nuestro archivo fuente.  Esto hará que se tracen sólo los últimos
-cinco compases (suponniendo un compás de 4/4) de cada una de las
+cinco compases (suponiendo un compás de 4/4) de cada una de las
 partituras @code{\score} del archivo de entrada.  Para piezas largas,
 el tipografiado de únicamente una parte pequeña es con frecuencia un
 orden de magnitud más rápido que el de la obra completa.  Si estamos
@@ -1390,7 +1440,7 @@ voces y pentagramas, ahorrando más tiempo incluso.
 El MIDI (Musical Instrument Digital Interface, Interfase Digital para
 Instrumentos Musicales) es un estándar para interconectar y controlar
 instrumentos musicales electrónicos.  Un archivo o secuencia MIDI es
-una serie de notas dentro de un conjunto de pistas.  No es un archivoo
+una serie de notas dentro de un conjunto de pistas.  No es un archivo
 de sonidos reales; se necesita un programa reproductor especial para
 traducir la serie de notas en sonidos de verdad.
 
@@ -1423,19 +1473,19 @@ Para crear un MIDI a partir de una pieza de música, escriba un bloque
 
 @example
 \score @{
-  @var{...music...}
+  @var{...música...}
   \midi @{ @}
 @}
 @end example
 
-If there is a @code{\midi} block in a @code{\score} with no
-@code{\layout} block, only MIDI output will be produced.  When
-notation is needed too, a @code{\layout} block must be also be
-present.
+Si hay un bloque @code{\midi} dentro de un @code{\score} que no tenga
+ningún bloque @code{\layout}, solamente se producirá MIDI.  Si se
+necesita una notación impresa, debe haber también un bloque
+@code{\layout}:
 
 @example
 \score @{
-  @var{...music...}
+  @var{...música...}
   \midi @{ @}
   \layout @{ @}
 @}
@@ -1470,13 +1520,13 @@ instruments}.
 
 @example
 \new Staff @{
-  \set Staff.midiInstrument = "glockenspiel"
+  \set Staff.midiInstrument = #"glockenspiel"
   @var{...notes...}
 @}
 @end example
 
 @example
-\new Staff \with @{midiInstrument = "cello"@} @{
+\new Staff \with @{midiInstrument = #"cello"@} @{
   @var{...notes...}
 @}
 @end example
@@ -1517,7 +1567,7 @@ Los cambios del volumen MIDI sólo tienen lugar al principio de la
 nota, por lo que los crescendi y decrescendi no pueden afectar al
 volumen de una sola nota.
 
-No todos los repoductores de MIDI manejar adecuadamente los cambios de
+No todos los reproductores de MIDI manejar adecuadamente los cambios de
 tempo de la salida MIDI.  Entre los reproductores que se sabe que
 funcionan se encuentran el Reproductor de Medios de MS Windows y
 @uref{http://@/timidity@/.sourceforge@/.net/,timidity}.
@@ -1534,7 +1584,7 @@ diseño de página, pero algo maś simple.  Con frecuencia, el bloque
 @code{\midi} se deja vacío, pero puede contener reorganizaciones de
 contextos, definiciones de contexto nuevas o código para fijar valores
 de propiedades.  Por ejemplo, en el ejemplo siguiente se establece el
-tempo inicial exportado alarchivo MIDI sin hacer que se imprima una
+tempo inicial exportado al archivo MIDI sin hacer que se imprima una
 indicación de tempo:
 
 @example
@@ -1616,7 +1666,7 @@ Los siguientes elementos de notación se reflejan en la salida MIDI:
 
 @itemize
 @item Alturas
-@item Cuartos de tono (véase @ref{Accidentals}. La reproducción necesita un reproductor que contemple la curvatura de tono o @emph{pitch bend}.)
+@item Microtonos (véase @ref{Accidentals}. La reproducción necesita un reproductor que contemple la curvatura de tono o @emph{pitch bend}.)
 @item Acordes escritos como nombres de acorde
 @item Ritmos escritos como duraciones de las notas, incluidos los grupos de valoración especial
 @item Trémolos escritos sin @q{@code{:}[@var{número}]}
@@ -1636,12 +1686,13 @@ salida MIDI:
 
 @itemize
 @item Duraciones escritas como anotaciones, p.ej. el swing
-@item Cambios de tempo escritos como anotacioens sin marca de tempo
+@item Cambios de tempo escritos como anotaciones sin marca de tempo
 @item Staccato y otras articulaciones y ornamentos
 @item Ligaduras de expresión y de fraseo
 @item Crescendi y decrescendi sobre una nota única
 @item Trémolos introducidos con @q{@code{:}[@var{número}]}
 @item Bajo cifrado
+@item Acordes microtonales
 @end itemize
 
 
@@ -1656,7 +1707,7 @@ repetición esté presente en la salida MIDI.  Esto se consigue mediante
 la aplicación de la función musical @code{\unfoldRepeats}.  Esta
 función cambia todas las repeticiones a repeticiones desplegadas.
 
-@lilypond[quote,verbatim,fragment,line-width=8.0\cm]
+@lilypond[quote,verbatim]
 \unfoldRepeats {
   \repeat tremolo 8 {c'32 e' }
   \repeat percent 2 { c''8 d'' }
@@ -1704,14 +1755,14 @@ se extienden desde 0.25 para @notation{ppppp} hasta 0.95 para
 @notation{fffff}.  El conjunto de indicaciones dinámicas y las
 fracciones asociadas pueden verse en @file{../scm/midi.scm}, véase
 @rlearning{Other sources of information}.  Este conjunto de fracciones
-se puede cmbiar o extender proporcionando una función que toma como
+se puede cambiar o extender proporcionando una función que toma como
 argumento una indicación dinámica y devuelve la fracción requerida, y
 estableciendo @code{Score.dynamicAbsoluteVolumeFunction} a esta
 función.
 
 Por ejemplo, si se requiere una indicación dinámica
 @notation{rinforzando}, @code{\rfz}, ésta no tiene ningún efecto
-predeterminado sobre el voumen MIDI, pues no está incluida en el
+predeterminado sobre el volumen MIDI, pues no está incluida en el
 conjunto predeterminado.  De igual manera, si se define una indicación
 dinámica nueva con @code{make-dynamic-script}, ésta tampoco estará
 incluida en el conjunto predeterminado.  El ejemplo siguiente muestra
@@ -1728,7 +1779,7 @@ predeterminada.
 
 \score {
   \new Staff {
-    \set Staff.midiInstrument = "cello"
+    \set Staff.midiInstrument = #"cello"
     \set Score.dynamicAbsoluteVolumeFunction = #myDynamics
     \new Voice {
        \relative c'' {
@@ -1862,7 +1913,7 @@ El ecualizador básico predeterminado se puede sustituir estableciendo
 procedimiento Scheme nuevo que acepte el nombre de un instrumento MIDI
 como único argumento y devuelva un par de fracciones que dan los
 volúmenes máximo y mínimo que se aplican a dicho instrumento.  Esta
-sustitución se hace de la misma forma que mostramos para reestablecer
+sustitución se hace de la misma forma que mostramos para restablecer
 la fracción de volumen absoluto @code{dynamicAbsoluteVolumeFunction}
 al comienzo de esta sección.  El ecualizador predeterminado,
 @notation{default-instrument-equalizer}, en @file{../scm/midi.scm},
@@ -1959,7 +2010,7 @@ salida correctamente por el canal MIDI@tie{}10, pero ciertos
 instrumentos de percusión de altura determinada, como el xilófono,
 marimba, vibráfono, timbales, etc., se tratan como instrumentos
 @qq{normales} y la música para estos instrumentos se debe introducir
-en contestos de @code{Staff} normales, no en un contexto
+en contextos de @code{Staff} normales, no en un contexto
 @code{DrumStaff}, para obtener la salida MIDI correcta.
 
 Ciertos sonidos de altura indeterminada que están incluidos en el
@@ -1970,7 +2021,7 @@ introducir también en un contexto normal de @code{Staff}, utilizando
 las alturas normales adecuadas.
 
 Muchos instrumentos de percusión no están incluidos dentro del
-estándar General MIDI standard, p.ej. las castañuelas.  El método más
+estándar General MIDI, p.ej. las castañuelas.  El método más
 fácil (aunque no satisfactorio) de producir una salida MIDI al
 escribir para estos instrumentos es sustituirlos por el sonido más
 parecido del conjunto estándar.
index 4bec065aebebbe30ad86d18a42775953575f124f..f43ff06261c37a83e7170dd42857e3814f248ecb 100644 (file)
@@ -1,14 +1,14 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 @c This file is part of lilypond-program.tely
 @ignore
-    Translation of GIT committish: 85b54e04be6730bd0781f3135ee741010e099fd8
+    Translation of GIT committish: 7385b95b8a91525e82559355dddea4f1ff965f5c
 
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @c Translators: Francisco Vila
 
index 975620e081a3d1b82e3562b23c6d9f4465bea132..7cb25a9d3c217c58c550c68a77daed324d54cc10 100644 (file)
@@ -1,13 +1,13 @@
-@c -*- coding: utf-8; mode: texinfo; -*-
+@c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 @c This file is part of lilypond.tely
 @ignore
-    Translation of GIT committish: 85b54e04be6730bd0781f3135ee741010e099fd8
+    Translation of GIT committish: 41ef91786a08102d9b9a839f6a2f40cec263d723
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @c Translation status: post-GDP
 
@@ -41,7 +41,7 @@ LilyPond.
 @unnumberedsubsec Engraving
 
 @cindex grabado
-@cindex typografía musical
+@cindex tipografía musical
 @cindex musical, tipografía
 @cindex plancha, grabado en
 @cindex musical, grabado
@@ -325,7 +325,7 @@ direcciones hacia arriba (o hacia la derecha).
 \new Score \with {
    \override SpacingSpanner #'spacing-increment = #3
    \override TimeSignature #'transparent = ##t
-} \relative {
+} \relative c' {
    \stemDown <e g b>4_>-\arpeggio
    \override Arpeggio #'direction = #RIGHT
    \stemUp <e g b>4^>-\arpeggio
@@ -378,34 +378,33 @@ altera durante el transcurso del fragmento musical.
          (pos (ly:grob-property grob 'staff-position)))
     (if (memq 'note-head-interface interfaces)
         (begin
-          (ly:grob-set-property! grob 'stencil ly:text-interface::print)
-          (ly:grob-set-property! grob 'font-family 'roman)
-          (ly:grob-set-property! grob 'text
-            (make-raise-markup -0.5
-              (case pos
-                ((-5) (make-simple-markup "m"))
-                ((-3) (make-simple-markup "c "))
-                ((-2) (make-smaller-markup (make-bold-markup "2")))
-                (else (make-simple-markup "bla")))))))))
+          (ly:grob-set-property! grob 'stencil
+            (grob-interpret-markup grob
+              (make-lower-markup 0.5
+                (case pos
+                  ((-5) "m")
+                  ((-3) "c ")
+                  ((-2) (make-smaller-markup (make-bold-markup "2")))
+                  (else "bla")))))))))
 
 \new Voice \relative c' {
-   \stemUp
-   \set autoBeaming = ##f
-   \time 2/4
-   <d f g>4
-   \once \override NoteHead #'stencil = #ly: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>
-   \once \override NoteHead #'style = #'cross
-   <d f g>
-   \applyOutput #'Voice #mc-squared
-   <d f g>
-   <<
-      { d8[ es-( fis^^ g] fis2-) }
-      \repeat unfold 5 { \applyOutput #'Voice #mc-squared s8 }
-   >>
+  \stemUp
+  \set autoBeaming = ##f
+  \time 2/4
+  <d f g>4
+  \once \override NoteHead #'stencil = #ly: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
+  <d f g>4
+  \applyOutput #'Voice #mc-squared
+  <d f g>4
+  <<
+    { d8[ es-( fis^^ g] fis2-) }
+    \repeat unfold 5 { \applyOutput #'Voice #mc-squared s8 }
+  >>
 }
 @end lilypond
 
@@ -453,9 +452,9 @@ cabezas de las notas, el @code{Note_heads_engraver}.
 \include "engraver-example.ily"
 
 \score {
-   \topVoice
-   \layout {
-   \context {
+  \topVoice
+  \layout {
+    \context {
       \Voice
       \remove "Stem_engraver"
       \remove "Phrasing_slur_engraver"
@@ -463,8 +462,8 @@ cabezas de las notas, el @code{Note_heads_engraver}.
       \remove "Script_engraver"
       \remove "Beam_engraver"
       \remove "Auto_beam_engraver"
-   }
-   \context {
+    }
+    \context {
       \Staff
       \remove "Accidental_engraver"
       \remove "Key_engraver"
@@ -473,8 +472,8 @@ cabezas de las notas, el @code{Note_heads_engraver}.
       \remove "Time_signature_engraver"
       \remove "Staff_symbol_engraver"
       \consists "Pitch_squash_engraver"
-   }
-}
+    }
+  }
 }
 @end lilypond
 
@@ -605,11 +604,12 @@ de voz.  De forma semejante, varios Contextos de pauta pueden
 agruparse en un único Contexto de partitura.  El Contexto de partitura
 es el contexto de notación de más alto nivel.
 
-@seealso
 
+@seealso
 Referencia de funcionamiento interno:
 @rinternals{Contexts}.
 
+
 @lilypond[quote,ragged-right]
 \include "engraver-example.ily"
 \score {
@@ -648,7 +648,7 @@ fácil teclear
 @end example
 
 @noindent
-un Do1 (Do central) negra, y un Re1 (el Re por encima del Do central)
+un Do4 (Do central) negra, y un Re4 (el Re por encima del Do central)
 corchea.
 
 @lilypond[quote]
@@ -666,7 +666,7 @@ mayores, se pueden expresar ideas musicales más complejas.  Por
 ejemplo
 
 @lilypond[quote,verbatim,fragment,relative=1]
-c4
+f4
 @end lilypond
 
 @noindent
@@ -741,26 +741,103 @@ grabado de música dentro de un programa de ordenador.  Gracias a todo
 este duro trabajo, el programa ahora se puede usar para hacer trabajos
 útiles.  La aplicación más sencilla es imprimir notas.
 
-@lilypond[quote,relative=1,fragment]
-\time 2/4 c4 c g'4 g a4 a g2
+@lilypond[quote,relative=1]
+{
+  \time 2/4
+  c4 c g'4 g a4 a g2
+}
 @end lilypond
 
 @noindent
 Añadiendo los nombres de acordes y la letra, obtenemos una hoja guía
 de acordes (lead sheet).
 
+@c KEEP LY
 @lilypond[quote,ragged-right]
 <<
    \chords { c2 c f2 c }
-   \new Staff \relative c' { \time 2/4 c4 c g'4 g a4 a g2 }
-   \new Lyrics \lyricmode { twin4 kle twin kle lit tle star2 }
+   \new Staff
+   \relative c' {
+     \time 2/4
+     c4 c g' g a a g2
+   }
+   \addlyrics { cam -- pa -- ni -- ta del lu -- gar }
 >>
 @end lilypond
 
-También se pueden imprimir notación polifónica y música para piano.
+También se puede imprimir notación polifónica y música para piano.
 El ejemplo siguiente combina algunas otras construcciones exóticas.
 
-@lilypondfile[quote,ragged-right]{screech-boink.ly}
+@lilypond[quote]
+\header {
+  title = "Screech and boink"
+  subtitle = "Random complex notation"
+  composer = "Han-Wen Nienhuys"
+}
+
+\score {
+  \context PianoStaff <<
+    \new Staff = "up" {
+      \time 4/8
+      \key c \minor
+      << {
+        \revert Stem #'direction
+        \change Staff = down
+        \set subdivideBeams = ##t
+        g16.[
+          \change Staff = up
+          c'''32
+          \change Staff = down
+          g32
+          \change Staff = up
+          c'''32
+          \change Staff = down
+          g16]
+        \change Staff = up
+        \stemUp
+        \set followVoice = ##t
+        c'''32([ b''16 a''16 gis''16 g''32)]
+      } \\ {
+        s4 \times 2/3 { d'16[ f' g'] } as'32[ b''32 e'' d'']
+      } \\ {
+        s4 \autoBeamOff d''8.. f''32
+      } \\ {
+        s4 es''4
+      } >>
+    }
+
+    \new Staff = "down" {
+      \clef bass
+      \key c \minor
+      \set subdivideBeams = ##f
+      \override Stem  #'french-beaming = ##t
+      \override 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
+        <cis, e, gis, b, cis>4\arpeggio
+      }
+    >> }
+  >>
+  \midi {
+    \context {
+      \Score
+      tempoWholesPerMinute = #(ly:make-moment 60 8)
+    }
+  }
+  \layout {
+    \context {
+      \Staff
+      \consists Horizontal_bracket_engraver
+    }
+  }
+}
+@end lilypond
 
 Todos los fragmentos mostrados se han escrito a mano, pero esto no es
 necesariamente así.  Puesto que el motor de formateo es casi
@@ -795,13 +872,13 @@ Esta sección explica la distintas partes de la documentación.
 @c leave these lines wrapping around.  It's some texinfo 4.12 thing. -gp
 @c This is actually a limitation of texi2html. -jm
 @menu
-* About the Learning Manual::   este manual es una introducción a LilyPond que porporciona explicaciones en profundidad sobre cómo crear notación.
-* About the Music Glossary::    este manual explica términos musicales y aporta traducciones de términos a otros idiomas.
-* About the Notation Reference::  este manual es la porción más importante de la documentación.  Proporciona información detallada sobre la creación de notación.  Este libro da por supuesto que el lector ya conoce el material básico cubierto en el Manual de aprendizaje y que está familiarizado con los términos musicales ingleses presentados en el Glosario musical.
-* About the Application Usage::  trata sobre los programas concretos y los asuntos específicos de distintos sistemas operativos.
-* About the Snippet List::      es una colección de ejemplos breves de LilyPond.
-* About the Internals Reference::  este documento proporciona información sobre la programación interna de LilyPond, que es necesaria para construir los trucos.
-* Other documentation::         existen algunas otras porciones de la documentación, como las Noticias y los archivos históricos de las listas de correo.
+* About the Learning Manual::   Este manual es una introducción a LilyPond que proporciona explicaciones en profundidad sobre cómo crear notación.
+* About the Music Glossary::    Este manual explica términos musicales y aporta traducciones de términos a otros idiomas.
+* About the Notation Reference::  Este manual es la porción más importante de la documentación.  Proporciona información detallada sobre la creación de notación.  Este libro da por supuesto que el lector ya conoce el material básico cubierto en el Manual de aprendizaje y que está familiarizado con los términos musicales ingleses presentados en el Glosario musical.
+* About the Application Usage::  Trata sobre los programas concretos y los asuntos específicos de distintos sistemas operativos.
+* About the Snippet List::      Es una colección de ejemplos breves de LilyPond.
+* About the Internals Reference::  Este documento proporciona información sobre la programación interna de LilyPond, que es necesaria para construir los trucos.
+* Other documentation::         Existen algunas otras porciones de la documentación, como las Noticias y los archivos históricos de las listas de correo.
 @end menu
 
 
@@ -852,8 +929,8 @@ mirada posterior:
 
 @item
 @ref{Templates}: muestra plantillas de piezas de LilyPond, listas para
-usar.  Tan sólo tiene que cortar y pegar una plantilla en uin archivo,
-excribir las notas, y ¡habrá terminado!
+usar.  Tan sólo tiene que cortar y pegar una plantilla en un archivo,
+escribir las notas, y ¡habrá terminado!
 
 @item
 @ref{Scheme tutorial}: presenta una breve introducción a Scheme, el
@@ -871,7 +948,7 @@ siquiera a tocar el Scheme.
 @cindex frase idiomática
 @cindex jerga
 @cindex terminología
-@cindex idomas extranjeros
+@cindex idiomas extranjeros
 @cindex idiomas
 
 @rglosnamed{Top,Glosario musical}: explica términos musicales e incluye
@@ -951,7 +1028,7 @@ comunes.
 
 @item
 @ruser{LilyPond command index}:
-un Ãºndice de todas las @code{\instrucciones} de LilyPond.
+un Ã­ndice de todas las @code{\instrucciones} de LilyPond.
 
 @item
 @ruser{LilyPond index}:
@@ -1010,7 +1087,7 @@ convierten una amplia variedad de formatos de música al formato
 @cindex LilyPond Snippet Repository
 
 @rlsrnamed{Top,Lista de fragmentos de código de LilyPond}: presenta un conjunto
-seleccionado de pfragmentos de código de LilyPond procedentes del
+seleccionado de fragmentos de código de LilyPond procedentes del
 @uref{http://lsr@/.dsi@/.unimi@/.it,Repositorio de Fragmentos de
 Código} (LSR).  Todos los fragmentos se encuentran en el dominio
 público.
index 9f3bb403ea1ddb96fc4089da6e8b86fb6e026efa..5305a83f700e9476c1078c6174c62090066e3aac 100644 (file)
@@ -1,13 +1,13 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 @c This file is part of lilypond.tely
 @ignore
-    Translation of GIT committish: bc494bf964f01a1327bc7c6e3c70d0cb8d897ecb
+    Translation of GIT committish: 19841b86e54ac60d93af1150c31b7c246741ce1c
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @node Keyboard and other multi-staff instruments
 @section Keyboard and other multi-staff instruments
@@ -34,7 +34,7 @@ teclado.
 @subsection Common notation for keyboards
 
 Esta sección trata aspectos de notación que pueden aparecer en casi
-todos los instrumentos que tengan muchas cuerdas.
+todos los instrumentos de teclado.
 
 @menu
 * References for keyboards::
@@ -104,8 +104,12 @@ tweaks}.
 
 @end itemize
 
-@seealso
+@c @snippets
+@c @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+@c {forcing-visibility-of-systems-with-multi-bar-rests-when-using-\RemoveEmptyStaffContext.ly}
+@c http://lsr.dsi.unimi.it/LSR/Item?u=1&id=312
 
+@seealso
 Manual de aprendizaje:
 @rlearning{Real music example},
 @rlearning{Other uses for tweaks}.
@@ -128,6 +132,7 @@ Referencia de funcionamiento interno:
 Fragmentos de código:
 @rlsr{Keyboards}.
 
+
 @knownissues
 
 @cindex teclado, matices centrados para música de
@@ -149,7 +154,7 @@ estudia en @rlearning{Moving objects}.
 
 @cindex manual, cambio de pentagrama
 @cindex pentagrama, cambios manuales de
-@cindex cambbio manual de pentagrama
+@cindex cambio manual de pentagrama
 @cindex cruzado, pentagrama, notas de
 @cindex notes de pentagrama cruzado
 @cindex barras de pentagrama cruzado
@@ -171,6 +176,10 @@ Cambia la voz actual de su pentagrama en curso al pentagrama de nombre
 @var{nombre_del_pentagrama} son @code{"arriba"} y @code{"abajo"}, o
 bien @code{"MD"} y @code{"MI"}.
 
+El pentagrama al que salta la voz debe existir en el momento del
+salto.  Si es necesario, los pentagramas se tienen que @qq{mantener
+con vida}, véase @ref{Keeping contexts alive}.
+
 Las notas de pentagrama cruzado reciben la barra automáticamente:
 
 @lilypond[verbatim,quote]
@@ -195,18 +204,19 @@ Las notas de pentagrama cruzado reciben la barra automáticamente:
 
 Si el barrado necesita algún trucaje, efectúe en primer lugar los
 cambios en las direcciones de las plicas.  Las posiciones de las
-barras se miden posteriormente a partir del centro del peentagrama que
+barras se miden posteriormente a partir del centro del pentagrama que
 está más cerca de la barra.  Para ver un ejemplo sencillo de trucaje
 de las barras, consulte @rlearning{Fixing overlapping notation}.
 
-@seealso
 
+@seealso
 Manual de aprendizaje:
 @rlearning{Fixing overlapping notation}.
 
 Referencia de la notación:
 @ref{Stems},
-@ref{Automatic beams}.
+@ref{Automatic beams},
+@ref{Keeping contexts alive}.
 
 Fragmentos de código:
 @rlsr{Keyboards}.
@@ -266,13 +276,20 @@ tanto, en caso necesario escriba @code{\relative} dentro de
 Si se necesita más control sobre los pentagramas individuales, se
 pueden crear manualmente con los nombres @code{"up"} y @code{"down"}.
 Entonces, la instrucción @code{\autochange} alternará su voz entre los
-pentagramas existentes.  Por ejemplo, esto es necesario para colocar
-una armadura de tonalidad en el pentagrama inferior:
+pentagramas existentes.
 
-@lilypond[quote,verbatim]
+@warning{Si se crean los pentagramas manualmente, @emph{se deben}
+llamar @code{"up"} y @code{"down"} (en inglés).}
+
+Por ejemplo, esto es necesario para colocar una armadura de tonalidad
+en el pentagrama inferior:
+
+@c Keep Ly needed, otherwise 'up' and 'down' get incorrectly translated in verbatim output
+@c KEEP LY
+@lilypond[quote,verbatim,nogettext]
 \new PianoStaff <<
   \new Staff = "up" {
-    \new Voice = "melOne" {
+    \new Voice = "melodiaUno" {
       \key g \major
       \autochange \relative c' {
         g8 b a c b d c e
@@ -287,8 +304,8 @@ una armadura de tonalidad en el pentagrama inferior:
 >>
 @end lilypond
 
-@seealso
 
+@seealso
 Referencia de la notación:
 @ref{Changing staff manually}.
 
@@ -298,6 +315,7 @@ Fragmentos de código:
 Referencia de funcionamiento interno:
 @rinternals{AutoChangeMusic}.
 
+
 @knownissues
 
 @cindex acordes, división entre pentagramas con \autochange
@@ -349,13 +367,14 @@ automáticamente una línea que conecte las notas:
 >>
 @end lilypond
 
-@predefined
 
+@predefined
 @code{\showStaffSwitch},
 @code{\hideStaffSwitch}.
+@endpredefined
 
-@seealso
 
+@seealso
 Fragmentos de código:
 @rlsr{Keyboards}.
 
@@ -418,14 +437,15 @@ Se pueden hacer acordes que cruzan los pentagramas:
 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
 {indicating-cross-staff-chords-with-arpeggio-bracket.ly}
 
-@seealso
 
+@seealso
 Fragmentos de código:
 @rlsr{Keyboards}.
 
 Referencia de funcionamiento interno:
 @rinternals{Stem}.
 
+
 @node Piano
 @subsection Piano
 
@@ -515,8 +535,8 @@ movimiento físico del pedal derecho en el transcurso de la ejecución.
 La pedalización hasta la barra final de compás se indica mediante la
 omisión de la instrucción final de levantar el pedal.
 
-@seealso
 
+@seealso
 Referencia de la notación:
 @ref{Ties}.
 
@@ -536,6 +556,7 @@ Referencia de funcionamiento interno:
 @rinternals{PianoPedalBracket},
 @rinternals{Piano_pedal_engraver}.
 
+
 @node Accordion
 @subsection Accordion
 
@@ -569,8 +590,8 @@ ejecución.
 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
 {accordion-discant-symbols.ly}
 
-@seealso
 
+@seealso
 Fragmentos de código:
 @rlsr{Keyboards}.
 
@@ -578,4 +599,81 @@ Fragmentos de código:
 @node Harp
 @subsection Harp
 
-Continuará...
+Esta sección trata sobre asuntos de notación específicos del arpa.
+
+@menu
+* References for harps::
+* Harp pedals::
+@end menu
+
+@node References for harps
+@unnumberedsubsubsec References for harps
+@cindex harps
+@cindex bisbiglando
+
+Ciertas características comunes de la música de arpa se estudian en
+otras partes de la documentación:
+
+@itemize
+
+@item El glissando es la técnica más característica del arpa,
+@ref{Glissando}.
+
+@item El @notation{bisbigliando} se escribe como un trémolo, @ref{Tremolo
+repeats}
+
+@item Los armónicos naturales se estudian bajo el epígrafe @ref{Harmonics}.
+
+@item Para los arpegios dirigidos y los no arpegios, véase @ref{Arpeggio}.
+
+@end itemize
+
+@seealso
+Referencia de la notación:
+@ref{Tremolo repeats},
+@ref{Glissando},
+@ref{Arpeggio},
+@ref{Harmonics}.
+
+@node Harp pedals
+@unnumberedsubsubsec Harp pedals
+
+@cindex arpa, pedales
+@cindex arpa, diagramas de pedal
+@cindex pedales del arpa
+@cindex pedales del arpa, diagramas
+
+Las arpas tienen siete cuerdas por octava que pueden sonar a la altura
+natural, bemol o sostenido. En el arpa de palancas o arpa celta, cada
+cuerda se ajusta individualmente, pero en las arpas de pedales todas
+las cuerdas con igual nombre de nota se controlan por un único
+pedal. Visto de izquierda a derecha desde la posición del ejecutante,
+los pedales son Re, Do y Si a la izquierda y Mi, Fa, Sol y La a la
+derecha.  La posición de los pedales se puede indicar con indicaciones
+textuales:
+
+@lilypond[quote,verbatim,relative=2]
+\textLengthOn
+cis1_\markup \concat \vcenter { [D \flat C \sharp B|E \sharp F \sharp G A \flat] }
+c!1_\markup \concat \vcenter {[ C \natural ]}
+@end lilypond
+
+o mediante diagramas de pedal:
+
+@lilypond[quote,verbatim,relative=2]
+\textLengthOn
+cis1_\markup { \harp-pedal #"^v-|vv-^" }
+c!1_\markup { \harp-pedal #"^o--|vv-^" }
+@end lilypond
+
+La instrucción @code{\harp-pedal} acepta una cadena de caracteres en
+la que @code{^} es la posición alta del pedal (altura bemol), @code{-}
+es la posición intermedia (altura natural), @code{v} es la posición
+baja (altura sostenido), y @code{|} es la línea vertical separadora.
+Si se antepone @code{o}, el siguiente símbolo de pedal se rodea por
+una elipse.
+
+@seealso
+Referencia de la notación:
+@ref{Text scripts},
+@ref{Instrument Specific Markup}.
index b3d1387f92afef4dc8fecb36306200398b91bfc6..7a0a8e53512889add84462bb7f2d5c93fd66a878 100644 (file)
@@ -1,13 +1,13 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 @c This file is part of lilypond-program.tely
 @ignore
-    Translation of GIT committish: 85b54e04be6730bd0781f3135ee741010e099fd8
+    Translation of GIT committish: 41ef91786a08102d9b9a839f6a2f40cec263d723
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 
 @c Note: keep this node named so that `info lilypond-book' brings you here.
@@ -30,7 +30,7 @@ que coincidan con los ajustes de su documento.
 Es un programa distinto a @command{lilypond} propiamente dicho, y se
 ejecuta sobre la línea de órdenes; para ver más información, consulte
 @ref{Command-line usage}.  Si tiene MacOS 10.3 o 10.4 y experimenta
-algún problema al ajecutar @code{lilypond-book}, consulte @ref{Setup
+algún problema al ejecutar @code{lilypond-book}, consulte @ref{Setup
 for MacOS X}.
 
 Este procedimiento se puede aplicar a documentos de @LaTeX{}, HTML,
@@ -214,6 +214,9 @@ o bien
 \lilypond@{ EL CÓDIGO DE LILYPOND @}
 @end example
 
+De forma adicional, @code{\lilypondversion} imprime la versión actual
+de lilypond.
+
 La ejecución de @command{lilypond-book} deja como resultado un archivo
 que se puede procesar posteriormente con @LaTeX{}.
 
@@ -263,7 +266,7 @@ la opción @code{line-width} del fragmento de música.
 Cada fragmento ejecutará los macros siguientes si han sido definidos
 por el usuario:
 
-@itemize bullet
+@itemize @bullet
 @item @code{\preLilyPondExample} que se llama antes de la música,
 
 @item @code{\postLilyPondExample} que se llama después de la música,
@@ -368,6 +371,7 @@ fragmento:
 \begin@{lilypond@}...\end@{lilypond@}
 @end example
 
+
 @seealso
 Hay opciones de línea de órdenes específicas de
 @command{lilypond-book} y otros detalles que conocer para procesar
@@ -404,6 +408,9 @@ o bien
 @@lilypondfile[las,opciones,van,aquí]@{@var{archivo}@}
 @end example
 
+De forma adicional, @code{@@lilypondversion} imprime la versión actual
+de lilypond.
+
 Cuando se ejecuta @command{lilypond-book} sobre el archivo, se obtiene
 como resultado un archivo Texinfo (con la extensión @file{.texi}) que
 contiene etiquetas @code{@@image} para el HTML, Info y la salida
@@ -474,6 +481,9 @@ Para incluir archivos externos, escriba
 <lilypondfile @var{opción1} @var{opción2} ...>@var{archivo}</lilypondfile>
 @end example
 
+De forma adicional, @code{<lilypondversion/>} imprime la versión
+actual de lilypond.
+
 @cindex títulos en  HTML
 @cindex vista previa, imagen
 @cindex miniatura
@@ -585,11 +595,6 @@ Para fragmentos de una sola línea, permitir que la longitud del
 pentagrama se amplíe hasta igualar la anchura de la línea, es decir,
 se añade @code{ragged-right = ##f} al fragmento de LilyPond.
 
-@c does this option still exist in lilypond? -jm
-@item packed
-Producir líneas con el espaciado empaquetado, es decir, se añade
-@code{packed = ##t} al fragmento de código de LilyPond.
-
 @item line-width
 @itemx line-width=@var{tamaño}\@var{unidades}
 Establecer el ancho de línea como @var{tamaño}, utilizando
@@ -621,7 +626,7 @@ c'4
 sin @code{\layout}, @code{\score}, etc.
 
 @item nofragment
-No añadir escribir el código adicional que completa la sintaxis de
+No incluir el código adicional que completa la sintaxis de
 LilyPond en los fragmentos de música.  Al ser la opción
 predeterminada, @code{nofragment} normalmente es redundante.
 
@@ -655,7 +660,7 @@ opcional especifica la octava de la nota inicial, donde el valor
 predeterminado @code{1} es el Do central.  La opción @code{relative}
 sólo funciona cuando está establecida la opción @code{fragment}, de
 manera que @code{fragment} viene implicada automáticamente por
-@code{relative}, independientemenre de la presencia de @code{fragment}
+@code{relative}, independientemente de la presencia de @code{fragment}
 o de @code{nofragment} en la fuente.
 
 @end table
@@ -699,6 +704,13 @@ se imprimirá como un bloque preformateado como
   f2 e
 @end example
 
+@noindent
+Si queremos traducir los comentarios y los nombres de variable en la
+salida literal pero no en el código fuente, podemos establecer el
+valor de la variable de entorno @code{LYDOC_LOCALEDIR} a la ruta de un
+directorio; este directorio debe contener un árbol de catálogos de
+mensajes @file{.mo} con @code{lilypond-doc} como dominio.
+
 @item addversion
 (Sólo para la salida de Texinfo.)  Anteponer la línea @code{\version
 @@w@{"@@version@{@}"@}} a la salida de @code{verbatim}.
@@ -734,8 +746,8 @@ y que tenemos lo siguiente en nuestro documento de Texinfo
 la siguiente orden da como salida el resultado esperado:
 
 @example
-lilypond-book --process="lilypond --format=tex --tex \
-              --header=texidoc prueba.texinfo
+lilypond-book --pdf --process="lilypond \
+  -dbackend=eps --header=texidoc" test.texinfo
 @end example
 
 La mayoría de los documentos de prueba de LilyPond (en el directorio
@@ -772,6 +784,10 @@ macro definido en el documento de Texinfo.  La misma indicación
 referida al procesado de @code{texidoc} con idiomas localizados se
 aplica a @code{doctitle}.
 
+@item nogettext
+(Sólo para la salida de Texinfo.) No traducir los comentarios y
+nombres de variable en el fragmento de código literal citado.
+
 @item printfilename
 Si un archivo de entrada de LilyPond se incluye con
 @code{\lilypondfile}, imprimir el nombre del archivo inmediatamente
@@ -937,7 +953,7 @@ Dar formato a la salida de Texinfo de manera que Info busque las
 imágenes de música en @var{directorio}.
 
 @itemx --latex-program=@var{prog}
-Ejecutar el propgrama @command{prog} en vez de @command{latex}.  Esto
+Ejecutar el programa @command{prog} en vez de @command{latex}.  Esto
 es útil si nuestro documento se procesa con @command{xelatex}, por
 ejemplo.
 
index 9ea81c3c9c633a9dfe25cde96023bbdcff989dcc..c570e2f54579f91b220a7c20fa8146fee395072a 100644 (file)
@@ -1,6 +1,6 @@
-\input texinfo @c -*- coding: utf-8; mode: texinfo; -*-
+\input texinfo @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 @ignore
-    Translation of GIT committish: bf1e35f1dee87dc6c6537e52cda6c2ed9add6fb4
+    Translation of GIT committish: c7d6848e128f461a4cec093f7a71a34b2dc314eb
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 
 @include macros.itexi
 
-@iftex
 @afourpaper
-@c don't replace quotes with directed quotes
-@tex
-\gdef\SETtxicodequoteundirected{Foo}
-\gdef\SETtxicodequotebacktick{Bla}
-@end tex
-@end iftex
-
 
 @c don't remove this comment.
 @ignore
 @end ifnottex
 
 @ifhtml
-Este documento también está disponible como
+@ifclear bigpage
+Este documento también está disponible en formato
+@uref{source/Documentation/user/lilypond-learning.es.pdf,PDF} y como
+@uref{source/Documentation/user/lilypond-learning-big-page.es.html,una sola página}.
+@end ifclear
+@ifset bigpage
+Este documento también está disponible en formato
 @uref{source/Documentation/user/lilypond-learning.es.pdf,PDF} y como
-@uref{source/Documentation/user/lilypond-learning-big-page.es.html,una sola página enorme}.
+@uref{source/Documentation/user/lilypond-learning/index.es.html,un documento HTML normal de muchas páginas}.
+@end ifset
 @end ifhtml
 
-
 @c  This produces the unified index
 @syncodeindex fn cp
 @syncodeindex vr cp
@@ -59,7 +57,7 @@ Este documento también está disponible como
 @author El equipo de desarrollo de LilyPond
 
 
-Copyright @copyright{} 1999--2008 por los autores
+Copyright @copyright{} 1999--2009 por los autores
 
 @emph{La traducción de la siguiente nota de copyright se ofrece como
 cortesía para las personas de habla no inglesa, pero únicamente la
@@ -93,7 +91,7 @@ Para LilyPond versión @version{}
 @end titlepage
 
 @copying
-Copyright @copyright{} 1999--2008 por los autores
+Copyright @copyright{} 1999--2009 por los autores
 
 @emph{La traducción de la siguiente nota de copyright se ofrece como
 cortesía para las personas de habla no inglesa, pero únicamente la
@@ -126,7 +124,7 @@ Free Documentation License''.
 @ifnottex
 Este archivo es la documentación de GNU LilyPond orientada a quienes empiezan con el programa.
 
-Copyright @copyright{} 1999--2008 por los autores
+Copyright @copyright{} 1999--2009 por los autores
 
 @emph{La traducción de la siguiente nota de copyright se ofrece como
 cortesía para las personas de habla no inglesa, pero únicamente la
@@ -157,11 +155,12 @@ Free Documentation License''.
 
 @c TRANSLATE ME
 @ifnottex
-Éste es el manual de aprendizaje de GNU LilyPond, versión @version{}.
-Para ver más información acerca de la relación entre éste y el resto
-de los documentos, consulte @ref{About the documentation}.
-
+El presente documento es el manual de aprendizaje de GNU LilyPond,
+versión @version{}.  Para ver más información sobre la relación entre
+éste y el resto de los documentos, consulte @ref{About the
+documentation}.
 
+@cindex web, página
 @cindex página web
 @cindex URL
 
index 74887165042ad8d8c0aa758fbfa1fc3ae8bdba69..81c53d7f566f11b2525ed0b7e60b63e62392668c 100644 (file)
@@ -1,6 +1,6 @@
-\input texinfo @c -*- coding: utf-8; mode: texinfo; -*-
+\input texinfo @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 @ignore
-    Translation of GIT committish: bf1e35f1dee87dc6c6537e52cda6c2ed9add6fb4
+    Translation of GIT committish: c7d6848e128f461a4cec093f7a71a34b2dc314eb
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 
 @include macros.itexi
 
-@iftex
 @afourpaper
-@c don't replace quotes with directed quotes
-@tex
-\gdef\SETtxicodequoteundirected{Foo}
-\gdef\SETtxicodequotebacktick{Bla}
-@end tex
-@end iftex
-
 
 @c don't remove this comment.
 @ignore
 @c HJJ: Info needs `@top', which is a synonym for `@unnumbered' in TeX.
 @end ifnottex
 
+
 @ifhtml
-Este documento está disponible también en formato
+@ifclear bigpage
+Este documento también está disponible en formato
+@uref{source/Documentation/user/lilypond-program.es.pdf,PDF} y como
+@uref{source/Documentation/user/lilypond-program-big-page.es.html,una sola página}.
+@end ifclear
+@ifset bigpage
+Este documento también está disponible en formato
 @uref{source/Documentation/user/lilypond-program.es.pdf,PDF} y como
-@uref{source/Documentation/user/lilypond-program-big-page.html,una sola página} [en inglés].
+@uref{source/Documentation/user/lilypond-program/index.es.html,un documento HTML normal de muchas páginas}.
+@end ifset
 @end ifhtml
 
 
@@ -60,7 +60,7 @@ Este documento está disponible también en formato
 @author El equipo de desarrollo de LilyPond
 
 
-Copyright @copyright{} 1999--2008 por los autores
+Copyright @copyright{} 1999--2009 por los autores
 
 @emph{La traducción de la siguiente nota de copyright se ofrece como
 cortesía para las personas de habla no inglesa, pero únicamente la
@@ -95,7 +95,7 @@ Para LilyPond versión @version{}
 
 
 @copying
-Copyright @copyright{} 1999--2008 por los autores
+Copyright @copyright{} 1999--2009 por los autores
 
 @emph{La traducción de la siguiente nota de copyright se ofrece como
 cortesía para las personas de habla no inglesa, pero únicamente la
@@ -127,7 +127,7 @@ Free Documentation License''.
 @ifnottex
 Este archivo es la documentación de la utilización del programa GNU LilyPond.
 
-Copyright 1999--2008 por los autores
+Copyright 1999--2009 por los autores
 
 @emph{La traducción de la siguiente nota de copyright se ofrece como
 cortesía para las personas de habla no inglesa, pero únicamente la
@@ -158,20 +158,21 @@ Free Documentation License''.
 
 @ifnottex
 El presente documento es el manual de utilización del programa GNU
-LilyPond, versión @version{}.  Para ver más información acerca de la
+LilyPond, versión @version{}.  Para ver más información sobre la
 relación entre éste y el resto de los documentos, consulte
 @rlearning{About the documentation}.
 
+@cindex web, página
 @cindex página web
 @cindex URL
 
-Se puede ampliar información en
-@uref{http://@/www@/.lilypond@/.org/}.  La página web incluye copias en línea
-de esta documentación y otras.
+Se puede encontrar más información en
+@uref{http://@/www@/.lilypond@/.org/}.  La página web incluye copias
+en línea de la presente documentación y de otras.
 
 @menu
 * Install::                        Cómo instalarlo o compilarlo.
-* Setup::                          Utilizar LilyPond con notros programas.
+* Setup::                          Utilizar LilyPond con otros programas.
 * Running LilyPond::               Funcionamiento.
 * LilyPond-book::                  Integrar texto y música.
 * Converting from other formats::  Convertir al formato del código de entrada de lilypond.
index 686f36cbcd27a5520cc21930ad44f2d7704ec011..afe3845db5535de91c742cd04b5648fea271cfa8 100644 (file)
@@ -1,6 +1,6 @@
-\input texinfo @c -*- coding: utf-8; mode: texinfo; -*-
+\input texinfo @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 @ignore
-    Translation of GIT committish: bf1e35f1dee87dc6c6537e52cda6c2ed9add6fb4
+    Translation of GIT committish: c7d6848e128f461a4cec093f7a71a34b2dc314eb
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 
 @include macros.itexi
 
-@iftex
 @afourpaper
-@c don't replace quotes with directed quotes
-@tex
-\gdef\SETtxicodequoteundirected{Foo}
-\gdef\SETtxicodequotebacktick{Bla}
-@end tex
-@end iftex
 
 @c  Keep this here, since it pertains to the direntry below.
 @ignore
@@ -77,9 +70,16 @@ Distributions will want to install lilypond.info in postinstall, doing:
 
 
 @ifhtml
-Este documento también está disponible como
+@ifclear bigpage
+Este documento también está disponible en formato
 @uref{source/Documentation/user/lilypond.es.pdf,PDF} y como
-@uref{source/Documentation/user/lilypond-big-page.html,una sola página enorme}.
+@uref{source/Documentation/user/lilypond-big-page.es.html,una sola página}.
+@end ifclear
+@ifset bigpage
+Este documento también está disponible en formato
+@uref{source/Documentation/user/lilypond.es.pdf,PDF} y como
+@uref{source/Documentation/user/lilypond/index.es.html,un documento HTML normal de muchas páginas}.
+@end ifset
 @end ifhtml
 
 
@@ -96,7 +96,7 @@ Este documento también está disponible como
 @titlefont{Manual de referencia de la notación}
 @author El equipo de desarrollo de LilyPond
 
-Copyright @copyright{} 1999--2008 por los autores
+Copyright @copyright{} 1999--2009 por los autores
 
 @emph{La traducción de la siguiente nota de copyright se ofrece como
 cortesía para las personas de habla no inglesa, pero únicamente la
@@ -130,7 +130,7 @@ Para LilyPond versión @version{}
 @end titlepage
 
 @copying
-Copyright @copyright{} 1999--2008 por los autores
+Copyright @copyright{} 1999--2009 por los autores
 
 @emph{La traducción de la siguiente nota de copyright se ofrece como
 cortesía para las personas de habla no inglesa, pero únicamente la
@@ -162,7 +162,7 @@ Free Documentation License''.
 @ifnottex
 Este archivo es la documentación de GNU LilyPond.
 
-Copyright 1999--2008 por los autores
+Copyright 1999--2009 por los autores
 
 @emph{La traducción de la siguiente nota de copyright se ofrece como
 cortesía para las personas de habla no inglesa, pero únicamente la
@@ -192,17 +192,18 @@ Free Documentation License''.
 @end ifnottex
 
 @ifnottex
-Éste es el manual de Referencia de la notación del programa GNU
-LilyPond versión @version{}.  Para ver más información sobre la
-relación entre éste y el resto de los documentos, consulte
+El presente documento es el manual de referencia de la notación del
+programa GNU LilyPond, versión @version{}.  Para ver más información
+sobre la relación entre éste y el resto de los documentos, consulte
 @rlearning{About the documentation}.
 
-@cindex web, sitio
+@cindex web, página
+@cindex página web
 @cindex URL
 
 Se puede encontrar más información en
-@uref{http://@/www@/.lilypond@/.org/}.  El sitio web contiene copias en línea
-de la presente documentación y de otras.
+@uref{http://@/www@/.lilypond@/.org/}.  La página web contiene copias
+en línea de la presente documentación y de otras.
 
 @include dedication.itely
 
@@ -210,7 +211,7 @@ de la presente documentación y de otras.
 @menu
 * Musical notation::               Notación musical.
 * Specialist notation::            Notación que solamente se utiliza para propósitos específicos.
-* General input and output::       Información general sobre la salida y la entrada de LlilyPond.
+* General input and output::       Información general sobre la salida y la entrada de LilyPond.
 * Spacing issues::                 Presentación de la salida sobre papel.
 * Changing defaults::              Ajuste fino de la salida.
 * Interfaces for programmers::     Utilización por expertos.
index f6cd507138a70fa0048bbbf1175309e68f2e8dc2..bfed834bf9beb894fac5712c04575f98adc14049 100644 (file)
@@ -1,13 +1,13 @@
 @c -*- coding: utf-8; mode: texinfo; -*-
 @c This file is part of lilypond.tely
 @ignore
-    Translation of GIT committish: 85b54e04be6730bd0781f3135ee741010e099fd8
+    Translation of GIT committish: 41ef91786a08102d9b9a839f6a2f40cec263d723
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @node Literature list
 @appendix Literature list
index 6989af7b1566e57ebe50b32c00b75b13f8ae3458..8f577a529215e1ff341b4ac4ced6e6fa51f72b74 100644 (file)
@@ -1,22 +1,34 @@
 @c -*- coding: utf-8; mode: texinfo; -*-
 @ignore
-    Translation of GIT committish: 4be1308672c6f8efbe660c9eddc0a6a167c9ad31
+    Translation of GIT committish: 312827f1242ea7d2864659fa292bc9861ac19c6c
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
+
 @include version.itexi
 
+
+@c Don't replace quotes with directed quotes.
+
+@set txicodequoteundirected
+@set txicodequotebacktick
+
+
+
 @c   ***** Displaying text *****
 
-@c we need this since @q{\} doesn't work with makeinfo 4.11 --
-@c say @q{@bs{}} instead
+@c We need this since @q{\} doesn't work with makeinfo 4.11 --
+@c say @q{@bs{}} instead.
+
 @macro bs
 \\
 @end macro
 
-@c to get decent quotes in `foo' and ``foo''
+
+@c To get decent quotes in `foo' and ``foo''.
+
 @macro q{TEXT}
 @quoteleft{}\TEXT\@quoteright{}
 @end macro
 @quotedblleft{}\TEXT\@quotedblright{}
 @end macro
 
+
 @ifhtml
+
 @macro warning{TEXT}
 @cartouche
 @b{Nota:} \TEXT\
 @end cartouche
 @end macro
+
 @end ifhtml
 
 @ifnothtml
+
 @macro warning{TEXT}
 @quotation
 @quotation
 @end quotation
 @end quotation
 @end macro
+
 @end ifnothtml
 
+
 @ifnotinfo
+
 @macro notation{TEXT}
 @var{\TEXT\}
 @end macro
+
 @end ifnotinfo
 
 @ifinfo
+
 @macro notation{TEXT}
 \TEXT\
 @end macro
+
 @end ifinfo
 
+
 @macro smallspace
 @sp 1
 @end macro
 
 
-@c   **** Displaying images not generated by lilypond-book
 
-@c current installation setup of Info docs requires that all images are
-@c expected to be found in lilypond/ subdirectory.  lilypond-book already
-@c generates proper @image commands for images of music; these macros
-@c definitions do the same for other images.
+@c   ***** Displaying images not generated by lilypond-book *****
+
+@c Current installation setup of Info docs requires that all images are
+@c expected to be found in the `lilypond/' subdirectory.  `lilypond-book'
+@c already generates proper @image commands for images of music; these
+@c macro definitions do the same for other images.
 
 @ifnotinfo
+
 @macro sourceimage{FILENAME,WIDTH,HEIGHT,ALTTEXT}
 @image{\FILENAME\,\WIDTH\,\HEIGHT\,\ALTTEXT\}
 @end macro
+
 @end ifnotinfo
 
 @ifinfo
+
 @macro sourceimage{FILENAME,WIDTH,HEIGHT,ALTTEXT}
 @image{lilypond/\FILENAME\,\WIDTH\,\HEIGHT\,\ALTTEXT\}
 @end macro
+
 @end ifinfo
 
 
-@c   **** Headings in a doc subsection ****
+
+@c   ***** Headings in a doc subsection *****
+
+@c Don't insert an empty line after @predefined!  Right now
+@c it doesn't matter, but a future implementation will probably
+@c add some code which needs this restriction.
 
 @macro predefined
 @noindent
 @subsubheading Instrucciones predefinidas
+@end macro
 
+@c The next macro is a dummy currently since texinfo doesn't
+@c provide a real ragged-right environment yet.
+@c
+@c Due to a bug in texi2html (texi2html.pl CVS versions <= 1.245)
+@c the macro must not be empty.
+
+@macro endpredefined
+@c
 @end macro
 
+
 @macro snippets
 @noindent
 @subsubheading Fragmentos de código seleccionados
-
 @end macro
 
+
 @c * Deprecated: not in English macros.itexi *
 @macro commonprop
 @noindent
 @subsubheading Propiedades trucadas frecuentemente
-
 @end macro
 
+
+@c Don't insert an empty line after @seealso!  Otherwise we get
+@c unwanted extra vertical space in the PDF output.
+
 @macro seealso
 @noindent
 @subsubheading Véase también
-
 @indent
 @end macro
 
+
 @macro knownissues
 @noindent
 @subsubheading Advertencias y problemas conocidos
-
 @end macro
 
+
 @macro lydoctitle {TEXT}
 @emph{\TEXT\}
-
 @end macro
 
+
+@c Don't remove the `@c' within the macro definition!  See section 19.3,
+@c `Macro Details and Caveats', in the texinfo info file for explanation.
+
 @macro funindex {TEXT}
 @findex \TEXT\
 @kindex \TEXT\
+@c
 @end macro
 
 
 
-@c   **** Links and references ****
+@c   ***** Links and references *****
 
 @c  Definitions for references:
+@c
 @c     @rglos
 @c     @rlearning
 @c     @ruser
 @c     @rprogram
 @c     @rlsr
 @c     @rinternals
-@c  all these also have a @...named version, which allows to specify the
-@c  displayed text for the reference as second argument
+@c
+@c  All these also have a @...named version which allows to specify the
+@c  displayed text for the reference as second argument.
+@c
+@c ***** HTML + bigpage is a special case (other manual names); all other
+@c formats are treated similarly.
 
-@c ***** HTML + bigpage is a special case (other manual names), all other
-@c formats are treated similarly
+
+@c *** not TeX ***
 
 @ifnottex
 
+@c ** bigpage **
+
 @ifset bigpage
 
 @macro rglos{TEXT}
 @end ifset
 
 
+@c ** not bigpage **
+
 @ifclear bigpage
 
 @macro rglos{TEXT}
 @end ifnottex
 
 
-@c **** TEX ****
+@c *** TeX ***
+
 @iftex
 
+@c All commands below should work in the middle of the line;
+@c we thus must not use @vindex directly since it works only if placed
+@c on a line of its own.  To overcome this problem, we define a
+@c replacement macro using the internal definition of @vindex which
+@c delimits arguments in the standard way (i.e., with braces).
+
+@tex
+\gdef\lilyvindex#1{\doind{vr}{\code #1}\ignorespaces}
+@end tex
+
 @macro rglos{TEXT}
-@vindex \TEXT\
+@lilyvindex{\TEXT\}
 @ref{\TEXT\,,,music-glossary,Glosario Musical}
 @end macro
 
 @macro rglosnamed{TEXT,DISPLAY}
-@vindex \TEXT\
+@lilyvindex{\TEXT\}
 @ref{\TEXT\,,\DISPLAY\,music-glossary,Glosario Musical}
 @end macro
 
 @macro rlearning{TEXT}
-@vindex \TEXT\
+@lilyvindex{\TEXT\}
 @ref{\TEXT\,,,lilypond-learning.es,Manual de Aprendizaje}
 @end macro
 
 @macro rlearningnamed{TEXT,DISPLAY}
-@vindex \TEXT\
+@lilyvindex{\TEXT\}
 @ref{\TEXT\,,\DISPLAY\,lilypond-learning.es,Manual de Aprendizaje}
 @end macro
 
 @macro ruser{TEXT}
-@vindex \TEXT\
+@lilyvindex{\TEXT\}
 @ref{\TEXT\,,,lilypond.es,Referencia de la Notación}
 @end macro
 
 @macro rusernamed{TEXT,DISPLAY}
-@vindex \TEXT\
+@lilyvindex{\TEXT\}
 @ref{\TEXT\,,\DISPLAY\,lilypond.es,Referencia de la Notación}
 @end macro
 
 @macro rprogram{TEXT}
-@vindex \TEXT\
+@lilyvindex{\TEXT\}
 @ref{\TEXT\,,,lilypond-program.es,Utilización del Programa}
 @end macro
 
 @macro rprogramnamed{TEXT,DISPLAY}
-@vindex \TEXT\
+@lilyvindex{\TEXT\}
 @ref{\TEXT\,,\DISPLAY\,lilypond-program.es,Utilización del Programa}
 @end macro
 
 @macro rlsr{TEXT}
+@lilyvindex{\TEXT\}
 @ref{\TEXT\,,,lilypond-snippets,Fragmentos de código}
 @end macro
 
 @macro rlsrnamed{TEXT,DISPLAY}
+@lilyvindex{\TEXT\}
 @ref{\TEXT\,,\DISPLAY\,lilypond-snippets,Fragmentos de código}
 @end macro
 
 @macro rinternals{TEXT}
-@vindex \TEXT\
+@lilyvindex{\TEXT\}
 @ref{\TEXT\,,,lilypond-internals,Referencia de Funcionamiento Interno}
 @end macro
 
 @macro rinternalsnamed{TEXT,DISPLAY}
-@vindex \TEXT\
+@lilyvindex{\TEXT\}
 @ref{\TEXT\,,\DISPLAY\,lilypond-internals,Referencia de Funcionamiento Interno}
 @end macro
 
 @end iftex
 
 
-@c **** Macros specific to translated docs ****
+
+@c   ***** Macros specific to translated docs *****
 
 @c ugh, cannot set/define global variable 'translationof' in some way?
+
 @iftex
+
 @macro translationof{TEXT}
 @end macro
+
 @end iftex
 
 @ifinfo
+
 @macro
 @macro translationof{TEXT}
 @set translationof \TEXT\
 @end macro
+
 @end ifinfo
 
-@c TODO when @translationof is used in translated docs
-@c see if it's feasible to say @value{translationof}
+
+@c TODO: If @translationof is used in translated docs
+@c see whether it is feasible to say @value{translationof}.
+
 @macro englishref
 Esta sección aún no está traducida; consulte el manual en inglés.
 @end macro
 
+
 @ifhtml
+
+@ifset bigpage
+@macro untranslated
+@end macro
+@end ifset
+
+@ifclear bigpage
 @macro untranslated
 UNTRANSLATED NODE: IGNORE ME
 @end macro
+@end ifclear
+
 @end ifhtml
 
 @ifnothtml
+
 @macro untranslated
 @end macro
+
 @end ifnothtml
index 1a2e8d302dc6a4d61a255a4af836798156ac9a47..de7b4ae4b3ce8e2316fc8bd825dce17bc8381ca3 100644 (file)
@@ -1,13 +1,13 @@
-@c -*- coding: utf-8; mode: texinfo; -*-
+@c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 @c This file is part of lilypond.tely
 @ignore
-    Translation of GIT committish: 85b54e04be6730bd0781f3135ee741010e099fd8
+    Translation of GIT committish: 41ef91786a08102d9b9a839f6a2f40cec263d723
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @node Notation manual tables
 @appendix Notation manual tables
@@ -147,7 +147,7 @@ Séptima mayor
 @tab
 Tríada mayor y séptima mayor
 @tab
-@code{maj7} or @code{maj}
+@code{maj7} ó @code{maj}
 @tab
 @lilypond[line-width=3\cm,noragged-right, notime]
 \chordmode {
@@ -199,7 +199,7 @@ Séptima semi-disminuido
 @tab
 Tríada disminuida y séptima menor
 @tab
-@code{dim5m7}
+@code{m7.5-}
 @tab
 @lilypond[line-width=3\cm,noragged-right, notime]
 \chordmode {
@@ -212,11 +212,11 @@ Menor con séptima mayor
 @tab
 Tríada menor con séptima mayor
 @tab
-@code{7m5}
+@code{maj7.5-}
 @tab
 @lilypond[line-width=3\cm,noragged-right, notime]
 \chordmode {
-  c1:7m5
+  c1:maj7.5-
 }
 @end lilypond
 
@@ -260,9 +260,9 @@ Séptima dominante con novena mayor
 @end lilypond
 
 @item
-Novena mayor
+Mayor con novena
 @tab
-HACER
+Séptima mayor y novena mayor
 @tab
 @code{maj9}
 @tab
@@ -275,7 +275,7 @@ HACER
 @item
 Menor con novena
 @tab
-HACER
+Séptima menor y novena mayor
 @tab
 @code{m9}
 @tab
@@ -301,7 +301,7 @@ Novena dominante con oncena justa
 @item
 Oncena mayor
 @tab
-HACER
+Novena mayor y oncena justa
 @tab
 @code{maj11}
 @tab
@@ -314,7 +314,7 @@ HACER
 @item
 Menor con oncena
 @tab
-HACER
+Novena menor y oncena justa
 @tab
 @code{m11}
 @tab
@@ -324,6 +324,19 @@ HACER
 }
 @end lilypond
 
+@item
+Trecena dominante
+@tab
+Novena dominante y trecena mayor
+@tab
+@code{13}
+@tab
+@lilypond[line-width=3\cm,noragged-right, notime]
+\chordmode {
+  c1:13
+}
+@end lilypond
+
 @item
 Trecena dominante
 @tab
@@ -340,7 +353,7 @@ Oncena dominante y trecena mayor
 @item
 Mayor con trecena
 @tab
-HACER
+Oncena mayor y trecena mayor
 @tab
 @code{maj13.11}
 @tab
@@ -353,7 +366,7 @@ HACER
 @item
 Menor con trecena
 @tab
-HACER
+Oncena menor y trecena mayor
 @tab
 @code{m13.11}
 @tab
@@ -366,7 +379,7 @@ HACER
 @item
 Segunda suspendida
 @tab
-HACER
+Segunda mayor y quinta justa
 @tab
 @code{sus2}
 @tab
@@ -379,7 +392,7 @@ HACER
 @item
 Cuarta suspendida
 @tab
-HACER
+Cuarta justa y quinta justa
 @tab
 @code{sus4}
 @tab
index 3bca32e59d689a01ba94d60705554f10cef3488d..ce26345cca26615b26e4c0eb73f757e1965ed745 100644 (file)
@@ -1,12 +1,12 @@
 @c -*- coding: utf-8; mode: texinfo; -*-
 @ignore
-    Translation of GIT committish: 85b54e04be6730bd0781f3135ee741010e099fd8
+    Translation of GIT committish: 41ef91786a08102d9b9a839f6a2f40cec263d723
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @node Musical notation
 @chapter Musical notation
index ba433fa1e51c78e3e866d4c59b4770e861537435..1cb487e1c190a765c7d304b9f368af35cb07fb8f 100644 (file)
@@ -1,13 +1,13 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 @c This file is part of lilypond.tely
 @ignore
-    Translation of GIT committish: 2d70503b922db3a192f3dbd38ab5ea2c9fb184db
+    Translation of GIT committish: 41ef91786a08102d9b9a839f6a2f40cec263d723
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.62"
+@c \version "2.12.0"
 
 @node Percussion
 @section Percussion
@@ -49,8 +49,8 @@ in MIDI}.
 
 @end itemize
 
-@seealso
 
+@seealso
 Referencia de la notación:
 @ref{Showing melody rhythms},
 @ref{Instantiating new staves}.
@@ -94,7 +94,7 @@ completa de nombre de instrumentos de percusión se encuentra en
 @ref{Percussion notes}.
 
 Observe que la notación normal de las notas con altura determinada
-(como @code{cis4}) en un contexto @code{DrumStaff} procuden un mensaje
+(como @code{cis4}) en un contexto @code{DrumStaff} producen un mensaje
 de error.  Las claves de percusión se añaden automáticamente al
 contexto @code{DrumStaff}, pero también se pueden usar otras claves.
 
@@ -102,8 +102,8 @@ Hay ciertos detalles respecto a cómo está contemplado el MIDI para los
 instrumentos de percusión; para ver los detalles consulte
 @ref{Percussion in MIDI}.
 
-@seealso
 
+@seealso
 Referencia de la notación:
 @ref{Percussion in MIDI},
 @ref{Percussion notes}.
@@ -150,8 +150,8 @@ de base satisfactoria.
 }
 @end lilypond
 
-@seealso
 
+@seealso
 Fragmentos de código:
 @rlsr{Percussion}.
 
@@ -164,11 +164,10 @@ xilófono, el vibráfono y los timbales) se escriben usando pentagramas
 normales.  Esto se estudia en otras secciones del manual.
 
 @seealso
-
+@c
 @c TODO: possibly link to an alternate section of NR 3.5, if
 @c "percussion in MIDI" gets a separate subsubsection for
 @c pitched percussion sounds.  -gp
-
 Referencia de la notación:
 @ref{Percussion in MIDI}.
 
@@ -412,7 +411,7 @@ woodstaff = {
   % It also defines the positions of the two lines.
   \override Staff.StaffSymbol #'line-positions = #'(-2 3)
 
-  % This is neccessary; if not entered, the barline wuld be too short!
+  % This is neccessary; if not entered, the barline would be too short!
   \override Staff.BarLine #'bar-size = #3
 }
 
@@ -444,7 +443,7 @@ Una pandereta, escrita mediante @q{tamb} (@emph{tambourine}:
 tambustaff = {
   \override Staff.StaffSymbol #'line-positions = #'( 0 )
   \override Staff.BarLine #'bar-size = #3
-  \set DrumStaff.instrumentName = "Tambourine"
+  \set DrumStaff.instrumentName = #"Tambourine"
 }
 
 \new DrumStaff {
@@ -453,7 +452,7 @@ tambustaff = {
 
   \drummode {
     \time 6/8
-    \repeat "unfold" 2 { tamb8. tamb16 tamb8 tamb tamb tamb | }
+    tamb8. tamb16 tamb8 tamb tamb tamb |
     tamb4. tamb8 tamb tamb |
     % the trick with the scaled duration and the shorter rest
     % is neccessary for the correct ending of the trill-span!
@@ -462,6 +461,7 @@ tambustaff = {
 }
 @end lilypond
 
+
 Música para gong, introducida con @q{tt} (tam-tam):
 
 @lilypond[quote,verbatim]
@@ -470,7 +470,7 @@ Música para gong, introducida con @q{tt} (tam-tam):
 tamtamstaff = {
   \override Staff.StaffSymbol #'line-positions = #'( 0 )
   \override Staff.BarLine #'bar-size = #3
-  \set DrumStaff.instrumentName = "Tamtam"
+  \set DrumStaff.instrumentName = #"Tamtam"
 }
 
 \new DrumStaff {
@@ -494,20 +494,20 @@ bellstaff = {
   \override DrumStaff.StaffSymbol #'line-positions = #'(-2 3)
   \set DrumStaff.drumStyleTable = #(alist->hash-table mydrums)
   \override Staff.BarLine #'bar-size = #3
-  \set DrumStaff.instrumentName = "Different Bells"
+  \set DrumStaff.instrumentName = #"Different Bells"
 }
 
 \new DrumStaff {
   \bellstaff
   \drummode {
     \time 2/4
-    \repeat "unfold" 2 { rb8 rb cb cb16 rb-> ~ |
-                         rb16 rb8 rb16 cb8 cb | }
+    rb8 rb cb cb16 rb-> ~ |
+    rb16 rb8 rb16 cb8 cb |
   }
 }
 @end lilypond
 
-Aquí un breve ejemplo del maestro Stravinsky (procedende de la
+Aquí un breve ejemplo del maestro Stravinsky (procedente de la
 @q{Historia del soldado})
 
 @lilypond[quote,verbatim]
@@ -562,15 +562,15 @@ drumsB = {
     }
 
    \new DrumStaff {
-     \set DrumStaff.instrumentName = "Grosse Caisse"
+     \set DrumStaff.instrumentName = #"Grosse Caisse"
      \set DrumStaff.drumStyleTable = #(alist->hash-table mydrums)
      \drumsB }
   >>
 }
 @end lilypond
 
-@seealso
 
+@seealso
 Fragmentos de código:
 @rlsr{Percussion}.
 
@@ -592,16 +592,18 @@ en @ref{Parentheses}.  Sin embargo, el modo por defecto
 @lilypond[quote,ragged-right,verbatim,fragment]
 \new DrumStaff \with {
   \consists "Parenthesis_engraver"
-} <<
-  \context DrumVoice  = "1"  { s1 *2 }
-  \context DrumVoice  = "2" { s1 *2 }
+}
+<<
+  \context DrumVoice  = "1" { s1 }
+  \context DrumVoice  = "2" { s1 }
   \drummode {
     <<
       {
         hh8[ hh] <hh sn> hh16
         < \parenthesize sn > hh
         < \parenthesize sn > hh8 <hh sn> hh
-      } \\ {
+      } \\
+      {
         bd4 r4 bd8 bd r8 bd
       }
     >>
@@ -613,7 +615,7 @@ en @ref{Parentheses}.  Sin embargo, el modo por defecto
 Observe, además, que debe añadir acordes (paréntesis en ángulo @code{<
 >}) alrededor de cada una de las instrucciones @code{\parenthesize}.
 
-@seealso
 
+@seealso
 Fragmentos de código:
 @rlsr{Percussion}.
index f69945960c981fad32213018ba28b115b946793a..198ebe4eb7868b684ae213abb3a2c2db65ad1ad0 100644 (file)
@@ -1,12 +1,12 @@
-@c -*- coding: utf-8; mode: texinfo; -*-
+@c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 @ignore
-    Translation of GIT committish: 770ccfb9bd8536d7fb570a5c25ce874a461486f0
+    Translation of GIT committish: 41ef91786a08102d9b9a839f6a2f40cec263d723
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 
 @node Pitches
@@ -29,7 +29,7 @@ Este proceso se compone de tres fases: entrada, modificación y salida.
 @subsection Writing pitches
 
 En esta sección se describe la manera de introducir la altura de las
-notas.  Esisten dos formas distintas de colocar las notas en su octava
+notas.  Existen dos formas distintas de colocar las notas en su octava
 correspondiente: el modo absoluto y el relativo.  En casi todas las
 ocasiones, será más práctico el modo relativo.
 
@@ -48,7 +48,9 @@ ocasiones, será más práctico el modo relativo.
 @cindex alturas
 @cindex absoluta
 @cindex absoluta, especificación, de la octava
+@cindex octava, especificación absoluta
 @cindex absoluta, introducción, de la octava
+@cindex octava, introducción absoluta
 
 El nombre de una nota se especifica usando las letras minúsculas de la
 @code{a} a la @code{g}.  Las notas cuyos nombres van desde @code{c}
@@ -63,6 +65,7 @@ d e f g
 @end lilypond
 
 @cindex octava, marca de cambio de
+
 @funindex '
 @funindex ,
 
@@ -80,8 +83,8 @@ c, c,, e, g
 d,, d, d c
 @end lilypond
 
-@seealso
 
+@seealso
 Glosario musical:
 @rglos{Pitch names}.
 
@@ -94,6 +97,11 @@ Fragmentos de código:
 
 @cindex relativo
 @cindex relativas, especificación de octavas
+@cindex octava, introducción relativa
+@cindex relativa, especificación de la octava
+@cindex octava, especificación relativa
+
+@funindex relative
 @funindex \relative
 
 Cuando las octavas se especifican en modo absoluto, es fácil poner por
@@ -169,6 +177,8 @@ abarcar intervalos muy grandes:
 }
 @end lilypond
 
+@cindex acordes e introducción relativa de la octava
+@cindex relativa, introducción de la octava, y acordes
 
 Si el elemento anterior es un acorde, la primera nota del acorde se
 utiliza para determinar la primera nota del siguiente acorde.  Dentro
@@ -179,15 +189,13 @@ anterior.
 \relative c' {
   c
   <c e g>
-  % the C is now an octave higher
   <c' e g'>
-  % the C returns to the original pitch
   <c, e, g''>
 }
 @end lilypond
 
 Como se explicó más arriba, la octava de las notas se calcula
-solamente a partir de sus nombres, sin tener encuenta alteración
+solamente a partir de sus nombres, sin tener en cuenta alteración
 alguna.  Por tanto, un Mi doble sostenido después de un Si se
 escribirá más agudo, mientras que un Fa doble sostenido se escribirá
 más grave.  En otras palabras, se considera a la cuarta doble
@@ -203,9 +211,7 @@ independientemente del número de semitonos de cada uno de ellos.
 }
 @end lilypond
 
-
 @seealso
-
 Glosario musical:
 @rglos{fifth},
 @rglos{interval},
@@ -222,13 +228,16 @@ Referencia de funcionamiento interno:
 
 @cindex relativo, modo, transposición y
 @cindex transposición y modo relativo
+
 @funindex \transpose
+@funindex transpose
 @funindex \chordmode
+@funindex chordmode
 @funindex \relative
+@funindex relative
 
 @knownissues
 
-
 La conversión relativa no afecta a las secciones @code{\transpose},
 @code{\chordmode} o @code{\relative} en su argumento.  Para usar el
 modo relativo dentro de música transportada, se debe escribir un
@@ -259,6 +268,7 @@ información, consulte @rlearning{Accidentals and key signatures}.}
 
 @cindex notas, nombres holandeses de
 @cindex notas, nombres predeterminados
+@cindex predeterminados, nombres de nota
 @cindex sostenido
 @cindex bemol
 @cindex doble sostenido
@@ -289,7 +299,8 @@ a4 aes a2
 @end lilypond
 
 @cindex cuartos de tono
-@cindex semi-bemoles, semi-sostenidos
+@cindex semi-bemoles
+@cindex semi-sostenidos
 
 Se pueden escribir medios bemoles y los medios sostenidos; a
 continuación presentamos una serie de DOs cada vez más agudos:
@@ -304,9 +315,10 @@ ceseh1 ces ceh c cih cis cisih
 @cindex alteración de precaución
 @cindex alteración con paréntesis
 @cindex recordatoria, alteración
-@funindex ?
 @cindex precaución, alteración de
 @cindex paréntesis, alteración con
+
+@funindex ?
 @funindex !
 
 Normalmente las alteraciones accidentales se imprimen automáticamente,
@@ -319,7 +331,7 @@ del nombre de la nota.  Estas alteraciones adicionales se pueden usar
 también para producir notas con becuadro.
 
 @lilypond[verbatim,quote,relative=2]
-cis cis cis! cis? c c? c! c
+cis cis cis! cis? c c c! c?
 @end lilypond
 
 @cindex alteración en nota ligada
@@ -342,15 +354,15 @@ cis
 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
 {makam-example.ly}
 
-@seealso
 
+@seealso
 Glosario musical:
 @rglos{sharp},
 @rglos{flat},
 @rglos{double sharp},
 @rglos{double flat},
 @rglos{Pitch names},
-@rglos{semitone}.
+@rglos{quarter tone}.
 
 Manual de aprendizaje:
 @rlearning{Accidentals and key signatures}.
@@ -369,6 +381,7 @@ Referencia de funcionamiento interno:
 @rinternals{AccidentalCautionary},
 @rinternals{accidental-interface}.
 
+
 @cindex alteración de cuartos de tono
 @cindex cuartos de tono, alteraciones
 
@@ -434,7 +447,7 @@ y los sufijos de las alteraciones correspondientes que definen son:
 @quotation
 @multitable {@file{nederlands.ly}} {-s/-sharp} {-ess/-es} {-ss/-x/-sharpsharp} {-essess/-eses}
 @headitem Archivo de idioma
-  @tab sharp @tab flat @tab double sharp @tab double flat
+  @tab sostenido @tab bemol @tab doble sostenido @tab doble bemol
 @item @file{nederlands.ly}
   @tab -is @tab -es @tab -isis @tab -eses
 @item @file{arabic.ly}
@@ -510,8 +523,8 @@ no se ha definido aún ningún nombre especial.
 @end multitable
 @end quotation
 
-@seealso
 
+@seealso
 Glosario musical:
 @rglos{Pitch names}.
 
@@ -538,8 +551,10 @@ Esta sección trata de la manera de modificar las alturas.
 @cindex octava, comprobación de
 @cindex octava, corrección de
 @cindex control, alturas de
+
 @funindex =
 @funindex \octaveCheck
+@funindex octaveCheck
 @funindex controlpitch
 
 En el modo relativo, es fácil olvidar una marca de cambio de octava.
@@ -561,13 +576,14 @@ octava.
 @end lilypond
 
 La octava de las notas se puede comprobar también con la instrucción
-@code{\octaveCheck}@tie{}@var{altura_de_control}.  @var{altura_de_control}
-se eespecifica en modo absoluto.  Esto comprueba que el intervalo
-entre la nota anterior y la @var{altura_de_control} se encuntra dentro
-de una cuarta (es decir, el cálculo normal para el modo relativo).  Si
-esta comprobación fracasa se imprimie un mensaje de advertencia, pero
-la nota previa no se modifica.  Las notas posteriores están en
-relación a la @var{altura_de_control}.
+@code{\octaveCheck}@tie{}@var{altura_de_control}.
+@var{altura_de_control} se especifica en modo absoluto.  Esto
+comprueba que el intervalo entre la nota anterior y la
+@var{altura_de_control} se encuentra dentro de una cuarta (es decir, el
+cálculo normal para el modo relativo).  Si esta comprobación fracasa,
+se imprime un mensaje de advertencia, pero la nota previa no se
+modifica.  Las notas posteriores están en relación a la
+@var{altura_de_control}.
 
 @lilypond[verbatim,quote]
 \relative c'' {
@@ -578,7 +594,7 @@ relación a la @var{altura_de_control}.
 @end lilypond
 
 Compare los dos compases siguientes.  La primera y tercera
-comprobaciones de @code{\octaveCheck} fracasan, pero el segundo es
+comprobaciones de @code{\octaveCheck} fracasan, pero la segunda es
 correcto.
 
 @lilypond[verbatim,quote]
@@ -597,13 +613,13 @@ correcto.
 
 
 @seealso
-
 Fragmentos de código:
 @rlsr{Pitches}.
 
 Referencia de funcionamiento interno:
 @rinternals{RelativeOctaveCheck}.
 
+
 @node Transpose
 @unnumberedsubsubsec Transpose
 
@@ -613,7 +629,9 @@ Referencia de funcionamiento interno:
 @cindex transposición de notas
 @cindex alturas, transporte de
 @cindex notas, transporte de
+
 @funindex \transpose
+@funindex transpose
 
 Una expresión musical se puede transportar mediante @code{\transpose}.
 La sintaxis es
@@ -640,9 +658,6 @@ armadura de la tonalidad se transporta automáticamente.
 }
 @end lilypond
 
-@cindex transpositores, instrumentos
-@cindex instrumentos transpositores
-
 Si una particella escrita en Do (@notation{afinación de concierto}
 normal) se debe tocar con un clarinete en La (para el que un La se
 escribe como un Do, y que suena una tercera menor por debajo de lo que
@@ -715,7 +730,6 @@ Para ver más información sobre instrumentos transpositores, consulte
 
 
 @seealso
-
 Referencia de la notación:
 @ref{Instrument transpositions}.
 
@@ -726,8 +740,11 @@ Referencia de funcionamiento interno:
 @rinternals{TransposedMusic}.
 
 @funindex \transpose
+@funindex transpose
 @funindex \chordmode
+@funindex chordmode
 @funindex \relative
+@funindex relative
 
 @knownissues
 
@@ -756,7 +773,7 @@ notas.
 @node Clef
 @unnumberedsubsubsec Clef
 
-@funindex \clef
+
 @cindex Sol, clave de
 @cindex Do, clave de
 @cindex Fa, clave de
@@ -785,6 +802,9 @@ notas.
 @cindex clave de barítono
 @cindex clave de contrabajo
 
+@funindex \clef
+@funindex clef
+
 La clave se establece con la instrucción @code{\clef}
 @var{nombre_de_clave}.  En todos los ejemplos se muestra el Do
 central.
@@ -831,6 +851,7 @@ Están contempladas claves adicionales que se describen bajo
 @cindex clave transpositora
 @cindex octava, transposición de
 @cindex coral, clave de tenor
+@cindex tenor coral, clave
 
 Al añadir @code{_8} o @code{^8} al nombre de la clave, la clave se
 transpone una octava hacia abajo o hacia arriba, respectivamente, y
@@ -855,7 +876,6 @@ c2 c
 
 
 @seealso
-
 Referencia de la notación:
 @ref{Mensural clefs},
 @ref{Gregorian clefs}.
@@ -874,7 +894,9 @@ Referencia de funcionamiento interno:
 @unnumberedsubsubsec Key signature
 
 @cindex Armadura de la tonalidad
+
 @funindex \key
+@funindex key
 
 Las alteraciones accidentales y las armaduras son una frecuente causa de confusión para los nuevos usuarios,
 porque las notas sin alteración pueden llevar signos de becuadro en función de la armadura.
@@ -899,25 +921,26 @@ armadura se hace con la instrucción @code{\key}:
 @end example
 
 @funindex \major
+@funindex major
 @funindex \minor
+@funindex minor
 @funindex \ionian
+@funindex ionian
 @funindex \locrian
+@funindex locrian
 @funindex \aeolian
+@funindex aeolian
 @funindex \mixolydian
+@funindex mixolydian
 @funindex \lydian
+@funindex lydian
 @funindex \phrygian
+@funindex phrygian
 @funindex \dorian
+@funindex dorian
+
 @cindex modos eclesiásticos
 @cindex modos
-@cindex major
-@cindex minor
-@cindex ionian
-@cindex locrian
-@cindex aeolian
-@cindex mixolydian
-@cindex lydian
-@cindex phrygian
-@cindex dorian
 @cindex mayor, modo
 @cindex menor, modo
 @cindex eonio, modo
@@ -953,8 +976,8 @@ fis
 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
 {non-traditional-key-signatures.ly}
 
-@seealso
 
+@seealso
 Glosario musical:
 @rglos{church mode},
 @rglos{scordatura}.
@@ -982,7 +1005,10 @@ Referencia de funcionamiento interno:
 @cindex 15ma
 @cindex 8va
 @cindex octavación
+
 @funindex set-octavation
+@funindex \ottava
+@funindex ottava
 
 Los @notation{corchetes de Ottava} introducen un trasporte adicional
 de una octava para el pentagrama.
@@ -1003,8 +1029,8 @@ La función @code{ottava} también admite los valores -1 (para
 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
 {ottava-text.ly}
 
-@seealso
 
+@seealso
 Glosario musical:
 @rglos{octavation}.
 
@@ -1017,7 +1043,6 @@ Referencia de funcionamiento interno:
 @rinternals{ottava-bracket-interface}.
 
 
-
 @node Instrument transpositions
 @unnumberedsubsubsec Instrument transpositions
 
@@ -1026,7 +1051,9 @@ Referencia de funcionamiento interno:
 @cindex transpositor, instrumento
 @cindex MIDI
 @cindex MIDI, transposición
+
 @funindex \transposition
+@funindex transposition
 
 Al tipografiar partituras donde participan instrumentos
 transpositores, ciertas partes se pueden tipografiar en un tono
@@ -1058,8 +1085,8 @@ tocan los dos instrumentos está sonando al unísono.
 \new GrandStaff <<
   \new Staff = "violin" {
     \relative c'' {
-      \set Staff.instrumentName = "Vln"
-      \set Staff.midiInstrument = "violin"
+      \set Staff.instrumentName = #"Vln"
+      \set Staff.midiInstrument = #"violin"
       % not strictly necessary, but a good reminder
       \transposition c'
 
@@ -1070,7 +1097,7 @@ tocan los dos instrumentos está sonando al unísono.
   \new Staff = "clarinet" {
     \relative c'' {
       \set Staff.instrumentName = \markup { Cl (B\flat) }
-      \set Staff.midiInstrument = "clarinet"
+      \set Staff.midiInstrument = #"clarinet"
       \transposition bes
 
       \key d \major
@@ -1085,7 +1112,7 @@ ejemplo, un clarinetista puede cambiar del clarinete en La al
 clarinete en Si bemol.
 
 @lilypond[verbatim,quote,relative=2]
-\set Staff.instrumentName = "Cl (A)"
+\set Staff.instrumentName = #"Cl (A)"
 \key a \major
 \transposition a
 c d e f
@@ -1098,8 +1125,8 @@ R1
 c2 g
 @end lilypond
 
-@seealso
 
+@seealso
 Glosario musical:
 @rglos{concert pitch},
 @rglos{transposing instrument}.
@@ -1120,8 +1147,10 @@ Fragmentos de código:
 @cindex alteraciones, estilo de las
 @cindex predeterminado, estilo de las alteraciones
 @cindex alteraciones, estilo predeterminado de las
+
 @funindex set-accidental-style
 @funindex voice
+@funindex default
 
 Existen muchas convenciones distintas sobre la forma de tipografiar
 las alteraciones.  LilyPond proporciona una función para especificar
@@ -1149,8 +1178,6 @@ curso, use
 Están contemplados los siguientes estilos de alteración.  Para dar una
 muestra de cada uno de los estilos, utilizamos el ejemplo siguiente:
 
-@funindex default
-
 @lilypond[verbatim,quote]
 musicA = {
   <<
@@ -1186,12 +1213,10 @@ musicB = {
 \new PianoStaff {
   <<
     \context Staff = "up" {
-      %%% change the next line as desired:
       #(set-accidental-style 'default)
       \musicA
     }
     \context Staff = "down" {
-      %%% change the next line as desired:
       #(set-accidental-style 'default)
       \musicB
     }
@@ -1223,6 +1248,7 @@ dos pentagramas.
 @item default (predeterminado)
 
 @cindex alteraciones, estilo predeterminado
+
 @funindex default
 
 Es el comportamiento de composición tipográfica predeterminado.
@@ -1286,6 +1312,7 @@ musicB = {
 @cindex moderno, estilo de alteraciones
 @cindex alteraciones, estilo, moderno-precaución
 @cindex moderno-precaución, estilo de alteraciones
+
 @funindex voice
 
 El comportamiento normal es recordar las alteraciones accidentales al
@@ -1295,7 +1322,7 @@ regla es similar a @code{default}.
 
 Como resultado, las alteraciones de una voz no se cancelan en las
 otras voces, lo que con frecuencia lleva a un resultado no deseado: en
-el ejemplo siguientem es difífil determinar si el segundo La se debe
+el ejemplo siguiente, es difícil determinar si el segundo La se debe
 tocar natural o sostenido.  Por tanto, la opción @code{voice} se debe
 usar sólo si las voces se van a leer individualmente por músicos
 distintos.  Si el pentagrama va a utilizarse por parte de un solo
@@ -1354,6 +1381,7 @@ musicB = {
 
 @cindex alteraciones, estilo moderno
 @cindex moderno, alteraciones de estilo
+
 @funindex modern
 
 Esta regla corresponde a la práctica común del s. XX.  Imprime las
@@ -1415,11 +1443,12 @@ musicB = {
 @cindex alteraciones, estilo moderno de precaución
 @cindex moderno, alteraciones de estilo
 @cindex moderno de precaución, alteraciones de estilo
+
 @funindex modern-cautionary
 
 Esta regla es similar a @code{modern}, pero las alteraciones
 @q{añadidas} (las que no se imprimen en el estilo @code{default}) se
-imprimen como alteraciones de precacución.  Se imprimen de forma
+imprimen como alteraciones de precaución.  Se imprimen de forma
 predeterminada con paréntesis, pero también se pueden imprimir en
 tamaño reducido definiendo la propiedad @code{cautionary-style} de
 @code{AccidentalSuggestion}.
@@ -1478,6 +1507,7 @@ musicB = {
 @cindex moderno, alteraciones de estilo
 @cindex voces, alteraciones en varias
 @cindex alteración, estilo moderno de
+
 @funindex modern-voice
 
 Esta regla se usa para que puedan leer las alteraciones en varias
@@ -1539,6 +1569,7 @@ musicB = {
 @cindex alteración, estilo de voz de precaución moderno
 @cindex alteración de voz de precaución moderno, estilo de
 @cindex alteración, moderno de precaución, voz, estilo de
+
 @funindex modern-voice-cautionary
 
 Esta regla es la misma que @code{modern-voice}, pero con las
@@ -1598,6 +1629,7 @@ musicB = {
 @cindex piano, alteraciones de
 @cindex alteraciones de piano
 @cindex piano, estilo de alteraciones de
+
 @funindex piano
 
 Esta regla refleja la práctica del s.XX para la notación de piano.  Su
@@ -1656,7 +1688,6 @@ musicB = {
 
 @item piano-cautionary (piano, de precaución)
 
-@funindex piano-cautionary
 @cindex alteraciones, piano de precaución, estilo de
 @cindex alteraciones, piano de precaución
 @cindex precaución, estilo de alteraciones, piano
@@ -1664,6 +1695,8 @@ musicB = {
 @cindex piano de precaución, estilo de alteraciones
 @cindex piano de precaución, alteraciones
 
+@funindex piano-cautionary
+
 Igual que @code{#(set-accidental-style 'piano)} pero con las
 alteraciones añadidas compuestas como de precaución.
 
@@ -1713,10 +1746,11 @@ musicB = {
 @end lilypond
 @item neo-modern
 
-@funindex neo-modern
 @cindex neo-moderno, estilo de alteraciones
 @cindex alteraciones, estilo de, neo-moderno
 
+@funindex neo-modern
+
 Esta regla reproduce una práctica común en la música contemporánea:
 las alteraciones accidentales se imprimen como en @code{modern}, pero
 se vuelven a imprimir si aparece la misma nota otra vez en el mismo
@@ -1770,10 +1804,11 @@ musicB = {
 
 @item neo-modern-cautionary
 
-@funindex neo-modern-cautionary
 @cindex neo-moderno de precaución, estilo de alteraciones
 @cindex alteraciones, estilo, neo-moderno de precaución
 
+@funindex neo-modern-cautionary
+
 Esta regla es similar a @code{neo-modern}, pero las alteraciones
 adicionales se imprimen como alteraciones de precaución.
 
@@ -1826,10 +1861,11 @@ musicB = {
 
 @item dodecaphonic
 
-@funindex dodecaphonic
 @cindex dodecafónico, estilo de alteraciones
 @cindex alteraciones, estilo, dodecafónico
 
+@funindex dodecaphonic
+
 Esta regla refleja una práctica introducida por los compositores de
 principios del s.XX, en un intento de abolir la jerarquía entre notas
 naturales y alteradas.  Con este estilo, @emph{todas} las notas llevan
@@ -1883,10 +1919,11 @@ musicB = {
 
 @item teaching (enseñanza)
 
-@funindex teaching
-@cindex teaching (enzeñanza), estilo de alteraciones
+@cindex teaching (enseñanza), estilo de alteraciones
 @cindex alteraciones, estilo teaching (enseñanza)
 
+@funindex teaching
+
 Esta regla está pensada para estudiantes, y hace más sencillo crear
 hojas de escalas con alteraciones de precaución creadas
 automáticamente.  Las alteraciones se imprimen como en el estilo
@@ -1945,10 +1982,11 @@ musicB = {
 
 @item no-reset (no restablecer)
 
-@funindex no-reset
 @cindex alteraciones no restablecer, estilo de
 @cindex no restablecer, estilo de alteraciones
 
+@funindex no-reset
+
 Es el mismo que @code{default} pero con alteraciones que duran @q{para
 siempre} y no sólo dentro del mismo compás:
 
@@ -2000,10 +2038,11 @@ musicB = {
 
 @item forget (olvidar)
 
-@funindex forget
 @cindex olvidar, estilo de alteraciones
 @cindex alteración, estilo de, olvidar
 
+@funindex forget
+
 Es lo opuesto a @code{no-reset}: Las alteraciones no se recuerdan en
 absoluto: de aquí que todas las alteraciones se compongan
 tipográficamente en relación a la armadura de la tonalidad, sin que
@@ -2064,7 +2103,6 @@ musicB = {
 
 
 @seealso
-
 Fragmentos de código:
 @rlsr{Pitches}.
 
@@ -2091,7 +2129,7 @@ Esto significa que dentro de un acorde las alteraciones se tipografían
 como si las notas del acorde se sucedieran una a una en el tiempo, en
 el orden en que aparecen en el archivo de entrada.  Esto plantea un
 problema cuando las alteraciones de un acorde dependen unas de otras,
-lo que no se da en el estilo ds alteraciones predeterminado.  El
+lo que no se da en el estilo de alteraciones predeterminado.  El
 problema se puede resolver insertando manualmente@tie{}@code{!}
 y@tie{}@code{?} para las notas problemáticas.
 
@@ -2139,7 +2177,6 @@ tonalidad.
 
 
 @seealso
-
 Glosario musical:
 @rglos{ambitus}.
 
@@ -2192,6 +2229,7 @@ Esta sección propone formas de alterar las cabezas de las figuras.
 @cindex guitarra, cabezas de nota
 @cindex nota, cabeza de, estilos
 @cindex estilos de cabeza de nota
+
 @funindex cross
 
 Se puede modificar la cabeza de las notas:
@@ -2214,8 +2252,8 @@ Existe una abreviatura para las formas en rombo que sólo se puede usar en acord
 Para ver todos los estilos de cabeza de las notas, consulte @ref{Note
 head styles}.
 
-@seealso
 
+@seealso
 Fragmentos de código:
 @rlsr{Pitches}.
 
@@ -2231,6 +2269,7 @@ Referencia de funcionamiento interno:
 @rinternals{note-head-interface},
 @rinternals{ledger-line-spanner-interface}.
 
+
 @node Easy notation note heads
 @unnumberedsubsubsec Easy notation note heads
 
@@ -2240,9 +2279,14 @@ Referencia de funcionamiento interno:
 @cindex música para principiantes
 @cindex notas, cabezas de, estudio
 @cindex notas, cabezas de, notación simplificada
-@cindex nots, cabezas de, para precticar
+@cindex notas, cabezas de, para practicar
 @cindex simplificada, notación
 
+@funindex \easyHeadsOn
+@funindex easyHeadsOn
+@funindex \easyHeadsOff
+@funindex easyHeadsOff
+
 Las cabezas @q{easy play} (fáciles de tocar) tienen el nombre de la
 nota (en inglés) dentro de la cabeza.  Se usa en la música para
 principiantes.
@@ -2260,19 +2304,19 @@ principiantes.
 
 La instrucción @code{\easyHeadsOn} sobreescribe los ajustes del objeto
 @code{NoteHead}.  Estos ajustes se pueden deshacer mediante la
-isntrucción @code{\easyHeadsOff}. Para que las letras sean legibles,
+instrucción @code{\easyHeadsOff}. Para que las letras sean legibles,
 se tienen que imprimir en un tamaño grande de la tipografía.  Para
 imprimir con un tamaño de tipografía mayor, consulte @ref{Setting the
 staff size}.
 
+
 @predefined
+@code{\easyHeadsOn},
+@code{\easyHeadsOff}.
+@endpredefined
 
-@funindex \easyHeadsOn
-@funindex \easyHeadsOff
-@code{\easyHeadsOn}, @code{\easyHeadsOff}
 
 @seealso
-
 Referencia de la notación:
 @ref{Setting the staff size}.
 
@@ -2295,9 +2339,13 @@ Referencia de funcionamiento interno:
 @cindex formas, notas con
 @cindex Aiken, cabezas de nota con forma de
 @cindex arpa sacra, cabezas de nota de
+
 @funindex \key
+@funindex key
 @funindex \aikenHeads
+@funindex aikenHeads
 @funindex \sacredHarpHeads
+@funindex sacredHarpHeads
 
 En la notación de cabezas con forma, la forma de la cabeza corresponde
 a la función armónica de una nota dentro de la escala. Esta notación
@@ -2314,11 +2362,12 @@ c, d e f g a b c
 Las formas se determinan en función del grado de la escala, donde la
 tónica está determinada por la instrucción @code{\key}
 
+
 @predefined
+@code{\aikenHeads},
+@code{\sacredHarpHeads}.
+@endpredefined
 
-@funindex \aikenHeads
-@funindex \sacredHarpHeads
-@code{\aikenHeads}, @code{\sacredHarpHeads}
 
 @snippets
 
@@ -2329,8 +2378,8 @@ tónica está determinada por la instrucción @code{\key}
 Para ver todos los estilos de formas de cabeza de nota, consulte
 @ref{Note head styles}.
 
-@seealso
 
+@seealso
 Fragmentos de código:
 @rlsr{Pitches}.
 
@@ -2352,6 +2401,11 @@ Referencia de funcionamiento interno:
 @cindex notas, cabezas de, improvisación
 @cindex notas, cabezas de, barradas
 
+@funindex \improvisationOn
+@funindex improvisationOn
+@funindex \improvisationOff
+@funindex improvisationOff
+
 La improvisación se denota a veces mediante cabezas de nota en forma
 de barra inclinada, donde el ejecutante puede elegir cualquier nota
 pero con el ritmo especificado.  Estas cabezas de nota se crean así:
@@ -2370,15 +2424,14 @@ pero con el ritmo especificado.  Estas cabezas de nota se crean así:
 }
 @end lilypond
 
-@predefined
 
-@funindex \improvisationOn
-@funindex \improvisationOff
+@predefined
+@code{\improvisationOn},
+@code{\improvisationOff}.
+@endpredefined
 
-@code{\improvisationOn}, @code{\improvisationOff}
 
 @seealso
-
 Fragmentos de código:
 @rlsr{Pitches}.
 
@@ -2386,4 +2439,3 @@ Referencia de funcionamiento interno:
 @rinternals{Pitch_squash_engraver},
 @rinternals{Voice},
 @rinternals{RhythmicStaff}.
-
index 1da322e38c1dc3217b435de0437bc73ce4cb00d8..838ee659f3703e68f3b0cd3afb045cfbbe611521 100644 (file)
@@ -1,13 +1,13 @@
 @c -*- coding: utf-8; mode: texinfo; -*-
 @c This file is part of lilypond.tely
 @ignore
-    Translation of GIT committish: 85b54e04be6730bd0781f3135ee741010e099fd8
+    Translation of GIT committish: 41ef91786a08102d9b9a839f6a2f40cec263d723
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @node Preface
 @unnumbered Preface
index f89da275f4e7fdc54a89111eef9d8759ba7d0ea8..a831da142ea90f5993f60e1f9b8029b6df7ed0ba 100644 (file)
@@ -1,19 +1,19 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 @c This file is part of lilypond.tely
 @ignore
-    Translation of GIT committish: 88f1608ae6fd17b05344bafb2f0721aafdac657b
+    Translation of GIT committish: cef012cb7eef18f4ad00ef6f63afd39c95bd104a
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @node Interfaces for programmers
 @chapter Interfaces for programmers
 
 Se pueden realizar trucos avanzados mediante el uso de Scheme.  Si no
-está familizarizado con Scheme, le conviene leer nuestro tutorial de
+está familiarizado con Scheme, le conviene leer nuestro tutorial de
 Scheme, @rlearning{Scheme tutorial}.
 
 @menu
@@ -230,7 +230,7 @@ withAlt = #(define-music-function (parser location mag music) (number? ly:music?
 @node Void functions
 @subsection Void functions
 
-Una función musical debe devolver una expresión musical, per a veces
+Una función musical debe devolver una expresión musical, pero a veces
 podemos necesitar una función en la que no hay música en juego (como
 la desactivación de la funcionalidad Apuntar y Pulsar).  Para hacerlo,
 devolvemos una expresión musical @code{void} (vacía).
@@ -273,7 +273,7 @@ displayBarNum =
        #@{#@}))
 @end example
 
-Para la imresión real de los números de compás donde se llama a esta
+Para la impresión real de los números de compás donde se llama a esta
 función, invoque a @command{lilypond} con
 
 @example
@@ -341,9 +341,9 @@ se convierte internamente a una definición de Scheme
 @end example
 
 Esto supone que las variables de entrada y las variables de Scheme se
-pueden intermezclar con libertad.  En el ejemplo siguiente, se
+pueden entremezclar con libertad.  En el ejemplo siguiente, se
 almacena un fragmento musical en la variable @code{traLaLa}, y se
-dupplica utilizando Scheme.  El resultado se importa en un bloque
+duplica utilizando Scheme.  El resultado se importa en un bloque
 @code{\score} por medio de una segunda variable @code{twice}:
 
 @lilypond[verbatim]
@@ -380,7 +380,7 @@ sido introducido en sintaxis de LilyPond.  En vez de definir
 @{ #(ly:export (make-sequential-music (list newLa))) @}
 @end example
 
-El sódigo de Scheme se evalúa tan pronto como el analizador sintáctico
+El código de Scheme se evalúa tan pronto como el analizador sintáctico
 lo encuentra.  Para definir código de Scheme en un macro (para
 llamarlo con posterioridad), use @ref{Void functions}, o bien
 
@@ -419,7 +419,7 @@ de referencia de funcionamiento interno, bajo @rinternals{Music
 expressions}.
 
 @item
-@q{typo} o intterface: cada nombre de música tiene varios @q{tipos} o
+@q{tipo} o interface: cada nombre de música tiene varios @q{tipos} o
 interfaces, por ejemplo una nota es un @code{event}, pero también es
 un @code{note-event}, un @code{rhythmic-event} y un
 @code{melodic-event}.  Todas las clases musicales se encuentran
@@ -439,7 +439,7 @@ están disponibles en la Referencia de funcionamiento interno, bajo
 @rinternals{Music properties}.
 
 Una expresión musical compuesta es un objeto musical que contiene
-otros objetos musicales en sus propiedades.  Se puede almacernar una
+otros objetos musicales en sus propiedades.  Se puede almacenar una
 lista de objetos en la propiedad @code{elements} de un objeto musical,
 o un solo objeto musical @q{hijo} en la propiedad @code{element}.  Por
 ejemplo, @rinternals{SequentialMusic} tiene sus hijos en
@@ -510,7 +510,7 @@ salida hacia un archivo.
 lilypond archivo.ly >resultado.txt
 @end example
 
-Con la aplicación de un poco de formato, la inforamción anterior es
+Con la aplicación de un poco de formato, la información anterior es
 fácil de leer:
 
 @example
@@ -529,7 +529,7 @@ una lista en su propiedad @code{'elements}.  Una nota se representa
 como una expresión @code{EventChord} que contiene un objeto
 @code{NoteEvent} (que almacena las propiedades de duración y altura) y
 cualquier otra información adicional (en este caso, un evento
-@code{AbsoluteDynamicEvent} con una porpiedad de texto @code{"f"}.
+@code{AbsoluteDynamicEvent} con una propiedad de texto @code{"f"}.
 
 
 @node Music properties
@@ -635,7 +635,7 @@ representación interna de la música con la que queremos terminar.
                   1)))))
 @end example
 
-Las malas noticias son que las espresiones @code{SlurEvent} se deben
+Las malas noticias son que las expresiones @code{SlurEvent} se deben
 añadir @q{dentro} de la nota (o más concretamente, dentro de la
 expresión @code{EventChord}).
 
@@ -748,7 +748,7 @@ Para construir esta función, empezamos con
 @example
 (define (add-marcato event-chord)
   "Añadir una ArticulationEvent de marcato a los elementos de `event-chord',
-  que se ssupone que es una expresión EventChord."
+  que se supone que es una expresión EventChord."
   (let ((result-event-chord (ly:music-deep-copy event-chord)))
     (set! (ly:music-property result-event-chord 'elements)
           (cons (make-music 'ArticulationEvent
@@ -792,10 +792,10 @@ Ahora tenemos un @code{result-event-chord}, que es una expresión
 el marcato a su propiedad lista de elementos.
 
 @example
-(set! place new-value)
+(set! lugar valor-nuevo)
 @end example
 
-Aquí, lo que queremos establecer (el @q{place}) es la propiedad
+Aquí, lo que queremos establecer (el @q{lugar}) es la propiedad
 @q{elements} de la expresión @code{result-event-chord}.
 
 @example
@@ -815,7 +815,7 @@ copiamos a partir de la salida de @code{\displayMusic},
       (ly:music-property result-event-chord 'elements))
 @end example
 
-@code{cons} se usa para añadir un elemento a una lsita sin modificar
+@code{cons} se usa para añadir un elemento a una lista sin modificar
 la lista original.  Esto es lo que queremos: la misma lista que antes,
 más la nueva expresión @code{ArticulationEvent}.  El orden dentro de
 la propiedad elements no es importante aquí.
@@ -830,8 +830,8 @@ musical,
 @example
 addMarcato = #(define-music-function (parser location event-chord)
                                      (ly:music?)
-    "Add a marcato ArticulationEvent to the elements of `event-chord',
-    which is supposed to be an EventChord expression."
+    "Añadir un ArticulationEvent de marcato a los elementos de `event-chord',
+    que se supone que es una expresión EventChord."
     (let ((result-event-chord (ly:music-deep-copy event-chord)))
       (set! (ly:music-property result-event-chord 'elements)
             (cons (make-music 'ArticulationEvent
@@ -882,7 +882,7 @@ equivale a:
 
 @noindent
 Este ejemplo muestra las principales reglas de traducción entre la
-sitaxis del marcado normal de LilyPond y la sintaxis del marcado de
+sintaxis del marcado normal de LilyPond y la sintaxis del marcado de
 Scheme.
 
 @quotation
@@ -1204,7 +1204,7 @@ instrucción de lista de marcados @code{paragraph} toma un argumento de
 lista de marcados, llamado @code{args}.  El predicado para listas de
 marcados es @code{markup-list?}.
 
-Em primer lugar, la función toma el ancho del sangrado, una propiedad
+En primer lugar, la función toma el ancho del sangrado, una propiedad
 llamada aquí @code{par-indent}, de la lista de propiedades
 @code{props}.  Si no se encuentra la propiedad, el valor
 predeterminado es @code{2}.  Después, se hace una lista de líneas
@@ -1524,7 +1524,7 @@ razones técnicas.  Son ejemplos @code{NonMusicalPaperColumn} y
 @end example
 
 Observe, sin embargo, que @code{\override}, aplicado a
-@code{NoteMusicalPaperColumn} y a @code{PaperColumn}, aún funciona
+@code{NonMusicalPaperColumn} y a @code{PaperColumn}, aún funciona
 como se espera dentro de los bloques @code{\context}.
 
 @end itemize
index a1fd89b0672194f12d400caee60ac8448fda29b7..191c19cad62074de2492a80a71ee163791c3513c 100644 (file)
@@ -1,12 +1,12 @@
-@c -*- coding: utf-8; mode: texinfo; -*-
+@c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 @ignore
-    Translation of GIT committish: 85b54e04be6730bd0781f3135ee741010e099fd8
+    Translation of GIT committish: 41ef91786a08102d9b9a839f6a2f40cec263d723
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @node Repeats
 @section Repeats
@@ -30,7 +30,7 @@ repeticiones con finales alternativos.
 @item unfold (desplegada)
 Las música repetida se escribe y se interpreta completamente tantas
 veces como especifique el valor @var{número_de_repeticiones}.  Es útil
-cuando se estáescribiendo música repetitiva.
+cuando se está escribiendo música repetitiva.
 
 @item percent (porcentaje)
 Hacer repeticiones de compases o parte de ellos.  Tienen un aspecto
@@ -168,8 +168,8 @@ c1
 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
 {adding-volta-brackets-to-additional-staves.ly}
 
-@seealso
 
+@seealso
 Glosario musical:
 @rglos{repeat},
 @rglos{volta}.
@@ -187,6 +187,7 @@ Referencia de funcionamiento interno:
 @rinternals{VoltaRepeatedMusic},
 @rinternals{UnfoldedRepeatedMusic}.
 
+
 @knownissues
 
 @cindex repetición ambigua
@@ -302,6 +303,7 @@ g4 a g a
 c1
 \set Score.repeatCommands = #'((volta #f) (volta "95") end-repeat)
 b1
+\set Score.repeatCommands = #'((volta #f))
 @end lilypond
 
 @cindex corchete de casilla de repetición con texto
@@ -330,9 +332,8 @@ voltaAdLib = \markup { 1. 2. 3... \text \italic { ad lib. } }
 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
 {printing-a-repeat-sign-at-the-beginning-of-a-piece.ly}
 
-@seealso
-
 
+@seealso
 Referencia de la notación:
 @ref{Bar lines},
 @ref{Formatting text}.
@@ -352,16 +353,16 @@ Referencia de funcionamiento interno:
 @cindex explícitas, repeticiones
 @cindex repetitiva, música
 @cindex repeticiones explícitas
-@cindex repetición delplegada
+@cindex repetición desplegada
 @cindex desplegar música
 @cindex desplegar repetición
-@cindex repetición deplegada con finales alternativos
+@cindex repetición desplegada con finales alternativos
 @cindex música desplegada con finales alternativos
 @cindex alternativos, finales, en repeticiones explícitas
 @funindex unfold
 
 Mediante la utilización de la instrucción @code{unfold} se pueden usar
-las repeticiones para simplificar la escritura deplegada de música
+las repeticiones para simplificar la escritura desplegada de música
 repetitiva.  La sintaxis es:
 
 @example
@@ -369,7 +370,7 @@ repetitiva.  La sintaxis es:
 @end example
 
 donde @var{expresión_musical} es una expresión musical y
-@var{nnúmero_de_repeticiones} es el número de veces que
+@var{número_de_repeticiones} es el número de veces que
 @var{expresión_musical} se repite.
 
 @lilypond[verbatim,quote,relative=2]
@@ -392,8 +393,8 @@ c1
 c1
 @end lilypond
 
-@seealso
 
+@seealso
 Fragmentos de código:
 @rlsr{Repeats}.
 
@@ -401,6 +402,7 @@ Referencia de funcionamiento interno:
 @rinternals{RepeatedMusic},
 @rinternals{UnfoldedRepeatedMusic}.
 
+
 @node Short repeats
 @subsection Short repeats
 
@@ -448,11 +450,14 @@ donde @var{expresión_musical} es una expresión musical.
 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
 {percent-repeat-counter.ly}
 
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{percent-repeat-count-visibility.ly}
+
 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
 {isolated-percent-repeats.ly}
 
-@seealso
 
+@seealso
 Glosario musical:
 @rglos{percent repeat},
 @rglos{simile}.
@@ -468,6 +473,7 @@ Referencia de funcionamiento interno:
 @rinternals{PercentRepeatCounter},
 @rinternals{PercentRepeatedMusic}.
 
+
 @knownissues
 
 Sólo están contempladas tres clases de repeticiones del tipo
@@ -544,14 +550,16 @@ c2:8 c:32
 c: c:
 @end lilypond
 
-@seealso
 
+@seealso
 Fragmentos de código:
 @rlsr{Repeats}.
 
-@cindex trémols de pentagrama cruzado
+
+@cindex trémolos de pentagrama cruzado
 @cindex pentagrama cruzado, trémolo de
 
+
 @knownissues
 
 Los trémolos de pentagrama cruzado no funcionan bien.
index e9639adb13ed9119ca318588e53bcdb593f8d484..7f9fafa7bb3c30b5023cf4b04b5da3ee46b9a028 100644 (file)
@@ -1,12 +1,12 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 @ignore
-    Translation of GIT committish: 770ccfb9bd8536d7fb570a5c25ce874a461486f0
+    Translation of GIT committish: 7385b95b8a91525e82559355dddea4f1ff965f5c
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @node Rhythms
 @section Rhythms
@@ -41,10 +41,15 @@ barras y los compases.
 
 @cindex duración de las notas
 @cindex notas, duración de
+@cindex longitud de las notas
+@cindex notas, longitud de
 
 @funindex \longa
+@funindex longa
 @funindex \breve
+@funindex breve
 @funindex \maxima
+@funindex maxima
 
 Las duraciones se designan mediante números y puntos. Las duraciones
 se introducen como sus valores recíprocos respecto de la redonda.  Por
@@ -52,8 +57,8 @@ ejemplo, una negra se escribe usando un @code{4} (puesto que es 1/4 de
 redonda), mientras que una blanca se escribe con un @code{2} (por ser
 1/2 de redonda).  Para notas mayores de la redonda se deben usar los
 comandos @code{\longa} (que es una breve doble) y @code{\breve}. Se
-pueden especificar duraciones tan cortas como la semifusa (con el
-número 64).  Son posibles valores más cortos, pero sólo como notas
+pueden especificar duraciones tan cortas como la garrapatea (con el
+número 128).  Son posibles valores más cortos, pero sólo como notas
 unidas por una barra.
 
 @c Two 64th notes are needed to obtain beams
@@ -91,6 +96,8 @@ a a a2 a a4 a a1 a
 
 @cindex notas, con puntillo
 @cindex puntillo, notas con
+@cindex notas, con doble puntillo
+@cindex doble puntillo, notas con
 
 @funindex .
 
@@ -116,8 +123,11 @@ otros ajustes que controlan la notación proporcional, consulte
 @ref{Proportional notation}.
 
 @funindex \dotsUp
+@funindex dotsUp
 @funindex \dotsDown
+@funindex dotsDown
 @funindex \dotsNeutral
+@funindex dotsNeutral
 
 Normalmente los puntillos se desplazan hacia arriba para evitar las
 líneas del pentagrama, excepto en situaciones de polifonía. Para
@@ -126,24 +136,25 @@ and placement}.
 
 
 @predefined
-
 @code{\autoBeamOff},
 @code{\dotsUp},
 @code{\dotsDown},
 @code{\dotsNeutral}.
+@endpredefined
 
 
 @seealso
-
 Glosario musical:
 @rglos{breve},
 @rglos{longa},
+@rglos{maxima},
 @rglos{note value},
 @rglos{Duration names notes and rests}.
 
 Referencia de la notación:
 @ref{Automatic beams},
 @ref{Ties},
+@ref{Stems},
 @ref{Writing rhythms},
 @ref{Writing rests},
 @ref{Vocal music},
@@ -172,7 +183,9 @@ garrapatea (128) hasta el de máxima (8 redondas).
 
 @cindex grupos especiales
 @cindex tresillos
+
 @funindex \times
+@funindex times
 
 Los grupos especiales se obtienen a partir de una expresión musical
 multiplicando todas las duraciones por una fracción:
@@ -194,8 +207,11 @@ c4 c \times 2/3 { b4 a g }
 @end lilypond
 
 @funindex \tupletUp
+@funindex tupletUp
 @funindex \tupletDown
+@funindex tupletDown
 @funindex \tupletNeutral
+@funindex tupletNeutral
 
 La colocación automática del corchete de grupo especial por encima o
 por debajo de las notas se puede sobreescribir manualmente mediante
@@ -215,11 +231,13 @@ mismo instante musical se debe hacer con @code{\tweak}.
 Para modificar la duración de las notas sin imprimir un corchete de
 grupo especial, véase @ref{Scaling durations}.
 
-@predefined
 
+@predefined
 @code{\tupletUp},
 @code{\tupletDown},
 @code{\tupletNeutral}.
+@endpredefined
+
 
 @snippets
 
@@ -240,8 +258,8 @@ grupo especial, véase @ref{Scaling durations}.
 @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
 {permitting-line-breaks-within-beamed-tuplets.ly}
 
-@seealso
 
+@seealso
 Glosario musical:
 @rglos{triplet},
 @rglos{tuplet},
@@ -264,6 +282,7 @@ Referencia de funcionamiento interno:
 @rinternals{TupletNumber},
 @rinternals{TimeScaledMusic}.
 
+
 @knownissues
 
 @cindex adorno, notas de, dentro de corchetes de grupo especial
@@ -300,7 +319,7 @@ a4*2/3 gis4*2/3 a4*2/3
 a4 a4
 % Double the duration of chord
 <a d>4*2
-% Duration of quarter, appears like sixteeth
+% Duration of quarter, appears like sixteenth
 b16*4 c4
 @end lilypond
 
@@ -309,7 +328,9 @@ modificar mediante un multiplicador.  Esto es útil para saltar muchos
 compases, como por ejemplo @code{s1*23}.
 
 @cindex compresión de música
+
 @funindex \scaleDurations
+@funindex scaleDurations
 
 De la misma forma, se pueden comprimir por una fracción trozos de
 música más largos, como si cada nota, acorde o silencio tuviera la
@@ -337,8 +358,8 @@ se puede comprimir y expandir la música:
 Una aplicación de esta instrucción se encuentra en la notación
 polimétrica, véase @ref{Polymetric notation}.
 
-@seealso
 
+@seealso
 Referencia de la notación:
 @ref{Tuplets},
 @ref{Invisible rests},
@@ -352,6 +373,7 @@ Fragmentos de código:
 @unnumberedsubsubsec Ties
 
 @cindex ligadura de unión
+
 @funindex ~
 
 Una ligadura de unión conecta dos notas adyacentes de la misma altura.  La ligadura
@@ -390,8 +412,8 @@ notas, véase @ref{Automatic note splitting}.  Este mecanismo divide
 automáticamente las notas largas y las liga a través de las barras de
 compás.
 
-@cindex ties and chords
-@cindex chords and ties
+@cindex ligaduras y acordes
+@cindex acordes y ligaduras
 
 Cuando se aplica una ligadura de unión a un acorde, se conectan todas
 las cabezas de las notas cuyas alturas coinciden.  Si no coincide
@@ -399,16 +421,18 @@ ningún par de cabezas, no se crea ninguna ligadura.  Los acordes se
 pueden ligar parcialmente colocando la ligadura dentro del acorde.
 
 @lilypond[quote,verbatim,relative=1]
- <c e g> ~ <c e g>
+<c e g> ~ <c e g>
 <c~ e g~ b> <c e g b>
 @end lilypond
 
-@funindex \repeatTie
 @cindex repetición, ligaduras de unión en
 @cindex ligaduras de unión, repeticiones y
 @cindex primera y segunda vez, corchetes y ligaduras en
 @cindex ligaduras de unión y corchetes de primera y segunda vez
 
+@funindex \repeatTie
+@funindex repeatTie
+
 Cuando la segunda vez de una repetición comienza con una nota ligada,
 es necesario especificar la ligadura repetida como sigue:
 
@@ -423,7 +447,9 @@ es necesario especificar la ligadura repetida como sigue:
 
 @cindex laissez vibrer
 @cindex ligaduras laissez vibrer
+
 @funindex \laissezVibrer
+@funindex laissezVibrer
 
 Las ligaduras @notation{L.v.} (@notation{laissez vibrer}, dejar
 vibrar) indican que las notas no se deben apagar al final.  Se usan en
@@ -435,24 +461,36 @@ percusión.  Se pueden introducir de la siguiente manera:
 @end lilypond
 
 @cindex ligaduras, colocación
+
 @funindex \tieUp
+@funindex tieUp
 @funindex \tieDown
+@funindex tieDown
 @funindex \tieNeutral
+@funindex tieNeutral
 
 Es posible controlar la colocación vertical de las ligaduras de unión;
 véase la sección de instrucciones predefinidas, o para ver más
 detalles, consulte @ref{Direction and placement}.
 
 @cindex ligaduras, apariencia
+@cindex ligaduras de puntos
+@cindex ligaduras discontinuas
+@cindex discontinuas, ligaduras
+@cindex puntos, ligaduras de
+
 @funindex \tieDotted
+@funindex tieDotted
 @funindex \tieDashed
+@funindex tieDashed
 @funindex \tieSolid
+@funindex tieSolid
 
-Se pueden especificar ligaduras continuas, de puuntos o intermitentes,
+Se pueden especificar ligaduras continuas, de puntos o intermitentes,
 véase la sección de instrucciones predefinidas.
 
-@predefined
 
+@predefined
 @code{\tieUp},
 @code{\tieDown},
 @code{\tieNeutral},
@@ -460,6 +498,8 @@ véase la sección de instrucciones predefinidas.
 @code{\tieDashed},
 @code{\tieSolid},
 @code{\repeatTie}.
+@endpredefined
+
 
 @snippets
 
@@ -469,8 +509,8 @@ véase la sección de instrucciones predefinidas.
 @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
 {engraving-ties-manually.ly}
 
-@seealso
 
+@seealso
 Glosario musical:
 @rglos{tie},
 @rglos{laissez vibrer}.
@@ -487,6 +527,7 @@ Referencia de funcionamiento interno:
 @rinternals{TieColumn},
 @rinternals{Tie}.
 
+
 @knownissues
 
 Un cambio de pentagrama cuando hay una ligadura activa no producirá
@@ -496,6 +537,7 @@ Los cambios de clave o de octava durante una ligadura de unión no
 están bien definidos realmente.  En estos casos puede ser preferible
 una ligadura de expresión.
 
+
 @node Writing rests
 @subsection Writing rests
 
@@ -512,16 +554,20 @@ expresiones musicales.
 @unnumberedsubsubsec Rests
 
 @cindex silencio
-@cindex silencios, indocar duraciones
-@cindex maxima
-@cindex longa
-@cindex breve
+@cindex silencios, indicar duraciones
+@cindex maxima, silencio de
+@cindex longa, silencio de
+@cindex breve, silencio de
 
 @funindex \rest
+@funindex rest
 @funindex r
 @funindex \maxima
+@funindex maxima
 @funindex \longa
+@funindex longa
 @funindex \breve
+@funindex breve
 
 Los silencios se introducen como notas con el nombre @code{r}.  Las
 duraciones mayores que la redonda utilizan las instrucciones
@@ -570,7 +616,12 @@ a4\rest d4\rest
 @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
 {rest-styles.ly}
 
+
 @seealso
+Glosario musical:
+@rglos{breve},
+@rglos{longa},
+@rglos{maxima}.
 
 Referencia de la notación:
 @ref{Full measure rests}.
@@ -581,6 +632,7 @@ Fragmentos de código:
 Referencia de funcionamiento interno:
 @rinternals{Rest}.
 
+
 @knownissues
 
 @c Deliberately duplicated in Durations and Rests.  -gp
@@ -597,8 +649,11 @@ hasta la máxima (8 redondas).
 @cindex silencio invisible
 @cindex invisible, silencio
 @cindex nota de espaciado
+@cindex silencio de separación
+
 @funindex s
 @funindex \skip
+@funindex skip
 
 Un silencio invisible (también conocido como @q{skip} o
 desplazamiento) se puede introducir como una nota con el
@@ -646,8 +701,8 @@ salida, de ninguna clase.
 \skip 1 \skip1 \skip 1
 @end lilypond
 
-@seealso
 
+@seealso
 Fragmentos de código:
 @rlsr{Rhythms}.
 
@@ -660,9 +715,11 @@ Referencia de funcionamiento interno:
 
 @cindex multicompás, silencios
 @cindex compás completo, silencios de
-@cindex Silencios multicompás
-@cindex Silencios de compás completo
+@cindex silencios multicompás
+@cindex silencios de compás completo
 @cindex redonda, silencios de, para un compás completo
+@cindex silencios de redonda para un compás completo
+
 @funindex R
 
 Los silencios de uno o más compases completos se introducen como notas
@@ -711,11 +768,13 @@ R1*2 |
 @cindex multicompás, silencios, contracción de
 
 @funindex \expandFullBarRests
+@funindex expandFullBarRests
 @funindex \compressFullBarRests
+@funindex compressFullBarRests
 
 De forma predeterminada un silencio multicompás se expande en la
 partitura impresa para mostrar explícitamente todos los compases de
-silencio.  De forma alternatica, un silencio multicompás se puede
+silencio.  De forma alternativa, un silencio multicompás se puede
 presentar como un solo compás que contiene un símbolo de silencio
 multicompás, con el número de compases impreso encima del compás:
 
@@ -741,6 +800,9 @@ R2.*2 |
 @cindex calderón sobre un silencio multicompás
 @cindex multicompás, silencio, aplicar un calderón a
 
+@funindex \fermataMarkup
+@funindex fermataMarkup
+
 Se pueden añadir elementos de marcado a los silencios multicompás.  Se
 proporciona la instrucción predefinida @code{\fermataMarkup} para
 añadir calderones.
@@ -771,12 +833,15 @@ Cuando un silencio multicompás sigue inmediatamente al establecimiento
 de un compás parcial con @code{\partial}, es posible que no se emitan
 las advertencias correspondientes de comprobación de compás.
 
+
 @predefined
 @code{\textLengthOn},
 @code{\textLengthOff},
 @code{\fermataMarkup},
 @code{\compressFullBarRests},
 @code{\expandFullBarRests}.
+@endpredefined
+
 
 @snippets
 
@@ -798,7 +863,6 @@ las advertencias correspondientes de comprobación de compás.
 
 
 @seealso
-
 Glosario musical:
 @rglos{multi-measure rest}.
 
@@ -816,6 +880,8 @@ Referencia de funcionamiento interno:
 @rinternals{MultiMeasureRestNumber},
 @rinternals{MultiMeasureRestText}.
 
+@cindex digitaciones y silencios multicompás
+@cindex multicompás, silencios, digitaciones y
 
 @knownissues
 
@@ -851,8 +917,10 @@ silencios.
 @unnumberedsubsubsec Time signature
 
 @cindex Indicación de compás
-@cindex metro, medida
+@cindex medida
+
 @funindex \time
+@funindex time
 
 La indicación de compás se establece como sigue:
 
@@ -867,7 +935,7 @@ La indicación de compás se imprime al comienzo de una pieza y siempre
 que hay un cambio de compás.  Si se produce un cambio al final de una
 línea, se imprime una indicación de advertencia en dicho lugar.  Se
 puede modificar este comportamiento predeterminado, véase
-@ref{Controlling visibility of objects}.
+@ref{Visibility of objects}.
 
 @lilypond[quote,verbatim,relative=2]
 \time 2/4
@@ -880,8 +948,12 @@ c c c c
 @end lilypond
 
 @cindex compás, estilo de la indicación de
+@cindex metro, estilo de
+
 @funindex \numericTimeSignature
+@funindex numericTimeSignature
 @funindex \defaultTimeSignature
+@funindex defaultTimeSignature
 
 El símbolo de compás que se usa en 2/2 y 4/4 se puede cambiar a un
 estilo numérico:
@@ -903,31 +975,17 @@ estilo numérico:
 Las indicaciones de compás de la música mensural se tratan en
 @ref{Mensural time signatures}.
 
-@predefined
 
+@predefined
 @code{\numericTimeSignature},
 @code{\defaultTimeSignature}.
+@endpredefined
 
-@snippets
 
-La instrucción @code{\time} establece las propiedades
-@code{timeSignatureFraction}, @code{beatLength} y @code{measureLength}
-en el contexto @code{Timing}, que normalmente tiene el alias
-@code{Score}.  La modificación del valor de
-@code{timeSignatureFraction} hace que se imprima la nueva indicación
-de compás sin que cambien las otras propiedades:
+@snippets
 
-@lilypond[quote,verbatim,relative=2]
-\time 3/4
-a16 a a a a a a a a a a a
-% Change time signature but keep 3/4 beaming
-% due to unchanged beatLength
-\set Score.timeSignatureFraction = #'(12 . 16)
-a16 a a a a a a a a a a a
-\time 12/16
-% Lose 3/4 beaming now beatLength has changed to 16
-a16 a a a a a a a a a a a
-@end lilypond
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{changing-the-time-signature-without-affecting-the-beaming.ly}
 
 @cindex compuesto, indicaciones de compás
 @cindex compás compuesto, indicaciones de
@@ -935,8 +993,8 @@ a16 a a a a a a a a a a a
 @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
 {compound-time-signatures.ly}
 
-@seealso
 
+@seealso
 Glosario musical:
 @rglos{time signature}
 
@@ -961,7 +1019,9 @@ Referencia de funcionamiento interno:
 @cindex parcial, compás
 @cindex compás, cambiar la longitud del
 @funindex measurePosition
+
 @funindex \partial
+@funindex partial
 
 Los compases parciales como las anacrusas o partes al alzar se
 escriben usando la instrucción @code{\partial}, con la sintaxis
@@ -999,8 +1059,8 @@ que se establece a un número negativo por parte de la instrucción
 @code{-4}, con el significado de @qq{queda un valor de negra en este
 compás}.
 
-@seealso
 
+@seealso
 Glosario musical:
 @rglos{anacrusis}.
 
@@ -1013,6 +1073,7 @@ Fragmentos de código:
 Referencia de funcionamiento interno:
 @rinternals{Timing_translator}.
 
+
 @knownissues
 
 El uso de @code{\partial} está previsto solamente para el comienzo de
@@ -1027,8 +1088,11 @@ advertencias desagradables.
 @cindex líneas divisorias, quitar
 @cindex numeración de compases, quitar
 @cindex música sin metro
+
 @funindex \cadenzaOn
+@funindex cadenzaOn
 @funindex \cadenzaOff
+@funindex cadenzaOff
 
 Las líneas divisorias y los números de compás se calculan
 automáticamente.  Para música sin compasear (por ejemplo cadencias),
@@ -1059,13 +1123,14 @@ c4 c d8 d d f4 g4.
 d4 e d c
 @end lilypond
 
-@predefined
 
+@predefined
 @code{\cadenzaOn},
 @code{\cadenzaOff}.
+@endpredefined
 
-@seealso
 
+@seealso
 Glosario musical:
 @rglos{cadenza}.
 
@@ -1075,6 +1140,7 @@ Referencia de la notación:
 Fragmentos de código:
 @rlsr{Rhythms}.
 
+
 @knownissues
 
 LilyPond inserta saltos de línea y de página solamente en las barras
@@ -1093,34 +1159,50 @@ para indicar dónde se pueden producir los saltos.
 @node Polymetric notation
 @unnumberedsubsubsec Polymetric notation
 
-@cindex double time signatures
-@cindex signatures, polymetric
-@cindex polymetric signatures
-@cindex meter, polymetric
+@c This section necessarily uses \set
+@c This is acceptable  -td
 
-Está contemplada la notación polimétrica, ya sea explícitamente o a
-través de un uso inteligente de las posibilidades de marcado.
+@cindex compás, doble
+@cindex compases polimétricos
+@cindex polimétricos, compases
+@cindex metro polimétrico
+@cindex doble compás
+
+@funindex timeSignatureFraction
+@funindex \scaleDurations
+@funindex scaleDurations
+@funindex \times
+@funindex times
+
+Está contemplada la notación polimétrica, ya sea explícitamente o
+mediante la modificación de la indicación visible del compás y el
+escalado de la duración de las notas.
 
 @strong{Pentagramas con distintas indicaciones de compás, compases de
 igual longitud}
 
 Se puede crear esta notación estableciendo una indicación de compás
-común para cada pentagrama per sustituyendo el símbolo manualmente
+común para cada pentagrama pero sustituyendo el símbolo manualmente
 mediante el establecimiento de @code{timeSignatureFraction} a la
 fracción deseada y escalando las duraciones impresas en cada
-pentagrama a la indicación de compás común.  Esto se hace con
-@code{\scaleDurations}, que se usa de una forma similar a
-@code{\times}, pero no crea un corchete de grupo especial, véase
-@ref{Scaling durations}.
+pentagrama a la indicación de compás común; véase @ref{Time
+signature}.  El escalado se hace con @code{\scaleDurations}, que se
+usa de una forma similar a @code{\times}, pero no crea un corchete de
+grupo especial, véase @ref{Scaling durations}.
+
+@cindex barrado en música polimétrica
+@cindex barrado en metro polimétrico
 
 En este ejemplo, se usa en paralelo música con compases de 3/4, 9/8 y
 10/8.  En el segundo pentagrama, las duraciones mostradas se
 multiplican por 2/3, pues 2/3 * 9/8 = 3/4, y en el tercer pentagrama,
 las duraciones que se muestran están multiplicadas por 3/5, pues 3/5 *
-10/8 = 3/4.
+10/8 = 3/4.  Con frecuencia se hace necesario insertar las barras de
+forma manual, pues el escalado de las duraciones afecta a las reglas
+de barrado automático.
 
 @lilypond[quote,verbatim,fragment]
-\relative c' <<
+\relative c' <<
   \new Staff {
     \time 3/4
     c4 c c |
@@ -1130,7 +1212,7 @@ las duraciones que se muestran están multiplicadas por 3/5, pues 3/5 *
     \time 3/4
     \set Staff.timeSignatureFraction = #'(9 . 8)
     \scaleDurations #'(2 . 3)
-      \repeat unfold 6 { c8[ c c] }
+    \repeat unfold 6 { c8[ c c] }
   }
   \new Staff {
     \time 3/4
@@ -1138,18 +1220,18 @@ las duraciones que se muestran están multiplicadas por 3/5, pues 3/5 *
     \scaleDurations #'(3 . 5) {
       \repeat unfold 2 { c8[ c c] }
       \repeat unfold 2 { c8[ c] } |
-      c4. c4. \times 2/3 { c8 c c } c4
+      c4. c4. \times 2/3 { c8[ c c] } c4
     }
   }
->> }
+>>
 @end lilypond
 
-@strong{Pentagramas con distinas indicaciones de compás y longitudes
-de compás distintas}
+@strong{@i{Pentagramas con distintas indicaciones de compás y
+longitudes de compás distintas}}
 
 Se puede dar a cada pentagrama su propia indicación de compás
-independiente trasladando el grabador @code{Timing_translator} al
-contexto de @code{Staff}.
+independiente trasladando los grabadores @code{Timing_translator} y
+@code{Default_bar_line_engraver} al contexto de @code{Staff}.
 
 @lilypond[quote,verbatim]
 \layout {
@@ -1194,15 +1276,16 @@ contexto de @code{Staff}.
 @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
 {compound-time-signatures.ly}
 
-@seealso
 
+@seealso
 Glosario musical:
 @rglos{polymetric},
 @rglos{polymetric time signature},
 @rglos{meter}.
 
 Referencia de la notación:
-@ref{Scaling durations}
+@ref{Time signature},
+@ref{Scaling durations}.
 
 Fragmentos de código:
 @rlsr{Rhythms}.
@@ -1210,8 +1293,10 @@ Fragmentos de código:
 Referencia de funcionamiento interno:
 @rinternals{TimeSignature},
 @rinternals{Timing_translator},
+@rinternals{Default_bar_line_engraver},
 @rinternals{Staff}.
 
+
 @knownissues
 
 Al usar distintos compases en paralelo, las notas que están en el
@@ -1228,6 +1313,9 @@ compás.
 @cindex notas, división de
 @cindex división de notas
 
+@funindex Note_heads_engraver
+@funindex Completion_heads_engraver
+
 Las notas largas se pueden convertir automáticamente en notas ligadas.
 Se hace mediante la sustitución del @code{Note_heads_engraver} por el
 @code{Completion_heads_engraver}.  En el ejemplo siguiente, las notas
@@ -1238,9 +1326,9 @@ ligadura.
 \new Voice \with {
   \remove "Note_heads_engraver"
   \consists "Completion_heads_engraver"
-} {
-  c2. c8 d4 e f g a b c8 c2 b4 a g16 f4 e d c8. c2
 }
+
+{ c2. c8 d4 e f g a b c8 c2 b4 a g16 f4 e d c8. c2 }
 @end lilypond
 
 Este grabador divide todas las notas largas en la barra de compás e
@@ -1248,8 +1336,8 @@ inserta ligaduras.  Uno de sus usos es depurar partituras complejas:
 si los compases no están completos, las ligaduras mostrarán
 exactamente cuánto le falta a cada compás.
 
-@seealso
 
+@seealso
 Glosario musical:
 @rglos{tie}
 
@@ -1265,6 +1353,7 @@ Referencia de funcionamiento interno:
 @rinternals{Completion_heads_engraver},
 @rinternals{Forbid_line_break_engraver}.
 
+
 @knownissues
 
 No todas las duraciones (sobre todo las que contienen grupos
@@ -1279,6 +1368,9 @@ silencios.
 @node Showing melody rhythms
 @unnumberedsubsubsec Showing melody rhythms
 
+@cindex melodía, mostrar las duraciones
+@cindex duraciones de la melodía, mostrar
+
 A veces podemos querer mostrar solamente el ritmo de una melodía.
 Esto se puede hacer con un pentagrama de ritmo.  Todas las alturas de
 las notas se convierten en barras inclinadas, y el pentagrama tiene
@@ -1303,6 +1395,16 @@ una sola línea:
 >>
 @end lilypond
 
+@cindex guitarra, tablas de acordes
+@cindex rasgueado, mostrar ritmos
+@cindex guitarra, mostrar ritmos rasgueados
+
+@funindex Pitch_squash_engraver
+@funindex \improvisationOn
+@funindex improvisationOn
+@funindex \improvisationOff
+@funindex improvisationOff
+
 Las tablas de acordes de guitarra ofrecen a menudo los ritmos de
 rasgueado.  Esto se puede hacer con el grabador
 @code{Pitch_squash_engraver} y @code{\improvisationOn}.
@@ -1327,17 +1429,20 @@ rasgueado.  Esto se puede hacer con el grabador
 >>
 @end lilypond
 
+
 @predefined
 @code{\improvisationOn},
 @code{\improvisationOff}.
+@endpredefined
+
 
 @snippets
 
 @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
 {guitar-strum-rhythms.ly}
 
-@seealso
 
+@seealso
 Fragmentos de código:
 @rlsr{Rhythms}.
 
@@ -1345,6 +1450,7 @@ Referencia de funcionamiento interno:
 @rinternals{RhythmicStaff},
 @rinternals{Pitch_squash_engraver}.
 
+
 @node Beams
 @subsection Beams
 
@@ -1363,6 +1469,16 @@ automáticamente:
 
 @cindex barras manuales
 @cindex manuales, barras
+@cindex barras, establecer reglas
+@cindex barras, reglas personalizadas
+
+@funindex measureLength
+@funindex beatLength
+@funindex beatGrouping
+@funindex \autoBeamOn
+@funindex autoBeamOn
+@funindex \autoBeamOff
+@funindex autoBeamOff
 
 @lilypond[quote,verbatim,relative=2]
 \time 2/4 c8 c c c
@@ -1371,18 +1487,18 @@ automáticamente:
 
 Cuando estas decisiones automáticas no son lo bastante buenas, se
 pueden escribir los barrados de forma explícita; véase @ref{Manual
-beams}.  También es posible definir patrones de barrado que difieran
-de los ajustes por defecto.  Las reglas de barrado predeterminadas
-están definidas en el archivo @file{scm/@/auto@/-beam@/.scm}.  Si no
-hay definidas reglas de barrado para el tipo de compás en uso, el
-barrado se controla mediante los valores de tres propiedades de
-contexto, @code{measureLength}, @code{beatLength} y
-@code{beatGrouping}.  Tanto las reglas de barrado como las propiedades
-de contexto se pueden sobreescribir, véase @ref{Setting automatic beam
-behavior}.
-
-@cindex autoBeamOn
-@cindex autoBeamOff
+beams}.  Las barras se pueden también introducir manualmente de la
+misma forma si se quieren extender por encima de los silencios.
+
+También es posible definir patrones de barrado que difieran de los
+ajustes por defecto.  Las reglas de barrado predeterminadas están
+definidas en el archivo @file{scm/@/auto@/-beam@/.scm}.  Si no hay
+definidas reglas de barrado para una duración dada de la barra en el
+tipo de compás en uso, el barrado se controla mediante los valores de
+tres propiedades de contexto, @code{measureLength}, @code{beatLength}
+y @code{beatGrouping}.  Tanto las reglas de barrado como las
+propiedades de contexto se pueden sobreescribir, véase @ref{Setting
+automatic beam behavior}.
 
 @warning{Si se usan barras para indicar los melismas de las canciones,
 entonces se debe desactivar el barrado automático con
@@ -1401,16 +1517,20 @@ c4 c8 c8. c16 c8.
 c16 c8
 @end lilypond
 
+
 @predefined
 @code{\autoBeamOff},
 @code{\autoBeamOn}.
+@endpredefined
+
 
 @snippets
 
-@funindex divisible
-@cindex salto de línea
-@cindex línea, saltos de
 
+@cindex saltos de línea y barrado
+@cindex línea, saltos de, y barrado
+
+@funindex divisible
 
 @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
 {beams-across-line-breaks.ly}
@@ -1418,14 +1538,14 @@ c16 c8
 @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
 {changing-beam-knee-gap.ly}
 
-@seealso
 
+@seealso
 Referencia de la notación:
 @ref{Manual beams},
 @ref{Setting automatic beam behavior}.
 
 Archivos instalados:
-@file{scm/auto-beam.scm}.
+@file{scm/@/auto@/-beam@/.scm}.
 
 Fragmentos de código:
 @rlsr{Rhythms}.
@@ -1445,10 +1565,6 @@ alteraciones accidentales de las otras voces.
 @node Setting automatic beam behavior
 @unnumberedsubsubsec Setting automatic beam behavior
 
-@funindex autoBeaming
-@funindex autoBeamSettings
-@funindex (end * * * *)
-@funindex (begin * * * *)
 
 @cindex barras automáticas, ajuste fino
 @cindex ajuste fino de las barras automáticas
@@ -1456,31 +1572,48 @@ alteraciones accidentales de las otras voces.
 @cindex barras automáticas
 @cindex letra y barrado
 
+@funindex autoBeaming
+@funindex autoBeamSettings
+@funindex (end * * * *)
+@funindex (begin * * * *)
+@funindex measureLength
+@funindex beatLength
+@funindex beatGrouping
+@funindex \time
+@funindex time
+@funindex \set
+@funindex set
+
 La colocación de barras automáticas viene determinada por las reglas
 descritas en @ref{Automatic beams}.  Existen dos formas mutuamente
 excluyentes de modificar estas reglas.  La primera es modificar la
 agrupación de los pulsos y se aplica a compases poco usuales, es
 decir, aquellos para los que no ha reglas predefinidas que definen los
-puntos de final de las barras.  El segundo método, la modificación de
-los puntos finales de las barras, se debe usar para aquellos compases
-para los que existen reglas predefinidas de final de barra.  Hay
-reglas predefinidas para los compases de 3/2, 3/4, 4/4, 2/4, 4/8,
-4/16, 6/8, 9/8 y 12/8.
+puntos de final de las barras.  El segundo método, modificar la
+especificación de los puntos finales de las barras, se puede usar para
+cualquier tipo de compás. Este segundo método @strong{se debe} usar
+para aquellos compases y combinaciones de duración de barras para los
+que existen reglas predefinidas de final de barra, a no ser que se
+hayan revertido. Hay reglas predefinidas para los compases de 3/2,
+3/4, 4/4, 2/4, 4/8, 4/16, 6/8, 9/8 y 12/8.
 
 @i{@strong{Modificar las agrupaciones de pulsos}}
 
-Si no hay definida ninguna regla de final de barra para el tipo de
-compás en uso, el barrado se controla mediante tres propiedades de
-contexto: @code{measureLength}, @code{beatLength} y
-@code{beatGrouping}.  Estas propiedades se deben establecer en los
-contextos @code{Score}, @code{Staff} o @code{Voice} para delimitar el
-ámbito de su efecto.
+Si no hay definida ninguna regla de final de barra para la duración de
+una barra en particular dentro del tipo de compás en uso, su barrado
+se controla mediante tres propiedades de contexto:
+@code{measureLength}, @code{beatLength} y @code{beatGrouping}.  Estas
+propiedades se deben establecer en los contextos @code{Score},
+@code{Staff} o @code{Voice} para delimitar el ámbito de su efecto.
+Los valores predeterminados se establecen al procesarse las
+instrucciones @code{\time}, por ello las instrucciones @code{\set} se
+deben escribir después de todas las instrucciones @code{\time}.
 
 Dichas propiedades determinan el barrado de la siguiente forma:
 
 Las barras pueden dar comienzo en cualquier lugar (excepto si ya hay
 una barra activa).  Las barras terminan en un tiempo determinado por
-los valores de @code{beatGrouping} y @code{beatLength}, com se ve a
+los valores de @code{beatGrouping} y @code{beatLength}, como se ve a
 continuación:
 
 @itemize
@@ -1497,12 +1630,24 @@ puntos finales de las barras.
 
 @end itemize
 
-De forma predeterminada, estas propiedades se derivan del compás
-establecido por la instrucción @code{\time}.  La longitud
-@code{measureLength} es, de forma predeterminada, exactamente la misma
-que la longitud del compás dado por la indicación de compás, y la
-longitud predeterminada del pulso @code{beatLength} viene dada por el
-denominador del compás.
+
+@warning{Estas tres propiedades se hacen efectivas para una barra
+concreta @strong{solamente} si no hay reglas de final de barra
+predefinidas para esa duración de barra en el tipo de compás en uso, o
+si todas esas reglas de final de barra se han revertido.}
+
+De forma predeterminada, las propiedades the @code{measureLength} y
+@code{beatLength} se derivan del compás establecido por la instrucción
+@code{\time}.  La longitud @code{measureLength} está establecida de
+forma que sea exactamente la misma que la longitud del compás dado por
+la indicación de compás, y la longitud del pulso @code{beatLength}
+tiene un valor dado igual a una parte de compás (1/n, siendo n el
+denominador del compás).
+
+El valor predeterminado de @code{beatGrouping} se toma de una tabla
+que está en @file{scm/@/music@/-functions@/.scm}.  Para localizarla,
+véase @rlearning{Other sources of information}.  Define la agrupación
+de pulsos para los compases de 5/8, 6/8, 8/8, 9/8 y 12/8.
 
 Tanto @code{measureLength} como @code{beatLength} son @i{momentos},
 unidades de duración musical.  Las cantidades del tipo @i{moment} se
@@ -1517,60 +1662,11 @@ pulsos en cada grupo.
 @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
 {grouping-beats.ly}
 
-@c TODO Convert to snippet called "Specifying context with beatGrouping"
-
-Especificando el contexto, el efecto de @code{beatGrouping} puede
-limitarse al contexto especificado, y sobreescribirse los valores
-establecidos en contextos de niveles más altos:
-
-@lilypond[quote,verbatim]
-\score {
-  \new Staff <<
-    \time 7/8
-    \new Voice {
-      \relative c'' {
-        \set Staff.beatGrouping = #'(2 3 2)
-        a8 a a a a a a
-      }
-    }
-    \new Voice {
-      \relative c' {
-        \voiceTwo
-        \set Voice.beatGrouping = #'(1 3 3)
-        f8 f f f f f f
-      }
-    }
-  >>
-}
-@end lilypond
-
-
-@c TODO Send as snippet?
-
-La propiedad @code{measureLength} determina dónde se deben insertar
-líneas divisorias y, con @code{beatLength} y @code{beatGrouping}, cómo
-se deben generar las barras autoomáticas para compases para los que no
-hay ninguna regla definida para los finales de barra.
-
-@lilypond[quote,verbatim,relative=2]
-\time 3/4 % auto beam on 1/4 note groups
-a16 a a a a a a a a a a a a a a a
-\time 12/16 % no defined auto-beaming for this time sig
-a16 a a a a a a a a a a a a a a a
-\time 3/4
-a16 a a a a a a a a a a a a a a a
-\set Score.timeSignatureFraction = #'(12 . 16) %keep 3/4 beaming
-                                             % due to beatLength
-a16 a a a a a a a a a a a a a a a
-\set Score.beatLength = #(ly:make-moment 1 8) %beam on 1/8 notes
-a16 a a a a a a a a a a a a a a a
-\set Score.beatLength = #(ly:make-moment 1 16)
-\set Score.beatGrouping = #'(3 4 2 3) %beam on 3/16, 7/16, 9/16, 12/16
-a16 a a a a a a a a a a a a a a a
-@end lilypond
-
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{specifying-context-with-beatgrouping.ly}
 
-@c End of snippet
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{using-beatlength-and-beatgrouping.ly}
 
 @funindex subdivideBeams
 
@@ -1589,23 +1685,21 @@ a16 a a a a a a a a a a a a a a a
 @strong{@i{Modificar los puntos finales de las barras}}
 
 En compases de tipo normal, las barras automáticas pueden comenzar en
-cualquier nota pero solamente pueden terminar en algunas poriciones
+cualquier nota pero solamente pueden terminar en algunas posiciones
 dentro del compás, concretamente en las duraciones que estén
 especificadas por las propiedades de @code{autoBeamSettings}.  Estas
 propiedades consisten en una lista de reglas que especifican dónde
 pueden terminar las barras.  Las reglas predeterminadas de
 @code{autoBeamSettings} están definidas en
-@file{scm/@/auto@/-beam@/.scm}.
+@file{scm/@/auto@/-beam@/.scm}. Para localizarlo, consulte
+@rlearning{Other sources of information}.
 
-@strong{Se debe} usar este método para los compases corrientes, y
-también es particularmente apropiado para otros muchos compases si la
-indicación de compás cambia con frecuencia.  A causa de que las reglas
-se pueden escribir de forma que se apliquen a un tipo de compás
-específico, sólo se tienen que determinar una vez con reglas para cada
-tipo de compás.  Intentar conseguir el mismo resultado modificando el
-agrupamiento de los pulsos requeriría la inserción de instrucciones
-@code{\set} a cada cambio de compás, a no ser que los valores
-predeterminados de ese tipo de compás fuesen apropiados.
+@strong{Se debe} usar este método para los tipos de compás para los
+que existen reglas de final de barra definidas de forma
+predeterminada, a no ser que todas ellas se hayan revertido. También
+es particularmente apropiado para otros muchos compases si la
+indicación de compás cambia con frecuencia, o si el barrado debe ser
+distinto para las distintas duraciones de barra.
 
 Para añadir una regla a la lista, utilice
 
@@ -1622,7 +1716,7 @@ donde:
 
 @itemize
 
-@item @code{límite-barra} es el tipo de límte de barra automática que se
+@item @code{límite-barra} es el tipo de límite de barra automática que se
 define.  Puede ser @code{begin} o @code{end}, pero sólo es efectivo
 @code{end}.
 
@@ -1707,15 +1801,13 @@ pentagrama:
 << {a8 a a a16 a a a a8 a} \\ {f4. f8 f f f} >>
 @end lilypond
 
-@c TODO Add example using Score for multiple staves?
-
 @warning{Si se produce un comportamiento inesperado de las barras,
 compruebe la existencia de una posible interferencia en los ajustes
 predeterminados del barrado automático que están en
 @file{scm/@/auto@/-beam@/.scm}, porque los finales de barra definidos
 aquí aún son válidos además de los suyos.}
 
-Debemos revertir cualquer final predeterminado indeseado o
+Debemos revertir cualquier final predeterminado indeseado o
 conflictivo, para nuestro compás concreto.  Podemos eliminar una regla
 de barrado automático previamente establecida usando
 
@@ -1760,34 +1852,24 @@ a a a a
 @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
 {beam-grouping-in-7-8-time.ly}
 
-@ignore
-
-@c TODO Does this example add anything?
-
-In this
-example, automatic beams can only end on a dotted quarter note
-@example
-#(override-auto-beam-setting '(end * * * *) 3 8)
-#(override-auto-beam-setting '(end * * * *) 1 2)
-#(override-auto-beam-setting '(end * * * *) 7 8)
-@end example
-
-In 4/4 time signature, this means that automatic beams could end only on
-3/8 and on the fourth beat of the measure (after 3/4, that is 2 times
-3/8, has passed within the measure).
-
-@end ignore
-
 @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
 {reverting-default-beam-endings.ly}
 
-@predefined
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{beam-endings-in-score-context.ly}
 
 @funindex \autoBeamOff
-@code{\autoBeamOff},
+@funindex autoBeamOff
 @funindex \autoBeamOn
+@funindex autoBeamOn
+
+@predefined
+@code{\autoBeamOff},
 @code{\autoBeamOn}.
+@endpredefined
 
+@cindex barra, última en la partitura
+@cindex barra, última en una voz polifónica
 
 @knownissues
 
@@ -1797,8 +1879,8 @@ absoluto.  Lo mismo sirve para las voces polifónicas, introducidas con
 @code{<< @dots{} \\ @dots{} >>}.  Si una voz polifónica termina
 mientras una barra automática está aún aceptando notas, no se imprime.
 
-@seealso
 
+@seealso
 Fragmentos de código:
 @rlsr{Rhythms}.
 
@@ -1807,6 +1889,8 @@ Fragmentos de código:
 @unnumberedsubsubsec Manual beams
 
 @cindex barras manuales
+@cindex manuales, barras
+
 @funindex ]
 @funindex [
 
@@ -1824,6 +1908,8 @@ especifican manualmente marcando los puntos de comienzo y final con
 }
 @end lilypond
 
+@funindex \noBeam
+@funindex noBeam
 
 Se pueden marcar notas individuales con @code{\noBeam} para evitar que
 resulten unidas por una barra:
@@ -1835,7 +1921,7 @@ resulten unidas por una barra:
 @funindex stemLeftBeamCount
 @funindex stemRightBeamCount
 
-Se puede conseguir un control incluso más estritcto sobre las barras
+Se puede conseguir un control incluso más estricto sobre las barras
 estableciendo las propiedades @code{stemLeftBeamCount} y
 @code{stemRightBeamCount}.  Especifican el número de barras que se
 dibujarán en los lados izquierdo y derecho, respectivamente, de la
@@ -1856,14 +1942,17 @@ g a]
 
 @snippets
 
-@c TODO Add snippet "Flat flags and beam nibs" when available
-@c Added to LSR 27 Oct 08
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{flat-flags-and-beam-nibs.ly}
 
 @node Feathered beams
 @unnumberedsubsubsec Feathered beams
 
 @cindex barras progresivas
+
 @funindex \featherDurations
+@funindex featherDurations
+@funindex grow-direction
 
 Las barras progresivas se usan para indicar que un pequeño grupo de
 notas se debe tocar a una velocidad creciente (o decreciente), sin
@@ -1879,13 +1968,13 @@ delimitada por llaves y precedida de una instrucción
 @code{featheredDurations} que especifica la razón entre las duraciones
 de la primera y la última notas dentro del grupo.
 
-Los corchetes rectos muestran el ábito de la barra y las llaves
+Los corchetes rectos muestran el ámbito de la barra y las llaves
 muestran qué notas han de modificar sus duraciones.  Normalmente
 delimitarían el mismo grupo de notas, pero no es un requisito: las dos
 instrucciones son independientes.
 
 En el ejemplo siguiente las ocho semicorcheas ocupan exactamente el
-mismo tiempo que una blanca, pero la primera nota tiene la mitar de
+mismo tiempo que una blanca, pero la primera nota tiene la mitad de
 duración que la última, con las notas intermedias alargándose
 gradualmente.  Las cuatro primeras fusas se aceleran gradualmente,
 mientras que las últimas cuatro fusas están a un tempo constante.
@@ -1912,13 +2001,12 @@ La instrucción @code{\featherDurations} sólo funciona con fragmentos
 musicales muy breves, y cuando los números de la fracción son
 pequeños.
 
-@seealso
 
+@seealso
 Fragmentos de código:
 @rlsr{Rhythms}.
 
 
-
 @node Bars
 @subsection Bars
 
@@ -1934,10 +2022,12 @@ Fragmentos de código:
 @unnumberedsubsubsec Bar lines
 
 @cindex barras de compás
-@funindex \bar
 @cindex líneas divisorias
 @cindex repetición, barras de
 
+@funindex \bar
+@funindex bar
+
 Las líneas divisorias delimitan a los compases pero también se pueden
 usar para indicar las repeticiones.  Normalmente, las líneas
 divisorias normales se insertan de manera automática en la salida
@@ -1983,6 +2073,11 @@ posible el salto de línea en este punto, sin forzarlo. No se
 incrementa el contador de los números de compás.  Para forzar un salto
 de línea, consulte @ref{Line breaking}.
 
+@cindex manuales, líneas divisorias
+@cindex manuales, barras de compás
+@cindex barras de compás manuales
+@cindex líneas divisorias manuales
+
 Este y otras líneas divisorias especiales se pueden insertar
 manualmente en cualquier punto.  Cuando coinciden con el final de un
 compás, sustituyen a la línea divisoria simple que se habría insertado
@@ -2057,6 +2152,9 @@ líneas resultantes se conectan entre los distintos pentagramas de un
 
 @funindex whichBar
 @funindex defaultBarType
+@funindex \bar
+@funindex bar
+@funindex bartype
 
 La instrucción @code{\bar }@var{tipo_de_barra} es una forma corta de
 hacer @code{\set Timing.whichBar = }@var{tipo_de_barra}.  Cuando
@@ -2068,8 +2166,8 @@ insertadas automáticamente es @code{"|"}.  Se puede cambiar en
 cualquier momento con @code{\set Timing.defaultBarType =
 }@var{bartype}.
 
-@seealso
 
+@seealso
 Referencia de la notación:
 @ref{Line breaking},
 @ref{Repeats},
@@ -2091,6 +2189,7 @@ Referencia de funcionamiento interno:
 
 @cindex compás, números de
 @cindex números de compás
+
 @funindex currentBarNumber
 
 Por defecto, los números de compás se imprimen al principio de la
@@ -2108,8 +2207,13 @@ c1 c c c
 
 @snippets
 
+@cindex números de compás, espaciado regular
+
 @funindex barNumberVisibility
-@cindex bar numbers, regular spacing
+
+@c Uncomment this after next LSR update.
+@c @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+@c {printing-the-bar-number-for-the-first-measure.ly}
 
 Los números de compás se pueden tipografiar a intervalos regulares en
 vez de al principio de cada línea.  Para hacerlo se debe sobreescribir
@@ -2221,14 +2325,17 @@ de partitura @code{Score}.
 }
 @end lilypond
 
-@seealso
 
+@seealso
 Fragmentos de código:
 @rlsr{Rhythms}.
 
 Referencia de funcionamiento interno:
 @rinternals{BarNumber}.
 
+@cindex número de compás, colisión
+@cindex colisión del número de compás
+
 @knownissues
 
 Los números de compás pueden colisionar con el corchete
@@ -2236,6 +2343,8 @@ Los números de compás pueden colisionar con el corchete
 solucionarlo, se puede usar la propiedad de relleno @code{padding} de
 @rinternals{BarNumber} para colocar el número correctamente.
 
+@c esto va a input/lsr/printing-the-bar-number-for-the-first-measure.ly
+@ignore
 Los números de compás solamente se pueden imprimir en las líneas
 divisorias; para imprimir un número de compás al principio de la
 pieza, se debe insertar allí una barra de compás vacía, y se debe
@@ -2248,12 +2357,14 @@ c1 c c c
 c1 c c c
 \break
 @end lilypond
-
+@end ignore
 
 @node Bar and bar number checks
 @unnumberedsubsubsec Bar and bar number checks
 
 @cindex compás, comprobación de
+@cindex número de compás, comprobación de
+
 @funindex barCheckSynchronize
 @funindex |
 
@@ -2312,6 +2423,9 @@ pipeSymbol = \bar "||"
 }
 @end lilypond
 
+@funindex \barNumberCheck
+@funindex barNumberCheck
+
 Al copiar piezas musicales grandes puede servir de ayuda comprobar que
 el número de compás de LilyPond corresponde al original desde el que
 está copiando.  Esto se puede comprobar con @code{\barNumberCheck},
@@ -2325,8 +2439,8 @@ por ejemplo:
 imprimirá una advertencia si el @code{currentBarNumber} (número del
 compás actual) no es 123 cuando se procesa.
 
-@seealso
 
+@seealso
 Fragmentos de código:
 @rlsr{Rhythms}.
 
@@ -2336,7 +2450,9 @@ Fragmentos de código:
 
 @cindex ensayo, letras de
 @cindex letras de ensayo
+
 @funindex \mark
+@funindex mark
 
 Para imprimir una letra de ensayo, utilice la orden @code{\mark}
 
@@ -2369,6 +2485,9 @@ se almacena dentro de la propiedad @code{rehearsalMark}.
 @cindex letra de ensayo, formato
 @cindex marca de ensayo, estilo
 @cindex marca de ensayo, formato
+@cindex ensayo, letra de, manual
+@cindex marca de ensayo manual
+@cindex personalizada, marca de ensayo
 
 El estilo se define por medio de la propiedad @code{markFormatter}.
 Es una función que toma como argumentos la marca en curso (un número
@@ -2420,6 +2539,12 @@ de esta forma.  Sin embargo, es posible aplicar un elemento
 @cindex segno
 @cindex coda
 @cindex D.S al Fine
+@cindex calderón
+@cindex musicales, glifos
+@cindex glifos musicales
+
+@funindex \musicglyph
+@funindex musicglyph
 
 Los glifos musicales (como el segno) se pueden imprimir dentro de un
 elemento @code{\mark}
@@ -2438,8 +2563,8 @@ pueden imprimir con @code{\musicglyph}.
 Para ver formas comunes de trucar la colocación de las letras de
 ensayo, consulte @ref{Text marks}.
 
-@seealso
 
+@seealso
 Referencia de la notación:
 @ref{The Feta font},
 @ref{Formatting text}.
@@ -2468,12 +2593,14 @@ Referencia de funcionamiento interno:
 @node Grace notes
 @unnumberedsubsubsec Grace notes
 
-@funindex \grace
 @cindex ornamentos
 @cindex mordentes
 @cindex appoggiatura
 @cindex acciaccatura
 
+@funindex \grace
+@funindex grace
+
 Los mordentes y notas de adorno son ornamentos escritos. Se imprimen
 en un tipo más pequeño y no ocupan ningún tiempo lógico en el
 compás.
@@ -2510,6 +2637,9 @@ por cada corchea de adorno:
 
 @cindex adorno, seguimiento de notas de
 
+@funindex \afterGrace
+@funindex afterGrace
+
 Si queremos terminar una nota con un adorno, usamos la instrucción
 @code{\afterGrace}.  Toma dos argumentos: la nota principal, y las
 notas de adorno que siguen a la nota principal.
@@ -2572,7 +2702,7 @@ adorno se sobreescribe y luego se revierte.
 @end lilypond
 
 
-@cindex stem, with slash
+@cindex plica cruzada
 
 
 @snippets
@@ -2635,7 +2765,6 @@ normales de los otros pentagramas:
 
 
 @seealso
-
 Glosario musical:
 @rglos{grace notes},
 @rglos{acciaccatura},
@@ -2650,6 +2779,7 @@ Fragmentos de código:
 Referencia de funcionamiento interno:
 @rinternals{GraceMusic}.
 
+
 @knownissues
 
 Una @i{acciaccatura} de varias notas con una barra se imprime sin
@@ -2721,8 +2851,8 @@ MyCadenza = \relative c' {
 >>
 @end lilypond
 
-@seealso
 
+@seealso
 Glosario musical:
 @rglos{cadenza}.
 
@@ -2801,8 +2931,8 @@ duración de la fracción n/m de una redonda.  Por ejemplo,
 @code{ly:make-moment 1 8} es una duración de una corchea y
 @code{ly:make-moment 7 16} es la duración de siete semicorcheas.
 
-@seealso
 
+@seealso
 Referencia de la notación:
 @ref{Bar numbers},
 @ref{Unmetered music}.
index 21f6639a3b7ec2f88cdaeb436f702ad9b8b5d283..79fb7246833373f65439e81025b3d0a4fa352c7f 100644 (file)
@@ -1,13 +1,13 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 @c This file is part of lilypond-program.tely
 @ignore
-    Translation of GIT committish: 85b54e04be6730bd0781f3135ee741010e099fd8
+    Translation of GIT committish: 41ef91786a08102d9b9a839f6a2f40cec263d723
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 
 @node Running LilyPond
@@ -49,7 +49,7 @@ familiarizados con los términos @q{terminal} o @q{consola}.  Éstos
 deberían consultar también el apartado @ref{Setup for MacOS X}.
 
 La descripción del uso de esta parte de los sistemas operativos se
-sale del ámbito de este manuual; le rogamos que consulte otros
+sale del ámbito de este manual; le rogamos que consulte otros
 documentos sobre este tema si no le resulta familiar la línea de
 órdenes.
 
@@ -132,9 +132,8 @@ en la línea de órdenes, e incluir
 al principio del archivo @code{.ly}.
 
 @item -f,--format=@var{formato}
-Qué formatos se tienen que escribir.  Como @code{formato} se puede
-elegir entre @code{svg}, @code{ps}, @code{pdf}, @code{png}, @code{tex}
-y @code{dvi}.
+Formato de la salida.  Como @code{formato} se puede elegir entre
+@code{svg}, @code{ps}, @code{pdf} y @code{png}.
 
 Ejemplo: @code{lilypond -fpng @var{archivo}.ly}
 
@@ -207,7 +206,7 @@ LilyPond dentro de Scheme.
 
 @code{-dsafe} @emph{no} detecta la sobreutilización de recursos.  Aún
 es posible hacer que el programa se cuelgue indefinidamente, por
-ejemplo alimentándo el backend con estructuras de datos cíclicas.  Por
+ejemplo alimentando el backend con estructuras de datos cíclicas.  Por
 tanto, si se está utilizando LilyPond sobre un servidor web accesible
 públicamente, el proceso debe limitarse tanto en el uso de CPU como de
 memoria.
@@ -216,24 +215,14 @@ El modo seguro impide que muchos fragmentos útiles de código de
 LilyPond se puedan compilar.  La opción @code{--jail} es una
 alternativa más segura, pero su preparación requiere más trabajo.
 
+@cindex salida, establecer el formato de
 @item backend
 el formato de salida que usar para el back-end o extremo final.
 Para el @code{formato} se puede elegir entre
 @table @code
-@item tex
-para una salida en @TeX{} con destino a su proceso por parte de
-La@TeX{}.  Si el archivo @file{file.textmetrics} está presente, se lee
-para determinar las dimensiones del texto.
-@item texstr
-volcar cadenas de texto en un archivo @file{.texstr}, que se puede
-procesar con (La)@TeX{}, dando como resultado un archivo
-@code{.textmetrics} que contiene las dimensiones de las cadenas de
-texto.  @strong{Arvertencia:} esta funcionalidad no está disponible
-actualmente debido a la profunda reestructuración del código fuente.
 @item ps
-para PostScript.
-
 @cindex PostScript, salida
+para PostScript.
 
 Los archivos PostScript incluyen las tipografías TTF, Type1 y OTF.  No
 se seleccionan subconjuntos de estas tipografías.  Cuando se usan
@@ -250,10 +239,10 @@ Este modo se usa de forma predeterminada por parte de
 @command{lilypond-book}.
 
 @item svg
+@cindex SVG (Scalable Vector Graphics)
  para obtener SVG (gráficos vectoriales escalables).  Vuelca cada
 página como un archivo @file{SVG} distinto, con las tipografías
 incrustadas.
-@cindex SVG (gráficos vectoriales escalables)
   Se necesita un visor de SVG que contemple las tipografías
 incrustadas, o un visor de SVG que pueda sustituir las tipografías
 incrustadas por tipografías OTF.  Bajo UNIX, puede usar
@@ -262,15 +251,15 @@ después de copiar las tipografías OTF del directorio de LilyPond (que
 normalmente es @file{/usr/share/lilypond/VERSIÓN/fonts/otf/}) al
 directorio @file{~/.fonts/}.
 @item scm
+@cindex Scheme, volcado de
  para obtener un volcado de las instrucciones internas de dibujo
 basadas en Scheme, en bruto.
-@cindex Scheme, volcado de
+@item null
+ no producir una salida impresa; tiene el mismo efecto que @code{-dno-print-pages}.
 @end table
 
 Ejemplo: @code{lilypond -dbackend=svg @var{archivo}.ly}
 
-@cindex salida, establecer el formato de
-
 @item preview
 Generar un archivo de salida que contenga solamente los títulos de
 cabecera y el primer sistema de la primera página.
@@ -301,16 +290,12 @@ Establecer el archivo de inicio a @var{archivo} (predeterminado:
 
 @item -o,--output=@var{ARCHIVO}
 Establecer el nombre del archivo de salida predeterminado a
-@var{ARCHIVO}.  Se añade el sufijo correspondiente (es decir,
-@code{.pdf} para PDF, @code{.tex} para TeX, etc.).
+@var{ARCHIVO}.  Se añade el sufijo correspondiente (por ejemplo,
+@code{.pdf} para PDF).
 
 @item --ps
 Generar PostScript.
 
-@item --dvi
-Generar archivos DVI files.  En este caso se debe especificar el
-backend @TeX{}, es decir: @code{-dbackend=tex}.
-
 @item --png
 Generar imágenes de las páginas en formato PNG.  Esto implica
 @code{--ps}.  La resolución en PPP de la imagen se puede establecer
@@ -322,8 +307,6 @@ con
 @item --pdf
 Generar PDF.  Implica @code{--ps}.
 
-
-
 @item -j,--jail=@var{usuario},@var{grupo},@var{jaula},@var{directorio}
 Ejecutar @command{lilypond} en una jaula de chroot.
 
@@ -462,7 +445,7 @@ esto.  La causa más frecuente son las tipografías mal instaladas.
 @cindex llamadas, traza de
 @cindex Scheme, error de
 @cindex error de Scheme
-Los errores que ocurren al ejecutar código de Schheme se interceptan
+Los errores que ocurren al ejecutar código de Scheme se interceptan
 por parte del intérprete de Scheme.  Si se está ejecutando con las
 opciones @code{-V} o @code{--verbose} (prolijo) entonces se imprime
 una traza de llamadas de la función ofensiva.
@@ -546,8 +529,8 @@ miarchivo.ly.NEW, entonces miarchivo.ly ya está actualizado.
 @node Command line options for convert-ly
 @subsection Command line options for @command{convert-ly}
 
-@command{convert-ly} convierte siempre al últimmo cambio de sintaxis
-que puede manejar.  Eesto supone que el número de @code{\version} que
+@command{convert-ly} convierte siempre al último cambio de sintaxis
+que puede manejar.  Esto supone que el número de @code{\version} que
 aparece en el archivo convertido suele ser más bajo que la versión del
 propio programa @command{convert-ly}.
 
@@ -683,7 +666,7 @@ actuales en nuestro rastreador de fallos de Google Code:
 
 @uref{http://code.google.com/p/lilypond/issues/list}
 
-Si descubre un error que no está en la lista, le rogramos que envíe un
+Si descubre un error que no está en la lista, le rogamos que envíe un
 informe del fallo siguiendo las instrucciones que aparecen en
 
 @uref{http://lilypond.org/web/devel/participating/bugs}
index d91b856a154f3024c65a22d74d6257a4c0de927e..90f0fa4f53643b7492119f9931d660e973dd8e49 100644 (file)
@@ -1,13 +1,13 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 @c This file is part of lilypond-learning.tely
 @ignore
-    Translation of GIT committish: 85b54e04be6730bd0781f3135ee741010e099fd8
+    Translation of GIT committish: 41ef91786a08102d9b9a839f6a2f40cec263d723
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 
 @node Scheme tutorial
index 74d7f53a8d894a5b88665af11c8506319747a080..209947e66de874fd534f7d6af93c5c799a86ecac 100644 (file)
@@ -1,13 +1,13 @@
-@c -*- coding: utf-8; mode: texinfo; -*-
+@c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 @c This file is part of lilypond-program.tely
 @ignore
-    Translation of GIT committish: 85b54e04be6730bd0781f3135ee741010e099fd8
+    Translation of GIT committish: 41ef91786a08102d9b9a839f6a2f40cec263d723
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @node Setup
 @chapter Setup
index 277a75a7b7f23611f2d87b2315a43c4a21dad8d8..cb912e164a20de274d5e9812a8ef0ff80f786c96 100644 (file)
@@ -1,12 +1,12 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 @ignore
-    Translation of GIT committish: 541aafa12474496930f99f617890a944c3db4989
+    Translation of GIT committish: 7385b95b8a91525e82559355dddea4f1ff965f5c
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @c Translation status: post-GDP
 
@@ -64,8 +64,8 @@ nota del acorde anterior.
 Para ver más información sobre los acordes, consulte @ref{Chord
 notation}.
 
-@seealso
 
+@seealso
 Glosario musical:
 @rglos{chord}.
 
@@ -78,6 +78,7 @@ Referencia de la notación:
 Fragmentos de código:
 @rlsr{Simultaneous notes}.
 
+
 @node Simultaneous expressions
 @unnumberedsubsubsec Simultaneous expressions
 
@@ -102,7 +103,7 @@ pentagrama:
 a << {a4 b g}  {d4 g c,} >>
 @end lilypond
 
-Esto puede ser de utilidad si las secciones siimultáneas tienen
+Esto puede ser de utilidad si las secciones simultáneas tienen
 idénticas duraciones, pero se producirán errores si se intentan poner
 notas de distinta duración sobre la misma plica.
 
@@ -139,8 +140,8 @@ Se pueden mezclar en el mismo pentagrama notas normales y clusters,
 incluso al mismo tiempo.  En tal caso, no se hace ningún intento de
 evitar automáticamente las colisiones entre clusters y notas normales.
 
-@seealso
 
+@seealso
 Glosario musical:
 @rglos{cluster}.
 
@@ -152,6 +153,7 @@ Referencia de funcionamiento interno:
 @rinternals{ClusterSpannerBeacon},
 @rinternals{Cluster_spanner_engraver}.
 
+
 @knownissues
 
 Los clusters sólo tienen un buen aspecto cuando abarcan un mínimo de
@@ -329,28 +331,30 @@ simultánea, dentro de una voz creada explícitamente:
 Este método conduce a barrados extraños y advertencias si los
 fragmentos de música no tienen las mismas duraciones exactas.
 
-@predefined
 
+@predefined
 @code{\voiceOne},
 @code{\voiceTwo},
 @code{\voiceThree},
 @code{\voiceFour},
 @code{\oneVoice}.
+@endpredefined
 
 
 @seealso
-
 Manual de aprendizaje:
 @rlearning{Voices contain music},
 @rlearning{Explicitly instantiating voices}.
 
 Referencia de la notación:
 @ref{Percussion staves},
-@ref{Invisible rests}.
+@ref{Invisible rests},
+@ref{Stems}.
 
 Fragmentos de código:
 @rlsr{Simultaneous notes}.
 
+
 @node Voice styles
 @unnumberedsubsubsec Voice styles
 
@@ -381,18 +385,17 @@ identificarlas fácilmente:
 Para recuperar la presentación normal se utiliza la instrucción
 @code{\voiceNeutralstyle}.
 
-@predefined
 
+@predefined
 @code{\voiceOneStyle},
-
 @code{\voiceTwoStyle},
 @code{\voiceThreeStyle},
 @code{\voiceFourStyle},
 @code{\voiceNeutralStyle}.
-
-@seealso
+@endpredefined
 
 
+@seealso
 Manual de aprendizaje:
 @rlearning{I'm hearing Voices},
 @rlearning{Other sources of information}.
@@ -401,7 +404,6 @@ Fragmentos de código:
 @rlsr{Simultaneous notes}.
 
 
-
 @node Collision resolution
 @unnumberedsubsubsec Collision resolution
 
@@ -434,7 +436,7 @@ Fragmentos de código:
 
 
 Las cabezas de notas que están en diferentes voces y tienen la misma
-altura, la misma forma de cabezaa, y dirección opuesta de la plica, se
+altura, la misma forma de cabeza, y dirección opuesta de la plica, se
 combinan automáticamente, pero las que tienen cabezas distintas o la
 misma dirección de la plica no se combinan.  Los silencios que se
 encuentran en el lado opuesto de una plica en otra voz se desplazan
@@ -538,8 +540,8 @@ desactivado), mientras que las voces interiores (tres y cuatro) tienen
 Sólo se combinan las notas si tienen la plica en direcciones opuestas
 (por ejemplo, en las @code{Voice}s 1 y 2).
 
-@predefined
 
+@predefined
 @code{\mergeDifferentlyDottedOn},
 @code{\mergeDifferentlyDottedOff},
 @code{\mergeDifferentlyHeadedOn},
@@ -549,6 +551,8 @@ Sólo se combinan las notas si tienen la plica en direcciones opuestas
 @code{\shiftOnn},
 @code{\shiftOnnn},
 @code{\shiftOff}.
+@endpredefined
+
 
 @snippets
 
@@ -558,8 +562,8 @@ Sólo se combinan las notas si tienen la plica en direcciones opuestas
 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
 {forcing-horizontal-shift-of-notes.ly}
 
-@seealso
 
+@seealso
 Glosario musical:
 @rglos{polyphony}.
 
@@ -576,6 +580,7 @@ Referencia de funcionamiento interno:
 @rinternals{NoteCollision},
 @rinternals{RestCollision}.
 
+
 @knownissues
 
 Cuando se emplea @code{\mergeDifferentlyHeadedOn} con una corchea (o
@@ -686,8 +691,8 @@ Una sección @code{\relative} que se encuentra fuera de
 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
 {changing-partcombine-texts.ly}
 
-@seealso
 
+@seealso
 Glosario musical:
 @rglos{a due},
 @rglos{part}.
@@ -702,6 +707,7 @@ Referencia de funcionamiento interno:
 @rinternals{PartCombineMusic},
 @rinternals{Voice}.
 
+
 @knownissues
 
 @code{\partcombine} sólo admite dos voces.
@@ -841,8 +847,8 @@ global = {
 }
 @end lilypond
 
-@seealso
 
+@seealso
 Manual de aprendizaje:
 @rlearning{Organizing pieces with variables}
 
index 3cb339cfb1493eb7597d1cb4ff002f7c553dfdf0..858cd970940968fa42b7eddb63de98ec20a94bb5 100644 (file)
@@ -1,12 +1,13 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 @c This file is part of lilypond.tely
 @ignore
-    Translation of GIT committish: 7c57f1469e057f25f5d7a7b75c18f33bb4e5bed9
+    Translation of GIT committish: 19841b86e54ac60d93af1150c31b7c246741ce1c
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
+@c \version "2.12.0"
 
 @node Spacing issues
 @chapter Spacing issues
@@ -22,7 +23,7 @@ Considerado globalmente, este proceso se produce en cuatro fases: en
 primer lugar se eligen unas distancias elásticas o @q{muelles},
 basados en la duración de las figuras.  Se prueban todas las
 combinaciones de saltos de línea posibles, y para cada una de ellas se
-calcula una puntuación de @q{maldad}.  Después se hace una estimacion
+calcula una puntuación de @q{maldad}.  Después se hace una estimación
 de la altura de cada uno de los posibles sistemas.  Finalmente se
 selecciona una combinación de saltos de página y de línea de tal forma
 que ni el espaciado horizontal ni el vertical estén demasiado
@@ -112,13 +113,13 @@ aunque se sobreescribirán en la siguiente reinstalación del programa.
 
 Si se añade el símbolo @code{'landscape} (apaisado) como argumento a
 @code{set-default-paper-size}, las páginas se giran 90 grados y se
-establecen en consonancia un longitud mayor de las líneas.
+establece en consonancia una mayor longitud de las líneas.
 
 @example
 #(set-default-paper-size "a6" 'landscape)
 @end example
 
-al establecer el tamaño del papel se ajustan un cierto número de
+Al establecer el tamaño del papel se ajustan un cierto número de
 variables del @code{\paper}, tales como los márgenes.  Para utilizar
 un tamaño de página determinado con variables de @code{\paper}
 alteradas, establezca el tamaño de página antes de dar valores a las
@@ -126,7 +127,6 @@ variables.
 
 
 @seealso
-
 Archivos instalados:
 @file{scm/@/paper@/.scm}.
 
@@ -219,7 +219,7 @@ la página.  Predeterminado: @code{4\mm}.
 @item page-top-space
 @funindex page-top-space
 
-Distancia desde la parte alte del área imprimible hasta el centro del
+Distancia desde la parte alta del área imprimible hasta el centro del
 primer pentagrama.  Esto sólo funciona para pentagramas con una
 anchura vertical pequeña.  Los pentagramas grandes se establecen con
 la parte alta de su caja circundante alineada a la parte alta del área
@@ -235,7 +235,7 @@ papel.  Para ver más detalles, consulte @ref{Paper size}.
 @funindex top-margin
 
 Margen entre el encabezamiento y la parte alta del papel.
-Predeteminado: @code{5\mm}.
+Predeterminado: @code{5\mm}.
 
 @end table
 
@@ -297,7 +297,6 @@ papel.
 
 
 @seealso
-
 Referencia de la notación:
 @ref{Vertical spacing between systems}.
 
@@ -363,7 +362,6 @@ primero.  Predeterminado: @code{0}, como se determina en
 
 
 @seealso
-
 Fragmentos de código:
 @rlsr{Spacing}.
 
@@ -386,7 +384,7 @@ general.
 @item auto-first-page-number
 @funindex auto-first-page-number
 
-EL algoritmo de división de páginas está afectado por el hecho de que
+El algoritmo de división de páginas está afectado por el hecho de que
 el número de la primera página sea par o impar.  Si está establecido
 al valor verdadero, el algoritmo de división de páginas decide si
 comenzar con un número par o impar.  Esto hace que el número de la
@@ -496,7 +494,7 @@ orquestales.
 @funindex ragged-last
 
 Si está establecido a un valor verdadero, el último sistema de la
-partitura no llenará la anchura de la línea.  En su lugar, el últim
+partitura no llenará la anchura de la línea.  En su lugar, el último
 sistema termina en su longitud horizontal natural.  Predeterminado:
 @code{##f}.
 
@@ -509,6 +507,9 @@ verticalmente por toda la última página.  Predeterminado: @code{##t}.
 Las piezas que llenan generosamente dos o más páginas deberían tener
 esto establecido al valor verdadero.
 
+También afecta a la última página de las partes de libro, es decir,
+partes de un libro que se han creado con bloques @code{\bookpart}.
+
 @item ragged-right
 @funindex ragged-right
 
@@ -519,8 +520,8 @@ longitud horizontal natural.  Predeterminado: @code{##f}.
 Si la partitura sólo tiene un sistema, el valor predeterminado es
 @code{##t}.
 
-@item systemSeparatorMarkup
-@funindex systemSeparatorMarkup
+@item system-separator-markup
+@funindex system-separator-markup
 
 Objeto de marcado que se inserta entre los sistemas.  Se suele usar
 para partituras orquestales.  Predeterminado: sin establecer.
@@ -535,7 +536,7 @@ valor predeterminado apropiado, por ejemplo
     \relative { c1 \break c1 }
   }
   \paper {
-    systemSeparatorMarkup = \slashSeparator
+    system-separator-markup = \slashSeparator
   }
 }
 @end lilypond
@@ -550,7 +551,6 @@ Predeterminado: sin establecer.
 
 
 @seealso
-
 Fragmentos de código:
 @rlsr{Spacing}.
 
@@ -596,8 +596,7 @@ exactos), utilice @code{set-global-staff-size}.
 
 @noindent
 Esto establece el tamaño global predeterminado a una altura de
-pentagrama de 14pt y escala todas las tipografías de manera
-correspondiente.
+pentagrama de 14pt y escala todas las tipografías según corresponda.
 
 Para establecer el tamaño del pentagrama de forma individual para cada
 partitura, use
@@ -675,13 +674,8 @@ de contexto @code{fontSize} y la propiedad de disposición
 afinar el tamaño de los pentagramas individuales.  Los tamaños de
 pentagrama individuales están en relación al tamaño global.
 
-@example
-
-@end example
-
 
 @seealso
-
 Referencia de la notación:
 @ref{Selecting notation font size}.
 
@@ -700,7 +694,7 @@ del pentagrama.
 
 @funindex \layout
 
-Mientras que @code{\paper} conteine ajustes relativos al formato de
+Mientras que @code{\paper} contiene ajustes relativos al formato de
 página del documento completo, @code{\layout} contiene ajustes para la
 disposición específica de cada partitura.
 
@@ -719,7 +713,6 @@ disposición específica de cada partitura.
 
 
 @seealso
-
 Referencia de la notación:
 @ref{Changing context default settings}.
 
@@ -751,7 +744,7 @@ Normalmente los saltos de línea se determinan automáticamente. Se
 eligen de forma que las líneas no aparezcan demasiado apretadas ni
 demasiado sueltas, y que las líneas consecutivas tengan una densidad
 similar.  Ocasionalmente podemos querer sobreescribir los saltos
-automáticos; podemos hacerlo especficando @code{\break}. Esto fuerza
+automáticos; podemos hacerlo especificando @code{\break}. Esto fuerza
 un salto de línea en ese punto.  Sin embargo, los saltos de línea sólo
 pueden suceder al final de los compases @q{completos}, es decir, donde
 no queda ninguna nota o grupo especial @q{colgando} por encima de la
@@ -815,15 +808,14 @@ novedosa y difícil.  Hay más detalles disponibles en @rlsr{Spacing}.
 
 
 @predefined
-
 @funindex \break
 @code{\break},
 @funindex \noBreak
 @code{\noBreak}.
+@endpredefined
 
 
 @seealso
-
 Referencia de funcionamiento interno:
 @rinternals{LineBreakEvent}.
 
@@ -846,8 +838,7 @@ c4 c2 c4
 
 Esto se puede evitar eliminando el grabador
 @code{Forbid_line_break_engraver}.  Observe que los saltos de línea
-forzados manualmente breaks se tienen que añadir en paralelo con la
-música.
+forzados manualmente se tienen que añadir en paralelo con la música.
 
 @lilypond[quote,ragged-right,verbatim]
 \new Voice \with {
@@ -908,16 +899,51 @@ divisores de página, puede habilitar el antiguo como forma de rodear
 el problema.
 
 
-@predefined
+@funindex \bookpart
 
+Cuando un libro tiene muchas partituras y páginas, puede ser difícil
+resolver el problema de los saltos de página, necesitando mucha
+memoria y prolongados tiempos de procesamiento.  Para facilitar el
+proceso de división en páginas, se usan los bloques @code{\bookpart}
+para dividir el libro en varias partes: los saltos de página se
+producen de manera independiente en cada parte.  También se pueden
+usar diferentes funciones de división en páginas para las distintas
+partes del libro.
+
+@example
+\bookpart @{
+  \header @{
+    subtitle = "Prefacio"
+  @}
+  \paper @{
+     %% En una parte que consiste en texto principalmente,
+     %% puede ser preferible ly:minimal-breaking
+     #(define page-breaking ly:minimal-breaking)
+  @}
+  \markup @{ @dots{} @}
+  @dots{}
+@}
+\bookpart @{
+  %% En esta parte, consistente en música, se usa la función
+  %% óptima predeterminada de saltos de página.
+  \header @{
+    subtitle = "Primer movimiento"
+  @}
+  \score @{ @dots{} @}
+  @dots{}
+@}
+@end example
+
+
+@predefined
 @funindex \pageBreak
 @code{\pageBreak},
 @funindex \noPageBreak
 @code{\noPageBreak}.
+@endpredefined
 
 
 @seealso
-
 Fragmentos de código:
 @rlsr{Spacing}.
 
@@ -936,7 +962,6 @@ página.
 
 
 @seealso
-
 Fragmentos de código:
 @rlsr{Spacing}.
 
@@ -966,7 +991,7 @@ lugares adecuados.
 
 Si esto es demasiado tedioso, podemos añadir un grabador
 @code{Page_turn_engraver} a un contexto Staff o Voice.  El grabador
-@code{Page_turn_engraver} analizará el contexto en biusca de secciones
+@code{Page_turn_engraver} analizará el contexto en busca de secciones
 sin notas (observe que no busca silencios, sino la ausencia de notas.
 Se hace así para que la polifonía en un solo pentagrama con silencios
 en una de las voces no arruine la labor del grabador
@@ -980,7 +1005,7 @@ doble barra), en cuyo caso se insertará el @code{\allowPageTurn} en la
 @funindex minimumPageTurnLength
 El grabador @code{Page_turn_engraver} lee la propiedad de contexto
 @code{minimumPageTurnLength} para determinar qué longitud debe tener
-una sección sin notas antese que se considere la posibilidad de un
+una sección sin notas antes de que se considere la posibilidad de un
 paso de página.  El valor predeterminado para
 @code{minimumPageTurnLength} es @code{#(ly:make-moment 1 1)}.  Si
 quiere inhabilitar las vueltas de página, puede establecerlo a algún
@@ -1018,17 +1043,16 @@ de marcado del nivel superior.
 
 
 @predefined
-
 @funindex \pageTurn
 @code{\pageTurn},
 @funindex \noPageTurn
 @code{\noPageTurn},
 @funindex \allowPageTurn
 @code{\allowPageTurn}.
+@endpredefined
 
 
 @seealso
-
 Fragmentos de código:
 @rlsr{Spacing}.
 
@@ -1059,7 +1083,6 @@ de memoria, o con una gran cantidad de textos.  Se habilita utilizando:
 
 
 @seealso
-
 Fragmentos de código:
 @rlsr{Spacing}.
 
@@ -1110,7 +1133,6 @@ las instrucciones @code{\pageBreak} explícitas y en ningún otro lugar.
 
 
 @seealso
-
 Fragmentos de código:
 @rlsr{Spacing}.
 
@@ -1119,7 +1141,7 @@ Fragmentos de código:
 @subsection Using an extra voice for breaks
 
 La información sobre saltos de línea y de página suele aparecer
-directamente intermezclado dentro del código de notas.
+directamente entremezclado dentro del código de notas.
 
 @example
 \new Score @{
@@ -1198,7 +1220,6 @@ propiedades de @code{NonMusicalPaperColumnGrob}, como se explica en
 
 
 @seealso
-
 Referencia de la notación:
 @ref{Vertical spacing}.
 
@@ -1234,7 +1255,7 @@ pentagramas dentro de un sistema.
 @cindex espacio entre pentagramas
 @cindex espacio dentro de los sistemas
 
-La altura de cad sistema se determina automáticamente.  Para evitar
+La altura de cada sistema se determina automáticamente.  Para evitar
 que los pentagramas se superpongan unos encima de otros, se establecen
 algunas distancias mínimas.  Al modificarlas, podemos poner los
 pentagramas más cerca unos de otros.  Esto reduce el espacio que
@@ -1263,7 +1284,7 @@ que coincidir; por ejemplo, el pentagrama se puede hacer mayor por
 debajo dándole el valor @code{(-6 . 4)}.
 
 Después de que se han determinado los saltos de página, se reevalúa el
-espaciado vertical dentroe cada sistema para llenar la página de
+espaciado vertical dentro de cada sistema para llenar la página de
 forma más regular; si una página tiene más espacio de sobra, se
 amplían los sistemas para poder llenar este espacio.  La magnitud de
 esta ampliación se puede configurar a través de la propiedad
@@ -1334,7 +1355,6 @@ las dimensiones verticales están descritas en conexión con el grabador
 
 
 @seealso
-
 Fragmentos de código:
 @rlsr{Spacing}.
 
@@ -1370,7 +1390,7 @@ mediante el establecimiento al valor @code{#t} de la variable
 @code{page-limit-inter-system-space} en el bloque @code{\paper}.  La
 variable del papel @code{page-limit-inter-system-space-factor}
 determina en qué cantidad se puede incrementar el espacio: por
-ejemplo, el valor @code{1.3} sisgnifica que el espacio puede ser un
+ejemplo, el valor @code{1.3} significa que el espacio puede ser un
 30% mayor que lo que sería en una página no justificada hasta abajo.
 
 En el ejemplo siguiente, si el espacio entre los sistemas no estuviese
@@ -1402,7 +1422,6 @@ sería el mismo que en una página sin justificar por abajo, como la
 
 
 @seealso
-
 Fragmentos de código:
 @rlsr{Spacing}.
 
@@ -1449,7 +1468,7 @@ instrucción @code{\override} usual en los bloques @code{\context} y en
 el bloque @code{\with}.  Por otra parte, cuando sobreescribimos
 @code{NonMusicalPaperColumn} en medio de las notas, debemos usar la
 instrucción especial @code{\overrideProperty}.  He aquí algunas
-sebreescrituras de @code{NonMusicalPaperColumn} de ejemplo con la
+sobreescrituras de @code{NonMusicalPaperColumn} de ejemplo con la
 instrucción especial @code{\overrideProperty}:
 
 @example
@@ -1474,20 +1493,29 @@ Para entender cómo funciona cada uno de los distintos ajustes,
 empezamos observando un ejemplo que no incluye absolutamente ninguna
 sobreescritura.
 
-@lilypond[quote,ragged-right]
-\new Score <<
-  \new Staff <<
-    \new Voice {
-      s1 * 6 \break
-      s1 * 6 \break
-      s1 * 6 \break
-    }
-    \new Voice { \repeat unfold 18 { c'4 c'4 c'4 c'4 } }
-  >>
-  \new Staff {
-    \repeat unfold 18 { d'4 d'4 d'4 d'4 }
+@c \book { } is required in these examples to ensure the spacing
+@c overrides can be seen between systems. -np
+
+@lilypond[quote]
+\header { tagline = ##f }
+\paper { left-margin = 0\mm }
+\book {
+  \score {
+    <<
+      \new Staff <<
+        \new Voice {
+          s1*5 \break
+          s1*5 \break
+          s1*5 \break
+        }
+        \new Voice { \repeat unfold 15 { c'4 c' c' c' } }
+      >>
+      \new Staff {
+        \repeat unfold 15 { d'4 d' d' d' }
+      }
+    >>
   }
->>
+}
 @end lilypond
 
 Esta partitura mantiene aislada la información de los saltos de línea
@@ -1503,26 +1531,32 @@ el punto de origen vertical de cada sistema, podemos establecer el par
 @code{Y-offset} en el atributo @code{line-break-system-details} del
 grob (objeto gráfico) @code{NonMusicalPaperColumn}:
 
-@lilypond[quote,ragged-right]
-\new Score <<
-  \new Staff <<
-    \new Voice {
-      \overrideProperty #"Score.NonMusicalPaperColumn"
-        #'line-break-system-details #'((Y-offset . 0))
-      s1 * 6 \break
-      \overrideProperty #"Score.NonMusicalPaperColumn"
-        #'line-break-system-details #'((Y-offset . 40))
-      s1 * 6 \break
-      \overrideProperty #"Score.NonMusicalPaperColumn"
-        #'line-break-system-details #'((Y-offset . 80))
-      s1 * 6 \break
-    }
-    \new Voice { \repeat unfold 18 { c'4 c'4 c'4 c'4 } }
-  >>
-  \new Staff {
-    \repeat unfold 18 { d'4 d'4 d'4 d'4 }
+@lilypond[quote]
+\header { tagline = ##f }
+\paper { left-margin = 0\mm }
+\book {
+  \score {
+    <<
+      \new Staff <<
+        \new Voice {
+          \overrideProperty #"Score.NonMusicalPaperColumn"
+            #'line-break-system-details #'((Y-offset . 0))
+          s1*5 \break
+          \overrideProperty #"Score.NonMusicalPaperColumn"
+            #'line-break-system-details #'((Y-offset . 40))
+          s1*5 \break
+          \overrideProperty #"Score.NonMusicalPaperColumn"
+            #'line-break-system-details #'((Y-offset . 80))
+          s1*5 \break
+        }
+        \new Voice { \repeat unfold 15 { c'4 c' c' c' } }
+      >>
+      \new Staff {
+        \repeat unfold 15 { d'4 d' d' d' }
+      }
+    >>
   }
->>
+}
 @end lilypond
 
 Observe que @code{line-break-system-details} toma una lista asociativa
@@ -1537,32 +1571,38 @@ origen vertical de cada pentagrama dentro de cada sistema.  Lo hacemos
 usando la subpropiedad @code{alignment-offsets} de
 @code{line-break-system-details}.
 
-@lilypond[quote,ragged-right]
-\new Score <<
-  \new Staff <<
-    \new Voice {
-      \overrideProperty #"Score.NonMusicalPaperColumn"
-        #'line-break-system-details #'((Y-offset . 20)
-          (alignment-offsets . (0 -15)))
-      s1 * 6 \break
-      \overrideProperty #"Score.NonMusicalPaperColumn"
-        #'line-break-system-details #'((Y-offset . 60)
-          (alignment-offsets . (0 -15)))
-      s1 * 6 \break
-      \overrideProperty #"Score.NonMusicalPaperColumn"
-        #'line-break-system-details #'((Y-offset . 100)
-          (alignment-offsets . (0 -15)))
-      s1 * 6 \break
-    }
-    \new Voice { \repeat unfold 18 { c'4 c'4 c'4 c'4 } }
-  >>
-  \new Staff {
-    \repeat unfold 18 { d'4 d'4 d'4 d'4 }
+@lilypond[quote]
+\header { tagline = ##f }
+\paper { left-margin = 0\mm }
+\book {
+  \score {
+    <<
+      \new Staff <<
+        \new Voice {
+          \overrideProperty #"Score.NonMusicalPaperColumn"
+            #'line-break-system-details #'((Y-offset . 20)
+                                           (alignment-offsets . (0 -15)))
+          s1*5 \break
+          \overrideProperty #"Score.NonMusicalPaperColumn"
+            #'line-break-system-details #'((Y-offset . 60)
+                                           (alignment-offsets . (0 -15)))
+          s1*5 \break
+          \overrideProperty #"Score.NonMusicalPaperColumn"
+            #'line-break-system-details #'((Y-offset . 100)
+                                           (alignment-offsets . (0 -15)))
+          s1*5 \break
+        }
+        \new Voice { \repeat unfold 15 { c'4 c' c' c' } }
+      >>
+      \new Staff {
+        \repeat unfold 15 { d'4 d' d' d' }
+      }
+    >>
   }
->>
+}
 @end lilypond
 
-Aobserve que aquí asignamos dos valores distintos al atributo
+Observe que aquí asignamos dos valores distintos al atributo
 @code{line-break-system-details} del grob
 @code{NonMusicalPaperColumn}.  Aunque el atributo alist de
 @code{line-break-system-details} acepta muchos parámetros de espaciado
@@ -1573,34 +1613,36 @@ punto de origen vertical de cada sistema y pentagrama.  Finalmente,
 observe que @code{alignment-offsets} especifica el posicionamiento
 vertical de los pentagramas pero no de los grupos de pentagramas.
 
-@lilypond[quote,ragged-right]
-\new Score <<
-  \new Staff <<
-    \new Voice {
-      \overrideProperty #"Score.NonMusicalPaperColumn"
-      #'line-break-system-details #'((Y-offset . 0)
-        (alignment-offsets . (0 -30 -40)))
-      s1 * 6 \break
-      \overrideProperty #"Score.NonMusicalPaperColumn"
-      #'line-break-system-details #'((Y-offset . 60)
-        (alignment-offsets . (0 -10 -20)))
-      s1 * 6 \break
-      \overrideProperty #"Score.NonMusicalPaperColumn"
-      #'line-break-system-details #'((Y-offset . 100)
-        (alignment-offsets . (0 -10, -40)))
-      s1 * 6 \break
-    }
-    \new Voice { \repeat unfold 18 { c'4 c'4 c'4 c'4 } }
-  >>
-  \new StaffGroup <<
-    \new Staff {
-      \repeat unfold 18 { d'4 d'4 d'4 d'4 }
-    }
-    \new Staff {
-      \repeat unfold 18 { e'4 e'4 e'4 e'4 }
-    }
-  >>
->>
+@lilypond[quote]
+\header { tagline = ##f }
+\paper { left-margin = 0\mm }
+\book {
+  \score {
+    <<
+      \new Staff <<
+        \new Voice {
+          \overrideProperty #"Score.NonMusicalPaperColumn"
+            #'line-break-system-details #'((Y-offset . 0)
+                                           (alignment-offsets . (0 -30 -40)))
+          s1*5 \break
+          \overrideProperty #"Score.NonMusicalPaperColumn"
+            #'line-break-system-details #'((Y-offset . 60)
+                                           (alignment-offsets . (0 -10 -20)))
+          s1*5 \break
+          \overrideProperty #"Score.NonMusicalPaperColumn"
+            #'line-break-system-details #'((Y-offset . 100)
+                                           (alignment-offsets . (0 -10 -40)))
+          s1*5 \break
+        }
+        \new Voice { \repeat unfold 15 { c'4 c' c' c' } }
+      >>
+      \new StaffGroup <<
+        \new Staff { \repeat unfold 15 { d'4 d' d' d' } }
+        \new Staff { \repeat unfold 15 { e'4 e' e' e' } }
+      >>
+    >>
+  }
+}
 @end lilypond
 
 Algunos puntos que tener en cuenta:
@@ -1624,7 +1666,6 @@ unos valores razonables.
 
 
 @seealso
-
 Fragmentos de código:
 @rlsr{Spacing}.
 
@@ -1690,7 +1731,6 @@ lilypond <file>.ly
 
 
 @seealso
-
 Fragmentos de código:
 @rlsr{Spacing}.
 
@@ -1723,7 +1763,7 @@ exterior del pentagrama.  Después ordena los objetos fuera del
 pentagrama de acuerdo a su prioridad @code{outside-staff-priority} (en
 orden creciente).  LilyPond toma los objetos fuera del pentagrama uno
 a uno y los coloca de forma que no choquen con ningún objeto que ya
-haya sido colocado.  Eesto es, si dos grobs fuera del pentagrama
+haya sido colocado.  Esto es, si dos grobs fuera del pentagrama
 compiten por el mismo espacio, el que tiene la prioridad
 @code{outside-staff-priority} más baja se colocará más próximo al
 pentagrama.
@@ -1753,30 +1793,31 @@ c^"This text is padded away from the previous text"
 c^"This text is placed close to the previous text"
 @end lilypond
 
-HACER: ¿este ejemplo ya no funciona?
-
-De forma predeterminada, los objetos fuera del pentagrama se sitúan
-sin tener en cuenta su distancia horizontal a partir de los grobs
-posicionados previamente.  Esto puede llevar a situiaciones en las que
-los objetos se colocan muy próximos entre sí en el sentido horizontal.
-El establecimiento del relleno horizontal
+De forma predeterminada, los objetos fuera del pentagrama se colocan
+sólo para evitar una colisión horizontal con los grobs posicionados
+previamente.  Esto puede llevar a situaciones en las que los objetos
+se colocan muy próximos entre sí en el sentido horizontal.  El espacio
+vertical entre pentagramas se puede fijar también de manera que los
+objetos fuera del pentagrama se sitúen de forma intercalada.  El
+establecimiento del relleno horizontal
 @code{outside-staff-horizontal-padding} ocasiona que un objeto se
-desplace verticalmente para que tal situiación no ocurra.
+desplace verticalmente para que tal situación no ocurra.
 
 @lilypond[quote,ragged-right,relative=2,fragment,verbatim]
 % the markup is too close to the following note
-c2^"Text"
+c4^"Text"
+c4
 c''2
 % setting outside-staff-horizontal-padding fixes this
 R1
 \once \override TextScript #'outside-staff-horizontal-padding = #1
-c,,2^"Text"
+c,,4^"Text"
+c4
 c''2
 @end lilypond
 
 
 @seealso
-
 Fragmentos de código:
 @rlsr{Spacing}.
 
@@ -1829,7 +1870,7 @@ por un espacio de 1 ACB.
 
 Si siguiésemos el procedimiento anterior exactamente, entonces la
 adición de una sola fusa a una partitura que usa corcheas y
-semicorcheas, aumentaría enormemente la anchuta de la partitura
+semicorcheas, aumentaría enormemente la anchura de la partitura
 completa.  La nota más breve ya no es la semicorchea, sino la fusa,
 añadiendo así 1 ACB a cada una de las notas.  Para evitarlo, la
 duración más breve a efectos de espaciado no es la nota más breve de
@@ -1845,7 +1886,7 @@ una corchea.  La duración más breve se imprime cuando se ejecuta
 Estas duraciones también se pueden personalizar.  Si establecemos la
 @code{common-shortest-duration} en @rinternals{SpacingSpanner},
 entonces éste establece la duración base para el espaciado.  La
-duración máxima para esta base (normalmente un a corchea), se fija a
+duración máxima para esta base (normalmente una corchea), se fija a
 través de @code{base-shortest-duration}.
 
 @funindex common-shortest-duration
@@ -1888,7 +1929,6 @@ notation}.
 
 
 @seealso
-
 Fragmentos de código:
 @rlsr{Spacing}.
 
@@ -1915,7 +1955,7 @@ No existe ningún rodeo para disminuir la magnitud de la separación.
 @node New spacing area
 @subsection New spacing area
 
-Se pueden inicar secciones nuevas con diferentes parámetros de
+Se pueden iniciar secciones nuevas con diferentes parámetros de
 espaciado, con @code{newSpacingSection}.  Esto es útil cuando hay
 secciones que tienen distinta noción de las notas largas y cortas.
 
@@ -1937,7 +1977,6 @@ instrucciones de sobreescritura @code{\override} en dicho punto.
 
 
 @seealso
-
 Fragmentos de código:
 @rlsr{Spacing}.
 
@@ -2023,7 +2062,6 @@ sin tener en cuenta las claves, líneas divisorias ni notas de adorno:
 
 
 @seealso
-
 Fragmentos de código:
 @rlsr{Spacing}.
 
@@ -2081,7 +2119,6 @@ ocupa su longitud horizontal natural.
 
 
 @seealso
-
 Fragmentos de código:
 @rlsr{Spacing}.
 
@@ -2138,7 +2175,7 @@ deseamos porque podemos tomar prestado el espacio horizontal de la
 blanca y conservar el espacio horizontal a lo largo del compás como un
 todo.
 
-Por otro lado, si quieremos insertar una línea de tiempo graduada o
+Por otro lado, si queremos insertar una línea de tiempo graduada o
 algún otro gráfico encima o debajo de la partitura, necesitamos la
 notación proporcional.  Se activa la notación proporcional con el
 ajuste @code{proportionalNotationDuration}.
@@ -2157,8 +2194,8 @@ ajuste @code{proportionalNotationDuration}.
 >>
 @end lilypond
 
-La blanca al princpio del compás y las notas rápidas de la segunda
-mitad del compás ocupan ahora igual cantidades iguales de espacio
+La blanca al principio del compás y las notas rápidas de la segunda
+mitad del compás ocupan ahora cantidades iguales de espacio
 horizontal.  Podríamos colocar una línea de tiempo graduada o un
 gráfico encima o debajo de este ejemplo.
 
@@ -2311,11 +2348,11 @@ propiedad de @code{SpacingSpanner}.
 >>
 @end lilypond
 
-Nuestro ejemplo de dos pentagramase ahora está espaciado exactamente,
+Nuestro ejemplo de dos pentagramas ahora está espaciado exactamente,
 nuestras relaciones rítmicas son visualmente claras, y podemos incluir
 una línea de tiempo graduada o un gráfico, si queremos.
 
-Observe que el paquere de notación proporcional de LilyPond espera que
+Observe que el paquete de notación proporcional de LilyPond espera que
 todas las partituras proporcionales establezcan el atributo
 @code{uniform-stretching} de @code{SpacingSpanner} al valor ##t.  El
 establecimiento de @code{proportionalNotationDuration} sin ajustar
@@ -2333,7 +2370,7 @@ dentro del archivo de entrada: en el bloque @code{\with}, en el bloque
 De manera predeterminada, sólo hay un @code{SpacingSpanner} por
 @code{Score}.  Esto supone que, por omisión, @code{uniform-stretching}
 está activado para la partitura completa o desactivado para la
-partitura completa.  Sin embargo, podemos sobreesacibir este
+partitura completa.  Sin embargo, podemos sobreescribir este
 comportamiento y activar distintas posibilidades de espaciado en
 distintos lugares de la partitura.  Lo hacemos con la instrucción
 @code{\newSpacingSection}.  Consulte @ref{New spacing area} para más
@@ -2387,8 +2424,8 @@ partituras proporcionales abordan este problema de distinta manera.
 Sería posible evitar los problemas de espaciado con las armaduras,
 simplemente evitando tenerlas.  Esta es una opción válida pues casi
 todas las partituras proporcionales son música contemporánea.  Lo
-mismo puede valer para las indicaciones de compás, espacialmente para
-las partituras que incluyen ula línea de tiempo graduada u otro
+mismo puede valer para las indicaciones de compás, especialmente para
+las partituras que incluyen una línea de tiempo graduada u otro
 gráfico.  Pero estas partituras son excepcionales y casi todas las
 partituras proporcionales incluyen al menos unas pocas indicaciones de
 compás.  Las claves y las alteraciones son aún más esenciales.
@@ -2421,8 +2458,8 @@ Compare las dos partituras siguientes:
 }
 @end lilypond
 
-Las dos poartituras son proporcionales, pero el espaciado de la
-primera es muy suelto a causa del cmabio de clave. Sin embargo, el
+Las dos partituras son proporcionales, pero el espaciado de la
+primera es muy suelto a causa del cambio de clave. Sin embargo, el
 espaciado de la segunda partitura se mantiene estricto, porque
 @code{strict-note-spacing} está activado.  La activación de
 @code{strict-note-spacing} hace que el ancho de las indicaciones de
@@ -2447,8 +2484,8 @@ puntos de comienzo como de final, y permiten que los elementos de
 extensión se dividan entre los sistemas y las páginas.  Consulte las
 partes respectivas del manual para ver estos ajustes relacionados.
 
-@seealso
 
+@seealso
 Referencia de la notación:
 @ref{New spacing area}.
 
@@ -2496,17 +2533,35 @@ página, establezca @code{annotate-spacing} en el bloque @code{\paper}:
 
 @noindent
 Todas las dimensiones de disposición se muestran en espacios de
-pentagrama, independientemenre de las unidades especificadas en los
-bloques @code{\paper} o @code{\layout}.  Por ejemmplo,
-@code{paper-height} tiene un valor de 59.75 espacios de pentagrama,
-usando el tamaño predeterminado de pentagrama de 20 puntos, que
-equivale a 148 milímetros, la altura de una hoja de papel @code{a6} en
-orientación apaisada.  Las parejas (@var{a},@var{b}) son intervalos,
-donde @var{a} es el límite inferior y @var{b} es el límite superior
-del intervalo.
+pentagrama, independientemente de las unidades especificadas en los
+bloques @code{\paper} o @code{\layout}. En el ejemplo anterior,
+@code{paper-height} tiene un valor de 59.75 @code{staff-spaces}
+(espacios de pentagrama), y el @code{staff-size} (tamaño del
+pentagrama) es de 20 puntos, el valor predeterminado. Observe que:
+
+@multitable {1 staff-space} {staff-size)/4 * (25.4/72.27) mm}
+
+@item 1 punto
+@tab = (25.4/72.27) mm
+
+@item 1 staff-space
+@tab = (@code{staff-size})/4 pts
+@item
+@tab = (@code{staff-size})/4 * (25.4/72.27) mm
+
+@end multitable
+
+@noindent
+En este caso, un @code{staff-space} equivale aproximadamente a
+1.757mm.  Así, la medida @code{paper-height} de 59.75
+@code{staff-spaces} equivale a 105 milímetros, la altura de una hoja
+@code{a6} en orientación apaisada.  Las parejas (@var{a},@var{b}) son
+intervalos, donde @var{a} es el límite inferior y @var{b} es el límite
+superior del intervalo.
 
 
 @seealso
+@ref{Setting the staff size}.
 
 Fragmentos de código:
 @rlsr{Spacing}.
@@ -2516,7 +2571,7 @@ Fragmentos de código:
 @subsection Changing spacing
 
 La salida de @code{annotate-spacing} revela las dimensiones verticales
-con gran detalle.  Para ver más detalles acerda de la modificación de
+con gran detalle.  Para ver más detalles acerca de la modificación de
 los márgenes y otras variables de diseño de la página, consulte
 @ref{Page formatting}.
 
@@ -2539,7 +2594,14 @@ parte baja del papel.
 @end example
 
 @item
-Forzar el número de sistemas.  Por ejemplo, si la disposición
+Forzar el número de sistemas.  Puede ser de utilidad de dos formas.
+Si tan sólo se establece un valor, incluso el mismo valor que el
+número de sistemas que se están trazando de forma predeterminada, ello
+ocasionará a veces que se traten de introducir más sistemas en cada
+página, pues en este caso se omite un paso en que se produce una
+estimación, dando así un encaje mejor en cada página.  Asimismo, el
+forzar una reducción neta en el número de sistemas puede producir el
+ahorro de una página adicional.  Por ejemplo, si la disposición
 predeterminada tiene 11 sistemas, la asignación siguiente fuerza una
 disposición con 10 sistemas.
 
@@ -2553,7 +2615,7 @@ disposición con 10 sistemas.
 Evitar (o reducir en número) los objetos que aumentan el tamaño
 vertical de un sistema.  Por ejemplo, las repeticiones de primera y
 segunda vez (o repeticiones con finales alternativos) necesitan
-espacio adicional.  Si estas repeticiones se reparten a lo lardo de
+espacio adicional.  Si estas repeticiones se reparten a lo largo de
 dos sistemas, ocupan más espacio que un sistema con las casillas de
 repetición y otro sistema sin ellas.  Por ejemplo, las indicaciones
 dinámicas que se @q{salen} de un sistema se pueden acercar al
@@ -2609,7 +2671,7 @@ duración se produce un efecto de @q{apretujamiento}:
 
 @noindent
 La propiedad @code{common-shortest-duration} no se puede modificar de
-manera dinámica, por lo que se debe situar siemmpre dentro de un
+manera dinámica, por lo que se debe situar siempre dentro de un
 bloque @code{\context} de forma que se aplique a la partitura
 completa.
 
@@ -2617,7 +2679,6 @@ completa.
 
 
 @seealso
-
 Referencia de la notación:
 @ref{Page formatting},
 @ref{Changing horizontal spacing}.
index 772edd6ea2fcc498411c2bc27eb08d6962d7ab1e..23dfb3118a802972b0c498ba9791e78eb53b0e93 100644 (file)
@@ -1,12 +1,12 @@
 @c -*- coding: utf-8; mode: texinfo; -*-
 @ignore
-    Translation of GIT committish: 02da0faab3d4b2ae58568306a6ee8ba23175aeb4
+    Translation of GIT committish: 41ef91786a08102d9b9a839f6a2f40cec263d723
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @node Specialist notation
 @chapter Specialist notation
index 1e55cfa7364ca07cd70e5c5bb1d93ad1c2306802..4cca0bb7c83df77f2e6a6d333a190f407a83da94 100644 (file)
@@ -1,21 +1,21 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 @ignore
-    Translation of GIT committish: 88f1608ae6fd17b05344bafb2f0721aafdac657b
+    Translation of GIT committish: 41ef91786a08102d9b9a839f6a2f40cec263d723
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @node Staff notation
 @section Staff notation
 
 @lilypondfile[quote]{staff-headword.ly}
 
-Esta sección explica cómo influir sobre la apariencia del pentagrama,
-imprimir partituras con más de un pentagrama y cómo aplicar
-indicaciones de interpretación específicas a pentagramas individuales.
+Esta sección explica cómo influir sobre la apariencia de los
+pentagramas, cómo imprimir partituras con más de un pentagrama y cómo
+añadir indicaciones de tempo y notas guía a los pentagramas.
 
 @menu
 * Displaying staves::
@@ -45,6 +45,7 @@ y grupos de ellos.
 @cindex pentagrama, iniciar
 @cindex pentagrama, instanciar
 @cindex pentagrama, nuevo
+@cindex pentagrama de percusión
 @cindex pentagrama único
 @cindex percusión, pauta de
 @cindex pauta de percusión
@@ -52,6 +53,9 @@ y grupos de ellos.
 @cindex rítmica, pauta
 @cindex tablatura, pauta de
 
+@funindex \drummode
+@funindex drummode
+
 Las @notation{pautas} y los @notation{pentagramas} o pautas de cinco
 líneas se crean con las instrucciones @code{\new} o @code{\context}.
 Para ver más detalles, consulte @ref{Creating contexts}.
@@ -62,11 +66,12 @@ El contexto básico de pentagrama es @code{Staff}:
 \new Staff { c4 d e f }
 @end lilypond
 
-@code{DrumStaff} crea una pauta de cinco líneas preparada para un
-conjunto de batería típico.  Utiliza distintos nombres para cada
-instrumento.  Los nombres de instrumento se fijan utilizando la
-instrucción @code{\drummode}.  Para ver más detalles, consulte
-@ref{Percussion staves}.
+El contexto @code{DrumStaff} crea una pauta de cinco líneas preparada
+para un conjunto de batería típico.  Cada instrumento se presenta con
+un símbolo distinto.  Los instrumentos se escriben en el modo de
+percusión que sigue a una instrucción @code{\drummode}, con cada
+instrumento identificado por un nombre.  Para ver más detalles,
+consulte @ref{Percussion staves}.
 
 @lilypond[verbatim,quote]
 \new DrumStaff {
@@ -74,14 +79,6 @@ instrucción @code{\drummode}.  Para ver más detalles, consulte
 }
 @end lilypond
 
-@c FIXME: remove when mentioned in NR 2.8
-@code{GregorianTranscriptionStaff} crea una pauta para la notación
-moderna de canto gregoriano.  No muestra líneas divisorias.
-
-@lilypond[verbatim,quote,relative=2]
-\new GregorianTranscriptionStaff { c4 d e f e d }
-@end lilypond
-
 @code{RhythmicStaff} crea una pauta de una sola línea que sólo muestra
 las duraciones de la entrada.  Se preservan las duraciones reales.
 Para ver más detalles, consulte @ref{Showing melody rhythms}.
@@ -102,12 +99,18 @@ Existen dos contextos de pauta específicos para la notación de música
 antigua: @code{MensuralStaff} y @code{VaticanaStaff}.  Se describen en
 @ref{Pre-defined contexts}.
 
+@code{GregorianTranscriptionStaff} crea una pauta para la notación
+moderna de canto gregoriano.  No muestra líneas divisorias.
+
+@lilypond[verbatim,quote,relative=2]
+\new GregorianTranscriptionStaff { c4 d e f e d }
+@end lilypond
+
 Se pueden definir contextos nuevos de pentagrama único.  Para ver más
 detalles, consulte @ref{Defining new contexts}.
 
 
 @seealso
-
 Glosario musical:
 @rglos{staff},
 @rglos{staves}.
@@ -153,7 +156,7 @@ Referencia de funcionamiento interno:
 @cindex piano, pentagramas de
 @cindex sistema de piano
 @cindex sistema de coro
-@cindex system
+@cindex sistema
 
 Existen varios contextos para agrupar pentagramas individuales
 formando sistemas.  Cada contexto de agrupación establece el estilo
@@ -208,7 +211,7 @@ nombre del instrumento.  Para ver más detalles, consulte
 
 @lilypond[verbatim,quote,relative=2]
 \new PianoStaff <<
-  \set PianoStaff.instrumentName = "Piano"
+  \set PianoStaff.instrumentName = #"Piano"
   \new Staff { c1 c }
   \new Staff { c1 c }
 >>
@@ -225,7 +228,6 @@ especificar explícitamente.
 Se pueden definir contextos nuevos de grupo de pentagramas.  Para ver
 más detalles, consulte @ref{Defining new contexts}.
 
-
 @snippets
 
 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
@@ -242,11 +244,8 @@ más detalles, consulte @ref{Defining new contexts}.
 
 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
 {mensurstriche-layout-bar-lines-between-the-staves.ly}
-@c FIXME: move to NR 2.8.x when sectioning is ready
-
 
 @seealso
-
 Glosario musical:
 @rglos{brace},
 @rglos{bracket},
@@ -280,46 +279,29 @@ Referencia de funcionamiento interno:
 @cindex anidados, corchetes de pentagrama
 @cindex corchetes anidados
 @cindex llaves, anidado de
-@cindex interno, grupo de pentagramas
-@cindex interno, grupo de pentagramas de coro
 
-Están disponibles dos contextos adicionales de grupo de pentagramas
-que se pueden anidar dentro de un contexto @code{StaffGroup} o
-@code{ChoirStaff}: @code{InnerStaffGroup} y @code{InnerChoirStaff}.
-Estos contextos crean un corchete nuevo adyacente al corchete del
-grupo de pentagramas que constituye su «padre».
-
-Un @code{InnerStaffGroup} se trata de forma similar a un
-@code{StaffGroup}; las barras de compás están conectadas entre todos
-los pentagramas que están dentro del contexto:
+Los contextos de grupos de pentagramas se pueden anidar hasta una
+profundidad arbitraria.  En este caso, cada contexto descendiente crea
+un corchete nuevo adyacente al corchete de su grupo padre.
 
 @lilypond[verbatim,quote,relative=2]
 \new StaffGroup <<
   \new Staff { c2 c | c2 c }
-  \new InnerStaffGroup <<
-    \new Staff { g2 g | g2 g }
-    \new Staff { e2 e | e2 e }
-  >>
->>
-@end lilypond
-
-Las barras de compás @emph{no} se conectan entre los pentagramas de un
-@code{InnerChoirStaff}, de igual forma que un @code{ChoirStaff}:
-
-@lilypond[verbatim,quote,relative=2]
-\new ChoirStaff <<
-  \new Staff { c2 c | c2 c }
-  \new InnerChoirStaff <<
+  \new StaffGroup <<
     \new Staff { g2 g | g2 g }
-    \new Staff { e2 e | e2 e }
+    \new StaffGroup \with {
+      systemStartDelimiter = #'SystemStartSquare
+    }
+    <<
+      \new Staff { e2 e | e2 e }
+      \new Staff { c2 c | c2 c }
+    >>
   >>
-  \new Staff { c1 | c1 }
 >>
 @end lilypond
 
-Se pueden definir contextos nuevos de grupo de pentagramas.  Para ver
-más detalles, consulte @ref{Defining new contexts}.
-
+Se pueden definir nuevos contextos de grupos de pentagramas anidados.
+Para ver más detalles, consulte @ref{Defining new contexts}.
 
 @snippets
 
@@ -328,7 +310,6 @@ más detalles, consulte @ref{Defining new contexts}.
 
 
 @seealso
-
 Referencia de la notación:
 @ref{Grouping staves},
 @ref{Instrument names},
@@ -338,9 +319,7 @@ Fragmentos de código:
 @rlsr{Staff notation}.
 
 Referencia de funcionamiento interno:
-@rinternals{InnerStaffGroup},
 @rinternals{StaffGroup},
-@rinternals{InnerChoirStaff},
 @rinternals{ChoirStaff},
 @rinternals{SystemStartBar},
 @rinternals{SystemStartBrace},
@@ -369,6 +348,7 @@ pentagramas, y establecer secciones de ossia.
 @cindex ajuste del símbolo del pentagrama
 @cindex dibujo del símbolo del pentagrama
 @cindex pentagrama, ajuste del símbolo del
+@cindex símbolo del pentagrama, dibujo del
 @cindex detener líneas de pentagrama
 @cindex iniciar líneas de pentagrama
 @cindex pentagrama, número de líneas
@@ -409,7 +389,10 @@ dependen del grosor de las líneas de la pauta.
 @end lilypond
 
 El grosor de las líneas adicionales se puede fijar de forma
-independiente al de las líneas de la pauta.
+independiente al de las líneas de la pauta.  En el ejemplo, los dos
+números son factores que multiplican el grosor de las líneas del
+pentagrama y su espaciado.  Las dos contribuciones se suman para dar
+el grosor de las líneas adicionales.
 
 @lilypond[verbatim,quote,relative=1]
 \new Staff \with {
@@ -428,11 +411,18 @@ ajuste afecta también al espaciado de las líneas adicionales.
 { a4 b c d }
 @end lilypond
 
-Hay más detalles sobre las proopiedades de @code{StaffSymbol} en
+Hay más detalles sobre las propiedades de @code{StaffSymbol} en
 @rinternals{staff-symbol-interface}.
 
+@cindex detener el pentagrama
+@cindex iniciar el pentagrama
+@cindex pentagrama, iniciar
+@cindex pentagrama, detener
+
 @funindex \startStaff
+@funindex startStaff
 @funindex \stopStaff
+@funindex stopStaff
 
 Se pueden colocar modificaciones a las propiedades de una pauta en el
 medio de una partitura, entre @code{\stopStaff} (detener pauta) y
@@ -450,8 +440,6 @@ b2 b
 a2 a
 @end lilypond
 
-@cindex detener un pentagrama
-
 @noindent
 En general, se pueden usar @code{\startStaff} y @code{\stopStaff} para
 detener o iniciar un pentagrama en mitad de una partitura.
@@ -464,18 +452,20 @@ b4 c d2
 e4 d c2
 @end lilypond
 
-@predefined
 
+@predefined
 @code{\startStaff},
 @code{\stopStaff}.
+@endpredefined
+
 
 @snippets
 
 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
 {making-some-staff-lines-thicker-than-the-others.ly}
 
-@seealso
 
+@seealso
 Glosario musical:
 @rglos{line},
 @rglos{ledger line},
@@ -491,6 +481,7 @@ Referencia de funcionamiento interno:
 @rinternals{StaffSymbol},
 @rinternals{staff-symbol-interface}.
 
+
 @knownissues
 
 Al establecer manualmente las posiciones de las líneas de la pauta,
@@ -508,6 +499,11 @@ en cualquiera de las direcciones, debe ser igual.
 @cindex pauta, escalado de
 @cindex escalado de pentagramas
 
+@funindex \startStaff
+@funindex startStaff
+@funindex \stopStaff
+@funindex stopStaff
+
 Los pentagramas @notation{Ossia} se pueden preparar mediante la
 creación de un pentagrama simultáneo nuevo en la posición adecuada:
 
@@ -523,7 +519,7 @@ creación de un pentagrama simultáneo nuevo en la posición adecuada:
 @end lilypond
 
 @noindent
-Sin embargo, el ejemplo anterior no suele ser el resultado deseado.
+Sin embargo, el ejemplo anterior no es lo que normalmente se desea.
 Para crear pentagramas de ossia que estén encima del pentagrama
 original, que no tengan compás ni clave, y que tengan un tamaño menor
 de tipografía se deben usar varios trucos.  El Manual de aprendizaje
@@ -640,14 +636,14 @@ información sobre @code{\RemoveEmptyStaffContext}, consulte
 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
 {vertically-aligning-ossias-and-lyrics.ly}
 
-@seealso
 
+@seealso
 Glosario musical:
 @rglos{ossia},
 @rglos{staff},
 @rglos{Frenched staff}.
 
-Mannual de aprendizaje:
+Manual de aprendizaje:
 @rlearning{Nesting music expressions},
 @rlearning{Size of objects},
 @rlearning{Length and thickness of objects}.
@@ -673,6 +669,9 @@ Referencia de funcionamiento interno:
 @cindex ocultar pentagramas
 @cindex vacío, pentagrama
 
+@funindex \RemoveEmptyStaffContext
+@funindex RemoveEmptyStaffContext
+
 Se pueden ocultar las líneas del pentagrama quitando el grabador
 @code{Staff_symbol_engraver} del contexto de @code{Staff}.  Como
 alternativa se puede utilizar la instrucción @code{\stopStaff}.
@@ -684,8 +683,6 @@ alternativa se puede utilizar la instrucción @code{\stopStaff}.
 \relative c''' { a8 f e16 d c b a2 }
 @end lilypond
 
-@funindex \RemoveEmptyStaffContext
-
 Se pueden ocultar los pentagramas que están vacíos mediante la
 instrucción @code{\RemoveEmptyStaffContext} dentro del bloque
 @code{\layout}.  En las partituras orquestales, este estilo se conoce
@@ -693,8 +690,8 @@ como @q{partitura a la francesa}.  De forma predeterminada, esta
 instrucción oculta y elimina todos los pentagramas vacíos de la
 partitura excepto los del primer sistema.
 
-@warning{Un pentagrama vacío puede contener solamente silencios
-multicompás, desplazamientos, silencios de separación o una
+@warning{Un pentagrama se considera vacío cuando contiene solamente
+silencios multicompás, desplazamientos, silencios de separación o una
 combinación de estos elementos.}
 
 @lilypond[verbatim,quote,ragged-right]
@@ -727,8 +724,13 @@ consulte @ref{Ossia staves}.
 
 @cindex ocultar pentagramas de música antigua
 @cindex ocultar pentagramas rítmicos
+
+@funindex \RemoveEmptyStaffContext
+@funindex RemoveEmptyStaffContext
 @funindex \AncientRemoveEmptyStaffContext
+@funindex AncientRemoveEmptyStaffContext
 @funindex \RemoveEmptyRhythmicStaffContext
+@funindex RemoveEmptyRhythmicStaffContext
 
 Se puede usar la instrucción @code{\AncientRemoveEmptyStaffContext}
 para ocultar los pentagramas vacíos en contextos de música antigua.
@@ -736,19 +738,21 @@ de forma similar, se puede usar
 @code{\RemoveEmptyRhythmicStaffContext} para ocultar los contextos
 @code{RhythmicStaff} vacíos.
 
-@predefined
 
+@predefined
 @code{\RemoveEmptyStaffContext},
 @code{\AncientRemoveEmptyStaffContext},
 @code{\RemoveEmptyRhythmicStaffContext}.
+@endpredefined
+
 
 @snippets
 
 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
 {removing-the-first-empty-line.ly}
 
-@seealso
 
+@seealso
 Glosario musical:
 @rglos{Frenched staff}.
 
@@ -767,6 +771,7 @@ Referencia de funcionamiento interno:
 @rinternals{VerticalAxisGroup},
 @rinternals{Staff_symbol_engraver}.
 
+
 @knownissues
 
 La eliminación del grabador @code{Staff_symbol_engraver} también
@@ -803,7 +808,9 @@ otras voces y dar formato a las notas guía.
 @cindex pulsos por minuto
 @cindex metrónomo, indicación de
 @cindex metrónomo, indicación de, con texto
+
 @funindex \tempo
+@funindex tempo
 
 Es muy sencillo escribir una indicación metronómica básica:
 
@@ -861,8 +868,8 @@ d4 g e c
 
 Para ver más detalles, consulte @ref{Formatting text}.
 
-@seealso
 
+@seealso
 Glosario musical:
 @rglos{metronome},
 @rglos{metronomic indication},
@@ -893,8 +900,8 @@ primer pentagrama, y el valor de @code{shortInstrumentName} se usa
 para todos los pentagramas siguientes.
 
 @lilypond[verbatim,quote,ragged-right,relative=1]
-\set Staff.instrumentName = "Violin "
-\set Staff.shortInstrumentName = "Vln "
+\set Staff.instrumentName = #"Violin "
+\set Staff.shortInstrumentName = #"Vln "
 c4.. g'16 c4.. g'16
 \break
 c1
@@ -920,7 +927,7 @@ se debe utilizar @code{\center-column}:
 @lilypond[verbatim,quote,indent=1.5\cm,relative=2]
 <<
   \new Staff {
-    \set Staff.instrumentName = "Flute"
+    \set Staff.instrumentName = #"Flute"
     f2 g4 f
   }
   \new Staff {
@@ -933,8 +940,8 @@ se debe utilizar @code{\center-column}:
 >>
 @end lilypond
 
-@cindex indent
-@cindex short-indent
+@funindex indent
+@funindex short-indent
 
 Sin embargo, si los nombres de instrumento son más largos, éstos no se
 centran para un grupo de pentagramas a no ser que se aumenten los
@@ -950,14 +957,14 @@ consulte @ref{Horizontal dimensions}.
 
 \relative c'' <<
   \new Staff {
-    \set Staff.instrumentName = "Alto Flute in G"
-    \set Staff.shortInstrumentName = "Fl."
+    \set Staff.instrumentName = #"Alto Flute in G"
+    \set Staff.shortInstrumentName = #"Fl."
     f2 g4 f \break
     g4 f g2
   }
   \new Staff {
-    \set Staff.instrumentName = "Clarinet"
-    \set Staff.shortInstrumentName = "Clar."
+    \set Staff.instrumentName = #"Clarinet"
+    \set Staff.shortInstrumentName = #"Clar."
     c,4 b c2 \break
     c2 b4 c
   }
@@ -975,12 +982,12 @@ plug-ins}.
 Los nombres de instrumento se pueden cambiar en mitad de una pieza:
 
 @lilypond[verbatim,quote,ragged-right,relative=1]
-\set Staff.instrumentName = "First"
-\set Staff.shortInstrumentName = "one"
+\set Staff.instrumentName = #"First"
+\set Staff.shortInstrumentName = #"one"
 c1 c c c \break
 c1 c c c \break
-\set Staff.instrumentName = "Second"
-\set Staff.shortInstrumentName = "two"
+\set Staff.instrumentName = #"Second"
+\set Staff.shortInstrumentName = #"two"
 c1 c c c \break
 c1 c c c \break
 @end lilypond
@@ -988,7 +995,12 @@ c1 c c c \break
 @cindex instrumento, cambio de
 @cindex cambio de instrumento
 
-se se necesita un @emph{cambio} de instrumento, se debe usar
+@funindex \addInstrumentDefinition
+@funindex addInstrumentDefinition
+@funindex \instrumentSwitch
+@funindex instrumentSwitch
+
+Si se necesita un @emph{cambio} de instrumento, se debe usar
 @code{\addInstrumentDefinition} en combinación con
 @code{\instrumentSwitch} para crear una lista detallada de los cambios
 necesarios para el intercambio.  La instrucción
@@ -1009,7 +1021,7 @@ musical para declarar el cambio de instrumento:
      (midiInstrument . "bassoon"))
 
 \new Staff \with {
-  instrumentName = "Bassoon"
+  instrumentName = #"Bassoon"
 }
 \relative c' {
   \clef tenor
@@ -1024,7 +1036,6 @@ musical para declarar el cambio de instrumento:
 
 
 @seealso
-
 Referencia de la notación:
 @ref{Horizontal dimensions},
 @ref{Modifying context plug-ins}.
@@ -1046,6 +1057,13 @@ Referencia de funcionamiento interno:
 @cindex fragmentos
 @cindex notas guía
 
+@funindex \addQuote
+@funindex addQuote
+@funindex \quoteDuring
+@funindex quoteDuring
+@funindex \transposition
+@funindex transposition
+
 Es muy frecuente que una voz duplique música de otra voz.  Por
 ejemplo, los violines primero y segundo pueden tocar las mismas notas
 durante un pasaje musical.  En LilyPond esto se hace dejando que una
@@ -1134,7 +1152,6 @@ procedimiento, consulte @ref{Using tags}.
 
 
 @seealso
-
 Referencia de la notación:
 @ref{Instrument transpositions},
 @ref{Using tags}.
@@ -1174,6 +1191,9 @@ se escribía completamente en minúsculas: @code{\addquote}.
 @cindex fragmentos
 @cindex citar otras voces
 
+@funindex \cueDuring
+@funindex cueDuring
+
 La sección anterior explica la forma de crear citas.  La instrucción
 @code{\cueDuring} es una forma más especializada de
 @code{\quoteDuring}, que es especialmente útil para insertar notas
@@ -1218,7 +1238,7 @@ estableciendo la propiedad @code{instrumentCueName} en el contexto
 oboe = \relative c''' {
   g4 r8 e16 f e4 d
 }
-\addQuote oboe { \oboe }
+\addQuote "oboe" { \oboe }
 
 \new Staff \relative c'' <<
   \new CueVoice \with {
@@ -1231,6 +1251,14 @@ oboe = \relative c''' {
 >>
 @end lilypond
 
+@cindex quitar notas guía
+@cindex notas guía, quitar
+
+@funindex \killCues
+@funindex killCues
+@funindex \transposedCueDuring
+@funindex transposedCueDuring
+
 Además de imprimir el nombre del instrumento de las notas guía, cuando
 éstas finalizan se debe imprimir el nombre del instrumento original, y
 cualquier otro cambio introducido por la parte de guía se debe
@@ -1286,12 +1314,12 @@ cbassoon = \relative c, {
 >>
 @end lilypond
 
-Es posible etiquetar las partes guía con numbres exclusivos de forma
+Es posible etiquetar las partes guía con nombres exclusivos de forma
 que se puedan procesar de diversas formas.  Para ver más detalles
 sobre este procedimiento, consulte @ref{Using tags}.
 
-@seealso
 
+@seealso
 Referencia de la notación:
 @ref{Instrument transpositions},
 @ref{Instrument names},
index 222b6cbc6677874c7ec938720846586b21ae9216..dcfa957146dfc22132ff34ea5539e44e74bf6587 100644 (file)
@@ -1,13 +1,13 @@
-@c -*- coding: utf-8; mode: texinfo; -*-
+@c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 @c This file is part of lilypond-learning.tely
 @ignore
-    Translation of GIT committish: 85b54e04be6730bd0781f3135ee741010e099fd8
+    Translation of GIT committish: 19841b86e54ac60d93af1150c31b7c246741ce1c
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @node Templates
 @appendix Templates
@@ -22,6 +22,7 @@ unas hermosas partituras impresas!
 * Piano templates::
 * String quartet::
 * Vocal ensembles::
+* Orchestral templates::
 * Ancient notation templates::
 * Jazz combo::
 * lilypond-book templates::
@@ -110,6 +111,14 @@ unas hermosas partituras impresas!
 {vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly}
 
 
+@node Orchestral templates
+@appendixsec Orchestral templates
+
+@appendixsubsec Orchestra, choir and piano
+@lilypondfile[verbatim,lilyquote,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
index 3cabc78a01ac9a4251d5e9027190029f880f5db0..aafe20ee3505f203c552392fd6aa7e691b2f8043 100644 (file)
@@ -1,12 +1,12 @@
-@c -*- coding: utf-8; mode: texinfo; -*-
+@c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 @ignore
-    Translation of GIT committish: 7c57f1469e057f25f5d7a7b75c18f33bb4e5bed9
+    Translation of GIT committish: 9b573e8e9365a4c6d0b302f5c6ae3b0e5c85df11
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @node Text
 @section Text
@@ -27,6 +27,12 @@ headers}.
 * Fonts::
 @end menu
 
+@node Writing text
+@subsection Writing text
+
+Esta sección presenta las distintas formas de añadir texto a una
+partitura.
+
 @cindex texto, en otros idiomas
 @warning{Para escribir texto con caracteres acentuados y especiales
 (como los de idiomas distintos del inglés), sencillamente inserte los
@@ -34,11 +40,6 @@ caracteres directamente en el archivo de LilyPond.  El archivo se debe
 guardar como UTF-8.  Para ver más información, consulte @ref{Text
 encoding}.}
 
-@node Writing text
-@subsection Writing text
-
-Esta sección presenta las distintas formas de añadir texto a una
-partitura.
 
 @menu
 * Text scripts::
@@ -58,12 +59,12 @@ partitura.
 
 Es posible añadir indicaciones de @qq{texto entrecomillado} a una
 partitura, como se muestra en el ejemplo siguiente.  Tales
-indicaciones se pueden colocar también manulamente encima o debajo del
+indicaciones se pueden colocar también manualmente encima o debajo del
 pentagrama utilizando la sintaxis que se describe en @ref{Direction
 and placement}.
 
-@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
-d8^"pizz." e f g a4-"scherz." f
+@lilypond[quote,verbatim,relative=2]
+a8^"pizz." g f e a4-"scherz." f
 @end lilypond
 
 Esta sintaxis es en realidad una abreviatura; se puede añadir
@@ -71,8 +72,8 @@ explícitamente a una nota un formateado de texto más complejo
 utilizando un bloque @code{\markup}, como se describe bajo
 @ref{Formatting text}.
 
-@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
-d8^\markup { \italic pizz. } e f g
+@lilypond[quote,verbatim,relative=2]
+a8^\markup { \italic pizz. } g f e
 a4_\markup { \tiny scherz. \bold molto } f
 @end lilypond
 
@@ -81,22 +82,22 @@ espaciado de las notas.  Sin embargo, su anchura sí podría tenerse en
 cuenta: en el siguiente ejemplo, la primera cadena de texto no afecta
 al espaciado, pero la segunda sí afecta.
 
-@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
-d8^"pizz." e f g
+@lilypond[quote,verbatim,relative=2]
+a8^"pizz." g f e
 \textLengthOn
 a4_"scherzando" f
 @end lilypond
 
-@predefined
 
+@predefined
 @funindex \textLengthOn
 @code{\textLengthOn},
 @funindex \textLengthOff
-@code{\textLengthOff}
+@code{\textLengthOff}.
+@endpredefined
 
 
 @seealso
-
 Referencia de la notación:
 @ref{Formatting text},
 @ref{Direction and placement}.
@@ -107,6 +108,7 @@ Fragmentos de código:
 Referencia de funcionamiento interno:
 @rinternals{TextScript}.
 
+
 @knownissues
 
 La comprobación necesaria para asegurar que las inscripciones de texto
@@ -128,11 +130,11 @@ para habilitarlos, utilice
 Ciertas indicaciones de ejecución, p.ej., @i{rallentando} o
 @i{accelerando}, se escriben como texto y se extienden sobre muchos
 compases mediante líneas de puntos.  Estos objetos, que reciben el
-nombre de @q{spanners} u objetos de extensión, se pueden crear dede
+nombre de @q{spanners} u objetos de extensión, se pueden crear desde
 una nota hasta otra usando la siguiente sintaxis:
 
-@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
-\override TextSpanner #'bound-details #'left #'text = "rit."
+@lilypond[verbatim,quote,relative=2]
+\override TextSpanner #'(bound-details left text) = "rit."
 b1\startTextSpan
 e,\stopTextSpan
 @end lilypond
@@ -143,8 +145,8 @@ de objeto.  De forma predeterminada se imprime en estilo cursiva, pero
 se pueden conseguir distintos efectos de formato utilizando bloques
 @code{\markup}, como se describe en @ref{Formatting text}.
 
-@lilypond[quote,ragged-right,fragment,relative=2,verbatim]
-\override TextSpanner #'bound-details #'left #'text =
+@lilypond[quote,relative=2,verbatim]
+\override TextSpanner #'(bound-details left text) =
   \markup { \upright "rit." }
 b1\startTextSpan c
 e,\stopTextSpan
@@ -154,17 +156,18 @@ El estilo de la línea, así como la cadena de texto, se pueden definir
 como una propiedad de objeto.  Esta sintaxis se describe en @ref{Line
 styles}.
 
-@predefined
 
+@predefined
 @funindex textSpannerUp
 @code{\textSpannerUp},
 @funindex textSpannerDown
 @code{\textSpannerDown},
 @funindex textSpannerNeutral
-@code{\textSpannerNeutral}
+@code{\textSpannerNeutral}.
+@endpredefined
 
-@seealso
 
+@seealso
 Referencia de la notación:
 @ref{Line styles},
 @ref{Dynamics}.
@@ -191,7 +194,7 @@ sintaxis que se describe en @ref{Rehearsal marks}:
 @c \mark needs to be placed on a separate line (it's not
 @c attached to an object like \markup is). -vv
 
-@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
+@lilypond[verbatim,quote,relative=2]
 c4
 \mark "Allegro"
 c c c
@@ -202,7 +205,7 @@ divisoria; se pueden incorporar formatos más complejos para el texto
 usando un bloque @code{\markup}, como está explicado en
 @ref{Formatting text}:
 
-@lilypond[fragment,quote,ragged-right,verbatim,relative=1]
+@lilypond[quote,verbatim,relative=1]
 <c e>1
 \mark \markup { \italic { colla parte } }
 <d f>2 <e g>
@@ -212,10 +215,10 @@ usando un bloque @code{\markup}, como está explicado en
 @noindent
 Esta sintaxis también permite imprimir símbolos especiales como
 llamadas, segno o calderones, especificando el nombre del símbolo
-correspondiente como se esplica en @ref{Music notation inside markup}:
+correspondiente como se explica en @ref{Music notation inside markup}:
 
-@lilypond[fragment,quote,ragged-right,verbatim,relative=1]
-<f bes>2 <d aes'>
+@lilypond[quote,verbatim,relative=2]
+<bes f>2 <aes d>
 \mark \markup { \musicglyph #"scripts.ufermata" }
 <e g>1
 @end lilypond
@@ -227,7 +230,7 @@ medio de un compás, se colocarán sobre la línea divisoria o entre las
 notas.  Si se especifican en un salto de línea, las llamadas se
 imprimen al principio de la línea siguiente.
 
-@lilypond[fragment,quote,ragged-right,verbatim,relative=2]
+@lilypond[quote,verbatim,relative=2]
 \mark "Allegro"
 c1 c
 \mark "assai" \break
@@ -246,8 +249,8 @@ c  c
 @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
 {printing-marks-on-every-staff.ly}
 
-@seealso
 
+@seealso
 Referencia de la notación:
 @ref{Rehearsal marks},
 @ref{Formatting text},
@@ -260,6 +263,7 @@ Fragmentos de código:
 Referencia de funcionamiento interno:
 @rinternals{RehearsalMark}.
 
+
 @knownissues
 @c  To be removed when Issue 69 in the tracker gets fixed. -vv
 
@@ -274,7 +278,6 @@ Si se introduce una llamada al final del último compás de la partitura
 @cindex top-level text
 @cindex text, standalone
 @funindex \markup
-@funindex \markuplines
 
 Un bloque @code{\markup} puede existir de forma independiente, fuera
 de cualquier bloque @code{\score}, como una @qq{expresión de nivel
@@ -291,7 +294,7 @@ Esto hace posible imprimir texto separado de la música, lo que es
 especialmente útil cuando el archivo de entrada contiene varias
 piezas, tal y como se describe en @ref{Multiple scores in a book}.
 
-@lilypond[quote,ragged-right,verbatim]
+@lilypond[quote,verbatim]
 \score {
   c'1
 }
@@ -308,19 +311,20 @@ posibilitando la impresión de documentos de texto o libros
 íntegramente desde LilyPond.  Esta funcionalidad y la sintaxis que
 requiere se describen en @ref{Multi-page markup}.
 
-@predefined
 
+@predefined
+@funindex \markuplines
 @code{\markup},
-@code{\markuplines}
+@code{\markuplines}.
+@endpredefined
+
 
-@ignore
 @snippets
 
-TODO: add convenient snippets in input/new -vv
-@end ignore
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{stand-alone-two-column-markup.ly}
 
 @seealso
-
 Referencia de la notación:
 @ref{Formatting text},
 @ref{File structure},
@@ -375,8 +379,8 @@ instrucciones de marcado, que se introducen utilizando el carácter de
 barra invertida @code{\} . Estas instrucciones sólo afectan a la
 expresión que sigue inmediatamente.
 
-@lilypond[quote,verbatim,fragment,relative=1]
-e1-\markup intenso
+@lilypond[quote,verbatim,relative=2]
+a1-\markup intenso
 a2^\markup { poco \italic più forte  }
 c e1
 d2_\markup { \italic "string. assai" }
@@ -398,10 +402,10 @@ y por tanto cualquier instrucción de marcado o carácter especial (como
 del texto.  Se puede hacer que se impriman las propias comillas si se
 les antepone una barra invertida.
 
-@lilypond[quote,verbatim,fragment,relative=1]
-d1^"\italic markup..."
-d_\markup { \italic "... prints \"italic\" letters!" }
-d d
+@lilypond[quote,verbatim,relative=2]
+a1^"\italic markup..."
+a_\markup { \italic "... prints \"italic\" letters!" }
+a a
 @end lilypond
 
 Para que se traten como una expresión distinta, es necesario que las
@@ -437,7 +441,6 @@ específicas de @code{\markup} en @ref{Text markup commands}.
 
 
 @seealso
-
 Referencia de la notación:
 @ref{Text markup commands}.
 
@@ -593,27 +596,28 @@ utilización personalizada de las fuentes tipográficas en @ref{Font}.
 También es posible definir conjuntos personalizados de fuentes, tal y
 como se explica en @ref{Fonts}.
 
-@predefined
 
+@predefined
 @funindex \teeny
-@funindex \tiny
-@funindex \small
-@funindex \normalsize
-@funindex \large
-@funindex \huge
-@funindex \smaller
-@funindex \larger
 @code{\teeny},
+@funindex \tiny
 @code{\tiny},
+@funindex \small
 @code{\small},
+@funindex \normalsize
 @code{\normalsize},
+@funindex \large
 @code{\large},
+@funindex \huge
 @code{\huge},
+@funindex \smaller
 @code{\smaller},
+@funindex \larger
 @code{\larger}.
+@endpredefined
 
-@seealso
 
+@seealso
 Referencia de la notación:
 @ref{Font},
 @ref{New dynamic marks},
@@ -650,11 +654,11 @@ sintaxis que se describe en @rlearning{Moving objects}.
 @funindex \right-align
 
 Los objetos de marcado se pueden alinear de distintas maneras.  De
-foma predeterminada, una indicación de texto se alinea sobre el borde
+forma predeterminada, una indicación de texto se alinea sobre el borde
 izquierdo: en el ejemplo siguiente, no existe diferencia entre los
 marcados primero y segundo.
 
-@lilypond[quote,verbatim,fragment,relative=1]
+@lilypond[quote,verbatim,relative=2]
 d1-\markup { poco }
 f
 d-\markup { \left-align poco }
@@ -669,7 +673,7 @@ d-\markup { \right-align poco }
 Se puede realizar un ajuste fino de la alineación horizontal usando un
 valor numérico:
 
-@lilypond[quote,verbatim,fragment,relative=1]
+@lilypond[quote,verbatim,relative=2]
 a1-\markup { \halign #-1 poco }
 e'
 a,-\markup { \halign #0 poco }
@@ -699,7 +703,7 @@ o un objeto invisible.  El ejemplo siguiente ejemplifica estas dos
 posibilidades; el último marcado en este ejemplo no tiene punto de
 anclaje y por ello no resulta movido.
 
-@lilypond[quote,verbatim,fragment,relative=1]
+@lilypond[quote,verbatim,relative=1]
 d2^\markup {
   Acte I
   \raise #2 { Scène 1 }
@@ -720,12 +724,12 @@ a'4 a g2 a
 @funindex \translate
 @funindex \translate-scaled
 
-Algunas instrucciones pueden afcetar tanto a la alineación horizontal
+Algunas instrucciones pueden afectar tanto a la alineación horizontal
 como a la vertical de los objetos de texto en el modo de marcado.
 Cualquier objeto afectado por estas instrucciones se deben preceder de
 un punto de anclaje:
 
-@lilypond[quote,verbatim,fragment,relative=1]
+@lilypond[quote,verbatim,relative=1]
 d2^\markup {
   Acte I
   \translate #'(-1 . 2) "Scène 1"
@@ -827,7 +831,7 @@ la izquierda o justificados, como se muestra en el ejemplo siguiente.
       (Calle de Granada. Fachada de la casa de Carmela
       y su hermano Manuel con grandes ventanas abiertas
       a través de las que se ve el patio
-      donde se celebra una alegre fiesta.)
+      donde se celebra una alegre fiesta)
     }
   }
 }
@@ -836,8 +840,8 @@ la izquierda o justificados, como se muestra en el ejemplo siguiente.
 Hay una lista exhaustiva de instrucciones de alineación de texto en
 @ref{Align}.
 
-@seealso
 
+@seealso
 Manual de aprendizaje:
 @rlearning{Moving objects}.
 
@@ -972,7 +976,7 @@ de gráficos dentro del archivo de entrada, usando código PostScript
 nativo.  En tal caso puede ser de utilidad la especificación explícita
 del tamaño del dibujo, como se ejemplifica a continuación:
 
-@lilypond[quote,verbatim,fragment,relative=1]
+@lilypond[quote,verbatim,relative=1]
 c1^\markup {
   \combine
     \epsfile #X #10 #"./context-example.eps"
@@ -995,8 +999,8 @@ c
 Hay una lista exhaustiva de instrucciones específicas de gráficos en
 @ref{Graphic}.
 
-@seealso
 
+@seealso
 Referencia de la notación:
 @ref{Graphic},
 @ref{Editorial annotations}.
@@ -1021,7 +1025,7 @@ musical, dentro de un objeto de marcado.
 Las notas y las alteraciones se pueden escribir utilizando
 instrucciones de marcado:
 
-@lilypond[quote,verbatim,fragment,relative=2]
+@lilypond[quote,verbatim,relative=2]
 a2 a^\markup {
   \note #"4" #1
   =
@@ -1042,7 +1046,7 @@ a1_\markup {
 Otros objetos de notación se pueden también imprimir en el modo de
 marcado:
 
-@lilypond[quote,verbatim,fragment,relative=1]
+@lilypond[quote,verbatim,relative=1]
 g1 bes
 ees-\markup {
   \finger 4
@@ -1065,7 +1069,7 @@ incluir por separado dentro de un objeto de marcado, como se
 ejemplifica a continuación; hay una lista exhaustiva de estos símbolos
 y sus nombres en @ref{The Feta font}.
 
-@lilypond[quote,verbatim,fragment,relative=2]
+@lilypond[quote,verbatim,relative=2]
 c2
 c'^\markup { \musicglyph #"eight" }
 c,4
@@ -1073,16 +1077,16 @@ c,8._\markup { \musicglyph #"clefs.G_change" }
 c16
 c2^\markup { \musicglyph #"timesig.neomensural94" }
 @end lilypond
-@c TODO: add \lookup here? -vv
 
 @noindent
 Otra forma de imprimir glifos que no son de texto se encuentra
-descrita en @ref{Fonts explained}.
+descrita en @ref{Fonts explained}.  Tiene la utilidad de imprimir
+llaves de distintos tamaños.
 
 El modo de marcado también contempla diagramas para instrumentos
 específicos:
 
-@lilypond[quote,verbatim,fragment,relative=2]
+@lilypond[quote,verbatim,relative=2]
 c1^\markup {
   \fret-diagram-terse #"x;x;o;2;3;2;"
 }
@@ -1109,10 +1113,10 @@ Incluso una partitura completa se puede incluir dentro de un objeto de
 marcado.  En tal caso, el bloque anidado @code{\score} debe contener
 un bloque @code{\layout}, como se muestra aquí:
 
-@lilypond[quote,verbatim,fragment,relative=1]
+@lilypond[quote,verbatim,relative=1]
 c4 d^\markup {
   \score {
-    \relative { c4 d e f }
+    \relative c' { c4 d e f }
     \layout { }
   }
 }
@@ -1123,8 +1127,8 @@ c d e f
 Hay una lista exhaustiva de instrucciones relacionadas con la notación
 musical en @ref{Music}.
 
-@seealso
 
+@seealso
 Referencia de la notación:
 @ref{Music},
 @ref{The Feta font},
@@ -1156,7 +1160,7 @@ que pueden abarcar varias páginas:
     Un texto muy largo de líneas justificadas.
     ...
   }
-  \justified-lines {
+  \wordwrap-lines {
     Otro párrafo muy largo.
     ...
   }
@@ -1177,8 +1181,8 @@ o una lista de listas de marcado.
 Hay una lista exhaustiva de las instrucciones de lista de marcado en
 @ref{Text markup list commands}.
 
-@seealso
 
+@seealso
 Referencia de la notación:
 @ref{Text markup list commands},
 @ref{New markup list command definition}.
@@ -1192,9 +1196,11 @@ Referencia de funcionamiento interno:
 Archivos de inicio:
 @file{scm/@/define@/-markup@/-commands@/.scm}.
 
+
 @predefined
 @funindex \markuplines
-@code{\markuplines}
+@code{\markuplines}.
+@endpredefined
 
 
 @node Fonts
@@ -1215,6 +1221,8 @@ tipográficas, y cómo se pueden cambiar en las partituras.
 
 @cindex Pango
 @cindex fuentes tipográficas, explicación
+@cindex llaves de distintos tamaños
+
 @funindex font-interface
 
 Las fuentes tipográficas se manejan a través de distintas bibliotecas.
@@ -1227,7 +1235,7 @@ siguiente sintaxis permite usar directamente varias tipografías
 @code{feta} de LilyPond distintas a las de texto en el modo de
 marcado:
 
-@lilypond[quote,verbatim,fragment,relative=2]
+@lilypond[quote,verbatim,relative=2]
 a1^\markup {
   \vcenter {
     \override #'(font-encoding . fetaBraces)
@@ -1243,8 +1251,18 @@ a1^\markup {
 @end lilypond
 
 @noindent
-Una sintaxis más simple pero más limitada se describe en @ref{Music
-notation inside markup}.
+Sin embargo, todos estos glifos excepto las llaves de varios tamaños
+que están contenidas en la fuente tipográfica @code{fetaBraces} están
+disponibles utilizando la sintaxis más sencilla que se describe en
+@ref{Music notation inside markup}.
+
+Cuando se usan los glifos de la fuente de llaves @code{fetaBraces}, el
+tamaño de la llave se especifica por la parte numérica del nombre del
+glifo, en unidades arbitrarias.  Se puede especificar cualquier entero
+de @code{0} a @code{575} inclusive, siendo @code{0} el que produce la
+llave más pequeña.  El valor óptimo se debe determinar por ensayo y
+error.  Todos estos glifos son llaves izquierdas; las llaves derechas
+se pueden obtener mediante rotación, véase @ref{Rotating objects}.
 
 Están disponibles tres familias de tipografías de texto: la tipografía
 @emph{romana} (con serifa), que de forma predeterminada es New Century
@@ -1254,16 +1272,17 @@ por la instalación de Pango.
 
 Cada familia puede incluir distintas formas y series.  El ejemplo
 siguiente muestra la posibilidad de seleccionar familias, formas,
-series y tamaños alternativos:
-
-@lilypond[quote,verbatim,fragment,relative=2]
-  \override Score.RehearsalMark #'font-family = #'typewriter
-  \mark \markup "Ouverture"
-  \key d \major
-  \override  Voice.TextScript #'font-shape = #'italic
-  \override  Voice.TextScript #'font-series = #'bold
-  d'2.^\markup "Allegro"
-  r4
+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
+\mark \markup "Ouverture"
+\override Voice.TextScript #'font-shape = #'italic
+\override Voice.TextScript #'font-series = #'bold
+d2.^\markup "Allegro"
+\override Voice.TextScript #'font-size = #-3
+c4^smaller
 @end lilypond
 
 @noindent
@@ -1293,16 +1312,13 @@ este caso es preferible usar la sintaxis sencilla que se explica en
 }
 @end lilypond
 
-@ignore
-@c FIXME: This needs an example -vv
+Aunque es fácil cambiar entre las fuentes tipográficas
+preconfiguradas, también es posible usar otras fuentes, como se
+explica en las siguientes secciones: @ref{Single entry fonts} y
+@ref{Entire document fonts}.
 
-The size of the font may be set with the @code{font-size}
-property.  The resulting size is taken relative to the
-@code{text-font-size} as defined in the @code{\paper} block.
-@end ignore
 
 @seealso
-
 Referencia de la notación:
 @ref{The Feta font},
 @ref{Music notation inside markup},
@@ -1317,12 +1333,12 @@ Se puede usar en una partitura cualquier fuente tipográfica que esté
 instalada en el sistema operativo y reconocida por parte de
 FontConfig, usando la siguiente sintaxis:
 
-@lilypond[quote,verbatim,fragment,relative=1]
+@lilypond[quote,verbatim,relative=2]
 \override Staff.TimeSignature #'font-name = #"Charter"
 \override Staff.TimeSignature #'font-size = #2
 \time 3/4
 
-c1_\markup {
+a1_\markup {
   \override #'(font-name . "Vera Bold")
     { Vera Bold }
 }
@@ -1341,8 +1357,8 @@ lilypond -dshow-available-fonts x
 El último argumento de la instrucción puede ser cualquiera, pero debe
 estar presente.
 
-@seealso
 
+@seealso
 Referencia de la notación:
 @ref{Fonts explained},
 @ref{Entire document fonts}.
@@ -1353,14 +1369,15 @@ Fragmentos de código:
 Archivos de inicio:
 @file{lily/@/font@/-config@/-scheme@/.cc}.
 
+
 @node Entire document fonts
 @unnumberedsubsubsec Entire document fonts
 
-Se puede cambiar la familia predeterminada de la fuente tipográfica
-para todo el documento.  En este caso se debe usar la siguiente
-sintaxis, proporcionando tres familias de fuente que se usarán
-respectivamente como tipografías @emph{romana}, @emph{sans-serif} y
-@emph{monoespaciada}, como se explica en @ref{Fonts explained}.
+Se pueden cambiar las fuentes tipográficas que se usan como
+tipografías predeterminadas en las familias @emph{romana},
+@emph{sans-serif} y @emph{monoespaciada}, especificándolas en este
+orden como se ve en el ejemplo de abajo.  Para leer más explicaciones
+sobre las fuentes tipográficas, consulte @ref{Fonts explained}.
 
 @cindex fuente, establecer la familia de
 @funindex make-pango-font-tree
@@ -1386,8 +1403,8 @@ respectivamente como tipografías @emph{romana}, @emph{sans-serif} y
 @c we don't do Helvetica / Courier, since GS incorrectly loads
 @c Apple TTF fonts
 
-@seealso
 
+@seealso
 Referencia de la notación:
 @ref{Fonts explained},
 @ref{Single entry fonts},
index f505d901f04ac477dd48f2445b04ca0f3e146c61..bb447825b9cf11fe7bdd3a9eee5dd807ea32c1b7 100644 (file)
@@ -1,13 +1,13 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 @c This file is part of lilypond-learning.tely
 @ignore
-    Translation of GIT committish: 88f1608ae6fd17b05344bafb2f0721aafdac657b
+    Translation of GIT committish: 41ef91786a08102d9b9a839f6a2f40cec263d723
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @ignore
 Tutorial guidelines:  (different from policy.txt!)
@@ -292,7 +292,7 @@ en aquella que especifica la altura de inicio.  En el ejemplo
 anterior, la primera nota (@code{d}) es el Re más cercano al Do
 central.
 
-Añadiendo (o eliminando) comillas simples @code{'} o comas @code{,} de
+Añadiendo (o eliminando) comillas simples @code{'} o comas @code{,} a
 la instrucción @code{@w{\relative c' @{}}, podemos cambiar la octava
 de inicio:
 
@@ -324,7 +324,7 @@ por debajo.
 }
 @end lilypond
 
-Loo mismo exactamente ocurre cuando cualquiera de esas notas llevan un
+Lo mismo exactamente ocurre cuando cualquiera de esas notas llevan un
 sostenido o un bemol.  Las @notation{Alteraciones accidentales} se
 @strong{ignoran totalmente} en el cálculo de la posición relativa.
 Exactamente la misma cuenta de espacios de pentagrama se hace a partir
@@ -453,10 +453,10 @@ La @notation{indicación de compás} se puede establecer con la orden
 @cindex do en tercera, clave de
 @cindex do en cuarta, clave de
 @cindex fa, clave de
-@cindex treble
+@cindex soprano
 @cindex alto
 @cindex tenor
-@cindex bass
+@cindex bajo
 
 @funindex \clef
 @funindex clef
@@ -523,7 +523,7 @@ Referencia de la notación:
 
 Los archivos de entrada de LilyPond son como los archivos fuente de
 muchos lenguajes de programación corrientes.  Son sensibles a las
-mayúsculas e insensibles al número de espacios Las expresiones se
+mayúsculas e insensibles al número de espacios Las expresiones se
 forman con llaves @{ @} y los comentarios se denotan por un signo de
 porcentaje (@code{%}) o por @w{@code{%@{ ... %@}}}.
 
@@ -675,9 +675,8 @@ para sus experimentos. Para poder ver exactamente el mismo resultado
 (con igual anchura de línea y todo), copie todo lo que está desde
 @qq{Start cut-&-pastable section} hasta el final del archivo.
 
-@seealso
-
 
+@seealso
 Podrá encontrar más consejos y trucos para la construcción de archivos
 de entrada en @ref{Suggestions for writing LilyPond files}; pero quizá
 sea mejor leer primero el resto del tutorial.
@@ -730,7 +729,7 @@ Una nota con @notation{sostenido} se hace añadiendo @code{is} al
 nombre, y una nota @notation{bemol} añadiendo @code{es}.  Como ha
 podido adivinar, un @notation{doble sostenido} o @notation{doble
 bemol} se hace añadiendo @code{isis} o @code{eses}.  Esta sintaxis se
-deriva de las convenciones para da nombre a las notas de las lenguas
+deriva de las convenciones de nomenclatura de las notas en las lenguas
 nórdicas y germánicas como el alemán y el holandés.  Para utilizar
 otros nombres para las @notation{alteraciones accidentales}, véase
 @ruser{Note names in other languages}.
@@ -815,14 +814,14 @@ d cis fis
 ninguna nota lleva una alteración impresa, pero de todas formas usted
 debe añadir el @code{is} a @code{cis} y a @code{fis}.
 
-El texto @code{e} no significa @qq{imprimir una bolita negra en la
-primera línea del pentagrama.}  Más bien significa: @qq{hay una nota
-Mi natural.}  En la tonalidad de La bemol mayor, @emph{lleva} una
+El texto @code{b} no significa @qq{imprimir una bolita negra en la
+tercera línea del pentagrama.}  Más bien significa: @qq{hay una nota
+Si natural.}  En la tonalidad de La bemol mayor, @emph{lleva} una
 alteración accidental:
 
 @lilypond[verbatim,quote,relative=2]
 \key aes \major
-e
+b
 @end lilypond
 
 Poner todas las alteraciones de forma explícita puede que requiera
@@ -832,8 +831,8 @@ imprimir siguiendo varias convenciones distintas.  Consulte
 @ruser{Automatic accidentals} para ver ejemplos de cómo se pueden
 imprimir las alteraciones de acuerdo a reglas diferentes.
 
-@seealso
 
+@seealso
 Referencia de la notación:
 @ruser{Note names in other languages},
 @ruser{Accidentals},
@@ -861,8 +860,8 @@ Glosario musical:
 Glosario musical:
 @rglos{tie}.
 
-Una @notation{tie} se crea adjuntando un carácter de tilde curva @code{~}
-a la primera nota ligada:
+Una @notation{ligadura de unión} se crea adjuntando un carácter de
+tilde curva @code{~} a la primera nota ligada:
 
 @lilypond[verbatim,quote,relative=2]
 g4~ g c2~
@@ -874,9 +873,9 @@ c4 ~ c8 a8 ~ a2
 Glosario musical:
 @rglos{slur}.
 
-Una @notation{slur} es una curva que se traza abarcando varias notas.
-Las notas inicial y final se marcan mediante @code{(} y @code{)}
-respectivamente.
+Una @notation{ligadura de expresión} es una curva que se traza
+abarcando varias notas.  Las notas inicial y final se marcan mediante
+@code{(} y @code{)} respectivamente.
 
 @lilypond[verbatim,quote,relative=2]
 d4( c16) cis( d e c cis d) e( d4)
@@ -920,8 +919,8 @@ se pueden anidar unas dentro de otras.
 c2~( c8 fis fis4 ~ fis2 g2)
 @end lilypond
 
-@seealso
 
+@seealso
 Referencia de la notación:
 @ruser{Ties},
 @ruser{Slurs},
@@ -1015,8 +1014,8 @@ puede usar la instrucción @code{\!}:
 c2\< c2\ff\> c2 c2\!
 @end lilypond
 
-@seealso
 
+@seealso
 Referencia de la notación:
 @ruser{Articulations and ornamentations},
 @ruser{Fingering instructions},
@@ -1050,7 +1049,6 @@ a1_\markup{
 
 
 @seealso
-
 Referencia de la notación:
 @ruser{Writing text}.
 
@@ -1102,8 +1100,8 @@ a8 c b4 d8. c16 b4
 a8 c b4 d8. c16 b4
 @end lilypond
 
-@seealso
 
+@seealso
 Referencia de la notación:
 @ruser{Automatic beams},
 @ruser{Manual beams}.
@@ -1186,8 +1184,8 @@ c2 \appoggiatura b16 c2
 c2 \acciaccatura b16 c2
 @end lilypond
 
-@seealso
 
+@seealso
 Referencia de la notación:
 @ruser{Grace notes},
 @ruser{Tuplets},
@@ -1461,8 +1459,8 @@ Cada uno de estos grupos de pautas forma un tipo de contexto distinto,
 que produce la llave a la izquierda y que también controla el alcance
 de las líneas divisorias.
 
-@seealso
 
+@seealso
 Referencia de la notación:
 @ruser{Keyboard and other multi-staff instruments},
 @ruser{Displaying staves}.
@@ -1494,7 +1492,7 @@ tener la misma duración, y que la duración se escribe después del
 r4 <c e g>4 <c f a>2
 @end lilypond
 
-Debemmos pensar en los acordes como algo casi equivalente a las notas
+Debemos pensar en los acordes como algo casi equivalente a las notas
 sencillas: casi todo lo que se puede adjuntar a una nota se puede
 adjuntar también a un acorde, y todo debe ir @emph{por fuera} de los
 ángulos.  Por ejemplo, puede combinar marcas como barras y ligaduras,
@@ -1569,8 +1567,8 @@ Una vez más, las expresiones de este tipo se pueden anidar de forma arbitraria.
 >>
 @end lilypond
 
-@seealso
 
+@seealso
 Referencia de la notación:
 @ruser{Simultaneous notes}.
 
@@ -1795,7 +1793,7 @@ el aria de Fígaro @notation{Largo al factotum}:
     \clef bass
     \key c \major
     \time 6/8
-    c4.~ c8 d b c([ d)] b c d b c
+    c4.~ c8 d b c([ d]) b c d b c
   }
   \addlyrics {
     Lar -- go_al fac -- to -- tum del -- la cit -- tà
@@ -1805,12 +1803,10 @@ el aria de Fígaro @notation{Largo al factotum}:
 
 
 @seealso
-
 Referencia de la notación:
 @ruser{Vocal music}.
 
 
-
 @node Lyrics to multiple staves
 @subsection Lyrics to multiple staves
 
@@ -1850,11 +1846,12 @@ ejemplo se hace mejor separando la letra de la estructura de
 pentagramas mediante variables (expresiones con nombre).  Éstas se
 tratan en @ref{Organizing pieces with variables}.
 
-@seealso
 
+@seealso
 Referencia de la notación:
 @ruser{Vocal music}.
 
+
 @node Final touches
 @section Final touches
 
@@ -1878,7 +1875,7 @@ del manual.
 @cindex variables, definir
 @cindex identificadores
 @cindex macros
-@cindex assignación de variables
+@cindex asignación de variables
 @cindex uso de las variables
 @cindex variables, uso de
 @cindex variables, caracteres permitidos en
@@ -2119,12 +2116,13 @@ archivos de LilyPond generados por ordenador.
 @subsection After the tutorial
 
 Después de terminar el tutorial, quizá debería probar a escribir una o
-dos piezas.  Comience con una de las plantillas del @ref{Templates} y
-añada algunas notas.  Si necesita un tipo de notación que no ha sido
-tratada en el tutorial, eche un vistazo a la Referencia de Notación,
-empezando por @ruser{Musical notation}.  Si quiere escribir música para
-un conjunto instrumental que no está cubierto por ninguna plantilla,
-consulte @ref{Extending the templates}.
+dos piezas.  Comience con una de las plantillas que aparecen en
+@ref{Templates} y añada algunas notas.  Si necesita un tipo de
+notación que no ha sido tratada en el tutorial, eche un vistazo a la
+Referencia de Notación, empezando por @ruser{Musical notation}.  Si
+quiere escribir música para un conjunto instrumental que no está
+cubierto por ninguna plantilla, consulte @ref{Extending the
+templates}.
 
 Una vez que ha escrito algunas piezas cortas, lea el resto del Manual
 de aprendizaje (capítulos 3 al 5).  ¡Por supuesto, no pasa nada por
index 73193062375b312cd04184b902b48b78c889d0b1..ea153842584f4a4d1c309d261adc8f2d0fc3ab52 100644 (file)
@@ -1,13 +1,13 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 @c This file is part of lilypond.tely
 @ignore
-    Translation of GIT committish: 9b6add29eb85dc6cd860593a2c8826a366f8a719
+    Translation of GIT committish: 41ef91786a08102d9b9a839f6a2f40cec263d723
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @node Tweaking output
 @chapter Tweaking output
@@ -126,8 +126,8 @@ que vamos a utilizar en este capítulo.
 @node Naming conventions of objects and properties
 @subsection Naming conventions of objects and properties
 
-@cindex nomemclatura, convenciones de, para objetos
-@cindex nomemclatura, convenciones de, para propiedades
+@cindex nomenclatura, convenciones de, para objetos
+@cindex nomenclatura, convenciones de, para propiedades
 @cindex objetos, convenciones de nomenclatura
 @cindex propiedades, convenciones de nomenclatura
 
@@ -229,6 +229,9 @@ parte del resto de este capítulo presentaremos ejemplos de cómo se
 usa.  A continuación hay un ejemplo sencillo para cambiar el color de
 una cabeza:
 
+@cindex color, propiedad, ejemplo
+@cindex NoteHead, ejemplo de sobreescritura
+
 @lilypond[quote,fragment,ragged-right,verbatim,relative=1]
 c d
 \override NoteHead #'color = #red
@@ -261,6 +264,9 @@ Una vez más, igual que @var{Contexto} dentro de la instrucción
 Aquí devolvemos el color de la cabeza al valor predeterminado para las
 dos últimas notas:
 
+@cindex color, propiedad, ejemplo
+@cindex NoteHead, ejemplo de sobreescritura
+
 @lilypond[quote,fragment,ragged-right,verbatim,relative=1]
 c d
 \override NoteHead #'color = #red
@@ -283,6 +289,9 @@ tiempo musical en curso y antes de que la propiedad vuelva a tener
 otra vez su valor predeterminado.  Utilizando el mismo ejemplo,
 podemos cambiar el color de una sola nota de la siguiente manera:
 
+@cindex color, propiedad, ejemplo
+@cindex NoteHead, ejemplo de sobreescritura
+
 @lilypond[quote,fragment,ragged-right,verbatim,relative=1]
 c d
 \once \override NoteHead #'color = #red
@@ -322,6 +331,9 @@ He aquí un ejemplo.  Suponga que queremos cambiar el tamaño de la
 cabeza de la nota intermedia (el Mi) en un acorde de Do mayor.  En
 primer lugar, veamos lo que haría @code{\once \override}:
 
+@cindex font-size, propiedad, ejemplo
+@cindex NoteHead, ejemplo de sobreescritura
+
 @lilypond[quote,fragment,ragged-right,verbatim,relative=1]
   <c e g>4
   \once \override NoteHead #'font-size = #-3
@@ -350,25 +362,31 @@ dentro de ángulos simples junto con la nota.
 Así pues, volviendo a nuestro ejemplo, el tamaño de la nota intermedia
 se cambiaría de la siguiente forma:
 
+@cindex font-size, propiedad, ejemplo
+@cindex @code{\tweak}, ejemplo
+
 @lilypond[quote,fragment,ragged-right,verbatim,relative=1]
   <c 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
-@code{\override}.  Ni el contexto ni el objeto de
-presentación se deben especificar; de hecho, generaría un error
-hacerlo.  Los dos están implícitos por el siguiente elemento del flujo
-de entrada.  Así que la sintaxis genérica de la instrucción
-@code{\tweak} es, simplemente,
+@code{\override}.  Ni el contexto ni el objeto de presentación se
+deben especificar; de hecho, generaría un error hacerlo.  Los dos
+están implícitos por el siguiente elemento del flujo de entrada.
+Observe también que no debe haber un signo igual. Así que la sintaxis
+genérica de la instrucción @code{\tweak} es, simplemente,
 
 @example
-\tweak #'@var{propiedad-de-presentación} #@var{valor}
+\tweak #'@var{propiedad-de-presentación} #@var{valor}
 @end example
 
 Una instrucción @code{\tweak} también se puede usar para modificar
 sólo una de una serie de articulaciones, como se muestra aquí:
 
+@cindex color, propiedad, ejemplo
+@cindex @code{\tweak}, ejemplo
+
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 a ^Black
   -\tweak #'color #red ^Red
@@ -382,6 +400,7 @@ marca de articulación como si ella misma fuera una articulación.
 @cindex grupos especiales anidados
 @cindex tresillos anidados
 @cindex corchete del grupo especial
+@cindex corchete de tresillo
 @cindex grupo especial, corchete de
 @cindex tresillo, corchete de
 
@@ -399,6 +418,10 @@ colocar por encima de las notas y el segundo especifica que el número
 del tresillo se debe imprimir en rojo sobre el corchete del primer
 tresillo corto.
 
+@cindex @code{\tweak}, ejemplo
+@cindex direction, propiedad, ejemplo
+@cindex color, propiedad, ejemplo
+
 @lilypond[quote,ragged-right,verbatim,fragment,relative=2]
 \tweak #'direction #up
 \times 4/3 {
@@ -413,6 +436,11 @@ Si los grupos anidados no comienzan en el mismo momento, su apariencia
 se puede modificar de la forma usual mediante instrucciones
 @code{\override}:
 
+@cindex text, propiedad, ejemplo
+@cindex tuplet-number, función, ejemplo
+@cindex transparent, propiedad, ejemplo
+@cindex TupletNumber, ejemplo de sobreescritura
+
 @c NOTE Tuplet brackets collide if notes are high on staff
 @c See issue 509
 @lilypond[quote,ragged-right,verbatim,fragment,relative=1]
@@ -428,8 +456,8 @@ se puede modificar de la forma usual mediante instrucciones
 }
 @end lilypond
 
-@seealso
 
+@seealso
 Referencia de la notación:
 @ruser{The tweak command}.
 
@@ -476,6 +504,8 @@ con tan sólo algo de práctica.
 
 @cindex sobreescritura, ejemplo de
 @cindex Referencia de Funcionamiento Interno, ejemplo de utilización
+@cindex @code{\addlyrics}, ejemplo
+
 
 Utilicemos un ejemplo concreto con un sencillo fragmento de música
 real:
@@ -573,6 +603,9 @@ Aunque nos falta seguridad y estamos todavía aprendiendo, la mejor
 respuesta es: @q{Dentro de la música, antes de la primera ligadura y
 cerca de ella.}  Hagámoslo así:
 
+@cindex Slur, ejemplo de sobreescritura
+@cindex thickness, propiedad, ejemplo
+
 @lilypond[quote,verbatim,relative=2]
 {
   \time 6/8
@@ -603,7 +636,7 @@ continuación.
 @subheading Finding the context
 
 @cindex contexto, encontrar
-@cindex contexto, buscar, correcto
+@cindex contexto, buscar el, correcto
 
 Pero en primer lugar ¿qué habría pasado si hubiésemos tenido que
 especificar el contexto? ¿Cuál sería?  Podemos suponer que las
@@ -643,6 +676,9 @@ encuentre alguna ligadura, sino que simplemente se ignora.  Así pues,
 la instrucción que lleva @code{\once} se debe reposicionar de la forma
 siguiente:
 
+@cindex Slur, ejemplo de sobreescritura
+@cindex thickness, propiedad, ejemplo
+
 @lilypond[quote,verbatim,relative=2]
 {
   \time 6/8
@@ -668,7 +704,7 @@ la instrucción @code{\set}.
 
 @subheading Reverting
 
-@cindex revert
+@cindex revertir
 @cindex predeterminadas, recuperar las propiedades
 
 @funindex \revert
@@ -680,6 +716,9 @@ una de ellas precedida por el prefijo @code{\once}, situadas
 inmediatamente antes de cada una de las notas en que comienzan las
 ligaduras:
 
+@cindex Slur, ejemplo de sobreescritura
+@cindex thickness, propiedad, ejemplo
+
 @lilypond[quote,verbatim,relative=2]
 {
   \time 6/8
@@ -705,6 +744,9 @@ instrucción @code{\revert} (restablecer) para devolver la propiedad
 del grosor, @code{thickness}, a su valor predeterminado después de la
 segunda ligadura:
 
+@cindex Slur, ejemplo de sobreescritura
+@cindex thickness, propiedad, ejemplo
+
 @lilypond[quote,verbatim,relative=2]
 {
   \time 6/8
@@ -821,6 +863,11 @@ imprimir la letra en cursiva sería
 y debe colocarse justo delante de, y cerca de, la letra a la que debe
 afectar, como esto:
 
+@cindex font-shape, propiedad, ejemplo
+@cindex italic, ejemplo
+@cindex LyricText, ejemplo de sobreescritura
+@cindex @code{\addlyrics}, ejemplo
+
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 {
   \time 6/8
@@ -867,11 +914,12 @@ final y la llave de cierre.}
 escriba siempre espacios antes y después del punto que separa el
 nombre del contexto y el nombre del objeto.}
 
-@seealso
 
+@seealso
 Manual de aprendizaje:
 @ref{Scheme tutorial}.
 
+
 @node Types of properties
 @subsection Types of properties
 
@@ -933,11 +981,12 @@ en la instrucción @code{\override}.
   @tab @code{'#(#t #t #f)}
 @end multitable
 
-@seealso
 
+@seealso
 Manual de aprendizaje:
 @ref{Scheme tutorial}.
 
+
 @node Appearance of objects
 @section Appearance of objects
 
@@ -998,6 +1047,9 @@ que como otras muchas propiedades, se puede establecer de forma que no
 imprima nada ajustando su valor a @code{#f}.  Vamos a probarlo, como
 antes, omitiendo el Contexto implícito, @code{Voice}:
 
+@cindex BarLine, ejemplo de sobreescritura
+@cindex stencil, propiedad, ejemplo
+
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 {
   \time 12/16
@@ -1023,6 +1075,9 @@ simplemente no funciona.  No se produce ningún mensaje de error, y no
 se registra nada en el archivo log de registro.  Vamos a intentar
 corregirlo escribiendo el contexto correcto:
 
+@cindex BarLine, ejemplo de sobreescritura
+@cindex stencil, propiedad, ejemplo
+
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 {
   \time 12/16
@@ -1037,7 +1092,7 @@ Ahora las barras de compás han desaparecido.
 
 @subheading break-visibility
 
-@cindex break-visibility property
+@cindex break-visibility, propiedad
 
 Vemos en las propiedades de @code{BarLine} que aparecen en el RFI que
 la propiedad @code{break-visibility} requiere un vector de tres
@@ -1052,6 +1107,9 @@ como parte del valor para introducir un vector, y el primer símbolo de
 almohadilla @code{#} se necesita, como siempre, para preceder el valor
 en sí dentro de la instrucción @code{\override}.
 
+@cindex BarLine, ejemplo de sobreescritura
+@cindex break-visibility, propiedad, ejemplo
+
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 {
   \time 12/16
@@ -1066,7 +1124,7 @@ Y podemos ver que esto también quita todas las líneas divisorias.
 
 @subheading transparent
 
-@cindex transparente, propiedad
+@cindex transparent, propiedad
 @cindex transparencia
 
 En la relación de propiedades que se especifican en la página del
@@ -1083,6 +1141,9 @@ del contexto de @code{Staff} y también contempla el interface
 @code{grob-interface}.  Así pues, la instrucción que hace transparente
 a la indicación de compás es:
 
+@cindex TimeSignature, ejemplo de sobreescritura
+@cindex transparent, propiedad, ejemplo
+
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 {
   \time 12/16
@@ -1101,6 +1162,9 @@ en otras circunstancias esta separación podría no ser deseable.  En
 vez de eso, para quitarla, el stencil o «sello» de la indicación de
 compás se debe establecer al valor @code{#f}:
 
+@cindex TimeSignature, ejemplo de sobreescritura
+@cindex stencil, propiedad, ejemplo
+
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 {
   \time 12/16
@@ -1139,6 +1203,9 @@ primera forma es utilizar uno de los colores @q{normales} que están
 relacionados en la primera tabla de la @ruser{List of colors}.  Para
 poner las líneas divisorias de color blanco, escribimos:
 
+@cindex BarLine, ejemplo de sobreescritura
+@cindex color, propiedad, ejemplo
+
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 {
   \time 12/16
@@ -1169,6 +1236,9 @@ colors}.  Sin embargo, éstos deben ir precedidos de otra función, que
 convierte los nombres de colores de X11 en la lista de valores
 internos, @code{x11-color}, de la siguiente manera:
 
+@cindex BarLine, ejemplo de sobreescritura
+@cindex color, propiedad, ejemplo
+
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 {
   \time 12/16
@@ -1196,6 +1266,9 @@ valores entre 0 y 1.  Por lo tanto, para establecer el color a rojo el
 valor debe ser @code{(rgb-color 1 0 0)} y para blanco debe ser
 @code{(rgb-color 1 1 1)}:
 
+@cindex BarLine, ejemplo de sobreescritura
+@cindex color, propiedad, ejemplo
+
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 {
   \time 12/16
@@ -1212,6 +1285,15 @@ hasta el blanco, @code{'grey100}, en pasos de 1.  Vamos a ilustrar esto
 estableciendo todos los objetos de presentación de nuestro ejemplo a
 varias gradaciones de gris:
 
+@cindex StaffSymbol, ejemplo de sobreescritura
+@cindex TimeSignature, ejemplo de sobreescritura
+@cindex Clef, ejemplo de sobreescritura
+@cindex NoteHead, ejemplo de sobreescritura
+@cindex Stem, ejemplo de sobreescritura
+@cindex BarLine, ejemplo de sobreescritura
+@cindex color property, ejemplo
+@cindex x11-color, ejemplo de utilización
+
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 {
   \time 12/16
@@ -1250,6 +1332,9 @@ Empezaremos examinando de nuevo un ejemplo anterior (véase
 @ref{Nesting music expressions}) que nos mostraba cómo introducir un
 pentagrama temporal, como en un @rglos{ossia}.
 
+@cindex alignAboveContext, propiedad, ejemplo
+@cindex @code{\with}, ejemplo
+
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 \new Staff ="main" {
        \relative g' {
@@ -1258,7 +1343,7 @@ pentagrama temporal, como en un @rglos{ossia}.
          <<
            { f c c }
            \new Staff \with {
-             alignAboveContext = "main" }
+             alignAboveContext = #"main" }
            { f8 f c }
          >>
          r4 |
@@ -1271,6 +1356,12 @@ por lo normal se imprimen más pequeños que el pentagrama principal.
 Ya sabemos cómo quitar la clave y el compás: simplemente establecemos
 el sello de cada uno de ellos a @code{#f}, como sigue:
 
+@cindex alignAboveContext, propiedad, ejemplo
+@cindex @code{\with}, ejemplo
+@cindex stencil, propiedad, ejemplo
+@cindex Clef, ejemplo de sobreescritura
+@cindex TimeSignature, ejemplo de sobreescritura
+
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 \new Staff ="main" {
   \relative g' {
@@ -1279,7 +1370,7 @@ el sello de cada uno de ellos a @code{#f}, como sigue:
     <<
       { f c c }
       \new Staff \with {
-        alignAboveContext = "main"
+        alignAboveContext = #"main"
       }
       {
         \override Staff.Clef #'stencil = ##f
@@ -1329,6 +1420,11 @@ contexto en este lugar.
 
 Así pues, podemos reemplazar el ejemplo anterior con
 
+@cindex alignAboveContext, propiedad, ejemplo
+@cindex @code{\with}, example
+@cindex Clef, ejemplo de sobreescritura
+@cindex TimeSignature, ejemplo de sobreescritura
+
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 \new Staff ="main" {
   \relative g' {
@@ -1337,7 +1433,7 @@ Así pues, podemos reemplazar el ejemplo anterior con
     <<
       { f c c }
       \new Staff \with {
-        alignAboveContext = "main"
+        alignAboveContext = #"main"
         % Don't print clefs in this staff
         \override Clef #'stencil = ##f
         % Don't print time signatures in this staff
@@ -1393,6 +1489,12 @@ reduce o aumenta el tamaño aproximadamente en un 12%.
 
 Vamos a probarlo en nuestro ejemplo del ossia:
 
+@cindex alignAboveContext, propiedad, ejemplo
+@cindex @code{\with}, ejemplo
+@cindex Clef, ejemplo de sobreescritura
+@cindex TimeSignature, ejemplo de sobreescritura
+@cindex fontSize, propiedad, ejemplo
+
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 \new Staff ="main" {
   \relative g' {
@@ -1401,7 +1503,7 @@ Vamos a probarlo en nuestro ejemplo del ossia:
     <<
       { f c c }
       \new Staff \with {
-        alignAboveContext = "main"
+        alignAboveContext = #"main"
         \override Clef #'stencil = ##f
         \override TimeSignature #'stencil = ##f
         % Reduce all font sizes by ~24%
@@ -1450,6 +1552,16 @@ propósito.  Toma un argumento, el cambio de tamaño de la tipografía
 para reducir otros objetos en la misma proporción.  Se usa de la
 siguiente forma:
 
+@cindex alignAboveContext, propiedad, ejemplo
+@cindex @code{\with}, ejemplo
+@cindex Clef, ejemplo de sobreescritura
+@cindex TimeSignature, ejemplo de sobreescritura
+@cindex fontSize, propiedad, ejemplo
+@cindex StaffSymbol, ejemplo de sobreescritura
+@cindex magstep, función, ejemplo de utilización
+@cindex staff-space, propiedad, ejemplo
+@cindex stencil, propiedad, ejemplo
+
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 \new Staff ="main" {
   \relative g' {
@@ -1458,7 +1570,7 @@ siguiente forma:
     <<
       { f c c }
       \new Staff \with {
-        alignAboveContext = "main"
+        alignAboveContext = #"main"
         \override Clef #'stencil = ##f
         \override TimeSignature #'stencil = ##f
         fontSize = #-2
@@ -1560,6 +1672,8 @@ prioridad (pues no se ha establecido explícitamente).  Observe que
 @q{Text3} se posiciona de nuevo automáticamente cerca del pentagrama,
 acomodado por debajo de @q{Text2}.
 
+@cindex markup, ejemplo
+
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 c2^"Text1"
 c^"Text2"
@@ -1590,7 +1704,7 @@ pentagramas adyacentes:
 @node Within-staff objects
 @subsection Within-staff objects
 
-Ya hemos visto cómo las instrucciones @code{\voiceXXX} affectan a la
+Ya hemos visto cómo las instrucciones @code{\voiceXXX} afectan a la
 dirección de las ligaduras de expresión y de unión, digitaciones y
 todo lo demás que dependa de la dirección de las plicas.  Cuando se
 escribe música polifónica, estas instrucciones son esenciales para que
@@ -1614,6 +1728,10 @@ la propiedad @code{direction}.
 @cindex arriba
 @cindex centro
 @cindex neutro
+@cindex down
+@cindex up
+@cindex center
+@cindex neutral
 
 El ejemplo siguiente muestra en el compás 1 el comportamiento
 predeterminado de las plicas, con las de las notas agudas apuntando
@@ -1622,6 +1740,9 @@ todas las plicas forzadas hacia abajo, cuatro notas con las plicas
 forzadas hacia arriba, y por último cuatro notas devueltas al
 comportamiento predeterminado.
 
+@cindex Stem, ejemplo de sobreescritura
+@cindex direction, propiedad, ejemplo
+
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 a4 g c a
 \override Stem #'direction = #DOWN
@@ -1709,9 +1830,12 @@ digitación encima, debajo, a la izquierda o a la derecha de cada nota.
 
 En primer lugar, he aquí el efecto de @code{direction} sobre las
 digitaciones aplicadas a notas sueltas.  Se muestra en el primer
-compás el comportamiento predeterminado, y en los dos comases
+compás el comportamiento predeterminado, y en los dos compases
 siguiente el efecto de especificar @code{DOWN} y @code{UP}:
 
+@cindex Fingering, ejemplo de sobreescritura
+@cindex direction, propiedad, ejemplo
+
 @lilypond[quote,verbatim,relative=2]
 c-5 a-3 f-1 c'-5
 \override Fingering #'direction = #DOWN
@@ -1726,6 +1850,9 @@ encima o por debajo de las notas; suele ser preferible usar @code{_} o
 @code{^} en lugar de @code{-}, antes del número de la digitación.
 Este es el ejemplo anterior utilizando este método:
 
+@cindex fingering, ejemplo
+@cindex digitación, ejemplo
+
 @lilypond[quote,verbatim,relative=2]
 c-5 a-3 f-1 c'-5
 c_5 a_3 f_1 c'_5
@@ -1737,6 +1864,9 @@ prefijos direccionales @code{_} y @code{^} sí funcionan.  De forma
 predeterminada, las digitaciones se colocan automáticamente encima y
 debajo de las notas de un acorde, como se muestra aquí:
 
+@cindex fingering, ejemplo
+@cindex digitación, ejemplo
+
 @lilypond[quote,verbatim,relative=2]
 <c-5 g-3>
 <c-5 g-3 e-2>
@@ -1747,6 +1877,9 @@ debajo de las notas de un acorde, como se muestra aquí:
 pero se puede forzar de manera que todos o algunos de los números de
 digitación estén por encima o por debajo:
 
+@cindex fingering, ejemplo
+@cindex digitación, ejemplo
+
 @lilypond[quote,verbatim,relative=2]
 <c-5 g-3 e-2 c-1>
 <c^5 g_3 e_2 c_1>
@@ -1783,6 +1916,11 @@ una sola nota encerrándola entre ángulos simples.}
 
 Aquí podemos ver algunos ejemplos:
 
+@cindex fingering, ejemplo
+@cindex digitación, ejemplo
+@cindex @code{\set}, ejemplo de utilización
+@cindex fingeringOrientations, propiedad, ejemplo
+
 @lilypond[quote,fragment,ragged-right,verbatim,relative=1]
 \set fingeringOrientations = #'(left)
 <f-2>
@@ -1882,9 +2020,12 @@ de ellos.
 @funindex \stopTextSpan
 @funindex stopTextSpan
 
+@cindex TextSpanner, ejemplo de sobreescritura
+@cindex bound-details, propiedad, ejemplo
+
 @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
@@ -1952,9 +2093,12 @@ anteriores, y reducirlo a un valor inferior al de @code{TextSpanner},
 recordando que @code{OttavaBracket} se crea dentro del contexto de
 @code{Staff}:
 
+@cindex TextSpanner, ejemplo de sobreescritura
+@cindex bound-details, propiedad, ejemplo
+
 @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
@@ -1977,6 +2121,35 @@ c\ff c \stopTextSpan
 c, c c c
 @end lilypond
 
+@cindex ligaduras y outside-staff-priority
+@cindex ligaduras y articulaciones
+@cindex articulaciones y ligaduras
+
+De forma predeterminada, las ligaduras de expresión están clasificadas
+como objetos dentro-del-pentagrama, pero con frecuencia aparecen
+encima del pentagrama si las notas que une son muy agudas.  Ello puede
+empujar a una posición muy elevada a los objetos fuera-del-pentagrama
+como las articulaciones, pues la ligadura se colocará en primer lugar.
+La propiedad @code{avoid-slur} de la articulación se puede establecer
+al valor @code{'inside} (por dentro) para llevarla al interior de la
+ligadura, pero la propiedad @code{avoid-slur} es efectiva solamente si
+la prioridad @code{outside-staff-priority} está también ajustada al
+valor @code{#f}.  De forma alternativa, la prioridad
+@code{outside-staff-priority} de la ligadura se puede fijar en un
+valor numérico para hacer que se sitúe en línea con otros objetos
+fuera del pentagrama de acuerdo con este valor.  He aquí un ejemplo
+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
+c^\markup\tiny\sharp d4.) c8
+\once \override Slur #'outside-staff-priority = #500
+c4( c^\markup\tiny\sharp d4.) c8
+@end lilypond
+
 Los cambios en @code{outside-staff-priority} también se pueden emplear
 para controlar la situación vertical de los objetos individuales,
 aunque los resultados pueden no siempre ser deseables.  Suponga que
@@ -1986,6 +2159,9 @@ bajo el epígrafe Comportamiento Automático de más arriba (véase
 prioridad de @code{TextScript} en el RFI o en las tablas de arriba, y
 aumentar la prioridad de @qq{Text3} hasta un valor superior:
 
+@cindex TextScript, ejemplo de sobreescritura
+@cindex outside-staff-priority, propiedad, ejemplo
+
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 c2^"Text1"
 c^"Text2"
@@ -2039,6 +2215,9 @@ desplazamiento automático hacia arriba se puede desactivar mediante el
 establecimiento de la prioridad a @code{#f}.  He aquí un ejemplo que
 muestra cómo el texto de marcado interactúa con tales notas.
 
+@cindex TextScript, ejemplo de sobreescritura
+@cindex outside-staff-priority, propiedad, ejemplo
+
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 % This markup is short enough to fit without collision
 c2^"Tex"
@@ -2056,7 +2235,7 @@ 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 honoured
+c,,2^"Long Text   "  % Spaces at end are honored
 c''2
 @end lilypond
 
@@ -2142,6 +2321,9 @@ instrucción que lo hace para las indicaciones dinámicas:
 @noindent
 Veamos si funciona en nuestro ejemplo anterior:
 
+@cindex DynamicText, ejemplo de sobreescritura
+@cindex extra-spacing-width, propiedad, ejemplo
+
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 \dynamicUp
 \override DynamicText #'extra-spacing-width = #'(0 . 0)
@@ -2159,6 +2341,9 @@ son el espacio entre dos líneas de pentagrama, así que al mover el
 límite izquierdo media unidad a la izquierda y el límite derecho media
 unidad hacia la derecha, deberíamos conseguirlo:
 
+@cindex DynamicText, ejemplo de sobreescritura
+@cindex extra-spacing-width, propiedad, ejemplo
+
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 \dynamicUp
 % Extend width by 1 staff space
@@ -2188,9 +2373,9 @@ que se estudia en la sección siguiente.
 
 @cindex mover objetos superpuestos
 @cindex mover objetos que colisionan
-@cindex moving grobs que colisionan
+@cindex mover grobs que colisionan
 @cindex objetos que colisionan, mover
-@cindex grobs, mover, que colisionan
+@cindex grobs que colisionan, mover
 
 Aunque pueda sorprenderle, LilyPond no es perfecto.  Ciertos elementos
 de notación se pueden superponer, lo que es una lástima, pero en
@@ -2452,12 +2637,18 @@ La propiedad @code{padding} se puede ajustar para aumentar (o
 disminuir) la distancia entre símbolos impresos encima o debajo de las
 notas.
 
+@cindex Script, ejemplo de sobreescritura
+@cindex padding, propiedad, ejemplo
+
 @lilypond[quote,fragment,relative=1,verbatim]
 c2\fermata
 \override Script #'padding = #3
 b2\fermata
 @end lilypond
 
+@cindex MetronomeMark, ejemplo de sobreescritura
+@cindex padding, propiedad, ejemplo
+
 @lilypond[quote,fragment,relative=1,verbatim]
 % This will not work, see below:
 \override MetronomeMark #'padding = #3
@@ -2496,6 +2687,12 @@ natural y un Si bemol.  Para evitar la ambigüedad querríamos preceder
 las notas con un becuadro y un bemol.  Aquí vienen varios intentos de
 hacerlo así:
 
+@cindex Accidental, ejemplo de sobreescritura
+@cindex text, propiedad, ejemplo
+@cindex stencil, propiedad, ejemplo
+@cindex AccidentalPlacement, ejemplo de sobreescritura
+@cindex right-padding, propiedad, ejemplo
+
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 <b bes>
 <b! bes>
@@ -2546,6 +2743,11 @@ dinámicas, entre ellas las que se han creado como objetos de
 extensión.  Así que ésta es la forma de alinear las indicaciones de
 matiz en el ejemplo de la sección anterior:
 
+@cindex DynamicText, ejemplo de sobreescritura
+@cindex extra-spacing-width, propiedad, ejemplo
+@cindex DynamicLineSpanner, ejemplo de sobreescritura
+@cindex staff-padding, propiedad, ejemplo
+
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 \dynamicUp
 % Extend width by 1 unit
@@ -2563,6 +2765,9 @@ entre un objeto de digitación de cuerda y la plica de una nota
 mediante el alineamiento del límite derecho con el punto de referencia
 de la nota «padre»:
 
+@cindex StringNumber, ejemplo de sobreescritura
+@cindex self-alignment-X, propiedad, ejemplo
+
 @lilypond[quote,fragment,ragged-right,verbatim,relative=3]
 \voiceOne
 < a \2 >
@@ -2593,6 +2798,9 @@ pues el silencio está en la voz dos.  El ajuste predeterminado para
 valor -4 para MultiMeasureRest, así que tenemos que bajarlo, digamos,
 cuatro semi-espacios de pentagrama, al valor @code{-8}.
 
+@cindex MultiMeasureRest, ejemplo de sobreescritura
+@cindex staff-position, propiedad, ejemplo
+
 @lilypond[quote,verbatim,fragment,ragged-right, relative=1]
 <<
   {c c c c}
@@ -2618,6 +2826,9 @@ posicionamiento de un objeto tanto vertical como horizontalmente.
 En el ejemplo siguiente, la segunda digitación se desplaza ligeramente
 a la izquierda, y 1.8 espacios de pentagrama hacia abajo:
 
+@cindex Fingering, ejemplo de sobreescritura
+@cindex extra-offset, propiedad, ejemplo
+
 @lilypond[quote,fragment,relative=1,verbatim]
 \stemUp
 f-5
@@ -2650,6 +2861,9 @@ r4  \acciaccatura e8\( d8 c ~c d c d\)
 Simplemente podemos mover la ligadura de fraseo por encima de las
 notas, y de hecho ésta será la solución preferida:
 
+@cindex PhrasingSlur, ejemplo de sobreescritura
+@cindex positions, propiedad, ejemplo
+
 @lilypond[quote,verbatim,fragment,ragged-right,relative=1]
 r4
 \phrasingSlurUp
@@ -2686,6 +2900,9 @@ Esto se puede resolver manualmente elevando los dos extremos de la
 barra desde su posición a dos espacios de pentagrama sobre la línea
 central hasta, digamos, 3 espacios:
 
+@cindex Beam, ejemplo de sobreescritura
+@cindex positions, propiedad, ejemplo
+
 @lilypond[quote,verbatim,fragment,ragged-right]
 {
   \clef "bass"
@@ -2741,6 +2958,9 @@ las notas agudas.
 
 Presentamos a continuación el resultado final:
 
+@cindex NoteColumn, ejemplo de sobreescritura
+@cindex force-hshift, propiedad, ejemplo
+
 @lilypond[quote,verbatim,fragment,ragged-right]
 \new Staff \relative c'' {
   \key aes \major
@@ -2836,7 +3056,7 @@ que lo más fácil es introducir estas cuatro voces temporalmente en el
 momento en que se necesiten.  Si ha olvidado cómo hacerlo, lea
 @ref{I'm hearing Voices}.  Vamos a comenzar introduciendo las notas
 como dos variables y disponiendo la estructura de pentagramas en un
-bloque score, y veremos qué produce LilyPond de forma predeterminada:
+bloque Score, y veremos qué produce LilyPond de forma predeterminada:
 
 @lilypond[quote,verbatim,ragged-right]
 rhMusic = \relative c'' {
@@ -3088,6 +3308,9 @@ tenemos que desplazar el Do un nivel más todavía, usando
 @code{\shiftOnn} para evitar que interfiera con los dos Re.  Al
 aplicar estos cambios obtenemos:
 
+@cindex Tie, ejemplo de sobreescritura
+@cindex staff-position, propiedad, ejemplo
+
 @lilypond[quote,verbatim,ragged-right]
 rhMusic = \relative c'' {
   r2 c4.\( g8 |
@@ -3144,6 +3367,11 @@ partir de trucos anteriores: hacemos la plica transparente, y movemos
 el Do con la propiedad @code{force-hshift}.  Aquí tenemos el resultado
 final:
 
+@cindex NoteColumn, ejemplo de sobreescritura
+@cindex force-hshift, propiedad, ejemplo
+@cindex Stem, ejemplo de sobreescritura
+@cindex transparent, propiedad, ejemplo
+
 @lilypond[quote,verbatim,ragged-right]
 rhMusic = \relative c'' {
   r2
@@ -3237,6 +3465,9 @@ misma voz.  Usando dos voces, con las notas ligadas en una de ellas:
 y borrando la primera plica hacia arriba en esa voz, da la impresión
 de que la ligadura se cruza entre las voces:
 
+@cindex Stem, ejemplo de sobreescritura
+@cindex transparent, propiedad, ejemplo
+
 @lilypond[quote,fragment,relative=2,verbatim]
 <<
   {
@@ -3286,6 +3517,9 @@ pentagrama.  Por lo tanto, establecer su propiedad @code{stencil} al
 valor @code{#f} sería la mejor manera.  Mostramos aquí el efecto de
 los dos métodos:
 
+@cindex MetronomeMark, ejemplo de sobreescritura
+@cindex transparent, propiedad, ejemplo
+
 @lilypond[quote,verbatim,ragged-right]
 \score {
   \relative c'' {
@@ -3305,6 +3539,9 @@ los dos métodos:
 }
 @end lilypond
 
+@cindex MetronomeMark, ejemplo de sobreescritura
+@cindex stencil, propiedad, ejemplo
+
 @lilypond[quote,verbatim,ragged-right]
 \score {
   \relative c'' {
@@ -3329,7 +3566,7 @@ Ambos métodos quitan de la salida impresa la indicación metronómica
 que alarga el calderón, y los dos afectan al tempo del MIDI tal y como
 queríamos, pero la indicación metronómica transparente de la primera
 línea fuerza una colocación muy alta de la indicación de tempo que
-sigue, meintras que la segunda (con el sello suprimido) no lo hace.
+sigue, mientras que la segunda (con el sello suprimido) no lo hace.
 
 @node Using variables for tweaks
 @subsection Using variables for tweaks
@@ -3342,12 +3579,16 @@ Las instrucciones de sobreescritura son con frecuencia largas y
 tediosas de escribir, y se tienen que escribir de forma absolutamente
 correcta.  Si las mismas sobreescrituras se van a utilizar muchas
 veces, podría merecer la pena definir variables para guardarlas.
-Suponga que queremos realzar ciertas palabras de la letra de una
+
+Supongamos que queremos realzar ciertas palabras de la letra de una
 canción imprimiéndolas en cursiva y negrita.  Las instrucciones
 @code{\italic} y @code{\bold} sólo funcionan dentro de la letra de las
-canciones si están incluidas dentro de un @code{\markup}, lo que las
-hace tediosas de escribir.  ¿Podríamos, como alternativa, utilizar las
-instrucciones @code{\override} y @code{\revert}?
+canciones si están incluidas, junto con la palabra o palabras que se
+pretenden modificar, dentro de un @code{\markup}, lo que las hace
+tediosas de escribir. La necesidad de incluir las propias palabras
+impide que se puedan usar en variables simples. ¿Podríamos, como
+alternativa, utilizar las instrucciones @code{\override} y
+@code{\revert}?
 
 @example
 @code{\override Lyrics . LyricText #'font-shape = #'italic}
@@ -3358,19 +3599,27 @@ instrucciones @code{\override} y @code{\revert}?
 @end example
 
 Estas instrucciones también serían extremadamente tediosas de escribir
-si hubiera muchas palabras que quisiéramos subrayar.  Entonces, en vez
-de esto las definimos como dos variables, y las usamos de la siguiente
-forma, aunque normalmente quizá elegiríamos unos nombres de variable
+si hubiera muchas palabras que quisiéramos subrayar.  Pero sí
+@emph{podemos} definirlas como dos variables y usarlas para delimitar
+las palabras que destacar.  Otra ventaja de la utilización de
+variables para estas sobreescrituras es que ya no son necesarios los
+espacios que rodean al punto, puesto que no se interpretan
+directamente en el modo @code{\lyricmode}.  He aquí un ejemplo de
+esto, aunque en la práctica quizá elegiríamos unos nombres de variable
 más cortos para que fueran más rápidos de teclear:
 
+@cindex LyricText, ejemplo de sobreescritura
+@cindex font-shape, propiedad, ejemplo
+@cindex font-series, propiedad, ejemplo
+
 @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 = { \time 4/4 \partial 4 \key c \major}
@@ -3581,6 +3830,10 @@ dinámicamente a un valor determinado por el procedimiento en el
 momento en que se invoca.  En este ejemplo damos a las cabezas de las
 notas un color que depende de su posición dentro del pentagrama.
 
+@cindex x11-color, función, ejemplo de utilización
+@cindex NoteHead, ejemplo de sobreescritura
+@cindex color, propiedad, establecer a procedimiento de Scheme
+
 @lilypond[quote,verbatim,ragged-right]
 #(define (color-notehead grob)
   "Color the notehead according to its position on the staff."
@@ -3607,7 +3860,7 @@ notas un color que depende de su posición dentro del pentagrama.
   g1 |
 }
 \addlyrics {
-  Some -- where o -- ver the Rain -- bow way up high,
+  Some -- where o -- ver the Rain -- bow, way up high,
 }
 @end lilypond
 
index ba376e82e1aea50bdcbf68e194aa5713b62e4175..ca45c5d426b8253fdee3321af06047224e829276 100644 (file)
@@ -1,13 +1,13 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 @c This file is part of lilypond.tely
 @ignore
-    Translation of GIT committish: 541aafa12474496930f99f617890a944c3db4989
+    Translation of GIT committish: 41ef91786a08102d9b9a839f6a2f40cec263d723
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @node Unfretted string instruments
 @section Unfretted string instruments
@@ -16,6 +16,7 @@
 {unfretted-headword.ly}
 
 @cindex orquestales, cuerdas
+@cindex cuerdas orquestales
 @cindex cuerdas, escribir música para
 
 Esta sección aporta información y referencias que resultan útiles si
@@ -32,7 +33,7 @@ principalmente instrumentos de cuerda orquestales.
 Hay poca notación especializada para los instrumentos de cuerdas sin
 trastes.  La notación de la música se realiza en un solo pentagrama, y
 se suele usar una sola voz.  Se pueden necesitar dos voces para
-algunos pasages en dobles cuerdas o en divisi.
+algunos pasajes en dobles cuerdas o en divisi.
 
 @menu
 * References for unfretted strings::
@@ -69,8 +70,8 @@ quartet}.  Otras se muestran en la sección de fragmentos de código.
 
 @end itemize
 
-@seealso
 
+@seealso
 Manual de aprendizaje:
 @rlearning{String quartet}.
 
@@ -83,6 +84,7 @@ Referencia de la notación:
 Fragmentos de código:
 @rlsr{Unfretted strings}.
 
+
 @node Bowing indications
 @unnumberedsubsubsec Bowing indications
 
@@ -114,22 +116,25 @@ y el ejemplo siguiente muestra tres formas distintas de indicar un La
 sobre una cuerda al aire del violín:
 
 @lilypond[verbatim,quote,relative=2]
-a4 \open 
-a^\markup { \teeny "II" } 
+a4 \open
+a^\markup { \teeny "II" }
 a2^\markup { \small "sul A" }
 @end lilypond
 
+
 @predefined
 @code{\downbow},
 @code{\upbow},
 @code{\open}.
+@endpredefined
 
-@seealso
 
+@seealso
 Referencia de la notación:
 @ref{Articulations and ornamentations},
 @ref{Slurs}.
 
+
 @node Harmonics
 @unnumberedsubsubsec Harmonics
 
@@ -184,6 +189,7 @@ se roza la cuerda (sin pisar) para producir el armónico.
 <e a\harmonic>2  <c g'\harmonic>
 @end lilypond
 
+
 @seealso
 Glosario musical:
 @rglos{harmonics}.
@@ -192,6 +198,7 @@ Referencia de la notación:
 @ref{Special note heads},
 @ref{References for unfretted strings}.
 
+
 @node Snap (Bartok) pizzicato
 @unnumberedsubsubsec Snap (Bartók) pizzicato
 
index fd543f53a5b6be5953d3ecc9bd4b68edbd5f3090..40a5ad83f93f38f70704c388147b5d67cebf0406 100644 (file)
@@ -1,13 +1,13 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 @c This file is part of lilypond.tely
 @ignore
-    Translation of GIT committish: 7f5cef855d798bc0bc9d415c13a1e3d2bd84cd87
+    Translation of GIT committish: 19841b86e54ac60d93af1150c31b7c246741ce1c
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 
 @node Vocal music
@@ -30,7 +30,7 @@ de que la letra se alinea con las notas de su melodía correspondiente.
 @node Common notation for vocal music
 @subsection Common notation for vocal music
 
-Esta sección trata sobre asuntos relacinados con la música vocal en
+Esta sección trata sobre asuntos relacionados con la música vocal en
 general y con ciertos estilos concretos de música vocal.
 
 
@@ -38,8 +38,8 @@ general y con ciertos estilos concretos de música vocal.
 * References for vocal music and lyrics::
 * Opera::
 * Song books::
-* Chants::
 * Spoken music::
+* Chants::
 * Ancient vocal music::
 @end menu
 
@@ -97,12 +97,13 @@ Continuará...
 @unnumberedsubsubsec Song books
 
 @c TODO
-Continuaará...
+Continuará...
 
 @snippets
 @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
 {simple-lead-sheet.ly}
 
+
 @seealso
 Referencia de la notación:
 @ref{Chord notation}.
@@ -144,8 +145,8 @@ Continuará...
 @c Add "Printing both the ancient and the modern clef in vocal music" snippet,
 @c and "Transcription of Ancient music with incipit" snippet. -vv
 
-@seealso
 
+@seealso
 Referencia de la notación:
 @ref{Ancient notation}.
 
@@ -171,6 +172,15 @@ Referencia de la notación:
 @cindex espacios, en la letra
 @cindex comillas, en la letra
 
+@c FIXME: this section is to be rewritten.
+Dado que los archivos de entrada de LilyPond son de texto, existe al
+menos un asunto que tener en cuenta al trabajar con música vocal: los
+textos de las canciones se deben interpretar como texto, no como
+notas.  Por ejemplo, la entrada@tie{}@code{d} debe interpretarse como
+una sílaba de una sola letra, no como la nota@tie{}Re.  Por tanto se
+hace necesario utilizar un modo especial para la letra, ya sea
+explícitamente o mediante el uso de métodos abreviados.
+
 La letra de las canciones se introduce en un modo de entrada especial
 que se inicia mediante la palabra clave @code{\lyricmode}, o bien
 mediante @code{\addlyrics} ó @code{\lyricsto}.  En este modo puede
@@ -284,6 +294,8 @@ código ASCII por encima del 127, o una combinación de dos caracteres
 consistente en la combinación de una barra invertida seguida por
 @code{`}, @code{'}, @code{"} ó @code{^}.
 
+@c " to balance double quotes for not-so-bright context-sensitive editors
+
 Para definir identificadores que contengan letra, se debe usar la
 función @code{lyricmode}.
 
@@ -303,11 +315,15 @@ verseOne = \lyricmode @{ Joy to the world the Lord is come @}
 
 
 @seealso
+Referencia de la notación:
+@ref{Fonts}.
 
-Referencia de funcionamiento interno: @rinternals{LyricText},
+Referencia de funcionamiento interno:
+@rinternals{LyricText},
 @rinternals{LyricSpace}.
 
 
+@c FIXME: this title has to be changed (possible confusion with LM) -vv
 @node Setting simple songs
 @unnumberedsubsubsec Setting simple songs
 
@@ -353,7 +369,7 @@ Para definir identificadores que contengan texto, se debe usar la
 función @code{\lyricmode}.  Si embargo no tendrá que escribir las
 duraciones, si añade @code{\addlyrics} o @code{\lyricsto} en el
 momento de invocar el identificador.
+
 @example
 verseOne = \lyricmode @{ Joy to the world the Lord is come @}
 \score @{
@@ -367,7 +383,7 @@ verseOne = \lyricmode @{ Joy to the world the Lord is come @}
  >>
 @}
 @end example
+
 Para arreglos distintos o más complejos, la mejor forma es preparar
 previamente la jerarquía de pautas y textos, p.ej.:
 @example
@@ -378,18 +394,18 @@ previamente la jerarquía de pautas y textos, p.ej.:
   \new Voice = "tenor" @{ @emph{música} @}
 >>
 @end example
+
 y después combinar las melodías y líneas de texto correspondientes:
+
 @example
 \context Lyrics = textoSoprano \lyricsto "soprano"
 @emph{el texto}
 @end example
+
 @noindent
 
 El código de entrada definitivo sería algo como
+
 @example
 <<\new ChoirStaff << @emph{prepare la música} >>
  \lyricsto "soprano" @emph{etc}
@@ -397,12 +413,15 @@ El código de entrada definitivo sería algo como
 @emph{etc}
 >>
 @end example
+
+
 @seealso
 @c TODO: document \new Staff << Voice \lyricsto >> bug
 Referencia de funcionamiento interno:
-@rinternals{LyricCombineMusic}, @rinternals{Lyrics}.
+@rinternals{LyricCombineMusic},
+@rinternals{Lyrics}.
+
+
 
 @node Aligning lyrics to a melody
 @subsection Aligning lyrics to a melody
@@ -411,6 +430,11 @@ Referencia de funcionamiento interno:
 @funindex \addlyrics
 @funindex \lyricsto
 
+La alineación del texto con las melodías se puede hacer
+automáticamente, pero si especificamos las duraciones de las sílabas
+también puede hacerse de forma manual.  La alineación y el
+tipografiado de la letra se preparan con la ayuda de saltos o
+@i{skips}, guiones y líneas extensoras.
 
 La letra se imprime a través de su interpretación dentro del contexto
 llamado @rinternals{Lyrics}.
@@ -432,14 +456,21 @@ o especificando la duración de cada sílaba explícitamente, utilizando
 @code{\lyricmode}
 @end itemize
 
+El contexto @code{Voice} que contiene la melodía con la que se está
+alineando la letra no debe haber @qq{muerto}, o se perderá la letra
+después de ese punto.  Esto puede ocurrir si existen períodos en los
+que dicha voz no tiene nada que hacer.  Para ver métodos de mantener
+vivos los contextos, consulte @ref{Keeping contexts alive}.
+
+
 @menu
-* Automatic syllable durations::  
-* Manual syllable durations::   
-* Multiple syllables to one note::  
-* Multiple notes to one syllable::  
-* Skipping notes::              
-* Extenders and hyphens::       
-* Lyrics and repeats::          
+* Automatic syllable durations::
+* Manual syllable durations::
+* Multiple syllables to one note::
+* Multiple notes to one syllable::
+* Skipping notes::
+* Extenders and hyphens::
+* Lyrics and repeats::
 @end menu
 
 @node Automatic syllable durations
@@ -473,8 +504,14 @@ letra.
     \time 2/4
     c4 b8. a16 g4. f8 e4 d c2
   }
+
+% not recommended: left aligns syllables
   \new Lyrics \lyricmode { Joy4 to8. the16 world!4. the8 Lord4 is come.2 }
+
+% wrong: durations needed
   \new Lyrics \lyricmode { Joy to the earth! the Sa -- viour reigns. }
+
+%correct
   \new Lyrics \lyricsto "one" { No more let sins and sor -- rows grow. }
 >>
 @end lilypond
@@ -506,7 +543,7 @@ El texto también se puede introducir sin @code{\addlyrics} ni
 @code{\lyricsto}.  En este caso, las sílabas se escriben como notas
 (pero con las alturas sustituidas por texto) y la duración de cada
 sílaba se debe escribir explícitamente.  Por ejemplo:
+
 @example
 play2 the4 game2.
 sink2 or4 swim2.
@@ -514,7 +551,7 @@ sink2 or4 swim2.
 
 La alineación respecto de una melodía se puede especificar con la
 propiedad @code{associatedVoice},
+
 @example
 \set associatedVoice = #"lala"
 @end example
@@ -523,7 +560,7 @@ propiedad @code{associatedVoice},
 El valor de la propiedad (aquí: @code{"lala"}) ha de ser el nombre de
 un contexto de @rinternals{Voice}.  Sin este ajuste, las líneas de
 extensión no se formatearán correctamente.
+
 Presentamos a continuación un ejemplo que muestra el uso de las
 duraciones manuales de las sílabas del texto:
 
@@ -538,15 +575,18 @@ duraciones manuales de las sílabas del texto:
  } >>
 @end lilypond
 
+
 @seealso
+Referencia de la notación:
+@ref{Keeping contexts alive}.
 
-Referencia de funcionamiento interno: @rinternals{Lyrics}.
+Referencia de funcionamiento interno:
+@rinternals{Lyrics}.
 
 
 @node Multiple syllables to one note
 @unnumberedsubsubsec Multiple syllables to one note
 
-
 @funindex _
 @cindex ligaduras, en el texto
 
@@ -566,8 +606,8 @@ DejaVuLGC) que incluya este glifo.}.
 \addlyrics { pu- ro~y~ho- nes- to }
 @end lilypond
 
-@seealso
 
+@seealso
 Referencia de funcionamiento interno: @rinternals{LyricCombineMusic}.
 
 @c Here come the section which used to be "Melismata"
@@ -588,10 +628,24 @@ melismas, o melismata.
 @c this method seems to be the simplest; therefore
 @c it might be better to present it first - vv
 
-Puede definir los melismas completamente dentro de la letra,
-escribiendo un guión bajo @code{_} para cada nota que forma parte del
-melisma.
+Podemos definir los melismas completamente dentro de la letra,
+escribiendo un guión bajo @code{_} por cada nota que se quiere añadir
+al melisma.
+
+@c FIXME: clarify: __ is used to crate a lyric extender,
+@c _ is used to add a note to a melisma, so both __ and _ are needed.
 
+@c verbose! --FV
+@c duplicated: TODO fix
+Además, podemos hacer que se imprima una línea extensora para indicar
+el melisma en la partitura, escribiendo un doble guión bajo junto a la
+primera sílaba del melisma. Este ejemplo presenta los tres elementos
+que se usan con este fin (todos ellos circundados por espacios):
+guiones dobles para separar las sílabas de una palabra, guiones bajos
+para añadir notas al melisma, y un doble guión bajo para poner una
+línea extensora.
+
+@c wrong: extender line only on last syllable of a word. Change example
 @lilypond[relative=1,verbatim,fragment,quote]
 { \set melismaBusyProperties = #'()
  c d( e) f f( e) e e  }
@@ -599,9 +653,9 @@ melisma.
  { Ky -- _ _ ri __ _ _ _  e }
 @end lilypond
 
-En este caso, también puede tener ligaduras de unión y de expresión en
-la melodía, si establece @code{melismaBusyProperties}, como se hizo en
-el ejemplo anterior.
+En este caso también podemos tener ligaduras de unión y de expresión
+en la melodía, si establecemos @code{melismaBusyProperties}, como se
+hizo en el ejemplo anterior.
 
 Sin embargo la instrucción @code{\lyricsto} también puede detectar los
 melismas automáticamente: sólo pone una sílaba debajo de un grupo de
@@ -630,8 +684,7 @@ Además, las notas se consideran un melisma si están unidas manualmente
 mediante una barra, y el barrado automático (véase @ref{Setting
 automatic beam behavior}) está desactivado.
 
-@c TODO: there might be some more relevant place for 
-@c the following link (?)
+@c FIXME: this now links to LM -vv
 
 @cindex SATB
 @cindex coral, partitura
@@ -641,16 +694,16 @@ sección @rlearning{Vocal ensembles}.
 
 
 @predefined
-
+@funindex \melisma
 @code{\melisma},
-@code{\melismaEnd}
 @funindex \melismaEnd
-@funindex \melisma
+@code{\melismaEnd}.
+@endpredefined
+
 
 @seealso
+@c @lsr{vocal,lyric@/-combine.ly}.
 
-@comment  Referencia de funcionamiento interno:
-@comment  @rinternals{Melisma_translator}.
 
 @knownissues
 
@@ -681,7 +734,8 @@ Por ejemplo,
 @unnumberedsubsubsec Extenders and hyphens
 
 @cindex melisma
-@cindex extender
+@cindex extensora, línea
+@cindex línea de extensión
 
 @c leave this as samp. -gp
 Los melismas se indican mediante una línea horizontal centrada entre
@@ -689,6 +743,13 @@ una sílaba y la siguiente.  Esta línea recibe el nombre de línea de
 extensión, y se escribe como @samp{ __ } (fíjese en los espacios antes
 y después de los dos guiones bajos).
 
+@warning{Los melismas se indican en la partitura con líneas
+extensoras, que se escriben con un doble guión bajo; pero también se
+pueden introducir melismas cortos mediante saltos de notas
+individuales, que se escriben como caracteres de guión bajo sueltos;
+de forma predeterminada éstos no producen la impresión de una línea de
+extensión.}
+
 @cindex guiones
 
 @c leave this as samp. -gp
@@ -703,10 +764,11 @@ guiones.  Se puede controlar si esto ocurre o no, mediante la
 @code{minimum-length} (umbral por debajo del cual se suprimen los
 guiones).
 
-@seealso
 
-Referencia de funcionamiento interno: @rinternals{LyricExtender},
-@rinternals{LyricHyphen}
+@seealso
+Referencia de funcionamiento interno:
+@rinternals{LyricExtender},
+@rinternals{LyricHyphen}.
 
 
 @node Lyrics and repeats
@@ -725,10 +787,10 @@ formas ligeramente distintas.  Tales variantes pueden aún captarse
 mediante @code{\lyricsto}.
 
 @menu
-* Divisi lyrics::               
-* Lyrics independent of notes::                    
-* Spacing out syllables::       
-* Centering lyrics between staves::  
+* Divisi lyrics::
+* Lyrics independent of notes::
+* Spacing out syllables::
+* Centering lyrics between staves::
 @end menu
 
 
@@ -805,6 +867,17 @@ lyr = \lyricmode { I like my cat! }
 >>
 @end lilypond
 
+Sólo se recomienda este método si la música que está en el contexto
+@code{Devnull} no contiene melismas.  Los melismas están definidos por
+el contexto @code{Voice}.  La conexión de la letra a un contexto
+@code{Devnull} hace que se pierdan los enlaces entre la voz y las
+sílabas, y también la información relativa a los melismas.  Por tanto,
+si enlazamos la letra a un contexto @code{Devnull}, los melismas
+implícitos se ignoran.
+
+@c Conclusion: do not use devnull for lyrics -FV
+
+@c this clarifies http://code.google.com/p/lilypond/issues/detail?id=248
 
 @node Spacing out syllables
 @unnumberedsubsubsec Spacing out syllables
@@ -849,6 +922,49 @@ completa, establezca la propiedad dentro del @q{layout} o disposición.
 }
 @end lilypond
 
+@c @snippets
+@c This snippet has been renamed to "lyrics-alignment.ly"
+@c update as soon as lsr/is updated -vv
+@c @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+@c {lyrics-alignment.ly}
+
+@c TODO: move to LSR -vv
+@snippets
+
+La comprobación que asegura que las inscripciones de texto y la letra
+de las canciones se mantienen dentro de los márgenes, es una tarea
+computacional relativamente costosa.  Para acelerar el procesado,
+LilyPond no hace tales cálculos de forma predeterminada; para
+habilitarlos, utilice
+
+@example
+\override Score.PaperColumn #'keep-inside-line = ##t
+@end example
+
+Para hacer también que las sílabas de la letra eviten las barras de compás, use
+
+@example
+\layout @{
+  \context @{
+    \Lyrics
+      \consists "Bar_engraver"
+      \consists "Separating_line_group_engraver"
+      \override BarLine #'transparent = ##t
+  @}
+@}
+@end example
+
+@c TODO Create and add lsr example of lyricMelismaAlignment
+@c It's used like this to center-align all lyric syllables,
+@c even when notes are tied. -td
+
+@ignore
+\layout
+{
+     \context { \Score lyricMelismaAlignment = #0 }
+}
+@end ignore
+
 
 @node Centering lyrics between staves
 @unnumberedsubsubsec Centering lyrics between staves
@@ -861,17 +977,17 @@ Continuará...
 @subsection Stanzas
 
 @menu
-* Adding stanza numbers ::      
-* Adding dynamics marks to stanzas::  
-* Adding singers' names to stanzas::  
-* Stanzas with different rhythms::  
-* Printing stanzas at the end::  
-* Printing stanzas at the end in multiple columns::  
+* Adding stanza numbers::
+* Adding dynamics marks to stanzas::
+* Adding singers' names to stanzas::
+* Stanzas with different rhythms::
+* Printing stanzas at the end::
+* Printing stanzas at the end in multiple columns::
 @end menu
 
 
-@node Adding stanza numbers 
-@unnumberedsubsubsec Adding stanza numbers 
+@node Adding stanza numbers
+@unnumberedsubsubsec Adding stanza numbers
 
 @cindex verso, número de
 
@@ -882,10 +998,10 @@ Los números de los versos se pueden añadir estableciendo
 \new Voice {
   \time 3/4 g2 e4 a2 f4 g2.
 } \addlyrics {
-  \set stanza = "1. "
+  \set stanza = #"1. "
   Hi, my name is Bert.
 } \addlyrics {
-  \set stanza = "2. "
+  \set stanza = #"2. "
   Oh, ché -- ri, je t'aime
 }
 @end lilypond
@@ -893,6 +1009,37 @@ Los números de los versos se pueden añadir estableciendo
 @noindent
 Estos números aparecerán inmediatamente antes de la primera sílaba.
 
+@c TODO Create and add snippet to show how two lines of a
+@c stanza can be grouped together, along these lines:
+@c (might need improving a bit) -td
+
+@ignore
+leftbrace = \markup { \override #'(font-encoding . fetaBraces) \lookup
+#"brace105" }
+
+stanzaOneOne = {
+  \set stanza = \markup { "1. " \leftbrace }
+  \lyricmode { Child, you're mine and I love you.
+    Lend thine ear to what I say.
+
+  }
+}
+
+stanzaOneThree =  {
+%  \set stanza = \markup { "   "}
+  \lyricmode { Child, I have no great -- er joy
+    Than to have you walk in truth.
+
+  }
+}
+
+\new Voice {
+  \repeat volta 2 { c'8 c' c' c' c' c' c'4
+                    c'8 c' c' c' c' c' c'4   }
+}  \addlyrics { \stanzaOneOne }
+   \addlyrics { \stanzaOneThree }
+
+@end ignore
 
 @node Adding dynamics marks to stanzas
 @unnumberedsubsubsec Adding dynamics marks to stanzas
@@ -928,7 +1075,6 @@ text = {
 @cindex cantante, nombre del
 @cindex nombre del cantante
 
-
 También se pueden poner los nombres de los cantantes.  Se imprimen al
 comienzo de la línea, igual que los nombres de instrumento.  Se crean
 estableciendo un valor para @code{vocalName}.  Se puede definir una
@@ -938,10 +1084,10 @@ versión abreviada como @code{shortVocalName}.
 \new Voice {
   \time 3/4 g2 e4 a2 f4 g2.
 } \addlyrics {
-  \set vocalName = "Bert "
+  \set vocalName = #"Bert "
   Hi, my name is Bert.
 } \addlyrics {
-  \set vocalName = "Ernie "
+  \set vocalName = #"Ernie "
   Oh, ché -- ri, je t'aime
 }
 @end lilypond
@@ -957,13 +1103,7 @@ pero varias sílabas en otro.  Una solución es hacer que la voz más
 rápida ignore el melisma.  Esto se consigue estableciendo
 @code{ignoreMelismata} en el contexto Lyrics.
 
-Hay un aspecto delicado: el valor de @code{ignoreMelismata} se debe
-establecer una sílaba @emph{antes} de la sílaba no melismática del
-texto, tal y como se muestra a continuación:
-
-@c  TODO: breaks compile
 @lilypond[verbatim,ragged-right,quote]
-%{
 <<
   \relative c' \new Voice = "lahlah" {
     \set Staff.autoBeaming = ##f
@@ -976,31 +1116,21 @@ texto, tal y como se muestra a continuación:
     more slow -- ly
   }
   \new Lyrics \lyricsto "lahlah" {
-    \set ignoreMelismata = ##t % se aplica al "fas"
-    go fas -- ter
+    go
+    \set ignoreMelismata = ##t
+    fas -- ter
     \unset ignoreMelismata
     still
   }
 >>
-%}
 @end lilypond
 
+@knownissues
+A diferencia de casi todas las instrucciones @code{\set}, @code{\set
+ignoreMelismata} no funciona si va precedido de @code{\once}.  Es
+necesario utilizar @code{\set} y @code{\unset} para delimitar la letra
+en que se quieren ignorar los melismas.
 
-El @code{ignoreMelismata} se aplica a la sílaba @q{fas}, por ello se
-debe introducir antes de @q{go}.
-
-La inversa también es posible: hacer que una línea de letra sea más
-lenta que la normal.  Esto se puede conseguir insertando @code{\skip}s
-(desplazamientos) dentro de la letra.  Para cada @code{\skip}, el
-texto se retrasará una nota más.  Por ejemplo,
-
-@lilypond[verbatim,ragged-right,quote]
-\relative c' { c c g' }
-\addlyrics {
-  twin -- \skip 4
-  kle
-}
-@end lilypond
 
 @subsubheading Switching to an alternative melody
 
@@ -1066,8 +1196,11 @@ consigue con
 Aquí, @code{alternative} es el nombre del contexto de @code{Voice} que
 contiene el tresillo.
 
-Una vez más, la instrucción debe ir una sílaba antes de la cuenta,
-antes de @q{Ty} en este caso.
+@c FIXME: make this easier to understand -vv
+La instrucción debe ir una sílaba antes de la cuenta, antes de @q{Ty}
+en este caso.  En otras palabras, el cambio en la voz asociada
+associatedVoice se produce un paso más tarde de lo que se espera.
+Esto es así por razones técnicas, y no es un fallo del programa.
 
 @example
 \new Lyrics \lyricsto "lahlah" @{
@@ -1091,7 +1224,7 @@ asignación de @code{lahlah} a @code{associatedVoice}.
 En ocasiones es conveniente tener un verso ajustado a la música, y el
 resto añadido en forma de estrofa al final de la pieza.  Esto se puede
 conseguir escribiendo los versos adicionales dentro de una sección
-@code{\markup} fuera del bloque score principal de la partitura.
+@code{\markup} fuera del bloque Score principal de la partitura.
 Tenga en cuenta que existen dos formas distintas de forzar los saltos
 de línea al utilizar @code{\markup}.
 
@@ -1102,7 +1235,7 @@ d d e d | c1 |
 }
 
 text = \lyricmode {
-\set stanza = "1." Ma- ry had a lit- tle lamb,
+\set stanza = #"1." Ma- ry had a lit- tle lamb,
 its fleece was white as snow.
 }
 
@@ -1141,9 +1274,9 @@ muestra cómo producir dicha salida en Lilypond.
 melody = \relative c' {
   c c c c | d d d d
 }
+
 text = \lyricmode {
-  \set stanza = "1." This is verse one.
+  \set stanza = #"1." This is verse one.
   It has two lines.
 }
 
@@ -1156,8 +1289,8 @@ text = \lyricmode {
 
 \markup {
   \fill-line {
-    \hspace #0.1 % moves the column off the left margin; can be removed if
-        % space on the page is tight
+    \hspace #0.1 % moves the column off the left margin;
+        % can be removed if space on the page is tight
      \column {
       \line { \bold "2."
         \column {
@@ -1173,9 +1306,9 @@ text = \lyricmode {
         }
       }
     }
-    \hspace #0.1  % adds horizontal spacing between columns; if they are
-        % still too close, add more " " pairs until the result 
-        % looks good
+    \hspace #0.1  % adds horizontal spacing between columns;
+        % if they are still too close, add more " " pairs
+        % until the result looks good
      \column {
       \line { \bold "4."
         \column {
@@ -1191,15 +1324,14 @@ text = \lyricmode {
         }
       }
     }
-  \hspace #0.1 % gives some extra space on the right margin; can
-      % be removed if page space is tight
+  \hspace #0.1 % gives some extra space on the right margin;
+      % can be removed if page space is tight
   }
 }
 @end lilypond
 
 
 @seealso
-
 Referencia de funcionamiento interno:
 @rinternals{LyricText},
 @rinternals{StanzaNumber}.
index 0dc03fb2741bab02dd1449a59626f960a0b05d6f..a53990d4af61fe4af8d386e1538dd84a90bec00b 100644 (file)
@@ -1,13 +1,13 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 @c This file is part of lilypond.tely
 @ignore
-    Translation of GIT committish: 85b54e04be6730bd0781f3135ee741010e099fd8
+    Translation of GIT committish: 41ef91786a08102d9b9a839f6a2f40cec263d723
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 
 @node Wind instruments
@@ -68,8 +68,8 @@ aplicación a los instrumentos de viento:
 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
 {changing--flageolet-mark-size.ly}
 
-@seealso
 
+@seealso
 Referencia de la notación:
 @ref{Breath marks},
 @ref{Slurs},
@@ -158,10 +158,12 @@ Se puede indicar esto mediante @code{cflat} o @code{fflat}. De forma parecida, e
 sol agudo piobaireachd se puede escribir @code{gflat} cuando aparece en música
 ligera.
 
+
 @seealso
 Fragmentos de código:
 @rlsr{Winds}.
 
+
 @node Bagpipe example
 @unnumberedsubsubsec Bagpipe example
 
@@ -208,6 +210,7 @@ gaita.
 }
 @end lilypond
 
+
 @seealso
 Fragmentos de código:
 @rlsr{Winds}.
index c242e4d467b212e4965c66516c019006600904a2..fd2e3ecca2d4d21e62e88ef754304464461a3df9 100644 (file)
@@ -1,13 +1,13 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 @c This file is part of lilypond.tely
 @ignore
-    Translation of GIT committish: 270753f1475f23809437eadd7cbbb5a2abddb7b3
+    Translation of GIT committish: 3e63320d65c86c823949f70ab9791eab96c98352
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @node Working on LilyPond projects
 @chapter Working on LilyPond projects
@@ -55,6 +55,7 @@ todos los cambios se pueden hacer de forma automática con
 @code{convert-ly}, pero algunos podrían necesitar de una ayuda manual.
 Los archivos de LilyPond se pueden estructurar para que sean más
 fáciles (o más difíciles) de actualizar.
+
 @end itemize
 
 @menu
@@ -82,8 +83,8 @@ el número de versión de LilyPond que estaba usando hace unos años.
 @code{convert-ly} requiere que declare qué versión de LilyPond
 utilizó.
 
-@item @strong{Incluya comprobaciones}: @rglos{baritone},
-@ruser{Absolute octave entry}.  Si incluye comprobaciones de vez en cuando, en
+@item @strong{Incluya comprobaciones}: @ruser{Bar and bar number checks},
+@ruser{Octave checks}.  Si incluye comprobaciones de vez en cuando, en
 caso de que cometa un error podrá localizarlo mucho más rápidamente.
 ¿Con qué frecuencia es @q{de vez en cuando}?  Depende de la
 complejidad de la música.  Para una música muy sencilla, quizá tan
@@ -144,6 +145,27 @@ definir @code{mBreak = @{ @}} para quitar todos esos saltos de línea.  Así
 permitirá a LilyPond colocar los saltos donde éste lo estime
 más oportuno.
 
+@item Al escribir una parte para un instrumento transpositor dentro de una
+variable, se recomienda que las notas estén envueltas dentro de
+
+@example
+\transpose c altura-natural @{...@}
+@end example
+(donde @code{altura-natural} es la afinación natural del instrumento)
+de forma que la música dentro de la variable esté realmente en Do
+mayor.  Después podemos volver a transportarlas en sentido inverso
+cuando se utiliza la variable, si es necesario, pero quizá no queramos
+hacerlo (p.ej., al imprimir una partitura en afinación de concierto,
+al convertir una parte de trombón de clave de Sol a clave de Fa,
+etc.).  Es menos probable cometer errores en los transportes si toda
+la música que está dentro de las variables se encuentra en un tono
+coherente.
+
+Asimismo, haga los transportes exclusivamente hacia o desde Do mayor.
+Esto significa que aparte de ésta, las únicas tonalidades que usaremos
+serán los tonos de afinación de los instrumentos transpositores: bes
+para una trompeta en Si bemol, aes para un clarinete en La bemol, etc.
+
 @end itemize
 
 
index d2f810f429304081e2ad4d99fd01b3921b350cbb..81fff3a708b0f3b6c7cee077abfa34bba5fd5090 100644 (file)
@@ -1,12 +1,13 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 @c This file is part of lilypond.tely
 @ignore
-    Translation of GIT committish: 85b54e04be6730bd0781f3135ee741010e099fd8
+    Translation of GIT committish: 41ef91786a08102d9b9a839f6a2f40cec263d723
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
+@c \version "2.12.0"
 
 @node World music
 @section World music
@@ -82,8 +83,8 @@ aparece en @ref{Unmetered music}.
 
 @end itemize
 
-@seealso
 
+@seealso
 Referencia de la notación:
 @ref{Note names in other languages},
 @ref{Key signature},
@@ -108,7 +109,7 @@ lugar se utilizan los nombres italo-franco-españoles o del solfeo
 modificadores (alteraciones), como se estudia en @ref{Note names in
 other languages}.
 
-Por ejemmplo, así es como puede ser la notación de la escala árabe
+Por ejemplo, así es como puede ser la notación de la escala árabe
 @notation{rast}:
 
 @lilypond[quote,verbatim]
@@ -126,7 +127,7 @@ El símbolo del semi-bemol no coincide con el símbolo que se utiliza en
 la notación árabe.  Se puede usar el símbolo @code{\dwn} definido en
 @code{arabic.ly} precediendo a un bemol como vía alternativa si es
 importante usar el símbolo árabe específico del semi-bemol.  El
-aspecto del síimbolo del semi-bemol dentro de la armadura no se puede
+aspecto del símbolo del semi-bemol dentro de la armadura no se puede
 alterar mediante este método.
 
 
@@ -140,7 +141,6 @@ alterar mediante este método.
 
 
 @seealso
-
 Referencia de la notación:
 @ref{Note names in other languages}.
 
@@ -182,7 +182,7 @@ Se pueden indicar de la misma forma otros maqams dentro del mismo
 grupo bayati, como aparece en la tabla a continuación: bayati,
 hussaini, saba y ushaq.  Todos ellos son variantes del maqam básico y
 más común dentro del grupo, que es bayati.  Normalmente se diferencian
-del maqam básico en su tectacordo superior, o en ciertos detalles de
+del maqam básico en su tetracordo superior, o en ciertos detalles de
 discurso que no cambian su naturaleza fundamental como parientes.
 
 El otro maqam del grupo (Nawa) se relaciona con el bayati a través de
@@ -251,8 +251,8 @@ los maqams más comunes a armaduras de tonalidad:
 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
 {non-traditional-key-signatures.ly}
 
-@seealso
 
+@seealso
 Referencia de la notación:
 @ref{Key signature}.
 
@@ -293,8 +293,8 @@ y/o utilizar compases compuestos.
 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
 {arabic-improvisation.ly}
 
-@seealso
 
+@seealso
 Referencia de la notación:
 @ref{Manual beams},
 @ref{Automatic beams},
@@ -341,13 +341,12 @@ esta sección.
 }
 @end lilypond
 
-@seealso
 
+@seealso
 Fragmentos de código:
 @rlsr{World music}
 
 
-
 @node Further reading
 @unnumberedsubsubsec Further reading
 
index f118e106a3600fc2b89fea4f06b05192c63a149b..da2d55073ce878abf2df2cdda57e1875c17d45c8 100644 (file)
@@ -36,8 +36,8 @@
            <li>
              <a class="title"
                 href="user/lilypond-learning/index.fr.html">Manuel d'initiation</a>
-             (partiellement traduit,<br>aussi en <a class="title" href="user/lilypond-learning-big-page.html">page
-             unique en anglais</a> ~ 1,5 Mo, ou
+             (partiellement traduit,<br>aussi en <a class="title" href="user/lilypond-learning-big-page.fr.html">page
+             unique</a> ~ 1,5 Mo, ou
              <a class="title" href="user/lilypond-learning.fr.pdf">au format PDF</a>)
               <br>&mdash; commencer ici</li>
            <li><a class="title" href="user/music-glossary/index.html">Glossaire</a>
            <li>
              <a class="title" href="user/lilypond/index.fr.html">Manuel de notation</a>
              (partiellement traduit,<br>aussi en <a class="title"
-                               href="user/lilypond-big-page.html">page unique
-               en anglais</a> ~ 4 Mo, ou
+                               href="user/lilypond-big-page.fr.html">page unique</a> ~ 4 Mo, ou
                <a class="title" href="user/lilypond.fr.pdf">au format PDF</a>)
                 <br>&mdash; gravure de musique avec LilyPond</li>
            <li>
              <a  class="title" href="user/lilypond-internals/index.html">Référence des propriétés internes</a>
-             <br>(en anglais, en <a class="title" href="user/lilypond-internals-big-page.html">page
+             <br>(en anglais, aussi en <a class="title" href="user/lilypond-internals-big-page.html">page
                unique</a> ~ 1 Mo, <a class="title"
                href="user/lilypond-internals.pdf">au format PDF</a>)
               <br>&mdash; définitions pour les retouches</li>
             <li>
            <a class="title" href="user/lilypond-program/index.fr.html">Utilisation des programmes</a>
 (partiellement traduit,<br>aussi en <a class="title"
-               href="user/lilypond-program-big-page.html">page unique en anglais</a>, ou
+               href="user/lilypond-program-big-page.fr.html">page unique</a>, ou
            <a class="title" href="user/lilypond-program.fr.pdf">au format PDF</a>)
             <br>&mdash; installation et exécution des programmes</li>
            <li><a class="title" href="../input/lsr/lilypond-snippets/index.html">Exemples de code</a>
-(en <a class="title" href="../input/lsr/lilypond-snippets-big-page.html">page unique en anglais</a> ~ 2 Mo,
+(en anglais, aussi en <a class="title" href="../input/lsr/lilypond-snippets-big-page.html">page unique</a> ~ 2 Mo,
 au format <a class="title" href="user/lilypond-snippets.pdf">PDF</a>)
             <br>&mdash; petits trucs, astuces et exemples</li>
          </ul>
@@ -92,7 +91,7 @@ au format <a class="title" href="user/lilypond-snippets.pdf">PDF</a>)
         <tr>
           <td valign="baseline" class="left-column">
        <ul>
-            <li><a class="title"  href="devel.html">Ressources de développement</a>
+            <li><a class="title"  href="devel/index.html">Ressources de développement</a>
             <br>&mdash; documentation pour les développeurs et contributeurs</li>
        </ul>
     </td><td class="right-column">
index 290b747613e16ed6639475d415786de9dfbd7486..af77d450ffd11dc5fff89b88f17954336dc8e681 100644 (file)
@@ -1,10 +1,10 @@
- <p><i>Dernière mise à jour Mon Oct 27 11:16:48 UTC 2008
+ <p><i>Dernière mise à jour Sat Feb 28 05:50:27 UTC 2009
 </i></p>
 <html>
 <!-- This page is automatically generated by translation-status.py from
 translations.template.html.in; DO NOT EDIT !-->
 <!--
-    Translation of GIT committish: 862d8ce7ab34bfa6e9192fb31d004137d158c452
+    Translation of GIT committish: 148e80b8992a7fb9d59ec439c00b79decbbe3bad
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
@@ -32,8 +32,8 @@ translations.template.html.in; DO NOT EDIT !-->
   remaniée, et sa révision se poursuit encore actuellement&nbsp;; le rythme
   de cette révision ne permet pas de maintenir toutes les traductions
   à jour.  Cependant, le fait que certaines traductions ne soient pas
-  du tout à jour (avec une indication sur fond rouge) ne signifient
-  pas qu'elles sont périmées, cela signifie juste que les traductions
+  du tout à jour (avec une indication sur fond rouge) ne signifie
+  pas qu'elles sont périmées, mais simplement qu'elles
   n'atteignent pas la qualité de la documentation en anglais récemment
   remaniée&nbsp;: les traducteurs font de leur mieux pour au moins mettre à
   jour dans la documentation la syntaxe et les noms de commande
@@ -46,25 +46,26 @@ translations.template.html.in; DO NOT EDIT !-->
 
 <table align="center" border="2">
  <tr align="center">
-  <th>GNU LilyPond --- manuel d'initiation</th>  <th>Traducteurs</th>
+  <th>GNU LilyPond --- Manuel d'initiation</th>  <th>Traducteurs</th>
   <th>Relecteurs</th>
   <th>Traduit</th>
   <th>À jour</th>
   <th>Autres informations</th>
  </tr>
  <tr align="left">
-  <td>Titre des chapitres<br>(415)</td>
+  <td>Titre des chapitres<br>(429)</td>
   <td>John Mandereau<br>
    Jean-Charles Malahieude</td>
   <td></td>
   <td><span style="background-color: #1fff1f">oui</span></td>
-  <td><span style="background-color: #39ff22">partiellement</span></td>
-  <td>p-GDP</td>
+  <td><span style="background-color: #47ff24">partiellement</span></td>
+  <td>post-GDP</td>
  </tr>
  <tr align="left">
   <td>Préface<br>(411)</td>
   <td>Valentin Villenave</td>
-  <td>Ludovic Sardain</td>
+  <td>Ludovic Sardain<br>
+   Damien Heurtebise</td>
   <td><span style="background-color: #1fff1f">oui</span></td>
   <td><span style="background-color: #1fff1f">oui</span></td>
   <td>pré-GDP</td>
@@ -74,9 +75,10 @@ translations.template.html.in; DO NOT EDIT !-->
   <td>Ludovic Sardain<br>
    John Mandereau</td>
   <td>Jean-Charles Malahieude<br>
-   Jean-Yves Baudais</td>
+   Jean-Yves Baudais<br>
+   Damien Heurtebise</td>
+  <td><span style="background-color: #1fff1f">oui</span></td>
   <td><span style="background-color: #1fff1f">oui</span></td>
-  <td><span style="background-color: #25fe1f">partiellement</span></td>
   <td>post-GDP</td>
  </tr>
  <tr align="left">
@@ -88,7 +90,7 @@ translations.template.html.in; DO NOT EDIT !-->
    Valentin Villenave<br>
    John Mandereau</td>
   <td><span style="background-color: #1fff1f">oui</span></td>
-  <td><span style="background-color: #47ff24">partiellement</span></td>
+  <td><span style="background-color: #25fe1f">partiellement</span></td>
   <td>post-GDP</td>
  </tr>
  <tr align="left">
@@ -97,35 +99,36 @@ translations.template.html.in; DO NOT EDIT !-->
    Jean-Charles Malahieude</td>
   <td>John Mandereau</td>
   <td><span style="background-color: #1fff1f">oui</span></td>
-  <td><span style="background-color: #47ff24">partiellement</span></td>
-  <td>p-GDP</td>
+  <td><span style="background-color: #1fff1f">oui</span></td>
+  <td>post-GDP</td>
  </tr>
  <tr align="left">
-  <td>4 Retouche de partition<br>(12705)</td>
+  <td>4 Retouche de partition<br>(14775)</td>
   <td>Valentin Villenave<br>
-   Nicolas Klutchnikoff</td>
+   Nicolas Klutchnikoff<br>
+   Damien Heurtebise</td>
   <td>Jean-Charles Malahieude<br>
    John Mandereau</td>
-  <td><span style="background-color: #dfef77">partiellement (31 %)</span></td>
-  <td><span style="background-color: #ff6f57">partiellement</span></td>
-  <td>p-GDP</td>
+  <td><span style="background-color: #1fff1f">oui</span></td>
+  <td><span style="background-color: #25fe1f">partiellement</span></td>
+  <td>post-GDP</td>
  </tr>
  <tr align="left">
-  <td>5 Travail sur des projets LilyPond<br>(3007)</td>
+  <td>5 Travail sur des projets LilyPond<br>(3144)</td>
   <td>Ludovic Sardain</td>
   <td>Jean-Yves Baudais<br>
    Valentin Villenave<br>
    John Mandereau<br>
    Jean-Charles Malahieude</td>
   <td><span style="background-color: #1fff1f">oui</span></td>
-  <td><span style="background-color: #b2fe32">partiellement</span></td>
+  <td><span style="background-color: #1fff1f">oui</span></td>
   <td>pré-GDP</td>
  </tr>
  <tr align="left">
-  <td>A Modèles<br>(483)</td>
+  <td>A Modèles<br>(498)</td>
   <td></td>
   <td></td>
-  <td><span style="background-color: #dfef77">partiellement (11 %)</span></td>
+  <td><span style="background-color: #dfef77">partiellement (12 %)</span></td>
   <td></td>
   <td>pré-GDP</td>
  </tr>
@@ -142,14 +145,14 @@ translations.template.html.in; DO NOT EDIT !-->
 
 <table align="center" border="2">
  <tr align="center">
-  <th>GNU LilyPond --- utilisation des programmes</th>  <th>Traducteurs</th>
+  <th>GNU LilyPond --- Utilisation du programme</th>  <th>Traducteurs</th>
   <th>Relecteurs</th>
   <th>Traduit</th>
   <th>À jour</th>
   <th>Autres informations</th>
  </tr>
  <tr align="left">
-  <td>Titre des chapitres<br>(393)</td>
+  <td>Titre des chapitres<br>(407)</td>
   <td>John Mandereau<br>
    Jean-Charles Malahieude</td>
   <td></td>
@@ -158,23 +161,23 @@ translations.template.html.in; DO NOT EDIT !-->
   <td>pré-GDP</td>
  </tr>
  <tr align="left">
-  <td>1 Installation<br>(1867)</td>
-  <td>@c   Please **do not** translate anything below this line.  Users</td>
-  <td></td>
+  <td>1 Installation<br>(1901)</td>
+  <td>John Mandereau</td>
+  <td>Jean-Charles Malahieude</td>
   <td><span style="background-color: #dfef77">partiellement (11 %)</span></td>
-  <td><span style="background-color: #efff3a">partiellement</span></td>
+  <td><span style="background-color: #2cff20">partiellement</span></td>
   <td>pré-GDP</td>
  </tr>
  <tr align="left">
   <td>2 Environnement de travail<br>(1149)</td>
+  <td>Jean-Charles Malahieude</td>
   <td></td>
-  <td></td>
-  <td><span style="background-color: #d0f0f8">non</span></td>
-  <td></td>
+  <td><span style="background-color: #1fff1f">oui</span></td>
+  <td><span style="background-color: #1fff1f">oui</span></td>
   <td>pré-GDP</td>
  </tr>
  <tr align="left">
-  <td>3 Exécution de LilyPond<br>(2896)</td>
+  <td>3 Exécution de LilyPond<br>(2827)</td>
   <td></td>
   <td></td>
   <td><span style="background-color: #d0f0f8">non</span></td>
@@ -182,7 +185,7 @@ translations.template.html.in; DO NOT EDIT !-->
   <td>pré-GDP</td>
  </tr>
  <tr align="left">
-  <td>4 @command{lilypond-book} : association musique-texte<br>(3194)</td>
+  <td>4 @command{lilypond-book} : association musique-texte<br>(3248)</td>
   <td></td>
   <td></td>
   <td><span style="background-color: #d0f0f8">non</span></td>
@@ -194,7 +197,7 @@ translations.template.html.in; DO NOT EDIT !-->
   <td>Jean-Charles Malahieude</td>
   <td></td>
   <td><span style="background-color: #1fff1f">oui</span></td>
-  <td><span style="background-color: #a5ff31">partiellement</span></td>
+  <td><span style="background-color: #1fff1f">oui</span></td>
   <td>pré-GDP</td>
  </tr>
 </table>
@@ -202,19 +205,19 @@ translations.template.html.in; DO NOT EDIT !-->
 
 <table align="center" border="2">
  <tr align="center">
-  <th>GNU LilyPond --- manuel de notation</th>  <th>Traducteurs</th>
+  <th>GNU LilyPond --- Manuel d'initiation</th>  <th>Traducteurs</th>
   <th>Relecteurs</th>
   <th>Traduit</th>
   <th>À jour</th>
   <th>Autres informations</th>
  </tr>
  <tr align="left">
-  <td>Titre des chapitres<br>(680)</td>
+  <td>Titre des chapitres<br>(695)</td>
   <td>John Mandereau<br>
    Jean-Charles Malahieude</td>
   <td></td>
   <td><span style="background-color: #1fff1f">oui</span></td>
-  <td><span style="background-color: #68ff28">partiellement</span></td>
+  <td><span style="background-color: #33ff21">partiellement</span></td>
   <td>pré-GDP</td>
  </tr>
  <tr align="left">
@@ -227,16 +230,16 @@ translations.template.html.in; DO NOT EDIT !-->
   <td>pré-GDP</td>
  </tr>
  <tr align="left">
-  <td>1.1 Hauteurs<br>(3147)</td>
+  <td>1.1 Hauteurs<br>(3123)</td>
   <td>Frédéric Chiasson</td>
   <td>Valentin Villenave<br>
    Jean-Charles Malahieude</td>
   <td><span style="background-color: #1fff1f">oui</span></td>
-  <td><span style="background-color: #ff6f57">partiellement</span></td>
+  <td><span style="background-color: #1fff1f">oui</span></td>
   <td>pré-GDP</td>
  </tr>
  <tr align="left">
-  <td>1.2 Rythme<br>(6527)</td>
+  <td>1.2 Rythme<br>(5215)</td>
   <td>Frédéric Chiasson</td>
   <td>Valentin Villenave<br>
    Jean-Charles Malahieude</td>
@@ -245,16 +248,16 @@ translations.template.html.in; DO NOT EDIT !-->
   <td>pré-GDP</td>
  </tr>
  <tr align="left">
-  <td>1.3 Signes d'interprétation<br>(1110)</td>
+  <td>1.3 Signes d'interprétation<br>(1146)</td>
   <td>Valentin Villenave</td>
   <td>Jean-Charles Malahieude<br>
    John Mandereau</td>
   <td><span style="background-color: #1fff1f">oui</span></td>
-  <td><span style="background-color: #ff7257">partiellement</span></td>
+  <td><span style="background-color: #ff6f57">partiellement</span></td>
   <td>pré-GDP</td>
  </tr>
  <tr align="left">
-  <td>1.4 Répétitions et reprises<br>(556)</td>
+  <td>1.4 Répétitions et reprises<br>(555)</td>
   <td>Valentin Villenave</td>
   <td>Jean-Charles Malahieude<br>
    John Mandereau</td>
@@ -263,7 +266,7 @@ translations.template.html.in; DO NOT EDIT !-->
   <td>pré-GDP</td>
  </tr>
  <tr align="left">
-  <td>1.5 Notes simultanées<br>(1452)</td>
+  <td>1.5 Notes simultanées<br>(1456)</td>
   <td>Frédéric Chiasson<br>
    Valentin Villenave</td>
   <td>Jean-Charles Malahieude<br>
@@ -273,7 +276,7 @@ translations.template.html.in; DO NOT EDIT !-->
   <td>pré-GDP</td>
  </tr>
  <tr align="left">
-  <td>1.6 Notation sur la portée<br>(1603)</td>
+  <td>1.6 Notation sur la portée<br>(1701)</td>
   <td>Valentin Villenave<br>
    Jean-Charles Malahieude</td>
   <td>John Mandereau</td>
@@ -282,7 +285,7 @@ translations.template.html.in; DO NOT EDIT !-->
   <td>pré-GDP</td>
  </tr>
  <tr align="left">
-  <td>1.7 Notation éditoriale<br>(902)</td>
+  <td>1.7 Notation éditoriale<br>(905)</td>
   <td>Jean-Charles Malahieude</td>
   <td></td>
   <td><span style="background-color: #1fff1f">oui</span></td>
@@ -290,11 +293,11 @@ translations.template.html.in; DO NOT EDIT !-->
   <td>pré-GDP</td>
  </tr>
  <tr align="left">
-  <td>1.8 Texte<br>(2410)</td>
+  <td>1.8 Texte<br>(2376)</td>
   <td>Jean-Charles Malahieude</td>
   <td>Valentin Villenave<br>
    John Mandereau</td>
-  <td><span style="background-color: #dfef77">partiellement (84 %)</span></td>
+  <td><span style="background-color: #dfef77">partiellement (97 %)</span></td>
   <td><span style="background-color: #ff6f57">partiellement</span></td>
   <td>pré-GDP</td>
  </tr>
@@ -304,42 +307,43 @@ translations.template.html.in; DO NOT EDIT !-->
    Jean-Charles Malahieude</td>
   <td></td>
   <td><span style="background-color: #1fff1f">oui</span></td>
-  <td><span style="background-color: #47ff24">partiellement</span></td>
+  <td><span style="background-color: #2cff20">partiellement</span></td>
   <td>pré-GDP</td>
  </tr>
  <tr align="left">
-  <td>2.1 Musique vocale<br>(2679)</td>
+  <td>2.1 Musique vocale<br>(2725)</td>
   <td>Valentin Villenave</td>
   <td>Jean-Charles Malahieude</td>
-  <td><span style="background-color: #dfef77">partiellement (56 %)</span></td>
+  <td><span style="background-color: #dfef77">partiellement (55 %)</span></td>
   <td><span style="background-color: #ff6d58">partiellement</span></td>
   <td>pré-GDP</td>
  </tr>
  <tr align="left">
-  <td>2.2 Keyboard and other multi-staff instruments<br>(679)</td>
-  <td>Valentin Villenave</td>
+  <td>2.2 Instruments utilisant des portées multiples<br>(747)</td>
+  <td>Valentin Villenave<br>
+   Jean-Charles Malahieude</td>
   <td>Jean-Charles Malahieude<br>
    John Mandereau</td>
-  <td><span style="background-color: #dfef77">partiellement (88 %)</span></td>
-  <td><span style="background-color: #ff6f57">partiellement</span></td>
+  <td><span style="background-color: #1fff1f">oui</span></td>
+  <td><span style="background-color: #1fff1f">oui</span></td>
   <td>pré-GDP</td>
  </tr>
  <tr align="left">
-  <td>2.3 Cordes non frettées<br>(234)</td>
-  <td>Valentin Villenave</td>
+  <td>2.3 Cordes non frettées<br>(235)</td>
+  <td>Valentin Villenave<br>
+   Matthieu Jacquot</td>
   <td>Jean-Charles Malahieude<br>
    John Mandereau</td>
-  <td><span style="background-color: #dfef77">partiellement (16 %)</span></td>
-  <td><span style="background-color: #ff6d58">partiellement</span></td>
+  <td><span style="background-color: #1fff1f">oui</span></td>
+  <td><span style="background-color: #1fff1f">oui</span></td>
   <td>pré-GDP</td>
  </tr>
  <tr align="left">
-  <td>2.4 Instruments à cordes frettées<br>(1748)</td>
-  <td>Valentin Villenave</td>
-  <td>Jean-Charles Malahieude<br>
-   John Mandereau</td>
-  <td><span style="background-color: #dfef77">partiellement (16 %)</span></td>
-  <td><span style="background-color: #ff6d58">partiellement</span></td>
+  <td>2.4 Instruments à cordes frettées<br>(1850)</td>
+  <td>Matthieu Jacquot</td>
+  <td>Jean-Charles Malahieude</td>
+  <td><span style="background-color: #1fff1f">oui</span></td>
+  <td><span style="background-color: #1fff1f">oui</span></td>
   <td>pré-GDP</td>
  </tr>
  <tr align="left">
@@ -356,21 +360,21 @@ translations.template.html.in; DO NOT EDIT !-->
   <td>Valentin Villenave</td>
   <td>Jean-Charles Malahieude<br>
    John Mandereau</td>
-  <td><span style="background-color: #dfef77">partiellement (1 %)</span></td>
-  <td><span style="background-color: #ff6d58">partiellement</span></td>
+  <td><span style="background-color: #1fff1f">oui</span></td>
+  <td><span style="background-color: #1fff1f">oui</span></td>
   <td>pré-GDP</td>
  </tr>
  <tr align="left">
-  <td>2.7 Notation des accords<br>(1326)</td>
+  <td>2.7 Notation des accords<br>(1464)</td>
   <td>Valentin Villenave</td>
   <td>Jean-Charles Malahieude<br>
    John Mandereau</td>
-  <td><span style="background-color: #dfef77">partiellement (64 %)</span></td>
+  <td><span style="background-color: #dfef77">partiellement (61 %)</span></td>
   <td><span style="background-color: #ff6f57">partiellement</span></td>
   <td>pré-GDP</td>
  </tr>
  <tr align="left">
-  <td>2.8 Notations anciennes<br>(4240)</td>
+  <td>2.8 Notations anciennes<br>(4487)</td>
   <td>John Mandereau<br>
    Jean-Charles Malahieude</td>
   <td></td>
@@ -387,37 +391,37 @@ translations.template.html.in; DO NOT EDIT !-->
   <td>pré-GDP</td>
  </tr>
  <tr align="left">
-  <td>3 Généralités en matière d'entrée et sortie<br>(5689)</td>
+  <td>3 Généralités en matière d'entrée et sortie<br>(5873)</td>
   <td>Jean-Charles Malahieude<br>
    Valentin Villenave</td>
   <td></td>
-  <td><span style="background-color: #dfef77">partiellement (6 %)</span></td>
+  <td><span style="background-color: #dfef77">partiellement (5 %)</span></td>
   <td><span style="background-color: #ff8353">partiellement</span></td>
   <td>pré-GDP</td>
  </tr>
  <tr align="left">
-  <td>4 Gestion de l'espace<br>(8297)</td>
+  <td>4 Gestion de l'espace<br>(8569)</td>
   <td>Frédéric Chiasson<br>
    Jean-Charles Malahieude</td>
   <td></td>
-  <td><span style="background-color: #dfef77">partiellement (19 %)</span></td>
-  <td><span style="background-color: #f6fe3b">partiellement</span></td>
+  <td><span style="background-color: #dfef77">partiellement (18 %)</span></td>
+  <td><span style="background-color: #fff53e">partiellement</span></td>
   <td>pré-GDP</td>
  </tr>
  <tr align="left">
-  <td>5 Modification des réglages prédéfinis<br>(11307)</td>
+  <td>5 Modification des réglages prédéfinis<br>(11747)</td>
   <td>Valentin Villenave</td>
   <td>Gilles Thibault</td>
-  <td><span style="background-color: #dfef77">partiellement (33 %)</span></td>
-  <td><span style="background-color: #ff974f">partiellement</span></td>
+  <td><span style="background-color: #dfef77">partiellement (45 %)</span></td>
+  <td><span style="background-color: #ff954f">partiellement</span></td>
   <td>pré-GDP</td>
  </tr>
  <tr align="left">
   <td>6 Interfaces pour les programmeurs<br>(5202)</td>
-  <td></td>
-  <td></td>
-  <td><span style="background-color: #d0f0f8">non</span></td>
-  <td></td>
+  <td>Valentin Villenave</td>
+  <td>Gilles Thibault</td>
+  <td><span style="background-color: #dfef77">partiellement (9 %)</span></td>
+  <td><span style="background-color: #76fe2a">partiellement</span></td>
   <td>pré-GDP</td>
  </tr>
  <tr align="left">
@@ -429,12 +433,12 @@ translations.template.html.in; DO NOT EDIT !-->
   <td>pré-GDP</td>
  </tr>
  <tr align="left">
-  <td>B Tables du manuel de notation<br>(1155)</td>
+  <td>B Tables du manuel de notation<br>(1190)</td>
   <td>Frédéric Chiasson<br>
    Jean-Charles Malahieude</td>
   <td></td>
-  <td><span style="background-color: #dfef77">partiellement (7 %)</span></td>
-  <td><span style="background-color: #e1ff39">partiellement</span></td>
+  <td><span style="background-color: #dfef77">partiellement (6 %)</span></td>
+  <td><span style="background-color: #1fff1f">oui</span></td>
   <td>pré-GDP</td>
  </tr>
  <tr align="left">
@@ -442,7 +446,7 @@ translations.template.html.in; DO NOT EDIT !-->
   <td>Valentin Villenave</td>
   <td></td>
   <td><span style="background-color: #1fff1f">oui</span></td>
-  <td><span style="background-color: #1fff1f">oui</span></td>
+  <td><span style="background-color: #33ff21">partiellement</span></td>
   <td>pré-GDP</td>
  </tr>
 </table>
index 950c6bec2eb7d823cb04a83b18ab2beea0e1cecb..c492ef80b812c46bb2f3c2661c17df3f55b47754 100644 (file)
@@ -1,6 +1,6 @@
 <html>
 <!--
-    Translation of GIT committish: 862d8ce7ab34bfa6e9192fb31d004137d158c452
+    Translation of GIT committish: 148e80b8992a7fb9d59ec439c00b79decbbe3bad
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
@@ -28,8 +28,8 @@
   remaniée, et sa révision se poursuit encore actuellement&nbsp;; le rythme
   de cette révision ne permet pas de maintenir toutes les traductions
   à jour.  Cependant, le fait que certaines traductions ne soient pas
-  du tout à jour (avec une indication sur fond rouge) ne signifient
-  pas qu'elles sont périmées, cela signifie juste que les traductions
+  du tout à jour (avec une indication sur fond rouge) ne signifie
+  pas qu'elles sont périmées, mais simplement qu'elles
   n'atteignent pas la qualité de la documentation en anglais récemment
   remaniée&nbsp;: les traducteurs font de leur mieux pour au moins mettre à
   jour dans la documentation la syntaxe et les noms de commande
index ef07ca9f2b45f91eac574e47203da176b2880d86..bb89e3dfdb989f29ea4e9f70a6445ff07de46756 100644 (file)
@@ -8,12 +8,11 @@
 @end ignore
 
 
+@c \version "2.12.0"
+
 @node Ancient notation
 @section Ancient notation
 
-@untranslated
-
-
 @menu
 * Introduction to ancient notation::  
 * Alternative note signs::      
@@ -170,8 +169,8 @@ c'est le @rinternals{Mensural_ligature_engraver} qui se chargera des
 ligatures mensurales.  Consultez la section @ref{Ligatures} pour savoir
 comment fonctionnent les graveurs de ligature.
 
-@seealso
 
+@seealso
 Pour un aperçu de toutes les possibilités,
 consultez @ref{Note head styles}.
 
@@ -234,8 +233,8 @@ altération indisponible dans le style utilisé.
 par la propriété @code{glyph-name-alist} de l'objet
 @rinternals{KeySignature}. 
 
-@seealso
 
+@seealso
 Dans ce manuel : @ref{Pitches}, @ref{Accidentals}, et
 @ref{Automatic accidentals}, pour les principes généraux d'utilisation
 des altérations ; @ref{Key signature} pour les armures.
@@ -276,8 +275,8 @@ défaut.  Voici une liste des styles de silences disponibles.
 Les silences sont absents de la notation grégorienne ; par contre, cette
 notation utilise des @ref{Divisiones}.
 
-@seealso
 
+@seealso
 Dans ce manuel : les principes généraux sur l'utilisation des silences
 sont exposés dans @ref{Rests}.
 
@@ -512,10 +511,11 @@ Editio XXX.}
 Les clés d'ut de Petrucci avaient une hampe gauche différente selon
 leur ligne de rattachement.
 
-@seealso
 
+@seealso
 Dans ce manuel : voir @ref{Clef}.
 
+
 @knownissues
 
 La clé de sol mensurale est calquée sur celle de Petrucci.
@@ -652,11 +652,12 @@ Voici les différences entre les styles :
 }
 @end lilypond
 
-@seealso
 
+@seealso
 Dans ce manuel : @ref{Time signature} expose les principes généraux sur
 l'utilisation des indications de métrique.
 
+
 @knownissues
 
 Les équivalences de durées de note ne sont pas modifiées par un
@@ -800,8 +801,8 @@ styles disponibles sont @code{vaticana}, @code{medicaea},
 }
 @end lilypond
 
-@seealso
 
+@seealso
 Référence du programme : @rinternals{Custos}.
 
 Exemples : @rlsr{Ancient notation}.
@@ -833,8 +834,8 @@ pourquoi @file{gregorian@/-init@/.ly} définit aussi @code{\virgula} et
 
 @lilypondfile[quote,ragged-right]{divisiones.ly}
 
-@predefined
 
+@predefined
 @funindex \virgula
 @code{\virgula},
 @funindex \caesura
@@ -847,9 +848,10 @@ pourquoi @file{gregorian@/-init@/.ly} définit aussi @code{\virgula} et
 @code{\divisioMaxima},
 @funindex \finalis
 @code{\finalis}.
+@endpredefined
 
-@seealso
 
+@seealso
 Dans ce manuel : @ref{Breath marks}.
 
 Référence du programme : @rinternals{BreathingSign}.
@@ -1908,10 +1910,9 @@ c} ou @code{\augmentum @{\virga c@}}.  Par ailleurs, l'expression
 }
 @end lilypond
 
-@predefined
 
+@predefined
 LilyPond dispose des préfixes suivants :
-
 @funindex \virga
 @code{\virga},
 @funindex \stropha
@@ -1934,6 +1935,8 @@ LilyPond dispose des préfixes suivants :
 @code{\cavum},
 @funindex \linea
 @code{\linea}.
+@endpredefined
+
 
 Les préfixes de note peuvent s'agglutiner, modulo quelques restrictions.
 Par exemple, on peut appliquer un @code{\descendens} ou un
@@ -1988,7 +1991,7 @@ les propriétés de tous les autres contextes et objets graphiques à des
 valeurs adéquates, de telle sorte que vous pouvez tout de suite vous
 lancer dans la saisie de votre chant, comme ci-dessous :
 
-@lilypond[quote,ragged-right,packed,verbatim]
+@lilypond[quote,ragged-right,verbatim]
 \include "gregorian.ly"
 \score {
   <<
index 4f7d8755c9aebbf42d7608689b2cbad5dbd9b220..3134ce3c6125c8b67f693b2618616858560a53d6 100644 (file)
@@ -1,5 +1,5 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
-@c This file is part of ../user/lilypond.tely
+@c This file is part of lilypond.tely
 @ignore
     Translation of GIT committish: 76de7e168dbc9ffc7671d99663c5ce50dae42abb
 
@@ -7,11 +7,12 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @c Translators: Valentin Villenave
 @c Translation checkers: Gilles Thibault
 
+
 @node Changing defaults
 @chapter Changing defaults
 
@@ -34,7 +35,7 @@ référence du programme
 @ref{Top,Référence du programme,,lilypond-internals}.
 @end ifnottex
 Ce guide répertorie toutes les variables, fonctions et autres options que
-LilyPond met à votre disposition.  Il est consultable 
+LilyPond met à votre disposition.  Il est consultable
 @c leave the @uref as one long line.
 @uref{http://@/lilypond@/.org/@/doc/@/stable/@/Documentation/@/user/@/lilypond@/-internals/,en@tie{}ligne},
 au format HTML, mais est également inclus dans la documentation
@@ -48,7 +49,7 @@ La notation automatique, ce qui revient à modifier la manière dont les éléme
 de notation sont automatiquement créés -- par exemple, les règles de ligatures.
 
 @item
-L'apparence, qui se rapporte aux objets pris individuellement -- ainsi de la direction 
+L'apparence, qui se rapporte aux objets pris individuellement -- ainsi de la direction
 des hampes, du placement des indications textuelles.
 
 @item
@@ -64,164 +65,98 @@ En sous-main, LilyPond se sert du langage Scheme (un dérivé du LISP) comme
 infrastructure.  Modifier les choix de mise en page revient à pénétrer dans
 les entrailles du programme, et de ce fait requiert l'emploi du Scheme.
 Les fragments de Scheme, dans un fichier @code{.ly}, sont introduits par le
-caractère @q{hash}, (@code{#}, improprement surnommé @q{dièse}).@footnote{Le 
+caractère @q{hash}, (@code{#}, improprement surnommé @q{dièse}).@footnote{Le
 @rlearning{Scheme tutorial} fournit quelques notions de base pour saisir des nombres,
 des listes, des chaînes de caractères ou des symboles, en Scheme.}
 
 
 @menu
-* Interpretation contexts::     
-* The override command::        
+* Interpretation contexts::
+* Explaining the Internals Reference::
+* Modifying properties::
+* Useful concepts and properties::
+* Advanced tweaks::
 @end menu
 
-
 @node Interpretation contexts
 @section Interpretation contexts
 
 Cette section traite des contextes.
 
 @menu
-* Contexts explained::          
-* The set command::             
-* Modifying context plug-ins::  
-* Layout tunings within contexts::  
-* Changing context default settings::  
-* Defining new contexts::       
-* Aligning contexts::           
-* Vertical grouping of grobs::  
+* Contexts explained::
+* Creating contexts::
+* Modifying context plug-ins::
+* Layout tunings within contexts::
+* Changing context default settings::
+* Defining new contexts::
+* Aligning contexts::
 @end menu
 
-
 @node Contexts explained
 @subsection Contexts explained
 
-@untranslated
-
-
-@node The set command
-@subsection The @code{\set} command
-
-@cindex propriétés
-@funindex \set
-@cindex modifier des propriétés
-
-Chaque contexte peut avoir plusieurs @emph{propriétés}, c'est-à-dire
-des variables qu'il inclut.  Ces dernières peuvent être modifiées @qq{à la volée},
-c'est-à-dire pendant que la compilation s'accomplit.  C'est là le rôle de la
-commande @code{\set}.
-
-@example
-\set @var{contexte}.@var{propriété} = #@var{valeur}
-@end example
-
-Ainsi :
-@lilypond[quote,verbatim,relative=2,fragment]
-R1*2
-\set Score.skipBars = ##t
-R1*2
-@end lilypond
-
-Cette commande permet de condenser les mesures vides de notes, en des silences
-multi-mesures.  Il s'agit d'un objet Scheme, auquel on attribue la valeur booléenne
-@q{vrai}, c'est-à-dire la lettre @code{#t} pour @q{True} en anglais.
-
-Ce changement étant appliqué @q{à la volée}, il n'affecte que le second groupe de notes.
-
-Si l'argument @var{contexte} n'est pas spécifié, alors la propriété cherchera à s'appliquer
-dans le contexte le plus restreint où elle est employée : le plus souvent
- @code{ChordNames}, @code{Voice}, ou @code{Lyrics}.  Dans l'exemple suivant,
-
-@lilypond[quote,verbatim,relative=2,fragment]
-c8 c c c
-\set autoBeaming = ##f
-c8 c c c
-@end lilypond
+@ignore
+@c TODO Rethink and rewrite
+
+>> > > - list of contexts: my *danger unmaintainable*
+>> > > alarm just went off.  I'm
+
+I knew it would... And leaving out some of them is perfectly fine
+with me.
+I do think that a list like this, with the main contexts and a
+brief
+description of  what they do (perhaps also with a note about what
+default
+behavior is associated with each of them, but this may be
+unmanageable),
+should be there, and then we could simply list the remaining ones
+without
+further explanation and with links to the IR.
+@end ignore
 
-@noindent
-aucun argument @var{contexte} n'a été donné à la commande @code{\set}.
-De ce fait, les ligatures automatiques sont désactivées dans le
-contexte actuel, c'est-à-dire @rinternals{Voice}.  Notez que le
-contexte le plus restreint n'est pas toujours le bon, 
-et peut ne pas contenir la propriété qui vous intéresse : ainsi, la propriété 
-@code{skipBars}, évoquée plus haut, ne relève pas du contexte @code{Voice}, 
-et le code suivant ne fonctionnera pas.
+@c TODO Improve layout, order and consistency of wording -td
 
-@lilypond[quote,verbatim,relative=2,fragment]
-R1*2
-\set skipBars = ##t
-R1*2
-@end lilypond
+@c TODO Add introduction which explains contexts in generality  -td
 
-Les contextes s'organisent de façon hiérarchique : aussi, lorsqu'un contexte de niveau
-supérieur est spécifié (par exemple @code{Staff}), la propriété sera modifée dans
-tous les contextes inférieurs (tous les contextes @code{Voice}, par exemple)
-qu'il contient.
+@c TODO Describe propagation of property values -td
 
-@funindex \unset
 
-La commande @code{\unset} permet d'annuler la définition d'une propriété :
+@menu
+* Score - the master of all contexts::
+* Top-level contexts - staff containers::
+* Intermediate-level contexts - staves::
+* Bottom-level contexts - voices::
+@end menu
 
-@example
-\unset @var{contexte}.@var{propriété}
-@end example
+@node Score - the master of all contexts
+@unnumberedsubsubsec Score - the master of all contexts
 
-@noindent
-si et seulement si cette propriété à été définie dans ce @var{contexte}
-précis ; ainsi,
+@untranslated
 
-@example
-\set Staff.autoBeaming = ##f
-@end example
 
-@noindent
-même s'il s'applique à tous les contextes @code{Voice} contenus dans le
-contexte @code{Staff}, ne peut être annulé au niveau @code{Voice}.  Le code
-suivant sera sans effet.
+@node Top-level contexts - staff containers
+@unnumberedsubsubsec Top-level contexts - staff containers
 
-@example
-\unset Voice.autoBeaming
-@end example
+@untranslated
 
-@noindent
-En d'autres termes, la commande @code{\unset} doit impérativement être
-accompagnée du même contexte que la commande @code{\set} d'origine.
-Pour annuler l'effet, dans notre exemple, de @code{Staff.autoBeaming = ##f},
-il faut donc entrer :
-@example
-\unset Staff.autoBeaming
-@end example
 
-Si l'on se trouve dans le contexte le plus restreint, il n'est pas obligatoire,
-là encore, de spécifier le @var{contexte}.  Ainsi, les deux lignes suivantes sont équivalentes.
+@node Intermediate-level contexts - staves
+@unnumberedsubsubsec Intermediate-level contexts - staves
 
+@untranslated
 
-@example
-\set Voice.autoBeaming = ##t
-\set autoBeaming = ##t
-@end example
 
+@node Bottom-level contexts - voices
+@unnumberedsubsubsec Bottom-level contexts - voices
 
-@cindex \once
-Pour modifier une propriété de façon à ce qu'elle ne s'applique qu'une seule fois,
-il convient d'employer la commande @code{\once} :
+@untranslated
 
-@lilypond[quote,verbatim,relative=2,fragment]
-c4
-\once \set fontSize = #4.7
-c4
-c4
-@end lilypond
 
-Ici le changement de taille est annulé aussitôt après la note concernée.
+@node Creating contexts
+@subsection Creating contexts
 
-La référence du programme contient une description exhaustive de toutes les
-propriétés contexte par contexte : voir
-@ifhtml
-@rinternals{Tunable context properties}.
-@end ifhtml
-@ifnothtml
-Translation @expansion{} Tunable context properties.
-@end ifnothtml
+@untranslated
 
 
 @node Modifying context plug-ins
@@ -241,14 +176,14 @@ Vous trouverez une description exhaustive de chaque graveur dans
 @rinternals{Engravers and Performers}.
 @end ifhtml
 @ifnothtml
-Program reference @expansion Translation @expansion{} Engravers.
+Program reference @expansion{} Translation @expansion{} Engravers.
 @end ifnothtml
 Chaque contexte mentionné dans
 @ifhtml
 @rinternals{Contexts}
 @end ifhtml
 @ifnothtml
-Program reference @expansion Translation @expansion{} Context.
+Program reference @expansion{} Translation @expansion{} Context.
 @end ifnothtml
 répertorie les graveurs mis en œuvre.
 
@@ -301,7 +236,7 @@ La clé et le chiffre de mesure ont disparu de la deuxième portée.  C'est une
 quelque peu radicale, puisqu'elle affectera toute la portée jusqu'à la fin de la
 partition.  L'espacement s'en trouve également affecté, ce qui peut être ou non
 l'effet recherché.  Une méthode plus sophistiquée aurait été de rendre ces objets
-transparents (voir @rlearning{Common tweaks}).
+transparents (voir @rlearning{Visibility and color of objects}).
 
 Dans l'exemple suivant, voici une mise en pratique plus utile.  En temps
 normal, les barres de mesure et la métrique sont synchronisées verticalement
@@ -336,6 +271,7 @@ En les enlevant du contexte @code{Score} pour les attribuer au contexte
 @end lilypond
 
 
+@c deprecated node: delete. --fv
 @node Layout tunings within contexts
 @subsection Layout tunings within contexts
 
@@ -363,7 +299,7 @@ La commande suivante :
 @end verbatim
 
 @noindent
-rend les hampes plus épaisses (la valeur par défaut est 1.3, ce qui signifie qu'elles 
+rend les hampes plus épaisses (la valeur par défaut est 1.3, ce qui signifie qu'elles
 sont 1,3 fois plus épaisses que les lignes de la portée).  Dans la mesure où nous avons
 indiqué @code{Staff} comme contexte, ce réglage ne s'appliquera qu'à la portée courante ;
 les autres portées demeureront intactes.
@@ -430,12 +366,11 @@ nomme @q{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
 
 
 @seealso
-
 Référence du programme : @rinternals{OverrideProperty}, @rinternals{RevertProperty},
 @rinternals{PropertySet}, @rinternals{Backend}, et
 @rinternals{All layout objects}.
@@ -532,6 +467,7 @@ servir à indiquer un passage improvisé dans un morceau de jazz.
   \name ImproVoice
   \type "Engraver_group"
   \consists "Note_heads_engraver"
+  \consists "Rhythmic_column_engraver"
   \consists "Text_engraver"
   \consists Pitch_squash_engraver
   squashedPosition = #0
@@ -595,7 +531,7 @@ squashedPosition = #0
 @end example
 
 @noindent
-Le graveur @rinternals{Pitch_squash_engraver} intercepte les notes créées par 
+Le graveur @rinternals{Pitch_squash_engraver} intercepte les notes créées par
 @rinternals{Note_heads_engraver}, et les @q{écrase} pour qu'elles aient toutes la
 même position verticale, définie par @code{squashedPosition} : ici il s'agit de la
 valeur@tie{}@code{0}, c'est-à-dire la ligne du milieu.
@@ -686,6 +622,7 @@ On peut alors saisir la musique, comme dans l'exemple plus haut :
 @node Aligning contexts
 @subsection Aligning contexts
 
+
 Il est possible d'aligner verticalement chaque nouveau contexte,
 en-dessous ou au-dessus, par exemple dans le cas de musique vocale
 (@rlearning{Vocal ensembles}) ou d'@qq{ossias}.
@@ -700,7 +637,7 @@ ossia = { f4 f f f }
   \relative c' \new Staff = "main" {
     c4 c c c
     <<
-      \new Staff \with {alignAboveContext=main} \ossia
+      \new Staff \with { alignAboveContext = #"main" } \ossia
       { d8 f d f d f d f }
     >>
   }
@@ -708,93 +645,17 @@ ossia = { f4 f f f }
 @end lilypond
 
 
-@node Vertical grouping of grobs
-@subsection Vertical grouping of grobs
-
-Les objets @code{VerticalAlignment} et @code{VerticalAxisGroup}
-travaillent de concert.  Comme leurs noms anglais l'indiquent,
-@code{VerticalAxisGroup} regroupe différents objets tels que les portées
-(@code{Staff}), les paroles (@code{Lyrics}) et ainsi de suite ; puis
-@code{VerticalAlignment} synchronise verticalement ces différents groupes.
-En général, il n'y a qu'un seul @code{VerticalAlignment} pour l'ensemble
-de la partition, mais chaque contexte @code{Staff}, @code{Lyrics}, etc.
-possède son propre @code{VerticalAxisGroup}.
-
-
-@node The override command
-@section The @code{\override} command
-
-La commande @code{\override} permet de modifier la mise en page
-en détail.  Examinons son utilisation concrètementet dans les détails.
-La syntaxe de cette commande ressemble généralement à :
-
-@example
-\override @var{contexte}.@var{objet} #'@var{propriété} = #@var{valeur}
-@end example
+@node Explaining the Internals Reference
+@section Explaining the Internals Reference
 
-La propriété @var{propriété} de l'objet @var{objet}, appartenant au contexte
-@var{contexte}, se voit ainsi attribuer la valeur @var{valeur}.
 
 @menu
-* Constructing a tweak::        
-* Navigating the program reference::  
-* Layout interfaces::           
-* Determining the grob property::  
-* The tweak command::           
-* Using Scheme code instead of tweak::  
-* set versus override::         
-* Difficult tweaks::            
+* Navigating the program reference::
+* Layout interfaces::
+* Determining the grob property::
+* Naming conventions::
 @end menu
 
-
-
-@node Constructing a tweak
-@subsection Constructing a tweak
-
-Les commandes permettant de modifier l'apparence de la partition
-ressemblent en général à
-
-@example
-\override Voice.Stem #'thickness = #3.0
-@end example
-
-@noindent
-Pour élaborer un réglage de ce type, on a besoin de connaître précisément :
-
-@itemize
-@item le contexte : ici @code{Voice} (la voix).
-@item l'objet à affecter : ici @code{Stem} (les hampes).
-@item la propriété à modifier : ici @code{thickness} (l'épaisseur du trait).
-@item la valeur désirée : ici @code{3.0} (par défaut, elle est de 1.3).
-@end itemize
-
-Certaines @q{sous-propriétés} sont parfois contenues dans une propriété.
-La commande devient alors :
-
-@example
-\override Stem #'details #'beamed-lengths = #'(4 4 3)
-@end example
-
-@cindex documentation exhaustive
-@cindex trouver des objets graphiques
-@cindex objets graphiques, description
-@cindex régler
-@funindex \override
-
-Pour bien des propriétés, quel que soit le type de valeur requise,
-attribuer la valeur @q{faux} (@code{##f} en Scheme) reviendra à désactiver
-complètement l'action de la propriété qui se trouve ainsi purement
-ignorée par LilyPond.  Cela peut s'avérer fort utile pour des propriétés
-causant des désagréments.
-
-@c such announcements are to be avoided -vv
-@ignore
-We demonstrate how to glean this information from the notation manual
-and the program reference.
-@end ignore
-
-
-
 @node Navigating the program reference
 @subsection Navigating the program reference
 
@@ -809,13 +670,10 @@ f
 Sur la page de la documentation relative aux doigtés, c'est-à-dire
 @ref{Fingering instructions}, se trouve l'indication suivante :
 
-@quotation
-@seealso
 
+@seealso
 Référence du programme : @rinternals{Fingering}.
 
-@end quotation
-
 
 @c  outdated info; probably will delete.
 @ignore
@@ -869,7 +727,7 @@ Fingering objects are created by: @rinternals{Fingering_engraver} and
 @rinternals{New_fingering_engraver}.
 @end quotation
 
-En d'autres termes, @emph{Les indications de doigtés} 
+En d'autres termes, @emph{Les indications de doigtés}
 (@code{Fingering} en anglais) @emph{sont créées par les graveurs
 @rinternals{Fingering_engraver} et @rinternals{New_fingering_engraver}.}
 
@@ -893,7 +751,7 @@ Music event type @code{fingering-event} is in Music expressions named
 Ce cheminement se produit, bien sûr, en sens inverse : nous sommes ici partis
 du résultat, et avons abouti aux évènements (en anglais @q{Events}) engendrés
 par le fichier d'entrée.  L'inverse est également possible : on peut partir d'un
-évènement, et suivre le cheminement de LilyPond qui aboutit à la création d'un 
+évènement, et suivre le cheminement de LilyPond qui aboutit à la création d'un
 ou plusieurs objets graphiques.
 
 La référence du programme peut également se parcourir comme un document normal.
@@ -905,7 +763,7 @@ On y trouve des chapitres tels que
 @code{Music definitions}
 @end ifnothtml
 @rinternals{Translation}, ou encore @rinternals{Backend}.  Chaque chapitre
-recense toutes les définitions employées, et les propriétés sujettes à 
+recense toutes les définitions employées, et les propriétés sujettes à
 ajustements.
 
 @c -- what about adding a link to the glossary here ? -vv
@@ -992,7 +850,7 @@ Cet objet admet les interfaces suivantes :
 Suit la liste des interfaces en question, présentées comme autant de liens,
 qui conduisent sur les pages dédiées à chacune d'entre elles.
 Chaque interface est dotée d'un certain nombre de propriétés, dont certaines
-peuvent être modifiées, et d'autres non (les @q{Internal properties}, ou 
+peuvent être modifiées, et d'autres non (les @q{Internal properties}, ou
 propriétés internes).
 
 Pour aller encore plus loin, plutôt que de simplement parler de l'objet
@@ -1029,9 +887,11 @@ son âme même, dans les fichiers source de LilyPond (voir
 amas de variables et de réglages.  La page de la Référence du programme est
 en fait directement engendrée par cette définition.
 
+
 @node Determining the grob property
 @subsection Determining the grob property
 
+
 Nous voulions changer la position du chiffre @b{2} dans le fragment suivant :
 
 @lilypond[quote,fragment,relative=2,verbatim]
@@ -1078,7 +938,7 @@ Add this much extra space between objects that are next to each other.
 
 @noindent
 Ce qui signifie
-@quotation 
+@quotation
 Ajouter tel espace supplémentaire entre des objets proches les uns des
 autres.
 @end quotation
@@ -1117,105 +977,279 @@ Le graveur Fingering_engraver fait partie des contextes : @dots{} @rinternals{Vo
 @end quotation
 
 
-@node The tweak command
-@subsection The @code{\tweak} command
-
-@funindex \tweak
-
-Dans certains cas, on peut passer par un raccourci pour arranger les
-objets graphiques.  Lorsqu'un objet est directement engendré par un élément distinct
-du fichier source, on peut utiliser la commande @code{\tweak}.
-
-Dans l'accord suivant, les notes sont modifiées une par une :
+@node Naming conventions
+@subsection Naming conventions
 
-@lilypond[relative=2,fragment,verbatim,ragged-right]
-<
-  c
-  \tweak #'color #red d
-  g
-  \tweak #'duration-log #1  a
->4-\tweak #'padding #10 -.
-@end lilypond
+@untranslated
 
-Comme on peut le voir, les propriétés sont ici modifiées directement
-en même temps que les objets sont saisis.  Il n'est plus besoin de spécifier ni
-le nom de l'objet (@emph{grob}), ni le contexte dans lequel cela doit s'appliquer.
 
-Ce procédé ne marche que pour des objets directement liés aux évènements 
-(@rinternals{Event}) du fichier source.  Par exemple :
+@node Modifying properties
+@section Modifying properties
 
-@itemize @bullet
-@item Les têtes de notes au sein d'un accord, qui sont directement engendrées par 
-les hauteurs indiquées
-@item Les signes d'articulation, engendrés par les indications de ponctuation.
-@end itemize
+@c TODO change the menu and subsection node names to use
+@c backslash once the new macro to handle the refs
+@c is available.  Need to find and change all refs at
+@c the same time. -td
 
-En revanche, les hampes ou les altérations sont engendrées par les têtes de notes,
-et non par des évènements dans le fichier source.  De même pour les clés, qui ne
-sont pas directement engendrées par le fichier source, mais plutôt par le
-changement d'une propriété interne.
+@menu
+* Overview of modifying properties::
+* The set command::
+* The override command::
+* Constructing a tweak::
+* The tweak command::
+* set versus override::
+@end menu
 
-En fait, très peu d'objets passent @emph{directement} du code source à la partition.
-Une note toute simple, par exemple @code{c4}, fait l'objet d'un traitement et n'est donc
-pas directement rendue ; c'est pourquoi le code suivant ne sera d'aucun effet :
+@node Overview of modifying properties
+@subsection Overview of modifying properties
 
-@example
-\tweak #'color #red c4
-@end example
+@untranslated
 
-@noindent
-Voir pour plus de détails @ref{Displaying music expressions}.
 
+@node The set command
+@subsection The @code{\set} command
 
-@node Using Scheme code instead of tweak
-@subsection Using Scheme code instead of @code{\tweak}
+@cindex propriétés
+@funindex \set
+@cindex modifier des propriétés
 
-L'inconvénient principal de la commande @code{\tweak} est la rigidité de sa
-syntaxe.  Par exemple, le code suivant produit une erreur.
+Chaque contexte peut avoir plusieurs @emph{propriétés}, c'est-à-dire
+des variables qu'il inclut.  Ces dernières peuvent être modifiées @qq{à la volée},
+c'est-à-dire pendant que la compilation s'accomplit.  C'est là le rôle de la
+commande @code{\set}.
 
 @example
-F = \tweak #'font-size #-3 -\flageolet
-
-\relative c'' @{
-  c4^\F c4_\F
-@}
+\set @var{contexte}.@var{propriété} = #@var{valeur}
 @end example
 
-@noindent
-En d'autres termes, @code{\tweak} ne se comporte pas comme une articulation :
-il ne peut notamment pas être accolé avec les symboles @samp{^} ou @samp{_}.
-
-C'est en se servant du langage Scheme que l'on peut résoudre ce problème.
-Dans cet exemple, on a recours aux méthodes décrites dans @ref{Adding 
-articulation to notes (example)}, en particulier quant à l'emploi de
-@code{\displayMusic}.
+Ainsi :
+@lilypond[quote,verbatim,relative=2,fragment]
+R1*2
+\set Score.skipBars = ##t
+R1*2
+@end lilypond
+
+Cette commande permet de condenser les mesures vides de notes, en des silences
+multi-mesures.  Il s'agit d'un objet Scheme, auquel on attribue la valeur booléenne
+@q{vrai}, c'est-à-dire la lettre @code{#t} pour @q{True} en anglais.
+
+Ce changement étant appliqué @q{à la volée}, il n'affecte que le second groupe de notes.
+
+Si l'argument @var{contexte} n'est pas spécifié, alors la propriété cherchera à s'appliquer
+dans le contexte le plus restreint où elle est employée : le plus souvent
+ @code{ChordNames}, @code{Voice}, ou @code{Lyrics}.  Dans l'exemple suivant,
+
+@lilypond[quote,verbatim,relative=2,fragment]
+c8 c c c
+\set autoBeaming = ##f
+c8 c c c
+@end lilypond
+
+@noindent
+aucun argument @var{contexte} n'a été donné à la commande @code{\set}.
+De ce fait, les ligatures automatiques sont désactivées dans le
+contexte actuel, c'est-à-dire @rinternals{Voice}.  Notez que le
+contexte le plus restreint n'est pas toujours le bon,
+et peut ne pas contenir la propriété qui vous intéresse : ainsi, la propriété
+@code{skipBars}, évoquée plus haut, ne relève pas du contexte @code{Voice},
+et le code suivant ne fonctionnera pas.
+
+@lilypond[quote,verbatim,relative=2,fragment]
+R1*2
+\set skipBars = ##t
+R1*2
+@end lilypond
+
+Les contextes s'organisent de façon hiérarchique : aussi, lorsqu'un contexte de niveau
+supérieur est spécifié (par exemple @code{Staff}), la propriété sera modifée dans
+tous les contextes inférieurs (tous les contextes @code{Voice}, par exemple)
+qu'il contient.
+
+@funindex \unset
+
+La commande @code{\unset} permet d'annuler la définition d'une propriété :
 
 @example
-F = #(let ((m (make-music 'ArticulationEvent
-                          'articulation-type "flageolet")))
-       (set! (ly:music-property m 'tweaks)
-             (acons 'font-size -3
-                    (ly:music-property m 'tweaks)))
-       m)
-\relative c'' @{
-  c4^\F c4_\F
-@}
+\unset @var{contexte}.@var{propriété}
+@end example
+
+@noindent
+si et seulement si cette propriété à été définie dans ce @var{contexte}
+précis ; ainsi,
+
+@example
+\set Staff.autoBeaming = ##f
+@end example
+
+@noindent
+même s'il s'applique à tous les contextes @code{Voice} contenus dans le
+contexte @code{Staff}, ne peut être annulé au niveau @code{Voice}.  Le code
+suivant sera sans effet.
+
+@example
+\unset Voice.autoBeaming
+@end example
+
+@noindent
+En d'autres termes, la commande @code{\unset} doit impérativement être
+accompagnée du même contexte que la commande @code{\set} d'origine.
+Pour annuler l'effet, dans notre exemple, de @code{Staff.autoBeaming = ##f},
+il faut donc entrer :
+@example
+\unset Staff.autoBeaming
+@end example
+
+Si l'on se trouve dans le contexte le plus restreint, il n'est pas obligatoire,
+là encore, de spécifier le @var{contexte}.  Ainsi, les deux lignes suivantes sont équivalentes.
+
+
+@example
+\set Voice.autoBeaming = ##t
+\set autoBeaming = ##t
+@end example
+
+
+@cindex \once
+Pour modifier une propriété de façon à ce qu'elle ne s'applique qu'une seule fois,
+il convient d'employer la commande @code{\once} :
+
+@lilypond[quote,verbatim,relative=2,fragment]
+c4
+\once \set fontSize = #4.7
+c4
+c4
+@end lilypond
+
+Ici le changement de taille est annulé aussitôt après la note concernée.
+
+La référence du programme contient une description exhaustive de toutes les
+propriétés contexte par contexte : voir
+@ifhtml
+@rinternals{Tunable context properties}.
+@end ifhtml
+@ifnothtml
+Translation @expansion{} Tunable context properties.
+@end ifnothtml
+
+
+@node The override command
+@subsection The @code{\override} command
+
+
+La commande @code{\override} permet de modifier la mise en page
+en détail.  Examinons son utilisation concrètementet dans les détails.
+La syntaxe de cette commande ressemble généralement à :
+
+@example
+\override @var{contexte}.@var{objet} #'@var{propriété} = #@var{valeur}
+@end example
+
+La propriété @var{propriété} de l'objet @var{objet}, appartenant au contexte
+@var{contexte}, se voit ainsi attribuer la valeur @var{valeur}.
+
+
+@c deprecated node. Delete. --fv
+@node Constructing a tweak
+@subsection Constructing a tweak
+
+Les commandes permettant de modifier l'apparence de la partition
+ressemblent en général à
+
+@example
+\override Voice.Stem #'thickness = #3.0
 @end example
 
 @noindent
-Ici les propriétés @code{tweak} de l'objet flageolet nommé
-@samp{m} (créé au moyen de @code{make-music}) sont extraites par
-@code{ly:music-property}, une nouvelle valeur de la taille de fonte
-est ajoutée à la liste de ses propriétés (grâce à la fonction Scheme
-@code{acons}), et le résultat de cette opération est renvoyé par @code{set!}.
-Le dernier élément, dans ce bloc @code{let}, est la valeur finale de
-@samp{m} lui-même.
+Pour élaborer un réglage de ce type, on a besoin de connaître précisément :
+
+@itemize
+@item le contexte : ici @code{Voice} (la voix).
+@item l'objet à affecter : ici @code{Stem} (les hampes).
+@item la propriété à modifier : ici @code{thickness} (l'épaisseur du trait).
+@item la valeur désirée : ici @code{3.0} (par défaut, elle est de 1.3).
+@end itemize
+
+Certaines @q{sous-propriétés} sont parfois contenues dans une propriété.
+La commande devient alors :
+
+@example
+\override Stem #'(details beamed-lengths) = #'(4 4 3)
+@end example
+
+@cindex documentation exhaustive
+@cindex trouver des objets graphiques
+@cindex objets graphiques, description
+@cindex régler
+@funindex \override
+
+Pour bien des propriétés, quel que soit le type de valeur requise,
+attribuer la valeur @q{faux} (@code{##f} en Scheme) reviendra à désactiver
+complètement l'action de la propriété qui se trouve ainsi purement
+ignorée par LilyPond.  Cela peut s'avérer fort utile pour des propriétés
+causant des désagréments.
+
+@c such announcements are to be avoided -vv
+@ignore
+We demonstrate how to glean this information from the notation manual
+and the program reference.
+@end ignore
+
+
+@node The tweak command
+@subsection The @code{\tweak} command
+
+
+@funindex \tweak
+
+Dans certains cas, on peut passer par un raccourci pour arranger les
+objets graphiques.  Lorsqu'un objet est directement engendré par un élément distinct
+du fichier source, on peut utiliser la commande @code{\tweak}.
+
+Dans l'accord suivant, les notes sont modifiées une par une :
+
+@lilypond[relative=2,fragment,verbatim,ragged-right]
+<
+  c
+  \tweak #'color #red d
+  g
+  \tweak #'duration-log #1  a
+>4-\tweak #'padding #10 -.
+@end lilypond
+
+Comme on peut le voir, les propriétés sont ici modifiées directement
+en même temps que les objets sont saisis.  Il n'est plus besoin de spécifier ni
+le nom de l'objet (@emph{grob}), ni le contexte dans lequel cela doit s'appliquer.
+
+Ce procédé ne marche que pour des objets directement liés aux évènements
+(@rinternals{Event}) du fichier source.  Par exemple :
+
+@itemize @bullet
+@item Les têtes de notes au sein d'un accord, qui sont directement engendrées par
+les hauteurs indiquées
+@item Les signes d'articulation, engendrés par les indications de ponctuation.
+@end itemize
+
+En revanche, les hampes ou les altérations sont engendrées par les têtes de notes,
+et non par des évènements dans le fichier source.  De même pour les clés, qui ne
+sont pas directement engendrées par le fichier source, mais plutôt par le
+changement d'une propriété interne.
+
+En fait, très peu d'objets passent @emph{directement} du code source à la partition.
+Une note toute simple, par exemple @code{c4}, fait l'objet 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
+@end example
+
+@noindent
+Voir pour plus de détails @ref{Displaying music expressions}.
 
 
 @node set versus override
 @subsection @code{\set} vs. @code{\override}
 
+
 Si les propriétés peuvent être modifiées de deux façons, par les commandes
 @code{\set} et @code{\override}, c'est qu'il y a deux types de propriétés.
 
@@ -1264,90 +1298,207 @@ courante, une propriété spéciale a été créée.  Elle doit
 être modifiée avec la commande @code{\set}.
 
 
-@node Difficult tweaks
-@subsection Difficult tweaks
 
-Certains réglages sont plus délicats que d'autres.
+@node Useful concepts and properties
+@section Useful concepts and properties
 
-@itemize @bullet
 
+@menu
+* Input modes::
+* Direction and placement::
+* Distances and measurements::
+* Staff symbol properties::
+* Spanners::
+* Visibility of objects::
+* Line styles::
+* Rotating objects::
+@end menu
 
-@item
-L'un d'entre eux est l'apparence des objets dits @q{spanner}, qui s'étendent 
-horizontalement, tels que les liaisons.  Si, en principe, un seul de ces objets
-est créé à la fois et peut donc être modifié de façon habituelle, lorsque ces
-objets doivent enjamber un changement de ligne, ils sont dupliqués au début
-du ou des systèmes suivants.  Comme ces objets sont des clones de l'objet d'origine,
-ils en héritent toutes les propriétés, y compris les éventuelles commandes @code{\override}.
+@node Input modes
+@subsection Input modes
 
+@untranslated
 
-En d'autres termes, une commande @code{\override} affecte toujours les deux extrémités
-d'un objet @q{spanner}.  Pour ne modifier que la partie précédant ou suivant le changement
-de ligne, il faut intervenir directement dans le processus de mise en page.  
-La fonction de rappel @code{after-line-breaking} contient toute l'opération Scheme
-effectuée lorsque les sauts de lignes ont été déterminés, et que des objets graphiques
-ont été divisés sur des systèmes différents.
 
-Dans l'exemple suivant, on définit une nouvelle opération nommée
-@code{my-callback}.  Cette opération
+@node Direction and placement
+@subsection Direction and placement
 
-@itemize @bullet
-@item
-détermine si l'objet a été divisé à l'occasion d'un changement de ligne
-@item
-si oui, recherche les différents morceaux de l'objet
-@item
-vérifie si l'objet considéré est bien la deuxième moitié d'un objet divisé
-@item
-si oui, applique un espacement supplémentaire (@code{extra-offset}).
-@end itemize
+@untranslated
 
-On ajoute cette procédure à l'objet @rinternals{Tie} (liaison de tenue),
-de façon à ce que le deuxième morceau d'une liaison divisée soit rehaussé.
 
-@c KEEP LY
-@lilypond[quote,verbatim,ragged-right]
-#(define (my-callback grob)
-  (let* (
-         ; l'objet a-t-il été divisé ?
-         (orig (ly:grob-original grob))
+@node Distances and measurements
+@subsection Distances and measurements
 
-         ; si oui, rechercher les morceaux frères (siblings)
-         (siblings (if (ly:grob? orig)
-                     (ly:spanner-broken-into orig) '() )))
+@untranslated
 
-   (if (and (>= (length siblings) 2)
-             (eq? (car (last-pair siblings)) grob))
-     (ly:grob-set-property! grob 'extra-offset '(-2 . 5)))))
 
-\relative c'' {
-  \override Tie #'after-line-breaking =
-  #my-callback
-  c1 ~ \break c2 ~ c
-}
-@end lilypond
+@node Staff symbol properties
+@subsection Staff symbol properties
 
-@noindent
-Lorsque cette astuce va être appliquée, notre nouvelle fonction de rappel
-@code{after-line-breaking} devra également appeler celle d'origine
-(@code{after-line-breaking}), si elle existe.
-Ainsi, pour l'utiliser dans le cas d'un crescendo (objet @code{Hairpin}),
-il faudra appeler également @code{ly:hairpin::after-line-breaking}.
+@untranslated
 
 
-@item Pour des raisons d'ordre technique, certains objets ne peuvent être modifiés par
-@code{\override}.  Parmi ceux-là, les objets @code{NonMusicalPaperColumn}
-et @code{PaperColumn}.  La commande @code{\overrideProperty} sert à les modifier, de
-façon similaire à @code{\once \override}, mais avec une syntaxe différente :
+@node Spanners
+@subsection Spanners
 
-@example
-\overrideProperty
-#"Score.NonMusicalPaperColumn"  % Nom de l'objet
-#'line-break-system-details     % Nom de la propriété
-#'((next-padding . 20))         % valeur
-@end example
+@untranslated
 
-Notez cependant que la commande @code{\override} peut tout de même être appliquée
-à @code{NoteMusicalPaperColumn} et @code{PaperColumn} dans un bloc @code{\context}.
 
-@end itemize
+@unnumberedsubsubsec Using the @code{spanner-interface}
+@unnumberedsubsubsec Using the @code{line-spanner-interface}
+@node Visibility of objects
+@subsection Visibility of objects
+
+@untranslated
+
+
+@menu
+* Removing the stencil::
+* Making objects transparent::
+* Painting objects white::
+* Using break-visibility::
+* Special considerations::
+@end menu
+
+@node Removing the stencil
+@unnumberedsubsubsec Removing the stencil
+
+@untranslated
+
+
+@node Making objects transparent
+@unnumberedsubsubsec Making objects transparent
+
+@untranslated
+
+
+@node Painting objects white
+@unnumberedsubsubsec Painting objects white
+
+@untranslated
+
+
+@node Using break-visibility
+@unnumberedsubsubsec Using break-visibility
+
+@untranslated
+
+
+@node Special considerations
+@unnumberedsubsubsec Special considerations
+
+@untranslated
+
+
+@node Line styles
+@subsection Line styles
+
+@untranslated
+
+
+@node Rotating objects
+@subsection Rotating objects
+
+@untranslated
+
+
+@menu
+* Rotating layout objects::
+* Rotating markup::
+@end menu
+
+@node Rotating layout objects
+@unnumberedsubsubsec Rotating layout objects
+
+@untranslated
+
+
+@node Rotating markup
+@unnumberedsubsubsec Rotating markup
+
+@untranslated
+
+
+@node Advanced tweaks
+@section Advanced tweaks
+
+@untranslated
+
+
+@menu
+* Aligning objects::
+* Vertical grouping of grobs::
+* Modifying stencils::
+* Modifying shapes::
+@end menu
+
+@node Aligning objects
+@subsection Aligning objects
+
+@untranslated
+
+
+@menu
+* Setting @code{X-offset} and @code{Y-offset} directly::
+* Using the @code{side-position-interface}::
+* Using the @code{self-alignment-interface}::
+* Using the @code{break-alignable-interface}::
+@end menu
+
+@node Setting @code{X-offset} and @code{Y-offset} directly
+@unnumberedsubsubsec Setting @code{X-offset} and @code{Y-offset} directly
+
+@untranslated
+
+
+@node Using the @code{side-position-interface}
+@unnumberedsubsubsec Using the @code{side-position-interface}
+
+@untranslated
+
+
+@node Using the @code{self-alignment-interface}
+@unnumberedsubsubsec Using the @code{self-alignment-interface}
+
+@untranslated
+
+
+@unnumberedsubsubsec Using the @code{aligned-on-parent} procedures
+@unnumberedsubsubsec Using the @code{centered-on-parent} procedures
+@node Using the @code{break-alignable-interface}
+@unnumberedsubsubsec Using the @code{break-alignable-interface}
+
+@untranslated
+
+
+@node Vertical grouping of grobs
+@subsection Vertical grouping of grobs
+
+Les objets @code{VerticalAlignment} et @code{VerticalAxisGroup}
+travaillent de concert.  Comme leurs noms anglais l'indiquent,
+@code{VerticalAxisGroup} regroupe différents objets tels que les portées
+(@code{Staff}), les paroles (@code{Lyrics}) et ainsi de suite ; puis
+@code{VerticalAlignment} synchronise verticalement ces différents groupes.
+En général, il n'y a qu'un seul @code{VerticalAlignment} pour l'ensemble
+de la partition, mais chaque contexte @code{Staff}, @code{Lyrics}, etc.
+possède son propre @code{VerticalAxisGroup}.
+
+
+@node Modifying stencils
+@subsection Modifying stencils
+
+@untranslated
+
+
+@node Modifying shapes
+@subsection Modifying shapes
+
+@menu
+* Modifying ties and slurs::
+@end menu
+
+@node Modifying ties and slurs
+@unnumberedsubsubsec Modifying ties and slurs
+
+@untranslated
+
index 4a28f43bd03ad4fbed9c9a40df8c958fa4899b45..15ab67b2a25241231776055733c2a0a09426d066 100644 (file)
@@ -7,7 +7,7 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @c Translators: Valentin Villenave
 
@@ -37,7 +37,7 @@ c1 c2 c8 c16
 @tab
 @lilypond[fragment,relative=2,notime]
 \override Staff.Clef #'break-visibility = #all-invisible
-c4. c4..  
+c4. c4..
 @end lilypond
 
 @item @code{c d e f g a b }
@@ -68,7 +68,7 @@ s4_" "
 @tab chiffre de mesure
 @tab
 @lilypond[fragment]
-\override Staff.Clef #'transparent = ##t 
+\override Staff.Clef #'transparent = ##t
 \time 3/4
 s4_" "
 \time 4/4
@@ -99,7 +99,7 @@ d ~ d
 @lilypond[notime,fragment]
 \clef treble
 \key es \major
-s4 
+s4
 @end lilypond
 
 @item @var{note}@code{'}
@@ -213,7 +213,7 @@ a\> a a\!
 @tab
 @lilypond[fragment,relative=2]
 \set Staff.implicitTimeSignatureVisibility = #all-invisible
-<c e> 
+<c e>
 @end lilypond
 
 
@@ -264,7 +264,7 @@ twinkle
 <<
    { g'1 g }
   \new Lyrics \lyricsto "" { twin -- kle }
->> 
+>>
 @end lilypond
 
 @item @code{\chordmode @{ c:dim f:maj7 @}}
index 9fe25576ff08e6d0494b35e357702a2dfd9ed6b7..9033a3a78573689ddd743710934df3c1b84a66c0 100644 (file)
@@ -7,7 +7,7 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @c Translators: Valentin Villenave
 @c Translation checkers: Jean-Charles Malahieude, John Mandereau
@@ -384,8 +384,8 @@ LilyPond intègre également deux autres modèles de chiffrages : une
 notation Jazz alternative, et un modèle systématique appelé système
 Banter.  Pour la mise en œuvre de ces modèles, voir @ref{Chord name chart}.
 
-@predefined
 
+@predefined
 @funindex \germanChords
 @code{\germanChords},
 @funindex \semiGermanChords
@@ -394,14 +394,16 @@ Banter.  Pour la mise en œuvre de ces modèles, voir @ref{Chord name chart}.
 @code{\italianChords},
 @funindex \frenchChords
 @code{\frenchChords}.
+@endpredefined
 
-@seealso
 
+@seealso
 Exemples : @rlsr{Chords}.
 
 Fichiers internes : @file{scm/@/chords@/-ignatzek@/.scm}, et
 @file{scm/@/chord@/-entry@/.scm}.
 
+
 @knownissues
 
 Les chiffrages d'accords ne sont déterminés que par la succession des
@@ -624,14 +626,15 @@ impossible lorsque plusieurs chiffrages qui se chevauchent en possèdent.
 Ce problème peut être contourné en jouant sur l'empilement, avec la
 propriété @code{stacking-dir} de l'objet @code{BassFigureAlignment}.
 
-@seealso
 
+@seealso
 Référence du programme : les objets @rinternals{BassFigure},
 @rinternals{BassFigureAlignment}, @rinternals{BassFigureLine},
 @rinternals{BassFigureBracket} et
 @rinternals{BassFigureContinuation}, ainsi que le contexte
 @rinternals{FiguredBass}.
 
+
 @node Entering figured bass
 @unnumberedsubsubsec Entering figured bass
 
index c0bbeb6741848a0b4143b34403ad0a06e90e4d61..58fa6f00fd8649c15f395dbcf3071ca45c3ae0df 100644 (file)
@@ -1,13 +1,13 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
 @c This file is part of lilypond-program.tely
 @ignore
-    Translation of GIT committish: 27af34a245b02a6b89c9af3becefcfe676b2e19d
+    Translation of GIT committish: e2070eadd7d3d7a87450aab195a48945ee0b144a
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @c Translators: Jean-Charles Malahieude
 
@@ -21,9 +21,11 @@ permettent de générer du code LilyPond, comme par exemple des
 séquenceurs en mode graphique ou des convertisseurs XML.  Pour plus
 de détails, rendez-vous sur le @uref{http://@/lilypond@/.org,site}.
 
-Il s'agit de programmes distincts de lilypond qui se lancent en ligne
-de commande.  Pour plus de précisions, reportez-vous à @ref{Command-line
-usage}.
+Il s'agit de programmes distincts de @command{lilypond} qui se lancent
+en ligne de commande.  Pour plus de précisions, reportez-vous au
+chapitre @ref{Command-line usage}.  Si vous utilisez MacOS 10.3 ou 10.4
+et recontrez quelque problème avec l'un de ces scripts, comme
+@code{convert-ly}, reportez-vous au chapitre @ref{Setup for MacOS X}. 
 
 @knownissues
 
@@ -64,7 +66,7 @@ convertisseur capable d'importer directement un fichier.
 (@rinternals{Voice}).  Les hauteurs sont rendues en mode relatif, et
 les durées spécifiées lorsque nécessaire.
 
-Vous pouvez enregistrer un fichier MIDI grace à un clavier
+Vous pouvez enregistrer un fichier MIDI grâce à un clavier
 électronique et ensuite le convertir en fichier @file{.ly}.  Néanmoins
 le rythme humain n'a pas une précision suffisante pour qu'une
 conversion MIDI à ly ne se fasse sans surprise.  En le couplant à une
@@ -77,12 +79,12 @@ manuellement.
 
 Pour le lancer en ligne de commande, procédez ainsi :
 @example
-midi2ly [@var{option}]@dots{} @var{midi-file}
+midi2ly [@var{option}]@dots{} @var{fichier-midi}
 @end example
 
 Notez bien que, par @qq{ligne de commande}, nous parlons de la ligne de
-commande du système. Pour plus de détails, voir
-@ref{Converting from other formats}.
+commande du système.  Pour plus de précisions, reportez-vous à
+@ref{Command-line usage}. 
 
 @command{midi2ly} accepte les options suivantes :
 
@@ -101,14 +103,14 @@ Afficher un résumé des utilisations.
 
 @item -k, --key=@var{acc}[:@var{minor}]
 Déterminer la tonalité par défaut.  @math{@var{acc} > 0} fixe le
-nombre de dièses ; @math{@var{acc} < 0} le nombre de bémols.  Un ton
-mineur est spécifié par l'emploi de @samp{:1}.
+nombre de dièses ; @math{@var{acc} < 0} le nombre de bémols.  Une
+tonalité mineure est spécifiée par l'emploi de @code{:1}.
 
 @item -o, --output=@var{file}
 Générer le résultat dans le fichier @var{file}.
 
 @item -s, --start-quant=@var{DUR}
-Quantiser le début des notes sur DUR.
+Quantiser le début des notes sur @var{DUR}.
 
 @item -t, --allow-tuplet=@var{DUR}*@var{NUM}/@var{DEN}
 Accepter des n-olets de valeur @var{DUR}*@var{NUM}/@var{DEN}.
@@ -137,56 +139,102 @@ ajoutez une indication de phrasé ou de pédale.
 @node Invoking musicxml2ly
 @section Invoking @code{musicxml2ly}
 
-@uref{http://@/www.@/recordare@/.com/xml@/.html,MusicXML} est un
+@cindex MusicXML
+
+@uref{http://@/www.@/musicxml@/.org/,MusicXML} est un
 dialecte XML pour représenter la notation musicale.
 
-@command{musicxml2ly} extrait des notes à partir de fichiers MusicXML,
+@command{musicxml2ly} extrait, à partir d'un fichier MusicXML, les
+notes, articulations, structure de la partition, paroles, etc. 
 et les écrit dans un fichier @var{.ly}.  Il se lance en ligne de
 commande.
 
+Pour le lancer en ligne de commande, procédez ainsi :
+@example
+musicxml2ly [@var{option}]@dots{} @var{fichier-xml}
+@end example
+
 Notez bien que, par @qq{ligne de commande}, nous parlons de la ligne de
-commande du système. Pour plus de détails, voir
-@ref{Converting from other formats}.
+commande du système.  Pour plus de précisions, reportez-vous à
+@ref{Command-line usage}. 
+
+Si le nom du fichier est @file{-}, @command{musicxml2ly} lira
+directement à partir de la ligne de commande.  
 
 @command{musicxml2ly} accepte les options suivantes :
 
 @table @code
+@item -a, --absolute
+Rendu en hauteurs absolues.
+
 @item -h,--help
 Afficher un résumé des utilisations.
-@item -o,--output=@var{file}
-Générer le résultat dans le fichier @var{file}.  (par défaut :
-affichage écran)
-@item -v,--version
+
+@item -l, --language=LANG
+Utiliser un autre fichier de définition liguistique @file{LANG.ly} 
+et les noms de notes correspondants, comme par exemple 
+@var{deutsch} pour @file{deutsch.ly} et noms de notes en allemand.
+
+@item --lxml
+Utiliser le paquetage Python lxml.etree, moins gourmand en mémoire et
+temps de calcul, pour effectuer l'annalyse XML.
+
+@item --nd --no-articulation-directions
+Ne pas convertir la direction (@code{^}, @code{_} ou @code{-}) des
+articulations, nuances, etc.
+
+@item --no-beaming
+Ne pas convertir les informations de ligature ; laisser LilyPond gérer
+les ligatures automatiquement. 
+
+@item -o,--output=@var{fichier}
+Générer le résultat dans le fichier @var{fichier}.  S'il n'est pas
+déterminé, ce sera @var{fichier-xml}@file{.ly} ; @file{-} produira le
+résultat sur la sortie standard (@var{stdout}).
+
+@item -r,--relative
+Rendu en hauteurs relatives (mode par défaut).
+
+@item -v,--verbose
+Mode verbeux.
+
+@item --version
 Afficher le numéro de version.
+
+@item -z,--compressed
+Le fichier d'entrée est un fichier MusicXML zippé.
 @end table
 
+
 @node Invoking abc2ly
 @section Invoking @code{abc2ly}
 
 @cindex ABC
 
 ABC est un format relativement simple basé sur l'ASCII.  Sa
-description est disponible sur le site d'ABC à l'adresse :
-
-@quotation
-@uref{http://@/www@/.walshaw@/.plus@/.com/@/abc/@/abc2mtex/@/abc@/.txt}.
-@end quotation
+description est disponible sur le 
+@uref{http://@/www@/.walshaw@/.plus@/.com/@/abc/@/learn@/.html,site
+d'ABC}. 
 
-@command{abc2ly} traduit du formt ABC au format LilyPond.
+@command{abc2ly} traduit du format ABC au format LilyPond.
 
 Pour le lancer en ligne de commande, procédez ainsi :
 @example
-abc2ly [@var{option}]@dots{} @var{abc-file}
+abc2ly [@var{option}]@dots{} @var{fichier-abc}
 @end example
 
 @command{abc2ly} accepte les options suivantes :
 
 @table @code
+@item -b,--beams=None
+Préserver la notion de lien de croches propre à ABC.
 @item -h,--help
 Afficher un résumé des utilisations.
 @item -o,--output=@var{file}
 Générer le résultat dans le fichier @var{file}.
-@item -v,--version
+@item -s,--strict
+Être strict sur la réussite.
+@item --version
 Afficher le numéro de version.
 @end table
 
@@ -197,7 +245,7 @@ source ABC.  Ainsi, l'assertion
 %%LY voices \set autoBeaming = ##f
 @end example
 
-aura pour conséquence d'insérer le texte qui suit le mot-clé @q{voices}
+aura pour conséquence d'insérer le texte qui suit le mot-clé @qq{voices}
 dans la voix correspondante du fichier LilyPond.
 
 De la même manière,
@@ -206,12 +254,12 @@ De la même manière,
 %%LY slyrics more words
 @end example
 
-placera le texte suivant le mot-clé @q{slyrics} dans une ligne de paroles.
+placera le texte suivant le mot-clé @qq{slyrics} dans une ligne de paroles.
 
 
 @knownissues
 
-Le standard ABC n'est pas si @q{standard} que cela.  Pour des
+Le standard ABC n'est pas si @qq{standard} que cela.  Pour des
 fonctionnalités étendues, comme la polyphonie, existent différentes
 conventions.
 
@@ -223,7 +271,6 @@ ABC synchronise paroles et musique en début de ligne ;
 @command{abc2ly} ignore les ligatures ABC.
 
 
-
 @node Invoking etf2ly
 @section Invoking @command{etf2ly}
 
@@ -239,23 +286,21 @@ convertit partiellement les fichiers ETF en fichiers source LilyPond.
 
 Pour le lancer en ligne de commande, procédez ainsi :
 @example
-midi2ly [@var{option}]@dots{} @var{midi-file}
+etf2ly [@var{option}]@dots{} @var{fichier-etf}
 @end example
 
 Notez bien que, par @qq{ligne de commande}, nous parlons de la ligne de
-commande du système. Pour plus de détails, voir
-@ref{Converting from other formats}.
+commande du système.  Pour plus de précisions, reportez-vous à
+@ref{Command-line usage}. 
 
-@command{midi2ly} accepte les options suivantes :
+@command{etf2ly} accepte les options suivantes :
 
 @table @code
 @item -h,--help
 Afficher cette aide.
-
 @item -o, --output=@var{file}
 Générer le résultat dans le fichier @var{file}.
-
-@item -v, --version
+@item --version
 Afficher le numéro de version.
 @end table
 
@@ -263,7 +308,7 @@ Afficher le numéro de version.
 @knownissues
 
 La liste des scripts d'articulation est incomplète.  Les mesures vides
-perturbent @command{etf2ly}.  Les séquences ne notes d'ornement ne se
+perturbent @command{etf2ly}.  Les séquences de notes d'ornement ne se
 terminent pas de manière satisfaisante.
 
 
@@ -278,9 +323,9 @@ outils indépendants permettent de générer des fichiers LilyPond.
 
 Nous citerons entre autres
 
-@itemize @bullet
+@itemize 
 @item
-@uref{http://@/denemo@/.sourceforge@/.net/,Denemo}, une interface
+@uref{http://@/denemo@/.org,Denemo}, une interface
 graphique pour l'édition de partition.
 @item
 @uref{http://www@/.volny@/.cz/smilauer/rumor/rumor@/.html,Rumor}, un
@@ -289,16 +334,24 @@ convertisseur temps-réel de MIDI monophonique à LilyPond.
 @uref{http://nicolas@/.sceaux@/.free@/.fr/lilypond/lyqi@/.html,lyqi}, un
 mode majeur pour Emacs.
 @item
-@uref{http://@/www@/.nongnu@/.org/@/xml2ly/, xml2ly}, qui importe
-@uref{http://@/www@/.musicxml@/.com/xml@/.html,MusicXML}
+@uref{http://@/www@/.nongnu@/.org/@/xml2ly/, xml2ly}, qui importe du
+@uref{http://@/www@/.musicxml@/.com/xml@/.html,MusicXML}.
 @item
 @uref{http://@/noteedit@/.berlios@/.de,NoteEdit}
-qui importe @uref{http://@/www@/.musicxml@/.com/xml@/.html,MusicXML}
+qui importe du @uref{http://@/www@/.musicxml@/.com/xml@/.html,MusicXML}. 
 @item
 @uref{http://@/www@/.rosegardenmusic@/.com,Rosegarden},
-qui importe MIDI
+qui importe du MIDI.
 @item
 @uref{http://@/common-lisp@/.net/project/fomus/,FOMUS},
 une bibliothèque LISP pour générer de la notation musicale. 
+@item
+@uref{http://@/vsr@/.informatik@/.tu-chemnitz@/.de/staff/jan/nted/nted.xhtml,NtEd}
+assure, de manière expérimentale, un export vers LilyPond. 
+@item
+@uref{http://@/www@/.tuxguitar@/.com@/.ar/,TuxGuitar} peut exporter au
+format LilyPond. 
+@item
+@uref{http://@/musescore@/.org,MuseScore} peut exporter au format LilyPond.
 @end itemize
 
index d58182a6438154caf7368662c21380cfc8074bb0..d1bda51268502de43b85a2b7b7f171875baac212 100644 (file)
@@ -8,7 +8,7 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @quotation
 Nous souhaitons dédier ce programme à tous les amis que nous avons
index 94900a226e510bfcbadb20953e65e790997f7500..a473c00e3db7f5310f46a1fd28f0935dfb3625df 100644 (file)
@@ -6,7 +6,7 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @c Translators: Jean-Charles Malahieude
 
@@ -81,18 +81,17 @@ La propriété @code{font-size} ne peut intervenir que pour les objets
 qui utilisent des polices, autrement dit ceux qui disposent de
 l'interface de rendu @rinternals{font-interface}.
 
-@predefined
 
+@predefined
 Les commandes suivantes définissent @code{fontSize} pour la voix en
 cours :
-
 @funindex \tiny
 @code{\tiny},
 @funindex \small
 @code{\small},
 @funindex \normalsize
 @code{\normalsize}.
-
+@endpredefined
 
 
 @node Fingering instructions
@@ -154,9 +153,13 @@ d'indiquer des doigtés très proches des têtes de notes.
 <es'-2>4
 @end lilypond
 
+@snippets
+
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{avoiding-collisions-with-chord-fingerings.ly}
 
-@seealso
 
+@seealso
 Référence du programme : @rinternals{Fingering}.
 
 Exemples : @rlsr{Editorial annotations}.
@@ -247,7 +250,6 @@ L'exemple suivant illustre l'utilisation de la fonction
 
 
 @seealso
-
 Annexes : @ref{List of colors}.
 
 
@@ -297,14 +299,15 @@ Dès qu'une note est rencontrée, un objet @rinternals{Stem} se crée
 automatiquement.  Pour les rondes et les silences, ils sont aussi
 créés, mais en mode invisible.
 
-@predefined
 
+@predefined
 @funindex \stemUp
 @code{\stemUp},
 @funindex \stemDown
 @code{\stemDown},
 @funindex \stemNeutral
 @code{\stemNeutral}.
+@endpredefined
 
 
 @commonprop
@@ -358,8 +361,8 @@ et le texte de la bulle.
 @cindex bulles
 @cindex notation, expliquer
 
-@seealso
 
+@seealso
 Référence du programme : @rinternals{balloon-interface}.
 
 
@@ -434,8 +437,8 @@ contexte @rinternals{Staff} comporte le graveur
 }}}
 @end lilypond
 
-@seealso
 
+@seealso
 Référence du programme : @rinternals{HorizontalBracket}.
 
 
index 33b07f55f941621d18e83f2ed7997d24b8820f18..385b61aca559d614d0323d3e19a79015366ebb68 100644 (file)
@@ -6,7 +6,7 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @c Translators: Valentin Villenave
 @c Translation checkers: Jean-Charles Malahieude, John Mandereau
@@ -121,7 +121,6 @@ a4^\prall^\markup { \sharp }
 
 
 @seealso
-
 Référence du programme : @rinternals{Script}.
 
 
@@ -290,17 +289,16 @@ leur étendue.  On peut empêcher l'impression de ces pointillés avec :
 
 
 @predefined
-
 @funindex \dynamicUp
 @code{\dynamicUp},
 @funindex \dynamicDown
 @code{\dynamicDown},
 @funindex \dynamicNeutral
 @code{\dynamicNeutral}.
+@endpredefined
 
 
 @seealso
-
 Référence du programme : @rinternals{DynamicText}, @rinternals{Hairpin}.
 
 Le placement vertical de ces éléments graphiques est géré par le
@@ -405,7 +403,6 @@ lier des accords. Dans LilyPond, il faut pour cela assigner
 
 
 @predefined
-
 @funindex \slurUp
 @code{\slurUp},
 @funindex \slurDown
@@ -418,9 +415,10 @@ lier des accords. Dans LilyPond, il faut pour cela assigner
 @code{\slurDotted},
 @funindex \slurSolid
 @code{\slurSolid}.
+@endpredefined
 
-@seealso
 
+@seealso
 Référence du programme : @rinternals{Slur}.
 
 
@@ -449,17 +447,16 @@ Il n'est pas possible d'avoir plusieurs liaisons de phrasé en même temps.
 
 
 @predefined
-
 @funindex \phrasingSlurUp
 @code{\phrasingSlurUp},
 @funindex \phrasingSlurDown
 @code{\phrasingSlurDown},
 @funindex \phrasingSlurNeutral
 @code{\phrasingSlurNeutral}.
+@endpredefined
 
 
 @seealso
-
 Référence du programme : @rinternals{PhrasingSlur}.
 
 
@@ -487,8 +484,8 @@ c'4
 d4
 @end lilypond
 
-@seealso
 
+@seealso
 Référence du programme : @rinternals{BreathingSign}.
 
 Exemples : @rlsr{Winds}.
@@ -547,7 +544,6 @@ I = \once \override NoteColumn #'ignore-collision = ##t
 
 
 @seealso
-
 Référence du programme : @rinternals{Glissando}.
 
 Exemples : @rlsr{Expressive marks}.
@@ -614,7 +610,6 @@ exemple dans le contexte @rinternals{PianoStaff} :
 
 
 @predefined
-
 @code{\arpeggio},
 @funindex \arpeggioArrowUp
 @code{\arpeggioArrowUp},
@@ -624,10 +619,10 @@ exemple dans le contexte @rinternals{PianoStaff} :
 @code{\arpeggioNormal},
 @funindex \arpeggioBracket
 @code{\arpeggioBracket}.
+@endpredefined
 
 
 @seealso
-
 Dans ce même manuel : @ref{Ties}, pour noter explicitement des arpèges.
 
 Référence du programme : @rinternals{Arpeggio}.
@@ -673,15 +668,14 @@ sera imprimée comme une tête de note noire entre parenthèses.
 
 
 @predefined
-
-@code{\startTrillSpan},
 @funindex \startTrillSpan
-@code{\stopTrillSpan}.
+@code{\startTrillSpan},
 @funindex \stopTrillSpan
+@code{\stopTrillSpan}.
+@endpredefined
 
 
 @seealso
-
 Référence du programme : @rinternals{TrillSpanner}.
 
 
index 59fe5166442328412982cb76516bc53b9fa49061..efd072c0a6bf561020201d9b41fbe15bbc036bd7 100644 (file)
@@ -1,21 +1,30 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
 @c This file is part of lilypond.tely
 @ignore
-    Translation of GIT committish: bdf8540b74167817eab96ed3d13b35477217f9fe
+    Translation of GIT committish: 3f880f886831b8c72c9e944b3872458c30c6c839
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
-@c Translators: Valentin Villenave
-@c Translation checkers: Jean-Charles Malahieude, John Mandereau
+@c Translators: Matthieu Jacquot
+@c Translation checkers: Jean-Charles Malahieude
 
 @node Fretted string instruments
 @section Fretted string instruments
 
-@untranslated
+@lilypondfile[quote]{fretted-headword.ly}
+
+Cette section traite de différents aspects de la notation propre aux
+instruments à cordes frettées. 
+
+@cindex tablature
+@cindex guitare, tablature pour 
+@cindex banjo, tablature pour 
+@cindex tablature pour guitare
+@cindex tablature pour banjo
 
 @menu
 * Common notation for fretted strings::
@@ -26,7 +35,7 @@
 @node Common notation for fretted strings
 @subsection Common notation for fretted strings
 
-@untranslated
+Vue d'ensemble de la notation pour les instruments à cordes frettées.
 
 @menu
 * References for fretted strings::
 * Default tablatures::
 * Custom tablatures::
 * Fret diagram markups::
+* Predefined fret diagrams::
+* Automatic fret diagrams::
 * Right-hand fingerings::
 @end menu
 
 @node References for fretted strings
 @unnumberedsubsubsec References for fretted strings
 
-@untranslated
+La musique pour instruments à cordes frettées est généralement notée sur
+une seule portée, en notation traditionnelle ou en tablature, les deux
+étant parfois combinées.  Il est aussi courant en musique populaire
+d'utiliser des diagrammes d'accord au-dessus de la portée
+traditionnelle.  La guitare et le banjo sont des instruments
+transpositeurs, sonnant une octave au-dessous de ce qui est écrit.  Les
+partitions pour ces instruments utilisent donc la clé de sol ottava
+bassa @code{"treble_8"}.  Vous pourrez trouver ailleurs dans la
+documentation d'autres éléments aussi utilisés par les instruments à
+cordes frettées :
+
+@itemize
+@item Les doigtés s'obtiennent comme indiqué au chapitre 
+@ref{Fingering instructions}. 
+
+@item En plus des @notation{Laissez vibrer}, les liaisons peuvent
+intervenir sur des accords arpégés ou des trémolos.  Reportez-vous au
+chapitre @ref{Ties}. 
+
+@item Des indications quant au support polyphonique se trouvent au
+chapitre @ref{Collision resolution}.
+
+@item La notation des sons harmoniques se trouve à la section @ref{Harmonics}.
+
+@end itemize
+
+
+@seealso
+Manuel de notation :
+@ref{Fingering instructions},
+@ref{Ties},
+@ref{Collision resolution},
+@ref{Instrument names},
+@ref{Writing music in parallel},
+@ref{Arpeggio},
+@ref{List of articulations},
+@ref{Clef}.
+
 
 @node String number indications
 @unnumberedsubsubsec String number indications
 
 @cindex cordes numérotées
 @cindex numéro de corde
+@cindex numéros de corde et doigtés
+@cindex doigtés et numéros de corde
 
-On peut ajouter aux accords les numéros de cordes, en les indiquant avec
-@code{\}@var{number} :
+Une corde sur laquelle une note doit être jouée peut être indiquée 
+en attachant @code{\@var{numéro}} à cette note prise dans une
+construction de type accord @code{<>}. 
 
-@lilypond[relative,relative=1,ragged-right,fragment]
-<c\1 e\2 g\3>
+@warning{Les numéros de cordes @strong{doivent} être définis dans une
+construction de type accord même s'il n'y a qu'une seule note.}
+
+@lilypond[verbatim,quote,relative=0]
+\clef "treble_8"
+<c\5>4 <e\4> <g\3>2
+<c,\5 e\4 g\3>1
+@end lilypond
+
+Quand les indications de doigté et de numéro de corde sont 
+attachées à une même note, leur positionnement se fera en fonction 
+de l'ordre dans lequel ils apparaissent dans le code :
+
+
+@lilypond[verbatim,quote,relative=1]
+\clef "treble_8"
+<g\3-0>2
+<g-0\3>
 @end lilypond
 
+@snippets
+
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{controlling-the-placement-of-chord-fingerings.ly}
+
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{allowing-fingerings-to-be-printed-inside-the-staff.ly}
+
+
 @seealso
+Manuel de notation :
+@ref{Fingering instructions}.
 
-Référence du programme : @rinternals{StringNumber}.
+Morceaux choisis :
+@rlsr{Fretted strings}.
+
+Référence des propriétés internes :
+@rinternals{StringNumber},
+@rinternals{Fingering}.
 
-Exemples : @rlsr{Fretted strings}.
 
 @node Default tablatures
 @unnumberedsubsubsec Default tablatures
 
-@cindex tablatures de base
+@cindex tablatures, bases
+@cindex tablatures par défaut
+
+@funindex TabStaff
+@funindex TabVoice
 
 La notation en tablature est utilisée pour certains instruments à cordes
-pincées.  Les hauteurs n'y sont pas indisuées par des têtes de note,
+pincées.  Les hauteurs n'y sont pas indiquées par des têtes de note,
 mais par des chiffres qui indiquent sur quelle corde, et à quelle case
 chaque note doit être jouée.  Dans certaines limites, LilyPond vous
 permet d'écrire des tablatures.
 
 Chaque numéro de corde associé à une note doit être précédé d'une barre
-oblique inverse (ou @qq{antislash}). Ainsi, @code{c4\3} donnera un do
-noire à jouer sur la troisième corde.  Par défaut, la première corde est
-la plus aigüe, et les cordes suivent l'accord traditionnel d'une guitare
-à six cordes.  Les notes sont imprimées sous forme de tablature, dans
-les contextes @rinternals{TabStaff} et @rinternals{TabVoice}.
+oblique inverse (ou @qq{antislash}) suivi d'un nombre.  Par défaut, la
+première corde est 
+la plus aiguë, et les cordes suivent l'accordage traditionnel d'une
+guitare (à six cordes).  Les notes sont imprimées sous forme de
+tablature, dans les contextes @rinternals{TabStaff} et
+@rinternals{TabVoice}. 
 
 @lilypond[quote,ragged-right,fragment,verbatim]
 \new TabStaff {
@@ -87,51 +174,75 @@ les contextes @rinternals{TabStaff} et @rinternals{TabVoice}.
 @end lilypond
 
 @funindex minimumFret
+
 @cindex cases
 
 Quand aucune corde n'est précisée, LilyPond choisit automatiquement la
-corde où la position est la moins élevée et qui donne un numéro de case
-supérieur à la valeur de la propriété @code{minimumFret}.  On peut
-régler cette propriété, selon qu'on désire une position plus ou moins
-haute.  La valeur par défaut de cette propriété est fixée à 0, ce qui
-correspond à la position la plus basse.
+corde pour laquelle la position est la moins élevée et qui donne un
+numéro de case supérieur ou égal à la valeur de la propriété
+@code{minimumFret}.  La valeur par défaut de cette propriété est fixée à
+0, ce qui correspond aux cordes à vide.
 
-@example
-e16 fis gis a b4
-\set TabStaff.minimumFret = #8
-e16 fis gis a b4
-@end example
-@lilypond[quote,ragged-right]
-frag = {
-  \key e \major
-  e16 fis gis a b4
-  \set TabStaff.minimumFret = #8
-  e16 fis gis a b4
+
+@lilypond[quote,ragged-right,verbatim]
+\new StaffGroup <<
+   \new Staff \relative c {
+     \clef "treble_8"
+     c16 d e f g4
+     c,16 d e f g4
+   }
+   \new TabStaff \relative c {
+     c16 d e f g4
+     \set TabStaff.minimumFret = #5
+     c,16 d e f g4
+   }
+>>
+@end lilypond
+
+@cindex harmoniques, indication en tablature
+@cindex tablature et indication d'harmoniques
+@cindex glissando, indication en tablature
+@cindex tablature et glissando
+
+Les indications de sons harmoniques ainsi que les glissandi
+peuvent être ajoutés aux tablatures.
+
+
+@lilypond[fragment, verbatim, quote, relative=1]
+\new TabStaff {
+  \new TabVoice {
+    <c g'\harmonic> d\2\glissando e\2
+  }
 }
-  \new StaffGroup <<
-    \new Staff { \clef "G_8" \frag }
-    \new TabStaff { \frag }
-  >>
 @end lilypond
 
-@commonprop
 
-Pour obtenir des tablatures où les hampes seront dirigées vers le bas et
-les ligatures horizontales, réglez le contexte @code{TabStaff}
-comme suit :
+@snippets
+
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{stem-and-beam-behavior-in-tablature.ly}
+
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{polyphony-in-tablature.ly}
 
-@example
-\stemDown
-\override Beam #'damping = #100000
-@end example
 
 @seealso
+Manuel de notation :
+@ref{Stems}.
+
+Morceaux choisis :
+@rlsr{Fretted strings}.
+
+Référence des propriétés internes :
+@rinternals{TabNoteHead},
+@rinternals{TabStaff},
+@rinternals{TabVoice},
+@rinternals{Beam}.
 
-Référence du programme : @rinternals{TabStaff}, @rinternals{TabVoice}.
 
 @knownissues
 
-Les accords ne subsissent ausun traitement particulier ; de ce fait, la
+Les accords ne subissent aucun traitement particulier ; de ce fait, la
 sélection automatique des cordes peut attribuer une même corde pour deux
 notes différentes de l'accord.
 
@@ -151,110 +262,936 @@ melodia = \partcombine { e4 g g g }{ e4 e e e }
 >>
 @end lilypond
 
+Le support des modes de jeu propres à la guitare se limite aux sons 
+harmoniques et aux glissandi.
+
 @node Custom tablatures
 @unnumberedsubsubsec Custom tablatures
 
-@cindex tablatures, autres
+@cindex tablatures personnalisées
+@cindex banjo, tablature
+@cindex mandoline, tablature
+@cindex guitare basse, tablature
+@cindex tablature, accordages prédéfinis
+@cindex cordes frettés et accordages prédéfinis
+@cindex accordages prédéfinis et cordes frettées
 
-Vous pouvez bien sûr accorder vos cordes différemment.  Cet accord est
-enregistré dans la propriété @code{stringTunings}.  La valeur de cette
-propriété doit être indiquée sous forme d'une liste en langage Scheme,
-où chaque corde est représentée par un nombre entier qui indique sa
-hauteur à vide, comptée en demi-tons à partir du do central.  Cette
-propriété permet aussi à LilyPond de déterminer le nombre de cordes.
+@funindex StringTunings
 
-Dans l'exemple suivant, on a réglé @code{stringTunings} pour l'accord de
-la guitare basse, c'est-à-dire mi la ré sol.
+Sous LilyPond, la case correspondant à une note jouée sur une corde donnée 
+est calculée automatiquement.  Pour ce faire, l'accordage doit 
+être spécifié.  L'accordage des cordes est donné par la propriété
+@code{StringTunings}.
 
-@lilypond[quote,ragged-right,fragment,verbatim]
-\new TabStaff <<
-  \set TabStaff.stringTunings = #'(-5 -10 -15 -20)
-  {
-    a,4 c' a e' e c' a e'
+LilyPond possède des accordages prédéfinis pour banjo, mandoline, guitare 
+et guitare basse.  Lilypond calcule automatiquement la transposition
+correspondant à ces accordages.  L'exemple ci-dessous est pour guitare
+basse, il sonnera donc une octave en dessous de ce qui est écrit.
+
+@lilypond[quote,ragged-right,verbatim]
+<<
+  \new Staff {
+    \clef "bass_8"
+    \relative c, {
+      c4 d e f
+    }
+  }
+  \new TabStaff {
+    \set TabStaff.stringTunings = #bass-tuning
+    \relative c, {
+      c4 d e f
+    }
   }
 >>
 @end lilypond
 
-Toutefois, LilyPond possède des jeux de cordes prédéfinis pour le banjo,
-la mandoline, la guitare et la guitare basse ; ainsi, l'accord précédent
-peut également s'indiquer par
+L'accordage par défaut est @code{guitar-tuning} ; il correspond à
+l'accordage standard d'une guitare : mi la ré sol si mi (EADGBE).
+D'autres accordages prédéfinis sont disponibles :
+@code{guitar-open-g-tuning}, @code{mandolin-tuning} et
+@code{banjo-open-g-tuning}.  Les accordages prédéfinis sont répertoriés 
+dans le fichier @code{scm/output-lib.scm}.
+
+L'accordage est constitué par une liste Scheme des hauteurs de notes
+correspondant aux cordes à vide, une note pour chaque corde, classée par
+numéro de corde de 1 à n, où la corde 1 est la plus haute dans la
+tablature et n la plus basse.  Cela revient généralement à classer les
+cordes de la plus aiguë à la plus grave, mais certains instruments
+(comme le ukulele) n'ont pas les cordes classées par hauteur. 
+
+Dans cette liste, la hauteur des notes est représentée par l'intervalle,
+exprimé en demi-tons,  du do central jusqu'à la note de la corde à vide.
+Elle doit donc être représentée par un nombre entier.  LilyPond calcule
+la note correspondant  à chaque corde en ajoutant cet intervalle au do
+central. 
+
+Lilypond calcule automatiquement le nombre de cordes à représenter dans
+la tablature (@code{TabStaff}) en comptant le nombre d'éléments définis
+dans le @code{stringTunings}.
+
+N'importe quel accordage peut donc être créé.  Par exemple, nous pouvons
+définir l'accordage d'un instrument à quatre cordes accordées do sol ré
+la, donc de la plus aiguë à la plus grave et en anglais :  
+@code{a''},  @code{d''},  @code{g'}, et @code{c'} : 
+
+
+@lilypond[quote,verbatim]
+mynotes = {
+    c'4 e' g' c'' |
+    e'' g'' b'' c'''
+}
 
-@example
-\set TabStaff.stringTunings = #bass-tuning
-@end example
+<<
+  \new Staff {
+    \clef treble
+    \mynotes
+  }
+  \new TabStaff {
+    \set TabStaff.stringTunings = #'(21 14 7 0)
+    \mynotes
+  }
+>>
+@end lilypond
 
-Le jeu par défaut est celui de la guitare : @code{guitar-tuning},
-c'est-à-dire le célèbre mi la ré sol si mi. D'autres jeux prédéfinis
-sont @code{guitar-open-g-tuning}, @code{mandolin-tuning} et
-@code{banjo-open-g-tuning}.
 
 @seealso
+Fichiers sources installés :
+@file{scm/output-lib.scm}.
 
-Vous trouverez une liste complète des jeux prédéfinis dans le fichier
-@file{scm/@/output@/-lib@/.scm}.
-
-Référence du programme : @rinternals{Tab_note_heads_engraver}.
+Morceaux choisis :
+@rlsr{Fretted strings}.
 
-@knownissues
-
-Aucun effet spécial de guitare n'a été implémenté à ce jour.
+Référence des propriétés internes :
+@rinternals{Tab_note_heads_engraver}.
 
 @node Fret diagram markups
 @unnumberedsubsubsec Fret diagram markups
 
-@cindex schémas d'accords
-@cindex schémas de barrés
+@cindex fret, diagrammes
+@cindex accord, diagrammes
+@cindex diagrammes de fret
+@cindex diagrammes d'accord pour instrument fretté
+@cindex fret, diagrammes personnalisés
+@cindex diagrammes personnalisés de fret
 
 On peut ajouter des diagrammes d'accords au-dessus de n'importe quelle
-note, en tant qu'objets @code{\markup}. Ces objets donnent toutes
-les informations sur le doigté et les éventuels barrés :
+note, en tant qu'objets @code{\markup}.  Ces objets contiennent toutes
+les informations du diagramme d'accord.  Il y a pour les définir trois
+interfaces "diagramme d'accord" (@emph{fret-diagram} en anglais) :
+@var{standard}, @var{terse} et @var{verbose}.
+Ces trois interfaces produiront des diagrammes similaires mais
+permettent des niveaux de personnalisation différents.  Des détails à
+propos des interfaces de type @code{\markup} 
+peuvent être trouvés dans @ref{Text markup commands}.
+
+Dans l'interface standard des diagrammes d'accords, on indiquera le
+numéro de corde et le numéro de case pour chaque point placé sur une corde.
+Les cordes à vide et étouffées peuvent aussi être indiquées.
+
+@lilypond[quote, verbatim]
+<<
+  \context ChordNames {
+     \chordmode {
+       c1 d:m
+     }
+  }
+  \context Staff {
+    \clef "treble_8"
+    < c e g c' e' > 1 ^\markup
+      \fret-diagram #"6-x;5-3;4-2;3-o;2-1;1-o;"
+    < d a d' f'> ^\markup
+      \fret-diagram #"6-x;5-x;4-o;3-2;2-3;1-1;"
+  }
+>>
+@end lilypond
 
-@lilypond[verbatim, ragged-right, quote]
+@cindex barré, indication de
+@cindex indication du barré
+
+Les indications de barrés peuvent aussi être ajoutées au diagramme
+d'accord dans l'interface standard :
+
+@lilypond[quote, verbatim]
+<<
+  \context ChordNames {
+     \chordmode {
+       f1 g
+     }
+  }
+  \context Staff {
+    \clef "treble_8"
+    < f, c f a c' f'>1 ^\markup
+      \fret-diagram #"c:6-1-1;6-1;5-3;4-3;3-2;2-1;1-1;"
+    < g, d g b d' g'> ^\markup
+      \fret-diagram #"c:6-1-3;6-3;5-5;4-5;3-4;2-3;1-3;"
+  }
+>>
+@end lilypond
+
+@cindex fret-diagram et markup
+@cindex markup et fret-diagram
+
+@funindex fret-diagram
+@funindex \fret-diagram
+
+La taille du diagramme d'accord ainsi que le nombre de cases
+représentées peuvent aussi être modifiés dans l'interface standard.
+
+@lilypond[quote, verbatim]
+<<
+  \context ChordNames {
+     \chordmode {
+       f1 g
+     }
+  }
+  \context Staff {
+    \clef "treble_8"
+    < f, c f a c' f'>1 ^\markup
+      \fret-diagram #"s:1.5;c:6-1-1;6-1;5-3;4-3;3-2;2-1;1-1;"
+    < g, b, d g b g'> ^\markup
+      \fret-diagram #"h:6;6-3;5-2;4-o;3-o;2-o;1-3;"
+  }
+>>
+@end lilypond
+
+Le nombre de cordes dans les diagrammes d'accord peut être modifié dans
+l'interface standard pour s'adapter à différents instruments tels que le
+banjo et le ukulele. 
+
+@lilypond[quote, verbatim]
+<<
+  \context ChordNames {
+     \chordmode {
+       a1
+     }
+  }
+  \context Staff {
+        %% A chord for ukelele
+    a'1 ^\markup \fret-diagram #"w:4;4-2-2;3-1-1;2-o;1-o;"
+  }
+>>
+@end lilypond
+
+Des indications de doigtés peuvent être ajoutées, et le positionnement
+de ces doigtés peut être modifié dans l'interface standard.
+
+@lilypond[quote, verbatim]
+<<
+  \context ChordNames {
+     \chordmode {
+       c1 d:m
+     }
+  }
+  \context Staff {
+    \clef "treble_8"
+    < c e g c' e' > 1 ^\markup
+      \fret-diagram #"f:1;6-x;5-3-3;4-2-2;3-o;2-1-1;1-o;"
+    < d a d' f'> ^\markup
+      \fret-diagram #"f:2;6-x;5-x;4-o;3-2-2;2-3-3;1-1-1;"
+  }
+>>
+@end lilypond
+
+La taille ainsi que la position des points peuvent être contrôlées dans
+l'interface standard. 
+
+@lilypond[quote, verbatim]
+<<
+  \context ChordNames {
+     \chordmode {
+       c1 d:m
+     }
+  }
+  \context Staff {
+    \clef "treble_8"
+    < c e g c' e' > 1 ^\markup
+      \fret-diagram #"d:0.35;6-x;5-3;4-2;3-o;2-1;1-o;"
+    < d a d' f'> ^\markup
+      \fret-diagram #"p:0.2;6-x;5-x;4-o;3-2;2-3;1-1;"
+  }
+>>
+@end lilypond
+
+@cindex fret-diagram-terse markup
+
+@funindex fret-diagram-terse
+@funindex \fret-diagram-terse
+
+Dans l'interface @code{fret-diagram-terse}, les numéros de cordes sont
+omis ; les numéros de cordes sont induits par la présence de
+points-virgules.  Il y a un point-virgule pour chaque corde du
+diagramme.  Le premier point-virgule correspondant au plus haut numéro
+de corde, le dernier à la première corde.  Les cordes étouffées, les
+cordes à vide ainsi que les numéros de case peuvent y être indiqués. 
+
+@lilypond[quote, verbatim]
+<<
+  \context ChordNames {
+     \chordmode {
+       c1 d:m
+     }
+  }
+  \context Staff {
+    \clef "treble_8"
+    < c e g c' e' > 1 ^\markup
+      \fret-diagram-terse #"x;3;2;o;1;o;"
+    < d a d' f'> ^\markup
+      \fret-diagram-terse #"x;x;o;2;3;1;"
+  }
+>>
+@end lilypond
+
+Les indications de barré peuvent être inclus dans l'interface
+@code{fret-diagram-terse}. 
+
+@lilypond[quote, verbatim]
+<<
+  \context ChordNames {
+     \chordmode {
+       f1 g
+     }
+  }
+  \context Staff {
+    \clef "treble_8"
+    < f, c f a c' f'>1 ^\markup
+      \fret-diagram-terse #"1-(;3;3;2;1;1-);"
+    < g, d g b d' g'> ^\markup
+      \fret-diagram-terse #"3-(;5;5;4;3;3-);"
+  }
+>>
+@end lilypond
+
+Les indications de doigtés peuvent être inclus dans l'interface
+@code{fret-diagram-terse}. 
+
+@c Need to use override to enable fingerings to show this -- can we do so?
+@lilypond[quote, verbatim]
+<<
+  \context ChordNames {
+     \chordmode {
+       c1 d:m
+     }
+  }
+  \context Staff {
+    \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;"
+    < d a d' f'> ^\markup
+      \fret-diagram-terse #"x;x;o;2-2;3-3;1-1;"
+  }
+>>
+@end lilypond
+
+Les autres propriétés des diagrammes d'accord doivent être ajustées en
+utilisant la commande @code{\override} dans l'interface
+@code{fret-diagram-terse}. 
+
+@cindex fret-diagram-verbose markup
+
+@funindex fret-diagram-verbose
+@funindex \fret-diagram-verbose
+
+L'interface @code{fret-diagram-verbose} est au format d'une liste
+Scheme.  Chaque élément de la liste décrit un objet devant être placé
+dans le diagramme d'accord. 
+
+@lilypond[quote, verbatim]
+<<  \context ChordNames {
+     \chordmode {
+       c1 d:m
+     }
+  }
+  \context Staff {
+    \clef "treble_8"
+    < c e g c' e' > 1 ^\markup
+      \fret-diagram-verbose #'(
+        (mute 6)
+        (place-fret 5 3)
+        (place-fret 4 2)
+        (open 3)
+        (place-fret 2 1)
+        (open 1)
+      )
+    < d a d' f'> ^\markup
+      \fret-diagram-verbose #'(
+        (mute 6)
+        (mute 5)
+        (open 4)
+        (place-fret 3 2)
+        (place-fret 2 3)
+        (place-fret 1 1)
+      )
+  }
+>>
+@end lilypond
+
+Les indications de doigté et de barré peuvent être décrits dans
+l'interface @code{fret-diagram-verbose}.  Particularité propre à
+l'interface @code{fret-diagram-verbose} : l'indication
+de capodastre dans le diagramme d'accord.  L'indication de capodastre
+est une petite ligne transversale aux cordes.  La case avec le
+capodastre est la case la plus basse du diagramme d'accord. 
+
+@c \override is necessary to make fingering visible
+@lilypond[quote, verbatim]
+<<
+  \context ChordNames {
+     \chordmode {
+       f1 g c
+     }
+  }
+  \context Staff {
+    \clef "treble_8"
+    \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)
+        (place-fret 5 3)
+        (place-fret 4 3)
+        (place-fret 3 2)
+        (place-fret 2 1)
+        (place-fret 1 1)
+        (barre 6 1 1)
+      )
+    < g, b, d g b g'> ^\markup
+      \fret-diagram-verbose #'(
+        (place-fret 6 3 2)
+        (place-fret 5 2 1)
+        (open 4)
+        (open 3)
+        (open 2)
+        (place-fret 1 3 3)
+      )
+    < c e g c' e'> ^\markup
+      \fret-diagram-verbose #'(
+        (capo 3)
+        (mute 6)
+        (place-fret 4 5 1)
+        (place-fret 3 5 2)
+        (place-fret 2 5 3)
+      )
+   }
+>>
+@end lilypond
+
+Toutes les autres propriétés du diagramme d'accord doivent être
+indiquées en utilisant la commande @code{\override} lorsque l'on utilise
+l'interface @code{fret-diagram-verbose}. 
+
+@ignore
+The following example shows the three fret-diagram markup
+interfaces, along with examples of common tweaks.  For example,
+the size of the verbose fret diagram is reduced to 0.75, and the
+finger indications are specified to appear below the diagram.  The
+terse diagram includes tweaks to specify placement of finger code
+and color of dots.
+
+@lilypond[verbatim,ragged-right,quote]
 \new Voice {
-  d'^\markup \fret-diagram #"6-x;5-x;4-o;3-2;2-3;1-2;"
-  d' d' d'
-  fis'^\markup \override #'(size . 0.75) {
+  \clef "treble_8"
+  d^\markup \fret-diagram #"6-x;5-x;4-o;3-2;2-3;1-2;"
+  d d d
+  fis^\markup \override #'(size . 0.75) {
     \override #'(finger-code . below-string) {
       \fret-diagram-verbose #'((place-fret 6 2 1) (barre 6 1 2)
-                               (place-fret 5 4 3) (place-fret 4 4 4)
-                               (place-fret 3 3 2) (place-fret 2 2 1)
+                               (place-fret 5 4 3)
+                               (place-fret 4 4 4)
+                               (place-fret 3 3 2)
+                               (place-fret 2 2 1)
                                (place-fret 1 2 1))
     }
   }
-  fis' fis' fis'
-  c'^\markup \override #'(dot-radius . 0.35) {
+  fis fis fis
+  c^\markup \override #'(dot-radius . 0.35) {
     \override #'(finger-code . in-dot) {
       \override #'(dot-color . white) {
         \fret-diagram-terse #"x;3-1-(;5-2;5-3;5-4;3-1-);"
       }
     }
   }
-  c' c' c'
+  c c c
 }
 @end lilypond
+@end ignore
 
-Vous pouvez indiquer vos diagrammes de trois manières différentes :
-@qq{standard}, @qq{terse} ou @qq{verbeux}. Ces trois interfaces
-produisent des schémas similaires, mais demandent d'entrer plus ou moins
-d'informations.  Vous trouverez tout les détails dans
+@cindex diagrammes de fret personnalisés
+@cindex fret, diagrammes personnalisés
+@cindex diagrammes personnalisés de fret
+
+@funindex fret-diagram-interface
+
+La disposition graphique d'un diagramme d'accord peut être modifiée
+suivant les préférences de l'utilisateur grâce aux propriétés de
+l'interface @code{fret-diagram-interface}.  
+Des détails se trouvent dans @rinternals{fret-diagram-interface}.  Pour
+un diagramme d'accord, les propriétés de l'interface dépendent de
+@code{Voice.TextScript}. 
+
+@snippets
+
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{customizing-markup-fret-diagrams.ly}
+
+
+@seealso
+Manuel de notation :
 @ref{Text markup commands}.
 
-Par ailleurs, plusieurs propriétés permettent d'ajuster le graphisme
-à votre convenance. Vous en trouverez les détails dans
+Morceaux choisis :
+@rlsr{Fretted strings}.
+
+Référence des propriétés internes :
 @rinternals{fret-diagram-interface}.
 
+
+@node Predefined fret diagrams
+@unnumberedsubsubsec Predefined fret diagrams
+
+
+@cindex fret, diagrammes
+@cindex accord, diagrammes
+
+@funindex FretBoards
+@funindex stringTunings
+
+Les diagrammes d'accords peuvent être affichés en utilisant le contexte
+@code{FretBoards}.  Par défaut le contexte @code{FretBoards} affichera
+des diagrammes d'accords stockés dans une table de correspondance : 
+
+@lilypond[verbatim, ragged-right, quote]
+\include "predefined-guitar-fretboards.ly"
+\context FretBoards {
+  \chordmode {
+    c1 d
+  }
+}
+@end lilypond
+
+Les diagrammes d'accord définis par défaut sont dans le fichier
+@code{predefined-guitar-fretboards.ly}.  Les diagrammes d'accords sont
+stockés en fonction des notes de l'accord ainsi que de l'accordage
+(@code{stringTunings}) utilisé.
+@code{predefined-guitar-fretboards.ly} contient les diagrammes d'accords
+prédéfinis uniquement pour l'accordage standard (@code{guitar-tuning}).
+Des diagrammes d'accords peuvent être définis pour d'autres instruments
+ou d'autres accordages en suivant les exemples du fichier 
+@code{predefined-guitar-fretboards.ly}.
+
+Les notes des accords peuvent être entrées aussi bien comme musique
+simultanée qu'en utilisant le mode accord (voir 
+@ref{Chord mode overview}).
+
+@lilypond[verbatim, ragged-right,quote]
+\include "predefined-guitar-fretboards.ly"
+\context FretBoards {
+  \chordmode {c1}
+  <c' e' g'>1
+}
+@end lilypond
+
+@cindex accord nommés et diagrammes de fret
+@cindex fret, diagrammes avec noms d'accord
+
+@funindex ChordNames
+@funindex chordmode
+@funindex \chordmode
+
+Il est courant d'afficher simultanément le nom des accords et les
+diagrammes d'accords correspondants. 
+Ceci s'obtient en mettant en parallèle un contexte @code{ChordNames} avec
+un contexte @code{FretBoards} et en affectant aux deux la même musique.
+
+@lilypond[verbatim, ragged-right, quote]
+\include "predefined-guitar-fretboards.ly"
+mychords = \chordmode{
+  c1 f g
+}
+
+<<
+  \context ChordNames {
+    \mychords
+  }
+  \context FretBoards {
+    \mychords
+  }
+>>
+@end lilypond
+
+@cindex transposition et diagramme de fret
+@cindex fret et transposition
+@cindex diagrammes de fret et transposition
+
+Les diagrammes d'accords prédéfinis sont transposables tant qu'il y a 
+un diagramme correspondant à l'accord transposé dans la base des
+diagrammes d'accords. 
+
+@lilypond[verbatim, ragged-right, quote]
+\include "predefined-guitar-fretboards.ly"
+mychords = \chordmode{
+  c1 f g
+}
+
+mychordlist = {
+  \mychords
+  \transpose c e { \mychords}
+}
+<<
+  \context ChordNames {
+    \mychordlist
+  }
+  \context FretBoards {
+    \mychordlist
+  }
+>>
+@end lilypond
+
+La table des diagrammes d'accord contient sept types d'accord (majeur,
+mineur, augmenté, diminué, septième de dominante, majeur sept, mineur
+sept) pour chacune des 17 fondamentales possibles.  Une liste complète
+des diagrammes d'accords prédéfinis se trouve dans @ref{Predefined 
+fretboard diagrams}.   S'il n'y a pas d'entrée dans la table pour un
+accord donné, le graveur @code{Fretboard_engraver} calculera le
+diagramme d'accord en utilisant la fonctionnalité automatique  décrite
+dans @ref{Automatic fret diagrams}.  
+
+@lilypond[verbatim, ragged-right, quote]
+\include "predefined-guitar-fretboards.ly"
+mychords = \chordmode{
+  c1 c:9
+}
+
+<<
+  \context ChordNames {
+    \mychords
+  }
+  \context FretBoards {
+    \mychords
+  }
+>>
+@end lilypond
+
+@cindex fret, ajout de diagrammes personnalisés
+@cindex diagrammes de fret personnalisés, ajout
+
+Des diagrammes d'accord peuvent être ajoutés à la table des diagrammes
+d'accord.  Pour ajouter un diagramme d'accord, il faut spécifier
+l'accord correspondant au diagramme, l'accord utilisé et la définition
+du diagramme.  Cette définition de diagramme peut être 
+aussi bien de type @var{terse} que @var{verbose}.
+
+@lilypond[verbatim, ragged-right, quote]
+\include "predefined-guitar-fretboards.ly"
+
+\storePredefinedDiagram \chordmode {c:9}
+                        #guitar-tuning
+                        #"x;3-2;2-1;3-3;3-4;x;"
+
+mychords = \chordmode{
+  c1 c:9
+}
+
+<<
+  \context ChordNames {
+    \mychords
+  }
+  \context FretBoards {
+    \mychords
+  }
+>>
+@end lilypond
+
+On peut enregistrer différents diagrammes pour un même accord  
+en les définissant à des octaves différentes.
+
+@lilypond[verbatim, ragged-right, quote]
+\include "predefined-guitar-fretboards.ly"
+
+\storePredefinedDiagram \chordmode {c'}
+                        #guitar-tuning
+                        #(offset-fret 2 (chord-shape 'bes guitar-tuning))
+
+mychords = \chordmode{
+  c1 c'
+}
+
+<<
+  \context ChordNames {
+    \mychords
+  }
+  \context FretBoards {
+    \mychords
+  }
+>>
+@end lilypond
+
+@cindex cordes frettées, carrures d'accord
+@cindex accord, carrures pour cordes frettées
+
+@funindex \addChordShape
+@funindex add ChordShape
+@funindex storePredefinedDiagram
+@funindex \storePredefinedDiagram
+
+En plus des  diagrammes d'accord, LilyPond possède une liste interne de 
+carrures d'accord. 
+Les carrures d'accords sont des diagrammes d'accord qui peuvent être
+transposés le long du manche.  Les carrures d'accords peuvent être
+ajoutées à la liste interne et être ensuite utilisées pour définir des
+accords prédéfinis.  Puisqu'elles sont transposables le long du
+manche, les carrures d'accord ne contiennent généralement pas de corde
+à vide.  Tout comme les diagrammes d'accord, les carrures d'accord sont
+définies grâce aux interfaces @code{fret-diagram-terse} ou
+@code{fret-diagram-verbose}. 
+
+
+@lilypond[verbatim, ragged-right, quote]
+\include "predefined-guitar-fretboards.ly"
+
+% add a new chord shape
+
+\addChordShape #'powerf #guitar-tuning #"1-1;3-3;3-4;x;x;x;"
+
+% add some new chords based on the power chord shape
+
+\storePredefinedDiagram \chordmode {f'}
+                        #guitar-tuning
+                        #(chord-shape 'powerf guitar-tuning) 
+\storePredefinedDiagram \chordmode {g'}
+                        #guitar-tuning
+                        #(offset-fret 2 (chord-shape 'powerf guitar-tuning))
+
+mychords = \chordmode{
+  f1 f' g g'
+}
+
+<<
+  \context ChordNames {
+    \mychords
+  }
+  \context FretBoards {
+    \mychords
+  }
+>>
+@end lilypond
+
+La disposition graphique d'un diagramme d'accord peut être modifiée
+suivant les préférences de l'utilisateur grâce aux propriétés de
+l'interface @code{fret-diagram-interface}. Pour plus d'information,
+consultez @rinternals{fret-diagram-interface}.  Pour un diagramme
+d'accord donné, les propriétés de l'interface dépendent de 
+@code{FretBoards.FretBoard}. 
+
+@snippets
+
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{customizing-fretboard-fret-diagrams.ly}
+
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{defining-predefined-fretboards-for-other-instruments.ly}
+
+
+@seealso
+Manuel de notation :
+@ref{Custom tablatures},
+@ref{Automatic fret diagrams},
+@ref{Chord mode overview},
+@ref{Predefined fretboard diagrams}.
+
+Fichiers sources installés :
+@file{ly/predefined-guitar-fretboards.ly},
+@file{ly/predefined-guitar-ninth-fretboards.ly}.
+
+Morceaux choisis :
+@rlsr{Fretted strings}.
+
+Référence des propriétés internes :
+@rinternals {fret-diagram-interface}.
+
+
+@node Automatic fret diagrams
+@unnumberedsubsubsec Automatic fret diagrams
+
+@cindex fret, diagrammes automatiques
+@cindex accord, diagrammes automatiques
+@cindex automatique, diagramme de fret
+@cindex automatique, diagramme d'accord
+
+Les diagrammes d'accord peuvent être créés automatiquement ; il suffit
+d'affecter les notes à un contexte @code{FretBoards}.  Si aucun
+diagramme prédéfini n'est disponible pour les notes entrées avec
+l'accordage actuel (@code{stringTunings}), les cordes et cases
+correspondant aux notes seront automatiquement calculées. 
+
+@lilypond[quote,ragged-right,verbatim]
+<<
+  \context ChordNames {
+     \chordmode {
+       f1 g
+     }
+  }
+  \context FretBoards {
+    < f, c f a c' f'>1
+    < g,\6 b, d g b g'>
+  }
+  \context Staff {
+    \clef "treble_8"
+    < f, c f a c' f'>1
+    < g, b, d g b' g'>
+  }
+>>
+@end lilypond
+
+@funindex predefinedFretboardsOff
+@funindex \predefinedFretboardsOff
+@funindex predefinedFretboardsOn
+@funindex \predefinedFretboardsOn
+
+Dans la mesure où aucun diagramme prédéfini n'est chargé par défaut, le
+calcul automatique des diagrammes d'accord est le comportement par
+défaut. Dès que les diagrammes par défaut sont chargés, le calcul
+automatique peut être activé ou désactivé par des commandes 
+prédéfinies : 
+
+@lilypond[quote,ragged-right,verbatim]
+
+\storePredefinedDiagram <c e g c' e'>
+                        #guitar-tuning
+                        #"x;3-1-(;5-2;5-3;5-4;3-1-1);"
+<<
+  \context ChordNames {
+     \chordmode {
+       c1 c c
+     }
+  }
+  \context FretBoards {
+    <c e g c' e'>1
+    \predefinedFretboardsOff
+    <c e g c' e'>
+    \predefinedFretboardsOn
+    <c e g c' e'>
+  }
+  \context Staff {
+    \clef "treble_8"
+    <c e g c' e'>1
+    <c e g c' e'>
+    <c e g c' e'>
+  }
+>>
+@end lilypond
+
+Parfois le calculateur se trouvera incapable de trouver un diagramme
+d'accord convenable.  On peut souvent y remédier en assignant les notes
+aux cordes.  Dans bien des cas, il suffit de placer manuellement une
+seule note pour que les autres soient alors placées de maniére
+appropriée par le contexte @code{FretBoards}. 
+
+@cindex fret, ajout de doigtés aux diagrammes
+@cindex doigtés, ajout à des diagrammes de fret
+
+Il est possible d'ajouter des indications de doigté aux diagrammes de
+fret. 
+
+@lilypond[quote, verbatim]
+<<
+  \context ChordNames {
+     \chordmode {
+       c1 d:m
+     }
+  }
+  \context FretBoards {
+    < c-3 e-2 g c'-1 e' > 1
+    < d a-2 d'-3 f'-1>
+  }
+  \context Staff {
+    \clef "treble_8"
+    < c e g c' e' > 1
+    < d a d' f'>
+  }
+>>
+@end lilypond
+
+La propriété @code{minimumFret} permet de définir la case minimale qui
+servira à calculer les cordes et les cases du contexte @code{FretBoard}. 
+
+@lilypond[quote, verbatim]
+<<
+  \context ChordNames {
+     \chordmode {
+       d1:m d:m
+     }
+  }
+  \context FretBoards {
+    < d a d' f'>
+    \set FretBoards.minimumFret = #5
+    < d a d' f'>
+  }
+  \context Staff {
+    \clef "treble_8"
+    < d a d' f'>
+    < d a d' f'>
+  }
+>>
+@end lilypond
+
+Les cordes et les cases du contexte @code{FretBoards} sont liées à la
+propriété @code{stringTunings}, qui a là même signification que dans le
+contexte @code{TabStaff}.  
+Voir @ref{Custom tablatures} pour plus d'information sur la propriété
+@code{stringTunings}. 
+
+La disposition graphique d'un diagramme d'accord peut être modifiée
+suivant les préférences de l'utilisateur au travers des propriétés de
+l'interface @rinternals{fret-diagram-interface}.  Pour un diagramme
+d'accord, les propriétés de l'interface dépendent de 
+@code{FretBoards.FretBoard}.
+
+
+@predefined
+@code{\predefinedFretboardsOff},
+@code{\predefinedFretboardsOn}.
+@endpredefined
+
+
 @seealso
+Manuel de notation :
+@ref{Custom tablatures}.
+
+Morceaux choisis :
+@rlsr{Fretted strings}.
+
+Référence des propriétés internes :
+@rinternals {fret-diagram-interface}.
 
-Exemples : @rlsr{Fretted strings}.
 
 @node Right-hand fingerings
 @unnumberedsubsubsec Right-hand fingerings
 
-Les doigtés de la main droite, dans les accords, peuvent être ajoutés au moyen
-de @code{@var{note}-\rightHandFinger @var{doigté}}
+@cindex cordes frettées, doigtés main droite
+@cindex doigtés main droite et cordes frettées
+@cindex main droite, doigtés pour cordes frettées
+
+@funindex rightHandFinger
+@funindex \rightHandFinger
 
-@lilypond[verbatim,fragment,relative=2]
-  <c-\rightHandFinger #1 e-\rightHandFinger #2 >
+Les doigtés de main droite @var{p-i-m-a} doivent être entrés dans une
+construction de type accord @code{<>} même s'il n'y a qu'une seule note.
+
+@warning{Un trait d'union @strong{doit} suivre la note et une espace
+@strong{doit} précéder la fermeture de la construction par un @code{>}.}
+
+
+@lilypond[quote,verbatim,relative=0]
+\clef "treble_8"
+<c-\rightHandFinger #1 >4
+<e-\rightHandFinger #2 >
+<g-\rightHandFinger #3 >
+<c-\rightHandFinger #4 >
+<c,-\rightHandFinger #1 e-\rightHandFinger #2
+  g-\rightHandFinger #3 c-\rightHandFinger #4 >1
 @end lilypond
 
 Pour plus de clarté, vous pouvez traduire ou abréger la commande
@@ -265,116 +1202,105 @@ même @code{\MD} :
 #(define MD rightHandFinger)
 @end example
 
-@cindex doigtés, main droite, guitare
-@cindex mains droite, doigtés guitare
 
-@commonprop
+@snippets
 
-Pour contrôler plus précisément les doigtés de main droite, réglez la
-propriété @code{strokeFingerOrientations} :
-
-@lilypond[quote,verbatim,ragged-right,fragment,relative=1]
-#(define RH rightHandFinger)
-{
-  \set strokeFingerOrientations = #'(up down)
-  <c-\RH #1 es-\RH #2 g-\RH #4 > 4
-  \set strokeFingerOrientations = #'(up right down)
-  <c-\RH #1 es-\RH #2 g-\RH #4 > 4
-}
-@end lilypond
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{placement-of-right-hand-fingerings.ly}
 
-Les lettres utilisées dans ces doigtés sont définies par la propriété
-@code{digit-names}, mais on peut bien sûr les changer en utilisant une
-chaîne de caractères comme argument de @code{\rightHandFinger}.
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{fingerings,-string-indications,-and-right-hand-fingerings.ly}
 
-@lilypond[quote,verbatim,ragged-right,fragment,relative=1]
-#(define RH rightHandFinger)
-{
-  \set strokeFingerOrientations = #'(right)
-  \override StrokeFinger #'digit-names = #'#("x" "y" "z" "!" "@")
-  <c-\RH #5 >4
-  <c-\RH "@">4
-}
-@end lilypond
 
 @seealso
+Morceaux choisis :
+@rlsr{Fretted strings}.
+
+Référence des propriétés internes :
+@rinternals{StrokeFinger}.
 
-Référence du programme : @rinternals{StrokeFinger}
 
 @node Guitar
 @subsection Guitar
 
-@untranslated
+La plupart des aspects en matière de notation pour guitare sont traités
+dans la partie commune aux instruments frettés.  Il subsiste cependant
+quelques particularités que nous allons maintenant examiner.  Parfois
+l'utilisateur aimerait créer des documents de type recueil de chansons,
+où l'on ne trouve que des accords au-dessus des paroles.  Dans la mesure
+où LilyPond est un éditeur de partitions, il n'est pas l'outil optimal
+pour des documents sans partition.  Une meilleure alternative serait de
+recourrir à un traitement de texte, un éditeur de texte ou, pour les
+utilisateurs experimentés, un logiciel typographique tel que GuitarTex.
 
 @menu
 * Indicating position and barring::
-* Indicating harmonics and dampened notes::  
+* Indicating harmonics and dampened notes::
 @end menu
 
 @node Indicating position and barring
 @unnumberedsubsubsec Indicating position and barring
 
-Les doigtés de la main droite, dans les accords, peuvent être ajoutés au moyen
-de @code{@var{note}-\rightHandFinger @var{doigté}}
+@cindex indication de la position et du barré pour cordes frettées
+@cindex cordes frettées, indication de la position et du barré
+
+Cet exemple montre comment indiquer les positions et les barrés :
 
-@lilypond[verbatim,fragment,relative=2]
-  <c-\rightHandFinger #1 e-\rightHandFinger #2 >
+@lilypond[quote,ragged-right,fragment,verbatim,relative=0]
+\clef "treble_8"
+b16 d g b e
+\textSpannerDown
+\override TextSpanner #'(bound-details left text) = #"XII "
+  g16\startTextSpan
+  b16 e g e b g\stopTextSpan
+e16 b g d
 @end lilypond
 
-Pour plus de clarté, vous pouvez traduire ou abréger la commande
-@code{\rightHandFinger}, par exemple en @code{\doigtMainDroite} ou
-même @code{\MD} :
 
-@example
-#(define MD rightHandFinger)
-@end example
+@seealso
+Manuel de notation :
+@ref{Text spanners}.
 
-@cindex doigtés, main droite, guitare
-@cindex mains droite, doigtés guitare
+Morceaux choisis :
+@rlsr{Fretted strings},
+@rlsr{Expressive marks}.
 
-@commonprop
 
-Pour contrôler plus précisément les doigtés de main droite, réglez la
-propriété @code{strokeFingerOrientations} :
+@node Indicating harmonics and dampened notes
+@unnumberedsubsubsec Indicating harmonics and dampened notes
 
-@lilypond[quote,verbatim,ragged-right,fragment,relative=1]
-#(define RH rightHandFinger)
-{
-  \set strokeFingerOrientations = #'(up down)
-  <c-\RH #1 es-\RH #2 g-\RH #4 > 4
-  \set strokeFingerOrientations = #'(up right down)
-  <c-\RH #1 es-\RH #2 g-\RH #4 > 4
-}
-@end lilypond
+@cindex cordes frettées, notes étouffées
+@cindex cordes frettées, harmoniques
+@cindex notes étouffées et cordes frettées
+@cindex harmoniques et cordes frettées
 
-Les lettres utilisées dans ces doigtés sont définies par la propriété
-@code{digit-names}, mais on peut bien sûr les changer en utilisant une
-chaîne de caractères comme argument de @code{\rightHandFinger}.
+Des têtes de note spéciales peuvent servir à indiquer les
+notes étouffées et les sons harmoniques.  Les sons harmoniques sont
+souvent détaillés grâce à des indications textuelles.
 
-@lilypond[quote,verbatim,ragged-right,fragment,relative=1]
-#(define RH rightHandFinger)
-{
-  \set strokeFingerOrientations = #'(right)
-  \override StrokeFinger #'digit-names = #'#("x" "y" "z" "!" "@")
-  <c-\RH #5 >4
-  <c-\RH "@">4
+@lilypond[quote,ragged-right,fragment,verbatim]
+\relative c' {
+  \clef "treble_8"
+  \override Staff.NoteHead #'style = #'cross
+  g8 a b c b4
+  \override Staff.NoteHead #'style = #'harmonic-mixed
+  d^\markup { \italic { \fontsize #-2 { "harm. 12" }}} <g b>1
 }
 @end lilypond
 
-@seealso
 
-Référence du programme : @rinternals{StrokeFinger}
+@seealso
+Morceaux choisis :
+@rlsr{Fretted strings}.
 
-@node Indicating harmonics and dampened notes
-@unnumberedsubsubsec Indicating harmonics and dampened notes
+Manuel de notation :
+@ref{Special note heads},
+@ref{Note head styles}.
 
-@untranslated
 
 @node Banjo
 @subsection Banjo
 
-@untranslated
-
 @menu
 * Banjo tablatures::
 @end menu
@@ -382,11 +1308,14 @@ Référence du programme : @rinternals{StrokeFinger}
 @node Banjo tablatures
 @unnumberedsubsubsec Banjo tablatures
 
-@cindex Tablatures de banjo
+@cindex banjo, tablatures
+@cindex tablatures pour banjo
 
 LilyPond permet d'écrire des tablatures de base pour le banjo à cinq
 cordes.  Pour ce faire, pensez à utiliser le format de tablature pour
-banjo, afin d'avoir le bon nombre de cordes et le bon accord :
+banjo, afin d'avoir le bon nombre de cordes et le bon accordage :
+
+@c due to crazy intervals of banjo music, absolute pitch is recommended
 
 @lilypond[quote,ragged-right,fragment,verbatim]
 \new TabStaff <<
@@ -401,20 +1330,32 @@ banjo, afin d'avoir le bon nombre de cordes et le bon accord :
 >>
 @end lilypond
 
-LilyPond connaît un certain nombre de manières d'accorder un banjo :
-@code{banjo-c-tuning} (sol do sol si ré),
-@code{banjo-modal-tuning} (sol ré sol do ré),
-@code{banjo-open-d-tuning} (la ré fa-dièse la ré)
-et @code{banjo-open-dm-tuning} (la ré fa la ré).
+@cindex banjo, accordages
+@cindex accordages de banjo
+
+@funindex banjo-c-tuning
+@funindex banjo-modal-tuning
+@funindex banjo-open-d-tuning
+@funindex banjo-open-dm-tuning
+@funindex four-string-banjo
 
-Tous ces accords peuvent être convertis en accords pour banjo à quatre
-cordes, si l'on utilise la fonction @code{four-string-banjo} :
+LilyPond prend en charge un certain nombre d'accordages courants pour
+banjo : @code{banjo-c-tuning} sol,do,sol,si,ré (gCGBD),
+@code{banjo-modal-tuning} sol,ré,sol,do,ré (gDGCD), 
+@code{banjo-open-d-tuning} la,ré,fa#,la,ré (aDF#AD) et
+@code{banjo-open-dm-tuning} la,ré,fa,la,ré (aDFAD).
+
+Ces accordages peuvent être convertis pour banjo à quatre cordes au
+moyen de la fonction @code{four-string-banjo} :
 
 @example
 \set TabStaff.stringTunings = #(four-string-banjo banjo-c-tuning)
 @end example
 
+
 @seealso
+Morceaux choisis :
+@rlsr{Fretted strings}.
 
-Vous trouverez une liste complète des jeux de cordes prédéfinis pour le banjo
-dans le fichier @file{scm/@/output@/-lib@/.scm}.
+Les accordages prédéfinis du banjo sont contenus dans le fichier
+@file{scm/@/output@/-lib@/.scm}.  
index 84d6d4a8bea5aae0944e51ff80d1f049fb8115f5..47eca98f52647ae1f15361329ce2ffc11e1b8b26 100644 (file)
@@ -1,16 +1,17 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
 @c This file is part of lilypond-learning.tely
 @ignore
-    Translation of GIT committish: a4836ce5ec9488d795344735f2febc880fbb6a2f
+    Translation of GIT committish: db53c05f11bea8831733b1fdf7ebe32cb1f491f4
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @c Translators: Valentin Villenave, Jean-Charles Malahieude
 @c Translation checkers: John Mandereau
+@c Translation status: post-GDP
 
 @node Fundamental concepts
 @chapter Fundamental concepts
@@ -56,9 +57,9 @@ Un fichier d'entrée LilyPond ressemble à :
 
 @example
 \version @w{"@version{}"}
+\header @{ @}
 \score @{
   @var{...expression musicale composite...}  % c'est là qu'est la musique !
-  \header @{ @}
   \layout @{ @}
   \midi @{ @}
 @}
@@ -87,7 +88,7 @@ simpliste.  LilyPond considère
 @end example
 
 @noindent
-comme un racourci de
+comme un raccourci de
 
 @example
 \book @{
@@ -108,22 +109,23 @@ En d'autres termes, si le code n'est constitué que d'une expression
 musicale simple, LilyPond interprètera le fichier tout comme si cette
 expression était incluse dans les commandes de notre premier exemple.
 
-@cindex implicit contexts
+@cindex contextes implicites
+@cindex implicites, contextes
 
 @strong{Attention :}  de nombreux exemples, dans la documentation de
 LilyPond, ne font pas apparaître les commandes @code{\new Staff} ou
-@code{\new Voice}, même si elles seront créées implicitement.  Ce qui
+@code{\new Voice}, qui sont créées implicitement.  Ce qui
 n'est pas primordial pour des exemples simples le devient dès que la
 situation devient un peu plus complexe.  Le fait de ne pas déclarer
 explicitement un contexte peut alors amener à des résultats quelque peu
 surprenants, comme la création d'une portée supplémentaire et
 indésirable.  La manière de créer explicitement des contextes est
-vue plus en détails au chapitre @ref{Contexts and engravers}.
+traitée plus en détails au chapitre @ref{Contexts and engravers}.
 
 @warning{Dès lors que votre musique dépasse quelques lignes, nous vous
 engageons fortement à créer explicitement les voix et portées.}
 
-Mais revenons à notre premier exemple, et penchons nous tout d'abord sur
+Mais revenons à notre premier exemple, et penchons-nous tout d'abord sur
 la commande @code{\score}.
 
 Un bloc @code{\score} doit contenir une et une seule expression
@@ -133,7 +135,7 @@ quoi, d'une note isolée à un gigantesque
 
 @example
 @{
-  \new GrandStaff <<
+  \new StaffGroup <<
     @var{...collez ici la partition complète d'un opéra de Wagner...}
   >>
 @}
@@ -158,37 +160,42 @@ d'autres informations :
 @funindex \header
 @funindex \layout
 @funindex \midi
+@funindex midi
 @cindex header
 @cindex en-tête
 @cindex layout
 @cindex mise en forme
 @cindex midi
 
+@noindent
 Gardez à l'esprit que ces trois commandes -- @code{\header},
-@code{\layout} et @code{\midi} -- sont spécifiques :  à l'inverse de
-toutes les commandes débutant par une oblique inversée (@emph{backshash}
-pour @code{\}), @emph{elles ne constituent pas} des expressions
-musicales et ne seront donc pas interprétées comme telles.    Elles
-peuvent de ce fait être mentionnées à l'intérieur du bloc @code{\score},
-tout comme à l'extérieur.  En réalité, ces commandes sont la plupart du
-temps indépendantes du bloc @code{\score} -- la commande @code{\header}
-intervient bien souvent avant le bloc @code{\score} tout simplement
-parce que les en-têtes apparaissent au début de la partition.  C'est
-donc l'un des raccourcis que LilyPond prendra en considération.
+@code{\layout} et @code{\midi} -- sont spécifiques : à l'inverse de
+toutes les commandes débutant par une oblique inversée @code{\}
+(@emph{backslash} en anglais), @strong{elles ne constituent pas} des
+expressions musicales et ne peuvent pas faire partie d'expressions
+musicales.  Elles peuvent de ce fait être placées à l'intérieur du
+bloc @code{\score}, ou bien à l'extérieur.  En réalité, ces commandes
+sont la plupart du temps indépendantes du bloc @code{\score} -- par
+exemple, la commande @code{\header} intervient souvent avant le bloc
+@code{\score}, comme le montre l'exemple ci-dessus.
 
 Les deux autres commandes -- @code{\layout @{ @}} et @code{\midi @{@}}
 -- que nous n'avons pas détaillées pour l'instant, auront respectivement
-pour effet lorsqu'elles interviennent de produire une sortie
+pour effet, lorsqu'elles interviennent, de produire une sortie
 imprimable et un fichier MIDI.  Nous nous y intéressons plus
-particulièrement dans le manuel de notation, aux chapitres @ruser{Score
-layout} et @ruser{Creating MIDI files}.
+particulièrement dans le manuel de notation, aux chapitres 
+@ruser{Score layout} et @ruser{Creating MIDI files}.
 
-@cindex scores, multiples
+@cindex partitions multiples
+@cindex book,  bloc implicite
+@cindex implicite, bloc book
+@funindex \book
+@funindex book
 
 Vous pouvez tout à fait mentionner plusieurs blocs @code{\score}.  Ils
 seront traités comme autant de partitions indépendantes qui seront
 regroupées dans un seul fichier résultant.  La commande @code{\book} 
-(@emph{recueil} ou @emph{ouvrage}) pas obligatoire -- elle sera
+(@emph{recueil} ou @emph{ouvrage}) n'est pas obligatoire -- elle sera
 créée implicitement.  Néanmoins, le recours à la commande @code{\book}
 vous permettra d'obtenir des fichiers résultants distincts à partir
 d'un même fichier source @code{.ly} -- par exemple un fichier par pupitre.
@@ -240,8 +247,8 @@ chiffre, ni ponctuation, ni caractère accentué, ni espace.} ; ce peut être
 @code{laTeteAToto}, tant qu'il ne s'agit pas de @qq{mot réservé}.  Pour
 plus de détails, voir @ref{Saving typing with variables and functions}. 
 
-@seealso
 
+@seealso
 Pour une description complète du format des fichiers d'entrée, voir 
 @ruser{File structure}.
 
@@ -250,7 +257,9 @@ Pour une description complète du format des fichiers d'entrée, voir
 @subsection Score is a (single) compound musical expression
 
 @funindex \score
+@funindex score
 @cindex partition
+@cindex bloc score, contenu
 @cindex Expression musicale composite
 
 Dans la section précédente, 
@@ -260,7 +269,7 @@ Mais c'est comme si nous avions éludé la question essentielle : comment
 diable peut-on savoir quoi mettre après @code{\score} ?
 
 En fait, nous ne l'avons pas éludée du tout : le grand mystère est
-tout simplement qu'il n'y a @emph{pas} de mystère.  Allez,
+tout simplement qu'@strong{il n'y a pas} de mystère.  Allez,
 expliquons-le en une ligne :
 
 @quotation
@@ -279,7 +288,7 @@ et remonter la pente.
 @example
 \score @{
   @{   % cette accolade marque le début de l'expression musicale
-    \new GrandStaff <<
+    \new StaffGroup <<
     @var{...insérez ici l'intégralité d'un opéra de Wagner...}
     >>
   @}   % cette accolade marque la fin de l'expression musicale
@@ -288,10 +297,10 @@ et remonter la pente.
 @end example
 
 Un opéra de Wagner multiplierait facilement la longueur de ce manuel
-par deux ou trois, alors faisons-le en version chant/piano.  On n'a
-plus besoin d'une partition d'orchestre --- @code{GrandStaff} --- donc
-laissons cela de côté.  Par contre, un chanteur et un piano
-@emph{pourraient} nous être utiles.
+par deux ou trois, alors contentons-nous d'une voix et d'un piano.  On
+n'a plus besoin d'une partition d'orchestre --- @emph{i.e.} des
+portées regroupées en @code{StaffGroup} --- donc laissons cela de
+côté.  Par contre, nous voulons bien une voix et un piano.
 
 @example
 \score @{
@@ -337,7 +346,7 @@ On y voit nettement plus clair maintenant.  Nous voici donc avec la
 partie du chanteur, qui contient un ensemble @code{Voice}, ce qui dans
 LilyPond correspond à une voix, au sens de voix d'une polyphonie plutôt que
 de voix chantée --- ce pourrait être une partie de violon par
-exemple.
+exemple ---, et des paroles.
 
 Nous avons également une partie de piano, qui contient deux portées :
 une pour la main droite, une autre pour la main gauche.
@@ -356,7 +365,7 @@ accolades qui suivent @code{\new Voice = chant}, on pourrait commencer
 Mais si l'on procédait ainsi, la section @code{\score} deviendrait
 vite assez touffue, et très rapidement on ne s'y retrouverait plus.
 C'est pourquoi on utilisera plutôt des variables, ou identificateurs.
-avec quelques notes de plus, nous pourrins avoir :
+Avec quelques notes de plus, nous pourrions avoir :
 
 @lilypond[verbatim,quote,ragged-right]
 melody = \relative c'' { r4 d8\noBeam g, c4 r }
@@ -385,7 +394,7 @@ lower  = \relative c { b2 e2 }
 Respectez bien la différence entre les notes -- introduites par
 @code{\relative} --,  et les paroles -- introduites par
 @code{\lyricmode}.  Cette distinction est primordiale afin que LilyPond
-puisse interpréter ce qui les suit comme étant respectivemen de la
+puisse interpréter ce qui les suit comme étant respectivement de la
 musique ou du texte.
 
 Quand on écrit, ou que l'on lit, une section @code{\score}, mieux vaut
@@ -395,8 +404,8 @@ une indentation stricte et propre est vraiment d'une aide précieuse :
 assurez-vous que chaque élément d'un même niveau a le même décalage
 horizontal dans votre éditeur de texte !
 
-@seealso
 
+@seealso
 Manuel de notation : @ruser{Structure of a score}.
 
 
@@ -438,14 +447,14 @@ celle imprimée en tête de ligne.
 Une section ossia se placera au dessus de la portée en procédant ainsi :
 
 @lilypond[verbatim,quote,ragged-right]
-\new Staff ="main" {
+\new Staff = "main" {
   \relative g' {
     r4 g8 g c4 c8 d |
     e4 r8
     <<
       { f c c }
       \new Staff \with {
-        alignAboveContext = "main" }
+        alignAboveContext = #"main" }
       { f8 f c }
     >>
     r4 |
@@ -456,7 +465,7 @@ Une section ossia se placera au dessus de la portée en procédant ainsi :
 Cet exemple recourt à @code{\with}, que nous verrons en détail plus
 avant.  C'est un moyen de modifier le comportement par défaut d'une
 portée individuelle.  Nous indiquons ici que la nouvelle portée doit se
-placer au dessus de la portée @qq{main} plutôt qu'en dessous, ce
+placer au dessus de la portée @qq{principal} plutôt qu'en dessous, ce
 qui est le comportement par défaut.
 
 Les ossia apparaissent souvent sans clef ni métrique, et dans une police
@@ -468,6 +477,7 @@ parlé.  Voir @ref{Size of objects} et @ruser{Ossia staves}.
 @subsection On the un-nestedness of brackets and ties
 
 @cindex crochets, imbrication
+@cindex crochets, types de
 
 Nous avons déjà rencontré plusieurs types de crochets au fil de nos
 fichiers LilyPond.  Ils obéissent à des règles différentes qui peuvent
@@ -484,30 +494,31 @@ différents types de crochet :
 @item @code{< .. >}
   @tab Délimite les notes d'un accord
 @item @code{<< .. >>}
-  @tab Délimite des sections simultanées
+  @tab Délimitent des sections simultanées
 @item @code{( .. )}
-  @tab Marquent le début et la fin d'une liaison
+  @tab Marque le début et la fin d'une liaison
 @item @code{\( .. \)}
-  @tab Marquent le début et la fin d'une liaison de phrasé
+  @tab Marque le début et la fin d'une liaison de phrasé
 @item @code{[ .. ]}
-  @tab Marquent le début et la fin d'une ligature manuelle
+  @tab Marque le début et la fin d'une ligature manuelle
 @end multitable
 
 D'autres constructions permettent d'obtenir des lignes regroupant ou en
-travers des notes :  les liaisons de prolongation (indiquées par un
-tilde@code{~}), les marques de nolet avec 
-@code{\times@tie{}x/y@tie{}@{..@}} ou
+travers des notes :  les liaisons de prolongation indiquées par un
+tilde (@code{~}), les marques de nolet avec 
+@code{\times@tie{}x/y@tie{}@{..@}}, ou
 encore les notes d'ornement avec @code{\grace@{..@}}.
 
 En dehors de LilyPond, l'imbrication correcte de différents types de
 crochets exige un strict respect des conventions, telles que 
-@code{<< [ @{ ( .. ) @} ] >>}, où les marques de fermeture interviennent
+@code{<<@tie{}[@tie{}@{@tie{}(@tie{}..@tie{})@tie{}@}@tie{}]@tie{}>>},
+où les marques de fermeture interviennent 
 obligatoirement dans l'ordre exactement inverse à celles d'ouverture.
 Ceci @strong{doit} être rigoureusement respecté pour les trois
-types de crochets utilisés pour @emph{délimiter} comme l'indique le
+types de crochets utilisés pour @strong{délimiter} comme l'indique le
 tableau ci-dessus.  
 Une telle rigueur dans l'imbrication n'est @strong{pas} requise pour les
-types de crochets dont la fonction est de @emph{marquer}, selon le
+types de crochets dont la fonction est de @strong{marquer}, selon le
 tableau ci-dessus, lorsqu'il sont utilisés en combinaison avec des
 liaisons de prolongation ou des nolets.  En effet, il ne s'agit pas
 de crochets ayant pour fonction de borner quelque chose ; ils agissent
@@ -563,11 +574,13 @@ est contenue dans des voix (@emph{Voices} en anglais) et qui se trouve
 @cindex contexte de voix
 @cindex musique simultanée
 @cindex musique concurrente
+@cindex voix ou accords
+@cindex accords ou voix
 
 Dans une partition gérée par LilyPond, le niveau le plus bas, ou bien
-élémentaire ou fondamental, est le @q{contexte de voix} -- @emph{Voice
+élémentaire ou fondamental, est le @qq{contexte de voix} -- @emph{Voice
 context} en anglais --.  Pour d'autres logiciels, on fait tantôt
-référence à la notion de @q{couche} ou de @q{calque}.
+référence à la notion de @qq{couche} ou de @qq{calque}.
 
 En réalité, le contexte de voix est le seul à pouvoir contenir de la
 musique.  S'il n'est pas déclaré explicitement, il sera créé
@@ -579,7 +592,7 @@ comme le piano, peuvent émettre plusieurs sons en même temps, nécessitent
 de recourir à plusieurs voix pour gérer efficacement l'alignement des
 notes et rythmes différents.
 
-Si une voix unique peut tout à fat contenir plusieurs notes dans un
+Si une voix unique peut tout à fait contenir plusieurs notes dans un
 accord, à partir de quand aurons-nous vraiment besoin de plusieurs 
 voix ?  Considérons déjà ces quatre accords :
 
@@ -589,7 +602,7 @@ voix ?  Considérons déjà ces quatre accords :
 @end lilypond
 
 Nous exprimons ici chacun des accords par l'utilisation de 
-symboles inférieur et supérieur simples, @code{< ... >}, puisque nous
+chevrons gauche et droite simples, @code{< ... >}, puisque nous
 n'avons besoin que d'une seule voix.  Supposons maintenant que le fa
 dièse soit une croche, suivie d'un sol croche -- une note de passage
 vers le la ?  Nous avons alors deux notes qui débutent au même moment,
@@ -607,7 +620,7 @@ Voyons comment cela se pratique selon la grammaire de LilyPond.
 Le plus sûr moyen de saisir un fragment où plusieurs voix cohabitent
 sur la même portée, consiste à saisir chacune des voix séquentiellement
 (avec @code{@{...@}}), puis à les combiner en simultané à l'aide de
-symboles supérieur et inférieur doubles, @code{<<...>>}.  Les fragments
+doubles chevrons gauche/droite, @code{<<...>>}.  Les fragments
 devront être séparés par une double oblique inversée, @code{\\}, pour
 les affecter à des voix séparées.  Dans le cas contraire, les notes
 seraient toutes affectées à une même voix, ce qui pourait générer des
@@ -656,6 +669,10 @@ carrément séparer chaque voix :
 @end lilypond
 
 
+@cindex voix, nomage
+@cindex voix et constructions simultanées
+@cindex liaisons et constructions simultanées
+
 Cet exemple ne comporte que deux voix, mais il peut être étendu pour
 traiter trois voix ou plus en ajoutant autant de séparateurs @code{\\}
 que de besoin.
@@ -674,7 +691,7 @@ liaisons, hampes, nuances, etc. est définie automatiquement.
 }
 @end lilypond
 
-Ces voix sont séparées de la voix principale qui contient les notes en 
+Ces voix sont séparées de la voix principale, laquelle contient les notes en 
 dehors de la construction @code{<< .. >>} -- que nous appellerons
 @emph{construction simultanée}.  Les liaisons, de prolongation ou non,
 ne peuvent relier des notes que si elles appartiennent à la même voix ;
@@ -730,7 +747,7 @@ utilisation pédagogique, comme l'est ce document.  Elles modifient la
 couleur des hampes et ligatures et le style de tête des notes, pour
 permettre une meilleure distinction entre les différentes voix.   La
 première voix comporte des têtes en losange rouge, la deuxième en
-triangle bleu, la troisième en cercles barré vert, la quatrième (non
+triangle bleu, la troisième en cercle barré vert, la quatrième (non
 utilisée ici) en croix magenta ;  @code{\voiceNeutralStyle} (non utilisé
 ici) revient au style par défaut.  Nous verrons plus tard comment créer
 de telles commandes.
@@ -801,19 +818,19 @@ les voix -- ce qui est plus compliqué sera décortiqué plus tard.
 La direction des hampes sert souvent à indiquer dans la continuité deux
 lignes mélodiques simultanées.  Ici, les hampes des notes les plus
 hautes vont vers le haut, et celles des notes plus basses vers le
-bas.  C'est une première incation que nous avons eu recours à plus d'une
-voix.
+bas.  C'est une première indication que nous avons eu recours à plus
+d'une voix.
 
 Mais le réel besoin de multiples voix se fait sentir dès lors que
 plusieurs notes qui débutent en même temps ont des durées différentes.
 C'est évident au troisième temps de la première mesure : le la bémol est
 une noire pointée, le fa une noire, et le ré bémol une blanche.  On ne
 peut les grouper dans un accord, puisque toutes les notes composant un
-accord doivent être de même durée.  On ne peut non plus les ecrire
+accord doivent être de même durée.  On ne peut non plus les écrire
 séquentiellement, puisqu'elles débutent toutes au même instant.  Ce
 fragment de mesure nécessite trois voix, et une bonne pratique voudrait
 que l'intégralité de la mesure soit sur trois voix, comme ci-dessous où
-nous avons une allure et une couleur différentes aux motes de chacune
+nous avons une allure et une couleur différentes aux notes de chacune
 d'entre elles.  Une fois de plus, nous reviendrons plus tard sur le code
 que vous ne comprendriez pas.
 
@@ -889,9 +906,9 @@ plaçant la musique dans la voix 4 :
 
 @noindent
 Cette manipulation nous permet de régler la direction des hampes, mais
-engendre un problème que l'on rencontre parfois avec de multiples voix,
-à savoir que les hampes d'une voix peuvent chevaucher les têtes de note
-des autres voix.  En matière de mise en forme des notes, LilyPond
+elle engendre un problème que l'on rencontre parfois avec de multiples
+voix, à savoir que les hampes d'une voix peuvent chevaucher les têtes de
+note des autres voix.  En matière de mise en forme des notes, LilyPond
 tolère que des notes ou accords appartenant à deux voix se retrouvent
 dans le même empilement de notes (@emph{note column} en anglais) si tant
 est que ces hampes vont dans des directions opposées ; néanmoins les
@@ -902,10 +919,10 @@ pas correctement placées.  LilyPond met à notre disposition plusieurs
 moyens d'ajuster le positionnement horizontal des notes.  Nous ne sommes
 pas encore tout à fait prêts pour voir comment corriger cela, aussi nous
 examinerons ce problème dans un autre chapitre (voir la propriété
-force-hshift  dans @ref{Fixing overlapping notation}).
+@code{force-hshift} dans @ref{Fixing overlapping notation}).
 
-@seealso
 
+@seealso
 Manuel de notation : @ruser{Multiple voices}.
 
 
@@ -913,10 +930,15 @@ Manuel de notation : @ruser{Multiple voices}.
 @subsection Explicitly instantiating voices
 
 @funindex \voiceOne
+@funindex voiceOne
 @funindex \voiceTwo
+@funindex voiceTwo
 @funindex \voiceThree
+@funindex voiceThree
 @funindex \voiceFour
+@funindex voiceFour
 @funindex \oneVoice
+@funindex oneVoice
 @funindex \new Voice
 @cindex Voice, création de contextes
 
@@ -959,6 +981,9 @@ Toutes deux produiront
 >>
 @end lilypond
 
+@cindex Voice, retour à un seul contexte
+@cindex retour à un contexte Voice unique
+
 Les commandes @code{\voiceXXX} fixent la direction des hampes, des
 liaisons de prolongation et de phrasé, des articulations, des
 annotations, des points d'augmentation des notes pointées et des
@@ -970,7 +995,7 @@ entre plusieurs notes.  La commande @code{\oneVoice} les ramène aux
 critères normaux.
 
 Voyons, à l'aide de ces exemples simples, les effets respectifs de
-@code{\oneVoice}, @code{\voiceOne} et @code{voiceTwo} sur les
+@code{\oneVoice}, @code{\voiceOne} et @code{\voiceTwo} sur les
 annotations, liaisons de prolongation ou de phrasé, et sur les nuances.
 
 @lilypond[quote,ragged-right,verbatim]
@@ -1067,7 +1092,7 @@ plus naturelle de saisir la musique :
 }
 @end lilypond
 
-@cindex spacing notes
+@cindex espacement des notes
 
 Cette manière de brièvement imbriquer des voix est bien utile pour de
 courts fragments de musique polyphonique.  Mais lorsqu'une portée est
@@ -1102,12 +1127,17 @@ voix.
 
 @cindex note column
 @cindex empilement de notes
+@cindex collisions de notes
 @cindex shift, commandes
 @cindex décalage, commandes
 @funindex \shiftOff
+@funindex shiftOff
 @funindex \shiftOn
+@funindex shiftOn
 @funindex \shiftOnn
+@funindex shiftOnn
 @funindex \shiftOnnn
+@funindex shiftOnnn
 
 Les notes rapprochées d'un accord, ou des notes de différentes voix qui
 tombent ensemble, seront rangées sur deux colonnes, voire plus, pour
@@ -1116,13 +1146,13 @@ empilements de notes.  Chaque voix dispose de plusieurs empilements, et
 l'attribution d'un décalage à une voix en particulier s'appliquera à
 l'empilement en question s'il y avait risque de collision.
 Nous en avons une illustration à la deuxième mesure de l'exemple
-ci-dessus :  le do de la deuxième voix est décalé à droite du ré de la
+ci-dessus : le do de la deuxième voix est décalé à droite du ré de la
 première voix et, dans l'accord final, le do de la troisième voix est
 lui aussi décalé à droite des autres notes.
 
 Les commandes @code{\shiftOn}, @code{\shiftOnn}, @code{\shiftOnnn}, et 
 @code{\shiftOff} spécifient le degré nécessaire de décalage qui sera
-appliqué aux notes au accords de la voix en question afin d'éviter une
+appliqué aux notes ou accords de la voix en question afin d'éviter une
 collision.  Par défaut, les voix extérieures -- normalement les
 première et deuxième -- se verront attribuer @code{\shiftOff}, alors que
 les voix intérieures -- trois et quatre -- se verront attribuer
@@ -1131,8 +1161,7 @@ iront vers la droite, et les voix deux et quatre vers la gauche.
 
 @code{\shiftOnn} et @code{\shiftOnnn} définissent des degrés augmentés
 de décalage auquel on peut devoir temporairement recourir dans des
-situations complexes -- voir Real music example
-@ref{Real music example}.
+situations complexes -- voir @ref{Real music example}.
 
 Un empilement peut ne contenir qu'une note ou un accord dans une voix
 aux hampes vers le haut, et une note ou un accord dans une voix
@@ -1142,8 +1171,8 @@ même moment et qu'aucun décalage n'a été spécifié ou qu'ils sont
 identiques, LilyPond vous le signalera par le message @qq{Trop
 d'empilements en conflit}.
 
-@seealso
 
+@seealso
 Manuel de notation : @ruser{Multiple voices}.
 
 
@@ -1155,6 +1184,8 @@ expressions différentes -- des notes et des paroles.
 
 @funindex \new Lyrics
 @funindex \lyricsto
+@funindex lyricsto
+@funindex Lyrics
 @cindex Lyrics, création d'un contexte
 @cindex paroles, affectation à une voix
 
@@ -1163,7 +1194,7 @@ gérer des partitions simples.  Cette technique est cependant
 relativement limitée.  Pour de la musique un peu plus compliquée, il
 vous faudra contenir les paroles dans un contexte @code{Lyrics}, créé
 par la commande @code{\new Lyrics} ; vous relierez ensuite ces paroles
-aux notes grace à la commande @code{\lyricsto@{@}} et au nom assigné à
+aux notes grâce à la commande @code{\lyricsto@{@}} et au nom assigné à
 la voix en question.
 
 @lilypond[quote,verbatim,fragment]
@@ -1180,13 +1211,14 @@ la voix en question.
 @end lilypond
 
 Notez bien que les paroles sont liées à un contexte de voix
-(@code{Voice}), @emph{non} à un contexte de portée (@code{Staff}).  Il
+(@code{Voice}), @strong{non} à un contexte de portée (@code{Staff}).  Il
 est donc nécessaire de créer explicitement les contextes @code{Staff}
 et @code{Voice}.
 
 @cindex paroles et ligatures
 @cindex ligatures et paroles
 @funindex \autoBeamOff
+@funindex autoBeamOff
 
 Si la ligature automatique que LilyPond applique par défaut
 est pleinement adaptée en matière de musique instrumentale, il
@@ -1197,13 +1229,16 @@ Dans l'exemple qui suit, nous utilisons la commande @code{\autoBeamOff}
 afin de désactiver les ligatures automatiques.
 
 @funindex \new ChoirStaff
+@funindex ChoirStaff
 @funindex \lyricmode
+@funindex lyricmode
 @cindex structure d'une partition vocale
+@cindex chœur, partie de
 
 Nous allons reprendre un extrait de Judas Maccabæus pour illustrer ce
 que cette technique apporte en flexibilité.  Nous commençons par
-utiliser des variables afin de séparer aussi bien la musique que les
-paroles, de la structure d'une portée.  Nous ajoutons par la même
+utiliser des variables afin de séparer de la structure de la portée 
+aussi bien la musique que les paroles.  Nous ajoutons par la même
 occasion un crochet spécifique aux portées pour chœur
 (@code{ChoirStaff}).  Quant aux blocs de paroles, nous les faisons
 précéder de la commande @code{\lyricmode} pour nous assurer qu'elles
@@ -1251,15 +1286,18 @@ contenant la musique peuvent même être stockées dans des fichiers
 indépendants dès lors que leur longueur devient conséquente. 
 
 @cindex structure d'hymne
+@cindex SATB, structure
+@cindex partition vocale avec plusieurs couplets
+@cindex couplets multiples et musique vocale
 
 Voici maintenant la première ligne d'une hymne pour chœur à quatre voix
 mixtes, comportant quatre couplets.  Les paroles sont ici identiques
 pour les quatre voix.  Vous remarquerez le recours aux variables afin de
-séparer les notes et les paroles, de la structure de portée.  Vous
+séparer de la structure de portée les notes et les paroles.  Vous
 noterez aussi une variable particulière, que nous avons appelée
-@q{MetriqueArmure}, et qui contient plusieurs commandes que nous
+@qq{MetriqueArmure}, et qui contient plusieurs commandes que nous
 utiliserons dans les deux portées.  Dans de nombreux autres exemples,
-elle s'appelle @q{global}.
+elle s'appelle @qq{global}.
 
 @lilypond[quote,verbatim]
 TimeKey = { \time 4/4 \partial 4 \key c \major}
@@ -1307,13 +1345,13 @@ quelque peu tirés par les cheveux.
 Commençons par ouvrir un bloc @code{score} qui contiendra un
 @code{ChoirStaff}, puisque nous aimerions voir un crochet au début du
 système choral.  Nous devrions avoir, après @code{\new ChoirStaff}, un
-double inférieur pour synchroniser les portées ; mais comme nous
+double chevron gauche pour synchroniser les portées ; mais comme nous
 reportons le parallélisme après le solo, nous utilisons des accolades --
-un double inférieur ne serait cependant pas génant.  À l'intérieur du
+un double chevron ne serait cependant pas génant.  À l'intérieur du
 @code{ChoirStaff}, nous voulons en premier la portée avec le couplet.
 Puisqu'elle englobe parallèlement des notes et des paroles, nous devons
 encadrer les @code{\new Voice} et @code{\new Lyrics} de doubles
-inférieur/supérieur pour les faire démarrer de concert : 
+chevrons gauche/droite pour les faire démarrer de concert : 
 
 @lilypond[quote,verbatim,ragged-right]
 versenotes = \relative c'' {
@@ -1325,7 +1363,7 @@ versewords = \lyricmode {
   One two three four five six
 }
 \score {
-  \new Choirstaff {
+  \new ChoirStaff {
     \new Staff <<
       \new Voice = "verse" {
         \versenotes \break
@@ -1351,14 +1389,14 @@ fait ajouter encore d'autres portées ici, toujours de la même manière.
 <<
   \refrainnotesA
   \new Lyrics \lyricsto verse @{
-    \refrainwordsA
+    \refrainparolesA
   @}
   \new Staff <<
     \new Voice = "refrainB" @{
       \refrainnotesB
     @}
     \new Lyrics \lyricsto "refrainB" @{
-      \refrainwordsB
+      \refrainparolesB
     @}
   >>
 >>
@@ -1423,6 +1461,7 @@ refrainwordsB = \lyricmode {
 @cindex book, exemple d'utilisation
 @cindex recueil, exemple d'utilisation
 @funindex \book
+@funindex book
 
 Bien que ce que nous venons de voir constitue un exercice intéressant et
 fort utile pour comprendre comment s'articulent des blocs séquentiels et
@@ -1486,8 +1525,8 @@ refrainwordsB = \lyricmode {
 }
 @end lilypond
 
-@seealso
 
+@seealso
 Manuel de notation : @ruser{Vocal music}.
 
 
@@ -1519,7 +1558,7 @@ qui l'engendre :
 cis4 cis2. g4
 @end lilypond
 
-Si le code est assez austère, dans la parition ont été ajoutés un
+Si le code est assez austère, dans la partition ont été ajoutés un
 chiffre de mesure, des barres de mesure, des altérations et une clé.
 Pour une bonne raison : LilyPond @emph{interprète} le code.  Il le
 compulse dans l'ordre chronologique, de même qu'on lit une partition de
@@ -1550,33 +1589,33 @@ faudra imprimer ou non cette dernière dans la suite de la mesure.
 
 Les barres de mesure, quant à elles, sont alignées verticalement grâce au
 contexte @code{Score} par défaut. 
-En revanche, dans une musique polymétrique, par exemple mélant une
+En revanche, dans une musique polymétrique, par exemple mêlant une
 portée à 3/4 et une autre à 4/4, les barres de mesures n'ont plus à être
 alignées : il faut alors modifier les comportement par défaut des
 contextes @code{Score} et @code{Staff}.
 
-Dans une partition très simple, les contextes sont créés implicitement,
+Dans une partition très simple, les contextes sont créés implicitement
 et peuvent être ignorés.  Mais lorsqu'il s'agit de morceaux plus amples
 -- entendons par là tout ce qui s'écrit sur plus d'une portée -- il faut
 les créer explicitement pour être sûr d'obtenir toutes les portées
-nécessaires, et dans le bon ordre.  Enfin pour des morceaux impliquant
+nécessaires, et dans le bon ordre.  Enfin, pour des morceaux impliquant
 une notation spéciale, modifier les contextes ou en créer de nouveaux
 devient extrêment utile.
 
-En plus des contextes @code{Score,} @code{Staff} et @code{Voice}, sont
+En plus des contextes @code{Score,} @code{Staff} et @code{Voice} sont
 disponibles d'autres contextes intermédiaires entre les niveaux 
-partition et portée, chargés de gèrer certains regroupement, tels que
+partition et portée, chargés de gérer certains regroupement, tels que
 @code{PianoStaff} ou @code{ChoirStaff}.  Vous disposez aussi d'autres
 contextes de portée ou de voix alternatifs, ainsi que des contextes
 spécifiques pour les paroles, les percussions, les tablatures
-d'instruments frettés, la basse chifrée, etc.
+d'instruments frettés, la basse chiffrée, etc.
 
 Le nom de chacun des contextes est formé d'un ou plusieurs mots aux
-initiales en majuscule et directements accolés les uns aux autres sans
+initiales en majuscule et directement accolés les uns aux autres sans
 ponctuation, comme par exemple @code{GregorianTranscriptionStaff}.
 
-@seealso
 
+@seealso
 Manuel de notation : @ruser{Contexts explained}.
 
 
@@ -1584,6 +1623,7 @@ Manuel de notation : @ruser{Contexts explained}.
 @subsection Creating contexts
 
 @funindex \new
+@funindex new
 @cindex nouveaux contextes
 @cindex Contextes, création de
 
@@ -1653,15 +1693,15 @@ complète et largement commentée :
 }  % end of single compound music expression
 @end lilypond
 
-Notez comment toute déclaration qui ouvre un bloc par une
-accolade, @code{@{}, ou un double signe inférieur, @code{<<}, est
+Notez que toute déclaration qui ouvre un bloc par une
+accolade, @code{@{}, ou un double chevron gauche, @code{<<}, est
 indentée de deux espaces supplémentaires, et de deux autres pour sa
 marque de fermeture.  Bien que ceci ne soit pas obligatoire, nous vous
 invitons à adopter cette pratique qui vous évitera nombre d'erreurs
-@qq{accolades non pairées}.  La structure de la musique apparaît ainsi
+@qq{accolades non appariées}.  La structure de la musique apparaît ainsi
 au premier coup d'œil, et les défauts de parité plus facilement
 repérables.  Vous remarquerez que la portée MG est créée à l'aide d'un
-inférieur double -- nécessaire pour gérer ses deux voix -- alors que la
+double chevron gauche -- nécessaire pour gérer ses deux voix -- alors que la
 portée MD ne contient qu'une seule expression musicale -- il n'y a
 qu'une voix -- bornée par des accolades simples.
 
@@ -1678,9 +1718,17 @@ et ainsi le distinguer des autres contextes déjà existants :
 Vous noterez la distinction entre le nom du type de contexte,
 @code{Staff}, @code{Voice}, etc, et le nom -- une simple suite de
 lettres au bon gré de l'utilisateur -- permettant d'identifier une
-instance particulière du type en question.  Comme nous l'avons déjà vu
-dans le chapitre consacré aux paroles (@ref{Voices and vocals}),
-cet identifiant permettra ensuite de se référer à ce contexte particulier.
+instance particulière du type en question.  Vous pouvez utiliser des
+chiffres et espaces, à la stricte condition d'englober le tout dans des
+guillemets ; l'identificateur suivant est tout à fait valide :
+@code{\new Staff = "MaPortee 1" @var{expression-musicale}}.  
+Comme nous l'avons déjà vu dans le chapitre consacré aux paroles 
+(@ref{Voices and vocals}), cet identifiant permettra ensuite de se
+référer à ce contexte particulier. 
+
+
+@seealso
+Manuel de notation : @ruser{Creating contexts}.
 
 
 @node Engravers explained
@@ -1694,7 +1742,7 @@ produit par un graveur (@emph{Engraver} en anglais).   Ainsi, il y en a
 un qui imprime les portées, un autre les têtes de note, un autre les
 hampes, un autre encore pour les ligatures, etc.  LilyPond dispose de
 plus de 120 graveurs ! La plupart des partitions ne requièrent de
-s'intéresser qu'à quelques uns seulement, et pour des partitions
+s'intéresser qu'à quelques-uns seulement, et pour des partitions
 simples, vous n'aurez même pas à vous en préoccuper.
 
 Les graveurs résident et opèrent au sein des contextes.
@@ -1722,7 +1770,7 @@ souligné.  Ainsi, le @code{Staff_symbol_engraver} est chargé de créer
 les lignes de la portée, et le @code{Clef_engraver} détermine la hauteur
 de référence de la portée en dessinant le symbole de la clef.
 
-Voici quelques uns des graveurs les plus courants, ainsi que leur
+Voici quelques-uns des graveurs les plus courants, ainsi que leur
 fonction.  Vous noterez qu'il est facile d'en connaître la fonction à
 partir du nom, et vice versa.
 
@@ -1740,7 +1788,7 @@ partir du nom, et vice versa.
 @item Dynamic_engraver
   @tab Crée les soufflets et textes de nuance
 @item Forbid_line_break_engraver
-  @tab Empêche un saut de ligne si un élément musiocal est toujours actif
+  @tab Empêche un saut de ligne si un élément musical est toujours actif
 @item Key_engraver
   @tab Crée l'armure
 @item Metronome_mark_engraver
@@ -1762,8 +1810,8 @@ partir du nom, et vice versa.
 Nous verrons plus avant comment le résultat de LilyPond peut changer
 lorsqu'on modifie l'action des graveurs.
 
-@seealso
 
+@seealso
 Références internes : @rinternals{Engravers and Performers}.
 
 
@@ -1774,19 +1822,21 @@ Références internes : @rinternals{Engravers and Performers}.
 @cindex propriétés d'un contexte, modification
 @cindex modification des propriétés d'un contexte
 @funindex \set
+@funindex set
 @funindex \unset
+@funindex unset
 
 Les contextes gèrent les différentes valeurs des nombreuses
 @emph{propriétés} qui leur sont attachées.  Beaucoup d'entre elles
 sont susceptibles d'être modifiées afin d'influer sur l'interprétation
 de l'input et ainsi changer l'apparence du résultat.  On les modifie 
-grace à la commande @code{\set}, qui s'utilise ainsi :
+grâce à la commande @code{\set}, qui s'utilise ainsi :
 
 @example
 \set @emph{ContexteNommé}.@emph{propriétéNommée} = #@emph{valeur}
 @end example
 
-Où @emph{ContexteNommé} est habituellement @code{Score},
+où @emph{ContexteNommé} est habituellement @code{Score},
 @code{Staff} ou @code{Voice}.  S'il n'est pas mentionné, il sera
 considéré comme étant @code{Voice}.
 
@@ -1812,7 +1862,7 @@ communément utilisées.
   @tab @code{50}
 @item doubleSlurs
   @tab Booléen
-  @tab Si vrai, imprime les liaisons au dessous et au dessus des notes
+  @tab Si vrai, imprime les liaisons au-dessous @strong{et} au-dessus des notes
   @tab @code{#t}, @code{#f}
 @item instrumentName
   @tab Texte
@@ -1833,15 +1883,18 @@ où un boléen correspond soit à vrai (@code{#t} pour @emph{True} en
 anglais) ou faux (@code{#f} pour @emph{False} en anglais), un entier est
 un nombre entier positif, un réel est en nombre décimal positif ou
 négatif, et texte correspond à une suite de caractères encadrée par des
-apostrophes doubles.  Attention à la présence des dièses (@code{#}) dans
-deux cas particuliers : il sont partie intégrante des valeurs boléennes
-et précèdent les @code{t} ou @code{f}, mais doivent aussi précéder
-@emph{valeur} dans le libellé de la commande @code{\set}. Il faudra
-donc, dans le cas d'une valeur boléenne, ne pas oublier de saisir un
-double dièse -- par exemple @code{##t}.
+apostrophes doubles.  Attention à la présence des signes dièse
+(@code{#}) dans deux cas particuliers : ils sont partie intégrante des
+valeurs boléennes et précèdent les @code{t} ou @code{f}, mais doivent
+aussi précéder @emph{valeur} dans le libellé de la commande @code{\set}.
+Il faudra donc, dans le cas d'une valeur boléenne, ne pas oublier de
+saisir deux signes dièse -- par exemple @code{##t}.
+
+@cindex propriétés et contextes
+@cindex réglage de propriétés au sein des contextes
 
 Avant de déterminer l'une de ces propriétés, nous devons savoir dans
-quel contexte elles interviennent.  Si cela est bien souvent évident, il
+quel contexte elle intervient.  Si cela est bien souvent évident, il
 peut arriver que cela tourne au cauchemar.  Lorsque vous ne spécifiez
 pas le bon contexte, aucun message d'erreur ne s'affiche et l'effet
 attendu n'est pas au rendez-vous.  Par exemple, le @code{instrumentName}
@@ -1868,7 +1921,7 @@ Dans la mesure où le nom de contexte par défaut est @code{Voice}, la
 deuxième commande @code{\set} a défini @qq{Alto} comme propriété
 @code{instrumentName} du contexte de voix.  Puisque LilyPond n'ira pas
 chercher une telle propriété dans la contexte @code{Voice}, celle-ci ne
-sera pas interpétée.  Il ne s'agit pas d'une erreur, aucun message
+sera pas interprétée.  Il ne s'agit pas d'une erreur, aucun message
 d'erreur ne sera ni émis ni enregistré. 
 
 De la même manière, une faute d'orthographe dans le nom de la propriété
@@ -1879,7 +1932,7 @@ dans n'importe lequel des contextes disponibles.  Mais tant que ce nom
 est inconnu de LilyPond, rien ne se passera.  Certains éditeurs de texte
 disposent d'une prise en charge spécifique aux fichiers source LilyPond,
 à l'instar de LilyPondTool couplé à JEdit et qui documente les noms des
-pripriétés dans une infobulle lorsque vous les survolez à la souris, ou 
+propriétés dans une infobulle lorsque vous les survolez à la souris, ou 
 les souligne différemment s'ils sont inconnus, comme ConTEXT.  Dans le
 cas où votre éditeur ne dispose pas de ces fonctionnalités, nous vous
 recommandons de vérifier le nom des propriétés que vous manipulez dans
@@ -1939,10 +1992,10 @@ modifier le réglage.
 
 Les commandes @code{\set} et @code{\unset} peuvent intervenir n'importe
 où dans votre fichier source.  Elles seront effectives dès leur
-apparition et jusqu'à la fin de la partition, à moins d'être affectée
+apparition et jusqu'à la fin de la partition, à moins d'être affectées
 par un @code{\unset} ou un nouveau @code{\set}.  À titre d'exemple, nous
-allons modifier jouer avec la taille des fontes, ce qui affecte entre
-autres la grosseur des tes de note.  Les modifications s'appliquent
+allons jouer avec la taille des fontes, ce qui affecte entre
+autres la grosseur des têtes de note.  Les modifications s'appliquent
 toujours par rapport à la valeur par défaut, non par rapport à la
 dernière valeur.
 
@@ -1960,16 +2013,17 @@ a b
 @end lilypond
 
 Nous venons de voir comment déterminer la valeur de différents types de
-propriétés.  N'oubliez pas que les nombres, entiers ou réels, doivent
-être précédés d'un dièse (@code{#}) et les valeurs vrai ou faux de deux
-dièses -- respectivement ##t et ##f --. Une valeur textuelle doit être
-encadrée de guillemets anglais, @code{``@dots{ }''}, bien que, comme
-nous le constaterons plus tard, la commande @code{\markup} permet aussi
-de spécifier du texte.
+propriété.  N'oubliez pas que les nombres, entiers ou réels, doivent
+être précédés d'un signe dièse (@code{#}) et les valeurs vrai ou faux de
+deux signes dièse -- respectivement ##t et ##f --. Une valeur textuelle
+doit être encadrée de guillemets anglais, @code{``@dots{ }''}, bien que,
+comme nous le constaterons plus tard, la commande @code{\markup} permet
+aussi de spécifier du texte.
 
 @unnumberedsubsubsec Setting context properties with @code{\with}
 
 @funindex \with
+@funindex with
 @cindex propriétés d'un contexte, définition avec \with
 
 Les propriétés d'un contexte peuvent aussi être réglées lors de la
@@ -1978,7 +2032,7 @@ de spécifier les valeurs d'une propriété pour la durée de vie du
 contexte.  Lorsque vous créez un contexte à l'aide de la commande
 @code{\new}, vous pouvez la faire suivre immédiatement d'un bloc
 @code{\with @{ .. @}} qui contiendra les réglages des différentes
-propriétés.  Ainsi, si nous voulons par exemple annuler l'impression des
+propriétés.  Ainsi, si nous voulions par exemple annuler l'impression des
 bécarres supplémentaires sur la durée d'une portée, nous écririons :
 
 @example
@@ -2002,9 +2056,11 @@ ce qui donnerait :
 @end lilypond
 
 Les propriétés réglées de cette manière peuvent néanmoins être modifiées
-de façon dynamique grace à @code{\set} ; un @code{\unset} les ramènera à
+de façon dynamique grâce à @code{\set} ; un @code{\unset} les ramènera à
 leur valeur par défaut.
 
+@cindex fontSize, valeur par défaut et réglage
+
 La propriété @code{fontSize} constitue une exception : lorsqu'elle est
 déterminée au sein d'un bloc @code{\with}, cela redéfinit la valeur par
 défaut de la taille de fonte.  Une modification est possible par la
@@ -2013,10 +2069,14 @@ revenir à la nouvelle valeur par défaut.
 
 @unnumberedsubsubsec Setting context properties with @code{\context}
 
+@cindex propriétés d'un contexte, définition avec \context
+@funindex \context
+@funindex context
+
 Vous pouvez régler les valeurs des propriétés de contexte en une seule
 fois pour tous les contextes d'un même type, par exemple tous les
 contextes @code{Staff}.  Le type du contexte doit être donné
-explicitement d'après son nom, par exemple @code{Staff}, prédédé d'une
+explicitement d'après son nom, par exemple @code{Staff}, précédé d'une
 oblique inverse, donc nous saisirons @code{\Staff}.  La manière de
 régler la valeur des propriétés est la même que ce que nous avons vu
 avec la commande @code{\with}, puisqu'on se place dans un bloc
@@ -2042,18 +2102,22 @@ avec la commande @code{\with}, puisqu'on se place dans un bloc
 @end lilypond
 
 @noindent
-Les propriétés de contextes ainsi définies peuvent être adaptées pour
-chacun des contextes en particulier grace à un bloc @code{\with} ou bien
+Les propriétés de contexte ainsi définies peuvent être adaptées pour
+chacun des contextes en particulier grâce à un bloc @code{\with} ou bien
 une commande @code{\set} au fil des notes.
 
-@seealso
 
-Manuel de notation : @ruser{Changing context default settings},
-@ruser{The set command}.
+@seealso
+Manuel de notation : 
+@ruser{Changing context default settings},
+@c uncomment when backslash-node-name issue is resolved -pm
+@c @ruser{The set command}.
 
-Références internes : @rinternals{Contexts},
+Références internes : 
+@rinternals{Contexts},
 @rinternals{Tunable context properties}.
 
+
 @node Adding and removing engravers
 @subsection Adding and removing engravers
 
@@ -2061,15 +2125,17 @@ Références internes : @rinternals{Contexts},
 @cindex graveurs, suppression
 
 @funindex \consists
+@funindex consists
 @funindex \remove
+@funindex remove
 
-Nous avons vu que chacun des différents contextes contient plusieurs 
-graveurs, et que chacun de ces graveurs est chargé de générer une
-part spécifique du résultat, qui les barres de mesure, qui la portée,
-qui les têtes de note, les hampes, etc.  Le fait de suprimer un graveur
-d'un contexte éliminera sa contribution à l'œuvre résultante.  Bien que
-ce soit là un moyen radical de modifier le résultat, cette pratique est
-dans quelques cas fort utile.
+Nous avons vu que chaque contexte met en œuvre plusieurs graveurs, et
+que chacun de ces graveurs est chargé de générer une composante
+particulière du fichier de sortie, qui les barres de mesure, qui la
+portée, qui les têtes de note, les hampes, etc.  Le fait de supprimer un
+graveur d'un contexte éliminera sa contribution au fichier de sortie.
+Bien que ce soit là un moyen radical de modifier le résultat, cette
+pratique est dans quelques cas fort utile.
 
 @subsubheading Changing a single context
 
@@ -2077,9 +2143,9 @@ Nous utilisons, pour supprimer un graveur d'un contexte, la commande
 @code{\with} dès la création dudit contexte, comme nous l'avons vu dans
 la section précédente.
 
-Illustrons notre propose en reprenant un exemple du chapitre précédant,
-puor lui suprimer les lignes de la portée.  Pour mémoire, les lignes
-d'une portée sont générées par le Staff_symbol_engraver.
+Illustrons notre propos en reprenant un exemple du chapitre précédent,
+duquel nous supprimerons les lignes de la portée.  Pour mémoire, les
+lignes d'une portée sont générées par le @code{Staff_symbol_engraver}.
 
 @lilypond[quote,verbatim,ragged-right]
 \new Staff \with {
@@ -2101,11 +2167,11 @@ d'une portée sont générées par le Staff_symbol_engraver.
 Vous pouvez aussi ajouter individuellement un graveur à un contexte. La
 commande se formule ainsi :
 
-@code{\consists @emph{Nom_du_graveur}}
+@code{\consists @var{Nom_du_graveur}}
 
-et se place dans un bloc @code{\with}.  Certianes partitions vocales
+et se place dans un bloc @code{\with}.  Certaines partitions vocales
 font apparaître un @rglos{ambitus} au début de la portée, afin
-d'indiquer ses notes extrèmes.  L'ambitus est généré par
+d'indiquer ses notes extrêmes.  L'ambitus est généré par
 l'@code{Ambitus_engraver}, que l'on peut adjoindre à n'importe quel
 contexte.  Si nous l'ajoutons au contexte @code{Voice}, seule la
 tessiture de cette voix sera calculée :
@@ -2153,11 +2219,12 @@ les notes de toutes les voix de la portée :
 @subsubheading Changing all contexts of the same type
 
 @funindex \layout
+@funindex layout
 
 Les exemples ci-dessus nous ont montré comment ajouter ou retirer des
 graveurs à des contextes individuels.  Nous pourrions aussi ajouter ou
-suprimer des graveurs à tous les contextes d'un même type en insérant
-les commandes pour le contexte approprié, au sein d'un bloc
+supprimer des graveurs à tous les contextes d'un même type en insérant
+les commandes pour le contexte approprié au sein d'un bloc
 @code{\layout}.  Si nous voulions afficher un ambitus pour chacune des
 portées d'un système à quatre portées, il nous suffirait d'écrire :
 
@@ -2193,8 +2260,8 @@ Vous réglerez de la même manière les propriétés de tous les contextes
 d'un type particulier si vous insérez les commandes @code{\set} dans un
 bloc @code{\context}.
 
-@seealso
 
+@seealso
 Manuel de notation : @ruser{Modifying context plug-ins}, 
 @ruser{Changing context default settings}.
 
@@ -2223,7 +2290,7 @@ adapter des modèles.
 
 Commencez par le modèle qui vous semblera le plus proche de ce à quoi
 vous voulez aboutir.  Disons par exemple que vous voulez écrire une pièce
-pour soprano et violoncelle : dans ce cas l'on pourrait commencer par les
+pour soprano et violoncelle : dans ce cason pourrait commencer par les
 @qq{notes et paroles}, pour la partie de soprano.
 
 @example
@@ -2254,7 +2321,7 @@ texte = \lyricmode @{
 @end example
 
 Maintenant, on veut ajouter une partie de violoncelle.
-Jetons un coup d'oeil sur l'exemple avec les notes seules :
+Jetons un coup d'œil sur l'exemple avec les notes seules :
 
 @example
 \version @w{"@version{}"}
@@ -2274,7 +2341,7 @@ melodie = \relative c' @{
 @end example
 
 On n'a pas besoin de deux commandes @code{\version}.  Ce dont on a besoin,
-c'est la section @code{melodie}. De même, on n'a pas besoin de deux sections
+c'est de la section @code{melodie}. De même, on n'a pas besoin de deux sections
 @code{\score} --- si nous les gardions toutes les deux, on obtiendrait deux
 parties séparées ; mais nous voulons un vrai duo, avec les deux
 parties ensemble.  Dans la section @code{\score}, on n'a pas besoin
@@ -2340,7 +2407,7 @@ la partie de soprano, on va devoir ajouter :
 @noindent
 en dessous de tout ce qui concerne la soprano.  Il nous faut également
 encadrer la musique par des @code{<<} et @code{>>}, qui feront comprendre
-à LilyPond que plusieurs Ã©vènements --- ici, des objets @code{Staff} ---
+à LilyPond que plusieurs Ã©vénements --- ici, des objets @code{Staff} ---
 se déroulent en même temps.  Le bloc @code{\score} ressemble maintenant à
 
 @c Indentation in this example is deliberately poor
@@ -2371,7 +2438,6 @@ sopranoMusic = \relative c' {
   \clef treble
   \key c \major
   \time 4/4
-
   a4 b c d
 }
 
@@ -2383,11 +2449,10 @@ celloMusic = \relative c {
   \clef bass
   \key c \major
   \time 4/4
-
   d4 g fis8 e d4
 }
 
-\score{
+\score {
   <<
     <<
       \new Voice = "one" {
@@ -2403,8 +2468,8 @@ celloMusic = \relative c {
 }
 @end lilypond
 
-@seealso
 
+@seealso
 Les patrons originaux sont disponibles à l'annexe @qq{Modèles}, voir
 @ref{Single staff}. 
 
@@ -2466,29 +2531,29 @@ lower = \relative c, {
   <<  % combine ChoirStaff and PianoStaff in parallel
     \new ChoirStaff <<
       \new Staff = "sopranos" <<
-        \set Staff.instrumentName = "Soprano"
+        \set Staff.instrumentName = #"Soprano"
         \new Voice = "sopranos" { \global \sopranoMusic }
       >>
       \new Lyrics \lyricsto "sopranos" { \sopranoWords }
       \new Staff = "altos" <<
-        \set Staff.instrumentName = "Alto"
+        \set Staff.instrumentName = #"Alto"
         \new Voice = "altos" { \global \altoMusic }
       >>
       \new Lyrics \lyricsto "altos" { \altoWords }
       \new Staff = "tenors" <<
-        \set Staff.instrumentName = "Tenor"
+        \set Staff.instrumentName = #"Tenor"
         \new Voice = "tenors" { \global \tenorMusic }
       >>
       \new Lyrics \lyricsto "tenors" { \tenorWords }
       \new Staff = "basses" <<
-        \set Staff.instrumentName = "Bass"
+        \set Staff.instrumentName = #"Bass"
         \new Voice = "basses" { \global \bassMusic }
       >>
       \new Lyrics \lyricsto "basses" { \bassWords }
     >>  % end ChoirStaff
 
     \new PianoStaff <<
-      \set PianoStaff.instrumentName = "Piano"
+      \set PianoStaff.instrumentName = #"Piano"
       \new Staff = "upper" \upper
       \new Staff = "lower" \lower
     >>
@@ -2497,9 +2562,9 @@ lower = \relative c, {
 @end lilypond
 
 Aucun des modèles ne permet d'arriver exactement à cette mise en forme.
-Celui qui s'en rapprocherait le plus est @q{SATB vocal score and
+Celui qui s'en rapprocherait le plus est @qq{SATB vocal score and
 automatic piano reduction} -- voir @ref{Vocal ensembles} -- mais encore
-faudrait-t-il en modifier la mise en forme et refaire la partie de
+faudrait-il en modifier la mise en forme et refaire la partie de
 piano qui n'est plus une simple reprise des parties vocales.  Les
 variables qui gèrent la musique et les paroles du chœur ne nécessitent
 pas de modification, mais il nous faut d'autres variables pour la
@@ -2509,7 +2574,7 @@ L'ordre dans lequel apparaissent les contextes dans le @code{ChoirStaff}
 du modèle ne correspond pas à ce que nous voyons ci-dessus.  Il nous
 faudra y revenir pour obtenir quatre portées avec des paroles en dessous
 de chacune d'elles.  Toutes les voix devraient être @code{\voiceOne},
-ce qui est la postition par défaut ; il nous faudra donc éliminer toutes
+ce qui est la position par défaut ; il nous faudra donc éliminer toutes
 les commandes @code{\voiceXXX}.  Les ténors auront besoin d'une clé
 spécifique.  Enfin, nous n'avons pas encore abordé la façon dont les
 paroles sont présentées dans le modèle ; nous procèderons donc comme
@@ -2520,22 +2585,22 @@ Une fois tout ceci accompli, voici notre @code{ChoirStaff} :
 @example
     \new ChoirStaff <<
       \new Staff = "sopranos" <<
-        \set Staff.instrumentName = "Soprano"
+        \set Staff.instrumentName = #"Soprano"
         \new Voice = "sopranos" @{ \global \sopranoMusique @}
       >>
-      \new Lyrics \lyricsto "sopranos" @{ \sopranoParoless @}
+      \new Lyrics \lyricsto "sopranos" @{ \sopranoParoles @}
       \new Staff = "altos" <<
-        \set Staff.instrumentName = "Alto"
+        \set Staff.instrumentName = #"Alto"
         \new Voice = "altos" @{ \global \altoMusique @}
       >>
       \new Lyrics \lyricsto "altos" @{ \altoParoles @}
       \new Staff = "tenors" <<
-        \set Staff.instrumentName = "Tenor"
+        \set Staff.instrumentName = #"Tenor"
         \new Voice = "tenors" @{ \global \tenorMusique @}
       >>
       \new Lyrics \lyricsto "tenors" @{ \tenorParoless @}
       \new Staff = "basses" <<
-        \set Staff.instrumentName = "Bass"
+        \set Staff.instrumentName = #"Bass"
         \new Voice = "basses" @{ \global \basseMusique @}
       >>
       \new Lyrics \lyricsto "basses" @{ \basseParoles @}
@@ -2543,22 +2608,22 @@ Une fois tout ceci accompli, voici notre @code{ChoirStaff} :
 @end example
 
 Il nous faut maintenant nous occuper de la partie de piano.  Nous allons
-nous contenter de simplement récupérer la partie de piano du modèle
+nous contenter de récupérer la partie de piano du modèle
 @q{Solo piano} :
 
 @example
 \new PianoStaff <<
-  \set PianoStaff.instrumentName = "Piano  "
+  \set PianoStaff.instrumentName = #"Piano  "
   \new Staff = "upper" \superieur
   \new Staff = "lower" \inferieur
 >>
 @end example
 
-puis d'ajouter les définitions de variable pour @code{supérieur} et
+puis d'ajouter les définitions de variable pour @code{superieur} et
 @code{inferieur}. 
 
 Les systèmes pour chœur et pour piano doivent être combinés à l'aide de
-doubles inférieur/supérieur puisqu'ils doivent s'empiler :
+doubles chevrons gauche/droite puisqu'ils doivent s'empiler :
 
 @example
 <<  % combine ChoirStaff and PianoStaff one above the other
@@ -2584,7 +2649,7 @@ doubles inférieur/supérieur puisqu'ils doivent s'empiler :
   >>  % end ChoirStaff
 
   \new PianoStaff <<
-    \set PianoStaff.instrumentName = "Piano"
+    \set PianoStaff.instrumentName = #"Piano"
     \new Staff = "upper" \superieur
     \new Staff = "lower" \inferieur
   >>
@@ -2592,7 +2657,7 @@ doubles inférieur/supérieur puisqu'ils doivent s'empiler :
 @end example
 
 Une fois tout cela mis en place, et après avoir ajouté les notes et les
-paroles de ces trois mesures du Messie, nous obtenon :
+paroles de ces trois mesures du Messie, nous obtenons :
 
 @lilypond[quote,verbatim,ragged-right,addversion]
 global = { \key d \major \time 4/4 }
@@ -2637,29 +2702,29 @@ lower = \relative c, {
   <<  % combine ChoirStaff and PianoStaff in parallel
     \new ChoirStaff <<
       \new Staff = "sopranos" <<
-        \set Staff.instrumentName = "Soprano"
+        \set Staff.instrumentName = #"Soprano"
         \new Voice = "sopranos" { \global \sopranoMusic }
       >>
       \new Lyrics \lyricsto "sopranos" { \sopranoWords }
       \new Staff = "altos" <<
-        \set Staff.instrumentName = "Alto"
+        \set Staff.instrumentName = #"Alto"
         \new Voice = "altos" { \global \altoMusic }
       >>
       \new Lyrics \lyricsto "altos" { \altoWords }
       \new Staff = "tenors" <<
-        \set Staff.instrumentName = "Tenor"
+        \set Staff.instrumentName = #"Tenor"
         \new Voice = "tenors" { \global \tenorMusic }
       >>
       \new Lyrics \lyricsto "tenors" { \tenorWords }
       \new Staff = "basses" <<
-        \set Staff.instrumentName = "Bass"
+        \set Staff.instrumentName = #"Bass"
         \new Voice = "basses" { \global \bassMusic }
       >>
       \new Lyrics \lyricsto "basses" { \bassWords }
     >>  % end ChoirStaff
 
     \new PianoStaff <<
-      \set PianoStaff.instrumentName = "Piano  "
+      \set PianoStaff.instrumentName = #"Piano  "
       \new Staff = "upper" \upper
       \new Staff = "lower" \lower
     >>
@@ -2672,9 +2737,10 @@ lower = \relative c, {
 @subsection Building a score from scratch
 
 @cindex modèles, création
+@cindex squelettes, création
 
 Après avoir acquis une certaine dextérité dans l'écriture de code
-LilyPond, vous devez vous sentir suffisament pret à vous lancer dans
+LilyPond, vous devez vous sentir suffisament prêt à vous lancer dans
 la création d'une partition à partir de zéro, autrement dit en ne
 partant pas d'un exemple.  Vous pourrez ainsi vous construire vos
 propres patrons selon le type de musique que vous affectionnez plus
@@ -2683,7 +2749,7 @@ partition d'un prélude pour orgue.
 
 Nous débutons par une section d'en-tête ; nous y mettrons entre autres
 le titre et le nom du compositeur.  Puis viennent toutes les définitions
-de toutes les variables. Nous treminons par le bloc @code{\score}.
+de toutes les variables. Nous terminons par le bloc @code{\score}.
 Attelons-nous pour cette aventure, en gardant bien à l'esprit ce que
 nous venons de dire ; nous nous occuperons des détails en temps voulu.
 
@@ -2722,36 +2788,36 @@ première partie du manuel requiert deux voix et la seconde une seule.
 
 @example
   \new PianoStaff <<
-    \new Staff = "ManualOne" <<
+    \new Staff = "ManuelUn" <<
       \new Voice @{ \ManuelUnVoixUnMusique @}
       \new Voice @{ \ManuelUnVoixDeuxMusique @}
     >>  % fin du contexte de portée ManuelUn
-    \new Staff = "ManualTwo" <<
+    \new Staff = "ManuelDeux" <<
       \new Voice @{ \ManuelDeuxMusique @}
     >>  % fin du contexte de portée ManuelDeux 
   >>  % fin du contexte PianoStaff 
 @end example
 
 Il nous faut ajouter à cela une portée pour le pédalier.  Elle se place
-sous le système de piano, mais puisqu'elle doît rester synchrone avec
-lui, nous utilisons un double inférieur/supérieur pour les regrouper.
+sous le système de piano, mais puisqu'elle doit rester synchrone avec
+lui, nous utilisons des doubles chevrons pour les regrouper.
 Négliger ceci nous renverrait une erreur, et personne n'est à l'abri de
 cette faute ! Pour preuve, il vous suffit de copier l'exemple complet en
 fin de chapitre, de supprimer ces @code{<<} et @code{>>}, et de le
-compiler, pour savoir de quoi il retourne.
+compiler, pour voir de quoi il retourne.
 
 @example
 <<  % Système pianistique et portée de pédalier sont synchrones 
   \new PianoStaff <<
-    \new Staff = "ManualOne" <<
+    \new Staff = "ManuelUn" <<
       \new Voice @{ \ManuelUnVoixUnMusique @}
       \new Voice @{ \ManuelUnVoixDeuxMusique @}
     >>  % fin du contexte de portée ManuelUn
-    \new Staff = "ManualTwo" <<
+    \new Staff = "ManualDeux" <<
       \new Voice @{ \ManuelDeuxMusique @}
     >>  % fin du contexte de portée ManuelDeux 
   >>  % fin du contexte PianoStaff 
-  \new Staff = "PedalOrgan" <<
+  \new Staff = "PedalierOrgue" <<
     \new Voice @{ \PedalierOrgueMusique @}
   >>
 >>
@@ -2760,37 +2826,37 @@ compiler, pour savoir de quoi il retourne.
 La construction en simultané -- @code{<< .. >>} -- n'est pas strictement
 obligatoire pour les portées manuel deux et pédalier, qui ne contiennent
 chacune qu'une seule expression musicale ; mais cela ne mange pas de
-pain, et c'est une bonne habitude que de toujours encadrer par un double
-inférieur/supérieur ce qui suit une sommande @code{\new Staff} au cas où
-il y aurait plusieurs voix.  Il en va autrement pour les contextes
-@code{Voice} : ils doivent être toujours suivis d'accolades -- 
-@code{@{ .. @}} --  au cas où vous avez employé plusieurs variables qui
-doivent intervenir consécutivement.
+pain, et c'est une bonne habitude que de toujours encadrer par des
+doubles chevrons gauche/droite ce qui suit une commande @code{\new
+Staff} au cas où il y aurait plusieurs voix.  Il en va autrement pour
+les contextes @code{Voice} : ils doivent être toujours suivis
+d'accolades --  @code{@{ .. @}} --  au cas où vous auriez employé
+plusieurs variables qui doivent intervenir consécutivement.
 
 Ajoutons donc cette structure au bloc @code{\score}, tout en fignolant
 l'indentation.  Nous en profitons pour ajouter les clés appropriées,
 effectuer les réglages concernant les hampes et liaisons de la portée
-supérieure grace à @code{\voiceOne} et @code{\voiceTwo}, et mettre en
-place la métrique et l'armure de chaque portée grace à notre variable
+supérieure grâce à @code{\voiceOne} et @code{\voiceTwo}, et mettre en
+place la métrique et l'armure de chaque portée grâce à notre variable
 @code{\MetriqueArmure}. 
 
 @example
 \score @{
   <<  % Système pianistique et portée de pédalier sont synchrones 
     \new PianoStaff <<
-      \new Staff = "ManualOne" <<
+      \new Staff = "ManuelUn" <<
         \TimeKey  % définition de la métrique et de l'armure
         \clef "treble"
         \new Voice @{ \voiceOne \ManuelUnVoixUnMusique @}
         \new Voice @{ \voiceTwo \ManuelUnVoixDeuxMusique @}
       >>  % fin du contexte de la portée ManuelUn
-      \new Staff = "ManualTwo" <<
+      \new Staff = "ManuelDeux" <<
         \TimeKey
         \clef "bass"
         \new Voice @{ \ManuelDeuxMusique @}
       >>  % fin du contexte de la portée ManuelDeux
     >>  % fin du contexte PianoStaff
-    \new Staff = "PedalOrgan" <<
+    \new Staff = "PedalierOrgue" <<
       \TimeKey
       \clef "bass"
       \new Voice @{ \PedalierOrgueMusique @}
@@ -2800,7 +2866,7 @@ place la métrique et l'armure de chaque portée grace à notre variable
 @end example
 
 Nous en avons fini avec la structure.  Toutes les partitions pour orgue
-auront cette structure, même si le nombre de voix peut chager.  Tout ce
+auront cette structure, même si le nombre de voix peut changer.  Tout ce
 qui nous reste à faire maintenant consiste à saisir la musique et à
 regrouper toutes les parties.
 
index 4fc489724b1d62a482410a58b9618a6b80938087..cd57700c3d09d9505fb862a30401e62075d4fd9b 100644 (file)
@@ -7,7 +7,7 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @c Translators: Jean-Charles Malahieude, Valentin Villenave
 
@@ -198,16 +198,16 @@ Vous pouvez utiliser de multiples balises dans un morceau en
 saisissant plusieurs @code{\tag}.
  
 @example
-  \tag #'original-part \tag #'transposed-part @dots{}
+\tag #'original-part \tag #'transposed-part @dots{}
 @end example
 
 @ignore
 FIXME
 @seealso
-
 Exemples : @lsr{parts,tag@/-filter@/.ly}
 @end ignore
 
+
 @knownissues
 
 Lorsqu'elles comportent des silences, ceux-ci ne seront pas fusionnés
index 3320d3a4da1aae806e7e9237c9e8fbc6b679cfb6..9c194308bf568956f177f74f40af05e78b72f866 100644 (file)
@@ -1,14 +1,16 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
 @c This file is part of lilypond-program.tely
 @ignore
-    Translation of GIT committish: c887c0f8714c999e42fa87d4d1116b8d19e0b93c
+    Translation of GIT committish: db53c05f11bea8831733b1fdf7ebe32cb1f491f4
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
+@c Translators: John Mandereau
+@c Translation checkers: Jean-Charles Malahieude
 
 @node Install
 @chapter Install
@@ -20,7 +22,7 @@ mineur de version impair, par exemple 1.3, 2.9, 2.11.
 
 La compilation de LilyPond est une tâche exigeante et parfois
 laborieuse, c'est pourquoi nous recommandons @strong{fortement}
-l'utilisations des binaires précompilés.
+l'utilisation des binaires précompilés.
 
 @menu 
 * Precompiled binaries::
@@ -33,7 +35,7 @@ l'utilisations des binaires précompilés.
 @unnumberedsubsec Downloading
 
 Consultez @uref{http://lilypond.org/web/install/} pour connaître les
-derniers paquets binaires dipsonibles pour votre plateforme.  Si votre
+derniers paquets binaires disponibles pour votre plateforme.  Si votre
 système d'exploitation n'est pas présent sur cette page, consultez la
 liste complète sur @uref{http://download.linuxaudio.org/lilypond/binaries/}.
 
@@ -45,12 +47,18 @@ darwin-x86  - MacOS X Intel
 freebsd-64  - FreeBSD 6.x, x86_64
 freebsd-x86 - FreeBSD 4.x, x86
 linux-64    - Toutes distributions GNU/Linux, x86_64
-linux-arm   - Toutes distributions GNU/Linux, arm
 linux-ppc   - Toutes distributions GNU/Linux, powerpc
 linux-x86   - Toutes distributions GNU/Linux, x86
 mingw       - Windows x86
 @end example
 
+@knownissues
+
+Si vous utilisez MacOS 10.3 ou 10.4 et voulez exécuter des scripts
+Python tels que @command{convert-ly} et @code{lilypond-book},
+reportez-vous à
+@ref{Setup for MacOS X,,,lilypond-program,Utilisation des programmes}.
+
 
 @node Compiling from source
 @section Compiling from source
index 2a3fdccd2790ed5a1feb3a6eb1ff90c131f11864..e6be0be6fc3b4767e07b513903d097b2c38469a2 100644 (file)
@@ -1,16 +1,16 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
 @c This file is part of lilypond-kearning.tely
 @ignore
-    Translation of GIT committish: 1e3ef555477a299a695c35ccc0aaabe855bdd541
+    Translation of GIT committish: db53c05f11bea8831733b1fdf7ebe32cb1f491f4
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @c Translators: Ludovic Sardain, John Mandereau
-@c Translation checkers: Jean-Charles Malahieude, Jean-Yves Baudais
+@c Translation checkers: Jean-Charles Malahieude, Jean-Yves Baudais, Damien Heurtebise
 @c Translation status: post-GDP
 
 
@@ -44,6 +44,7 @@ architecture.
 @node Engraving
 @unnumberedsubsec Engraving
 
+
 @cindex gravure
 @cindex typographie musicale
 @cindex musique et typographie
@@ -56,7 +57,7 @@ Cette plaque était ensuite encrée, les dépressions créées par les
 creux et les bosses retenant l'encre.  Une image était formée en
 pressant du papier sur la plaque.  La découpe et l'embossage étaient
 entièrement faits à la main.  Il était pénible d'appliquer une
-correction, quand celle-ci n'était pas impossible, la gravure devait
+correction, quand celle-ci n'était pas impossible ; la gravure devait
 donc être parfaite du premier coup.  La gravure demandait une
 qualification hautement spécialisée : un artisan devait accomplir
 environ cinq ans de formation avant de mériter le titre de maître
@@ -65,7 +66,7 @@ pour devenir vraiment habile.
 
 De nos jours, toutes les partitions récentes sont produites avec des
 ordinateurs.  Ceci a des avantages évidents : le coût des impressions
-a diminué, et le travail d'éditeur peut être envoyé par courriel.
+a diminué, et le travail d'édition peut être envoyé par courriel.
 Malheureusement, l'utilisation dominante des ordinateurs a également
 diminué la qualité graphique des partitions.  L'impression
 informatisée leur donne un aspect fade et mécanique qui les rend
@@ -249,13 +250,12 @@ meilleure interprétation.
 
 Ces exemples démontrent que la typographie musicale est un art subtil
 et complexe, et que la produire demande une expertise considérable,
-que les musiciens n'ont généralement pas.  LilyPond représente notre
-effort pour apporter l'excellence graphique de la gravure à la main à
-l'ère de l'ordinateur, et la rendre accessible à tous les musiciens.
-Nous avons conçu nos algorithmes, fontes et paramètres de programme
-pour retrouver la qualité d'édition des anciennes partitions que nous
-aimons tant lire et jouer.
-
+que les musiciens ne possèdent généralement pas.  LilyPond est le
+fruit de nos efforts pour restaurer l'excellence graphique de la
+gravure à la main à l'ère de l'ordinateur, et la rendre accessible à
+tous les musiciens.  Nous avons conçu nos algorithmes, fontes et
+paramètres de programme pour retrouver la qualité d'édition des
+anciennes partitions que nous aimons tant lire et jouer.
 
 
 @node Automated engraving
@@ -271,9 +271,9 @@ faire leur travail ?
 
 La réponse est : nous ne le pouvons pas.  La typographie se base sur
 le jugement visuel humain, donc les humains ne peuvent pas être
-complètement remplacés.  Si LilyPond arrive à résoudre la plupart des
+complètement remplacés.  Si LilyPond arrive à traiter la plupart des
 situations correctement, ce sera déjà une grande avancée sur les
-logiciels existants.  Les autres situations peuvent être résolues à la
+logiciels existants.  Les problèmes restants peuvent être résolus à la
 main.  Au fil des ans, le logiciel peut être affiné pour faire de plus
 en plus de choses automatiquement, pour que les ajustements manuels
 soient de moins en moins nécessaires.
@@ -299,16 +299,16 @@ définitions du modèle typographique doivent également être accessibles
 à l'utilisateur.
 
 @item Enfin, nous affinons continuellement les algorithmes de formatage,
-donc nous avons besoin d'une approche souple des règles.  Le language
+donc nous avons besoin d'une approche souple des règles.  Le langage
 C++ oblige à une certaine méthode de groupage des règles qui ne
 convient pas bien au fonctionnement de la notation musicale.
-
 @end itemize
 
 @cindex langage de programmation Scheme
 
 Ces problèmes ont été résolus en intégrant un interpréteur pour le
-language de programmation Scheme, et en réécrivant des parties de
+langage de programmation Scheme, et en réécrivant des parties de
 LilyPond en Scheme.  L'architecture actuelle de formatage est
 construite autour de la notion d'objets graphiques, décrits par des
 fonctions et des variables Scheme.  Cette architecture comprend les
@@ -382,34 +382,33 @@ musique.
          (pos (ly:grob-property grob 'staff-position)))
     (if (memq 'note-head-interface interfaces)
         (begin
-          (ly:grob-set-property! grob 'stencil ly:text-interface::print)
-          (ly:grob-set-property! grob 'font-family 'roman)
-          (ly:grob-set-property! grob 'text
-            (make-raise-markup -0.5
-              (case pos
-                ((-5) (make-simple-markup "m"))
-                ((-3) (make-simple-markup "c "))
-                ((-2) (make-smaller-markup (make-bold-markup "2")))
-                (else (make-simple-markup "bla")))))))))
+          (ly:grob-set-property! grob 'stencil
+            (grob-interpret-markup grob
+              (make-lower-markup 0.5
+                (case pos
+                  ((-5) "m")
+                  ((-3) "c ")
+                  ((-2) (make-smaller-markup (make-bold-markup "2")))
+                  (else "bla")))))))))
 
 \new Voice \relative c' {
-   \stemUp
-   \set autoBeaming = ##f
-   \time 2/4
-   <d f g>4
-   \once \override NoteHead #'stencil = #ly: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>
-   \once \override NoteHead #'style = #'cross
-   <d f g>
-   \applyOutput #'Voice #mc-squared
-   <d f g>
-   <<
-      { d8[ es-( fis^^ g] fis2-) }
-      \repeat unfold 5 { \applyOutput #'Voice #mc-squared s8 }
-   >>
+  \stemUp
+  \set autoBeaming = ##f
+  \time 2/4
+  <d f g>4
+  \once \override NoteHead #'stencil = #ly: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
+  <d f g>4
+  \applyOutput #'Voice #mc-squared
+  <d f g>4
+  <<
+    { d8[ es-( fis^^ g] fis2-) }
+    \repeat unfold 5 { \applyOutput #'Voice #mc-squared s8 }
+  >>
 }
 @end lilypond
 
@@ -431,7 +430,7 @@ notation utiliser.
 La notation musicale usuelle est un système d'écriture qui a évolué à
 travers les dix derniers siècles.  La forme qui est aujourd'hui
 communément utilisée date du début de la Renaissance.  Bien que la forme
-basique --- les têtes de notes sur une portée de cinq lignes --- n'a pas
+basique --- les têtes de notes sur une portée de cinq lignes --- n'ait pas
 changé, les détails continuent d'évoluer pour exprimer les innovations
 de la notation contemporaine.  Par conséquent, elle comprend quelque 500
 ans de musique, avec des applications allant des mélodies monodiques à
@@ -573,7 +572,7 @@ et le graveur de hampes (@code{Stem_engraver}) ajoute les hampes :
 @end lilypond
 
 @noindent
-Le graveur de hampe est notifié de chaque tête de note qui survient.
+Le graveur de hampe est informé de chaque tête de note qui survient.
 Chaque fois qu'une tête de note --- plusieurs pour un accord --- est
 rencontrée, un objet hampe est créé et connecté à la tête de note.  En
 ajoutant des graveurs pour les barres de ligature, les liaisons, les
@@ -612,10 +611,11 @@ plusieurs contextes de Portée peuvent être inclus dans un seul
 contexte de Partition.  Le contexte de Partition est le contexte de
 notation de plus haut niveau.
 
-@seealso
 
+@seealso
 Référence du programme: @rinternals{Contexts}.
 
+
 @lilypond[quote,ragged-right]
 \include "engraver-example.ily"
 \score {
@@ -635,7 +635,7 @@ Référence du programme: @rinternals{Contexts}.
 Idéalement, le format d'entrée pour n'importe quel système de
 formatage est une description abstraite du contenu.  Dans ce cas-ci,
 ce serait la musique elle-même.  Cela pose un formidable problème :
-comment pouvons-nous définir ce que la musique est réellement ? Plutôt
+comment pouvons-nous définir ce qu'est réellement la musique ? Plutôt
 que d'essayer de trouver une réponse, nous avons renversé la question.
 Nous écrivons un logiciel capable de produire de la musique écrite, et
 adaptons le format pour atteindre la plus grande concision possible.
@@ -643,7 +643,7 @@ Quand le format ne peut plus être simplifé, il nous reste par
 définition le contenu lui-même.  Notre logiciel sert de définition
 formelle d'un document de musique.
 
-La syntaxe est également l'interface utilisateur pour LilyPond, par
+Pour LilyPond, la syntaxe est également l'interface utilisateur ; par
 conséquent il est facile de saisir
 
 @example
@@ -653,7 +653,7 @@ c'4 d'8
 @end example
 
 @noindent
-c'est-à-dire un do central noire et, juste au-dessus un ré croche
+c'est-à-dire un do central noire et, juste au-dessus, un ré croche
 
 @lilypond[quote]
 {
@@ -662,7 +662,7 @@ c'est-à-dire un do central noire et, juste au-dessus un ré croche
 @end lilypond
 
 Sur une échelle microscopique, une telle syntaxe est facile à
-utiliser.  A plus grande échelle, la syntaxe a besoin aussi de
+utiliser.  À plus grande échelle, la syntaxe a besoin aussi de
 structure.  Comment serait-il possible autrement de rentrer des
 pièces complexes comme des symphonies ou des opéras ? La structure
 est formée par le concept d'expression musicale : en combinant
@@ -686,7 +686,7 @@ des notes.
 @end lilypond
 
 @noindent
-Cette expression est mise dans une séquence grace à l'encadrement par
+On met cette expression dans une séquence en l'encadrant par
 des accolades @code{@{@tie{}@dots{}@tie{}@}}
 
 @example
@@ -699,7 +699,7 @@ des accolades @code{@{@tie{}@dots{}@tie{}@}}
 
 @noindent
 Ceci est également une expression, et peut donc encore une fois
-être combinée avec d'autres expressions simultanées (une blanche)
+être combiné avec d'autres expressions simultanées (une blanche)
 en utilisant <<, @code{\\}, et >>
 
 @example
@@ -712,7 +712,7 @@ en utilisant <<, @code{\\}, et >>
 
 De telles structures récursives peuvent être spécifiées formellement
 et de manière ordonnée dans une grammaire indépendante de tout
-contexte.  Le code d'analyse est aussi générée à partir de cette
+contexte.  Le code d'analyse est aussi généré à partir de cette
 grammaire.  Autrement dit, la syntaxe de LilyPond est définie
 clairement et sans ambiguité.
 
@@ -730,7 +730,7 @@ moins de 10% du code source.
 @node Example applications
 @unnumberedsubsec Example applications
 
-@cindex examples simples
+@cindex exemples simples
 
 Nous avons conçu LilyPond comme une expérimentation visant à
 concentrer l'art de la gravure musicale dans un logiciel.  Grâce à
@@ -752,8 +752,12 @@ une partition de chanson :
 @lilypond[quote,ragged-right]
 <<
    \chords { c2 c f2 c }
-   \new Staff \relative c' { \time 2/4 c4 c g'4 g a4 a g2 }
-   \new Lyrics \lyricmode { twin4 kle twin kle lit tle star2 }
+   \new Staff
+   \relative c' {
+     \time 2/4
+     c4 c g' g a a g2
+   }
+   \addlyrics { twin -- kle twin -- kle lit -- tle star }
 >>
 @end lilypond
 
@@ -776,7 +780,7 @@ plus exotiques :
       << {
         \revert Stem #'direction
         \change Staff = down
-        \set subdivideBeams = ##t           
+        \set subdivideBeams = ##t
         g16.[
           \change Staff = up
           c'''32
@@ -807,7 +811,7 @@ plus exotiques :
       \override Beam  #'thickness = #0.3
       \override Stem  #'thickness = #4.0
       g'16[ b16 fis16 g16]
-      << \makeClusters { 
+      << \makeClusters {
         as16 <as b>
         <g b>
         <g cis>
@@ -926,7 +930,7 @@ un fichier, ajoutez les notes, et c'est prêt !
 @ref{Scheme tutorial} : courte introduction à Scheme, le langage de
 programmation utilisé dans les fonctions de musique.  Ces quelques
 lignes vous aideront à construire des retouches avancées ; nombre
-d'utilisateurs n'ont jamais touché à Scheme.
+d'utilisateurs ne touchent jamais à Scheme.
 
 @end itemize
 
@@ -940,7 +944,7 @@ d'utilisateurs n'ont jamais touché à Scheme.
 @cindex langues étrangères
 @cindex langue
 @cindex langage
+
 @rglosnamed{Top,Glossaire musical} : ce document explique en anglais
 des termes musicaux, et donne leur traduction dans diverses langues.
 Si vous n'êtes pas familier avec la notation et la terminologie
@@ -992,7 +996,7 @@ différentes formes de retouches, qui permettent d'obtenir de Lilypond
 (presque) tout ce que vous désirez.
 
 @item
-@ruser{Interfaces for programmers} :.création de fonctions de musique
+@ruser{Interfaces for programmers} : création de fonctions de musique
 à l'aide de Scheme.
 
 @end itemize
index 5981cc7f02eb0e8c3d45cc160a48182883da55c7..a1dbec32d8806c7c5bd088727ddb7dfd6762c0d2 100644 (file)
@@ -1,20 +1,29 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
 @c This file is part of lilypond.tely
 @ignore
-    Translation of GIT committish: bdf8540b74167817eab96ed3d13b35477217f9fe
+    Translation of GIT committish: 15ef26d4cde4d2d170e88a13867169d4e75026ae
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
-@c Translators: Valentin Villenave
+@c Translators: Valentin Villenave, Jean-Charles Malahieude
 @c Translation checkers: Jean-Charles Malahieude, John Mandereau
 
 @node Keyboard and other multi-staff instruments
 @section Keyboard and other multi-staff instruments
 
+@lilypondfile[quote]{keyboard-headword.ly}
+
+Ce chapitre traite des différents aspects de la notation que l'on
+rencontre particulièrement avec les instruments qui ont recours à
+plusieurs portées, tels que ceux disposant de claviers, la harpe ou
+le vibraphone.  Pour les besoins du discours, et pour simplifier, nous
+parlerons ici de @qq{clavier} bien que le recours à des portées multiples
+concerne aussi des instruments qui en sont dépourvus.
+
 @menu
 * Common notation for keyboards::  
 * Piano::                       
@@ -25,6 +34,9 @@
 @node Common notation for keyboards
 @subsection Common notation for keyboards
 
+Nous allons examiner ici les problèmes qui peuvent survenir en matière
+de notation pour la plupart des instrument à cordes multiples.
+
 @menu
 * References for keyboards::    
 * Changing staff manually::     
 @node References for keyboards
 @unnumberedsubsubsec References for keyboards
 
-@untranslated
-@ifnothtml
-@englishref
-@end ifnothtml
+@c untranslated
+@c ifnothtml
+@c englishref
+@c end ifnothtml
+@cindex piano, système pour
+@cindex portées pour piano
+@cindex portées pour instrument à clavier
+@cindex portées pour instrument à clés
+@cindex clavier, portées pour instrument à
+@cindex clés, portées pour instrument à
+
+@funindex PianoStaff
+
+La notation pour instrument à clavier est en règle générale présentée
+sous la forme d'un système pour piano, autrement dit deux portées
+normales ou plus réunies par une accolade. Cette notation sert également
+à la harpe ou à d'autres instruments à clés.  L'organiste, quant à lui,
+lira une partition composée de deux portées au sein d'un système
+pianistique auquel vient s'adjoindre une portée normale pour le pédalier. 
+
+Les portées sont largement autonomes, mais il arrive que des voix
+passent de l'une à l'autre.  Le contexte @code{PianoStaff} est
+précisément conçu pour gérer la notation spécifique au piano et autres
+instruments à clavier, notamment ces croisements.
+
+Certaines particularités de la notation pour claviers sont abordées dans
+d'autres chapitres :
+
+@itemize
+
+@item Les claviers ont régulièrement recours à plusieurs voix dont le
+nombre peut varier. voir à ce sujet @ref{Collision resolution}.
+
+@item On peut écrire la musique pour claviers de façon parallèle, comme
+l'explique @ref{Writing music in parallel}.
+
+@item Les indications de doigté sont abrodées dans 
+@ref{Fingering instructions}. 
+
+@item Les indications en matière de pédalier d'orgue sont traitées comme
+des articulations. Voir à ce sujet @ref{List of articulations}.
+
+@item Pour générer des repères verticaux, voir @ref{Grid lines}.
+
+@item En plus des @notation{Laissez vibrer}, les liaisons en matière de
+clavier peuvent intervenir sur des accords arpégés ou des trémolos.
+Reportez-vous au chapitre @ref{Ties}.
+
+@item Le traitement des arpèges couvrant plusieurs voix ou portées est
+abordé au chapitre @ref{Arpeggio}.
+
+@item Une description des indications de tremolo est disponible au
+chapitre @ref{Tremolo repeats}.
+
+@item Certaines retouches particulières au monde des claviers sont
+abordées au chapitre @rlearning{Real music example}.
+
+@item Des notes fantômes permettent d'introduire des liaisons de tenue
+qui passent d'une voix à l'autre, comme le montre 
+@rlearning{Other uses for tweaks}.
+
+@end itemize
+
+
+@seealso
+Manuel d'initiation :
+@rlearning{Real music example},
+@rlearning{Other uses for tweaks}.
+
+Manuel de notation :
+@ref{Grouping staves},
+@ref{Instrument names},
+@ref{Collision resolution},
+@ref{Writing music in parallel},
+@ref{Fingering instructions},
+@ref{List of articulations},
+@ref{Grid lines},
+@ref{Ties},
+@ref{Arpeggio},
+@ref{Tremolo repeats}.
+
+Référence des propriétés internes :
+@rinternals{PianoStaff}.
+
+Exemples de code :
+@rlsr{Keyboards}.
+
 
-Les systèmes de piano comprennent deux portées réunies par une accolade.
-Les portées sont largement autonomes, mais il arrive que des voix passent
-de l'une à l'autre.  Cette notation sert également à la harpe ou à d'autres
-instruments à clavier.  Le contexte @code{PianoStaff} est précisément
-conçu pour gérer la notation spécifique au piano, notamment ces croisements.
 
 @knownissues
 
-Les nuances ne sont pas centrées verticalement, mais il existe
-des astuces.  Voir à ce sujet le modèle @q{alignement des nuances au
-piano} au chapitre @rlearning{Piano templates}.
+@cindex claviers, centrage des nuances
+@cindex nuances entre les portées d'un système pianistique
+@cindex piano, nuances entre les portées
+@cindex centrage des nuances entre deux portées de piano
+@funindex staff-padding
+
+Les nuances ne sont pas automatiquement centrées verticalement, mais il
+existe des astuces.  Voir à ce sujet le modèle @qq{alignement des
+nuances au piano} au chapitre @rlearning{Piano templates} ; une autre
+solution consiste à augmenter le décalage des nuances par rapport à la
+portée (@code{staff-pagging}) comme l'indique 
+@rlearning{Moving objects}.
 
 
 @node Changing staff manually
 @unnumberedsubsubsec Changing staff manually
 
-@cindex changements de portées manuels
-@cindex changement de portée, manuel
+@cindex changements de portée manuels
+@cindex changement de portée forcé
+@cindex inter-portée, notes
+@cindex notes inter-portée
+@cindex inter-portée, ligatures
+@cindex ligature inter-portée
+
+@funindex \change
+@funindex change
 
 Il est possible de passer d'une portée à l'autre de façon manuelle, au
 moyen de la commande
 
 @example
-\change Staff = @var{nomDeLaPortee} @var{musique}
+\change Staff = @var{nomDeLaPortee}
 @end example
 
 @noindent
 La valeur @var{nomDeLaPortee} est le nom de la portée sur laquelle va se
 déplacer la voix courante.  Pour des raisons pratiques, on nomme la portée
 supérieure @code{"haut"} et la portée inférieure @code{"bas"}, donc
-@var{nomDeLaPortee} désigne habituellement @code{"haut"} ou
-@code{"bas"}.  Dans tous les cas, le contexte de portée ainsi utilisé
-doit exister au préalable.  C'est pourquoi il est d'usage de commencer
-par définir les portées
+@var{nomDeLaPortee} désigne habituellement @code{"haut"}, @code{"bas"},
+@code{"MD"} ou @code{"MG"}.  Dans tous les cas, le contexte de
+portée ainsi utilisé doit exister au préalable. 
 
-@example
-<<
-  \new Staff = "haut" @{
-    \skip 1 * 10  % @emph{de façon à prolonger la portée}
-    @}
-  \new Staff = "bas" @{
-    \skip 1 * 10  % @emph{idem}
-    @}
+Pour ligaturer automatiquement des notes entre deux portées, procédez
+ainsi : 
+
+@lilypond[verbatim,quote]
+\new PianoStaff <<
+  \new Staff = "up" {
+    <e' c'>8
+    \change Staff = "down"
+    g8 fis g
+    \change Staff = "up"
+    <g'' c''>8
+    \change Staff = "down"
+    e8 dis e
+    \change Staff = "up"
+  }
+  \new Staff = "down" {
+    \clef bass
+    % keep staff alive
+    s1
+  }
 >>
-@end example
+@end lilypond
 
+Si les ligatures demandaient à être retouchées, commencez par
+modifier la direction des hampes.  L'emplacement des ligatures sera
+alors calculé à partir du centre de la portée la plus proche -- voir
+@rlearning{Fixing overlapping notation} pour un exemple de retouche sur
+des ligatures. 
 
-avant d'insérer une mélodie au moyen d'un contexte @code{Voice} :
 
-@example
-\context Staff = bas
-  \new Voice @{ @dots{} \change Staff = haut @dots{} @}
-@end example
+@seealso
+Manuel d'initiation :
+@rlearning{Fixing overlapping notation}.
+
+Manuel de notation :
+@ref{Stems},
+@ref{Automatic beams}.
+
+Exemples de code :
+@rlsr{Keyboards}.
+
+Référence des propriétés internes :
+@rinternals{Beam},
+@rinternals{ContextChange}.
 
 
 @node Changing staff automatically
 @unnumberedsubsubsec Changing staff automatically
+
 @cindex Changement de portée automatique
 @cindex Automatique, changement de portée
 
+@funindex \autochange
+@funindex autochange
+@funindex PianoStaff
+
 Les voix peuvent passer automatiquement d'une portée à l'autre, au moyen
 de la syntaxe suivante :
 
-@quotation
 @example
 \autochange @dots{}@var{musique}@dots{}
 @end example
-@end quotation
 
 @noindent
 Deux portées seront alors créées au sein du contexte @code{PianoStaff},
-nommées respectivement @code{up} et @code{down}.  La portée du bas, par
-défaut, sera en clé de fa.
-
-Une section en mode @code{\relative} se situant en dehors de la commande
-@code{\autochange} n'aura pas d'effet sur les hauteurs de l'expression
-@var{musique} ; si on utilise @code{\relative}, il est donc préférable
-de mettre @code{\relative} @emph{après} @code{\autochange} et non avant :
+nommées respectivement @code{"up"} et @code{"down"}.  La portée du bas 
+sera par défaut en clé de fa.  La commande @code{\autochange} bascule
+les notes d'une portée à l'autre en fonction de leur hauteur (le do du
+milieu servant de pivot), et place les silences en fonction des notes
+qui les suivront. Ainsi : 
+
+@lilypond[quote,verbatim]
+\new PianoStaff {
+  \autochange {
+    g4 a b c'
+    d'4 r a g
+  }
+}
+@end lilypond
 
-@quotation
-@example
-\autochange \relative @dots{} @dots{}
-@end example
-@end quotation
+@cindex mode relatif et autochange
+@cindex autochange et mode relatif
 
-La commande @code{\autochange} bascule les notes d'une portée à l'autre
-en fonction de leur hauteur (le do du milieu servant de charnière), et
-place les silences en fonction des notes qui les suivront. Ainsi :
+@funindex \relative
+@funindex relative
 
-@lilypond[quote,verbatim,ragged-right]
-\new PianoStaff
-  \autochange \relative c'
-  {
-    g4 a b c d r4 a g
+Une section en mode @code{\relative} se situant en dehors de la commande
+@code{\autochange} n'aura pas d'effet sur les hauteurs de l'expression
+@var{musique}.  Il est donc préférable d'introduire la directive
+@code{\relative} @strong{après} @code{\autochange}.
+
+Lorsque des contrôles particuliers doivent s'appliquer aux portées,
+mieux vaut les nommer explicitement -- attention : sous peine
+d'effet indésirable quant au résultat, la portée supérieure doit
+s'appeler @code{"up"} et l'inférieure @code{"down"} ; @emph{ceci est à
+notre connaissance le seul cas où ces noms de variable sont figés}.
+Cette procédure sert, entre autres, à indiquer l'armure sur la portée
+inférieure :
+
+@c Keep Ly needed, otherwise 'up' and 'down' get
+@c incorrectly translated in verbatim output
+@c KEEP LY
+@lilypond[quote,verbatim,nogettext]
+\new PianoStaff <<
+  \new Staff = "up" {
+    \new Voice = "melodieUn" {
+      \key g \major
+      \autochange \relative c' {
+        g8 b a c b d c e
+        d8 r fis, g a2
+      }
+    }
   }
+  \new Staff = "down" {
+    \key g \major
+    \clef bass
+  }
+>>
 @end lilypond
 
 
 @seealso
+Dans ce même manuel : 
+@ref{Changing staff manually}.
 
-Dans ce même manuel : @ref{Changing staff manually}.
-
-Référence du programme : @rinternals{AutoChangeMusic}.
+Exemples de code :
+@rlsr{Keyboards}.
 
+Référence des propriétés internes : 
+@rinternals{AutoChangeMusic}.
 
 
 @knownissues
 
+@cindex accords, répartition sur plusieurs portées avec \autochange
+
 Les changements de portée automatiques n'interviennent pas toujours à
 l'endroit le plus opportun.  Pour un résultat de meilleure qualité, il
 vaut mieux indiquer soi-même ces changements.
 
+Un accord ne peut se répartir sur plusieurs portées ; sa portée
+d'affectation sera déterminée par la première hauteur mentionnée dans la
+construction de cet accord.  
+
 @code{\autochange} ne peut intervenir à l'intérieur d'une commande
 @code{\times}.
 
@@ -165,33 +337,44 @@ vaut mieux indiquer soi-même ces changements.
 @cindex mélodie d'une portée à une autre
 
 @funindex followVoice
+@funindex \showStaffSwitch
+@funindex showStaffSwitch
+@funindex \hideStaffSwitch
+@funindex hideStaffSwitch
 
 Lorsqu'une voix change de portée, il est possible d'imprimer
-automatiquement une ligne reliant les notes, en attribuant à la variable
-@code{followVoice} la valeur @emph{vrai} :
+automatiquement une ligne reliant les notes, en faisant appel à la
+commande @code{\showStaffSwitch} :
 
-@lilypond[quote,ragged-right,fragment,relative=1,verbatim]
+@lilypond[quote,verbatim,relative=1]
 \new PianoStaff <<
-  \new Staff="one" {
-    \set followVoice = ##t
+  \new Staff = "one" {
+    \showStaffSwitch
     c1
-    \change Staff=two
+    \change Staff = "two"
     b2 a
   }
-  \new Staff="two" { \clef bass \skip 1*2 }
+  \new Staff = "two" {
+    \clef bass
+    s1*2
+  }
 >>
 @end lilypond
 
-@seealso
-
-Référence du programme : @rinternals{VoiceFollower}.
 
 @predefined
-
-@funindex \showStaffSwitch
 @code{\showStaffSwitch},
-@funindex \hideStaffSwitch
 @code{\hideStaffSwitch}.
+@endpredefined
+
+
+@seealso
+Extraits de code :
+@rlsr{Keyboards}.
+
+Référence des propriétés internes : 
+@rinternals{Note_head_line_engraver},
+@rinternals{VoiceFollower}.
 
 
 @node Cross-staff stems
@@ -200,105 +383,164 @@ Référence du programme : @rinternals{VoiceFollower}.
 @cindex hampe, enjambement portées
 @cindex distance entre deux portées de piano
 
+@funindex Stem
+@funindex cross-staff
+@funindex length
+@funindex flag-style
+
 Pour écrire des accords qui enjambent deux portées, on allonge la hampe
 de l'accord de l'une des deux portées de façon à ce qu'elle rejoigne celle de
 l'autre portée.
 
-@lilypond[ragged-right,verbatim,quote]
-stemExtend = {
-  \once \override Stem #'length = #10
-  \once \override Stem #'cross-staff = ##t
-}
-noFlag = \once \override Stem #'flag-style = #'no-flag
+@lilypond[verbatim,quote]
 \new PianoStaff <<
   \new Staff {
-    \stemDown \stemExtend
-    f'4
-    \stemExtend \noFlag
-    f'8
+    \relative c' {
+      f8 e4 d8 d f e4
+    }
   }
   \new Staff {
-    \clef bass
-    a4 a8
+    \relative c' {
+      << {
+        \clef bass
+        % stems may overlap the other staff
+        \override Stem #'cross-staff = ##t
+        % extend the stems to reach other other staff
+        \override Stem #'length = #12
+        % do not print extra flags
+        \override Stem #'flag-style = #'no-flag
+        % prevent beaming as needed
+        a8 g4 f8 f bes\noBeam g4
+      }
+      \\
+      {
+        f,2 bes4 c
+      } >>
+    }
   }
 >>
 @end lilypond
 
+@snippets
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{indicating-cross-staff-chords-with-arpeggio-bracket.ly}
+
+
+@seealso
+Extraits de code :
+@rlsr{Keyboards}.
+
+Référence des propriétés internes :
+@rinternals{Stem}.
+
 
 @node Piano
 @subsection Piano
 
+Ce chapitre traîte des aspects de la notation directement liés au piano.  
+
 @menu
 * Piano pedals::                
 @end menu
 
 @node Piano pedals
 @unnumberedsubsubsec Piano pedals
-@cindex Pédales
-
-Le piano possède deux pédales, parfois trois, permettant de modifier
-l'émission du son.  Il est possible d'indiquer précisément chacune
-d'entre elles, en ajoutant à une note ou un accord les commandes
-suivantes :
-@multitable {enfoncerr} {pédale de tenuee} {pédale una cordaa} {\sostenutoOnnnn}
-@item       @tab pédale de tenue @tab pédale @emph{una corda} @tab pédale tonale
-@item enfoncer @tab @code{\sustainOn} @tab @code{\unaCorda} @tab @code{\sostenutoOn}
-@item relâcher @tab @code{\sustainOff}   @tab @code{\treCorde} @tab @code{\sostenutoOff}
-@end multitable
-
-@lilypond[quote,ragged-right,fragment,verbatim]
-c'4\sustainOn c'4\sustainOff
-@end lilypond
 
-Les modalités d'impression de ces indications sont définies par la
-propriété @code{pedal@var{X}Strings}, @var{X} étant l'une des trois
-pédales @code{Sustain}, @code{Sostenuto} ou @code{UnaCorda}.  Voyez
-la référence du programme, section @rinternals{SustainPedal}, pour en
-savoir plus.
+@cindex piano et pédales
+@cindex pédales de piano
+@cindex sustain, pédale
+@cindex pédale sustain
+@cindex sostenuto, pédale
+@cindex pédale sostenuto
+@cindex una corda
+@cindex tre corde
+@cindex sos.
+@cindex U.C.
+
+@funindex \sustainOn
+@funindex sustainOn
+@funindex \sustainOff
+@funindex sustainOff
+@funindex \sostenutoOn
+@funindex sostenutoOn
+@funindex \sostenutoOff
+@funindex sostenutoOff
+@funindex \unaCorda
+@funindex unaCorda
+@funindex \treCorde
+@funindex treCorde
 
-La propriété @code{pedalSustainStyle} permet différentes notations de
-pédale, en utilisant des crochets
 
-@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
-\set Staff.pedalSustainStyle = #'bracket
-c\sustainOn d e
-b\sustainOff\sustainOn
-b g \sustainOff a \sustainOn \bar "|."
+Le piano possède deux pédales, parfois trois, permettant de modifier
+l'émission du son : une pédale de @notation{tenue} (@emph{sustain}),
+une pédale de @notation{sourdine} (@emph{una corda} ou @emph{U.C.}) et
+une pédale @notation{tonale} (@emph{sostenuto} ou @emph{sos.}).  La
+pédale @emph{sustain} se rencontre aussi sur les vibraphones et
+celestas.  
+
+@lilypond[quote,verbatim,relative=2]
+c4\sustainOn d e g
+<c, f a>1\sustainOff
+c4\sostenutoOn e g c,
+<bes d f>1\sostenutoOff
+c4\unaCorda d e g
+<d fis a>1\treCorde
 @end lilypond
 
-@noindent
-ou en mélangeant indications textuelles et crochets
-
-@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
+@cindex pédale, styles d'indications de
+@cindex pédale, indication textuelle de
+@cindex pédale, indication graphique de
+@cindex pédale, indication combinée de
+@cindex pédale sustain, style
+@cindex sustain, style de pédale
+
+@funindex pedalSustainStyle
+@funindex mixed
+@funindex bracket
+@funindex text
+
+Trois styles sont à votre disposition pour imprimer les indications de
+pédale : sous forme de texte, de crochet, ou une combinaison des deux.  
+@code{text} est le style de notation par défaut pour les pédales de
+tenue ou de sourdine --- le traditionnel @q{*Ped.}.  La pédale tonale,
+en revanche, utilise @code{mixed} par défaut.
+
+@lilypond[quote,verbatim,relative=2]
+c4\sustainOn g c2\sustainOff
 \set Staff.pedalSustainStyle = #'mixed
-c\sustainOn d e
-b\sustainOff\sustainOn
-b g \sustainOff a \sustainOn \bar "|."
-@end lilypond
-
-@code{text} est le style de notation par défaut pour la pédale de
-tenue --- le traditionnel @q{*Ped.}.  La pédale tonale, en revanche,
-utilise @code{mixed} par défaut.
-
-@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
-c\sostenutoOn d e c, f g a\sostenutoOff
+c4\sustainOn g c d
+d\sustainOff\sustainOn g, c2\sustainOff
+\set Staff.pedalSustainStyle = #'bracket
+c4\sustainOn g c d
+d\sustainOff\sustainOn g, c2
+\bar "|."
 @end lilypond
 
-Il est possible de d'affiner l'apparence d'un crochet de pédale, au
-moyen des propriétés @code{edge-width}, @code{edge-height}, et
-@code{shorten-pair}, appliquées aux objets @code{PianoPedalBracket} ---
-voir la référence du programme, section
-@rinternals{PianoPedalBracket}. Par exemple, on peut étirer le crochet
-jusqu'à l'extrémité droite de la dernière note :
+Le placement des commandes de pédale correspond au mouvement de la
+pédale de tenue pendant le jeu.  Garder une pédale enclanchée jusqu'à la
+barre finale s'obtient tout simplement en omettant la commande de
+relacher. 
 
-@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
-\override Staff.PianoPedalBracket #'shorten-pair = #'(0 . -1.0)
-c\sostenutoOn d e c, f g a\sostenutoOff
-@end lilypond
 
 @seealso
-
-Dans ce manuel : @ref{Ties} @qq{laissez vibrer}.
+Manuel de notation :
+@ref{Ties}.
+
+Extraits de code :
+@rlsr{Keyboards}.
+
+Référence des propriétés internes :
+@rinternals{SustainPedal},
+@rinternals{SustainPedalLineSpanner},
+@rinternals{SustainEvent},
+@rinternals{SostenutoPedal},
+@rinternals{SostenutoPedalLineSpanner},
+@rinternals{SostenutoEvent},
+@rinternals{UnaCordaPedal},
+@rinternals{UnaCordaPedalLineSpanner},
+@rinternals{UnaCordaEvent},
+@rinternals{PianoPedalBracket},
+@rinternals{Piano_pedal_engraver}.
 
 
 @node Accordion
@@ -311,12 +553,111 @@ Dans ce manuel : @ref{Ties} @qq{laissez vibrer}.
 @node Discant symbols
 @unnumberedsubsubsec Discant symbols
 
-@untranslated
-@ifnothtml
-@englishref
-@end ifnothtml
+@cindex accordéon, symboles de registre
+@cindex registres, symboles pour accordéon
+@cindex accordéon, tirettes
+@cindex tirettes d'accordéon, symboles
+
+De nombreux accordéons possèdent plusieurs jeux d'anches capables de
+jouer à l'unisson ou bien à l'octave inférieure ou supérieure par
+rapport aux notes écrites.  Chaque facteur d'accordéon donne des noms
+différents aux @notation{tirettes} (@emph{shifts}) qui permettent de
+sélectionner les différents jeux d'anches tels que @notation{hautbois},
+@notation{musette} ou @notation{bandonéon}, de telle sorte qu'un système
+de symbole a fini par voir le jour afin de faciliter les instructions
+pour exécuter un morceau.
+
+@snippets
+
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{accordion-discant-symbols.ly}
+
+
+@seealso
+Morceaux choisis :
+@rlsr{Keyboards}.
+
 
 @node Harp
 @subsection Harp
 
-@untranslated
+This section discusses notation issues that are unique to the harp.
+
+@menu
+* References for harps::
+* Harp pedals::
+@end menu
+
+@node References for harps
+@unnumberedsubsubsec References for harps
+@cindex harpes
+@cindex bisbigliando
+
+Certaines caractéritiques de la musique pour harpes sont abordées dans
+d'autres chapitres, telles que :
+
+@itemize
+
+@item Les glissandos, l'une des techniques spécifique à la harpe,
+@ref{Glissando}.
+
+@item Le @notation{bisbigliando}, qui s'écrit comme un trémolo, 
+@ref{Tremolo repeats}
+
+@item Les harmoniques naturelles sont présentées dans @ref{Harmonics}.
+
+@item For directional arpeggios and non-arpeggios, see @ref{Arpeggio}.
+
+@end itemize
+
+@seealso
+Manuel de notation :
+@ref{Tremolo repeats}
+@ref{Glissando}
+@ref{Arpeggio}
+@ref{Harmonics}
+
+@node Harp pedals
+@unnumberedsubsubsec Harp pedals
+
+@cindex harpe, pédales
+@cindex harpe, diagrammes de pédales
+@cindex pédales de harpe
+@cindex pédales, diagrammes pour harpe
+
+Les harpes comportent sept cordes par octave qui peuvent sonner
+naturel, dièse ou bémol.  Si chacune des cordes de la harpe celtique
+(@emph{lever harp}) est accordée individuellement, celles d'une harpe à
+pédalier ayant la même note de base sont contrôlées par une seule
+pédale.  De gauche à droite, elles correspondent aux notes ré, do, si, 
+et mi, fa, sol, la pour la grande harpe. Les trois premières pédales sont
+réservées au pied gauche, les quatre dernières au pied droit.  Leur
+position peut être indiquée par une marque textuelle : 
+
+@lilypond[quote,verbatim,relative=2]
+\textLengthOn
+cis1_\markup \concat \vcenter { [D \flat C \sharp B|E \sharp F \sharp G A \flat] }
+c!1_\markup \concat \vcenter {[ C \natural ]}
+@end lilypond
+
+ou bien sous forme de diagrammes :
+
+@lilypond[quote,verbatim,relative=2]
+\textLengthOn
+cis1_\markup { \harp-pedal #"^v-|vv-^" }
+c!1_\markup { \harp-pedal #"^o--|vv-^" }
+@end lilypond
+bémol si la pédale est relâchée (ou en haut), bécarre si elle est
+bloquée sur le cran du milieu, et dièse si elle est tout à fait
+enfoncée.  La commande @code{\harp-pedal} prend en argument une chaîne de
+caractères, où @code{^} indique que la pédale est relâchée ou en haut (bémol),
+@code{-} qu'elle est bloquée sur le cran du milieu (bécarre), @code{v}
+qu'elle est tout à fait enfoncée (dièse) et @code{|} représente le
+séparateur (entre gauche et droite de l'instrumentiste). Faire précéder
+un symbole par un @code{o} permet de l'inscrire dans un cercle.
+
+@seealso
+Manuel de notation :
+@ref{Text scripts}
+@ref{Instrument Specific Markup}
+
index 241fe9df81a203f78a70f60ed727389dc171ecba..0acb5e735ebc8ec9e9dd4c3320ca4df666dc5ca1 100644 (file)
@@ -1,26 +1,18 @@
 \input texinfo @c -*- coding: utf-8; mode: texinfo; -*-
 @ignore
-    Translation of GIT committish: 9c6e7a4df574fb28fa9043e585c97a20ca13f10b
+    Translation of GIT committish: 6f84d7b264bf1faa8d9c586bbf06c762ae53183a
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 @documentencoding UTF-8
 @setfilename lilypond-learning.info
-@settitle GNU LilyPond -- manuel d'initiation
+@settitle GNU LilyPond -- Manuel d'initiation
 
 
 @include macros.itexi
 
-@iftex
 @afourpaper
-@c don't replace quotes with directed quotes
-@tex
-\gdef\SETtxicodequoteundirected{Foo}
-\gdef\SETtxicodequotebacktick{Bla}
-@end tex
-@end iftex
-
 
 @c don't remove this comment.
 @ignore
 @end ignore
 
 @c Translators: John Mandereau, Jean-Charles Malahieude
+@c Translation status: post-GDP
+
+@ifnottex
+@node Top
+@top GNU LilyPond --- Manuel d'initiation
+@end ifnottex
+
 
 @ifhtml
-Ce document est également disponible au format
-@uref{source/Documentation/user/lilypond-learning.fr.pdf,PDF}.
+@ifclear bigpage
+Ce document est également disponible au
+@uref{source/Documentation/user/lilypond-learning.fr.pdf,format PDF},
+et en une seule
+@uref{source/Documentation/user/lilypond-learning-big-page.fr.html,grande page}.
+@end ifclear
+@ifset bigpage
+Ce document est également disponible au
+@uref{source/Documentation/user/lilypond-learning.fr.pdf,format PDF},
+et en @uref{source/Documentation/user/lilypond-learning/index.fr.html,pages HTML
+séparées}.
+@end ifset
 @end ifhtml
 
 @c urg, makeinfo 4.9.91 French translation is funky
@@ -58,7 +67,7 @@ Ce document est également disponible au format
 @author L'équipe de développement de LilyPond
 
 
-Copyright @copyright{} 1999--2008 by the authors
+Copyright @copyright{} 1999--2009 par les auteurs
 
 @emph{The translation of the following copyright notice is provided
 for courtesy to non-English speakers, but only the notice in English
@@ -91,7 +100,7 @@ Pour LilyPond version @version{}
 @end titlepage
 
 @copying
-Copyright @copyright{} 1999--2008 par les auteurs
+Copyright @copyright{} 1999--2009 par les auteurs
 
 @emph{The translation of the following copyright notice is provided
 for courtesy to non-English speakers, but only the notice in English
@@ -122,7 +131,7 @@ Free Documentation License''.
 @ifnottex
 Ce fichier documente GNU LilyPond.
 
-Copyright @copyright{} 1999--2008 par les auteurs
+Copyright @copyright{} 1999--2009 par les auteurs
 
 @emph{The translation of the following copyright notice is provided
 for courtesy to non-English speakers, but only the notice in English
@@ -151,9 +160,6 @@ Free Documentation License''.
 @end ifnottex
 
 @ifnottex
-@node Top
-@top GNU LilyPond --- manuel d'initiation
-@c HJJ: Info needs `@top', which is a synonym for `@unnumbered' in TeX.
 
 Ce document constitue le manuel d'initiation à GNU LilyPond
 @version{}.  Pour connaître la place qu'occupe ce manuel dans la
index 2a9c92dd09b922e9c67e8b8233f56472eacc3502..edd4081cc81ac94c404b07eb61042d38759d41a5 100644 (file)
@@ -1,6 +1,6 @@
 \input texinfo @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
 @ignore
-    Translation of GIT committish: 9c6e7a4df574fb28fa9043e585c97a20ca13f10b
+    Translation of GIT committish: 6f84d7b264bf1faa8d9c586bbf06c762ae53183a
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
@@ -8,18 +8,11 @@
 
 @documentencoding UTF-8
 @setfilename lilypond-program.info
-@settitle GNU LilyPond -- utilisation des programmes
+@settitle GNU LilyPond -- Utilisation des programmes
 
 @include macros.itexi
 
-@iftex
 @afourpaper
-@c don't replace quotes with directed quotes
-@tex
-\gdef\SETtxicodequoteundirected{Foo}
-\gdef\SETtxicodequotebacktick{Bla}
-@end tex
-@end iftex
 
 @c don't remove this comment.
 @ignore
 
 @c Translators: John Mandereau, Jean-Charles Malahieude
 
+@ifnottex
+@node Top
+@top GNU LilyPond --- Utilisation des programmes
+@end ifnottex
+
 @ifhtml
-Ce document est également disponible au format
-@uref{source/Documentation/user/lilypond-program.fr.pdf,PDF}.
+@ifclear bigpage
+Ce document est également disponible au
+@uref{source/Documentation/user/lilypond-program.fr.pdf,format PDF},
+et en une seule
+@uref{source/Documentation/user/lilypond-program-big-page.fr.html,grande page}.
+@end ifclear
+@ifset bigpage
+Ce document est également disponible au
+@uref{source/Documentation/user/lilypond-program.fr.pdf,format PDF},
+et en @uref{source/Documentation/user/lilypond-program/index.fr.html,pages HTML
+séparées}.
+@end ifset
 @end ifhtml
 
 @c urg, makeinfo 4.9.91 French translation is funky
@@ -58,7 +66,7 @@ Ce document est également disponible au format
 @author L'équipe de développement de LilyPond
 
 
-Copyright @copyright{} 1999--2008 par les auteurs
+Copyright @copyright{} 1999--2009 par les auteurs
 
 @emph{The translation of the following copyright notice is provided
 for courtesy to non-English speakers, but only the notice in English
@@ -94,7 +102,7 @@ Pour LilyPond version @version{}
 @ifnottex
 Ce fichier documente GNU LilyPond.
 
-Copyright @copyright{} 1999--2008 par les auteurs
+Copyright @copyright{} 1999--2009 par les auteurs
 
 @emph{The translation of the following copyright notice is provided
 for courtesy to non-English speakers, but only the notice in English
@@ -124,9 +132,6 @@ Free Documentation License''.
 
 
 @ifnottex
-@node Top
-@top GNU LilyPond --- utilisation des programmes
-@c HJJ: Info needs `@top', which is a synonym for `@unnumbered' in TeX.
 
 Ce document constitue le manuel d'utilisation des programmes de GNU
 LilyPond @version{}.  Pour connaître le rôle de ce manuel dans la
index 3f907cd5c8b6152865254cefd9dd7f002e37829a..6d20b1f6a7723405cdd893c42c8246c6b2e779c4 100644 (file)
@@ -1,6 +1,6 @@
 \input texinfo @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
 @ignore
-    Translation of GIT committish: 4a527608c5ff2ce31e596495d00dce181dc1b9ea
+    Translation of GIT committish: 6f84d7b264bf1faa8d9c586bbf06c762ae53183a
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
@@ -8,18 +8,11 @@
 
 @documentencoding UTF-8
 @setfilename lilypond.info
-@settitle GNU LilyPond -- manuel de notation
+@settitle GNU LilyPond -- Manuel de notation
 
 @include macros.itexi
 
-@iftex
 @afourpaper
-@c don't replace quotes with directed quotes
-@tex
-\gdef\SETtxicodequoteundirected{Foo}
-\gdef\SETtxicodequotebacktick{Bla}
-@end tex
-@end iftex
 
 @c @direntry has not been added yet, as Emacs and standalone Info have
 @c no i18n support -JM
 
 @c Translators: John Mandereau, Jean-Charles Malahieude
 
+@ifnottex
+@node Top
+@top GNU LilyPond --- Manuel de notation
+@end ifnottex
+
 @ifhtml
-Ce document est également disponible au format
-@uref{source/Documentation/user/lilypond.fr.pdf,PDF}.
+@ifclear bigpage
+Ce document est également disponible au
+@uref{source/Documentation/user/lilypond.fr.pdf,format PDF},
+et en une seule
+@uref{source/Documentation/user/lilypond-big-page.fr.html,grande page}.
+@end ifclear
+@ifset bigpage
+Ce document est également disponible au
+@uref{source/Documentation/user/lilypond.fr.pdf,format PDF},
+et en @uref{source/Documentation/user/lilypond/index.fr.html,pages HTML
+séparées}.
+@end ifset
 @end ifhtml
 
 @c urg, makeinfo 4.9.91 French translation is funky
@@ -61,7 +69,7 @@ Ce document est également disponible au format
 @author L'équipe de développement de LilyPond
 
 
-Copyright @copyright{} 1999--2008 par les auteurs
+Copyright @copyright{} 1999--2009 par les auteurs
 
 @emph{The translation of the following copyright notice is provided
 for courtesy to non-English speakers, but only the notice in English
@@ -97,7 +105,7 @@ Pour LilyPond version @version{}
 @ifnottex
 Ce fichier documente GNU LilyPond.
 
-Copyright @copyright{} 1999--2008 par les auteurs
+Copyright @copyright{} 1999--2009 par les auteurs
 
 @emph{The translation of the following copyright notice is provided
 for courtesy to non-English speakers, but only the notice in English
@@ -127,9 +135,6 @@ Free Documentation License''.
 
 
 @ifnottex
-@node Top
-@top GNU LilyPond --- manuel de notation
-@c HJJ: Info needs `@top', which is a synonym for `@unnumbered' in TeX.
 
 Ce document constitue le manuel de notation de GNU LilyPond
 @version{}.  Pour connaître la place qu'occupe ce manuel dans la
index 6b86871839a63de798f5bcebafb4a93df229308a..4612a52b0b4eefe46dd80183414e805447055a0f 100644 (file)
@@ -6,19 +6,31 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
+
 @include version.itexi
 
+
+@c Don't replace quotes with directed quotes.
+
+@set txicodequoteundirected
+@set txicodequotebacktick
+
+
+
 @c   ***** Displaying text *****
 
-@c we need this since @q{\} doesn't work with makeinfo 4.11 --
-@c say @q{@bs} instead
+@c We need this since @q{\} doesn't work with makeinfo 4.11 --
+@c say @q{@bs{}} instead.
+
 @macro bs
 \\
 @end macro
 
-@c to get decent quotes in `foo' and ``foo''
-@c FIXME: use thin spaces for @qq
+@c To get decent quotes in `foo' and ``foo''.
+@c FIXME: Use thin spaces for @qq.
+
 @ifnotinfo
+
 @macro q{TEXT}
 @quoteleft{}\TEXT\@quoteright{}
 @end macro
 @macro qq{TEXT}
 @guillemetleft{}@tie{}\TEXT\@tie{}@guillemetright{}
 @end macro
+
 @end ifnotinfo
 
 @ifinfo
+
 @macro q{TEXT}
 `\TEXT\'
 @end macro
 @macro qq{TEXT}
 « \TEXT\ »
 @end macro
+
 @end ifinfo
 
 
 @ifhtml
+
 @macro warning{TEXT}
 @cartouche
 @b{Note :} \TEXT\
 @end cartouche
 @end macro
+
 @end ifhtml
 
 @ifnothtml
+
 @macro warning{TEXT}
 @quotation
 @quotation
 @end quotation
 @end quotation
 @end macro
+
 @end ifnothtml
 
+
 @ifnotinfo
+
 @macro notation{TEXT}
 @var{\TEXT\}
 @end macro
+
 @end ifnotinfo
 
 @ifinfo
+
 @macro notation{TEXT}
 \TEXT\
 @end macro
+
 @end ifinfo
 
+
 @macro smallspace
 @sp 1
 @end macro
 
 
-@c   **** Displaying images not generated by lilypond-book
 
-@c current installation setup of Info docs requires that all images are
-@c expected to be found in lilypond/ subdirectory.  lilypond-book already
-@c generates proper @image commands for images of music; these macros
-@c definitions do the same for other images.
+@c   ***** Displaying images not generated by lilypond-book *****
+
+@c Current installation setup of Info docs requires that all images are
+@c expected to be found in the `lilypond/' subdirectory.  `lilypond-book'
+@c already generates proper @image commands for images of music; these
+@c macro definitions do the same for other images.
 
 @ifnotinfo
+
 @macro sourceimage{FILENAME,WIDTH,HEIGHT,ALTTEXT}
 @image{\FILENAME\,\WIDTH\,\HEIGHT\,\ALTTEXT\}
 @end macro
+
 @end ifnotinfo
 
 @ifinfo
+
 @macro sourceimage{FILENAME,WIDTH,HEIGHT,ALTTEXT}
 @image{lilypond/\FILENAME\,\WIDTH\,\HEIGHT\,\ALTTEXT\}
 @end macro
+
 @end ifinfo
 
 
 
-@c   **** Headings in a doc subsection ****
+@c   ***** Headings in a doc subsection *****
+
+@c Don't insert an empty line after @predefined!  Right now
+@c it doesn't matter, but a future implementation will probably
+@c add some code which needs this restriction.
 
 @macro predefined
 @noindent
 @subsubheading Predefined commands
+@end macro
+
+@c The next macro is a dummy currently since texinfo doesn't
+@c provide a real ragged-right environment yet.
+@c
+@c Due to a bug in texi2html (texi2html.pl CVS versions <= 1.245)
+@c the macro must not be empty.
 
+@macro endpredefined
+@c
 @end macro
 
+
 @macro snippets
 @noindent
 @subsubheading Selected Snippets
-
 @end macro
 
+
 @c obsolete, remove when translation is fully updated
 @macro commonprop
 @noindent
 @subsubheading Commonly tweaked properties
-
 @end macro
 
+
+@c Don't insert an empty line after @seealso!  Otherwise we get
+@c unwanted extra vertical space in the PDF output.
+
 @macro seealso
 @noindent
 @subsubheading See also
-
+@indent
 @end macro
 
+
 @macro knownissues
 @noindent
 @subsubheading Known issues and warnings
-
 @end macro
 
+
 @macro lydoctitle {TEXT}
 @emph{\TEXT\}
-
 @end macro
 
+
+@c Don't remove the `@c' within the macro definition!  See section 19.3,
+@c `Macro Details and Caveats', in the texinfo info file for explanation.
+
 @macro funindex {TEXT}
 @findex \TEXT\
 @kindex \TEXT\
+@c
 @end macro
 
 
 
-@c   **** Links and references ****
+@c   ***** Links and references *****
 
 @c  Definitions for references:
+@c
 @c     @rglos
 @c     @rlearning
 @c     @ruser
 @c     @rprogram
 @c     @rlsr
 @c     @rinternals
-@c  all these also have a @...named version, which allows to specify the
-@c  displayed text for the reference as second argument
+@c
+@c  All these also have a @...named version which allows to specify the
+@c  displayed text for the reference as second argument.
+@c
+@c ***** HTML + bigpage is a special case (other manual names); all other
+@c formats are treated similarly.
 
 
-@c ***** HTML + bigpage is a special case (other manual names), all other
-@c formats are treated similarly
+@c *** not TeX ***
 
 @ifnottex
 
+@c ** bigpage **
+
 @ifset bigpage
 
 @macro rglos{TEXT}
 @end ifset
 
 
+@c ** not bigpage **
+
 @ifclear bigpage
 
 @macro rglos{TEXT}
 @end ifnottex
 
 
-@c **** TEX ****
+@c *** TeX ***
+
 @iftex
 
+@c All commands below should work in the middle of the line;
+@c we thus must not use @vindex directly since it works only if placed
+@c on a line of its own.  To overcome this problem, we define a
+@c replacement macro using the internal definition of @vindex which
+@c delimits arguments in the standard way (i.e., with braces).
+
+@tex
+\gdef\lilyvindex#1{\doind{vr}{\code #1}\ignorespaces}
+@end tex
+
 @macro rglos{TEXT}
-@vindex \TEXT\
+@lilyvindex{\TEXT\}
 @ref{\TEXT\,,,music-glossary,Glossaire}
 @end macro
 
 @macro rglosnamed{TEXT,DISPLAY}
-@vindex \TEXT\
+@lilyvindex{\TEXT\}
 @ref{\TEXT\,,\DISPLAY\,music-glossary,Glossaire}
 @end macro
 
 @macro rlearning{TEXT}
-@vindex \TEXT\
+@lilyvindex{\TEXT\}
 @ref{\TEXT\,,,lilypond-learning.fr,Manuel d'initiation}
 @end macro
 
 @macro rlearningnamed{TEXT,DISPLAY}
-@vindex \TEXT\
+@lilyvindex{\TEXT\}
 @ref{\TEXT\,,\DISPLAY\,lilypond-learning.fr,Manuel d'initiation}
 @end macro
 
 @macro ruser{TEXT}
-@vindex \TEXT\
+@lilyvindex{\TEXT\}
 @ref{\TEXT\,,,lilypond.fr,Manuel de notation}
 @end macro
 
 @macro rusernamed{TEXT,DISPLAY}
-@vindex \TEXT\
+@lilyvindex{\TEXT\}
 @ref{\TEXT\,,\DISPLAY\,lilypond.fr,Manuel de notation}
 @end macro
 
 @macro rprogram{TEXT}
-@vindex \TEXT\
+@lilyvindex{\TEXT\}
 @ref{\TEXT\,,,lilypond-program.fr,Manuel d'utilisation du programme}
 @end macro
 
 @macro rprogramnamed{TEXT,DISPLAY}
-@vindex \TEXT\
+@lilyvindex{\TEXT\}
 @ref{\TEXT\,,\DISPLAY\,lilypond-program.fr,Manuel d'utilisation du programme}
 @end macro
 
 @macro rlsr{TEXT}
+@lilyvindex{\TEXT\}
 @ref{\TEXT\,,,lilypond-snippets,Exemples de code}
 @end macro
 
 @macro rlsrnamed{TEXT,DISPLAY}
+@lilyvindex{\TEXT\}
 @ref{\TEXT\,,\DISPLAY\,lilypond-snippets,Exemples de code}
 @end macro
 
 @macro rinternals{TEXT}
-@vindex \TEXT\
+@lilyvindex{\TEXT\}
 @ref{\TEXT\,,,lilypond-internals,Référence des propriétés internes}
 @end macro
 
 @macro rinternalsnamed{TEXT,DISPLAY}
-@vindex \TEXT\
+@lilyvindex{\TEXT\}
 @ref{\TEXT\,,,lilypond-internals,Référence des propriétés internes}
 @end macro
 
 @end iftex
 
 
-@c **** Macros specific to translated docs ****
+
+@c   ***** Macros specific to translated docs *****
 
 @c ugh, cannot set/define global variable 'translationof' in some way?
+
 @iftex
+
 @macro translationof{TEXT}
 @end macro
+
 @end iftex
 
 @ifinfo
-@macro
+
 @macro translationof{TEXT}
 @set translationof \TEXT\
 @end macro
+
 @end ifinfo
 
-@c TODO when @translationof is used in translated docs
-@c see if it's feasible to say @value{translationof}
+
+@c TODO: If @translationof is used in translated docs
+@c see whether it is feasible to say @value{translationof}.
+
 @macro englishref
 Cette section n'est pas encore encore traduite, veuillez
 vous reporter à la documentation correspondante en anglais.
 @end macro
 
+
 @ifhtml
+
+@ifset bigpage
+@macro untranslated
+@end macro
+@end ifset
+
+@ifclear bigpage
 @macro untranslated
 UNTRANSLATED NODE: IGNORE ME
 @end macro
+@end ifclear
+
 @end ifhtml
 
 @ifnothtml
+
 @macro untranslated
 @end macro
+
 @end ifnothtml
index e1a0aec499071c1a77a071afa8a84cbd69095f8f..be3d9adb1e7308ecbe152b6bacb8535de33e6bb4 100644 (file)
@@ -1,13 +1,13 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
 @c This file is part of lilypond.tely
 @ignore
-    Translation of GIT committish: d582eed083d91248d0424a79bdc6fdcdb24dc0b8
+    Translation of GIT committish: 3f880f886831b8c72c9e944b3872458c30c6c839
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @c Translators: Frédéric Chiasson, Jean-Charles Malahieude
 
@@ -34,6 +34,8 @@ and just before
 
 @menu
 * Chord name chart::
+* Common chord modifiers::
+* Predefined fretboard diagrams::
 * MIDI instruments::
 * List of colors::
 * The Feta font::
@@ -41,6 +43,7 @@ and just before
 * Text markup commands::
 * Text markup list commands::
 * List of articulations::       
+* Percussion notes::
 * All context properties::      
 * Layout properties::           
 * Identifiers::                 
@@ -52,6 +55,16 @@ and just before
 
 @untranslated
 
+@node Common chord modifiers
+@appendixsec Common chord modifiers
+
+@untranslated
+
+@node Predefined fretboard diagrams
+@appendixsec Predefined fretboard diagrams
+
+@untranslated
+
 @node MIDI instruments
 @appendixsec MIDI instruments
 
@@ -79,7 +92,7 @@ and just before
 @untranslated
 
 @ignore
-Vous pouvez utiliser les commandes suivantes au sein d'un bloc
+Les commandes suivantes peuvent être utilisées dans un bloc
 @code{\markup @{ @}}.
 @end ignore
 
@@ -87,7 +100,8 @@ Vous pouvez utiliser les commandes suivantes au sein d'un bloc
 
 
 @ignore
-Vous pouvez utiliser les commandes suivantes avec @code{\markuplines}.
+Les commandes suivantes peuvent être utilisées dans un
+bloc @code{\markuplines @{ @}}.
 @end ignore
 
 @include markup-list-commands.tely
@@ -128,6 +142,11 @@ Voici la liste exhaustive des symboles :
 @lilypondfile[ragged-right,quote]{script-chart.ly}
 
 
+@node Percussion notes
+@appendixsec Percussion notes
+
+@lilypondfile[quote]{percussion-chart.ly}
+
 @node All context properties
 @appendixsec All context properties
 
index 5e166509218661ed7b5b7861d3c11cf08ab5036d..6cb983e447c36beb564cfe1d3f3ec02d3b59ee02 100644 (file)
@@ -1,12 +1,12 @@
 @c -*- coding: utf-8; mode: texinfo; -*-
 @ignore
-    Translation of GIT committish: 4a527608c5ff2ce31e596495d00dce181dc1b9ea
+    Translation of GIT committish: 6f84d7b264bf1faa8d9c586bbf06c762ae53183a
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @node Musical notation
 @chapter Musical notation
index b6a3bae7a5adacdcf3dac9d8636c15d75a623f88..4e3d1220ae7216bb078b1d8d31d1857f1a529e26 100644 (file)
@@ -7,7 +7,7 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.62"
+@c \version "2.12.0"
 
 @c Translators: Valentin Villenave
 @c Translation checkers: Jean-Charles Malahieude, John Mandereau
@@ -65,12 +65,11 @@ Ces noms sont inventoriés dans le fichier d'initialisation
 @file{ly/@/drumpitch@/-init@/.ly}.
 @c TODO: properly document this.
 
-@seealso
 
+@seealso
 Référence du Programme : @rinternals{note-event}.
 
 
-
 @node Percussion staves
 @unnumberedsubsubsec Percussion staves
 
@@ -280,11 +279,11 @@ down = \drummode { bd4 sn bd toml8 toml }
 
 
 @seealso
-
 Fichier d'initialisation : @file{ly/@/drumpitch@/-init@/.ly}.
 
 Référence du programme : @rinternals{DrumStaff}, @rinternals{DrumVoice}.
 
+
 @knownissues
 
 La bibliothèque MIDI générale ne contient pas les @emph{rimshots} --- coups
index 34b54b88daae79e504e29ce528df1960a88355c4..52227dd13a2d68ed3393252b57e87101cb7609c1 100644 (file)
@@ -1,12 +1,12 @@
 @c -*- coding: utf-8; mode: texinfo; -*-
 @ignore
-    Translation of GIT committish: 33ba8d40c3493011a4b39ab8b1369701f8013bd6
+    Translation of GIT committish: a6b100669bfc3847b3a03029d6a46ee9b1609e73
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @c Translators: Frédéric Chiasson
 @c Translation checkers: Valentin Villenave, Jean-Charles Malahieude
@@ -53,7 +53,7 @@ fichier source au clavier de l'ordinateur.
 @cindex octaves absolues
 
 La hauteur s'écrit --- à moins de préciser une autre langue --- avec la
-notation anglaise, en utilisant les lettres @code{a} à @code{g}.
+notation batave, en utilisant les lettres @code{a} à @code{g}.
 Une gamme ascendante de do majeur s'écrit
 
 @lilypond[quote,fragment,verbatim,ragged-right]
@@ -105,7 +105,7 @@ reste de la pièce à une mauvaise octave.
 
 
 @example
-\relative @var{startpitch} @var{musicexpr}
+\relative @var{hauteur_de_référence} @var{musicexpr}
 @end example
 
 @noindent
@@ -260,7 +260,6 @@ cis cis cis! cis? c c? c! c
 
 
 @seealso
-
 Référence du programme : @rinternals{LedgerLineSpanner},
 @rinternals{NoteHead}.
 
@@ -437,7 +436,7 @@ majeur avec
 @end example
 
 Regardons maintenant une partie écrite pour violon --- un instrument en
-ut).  Si cette partie doit être jouée par une clarinette en la (écrite à
+ut.  Si cette partie doit être jouée par une clarinette en la (écrite à
 la tierce mineure supérieure, un do écrit donnant un la réel), la
 transposition suivante créera la partie appropriée.
 
@@ -462,9 +461,10 @@ mus = { \key d \major cis d fis g }
 
 On peut aussi utiliser @code{\transpose} pour entrer des notes écrites
 pour un instrument transpositeur.  Normalement, les hauteurs dans
-LilyPond sont écrites en ut, i.e. en sons réels, mais elles peuvent être
-écrites dans un autre ton.  Quand, par exemple, on écrit pour une
-trompette en si bémol, commençant sur ré note réelle, on pourrait écrire
+LilyPond sont écrites en ut, c'est à dire en sons réels, mais elles
+peuvent être écrites dans un autre ton.  Quand, par exemple, on écrit
+pour une trompette en si bémol, commençant sur ré note réelle, on
+pourrait écrire 
 @example
 \transpose c bes @{ e4 @dots{} @}
 @end example
@@ -479,7 +479,6 @@ réelles, on utilisera un deuxième @code{transpose}
 
 
 @seealso
-
 Référence du programme : @rinternals{TransposedMusic}.
 
 Exemples : @rlsr{Pitches}.
@@ -582,7 +581,6 @@ apparaître des possibilités de réglage manuel de ces propriétés.
 
 
 @seealso
-
 Dans ce manuel : @ref{Grace notes}.
 
 Référence du programme : @rinternals{Clef}.
@@ -601,7 +599,7 @@ c'est-à-dire au début de la portée.
 On définit ou modifie l'armure avec la commande @code{\key}
 
 @example
-@code{\key} @var{hauteur} @var{type}
+@code{\key} @var{hauteur} @var{mode}
 @end example
 
 @funindex \minor
@@ -616,8 +614,8 @@ On définit ou modifie l'armure avec la commande @code{\key}
 @funindex \dorian
 @cindex modes anciens
 
-Ici, @var{type} doit être @code{\major} ou @code{\minor} afin d'avoir
-respectivement @var{hauteur}-major ou @var{hauteur}-minor.  Vous pouvez
+Ici, @var{mode} doit être @code{\major} ou @code{\minor} afin d'avoir
+respectivement @var{hauteur}-majeur ou @var{hauteur}-mineur.  Vous pouvez
 aussi avoir recours aux modes anciens que sont @code{\ionian},
 @code{\locrian}, @code{\aeolian}, @code{\mixolydian}, @code{\lydian},
 @code{\phrygian}, et @code{\dorian}.
@@ -658,7 +656,6 @@ a bes c d
 
 
 @seealso
-
 Référence du programme : @rinternals{KeyCancellation},
 @rinternals{KeySignature}.
 
@@ -702,7 +699,6 @@ d'octaviation en définissant @code{ottavation} après avoir fait appel
 
 
 @seealso
-
 Référence du programme : @rinternals{OttavaBracket}.
 
 
@@ -785,7 +781,7 @@ s'impriment les altérations.  Elle s'invoque de la manière suivante :
 @c -the default contexts as specified in
 @c  scm/music-function.scm seem to be different -vv
 
-Cette fonction prend pour argument le nom de la règle d'altérations,
+Cette fonction prend pour argument le nom de la règle d'altération,
 auquel peut s'ajouter, comme argument facultatif, le contexte
 devant être affecté :
 
@@ -797,13 +793,13 @@ Si aucun contexte n'est spécifié, le contexte @code{Staff} sera affecté ;
 cependant on peut souhaiter l'appliquer au contexte @code{Voice} en lieu 
 et place.
 
-Les régles d'altérations suivantes sont possibles :
+Les régles d'altération suivantes sont possibles :
 
 @table @code
 @item default
 C'est la règle d'impression par défaut, qui se rapporte à l'usage 
-en vigueur au XVIIIème siècle : les altérations accidentelles sont valables toute
-une mesure, et uniquement à leur propre octave.
+en vigueur au XVIIIème siècle : les altérations accidentelles sont
+valables tout une mesure, et uniquement à leur propre octave.
 
 
 @lilypond[quote,ragged-right]
@@ -829,8 +825,8 @@ musicB = { \clef bass  \new Voice { \voiceTwo \relative { < fis, a cis>4
 
 @item voice
 En principe, LilyPond se souvient de toutes les altérations présentes sur la
-portée (contexte Staff).  Avec cette règle, cependant, les altérations sont indépendantes
-pour chacune des voix. 
+portée (contexte Staff).  Avec cette règle, cependant, les altérations
+sont indépendantes pour chacune des voix. 
 
 
 @example
@@ -865,18 +861,20 @@ musicB = { \clef bass  \new Voice { \voiceTwo \relative { < fis, a cis>4
 }
 @end lilypond
 
-La règle @code{voice} n'est à envisager que dans le cas de voix devant être lues par
-des musiciens différents.  S'il s'agit d'un @q{conducteur}, ou d'une portée destinée
-à un seul musicien, il vaut mieux utiliser @code{modern} ou @code{modern-cautionary}.
+La règle @code{voice} n'est à envisager que dans le cas de voix devant
+être lues par des musiciens différents.  S'il s'agit d'un
+@qq{conducteur}, ou d'une portée destinée à un seul musicien, il vaut
+mieux utiliser @code{modern} ou @code{modern-cautionary}. 
 
 
 @item modern
 @funindex modern style accidentals
-Cette règle est la plus courante au XXème siècle.  Les altérations accidentelles
-sont imprimées comme avec le style @code{default}, mais lorsqu'une note non-altérée
-apparaît à une octave différente, ou bien dans la mesure suivante, des bécarres de précaution
-sont ajoutés.  Dans l'exemple suivant, notez ainsi les deux bécarres dans la
-deuxième mesure de la main droite.
+Cette règle est la plus courante au XXème siècle.  Les altérations
+accidentelles sont imprimées comme avec le style @code{default}, mais
+lorsqu'une note non-altérée apparaît à une octave différente, ou bien
+dans la mesure suivante, des bécarres de précaution sont ajoutés.  Dans
+l'exemple suivant, notez ainsi les deux bécarres dans la deuxième mesure
+de la main droite. 
 
 @lilypond[quote,ragged-right]
 musicA = {  << \relative {  cis'8 fis, d'4 <a cis>8 f bis4 | cis2. <c, g'>4 | } \\
@@ -901,10 +899,11 @@ musicB = { \clef bass  \new Voice { \voiceTwo \relative { < fis, a cis>4
 
 @item @code{modern-cautionary}
 @funindex modern-cautionary
-Cette règle est équivalente à @code{modern}, mais les bécarres de précaution sont
-imprimés de façon particulière : soit plus petits, soit (par défaut) entre parenthèses.
-Il est possible de le définir au moyen de la propriété @code{cautionary-style}
-pour l'objet @rinternals{AccidentalSuggestion}.
+Cette règle est équivalente à @code{modern}, mais les bécarres de
+précaution sont imprimés de façon particulière : soit plus petits, soit
+(par défaut) entre parenthèses.  Il est possible de le définir au moyen
+de la propriété @code{cautionary-style} pour l'objet
+@rinternals{AccidentalSuggestion}. 
 
 @lilypond[quote,ragged-right]
 musicA = {  << \relative {  cis'8 fis, d'4 <a cis>8 f bis4 | cis2. <c, g'>4 | } \\
@@ -930,9 +929,10 @@ musicB = { \clef bass  \new Voice { \voiceTwo \relative { < fis, a cis>4
 @funindex modern-voice
 @item modern-voice
 Cette règle sert aux altérations dans de la musique polyphonique destinée
-autant à des musiciens différents qu'à quelqu'un qui lirait l'ensemble des voix.
-Les altérations sont imprimées voix par voix, mais les autres voix, dans le même 
-contexte @rinternals{Staff}, en @emph{tiennent compte} cette fois.
+autant à des musiciens différents qu'à quelqu'un qui lirait l'ensemble
+des voix.  Les altérations sont imprimées voix par voix, mais les autres
+voix, dans le même contexte @rinternals{Staff}, en @emph{tiennent
+compte} cette fois. 
 
 @lilypond[quote,ragged-right]
 musicA = {  << \relative {  cis'8 fis, d'4 <a cis>8 f bis4 | cis2. <c, g'>4 | } \\
@@ -957,7 +957,7 @@ musicB = { \clef bass  \new Voice { \voiceTwo \relative { < fis, a cis>4
 
 @funindex modern-voice-cautionary
 @item modern-voice-cautionary
-Cette régle est similaire à la précédente, mais les altérations de précautions
+Cette régle est similaire à la précédente, mais les altérations de précaution
 (celles que n'aurait pas ajoutées @code{voice}), sont imprimées de façon
 particulière.  On retrouve donc toutes les altérations qu'imprimerait
 @code{default}, mais certaines sont considérées comme étant @qq{de précaution}.
@@ -985,8 +985,9 @@ musicB = { \clef bass  \new Voice { \voiceTwo \relative { < fis, a cis>4
 
 @item piano
 @funindex piano accidentals
-Cette règle est adaptée aux contextes GrandStaff -- ce qui n'empêche pas de devoir la spécifier 
-pour chaque portée individuelle au sein du contexte GrandStaff.
+Cette règle est adaptée aux contextes GrandStaff -- ce qui n'empêche pas
+de devoir la spécifier pour chaque portée individuelle au sein du
+contexte GrandStaff. 
 
 @example
 \new GrandStaff @{ <<
@@ -1001,10 +1002,10 @@ pour chaque portée individuelle au sein du contexte GrandStaff.
 >> @}
 @end example
 
-Cette règle est communément employée pour les partitions de piano au XXème siècle.
-Très similaire à @code{modern} de par son comportement, elle s'en distingue en ce que
-les altérations tiennent compte des autre portées du contexte @rinternals{GrandStaff} ou
-@rinternals{PianoStaff}.
+Cette règle est communément employée pour les partitions de piano au
+XXème siècle.  Très similaire à @code{modern} de par son comportement,
+elle s'en distingue en ce que les altérations tiennent compte des autre
+portées du contexte @rinternals{GrandStaff} ou @rinternals{PianoStaff}.
 
 @lilypond[quote,ragged-right]
 musicA = {  << \relative {  cis'8 fis, d'4 <a cis>8 f bis4 | cis2. <c, g'>4 | } \\
@@ -1029,8 +1030,8 @@ musicB = { \clef bass  \new Voice { \voiceTwo \relative { < fis, a cis>4
 
 @item piano-cautionary
 @funindex #(set-accidental-style 'piano-cautionary)
-Identique à @code{#(set-accidental-style 'piano)}, mais les altérations de précaution
-sont imprimées différemment.
+Identique à @code{#(set-accidental-style 'piano)}, mais les altérations
+de précaution sont imprimées différemment.
 
 @lilypond[quote,ragged-right]
 musicA = {  << \relative {  cis'8 fis, d'4 <a cis>8 f bis4 | cis2. <c, g'>4 | } \\
@@ -1055,8 +1056,8 @@ musicB = { \clef bass  \new Voice { \voiceTwo \relative { < fis, a cis>4
 
 @item no-reset
 @funindex no-reset accidental style
-C'est la même règle que @code{default}, mais l'effet des altérations accidentelles
-ne cesse jamais, même dans les mesures suivantes.
+C'est la même règle que @code{default}, mais l'effet des altérations
+accidentelles ne cesse jamais, même dans les mesures suivantes.
 @lilypond[quote,ragged-right]
 musicA = {  << \relative {  cis'8 fis, d'4 <a cis>8 f bis4 | cis2. <c, g'>4 | } \\
        \relative { ais'2 cis, | fis8 b a4 cis2 | } >> }
@@ -1079,9 +1080,9 @@ musicB = { \clef bass  \new Voice { \voiceTwo \relative { < fis, a cis>4
 @end lilypond
 
 @item forget
-Tout le contraire de @code{no-reset}: l'effet des altérations cesse aussitôt,
-et de ce fait, toutes les altérations, quelque soit leur place dans la mesure, sont
-imprimées, en fonction de l'éventuelle armure.
+Tout le contraire de @code{no-reset} : l'effet des altérations cesse aussitôt,
+et de ce fait, toutes les altérations, quelque soit leur place dans la
+mesure, sont imprimées en fonction de l'éventuelle armure.
 
 @lilypond[quote,ragged-right]
 musicA = {  << \relative {  cis'8 fis, d'4 <a cis>8 f bis4 | cis2. <c, g'>4 | } \\
@@ -1107,20 +1108,21 @@ musicB = { \clef bass  \new Voice { \voiceTwo \relative { < fis, a cis>4
 
 
 @seealso
-
 Référence du programme : @rinternals{Accidental_engraver},
-@rinternals{Accidental}, @rinternals{AccidentalSuggestion} et @rinternals{AccidentalPlacement}.
+@rinternals{Accidental}, @rinternals{AccidentalSuggestion} et
+@rinternals{AccidentalPlacement}. 
 
 
 @knownissues
 
 Les notes simultanées sont considérées comme des évènements séquentiels.
 Ce qui implique que, dans un accord, les altérations accidentelles seront 
-imprimées comme si les notes de l'accords apparaissaient une par une, en fonction
-de l'ordre dans lequels elles ont été saisies -- ce qui peut poser problème lorsqu'au
-sein d'un accord certaines altérations dépendent les unes des autres.
-Ce problème est à résoudre manuellement, en insérant des @code{!} et des @code{?} après les notes
-concernées.
+imprimées comme si les notes de l'accord apparaissaient une par une, en
+fonction de l'ordre dans lequels elles ont été saisies -- ce qui peut
+poser problème lorsqu'au sein d'un accord certaines altérations
+dépendent les unes des autres.  
+Ce problème est à résoudre manuellement, en insérant des @code{!} et des
+@code{?} après les notes concernées.
 
 
 @node Ambitus
@@ -1129,13 +1131,13 @@ concernées.
 
 L'@emph{ambitus} est l'amplitude des hauteurs d'une voix donnée dans une
 partition.  Ce terme peut aussi désigner la tessiture qu'un instrument
-est capable d'atteindre.  Souvent, cet ambitus est imprimé au début des
+est capable d'atteindre.  Souvent, cet @emph{ambitus} est imprimé au début des
 partitions vocales, afin que les exécutants puissent voir au premier
-coup d'oeil s'ils sont en mesure de tenir la partie en question.
+coup d'œil s'ils sont en mesure de tenir la partie en question.
 
-Pour exprimer l'ambitus d'une pièce, on indique avant la clé deux notes
+Pour exprimer l'@emph{ambitus} d'une pièce, on indique avant la clé deux notes
 représentant la hauteur la plus basse et la plus haute.  Pour imprimer
-cet ambitus, il faut ajouter le graveur @rinternals{Ambitus_engraver}
+cet @emph{ambitus}, il faut ajouter le graveur @rinternals{Ambitus_engraver}
 au contexte @rinternals{Voice}.  Ainsi,
 
 @example
@@ -1148,7 +1150,7 @@ au contexte @rinternals{Voice}.  Ainsi,
 @end example
 
 @noindent
-donne pour résultat
+aura pour résultat
 
 @lilypond[quote,ragged-right]
 \layout {
@@ -1203,18 +1205,19 @@ Ce réglage déplace l'ambitus vers la gauche.  Le même résultat aurait pu
 forme n'aurait pas attribué d'espace supplémentaire pour l'objet
 déplacé.
 
-@seealso
 
+@seealso
 Référence du programme : @rinternals{Ambitus},
 @rinternals{AmbitusLine}, @rinternals{AmbitusNoteHead},
 @rinternals{AmbitusAccidental}.
 
 Exemples : @rlsr{Pitches}, @rlsr{Vocal music}.
 
+
 @knownissues
 
-LilyPond ne gère pas les collisions entre plusieurs ambitus présents sur
-une même portée.
+LilyPond ne gère pas les collisions entre plusieurs @emph{ambitus}
+présents sur une même portée.
 
 
 @node Note heads
@@ -1233,7 +1236,7 @@ une même portée.
 @cindex têtes de note, spéciales
 
 Certains instruments utilisent des têtes de note différentes à des
-fins spécifiques --- des croix pour le @q{parlato} des chanteurs ou les
+fins spécifiques --- des croix pour le @emph{parlato} des chanteurs ou les
 notes étouffées des guitares ; des losanges pour les harmoniques des
 cordes.  Il existe un raccourci (@code{\harmonic}) pour les notes en
 losange ; pour les autres styles de tête, il vous faudra jouer avec la
@@ -1253,7 +1256,6 @@ Pour une liste exhaustive des styles de tête de note, consultez
 
 
 @seealso
-
 Référence du programme : @rinternals{NoteHead}.
 
 
@@ -1264,7 +1266,7 @@ Référence du programme : @rinternals{NoteHead}.
 @cindex notation facile
 @cindex Hal Leonard
 
-Les notes @q{easy play} comportent le nom de la note à l'intérieur de
+Les notes @qq{easy play} comportent le nom de la note à l'intérieur de
 la tête.  On l'utilise dans des partitions pour débutants.
 
 @lilypond[quote,ragged-right,verbatim,fragment,staffsize=26]
@@ -1277,10 +1279,11 @@ La commande @code{\easyHeadsOn} remplace tous les réglages de l'objet
 taille, afin que les lettres soient lisibles.  Voir à ce propos
 @ref{Setting the staff size}.
 
-@predefined
 
+@predefined
 @funindex \easyHeadsOn
-@code{\easyHeadsOn}
+@code{\easyHeadsOn}.
+@endpredefined
 
 
 @node Shape note heads
index 6d971b81f59ff29b5cc2a3366a1def0be718441d..fa3c3e5d73c5ab61583fd49723732f8c59968261 100644 (file)
@@ -7,10 +7,10 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @c Translators: Valentin Villenave
-@c Translation checkers: Ludovic Sardain
+@c Translation checkers: Ludovic Sardain, Damien Heurtebise
 
 @node Preface
 @unnumbered Preface
@@ -36,18 +36,17 @@ gammes, les études deviennent vite ennuyeuses, et peuvent, si l'on
 n'est pas encouragé par d'autres --- professeurs, chefs ou public ---
 en décourager plus d'un.  Pourtant, pour peu que l'on persévère,
 l'instrument devient progressivement une partie de notre vie.  Si
-certains jours en jouer semble naturel, c'est un vrai bonheur.  Et si
-d'autres jours on ne peut tout simplement rien en tirer, on continue
-quand même à travailler, jour après jour.
+certains jours il semble naturel d'en jouer, c'est un vrai bonheur.
+Et si d'autres jours on ne peut tout simplement rien en tirer, on
+continue quand même à travailler, coûte que coûte.
 
 De même, développer LilyPond peut être une tâche harassante.  Certains
 jours, c'est un monceau de bugs duquel il faut se dépêtrer.  Pourtant,
-il fait maintenant partie de notre vie, et nous nous accrochons. 
-Notre principale motivation est sans doute que notre logiciel est
-véritablement utile aux gens.  En flânant sur Internet, nous trouvons
-beaucoup de gens qui se servent de LilyPond, et réalisent des
-partitions très impressionnantes : c'est incroyable, mais en même
-temps très flatteur.
+il fait maintenant partie de notre vie, et nous nous accrochons.
+Notre principale motivation vient sans doute de l'utilité réelle de
+notre logiciel.  En flânant sur Internet, nous trouvons beaucoup de
+gens qui utilisent LilyPond pour réaliser d'impressionnantes
+partitions : c'est incroyable, mais en même temps très flatteur.
 
 Les utilisateurs ne se contentent pas de nous encourager en utilisant
 notre logiciel ; nombre d'entre eux nous aident aussi en faisant des
index 32b672bdd28a47704c695976457170936bca426c..c11bfb424456ac0ae607f050fd1206351a420590 100644 (file)
@@ -1,12 +1,17 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
 @c This file is part of lilypond.tely
 @ignore
-    Translation of GIT committish: 4a527608c5ff2ce31e596495d00dce181dc1b9ea
+    Translation of GIT committish: 76de7e168dbc9ffc7671d99663c5ce50dae42abb
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
+@c \version "2.12.0"
+
+@c Translators: Valentin Villenave
+@c Translation checkers: Gilles Thibault
+
 
 @node Interfaces for programmers
 @chapter Interfaces for programmers
 
 
 @menu
-* Music functions::             
-* Programmer interfaces::       
-* Building complicated functions::  
-* Markup programmer interface::  
-* Contexts for programmers::    
-* Scheme procedures as properties::  
+* Music functions::
+* Programmer interfaces::
+* Building complicated functions::
+* Markup programmer interface::
+* Contexts for programmers::
+* Scheme procedures as properties::
+* Using Scheme code instead of tweak::
+* Difficult tweaks::
 @end menu
 
 @node Music functions
 
 
 @menu
-* Overview of music functions::  
-* Simple substitution functions::  
-* Paired substitution functions::  
-* Mathematics in functions::    
-* Void functions::              
-* Functions without arguments::  
-* Overview of available music functions::  
+* Overview of music functions::
+* Simple substitution functions::
+* Paired substitution functions::
+* Mathematics in functions::
+* Void functions::
+* Functions without arguments::
+* Overview of available music functions::
 @end menu
 
 @node Overview of music functions
@@ -89,8 +96,8 @@
 
 
 @menu
-* Input variables and Scheme::  
-* Internal music representation::  
+* Input variables and Scheme::
+* Internal music representation::
 @end menu
 
 @node Input variables and Scheme
 
 
 @menu
-* Displaying music expressions::  
-* Music properties::            
-* Doubling a note with slurs (example)::  
-* Adding articulation to notes (example)::  
+* Displaying music expressions::
+* Music properties::
+* Doubling a note with slurs (example)::
+* Adding articulation to notes (example)::
 @end menu
 
 @node Displaying music expressions
 
 
 @menu
-* Markup construction in Scheme::  
-* How markups work internally::  
-* New markup command definition::  
-* New markup list command definition::  
+* Markup construction in Scheme::
+* How markups work internally::
+* New markup command definition::
+* New markup list command definition::
 @end menu
 
 @node Markup construction in Scheme
 
 
 @menu
-* Context evaluation::          
-* Running a function on all layout objects::  
+* Context evaluation::
+* Running a function on all layout objects::
 @end menu
 
 @node Context evaluation
 
 @untranslated
 
-@c -- SKELETON FILE --
+
+@menu
+* Using Scheme code instead of tweak::
+* Difficult tweaks::
+@end menu
+
+@node Using Scheme code instead of tweak
+@section Using Scheme code instead of @code{\tweak}
+
+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
+
+\relative c'' @{
+  c4^\F c4_\F
+@}
+@end example
+
+@noindent
+En d'autres termes, @code{\tweak} ne se comporte pas comme une articulation :
+il ne peut notamment pas être accolé avec les symboles @samp{^} ou @samp{_}.
+
+C'est en se servant du langage Scheme que l'on peut résoudre ce problème.
+Dans cet exemple, on a recours aux méthodes décrites dans @ref{Adding
+articulation to notes (example)}, en particulier quant à l'emploi de
+@code{\displayMusic}.
+
+@example
+F = #(let ((m (make-music 'ArticulationEvent
+                          'articulation-type "flageolet")))
+       (set! (ly:music-property m 'tweaks)
+             (acons 'font-size -3
+                    (ly:music-property m 'tweaks)))
+       m)
+
+\relative c'' @{
+  c4^\F c4_\F
+@}
+@end example
+
+@noindent
+Ici les propriétés @code{tweak} de l'objet flageolet nommé
+@samp{m} (créé au moyen de @code{make-music}) sont extraites par
+@code{ly:music-property}, une nouvelle valeur de la taille de fonte
+est ajoutée à la liste de ses propriétés (grâce à la fonction Scheme
+@code{acons}), et le résultat de cette opération est renvoyé par @code{set!}.
+Le dernier élément, dans ce bloc @code{let}, est la valeur finale de
+@samp{m} lui-même.
+
+
+@node Difficult tweaks
+@section Difficult tweaks
+
+Certains réglages sont plus délicats que d'autres.
+
+@itemize @bullet
+
+
+@item
+L'un d'entre eux est l'apparence des objets dits @q{spanner}, qui s'étendent
+horizontalement, tels que les liaisons.  Si, en principe, un seul de ces objets
+est créé à la fois et peut donc être modifié de façon habituelle, lorsque ces
+objets doivent enjamber un changement de ligne, ils sont dupliqués au début
+du ou des systèmes suivants.  Comme ces objets sont des clones de l'objet d'origine,
+ils en héritent toutes les propriétés, y compris les éventuelles commandes @code{\override}.
+
+
+En d'autres termes, une commande @code{\override} affecte toujours les deux extrémités
+d'un objet @q{spanner}.  Pour ne modifier que la partie précédant ou suivant le changement
+de ligne, il faut intervenir directement dans le processus de mise en page.
+La fonction de rappel @code{after-line-breaking} contient toute l'opération Scheme
+effectuée lorsque les sauts de lignes ont été déterminés, et que des objets graphiques
+ont été divisés sur des systèmes différents.
+
+Dans l'exemple suivant, on définit une nouvelle opération nommée
+@code{my-callback}.  Cette opération
+
+@itemize @bullet
+@item
+détermine si l'objet a été divisé à l'occasion d'un changement de ligne
+@item
+si oui, recherche les différents morceaux de l'objet
+@item
+vérifie si l'objet considéré est bien la deuxième moitié d'un objet divisé
+@item
+si oui, applique un espacement supplémentaire (@code{extra-offset}).
+@end itemize
+
+On ajoute cette procédure à l'objet @rinternals{Tie} (liaison de tenue),
+de façon à ce que le deuxième morceau d'une liaison divisée soit rehaussé.
+
+@c KEEP LY
+@lilypond[quote,verbatim,ragged-right]
+#(define (my-callback grob)
+  (let* (
+         ; l'objet a-t-il été divisé ?
+         (orig (ly:grob-original grob))
+
+         ; si oui, rechercher les morceaux frères (siblings)
+         (siblings (if (ly:grob? orig)
+                     (ly:spanner-broken-into orig) '() )))
+
+   (if (and (>= (length siblings) 2)
+             (eq? (car (last-pair siblings)) grob))
+     (ly:grob-set-property! grob 'extra-offset '(-2 . 5)))))
+
+\relative c'' {
+  \override Tie #'after-line-breaking =
+  #my-callback
+  c1 ~ \break c2 ~ c
+}
+@end lilypond
+
+@noindent
+Lorsque cette astuce va être appliquée, notre nouvelle fonction de rappel
+@code{after-line-breaking} devra également appeler celle d'origine
+(@code{after-line-breaking}), si elle existe.
+Ainsi, pour l'utiliser dans le cas d'un crescendo (objet @code{Hairpin}),
+il faudra appeler également @code{ly:hairpin::after-line-breaking}.
+
+
+@item Pour des raisons d'ordre technique, certains objets ne peuvent être modifiés par
+@code{\override}.  Parmi ceux-là, les objets @code{NonMusicalPaperColumn}
+et @code{PaperColumn}.  La commande @code{\overrideProperty} sert à les modifier, de
+façon similaire à @code{\once \override}, mais avec une syntaxe différente :
+
+@example
+\overrideProperty
+#"Score.NonMusicalPaperColumn"  % Nom de l'objet
+#'line-break-system-details     % Nom de la propriété
+#'((next-padding . 20))         % valeur
+@end example
+
+Notez cependant que la commande @code{\override} peut tout de même être appliquée
+à @code{NoteMusicalPaperColumn} et @code{PaperColumn} dans un bloc @code{\context}.
+
+@end itemize
index f1568558258f1b48f5c8faea2bb111a5068982a6..db5b8853a286d56d331ffbeb2c3aeb8df445bbe1 100644 (file)
@@ -6,7 +6,7 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @c Translators: Valentin Villenave
 @c Translation checkers: Jean-Charles Malahieude, John Mandereau
@@ -189,8 +189,8 @@ débuter la ligne suivante avec une section reprise, on peut utiliser
 
 Consultez @ref{Bar lines} pour plus d'informations.
 
-@seealso
 
+@seealso
 Program reference: @rinternals{VoltaBracket},
 @rinternals{RepeatedMusic},
 @rinternals{VoltaRepeatedMusic}, et
@@ -272,7 +272,6 @@ c4 c4
 
 
 @seealso
-
 Référence du programme : @rinternals{VoltaBracket},
 @rinternals{RepeatedMusic},
 @rinternals{VoltaRepeatedMusic}, et
@@ -318,7 +317,6 @@ La subdivision des trémolos aboutit à un résultat semblable : voir
 
 
 @seealso
-
 Dans ce manuel : @ref{Tremolo subdivisions}, @ref{Repeats}.
 
 Référence du programme : @rinternals{Beam}, @rinternals{StemTremolo}.
@@ -352,7 +350,6 @@ le fichier MIDI.
 
 
 @seealso
-
 Dans ce manuel : @ref{Tremolo repeats}.
 
 Référence du programme : @rinternals{StemTremolo}.
@@ -401,7 +398,6 @@ R1
 
 
 @seealso
-
 Référence du programme : @rinternals{RepeatSlash},
 @rinternals{PercentRepeat}, @rinternals{DoublePercentRepeat},
 @rinternals{DoublePercentRepeatCounter},
index 8e1b1c7bf3d202c589041dd4b7138a3e43fde992..b38507feb4b634bd62ef638bebe3267a35424c65 100644 (file)
@@ -6,7 +6,7 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @c Translators: Frédéric Chiasson
 @c Translation checkers: Valentin Villenave, Jean-Charles Malahieude
@@ -111,8 +111,8 @@ la même façon.
 a'4 b' c''4. b'8 a'4. b'4.. c''8.
 @end lilypond
 
-@predefined
 
+@predefined
 Les points sont normalement haussés pour éviter les lignes de portées,
 sauf dans certaines polyphonies.  Les commandes suivantes peuvent être
 utilisées pour demander manuellement une orientation particulière des
@@ -124,9 +124,10 @@ points.
 @code{\dotsDown},
 @funindex \dotsNeutral
 @code{\dotsNeutral}.
+@endpredefined
 
-@seealso
 
+@seealso
 Référence du programme : @rinternals{Dots}, @rinternals{DotColumn}.
 
 
@@ -166,14 +167,15 @@ Les nolets peuvent être imbriqués ; par exemple,
 }
 @end lilypond
 
-@predefined
 
+@predefined
 @funindex \tupletUp
 @code{\tupletUp},
 @funindex \tupletDown
 @code{\tupletDown},
 @funindex \tupletNeutral
 @code{\tupletNeutral}.
+@endpredefined
 
 
 @commonprop
@@ -276,12 +278,10 @@ suivante, ou à la prochaine note.
 
 
 @seealso
-
 Référence du programme : @rinternals{TupletBracket},
 @rinternals{TupletNumber}, @rinternals{TimeScaledMusic}.
 
 
-
 @node Scaling durations
 @unnumberedsubsubsec Scaling durations
 
@@ -302,7 +302,6 @@ b16*4 c4
 
 
 @seealso
-
 Dans ce manuel : @ref{Tuplets}.
 
 
@@ -416,7 +415,6 @@ le second la direction (1 pour haut, @minus{}1 pour bas).
 
 
 @predefined
-
 @funindex \tieUp
 @code{\tieUp},
 @funindex \tieDown
@@ -429,10 +427,10 @@ le second la direction (1 pour haut, @minus{}1 pour bas).
 @code{\tieDashed},
 @funindex \tieSolid
 @code{\tieSolid}.
+@endpredefined
 
 
 @seealso
-
 Glossaire musical :
 @rglos{tie},
 @rglos{laissez vibrer}.
@@ -497,8 +495,8 @@ Cela rend plus facile la mise en place de la musique polyphonique,
 puisque le formateur automatique de collision des silences laissera ces
 silences tranquilles.
 
-@seealso
 
+@seealso
 Référence du programme : @rinternals{Rest}.
 
 
@@ -542,8 +540,8 @@ note et de silence.  Ainsi, le code suivant aboutit à une portée vide.
 
 Le fragment @code{@{ \skip 4 @} } produirait une page vide.
 
-@seealso
 
+@seealso
 Référence du programme : @rinternals{SkipMusic}.
 
 
@@ -637,7 +635,6 @@ R1*4
 
 
 @seealso
-
 Référence du programme : @rinternals{MultiMeasureRestMusic},
 @rinternals{MultiMeasureRest}.
 
@@ -751,7 +748,6 @@ argument à la commande @code{set-time-signature}, en troisième position.
 
 
 @seealso
-
 Référence du programme : @rinternals{TimeSignature} et
 @rinternals{Timing_translator}.
 
@@ -1008,10 +1004,11 @@ multipliées par 3/5, de telle sorte que @w{3/5 * 10/8 = 3/4}.
 >> }
 @end lilypond
 
-@seealso
 
+@seealso
 Exemples : @rlsr{Rhythms}.
 
+
 @knownissues
 
 L'utilisation de métriques différentes en parallèle entraine un
@@ -1058,9 +1055,9 @@ normales et des points, le graveur n'insèrera pas de nolets.
 divise pas les silences.
 
 @seealso
-
 Référence du programme : @rinternals{Completion_heads_engraver}.
 
+
 @node Showing melody rhythms
 @unnumberedsubsubsec Showing melody rhythms
 
@@ -1075,10 +1072,11 @@ ramenées à la même hauteur, sur une portée d'une seule ligne.
 }
 @end lilypond
 
-@seealso
 
+@seealso
 Référence du programme : @rinternals{RhythmicStaff}.
 
+
 @node Beams
 @subsection Beams
 
@@ -1113,7 +1111,6 @@ individuelles d'être rattachées aux autres.
 
 
 @seealso
-
 Référence du programme : @rinternals{Beam}.
 
 
@@ -1285,11 +1282,12 @@ les ligatures automatiques doivent être désactivées, avec @code{\autoBeamOff}
 
 
 @predefined
-
 @funindex \autoBeamOff
 @code{\autoBeamOff},
 @funindex \autoBeamOn
 @code{\autoBeamOn}.
+@endpredefined
+
 
 @commonprop
 
@@ -1520,7 +1518,6 @@ reprises. Voyez à ce sujet @ref{Repeats}.
 
 
 @seealso
-
 Dans ce manuel : @ref{Repeats}, @ref{Grouping staves}.
 
 Référence du programme : @rinternals{BarLine} (faisant partie du
@@ -1589,7 +1586,6 @@ c4 c c c
 
 
 @seealso
-
 Référence du programme : @rinternals{BarNumber}.
 
 Exemples : @rlsr{Staff notation}.
@@ -1752,8 +1748,8 @@ Pour connaître les différents symboles accessibles par
 Pour affiner le positionnement des repères, veuillez vous référer à
 @ref{Text marks}.
 
-@seealso
 
+@seealso
 Dans ce manuel : @ref{Text marks}.
 
 Référence du programme : @rinternals{RehearsalMark}.
@@ -1957,7 +1953,6 @@ Il est possible de forcer l'élasticité de l'espacement des notes d'agrément.
 
 
 @seealso
-
 Référence du programme : @rinternals{GraceMusic}.
 
 
index c0e9ea2e81c8c97011fd3c1ba8f8f4b739eed1f9..3927176944f52870866e60358c3e3039c52145d6 100644 (file)
@@ -1,18 +1,23 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
 @c This file is part of lilypond-program.tely
 @ignore
-    Translation of GIT committish: 4a527608c5ff2ce31e596495d00dce181dc1b9ea
+    Translation of GIT committish: e2070eadd7d3d7a87450aab195a48945ee0b144a
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
+@c \version "2.12.0"
+
+@c Translators: Jean-Charles Malahieude
 
 @node Setup
 @chapter Setup
 
-@untranslated
-
+Ce chapitre traite des options de configuration à effectuer après
+l'installation de LilyPond et de ses dépendances.  Il tient lieu de
+référence en la matière : ne vous intéressez qu'à la rubrique qui vous
+concerne directement.
 
 @menu
 * Setup for specific Operating Systems::
 @node Setup for specific Operating Systems
 @section Setup for specific Operating Systems
 
-@untranslated
-
+Cette partie explique comment optimiser l'installation propres à
+certains systèmes. 
 
 @menu
-* MacOS X on the command-line::
+* Setup for MacOS X::
 @end menu
 
-@node MacOS X on the command-line
-@subsection MacOS X on the command-line
+@node Setup for MacOS X
+@subsection Setup for MacOS X
+
+@subsubheading Using Python scripts on MacOS 10.3 or 10.4
+
+Les exécutables de LilyPond pour MacOS X ne fournissent pas Python, bien
+qu'une version au moins de niveau 2.4 soit requise par
+@command{convert-ly}.  Ainsi, et si vous utilisez MacOS 10.3 ou 10.4,
+devrez-vous installer une version plus récente de Python à partir de
+@uref{http://python.org/download/}, puis éditer la première ligne de
+@command{convert-ly} et @command{lilypond-book}. Si les exécutables du
+Python que vous venez d'installer sont dans votre @var{PATH}, cette ligne
+doit être :
+
+@example
+#!/usr/bin/env python
+@end example
+
+@noindent
+et dans le cas contraire
+
+@example
+#!@var{/chemin/vers/nouvelle_installation/python}
+@end example
+
+
+@subsubheading MacOS X on the command line
+
+Les scripts tels que @command{lilypond-book}, @command{convert-ly},
+@command{abc2ly}, et même @command{lilypond}, sont insclus dans un
+fichier @code{.app} pour MacOS@tie{}X.  Vous pourrez les lancer
+directement en ligne de commande de la manière suivante :
+
+@example
+@var{chemin/vers}/LilyPond.app/Contents/Resources/bin/lilypond
+@end example
+
+@noindent
+Il en va de même pour les autres scripts de ce répertoire, y compris
+@command{lilypond-book}, @command{convert-ly}, @command{abc2ly}, etc.
+
+Une autre façon de procéder consiste à créer des scripts qui ajoutent
+automatiquement le chemin.  À cette intention, créez un répertoire qui
+contiendra ces scripts :
+
+@example
+mkdir -p ~/bin
+cd ~/bin
+@end example
+
+Créez un fichier appelé @code{lilypond} et qui contiendra :
+
+@example
+exec @var{chemin/vers}/LilyPond.app/Contents/Resources/bin/lilypond "$@@"
+@end example
+
+Créez autant de fichiers -- @code{lilypond-book}, @code{convert-ly}, et
+autres programmes annexes que vous utilisez (@code{abc2ly},
+@code{midi2ly}, etc) -- que de besoin.  Remplacez simplement
+@code{bin/lilypond} par @code{bin/convert-ly} ou tout autre nom de
+programme dans le fichier que vous créez.
 
-@untranslated
+Rendez ces fichiers exécutables :
+
+@example
+chmod u+x lilypond
+@end example
+
+Ajoutez alors ce répertoire à votre @var{PATH}.  Modifiez le fichier
+@code{.profile} -- créez-le si besoin -- de votre répertoire personnel,
+de telle sorte qu'il contienne 
+
+@example
+export PATH=$PATH:~/bin
+@end example
+
+@noindent
+Ce fichier doit se terminer par une ligne vide.
+
+Notez que @var{chemin/vers} devrait correspondre à @code{/Applications/}.
 
 
 @node Text editor support
 @section Text editor support
 
-@untranslated
+@cindex editors
+@cindex vim
+@cindex emacs
+@cindex modes, editor
+@cindex syntax coloring
+@cindex coloring, syntax
 
+Certains éditeurs de texte prennent en charge LilyPond.
 
 @menu
 * Emacs mode::
 @node Emacs mode
 @subsection Emacs mode
 
-@untranslated
+Emacs dispose d'un @file{lilypond-mode} qui fournit l'autocomplétion des
+mots-clés, l'indentation, les appariements spécifiques à LilyPond, la
+coloration synthaxique, ainsi que des raccourcis pour compiler et
+consulter les manuels de LilyPond en mode info.  Si le
+@file{lilypond-mode} n'était pas installé sur votre système, procédez
+comme ci-dessous. 
+
+Le répertoire @file{elisp} inclus dans les sources contient aussi un
+mode pour saisir la musique et lancer LilyPond.  Faites @command{make
+install} pour l'installer dans votre @var{elispdir}.  Le fichier
+@file{lilypond-init.el} devrait trouver sa place dans
+@var{load-path}@file{/site-start.d/} ou bien ajouté à votre
+@file{~/.emacs} ou @file{~/.emacs.el}. 
+
+En tant que simple utilisateur, vous pouvez toujours ajouter votre
+propre répertoire (par exemple @file{~/site-lisp/}) à votre
+@var{load-path} en ajoutant la ligne suivante -- modifiée en conséquence
+-- à votre @file{~/.emacs} :
+
+@c any reason we do not advise:  (push "~/site-lisp" load-path)
+@example
+(setq load-path (append (list (expand-file-name "~/site-lisp")) load-path))
+@end example
 
 
 @node Vim mode
 @subsection Vim mode
 
-@untranslated
+En ce qui concerne @uref{http://@/www@/.vim@/.org,VIM}, LilyPond fournit 
+un fichier @file{vimrc} qui gère la coloration synthaxique.  Le
+répertoire @code{$VIM} inclus dans les sources contient aussi un
+mode pour saisir la musique et lancer LilyPond. 
+
+Le type de fichier LilyPond sera reconnu si votre
+@file{~/.vim/filetype.vim} contient
+
+@example
+if exists("did_load_filetypes")
+  finish
+endif
+augroup filetypedetect
+  au! BufNewFile,BufRead *.ly           setf lilypond
+augroup END
+@end example
+
+N'oubliez pas d'inclure ce chemin en ajoutant à votre @file{~/.vimrc} la
+ligne suivante :
+
+@example
+set runtimepath+=/usr/local/share/lilypond/$@{LILYPOND_VERSION@}/vim/
+@end example
+
+@noindent
+où $@{LILYPOND_VERSION@} correspond à votre version de LilyPond.  Si
+LilyPond n'est pas installé dans @file{/usr/local/}, modifiez ce chemin
+en conséquence.
 
 
 @node jEdit
 @subsection jEdit
 
-@untranslated
+Créé en tant que greffon pour l'éditeur de texte 
+@uref{http://@/www@/.jedit@/.org@/,jEdit}, LilyPondTool est l'outil le
+plus riche en fonctionnalités pour éditer des partitions écrites avec
+LilyPond.  Cela inclue un assistant à la création de document qui prend
+en charge les paroles, un visionneur de PDF avec gestion du
+pointer-cliquer.  Captures d'écran, démonstrations et instructions
+d'installation sont disponibles sur le site de 
+@uref{http://lilypondtool@/.organum@/.hu,LilyPondTool}.
 
 
 @node TexShop
 @subsection TexShop
 
-@untranslated
+L'éditeur
+@uref{http://@/www@/.uoregon@/.edu/~koch/texshop/index@/.html,TexShop}
+pour MacOS@tie{}X peut prendre en charge LilyPond, lilypond-book et
+convert-ly, en lui adjoignant les extensions disponibles 
+@uref{http://@/www@/.dimi@/.uniud@/.it/vitacolo/freesoftware@/.html,ici}.
 
 
 @node TextMate
 @subsection TextMate
 
-@untranslated
+TextMate dispose d'un greffon pour LilyPond.  Vous pouvez l'installer en
+lançant :
+
+@example
+mkdir -p /Library/Application\ Support/TextMate/Bundles
+cd /Library/Application\ Support/TextMate/Bundles
+svn co http://macromates.com/svn/Bundles/trunk/Bundles/Lilypond.tmbundle/
+@end example
 
 
 @node LilyKDE
 @subsection LilyKDE
 
-@untranslated
+@uref{http://lilykde.googlecode.com/,LilyKDE} est un greffon pour
+@uref{http://kate-editor.org/,Kate}, l'éditeur de texte de
+l'environnement de bureau KDE.  Il dispose d'un assistant à la création
+de document LilyPond et un visionneur de PDF.
 
+LilyKDE peut s'interfacer avec
+@uref{http://www.volny.cz/smilauer/rumor/,Rumor}, afin de pouvoir entrer
+la musique à l'aide d'un clavier MIDI.
 
-@node Point and click
-@section Point and click
+LilyKDE gère l'hyphénation des paroles, et le gestionnaire de fichiers
+de KDE permet de lancer LilyPond sur plusierus fichiers simultanément. 
 
-@untranslated
 
+@node Point and click
+@section Point and click
 
+Le pointer-cliquer (@emph{point and click}) permet de se retrouver
+directement dans le fichier source, à la note que l'on pointe dans le
+visionneur de PDF.  Ceci facilite grandement le repérage des erreurs à
+partir du fichier imprimable.
+
+Lorsque cette fonctionnalité est active, LilyPond ajoute des hyperliens
+au fichier PDF.  Ces liens sont transmis au navigateur internet qui se
+charge d'ouvrir un éditeur de texte à l'enfroit même où le curseur
+pointe. 
+
+Afin que cette chaîne de traitement soit pleinement opérationnelle, il
+faut configurer votre visionneur de PDF de façon à ce qu'il suive les
+liens grâce au script @file{lilypond-invoke-editor} fourni avec
+LilyPond. 
+
+
+Pour Xpdf, sous UNIX, vous devrez insérer la ligne suivante dans 
+le fichier @file{xpdfrc} -- soit @file{/etc/xpdfrc}, soit dans votre
+répertoire personnel @file{.xpdfrc}.
+
+@example
+urlCommand     "lilypond-invoke-editor %s"
+@end example
+
+@file{lilypond-invoke-editor} est un petit programme assistant.  Il se
+charge d'appeler un éditeur pour les identifants de ressource
+(@emph{URI}) de type @code{textedit}, et un navigateur pour les autres.
+Il teste en outre la variable d'environnement @code{EDITOR} pour les cas
+suivant : 
+
+@table @code
+@item emacs
+  sera alors lancée la commande
+@example
+emacsclient --no-wait +@var{line}:@var{column} @var{file}
+@end example
+@item vim
+  sera alors lancée la commande
+@example
+gvim --remote +:@var{line}:norm@var{char} @var{file}
+@end example
+
+@item nedit
+  sera alors lancée la commande
+@example
+nc -noask +@var{line} @var{file}'
+@end example
+@end table
+
+La variable d'environnement @code{LYEDITOR} permet d'anticiper cette
+affectation, puisqu'elle contient la commande qui permet de lancer
+l'éditeur en tenant compte des valeurs respectives de @code{%(file)},
+@code{%(column)} , et@code{%(line)}. Par exemple,
+
+@example
+emacsclient --no-wait +%(line)s:%(column)s %(file)s
+@end example
+
+@noindent
+en variable d'environnement @code{LYEDITOR} revient au lancement d'un
+client emacs standard.
+
+
+@cindex ficher de sortie, taille
+@cindex taille du ficher de sortie
+
+L'option pointer-cliquer accroît la taille des fichiers de manière
+significative.  Afin de réduire la taille des fichiers PDF et PS, il est
+toujours possible de désactiver le pointer-cliquer en ajoutant
+
+@example
+\pointAndClickOff
+@end example
+
+@noindent
+dans le fichier @file{.ly}.  Il peut alors être activé de manière
+explicite grâce à 
+
+@example
+\pointAndClickOn
+@end example
+
+Le pointer-cliquer peut aussi être désactivé au moment de la compilation
+en ligne de commande :
+
+@example
+lilypond -dno-point-and-click fichier.ly
+@end example
+
+@warning{Lorsqu'un fichier LilyPond est destiné à être redistribué,
+pensez à désactiver le pointer-cliquer, de telle sorte que les chemins
+d'accès et autres informations propres à votre système ne se retrouvent
+pas inclus dans le fichier  @file{.pdf}.}
 
-@c -- SKELETON FILE --
index b88fe863c672f0bbe1d55686cfe5108a30515159..f3664a971929c0ede16b8bf9bd12fdb0c36de0b9 100644 (file)
@@ -6,7 +6,7 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @c Translators: Frédéric Chiasson, Valentin Villenave
 @c Translation checkers: Jean-Charles Malahieude, John Mandereau
@@ -68,14 +68,15 @@ Des notes ordinaires et des clusters peuvent cohabiter sur une même
 portée, y compris simultanément --- en pareil cas, rien ne sera fait
 pour tenter d'empécher les chevauchements entre notes et clusters.
 
-@seealso
 
+@seealso
 Référence du programme : @rinternals{ClusterSpanner},
 @rinternals{ClusterSpannerBeacon},
 @rinternals{Cluster_spanner_engraver}.
 
 Exemples : @rlsr{Simultaneous notes}.
 
+
 @knownissues
 
 Les expressions musicales du type @code{<< @{ g8 e8 @} a4 >>} ne
@@ -236,7 +237,6 @@ pour sortir le sol (@code{g}) de l'alignement, et
 
 
 @predefined
-
 @funindex \oneVoice
 @code{\oneVoice},
 @funindex \voiceOne
@@ -260,6 +260,8 @@ des notes de la voix courante.  Les voix externes --- habituellement,
 les voix une et deux --- ont @code{\shiftOff}, alors que les voix
 internes --- trois et quatre --- ont @code{\shiftOn}.  @code{\shiftOnn}
 et @code{\shiftOnnn} sont des niveaux supplémentaires de décalage.
+@endpredefined
+
 
 Quand LilyPond est dépassé, la propriété @code{force-hshift} de l'objet
 @rinternals{NoteColumn}, et des silences à hauteur déterminée, peuvent
@@ -377,10 +379,11 @@ expressions musicales, comme ceci :
 Une section @code{\relative} en dehors de @code{\partcombine} sera
 sans effet sur les hauteurs de @var{musicexpr1} et @var{musicexpr2}.
 
-@seealso
 
+@seealso
 Référence du programme : @rinternals{PartCombineMusic}.
 
+
 @knownissues
 
 Lorsque @code{printPartCombineTexts} est actif et que les deux voix
index 6690b28400927973eb27df5547c7197fbb6dc16f..23a85a5e8a47b3e62721add0ad27c038adb6960b 100644 (file)
@@ -7,7 +7,7 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @c Translators: Frédéric Chiasson, Jean-Charles Malahieude
 
@@ -243,18 +243,16 @@ l'objet @rinternals{SpacingSpanner}.
 @item Les affinages optiques se règlent en assignant @emph{vrai} à la
 propriété @code{uniform-stretching} du @rinternals{SpacingSpanner}. 
 
-
 @end itemize
 
-@seealso
 
+@seealso
 Exemples : @rlsr{Spacing}.
 
 Le fichier @file{input/proportional.ly} illustre la notation
 proportionnelle stricte.
 
 
-
 @node Fitting music onto fewer pages
 @section Fitting music onto fewer pages
 
index f5d26efcbf06f0dfd365c233c162cc92c7f21f68..d4e764728359ef6ee222584510e318afe173a9fb 100644 (file)
@@ -1,12 +1,12 @@
 @c -*- coding: utf-8; mode: texinfo; -*-
 @ignore
-    Translation of GIT committish: 4a527608c5ff2ce31e596495d00dce181dc1b9ea
+    Translation of GIT committish: 6f84d7b264bf1faa8d9c586bbf06c762ae53183a
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @node Specialist notation
 @chapter Specialist notation
@@ -16,7 +16,7 @@ spécifique à certains intruments ou certaines époques.
 
 @menu
 * Vocal music::
-* Keyboard instruments::
+* Keyboard and other multi-staff instruments::
 * Unfretted string instruments::
 * Fretted string instruments::
 * Percussion::
index a910c67be7cfbf49c2f796485820c882219aa6b6..a27ab1a12f9eefbb73646f1b6f86ea3a2d203584 100644 (file)
@@ -6,7 +6,7 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @c Translators: Valentin Villenave, Jean-Charles Malahieude
 @c Translation checkers: John Mandereau
@@ -108,13 +108,13 @@ s'agit de l'assemblage par défaut.
 
 
 @seealso
-
 Les barres de mesure au début de chaque système prennent l'un des styles
 @rinternals{SystemStartBar}, @rinternals{SystemStartBrace},
 @rinternals{SystemStartBracket}.  Dans chaque contexte, seul l'un de
 ces styles est utilisé, et c'est la propriété
 @code{systemStartDelimiter} qui détermine lequel.
 
+
 @commonprop
 
 Les accolades et crochets délimitant les systèmes peuvent être imbriqués
@@ -200,8 +200,8 @@ comme sur l'exemple suivant :
 @cindex épaisseur des lignes de portées
 @cindex nombre de lignes de portée
 
-@seealso
 
+@seealso
 Référence du programme : @rinternals{StaffSymbol}.
 
 Exemples : @rlsr{Staff notation}.
@@ -322,7 +322,6 @@ Pour plus de détails, voir @ref{Formatting text}.
 
 
 @seealso
-
 Référence du programme : @rinternals{MetronomeMark}.
 
 
@@ -355,8 +354,8 @@ affichera @code{instrumentName}, et les suivantes
 @code{shortInstrumentName}. 
 
 @lilypond[quote,verbatim,ragged-right,relative=1,fragment]
-\set Staff.instrumentName = "Ploink "
-\set Staff.shortInstrumentName = "Plk "
+\set Staff.instrumentName = #"Ploink "
+\set Staff.shortInstrumentName = #"Plk "
 c1
 \break
 c''
@@ -428,19 +427,18 @@ désactiver un graveur, voir @ref{Modifying context plug-ins}.
 Vous pouvez changer d'instrument en cours de morceau :
 
 @lilypond[quote,fragment,verbatim,ragged-right]
-\set Staff.instrumentName = "First"
-\set Staff.shortInstrumentName = "one"
+\set Staff.instrumentName = #"First"
+\set Staff.shortInstrumentName = #"one"
 c1 c c c \break
 c1 c c c \break
-\set Staff.instrumentName = "Second"
-\set Staff.shortInstrumentName = "two"
+\set Staff.instrumentName = #"Second"
+\set Staff.shortInstrumentName = #"two"
 c1 c c c \break
 c1 c c c \break
 @end lilypond
 
 
 @seealso
-
 Référence du programme : @rinternals{InstrumentName}.
 
 
@@ -541,7 +539,6 @@ Citer des triolets imbriqués peut entraîner un résultat de médiocre qualité
 
 
 @seealso
-
 Dans ce manuel : @ref{Instrument transpositions}.
 
 Exemples : @rlsr{Staff notation}.
index 869f47c60009b35ca01653981006e4a4e5c3f41e..be7b015717401113785bbe641d0861fa6db46a90 100644 (file)
@@ -6,7 +6,7 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @c Translators: Jean-Charles Malahieude
 @c Translation checkers: Valentin Villenave, John Mandereau
@@ -79,11 +79,11 @@ La commande @code{\markup} est décrite plus en détails dans la section
 
 
 @predefined
-
 @funindex \textLengthOn
 @code{\textLengthOn},
 @funindex \textLengthOff
 @code{\textLengthOff}.
+@endpredefined
 
 
 @commonprop
@@ -99,7 +99,6 @@ Vous pouvez cependant l'y forcer en définissant
 
 
 @seealso
-
 Dans ce manuel : @ref{Formatting text}.
 
 Référence du programme : @rinternals{TextScript}.
@@ -141,7 +140,7 @@ régler vous-même :
 
 @lilypond[relative=2,ragged-right,verbatim,fragment]
 e2 \glissando f
-\once \override Glissando #'bound-details #'right #'Y = #-2
+\once \override Glissando #'(bound-details right Y) = #-2
 e2 \glissando f
 @end lilypond
 
@@ -162,7 +161,7 @@ dans l'exemple suivant :
 
 @lilypond[relative=2,ragged-right,verbatim,fragment]
 \override Glissando #'breakable = ##T 
-\override Glissando #'bound-details #'right-broken #'Y = #-3
+\override Glissando #'(bound-details right-broken Y) = #-3
 c1 \glissando \break
 f1
 @end lilypond
@@ -198,7 +197,7 @@ Marqueur qui sera analysé pour alimenter @code{stencil}.  On y trouve
 habituellement les @i{cresc.} ou @i{tr} des extenseurs horizontaux.
 
 @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
@@ -212,11 +211,11 @@ vous pouvez décaler le coin du marqueur par rapport à l'extrémité de
 la ligne.
 
 @lilypond[relative=1,fragment,verbatim]
-\override TextSpanner #'bound-details #'left #'stencil-align-dir-y = #DOWN
-\override TextSpanner #'bound-details #'right #'stencil-align-dir-y = #UP
+\override TextSpanner #'(bound-details left stencil-align-dir-y) = #DOWN
+\override TextSpanner #'(bound-details right stencil-align-dir-y) = #UP
 
-\override TextSpanner #'bound-details #'left #'text = #"gggg"
-\override TextSpanner #'bound-details #'right #'text = #"hhhh"
+\override TextSpanner #'(bound-details left text) = #"gggg"
+\override TextSpanner #'(bound-details right text) = #"hhhh"
 c4^\startTextSpan c c c \stopTextSpan
 @end lilypond
 
@@ -231,8 +230,8 @@ début et la fin d'un glissando seraient en plein milieu des têtes de note.
 
 @end table
 
-@seealso
 
+@seealso
 Référence du programme : @rinternals{TextSpanner},
 @rinternals{Glissando}, @rinternals{VoiceFollower},
 @rinternals{TrillSpanner}, @rinternals{line-spanner-interface}.
@@ -258,24 +257,25 @@ propriétés, comme ici :
 @lilypond[quote,ragged-right,fragment,relative=1,verbatim]
 c1
 \textSpannerDown
-\override TextSpanner #'bound-details #'left #'text =
+\override TextSpanner #'(bound-details left text) =
   \markup { \upright "rall" } 
 c2\startTextSpan b c\stopTextSpan a
 \break
 \textSpannerUp
-\override TextSpanner #'bound-details #'left #'text =
+\override TextSpanner #'(bound-details left text) =
   \markup { \italic "rit" } 
 c2\startTextSpan b c\stopTextSpan a
 @end lilypond
 
-@predefined
 
+@predefined
 @funindex textSpannerUp
 @code{\textSpannerUp},
 @funindex textSpannerDown
 @code{\textSpannerDown},
 @funindex textSpannerNeutral
 @code{\textSpannerNeutral}.
+@endpredefined
 
 
 @commonprop
@@ -288,7 +288,6 @@ Pour obtenir une ligne pleine, utilisez
 
 
 @seealso
-
 Référence du programme : @rinternals{TextSpanner}.
 
 
@@ -438,7 +437,6 @@ affectation à chacune des portées :
 
 
 @seealso
-
 Référence du programme : @rinternals{RehearsalMark}.
 
 
@@ -490,7 +488,7 @@ pour traiter du texte avec LilyPond.
 
     \set Staff.instrumentName = \markup{ \column{ Alto solo } }
     c2^\markup{ don't be \flat }
-    \override TextSpanner #'bound-details #'left #'text = \markup{\italic rit }
+    \override TextSpanner #'(bound-details left text) = \markup{\italic rit }
     b2\startTextSpan
     a2\mark \markup{ \large \bold Fine }
     r2\stopTextSpan
@@ -601,7 +599,6 @@ en utilisant @code{normal-text}.  Pour plus d'informations, consultez
 
 
 @seealso
-
 Dans ce manuel : @ref{Text markup commands}.
 
 Référence du programme : @rinternals{TextScript}.
@@ -674,15 +671,16 @@ tour des lignes de texte, comme ici :
 Les différentes commandes permettant de générer des listes de lignes
 se trouve dans @ref{Text markup list commands}.
 
-@seealso
 
+@seealso
 Dans ce manuel : @ref{Text markup list commands}, 
 @ref{New markup list command definition}.
 
-@predefined
 
+@predefined
 @funindex \markuplines
-@code{\markuplines}
+@code{\markuplines}.
+@endpredefined
 
 
 @node Fonts
@@ -790,8 +788,6 @@ du texte respectivement en roman, sans serif et monospace, comme ici :
 @c Apple TTF fonts
 
 
-
 @seealso
-
 Exemples : @rlsr{Text}.
 
index 7ff9ac333e7bf46a4e619181448ccfa4a7d09da3..52c6a0b60668537d3da0ce35b851b3ad8a6a2fbc 100644 (file)
@@ -1,13 +1,13 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
 @c This file is part of lilypond.tely
 @ignore
-   Translation of GIT committish: d7a9cbdc480e5b327ec53f287f22995e7a9c1a0f
+   Translation of GIT committish: f413550b658b43fbea690fc060f872bce6bbc885
 
    When revising a translation, copy the HEAD committish of the
    version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @ignore
 Tutorial guidelines:  (different from policy.txt!)
@@ -483,8 +483,8 @@ vus :
 }
 @end lilypond
 
-@seealso
 
+@seealso
 Manuel de notation : @ruser{Writing pitches},
 @ruser{Writing rhythms}, @ruser{Writing rests},
 @ruser{Time signature}, @ruser{Clef}.
@@ -671,8 +671,8 @@ d'imprimer ou de garder un lien vers @ruser{Cheat sheet}, tableau
 qui répertorie les commandes usuelles pour une consultation rapide.
 @end ignore
 
-@seealso
 
+@seealso
 Vous trouverez plus de conseils pour construire des fichiers source
 dans @ref{Suggestions for writing LilyPond input files}.  Cependant,
 lors d'une première lecture il est préférable de terminer d'abord la
@@ -808,14 +808,14 @@ d cis fis
 aucune note n'a d'altération accidentelle, et pourtant vous devrez
 entrer le @code{is} pour les notes @code{cis} et @code{fis}.
 
-Le code @code{e} ne veut pas dire @qq{Imprimez-moi un point noir sur
-la première ligne de la portée.}  Cela signifie plutôt : @qq{Ici se
-trouve une note dont la hauteur est un mi naturel.}  Avec une armure
-de la bémol majeur, ce mi est flanqué d'un bécarre accidentel :
+Le code @code{b} ne veut pas dire @qq{Imprimez-moi un point noir sur
+la troisième ligne de la portée.}  Cela signifie plutôt : @qq{Ici se
+trouve une note dont la hauteur est un si naturel.}  Avec une armure
+de la bémol majeur, ce si est flanqué d'un bécarre accidentel :
 
 @lilypond[verbatim,quote,relative=2]
 \key aes \major
-e
+b
 @end lilypond
 
 Ajouter explicitement toutes les altérations demande un peu plus
@@ -825,14 +825,15 @@ peuvent ainsi être imprimées suivant plusieurs conventions.  Pour
 connaître les différentes manières dont les altérations accidentelles
 peuvent être imprimées, consultez @ruser{Automatic accidentals}.
 
-@seealso
 
+@seealso
 Manuel de notation : @ruser{Note names in other languages},
 @ruser{Accidentals}, @ruser{Automatic accidentals},
 @ruser{Key signature}.
 
 Glossaire musical : @rglos{Pitch names}.
 
+
 @node Ties and slurs
 @subsection Ties and slurs
 
@@ -911,11 +912,12 @@ enchâssées dans un @emph{legato} ou un phrasé.
 c2~( c8 fis fis4 ~ fis2 g2)
 @end lilypond
 
-@seealso
 
+@seealso
 Manuel de notation : @ruser{Ties}, @ruser{Slurs},
 @ruser{Phrasing slurs}.
 
+
 @node Articulation and dynamics
 @subsection Articulation and dynamics
 
@@ -1000,8 +1002,8 @@ nuance d'arrivée, par exemple @code{\f}, soit par la commande
 c2\< c2\ff\> c2 c2\!
 @end lilypond
 
-@seealso
 
+@seealso
 Manuel de notation : @ruser{Articulations and ornamentations},
 @ruser{Fingering instructions}, @ruser{Dynamics}.
 
@@ -1031,8 +1033,8 @@ a1_\markup{
 }
 @end lilypond
 
-@seealso
 
+@seealso
 Manuel de notation : @ruser{Writing text}.
 
 
@@ -1081,8 +1083,8 @@ a8 c b4 d8. c16 b4
 a8 c b4 d8. c16 b4
 @end lilypond
 
-@seealso
 
+@seealso
 Manuel de notation : @ruser{Automatic beams}, @ruser{Manual beams}.
 
 
@@ -1160,8 +1162,8 @@ c2 \appoggiatura b16 c2
 c2 \acciaccatura b16 c2
 @end lilypond
 
-@seealso
 
+@seealso
 Manuel de notation : @ruser{Grace notes}, @ruser{Tuplets},
 @ruser{Upbeats}.
 
@@ -1430,8 +1432,8 @@ Voici un bref exemple :
 }
 @end lilypond
 
-@seealso
 
+@seealso
 Manuel de notation : @ruser{Keyboard and other multi-staff instruments},
 @ruser{Displaying staves}.
 
@@ -1530,8 +1532,8 @@ Là encore, ces expressions peuvent s'imbriquer arbitrairement :
 >>
 @end lilypond
 
-@seealso
 
+@seealso
 Manuel de notation : @ruser{Simultaneous notes}.
 
 
@@ -1755,8 +1757,8 @@ la syllabe @emph{al} est chantée sur la même note que @emph{go}.
 >>
 @end lilypond
 
-@seealso
 
+@seealso
 Manuel de notation : @ruser{Vocal music}.
 
 
@@ -1798,10 +1800,11 @@ exemple simple, il est vivement conseillé de séparer la structure de
 la partition des notes et paroles, grâce à des variables.  Ceci sera
 détaillé plus loin dans @ref{Organizing pieces with variables}.
 
-@seealso
 
+@seealso
 Manuel de notation : @ruser{Vocal music}.
 
+
 @node Final touches
 @section Final touches
 
index 172ccfdbc848dcd921f3167a449f74a9ab45f5a1..2f4df59bc6ea27aea26922d57c3ddfb866da77ae 100644 (file)
@@ -1,23 +1,24 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
 @c This file is part of lilypond.tely
 @ignore
-    Translation of GIT committish: 964d024dd4f022ba7cd66adc13c0169035d4c4e5
+       Translation of GIT committish: 90a367b11c50bd1fe242656715f807d1445225d7
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
-@c Translators: Valentin Villenave, Nicolas Klutchnikoff
+@c Translators: Valentin Villenave, Nicolas Klutchnikoff, Damien Heurtebise
 @c Translation checkers: Jean-Charles Malahieude, John Mandereau
+@c Translation status: post-GDP
 
 @node Tweaking output
 @chapter Tweaking output
 
-Ce chapitre indique comment modifier le résultat que vous obtiendrez.
-LilyPond offre de nombreuses possibilités de réglages, permettant de modifier
-quasiment chaque élément de votre partition.
+Ce chapitre indique comment modifier le résultat obtenu.
+LilyPond offre de nombreuses possibilités de réglages, permettant
+théoriquement de modifier chaque élément de votre partition.
 
 @menu
 * Tweaking basics::             
@@ -25,15 +26,12 @@ quasiment chaque élément de votre partition.
 * Appearance of objects::       
 * Placement of objects::        
 * Collisions of objects::       
-* Common tweaks::               
 * Further tweaking::            
 @end menu
 
 @node Tweaking basics
 @section Tweaking basics
 
-@untranslated
-
 @menu
 * Introduction to tweaks::      
 * Objects and interfaces::      
@@ -44,571 +42,3725 @@ quasiment chaque élément de votre partition.
 @node Introduction to tweaks
 @subsection Introduction to tweaks
 
-@untranslated
+LilyPond regroupe sous le terme de @qq{retouches} (@emph{tweaks} en
+anglais) les différents moyens dont dispose l'utilisateur pour 
+intervenir sur l'interprétation du fichier d'entrée et pour modifier 
+l'apparence du fichier de sortie.  Certaines retouches sont très 
+simples à mettre en œuvre ; d'autres sont plus complexes.  Mais 
+à elles toutes, elles permettent d'obtenir tout ce qu'on veut en matière
+de musique imprimée.
+
+Dans ce chapitre, nous traitons des concepts de base nécessaires
+pour comprendre l'art de la retouche.  Puis nous présentons de 
+nombreuses commandes déjà prêtes, qu'il suffit de recopier pour 
+obtenir un résultat identique dans vos partitions ; nous en profitons
+pour expliquer comment ces commandes ont été construites, si bien 
+que vous pouvez apprendre par la même occasion à développer 
+vos propres retouches.
+
+Avant de vous lancer dans ce chapitre, il peut être utile de revoir la
+section @ref{Contexts and engravers}, dans la mesure où les contextes,
+graveurs et autres propriétés qui y sont décrits, sont indispensables 
+pour comprendre et construire les retouches.
 
 @node Objects and interfaces
 @subsection Objects and interfaces
 
-@untranslated
+@cindex objet
+@cindex grob
+@cindex spanner
+@cindex extenseur
+@cindex interface
+@cindex propriétés des objets
+@cindex objet, propriétés
+@cindex objet de rendu
+@cindex rendu, objets de
+
+Toute retouche implique que l'on modifie les opérations internes 
+et les structures du programme LilyPond.  Nous allons donc, pour
+commencer, présenter certains termes qui servent à décrire ces
+opérations internes et ces structures.
+
+Le terme d'@qq{Objet} est un terme générique qui fait référence à 
+une multitude de structures internes mises en place par LilyPond 
+durant la compilation d'un fichier d'entrée.  Ainsi, quand une 
+commande du type @code{\new Staff} apparaît, un nouvel objet 
+du type @code{Staff} est créé.  Cet objet @code{Staff} contient 
+alors toutes les propriétés associées à cette portée, par exemple son
+nom et son armure, ainsi que le détail des graveurs qui ont été 
+désignés pour fonctionner dans ce contexte de portée.  
+Certains objets peuvent contenir les propriétés de tous les autres 
+contextes, comme les objets @code{Voice}, les objets @code{Score},
+les objets @code{Lyrics} ; d'autres se rapportent à tous les éléments de
+notation, comme les barres de mesure, les liaisons, les nuances, etc. 
+Chaque objet dispose de son propre échantillon de valeurs pour le 
+réglage des propriétés.
+
+Certains types d'objet portent des noms spécifiques.  Les objets qui se 
+rapportent à des éléments de notation sur le fichier de sortie, comme les 
+notes, les hampes, les liaisons de phrasé ou de prolongation, les doigtés, 
+les clefs, etc. sont appelés @qq{Objets de rendu} ; ils sont aussi connus 
+sous le nom d'@qq{Objets graphiques} (en anglais : @emph{Graphical
+objects} ou @emph{Grobs} pour faire court).  Ce sont bien des objets au
+sens générique ci-dessus, et, en tant que tels, ils reçoivent des
+propriétés qui leur sont associées, comme leur position, leur taille,
+leur couleur, etc. 
+
+Certains objets de rendu, comme les liaisons de phrasé, les soufflets 
+de crescendo, les marques d'octaviation et beaucoup d'autres @emph{grobs}, 
+ont pour particularité de ne pas se situer à un seul et unique endroit
+-- ils ont un point de départ, un point d'arrivée, et éventuellement
+d'autres propriétés relatives à leur forme.  Ces objets avec une forme
+étendue sont appelés des bandeaux (@emph{Spanners} en anglais).
+
+Il reste à expliquer ce que sont les @qq{interfaces}.  De nombreux objets, 
+qui peuvent être très différents les uns des autres, ont pour point commun
+de devoir être compilés simultanément.  Par exemple, tous les
+@emph{grobs} ont une couleur, une taille, une position, etc., et toutes
+ces propriétés sont compilées simultanément durant l'interprétation du
+fichier d'entrée par LilyPond.  Pour alléger ces opérations internes,
+ces actions et propriétés communes sont regroupées en un objet appelé
+@code{grob-interface}.  Il existe beaucoup d'autres regroupements de
+propriétés communes dans le genre de celui-ci, chacun portant un nom qui
+se termine par @code{interface}.  En tout, on en compte plus d'une
+centaine.  Nous verrons plus loin en quoi c'est intéressant et utile
+pour l'utilisateur. 
+
+Ainsi s'achève le tour des principaux termes relatifs aux objets et 
+que nous serons amenés à utiliser dans ce chapitre. 
 
 @node Naming conventions of objects and properties
 @subsection Naming conventions of objects and properties
 
-@untranslated
+@cindex conventions de nommage des objets
+@cindex conventions de nommage des propriétés
+@cindex objets, conventions de nommage des
+@cindex propriétés, conventions de nommage des
+
+Nous avons eu un aperçu, dans @ref{Contexts and engravers}, de 
+la façon de nommer les objets.  Voici maintenant une liste de 
+référence des types d'objets et de propriétés les plus courants, 
+avec leur convention de nommage et quelques exemples 
+de cas concrets.  La lettre @code{A} représente n'importe quel 
+caractère alphabétique majuscule, et les lettres @code{aaa} 
+un nombre indéterminé de caractères alphabétiques minuscules.  
+Les autres caractères sont à prendre comme ils se présentent.
+
+@multitable @columnfractions .33 .33 .33
+@headitem Type d'objet/propriété           
+       @tab Convention de désignation
+       @tab Exemples
+@item Contextes
+       @tab Aaaa ou AaaaAaaaAaaa
+       @tab Staff, GrandStaff
+@item Objets de rendu
+       @tab Aaaa ou AaaaAaaaAaaa
+       @tab Slur, NoteHead
+@item Graveurs
+       @tab Aaaa_aaa_engraver
+       @tab Clef_engraver, Note_heads_engraver
+@item Interfaces
+       @tab aaa-aaa-interface
+       @tab grob-interface, break-aligned-interface 
+@item Propriétés de contexte
+       @tab aaa ou aaaAaaaAaaa
+       @tab alignAboveContext, skipBars
+@item Propriétés d'objet de rendu
+       @tab aaa ou aaa-aaa-aaa
+       @tab direction, beam-thickness
+@end multitable
+
+Comme nous le verrons bientôt, les propriétés des différents 
+types d'objets sont modifiées par des commandes différentes, si bien 
+qu'il est bon de savoir reconnaître le type d'objet en fonction du nom
+de ses propriétés. 
 
 @node Tweaking methods
 @subsection Tweaking methods
 
-@untranslated
-
-@node The Internals Reference manual
-@section The Internals Reference manual
+@cindex retouches, méthodologie
+@cindex méthodes de retouche
 
-@untranslated
+@strong{La commande \override}
 
-@menu
-* Properties of layout objects::  
-* Properties found in interfaces::  
-* Types of properties::         
-@end menu
+@cindex override, commande
+@cindex override, syntaxe
 
-@node Properties of layout objects
-@subsection Properties of layout objects
+@funindex \override
+@funindex override
 
-@untranslated
+Dans @ref{Modifying context properties} et dans 
+@ref{Adding and removing engravers}, nous avons déjà rencontré les
+commandes @code{\set} et @code{\with}, qui servent à changer les
+propriétés des @strong{contextes} et à supprimer ou ajouter des
+@strong{graveurs}.  Voici maintenant d'autres commandes plus
+importantes. 
 
-@node Properties found in interfaces
-@subsection Properties found in interfaces
+La commande pour changer les propriétés des @strong{objets de rendu} 
+est @code{\override}.  Du fait que cette commande modifie en profondeur 
+les propriétés internes de LilyPond, sa syntaxe n'est pas aussi simple que 
+pour les commandes vues précédemment.  Elle a besoin de savoir avec 
+précision quelle est la propriété à modifier, pour quel objet et dans
+quel  contexte, et quelle doit être sa nouvelle valeur.  Voyons de quoi
+il retourne.
 
-@untranslated
+La syntaxe générale de cette commande est : 
 
-@node Types of properties
-@subsection Types of properties
+@example
+\override @var{Contexte}.@var{ObjetDeRendu} #'@var{propriété-rendu} = #@var{valeur}
+@end example
 
-@untranslated
+@noindent
+Elle attribue à la propriété appelée @var{propriété-rendu}, associée à
+l'objet @var{ObjetDeRendu}, appartenant lui-même au contexte 
+@var{Contexte}, une valeur @var{valeur}.
+
+Le contexte @var{Contexte} peut être omis (c'est généralement 
+le cas) quand il n'y a pas d'ambiguïté et qu'il s'agit d'un contexte 
+de très bas niveau, comme @code{Voice}, @code{ChordNames} 
+ou @code{Lyrics}.  Dans les exemples qui suivent, le contexte sera 
+très souvent omis.  Nous verrons plus tard dans quelles
+circonstances il doit impérativement être indiqué.
+
+Les sections ci-dessous traitent largement des propriétés et de leurs 
+valeurs mais, pour illustrer la mise en forme et l'utilisation de ces 
+commandes, nous nous limiterons à n'employer que quelques propriétés et
+valeurs simples, facilement compréhensibles.
+
+Nous ne parlerons dans l'immédiat ni du @code{#'}, qui précède 
+toujours la propriété, ni du @code{#}, qui précède toujours la 
+valeur.  Ces deux éléments doivent obligatoirement être 
+présents sous cette forme.  Voici la commande la plus fréquente 
+pour faire des retouches, et pratiquement tout le reste de ce 
+chapitre aura pour but montrer, à travers des exemples, comment 
+l'utiliser.  L'exemple ci-dessous change la couleur des têtes de 
+notes :
+
+@cindex couleur,exemple de propriété
+@cindex NoteHead, exemple de dérogation
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
+c d
+\override NoteHead #'color = #red
+e f g
+\override NoteHead #'color = #green
+a b c
+@end lilypond
 
-@node Appearance of objects
-@section Appearance of objects
+@strong{La commande \revert}
 
-@untranslated
+@cindex revert, commande
 
-@menu
-* Visibility and color of objects::  
-* Size of objects::             
-* Length and thickness of objects::  
-@end menu
+@funindex \revert
+@funindex revert
 
-@node Visibility and color of objects
-@subsection Visibility and color of objects
+Une fois qu'elle a été modifiée, la propriété conserve sa nouvelle valeur 
+jusqu'à ce qu'elle soit à nouveau modifiée ou qu'elle rencontre la 
+commande @code{\revert}.  La commande @code{\revert} obéit à 
+la syntaxe ci-dessous et ramène la valeur de la propriété à sa valeur 
+d'origine.  Attention : dans le cas où plusieurs @code{\override} ont 
+été employés, il ne s'agit pas de la valeur précédente mais bien de la 
+valeur par défaut. 
 
-@untranslated
+@example
+\revert @var{Contexte}.@var{ObjetDeRendu} #'@var{propriété-de-rendu}
+@end example
 
-@node Size of objects
-@subsection Size of objects
+Tout comme pour la commande @code{\override}, la mention du 
+@var{Contexte} est souvent facultative.  Elle sera omise dans de 
+nombreux exemples ci-dessous.  Voici un exemple qui ramène la 
+couleur des deux dernières notes à leur valeur par défaut :
+
+@cindex couleur,exemple de propriété
+@cindex NoteHead, exemple de dérogation
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
+c d
+\override NoteHead #'color = #red
+e f g
+\override NoteHead #'color = #green
+a
+\revert NoteHead #'color
+b c
+@end lilypond
 
-@untranslated
+@strong{Le préfixe \once}
 
-@node Length and thickness of objects
-@subsection Length and thickness of objects
+@funindex \once
+@funindex once
 
-@untranslated
+Les commandes @code{\override} et @code{\set} peuvent supporter  
+toutes les deux le préfixe @code{\once}.  Celui-ci a pour fonction de 
+n'appliquer la commande @code{\override} ou @code{\set} qu'à
+l'instant musical en cours, avant que la propriété ne reprenne 
+sa valeur par défaut.  Toujours à partir du même exemple, il est
+possible de ne changer la couleur que d'une seule note :
 
-@node Placement of objects
-@section Placement of objects
+@cindex couleur,exemple de propriété
+@cindex NoteHead, exemple de dérogation
 
-@untranslated
+@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
+c d
+\once \override NoteHead #'color = #red
+e f g
+\once \override NoteHead #'color = #green
+a b c
+@end lilypond
 
-@menu
-* Automatic behavior::          
-* Within-staff objects::        
-* Outside staff objects::       
-@end menu
+@strong{La commande \overrideProperty}
 
-@node Automatic behavior
-@subsection Automatic behavior
+@cindex overrideProperty, commande
 
-@untranslated
+@funindex \overrideProperty
+@funindex overrideProperty
 
-@node Within-staff objects
-@subsection Within-staff objects
+Il existe une autre forme de commande @code{\override}, 
+@code{\overrideProperty}, qui est parfois utile.  Nous la mentionnons
+ici par souci d'exhaustivité ; pour le détail, voir @ruser{Difficult tweaks}.
 
-@untranslated
+@c Maybe explain in a later iteration  -td
 
-@node Outside staff objects
-@subsection Outside staff objects
+@strong{La commande \tweak}
 
-@untranslated
+@cindex tweak, commande
 
+@funindex \tweak
+@funindex tweak
 
-@node Collisions of objects
-@section Collisions of objects
+La dernière commande disponible pour les retouches est 
+@code{\tweak}.  Elle sert à changer les propriétés d'objets qui
+surviennent simultanément dans la musique, comme par exemple les 
+notes d'un accord.  La commande @code{\override} modifierait toutes
+les notes de l'accord, tandis que @code{\tweak} ne modifie que 
+l'élément suivant dans la chaîne de saisie.
 
+Voici un exemple.  Supposons que nous voulions changer la taille de 
+la tête de note du milieu (le mi) dans un accord de do majeur.  Voyons 
+d'abord ce que donnerait @code{\once \override} :
 
-@menu
-* Moving objects::              
-* Fixing overlapping notation::  
-* Real music example::          
-@end menu
+@cindex font-size, exemple de propriété
+@cindex NoteHead, exemple de dérogation
 
-@node Moving objects
-@subsection Moving objects
+@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
+<c e g>4
+\once \override NoteHead #'font-size = #-3
+<c e g>
+<c e g>
+@end lilypond
 
-Aussi surprenant que cela puisse paraître, LilyPond n'est pas parfait.
-Certains éléments sur la partition peuvent se chevaucher, ce qui est 
-regrettable mais, le plus souvent, facile à corriger.
+Nous voyons que @code{\override} modifie @emph{toutes} les têtes 
+de notes de l'accord, car toutes les notes de l'accord surviennent au 
+même @emph{instant musical} et que la fonction de @code{\once} 
+est de faire porter la modification sur tous les objets du type spécifié 
+qui surviennent au même instant musical, comme le fait la commande 
+@code{\override} elle-même. 
+
+La commande @code{\tweak} opère différemment.  Elle agit 
+sur l'élément immédiatement suivant dans la chaîne de saisie.  Elle ne
+fonctionne toutefois que sur des objets créés directement à partir de 
+la chaîne de saisie, c'est-à-dire essentiellement des têtes de notes et
+des articulations ; des objets comme les hampes ou les 
+altérations accidentelles sont créés ultérieurement et ne peuvent 
+être retouchés de cette manière.  En outre, quand la retouche porte 
+sur une tête de note, celle-ci @emph{doit} appartenir à un accord, 
+c'est-à-dire être comprise à l'intérieur de chevrons gauche/droite.  Pour 
+retoucher une note isolée, il faut donc placer la commande 
+@code{\tweak} avec la note à l'intérieur des chevrons gauche/droite.
+
+Pour reprendre notre exemple, la taille de la note du milieu d'un 
+accord peut être modifiée de cette manière : 
+
+@cindex font-size, exemple de propriété
+@cindex @code{\tweak}, exemple
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
+<c e g>4
+<c \tweak #'font-size #-3 e g>4
+@end lilypond
 
-@c  FIXME: find a better example for 5.1 Moving Objects.  -gp
-@c  yes, I want this TODO to be visible to end-users.  It's better
-@c  than having nothing at all.
-À FAIRE : les modifications de la gestion des espacements de la version 2.12
-feront perdre leur pertinence aux exemples suivants.  Ils démontrent cependant 
-la puissance de LilyPond, et justifient à ce titre leur présence dans
-ces lignes, tant que d'autres exemples n'auront pas été proposés.
+Vous noterez que la syntaxe de @code{\tweak} est différente de 
+celle de la commande @code{\override}.  Ni le contexte, 
+ni l'objet n'ont besoin d'être spécifiés ; au contraire, cela 
+produirait une erreur si on le faisait.  Tous deux sont sous-entendus
+par l'élément suivant dans la chaîne de saisie.  La syntaxe générale 
+de la commande @code{\tweak} est donc, tout simplement :
 
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-  % temporary code to break this example:
-  \override TextScript #'outside-staff-priority = ##f
-e4^\markup{ \italic ritenuto } g b e
-@end lilypond
+@example
+\tweak #'@var{propriété-de-rendu} = #@var{valeur}
+@end example
 
-@cindex padding
+La commande @code{\tweak} est aussi utilisée quand on veut, dans 
+une série d'articulations, n'en modifier qu'une seule.  Ainsi :
 
-Le plus simple est ici d'augmenter la distance entre l'objet (du
-texte comme ici, ou bien des nuances ou des doigtés) et la note.
-Dans LilyPond, il s'agit de la propriété @code{padding}, qui
-se mesure en espaces relatifs à la taille de la portée. Pour la plupart
-des objets (chacun ayant sa propre valeur), elle est définie à 1.0, ou
-un peu moins.  Nous voulons ici l'augmenter : essayons 1.5.
+@cindex couleur, exemple de propriété
+@cindex @code{\tweak}, exemple
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-  % temporary code to break this example:
-  \override TextScript #'outside-staff-priority = ##f
-\once \override TextScript #'padding = #1.5
-e4^\markup{ \italic ritenuto } g b e
+a ^Black
+       -\tweak #'color #red ^Red
+       -\tweak #'color #green _Green
 @end lilypond
 
+@noindent
+Attention : la commande @code{\tweak} doit être précédée d'une 
+marque d'articulation, comme si elle-même était une articulation.
+
+@cindex nolets imbriqués
+@cindex triolets imbriqués
+@cindex crochet de nolet
+@cindex nolet, crochet
+@cindex triolet, crochet
+
+@funindex TupletBracket
+
+Quand plusieurs nolets sont imbriqués et commencent au même instant 
+musical, c'est encore la commande @code{\tweak} qui est utilisée pour 
+changer l'apparence de l'un d'entre eux.  Dans l'exemple suivant, le
+long crochet de nolet et le premier des trois crochets courts commencent
+au même instant musical ; une commande @code{\override} s'appliquerait 
+donc à la fois aux deux.  En revanche, @code{\tweak} permet  
+de les dissocier.  La première commande @code{\tweak} indique que 
+le long crochet doit être placé au-dessus des notes, et la seconde 
+indique que le coefficient de nolet doit être imprimé en rouge sur le 
+premier crochet de triolet court. 
+
+@cindex @code{\tweak}, exemple
+@cindex direction, exemple de propriété
+@cindex couleur, exemple de propriété
+
+@lilypond[quote,ragged-right,verbatim,fragment,relative=2]
+\tweak #'direction #up
+\times 4/3 {
+       \tweak #'color #red
+       \times 2/3 { c8[ c8 c8] }
+       \times 2/3 { c8[ c8 c8] }
+       \times 2/3 { c8[ c8 c8] }
+}
+@end lilypond
 
-C'est déjà mieux ! Mais on peut certainement encore améliorer le résultat. 
-Il nous semble, après plusieurs essais, que la meilleure valeur
-dans ce cas soit 2.3. Toutefois, ce constat est le fruit 
-d'expérimentations et de goût personnel en matière de notation.
-Essayez le même exemple avec 2.3... mais également avec 
-des valeurs plus grandes (ou plus petites).
-À votre avis, quelle est la meilleure version ?
+Si les nolets imbriqués ne commencent pas au même moment, 
+leur apparence peut alors être modifiée de la façon habituelle, 
+avec la commande @code{\override} :
+
+@cindex texte, exemple de propriété
+@cindex tuplet-number, example de fonction
+@cindex transparence, example de propriété
+@cindex TupletNumber, exemple de dérogation
+
+@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 {
+       c[ c]
+       c[ c]
+       \once \override TupletNumber #'transparent = ##t
+       \times 2/3 { c8[ c c] }
+\times 2/3 { c8[ c c]}
+}
+@end lilypond
 
+@seealso
+Manuel de notation :
+@ruser{The tweak command}.
 
-La propriété @code{staff-padding} est de nature similaire.
-@code{padding} détermine l'espace minimum entre un objet et l'objet
-le plus proche (le plus souvent une note ou les lignes de la portée) ;
-@code{staff-padding} détermine pour sa part l'espace minimum entre
-un objet et la portée. La différence est subtile, mais vous apparaîtra 
-clairement ici :
 
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-  % temporary code to break this example:
-  \override TextScript #'outside-staff-priority = ##f
-c4^"piu mosso" b a b
-\once \override TextScript #'padding = #4.6
-c4^"piu mosso" d e f
-\once \override TextScript #'staff-padding = #4.6
-c4^"piu mosso" fis a g
-\break
-c'4^"piu mosso" b a b
-\once \override TextScript #'padding = #4.6
-c4^"piu mosso" d e f
-\once \override TextScript #'staff-padding = #4.6
-c4^"piu mosso" fis a g
-@end lilypond
-
-@cindex extra-offset
-
-Une autre démarche permet de contrôler totalement la position d'un
-objet --- on peut le déplacer horizontalement ou verticalement.  Il
-suffit d'avoir recours à la propriété @code{extra-offset}.  En fait
-c'est une méthode plus complexe, qui peut en outre poser des
-problèmes.  Quand on déplace un objet à l'aide de @code{extra-offset},
-le déplacement est effectué après que LilyPond a placé tous les autres
-objets.  Par conséquent, l'objet ainsi déplacé peut venir
-recouvrir d'autres objets déjà placés.
+@node The Internals Reference manual
+@section The Internals Reference manual
 
+@cindex Références internes
 
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-  % temporary code to break this example:
-  \override TextScript #'outside-staff-priority = ##f
-\once \override TextScript #'extra-offset = #'( 1.0 . -1.0 )
-e4^\markup{ \italic ritenuto } g b e
-@end lilypond
+@menu
+* Properties of layout objects::  
+* Properties found in interfaces::  
+* Types of properties::         
+@end menu
 
-Lorsqu'on utilise @code{extra-offset}, le premier nombre décrit le
-déplacement horizontal (négatif pour un déplacement vers la gauche) 
-tandis que le deuxième décrit un déplacement vertical (positif 
-pour le haut).  Après quelques essais, on peut choisir les valeurs suivantes
-qui semblent donner un résultat satisfaisant.
+@node Properties of layout objects
+@subsection Properties of layout objects
 
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-  % temporary code to break this example:
-  \override TextScript #'outside-staff-priority = ##f
-\once \override TextScript #'extra-offset = #'( -1.6 . 1.0 )
-e4^\markup{ \italic ritenuto } g b e
+@cindex propriétés des objets de rendu
+@cindex propriétés des objets graphiques (grobs)
+@cindex grobs, propriétés
+@cindex objets de rendu, propriétés
+@cindex Manuel des références internes
+
+Imaginons que votre partition contienne une liaison trop fine à votre 
+goût et que vous vouliez la rendre plus épaisse.  Comment vous y 
+prendre ?  Vous êtes convaincu, avec tout ce qui a été dit sur la 
+souplesse de LilyPond, qu'une telle retouche est réalisable et 
+vous vous dites qu'elle fera sans doute intervenir la commande 
+@code{\override}.  Mais existe-t-il une propriété lourde qui s'applique 
+à une liaison et, dans l'affirmative, comment faire pour la modifier ? 
+C'est là qu'intervient la Référence des propriétés internes. 
+Elle contient toutes les informations dont vous avez besoin pour 
+construire n'importe quelle commande @code{\override}.
+
+Avant de nous plonger dans la Référence des propriétés 
+internes, un mot d'avertissement.  Il s'agit d'un document de 
+@strong{références}, de sorte qu'il ne contient pas ou peu 
+d'explications : son but est de présenter les informations de 
+façon précise et concise.  Cela peut paraître décourageant 
+à première vue.  Pas d'inquiétude !  Les conseils et les explications 
+fournis ici vous permettent de retrouver par vous-même les 
+informations dans la Référence des propriétés internes.  Il 
+suffit d'un peu de pratique. 
+
+@cindex override, exemple
+@cindex dérogation, exemple
+@cindex Références internes, exemple d'utilisation
+@cindex @code{\addlyrics} -- exemple
+
+Prenons un exemple concret tiré d'un morceau de musique connu :
+
+@lilypond[quote,verbatim,relative=2]
+{
+  \time 6/8
+  {
+    r4 b8 b[( g]) g |
+    g[( e]) e d[( f]) a |
+    a g
+  }
+  \addlyrics {
+    The man who feels love's sweet e -- mo -- tion
+  }
+}
 @end lilypond
 
-@noindent
+Admettons que nous voulions rendre les traits de liaison plus épais. 
+Est-ce possible ?  Une liaison est assurément un objet de rendu, si bien 
+que la question est @qq{Existe-t-il une propriété attachée aux liaisons 
+et qui en contrôle l'épaisseur ? } Pour y répondre, nous consultons la 
+Référence des propriétés internes (ou RPI pour faire court).
+
+Vous trouverez sur le site de LilyPond @uref{http://lilypond.org} la
+RPI correspondant à votre version du programme.  Allez sur la page 
+Documentation et cliquez sur Référence des propriétés internes. 
+Pour l'apprentissage, mieux vaut utiliser la version HTML standard, 
+et non la @q{page unique en anglais} ou le PDF.  Durant la lecture 
+des prochains paragraphes, il vous est conseillé de vous y reporter 
+réellement afin que les explications prennent tout leur sens.
+
+En dessous du bandeau d'en-tête figurent cinq liens.  Cliquez sur le lien 
+vers le @emph{Backend}, où se trouvent les informations sur les 
+objets de rendu.  En dessous du titre @strong{Backend}, choisissez 
+alors le lien vers @emph{Tous les objets de rendu}.  La page qui s'ouvre 
+énumère, dans l'ordre alphabétique, tous les objets utilisés dans votre 
+version de LilyPond.  Cliquez sur Liaisons (@emph{Slurs} en anglais), 
+et les propriétés des liaisons apparaîtront. 
+
+Il existe un autre moyen de trouver cette page, à partir du Manuel de 
+notation.  Une des pages qui traitent des liaisons contient un lien vers 
+la Référence des propriétés internes, qui mène directement à cette 
+page.  Mais lorsque vous connaissez le nom de l'objet à retoucher, le 
+plus simple est de consulter la RPI. 
+
+La page de la RPI sur les liaisons commence par préciser que les objets 
+Liaison sont créés par le graveur Slur_engraver.  Vient ensuite la liste 
+des réglages standard.  Attention : ceux-ci @strong{ne suivent pas} l'ordre 
+alphabétique.  Il faut donc les parcourir en entier pour trouver la propriété 
+susceptible de contrôler l'épaisseur des traits de liaison.
 
-Une fois encore, c'est après quelques tâtonnements que l'on a abouti à
-ces nombres, au regard du résultat final.  Si vous souhaitez que 
-le texte soit plus haut, plus à gauche, etc. essayez vous-même et choisissez
-aprés avoir regardé le résultat.
+@example
+@code{thickness} (number)
+     @code{1.2}
+     Épaisseur de ligne, généralement mesurée en @code{line-thickness}
+@end example
 
-Une dernière mise en garde : dans cette section, nous avons eu recours à
+Voilà qui semble approprié pour changer l'épaisseur (@emph{thickness} en
+anglais).  On apprend que la valeur de @code{thickness} 
+est un simple nombre (@emph{number}), qu'elle est par défaut 
+à 1,2 et que l'unité de mesure est fixée par une autre propriété 
+appelée @code{line-thickness}.
+
+Comme il a été indiqué, on ne trouve que peu, voire pas du tout 
+d'explications dans la RPI, mais nous en savons assez pour essayer 
+de changer l'épaisseur de la liaison.  Comme nous l'avons vu, le 
+nom de l'objet est @code{Slur}, le nom de la propriété à changer 
+est @code{thickness} et la nouvelle valeur sera un nombre supérieur 
+à 1.2 si l'on veut augmenter l'épaisseur du trait.
+
+Pour construire la commande @code{\override}, il suffit donc de 
+remplacer les valeurs que nous avons trouvées en guise de noms, en 
+laissant de côté le contexte.  Commençons par une valeur très élevée
+dans un premier temps, pour nous assurer que la commande fonctionne. 
+Nous obtenons :
 
 @example
-\once \override TextScript @dots{}
+\override Slur #'thickness = #5.0
 @end example
 
-ce qui permet de régler le placement du texte pour la note suivante. 
-Mais si cette note n'a pas de texte, le réglage ne s'appliquera pas
-et n'attendra @strong{pas} le prochain texte.  Pour que ce comportement 
-persiste après la commande, ne mettez pas @code{\once}.  Votre réglage
-s'appliquera alors partout, jusqu'à ce que vous l'annuliez au moyen de
-la commande @code{\revert}.  Ceci est expliqué en détail dans 
-@ruser{The \override command}.
+N'oublions pas le @code{#'} qui doit précéder le nom de la propriété et 
+le @code{#} qui doit précéder la nouvelle valeur.
+
+La dernière question est : @qq{Où placer cette commande ?}  
+Tant qu'on n'est pas sûr de soi, la meilleure réponse est @qq{À
+l'intérieur de l'expression musicale, avant la première liaison et
+proche d'elle.}  Essayons :
+
+@cindex Slur, exemple de dérogation
+@cindex thickness, exemple de propriété
+
+@lilypond[quote,verbatim,relative=2]
+{
+  \time 6/8
+  {
+    % Increase thickness of all following slurs from 1.2 to 5.0
+    \override Slur #'thickness = #5.0
+    r4 b8 b[( g]) g |
+    g[( e]) e d[( f]) a |
+    a g
+  }
+  \addlyrics {
+    The man who feels love's sweet e -- mo -- tion
+  }
+}
+@end lilypond 
 
-@lilypond[quote,fragment,ragged-right,verbatim,relative=3]
-  % temporary code to break this example:
-  \override TextScript #'outside-staff-priority = ##f
-c4^"piu mosso" b
-\once \override TextScript #'padding = #4.6
-  a4 b
-c4^"piu mosso" d e f
-\once \override TextScript #'padding = #4.6
-c4^"piu mosso" d e f
-c4^"piu mosso" d e f
-\break
-\override TextScript #'padding = #4.6
-c4^"piu mosso" d e f
-c4^"piu mosso" d e f
-\revert TextScript #'padding
-c4^"piu mosso" d e f
-@end lilypond
+@noindent
+et nous constatons que le trait de liaison est beaucoup plus épais.
+
+Telle est la façon normale de construire les commandes 
+@code{\override}.  Comme nous aurons l'occasion de le voir 
+par la suite, le problème est parfois plus complexe.  Dans 
+l'immédiat, nous en savons assez pour construire nos propres 
+commandes -- mais il faut encore s'exercer.  Les exemples 
+suivants sont là dans cette intention.
+
+@subheading Finding the context
+
+@cindex contexte, détermination du
+@cindex contexte, identification correcte du
+
+Tout d'abord, de quoi avions-nous besoin pour préciser le 
+contexte ?  À quoi devait-il ressembler ?  Gageons que les 
+liaisons appartiennent au contexte Voix, dans la mesure où 
+elles sont étroitement liées à une ligne mélodique, mais 
+comment en être sûr ?  Pour répondre à cette question, 
+revenons en haut de la page de la RPI consacrée aux liaisons ; 
+il est écrit : @q{Les objets Liaison sont créés par le graveur 
+Slur_engraver}.  Ainsi les liaisons seront créées dans n'importe 
+quel contexte où se trouve le @code{Slur_engraver}.  Suivons 
+le lien vers la page @code{Slur_engraver}.  Tout en bas, on 
+lit que le @code{Slur_engraver} est un élément appartenant 
+à cinq contextes Voix, dont le contexte de voix 
+standard, @code{Voice}.  Notre hypothèse était donc juste. 
+Et parce que @code{Voice} est un contexte de très bas 
+niveau, qu'il est activé sans ambiguïté par le fait que l'on est 
+en train de saisir des notes, on peut ici ne pas le mentionner.
+
+@subheading Overriding once only
+
+@cindex dérogation pour une seule fois
+@cindex usage unique, dérogation à
+
+@funindex \once
+@funindex once
+
+Dans le dernier exemple ci-dessus, @emph{toutes} les liaisons étaient plus 
+épaisses.  Et si on veut épaissir uniquement la première liaison ?  On
+recourt alors à la commande @code{\once}.  Placée juste avant la commande 
+@code{\override}, elle lui indique de ne changer que la liaison commençant 
+avec la note @strong{juste après}.  Si la note juste après n'ouvre pas une 
+liaison, la commande sera sans aucun effet -- elle ne reste pas en mémoire 
+jusqu'à la prochaine liaison, elle est purement et simplement ignorée.
+Il faut donc que la commande introduite par @code{\once} soit insérée
+comme suit : 
+
+
+@cindex Slur, exemple de dérogation
+@cindex thickness, exemple de propriété
+@cindex Liaison, exemple de dérogation
+@cindex Épaisseur, exemple de propriété
+
+@lilypond[quote,verbatim,relative=2]
+{
+  \time 6/8
+  {
+    r4 b8
+    % Increase thickness of immediately following slur only
+    \once \override Slur #'thickness = #5.0
+    b[( g]) g |
+    g[( e]) e d[( f]) a |
+    a g
+  }
+  \addlyrics {
+    The man who feels love's sweet e -- mo -- tion
+  }
+}
+@end lilypond 
 
-@seealso
+@noindent
+Alors seule la première liaison est rendue plus épaisse.
+
+La commande @code{\once} peut aussi être utilisée devant la commande 
+@code{\set}.
+
+@subheading Reverting
+
+@cindex revert
+@cindex retour
+@cindex défaut, retour aux propriétés par
+
+@funindex \revert
+@funindex revert
+
+Et si l'on voulait que les deux premières liaisons soient plus épaisses ? 
+On pourrait bien sûr utiliser deux commandes, chacune précédée de 
+@code{\once}, et placées juste avant la note par laquelle débute la 
+liaison :
+
+
+@cindex Slur, exemple de dérogation
+@cindex thickness, exemple de propriété
+@cindex Liaison, exemple de dérogation
+@cindex Épaisseur, exemple de propriété
+
+@lilypond[quote,verbatim,relative=2]
+{
+  \time 6/8
+  {
+    r4 b8
+    % Increase thickness of immediately following slur only
+    \once \override Slur #'thickness = #5.0
+    b[( g]) g |
+    % Increase thickness of immediately following slur only
+    \once \override Slur #'thickness = #5.0
+    g[( e]) e d[( f]) a |
+    a g
+  }
+  \addlyrics {
+    The man who feels love's sweet e -- mo -- tion
+  }
+}
+@end lilypond 
 
-Dans ce même manuel : @ruser{The \override command}, @ref{Common tweaks}.
+@noindent
+mais on peut aussi, au lieu de la commande @code{\once}, utiliser après 
+la seconde liaison la commande @code{\revert}, qui ramène la propriété 
+@code{thickness} à sa valeur par défaut .
+
+@cindex Slur, exemple de dérogation
+@cindex thickness, exemple de propriété
+@cindex Liaison, exemple de dérogation
+@cindex Épaisseur, exemple de propriété
+
+@lilypond[quote,verbatim,relative=2]
+{
+  \time 6/8
+  {
+    r4 b8
+    % Increase thickness of all following slurs from 1.2 to 5.0
+    \override Slur #'thickness = #5.0
+    b[( g]) g |
+    g[( e])
+    % Revert thickness of all following slurs to default of 1.2
+    \revert Slur #'thickness
+    e d[( f]) a |
+    a g
+  }
+  \addlyrics {
+  The man who feels love's sweet e -- mo -- tion
+  }
+}
+@end lilypond
 
+@noindent
+N'importe quelle propriété modifiée par @code{\override} peut ainsi 
+être ramenée, grâce à la commande @code{\revert}, à sa valeur par 
+défaut. 
+
+Ici s'achève notre introduction à la RPI et aux retouches 
+simples.  Vous trouverez d'autres exemples dans les prochaines 
+sections de ce chapitre ; ils vous permettront, d'une part, 
+d'apprendre à connaître un peu mieux la RPI et, d'autre part, de 
+vous entraîner un peu plus à y chercher les informations.  Ces 
+exemples seront progressivement accompagnés d'explications et 
+introduiront des termes nouveaux.
+@node Properties found in interfaces
+@subsection Properties found in interfaces
 
-@node Fixing overlapping notation
-@subsection Fixing overlapping notation
+@cindex interface
+@cindex interfaces, propriétés des
+@cindex propriétés des interfaces
+
+Supposons maintenant que nous voulions imprimer des paroles en italique.  
+Quelle formulation de la commande @code{\override} allons-nous utiliser ? 
+Nous consultons en premier lieu, comme précédemment, la page de la RPI 
+qui contient la liste @q{Tous les objets de rendu}, et recherchons 
+un objet qui contrôle les paroles.  Nous trouvons @code{LyricText}, qui 
+semble approprié.  Nous cliquons dessus et nous voyons apparaître les 
+différentes propriétés des paroles, parmi lesquelles @code{font-series} 
+et @code{font-size}.  Mais aucune ne propose l'italique.  Car la mise 
+en forme des caractères est une propriété commune à tous les objets 
+d'écriture, si bien que, au lieu de figurer dans tous les objets de rendu, 
+elle est regroupée avec d'autres propriétés semblables et placée dans une 
+@strong{Interface}, la @code{font-interface}.
+
+Il nous faut donc apprendre à trouver les propriétés des interfaces 
+et découvrir les objets qui utilisent les propriétés de ces interfaces.
+
+Retournons à la page de la RPI qui traite des paroles
+(@emph{LyricText}).  En bas de la page est dressée sous forme de liens
+la liste des interfaces qui concernent LyricText.  Cette liste comporte
+plusieurs entrées, dont @code{font-interface}.  En cliquant dessus, nous
+voyons apparaître les différentes propriétés associées à cette
+interface, qui sont en même temps les propriétés de tous les objets qui
+s'y rapportent, parmi lesquels  LyricText.
+
+Nous avons alors sous les yeux tous les réglages de propriétés qui 
+contrôlent les polices de caractères, et notamment 
+@code{font-shape(symbole)}, où @code{symbole} peut prendre la valeur 
+@code{upright}, @code{italics} ou @code{caps}.
+
+Vous remarquerez que @code{font-series} et @code{font-size} figurent 
+aussi dans la liste.  La question qui ne manque pas de se poser est : 
+@qq{Comment se fait-il que les propriétés @code{font-series} et 
+@code{font-size} se retrouvent à la fois dans @code{LyricText} et dans 
+l'interface @code{font-interface} alors que ce n'est pas le cas pour 
+@code{font-shape} ?}  La réponse est que lorsqu'un objet @code{LyricText} 
+est créé, les valeurs globales par défaut de @code{font-series} et 
+@code{font-size} sont modifiées, mais pas celles de @code{font-shape}. 
+Les possibilités de modification dans @code{LyricText} ne concernent 
+donc que les valeurs à appliquer à @code{LyricText}.  Les autres objets qui 
+dépendent de @code{font-interface} fixeront leurs propriétés différemment 
+lorsqu'ils seront créés.
+
+Voyons maintenant si nous sommes en mesure de formuler la commande 
+@code{\override} pour mettre les paroles en italique.  L'objet est 
+@code{LyricText}, la propriété est @code{font-shape} et la valeur est 
+@code{italic}.  Comme auparavant, nous laissons de côté le contexte. 
+
+Signalons rapidement -- même si cette remarque est importante -- que,
+puisque les valeurs de @code{font-shape} se présentent sous forme de
+symboles, elles doivent être précédées d'une simple apostrophe,
+@code{'}.  C'est pour cette raison qu'il fallait une apostrophe devant
+@code{thickness} dans l'exemple précédent, et qu'il en faut une devant
+@code{font-shape}. Ce sont à chaque fois des symboles, qui sont
+interprétés comme tels par LilyPond.  Certains symboles peuvent être des
+noms de propriété, comme @code{thickness} ou @code{font-shape},
+d'autres sont des valeurs à attribuer aux propriétés, comme
+@code{italic}. À ne pas confondre avec les chaînes de caractères libres,
+qui se présentent comme @code{"un texte libre"} ; pour plus de détails
+sur les symboles et les chaînes de caractères, voir @ref{Scheme
+tutorial}. 
+
+Ainsi, la commande @code{\override} pour mettre les paroles en italique 
+est : 
 
-Dans la section @ref{Moving objects}, nous avons vu comment
-déplacer un objet @code{TextScript}.  Ce même procédé peut être
-appliqué à d'autres types d'objet : il vous suffira de remplacer
-@code{TextScript} par le nom de l'objet en question.
+@example
+\override LyricText #'font-shape = #'italic
+@end example
 
-Pour trouver cette dénomination, regardez les liens @q{@strong{Voir aussi}}
-en bas des pages de la documentation.  Par exemple, en bas de la page
-@ruser{Dynamics}, nous trouvons 
+@noindent
+et elle doit être placée juste devant et tout près des paroles à modifier, 
+comme ceci :
 
-@quotation
-@seealso
+@cindex font-shape, exemple de propriété
+@cindex italic, exemple
+@cindex LyricText, exemple de dérogation
+@cindex @code{\addlyrics}, exemple
 
-Référence du programme : @rinternals{DynamicText}, @rinternals{Hairpin}.
-Le placement vertical de ces symboles est contrôlé par
-@rinternals{DynamicLineSpanner}.
-@end quotation
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+{
+  \time 6/8
+  {
+    r4 b8 b[( g]) g |
+    g[( e]) e d[( f]) a |
+    a g
+  }
+  \addlyrics {
+    \override LyricText #'font-shape = #'italic
+    The man who feels love's sweet e -- mo -- tion
+  }
+}
+@end lilypond
 
 @noindent
+et voilà les paroles en italiques.
+
+@subheading Specifying the context in lyric mode
 
-Ce qui implique que, pour modifier la hauteur d'une nuance, nous utiliserons
+@cindex contexte, spécification en mode lyrique
+@cindex mode lyrique, spécification de contexte en
+
+Lorsqu'il s'agit de paroles et qu'on cherche à préciser le contexte 
+sur le modèle de ce qui a été fait précédemment, la commande échoue. 
+Car une syllabe saisie en mode Paroles (lyricmode) se termine 
+obligatoirement par une espace, un saut de ligne ou un nombre. Tout 
+autre caractère compte comme un élément de la syllabe. C'est pourquoi 
+il faut une espace ou un saut de ligne avant le @code{@}} final, pour 
+éviter qu'il ne soit assimilé à la dernière syllabe. De même, il faut insérer 
+des espaces avant et après le point, @q{.}, qui sépare le nom de 
+contexte du nom de l'objet, faute de quoi les deux noms seront joints et 
+l'interpréteur ne pourra pas les reconnaître. La formulation correcte est 
+donc : 
 
 @example
-\override DynamicLineSpanner #'padding = #2.0
+\override Lyrics . LyricText #'font-shape = #'italic
 @end example
 
-Nous ne listerons pas ici tous les types d'objets, mais seulement
-les plus communs :
-
-@multitable @columnfractions .33 .66
-@headitem Type d'objet            @tab Nom de l'objet
-@item Nuances (verticalement)     @tab @code{DynamicLineSpanner}
-@item Nuances (horizontalement)   @tab @code{DynamicText}
-@item Laisons de tenue            @tab @code{Tie}
-@item Liaisons                    @tab @code{Slur}
-@item Indications d'articulation  @tab @code{Script}
-@item Doigtés                     @tab @code{Fingering}
-@item Textes (@code{^"texte"})    @tab @code{TextScript}
-@item Repères                     @tab @code{RehearsalMark}
-@end multitable
+@warning{Dans la saisie des paroles, pensez à toujours laisser une
+espace entre la dernière syllabe et l'accolade fermante.}
 
+@warning{Lorsqu'on retouche des paroles, toujours placer des espaces 
+autour du point qui sépare le nom de contexte du nom d'objet.}
 
-@node Real music example
-@subsection Real music example
+@seealso
+Manuel d'initiation : @ref{Scheme tutorial}.
 
-@untranslated
 
+@node Types of properties
+@subsection Types of properties
 
-@c DEPRECATED SECTION
-@node Common tweaks
-@section Common tweaks
 
-Certains réglages sont si courants que des raccourcis sont fournis
-sous forme de commandes telles que @code{\slurUp} ou @code{\stemDown}.  
-Toutes ces commandes sont décrites dans les différentes sections
-de la Référence de notation.
+@cindex propriété, types de
+
+Nous avons vu jusqu'à maintenant deux types de propriétés :
+@code{nombre} et @code{symbol}.  Pour pouvoir fonctionner, la valeur
+associée à une propriété doit correspondre au type attendu et suivre les
+règles liées à ce type.  Le type de propriété est toujours donné entre
+parenthèses après le nom de propriété dans la RPI.  Voici une liste des
+différents types de propriétés, avec les règles qui les régissent et
+quelques exemples d'utilisation.  Il faut, bien sûr, toujours ajouter un
+symbole hash, @code{#}, devant ces valeurs lors de la saisie de la
+commande @code{\override}. 
+
+@multitable @columnfractions .2 .45 .35
+@headitem Type de propriété 
+  @tab Règles
+  @tab Exemples
+@item Booléenne (anglais @emph{Boolean})
+  @tab Vrai (@emph{true} en anglais) ou Faux (@emph{false} en anglais),
+sous la forme #t  ou #f
+  @tab @code{#t}, @code{#f}
+@item Dimension (en lignes de portée)
+  @tab Un nombre positif décimal (en unités de lignes de portée)
+  @tab @code{2.5}, @code{0.34}
+@item Direction
+  @tab Une direction valide ou son équivalent numérique (valeur décimale
+comprise entre -1 et 1 seulement)
+  @tab @code{LEFT}, @code{CENTER}, @code{UP}, @code{1}, @code{-1}
+@item Durée (@emph{Moment} en anglais)
+  @tab Une durée de note construite avec la fonction make-moment
+  @tab @code{(ly:make-moment 1 4)}, @code{(ly:make-moment 3 8)}
+@item Entier (@emph{Integer} en anglais)
+  @tab Un nombre entier positif
+  @tab @code{3}, @code{1}
+@item Inconnu (@emph{Unknown} en anglais)
+  @tab Un processus, ou @code{#f} pour empêcher toute action 
+  @tab @code{bend::print}, @code{ly:text-interface::print}, @code{#f}
+@item Liste
+  @tab Plusieurs valeurs séparées par une espace, encadrées par des
+parenthèses et prédédées par une apostrophe 
+  @tab @code{'(left-edge staff-bar)}, @code{'(1)}, @code{'(1.0 0.25 0.5)}
+@item Markup (ou étiquette)
+  @tab Toute commande @code{\markup} valide
+  @tab @code{\markup @{ \italic "cresc." @}}
+@item Nombre
+  @tab Une valeur décimale positive ou négative
+  @tab @code{3.5}, @code{-2.45}
+@item Paire (de nombres)
+  @tab Deux nombres séparées par @q{espace . espace}, encadrés 
+par des parenthèses et précédés par une apostrophe
+  @tab @code{'(2 . 3.5)}, @code{'(0.1 . -3.2)}
+@item Symbole
+  @tab L'un des symboles autorisés pour cette propriété, précédé par une
+apostrophe
+  @tab @code{'italic}, @code{'inside}
+@item Vecteur
+  @tab Une liste de trois éléments encadrés par des parenthèses et
+précédés par apostrophe-hash, @code{'#}
+  @tab @code{'#(#t #t #f)}
+@end multitable
 
-La liste complète des modifications possibles pour chaque type d'objet
-(tel que liaison ou ligature) se trouve dans la Référence du
-programme.  Cependant, certaines propriétés sont communes à de nombreux
-objets, et on peut de ce fait définir quelques réglages génériques.
+@seealso
+Manuel d'initiation : @ref{Scheme tutorial}.
 
 
-@itemize @bullet
+@node Appearance of objects
+@section Appearance of objects
 
-@cindex padding
+Il est temps de mettre en pratique les notions apprises précédemment
+pour modifier l'allure de la partition ; les exemples qui suivent
+montrent l'utilisation des différentes méthodes de retouche.  
 
-@item
-La propriété @code{padding} peut être définie de manière à
-accroître (ou décroître) la distance entre les symboles qui se
-placent au-dessus ou au-dessous des notes.  Ce qui s'applique à
-tous les objets régis par @code{side-position-interface}.
+@menu
+* Visibility and color of objects::  
+* Size of objects::             
+* Length and thickness of objects::  
+@end menu
 
-@lilypond[quote,fragment,relative=1,verbatim]
-c2\fermata
-\override Script #'padding = #3
-b2\fermata
+
+@node Visibility and color of objects
+@subsection Visibility and color of objects
+
+Dans un but pédagogique, on peut être amené à masquer certains éléments
+d'une partition, que les élèves doivent ensuite compléter.  Imaginons,
+par exemple, un exercice dans lequel il faudrait rétablir les barres de
+mesure dans un morceau de musique. En temps normal, les barres de mesure
+s'insèrent automatiquement.  Comment faire pour les effacer de la
+partition ?  
+
+Avant de nous y attaquer, souvenons-nous que les propriétés d'objets
+sont parfois groupées dans ce qu'on appelle des @emph{interfaces} --
+voir @ref{Properties found in interfaces}.  Cela permet de rapprocher
+toutes les propriétés susceptibles d'être utilisées ensemble pour
+modifier un objet graphique -- si l'une d'elles est choisie pour un
+objet, elle s'appliquera à tous les autres.  Certains objets tirent
+alors leurs propriétés de telle ou telle interface, d'autres objets de
+telle ou telle autre interface.  La liste des interfaces qui contiennent
+les propriétés liées à un objet graphique (@emph{grob}) figure dans la
+RPI, en bas de la page de description du @emph{grob} ; pour voir ces
+propriétés, il faut aller voir ces interfaces.  
+
+Nous avons vu, dans @ref{Properties of layout objects}, comment trouver 
+les informations sur les @emph{grobs}.  Nous procédons de la même manière
+et consultons la RPI pour connaître l'objet chargé d'imprimer les barres
+de mesure.  En cliquant sur @emph{Backend} puis sur @emph{Tous les
+objets de rendu}, nous trouvons un objet appelé @code{BarLine}.  Parmi 
+ses propriétés, deux d'entre elles déterminent son aspect visuel : 
+@code{break-visibility} et @code{stencil}.  L'objet @code{BarLine} 
+est également lié à plusieurs interfaces, dont la @code{grob-interface} 
+où figurent les propriétés @code{transparent} et @code{color}.  Toutes
+peuvent modifier l'aspect visuel des barres de mesure -- et de beaucoup
+d'autres objets, bien sûr.  Examinons chacune d'elles tour à tour.
+
+@subheading stencil
+
+@cindex stencil, propriété
+
+Cette propriété contrôle l'apparence des barres de mesure en précisant 
+le type de symbole (glyphe) à imprimer.  Comme pour de nombreuses 
+autres propriétés, on peut lui indiquer de ne rien imprimer en lui
+attribuant la valeur @code{#f}.  Essayons en laissant de côté, une fois
+encore, le contexte concerné (@code{Voice} en l'occurrence) : 
+
+@cindex BarLine, exemple de dérogation
+@cindex stencil, exemple de propriété
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+{
+  \time 12/16
+  \override BarLine #'stencil = ##f
+  c4 b8 c d16 c d8 |
+  g, a16 b8 c d4 e16 |
+  e8
+}
 @end lilypond
 
-@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
+Les barres de mesure sont encore là !  Pourquoi ?  Retournons à la RPI
+et regardons de nouveau la page qui traite des propriétés de BarLine.
+En haut de la page, il est précisé que @qq{Les objets BarLine sont créés
+par le graveur Bar_engraver}.  Allons à la page de @code{Bar_engraver}. 
+Tout en bas se trouve la liste des contextes dans lesquels fonctionne ce 
+graveur.  Tous sont du type @code{Staff}, de sorte que, si la commande 
+@code{\override} n'a pas fonctionné comme prévu, c'est parce que 
+@code{Barline} n'appartient pas au contexte par défaut, @code{Voice}. 
+Si le contexte spécifié est erroné, la commande ne fonctionne pas.  Cela 
+n'entraîne pas de message d'erreur, et rien n'apparaît sur le fichier log. 
+Essayons de corriger en mentionnant le bon contexte : 
+
+@cindex BarLine, exemple de dérogation
+@cindex stencil, exemple de propriété
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+{
+  \time 12/16
+  \override Staff.BarLine #'stencil = ##f
+  c4 b8 c d16 c d8 |
+  g, a16 b8 c d4 e16 |
+  e8
+}
 @end lilypond
 
-Notez, dans le second exemple, l'importance de savoir à quel contexte
-correspond l'objet.  Dans la mesure où l'objet @code{MetronomeMark}
-appartient au contexte @code{Score}, ses modifications affectées au
-contexte @code{Voice} ne l'affecteront pas.  Pour plus de détails, voir 
-@ruser{Constructing a tweak}.
+Cette fois, les barres de mesure ont disparu.
 
-@cindex extra-offset
+@subheading break-visibility
 
-@item
-La propriété @code{extra-offset} permet de déplacer latéralement et
-verticalement ; c'est pourquoi elle requiert deux nombres.  Le premier
-affecte le placement horizontal (un nombre positif déplace l'objet
-vers la droite) ; le second le placement vertical (un nombre positif
-déplace l'objet vers le haut).  Cette propriété est de bas niveau : le
-moteur de formatage ne tient aucun compte des placements qu'elle induit.
+@cindex break-visibility, propriété
 
-Dans l'exemple suivant, le second doigté est déplacé un peu vers la gauche, et
-plus bas de 1.8 espaces :
+La RPI mentionne, à la page sur @code{BarLine}, que la propriété
+@code{break-visibility} attend comme argument un vecteur de trois
+boléens.  Ceux-ci indiquent respectivement si les barres de mesure
+doivent être imprimées ou non à la fin de la ligne, à l'intérieur de la
+ligne et au début de la ligne.  Dans notre cas, nous voulons que toutes
+les barres soient supprimées, si bien que la valeur dont nous avons
+besoin est @code{'#(#f@tie{}#f@tie{}#f)}. Essayons, sans oublier
+d'ajouter le contexte @code{Staff}.  Vous remarquerez que, en plus de
+cette valeur, nous ajoutons @code{#'#} devant la parenthèse ouvrante.
+Le @code{'#} est nécessaire car il fait partie intégrante de la valeur
+contenant un vecteur, et le premier @code{#} est là, comme toujours avec
+la commande @code{\override}, pour introduire la valeur elle-même. 
 
-@lilypond[quote,fragment,relative=1,verbatim]
-\stemUp
-f-5
-\once \override Fingering
-    #'extra-offset = #'(-0.3 . -1.8)
-f-5
+@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, a16 b8 c d4 e16 |
+  e8
+}
 @end lilypond
 
-@item
-La propriété @code{transparent} imprime les objets avec de 
-l'@q{encre invisible} : l'objet n'est pas visible, mais tous
-les comportement le concernant s'appliquent quand même.  Il occupe
-une certaine place, intervient dans la gestion des collisions, et on
-peut lui attacher des liaisons ou des ligatures.
-
-@cindex transparents, objets
-@cindex suppression d'objets
-@cindex masquage d'objets
-@cindex invisibles, objets
-
-L'exemple suivant montre comment tenir des notes entre différentes voix,
-au moyen de liaisons.  Ces liaisons de tenue, en principe, ne peuvent relier
-que deux notes d'une même voix.  On introduit donc la liaison dans une
-autre voix :
+Comme on peut le constater, cette solution-là aussi supprime les barres 
+de mesure.
 
-@lilypond[quote,fragment,relative=2]
-<< {
-  b8~ b8\noBeam
-} \\ {
-  b[ g8]
-} >>
+@subheading transparent
+
+@cindex transparent, propriété
+@cindex transparence
+
+La RPI mentionne, à la page sur @code{grob-interface}, que la propriété
+@code{transparent} attend comme argument un boléen.  Il faudrait donc
+mettre @code{#t} pour rendre l'objet transparent.  Dans cet exemple,
+essayons de rendre transparente la métrique (@emph{time signature} en
+anglais) plutôt que les barres de mesure.  Pour cela, il nous faut
+trouver le nom du @emph{grob} chargé de l'indication de mesure.  De
+retour sur la page @q{Tous les objets de rendu} de la RPI, nous
+cherchons les propriétés de l'objet @code{TimeSignature}.  Celui-ci est
+géré par le graveur @code{Time_signature_engraver} qui, comme vous
+pouvez le constater, appartient au contexte @code{Staff} et peut se
+rattacher à la @code{grob-interface}.  Dans ces conditions, la commande
+pour rendre la métrique transparente est : 
+
+@cindex TimeSignature, exemple de dérogation
+@cindex transparent, exemple de propriété
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+{
+  \time 12/16
+  \override Staff.TimeSignature #'transparent = ##t
+  c4 b8 c d16 c d8 |
+  g, a16 b8 c d4 e16 |
+  e8
+}
 @end lilypond
 
 @noindent
-et on efface la première croche (hampe vers le haut) de ladite voix ; 
-maintenant la liaison semble passer d'une voix à l'autre :
+La métrique a bien disparu mais la commande a laissé un blanc en lieu et
+place du chiffrage.  Ce peut être souhaitable dans le cadre d'un
+exercice, afin que les élèves aient la place à compléter, mais dans
+d'autres circonstances, ce peut être gênant.  Pour y remédier,
+attribuons plutôt au stencil des métriques la valeur @code{#f} : 
 
+@cindex TimeSignature, exemple de dérogation
+@cindex stencil, exemple de propriété
 
-@lilypond[quote,fragment,relative=2,verbatim]
-<< {
-  \once \override Stem #'transparent = ##t
-  b8~ b8\noBeam
-} \\ {
-  b[ g8]
-} >>
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+{
+  \time 12/16
+  \override Staff.TimeSignature #'stencil = ##f
+  c4 b8 c d16 c d8 |
+  g, a16 b8 c d4 e16 |
+  e8
+}
 @end lilypond
 
-Pour s'assurer que le crochet de la hampe que nous avons effacée ne 
-raccourcira pas la liaison, nous allons également rallonger cette hampe,
-en attribuant à la propriété @code{length} la valeur @code{8} :
+@noindent
+La différence est flagrante : le fait d'attribuer au stencil la valeur
+@code{#f} supprime totalement l'objet, tandis que le fait de le rendre
+@code{transparent} le laisse en place, mais de façon invisible. 
+
+@subheading color
+
+@cindex color, propriété
+
+Essayons enfin de rendre les barres de mesure invisibles en les colorant
+en blanc.  La difficulté est de savoir si les barres blanches vont
+couper ou non les lignes de la portée aux endroits où elles se
+croisent.  Vous verrez dans les exemples ci-dessous que cela peut se
+produire, sans qu'on le sache à l'avance.  Les explications de ce
+phénomène et les solutions pour y remédier sont exposées dans
+@ruser{Painting objects white}.  Pour le moment, acceptons cet
+inconvénient et concentrons-nous sur l'apprentissage de la gestion des
+couleurs. 
+
+La @code{grob-interface} indique que la valeur de la propriété
+@code{color} est une liste, sans plus d'explication.  En fait, cette
+liste est une liste de valeurs en unités internes ; pour éviter d'avoir
+à chercher ce qu'il faut y mettre, il existe différents moyens
+d'indiquer la couleur.  Le premier moyen consiste à utiliser l'une des
+couleurs @emph{normales} de la première @ruser{List of colors}.  Pour
+mettre les barres de mesure en blanc, on écrit :  
+
+@cindex BarLine, exemple de dérogation
+@cindex color, exemple de propriété
 
-@lilypond[quote,fragment,relative=2,verbatim]
-<< {
-  \once \override Stem #'transparent = ##t
-  \once \override Stem #'length = #8
-  b8~ b8\noBeam
-} \\ {
-  b[ g8]
-} >>
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+{
+  \time 12/16
+  \override Staff.BarLine #'color = #white
+  c4 b8 c d16 c d8 |
+  g, a16 b8 c d4 e16 |
+  e8
+}
 @end lilypond
 
-@end itemize
+@noindent
+et nous constatons que les barres de mesure sont une fois de plus
+invisibles.  Attention : aucune apostrophe ne précède @code{white} -- il
+ne s'agit pas d'un symbole mais d'une @emph{fonction}.  Quand on
+l'invoque, elle fournit une liste de valeurs internes requises pour
+changer la couleur en blanc.  Les autres couleurs aussi, dans la
+@qq{liste normale}, sont des fonctions.  Pour en être certain, vous
+pouvez faire l'essai en choisissant une autre fonction de la liste en
+guise de couleur. 
 
-@cindex retouches, distances
-@cindex distances
+@cindex couleur X11
+@cindex X11, couleurs
 
-Les distances dans LilyPond sont mesurées dans l'unité staff-space
-(espace de portée) tandis que la plupart des propriétés relatives aux
-épaisseurs sont mesurées à l'aide de l'unité line-thickness (épaiseur
-de ligne). Toutefois, certaines d'entre-elles échappent à cette règle
-: par exemple l'épaisseur des liens de croches est mesurée à l'aide de
-l'unité staff-space.  Pour de plus amples informations, 
-consultez les sections correspondantes de la Référence du programme.
+@funindex x11-color
 
+Le deuxième moyen de changer la couleur consiste à utiliser la deuxième
+@ruser{List of colors}, dite noms de couleurs X11.  Ceux-ci doivent
+obligatoirement être précédés d'une autre fonction, qui convertit les
+noms de couleurs X11 en une liste de valeurs internes, @code{x11-color},
+comme ceci : 
 
-@node Further tweaking
-@section Further tweaking
+@cindex BarLine, exemple de dérogation
+@cindex color, exemple de propriété
 
-@menu
-* Other uses for tweaks::       
-* Using variables for tweaks::  
-* Other sources of information::  
-* Avoiding tweaks with slower processing::  
-* Advanced tweaks with Scheme::  
-@end menu
+@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, a16 b8 c d4 e16 |
+  e8
+}
+@end lilypond
 
-@node Other uses for tweaks
-@subsection Other uses for tweaks
+@noindent
+Vous noterez que, dans ce cas, la fonction @code{x11-color} admet un
+symbole comme argument ; il faut donc placer une apostrophe devant le
+symbole et insérer les deux à l'intérieur de parenthèses.  
 
-@untranslated
+@cindex rgb, couleur
+@cindex couleurs rgb
 
-@node Using variables for tweaks
-@subsection Using variables for tweaks
+@funindex rgb-color
 
-@untranslated
+Il existe une troisième fonction, écrite pour convertir les valeurs RGB
+en couleurs internes -- la fonction @code{rgb-color}.  Elle comporte
+trois arguments, donnant respectivement l'intensité du rouge, du vert et
+du bleu.  Ces arguments prennent des valeurs comprises entre 0 et 1.
+Ainsi, pour choisir la couleur rouge, la valeur serait 
+@code{(rgb-color1 0 0)} ; pour le blanc, ce serait 
+@code{(rgb-color 1 1 1)} : 
 
-@node Other sources of information
-@subsection Other sources of information
+@cindex BarLine, exemple de dérogation
+@cindex color, exemple de propriété
 
-La Référence du programme contient
-beaucoup d'informations sur LilyPond. Cependant vous pouvez en découvrir 
-encore plus en consultant les fichiers internes de LilyPond.
+@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, a16 b8 c d4 e16 |
+  e8
+}
+@end lilypond
 
-Des réglages par défaut (tels que les définitions des blocs
-@code{\header@{@}}) sont contenus dans des fichiers @code{.ly}. D'autres 
-(comme les définitions des commandes @qq{markup} ) sont contenus dans
-des fichiers @code{.scm} (Scheme).  Malheureusement, des explications
-plus complètes dépassent le cadre de ce manuel.
-Les utilisateurs qui souhaiteraient comprendre le fonctionnement de
-ces fichiers de configuration doivent être avertis que des
-connaissances techniques substantielles et beaucoup de temps sont nécessaires.
+Enfin, il existe une échelle de gris parmi les possibilités de couleurs
+X11.  Elle va du noir, @code{'grey0}, au blanc, @code{'grey100}, avec
+un pas de 1.  Essayons de l'utiliser en attribuant à tous les objets de
+notre exemple différentes nuances de gris : 
 
-@itemize @bullet
+@cindex StaffSymbol, exemple de dérogation
+@cindex TimeSignature, exemple de dérogation
+@cindex Clef, exemple de dérogation
+@cindex NoteHead, exemple de dérogation
+@cindex Stem, exemple de dérogation
+@cindex BarLine, exemple de dérogation
+@cindex color, exemple de propriété
+@cindex x11-color, exemple d'utilisation
 
-@item Linux : @file{@var{dossierduprogramme}/lilypond/usr/share/lilypond/current/}
+@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, a16 b8 c d4 e16 |
+  e8
+}
+@end lilypond
 
-@item Mac OS X :
-@file{@var{dossierduprogramme}/LilyPond.app/Contents/Resources/share/lilypond/current/}.
-Pour accéder à ce dossier, deux possibilités : soit, dans un Terminal,
-taper @code{cd} suivi du chemin complet ci-dessus ; soit
-Control-cliquer (ou clic droit) sur l'application LilyPond
-et sélectionner @q{Afficher le contenu du paquet}.
+@noindent
+Vous remarquerez le contexte associé à chacun des objets.  Une erreur
+sur ce point empêcherait la commande de fonctionner.  Souvenez-vous que
+le contexte est celui dans lequel est placé le graveur approprié.  Pour
+chaque graveur, on peut trouver son contexte par défaut en partant de
+l'objet lui-même, puis en cherchant le graveur qui le produit ; la page
+du graveur dans la RPI nous indique alors le contexte dans lequel le
+graveur se trouve normalement. 
 
 
-@item Windows : @file{@var{dossierduprogramme}/LilyPond/usr/share/lilypond/current/}
+@node Size of objects
+@subsection Size of objects
 
-@end itemize
+@cindex modification de la taille des objets
+@cindex taille d'objets
+@cindex objets, taille
+@cindex objets, modification de taille
 
-Les répertoires @file{ly/} et @file{scm/} sont tout particulièrement
-intéressants.  En effet les fichiers du type
-@file{ly/property-init.ly} ou encore @file{ly/declarations-init.ly}
-déterminent toutes les définitions avancées communes.
+Pour commencer, reprenons l'exemple qui se trouvait dans 
+@ref{Nesting music expressions}, qui montrait comment créer une nouvelle
+portée temporaire, du type  @rglos{ossia}. 
 
-@node Avoiding tweaks with slower processing
-@subsection Avoiding tweaks with slower processing
+@cindex alignAboveContext, exemple de propriété
+@cindex @code{\with}, exemple
 
-LilyPond peut effectuer des vérifications supplémentaires lors du 
-traitement des fichiers, cependant le rendu nécessitera alors plus de
-temps.  En contrepartie, il y aura moins d'ajustements manuels à réaliser.
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+\new Staff ="main" {
+       \relative g' {
+         r4 g8 g c4 c8 d |
+         e4 r8
+         <<
+           { f c c }
+           \new Staff \with {
+             alignAboveContext = #"main" }
+           { f8 f c }
+         >>
+         r4 |
+  }
+}
+@end lilypond
+
+Normalement, les ossia ne comportent ni clef ni indication de mesure, et
+elles sont imprimées légèrement plus petit que la portée principale.
+Nous avons déjà appris à enlever la clef et la métrique -- il suffit de
+régler le stencil de chacun sur @code{#f}, comme ceci : 
+
+@cindex alignAboveContext, exemple de propriété
+@cindex @code{\with}, exemple
+@cindex stencil, exemple de propriété
+@cindex Clef, exemple de dérogation
+@cindex TimeSignature, exemple de dérogation
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+\new Staff ="main" {
+  \relative g' {
+    r4 g8 g c4 c8 d |
+    e4 r8
+    <<
+      { f c c }
+      \new Staff \with {
+        alignAboveContext = #"main"
+      }
+      {
+        \override Staff.Clef #'stencil = ##f
+        \override Staff.TimeSignature #'stencil = ##f
+        { f8 f c }
+      }
+    >>
+    r4 |
+  }
+}
+@end lilypond
+
+@noindent
+La paire d'accolades ajoutée après la clause @code{\with} est nécessaire
+pour être sûr que les retouches (@code{\override}) ainsi que la musique
+qui se trouvent à l'intérieur soient bien appliquées à la portée
+d'ossia. 
+
+Mais alors, quelle différence y a-t-il à modifier le contexte de portée
+au moyen de @code{\with} ou à modifier les stencils de la clef et de la
+métrique  avec @code{\override} ?  La principale différence est que les
+changements opérés dans une clause @code{\with} sont réalisés au moment
+où le contexte est créé et restent par la suite les valeurs @strong{par
+défaut} aussi longtemps que ce contexte existe, tandis que les commandes
+@code{\set} ou @code{\override} insérées dans la musique sont dynamiques
+-- elles provoquent des changements synchronisés avec un point
+particulier de la musique.  Si les changements sont annulés ou
+désactivés par @code{\unset} ou@code{\revert}, les réglages reprennent
+les valeurs par défaut, c'est-à-dire celles qui ont été fixées dans la
+clause @code{\with}, ou, en l'absence de celle-ci, les valeurs par
+défaut normales. 
+
+Certaines propriétés de contexte ne peuvent être modifiées que dans une
+clause @code{\with}.  Il s'agit des propriétés qu'on ne peut évidemment
+plus changer après que le contexte a été créé.  C'est le cas de 
+@code{alignAboveContext} et de son pendant, @code{alignBelowContext} 
+-- une fois que la portée a été créée, son alignement est décidé et cela
+n'aurait aucun sens de vouloir le modifier par la suite. 
+
+Dans une clause @code{\with}, on peut aussi régler les valeurs par
+défaut des propriétés d'un objet.  Il suffit d'utiliser la commande 
+@code{\override} normale, sans s'occuper du nom de contexte 
+puisqu'il ne fait pas de doute qu'il s'agit du contexte en cours de 
+modification par la clause @code{\with}.  Il se produirait même une 
+erreur si le contexte était précisé.
+
+Remplaçons donc l'exemple ci-dessus par celui-ci :
+
+@cindex alignAboveContext, exemple de propriété
+@cindex @code{\with}, exemple
+@cindex Clef, exemple de dérogation
+@cindex TimeSignature, exemple dérogation
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+\new Staff ="main" {
+  \relative g' {
+    r4 g8 g c4 c8 d |
+    e4 r8
+    <<
+      { f 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
+
+Venons-en finalement au changement de taille des objets.
+
+Certains objets sont créés comme des glyphes choisis dans une police de
+caractères.  C'est le cas des têtes de notes, des altérations, des
+@emph{markup}, des clefs, des métriques, des nuances et des paroles.
+Pour changer leur taille, on modifie la propriété @code{font-size},
+comme nous le verrons rapidement.  D'autres objets, comme les liaisons
+de phrasé ou de prolongation -- en général les objets étendus -- sont
+dessinés à la demande, si bien qu'aucune @code{font-size} ne leur est
+associée.  Ces objets tirent généralement leur dimension des objets
+auxquels ils sont rattachés, de sorte qu'on ne doit pas avoir à les
+redimensionner à la main.  D'autres propriétés, comme la hauteur des
+hampes et des barres de mesure, l'épaisseur des ligatures et d'autres
+lignes, et l'écartement des lignes de portée, doivent encore être
+modifiées de façon particulière. 
+
+Si l'on revient à l'exemple d'ossia, commençons par changer la taille de
+police.  Nous pouvons employer deux méthodes.  Soit nous changeons la
+taille de police de chaque type d'objet avec des commandes comme 
+celle-ci pour les têtes de notes (@code{NoteHead}) :
 
-  
 @example
-%%  Ceci sert à s'assurer que les indications textuelles resteront à l'intérieur des marges de la page.
-\override Score.PaperColumn #'keep-inside-line = ##t 
+\override NoteHead #'font-size = #-2
 @end example
 
+soit nous changeons la taille de toutes les polices à la fois grâce à la 
+propriété @code{fontSize}, en utilisant @code{\set} ou en l'insérant 
+dans une clause @code{\with} (mais alors sans le @code{\set}).
 
-@node Advanced tweaks with Scheme
-@subsection Advanced tweaks with Scheme
+@example
+\set fontSize = #-2
+@end example
 
-Nous avons déjà vu comment le résultat obtenu avec LilyPond peut être
-largement personnalisé à l'aide de commandes comme 
-@code{\override TextScript #'extra-offset = ( 1 . -1)}.  Cependant,
-l'utilisation de Scheme ouvre des possibilités encore plus grandes.
-Pour des explications complètes là-dessus, consultez le 
-@ref{Scheme tutorial}  et les @ruser{Interfaces for programmers}.
+Chacune de ces méthodes réduira la taille de police de deux points par 
+rapport à sa valeur précédente, sachant que chaque point réduit ou 
+augmente la taille d'environ 12 %.
 
-On peut utiliser Scheme simplement à l'aide des commandes @code{\override}.
+Essayons sur l'exemple d'ossia :
 
-@lilypond[quote,verbatim,ragged-right]
-padText = #(define-music-function (parser location padding) (number?)
-#{
-  \once \override TextScript #'padding = #$padding
-#})
+@cindex alignAboveContext, exemple de propriété
+@cindex @code{\with}, exemple
+@cindex Clef, exemple de dérogation
+@cindex TimeSignature, exemple de dérogation
+@cindex fontSize, exemple de propriété
 
-\relative c''' {
-  c4^"piu mosso" b a b
-  \padText #1.8
-  c4^"piu mosso" d e f
-  \padText #2.6
-  c4^"piu mosso" fis a g
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+\new Staff ="main" {
+  \relative g' {
+    r4 g8 g c4 c8 d |
+    e4 r8
+    <<
+      { f 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
-On peut s'en servir pour créer de nouvelles commandes :
 
-@lilypond[quote,verbatim,ragged-right]
-tempoMark = #(define-music-function (parser location padding marktext)
-                                    (number? string?)
-#{
-  \once \override Score . RehearsalMark #'padding = $padding
-  \once \override Score . RehearsalMark #'extra-spacing-width = #'(+inf.0 . -inf.0)
-  \mark \markup { \bold $marktext }
-#})
+Ce n'est pas encore parfait.  Les têtes de notes et les crochets sont
+plus petits mais, proportionnellement, les hampes sont trop longues et
+les lignes de portée trop espacées.  Il faut donc les réduire dans les
+mêmes proportions que les polices de caractères.  La prochaine
+sous-section montrera comment faire. 
 
-\relative c'' {
-  c2 e
-  \tempoMark #3.0 #"Allegro"
-  g c
+@node Length and thickness of objects
+@subsection Length and thickness of objects
+
+@cindex distance
+@cindex épaisseur
+@cindex longueur
+@cindex magstep
+@cindex taille, modification
+@cindex hampe, modification de longueur
+@cindex écartement des lignes, modification
+
+Dans LilyPond, les écartements et longueurs sont généralement mesurés en
+@qq{intervalles de lignes} (@emph{staff-spaces} en anglais),
+c'est-à-dire l'écartement qui sépare deux lignes adjacentes dans la
+portée -- plus rarement, il est question de demi-intervalles de lignes.  
+Les propriétés d'épaisseur (@code{thickness}), quant à elles, sont
+généralement mesurées en unités d'une propriété interne appelée
+@qq{épaisseur de ligne} (@code{line-thickness}).  Par exemple, les
+lignes de crescendo/decrescendo présentent par défaut une épaisseur de 1
+unité de @code{line-thickness}, alors que l'épaisseur d'une hampe est de
+1,3.  Toutefois, certaines propriétés d'épaisseur sont différentes : par
+exemple, l'épaisseur des ligature se mesure en espaces de portée. 
+
+Dans ces conditions, comment ajuster les longueurs à la taille des 
+polices de caractères ?  La solution consiste à utiliser une fonction 
+spéciale appelée @code{magstep} -- pseudo facteur de zoom --, créée
+précisément dans ce but.  Elle comporte un argument, le changement de
+taille de police (#-2 dans l'exemple précédent), à partir duquel elle
+applique un facteur de mise à l'échelle qui réduit, ou augmente, les
+objets en proportion.  Voici comment elle s'utilise : 
+
+@cindex alignAboveContext, exemple de propriété
+@cindex @code{\with}, exemple
+@cindex Clef, exemple de dérogation
+@cindex TimeSignature, exemple de dérogation
+@cindex fontSize , exemple de propriété
+@cindex StaffSymbol, exemple de dérogation
+@cindex magstep, exemple d'utilisation de la fonction
+@cindex staff-space, exemple de propriété
+@cindex stencil, exemple de propriété
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+\new Staff ="main" {
+  \relative g' {
+    r4 g8 g c4 c8 d |
+    e4 r8
+    <<
+      { f 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
 
-On peut même y inclure des expressions musicales :
+@noindent
+Puisque la longueur des hampes et plusieurs autres propriétés de
+longueur sont calculées par rapport à la valeur de la propriété
+@code{staff-space}, elles sont automatiquement mises à l'échelle.  Vous 
+remarquerez que cela n'affecte que la dimension verticale de l'ossia --
+la dimension horizontale étant déterminée par les objets de la portée
+principale de façon à rester synchronisée vis-à-vis d'elle, elle n'est
+pas affectée par tous ces changements de taille.  Bien sûr, si l'échelle
+de toute la portée principale était modifiée, tout le placement
+horizontal s'en trouverait affecté.  Il en sera question plus bas dans
+cette section. 
+
+Voilà qui complète la création d'une ossia. Les tailles et longueurs de tous 
+les objets peuvent être modifiées de manière analogue.
+
+Pour de petits changements d'échelle, comme dans l'exemple ci-dessus, il
+n'est généralement pas utile d'ajuster l'épaisseur des différentes
+lignes telles que les barres de mesure, les ligatures, les soufflets de
+crescendo/decrescendo, les liaisons, etc.  Si l'épaisseur d'un objet en
+particulier doit être ajustée, le mieux est de modifier sa propriété
+@code{thickness}.  Nous avons vu plus haut, dans 
+@ref{Properties of layout objects}, un exemple de modification de
+l'épaisseur des liaisons.  L'épaisseur de tous les objets tracés
+(c'est-à-dire ceux qui ne proviennent pas d'une police de caractère)
+peut être changée de la même manière. 
 
-@lilypond[quote,verbatim,ragged-right]
-pattern = #(define-music-function (parser location x y) (ly:music? ly:music?)
-#{
-  $x e8 a b $y b a e
-#})
+@node Placement of objects
+@section Placement of objects
 
-\relative c''{
-  \pattern c8 c8\f
-  \pattern {d16 dis} { ais16-> b\p }
-}
+ @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
+
+Dans la notation musicale, il y a des objets qui appartiennent à la 
+portée et d'autres qui sont placés à l'extérieur de la portée. On les 
+appelle respectivement les @q{objets de la portée} (@emph{within-staff
+objects} en anglais) et les @q{objets extérieurs à la portée}
+(@emph{outside-staff objects}en anglais). 
+
+Les objets de la portée sont ceux qui sont placés sur la portée 
+-- les têtes de notes et les hampes, les altérations, etc.  Leur
+position est généralement déterminée par la musique elle-même -- ils
+sont placés verticalement sur des lignes spécifiques ou sont liés à
+d'autres objets placés de cette manière.  Normalement, les collisions
+entre les têtes et queues de notes et les altérations dans des accords
+proches sont évitées automatiquement.  Comme nous le verrons rapidement,
+il existe des commandes et des possibilités de retouches qui permettent
+de modifier ce comportement automatique. 
+
+Parmi les objets extérieurs à la portée, on compte des éléments comme
+les marques de reprise, les indications de texte ou de nuances.  Dans
+LilyPond, la règle est de placer verticalement ces objets extérieurs à
+la portée le plus près possible de la portée, tout en évitant la
+collision avec d'autres objets.  LilyPond utilise la propriété
+@code{outside-staff-priority} pour déterminer l'ordre selon lequel
+placer ces objets, de la manière suivante : 
+
+D'abord, LilyPond dresse la liste de tous les objets extérieurs à la
+portée.  Puis ceux-ci sont classés suivant leur
+@code{outside-staff-priority}.  Enfin, ils sont pris un par un, en 
+commençant par les objets avec la @code{outside-staff-priority} la plus
+basse, et placés de façon à ne pas entrer en collision avec d'autres
+objets déjà placés.  Cela signifie que, si deux @emph{grobs} extérieurs
+à la portée doivent occuper la même place, c'est celui qui a la
+@code{outside-staff-priority} la plus basse qui est placé le plus près
+de la portée.  Et si deux objets ont la même
+@code{outside-staff-priority}, le premier rencontré sera placé le plus
+près de la portée.  
+
+Dans l'exemple suivant, tous les @emph{markup} ont la même priorité, 
+dans la mesure où rien n'est indiqué explicitement.  Vous remarquerez
+que @code{Text3} est également positionné près de la portée, juste
+en-dessous de @code{Text2}. 
+
+@cindex markup, exemple
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+c2^"Text1"
+c^"Text2"
+c^"Text3"
+c^"Text4"
+@end lilypond
+
+Les portées aussi sont positionnées, par défaut, le plus près possible 
+les unes des autres, en ménageant tout de même une certaine séparation.
+Si des notes se rapprochent nettement d'une portée adjacente, elles ne
+forceront les portées à s'écarter que s'il y a un risque de
+chevauchement.  
+
+@lilypond[quote,ragged-right,verbatim]
+<<
+  \new Staff {
+    \relative c' { c a, }
+  }
+  \new Staff {
+    \relative c'''' { c a, }
+  }
+>>
+@end lilypond 
+
+
+@node Within-staff objects
+@subsection Within-staff objects
+
+Nous avons vu que les commandes @code{\voiceXXX} jouent sur la 
+direction des liaisons, des doigtés et sur toute autre chose liée à 
+l'orientation des queues de notes. Ces commandes sont essentielles dans 
+la musique polyphonique pour distinguer des lignes mélodiques 
+entremêlées.  Mais il arrive qu'on ait besoin de modifier ce comportement 
+automatique.  On peut le faire pour toutes les parties de la musique ou 
+juste pour une note.  La propriété qui contrôle ce comportement est la 
+propriété @code{direction} de chaque objet.  Expliquons d'abord ce 
+qu'elle fait, puis nous présenterons un certain nombre de commandes 
+déjà prêtes qui évitent, pour les modifications les plus courantes, 
+d'avoir à encoder les retouches. 
+
+Certains objets comme les traits des liaisons se recourbent tantôt 
+vers le haut, tantôt vers le bas ; d'autres encore, comme les hampes 
+et les crochets, peuvent se décaler vers la gauche ou vers la droite 
+selon qu'ils pointent vers le haut ou vers le bas.  Ce comportement est 
+géré automatiquement dès lors que @code{direction} est activé. 
+
+@cindex down
+@cindex up
+@cindex center
+@cindex neutral
+
+L'exemple ci-dessous montre dans la première mesure le comportement par 
+défaut des hampes -- celles des notes les plus hautes pointant vers le
+bas et celles des notes les plus basses pointant vers le haut ; viennent
+ensuite quatre notes avec les hampes forcées vers le bas, puis quatre
+autres avec les hampes forcées vers le haut, et pour finir quatre notes
+de nouveau avec le comportement par défaut. 
+
+@cindex Stem, exemple de dérogation
+@cindex direction, exemple de propriété
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+a4 g c a
+\override Stem #'direction = #DOWN
+a g c a
+\override Stem #'direction = #UP
+a g c a
+\revert Stem #'direction
+a g c a
+@end lilypond
+
+Nous utilisons ici les directions @code{DOWN} et @code{UP}.  Elles 
+correspondent respectivement aux valeurs @code{-1} et @code{+1}, 
+que l'on peut utiliser à la place.  La valeur @code{0} peut aussi être 
+utilisée dans certains cas.  Elle est interprétée comme un @code{UP} 
+pour les hampes, et comme un @q{centré} pour d'autres objets.  Il
+existe une direction, @code{CENTER}, qui correspond à la valeur
+@code{0}. 
+
+Quoi qu'il en soit, ces retouches manuelles sont rarement utilisées car
+il existe des équivalents sous forme de commandes prédéfinies.  Voici un
+tableau des plus courantes.  Lorsque ce n'est pas évident, leur
+signification est précisée. 
+
+@multitable @columnfractions .2 .2 .25 .35
+@headitem Bas/Gauche
+  @tab Haut/Droite
+  @tab Annulation
+  @tab Effet
+@item @code{\arpeggioArrowDown}
+  @tab @code{\arpeggioArrowUp}
+  @tab @code{\arpeggioNormal}
+  @tab Flèche en bas, en haut, ou pas de flèche
+@item @code{\dotsDown}
+  @tab @code{\dotsUp}
+  @tab @code{\dotsNeutral}
+  @tab Déplacement des points pour éviter les lignes de portée
+@item @code{\dynamicDown}
+  @tab @code{\dynamicUp}
+  @tab @code{\dynamicNeutral}
+  @tab
+@item @code{\phrasingSlurDown}
+  @tab @code{\phrasingSlurUp}
+  @tab @code{\phrasingSlurNeutral}
+  @tab Attention : à distinguer des commandes de liaison ci-dessous
+@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 Le texte saisi en tant qu'extension est au-dessous/au-dessus de la portée
+@item @code{\tieDown}
+  @tab @code{\tieUp}
+  @tab @code{\tieNeutral}
+  @tab
+@item @code{\tupletDown}
+  @tab @code{\tupletUp}
+  @tab @code{\tupletNeutral}
+  @tab Les nolets sont au-dessous/au-dessus des notes
+@end multitable
+
+Attention : ces commandes prédéfinies @strong{ne doivent pas} être
+précédées de @code{\once}.  Pour limiter l'effet à une seule note, il
+faut soit utiliser la commande équivalente @code{\once \override}, soit
+utiliser la commande prédéfinie, suivie, après la note à modifier, de la
+commande @code{\xxxNeutral} correspondante. 
+
+@subheading Fingering
+
+@cindex doigtés, positionnement
+@cindex doigtés, accords
+
+Le placement des doigtés sur des notes simples peut aussi être contrôlé
+par la propriété @code{direction}, mais le changement de
+@code{direction} n'a pas d'effet sur les accords.  Comme nous le
+verrons, il existe des commandes qui permettent de contrôler le doigté
+sur chaque note d'un accord, en plaçant l'indication de doigté
+au-dessus, en dessous, à gauche ou à droite de chaque note. 
+
+Tout d'abord, voici l'effet de @code{direction} sur le doigté lié à une
+note simple.  La première mesure montre le comportement par défaut, et
+les deux suivantes montrent l'effet lorsqu'on indique @code{DOWN} et
+@code{UP} : 
+
+@cindex doigtés, exemple de dérogation
+@cindex direction, exemple de propriété
+
+@lilypond[quote,verbatim,relative=2]
+c-5 a-3 f-1 c'-5
+\override Fingering #'direction = #DOWN
+c-5 a-3 f-1 c'-5
+\override Fingering #'direction = #UP
+c-5 a-3 f-1 c'-5
+@end lilypond
+
+Le fait d'intervenir sur la propriété @code{direction} n'est sûrement
+pas la façon la plus simple de placer manuellement les doigtés au-dessus
+ou en dessous des notes ; mieux vaut utiliser @code{_} ou @code{^}
+devant le chiffre de doigté plutôt que @code{-}.  Voici ce que donne
+l'exemple précédent avec cette méthode : 
+
+@cindex doigtés, exemple
+
+@lilypond[quote,verbatim,relative=2]
+c-5 a-3 f-1 c'-5
+c_5 a_3 f_1 c'_5
+c^5 a^3 f^1 c'^5
+@end lilypond
+
+La propriété @code{direction} ne fonctionne pas pour les accords alors
+que les préfixes de direction, @code{_} et @code{^}, fonctionnent.  Par
+défaut, le doigté est placé automatiquement à la fois au-dessus et
+au-dessous des notes d'un accord, comme ceci : 
+
+@cindex doigtés, exemple
+
+@lilypond[quote,verbatim,relative=2]
+<c-5 g-3>
+<c-5 g-3 e-2>
+<c-5 g-3 e-2 c-1>
+@end lilypond
+
+@noindent
+mais il est possible de forcer manuellement vers le haut ou vers le bas le 
+placement de tous ou certains chiffres de doigté, comme ceci :
+
+@cindex doigtés, exemple
+
+@lilypond[quote,verbatim,relative=2]
+<c-5 g-3 e-2 c-1>
+<c^5 g_3 e_2 c_1>
+<c^5 g^3 e^2 c_1>
+@end lilypond
+
+On peut aller encore plus loin dans le positionnement des doigtés pour
+chacune des notes d'un accord grâce à la commande @code{\set
+fingeringOrientations}.  La syntaxe de cette commande est :
+
+@example
+@code{\set fingeringOrientations = #'([up] [left/right] [down])}
+@end example
+
+@noindent
+On utilise @code{\set} car @code{fingeringOrientations} est une propriété 
+du contexte @code{Voice}, créée et utilisée par le graveur 
+@code{New_fingering_engraver}.
+
+On peut attribuer à cette propriété une liste composée de une à trois 
+valeurs.  Celles-ci déterminent si l'indication de doigté doit être
+placée au-dessus (lorsque @code{up} apparaît dans la liste), au-dessous
+(lorsque @code{down} apparaît), à gauche (lorsque @code{left} apparaît)
+ou à droite (lorsque @code{right} apparaît).  En revanche, si une valeur
+n'est pas sur la liste, aucun doigté n'ira à cet emplacement.  LilyPond
+garde ces contraintes en mémoire et recherche le meilleur emplacement
+pour le doigté des notes des accords suivants.  Vous remarquerez que
+@code{left} et @code{right} s'excluent l'un l'autre -- l'indication de
+doigté ne peut être placée que d'un côté ou de l'autre, pas des deux. 
+
+@warning{Ppour contrôler à l'aide de cette commande le placement du
+doigté sur une note simple, il faut la saisir comme un accord composé
+d'une note unique, en l'encadrant de chevrons.}
+
+Voici quelques exemples : 
+
+@cindex doigtés, exemple
+@cindex @code{\set}, exemple d'utilisation
+@cindex fingeringOrientations, exemple de propriété
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
+\set fingeringOrientations = #'(left)
+<f-2>
+< c-1  e-2 g-3 b-5 > 4
+\set fingeringOrientations = #'(left)
+<f-2>
+< c-1  e-2 g-3 b-5 > 4
+\set fingeringOrientations = #'(up left down)
+<f-2>
+< c-1  e-2 g-3 b-5 > 4
+\set fingeringOrientations = #'(up left)
+<f-2>
+< c-1  e-2 g-3 b-5 > 4
+\set fingeringOrientations = #'(right)
+<f-2>
+< c-1  e-2 g-3 b-5 > 4
+@end lilypond
+
+@noindent
+Si les indications de doigtés paraissent un peu serrées, on peut 
+toujours réduire la taille de police (@code{font-size}).  La valeur 
+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
+\set fingeringOrientations = #'(left)
+<f-2>
+< c-1  e-2 g-3 b-5 > 4
+\set fingeringOrientations = #'(left)
+<f-2>
+< c-1  e-2 g-3 b-5 > 4
+\set fingeringOrientations = #'(up left down)
+<f-2>
+< c-1  e-2 g-3 b-5 > 4
+\set fingeringOrientations = #'(up left)
+<f-2>
+< c-1  e-2 g-3 b-5 > 4
+\set fingeringOrientations = #'(right)
+<f-2>
+< c-1  e-2 g-3 b-5 > 4
+@end lilypond
+
+
+@node Outside staff objects
+@subsection Outside staff objects
+
+Les objets extérieurs à la portée sont placés automatiquement de façon à
+éviter les collisions.  Les objets avec la plus petite valeur de la
+propriété @code{outside-staff-priority} sont placés au plus près de la
+portée, tandis que les autres sont écartés autant qu'il faut pour éviter
+les collisions.  La @code{outside-staff-priority} est définie dans la
+@code{grob-interface} ; elle est donc une propriété commune à tous les
+objets de rendu.  Par défaut, elle est réglée sur @code{#f} pour tous
+les objets de la portée, et porte une valeur numérique appropriée à
+chacun des objets extérieurs à la portée, à mesure qu'ils sont créés.
+Le tableau suivant montre la valeur numérique par défaut pour
+quelques-uns des objets extérieurs à la portée les plus courants qui
+sont placés, par défaut, dans les contextes @code{Staff} ou
+@code{Voice}. 
+
+@multitable @columnfractions .3 .3 .3
+@headitem Objet de rendu
+  @tab Priorité 
+  @tab Contrôle la position de :
+@item @code{MultiMeasureRestText}
+  @tab @code{450}
+  @tab Texte sur les silences qui couvrent des mesures entières 
+@item @code{TextScript}
+  @tab @code{450}
+  @tab Texte des @emph{markup} (ou étiquettes)
+@item @code{OttavaBracket}
+  @tab @code{400}
+  @tab Indication d'octaviation
+@item @code{TextSpanner}
+  @tab @code{350}
+  @tab Bandeau ou extension de texte
+@item @code{DynamicLineSpanner}
+  @tab @code{250}
+  @tab Toutes les marques de nuances
+@item @code{VoltaBracketSpanner}
+  @tab @code{100}
+  @tab Bandeau de répétition
+@item @code{TrillSpanner}
+  @tab @code{50}
+  @tab Bandeau de trille
+@end multitable
+
+Voici un exemple qui montre le placement par défaut de certains 
+d'entre eux.
+
+@cindex text spanner
+@cindex ottava bracket
+
+@funindex \startTextSpan
+@funindex startTextSpan
+@funindex \stopTextSpan
+@funindex stopTextSpan
+
+@cindex TextSpanner, exemple de dérogation
+@cindex bound-details, exemple de propriété
+
+@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' \startTextSpan
+% Add Dynamic Text
+c\pp
+% Add Dynamic Line Spanner
+c\<
+% Add Text Script
+c^Text
+c c
+% Add Dynamic Text
+c\ff c \stopTextSpan
+% Stop Ottava Bracket
+\ottava #0
+c, c c c
+@end lilypond
+
+Cet exemple montre comment créer des extensions de texte (@emph{Text
+Spanners} en anglais ) -- texte avec des longues lignes au-dessus d'un
+passage musical.  L'extension s'étend depuis la commande
+@code{\startTextSpan} jusqu'à la commande @code{\stopTextSpan} et le
+format de texte est défini par la commande @code{\override TextSpanner}.
+Pour de plus amples détails, voir @ruser{Text spanners}.
+
+Il montre aussi comment créer des marques d'octaviation.
+
+@cindex modification du positionnement des numéros de mesure
+@cindex numéros de mesure, modification du positionnement
+@cindex modification du positionnement des indications métronomiques
+@cindex indications métronomiques, modification du positionnement
+@cindex modification du positionnement des marques de repère
+@cindex marques de repère, modification du positionnement
+
+Vous aurez remarqué que les numéros de mesure, l'indication métronomique
+et les marques de répétition n'apparaissent pas.  Par défaut, ils sont
+créés dans le contexte @code{Score} et leur
+@code{outside-staff-priority} est ignorée face aux objets qui sont créés
+dans le contexte @code{Staff}.  Si vous voulez faire apparaître les
+numéros de mesure, l'indication métronomique ou les marques de
+répétition conformément à la valeur de leur
+@code{outside-staff-priority}, il vous faudra retirer respectivement le
+@code{Bar_number_engraver}, le @code{Metronome_mark_engraver} oule
+@code{Mark_engraver} du contexte @code{Score} et les placer en haut du
+contexte @code{Staff}.  Après quoi ces marques porteront les valeurs de 
+@code{outside-staff-priority} par défaut suivantes : 
+
+@multitable @columnfractions .3 .3
+@headitem Objet de rendu          @tab Priorité
+@item @code{RehearsalMark}        @tab @code{1500}
+@item @code{MetronomeMark}        @tab @code{1000}
+@item @code{BarNumber}            @tab @code{ 100}
+@end multitable
+
+Si les valeurs de @code{outside-staff-priority} par défaut ne donnent
+pas les résultats que vous attendez, il suffit de modifier la priorité
+de l'un de ces objets.  Supposons que vous vouliez placer l'indication
+d'octaviation sous le bandeau de texte, dans l'exemple précédent.  Tout
+ce que nous devons faire, c'est regarder la priorité de
+@code{OttavaBracket} dans la RPI ou dans le tableau plus haut, et la
+ramener à une valeur plus basse que celle de @code{TextSpanner}, en
+gardant à l'esprit que @code{OttavaBracket} est créé dans le contexte
+@code{Staff} : 
+
+@cindex TextSpanner, exemple de dérogation
+@cindex bound-details, exemple de propriété
+
+@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' \startTextSpan
+% Add Dynamic Text
+c\pp
+% Add Dynamic Line Spanner
+c\<
+% Add Text Script
+c^Text
+c c
+% Add Dynamic Text
+c\ff c \stopTextSpan
+% Stop Ottava Bracket
+\ottava #0
+c, c c c
+@end lilypond
+
+Le fait de changer la @code{outside-staff-priority} peut aussi servir à
+contrôler le positionnement vertical des objets individuels, quoique le
+résultat ne soit pas toujours formidable.  Imaginons que nous voulions
+placer @qq{Text3} au-dessus de @qq{Text4} dans l'exemple de la section
+Comportement automatique, plus haut (voir @ref{Automatic behavior}).  Il
+nous suffit pour cela de regarder dans la RPI ou dans le tableau plus
+haut la priorité de @code{TextScript}, et d'augmenter la priorité de
+@qq{Text3} jusqu'à une valeur très haute : 
+
+@cindex TextScript, exemple de dérogation
+@cindex outside-staff-priority, exemple de propriété
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+c2^"Text1"
+c^"Text2"
+\once \override TextScript #'outside-staff-priority = #500
+c^"Text3"
+c^"Text4"
+@end lilypond
+
+S'il est vrai que cela place @qq{Text3} au-dessus de @qq{Text4}, ça le
+place aussi plus haut que @qq{Text2} tandis que @qq{Text4} dégringole.
+Ce n'est peut-être pas si bien que ça.  En fait, ce que nous aimerions
+faire, c'est placer toutes les annotations à égale distance de la
+portée.  Pour cela, nous avons besoin d'espacer horizontalement les
+notes pour laisser plus de place au texte.  C'est possible grâce à la
+commande @code{textLengthOn}. 
+
+@subheading \textLengthOn
+
+@cindex notes, répartition selon le texte
+
+@funindex \textLengthOn
+@funindex textLengthOn
+@funindex \textLengthOff
+@funindex textLengthOff
+
+Par défaut, l'espacement horizontal d'un texte produit sous forme de
+@emph{markup} (ou d'étiquette) n'est pas pris en compte, dans la mesure
+où ce qui est concerné n'entre pas dans la musique.  La commande
+@code{\textLengthOn} inverse ce comportement, faisant en sorte que les
+notes soient espacées autant qu'il faut pour s'adapter au texte :  
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+\textLengthOn  % Cause notes to space out to accommodate text
+c2^"Text1"
+c^"Text2"
+c^"Text3"
+c^"Text4"
+@end lilypond  
+
+La commande qui permet de revenir au comportement par défaut est 
+@code{\textLengthOff}.  Rappelez-vous que @code{\once} ne 
+fonctionne qu'avec @code{\override}, @code{\set}, @code{\revert} ou 
+@code{\unset}, et donc ne peut pas être utilisé avec 
+@code{\textLengthOn}.
+
+@cindex markup text, allowing collisions
+
+Les textes des @emph{markup} éviteront également les notes qui
+s'échappent au-dessus de la portée.  Si ce n'est pas notre souhait, il
+est possible de supprimer ce déplacement automatique vers le haut en
+attribuant à la priorité la valeur @code{#f}.  Voici un exemple qui
+montre comment les textes des @emph{markup} interagissent avec ces types
+de notes. 
+
+@cindex TextScript, exemple de dérogation
+@cindex outside-staff-priority, exemple de propriété
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+% This markup is short enough to fit without collision
+c2^"Tex"
+c''2
+R1
+% This is too long to fit, so it is displaced upwards
+c,,2^"Text"
+c''2
+R1
+% Turn off collision avoidance
+\once \override TextScript #'outside-staff-priority = ##f
+c,,2^"Long Text   "
+c''2
+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 modifier le positionnement des nuances
+@cindex nuances, modifier le positionnement
+
+Les indications de nuances se placent normalement sous la portée mais on
+peut les placer au-dessus avec la commande @code{dynamicUp}.  Elles se
+positionnent verticalement par rapport à la note à laquelle elles sont
+liées et se décalent vers le bas (ou le haut) en fonction des objets de
+la portée comme les liaisons de phrasé ou les numéros de mesure.  Cela
+peut donner d'assez bons résultats, comme le montre cet exemple : 
+
+@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
+
+De toute façon, si les notes et les nuances qui leur sont liées sont 
+trop proches, le positionnement automatique évitera les collisions en  
+déplaçant davantage les nuances suivantes, mais le résultat peut ne 
+pas être très satisfaisant, comme le montre cet exemple artificiel : 
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+\dynamicUp
+a4\f b\mf c\mp b\p
+@end lilypond
+
+@noindent
+Si une telle situation devait survenir dans de la musique @qq{réelle},
+il serait préférable d'espacer un peu plus les notes, de façon que les
+indications de nuance puissent toutes se situer à la même distance de la
+portée.  Il était possible de faire cela pour les textes de
+@emph{markup} grâce à la commande @code{\textLengthOn} mais il n'existe
+pas d'équivalent pour les indications de nuance.  Il nous faut donc
+chercher à faire cela avec la commande @code{\override}. 
+
+@subheading Grob sizing
+
+@cindex grob, dimensionnement
+@cindex dimensionnement des grobs
+
+Tout d'abord, nous devons apprendre ce qui détermine la dimension des 
+grobs. Tous les grobs portent en eux un point de référence qui est 
+utilisé pour les positionner par rapport à leur objet parent. Ce point du 
+grob est placé à une distance horizontale, @code{X-offset}, 
+et à une distance verticale, @code{Y-offset}, de son parent. 
+L'étendue horizontale de l'objet est fixée par une paire de 
+nombres, @code{X-extent}, qui donnent la position du coin 
+gauche et du coin droit par rapport au point de référence.  De 
+même, l'étendue verticale est fixée par une paire de nombre, 
+@code{Y-extent}. Ce sont des propriétés communes à tous les 
+grobs et que gère la @code{grob-interface}.
+
+@cindex @code{extra-spacing-width}
+
+Par défaut, la largeur des objets extérieurs à la portée est donnée 
+comme étant nulle, si bien qu'ils peuvent se chevaucher 
+horizontalement. Pour arriver à cela, on a ajouté l'infini à 
+l'extension gauche et moins l'infini à l'extension droite, en 
+attribuant à @code{extra-spacing-width} la valeur
+ @code{'(+inf.0 . -inf.0)}. Pour être sûr que les objets ne se 
+chevaucheront pas horizontalement, nous devons donc corriger 
+cette valeur de @code{extra-spacing-width} en @code{'(0 . 0)}, 
+afin que leur vraie largeur se manifeste. La commande pour y 
+parvenir avec des indications de nuances est : 
+
+@example
+\override DynamicText #'extra-spacing-width = #'(0 . 0)
+@end example
+
+@noindent
+Voyons si ça marche sur notre exemple précédent :
+
+@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
+Bon, cela a mis un terme aux déplacements verticaux des 
+nuances mais il reste deux problèmes. Il faudrait que les 
+nuances soient un peu plus écartées et ce serait mieux si 
+elles étaient toutes à la même distance de la portée. Le 
+premier problème est simple à résoudre. Au lieu d'attribuer 
+à @code{extra-spacing-width} la valeur zéro, nous pourrions 
+mettre un peu plus. L'unité est la distance entre deux lignes 
+de portée, donc en écartant le bord gauche d'une demi-unité 
+et le bord droit d'une demi-unité, on obtient : 
+
+@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
+C'est mieux mais nous voulons peut-être aligner les indications de 
+nuances sur une même ligne plutôt que de les voir monter et 
+descendre avec les notes. La propriété qui gère cela est 
+@code{staff-padding} ; la section suivante lui est consacrée.
+
+
+@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
+
+Aussi surprenant que cela puisse paraître, LilyPond n'est pas parfait.
+Certains éléments sur la partition peuvent se chevaucher, ce qui est 
+regrettable mais, le plus souvent, facile à corriger. En général, quand 
+on déplace des objets, c'est pour des raisons de lisibilité ou 
+d'esthétique -- ils rendraient mieux avec un peu plus ou un peu moins 
+d'espace autour d'eux. 
+
+Il y a trois façons de résoudre les problèmes de chevauchement. Il est 
+préférable de les aborder dans l'ordre suivant :
+
+@enumerate
+@item
+L'@strong{orientation} d'un objet qui en chevauche un autre peut être 
+changée grâce aux commandes prédéfinies dont la liste a été donnée 
+plus haut à propos des objets de portée (voir @ref{Within-staff objects}). 
+Les queues de notes, les liaisons de phrasé et de prolongation, les 
+crochets, les nuances et les nolets peuvent facilement être repositionnés 
+de cette manière. En contrepartie, vous n'avez le choix qu'entre deux 
+positions, sans personnalisation possible.
+
+@item
+Les @strong{propriétés d'objet}, auxquelles LilyPond a recours pour 
+positionner les objets, sont modifiables avec @code{\override}. Il y a deux 
+avantages à changer ces propriétés : (a) d'autres objets pourront être 
+déplacés automatiquement si nécessaire pour faire de la place, et (b) 
+la même retouche peut s'appliquer à toutes les occurrences du même 
+type d'objet. Ces propriétés sont :
+
+@itemize
+
+@item
+@code{direction}
+
+Ce point a déjà été traité en détails -- voir @ref{Within-staff objects}.
+
+@item
+@code{padding}, @code{left-padding},
+@code{right-padding}, @code{staff-padding}
+
+@cindex padding
+@cindex left-padding property
+@cindex padding property
+@cindex right-padding property
+@cindex staff-padding property
+
+Au moment de positionner un objet, la valeur de sa propriété 
+@code{padding} détermine l'espace à laisser libre entre celui-ci et le 
+coin le plus proche de l'objet à côté duquel il est placé. Vous remarquerez 
+que c'est la valeur @code{padding} de l'objet @strong{à placer} qui 
+compte ; la valeur @code{padding} de l'objet déjà placé est ignorée. 
+Les espaces libres déterminés par @code{padding} s'appliquent à tous 
+les objets associés à la @code{side-position-interface}.
+
+Le positionnement de groupes d'altérations est contrôlé par 
+@code{left-padding} et @code{right-padding}, et non plus @code{padding}.
+Ces propriétés appartiennent à l'objet @code{AccidentalPlacement}, qui, 
+vous le remarquerez, prend place dans le contexte @strong{Staff}. Dans le 
+processus de composition, les têtes de notes sont composées en premier, 
+puis les altérations, s'il y en a, sont ajoutées à gauche des têtes de notes 
+suivant la propriété @code{right-padding} qui détermine l'espacement par 
+rapport aux têtes de notes. C'est pourquoi seule la propriété 
+@code{right-padding} de l'objet @code{AccidentalPlacement} joue sur le 
+positionnement des altérations. 
+
+La propriété @code{staff-padding} est très proche de la propriété 
+@code{padding} : @code{padding} contrôle l'espace minimum entre un 
+objet qui accepte la @code{side-position-interface} et l'objet le plus 
+proche (généralement une note ou une ligne de portée) ; @code{staff-padding} 
+ne s'applique qu'aux objets qui sont toujours placés en-dehors de la portée -- 
+il contrôle l'espace minimum à insérer entre l'objet et la portée. Attention : 
+par défaut, @code{staff-padding} concerne les objets positionnés par rapport 
+à la portée et n'a aucun effet sur les objets qui sont positionnés par
+rapport à une note ; il est toutefois possible de le régler pour
+fonctionner avec ces derniers. 
+
+Pour trouver quelle propriété  @q{padding} employer pour l'objet que vous 
+cherchez à repositionner, il vous faut consulter les propriétés de l'objet dans 
+la RPI. Prenez garde que les propriétés @q{padding} ne sont pas forcément 
+traitées dans l'objet en question ; il faut alors regarder les objets
+qui semblent s'en rapprocher. 
+
+Toutes les valeurs @q{padding} sont exprimées en espaces de portée. 
+Pour la plupart des objets, la valeur par défaut est aux alentours de 1.0, 
+parfois moins (cela dépend de chaque objet). Il est possible de la modifier 
+lorsqu'on a besoin d'un espace vide plus grand (ou plus petit).
+
+
+@item
+@code{self-alignment-X}
+
+@cindex self-alignment-X property
+Cette propriété sert à aligner les objets sur la gauche, sur la droite ou 
+à les centrer par rapport au point de référence des objets parents. 
+Elle peut être utilisée avec tous les objets qui acceptent la 
+@code{self-alignment-interface}. Il s'agit, en général, des objets qui 
+contiennent du texte. Les valeurs admises sont @code{LEFT}, 
+@code{RIGHT} et @code{CENTER}. On peut aussi attribuer à 
+la place une valeur numérique entre @code{-1} et @code{+1}, 
+où @code{-1} signifie alignement sur la gauche, @code{+1} 
+alignement sur la droite, et les nombres intermédiaires déplacent 
+progressivement le texte de la gauche vers la droite. Des valeurs 
+numériques supérieures à @code{1} sont également admises 
+pour déplacer le texte encore plus loin vers la gauche, ou des 
+valeurs inférieures à @code{-1} pour déplacer le texte encore 
+plus loin vers la droite. Un écart de @code{1} en valeur 
+correspond à un déplacement de la moitié de la longueur du 
+texte.
+
+@item
+@code{extra-spacing-width}
+
+@cindex extra-spacing-width property
+Cette propriété est utilisée pour tous les objets qui acceptent la 
+@code{item-interface}. Elle reçoit deux nombres, le premier étant 
+ajouté au bord gauche et le second au bord droit. Des nombres 
+négatifs déplacent le coin vers la gauche, des nombres positifs 
+vers la droite, si bien que pour élargir un objet, le premier nombre 
+doit être négatif et le second positif. Attention : tous les objets 
+n'acceptent pas forcément les deux nombres. Par exemple, l'objet 
+@code{Accidental} ne retient que le premier nombre (coin gauche).
+
+
+@item
+@code{staff-position}
+
+@cindex staff-position property
+@code{staff-position} est une propriété de la 
+@code{staff-symbol-referencer-interface}, qui s'applique aux objets 
+positionnés par rapport à la portée. Elle indique, en demi-espaces de 
+portée, la position verticale des objets par rapport à la ligne médiane 
+de la portée. C'est bien pratique pour résoudre des problèmes de 
+collision entre des objets comme les silences valant mesure entière, 
+les liaisons et les notes de différentes voix.
+
+@item
+@code{force-hshift}
+
+@cindex force-hshift property
+Des notes très proches dans un accord, ou des notes simultanées dans 
+différentes voix, peuvent être disposées sur deux colonnes, rarement 
+plus, pour éviter que les têtes de notes ne se chevauchent. On parle 
+alors de colonnes de notes et un objet appelé @code{NoteColumn} 
+est créé pour placer les notes sur la colonne.
+
+La propriété @code{force-hshift} appartient à @code{NoteColumn} (en 
+réalité à la @code{note-column-interface}). Le fait de la modifier permet 
+de déplacer une colonne de notes selon l'unité appropriée aux colonnes 
+de notes, à savoir la largeur des têtes de notes de la première voix. Son 
+utilisation est réservée à des situations complexes dans lesquelles les 
+commandes habituelles @code{\shiftOn} 
+(voir @ref{Explicitly instantiating voices}) ne suffisent plus à résoudre les 
+conflits. Elle est alors préférable à l'utilisation de la propriété 
+@code{extra-offset}, dans la mesure où on n'a pas besoin d'exprimer 
+la distance en espaces de portée et où le fait de déplacer les notes à 
+l'intérieur ou à l'extérieur d'une @code{NoteColumn} affecte d'autres 
+actions comme les fusionnements de notes.
+
+@end itemize
+
+@item
+Pour terminer, quand toutes les autres méthodes ont échoué, il est 
+possible de repositionner verticalement les objets à la main par rapport 
+à la ligne médiane de la portée, ou en les déplaçant à une distance 
+donnée vers une nouvelle position. Les inconvénients sont qu'il faut
+individuellement pour chaque objet trouver les valeurs correctes de 
+repositionnement, souvent par tâtonnement, et que, puisque le 
+mouvement est opéré après que LilyPond a placé tous les autres 
+objets, c'est à l'utilisateur de résoudre tous les problèmes de collisions 
+qui pourraient survenir. Et le pire avec cette méthode est que, le jour 
+où la musique est modifiée, il faut de nouveau rechercher les 
+valeurs de repositionnement. Les propriétés à utiliser pour ce type de 
+repositionnement manuel sont :
+
+
+@table @code
+@item extra-offset
+
+@cindex extra-offset property
+Cette propriété s'applique à tout objet acceptant la @code{grob-interface}. 
+Elle reçoit une paire de nombre qui indiquent le déplacement supplémentaire 
+dans le sens horizontal et vertical. Des nombres négatifs déplacent l'objet 
+vers la gauche ou vers la droite. L'unité utilisée est l'espace de portée. Le 
+déplacement supplémentaire intervient une fois que la composition des 
+objets est achevée, si bien qu'un objet peut être repositionné à n'importe 
+quel endroit sans que ça perturbe quoi que ce soit. 
+
+@item positions
+
+@cindex positions property
+Cette propriété est très utile pour ajuster manuellement l'inclinaison et 
+la hauteur des barres de croches, des liaisons et des nolets. Elle est  
+suivie de deux nombres qui donnent la position des bords gauche et 
+droit des barres, liaisons, etc., par rapport à la ligne médiane de la 
+portée. L'unité de référence est l'intervalle de lignes de portée. Attention 
+toutefois au fait que les liaisons et phrasés ne peuvent pas être repositionnés 
+n'importe où. LilyPond commence par dresser la liste des emplacements 
+possibles pour les liaisons et choisit par défaut la liaison qui @qq{semble 
+la meilleure}. Si la propriété @code{positions} a été retouchée, la 
+liaison la plus proche de la position demandée sera retenue dans la 
+liste.
+@end table
+
+@end enumerate
+
+Il est possible qu'un objet ne dispose pas de toutes ces propriétés. Il 
+est donc nécessaire de consulter la RPI pour vérifier quelles sont les 
+propriétés disponibles pour l'objet en question. 
+
+Voici une liste d'objets les plus couramment impliqués dans les 
+collisions, avec le nom de l'objet à consulter dans la RPI afin de trouver 
+les propriétés à retoucher pour obtenir un déplacement.
+
+
+@multitable @columnfractions .5 .5
+@headitem Type d'objet              @tab Nom d'objet
+@item Articulations                 @tab @code{Script}
+@item Barres de croches             @tab @code{Beam}
+@item Doigté                        @tab @code{Fingering}
+@item Liaisons de phrasé            @tab @code{Slur}  
+@item Liaisons de prolongation      @tab @code{Tie}
+@item Nolets                        @tab @code{TupletBracket}
+@item Nuances (verticalement)       @tab @code{DynamicLineSpanner}
+@item Nuances (horizontalement)     @tab @code{DynamicText}
+@item Reprises / marques de texte   @tab @code{RehearsalMark}
+@item Texte, p.ex. @code{^"texte"}  @tab @code{TextScript}
+@end multitable
+
+
+@node Fixing overlapping notation
+@subsection Fixing overlapping notation
+
+Voyons maintenant comment les propriétés décrites dans la section 
+précédente peuvent nous aider à résoudre les collisions. 
+
+@subheading padding property
+
+@cindex padding
+@cindex fixing overlapping notation
+@cindex overlapping notation
+
+En jouant sur la propriété @code{padding} (littéralement 
+@q{rembourrage}), on augmente (ou on diminue) la distance entre 
+des symboles qui sont imprimés au-dessus ou en dessous des 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
+
+Vous remarquerez dans le second exemple à quel point il est important de 
+préciser le nom du contexte qui contient l'objet. Puisque l'objet 
+@code{MetronomeMark} appartient au contexte @code{Score}, le fait de 
+modifier la propriété dans le contexte @code{Voice} passera inaperçu. 
+Pour plus de détails, voir @ruser{Modifying properties}.
+
+Si on augmente la propriété @code{padding} d'un objet alors que celui-ci 
+fait partie d'un ensemble d'objets positionnés en fonction de leur 
+@code{outside-staff-priority}, cet objet sera déplacé, ainsi que tous les 
+autres objets du groupe. 
+
+@subheading left-padding and right-padding
+
+@cindex left-padding property
+@cindex right-padding property
+
+La propriété @code{right-padding} joue sur l'espacement entre une 
+altération et la note sur laquelle elle porte. On ne l'utilise pas souvent, 
+mais l'exemple ci-dessous montre une situation où elle est nécessaire. 
+Imaginons que nous voulions faire apparaître un accord qui contienne 
+à la fois un si bécarre et un si bémol. Pour qu'il n'y ait pas de doute, 
+nous chercherions à précéder la note d'un signe bécarre et d'un signe 
+bémol. Voici différentes tentatives pour y parvenir : 
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+<b bes>
+<b! bes>
+<b? bes>
+@end lilypond
+
+Pas une ne convient, et la seconde se solde même par une collision 
+entre les deux signes. 
+
+Une solution pour arriver à nos fins consiste à retoucher le stencil des 
+altérations grâce à un markup qui contient les symboles bécarre et 
+bémol, dans l'ordre que nous souhaitons, comme ceci :
+
+@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]
+naturalplusflat = \markup { \natural \flat }
+\relative c'' {
+  \once \override Accidental
+    #'stencil = #ly:text-interface::print
+  \once \override Accidental #'text = #naturalplusflat
+  \once \override Score.AccidentalPlacement #'right-padding = #1.5
+  <b bes>
+}
+@end lilypond
+
+@noindent
+Cette méthode utilise, pour le stencil des altérations, une retouche 
+qui ne sera par reprise par la suite. Le type de stencil est obligatoirement 
+une procédure, qui consiste ici à imprimer le contenu de la propriété 
+@code{text} de @code{Accidental}, déclaré comme étant un signe 
+bécarre suivi d'un signe bémol. Celui-ci est ensuite repoussé devant la 
+tête de note par la retouche de @code{right-padding}.
+
+@noindent
+
+@subheading staff-padding property
+
+@cindex aligning objects on a baseline
+@cindex objects, aligning on a baseline
+
+@code{staff-padding} sert à aligner des objets tels que des nuances 
+sur une ligne fictive à une hauteur donnée par rapport à la portée, plutôt 
+qu'à une hauteur qui varie en fonction de la position de la note sur laquelle 
+porte l'objet. Ce n'est pas une propriété de @code{DynamicText} mais de 
+@code{DynamicLineSpanner}. Car la ligne fictive est destinée à s'appliquer 
+autant à @strong{toutes} les nuances, notamment celles qui sont créées 
+comme des bandeaux en longueur (en anglais @q{Spanners}). Tel est donc 
+le moyen d'aligner les indications de nuances, comme dans cet exemple 
+repris de la section précédente : 
+
+@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
+L'exemple suivant montre comment résoudre une collision entre une indication 
+de corde et une queue de note, en alignant le coin droit sur le point de 
+référence de la note parente :
+
+@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
+Dans une voix, un silence valant une mesure entière peut chevaucher les 
+notes d'une autre voix. Vu que ces silences sont centrés entre les deux 
+barres de mesure, il serait très compliqué de programmer LilyPond pour repérer 
+ces risques de collisions, dans la mesure où, normalement, toutes les collisions 
+entre notes ou entre notes et silences se produisent sur des notes et silences 
+simultanés. Voici un exemple de collision de ce type :
+
+@lilypond[quote,verbatim,fragment,ragged-right, relative=1]
+<< {c c c c} \\ {R1} >>
+@end lilypond
+
+Ici, la meilleure solution consiste à déplacer le symbole de pause vers
+le bas -- puisque cette pause appartient à la voix deux.  Par défaut, dans la 
+@code{\voiceTwo} (c'est-à-dire dans la seconde voix d'une construction 
+@code{<<@{...@} \\ @{...@}>>}), la propriété @code{staff-position} est 
+réglée sur -4 pour les MultiMeasureRest ; nous avons donc besoin de la 
+déplacer, disons, de quatre demi-intervalles vers le bas, ce qui donne
+@code{-8}.
+
+
+@cindex MultiMeasureRest, example of overriding
+@cindex staff-position property, example
+
+@lilypond[quote,verbatim,fragment,ragged-right, relative=1]
+<<
+  {c c c c}
+\\
+  \override MultiMeasureRest #'staff-position = #-8
+  {R1}
+>>
+@end lilypond
+
+C'est mieux que d'utiliser, par exemple, @code{extra-offset}, 
+car la ligne supplémentaire au-dessus du silence est insérée 
+automatiquement. 
+
+@subheading extra-offset property
+
+@cindex positioning objects
+@cindex positioning grobs
+@cindex objects, positioning
+@cindex grobs, positioning
+
+La propriété @code{extra-offset}
+La propriété @code{extra-offset} offre la possibilité de contrôler 
+entièrement le placement d'un objet, aussi bien horizontalement que 
+verticalement. 
+
+Dans l'exemple suivant, la seconde indication de doigté est déplacée 
+légèrement vers la gauche et de 1.8 intervalle de lignes vers le bas :
+
+@cindex Fingering, example of overriding
+@cindex extra-offset property, example
+
+@lilypond[quote,fragment,relative=1,verbatim]
+\stemUp
+f-5
+\once \override Fingering
+    #'extra-offset = #'(-0.3 . -1.8)
+f-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
+
+La propriété @code{positions} permet de contrôler manuellement la 
+position et l'inclinaison des nolets, coulés, liaisons de phrasé et barres 
+de croches. Voici un exemple avec une horrible liaison de phrasé -- 
+horrible pour avoir tenté de contourner la liaison de l'acciaccature.
+
+@lilypond[quote,verbatim,fragment,ragged-right,relative=1]
+r4  \acciaccatura e8\( d8 c ~c d c d\)
+@end lilypond
+
+@noindent
+Nous pourrions tout simplement déplacer la liaison de phrasé au-dessus des
+notes, et ce serait la meilleure solution :
+
+@lilypond[quote,verbatim,fragment,ragged-right,relative=1]
+r4
+\phrasingSlurUp
+\acciaccatura e8\( d8 c ~c d c d\)
+@end lilypond
+
+@noindent
+Mais si, pour une quelconque raison, cette solution n'était pas 
+envisageable, l'autre solution consiste à déplacer légèrement vers le 
+bas l'extrémité gauche de la liaison de phrasé, grâce à la propriété 
+@code{positions}. Cela corrige en même temps la forme plutôt 
+disgracieuse de la liaison.
+
+@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
+
+Voici un autre exemple, tiré du début de la partie de main gauche 
+du Prélude de Chopin, Op. 28, No 2. Comme nous pouvons le 
+constater, les barres de croches chevauchent les notes les plus hautes :
+
+@lilypond[quote,verbatim,fragment,ragged-right]
+{
+\clef "bass"
+<< {b,8 ais, b, g,} \\ {e, g e, g} >>
+<< {b,8 ais, b, g,} \\ {e, g e, g} >>
+}
+@end lilypond
+
+@noindent
+On peut y remédier en déplaçant manuellement vers le haut les deux 
+extrémités des barres de croches, non plus à 2 intervalles au-dessus 
+de la ligne médiane mais, disons, à 3 :
+
+@cindex Beam, example of overriding
+@cindex positions property, example
+
+@lilypond[quote,verbatim,fragment,ragged-right]
+{
+  \clef "bass"
+  <<
+    \override Beam #'positions = #'(3 . 3)
+    {b,8 ais, b, g,}
+  \\
+    {e, g e, g}
+  >>
+  << {b,8 ais, b, g,} \\ {e, g e, g} >>
+}
+@end lilypond
+
+@noindent
+Vous remarquerez que la retouche continue à s'appliquer au 
+second bloc de croches de la première voix mais qu'il ne s'applique 
+à aucune barre de la deuxième voix.
+
+@subheading force-hshift property
+
+@c FIXME: formatting stuff  (ie not important right now IMO)
+@c @a nchor Chopin finally corrected TODOgp
+
+Maintenant, nous sommes prêts à appliquer les dernières corrections  à
+l'exemple de Chopin présenté à la fin de @ref{I'm hearing Voices}, que 
+nous avions laissé dans cet état :
+
+@lilypond[quote,verbatim,fragment,ragged-right]
+\new Staff \relative c'' {
+  \key aes \major
+  <<
+    { c2 aes4. bes8 } \\
+    { aes2 f4 fes   } \\
+    { \voiceFour
+      <ees c>2
+      des2
+    }
+  >> |
+  <c ees aes c>1 |
+}
+@end lilypond
+
+@noindent
+Les deux plus basses notes du premier accord (c'est-à-dire celles de la 
+troisième voix) ne devraient pas être décalées de la colonne des deux 
+plus hautes notes. Pour y remédier, nous réglons le @code{force-hshift} 
+-- qui est une propriété de @code{NoteColumn} -- de ces notes sur zéro. 
+Ensuite, la note la plus basse du second accord serait mieux à droite des 
+notes plus hautes. Pour cela, nous réglons le @code{force-hshift} de cette 
+note sur 0.5 -- c'est-à-dire la moitié de la largeur d'une tête de note vers la 
+droite de la colonne des notes plus hautes.
+
+Et voici le résultat final :
+
+@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 } \\
+    { aes2 f4 fes   } \\
+    { \voiceFour
+      \once \override NoteColumn #'force-hshift = #0 <ees c>2
+      \once \override NoteColumn #'force-hshift = #0.5 des2
+    }
+  >> |
+  <c ees aes c>1 |
+}
+@end lilypond
+
+
+@node Real music example
+@subsection Real music example
+
+Pour terminer ce chapitre consacré aux retouches, voici, étape par 
+étape, la mise en forme d'un exemple concret nécessitant un certain 
+nombre de retouches jusqu'à l'obtention du résultat attendu. Cet exemple 
+a été choisi en raison des problèmes inhabituels de notation qu'il soulevait 
+et pour vous apprendre à les résoudre grâce au Manuel de notation.  Il
+n'est pas représentatif d'une opération normale de gravure ; que ces 
+difficultés ne vous découragent donc pas ! Des difficultés comme celles-ci 
+ne sont, heureusement, pas courantes !
+
+Cet exemple est tiré de la Première Ballade de Chopin, Op. 23, mesures 
+6 à 9 ; cela correspond à la transition entre le Lento d'ouverture et le 
+Moderato. Voici, pour commencer, ce à quoi nous voulons que la 
+partition ressemble ; pour limiter les complications, nous n'avons pas 
+fait apparaître les indications de nuances, de doigté ni de pédale.
+
+
+@c The following should appear as music without code
+@c This example should not be indexed
+@lilypond[quote,ragged-right]
+rhMusic = \relative c'' {
+  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] | }
+  \\
+    % Reposition the c2 to the right of the merged note
+    {c,8~ \once \override NoteColumn #'force-hshift = #1.0
+    % Move the c2 out of the main note column so the merge will work
+    \shiftOnn c2}
+  \\
+    % Stem on the d2 must be down to permit merging
+    {s8 \stemDown \once \override Stem #'transparent = ##t d2}
+  \\
+    {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
+
+Nous constatons tout d'abord que, dans la troisième mesure, la main 
+droite compte quatre voix. Ce sont les cinq croches avec une barre, 
+le do avec liaison, le ré blanche qui se fond avec le ré croche, et le 
+fa dièse noire pointée qui se fond lui aussi avec la croche de même 
+hauteur. Tout le reste se réduit à une seule voix. Le plus simple est 
+donc de créer temporairement ces quatre voix au moment opportun. 
+Si vous avez oublié comment faire, reportez-vous à 
+@ref{I'm hearing Voices}. Commençons par saisir les notes comme 
+appartenant à deux variables, mettons en place l'ossature des 
+portées dans un bloc score et voyons ce que LilyPond propose par 
+défaut : 
+
+@lilypond[quote,verbatim,ragged-right]
+rhMusic = \relative c'' {
+  r2 c4. g8 |
+  bes1~ |
+  \time 6/4
+  bes2. r8
+  % Start polyphonic section of four voices
+  <<
+    {c,8 d fis bes a | }
+  \\
+    {c,8~ c2 | }
+  \\
+    {s8 d2 | }
+  \\
+    {s4 fis4. | }
+  >>
+  g2.
+}
+
+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
+
+Toutes les notes sont correctes mais l'allure générale est loin d'être 
+satisfaisante. La liaison se heurte à l'indication de mesure lors du 
+changement de chiffrage, la barre des croches n'est pas bonne dans la 
+troisième mesure, les notes ne sont pas fusionnées et il manque plusieurs 
+éléments de notation. Commençons par le plus simple. Nous pouvons 
+corriger la barre des croches en la créant manuellement et nous pouvons 
+facilement ajouter les limites droite et gauche de la liaison de phrasé, 
+puisque tout cela a déjà été traité dans le tutoriel. Voici le résultat :
+
+@lilypond[quote,verbatim,ragged-right]
+rhMusic = \relative c'' {
+  r2 c4.\( g8 |
+  bes1~ |
+  \time 6/4
+  bes2. r8
+  % Start polyphonic section of four voices
+  <<
+    {c,8[ d fis bes a] | }
+  \\
+    {c,8~ c2 | }
+  \\
+    {s8 d2 | }
+  \\
+    {s4 fis4. | }
+  >>
+  g2.\)
+}
+
+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
 
+La première mesure est maintenant correcte. La seconde contient un arpège 
+et doit se terminer par une double barre. Comment faire, puisque cela n'a pas 
+été traité dans le Manuel d'initiation ? C'est alors qu'il faut nous
+reporter au Manuel de notation.  Quand on cherche @q{arpège} et @q{barre
+de mesure} dans l'index, on voit aisément qu'il faut ajouter
+@code{\arpeggio} à un accord pour produire un arpège et qu'une double
+barre est le résultat de la commande @code{\bar "||"}.  Rien de plus
+facile ! Nous devons ensuite corriger la collision entre la liaison et
+l'indication de mesure. Le mieux est de déplacer la liaison vers le
+haut. La méthode pour déplacer les objets a déjà été présentée dans
+@ref{Moving objects}, et l'on sait que, pour des objets positionnés par
+rapport à la portée, il nous faut modifier leur propriété
+@code{staff-position}, exprimée en demi-intervalles de lignes par
+rapport à la ligne médiane de la portée.  Voici donc la retouche à
+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}
+
+Cela s'adjoint à la deuxième mesure, pour donner :
+
+@lilypond[quote,verbatim,ragged-right]
+rhMusic = \relative c'' {
+  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] | }
+  \\
+    {c,8~ c2 | }
+  \\
+    {s8 d2 | }
+  \\
+    {s4 fis4. | }
+  >>
+  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
+
+Venons-en à la troisième mesure et au début de la section Moderato. Dans 
+le Tutoriel, il est indiqué comment insérer du texte en gras à l'aide de la 
+commande @code{\markup} ; pas de problème, du coup, pour ajouter 
+@q{Moderato} en gras. Mais comment faire pour fusionner les notes de 
+différentes voix ? C'est là que le Manuel de notation peut nous venir en 
+aide. Une recherche sur @q{fusionnement de notes} dans l'index nous renvoie, 
+dans @ruser{Collision resolution}, aux  commandes pour fusionner les notes, 
+différentes en fonction du type de note et selon que celles-ci sont
+pointées ou non.  Dans notre exemple, pour la durée de la polyphonie de
+la troisième mesure, nous avons besoin de fusionner deux types de notes
+; grâce aux informations trouvées dans le Manuel de notation, nous
+ajoutons  
+
+@example
+\mergeDifferentlyHeadedOn
+\mergeDifferentlyDottedOn
+@end example
+
+@noindent
+au début de cette section et
+
+@example
+\mergeDifferentlyHeadedOff
+\mergeDifferentlyDottedOff
+@end example
+
+@noindent
+à la fin, ce qui donne : 
+
+@lilypond[quote,verbatim,ragged-right]
+rhMusic = \relative c'' {
+  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] | }
+  \\
+    {c,8~ c2 | }
+  \\
+    {s8 d2 | }
+  \\
+    {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
+
+Ces retouches ont permis de fusionner les deux fa dièse mais pas les 
+deux ré. Pourquoi ? La réponse se trouve dans la même section du 
+Manuel de notation : les notes à fusionner doivent avoir des queues dans 
+des directions opposées et deux notes ne peuvent pas être fusionnées s'il 
+y a une troisième note dans la même colonne. Ici, les deux ré ont leur 
+queue orientée vers le haut et il y a une troisième note, do. Nous 
+savons changer l'orientation de la queue avec @code{\stemDown} et 
+le Manuel de notation nous indique également comment déplacer le do 
+-- en produisant un décalage grâce à l'une des commandes @code{\shift}.
+Mais laquelle ? Le do appartient à la deuxième voix et n'est pas décalé ; 
+les deux ré appartiennent respectivement à la première et à la troisième 
+voix, et l'un n'est pas décalé tandis que l'autre l'est. Il nous faut donc 
+décaler largement le do avec la commande @code{\shiftOnn} pour 
+éviter une interférence avec les deux ré. Voici ce que donnent ces 
+modifications : 
+
+@cindex Tie, example of overriding
+@cindex staff-position property, example
+
+@lilypond[quote,verbatim,ragged-right]
+rhMusic = \relative c'' {
+  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] | }
+  \\
+    % Move the c2 out of the main note column so the merge will work
+    {c,8~ \shiftOnn c2 | }
+  \\
+    % Stem on the d2 must be down to permit merging
+    {s8 \stemDown d2 | }
+  \\
+    {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
+
+Pas loin. Il ne reste plus que deux problèmes : les ré une fois fusionnés 
+ne devraient plus avoir de queue vers le bas, et le do serait mieux à la 
+droite des ré. Nous savons remédier à ces deux problèmes grâce aux 
+retouches précédentes : nous allons rendre la queue transparente et 
+déplacer le do avec la propriété @code{force-hshift}. Et voici le 
+résultat final : 
+
+@cindex NoteColumn, example of overriding
+@cindex force-hshift property, example
+@cindex Stem, example of overriding
+@cindex transparent property, example
+
+@lilypond[quote,verbatim,ragged-right]
+rhMusic = \relative c'' {
+  r2
+  c4.\( g8 |
+  \once \override Tie #'staff-position = #3.5
+  bes1~ |
+  \bar "||"
+  \time 6/4
+  bes2.^\markup {\bold "Moderato"} r8
+  \mergeDifferentlyHeadedOn
+  \mergeDifferentlyDottedOn
+  <<
+    {c,8[ d fis bes a] | }
+  \\
+    % Reposition the c2 to the right of the merged note
+    {c,8~ \once \override NoteColumn #'force-hshift = #1.0
+    % Move the c2 out of the main note column so the merge will work
+    \shiftOnn c2}
+  \\
+    % Stem on the d2 must be down to permit merging
+    {s8 \stemDown \once \override Stem #'transparent = ##t d2}
+  \\
+    {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
+
+
+@node Further tweaking
+@section Further tweaking
+
+@menu
+* Other uses for tweaks::       
+* Using variables for tweaks::  
+* Other sources of information::  
+* Avoiding tweaks with slower processing::  
+* 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
+
+Voici un exemple qui montre comment créer une liaison de 
+prolongation entre des notes appartenant à des voix différentes. En 
+temps normal, seules deux notes appartenant à une même voix 
+peuvent être ainsi liées. La solution consiste à utiliser deux voix, 
+dont l'une avec les notes liées
+
+@lilypond[quote,fragment,relative=2]
+<< { b8~ b8\noBeam }
+\\ { b[ g8] }
+>>
+@end lilypond
+
+@noindent
+et à rendre transparente la première queue de note de cette voix ; 
+on a alors l'impression que la liaison couvre les deux voix.
+
+@cindex Stem, example of overriding
+@cindex transparent propery, example
+
+@lilypond[quote,fragment,relative=2,verbatim]
+<<
+  {
+    \once \override Stem #'transparent = ##t
+    b8~ b8\noBeam
+  }
+\\
+  { b[ g8] }
+>>
+@end lilypond
+
+Pour être sûr que la queue que nous avons rendue transparente 
+n'empiète pas trop sur le trait de liaison, nous pouvons l'allonger en 
+réglant la longueur (@code{length}) sur @code{8},
+
+@lilypond[quote,fragment,relative=2,verbatim]
+<<
+  {
+    \once \override Stem #'transparent = ##t
+    \once \override Stem #'length = #8
+    b8~ b8\noBeam
+  }
+\\
+  { b[ g8] }
+>>
+@end lilypond
+
+@subheading Simulating a fermata in MIDI
+
+@cindex stencil property, use of
+@cindex fermata, implementing in MIDI
+
+En ce qui concerne les objets extérieurs à la portée, quand on veut les 
+faire disparaître de la partition imprimée , il est généralement préférable 
+de modifier leur propriété @code{stencil} plutôt que leur propriété 
+@code{transparent}. Le fait d'attribuer à la propriété @code{stencil} 
+d'un objet la valeur @code{#f} supprimera entièrement celui-ci de la 
+partition. Il ne risquera donc pas de gêner le placement d'autres objets.
+
+Par exemple, si nous voulons changer le réglage de métronome pour 
+simuler un point d'orgue dans le fichier MIDI, nous ne voulons surtout 
+pas que cette indication métronomique apparaisse sur la partition ni 
+qu'elle influence l'espacement entre les deux systèmes ou la position 
+des annotations voisines sur la portée. Le fait d'attribuer à la propriété 
+@code{stencil} la valeur @code{#f} est donc la bonne solution. Nous 
+montrons ci-dessous le résultat des deux méthodes : 
+
+@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
+    a\fermata
+    % New tempo for next section
+    \tempo 4=100
+    a 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
+    a\fermata
+    % New tempo for next section
+    \tempo 4=100
+    a a a a
+  }
+  \layout { }
+  \midi { }
+}
+@end lilypond
+
+@noindent
+Les deux méthodes permettent l'enlever l'indication métronomique qui allonge 
+le point d'orgue de la partition, et toutes deux modifient le rythme MIDI comme 
+souhaité, mais, dans la première, l'indication métronomique transparente 
+repousse vers le haut l'indication de tempo, contrairement à la seconde (avec 
+le stencil désactivé) qui la laisse à sa place.
+
+
+@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
+
+Les commandes de retouche sont souvent longues et pénibles à 
+taper, et ne tolèrent pas la moindre erreur. Lorsqu'on a besoin de 
+faire plusieurs fois les mêmes retouches, il est préférable de 
+définir des variables qui les contiennent. Imaginons que nous 
+voulions accentuer certains mots dans des paroles en les mettant 
+en italiques. Au lieu des commandes @code{\italic} et 
+@code{\bold}, qui ne fonctionnent dans les paroles que si elles 
+sont enchâssées dans un @code{\markup}, ce qui les rend 
+pénibles à saisir, pouvons-nous employer les commandes 
+@code{\override} et @code{\revert}?
+
+@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
+
+Là encore, ce serait extrêmement pénible à saisir, surtout s'il y avait 
+beaucoup de mots à retoucher de cette façon. Plutôt que cette 
+solution, nous déclarons ces commandes comme étant deux variables 
+et les utilisons comme suit -- quoique on choisirait sans doute pour les 
+variables des noms plus courts pour simplifier la frappe : 
+
+@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 = { \time 4/4 \partial 4 \key c \major}
+SopranoMusic   = \relative c' { c4 | e4. e8 g4  g  | a a g }
+AltoMusic  = \relative c' { c4 | c4. c8 e4  e  | f 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 | \emphasize Christ, \normal 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 Other sources of information
+@subsection Other sources of information
+
+La Référence du programme contient beaucoup d'informations sur 
+LilyPond. Cependant vous pouvez en découvrir 
+encore plus en consultant les fichiers internes de LilyPond. Pour cela, 
+il vous faut d'abord connaître le répertoire ad hoc sur votre système. 
+L'emplacement du répertoire dépend (a) du fait que, pour vous procurer 
+LilyPond, vous avez téléchargé un paquet précompilé sur lilypond.org, ou 
+vous l'avez installé grâce à votre gestionnaire de paquetages (c'est-à-dire 
+distribué avec Linux ou installé avec fink ou cygwin), ou encore vous l'avez 
+compilé directement à partir des sources ; et (b) du système d'exploitation 
+sous lequel il tourne. 
+
+@strong{Téléchargé depuis lilypond.org}
+
+@itemize @bullet
+@item Linux
+
+@file{@var{INSTALLDIR}/lilypond/usr/share/lilypond/current/}
+
+@item MacOS X
+
+@file{@var{INSTALLDIR}/LilyPond.app/Contents/Resources/share/lilypond/current/}
+Pour accéder à ce dossier, deux possibilités : soit, dans un Terminal,
+taper @code{cd} suivi du chemin complet ci-dessus ; soit
+Control-cliquer (ou clic droit) sur l'application LilyPond
+et sélectionner @q{Afficher le contenu du paquet}.
+
+@item Windows
+
+Dans l'Explorateur Windows, voir
+@file{@var{INSTALLDIR}/LilyPond/usr/share/lilypond/current/}
+
+@end itemize
+
+@strong{Installé par un gestionnaire de paquetages ou compilé d'après
+les sources} 
+
+@file{@var{PREFIX}/share/lilypond/@var{X.Y.Z}/}, où
+@var{PREFIX} est déterminé par votre gestionnaire de paquetages ou par le script 
+@code{configure}, et @var{X.Y.Z} est le numéro de version de LilyPond.
+
+@smallspace
+
+Dans ce répertoire, deux sous-répertoires sont particulièrement intéressants :
+
+@itemize
+@item @file{ly/} - contient les fichiers en format LilyPond
+@item @file{scm/} - contient les fichiers en format Scheme
+@end itemize
+
+Commençons par examiner quelques fichiers contenus dans @file{ly/}.
+Nous ouvrons @file{ly/property-init.ly} dans un éditeur de texte -- celui 
+que vous avez l'habitude d'utiliser pour les fichiers @code{.ly} fera très 
+bien l'affaire. Ce fichier contient les définitions de toutes les commandes 
+standard prédéfinies de LilyPond, comme @code{\stemUp} et 
+@code{\slurDotted}. Vous pouvez constater que ce n'est rien d'autre 
+que des définitions de variables composées d'un ou plusieurs groupes 
+de commandes @code{\override}. Par exemple, @code{\tieDotted} 
+est défini comme :
+
+@example
+tieDotted = @{
+  \override Tie #'dash-period = #0.75
+  \override Tie #'dash-fraction = #0.1
+@}
+@end example
+
+Si vous n'aimez pas les valeurs par défaut, les commandes prédéfinies
+peuvent être facilement redéfinies, comme n'importe quelle autre variable,
+en tête de votre fichier d'entrée.
+
+Voici les fichiers les plus utiles dans le répertoire @file{ly/}:
+
+@multitable @columnfractions .4 .6
+@headitem Nom de fichier
+  @tab Contenu
+@item @file{ly/engraver-init.ly}
+  @tab Définitions des Contextes de graveurs
+@item @file{ly/paper-defaults-init.ly}
+  @tab Réglages papier par défaut
+@item @file{ly/performer-init.ly}
+  @tab Définitions des Contextes d'interprétation
+@item @file{ly/property-init.ly}
+  @tab Définitions de toutes les commandes prédéfinies courantes
+@item @file{ly/spanner-init.ly}
+  @tab Définitions des commandes prédéfinies pour les bandeaux 
+@end multitable
+
+Les autres réglages (comme les définitions de commandes markup) sont 
+conservés comme fichiers @code{.scm} (Scheme). Le langage de 
+programmation Scheme offre une interface programmable dans le 
+processus interne de LilyPond. De plus amples explications sur ces 
+fichiers dépasseraient le cadre de ce manuel, dans la mesure où elles 
+requièrent la connaissance du langage Scheme. Les utilisateurs qui 
+souhaiteraient comprendre le fonctionnement de ces fichiers de 
+configuration doivent être avertis que des connaissances techniques 
+substantielles et beaucoup de temps sont nécessaires (voir 
+@ref{Scheme tutorial}).
+
+Si c'est votre cas, les fichiers Scheme les plus utiles à connaître sont :
+
+@multitable @columnfractions .4 .6
+@headitem Nom de fichier
+  @tab Contenu
+@item @file{scm/auto-beam.scm}
+  @tab Régles par défaut des ligatures subalternes
+@item @file{scm/define-grobs.scm}
+  @tab Réglages par défaut des propriétés de grobs
+@item @file{scm/define-markup-commands.scm}
+  @tab Spécification de toutes les commandes de @emph{markup}
+@item @file{scm/midi.scm}
+  @tab Réglages par défaut pour les sorties MIDI
+@item @file{scm/output-lib.scm}
+  @tab Réglages affectant l'apparence des frets, couleurs, altérations,
+       barres de mesure, etc
+@item @file{scm/parser-clef.scm}
+       @tab Définition des clefs prises en charge
+@item @file{scm/script.scm}
+       @tab Réglages par défaut des articulations
+@end multitable
+
+
+
+@node Avoiding tweaks with slower processing
+@subsection Avoiding tweaks with slower processing
+
+LilyPond peut effectuer des vérifications supplémentaires lors du 
+traitement des fichiers ; cependant, le rendu nécessitera alors plus de
+temps.  En contrepartie, il y aura moins d'ajustements manuels à réaliser. 
+Si une indication textuelle ou des paroles  débordent dans la marge, ces 
+vérifications auront pour effet de serrer la ligne suffisamment pour faire 
+tenir le texte entre les marges. 
+
+Pour pouvoir fonctionner en toutes circonstances, ces vérifications doivent 
+être activées ; il faut pour cela placer les retouches dans un bloc Score 
+@code{\with}, plutôt qu'à l'intérieur du fragment musical, comme ceci :
+
+@example
+\new Score \with @{
+  % Pour s'assurer que les indications textuelles et paroles 
+  % seront à l'intérieur des marges de la page.
+  \override PaperColumn #'keep-inside-line = ##t
+  \override NonMusicalPaperColumn #'keep-inside-line = ##t
+@} @{
+   ..
+@}
+@end example
+
+
+@node Advanced tweaks with Scheme
+@subsection Advanced tweaks with Scheme
+
+Nous avons vu à quel point le résultat obtenu avec LilyPond peut 
+être largement personnalisé à l'aide de commandes comme 
+@code{\override} et @code{\tweak}.  Et pourtant l'utilisation de 
+Scheme ouvre des possibilités encore plus grandes.
+Le code écrit dans le langage de programmation Scheme peut être 
+intégré directement dans le processus interne de LilyPond. Bien sûr, 
+il faut pour cela connaître un minimum de programmation en langage 
+Scheme. Pour des explications complètes là-dessus, consultez le 
+@ref{Scheme tutorial}.
+
+En guise d'illustration - et ce n'est qu'une possibilité parmi tant 
+d'autres -- nous allons attribuer à une propriété non pas une valeur 
+préétablie mais une procédure Scheme qui sera lancée à chaque 
+utilisation de la propriété par LilyPond. De cette façon, nous obtenons 
+un réglage dynamique de la propriété par le simple fait d'invoquer la 
+procédure. Dans cet exemple, nous colorons les têtes de notes en fonction 
+de leur position sur la portée. 
+
+
+@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
+  c2 c' |
+  b4 g8 a b4 c |
+  c,2 a' |
+  g1 |
+}
+\addlyrics {
+  Some -- where o -- ver the Rain -- bow, way up high,
+}
+@end lilypond
+
+Vous trouverez dans @ref{Tweaking with Scheme} d'autres exemples d'utilisation de ces interfaces programmables.
+
index 21b77f346f77d44b84f285d5b73bae15ba69ec04..ed94098017b9e496de695d860a2a7cdac1b390bb 100644 (file)
@@ -1,22 +1,30 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
 @c This file is part of lilypond.tely
 @ignore
-    Translation of GIT committish: bdf8540b74167817eab96ed3d13b35477217f9fe
+    Translation of GIT committish: 3f880f886831b8c72c9e944b3872458c30c6c839
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
-@c Translators: Valentin Villenave
+@c Translators: Valentin Villenave, Matthieu Jacquot
 @c Translation checkers: Jean-Charles Malahieude, John Mandereau
 
 @node Unfretted string instruments
 @section Unfretted string instruments
 
+@lilypondfile[quote]
+{unfretted-headword.ly}
+
+@cindex cordes d'orchestre
+@cindex orchestre, cordes
+@cindex cordes, écriture pour
+
 Cette section dispense des informations supplémentaires et utiles à
-l'écriture pour les cordes frottées.
+l'écriture pour les cordes non frettées, et tout spécialement pour les 
+cordes d'orchestre.
 
 @menu
 * Common notation for unfretted strings::  
@@ -25,7 +33,11 @@ l'écriture pour les cordes frottées.
 @node Common notation for unfretted strings
 @subsection Common notation for unfretted strings
 
-@untranslated
+Il existe peu d'éléments spécifiques à l'écriture pour instruments à
+cordes non frettées.  La musique est notée sur une portée et ne
+nécessite généralement qu'une seule voix.  Le recours à deux voix
+disticntes peut cependant permettre de traiter efficacement des doubles
+notes ou des divisions.  
 
 @menu
 * References for unfretted strings::  
@@ -37,22 +49,136 @@ l'écriture pour les cordes frottées.
 @node References for unfretted strings
 @unnumberedsubsubsec References for unfretted strings
 
-@untranslated
+La majorité des éléments de notation nécessaires en matière de
+cordes d'orchestre et autres instruments à archet est abordée dans
+d'autres chapitres de la documentation : 
+
+@itemize
+
+@item Les indications textuelles telles que @qq{pizz.} ou @qq{arco} sont 
+ajoutées comme du texte simple -- voir à ce sujet @ref{Text scripts}.
+
+@item Les indications de doigtés, incluant les indications du pouce,
+sont décrites dans @ref{Fingering instructions}.
+
+@item Les doubles notes sont généralement indiquées en écrivant un
+accord, voir @ref{Chorded notes}.  Les précisions pour jouer des accords 
+peuvent être ajoutées, comme l'indique @ref{Arpeggio}. 
+
+@item Un modèle pour quatuor à cordes est disponible au chapitre 
+@rlearning{String quartet}.  D'autres informations se trouvent dans les
+exemples de code. 
+
+@end itemize
+
+
+@seealso
+Manuel d'initiation :
+@rlearning{String quartet}.
+
+Manuel de notation :
+@ref{Text scripts},
+@ref{Fingering instructions},
+@ref{Chorded notes},
+@ref{Arpeggio}.
+
+Exemples de code :
+@rlsr{Unfretted strings}.
 
 @node Bowing indications
 @unnumberedsubsubsec Bowing indications
 
-@untranslated
+@funindex \upbow
+@funindex \downbow
+@funindex \open
+
+@cindex indications d'archet
+@cindex poussé, indication d'archet
+@cindex tiré, indication d'archet
+@cindex indication de corde à vide
+@cindex corde à vide, indication
+
+Les indications d'archet se créent comme des articulations, elles sont
+décrites dans @ref{Articulations and ornamentations}. 
+
+Les indications d'archet, poussé (@code{\upbow}) et tiré
+(@code{\downbow}), peuvent se combiner à des liaisons comme ici : 
+
+@lilypond[verbatim,quote,relative=2]
+c4(\downbow d) e(\upbow f)
+@end lilypond
+
+@noindent
+ou dans l'exemple suivant qui montre trois manières d'indiquer la corde
+de La, à vide, sur un violon : 
+
+@lilypond[verbatim,quote,relative=2]
+a4 \open
+a^\markup { \teeny "II" }
+a2^\markup { \small "sul A" }
+@end lilypond
+
+@predefined
+@code{\downbow},
+@code{\upbow},
+@code{\open}.
+@endpredefined
+
+
+@seealso
+Manuel de notation :
+@ref{Articulations and ornamentations},
+@ref{Slurs}.
 
 @node Harmonics
 @unnumberedsubsubsec Harmonics
 
-@cindex harmoniques
+@funindex \harmonic
+
+@strong{@i{Harmoniques naturels}}
+
+@cindex harmoniques naturels
+@cindex naturels, harmoniques 
+
+Les harmoniques naturels sont indiqués de différentes manières : une
+tête de note en forme de losange signifie généralement que vous devez
+effleurer la corde à l'endroit où vous l'auriez pincée si la note avait
+été normale. 
+
+@warning{Les harmoniques @strong{doivent} être indiqués dans une
+construction de type accord même s'il n'y a qu'une seule note.} 
+
+@c TODO If the default for harmonicDots is changed, change this
+
+La propriété @code{harmonicDots}, lorsqu'elle est activée, permet
+d'ajouter un point point aux notes pointées affublées d'un
+@code{\harmonic}. 
+
+@lilypond[verbatim,quote,relative=2]
+<d\harmonic>4 <e\harmonic>2.
+\set harmonicDots = ##t
+<d\harmonic>4 <e\harmonic>2.
+@end lilypond
+
+Une autre façon de procéder consiste à faire surmonter la note normale
+d'un petit cercle.  Ceci indique que la note écrite doît être jouée en
+harmonique : 
+
+@lilypond[verbatim,quote,relative=2]
+d2^\flageolet d_\flageolet
+@end lilypond
+
+Un plus petit cercle peut être créé, comme indiqué dans les exemples de
+code contenus dans @ref{References for unfretted strings}.
 
-La plupart des instruments à cordes peuvent produire des harmoniques
-artificiels, lorsque l'instrumentiste effleure simplement la corde pour
-une note donnée.  Le son émis sera un harmonique, que l'on peut indiquer
-par @code{\harmonic}.
+@strong{@i{Harmoniques artificiels}}
+
+@cindex harmoniques artificiels
+@cindex artificiels, harmoniques
+
+Les harmoniques artificiels sont indiqués par une double tête de note :
+l'une, normale, indique la note à pincer, et l'autre, en forme de
+losange, indique l'endroit où la corde doit être effleurée. 
 
 @lilypond[verbatim,quote,relative=1]
 <e a\harmonic>2  <c g'\harmonic>
@@ -61,4 +187,13 @@ par @code{\harmonic}.
 @node Snap (Bartók) pizzicato
 @unnumberedsubsubsec Snap (Bartók) pizzicato
 
-@untranslated
+@cindex pizzicato, Bartók
+@cindex pizzicato, snap
+@cindex Bartók pizzicato
+@cindex snap pizzicato
+
+@snippets
+
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{snap-pizzicato-markup-bartok-pizzicato.ly}
+
index df57be70ed252d755cb1721573ff3de3e4effbf8..1e843d60d3dc9565d18d103a3e358b86ff7d968f 100644 (file)
@@ -7,7 +7,7 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @c Translators: Valentin Villenave
 @c Translation checkers: Jean-Charles Malahieude
@@ -253,7 +253,6 @@ verseOne = \lyricmode @{ Joy to the world the Lord is come @}
 
 
 @seealso
-
 Référence du programme : @rinternals{LyricText}, @rinternals{LyricSpace}.
 
 
@@ -348,10 +347,10 @@ Le résultat donnera ainsi quelque chose comme
 >>
 @end example
  
+
 @seealso
 @c TODO: document \new Staff << Voice \lyricsto >> bug
-
+@c
 Référence du programme : @rinternals{LyricCombineMusic},
 @rinternals{Lyrics}.  
 
@@ -488,8 +487,8 @@ Voici un exemple de cette manière de procéder :
  } >>
 @end lilypond
 
+
 @seealso
 Référence du programme : @rinternals{Lyrics}.
 
 
@@ -515,13 +514,15 @@ installée qui contient ce symbole(par exemple DejaVuLGC).}.
 \addlyrics { pu- ro~y~ho- nes- to }
 @end lilypond
 
-@seealso
 
+@seealso
 Référence du programme : @rinternals{LyricCombineMusic}.
 
+
 @c Here come the section which used to be "Melismata"
 @c the new title might be more self-explanatory
 
+
 @node Multiple notes to one syllable
 @unnumberedsubsubsec Multiple notes to one syllable
 
@@ -589,17 +590,19 @@ section @rlearning{Vocal ensembles}.
 
 
 @predefined
-
-@code{\melisma}, @code{\melismaEnd}
-@funindex \melismaEnd
 @funindex \melisma
+@code{\melisma},
+@funindex \melismaEnd
+@code{\melismaEnd}.
+@endpredefined
 
-@seealso
 
+@seealso
 @comment  Référence du programme : @rinternals{Melisma_translator}.
 
 Exemples : @rlsr{Vocal music}.
 
+
 @knownissues
 
 Certains mélismes ne sont pas détectés automatiquement ; vous devrez
@@ -638,8 +641,8 @@ imprimés.  Cet inconvénient peut être contrôlé par
 et @code{minimum-length}, seuil en deçà duquel il n'y a pas de trait
 d'union.
 
-@seealso
 
+@seealso
 Référence du programme : @rinternals{LyricExtender},
 @rinternals{LyricHyphen}
 
@@ -820,10 +823,10 @@ On peut ajouter un numéro aux couplets en définissant la variable
 \new Voice {
   \time 3/4 g2 e4 a2 f4 g2.
 } \addlyrics {
-  \set stanza = "1. "
+  \set stanza = #"1. "
   Hi, my name is Bert.
 } \addlyrics {
-  \set stanza = "2. "
+  \set stanza = #"2. "
   Oh, ché -- ri, je t'aime
 }
 @end lilypond
@@ -872,10 +875,10 @@ abrégée.
 \new Voice {
   \time 3/4 g2 e4 a2 f4 g2.
 } \addlyrics {
-  \set vocalName = "Bert "
+  \set vocalName = #"Bert "
   Hi, my name is Bert.
 } \addlyrics {
-  \set vocalName = "Ernie "
+  \set vocalName = #"Ernie "
   Oh, ché -- ri, je t'aime
 }
 @end lilypond
@@ -1039,7 +1042,7 @@ d d e d | c1 |
 }
 
 text = \lyricmode {
-\set stanza = "1." Ma- ry had a lit- tle lamb,
+\set stanza = #"1." Ma- ry had a lit- tle lamb,
 its fleece was white as snow.
 }
 
@@ -1080,7 +1083,7 @@ melody = \relative c' {
 }
  
 text = \lyricmode {
-  \set stanza = "1." This is verse one.
+  \set stanza = #"1." This is verse one.
   It has two lines.
 }
 
@@ -1136,7 +1139,6 @@ text = \lyricmode {
 
 
 @seealso
-
 Référence du programme : @rinternals{LyricText},
 @rinternals{StanzaNumber}.
 
index 1eab710882538d9bb7d1b279e4116532594d4d67..f3b4f8047f936fda9a8ac17fd90b44ed3ee01ecc 100644 (file)
@@ -1,13 +1,13 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
 @c This file is part of lilypond.tely
 @ignore
-    Translation of GIT committish: bdf8540b74167817eab96ed3d13b35477217f9fe
+    Translation of GIT committish: a6b100669bfc3847b3a03029d6a46ee9b1609e73
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @c Translators: Valentin Villenave
 @c Translation checkers: Jean-Charles Malahieude, John Mandereau
 @node Wind instruments
 @section Wind instruments
 
-@untranslated
+@lilypondfile[quote]{wind-headword.ly}
+
+Ce chapitre traite de certains aspects particuliers en matière de
+notation pour instruments à vent.
 
 @menu
 * Common notation for wind instruments::
@@ -25,7 +28,8 @@
 @node Common notation for wind instruments
 @subsection Common notation for wind instruments
 
-@untranslated
+Nous allons aborder ici quelques aspects communs à la plupart des
+instruments à vent.
 
 @menu
 * References for wind instruments::
 @node References for wind instruments
 @unnumberedsubsubsec References for wind instruments
 
-@untranslated
+@cindex instruments à vent
+@cindex vents
+
+Ce qui caractérise les partitions pour instruments à vent a trait
+principalement à la respiration et à l'attaque :
+
+@itemize
+@item Les respirations s'indiquent par des silences ou des 
+@ref{Breath marks}. 
+@item Un jeu @emph{legato} s'indique par des @ref{Slurs}.
+@item Les différents types d'attaque -- @emph{legato}, détaché ou piqué
+-- s'indiquent en principe par des signes d'articulation, parfois
+agrémentés de liaisons.  Voir à ce sujet 
+@ref{Articulations and ornamentations} et @ref{List of articulations}.
+@item Un @emph{Flatterzunge} (trémolo dental ou trémolo en roulant les
+r) s'indique par une marque de trémolo et une étiquette textuelle
+attachée à la note concernée.  Voir à ce sujet @ref{Tremolo repeats}.
+@end itemize
+
+D'autres aspects de la notation s'appliquent aussi aux instruments à
+vent :
+
+@itemize
+@item De nombreux instruments à vent sont transpositeurs ; voir 
+@ref{Instrument transpositions}.
+@item Les glissandos sont l'une des caractéristiques du trombone à
+coulisse, bien que d'autres instruments puisssent y parvenir en jouant
+sur les pistons ou des clés ; consulter @ref{Glissando}.
+@item Des glissandos harmoniques sont réalisables par les cuivres.  Ils
+sont traditionnellement indiqués par des @ref{Grace notes}.
+@item Les inflections en fin de note sont abordées au chapitre
+@ref{Falls and doits}.
+@item Les @qq{bruitages} de clé ou de piston s'indiquent souvent par le
+style @code{cross} ou des @ref{Special note heads}.
+@item Les bois peuvent émettre des harmoniques dans le bas de leur
+registre.  On les indique avec un @code{flageolet} -- voir 
+@ref{List of articulations}.
+@item En ce qui concerne les cuivres, la sourdine s'indique en pricipe
+par une étiquette textuelle.  Cependant, lorsque les changements sont
+nombreux et rapides, il est d'usage de recourrir aux articulations
+@code{stopped} et @code{open}. Pour de plus amples détails, voir
+@ref{Articulations and ornamentations} et @ref{List of articulations}.
+@item La sourdine du cor d'harmonie s'indique par un @code{stopped}.
+Voir le chapitre @ref{Articulations and ornamentations}.
+@end itemize
+
+@snippets
+
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{changing--flageolet-mark-size.ly}
+
+
+@seealso
+Manuel de notation :
+@ref{Breath marks},
+@ref{Slurs},
+@ref{Articulations and ornamentations},
+@ref{List of articulations},
+@ref{Tremolo repeats},
+@ref{Instrument transpositions},
+@ref{Glissando},
+@ref{Grace notes},
+@ref{Falls and doits},
+@ref{Special note heads},
+
+Morceaux choisis :
+@rlsr{Winds}
+
 
 @node Fingerings
 @unnumberedsubsubsec Fingerings
 
-@untranslated
+@c TODO add link to LSR snippet by Libero Mureddo once he has added
+@c it (after August 15th).
+Tout instrument à vent, hormis le trombone à coulisse, fait appel à
+plusieurs doigts pour produire un son.
+
+TBC
 
 @node Bagpipes
 @subsection Bagpipes
 
-@untranslated
+Voici quelques informations spécifiques à la cornemuse.
 
 @menu
 * Bagpipe definitions::
 @node Bagpipe definitions
 @unnumberedsubsubsec Bagpipe definitions
 
+@cindex bagpipe
+@cindex cornemuse
+@cindex Scottish highland bagpipe
+@cindex petites notes
+@funindex \taor
+@funindex taor
+@funindex \hideKeySignature
+@funindex hideKeySignature
+@funindex \showKeySignature
+@funindex showKeySignature
+
 LilyPond inclut des définitions spécifiques destinées à la notation pour
 cornemuse écossaise ; pour les utiliser, il suffit d'ajouter
 
@@ -96,9 +183,17 @@ Lorsqu'on joue des œuvres moins cérémonieuses que pour une parade
 ou un défilé, peut survenir un sol aigu, au doux nom de
 @qq{piobaireachd}, et que l'on indiquera par @code{gflat}.
 
+
+@seealso
+@rlsr{Winds}
+
+
 @node Bagpipe example
 @unnumberedsubsubsec Bagpipe example
 
+@cindex cornemuse : exemple
+@cindex Amazing Grace : exemple pour cornemuse
+
 Et voici en guise d'exemple, à quoi ressemble le chant populaire
 @emph{Amazing Grace}, noté dans l'idiome de la cornemuse.
 
@@ -138,3 +233,7 @@ Et voici en guise d'exemple, à quoi ressemble le chant populaire
   \bar "|."
 }
 @end lilypond
+
+
+@seealso
+@rlsr{Winds}
index 9fd28c2e2457243fb9feba6ff863a48e484967a7..763724d3c937da0727fe88916054738a2ef335e2 100644 (file)
@@ -1,13 +1,13 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
 @c This file is part of lilypond.tely
 @ignore
-   Translation of GIT committish: bfbaf6488d99ab4cdfcb4efdc67eaca63a636106
+   Translation of GIT committish: 148e80b8992a7fb9d59ec439c00b79decbbe3bad
 
    When revising a translation, copy the HEAD committish of the
    version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @c Translators: Ludovic Sardain
 @c Translation checkers: Jean-Yves Baudais, Valentin Villenave, John Mandereau, Jean-Charles Malahieude
@@ -38,7 +38,7 @@ résultat que vous souhaitez, peu importe la manière dont le code est
 organisé.  Néanmoins, quelques critères doivent être pris en compte
 lorsque l'on écrit un fichier LilyPond.
 
-@itemize @bullet
+@itemize
 @item Si vous faites une erreur, la structure même du fichier LilyPond
 peut permettre de la localiser plus ou moins facilement.
 
@@ -107,6 +107,10 @@ structuré si vous n'y avez pas adjoint de commentaires.
 @item @strong{Indentez les accolades}.  Beaucoup de problèmes
 viennent d'un défaut de parité entre @code{@{} et @code{@}}.
 
+@item @strong{Mentionnez les durées} au début de chaque section ou
+variable.  Si vous saisissez @code{c4 d e} au début d'une phrase, vous
+vous épargnerez des problèmes si, plus tard, vous modifiez votre musique.
+
 @item @strong{Séparez les affinages de mise en forme} de la musique
 elle-même. Voyez @ref{Saving typing with variables and functions} et
 @ref{Style sheets}.
@@ -120,13 +124,13 @@ elle-même. Voyez @ref{Saving typing with variables and functions} et
 Si vous saisissez de la musique à partir d'une partition existante,
 c'est-à-dire de la musique déjà écrite,
 
-@itemize @bullet
+@itemize
 
 @item n'entrez qu'un seul système de la partition originale
 à la fois --- mais toujours une seule mesure par ligne de texte ---,
 et vérifiez chaque système lorsqu'il est terminé.  Vous pouvez
-utiliser la commande @code{showLastLength} pour accélérer la
-compilation --- voir @ruser{Skipping corrected music} ;
+utiliser les commandes @code{showLastLength} et @code{showFirstLength}
+pour accélérer la compilation --- voir @ruser{Skipping corrected music} ;
 
 @item définissez @code{mBreak = @{\break @}} et insérez
 @code{\mBreak} dans le fichier d'entrée pour obtenir des sauts de
@@ -136,6 +140,24 @@ LilyPond.  Lorsque vous avez fini de relire votre musique, vous pouvez
 définir @code{mBreak = @{ @}} pour enlever tous ces sauts de ligne, et
 laisser LilyPond placer les sauts de ligne selon son propre algorithme.
 
+@item encadrez les notes d'une partie pour instrument transpositeur
+dans un 
+
+@example
+\transpose c tonalite-naturelle @{...@}
+@end example
+(où @code{tonatilte-naturelle} correspond à celle de l'instrument en
+question) de telle sorte que la musique comprise dans cette variable se
+retrouve en ut.  Vous pourrez toujours transposer à l'inverse si besoin
+lorsque vous ferez appel à cette variable.  Des erreurs de transposition
+seront moins susceptibles de se produire si la musique de toutes les
+variables est dans la même et unique tonalité.
+
+De la même manière, prénez toujours le do comme note de départ ou
+d'arrivée.  Ceci aura pour simple conséquence que les autres tonalités
+que vous utiliserez seront celles propres à chacun des instruments --
+sib pour une trompette en si bémol, ou lab pour une clarinette en la bémol.
+
 @end itemize
 
 
@@ -168,10 +190,10 @@ g4 c'8. e16
 @end example
 
 @item @strong{Séparez les retouches} des définitions de
-musique.  Ce conseil a été vu dans @ref{General suggestions},
-mais pour les projets d'importance c'est absolument vital.  Nous
+musique.  Nous vous avons déjà invité à adopter une telle pratique, qui
+par ailleurs devient vitale pour des projets d'importance.  Nous
 pouvons avoir besoin de changer la définition de
-@code{fthenp}, mais dans ce cas nous n'aurons besoin de le faire
+@code{fpuisp}, mais dans ce cas nous n'aurons besoin de le faire
 qu'une seule fois, et nous pourrons encore éviter de
 modifier quoi que ce soit à l'intérieur de la définition
 du @code{violon}.
@@ -218,7 +240,7 @@ violin = \new Staff { \fragmentA \fragmentA \fragmentB \fragmentA }
 }
 @end lilypond
 
-Cependant, vous pouvez aussi utiliser ces identificateurs
+Néanmoins vous pouvez aussi utiliser ces identificateurs
 --- aussi connus sous le nom de variables, macros, ou commandes
 (définies par l'utilisateur) --- pour des retouches :
 
@@ -260,6 +282,9 @@ violin = \relative c'' @{
 @}
 @end example
 
+@c TODO Replace the following with a better example  -td
+@c Skylining handles this correctly without padText
+
 Jusqu'ici nous avons vu des substitutions statiques : quand LilyPond
 rencontre @code{\padText}, il le remplace par le contenu que nous lui
 avons défini --- c'est-à-dire le contenu à droite de @code{padText=}.
@@ -285,9 +310,9 @@ padText =
 
 Utiliser les identificateurs est aussi un bon moyen pour vous épargner
 du travail si la syntaxe de LilyPond change un jour --- voir
-@ref{Updating old files}.  Si vous avez une seule définition, par
-exemple @code{\dolce}, pour tous vos fichiers (voir @ref{Style
-sheets}), et que la syntaxe change, alors vous n'aurez qu'à mettre à
+@ref{Updating old input files}.  Si vous avez une seule définition, par
+exemple @code{\dolce}, pour tous vos fichiers (voir @ref{Style sheets}),
+et que la syntaxe change, alors vous n'aurez qu'à mettre à 
 jour votre seule définition @code{\dolce}, au lieu de devoir modifier
 chaque fichier @code{.ly}.
 
@@ -328,7 +353,7 @@ cela en utilisant les techniques de @ref{Moving objects}.  On peut
 aussi faire quelque chose pour les définitions de @code{mpdolce}
 et @code{tempoMark}.  Elles produisent le résultat que nous désirons,
 mais nous pourrions aussi vouloir les utiliser dans une autre pièce.
-Il suffirait de les copier et les coller au début de chaque
+Il suffirait de les copier et coller au début de chaque
 fichier, mais c'est fastidieux.  De plus, cela laisse les définitions
 dans nos fichiers de musique, et je trouve personnellement tous ces
 @code{#()} assez laids.  Stockons-les dans un autre fichier :
@@ -384,7 +409,7 @@ tempoMark = #(define-music-function (parser location markp) (string?)
 
 C'est mieux, mais effectuons encore quelques retouches.  Le glissando
 est peu visible, c'est pourquoi nous allons l'épaissir et le
-rapprocher des têtes de notes.  Déplaçons l'indication métronomique
+rapprocher des têtes de note.  Déplaçons l'indication métronomique
 au-dessus de la clef, au lieu de la laisser au-dessus de la première
 note.  Et pour finir, mon professeur de composition déteste les
 chiffrages de mesure en @qq{C}, nous allons donc le transformer en @qq{4/4}.
@@ -560,8 +585,8 @@ chaque fichier de musique par @code{\include "../global.ly"} qui contient :
 * Minimal examples::            
 @end menu
 
-@node Updating old files
-@subsection Updating old files
+@node Updating old input files
+@subsection Updating old input files
 
 La syntaxe de LilyPond change de temps en temps.  Ces changements de
 syntaxe du langage d'entrée accompagnent les améliorations du
@@ -681,6 +706,7 @@ début de votre exemple.
 @end itemize
 
 Tout l'intérêt d'un exemple minimal réside dans sa facilité de lecture :
+
 @itemize
 @item évitez d'utiliser des notes, armures ou métriques compliquées, à
 moins que vous ne vouliez montrer quelque chose en rapport avec
@@ -735,8 +761,8 @@ sera substitué le contenu du fichier @file{musique-Cor.ly}, et de ce
 fait la variable @code{notesCor} se trouvera définie.  La commande
 @code{\transpose f@tie{}c'} indique que son argument @code{\notesCor}
 sera transposé à la quinte supérieure : le son réel @samp{f} s'écrit
-@code{c'}, ce qui est la caractéristique d'un Cor en Fa. La transposition
-est visible comme suit :
+@code{c'}, ce qui est la caractéristique d'un Cor en fa.  La
+transposition est visible comme suit :
 
 @lilypond[quote,ragged-right]
 \transpose f c' \relative c {
@@ -764,7 +790,7 @@ Il faut pour cela définir la propriété @code{skipBars} à @q{vrai} :
 @end example
 
 @noindent
-Cette commande assigne la valeur @q{vrai} --- @q{true} en anglais, et
+Cette commande assigne la valeur @q{vrai} --- @emph{true} en anglais, et
 @samp{#t} dans le langage Scheme --- à cette propriété dans le
 contexte @code{Score}.  Si l'on ajoute dans la musique ci-dessus le
 silence multi-mesures et cette option, on obtient le résultat suivant :
index 99ec9d8e0e30022c9cc6198e0c4f60b0f054f5d6..9836f53491bef264d5b55e10e7538ab75c5e44ec 100644 (file)
@@ -98,7 +98,7 @@ in <a class="title" href="user/lilypond-snippets.pdf">PDF</a>)
         <tr>
           <td valign="baseline" class="left-column">
        <ul>
-            <li><a class="title"  href="devel.html">Developers resources</a>
+            <li><a class="title"  href="devel/index.html">Developers resources</a>
               <br>(documentation for developers and contributors)</li>
        </ul>
     </td><td class="right-column">
diff --git a/Documentation/ja/GNUmakefile b/Documentation/ja/GNUmakefile
new file mode 100644 (file)
index 0000000..9f7f437
--- /dev/null
@@ -0,0 +1,7 @@
+ISOLANG = ja
+depth = ../..
+SUBDIRS = user
+STEPMAKE_TEMPLATES = documentation
+LOCALSTEPMAKE_TEMPLATES = doc-i18n-root
+
+include $(depth)/make/stepmake.make
diff --git a/Documentation/ja/index.html.in b/Documentation/ja/index.html.in
new file mode 100644 (file)
index 0000000..5ec032d
--- /dev/null
@@ -0,0 +1,146 @@
+<html>
+<!--
+    Translation of GIT committish: 499a511d4166feaada31114e097f86b5e0c56421
+
+    When revising a translation, copy the HEAD committish of the
+    version that you are working on.  See TRANSLATION for details.
+!-->
+  <head>
+    <title>LilyPond @TOPLEVEL_VERSION@ documentation</title>
+    <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
+    <meta name="aesop" content="links">
+    <meta name="description"
+          content="Top-level index to the standard documentation for
+                   LilyPond @TOPLEVEL_VERSION@">
+  </head>
+  
+  <body>
+    <div class="header">
+      <h1>LilyPond ドキュメント</h1>
+    </div>
+
+    <div class="subheader">
+      <p>
+       <strong>Version @TOPLEVEL_VERSION@</strong>
+       <br>
+       <strong>@DATE@</strong>
+      </p>
+    </div>
+
+    <table id="navigation">
+      <tbody>
+        <tr>
+          <td class="left-column">
+         <ul>
+           <li>
+           <a class="title"
+href="user/lilypond-learning/index.ja.html">学習マニュアル</a>
+(<a class="title" href="user/lilypond-learning-big-page.ja.html">大きな 1 ページ</a> 形式 ~ 1.5 MB)<!--,
+<a class="title" href="user/lilypond-learning.ja.pdf">PDF</a> 形式)
+-->
+              <br>(ここから始めてください)</li>
+
+          <li><a class="title"
+href="user/music-glossary/index.html">音楽用語集</a>
+(<a class="title" href="user/music-glossary-big-page.html">大きな 1 ページ</a> 形式 ~ 500 kB),
+<a class="title" href="user/music-glossary.pdf">PDF</a> 形式)
+     <br>(非英語圏のユーザ向け)</li>
+       </ul>
+         </td>
+         <td class="right-column">
+         <ul>
+                 <li>
+           <a class="title" href="topdocs/NEWS.html">News</a>
+            <br>(前回のメジャー リリースからの変更点)</li>
+
+<li><a class="title" href="../examples.html">Examples</a>
+     <br>(参照用の例)</li>
+
+         </ul>
+         </td>
+        </tr>
+        <tr>
+          <td valign="baseline" class="left-column">
+         <ul>
+           <li>
+<a class="title" href="user/lilypond/index.ja.html">表記リファレンス</a>
+(<a class="title" href="user/lilypond-big-page.ja.html">大きな 1 ページ</a> 形式 ~ 4 MB)<!--,
+<a class="title" href="user/lilypond.ja.pdf">PDF</a> 形式)
+-->
+     <br>(音楽を LilyPond で記述する)</li>
+
+       <li>
+ <a  class="title"
+href="user/lilypond-internals/index.ja.html">内部リファレンス</a>
+ (<a class="title" href="user/lilypond-internals-big-page.ja.html">大きな 1 ページ</a> 形式 ~ 1 MB)<!--,
+  <a class="title" href="user/lilypond-internals.ja.pdf">PDF</a> 形式)
+-->
+     <br>(調整のための定義)</li>
+
+  </ul>
+         </td>
+         <td valign="baseline" class="right-column">
+         <ul>
+              <li>
+           <a class="title"
+href="user/lilypond-program/index.ja.html">アプリケーションの使用方法</a>
+(<a class="title" href="user/lilypond-program-big-page.ja.html">大きな 1 ページ</a> 形式)<!--,
+<a class="title" href="user/lilypond-program.ja.pdf">PDF</a> 形式)
+-->
+            <br>(プログラムをインストールして実行する方法)</li>
+
+<li><a class="title"href="../input/lsr/lilypond-snippets/index.html">断片集</a>
+(<a class="title" href="../input/lsr/lilypond-snippets-big-page.html">大きな 1 ページ</a> 形式 ~ 2MB)<!--,
+<a class="title" href="user/lilypond-snippets.pdf">PDF</a> 形式)
+-->
+     <br>(Short tricks, tips, and examples)</li>
+
+       </ul>
+
+    </td>
+        <tr>
+          <td valign="baseline" class="left-column">
+       <ul>
+            <li><a class="title"  href="devel.html">開発者向けのリソース</a>
+              <br>(開発者と貢献者のためのドキュメント)</li>
+       </ul>
+    </td><td class="right-column">
+       <ul>
+          <li><a class="title"  href="translations.ja.html">翻訳状況</a>
+          <br>(翻訳の進捗状況)</li>
+       </ul>
+         </td>
+        </tr>
+        <tr>
+          <td valign="baseline" class="left-column">
+       <ul>
+
+            <li> <a class="title"  href="http://lilypond.org/">lilypond.org</a>
+              <br>(Web サイト)</li>
+            <li>
+             <a class="title" href="http://www.gnu.org/copyleft/gpl.html">ライセンス</a>
+              <br>(GNU GPL)</li>
+
+       </ul>
+    </td><td class="right-column">
+    <ul>
+        <li><a class="title"  href="THANKS.html">謝辞</a>
+        <br>(LilyPond への貢献者たちへ)</li>
+
+        <li><a class="title"  href="DEDICATION.html">献辞</a>
+        <br>(Jan と Han-Wen より)</li>
+
+         </ul>
+         </td>
+        </tr>
+      </tbody>
+    </table>
+    <p>
+      このページから読むことができるすべてのドキュメントは<strong>ダウンロード</strong>することができます。
+      <a href="http://download.linuxaudio.org/lilypond/binaries/documentation/lilypond-@TOPLEVEL_VERSION@-1.documentation.tar.bz2">ドキュメント (.tar.bz2 形式) のダウンロード</a>
+    </p>
+    <p>
+      このドキュメントの各 HTML ページには、ページの一番下に他の言語で書かれた<strong>翻訳</strong>へのリンクがあります。
+    </p>
+  </body>
+</html>
diff --git a/Documentation/ja/translations.html.in b/Documentation/ja/translations.html.in
new file mode 100644 (file)
index 0000000..71475c6
--- /dev/null
@@ -0,0 +1,171 @@
+ <p><i>最終更新日 Sat Feb 28 05:50:27 UTC 2009
+</i></p>
+<html>
+<!-- This page is automatically generated by translation-status.py from
+translations.template.html.in; DO NOT EDIT !-->
+<!--
+    Translation of GIT committish: 499a511d4166feaada31114e097f86b5e0c56421
+
+    When revising a translation, copy the HEAD committish of the
+    version that you are working on.  See TRANSLATION for details.
+!-->
+<head>
+  <title>LilyPond documentation translations status</title>
+  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+</head>
+
+<body>
+<p><a href="index.html">Up to documentation index</a></p>
+
+<h1>ドキュメント翻訳状況</h1>
+
+<p>このページは、LilyPond @TOPLEVEL_VERSION@ ドキュメントのうちの翻訳されたセクションについての概要です。ドキュメントの各セクションについて以下の情報が示されています: 括弧の中にそのセクションの単語数、翻訳者と校正者 (校正者は小さなフォントで表示されます)、英語で書かれたそのセクションのオリジナルのうちどれくらいが翻訳されたのか、その翻訳がどれくらい新しいのか、その翻訳が Grand Documentation Project (GDP) の開始後に更新されたのかどうか。
+</p>
+
+<p>GDP は英語のドキュメントに多くの変更を加えるため、翻訳されたドキュメントはたいてい最新ではないということに注意してください。しかしながら、そのことは翻訳されたドキュメントが現在の LilyPond バージョンに対して不正確であるということを意味するわけではありません。それは翻訳されたドキュメントは英語で書かれたドキュメントと同期していないということを意味するだけです。我々は翻訳ドキュメントが現在の LilyPond 文法や機能と矛盾しないよう最善を尽くしており、GDP が英語で書かれた対応セクションを処理し終わったときにそのセクションを更新しようと心がけています。
+</p>
+
+<table align="center" border="2">
+ <tr align="center">
+  <th>GNU LilyPond --- 学習マニュアル</th>  <th>翻訳者</th>
+  <th>翻訳点検者</th>
+  <th>翻訳済み</th>
+  <th>最新</th>
+  <th>その他の情報</th>
+ </tr>
+ <tr align="left">
+  <td>セクション タイトル<br>(429)</td>
+  <td>Yoshiki Sawada</td>
+  <td></td>
+  <td><span style="background-color: #1fff1f">はい</span></td>
+  <td><span style="background-color: #33ff21">partially</span></td>
+  <td>post-GDP</td>
+ </tr>
+ <tr align="left">
+  <td>序文<br>(411)</td>
+  <td>Yoshiki Sawada</td>
+  <td></td>
+  <td><span style="background-color: #1fff1f">はい</span></td>
+  <td><span style="background-color: #1fff1f">はい</span></td>
+  <td>post-GDP</td>
+ </tr>
+ <tr align="left">
+  <td>1 導入部<br>(3855)</td>
+  <td>Yoshiki Sawada</td>
+  <td></td>
+  <td><span style="background-color: #1fff1f">はい</span></td>
+  <td><span style="background-color: #1fff1f">はい</span></td>
+  <td>post-GDP</td>
+ </tr>
+ <tr align="left">
+  <td>2 チュートリアル<br>(6365)</td>
+  <td>Yoshiki Sawada</td>
+  <td></td>
+  <td><span style="background-color: #1fff1f">はい</span></td>
+  <td><span style="background-color: #1fff1f">はい</span></td>
+  <td>post-GDP</td>
+ </tr>
+ <tr align="left">
+  <td>3 基礎となるコンセプト<br>(10318)</td>
+  <td>Yoshiki Sawada</td>
+  <td></td>
+  <td><span style="background-color: #1fff1f">はい</span></td>
+  <td><span style="background-color: #1fff1f">はい</span></td>
+  <td>post-GDP</td>
+ </tr>
+ <tr align="left">
+  <td>4 出力を調整する<br>(14775)</td>
+  <td>Yoshiki Sawada</td>
+  <td></td>
+  <td><span style="background-color: #1fff1f">はい</span></td>
+  <td><span style="background-color: #1fff1f">はい</span></td>
+  <td>post-GDP</td>
+ </tr>
+ <tr align="left">
+  <td>5 LilyPond プロジェクトに取り組む<br>(3144)</td>
+  <td>Yoshiki Sawada</td>
+  <td></td>
+  <td><span style="background-color: #1fff1f">はい</span></td>
+  <td><span style="background-color: #25fe1f">partially</span></td>
+  <td>post-GDP</td>
+ </tr>
+ <tr align="left">
+  <td>A テンプレート<br>(498)</td>
+  <td>Yoshiki Sawada</td>
+  <td></td>
+  <td><span style="background-color: #dfef77">一部 (40 %)</span></td>
+  <td><span style="background-color: #25fe1f">partially</span></td>
+  <td>post-GDP</td>
+ </tr>
+ <tr align="left">
+  <td>B Scheme tutorial<br>(960)</td>
+  <td></td>
+  <td></td>
+  <td><span style="background-color: #d0f0f8">いいえ</span></td>
+  <td></td>
+  <td>pre-GDP</td>
+ </tr>
+</table>
+<p></p>
+
+<table align="center" border="2">
+ <tr align="center">
+  <th>GNU LilyPond --- アプリケーション使用方法</th>  <th>翻訳者</th>
+  <th>翻訳点検者</th>
+  <th>翻訳済み</th>
+  <th>最新</th>
+  <th>その他の情報</th>
+ </tr>
+ <tr align="left">
+  <td>セクション タイトル<br>(407)</td>
+  <td>Yoshiki Sawada</td>
+  <td></td>
+  <td><span style="background-color: #1fff1f">はい</span></td>
+  <td><span style="background-color: #33ff21">partially</span></td>
+  <td>post-GDP</td>
+ </tr>
+ <tr align="left">
+  <td>1 インストール<br>(1901)</td>
+  <td>Yoshiki Sawada</td>
+  <td></td>
+  <td><span style="background-color: #dfef77">一部 (11 %)</span></td>
+  <td><span style="background-color: #33ff21">partially</span></td>
+  <td>post-GDP</td>
+ </tr>
+ <tr align="left">
+  <td>2 セットアップ<br>(1149)</td>
+  <td>Yoshiki Sawada</td>
+  <td></td>
+  <td><span style="background-color: #1fff1f">はい</span></td>
+  <td><span style="background-color: #1fff1f">はい</span></td>
+  <td>post-GDP</td>
+ </tr>
+ <tr align="left">
+  <td>3 LilyPond を実行する<br>(2827)</td>
+  <td>Yoshiki Sawada</td>
+  <td></td>
+  <td><span style="background-color: #1fff1f">はい</span></td>
+  <td><span style="background-color: #1fff1f">はい</span></td>
+  <td>post-GDP</td>
+ </tr>
+ <tr align="left">
+  <td>4 @command{lilypond-book}: Integrating text and music<br>(3248)</td>
+  <td>Yoshiki Sawada</td>
+  <td></td>
+  <td><span style="background-color: #d0f0f8">いいえ</span></td>
+  <td><span style="background-color: #1fff1f">はい</span></td>
+  <td>post-GDP</td>
+ </tr>
+ <tr align="left">
+  <td>5 Converting from other formats<br>(1171)</td>
+  <td>Yoshiki Sawada</td>
+  <td></td>
+  <td><span style="background-color: #d0f0f8">いいえ</span></td>
+  <td><span style="background-color: #1fff1f">はい</span></td>
+  <td>post-GDP</td>
+ </tr>
+</table>
+<p></p>
+
+</body>
+</html>
diff --git a/Documentation/ja/translations.template.html.in b/Documentation/ja/translations.template.html.in
new file mode 100644 (file)
index 0000000..ab76105
--- /dev/null
@@ -0,0 +1,25 @@
+<html>
+<!--
+    Translation of GIT committish: 499a511d4166feaada31114e097f86b5e0c56421
+
+    When revising a translation, copy the HEAD committish of the
+    version that you are working on.  See TRANSLATION for details.
+!-->
+<head>
+  <title>LilyPond documentation translations status</title>
+  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+</head>
+
+<body>
+<p><a href="index.html">Up to documentation index</a></p>
+
+<h1>ドキュメント翻訳状況</h1>
+
+<p>このページは、LilyPond @TOPLEVEL_VERSION@ ドキュメントのうちの翻訳されたセクションについての概要です。ドキュメントの各セクションについて以下の情報が示されています: 括弧の中にそのセクションの単語数、翻訳者と校正者 (校正者は小さなフォントで表示されます)、英語で書かれたそのセクションのオリジナルのうちどれくらいが翻訳されたのか、その翻訳がどれくらい新しいのか、その翻訳が Grand Documentation Project (GDP) の開始後に更新されたのかどうか。
+</p>
+
+<p>GDP は英語のドキュメントに多くの変更を加えるため、翻訳されたドキュメントはたいてい最新ではないということに注意してください。しかしながら、そのことは翻訳されたドキュメントが現在の LilyPond バージョンに対して不正確であるということを意味するわけではありません。それは翻訳されたドキュメントは英語で書かれたドキュメントと同期していないということを意味するだけです。我々は翻訳ドキュメントが現在の LilyPond 文法や機能と矛盾しないよう最善を尽くしており、GDP が英語で書かれた対応セクションを処理し終わったときにそのセクションを更新しようと心がけています。
+</p>
+
+</body>
+</html>
diff --git a/Documentation/ja/user/GNUmakefile b/Documentation/ja/user/GNUmakefile
new file mode 100644 (file)
index 0000000..1b51cfc
--- /dev/null
@@ -0,0 +1,7 @@
+ISOLANG = ja
+depth = ../../..
+LOCALSTEPMAKE_TEMPLATES = lilypond ly doc-i18n-user
+include $(depth)/make/stepmake.make
+
+$(outdir)/%.pdf:
+       true
diff --git a/Documentation/ja/user/converters.itely b/Documentation/ja/user/converters.itely
new file mode 100644 (file)
index 0000000..61164fd
--- /dev/null
@@ -0,0 +1,52 @@
+@c -*- coding: utf-8; mode: texinfo; documentlanguage: ja -*-
+@c This file is part of lilypond-program.tely
+@ignore
+    Translation of GIT committish: 499a511d4166feaada31114e097f86b5e0c56421
+
+    When revising a translation, copy the HEAD committish of the
+    version that you are working on.  See TRANSLATION for details.
+@end ignore
+
+@c \version "2.12.0"
+
+@c Translators: Yoshiki Sawada
+@c Translation status: post-GDP
+
+@node Converting from other formats
+@chapter Converting from other formats
+
+@untranslated
+
+@menu
+* Invoking midi2ly::            Importing MIDI.
+* Invoking musicxml2ly::        Importing MusicXML.
+* Invoking abc2ly::             Importing ABC.
+* Invoking etf2ly::             Importing Finale.
+* Generating LilyPond files::   GUIs, transcribers, and algorithmic composition programs.
+@end menu
+
+
+@node Invoking midi2ly
+@section Invoking @command{midi2ly}
+
+@untranslated
+
+@node Invoking musicxml2ly
+@section Invoking @code{musicxml2ly}
+
+@untranslated
+
+@node Invoking abc2ly
+@section Invoking @code{abc2ly}
+
+@untranslated
+@node Invoking etf2ly
+@section Invoking @command{etf2ly}
+
+@untranslated
+
+
+@node Generating LilyPond files
+@section Generating LilyPond files
+
+@untranslated
diff --git a/Documentation/ja/user/dedication.itely b/Documentation/ja/user/dedication.itely
new file mode 100644 (file)
index 0000000..4afde93
--- /dev/null
@@ -0,0 +1,22 @@
+@c -*- coding: utf-8; mode: texinfo; documentlanguage: ja -*-
+@c This file is part of lilypond.tely
+@ignore
+    Translation of GIT committish: 499a511d4166feaada31114e097f86b5e0c56421
+
+    When revising a translation, copy the HEAD committish of the
+    version that you are working on.  See TRANSLATION for details.
+@end ignore
+
+@c \version "2.12.0"
+
+@c Translators: Yoshiki Sawada
+@c Translation status: post-GDP
+
+@quotation
+我々はこのプログラムを音楽を通じて出会ったすべての友人達に捧げたいと思います。
+@c We want to dedicate this program to all the friends that we
+@c met through music.
+
+Han-Wen と Jan
+@end quotation
+
diff --git a/Documentation/ja/user/fundamental.itely b/Documentation/ja/user/fundamental.itely
new file mode 100644 (file)
index 0000000..f91389c
--- /dev/null
@@ -0,0 +1,2845 @@
+@c -*- coding: utf-8; mode: texinfo; documentlanguage: ja -*-
+@c This file is part of lilypond-learning.tely
+@ignore
+    Translation of GIT committish: 499a511d4166feaada31114e097f86b5e0c56421
+
+    When revising a translation, copy the HEAD committish of the
+    version that you are working on.  See TRANSLATION for details.
+@end ignore
+
+@c \version "2.12.0"
+
+@c Translators: Yoshiki Sawada
+@c Translation status: post-GDP
+
+@node Fundamental concepts
+@chapter Fundamental concepts
+@c 基礎となるコンセプト
+
+チュートリアルではシンプルなテキスト ファイルから美しい楽譜を刻譜する方法を見@c
+てきました。このセクションでは、同じように美しいがより複雑な楽譜を作り出すのに@c
+必要とされるコンセプトとテクニックについて紹介します。
+
+@menu
+* How LilyPond input files work::
+* Voices contain music::
+* Contexts and engravers::
+* Extending the templates::
+@end menu
+
+@node How LilyPond input files work
+@section How LilyPond input files work
+@c LilyPond 入力ファイルの仕組み
+
+LilyPond の入力フォーマットは非常に自由な形式であり、経験豊富なユーザにとって@c
+はファイルを構築する際の自由度が高いです。しかしながら、この自由度が新しいユー@c
+ザにとっては混乱の元になります。このセクションではこの入力ファイルの構造につい@c
+ていくつか説明します。しかしながら、簡潔さを保つためにいくつかの詳細については@c
+目をつぶるかもしれません。入力フォーマットについての完全な記述は、@ruser{File 
+structure} を参照してください。
+@c ファイル構造
+
+@menu
+* Introduction to the LilyPond file structure::
+* Score is a (single) compound musical expression::
+* Nesting music expressions::
+* On the un-nestedness of brackets and ties::
+@end menu
+
+
+@node Introduction to the LilyPond file structure
+@subsection Introduction to the LilyPond file structure
+@c LilyPond ファイル構造の紹介
+
+@cindex input format
+@cindex file structure
+
+LilyPond 入力ファイルの基本例は以下のようなものです:
+
+@example
+\version @w{"@version{}"}
+\header @{ @}
+\score @{
+  @var{...compound music expression...}  % all the music goes here!
+  @var{...複合音楽表記...}                  % すべての音楽がここに入ります!
+  \layout @{ @}
+  \midi @{ @}
+@}
+@end example
+
+@noindent
+基本パターンは本当にさまざまです。しかしながら、この例は開始点として役に立ちま@c
+す。
+
+@funindex \book
+@funindex book
+@funindex \score
+@funindex score
+@cindex book
+@cindex score
+
+これまで、あなたが見てきた例では @code{\score @{@}} コマンドを使用していません@c
+でした。その理由は、あなたが LilyPond に与えたのが簡単な入力であった場合、@c
+LilyPond が自動的に追加のコマンドを付け加えるからです。LilyPond は以下のような@c
+入力:
+
+@example
+\relative c'' @{
+  c4 a d c
+@}
+@end example
+
+@noindent
+を以下を簡略表記したものとして扱います:
+
+@example
+\book @{
+  \score @{
+    \new Staff @{
+      \new Voice @{
+        \relative c'' @{
+          c4 a b c
+        @}
+      @}
+    @}
+    \layout @{ @}
+  @}
+@}
+@end example
+
+言い換えると、入力が保持しているのが単一の音楽表記である場合、LilyPond はまる@c
+でその音楽表記が上で示されたコマンドで包まれているかのように解釈します。
+
+@cindex implicit contexts
+@cindex contexts, implicit
+
+@strong{一言警告!}  LilyPond ドキュメントの中にある多くの例では、@code{\new 
+Staff} と @code{\new Voice} コマンドは暗黙的に作成されるために省略されていま@c
+す。簡単な例ではそれでうまくいきますが、より複雑な例の場合 -- 特に追加のコマン@c
+ドが使用される場合 -- コンテキストの暗黙的な作成は予想外の結果となる可能性があ@c
+ります。多分、予期しない余分な譜が作成されるでしょう。コンテキストを明示的に作@c
+成する方法は @ref{Contexts and engravers} で説明されています。
+@c コンテキストとエングラーバ
+
+@warning{数行以上の音楽を入力する場合、常に譜とボイスを明示的に作成したほうが@c
+賢明です。}
+
+今度は最初の例に戻って、@code{\score} コマンドについて検証します。他のことはデ@c
+フォルトのままにしておきます。
+
+@code{\score} ブロックは常にただ 1 つの音楽表記を保持していなければなりませ@c
+ん。そして、その音楽表記は @code{\score} コマンドのすぐ後に置かれなければなり@c
+ません。音楽表記は単一の音符である場合もありますし、以下のような巨大な複合表記@c
+である場合もあるということを覚えておいてください:
+
+@example
+@{
+  \new StaffGroup <<
+    @var{...insert the whole score of a Wagner opera in here...}
+    @var{...ワーグナーのオペラの楽譜全体がここに入ります...}
+  >>
+@}
+@end example
+
+@noindent
+すべては @code{@{ ... @}} の内部にあるため、それは 1 つの音楽表記であるとカ@c
+ウントされます。
+
+以前見てきたように、@code{\score} ブロックは他のものを含む可能性もあります。例@c
+えば以下のように:
+
+@example
+\score @{
+  @{ c'4 a b c' @}
+  \header @{ @}
+  \layout @{ @}
+  \midi @{ @}
+@}
+@end example
+
+@funindex \header
+@funindex header
+@funindex \layout
+@funindex layout
+@funindex \midi
+@funindex midi
+@cindex header
+@cindex layout
+@cindex midi
+
+@noindent
+これら 3 つのコマンド -- @code{\header}, @code{\layout}, @code{\midi} -- は特@c
+別なものであるということに注意してください: バックスラッシュ (@code{@bs{}}) で@c
+始まる他の多くのコマンドとは異なり、これらは音楽表記@emph{ではなく}、何らかの@c
+音楽表記の一部でもありません。そのため、これらは @code{\score} ブロックの内部@c
+に置かれるかもしれませんし、外部に置かれるかもしれません。実際、これらのコマン@c
+ドは一般的に @code{\score} ブロックの外側に置かれます -- 例えば、このセク@c
+ションの最初の例のように @code{\header} はしばしば @code{\score} コマンドの上@c
+に置かれます。
+
+以前は見なかった他の 2 つのコマンドは @code{\layout @{ @}} と @code{\midi @{ @}} 
+です。それらが上記のように記述された場合、LilyPond はそれぞれ譜刻された出力と 
+MIDI 出力を作り出します。それらは表記リファレンスの @ruser{Score layout} と 
+@ruser{Creating MIDI files} で完全に記述されています。
+@c 楽譜のレイアウト
+@c MIDI ファイルの作成
+
+@cindex scores, multiple
+@cindex book block, implicit
+@cindex implicit book block
+@funindex \book
+@funindex book
+
+あなたは複数の @code{\score} ブロックを記述するかもしれません。それらはそれぞ@c
+れ別々の楽譜として扱われますが、それらは結合されて単一の出力ファイルに収められ@c
+ます。@code{\book} コマンドは必要ありません -- このコマンドは暗黙的に 1 つ作成@c
+されます。しかしながら、あなたが 1 つの @code{.ly} ファイルから別々に分かれた@c
+出力ファイルを作成しようとするのなら、それぞれのセクションを異なる出力ファイル@c
+に分けるために @code{\book} コマンドが使用されます: 各 @code{\book} ブロックは@c
+別々の出力ファイルを作り出します。
+
+要約:
+
+各 @code{\book} ブロックは別々の出力ファイル (つまり PDF ファイル) を作成しま@c
+す。あなたが明示的に @code{\book} コマンドを記述しなかった場合、LilyPond は暗@c
+黙的に入力コードを @code{\book} ブロックで包み込みます。
+
+各 @code{\score} ブロックは @code{\book} ブロック内部で別々の音楽表記のチャンク 
+(塊) となります。
+
+@cindex layout block, effect of location
+
+各 @code{\layout} ブロックはそのブロックを含んでいる @code{\score} ブロックや 
+@code{\book} ブロックに影響を与えます -- つまり、ある @code{\score} ブロックの@c
+内部にある @code{\layout} ブロックはその @code{\score} ブロックにだけ影響を与@c
+え、@code{\score} ブロックの外部にある (それゆえ、明示的あるいは暗黙的に 
+@code{\book} ブロックの中にある) @code{\layout} ブロックはその @code{\book} ブ@c
+ロックの中にあるすべての @code{\score} に影響を与えます。
+
+詳細は、@ruser{Multiple scores in a book} を参照してください。
+@c 1 つの book の中にある複数の score
+
+@cindex variables
+
+もう一つの重要な簡略表記は変数を定義することです。すべてのテンプレートがこれを@c
+使っています:
+
+@example
+melody = \relative c' @{
+  c4 a b c
+@}
+
+\score @{
+  \melody
+@}
+@end example
+
+LilyPond がこのファイルを見ると、@code{melody} の値 (イコール記号の後にあるす@c
+べて) を記憶し、@code{\melody} と記述された箇所すべてにその値を挿入します。変@c
+数の名前について特別なことは何もありません -- 変数名は @code{melody}, 
+@code{global}, @code{TimeKey}, @code{pianorighthand}, @code{foofoobarbaz} など@c
+となります。詳細は、@ref{Saving typing with variables and functions} を参照し@c
+てください。変数名はアルファベットだけで構成されていて、LilyPond コマンド名と@c
+異なっている限りは、ほぼどんな名前でも使用できるということを覚えておいてくださ@c
+い。変数名の厳密な制限については、@ruser{File structure} で詳述されています。
+@c 変数と関数を用いたタイピングの省力化
+@c ファイル構造
+
+
+@seealso
+入力フォーマットの完全な定義は、@ruser{File structure} を参照してください。
+@c ファイル構造
+
+
+@node Score is a (single) compound musical expression
+@subsection Score is a (single) compound musical expression
+@c Score は (単一の) 複合的な音楽表記
+
+@funindex \score
+@funindex score
+@cindex score
+@cindex contents of a score block
+@cindex score block, contents of
+@cindex compound music expression
+@cindex music expression, compound
+
+前のセクション -- @ref{Introduction to the LilyPond file structure} -- で 
+LilyPond 入力ファイルの一般的な構造について見てきました。しかしながら、我々は@c
+最も重要な部分を飛ばしてきたようです: どうやって @code{\score} の後に記述する@c
+ものを見つけ出すのでしょうか?
+@c LilyPond ファイル構造の紹介
+
+我々はそのことを完全には飛ばしてきませんでした。この大きな謎は簡単なことであ@c
+り、謎でもなんでも@emph{ないのです}。以下の行がこの謎についてすべてを説明して@c
+います:
+
+@quotation
+@emph{@code{\score} ブロックは 1 つの複合音楽表記で始まらなくてはなりません。}
+@end quotation
+
+@noindent
+音楽表記と複合音楽表記が意味しているものを理解するには、チュートリアルの 
+@ref{Music expressions explained} を読み返すと役に立つかもしれません。そこで@c
+は、小さな音楽表記 -- 音符から始めて、それから和音など -- から大きな音楽表記を@c
+構築する方法を説明しています。今度は、大きな音楽表記からはじめて、その複雑さを@c
+減らしていきます。
+@c 音楽表記の説明
+
+@example
+\score @{
+  @{ % this brace begins the overall compound music expression
+    % この中括弧は複合音楽表記全体の開始点です
+    \new StaffGroup <<
+      @var{...insert the whole score of a Wagner opera in here...}
+      @var{...ワーグナーのオペラの楽譜全体がここに入ります...}
+    >>
+  @} % this brace ends the overall compound music expression
+    % この中括弧は複合音楽表記全体の終了点です
+  \layout @{ @}
+@}
+@end example
+
+ワーグナーのオペラの長さはこのマニュアルの軽く 2 倍はあります。そのため、歌手@c
+とピアノだけを加えることにします。このアンサンブルでは複数の譜をまとめて左端に@c
+中括弧を付ける @code{StaffGroup} は必要ありません。そのため、それを削除しま@c
+す。しかしながら、歌手とピアノが@emph{必要}です。
+
+@example
+\score @{
+  <<
+    \new Staff = "singer" <<
+    >>
+    \new PianoStaff = "piano" <<
+    >>
+  >>
+  \layout @{ @}
+@}
+@end example
+
+歌手とピアノが同時進行であることを示すために @code{@{ ... @}} の代わりに 
+@code{<< ... >>} を使用するということを覚えておいてください。我々はボーカル 
+パートとピアノパートが同時進行であるということを明確に示したいのであり、どちら@c
+かがもう一方の後に演奏されるのではないのです!歌手の譜表は一続きの音楽表記を 1 
+つだけ保持するため、歌手の譜表に対して << ... >> は必ずしも必要ありません。し@c
+かしながら、譜表の中の音楽が 2 つの同時進行の音楽表記 -- つまり、2 つの同時進@c
+行のボイスであるとか、歌詞付きの歌 -- である場合、中括弧の代わりに @code{<< ... 
+>>} を使う必要があります。後で実際の音楽を加えてみますが、ここではダミーの音符@c
+と歌詞を入力してみます。
+
+@lilypond[verbatim,quote,ragged-right]
+\score {
+  <<
+    \new Staff = "singer" <<
+      \new Voice = "vocal" { c'1 }
+      \addlyrics { And }
+    >>
+    \new PianoStaff = "piano" <<
+      \new Staff = "upper" { c'1 }
+      \new Staff = "lower" { c'1 }
+    >>
+  >>
+  \layout { }
+}
+@end lilypond
+
+更に詳細を加えていきます。歌手の譜表は @code{Voice} (LilyPond では、この用語は@c
+音符のセットを参照するものであり、必ずしもボーカルの音符であるわけではありません 
+-- 例えば、一般にバイオリンは 1 つのボイスを演奏します) と歌詞を保持します。さ@c
+らに、ピアノの譜表は上部譜表 (右手) と下部譜表 (左手) を保持します。
+
+この段階で、音符の入力を開始することができます。@code{\new Voice = "vocal"} の@c
+後の中括弧の中に、以下を書き加えることができます:
+
+@example
+\relative c'' @{
+  r4 d8\noBeam g, c4 r
+@}
+@end example
+
+しかしながら、そのようにすると、@code{\score} セクションは非常に長くなり、何が@c
+起こるのか理解しにくくなります。そのため、直接音符を付け加える代わりに変数を使@c
+用しましょう。前のセクションで変数についての紹介を行いました。覚えていますよ@c
+ね?では、いくつかの音符を加えて実際の楽譜の一部を作成してみましょう:
+
+@lilypond[verbatim,quote,ragged-right]
+melody = \relative c'' { r4 d8\noBeam g, c4 r }
+text   = \lyricmode { And God said, }
+upper  = \relative c'' { <g d g,>2~ <g d g,> }
+lower  = \relative c { b2 e2 }
+
+\score {
+  <<
+    \new Staff = "singer" <<
+      \new Voice = "vocal" { \melody }
+      \addlyrics { \text }
+    >>
+    \new PianoStaff = "piano" <<
+      \new Staff = "upper" { \upper }
+      \new Staff = "lower" {
+        \clef "bass"
+        \lower
+      }
+    >>
+  >>
+  \layout { }
+}
+@end lilypond
+
+音符 -- これは @code{\relative} の中で導入されたり、音楽表記の中に直接含まれて@c
+います -- と歌詞 -- これは @code{\lyricmode} で導入されています -- の違いに気@c
+をつけてください。前者は LilyPond に後に続く内容を音楽として解釈するように指示@c
+し、後者はテキストとして解釈するように指示します。
+
+@code{\score} セクションを書いている (あるいは読んでいる) とき、ゆっくりと注意@c
+深く進めてください。外側から始めて、それから内部の細かな部分に取り組んでくださ@c
+い。さらに、きちんとインデントを入れると非常に役に立ちます - これは、同じレベ@c
+ルにある各要素はテキスト エディタの中で同じ水平位置から始まるということを保証@c
+します。
+
+@code{\score} セクションを書いている (あるいは読んでいる) とき、ゆっくりと注意@c
+深く進めてください。外側から始めて、それから内部の細かな部分に取り組んでくださ@c
+い。さらに、きちんとインデントを入れると非常に役に立ちます -- これは、同じレベ@c
+ルにある各要素はテキスト エディタの中で同じ水平位置から始まるということを保証@c
+します。
+
+
+@seealso
+表記リファレンス: @ruser{Structure of a score}
+@c score の構造
+
+
+@node Nesting music expressions
+@subsection Nesting music expressions
+@c 音楽表記のネスト
+
+@cindex staves, temporary
+@cindex temporary staves
+@cindex ossias
+
+すべての譜をファイルの始めに宣言することは必須ではありません; 譜はどこででも臨@c
+時に導入される可能性があります。これはオッシアを作成する際に特に有用です -- 
+@rglos{ossia} を参照してください。ここで、3 つの音符に対して臨時に新しい譜表を@c
+導入する方法を示すちょっとした例を挙げます:
+@c オッシア
+
+@lilypond[verbatim,quote,ragged-right]
+\new Staff {
+  \relative g' {
+    r4 g8 g c4 c8 d |
+    e4 r8
+    <<
+      { f c c }
+      \new Staff {
+        f8 f c
+      }
+    >>
+    r4 |
+  }
+}
+@end lilypond
+
+@noindent
+音部記号のサイズは音部変更後に譜刻される音部記号のサイズ -- 行の開始点での音部@c
+記号よりも少し小さい -- と同じであるということに注意してください。これは行の途@c
+中で譜刻される音部記号全般に言えることです。
+
+@cindex staff, positioning
+
+オッシアは以下のように譜表の上に置かれるかもしれません:
+
+@lilypond[verbatim,quote,ragged-right]
+\new Staff = "main" {
+  \relative g' {
+    r4 g8 g c4 c8 d |
+    e4 r8
+    <<
+      { f c c }
+      \new Staff \with {
+        alignAboveContext = #"main" }
+      { f8 f c }
+    >>
+    r4 |
+  }
+}
+@end lilypond
+
+この例は後で説明される @code{\with} を使用しています。このコマンドは単一の譜表@c
+のデフォルトの振る舞いを変更することを意味します。ここでは、このコマンドは新し@c
+い譜表をデフォルトの位置 (@qq{main} と呼ばれている譜表の下) ではなく、上に置く@c
+べきであると言っています。
+
+
+@seealso
+オッシアはしばしば音部記号や拍子記号無しで描かれ、通常は小さなフォントで描かれ@c
+ます。これらはまだ紹介されていない追加のコマンドを必要とします。@ref{Size of 
+objects} と @ruser{Ossia staves} を参照してください。
+@c オブジェクトのサイズ
+@c オッシア譜
+
+
+@node On the un-nestedness of brackets and ties
+@subsection On the un-nestedness of brackets and ties
+@c ネストされない括弧とタイ
+
+@cindex brackets, nesting
+@cindex bracket types
+@cindex brackets, enclosing vs. marking
+
+これまでに LilyPond への入力ファイルを書く際に使用する括弧にはいくつかの種類が@c
+あるということを見てきました。これらは異なる規則 -- 最初は混乱を引き起こす可能@c
+性があります -- に従います。規則についての説明を行う前に、括弧の種類を再確認し@c
+てみましょう。
+
+@c attempt to force this onto a new page
+@need 50
+@multitable @columnfractions .3 .7
+@headitem 括弧のタイプ
+  @tab 機能
+@item @code{@{ .. @}}
+  @tab 一続きの音楽を囲みます
+@item @code{< .. >}
+  @tab 和音となる音符を囲みます
+@item @code{<< .. >>}
+  @tab 同時進行する音楽表記を囲みます
+@item @code{( .. )}
+  @tab スラーの開始点と終了点を意味します
+@item @code{\( .. \)}
+  @tab フレージング スラーの開始点と終了点を意味します
+@item @code{[ .. ]}
+  @tab 手動ビームの開始点と終了点を意味します
+@end multitable
+
+こららに対して、音符の間や音符をまたがって線を生成する他の構文を付け加えるべき@c
+です: タイ (チルド @code{~} によって記述されます)、@c
+連符 (@code{\times x/y @{..@}} として記述されます)、@c
+グレイス ノート (@code{\grace@{..@}} として記述されます) です。
+
+LilyPond 以外では、種類の異なる括弧が適切にネストされること -- @code{[ @{ ( .. ) 
+@} ]} のように -- が一般的な使い方であり、括弧の終わりの順序は正確に括弧の始ま@c
+りの順序と逆になります。このことは上記の表で @q{囲みます} という言葉で記述され@c
+ている 3 種類の括弧に対しては@strong{必須}となります -- それらは適切にネストさ@c
+れなければなりません。しかしながら、残りの括弧 -- 上記の表で @q{意味します} と@c
+いう言葉で記述されいるものと、タイ、連符で使用されるもの -- はいかなる括弧とも@c
+ネストされる必要は@strong{ありません}。実際、これらは何かを囲むという意味では@c
+括弧ではありません -- それらは単に何かが始まる場所、終わる場所を示すためのマー@c
+クです。
+
+そのため、例えばフレージング スラーは手動で挿入されるビームの前に開始して、そ@c
+の手動ビームの前に終わる可能性もあります -- たぶん音楽的ではないかもしれません@c
+が、可能性はあります:
+
+@lilypond[quote,verbatim,fragment,ragged-right,relative=2]
+ { g8\( a b[ c b\) a] }
+@end lilypond
+
+一般に、種類の異なる括弧と連符、タイ、グレースノートに適用される括弧は自由に混@c
+ぜ合わせられるかもしれません。以下の例では、ビームは連符の中にまで伸びていて (行 
+1)、スラーは連符の中にまで伸びていて (行 2)、ビームとスラーが連符の中にまで伸@c
+びていて (行 3)、タイが 2 つの連符にまたがっていて、さらにフレージング スラー@c
+が連符の外にまで伸びています (行 3 と 4)。
+
+@lilypond[quote,verbatim,fragment,ragged-right]
+{
+  r16[ g16 \times 2/3 {r16 e'8] }
+  g16( a \times 2/3 {b d) e' }
+  g8[( a \times 2/3 {b d') e'~]}
+  \times 4/5 {e'32\( a b d' e'} a'4.\)
+}
+@end lilypond
+
+
+@node Voices contain music
+@section Voices contain music
+@c 音楽を保持するボイス
+
+歌手は歌うボイスを必要とし、それゆえ LilyPond も歌う (演奏する) ボイスを必要と@c
+します。楽譜の中にあるすべての楽器に対する実際の音楽はボイスの中に保持されます 
+-- このことは LilyPond すべてのコンセプトの中での最も基礎的なことです。
+
+@menu
+* I'm hearing Voices::
+* Explicitly instantiating voices::
+* Voices and vocals::
+@end menu
+
+@node I'm hearing Voices
+@subsection I'm hearing Voices
+@c 私はボイスを聴いている
+
+@cindex polyphony
+@cindex layers
+@cindex multiple voices
+@cindex voices, multiple
+@cindex Voice context
+@cindex context, Voice
+@cindex simultaneous music
+@cindex music, simultaneous
+@cindex concurrent music
+@cindex music, concurrent
+@cindex voices vs. chords
+@cindex chords vs. voices
+
+LilyPond の楽譜の中で最も低レベルで、最も基礎的であり、最も内部にあるレイヤは 
+@q{ボイス コンテキスト} または縮めて単に @q{ボイス} と呼ばれます。ボイスはとき@c
+どき他の表記パッケージの中で @q{レイヤ} と呼ばれます。
+
+実際、ボイス レイヤまたはコンテキストは音楽を保持することができる唯一のもので@c
+す。ボイス コンテキストが明示的に宣言されていない場合、この章の始めで見てきた@c
+ようにボイス コンテキストが 1 つ自動的に生成されます。オーボエなどといった楽器@c
+は同時に 1 つの音符だけを演奏できます。そのような楽器のために書かれた音楽は単@c
+声であり、ボイスを 1 つだけを必要とします。ピアノのように同時に複数の音符を演@c
+奏することができる楽器はしばしば、それらが演奏することのできる同時進行の異なる@c
+音符やリズムをエンコードするために、複数のボイスを必要とします。
+
+もちろん、単一のボイスは和音の中で多くの音符を保持することができます。それで@c
+は、複数のボイスが実際に必要とされるのはどんな場合なのでしょうか?まずは、4 つ@c
+の和音を持つ以下の例を見てください:
+
+@lilypond[quote,verbatim,fragment,ragged-right,relative=1]
+\key g \major
+<d g>4 <d fis> <d a'> <d g>
+@end lilypond
+
+この例は単一の角括弧からなる和音記号@code{< ... >} を使って表記することがで@c
+き、必要とされるボイスは 1 つだけです。しかしながら、F シャープが A に移行する@c
+際に、F シャープは実際には 8 分音符であり、そのあとに 8 分音符の G が続くとし@c
+たらどうでしょうか?そのような場合、同時に開始されるが演奏時間が異なる 2 つの@c
+音符を持つことになります: 4 分音符の D と 8 分音符の F シャープです。これらの@c
+音符をどのように記述すればよいのでしょうか?これらの音符は和音として記述するこ@c
+とはできません。なぜなら、和音の中の音符はすべて同じ演奏時間でなければならない@c
+からです。そして、それらの音符は同時に開始しなければならないので、2 つのシー@c
+ケンシャルな (連続した) 音符として記述することもできません。この場合は 2 つの@c
+ボイスが必要となります。
+
+上記のことが LilyPond 入力構文でどのように達成されるのかを見てみましょう。
+
+@funindex << \\ >>
+@funindex \\
+
+1 つの譜表に複数のボイスがある音楽断片を入力する最も簡単な方法は、各ボイスを@c
+シーケンスに (続けて) 入力し (各ボイスを @code{@{...@}} の中に入れます)、それ@c
+らのボイスを @code{<<...>>} を使って同時進行するよう組み合わせます。さらに、各@c
+断片は、それぞれが別の断片であることを示すために、ダブル バックスラッシュ 
+@code{\\} で区切られなければなりません。ダブル バックスラッシュが無ければ、す@c
+べての音符は単一のボイスの中に挿入され、通常はエラーとなります。このテクニック@c
+は、大部分が単声であり、時々短い部分で多声になる楽曲に特に適しています。
+
+以下では、上記の例の和音を 2 つのボイスに分け、経過音とスラーを付け加えています:
+
+@lilypond[quote,verbatim,fragment,ragged-right,relative=2]
+\key g \major
+%    Voice "1"                  Voice "2"
+<< { g4 fis8( g) a4 g }    \\ { d4 d d d }  >> |
+@end lilypond
+
+この例では 2 番目のボイスのステムが下向きになっていることに気づいてください。
+
+今度はもう 1 つ簡単な例を挙げてみます:
+
+
+@lilypond[quote,verbatim,fragment,ragged-right,relative=2]
+\key d \minor
+%    Voice "1"             Voice "2"
+<< { r4 g g4. a8 }    \\ { d,2 d4 g }       >> |
+<< { bes4 bes c bes } \\ { g4 g g8( a) g4 } >> |
+<< { a2. r4 }         \\ { fis2. s4 }       >> |
+@end lilypond
+
+各小節で別々に @code{<< \\ >>} 構造を使用する必要はありません。各小節に音符が@c
+少ししかないような音楽の場合、このレイアウトはコードの可読性を良くするのに役立@c
+ちます。しかしながら、各小節に多くの音符がある場合、以下のように各ボイスを分離@c
+した方が良いかもしれません:
+
+@lilypond[quote,verbatim,fragment,ragged-right,relative=2]
+\key d \minor
+<< {
+  % Voice "1"
+  r4 g g4. a8 |
+  bes4 bes c bes |
+  a2. r4 |
+} \\ {
+  % Voice "2"
+  d,2 d4 g |
+  g4 g g8( a) g4 |
+  fis2. s4 |
+} >>
+@end lilypond
+
+
+@cindex voices, naming
+@cindex voices crossing brackets
+@cindex slurs crossing brackets
+@cindex ties crossing brackest
+
+この例にあるボイスは 2 つだけです。しかしながら、これと同じ構成にもっと多くの@c
+バック スラッシュを付け加えることによって、3 つかそれ以上のボイスを持たせるこ@c
+とになるかもしれません。
+
+ボイス コンテキストは @code{"1"}, @code{"2"} などの名前を持ちます。各コンテキ@c
+ストの中では、スラー、ステム、タイ、強弱記号などの垂直方向の向きは適切にセット@c
+されます。
+
+@lilypond[quote,verbatim,fragment]
+\new Staff \relative c' {
+  % Main voice
+  c16 d e f
+  %    Voice "1"     Voice "2"                 Voice "3"
+  << { g4 f e } \\ { r8 e4 d c8 ~ } >> |
+  << { d2 e2 }  \\ { c8 b16 a b8 g ~ g2 } \\ { s4 b4 c2 } >> |
+}
+@end lilypond
+
+これらのボイスはすべてメインのボイスからは分かれています。メインのボイスの音符は 
+@code{<< .. >>} 構造の外にあるからです。この @code{<< .. >>} 構造を同時進行構@c
+造と呼ぶことにしましょう。通常、スラーとタイは同じボイス内にある音符だけをつな@c
+ぎます。そのため、スラーとタイは同時進行構造を出たり入ったりすることはありま@c
+せん。反対に、同じ譜表上にある個々の同時進行構造で、平行の位置にあるボイスは同@c
+じボイスになります。さらに、その他のボイス関連プロパティは同時進行構造をまた@c
+がって持ち越されます。ここで、上記と同じ例で各ボイスに対して異なる色と音符玉を@c
+割り当ててみます。あるボイスでの変更は他のボイスに影響を与えませんが、その後に@c
+続く同じボイス (訳者: 平行位置にあるボイス) でその変更が維持されることに注意し@c
+てください。さらに、タイでつながれた音符は、同じボイスとなる 2 つの同時進行構@c
+造にまたがって分かれるかもしれないということに注意してください。
+
+@lilypond[quote,verbatim]
+\new Staff \relative c' {
+  % Main voice
+  c16 d e f
+  << % Bar 1
+    {
+      \voiceOneStyle
+      g4 f e
+    }
+  \\
+    {
+      \voiceTwoStyle
+      r8 e4 d c8 ~
+    }
+  >>
+  << % Bar 2
+     % Voice 1 continues
+    { d2 e2 }
+  \\
+     % Voice 2 continues
+    { c8 b16 a b8 g ~ g2 }
+  \\
+    {
+      \voiceThreeStyle
+      s4 b4 c2
+    }
+  >>
+}
+@end lilypond
+
+@funindex \voiceOneStyle
+@funindex \voiceTwoStyle
+@funindex \voiceThreeStyle
+@funindex \voiceFourStyle
+@funindex \voiceNeutralStyle
+
+コマンド @code{\voiceXXXStyle} は主にこのマニュアルのような教育目的のドキュ@c
+メントで使用することを意図したものです。このコマンドは、各ボイスが容易に見分け@c
+られるように、音符玉、ステム、ビームの色、それに音符玉のスタイルを変更します。@c
+ボイス 1 は赤でダイアモンドの音符玉を持つようにセットされ、ボイス 2 は青で三角@c
+形の音符玉を、ボイス 3 は緑で×付きの円を、ボイス 4 (ここでは使用されていません) 
+はマゼンダの×の音符玉を持つようにセットされます。@code{\voiceNeutralStyle} 
+(これもここでは使用されていません) は音符玉のスタイルをデフォルトに戻します。@c
+後ほど、ユーザがこのようなコマンドを作成するための方法を見ていきます。@c
+@ref{Visibility and color of objects} と @ref{Using variables for tweaks} を参@c
+照してください。
+@c オブジェクトの可視性と色
+@c 調整のために変数を使用する
+
+@cindex polyphony and relative note entry
+@cindex relative note entry and polyphony
+
+多声部は @code{\relative @{ @}} ブロック内の音符の相対関係を変えません。各音符@c
+は直前の音符あるいは直前の和音の最初の音符との相対関係で計算されます。そのた@c
+め、以下の例では
+
+@example
+\relative c' @{ noteA << < noteB noteC > \\ noteD >> noteE @}
+@end example
+
+@noindent
+@code{noteB} は @code{noteA} との相対関係で決まり                         @*
+@code{noteC} は @code{noteA} ではなく @code{noteB} との相対関係で決まり  @*
+@code{noteD} は @code{noteA} や @code{noteC} ではなく
+@code{noteC} との相対関係で決まり                                           @*
+@code{noteE} は @code{noteA} ではなく @code{noteD} との相対関係で決まります。
+
+各ボイスの中にある音符の音程がボイスごとに大きく離れている場合、各ボイスの始めに 
+@code{\relative} コマンドを置くと明瞭になるかもしれません:
+
+@example
+\relative c' @{ noteA ... @}
+<<
+  \relative c'' @{ < noteB noteC > ... @}
+@bs{}@bs{}
+  \relative g' @{ noteD ... @}
+>>
+\relative c' @{ noteE ... @}
+@end example
+
+最後に、もっと複雑な楽曲の中にあるボイスを分析してみましょう。以下は、ショパンの 
+Deux Nocturnes, Op 32 の 2 番の最初の 2 小節です。この例は、表記を記述するため@c
+のテクニックをいくつか示すために、本章の後の方と次の章で使用されます。ですか@c
+ら、今はコードの中にある意味不明に見えるものは無視して、音楽とボイスだけに注目@c
+してください -- 込み入った内容は後ほど説明します。
+
+@c The following should appear as music without code
+@lilypond[quote,ragged-right]
+\new Staff \relative c'' {
+  \key aes \major
+  << % Voice one
+    { c2 aes4. bes8 }
+  \\ % Voice two
+    { aes2 f4 fes }
+  \\ % No voice three
+  \\ % Voice four
+    {
+      % Ignore these for now - they are explained in Ch 4
+      \once \override NoteColumn #'force-hshift = #0
+      <ees c>2
+      \once \override NoteColumn #'force-hshift = #0.5
+      des2
+    }
+  >> |
+  <c ees aes c>1 |
+}
+@end lilypond
+
+ステムの向きはしばしば 2 つの同時進行する旋律ラインのつながりを示すために使用@c
+されます。ここでは、一番上の音符のステムはすべて上向きであり、下の方にある音符@c
+のステムはすべて下向きです。これは、複数のボイスが必要とされているということを@c
+示す最初の兆候です。
+
+しかしながら、複数のボイスが実際に必要とされるのは、同時に始まる音符が異なる演@c
+奏時間を持つ場合です。最初の小節の 3 拍目を見てください。A フラットは付点 4 分@c
+音符であり、F は 4 分音符、D フラットは半音符です。これらの音符を和音として記@c
+述することはできません。なぜなら、和音の中の音符はすべて同じ演奏時間でなければ@c
+ならないからです。これらの音符をシーケンシャルな (連続する) 音符として記述する@c
+こともできません。なぜなら、これらの音符は同時に始まらなければならないからで@c
+す。この箇所では 3 つのボイスが必要となり、以下に示すように一般的にはこの小節@c
+全体を 3 つのボイスで記述します。そこでは、3 つのボイスに対して異なる音符玉と@c
+色を割り当てています。もう一度繰り返しますが、この例のコードのことは後ほど説明@c
+しますので、理解できないことは無視してください。
+
+@c The following should appear as music without code
+@c The three voice styles should be defined in -init
+@lilypond[quote,ragged-right]
+\new Staff \relative c'' {
+  \key aes \major
+  <<
+    { % Voice one
+      \voiceOneStyle
+      c2 aes4. bes8
+    }
+  \\  % Voice two
+    { \voiceTwoStyle
+      aes2 f4 fes
+    }
+  \\  % No Voice three (we want stems down)
+  \\  % Voice four
+    { \voiceThreeStyle
+      % Ignore these for now - they are explained in Ch 4
+      \once \override NoteColumn #'force-hshift = #0
+      <ees c>2
+      \once \override NoteColumn #'force-hshift = #0.5
+      des2
+    }
+  >> |
+  <c ees aes c>1 |
+}
+@end lilypond
+
+
+この音楽のコードをゼロから記述してみましょう。これから見ていくように、いくつか@c
+の問題に遭遇します。すでに学んだように、最初の小節の音楽を 3 つのボイスに分け@c
+て記述するために @code{<< \\  >>} 構造を使用します:
+
+@c ignore
+@lilypond[quote,verbatim,fragment,ragged-right]
+\new Staff \relative c'' {
+  \key aes \major
+  <<
+    { c2 aes4. bes8 } \\ { aes2 f4 fes } \\ { <ees c>2 des2 }
+  >>
+  <c ees aes c>1
+}
+@end lilypond
+
+@cindex stem down
+@cindex voices and stem directions
+@cindex stem directions and voices
+@cindex stem up
+
+ステムの向きは自動的に割り当てられ、奇数番号のボイスが上向きのステム、偶数番号@c
+のボイスが下向きのステムを持ちます。ボイス 1 と 2 のステムは正しいのですが、ボ@c
+イス 3 のステムはここでは下向きになるべきです。これは単純にボイス 3 を省略し@c
+て、その音楽をボイス 4 に記述することによって修正できます:
+
+@lilypond[quote,verbatim,fragment,ragged-right]
+\new Staff \relative c'' {
+  \key aes \major
+  << % Voice one
+    { c2 aes4. bes8 }
+  \\ % Voice two
+    { aes2 f4 fes   }
+  \\ % Omit Voice three
+  \\ % Voice four
+    { <ees c>2 des2 }
+  >> |
+  <c ees aes c>1 |
+}
+@end lilypond
+
+@noindent
+これによりステムの向きが修正されました。しかしながら、複数のボイスを持つ場合に@c
+しばしば発生する問題に遭遇してしまいました -- あるボイスの中にある音符のステム@c
+が他のボイスの中にある音符玉と衝突しています。音符をレイアウトするときに、@c
+LilyPond は 2 つのボイスのステムの向きを反対にすることによって 2 つのボイスの@c
+音符や和音が同じ垂直方向の音符列に位置することを可能にします。しかしながら、3 
+番目や 4 番目のボイスは音符玉の衝突を避けるために必要があれば移動させられま@c
+す。これは普通はうまくいきますが、この例では一番下のボイスの音符はデフォルトの@c
+状態では明らかにうまくいっていません。LilyPond は音符の水平方向位置を調節する@c
+ためにいくつかの手段を提供します。我々はまだこの問題を修正するための方法を見て@c
+いく準備が整っていないので、この問題は後に残しておくことにします -- 
+@ref{Fixing overlapping notation} の @code{force-hshift} プロパティを参照して@c
+ください。
+
+
+@seealso
+表記リファレンス: @ruser{Multiple voices}
+@c 複数のボイス
+
+
+@node Explicitly instantiating voices
+@subsection Explicitly instantiating voices
+@c ボイスの明示的なインスタンス化
+
+@funindex \voiceOne
+@funindex voiceOne
+@funindex \voiceTwo
+@funindex voiceTwo
+@funindex \voiceThree
+@funindex voiceThree
+@funindex \voiceFour
+@funindex voiceFour
+@funindex \oneVoice
+@funindex oneVoice
+@funindex \new Voice
+@cindex voice contexts, creating
+
+多声部音楽を作成するためにボイス コンテキストを手動で @code{<< >>} ブロックの@c
+中に作成することもできます。ステム、スラーなどの向きを示すために 
+@code{\voiceOne} ... @code{\voiceFour} を使用します。この手法は各ボイスを別々@c
+にして、より記述的な名前を与えることを可能にするため、長い楽譜ではわかりやすい@c
+ものになります。
+
+本質的には、前のセクションで使用した構造 @code{<< \\ >>}:
+
+@example
+\new Staff @{
+  \relative c' @{
+    << @{ e4 f g a @} @bs{}@bs{} @{ c,4 d e f @} >>
+  @}
+@}
+@end example
+
+@noindent
+は以下と等価です:
+
+@example
+\new Staff <<
+  \new Voice = "1" @{ \voiceOne \relative c' @{ e4 f g a @} @}
+  \new Voice = "2" @{ \voiceTwo \relative c' @{ c4 d e f @} @}
+>>
+@end example
+
+上記の両方ともが以下の楽譜を生成します:
+
+@c The following example should not display the code
+@lilypond[ragged-right,quote]
+\new Staff <<
+  \new Voice = "1" { \voiceOne \relative c' { e4 f g a } }
+  \new Voice = "2" { \voiceTwo \relative c' { c4 d e f } }
+>>
+@end lilypond
+
+@cindex voices, reverting to single
+@cindex reverting to a single voice
+
+@code{\voiceXXX} コマンドはステム、スラー、タイ、アーティキュレーション、テキ@c
+ストの注釈、付点音符の付点、運指記号の向きをセットします。@code{\voiceOne} と 
+@code{\voiceThree} はこれらのオブジェクトを上向きにし、一方の @code{\voiceTwo} 
+と @code{\voiceFour} は下向きにします。さらに、音符の玉の衝突を避ける必要があ@c
+る場合、これらのコマンドは各ボイスに対して水平方向のシフトを発生させます。コ@c
+マンド @code{\oneVoice} は設定を単一のボイスの場合の通常値に戻します。
+
+いくつかの簡単な例で、@code{\oneVoice}, @code{\voiceOne}, @code{\voiceTwo} が@c
+マークアップ、タイ、スラー、強弱記号に与える影響を見ていきましょう:
+
+@lilypond[quote,ragged-right,verbatim]
+\relative c'{
+  % Default behavior or behavior after \oneVoice
+  c d8 ~ d e4 ( f g a ) b-> c
+}
+@end lilypond
+
+@lilypond[quote,ragged-right,verbatim]
+\relative c'{
+  \voiceOne
+  c d8 ~ d e4 ( f g a ) b-> c
+  \oneVoice
+  c, d8 ~ d e4 ( f g a ) b-> c
+}
+@end lilypond
+
+@lilypond[quote,ragged-right,verbatim]
+\relative c'{
+  \voiceTwo
+  c d8 ~ d e4 ( f g a ) b-> c
+  \oneVoice
+  c, d8 ~ d e4 ( f g a ) b-> c
+}
+@end lilypond
+
+今度は、前のセクションの例を使って同じ多声部音楽のパッセージを 3 つの異なる方@c
+法で表記する例を見ていきます。それぞれ異なる状況で利点があります。
+
+1 つはメイン ボイスに属する @code{<< >>} の内部に直接表記を記述する方法です 
+(しかしながら、音符は @code{<< \\ >>} 構造の中に置かれては@strong{いません})。@c
+これはメイン ボイスの途中で追加のボイスが現れる場合に有用です。ここでは例にさ@c
+らに調整を加えます。赤のダイアモンド形の音符はメイン メロディが単一のボイス 
+コンテキストになっていて、その上にフレージング スラーを描くことができるという@c
+ことを示しています。
+
+@lilypond[quote,ragged-right,verbatim]
+\new Staff \relative c' {
+  \voiceOneStyle
+  % The following notes are monophonic
+  c16^( d e f
+  % Start simultaneous section of three voices
+  <<
+    % Continue the main voice in parallel
+    { g4 f e | d2 e2) }
+    % Initiate second voice
+    \new Voice {
+      % Set stems, etc, down
+      \voiceTwo
+      r8 e4 d c8 ~ | c8 b16 a b8 g ~ g2
+    }
+    % Initiate third voice
+    \new Voice {
+      % Set stems, etc, up
+      \voiceThree
+      s2. | s4 b4 c2
+    }
+  >>
+}
+@end lilypond
+
+@cindex nesting music expressions
+@cindex nesting simultaneous constructs
+@cindex nesting voices
+@cindex voices, temporary
+@cindex voices, nesting
+
+多声部構造をより深くネストさせることが可能であり、追加のボイスが短時間のもので@c
+あるならば、こちらの方がより自然な音楽表記方法であるかもしれません:
+
+@lilypond[quote,ragged-right,verbatim]
+\new Staff \relative c' {
+  c16^( d e f
+  <<
+    { g4 f e | d2 e2) }
+    \new Voice {
+      \voiceTwo
+      r8 e4 d c8 ~ |
+      <<
+        {c8 b16 a b8 g ~ g2}
+        \new Voice {
+          \voiceThree
+          s4 b4 c2
+        }
+      >>
+    }
+  >>
+}
+@end lilypond
+
+@cindex spacing notes
+
+新しいボイスを一時的にネストさせる手法は音楽のほんの一部だけが多声である場合に@c
+有用です。しかしながら、楽譜全体が多声である場合、一貫して複数のボイスを使用し@c
+た方がわかりやすくなります。ボイスが無音の場所を飛ばすには以下のように空白音符@c
+を使用します:
+
+@lilypond[quote,ragged-right,verbatim]
+\new Staff \relative c' <<
+  % Initiate first voice
+  \new Voice {
+    \voiceOne
+    c16^( d e f g4 f e | d2 e2) |
+  }
+  % Initiate second voice
+  \new Voice {
+    % Set stems, etc, down
+    \voiceTwo
+    s4 r8 e4 d c8 ~ | c8 b16 a b8 g ~ g2 |
+  }
+  % Initiate third voice
+  \new Voice {
+    % Set stems, etc, up
+    \voiceThree
+    s1 | s4 b4 c2 |
+  }
+>>
+@end lilypond
+
+
+@subsubheading Note columns
+@c 音符列
+
+@cindex note column
+@cindex note collisions
+@cindex collisions, notes
+@cindex shift commands
+@funindex \shiftOff
+@funindex shiftOff
+@funindex \shiftOn
+@funindex shiftOn
+@funindex \shiftOnn
+@funindex shiftOnn
+@funindex \shiftOnnn
+@funindex shiftOnnn
+
+和音の中で小さな間隔で置かれる音符、あるいは異なるボイスで同時に発生する音符@c
+は、音符の玉が重なるのを避けるために 2 列、時にはそれ以上の列に割り振られま@c
+す。これらの列は音符列と呼ばれます。それぞれのボイスに対して別々の列が存在し、@c
+音符の玉の衝突が起こる場合はボイスごとのシフトが適用されます。これは上の例でも@c
+見ることができます。2 小節目でボイス 2 の C はボイス 1 の D との関係で右にシフ@c
+トされていて、最後の和音でボイス 3 の C も他の音符との関係で右にシフトされてい@c
+ます。
+
+@code{\shiftOn}, @code{\shiftOnn}, @code{\shiftOnnn}, それに @code{\shiftOff} 
+コマンドは、衝突が起こる場合に音符や和音をシフトさせる度合いを指定します。デ@c
+フォルトでは、外側のボイス (通常はボイス 1 と 2) には @code{\shiftOff} が指定@c
+されていて、内側のボイス (ボイス 3 と 4) には @code{\shiftOn} が指定されていま@c
+す。シフトが適用される場合、ボイス 1 と 3 は右にシフトされ、ボイス 2 と 4は左@c
+にシフトされます。
+
+@code{\shiftOnn} と @code{\shiftOnnn} はさらなるシフト レベルを定義するもので@c
+あり、複雑な状況での衝突を解決するために一時的に指定されるかもしれません -- 
+@ref{Real music example} を参照してください。
+@c 実際の音楽の例
+
+ある音符列は上向きのステムを持つボイスからの音符 (あるいは和音) を 1 つだけ、@c
+下向きのステムを持つボイスからの音符 (あるいは和音) を 1 つだけ保持することが@c
+できます。同じ向きのステムを持つ 2 つのボイスからの音符が同じ位置に置かれ、両@c
+方のボイスにシフトが指定されていない、あるいは同じシフトが指定されている場合、@c
+エラー メッセージ @qq{Too many clashing note columns} (音符が多すぎて音符列で@c
+衝突が起こっています) が生成されます。
+
+
+@seealso
+表記リファレンス: @ruser{Multiple voices}
+@c 複数のボイス?
+
+
+@node Voices and vocals
+@subsection Voices and vocals
+@c ボイスとボーカル
+
+声楽には特別な困難があります: 2 つの表記 -- 音符と歌詞 -- を組み合わせる必要が@c
+あります。
+
+@funindex \new Lyrics
+@funindex \lyricsto
+@funindex lyricsto
+@funindex Lyrics
+@cindex Lyrics context, creating
+@cindex lyrics, linking to voice
+
+すでに @code{\addlyrics@{@}} コマンドを見てきました。これは簡単な楽譜であれば@c
+うまく処理できます。しかしながら、この方法では限界があります。より複雑な音楽で@c
+は、@code{\new Lyrics} を使って歌詞を @code{Lyrics} コンテキストに取り込み、ボ@c
+イスに割り当ている名前を使って @code{\lyricsto@{@}} でその歌詞を明示的に音符に@c
+リンクさせます。
+
+@lilypond[quote,verbatim,fragment]
+<<
+  \new Voice = "one" \relative c'' {
+    \autoBeamOff
+    \time 2/4
+    c4 b8. a16 g4. f8 e4 d c2
+  }
+  \new Lyrics \lyricsto "one" {
+    No more let sins and sor -- rows grow.
+  }
+>>
+@end lilypond
+
+歌詞は @code{Staff} コンテキスト@emph{ではなく} @code{Voice} コンテキストに@c
+リンクさせなければならないということに注意してください。このため、@code{Staff} 
+コンテキストと @code{Voice} コンテキストを明示的に作成する必要があります。
+
+@cindex lyrics and beaming
+@cindex beaming and lyrics
+@funindex \autoBeamOff
+@funindex autoBeamOff
+
+LilyPond がデフォルトで使用する自動ビームは楽器だけの音楽ではうまく機能します@c
+が、歌詞を持つ音楽ではそれほどうまく機能しません。そこではビームはまったく必要@c
+ないか、歌詞のメリスマ (訳者注: 歌詞の 1 音節に対して複数の音符を割り当てること) 
+を示すために使用されるかのどちらかです。上の例では、自動ビームを Off にするた@c
+めにコマンド @code{\autoBeamOff} を使用しています。
+
+@funindex \new ChoirStaff
+@funindex ChoirStaff
+@funindex \lyricmode
+@funindex lyricmode
+@cindex vocal score structure
+@cindex choir staff
+
+以前使用した Judas Maccabæus からの例を再度使用して、より自由度の高い方法を示@c
+します。まず、楽譜の内容を変数に振り直し、音楽と歌詞を譜表構造から分離させま@c
+す。さらに @code{ChoirStaff} ブラケットを導入します。歌詞自体は、音楽ではなく@c
+歌詞として解釈されることを保証するために、@code{\lyricsmode} で導入されなけれ@c
+ばなりません。
+
+@lilypond[quote,verbatim]
+global = { \time 6/8 \partial 8 \key f \major}
+SopOneMusic = \relative c'' {
+  c8 | c([ bes)] a a([ g)] f | f'4. b, | c4.~ c4 }
+SopTwoMusic = \relative c' {
+  r8 | r4. r4 c8 | a'([ g)] f f([ e)] d | e([ d)] c bes' }
+SopOneLyrics = \lyricmode {
+  Let | flee -- cy flocks the | hills a -- dorn, __ }
+SopTwoLyrics = \lyricmode {
+  Let | flee -- cy flocks the | hills a -- dorn, }
+
+\score {
+  \new ChoirStaff <<
+    \new Staff <<
+      \new Voice = "SopOne" {
+        \global
+        \SopOneMusic
+      }
+      \new Lyrics \lyricsto "SopOne" {
+        \SopOneLyrics
+      }
+    >>
+    \new Staff <<
+      \new Voice = "SopTwo" {
+        \global
+        \SopTwoMusic
+      }
+      \new Lyrics \lyricsto "SopTwo" {
+        \SopTwoLyrics
+      }
+    >>
+  >>
+}
+@end lilypond
+
+これはすべての声楽譜の基本的な構造です。必要に応じてさらに多くの譜が追加される@c
+かもしれませんし、さらに多くのボイスが譜に追加されるかもしれませんし、さらに多@c
+くの歌詞 (原文: verse、各ボイスに対する歌詞、あるいは、歌詞の 1 番、2 番のこと@c
+を指すと思われる) が歌詞に追加されるかもしれません。音楽部分が長くなりすぎた場@c
+合は、音楽を保持している変数を容易に別のファイルに置くことができます。
+
+@cindex hymn structure
+@cindex SATB structure
+@cindex vocal scores with multiple verses
+@cindex multiple vocal verses
+@cindex verses, multiple vocal
+
+ここで、例として 4 つの歌詞 -- それぞれが SATB (ソプラノ、アルト、テナー、バス) 
+に対してセットされている -- を持つ賛美歌の最初の 1 行目を取り上げます。この歌@c
+の場合、4 つのパートに対する歌詞の言葉は同じです。変数を使用して音楽表記と歌詞@c
+の言葉を譜表構造から分離させている手法に注意してください。さらに、 @q{TimeKey} 
+と呼ぶことにした変数が、2 つの譜で使用されるいくつかのコマンドを保持するため@c
+に、使用されていることにも注意してください。他の例では、この変数はしばしば 
+@q{global} と呼ばれます。
+
+@lilypond[quote,verbatim]
+TimeKey = { \time 4/4 \partial 4 \key c \major}
+SopMusic   = \relative c' { c4 | e4. e8 g4  g  | a a g }
+AltoMusic  = \relative c' { c4 | c4. c8 e4  e  | f 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   = \lyricmode {
+  E -- | ter -- nal fa -- ther, | strong to save, }
+VerseTwo   = \lyricmode {
+  O | Christ, whose voice the | wa -- ters heard, }
+VerseThree = \lyricmode {
+  O | Ho -- ly Spi -- rit, | who didst brood }
+VerseFour  = \lyricmode {
+  O | Tri -- ni -- ty of | love and pow'r }
+
+\score {
+  \new ChoirStaff <<
+    \new Staff <<
+      \clef "treble"
+      \new Voice = "Sop"  { \voiceOne \TimeKey \SopMusic }
+      \new Voice = "Alto" { \voiceTwo \AltoMusic }
+      \new Lyrics \lyricsto "Sop" { \VerseOne   }
+      \new Lyrics \lyricsto "Sop" { \VerseTwo   }
+      \new Lyrics \lyricsto "Sop" { \VerseThree }
+      \new Lyrics \lyricsto "Sop" { \VerseFour  }
+    >>
+    \new Staff <<
+      \clef "bass"
+      \new Voice = "Tenor" { \voiceOne \TimeKey \TenorMusic }
+      \new Voice = "Bass"  { \voiceTwo \BassMusic  }
+    >>
+  >>
+}
+@end lilypond
+
+@cindex verse and refrain
+
+最後に、2 つの譜の 2 パートのリフレイン (繰り返し) につながる単一の歌詞の節を@c
+コードする方法を示す例を挙げます。これを 1 つの楽譜で達成するためのシークエン@c
+シャル部分と同時進行部分の配置の仕方は非常にトリッキーです。そのため、説明を注@c
+意深く読んでください!
+
+コーラスの開始点でブレースを表示させたいので、@code{ChoirStaff} を保持する score 
+ブロックで始めます。通常、すべての譜を並列にするために @code{\new ChoirStaff} 
+の後に角括弧を置く必要があります。角括弧を使用しても害はありませんが、ここでは@c
+コーラスまで並列化を先延ばししたいのでブレースを使用します。@code{ChoirStaff} 
+の中で、まず最初に歌詞を保持する譜表を置く必要があります。音符と歌詞を並列に並@c
+べなければならないので、@code{\new Voice} と @code{\new Lyrics} を同時に開始さ@c
+せるために角括弧で囲む必要があります:
+
+@lilypond[quote,verbatim,ragged-right]
+versenotes = \relative c'' {
+  \clef "treble"
+  \key g \major
+  \time 3/4 g g g b b b
+}
+versewords = \lyricmode {
+  One two three four five six
+}
+\score {
+  \new ChoirStaff {
+    \new Staff <<
+      \new Voice = "verse" {
+        \versenotes \break
+      }
+      \new Lyrics \lyricsto verse {
+        \versewords
+      }
+    >>
+  }
+}
+@end lilypond
+
+これで歌詞の行が与えられました。
+
+今度は、refainA を同じ譜表で続けて、それと並列に refrainB のためにもう 1 つ譜@c
+表を導入する必要があります。そのため、この並列部分は verse Voice の中の 
+@code{\break} の直後に置かれなければなりません。そうです、verse Voice の@c
+@emph{中に}です!ここで並列部分を示します。同じ要領でここにもっと多くの譜を導@c
+入することもできます。
+
+@example
+<<
+  \refrainnotesA
+  \new Lyrics \lyricsto verse @{
+    \refrainwordsA
+  @}
+  \new Staff <<
+    \new Voice = "refrainB" @{
+      \refrainnotesB
+    @}
+    \new Lyrics \lyricsto "refrainB" @{
+      \refrainwordsB
+    @}
+  >>
+>>
+@end example
+
+ここで最終結果を示します。これはコーラスになっている 2 つの譜を持ち、並列部分@c
+がどのように verse Voice の中に置かれるかを示しています:
+
+@lilypond[quote,verbatim, ragged-right]
+versenotes = \relative c'' {
+  \clef "treble"
+  \key g \major
+  \time 3/4 g g g b b b
+}
+refrainnotesA = \relative c'' {
+  \time 2/4
+  c c g g \bar "|."
+}
+refrainnotesB = \relative c {
+  \clef "bass"
+  \key g \major
+  c e d d
+}
+versewords = \lyricmode {
+  One two three four five six
+}
+refrainwordsA = \lyricmode {
+  la la la la
+}
+refrainwordsB = \lyricmode {
+  dum dum dum dum
+}
+\score {
+  \new ChoirStaff {
+    \new Staff <<
+      \new Voice = "verse" {
+        \versenotes \break
+        <<
+          \refrainnotesA
+          \new Lyrics \lyricsto "verse" {
+            \refrainwordsA
+          }
+          \new Staff <<
+            \new Voice = "refrainB" {
+              \refrainnotesB
+            }
+            \new Lyrics \lyricsto "refrainB" {
+              \refrainwordsB
+            }
+          >>
+        >>
+      }
+      \new Lyrics \lyricsto "verse" {
+        \versewords
+      }
+    >>
+  }
+}
+@end lilypond
+
+@cindex book, example of using
+@funindex \book
+@funindex book
+
+これはシークエンシャル ブロックと同時進行ブロックがどのように機能するかを理解@c
+するための手助けとしては興味深く有用です。しかしながら、実際にこれをコードする@c
+場合は、恐らく以下のように暗黙の @code{\book} ブロック内部に 2 つの 
+@code{\score} ブロックを置くようにするでしょう:
+
+@lilypond[quote,verbatim,ragged-right]
+versenotes = \relative c'' {
+  \clef "treble"
+  \key g \major
+  \time 3/4 g g g b b b
+}
+refrainnotesA = \relative c'' {
+  \time 2/4
+  c c g g \bar "|."
+}
+refrainnotesB = \relative c {
+  \clef "bass"
+  \key g \major
+  c e d d
+}
+versewords = \lyricmode {
+  One two three four five six
+}
+refrainwordsA = \lyricmode {
+  la la la la
+}
+refrainwordsB = \lyricmode {
+  dum dum dum dum
+}
+\score {
+  \new Staff <<
+    \new Voice = "verse" {
+      \versenotes
+    }
+    \new Lyrics \lyricsto "verse" {
+      \versewords
+    }
+  >>
+}
+
+\score {
+  \new ChoirStaff <<
+    \new Staff <<
+      \new Voice = "refrainA" {
+        \refrainnotesA
+      }
+      \new Lyrics \lyricsto "refrainA" {
+        \refrainwordsA
+      }
+    >>
+    \new Staff <<
+      \new Voice = "refrainB" {
+        \refrainnotesB
+      }
+      \new Lyrics \lyricsto "refrainB" {
+        \refrainwordsB
+      }
+    >>
+  >>
+}
+@end lilypond
+
+
+@seealso
+表記リファレンス: @ruser{Vocal music}
+@c 声楽
+
+
+@node Contexts and engravers
+@section Contexts and engravers
+@c コンテキストとエングラーバ
+
+これまでに、コンテキストとエングラーバについて簡単に言及してきました。ここで@c
+は、これらのコンセプトをより詳細に見ていくことにします。なぜなら、これらは 
+LilyPond 出力をうまく調節するのに重要だからです。
+
+
+@menu
+* Contexts explained::
+* Creating contexts::
+* Engravers explained::
+* Modifying context properties::
+* Adding and removing engravers::
+@end menu
+
+
+@node Contexts explained
+@subsection Contexts explained
+@c コンテキストの説明
+
+@cindex contexts explained
+
+音楽が譜刻されるとき、入力ファイルでははっきりとは現れてこない多くの表記要素を@c
+出力に追加しなければなりません。例えば、以下の例で入力と出力を比較してください:
+
+@lilypond[quote,verbatim,relative=2,fragment]
+cis4 cis2. g4
+@end lilypond
+
+この入力は内容がやや乏しいですが、出力では小節線、臨時記号、音部記号、拍子記号@c
+が追加されています。LilyPond が入力を@emph{解釈}するとき、音楽情報は時系列に調@c
+べられます。これは楽譜を左から右へ読むのと似ています。入力を読み込んでいる間、@c
+プログラムは小節の境目となる場所と明示的な臨時記号を必要とする音高を覚えていま@c
+す。この情報はいくつかのレベルで持続されなければなりません。例えば、臨時記号の@c
+効果は単一の譜表に制限されますが、小節線は楽譜全体に亘って同調されなければなり@c
+ません。
+
+LilyPond 内部では、これらの規則と情報ビットは@emph{コンテキスト}にグループ化さ@c
+れます。すでに @code{Voice} コンテキストを見てきました。他にも、@code{Staff} 
+コンテキストと @code{Score} コンテキストがあります。コンテキストは、楽譜の階層@c
+構造を反映するために、階層構造になっています。例えば: @code{Staff} コンテキス@c
+トは多くの @code{Voice} コンテキストを保持することができ、@code{Score} コンテ@c
+キストは多くの @code{Staff} コンテキストを保持することができます。
+
+@quotation
+@sourceimage{context-example,5cm,,}
+@end quotation
+
+各コンテキストは、いくつかの表記オブジェクトを作成し、関連プロパティを維持しな@c
+がら、いくつかの表記規則を施行する責任があります。例えば、@code{Voice} コンテ@c
+キストは臨時記号を作り出すかもしれず、そうした場合 @code{Staff} コンテキストは@c
+その小節の残りの部分で臨時記号を表示したり隠したりするための規則を維持します。
+
+他の例としては、小節線の同調はデフォルトでは @code{Score} コンテキストが扱いま@c
+す。しかしながら、いくつかの音楽では小節線を同調させたくない場合もあります -- 
+4/4 拍子と 3/4 拍子の多声の楽譜といった場合です。そのようなケースでは、@c
+@code{Score} と @code{Staff} コンテキストのデフォルト設定を変更しなければなり@c
+ません。
+
+非常にシンプルな楽譜では、コンテキストは暗黙的に作成され、あなたはそれらに気づ@c
+く必要もありません。複数の譜表を持つようなより大きな楽曲では、あなたが必要とし@c
+ているだけの譜を手に入れられるよう、さらに、それらの譜が正しい順序で並ぶことを@c
+保証するために、コンテキストを明示的に作成する必要があります。特殊な表記を持つ@c
+楽曲を譜刻するには、通常は既存のコンテキストを変更します。あるいは完全に新しい@c
+コンテキストを定義することさえあります。
+
+@code{Score}, @code{Staff}, @code{Voice} コンテキストに加えて、@code{PianoStaff} 
+や @code{ChoirStaff} コンテキストといった譜表グループを制御するための、楽譜レ@c
+ベルと譜表レベルの間にあるコンテキストがあります。さらに、代替の譜表コンテキス@c
+トとボイスコンテキストがあり、歌詞、打楽器、フレットボード (訳者: 弦楽器の一@c
+種。フレットでウィキぺディアを参照)、通奏低音 (数字付き低音、原文: figured bass) 
+などのためのコンテキストがあります。
+
+すべてのコンテキスト タイプの名前は 1 つ、あるいは複数の単語からなります。各単@c
+語の最初の文字は大文字であり、前の単語のすぐあとに次の単語が続きます。ハイフン@c
+やアンダスコアは使いません。つまり @code{GregorianTranscriptionStaff} といった@c
+具合です。
+
+
+@seealso
+表記リファレンス: @ruser{Contexts explained}
+@c コンテキストの説明
+
+
+@node Creating contexts
+@subsection Creating contexts
+@c コンテキストを作成する
+
+@funindex \new
+@funindex new
+@cindex new contexts
+@cindex creating contexts
+@cindex contexts, creating
+
+最上位にあるコンテキストは 1 つだけです: @code{Score} コンテキストです。これは 
+@code{\score} コマンドによって作成されます。また、簡単な楽譜では、これは自動的@c
+に作成されます。
+
+1 つだけのボイスと 1 つだけの譜表を持つ楽譜では、@code{Voice} と @code{Staff} 
+コンテキストは自動的に作成されるために放っておかれるかもしれません。しかしなが@c
+ら、より複雑な楽譜では、これらを手ずから作成する必要があります。これらを作成す@c
+る最も簡単なコマンドは @code{\new} です。これは音楽表記の前に置きます。例を挙@c
+げます:
+
+@example
+\new @var{type} @var{music-expression}
+@end example
+
+@noindent
+
+ここで、@var{type} はコンテキスト名です (@code{Staff} や @code{Voice} など)。@c
+このコマンドは新しいコンテキストを作成し、そのコンテキストの中にある 
+@var{music-expression} の解釈を開始します。
+
+@code{\new Score} というコマンドは無いということに注意してください。単一の最上位 
+@code{Score} コンテキストは @code{\score} で作成されます。
+
+これまでに、新たに @code{Staff} と @code{Voice} コンテキストを作成する多くの実@c
+際的な例を見てきましたが、これらのコマンドが実際にどのように使用されるのかを覚@c
+えてもらうために、実際の音楽に注釈を付けた例を挙げます:
+
+@lilypond[quote,verbatim,ragged-right]
+\score {  % start of single compound music expression
+  <<  % start of simultaneous staves section
+    \time 2/4
+    \new Staff {  % create RH staff
+      \key g \minor
+      \clef "treble"
+      \new Voice {  % create voice for RH notes
+        \relative c'' {  % start of RH notes
+          d4 ees16 c8. |
+          d4 ees16 c8. |
+        }  % end of RH notes
+      }  % end of RH voice
+    }  % end of RH staff
+    \new Staff <<  % create LH staff; needs two simultaneous voices
+      \key g \minor
+      \clef "bass"
+      \new Voice {  % create LH voice one
+        \voiceOne
+        \relative g {  % start of LH voice one notes
+          g8 <bes d> ees, <g c> |
+          g8 <bes d> ees, <g c> |
+        }  % end of LH voice one notes
+      }  % end of LH voice one
+      \new Voice {  % create LH voice two
+        \voiceTwo
+        \relative g {  % start of LH voice two notes
+          g4 ees |
+          g4 ees |
+        }  % end of LH voice two notes
+      }  % end of LH voice two
+    >>  % end of LH staff
+  >>  % end of simultaneous staves section
+}  % end of single compound music expression
+@end lilypond
+
+(中括弧 @code{@{} や 2 重角括弧 @code{<<} の中でブロックになっているすべての記@c
+述には括弧よりもスペースが 2 つ多いインデントを付けられていて、閉じ括弧には括@c
+弧の開始行と同じインデントを付けられているということに注意してください。これは@c
+必須ではありませんが、こうしておくと @q{unmatched backet} (「括弧が一致しない」) 
+エラーを大幅に減らすことができますので、強く推奨します。これにより、音楽の構造@c
+を簡単に見て取ることができ、一致していない括弧が明瞭になります。さらに、RH 譜@c
+表はボイスを 1 つだけしか必要としないために中括弧によって囲まれた単一の音楽表@c
+記として作成されているのに対して、LH 譜表は 2 つのボイスを必要とするために 2 
+重角括弧を使って作成されていることに注意してください。)
+
+@cindex contexts, naming
+@cindex naming contexts
+
+また、@code{\new} コマンドはコンテキストに識別名を与えて、そのコンテキストを同@c
+じタイプの他のコンテキストと区別することを可能にするかもしれません:
+
+@example
+\new @var{type} = @var{id} @var{music-expression}
+@end example
+
+@code{Staff}, @code{Voice} などといったコンテキスト タイプの名前とそのような@c
+コンテキスト タイプのインスタンスの名前 --これはユーザによって提供され、どのよ@c
+うな文字の連なりにもなり得ます -- の違いに注意してください。数字とスペースも識@c
+別名に使用することができますが、その場合クォートで囲まなければなりません -- つ@c
+まり、@code{\new Staff = "MyStaff 1" @var{music-expression}} のようになりま@c
+す。識別名はコンテキストのあるインスタンスを参照するために使用されます。このこ@c
+とを歌詞についてのセクションで見てきました。@ref{Voices and vocals} を参照して@c
+ください。
+@c ボイスとボーカル
+
+
+@seealso
+表記リファレンス: @ruser{Creating contexts}
+@c コンテキストを作成する
+
+
+@node Engravers explained
+@subsection Engravers explained
+@c エングラーバの説明
+
+@cindex engravers
+
+LilyPond によって作成された楽譜上にあるすべての記号は @code{Engraver} によって@c
+作り出されます。つまり、譜を譜刻するエングラーバがあり、音符玉を譜刻するエング@c
+ラーバ、ステムを譜刻するエングラーバ、ビームを譜刻するエングラーバなどなどで@c
+す。そのようなエングラーバは 120 以上あります!幸いなことに、たいていの楽譜で@c
+は数個のエングラーバについて知っていれば良く、簡単な楽譜ではまったく知らなくて@c
+も大丈夫です。
+
+エングラーバはコンテキストの中に存在し、そこで活動します。@c
+@code{Metronome_mark_engraver} などといった楽譜全体に影響を与えるエングラーバ@c
+は最上位のコンテキスト -- @code{Score} コンテキスト -- で活動します。
+
+@code{Clef_engraver} と @code{Key_engraver} は各 @code{Staff} コンテキストの中@c
+で見つかります -- 譜が異なれば音部記号や調号も異なるかもしれないからです。
+
+@code{Note_heads_engraver} と @code{Stem_engraver} は各 @code{Voice} コンテキ@c
+スト -- 最下位のコンテキスト -- の中にあります。
+
+各エングラーバはそれの機能に関連付けされているある特定のオブジェクトを処理し、@c
+機能に関連するプロパティを維持します。コンテキストに関連付けされているプロパ@c
+ティなどのようにこれらのプロパティは、エングラーバの処理を変更するためや、譜刻@c
+される楽譜の中にある要素の見た目を変更するために、変更されるかもしれません。
+
+エングラーバはすべてそれらの機能を記述する単語から形成された複合名を持ちます。@c
+最初の単語の最初の文字は大文字であり、その後に続く単語はアンダスコアで連結され@c
+ます。ですから、@code{Staff_symbol_engraver} には譜表の線を作成する責任があ@c
+り、@code{Clef_engraver} は音部記号を描くことによって音高の参照ポイントを決@c
+定、セットします。
+
+
+ここに、最も一般的なエングラーバをいくつかそれらの機能とともに挙げます。たいて@c
+いの場合、名前から簡単に機能を推測でき、その逆も成り立つことがわかるでしょう。
+
+@multitable @columnfractions .3 .7
+@headitem エングラーバ
+  @tab 機能
+@item Accidental_engraver
+  @tab 臨時記号 (警告的臨時記号とアドバイス的な臨時記号を含む) を作成します。
+@item Beam_engraver
+  @tab ビームを譜刻します。
+@item Clef_engraver
+  @tab 音部記号を譜刻します。
+@item Completion_heads_engraver
+  @tab 小節線をまたがる音符を分割します。
+@c The old Dynamic_engraver is deprecated. -jm
+@item New_dynamic_engraver
+  @tab 強弱記号 (クレッシェンド、デクレッシェンド) と強弱テキスト (p や f など) 
+を作成します。
+@item Forbid_line_break_engraver
+  @tab 音楽要素がアクティブなままである場合に改行されることを防ぎます。(訳者: 
+いわゆる禁則処理)
+@item Key_engraver
+  @tab 調号を作成します。
+@item Metronome_mark_engraver
+  @tab メトロノーム記号を譜刻します。
+@item Note_heads_engraver
+  @tab 音符の玉を譜刻します。
+@item Rest_engraver
+  @tab 休符を譜刻します。
+@item Staff_symbol_engraver
+  @tab (デフォルトで) 五線の譜表を譜刻します。
+@item Stem_engraver
+  @tab ステムと単一ステムのトレモロを作成します。
+@item Time_signature_engraver
+  @tab 拍子記号を作成します。
+@end multitable
+
+@smallspace
+
+後ほど、エングラーバのアクションを変更することによって LilyPond の出力がどのよ@c
+うに変わるのかを見ていきます。
+
+
+@seealso
+内部リファレンス: @rinternals{Engravers and Performers}
+@c エングラーバとパフォーマー
+
+
+@node Modifying context properties
+@subsection Modifying context properties
+@c コンテキスト プロパティを変更する
+
+@cindex context properties
+@cindex context properties, modifying
+@cindex modifying context properties
+@funindex \set
+@funindex set
+@funindex \unset
+@funindex unset
+
+コンテキストにはいくつかのコンテキスト プロパティを保持する責任があります。そ@c
+れらプロパティの多くは変更可能であり、変更することで入力の構文解釈に影響を与え@c
+て出力の見た目を変化させます。それらプロパティは \set コマンドによって変更され@c
+ます。これは以下のような形で行います:
+
+@example
+\set @emph{ContextName}.@emph{propertyName} = #@emph{value}
+@end example
+
+@emph{ontextName} には通常、@code{Score}, @code{Staff} or @code{Voice} が入り@c
+ます。これを省略する場合もあり、そのような場合は @code{Voice} であると見なされ
+ます。
+
+コンテキスト プロパティの名前はハイフンやアンダスコアを使わずに連結された単語@c
+によって形成され、最初の単語を除いて単語の最初の文字は大文字になります。ここ@c
+で、一般的に使用されるコンテキスト プロパティの例をいくつか挙げます。実際に@c
+は、コンテキスト プロパティはもっとたくさんあります。
+
+@c attempt to force this onto a new page
+@need 50
+@multitable @columnfractions .25 .15 .45 .15
+@headitem プロパティ名
+  @tab タイプ
+  @tab 機能
+  @tab 実際の値の例
+@item extraNatural
+  @tab ブール値
+  @tab 真の場合、追加のナチュラル記号を臨時記号の前にセットします
+  @tab @code{#t}, @code{#f}
+@item currentBarNumber
+  @tab 整数
+  @tab 小節番号をセットします
+  @tab @code{50}
+@item doubleSlurs
+  @tab ブール値
+  @tab 真の場合、音符の上と下の両方にスラーを譜刻します
+  @tab @code{#t}, @code{#f}
+@item instrumentName
+  @tab テキスト
+  @tab 譜表の先頭に表示される名前をセットします
+  @tab @code{"Cello I"}
+@item fontSize
+  @tab 実数
+  @tab フォント サイズを増減させます
+  @tab @code{2.4}
+@item stanza
+  @tab テキスト
+  @tab 歌詞の先頭に譜刻されるテキストをセットします
+  @tab @code{"2"}
+@end multitable
+
+@noindent
+ここでのブール値とは真 (@code{@hash{}t}) または偽 (@code{@hash{}f}) のどちらか@c
+であり、整数とは正の整数であり、実数とは正または負の小数点付きの数であり、テキ@c
+ストはダブル アポストロフィで囲まれます。ハッシュ記号 (@code{@hash{}}) が 2 つ@c
+の異なる箇所で出現することに注意してください -- ブール値での @code{t} や 
+@code{f} の前と、@code{@bs{}set} での@emph{値}の前です。そのため、@c
+@code{@bs{}set} の値にブール値を挿入する場合、ハッシュ記号が 2 つ必要になります 
+-- つまり @code{@hash{}@hash{}t} です。
+
+@cindex properties operating in contexts
+@cindex setting properties within contexts
+
+これらのプロパティのいずれかをセットする前に、それらが操作するコンテキストはど@c
+れなのかを知る必要があります。これは明らかな場合もありますが、ややこしい場合も@c
+あります。間違ったコンテキストが指定された場合、エラー メッセージは表示されま@c
+せんが、予期したアクションが起こりません。例えば、@code{instrumentName} は間違@c
+いなく @code{Staff} コンテキストの中にきます。なぜなら、このプロパティが名前を@c
+付けるのは譜表だからです。以下の例では、最初の譜表には名前が付けられています@c
+が、2 番目の譜表には付けられていません。なぜなら、コンテキスト名を省略している@c
+からです。
+
+@lilypond[quote,verbatim,ragged-right]
+<<
+  \new Staff \relative c'' {
+    \set Staff.instrumentName = #"Soprano"
+    c4 c
+ }
+  \new Staff \relative c' {
+  \set instrumentName = #"Alto"  % Wrong!
+  d4 d
+ }
+>>
+@end lilypond
+
+デフォルトのコンテキスト名は @code{Voice} であることを思い出してください。この@c
+ため、2 番目の @code{@bs{}set} コマンドは @code{Voice} コンテキストのプロパティ 
+@code{instrumentName} を @qq{Alto} にセットしています。しかしながら、@c
+LilyPond は @code{Voice} コンテキストでそのようなプロパティを見つけ出さないた@c
+め、何のアクションも起こしません。これはエラーではなく、ログ ファイルにエラー 
+メッセージは残りません。
+
+同様に、プロパティ名の綴りを間違えた場合もエラー メッセージは表示されず、予期@c
+したアクションが起こりません。実際のところ、@code{@bs{}set} コマンドを使って、@c
+存在するいかなるコンテキストにでも、いかなる (架空の) @q{プロパティ} をセット@c
+することができます。しかしながら、そのプロパティ名を LilyPond が知らない場合、@c
+何のアクションも起こしません。LilyPond 入力ファイルに対する特別なサポートを持@c
+ついくつかのテキスト エディタは、あなたがプロパティ名の上にマウスを持ってくる@c
+とバレット (テキストの先頭に付く小丸) 付きのプロパティ名を表示してそのプロパ@c
+ティの裏づけを行い (LilyPondTool を持つ JEdit)、あるいは未知のプロパティ名をハ@c
+イライトします (ConTEXT)。そのような機能を持つエディタを使用していないのなら、@c
+内部リファレンスでプロパティ名をチェックすることを推奨します: 
+@rinternals{Tunable context properties} や @rinternals{Contexts} を参照してく@c
+ださい。
+@c 調節可能なコンテキスト プロパティ, コンテキスト
+
+@code{instrumentName} プロパティは @code{Staff} コンテキストの中にセットされた@c
+場合にのみ効果を持ちますが、いくつかのプロパティは複数のコンテキストの中にセッ@c
+トすることができます。例えば、プロパティ @code{extraNatural} はすべての譜に対@c
+してデフォルトで @code{@hash{}@hash{}t} (真) にセットされています。ある特定@c
+の @code{Staff} コンテキストでこれを @code{@hash{}@hash{}f} (偽) にセットし@c
+た場合、その譜表の臨時記号にのみ適用されます。これを @code{Score} コンテキスト@c
+にセットした場合、すべての譜に適用されます。
+
+それでは、ある譜表の追加ナチュラル記号を消してみます:
+
+@lilypond[quote,verbatim,ragged-right]
+<<
+  \new Staff \relative c'' {
+    ais4 aes
+ }
+  \new Staff \relative c'' {
+    \set Staff.extraNatural = ##f
+    ais4 aes
+ }
+>>
+@end lilypond
+
+@noindent
+さらに、すべての譜の追加ナチュラル記号を消します:
+
+@lilypond[quote,verbatim,ragged-right]
+<<
+  \new Staff \relative c'' {
+    ais4 aes
+ }
+  \new Staff \relative c'' {
+    \set Score.extraNatural = ##f
+    ais4 aes
+ }
+>>
+@end lilypond
+
+他の例としては、@code{clefOctavation} が @code{Score} コンテキストにセットされ@c
+た場合、直ちにすべての譜でのオクターブの値を変更し、すべての譜に適用される新し@c
+いデフォルト値をセットします。
+
+逆のことを行うコマンド @code{@bs{}unset} はコンテキストからプロパティを削除@c
+し、それによりたいていのプロパティはデフォルト値に戻ります。通常、望みのことを@c
+達成するために新たな @code{@bs{}set} コマンドを用いる場合、@code{@bs{}unset} 
+は必要ありません。
+
+@code{@bs{}set} と @code{@bs{}unset} コマンドは入力ファイルのどこにでも現れる@c
+可能性があり、そのコマンドが出現した時点から、楽譜の終わりまたはそのプロパティ@c
+が再度 @code{@bs{}set} や @code{@bs{}unset} されるまで効果を持ちます。フォント 
+サイズを変更してみましょう。それにより (他のものに加えて) 音符玉のサイズが何段@c
+階か変更されます。変更は直前にセットされた値から行われるのではなく、デフォルト@c
+値から行われます。
+
+@lilypond[quote,verbatim,ragged-right,relative=1,fragment]
+c4
+% make note heads smaller
+\set fontSize = #-4
+d e
+% make note heads larger
+\set fontSize = #2.5
+f g
+% return to default size
+\unset fontSize
+a b
+@end lilypond
+
+これまでにいくつかのタイプのプロパティ値をセットする方法を見てきました。整数と@c
+番号の前には常にハッシュ記号 @code{@hash{}} が付き、真と偽の値は 2 つのハッ@c
+シュ記号を付けて @code{@hash{}@hash{}t} と @code{@hash{}@hash{}f} によって指定@c
+されてるということに注意してください。テキスト プロパティは上で示したようにダ@c
+ブル クォーテーションによって囲まれます。しかしながら、後ほど、テキストは実際@c
+には非常に強力な @code{markup} コマンドを用いたもっと一般的な方法で指定できる@c
+ということを見ていきます。
+
+
+@subsubheading Setting context properties with @code{\with}
+@c \with を使ったコンテキスト プロパティの設定
+
+@funindex \with
+@funindex with
+@cindex context properties, setting with \with
+
+コンテキスト プロパティはコンテキストが作成されるときにセットされることもある@c
+かもしれません。この設定がコンテキスト全体で保持される場合、この方法でプロパ@c
+ティ値を指定すると明瞭になります。コンテキストが @code{@bs{}new} コマンドで作@c
+成されるとき、その直後に @code{@bs{}with @{ .. @}} ブロックが続き、その中でプ@c
+ロパティ値がセットされるかもしれません。例えば、ある譜表全体で追加のナチュラル@c
+の表示を抑制しようとする場合、以下のように書きます:
+
+@example
+\new Staff \with @{ extraNatural = ##f @}
+@end example
+
+@noindent
+そして、以下のように使用します:
+
+@lilypond[quote,verbatim,ragged-right]
+<<
+  \new Staff
+  \relative c'' {
+    gis ges aes ais
+  }
+  \new Staff \with { extraNatural = ##f }
+  \relative c'' {
+    gis ges aes ais
+  }
+>>
+@end lilypond
+
+この方法でプロパティをセットした場合でも、@code{@bs{}set} を使って動的に変更さ@c
+れたり、@code{@bs{}unset} を使ってデフォルト値に戻されたりするかもしれません。
+
+@cindex fontSize, default and setting
+
+@code{fontSize} プロパティの扱いは異なります。これが @code{@bs{}with} の中で@c
+セットされた場合、フォント サイズのデフォルト値をセットし直します。そのあとで@c
+フォント サイズが @code{@bs{}set} によって変更された場合、@code{@bs{}with} で@c
+セットされた新しいデフォルト値は @code{@bs{}unset fontSize} コマンドによって元@c
+に戻されるかもしれません。
+
+
+@subsubheading Setting context properties with @code{\context}
+@c \context を使ったコンテキスト プロパティの設定
+
+@cindex context properties, setting with \context
+@funindex \context
+@funindex context
+
+コンテキスト プロパティの値は単一のコマンドによってある特定のタイプのコンテキ@c
+スト@emph{すべて} -- すべての @code{Staff} コンテキストなどのように -- にセッ@c
+トされるかもしれません。プロパティをセットするコンテキストのタイプは、@c
+@code{Staff} のようなそのコンテキストのタイプ名に接頭辞としてバック スラッシュ@c
+を付けたもの -- @code{@bs{}Staff} のように -- によって指定されます。プロパティ@c
+値をセットするための記述は上で紹介した @code{@bs{}with} ブロックの中の記述と同@c
+じです。この記述は @code{@bs{}layout} ブロック内部の @code{@bs{}context} ブ@c
+ロックの中に置かれます。各 @code{@bs{}context} ブロックは、その 
+@code{@bs{}layout} ブロックが置かれている @code{@bs{}score} または 
+@code{@bs{}book} ブロック全体を通じて、指定されたタイプのコンテキストすべてに@c
+対して効果を持ちます。ここで、記述方法を示すための例を挙げます:
+
+@lilypond[verbatim,quote]
+\score {
+  \new Staff {
+    \relative c'' {
+      cis4 e d ces
+    }
+  }
+  \layout {
+    \context {
+      \Staff
+      extraNatural = ##t
+    }
+  }
+}
+@end lilypond
+
+@noindent
+この方法でセットされたコンテキスト プロパティは、@code{@bs{}with} ブロックの中@c
+の記述によって、さらには、音楽表記の中に埋め込まれた @code{@bs{}set} コマンド@c
+によって、ある特定のコンテキスト インスタンスでは上書きされるかもしれません。
+
+
+@seealso
+表記リファレンス: @ruser{Changing context default settings}
+@c コンテキストのデフォルト設定の変更
+@c FIXME
+@c uncomment when backslash-node-name issue is resolved -pm
+@c <at>ruser{The set command}.
+
+内部リファレンス: @rinternals{Contexts},
+@rinternals{Tunable context properties}
+@c コンテキスト, 調整可能なコンテキスト プロパティ
+
+
+@node Adding and removing engravers
+@subsection Adding and removing engravers
+@c エングラーバの追加と削除
+
+@cindex engravers, adding
+@cindex adding engravers
+@cindex engravers, removing
+@cindex removing engravers
+
+@funindex \consists
+@funindex consists
+@funindex \remove
+@funindex remove
+
+これまでに、コンテキストはそれぞれにいくつかのエングラーバを保持し、それぞれの@c
+エングラーバは出力のある特定部分 -- 小節線、譜、音符玉、ステムなど -- の譜刻に@c
+責任を持つということを見てきました。あるエングラーバがコンテキストから削除され@c
+ると、それはもはや出力を行いません。これは出力を変更するための荒っぽい方法です@c
+が、役に立つ場合もあります。
+
+@subsubheading Changing a single context
+@c 単一のコンテキストの変更
+
+あるコンテキストからあるエングラーバを削除するには、前のセクションで見てたきた@c
+のと同様に、コンテキスト作成コマンドの直後に置く @code{@bs{}with} コマンドを使@c
+用します。
+
+例として、前のセクションで使用した例から譜表線を取り除いてみましょう。譜表線は 
+@code{Staff_symbol_engraver} によって作り出されるということを思い出してくださ@c
+い。
+
+@lilypond[quote,verbatim,ragged-right]
+\new Staff \with {
+  \remove Staff_symbol_engraver
+}
+\relative c' {
+  c4
+  \set fontSize = #-4  % make note heads smaller
+  d e
+  \set fontSize = #2.5  % make note heads larger
+  f g
+  \unset fontSize  % return to default size
+  a b
+}
+@end lilypond
+
+@cindex ambitus engraver
+
+さらに、エングラーバは個々のコンテキストに追加されることもあります。エングラー@c
+バを追加するコマンドは以下のようなものです:
+
+@code{\consists @var{Engraver_name}},
+
+@noindent
+これを @code{@bs{}with} ブロックの中に置きます。いくつかのボーカル譜は、その譜@c
+表の中にある音符の範囲を示すために、譜表の開始点に音域 (ambitus) を置きます -- 
+@rglos{ambitus} を参照してください。音域は @code{Ambitus_engraver} によって作@c
+成され、普通は、これはどのコンテキストにも含まれません。これを @code{Voice} 
+コンテキストに追加した場合、それはそのボイスのみから音域を計算します:
+@c 音域 (ambitus)
+
+@lilypond[quote,verbatim,ragged-right]
+\new Staff <<
+  \new Voice \with {
+    \consists Ambitus_engraver
+  }
+  \relative c'' {
+    \voiceOne
+    c a b g
+  }
+  \new Voice
+  \relative c' {
+    \voiceTwo
+    c e d f
+  }
+>>
+@end lilypond
+
+@noindent
+しかし、音域エングラーバを @code{Staff} コンテキストに追加した場合、そのエング@c
+ラーバはその譜表上にあるすべてのボイスの中の音符から音域を計算します:
+
+@lilypond[quote,verbatim,ragged-right]
+\new Staff \with {
+    \consists Ambitus_engraver
+  }
+  <<
+  \new Voice
+  \relative c'' {
+    \voiceOne
+    c a b g
+  }
+  \new Voice
+  \relative c' {
+    \voiceTwo
+    c e d f
+  }
+>>
+@end lilypond
+
+@subsubheading Changing all contexts of the same type
+@c 同じタイプのコンテキストをすべて変更する
+
+@funindex \layout
+@funindex layout
+
+上の例では、個々のコンテキストにエングラーバを追加あるいは削除する方法を示しま@c
+した。さらに、そのコマンドを @code{@bs{}layout} ブロックの中の適当なコンテキス@c
+トの中に置くことによって、ある特定のタイプのコンテキストすべてにエングラーバを@c
+追加あるいは削除することもできます。例えば、4 つの譜表を持つ楽譜ですべての譜表@c
+に音域を表示する場合、以下のように記述します:
+
+@lilypond[quote,verbatim,ragged-right]
+\score {
+  <<
+    \new Staff <<
+      \relative c'' { c a b g }
+    >>
+    \new Staff <<
+      \relative c' { c a b g }
+    >>
+    \new Staff <<
+      \clef "G_8"
+      \relative c' { c a b g }
+    >>
+    \new Staff <<
+      \clef "bass"
+      \relative c { c a b g }
+    >>
+  >>
+  \layout {
+    \context {
+      \Staff
+      \consists Ambitus_engraver
+    }
+  }
+}
+@end lilypond
+
+@noindent
+また、コンテキスト プロパティの値も、上記と同様に @code{@bs{}context} ブロック@c
+の中に @code{@bs{}set} を含ませることによって、ある特定のタイプのコンテキスト@c
+すべてに対してセットすることができます。
+
+
+@seealso
+表記リファレンス: @ruser{Modifying context plug-ins},
+@ruser{Changing context default settings}
+@c コンテキスト プラグインの変更, コンテキストのデフォルト設定の変更
+
+
+@node Extending the templates
+@section Extending the templates
+@c テンプレートの拡張
+
+あなたはチュートリアルを読み終えました。あなたはどのように音楽を書くかを知って@c
+いて、基礎となるコンセプトを理解しています。しかし、どうやったらあなたはあなた@c
+が望む譜表を手に入れられるでしょうか?あなたにとって良いスタート地点となるかも@c
+しれない多くのテンプレートがあります (@ref{Templates} を参照してください)。し@c
+かしながら、あなたの望むものがそこでカバーされていなかったらどうしましょう?続@c
+きを読んでください。
+@c テンプレート
+
+@menu
+* Soprano and cello::
+* Four-part SATB vocal score::
+* Building a score from scratch::
+@end menu
+
+@node Soprano and cello
+@subsection Soprano and cello
+@c ソプラノとチェロ
+
+@cindex template, modifying
+@cindex modifying templates
+
+あなたが最終的に望むものに最も近いテンプレートから始めてください。ソプラノと@c
+チェロのための楽譜を書きたいということにしましょう。ここでは、@q{音符と歌詞} 
+(ソプラノ パート用) から始めることにします。
+
+@example
+\version @w{"@version{}"}
+melody = \relative c' @{
+  \clef treble
+  \key c \major
+  \time 4/4
+  a4 b c d
+@}
+
+text = \lyricmode @{
+  Aaa Bee Cee Dee
+@}
+
+\score @{
+  <<
+    \new Voice = "one" @{
+      \autoBeamOff
+      \melody
+    @}
+    \new Lyrics \lyricsto "one" \text
+  >>
+  \layout @{ @}
+  \midi @{ @}
+@}
+@end example
+
+これにチェロ パートを追加していきます。@q{音符のみ} のテンプレートを見てみま@c
+しょう:
+
+@example
+\version @w{"@version{}"}
+melody = \relative c' @{
+  \clef treble
+  \key c \major
+  \time 4/4
+  a4 b c d
+@}
+
+\score @{
+  \new Staff \melody
+  \layout @{ @}
+  \midi @{ @}
+@}
+@end example
+
+@code{\version} コマンドは 2 つも必要ありません。@code{melody} セクションは必@c
+要です。@code{\score} セクションは 2 つも必要ありません -- @code{\score} が 2 
+つあると、2 つのパートがばらばらになります。2 つのパートをデュオのように一緒に@c
+したいのです。@code{\score} セクションの中に @code{\layout} や @code{\midi} は 2 
+つも必要ありません。
+
+単に @code{melody} セクションをカット&コピーした場合、@code{melody} 定義が 2 
+つになります。これはエラーにはなりませんが、2 番目の定義が両方の旋律で使われる@c
+ことになります。そのため、2 つの旋律を区別するためにリネームします。ソプラノ用@c
+のセクションを @code{sopranoMusic} と呼び、チェロ用のセクションを 
+@code{celloMusic} と呼ぶことにします。リネームするときに、@code{text} を 
+@code{sopranoLyrics} とりネームしましょう。これらのインスタンスをリネームする@c
+ことも忘れないでください −- 初期定義 (@code{melody = \relative c' @{ } 部分) 
+とその名前が使われているところ (@code{\score セクションの中}) の両方です。
+
+リネームする際に、チェロ パートの譜表も変更しましょう −- 通常、チェロは低音部@c
+を使用します。さらに、チェロの音符を変えてみます。
+
+@example
+\version @w{"@version{}"}
+sopranoMusic = \relative c' @{
+  \clef treble
+  \key c \major
+  \time 4/4
+  a4 b c d
+@}
+
+sopranoLyrics = \lyricmode @{
+  Aaa Bee Cee Dee
+@}
+
+celloMusic = \relative c @{
+  \clef bass
+  \key c \major
+  \time 4/4
+  d4 g fis8 e d4
+@}
+
+\score @{
+  <<
+    \new Voice = "one" @{
+      \autoBeamOff
+      \sopranoMusic
+    @}
+    \new Lyrics \lyricsto "one" \sopranoLyrics
+  >>
+  \layout @{ @}
+  \midi @{ @}
+@}
+@end example
+
+これでうまくいくように見えますが、チェロ パートが楽譜に表示されません −- チェロ 
+パートを @code{\score} セクションの中で使っていないからです。チェロ パートをソ@c
+プラノ パートの下に表示させたいのなら、以下をソプラノの譜の下に追加する必要が@c
+あります:
+
+@example
+\new Staff \celloMusic
+@end example
+
+@noindent
+さらに、音楽を @code{<<} と @code{>>} で囲む必要もあります −- これは LilyPond 
+に複数のもの (この場合は 2 つの @code{Stave}) が同時に起こるということを知らせ@c
+ます。@code{\score} は以下のようになります:
+
+@c Indentation in this example is deliberately poor
+@example
+\score @{
+  <<
+  <<
+    \new Voice = "one" @{
+      \autoBeamOff
+      \sopranoMusic
+    @}
+    \new Lyrics \lyricsto "one" \sopranoLyrics
+  >>
+  \new Staff \celloMusic
+  >>
+  \layout @{ @}
+  \midi @{ @}
+@}
+@end example
+
+@noindent
+これは少し見にくいです。インデントがきちんと入っていません。これは簡単に修正で@c
+きます。ここで、完成したソプラノとチェロ用のテンプレートを挙げます。
+
+@lilypond[quote,verbatim,ragged-right,addversion]
+sopranoMusic = \relative c' {
+  \clef treble
+  \key c \major
+  \time 4/4
+  a4 b c d
+}
+
+sopranoLyrics = \lyricmode {
+  Aaa Bee Cee Dee
+}
+
+celloMusic = \relative c {
+  \clef bass
+  \key c \major
+  \time 4/4
+  d4 g fis8 e d4
+}
+
+\score {
+  <<
+    <<
+      \new Voice = "one" {
+        \autoBeamOff
+        \sopranoMusic
+      }
+      \new Lyrics \lyricsto "one" \sopranoLyrics
+    >>
+    \new Staff \celloMusic
+  >>
+  \layout { }
+  \midi { }
+}
+@end lilypond
+
+
+@seealso
+開始点となるテンプレートは付録 @q{テンプレート} で見つけることができます。@c
+@ref{Single staff} を参照してください。
+@c 単一の譜
+
+
+@node Four-part SATB vocal score
+@subsection Four-part SATB vocal score
+@c 4 パート SATB ボーカル譜
+
+@cindex template, SATB
+@cindex SATB template
+
+Mendelssohn の Elijah や Handel の Messiah などのオーケストラ伴奏付きの 4 パー@c
+ト聖歌隊のために書かれたボーカル譜の多くは 4 つの譜上に音符と歌詞を持ち、それ@c
+ぞれの譜は SATB (ソプラノ、アルト、テナー、バス) のうちの 1 つであり、その下に@c
+オーケストラ伴奏のピアノ譜が付きます。ここで、Handel の Messiah から例を挙げま@c
+す:
+
+@c The following should appear as music without code
+@lilypond[quote,ragged-right]
+global = { \key d \major \time 4/4 }
+sopranoMusic = \relative c'' {
+  \clef "treble"
+  r4 d2 a4 | d4. d8 a2 | cis4 d cis2 |
+}
+sopranoWords = \lyricmode {
+  Wor -- thy is the lamb that was slain
+}
+altoMusic = \relative a' {
+  \clef "treble"
+  r4 a2 a4 | fis4. fis8 a2 | g4 fis e2 |
+}
+altoWords = \sopranoWords
+tenorMusic = \relative c' {
+  \clef "G_8"
+  r4 fis2 e4 | d4. d8 d2 | e4 a, cis2 |
+}
+tenorWords = \sopranoWords
+bassMusic = \relative c' {
+  \clef "bass"
+  r4 d2 cis4 | b4. b8 fis2 | e4 d a'2 |
+}
+bassWords = \sopranoWords
+upper = \relative a' {
+  \clef "treble"
+  \global
+  r4 <a d fis>2 <a e' a>4 |
+  <d fis d'>4. <d fis d'>8 <a d a'>2 |
+  <g cis g'>4 <a d fis> <a cis e>2 |
+}
+lower = \relative c, {
+  \clef "bass"
+  \global
+  <d d'>4 <d d'>2 <cis cis'>4 |
+  <b b'>4. <b' b'>8 <fis fis'>2 |
+  <e e'>4 <d d'> <a' a'>2 |
+}
+
+\score {
+  <<  % combine ChoirStaff and PianoStaff in parallel
+    \new ChoirStaff <<
+      \new Staff = "sopranos" <<
+        \set Staff.instrumentName = #"Soprano"
+        \new Voice = "sopranos" { \global \sopranoMusic }
+      >>
+      \new Lyrics \lyricsto "sopranos" { \sopranoWords }
+      \new Staff = "altos" <<
+        \set Staff.instrumentName = #"Alto"
+        \new Voice = "altos" { \global \altoMusic }
+      >>
+      \new Lyrics \lyricsto "altos" { \altoWords }
+      \new Staff = "tenors" <<
+        \set Staff.instrumentName = #"Tenor"
+        \new Voice = "tenors" { \global \tenorMusic }
+      >>
+      \new Lyrics \lyricsto "tenors" { \tenorWords }
+      \new Staff = "basses" <<
+        \set Staff.instrumentName = #"Bass"
+        \new Voice = "basses" { \global \bassMusic }
+      >>
+      \new Lyrics \lyricsto "basses" { \bassWords }
+    >>  % end ChoirStaff
+
+    \new PianoStaff <<
+      \set PianoStaff.instrumentName = #"Piano"
+      \new Staff = "upper" \upper
+      \new Staff = "lower" \lower
+    >>
+  >>
+}
+@end lilypond
+
+このレイアウトをそのまま提供するテンプレートはありません。最も近いのは @q{SATB 
+ボーカル譜と自動ピアノ伴奏譜} -- @ref{Vocal ensembles} を参照してください -- 
+ですが、レイアウトを変更して、ボーカル パートから自動的に生成されたものではな@c
+いピアノ伴奏譜を付け加える必要があります。ボーカル パートのための音楽と歌詞を@c
+保持している変数はそのまま使えますが、ピアノ伴奏譜のための変数を付け加える必要@c
+があります。
+@c ボーカル アンサンブル
+
+テンプレートの @code{ChoirStaff} の中でコンテキストが出現する順序は上で示した@c
+ボーカル譜の順序と一致していません。そのため、コンテキストを再配置して、それぞ@c
+れの歌詞が対応する譜表のすぐ下にくるようにします。すべてのボイスは 
+@code{\voiceOne} -- これがデフォルトです -- になるべきなので、@code{\voiceXXX} 
+コマンドは削除すべきです。さらに、テノールに対してハ音記号 (中音部記号) を指定@c
+する必要があります。テンプレートの中で歌詞を指定する方法はまだ説明していません@c
+ので、馴染みのある方法を使用する必要があります。さらに、それぞれの譜に名前を追@c
+加すべきです。
+
+以上のことを @code{ChoirStaff} に対して行います:
+
+@example
+    \new ChoirStaff <<
+      \new Staff = "sopranos" <<
+        \set Staff.instrumentName = #"Soprano"
+        \new Voice = "sopranos" @{ \global \sopranoMusic @}
+      >>
+      \new Lyrics \lyricsto "sopranos" @{ \sopranoWords @}
+      \new Staff = "altos" <<
+        \set Staff.instrumentName = #"Alto"
+        \new Voice = "altos" @{ \global \altoMusic @}
+      >>
+      \new Lyrics \lyricsto "altos" @{ \altoWords @}
+      \new Staff = "tenors" <<
+        \set Staff.instrumentName = #"Tenor"
+        \new Voice = "tenors" @{ \global \tenorMusic @}
+      >>
+      \new Lyrics \lyricsto "tenors" @{ \tenorWords @}
+      \new Staff = "basses" <<
+        \set Staff.instrumentName = #"Bass"
+        \new Voice = "basses" @{ \global \bassMusic @}
+      >>
+      \new Lyrics \lyricsto "basses" @{ \bassWords @}
+    >>  % end ChoirStaff
+@end example
+
+次にピアノ パートに取り掛からなければなりません。これは簡単です -- @q{ソロ ピ@c
+アノ} テンプレートからピアノ パートを引き抜いてくるだけです:
+
+@example
+\new PianoStaff <<
+  \set PianoStaff.instrumentName = #"Piano  "
+  \new Staff = "upper" \upper
+  \new Staff = "lower" \lower
+>>
+@end example
+
+そして、@code{upper} と @code{lower} に変数定義を付け加えます。
+
+@code{ChoirStaff} を @code{PianoStaff} の上に置きたいので、それらを角括弧を@c
+使って組み合わせなければなりません:
+
+@example
+<<  % combine ChoirStaff and PianoStaff one above the other
+  \new ChoirStaff <<
+    \new Staff = "sopranos" <<
+      \new Voice = "sopranos" @{ \global \sopranoMusic @}
+    >>
+    \new Lyrics \lyricsto "sopranos" @{ \sopranoWords @}
+    \new Staff = "altos" <<
+      \new Voice = "altos" @{ \global \altoMusic @}
+    >>
+    \new Lyrics \lyricsto "altos" @{ \altoWords @}
+    \new Staff = "tenors" <<
+      \clef "G_8"  % tenor clef
+      \new Voice = "tenors" @{ \global \tenorMusic @}
+    >>
+    \new Lyrics \lyricsto "tenors" @{ \tenorWords @}
+    \new Staff = "basses" <<
+      \clef "bass"
+      \new Voice = "basses" @{ \global \bassMusic @}
+    >>
+    \new Lyrics \lyricsto "basses" @{ \bassWords @}
+  >>  % end ChoirStaff
+
+  \new PianoStaff <<
+    \set PianoStaff.instrumentName = #"Piano"
+    \new Staff = "upper" \upper
+    \new Staff = "lower" \lower
+  >>
+>>
+@end example
+
+これらすべてを組み合わせて、上の例の 3 小節分の音楽を付け加えます:
+
+@lilypond[quote,verbatim,ragged-right,addversion]
+global = { \key d \major \time 4/4 }
+sopranoMusic = \relative c'' {
+  \clef "treble"
+  r4 d2 a4 | d4. d8 a2 | cis4 d cis2 |
+}
+sopranoWords = \lyricmode {
+  Wor -- thy is the lamb that was slain
+}
+altoMusic = \relative a' {
+  \clef "treble"
+  r4 a2 a4 | fis4. fis8 a2 | g4 fis fis2 |
+}
+altoWords = \sopranoWords
+tenorMusic = \relative c' {
+  \clef "G_8"
+  r4 fis2 e4 | d4. d8 d2 | e4 a, cis2 |
+}
+tenorWords = \sopranoWords
+bassMusic = \relative c' {
+  \clef "bass"
+  r4 d2 cis4 | b4. b8 fis2 | e4 d a'2 |
+}
+bassWords = \sopranoWords
+upper = \relative a' {
+  \clef "treble"
+  \global
+  r4 <a d fis>2 <a e' a>4 |
+  <d fis d'>4. <d fis d'>8 <a d a'>2 |
+  <g cis g'>4 <a d fis> <a cis e>2 |
+}
+lower = \relative c, {
+  \clef "bass"
+  \global
+  <d d'>4 <d d'>2 <cis cis'>4 |
+  <b b'>4. <b' b'>8 <fis fis'>2 |
+  <e e'>4 <d d'> <a' a'>2 |
+}
+
+\score {
+  <<  % combine ChoirStaff and PianoStaff in parallel
+    \new ChoirStaff <<
+      \new Staff = "sopranos" <<
+        \set Staff.instrumentName = #"Soprano"
+        \new Voice = "sopranos" { \global \sopranoMusic }
+      >>
+      \new Lyrics \lyricsto "sopranos" { \sopranoWords }
+      \new Staff = "altos" <<
+        \set Staff.instrumentName = #"Alto"
+        \new Voice = "altos" { \global \altoMusic }
+      >>
+      \new Lyrics \lyricsto "altos" { \altoWords }
+      \new Staff = "tenors" <<
+        \set Staff.instrumentName = #"Tenor"
+        \new Voice = "tenors" { \global \tenorMusic }
+      >>
+      \new Lyrics \lyricsto "tenors" { \tenorWords }
+      \new Staff = "basses" <<
+        \set Staff.instrumentName = #"Bass"
+        \new Voice = "basses" { \global \bassMusic }
+      >>
+      \new Lyrics \lyricsto "basses" { \bassWords }
+    >>  % end ChoirStaff
+
+    \new PianoStaff <<
+      \set PianoStaff.instrumentName = #"Piano  "
+      \new Staff = "upper" \upper
+      \new Staff = "lower" \lower
+    >>
+  >>
+}
+@end lilypond
+
+
+@node Building a score from scratch
+@subsection Building a score from scratch
+@c ゼロから楽譜を構築する
+
+@cindex template, writing your own
+@cindex example of writing a score
+@cindex writing a score, example
+@cindex score, example of writing
+
+LilyPond コードを書くことにある程度熟練した後、あなたはテンプレートの 1 つを変@c
+更するよりもゼロから楽譜を構築するほうがより容易であることに気づくかもしれませ@c
+ん。さらに、あなたはこの方法であなたの好みのタイプの音楽に適したあなた自身のス@c
+タイルを開発することもできます。例として、オルガン前奏曲のための楽譜を作成する@c
+手順を見てみましょう。
+
+ヘッダ セクションから始めます。そこでタイトル、作曲者の名前などを記述し、それ@c
+から任意の変数を定義し、最後にスコア ブロックに取り掛かります。以上のことを概@c
+要から始めて、その後に詳細を詰めていきます。
+
+@emph{Jesu, meine Freude} -- これは 2 つの鍵盤とペダルを持つオルガンのために書@c
+かれたものです -- をベースとする Bach の前奏曲の最初の 2 小節を使います。この@c
+セクションの最後でこの音楽の最初の 2 小節を見ることができます。上段鍵盤パートは 
+2 つのボイスを持ち、下段鍵盤とペダルはそれぞれ 1 つのボイスを持ちます。そのた@c
+め、4 つの音楽定義と、拍子記号と調号を定義するための 1 つの音楽定義が必要とな@c
+ります:
+
+@example
+\version @w{"@version{}"}
+\header @{
+  title = "Jesu, meine Freude"
+  composer = "J S Bach"
+@}
+TimeKey = @{ \time 4/4 \key c \minor @}
+ManualOneVoiceOneMusic = @{s1@}
+ManualOneVoiceTwoMusic = @{s1@}
+ManualTwoMusic = @{s1@}
+PedalOrganMusic = @{s1@}
+
+\score @{
+@}
+@end example
+
+ここでは、実際の音楽の代わりにスペーサ音符 @code{s1} を使用しました。実際の音@c
+楽は後で付け加えます。
+
+次に、スコア ブロックで何をすべきなのかを見ていきましょう。単純に望む譜表構造@c
+を反映させます。通常、オルガン音楽は 3 つの譜で書かれます -- 2 つの鍵盤とペダ@c
+ルのための譜です。鍵盤の譜はブレース (譜表の左端の中括弧) でまとめられているべ@c
+きなので、それらに対して @code{PianoStaff} を使用する必要があります。1 番目の@c
+鍵盤パートは 2 つのボイスを必要とし、2 番目の鍵盤パートは 1 つだけボイスを必要@c
+とします。
+
+@example
+  \new PianoStaff <<
+    \new Staff = "ManualOne" <<
+      \new Voice @{ \ManualOneVoiceOneMusic @}
+      \new Voice @{ \ManualOneVoiceTwoMusic @}
+    >>  % end ManualOne Staff context
+    \new Staff = "ManualTwo" <<
+      \new Voice @{ \ManualTwoMusic @}
+    >>  % end ManualTwo Staff context
+  >>  % end PianoStaff context
+@end example
+
+次にペダル オルガンのための譜表を付け加える必要があります。これは 
+@code{PianoStaff} の下にきますが、@code{PianoStaff} と同時進行でなければなりま@c
+せんので、ペダル オルガンのための譜表と @code{PianoStaff} を角括弧で囲む必要が@c
+あります。これを忘れるとエラーがログ ファイルに生成されます。このエラーはあな@c
+たが早かれ遅かれ遭遇する一般的なミスです!生成されるエラーを確認するために、こ@c
+のセクションの最後にある例をコピーし、この角括弧を削除し、コンパイルしてみてく@c
+ださい。
+
+@example
+<<  % PianoStaff and Pedal Staff must be simultaneous
+  \new PianoStaff <<
+    \new Staff = "ManualOne" <<
+      \new Voice @{ \ManualOneVoiceOneMusic @}
+      \new Voice @{ \ManualOneVoiceTwoMusic @}
+    >>  % end ManualOne Staff context
+    \new Staff = "ManualTwo" <<
+      \new Voice @{ \ManualTwoMusic @}
+    >>  % end ManualTwo Staff context
+  >>  % end PianoStaff context
+  \new Staff = "PedalOrgan" <<
+    \new Voice @{ \PedalOrganMusic @}
+  >>
+>>
+@end example
+
+2 番目の鍵盤パートとペダル オルガンの譜表は 1 つだけしか音楽表記を保持しないた@c
+め、それらに対して同時進行構造 @code{<< .. >>} を使う必要は必ずしもありませ@c
+ん。しかしながら、そうしても害はありませんし、@code{\new Staff} の後に常に角括@c
+弧を置くというのは複数のボイスがある場合では推奨される良い習慣です。Voice はこ@c
+れとは対照的に、あなたの音楽を連続して演奏すべきいくつかの変数に分けてコード化@c
+する場合に Voice の後に中括弧 @code{@{ .. @}} を常に置くべきです。
+
+この構造をスコア ブロックに付け加えて、インデントを調整しましょう。さらに、適@c
+切な音部記号を付け加え、@code{\voiceOne} と @code{\voiceTwo} を使って上部譜の@c
+各ボイスでステム、タイ、スラーの向きが正しくなるようにし、あらかじめ定義してお@c
+いた変数 @code{\TimeKey} を使って拍子記号と調号を各譜に挿入します。
+
+@example
+\score @{
+  <<  % PianoStaff and Pedal Staff must be simultaneous
+    \new PianoStaff <<
+      \new Staff = "ManualOne" <<
+        \TimeKey  % set time signature and key
+        \clef "treble"
+        \new Voice @{ \voiceOne \ManualOneVoiceOneMusic @}
+        \new Voice @{ \voiceTwo \ManualOneVoiceTwoMusic @}
+      >>  % end ManualOne Staff context
+      \new Staff = "ManualTwo" <<
+        \TimeKey
+        \clef "bass"
+        \new Voice @{ \ManualTwoMusic @}
+      >>  % end ManualTwo Staff context
+    >>  % end PianoStaff context
+    \new Staff = "PedalOrgan" <<
+      \TimeKey
+      \clef "bass"
+      \new Voice @{ \PedalOrganMusic @}
+    >>  % end PedalOrgan Staff
+  >>
+@}  % end Score context
+@end example
+
+これでこの構造は完成です。3 つの譜表を持つオルガン音楽はいずれも同様の構造を持@c
+ちますが、ボイスの数はさまざまになるかもしれません。この後に行うべきことは、音@c
+楽を付け加え、各パートを一緒にすることです。
+
+@lilypond[quote,verbatim,ragged-right,addversion]
+\header {
+  title = "Jesu, meine Freude"
+  composer = "J S Bach"
+}
+TimeKey = { \time 4/4 \key c \minor }
+ManualOneVoiceOneMusic = \relative g' {
+  g4 g f ees | d2 c2 |
+}
+ManualOneVoiceTwoMusic = \relative c' {
+  ees16 d ees8~ ees16 f ees d c8 d~ d c~ |
+  c c4 b8 c8. g16 c b c d |
+}
+ManualTwoMusic = \relative c' {
+  c16 b c8~ c16 b c g a8 g~ g16 g aes ees |
+  f ees f d g aes g f ees d e8~ ees16 f ees d |
+}
+PedalOrganMusic = \relative c {
+  r8 c16 d ees d ees8~ ees16 a, b g c b c8 |
+  r16 g ees f g f g8 c,2 |
+  }
+
+\score {
+  <<  % PianoStaff and Pedal Staff must be simultaneous
+    \new PianoStaff <<
+      \new Staff = "ManualOne" <<
+        \TimeKey  % set time signature and key
+        \clef "treble"
+        \new Voice { \voiceOne \ManualOneVoiceOneMusic }
+        \new Voice { \voiceTwo \ManualOneVoiceTwoMusic }
+      >>  % end ManualOne Staff context
+      \new Staff = "ManualTwo" <<
+        \TimeKey
+        \clef "bass"
+        \new Voice { \ManualTwoMusic }
+      >>  % end ManualTwo Staff context
+    >>  % end PianoStaff context
+    \new Staff = "PedalOrgan" <<
+      \TimeKey
+      \clef "bass"
+      \new Voice { \PedalOrganMusic }
+    >>  % end PedalOrgan Staff context
+  >>
+}  % end Score context
+@end lilypond
+
diff --git a/Documentation/ja/user/install.itely b/Documentation/ja/user/install.itely
new file mode 100644 (file)
index 0000000..404d50e
--- /dev/null
@@ -0,0 +1,88 @@
+@c -*- coding: utf-8; mode: texinfo; documentlanguage: ja -*-
+@c This file is part of lilypond-program.tely
+@ignore
+    Translation of GIT committish: 499a511d4166feaada31114e097f86b5e0c56421
+
+    When revising a translation, copy the HEAD committish of the
+    version that you are working on.  See TRANSLATION for details.
+@end ignore
+
+@c \version "2.12.0"
+
+@c Translators: Yoshiki Sawada
+@c Translation status: post-GDP
+
+@node Install
+@chapter Install
+
+LilyPond にはリリースが 2 セットあります: 安定したリリースと、不安定な開発版リ@c
+リースです。 安定バージョンは偶数の @q{マイナー} バージョン番号を持ちます (つ@c
+まり、2.8, 2.10, 2.12 など)。開発バージョンは奇数の @q{マイナー} バージョン番@c
+号を持ちます (つまり、2.7, 2.9, 2.11 など)。
+
+LilyPond のビルドは非常に複雑なプロセスです。そのため、コンパイル済みのバイナ@c
+リを使用することを@strong{強く}推奨します。
+
+@menu 
+* Precompiled binaries::
+* Compiling from source::
+@end menu
+
+
+@node Precompiled binaries
+@section Precompiled binaries
+
+@unnumberedsubsec Downloading
+
+あなたの使用しているプラットフォーム向けのバイナリ パッケージについての最新情@c
+報を得るには @uref{http://lilypond.org/web/install/} をチェックしてください。@c
+あなたの使用している OS がそのページでカバーされていない場合は、@c
+@uref{http://download.linuxaudio.org/lilypond/binaries/} にある完全なバイナリ 
+リストを調べてみてください。
+
+現在のところ、以下のバイナリがあります:
+
+@example
+darwin-ppc  - MacOS X PowerPC
+darwin-x86  - MacOS X Intel
+freebsd-64  - FreeBSD 6.x, x86_64
+freebsd-x86 - FreeBSD 4.x, x86
+linux-64    - Toutes distributions GNU/Linux, x86_64
+linux-ppc   - Toutes distributions GNU/Linux, powerpc
+linux-x86   - Toutes distributions GNU/Linux, x86
+mingw       - Windows x86
+@end example
+
+
+@knownissues
+
+あなたが MacOS 10.3 または 10.4 を使用していて、@command{convert-ly} や 
+@command{lilypond-book} のような Python スクリプトを使用したいのなら、@ref{Setup 
+for MacOS X,,,lilypond-program,Application Usage} を参照してください。
+
+
+@node Compiling from source
+@section Compiling from source
+
+ソース コードから直接 LilyPond をコンパイルすることもできます。これを行うには@c
+英語を読めることが必須です。そのため、この節は翻訳されません。本当に LilyPond 
+をコンパイルしたいのなら、
+@iftex
+@c DO NOT translate the following line at all.
+@ref{Compiling from source,,,lilypond-program,Application Usage}.
+@end iftex
+@ifhtml
+@c Please translate the following line (but not the .html file name)
+@uref{Compiling-from-source.html,英語で書かれたドキュメント}
+@end ifhtml
+を参照してください。
+
+@c TRANSLATORS:
+@c   Please **do not** translate anything below this line.  Users
+@c   should not be compiling LilyPond themselves; if they really
+@c   want to do so, they should be able to read the English docs,
+@c   because they'll probably need to ask questions in English
+@c   on the -devel list.   -gp
+@c Instead, please uncomment and translate the paragraph above,
+@c and remove all stuff (menu, nodes, contents) below this line.
+
diff --git a/Documentation/ja/user/introduction.itely b/Documentation/ja/user/introduction.itely
new file mode 100644 (file)
index 0000000..ab262e6
--- /dev/null
@@ -0,0 +1,1138 @@
+@c -*- coding: utf-8; mode: texinfo; documentlanguage: ja -*-
+@c This file is part of lilypond-learning.tely
+@ignore
+    Translation of GIT committish: 499a511d4166feaada31114e097f86b5e0c56421
+
+    When revising a translation, copy the HEAD committish of the
+    version that you are working on.  See TRANSLATION for details.
+@end ignore
+
+@c \version "2.12.0"
+
+@c Translators: Yoshiki Sawada
+@c Translation status: post-GDP
+
+@node Introduction
+@chapter Introduction
+
+この章では読者に LilyPond とこのドキュメントについての紹介を行います。
+
+@menu
+* Background::
+* About the documentation::
+@end menu
+
+
+@node Background
+@section Background
+
+この節は LilyPond の最終目的とアーキテクチャについてカバーします。
+
+@menu
+* Engraving::
+* Automated engraving::
+* What symbols to engrave?::
+* Music representation::
+* Example applications::
+@end menu
+
+
+@node Engraving
+@unnumberedsubsec Engraving
+
+@cindex engraving
+@cindex typography, music
+@cindex music typography
+@cindex plate engraving
+@cindex music engraving
+
+楽譜印刷の技術は@emph{(プレート) 譜刻} (原文: engraving、版画などの印刷のこと@c
+) と呼ばれています。この用語は伝統的な楽譜印刷のプロセスに由来します。ほんの@c
+数十年前まで、楽譜は音楽記号を亜鉛やしろめ (錫と鉛の合金) の版に反転した@c
+イメージで彫り込んだり、刻印することによって作られていました。版にはインクが@c
+塗られ、彫り込んだり刻印してくぼんだ部分にはインクが溜まります。版のイメージ@c
+はその版に紙が押し付けられることによって形になります。刻印と彫刻は完全に手作@c
+業で行われていました。校正は可能だとしても厄介でした。なぜなら一から刻印と彫@c
+刻のやり直しだったからです。譜刻は高度に専門的な技術でした。職人はマスター @c
+エングラーバ (譜刻を行う人) の称号を得るまで 5 年の修行を修めなければなら@c
+ず、本当に技術を習得するまでにはさらにもう 5 年の経験が必要だったのです。
+
+今日では、コンピュータによってまったく新しい楽譜が出版されています。これには@c
+明らかな利点があります。印刷は安く済み、編集したものを email で配ることが可@c
+能です。不幸なことに、コンピュータが広く使われるようになって楽譜のグラフィカ@c
+ルな品質は低下しています。コンピュータによって出版された楽譜は味気無く、機械@c
+的な見た目をしているため、その楽譜で演奏することに喜びを感じられません。
+
+@c introduce illustrating aspects of engraving, font...
+以下の図は伝統的な譜刻とコンピュータ出版の違いを描いたものであり、3 番目の図は
+LilyPond がどれくらい伝統的な見た目を模倣しているのかを示しています。左端の@c
+スキャンした図はコンピュータ出版の典型的な決定を示しています。縦棒は細く、フ@c
+ラット記号の太さは細線と一致していて、曲線はまっすぐなレイアウトになっていま@c
+す。対照的に、ベーレンライター (Barenreiter: ドイツの出版社) のフラットは太@c
+く、曲線は官能的です。我々のフラットは 2 つのもののうち後者を元にデザインさ@c
+れています。丸みを帯びていて、太さは縦棒の太さと調和していて、コンピュータに@c
+よるものよりも線が太くなっています。
+
+@multitable @columnfractions .125 .25 .25 .25 .125
+@item @tab
+@ifnotinfo
+@iftex
+@image{henle-flat-gray,,4cm}
+@end iftex
+@ifnottex
+@image{henle-flat-gray,,,png}
+@end ifnottex
+
+@tab
+@iftex
+@image{baer-flat-gray,,4cm}
+@end iftex
+@ifnottex
+@image{baer-flat-gray,,,png}
+@end ifnottex
+
+@tab
+@iftex
+@image{lily-flat-bw,,4cm}
+@end iftex
+@ifnottex
+@image{lily-flat-bw,,,png}
+@end ifnottex
+@end ifnotinfo
+@ifinfo
+@image{lilypond/henle-flat-bw,,,png} @image{lilypond/baer-flat-bw,,,png}
+@image{lilypond/lily-flat-bw,,,png}
+@end ifinfo
+
+@item @tab
+Henle (2000)
+@tab
+Bärenreiter (1950)
+@tab
+LilyPond Feta font (2003)
+
+@end multitable
+
+
+@cindex musical symbols
+@cindex font
+@cindex blackness
+@cindex balance
+
+@c introduce illustrating aspects of engraving, spacing...
+スペースの点では、スペースの配分は音符と音符の間の音の間隔を反映します。しか@c
+しながら、現代楽譜の多くは数学的な正確さを持った間隔に固執しています。このこ@c
+とはおもしろくない結果を生み出します。次の例では、2 度楽譜をプリントしていま@c
+す: 1 度目は正確に数学的なスペースを用いて、2 度目はそれに校正を加えていま@c
+す。違いを見分けられますか?
+
+@cindex optical spacing
+@c file spacing-optical.
+@c need to include it here,  because we want two images.
+@lilypond
+\paper {
+  ragged-right = ##t
+  indent = #0.0
+}
+
+music = {
+   c'4 e''4 e'4 b'4 |
+   \stemDown
+   b'8[ e'' a' e'']
+   \stemNeutral
+   e'8[ e'8 e'8 e'8]
+}
+
+\score
+{
+  \music
+  \layout {
+    \context {
+      \Staff
+      \override NoteSpacing #'stem-spacing-correction = #0.6
+    }
+  }
+}
+@end lilypond
+
+@lilypond
+\paper {
+  ragged-right = ##t
+  indent = #0.0
+}
+
+music = {
+   c'4 e''4 e'4 b'4 |
+   \stemDown
+   b'8[ e'' a' e'']
+   \stemNeutral
+   e'8[ e'8 e'8 e'8]
+}
+\score
+{
+  \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
+    }
+  }
+}
+@end lilypond
+
+@cindex regular rhythms
+@cindex regular spacing
+@cindex spacing, regular
+
+各小節には一定のリズムで演奏される音符だけがあります。スペースもそれを反映していま@c
+す。不幸なことに、我々の目は我々を少し惑わせます。音符の「玉」 (ノート ヘッド) の間@c
+隔だけでなく、連続した棒 (ステム、音符から突き出る棒) の間隔も考慮します。結果とし@c
+て、アップ ステム/@/ダウン ステム (玉の上に突き出た棒/@/玉の下に突き出た棒) の組み@c
+合わせは離すべきであり、ダウン ステム/アップステムの組み合わせは近づけるべきです、す@c
+べては音符の垂直方向の位置の組み合わせに次第です。上の 2 小節は音符のダウン 
+ステム/@/アップ ステムの組み合わせを近づけるよう校正を加えたものであり、下の 2 小節@c
+はこの校正を加えていないものです。
+
+
+通常、奏者は楽譜の見え方を勉強するよりも演奏をするほうに夢中ですので、印刷上@c
+の詳細にこだわることは形式尊重のように思えるかもしれません。しかしそうではあ@c
+りません。単調なリズムがずっと続くような場合、スペースの校正を行うことで各行@c
+のレイアウトに微妙な変化が加わり、それぞれが異なる視覚的特徴を持つようになり@c
+ます。この特徴が無ければすべての行は同じに見え、迷路のようになってしまいま@c
+す。奏者がちょっと目を逸らしたり、集中力を欠くと、それまで見ていた行はページ@c
+の中に埋もれてしまいます。
+
+同様に、太い譜線 (音の高さを表す線。五線譜では 5 本) に描かれた太い記号は見@c
+た目が強く、楽譜から奏者が離れている場合 -- 例えば、楽譜が譜面台にある場合 -- 
+に良く目立ちます。空白を注意深く配置することで、楽譜は記号が乱雑になることな@c
+く締まります。結果としてページをめくる回数は最小となり、これは大きな利点にな@c
+ります。
+
+これは印刷において共通して言えることですが、レイアウトはこざっぱりとしている@c
+べきです。これは印刷自体のためであるだけでなく、特にその印刷物を読んでいる読@c
+み手の助けにもなるからです。楽譜のような演奏用の道具では、このことは 2 重に@c
+重要性を持ちます: 奏者の注意力には限界があり、奏者が楽譜を読むことに払う注意@c
+力が少なくて済めば済むほど、その奏者は演奏に集中することができます。言い換え@c
+ると、良い印刷は良い演奏につながるのです。
+
+以上で挙げたことは、楽譜の印刷は微妙で複雑な技術であり、楽譜を印刷するには非@c
+常な熟練 -- これは通常、奏者が持っているものではありません -- が必要であると@c
+いうことを示しています。LilyPond は、手作業で譜刻された楽譜のすばらしさをコ@c
+ンピュータ世代に提供しよう、すばらしい楽譜を普通の音楽家にも利用可能にしよう@c
+という我々の努力なのです。我々は、良く見てみたくなり、演奏したくなるような古@c
+い楽譜のクオリティに匹敵する楽譜を提供するために、アルゴリズム、フォント デ@c
+ザイン、プログラム設定を調整してきました。
+
+
+@node Automated engraving
+@unnumberedsubsec Automated engraving
+
+@cindex engraving, automated
+@cindex automated engraving
+
+我々はどのように譜刻を実現していくのでしょうか?職人が本当のマスターになるのに
+10 年以上かかるのなら、単なるハッカーである我々がどうやったら職人の仕事を越@c
+えるプログラムを書けるのでしょうか?
+
+その答えは、我々には「できない」です。譜刻は人間的な状況判断に頼っているた@c
+め、判断を行う人間を完全にコンピュータに置き換えることはできません。しかしな@c
+がら、退屈な作業の多くを自動化することはできます。もし LilyPond が一般的な@c
+ケースの大半に対処できるなら、それは既存のソフトウェアよりも大きく前進するこ@c
+とになります。残りのケースは手作業で調整することができます。年数が経つにつれ@c
+て、このソフトウェアはより多くのことを自動的に行えるよう洗練されていき、手作@c
+業による手直しはどんどん必要なくなっていくことでしょう。
+
+我々が LilyPond の開発を始めたとき、我々は LilyPond プログラム全体を C++ プ@c
+ログラミング言語で書いていました。プログラムの機能は開発者によってかっちりと@c
+決められていました。これはいくつかの理由で不満足なものであることがわかりました:
+
+@itemize
+@item LilyPond が失敗を犯したとき、ユーザはフォーマット判断 (どのような@c
+フォーマットにするかの判断) を上書きする必要があります。そのため、ユーザは@c
+フォーマット エンジンにアクセスしなければなりません。そのため、コンパイル時@c
+に我々 (開発者) によって規則と設定を固定することは無理があり、実行時 (LilyPond 
+によって楽譜を作り出すとき) にユーザが規則と設定にアクセスできなければなりま@c
+せん。
+
+@item 譜刻は視覚的判断の問題であり、そのために好みがあります。我々には知識が@c
+ありますが、ユーザは我々の個人的な判断に異を唱える可能性もあります。そのた@c
+め、譜刻様式の定義もまたユーザがアクセスできるものでなければなりません。
+
+@item 最後に、我々は継続的にフォーマット アルゴリズムを改良させていくので、@c
+我々には規則に対する自由度の高いアプローチが必要です。C++ 言語は音楽表記の作@c
+業とはうまくマッチしない規則分類法を押し付けてきます。
+
+@end itemize
+
+@cindex Scheme programming language
+
+これらの問題に対して、Scheme プログラミング言語のインタプリタを統合し、@c
+LilyPond の各部分を Scheme で書き直すという処置がとられてきました。現在の@c
+フォーマット アーキテクチャはグラフィカル オブジェクトという概念で構築されて@c
+いて、Scheme 変数と関数によって記述されています。このアーキテクチャは、@c
+フォーマット規則、譜刻スタイル、個々のフォーマットに関する判断を包含していま@c
+す。ユーザはこれらの制御の大半に直接アクセスする術を持ちます。
+
+Scheme 変数はレイアウトに関する判断を制御します。例えば、多くのグラフィカル 
+オブジェクトは上か下か (あるいは左か右か) の選択を決定する方向 (に関する) 変@c
+数を持ちます。ここで、アクセントとアルペジオを持つ 2 つの和音を見てみます。@c
+最初の和音では、すべてのグラフィカル オブジェクトは下向き (あるいは左向き) 
+の方向を持っています。2 番目の和音では、すべてが上向き (あるいは右向き) の方@c
+向を持っています。
+
+@lilypond[quote,ragged-right]
+\new Score \with {
+   \override SpacingSpanner #'spacing-increment = #3
+   \override TimeSignature #'transparent = ##t
+} \relative c' {
+   \stemDown <e g b>4_>-\arpeggio
+   \override Arpeggio #'direction = #RIGHT
+   \stemUp <e g b>4^>-\arpeggio
+}
+@end lilypond
+
+@cindex score formatting
+@cindex formatting a score
+@cindex formatting rules
+
+@noindent
+楽譜を形作るプロセスはグラフィカルオブジェクトの変数を読み込んだり、書き込ん@c
+だりすることからなります。いくつかの変数はプリセット値を持ちます。例えば、多@c
+くの線の太さ -- 印刷スタイルの特性 -- はプリセット値を持つ変数です。あなたは@c
+自由にこの値を変更することができ、それによってあなたの楽譜は異なる印象を持つ@c
+ことになります。
+
+@lilypond[quote,ragged-right]
+fragment = {
+   \clef bass f8 as8
+   c'4-~ c'16 as g f e16 g bes c' des'4
+}
+<<
+   \new Staff \fragment
+   \new Staff \with {
+      \override 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
+>>
+@end lilypond
+
+さらにフォーマット規則もプリセット変数です: 各オブジェクトはプロシージャを保@c
+持している変数を持ちます。これらのプロシージャが実際のフォーマットを実行し、@c
+異なるプロシージャを使用することによってオブジェクトの見た目を変えることがで@c
+きます。以下の例では、音符の玉 (ノート ヘッド) シンボルを印刷するのにどの音@c
+符の玉オブジェクトを使用するかを決定する規則を楽譜の途中で変更しています。
+
+@lilypond[quote,ragged-right]
+#(set-global-staff-size 30)
+
+#(define (mc-squared grob orig current)
+  (let* ((interfaces (ly:grob-interfaces grob))
+         (pos (ly:grob-property grob 'staff-position)))
+    (if (memq 'note-head-interface interfaces)
+        (begin
+          (ly:grob-set-property! grob 'stencil
+            (grob-interpret-markup grob
+              (make-lower-markup 0.5
+                (case pos
+                  ((-5) "m")
+                  ((-3) "c ")
+                  ((-2) (make-smaller-markup (make-bold-markup "2")))
+                  (else "bla")))))))))
+
+\new Voice \relative c' {
+  \stemUp
+  \set autoBeaming = ##f
+  \time 2/4
+  <d f g>4
+  \once \override NoteHead #'stencil = #ly: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
+  <d f g>4
+  \applyOutput #'Voice #mc-squared
+  <d f g>4
+  <<
+    { d8[ es-( fis^^ g] fis2-) }
+    \repeat unfold 5 { \applyOutput #'Voice #mc-squared s8 }
+  >>
+}
+@end lilypond
+
+
+@node What symbols to engrave?
+@unnumberedsubsec What symbols to engrave?
+
+@cindex engraving
+@cindex typography
+@cindex engraver
+@cindex plug-in
+
+
+フォーマット プロセスはシンボルを置く場所を決定します。しかしながら、@c
+@emph{どの}シンボルを譜刻すべきかを決定する -- 言い換えると、使用する表記を@c
+決定する -- と、シンボルを置く場所も決まります。
+
+一般の音楽表記は音楽を記録するシステムであり、これは過去 1000 年以上にもわ@c
+たって進化してきました。現在の一般的な形式はルネッサンス前期にまでさかのぼり@c
+ます。基本的な形式 (すなわち、音符の玉が 5 本線の譜表上にあるというもの) は@c
+変更されていませんが、細かな点は現代の表記の改革を表現するためにいまだに発展@c
+が続けられています。したがって、一般的な音楽表記はおよそ500年間の音楽を扱い@c
+ます。応用範囲は単旋律から大規模なオーケストラのための途方もない対位法にまで@c
+及びます。
+
+どうやったら我々はそのような多頭の獣を統率し、制限のあるコンピュータ プログ@c
+ラムに押し込めることができるでしょうか?我々の解決策は表記の問題 (譜刻とは対@c
+照的にある、すなわち、活字学) を消化の良いプログラム可能な小さな塊に分解して@c
+いくことです: それぞれのシンボルのタイプは個々のモジュール -- いわゆるプラグ@c
+イン -- によって処理されます。各プラグインは完全にモジュール化されて独立して@c
+いて、それによりそれぞれを別個に開発、改良することができます。そのようなプラ@c
+グインは音楽的概念をグラフィック シンボルに変換する職人に例えて @code{engraver}
+(エングラーバ) と呼びます。
+
+以下の例では、我々が音符の玉のためのプラグイン @code{Note_heads_engraver} か@c
+ら始めていく様子を見ていきます。
+
+@lilypond[quote,ragged-right]
+\include "engraver-example.ily"
+
+\score {
+  \topVoice
+  \layout {
+    \context {
+      \Voice
+      \remove "Stem_engraver"
+      \remove "Phrasing_slur_engraver"
+      \remove "Slur_engraver"
+      \remove "Script_engraver"
+      \remove "Beam_engraver"
+      \remove "Auto_beam_engraver"
+    }
+    \context {
+      \Staff
+      \remove "Accidental_engraver"
+      \remove "Key_engraver"
+      \remove "Clef_engraver"
+      \remove "Bar_engraver"
+      \remove "Time_signature_engraver"
+      \remove "Staff_symbol_engraver"
+      \consists "Pitch_squash_engraver"
+    }
+  }
+}
+@end lilypond
+
+@noindent
+それから、@code{Staff_symbol_engraver} が譜表を加え
+
+@lilypond[quote,ragged-right]
+\include "engraver-example.ily"
+
+\score {
+  \topVoice
+  \layout {
+    \context {
+      \Voice
+      \remove "Stem_engraver"
+      \remove "Phrasing_slur_engraver"
+      \remove "Slur_engraver"
+      \remove "Script_engraver"
+      \remove "Beam_engraver"
+      \remove "Auto_beam_engraver"
+    }
+    \context {
+      \Staff
+      \remove "Accidental_engraver"
+      \remove "Key_engraver"
+      \remove "Clef_engraver"
+      \remove "Bar_engraver"
+      \consists "Pitch_squash_engraver"
+      \remove "Time_signature_engraver"
+    }
+  }
+}
+@end lilypond
+
+@noindent
+@code{Clef_engraver} が譜表の参照位置を定義し
+
+@lilypond[quote,ragged-right]
+\include "engraver-example.ily"
+
+\score {
+  \topVoice
+  \layout {
+    \context {
+      \Voice
+      \remove "Stem_engraver"
+      \remove "Phrasing_slur_engraver"
+      \remove "Slur_engraver"
+      \remove "Script_engraver"
+      \remove "Beam_engraver"
+      \remove "Auto_beam_engraver"
+    }
+    \context {
+      \Staff
+      \remove "Accidental_engraver"
+      \remove "Key_engraver"
+      \remove "Bar_engraver"
+      \remove "Time_signature_engraver"
+    }
+  }
+}
+@end lilypond
+
+@noindent
+@code{Stem_engraver} が棒 (ステム) を付け加えます。
+
+@lilypond[quote,ragged-right]
+\include "engraver-example.ily"
+
+\score {
+  \topVoice
+  \layout {
+    \context {
+      \Voice
+      \remove "Phrasing_slur_engraver"
+      \remove "Slur_engraver"
+      \remove "Script_engraver"
+      \remove "Beam_engraver"
+      \remove "Auto_beam_engraver"
+    }
+    \context {
+      \Staff
+      \remove "Accidental_engraver"
+      \remove "Key_engraver"
+      \remove "Bar_engraver"
+      \remove "Time_signature_engraver"
+    }
+  }
+}
+@end lilypond
+
+@noindent
+@code{Stem_engraver} はやって来るすべての音符の玉 (ノート ヘッド) について知@c
+らされます。1 つの音符の玉 (あるいは和音の場合は複数の音符の玉) が現れるたび@c
+に、ステム オブジェクトが作成され、音符の玉に接続されます。さらにビーム (ス@c
+テムとステムをつなぐ横棒)、スラー、アクセント、臨時記号、小節線 (小節と小節@c
+を区切る縦線)、拍子記号、調号のためのエングラーバを付け加えるによって、我々@c
+は完全な楽譜を手に入れることができます。
+
+@lilypond[quote,ragged-right]
+\include "engraver-example.ily"
+\score { \topVoice }
+@end lilypond
+
+@cindex polyphony
+@cindex engraving multiple voices
+@cindex contexts
+
+このシステムは単旋律の音楽に対してはうまく機能しますが、多声部音楽に対しては@c
+どうでしょうか?多声部表記では、多くの声部 (ボイス) が 1 つの譜表を共有します。
+
+@lilypond[quote,ragged-right]
+\include "engraver-example.ily"
+\new Staff << \topVoice \\ \botVoice >>
+@end lilypond
+
+このような場合、臨時記号と譜表は共有されますが、ステム、スラー、ビームなどは@c
+各声部が単独で持ちます。そのため、エングラーバはグループ化されるべきです。音@c
+符の玉、ステム、スラーなどのためのエングラーバは @q{Voice context} (ボイス 
+コンテキスト) と呼ばれるグループに入れられ、一方の調子、臨時記号、小節線など@c
+のためのエングラーバは @q{Staff context} (譜表コンテキスト) とグループに入れ@c
+られます。多声部音楽の場合、単一の譜表コンテキストには複数のボイス コンテキ@c
+ストが含まれます。同様に、複数の譜表コンテキストは単一の楽譜 (Score) コンテ@c
+キストになり得ます。楽譜コンテキストは最上位の表記コンテキストです。
+
+
+@seealso
+内部リファレンス: @rinternals{Contexts}.
+
+
+@lilypond[quote,ragged-right]
+\include "engraver-example.ily"
+\score {
+   <<
+      \new Staff << \topVoice \\ \botVoice >>
+      \new Staff << \pah \\ \hoom >>
+   >>
+}
+@end lilypond
+
+
+@node Music representation
+@unnumberedsubsec Music representation
+
+@cindex syntax
+@cindex recursive structures
+
+概念上、高レベル フォーマット システムのための入力フォーマットは内容を抽象的@c
+に記述するものになります。このケースでは、内容は音楽自体になります。これは手@c
+に負えない問題に見えます: どうやったら我々は音楽の本質を定義できるでしょう@c
+か?その答えを見つけようとする代わりに、我々はその問題を逆転させました。我々@c
+は楽譜を譜刻する能力を持つプログラムを書き、そのフォーマットができる限りすっ@c
+きりしたものになるよう調整します。これ以上フォーマットを減らすことができない@c
+という状態になったとき、当然のことながら我々に残されているのは内容自体になり@c
+ます。我々のプログラムは音楽ドキュメントの形式定義として機能します。
+
+さらに、構文が LilyPond のユーザ インタフェイスになっているため、
+
+@example
+@{
+  c'4 d'8
+@}
+@end example
+
+とタイプだけで、4 分音符の C1 (ミドル C (=ド)) と 8 分音符の D1 (ミドル C の@c
+上の D (=レ)) になります。
+
+@lilypond[quote]
+{
+  c'4 d'8
+}
+@end lilypond
+
+@warning{訳者: C = ド, D = レ, E = ミ, F = ファ, G = ソ, A = ラ, B = シ で@c
+す。LilyPond では音符を「ドレミ〜」ではなく "CDE~" として捉えることが必須なの@c
+で、今後は音符をアルファべット表記にします。}
+
+小さなスケールでは、そのような構文は簡単に使用できます。大きなスケールでは、@c
+構文はさらに構造を持つ必要があります。そうしなければ、どうやったらあなたはシ@c
+ンフォニーやオペラのような複雑な楽譜に取り組めるでしょうか?構造は音楽表現法@c
+というコンセプトによって形成されます: 小さな音楽の断片を組み合わせて大きな音@c
+楽にすることによって、より複雑な音楽を表すことができるようになります。例を挙@c
+げます。
+
+@lilypond[quote,verbatim,fragment,relative=1]
+f4
+@end lilypond
+
+@noindent
+同時進行の音符はそれらを @code{<<} と @code{>>} で囲むことによって構築できます:
+
+
+@example
+<<c4 d4 e4>>
+@end example
+
+@lilypond[quote,fragment,relative=1]
+\new Voice { <<c4 d4 e>> }
+@end lilypond
+
+@noindent
+この音楽表現を中括弧 @code{@{@tie{}@dots{}@tie{}@}} で囲むことによってシークエ@c
+ンスの中に入れることができます:
+
+@example
+@{ f4 <<c4 d4 e4>> @}
+@end example
+
+@lilypond[quote,relative=1,fragment]
+{ f4 <<c d e4>> }
+@end lilypond
+
+@noindent
+上記もまた音楽表現の 1 つなので、@code{<<}, @code{@bs{}@bs{}}, and @code{>>} 
+を使ってそれを再び他の同時進行の音楽表現 (2 分音符) と組み合わせることもでき@c
+ます:
+
+@example
+@code{<< g2 \\ @{ f4 <<c4 d4 e4>> @} >>}
+@end example
+
+
+@lilypond[quote,fragment,relative=2]
+\new Voice { << g2 \\ { f4 <<c d e>> } >> }
+@end lilypond
+
+このような再帰的な構造はさっぱりと、かつ、しっかりした形式でコンテキスト フ@c
+リー文法で記すことができます。コード解析もまたこの文法から生成されます。言い換@c
+えると、LilyPond の構文ははっきりと明快に定義されます。
+
+ユーザが LilyPond に取り組むときに、ユーザがその時間の大半で見て、扱うものは@c
+ユーザ インタフェイスと構文です。それらのある部分は好みの問題であり、多くの議@c
+論の対象にもなるものです。好みについて議論することは有意義なことですが、それほ@c
+ど生産的なことではありません。LilyPond という大きな世界の中で、入力構文の重要@c
+性は小さいのです: さっぱりとした構文をでっちあげることは簡単ですが、見苦しくな@c
+いフォーマット コードを作成することはとても難しいのです。このことは、それぞれ@c
+のコンポーネントの行数をカウントすることによっても実証されます: 解析と表記のた@c
+めのコンポーネントはソース コード全体の 10 % にも達しません。
+
+
+@node Example applications
+@unnumberedsubsec Example applications
+
+@cindex simple examples
+@cindex examples, simple
+
+我々はどのように譜刻の技術をコンピュータ プログラムの中に凝縮するかという実験@c
+として LilyPond を開発してきました。重労働のおかげで、今やこのプログラムは有用@c
+な働きを行うのに使用できるようになりました。非常に簡単な利用例は音符を譜刻する@c
+ことです。
+
+@lilypond[quote,relative=1]
+{
+  \time 2/4
+  c4 c g'4 g a4 a g2
+}
+@end lilypond
+
+@noindent
+コード ネームと歌詞を加えることによって、我々はリード譜を得ます。
+
+@lilypond[quote,ragged-right]
+<<
+   \chords { c2 c f2 c }
+   \new Staff
+   \relative c' {
+     \time 2/4
+     c4 c g' g a a g2
+   }
+   \addlyrics { twin -- kle twin -- kle lit -- tle star }
+>>
+@end lilypond
+
+さらに、多声部表記とピアノ譜を譜刻することもできます。以下の例はいくつかのより@c
+風変わりな構成を組み合わせています。
+
+@lilypond[quote]
+\header {
+  title = "Screech and boink"
+  subtitle = "Random complex notation"
+  composer = "Han-Wen Nienhuys"
+}
+
+\score {
+  \context PianoStaff <<
+    \new Staff = "up" {
+      \time 4/8
+      \key c \minor
+      << {
+        \revert Stem #'direction
+        \change Staff = down
+        \set subdivideBeams = ##t
+        g16.[
+          \change Staff = up
+          c'''32
+          \change Staff = down
+          g32
+          \change Staff = up
+          c'''32
+          \change Staff = down
+          g16]
+        \change Staff = up
+        \stemUp
+        \set followVoice = ##t
+        c'''32([ b''16 a''16 gis''16 g''32)]
+      } \\ {
+        s4 \times 2/3 { d'16[ f' g'] } as'32[ b''32 e'' d'']
+      } \\ {
+        s4 \autoBeamOff d''8.. f''32
+      } \\ {
+        s4 es''4
+      } >>
+    }
+
+    \new Staff = "down" {
+      \clef bass
+      \key c \minor
+      \set subdivideBeams = ##f
+      \override Stem  #'french-beaming = ##t
+      \override 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
+        <cis, e, gis, b, cis>4\arpeggio
+      }
+    >> }
+  >>
+  \midi {
+    \context {
+      \Score
+      tempoWholesPerMinute = #(ly:make-moment 60 8)
+    }
+  }
+  \layout {
+    \context {
+      \Staff
+      \consists Horizontal_bracket_engraver
+    }
+  }
+}
+@end lilypond
+
+上で示した楽譜の断片はすべて手作業で作成されていました。しかしながら、必ずしも@c
+手作業で行う必要はありません。フォーマット エンジンの大部分は自動化されている@c
+ため、その出力を音楽を操作する他のプログラムに供することができます。例えば、音@c
+楽の断片のデータベースをウェブサイトやマルチメディア プレゼンテーションで使用@c
+する画像に変換するために使用することもできます。
+
+このマニュアルも利用例です: 入力フォーマットはテキストなので、容易に他のテキスト
+ベースのフォーマット -- 例えば、@LaTeX{}, HTML, このマニュアルの場合は 
+Texinfo -- に埋め込むことができます。ある特別なプログラムによって入力断片を音@c
+楽イメージに置き換えることができ、それによって PDF や HTML の出力ファイルとい@c
+う結果を得ることができます。これはドキュメントの中で音楽とテキストを混在させる@c
+ことを容易にします。
+
+
+
+@node About the documentation
+@section About the documentation
+
+この節では、このドキュメントの各部分について説明します。
+
+@cindex Learning Manual
+@cindex Music Glossary
+@cindex Notation Reference
+@cindex Application Usage
+@cindex Snippet List
+@cindex Internals Reference
+
+@c leave these lines wrapping around.  It's some texinfo 4.12 thing. -gp
+@c This is actually a limitation of texi2html. -jm
+@menu
+* About the Learning Manual::  このマニュアルは表記を作成する方法について丁寧@c
+な説明をしながら LilyPond についての紹介を行います。
+* About the Music Glossary::  このマニュアルは音楽用語についての説明を行い、そ@c
+れらの用語の他の言語への訳語を提供します。
+* About the Notation Reference::  このマニュアルはこのドキュメントの主要部分で@c
+す。表記を作成する方法についての詳細な情報を提供します。このマニュアルは読者が@c
+学習マニュアルでカバーされている基本的な内容を知っていて、音楽用語集に書かれて@c
+いる英語の音楽用語に馴染んでいるものと仮定しています。
+* About the Application Usage::  ここでは実際のプログラムとオペレーティング シ@c
+ステム特有の問題について議論します。
+* About the Snippet List::  これは短い LilyPond の例のコレクションです。
+* About the Internals Reference::  このドキュメントは LilyPond の内部構造体に@c
+ついての参照情報を提供します。調整を行うのに LilyPond の内部構造体についての知@c
+識が必要です。
+* Other documentation::  ここにはこのドキュメントの他の部分 -- ニュースやメール 
+アーカイブなど -- がいくつかあります。
+@end menu
+
+
+@node About the Learning Manual
+@unnumberedsubsec About the Learning Manual
+
+@cindex Learning Manual
+
+本書は LilyPond の学習の始め方を説明し、同時にいくつかの鍵となるコンセプトを簡@c
+単な用語で説明します。あなたは本書を一読すべきです。
+
+各セクションの最後には@strong{参照}というパラグラフがあり、そこには他のセクシ@c
+ョンへの参照があります: 初めて本書を読むときはこれらの参照を追うべきではありま@c
+せん。あなたが学習マニュアルをすべて読み終えたとき、いくつかのセクションを読み@c
+返し、さらに参照を追おうと思うかもしれません。
+
+@itemize
+
+@item
+
+@ref{Introduction}: LilyPond のバックグランドと最終目標について説明します。
+
+@item
+
+@ref{Tutorial}: 音楽を譜刻するためのやさしい入門を提供します。初めて LilyPond 
+を使うユーザはここから始めるべきです。
+
+@item
+
+@ref{Fundamental concepts}: LilyPond ファイル フォーマットについてのいくつかの@c
+一般的なコンセプトを説明します。あるコマンドを置くべき場所がわからない場合は、@c
+この章を読んでください!
+
+@item
+
+@ref{Tweaking output}: LilyPond が作り出すデフォルトの譜刻を変更する方法を示し@c
+ます。
+
+@item
+
+@ref{Working on LilyPond projects}: LilyPond の実際的な使用といくつかの一般的@c
+な問題を回避するための方法について議論します。大きなプロジェクトに取り組む前に@c
+この章を読んでください!
+
+@end itemize
+
+さらに、学習マニュアルは付録 -- 一読するのを推奨しない部分 -- も保持していま@c
+す。それらは後で読み直すときに有用になるかもしれません:
+
+@itemize
+
+@item
+
+@ref{Templates}: コンパイルの準備が整っている LilyPond 入力を示します。ある@c
+テンプレートをファイルにカット&ペーストし、表記を追加するだけで完了です!
+
+@item
+
+@ref{Scheme tutorial}: Scheme の簡単な紹介を提供します。Scheme は音楽関数が使@c
+用するプログラミング言語です。この付録は高度な調整を行うための資料です。多くの@c
+ユーザは Scheme に触れる必要はまったくありません。
+
+@end itemize
+
+@node About the Music Glossary
+@unnumberedsubsec About the Music Glossary
+
+@cindex Music Glossary
+@cindex idiom
+@cindex jargon
+@cindex terminology
+@cindex foreign languages
+@cindex language
+
+@rglosnamed{Top,Music glossary}
+は音楽用語についての説明を行い、それらの用語のさまざまな言語への訳語を提供しま@c
+す。あなたが音楽表記や音楽用語に馴れていないのなら (特にあなたが英語圏の人でな@c
+いのなら)、用語集を引くことはとても役に立ちます。
+
+
+@node About the Notation Reference
+@unnumberedsubsec About the Notation Reference
+
+@cindex Notation Reference
+@cindex appendices
+@cindex reference charts
+@cindex charts, reference
+
+本書は表記を作り出すすべての LilyPond コマンドについての説明を行います。本書@c
+は、読者が学習マニュアルを読み終えて、LilyPond のコンセプトに馴染みを持ってい@c
+るものと仮定しています。
+
+@itemize
+
+@item
+
+@ruser{Musical notation}:
+は表記概念ごとにグループ化されたテーマについて議論します。このセクションでは、@c
+ほとんどすべての表記プロジェクトで有用な基本的な表記についての詳細を提供します。
+
+@item
+
+@ruser{Specialist notation}:
+は表記概念ごとにグループ化されたテーマについて議論します。このセクションでは、@c
+ある特定の楽器 (またはボーカル) グループにとってのみ有用な特別な表記についての@c
+詳細を提供します。
+
+@item
+
+@ruser{General input and output}:
+は LilyPond 入力ファイルと出力の制御についての一般的な情報について議論します。
+
+@item
+
+@ruser{Spacing issues}:
+は出力全般に影響を与える事柄  -- 用紙サイズの選択や改ページの指定など -- につ@c
+いて議論します。
+
+@item
+
+@ruser{Changing defaults}:
+LilyPond があなたの望む表記を作り出すように調整する方法について説明します。
+
+@item
+
+@ruser{Interfaces for programmers}:
+Scheme を用いて音楽関数を作成する方法について説明します。
+
+@end itemize
+
+表記リファレンスには有用な参照表を持つ付録もあります。
+
+@itemize
+
+@item
+
+@ruser{Literature list}:
+には、表記や譜刻についてもっと知りたい人たち向けのリファレンス ブックのセット@c
+があります。
+
+@item
+
+@ruser{Notation manual tables}:
+は、コード名、MIDI 命令、カラー名のリスト、Feta フォントについての表のセットで@c
+す。
+
+@item
+
+@ruser{Cheat sheet}:
+は最も一般的な LilyPond コマンドの簡易リファレンスです。
+
+@item
+
+@ruser{LilyPond command index}:
+すべての LilyPond @code{@bs{}command} のインデックスです。
+
+@item
+
+@ruser{LilyPond index}:
+すべてを網羅する完全なインデックスです。
+
+@end itemize
+
+
+@node About the Application Usage
+@unnumberedsubsec About the Application Usage
+
+@cindex Application Usage
+@cindex integrating LilyPond with other programs
+
+本書はプログラムを実行する方法、LilyPond 表記を他のプログラムに統合する方法に@c
+ついて説明します。
+
+@itemize
+
+@item
+
+@rprogram{Install}:
+LilyPond をインストールする方法について、もし望むのならばコンパイルの仕方も含@c
+めて、説明します。
+
+@item
+
+@rprogram{Setup}:
+あなたのコンピュータを LilyPond の使用に合わせて最適にコンフィグレーションする 
+-- ある特定のテキスト エディタによって提供される特別な環境を使用するなど -- 方@c
+法について説明します。
+
+@item
+
+@rprogram{Running LilyPond}:
+LilyPond とその援助プログラムを実行する方法を示します。さらに、このセクション@c
+は入力ファイルを LilyPond の以前のバージョンからアップグレードする方法について@c
+説明します。
+
+@item
+
+@rprogram{LilyPond-book}:
+このマニュアルのような内部に音楽の例を持つドキュメントを作成する方法についての@c
+詳細を説明します。
+@c explains the details behind creating documents with in-line music
+@c examples, like this manual.
+
+@item
+
+@rprogram{Converting from other formats}:
+変換プログラムを実行する方法について説明します。それらのプログラムは LilyPond 
+パッケージで提供され、さまざまな音楽フォーマットを @code{.ly} フォーマットに変@c
+換します。
+
+@end itemize
+
+
+@node About the Snippet List
+@unnumberedsubsec About the Snippet List
+
+@cindex snippets
+@cindex LSR
+@cindex Snippet List
+@cindex LilyPond Snippet Repository
+
+@rlsrnamed{Top,LilyPond Snippet List}: これは 
+@uref{http://lsr@/.dsi@/.unimi@/.it,LilyPond Snippet Repository}
+ (LSR) から選んだ LilyPond 断片のセットです。すべての断片はパブリック ドメイン@c
+の中にあります。
+
+このドキュメントは LSR のサブセットそのものではないことに注意してください。LSR 
+は安定板の LilyPond バージョンを使用するため、開発中の新しい機能を実演する断片は 
+LSR とは別に追加されなければなりません。それらは LilyPond ソース ツリーの中の 
+@file{input/new/} の中に保存されます。
+
+表記リファレンスの各サブセクションのための断片のリストは @strong{参照}部分から@c
+もリンクされています。
+
+
+@node About the Internals Reference
+@unnumberedsubsec About the Internals Reference
+
+@cindex Internals Reference
+
+@rinternalsnamed{Top,Internals Reference}: これは幾重にもリンクし合った HTML 
+ページのセットです。本書はすべての LilyPond クラス、オブジェクト、関数について@c
+の具体的な詳細をドキュメント化しています。本書はソース コードの中にあるフォー@c
+マット定義から直接作り出されます。
+
+内部的に使用されるフォーマット機能はほとんどすべてユーザが直接利用できます。例@c
+えば、太さや距離などを制御するたいていの変数は入力ファイルの中で変更することが@c
+できます。膨大な数のフォーマット オプションがあり、それらすべてがこのドキュメ@c
+ントの中で記述されています。表記リファレンスの各セクションには@b{参照}サブ セ@c
+クションがあり、本書を参照しています。HTML ドキュメントでは、@b{参照}サブ セク@c
+ションの中にクリック可能なリンクがあります。
+
+
+@node Other documentation
+@unnumberedsubsec Other documentation
+
+とても有益であるかもしれない他の情報源がいくつかあります。
+
+@itemize
+
+@item
+
+@ifhtml
+@ifset bigpage
+@uref{../topdocs/NEWS.html,News}:
+@end ifset
+@ifclear bigpage
+@uref{../../topdocs/NEWS.html,News}:
+@end ifclear
+@end ifhtml
+@ifnothtml
+News:
+@end ifnothtml
+これは前のバージョンの LilyPond から後に付け加えられた重要な変更と新しい機能に@c
+ついての要約です。
+
+@item
+
+@uref{http://lists.gnu.org/archive/html/lilypond-user/, 
+lilypond-user メーリングリスト アーカイブ}: これはこれまでにユーザ リストに送@c
+られてきた email のコレクションです。多くの質問が何度も繰り返されています。疑@c
+問を持った場合、その答えはこのアーカイブの中で見つかるかもしれません。
+
+@item
+
+@uref{http://lists.gnu.org/archive/html/lilypond-devel/, 
+lilypond-devel メーリングリスト アーカイブ}: これはこれまでに開発者のリストに@c
+送られてきた email のコレクションです。ここでの議論はより専門的です。lilypond 
+内部についての高度な疑問を持った場合、その答えはこのアーカイブの中で見つかるか@c
+もしれません。
+
+@item
+
+埋め込まれている楽譜の断片: 楽譜の断片を埋め込まれたすべての HTML ドキュメント@c
+では、楽譜の画像をクリックすることによって、その画像を作り出すのに使用された 
+LilyPond 入力を閲覧することができます。
+
+@item
+
+初期化ファイル: ここで言及しているドキュメント ファイルの置き場所はシステムに@c
+よってさまざまです。しばしばこのマニュアルは初期化ファイルと例のファイルを参照@c
+します。このマニュアルを通じて、ソース アーカイブのトップ ディレクトリ下にある@c
+入力ファイルを参照します。@c
+@c Throughout this manual, we refer to input files relative to the top-directory 
+@c of the source archive.@c
+例えば、@file{input/@/lsr/@/dirname/@/bla@/.ly} はファイル 
+@file{lilypond@/2.x.y/@/input/@/lsr/@/dirname/@/bla@/.ly} を参照するかもしれま@c
+せん。@c
+UNIX プラットフォーム向けのバイナリ パッケージでは、通常、このドキュメントと例は 
+@file{/usr/@/share/@/doc/@/lilypond/} 下のどこかで見つかります。初期化ファイル 
+-- 例えば、@file{scm/@/lily@/.scm} や @file{ly/@/engraver@/-init@/.ly} -- は、@c
+通常、ディレクトリ @file{/usr/@/share/@/lilypond/} の中で見つかります。詳細は 
+@ref{Other sources of information} を参照してください。
+
+@end itemize
+
diff --git a/Documentation/ja/user/lilypond-book.itely b/Documentation/ja/user/lilypond-book.itely
new file mode 100644 (file)
index 0000000..cd1209a
--- /dev/null
@@ -0,0 +1,1077 @@
+@c -*- coding: utf-8; mode: texinfo; documentlanguage: ja -*-
+@c This file is part of lilypond-program.tely
+@ignore
+    Translation of GIT committish: 499a511d4166feaada31114e097f86b5e0c56421
+
+    When revising a translation, copy the HEAD committish of the
+    version that you are working on.  See TRANSLATION for details.
+@end ignore
+
+@c \version "2.12.0"
+
+@c Translators: Yoshiki Sawada
+@c Translation status: post-GDP
+
+@c Note: keep this node named so that `info lilypond-book' brings you here.
+@node LilyPond-book
+@chapter @command{lilypond-book}: Integrating text and music
+
+@untranslated
+
+If you want to add pictures of music to a document, you can simply do it
+the way you would do with other types of pictures.  The pictures are
+created separately, yielding PostScript output or PNG images, and those
+are included into a @LaTeX{} or HTML document.
+
+@command{lilypond-book} provides a way to automate this process: This
+program extracts snippets of music from your document, runs
+@command{lilypond} on them, and outputs the document with pictures
+substituted for the music.  The line width and font size definitions for
+the music are adjusted to match the layout of your document.
+
+This is a separate program from @command{lilypond} itself, and is run
+on the command line; for more information, see @ref{Command-line
+usage}.  If you have MacOS 10.3 or 10.4 and you have trouble running
+@code{lilypond-book}, see @ref{Setup for MacOS X}.
+
+This procedure may be applied to @LaTeX{}, HTML, Texinfo or DocBook
+documents.
+
+@cindex texinfo
+@cindex latex
+@cindex texinfo
+@cindex texi
+@cindex html
+@cindex docbook
+@cindex documents, adding music to
+@cindex HTML, music in
+@cindex Texinfo, music in
+@cindex DocBook, music in
+@cindex @LaTeX{}, music in
+
+@menu
+* An example of a musicological document::
+* Integrating music and text::
+* Music fragment options::
+* Invoking lilypond-book::
+* Filename extensions::
+* Alternate methods of mixing text and music::
+@end menu
+
+
+@node An example of a musicological document
+@section An example of a musicological document
+
+@untranslated
+
+@cindex musicology
+Some texts contain music examples.  These texts are musicological
+treatises, songbooks, or manuals like this.  Such texts can be made by
+hand, simply by importing a PostScript figure into the word processor.
+However, there is an automated procedure to reduce the amount of work
+involved in HTML, @LaTeX{}, Texinfo and DocBook documents.
+
+A script called @code{lilypond-book} will extract the music fragments,
+format them, and put back the resulting notation.  Here we show a small
+example for use with @LaTeX{}.  The example also contains explanatory
+text, so we will not comment on it further.
+
+@subheading Input
+
+@quotation
+@verbatim
+\documentclass[a4paper]{article}
+
+\begin{document}
+
+Documents for \verb+lilypond-book+ may freely mix music and text.
+For example,
+
+\begin{lilypond}
+\relative c' {
+  c2 g'2 \times 2/3 { f8 e d } c'2 g4
+}
+\end{lilypond}
+
+Options are put in brackets.
+
+\begin[fragment,quote,staffsize=26,verbatim]{lilypond}
+  c'4 f16
+\end{lilypond}
+
+Larger examples can be put into a separate file, and introduced with
+\verb+\lilypondfile+.
+
+\lilypondfile[quote,noindent]{screech-boink.ly}
+
+(If needed, replace screech-boink.ly by any .ly file you put in the same
+directory as this file.)
+
+\end{document}
+@end verbatim
+@end quotation
+
+@subheading Processing
+
+Save the code above to a file called @file{lilybook.lytex}, then in a
+terminal run
+
+@c keep space after @version{} so TeX doesn't choke
+@example
+lilypond-book --output=out --pdf lilybook.lytex
+@emph{lilypond-book (GNU LilyPond) @version{} }
+@emph{Reading lilybook.lytex...}
+@emph{..lots of stuff deleted..}
+@emph{Compiling lilybook.tex...}
+cd out
+pdflatex lilybook
+@emph{..lots of stuff deleted..}
+xpdf lilybook
+@emph{(replace @command{xpdf} by your favorite PDF viewer)}
+@end example
+
+Running @command{lilypond-book} and @command{latex} creates a lot of
+temporary files, which would clutter up the working directory.  To
+remedy this, use the @code{--output=@var{dir}} option.  It will create
+the files in a separate subdirectory @file{dir}.
+
+Finally the result of the @LaTeX{} example shown above.@footnote{This
+tutorial is processed with Texinfo, so the example gives slightly
+different results in layout.}  This finishes the tutorial section.
+
+@page
+
+@subheading Output
+
+Documents for @command{lilypond-book} may freely mix music and text.
+For example,
+
+@lilypond
+\relative c' {
+  c2 g'2 \times 2/3 { f8 e d } c'2 g4
+}
+@end lilypond
+
+Options are put in brackets.
+
+@lilypond[fragment,quote,staffsize=26,verbatim]
+c'4 f16
+@end lilypond
+
+Larger examples can be put into a separate file, and introduced with
+@code{\lilypondfile}.
+
+@lilypondfile[quote,noindent]{screech-boink.ly}
+
+
+@page
+
+@node Integrating music and text
+@section Integrating music and text
+
+@untranslated
+
+Here we explain how to integrate LilyPond with various output formats.
+
+@menu
+* LaTeX::
+* Texinfo::
+* HTML::
+* DocBook::
+@end menu
+
+@node LaTeX
+@subsection @LaTeX{}
+
+@untranslated
+
+@LaTeX{} is the de-facto standard for publishing layouts in the exact
+sciences.  It is built on top of the @TeX{} typesetting engine,
+providing the best typography available anywhere.
+
+See
+@uref{http://@/www@/.ctan@/.org/@/tex@/-archive/@/info/@/lshort/@/english/,
+@emph{The Not So Short Introduction to @LaTeX{}}} for an overview on how
+to use @LaTeX{}.
+
+Music is entered using
+
+@example
+\begin[options,go,here]@{lilypond@}
+  YOUR LILYPOND CODE
+\end@{lilypond@}
+@end example
+
+@noindent
+or
+
+@example
+\lilypondfile[options,go,here]@{@var{filename}@}
+@end example
+
+@noindent
+or
+
+@example
+\lilypond@{ YOUR LILYPOND CODE @}
+@end example
+
+Additionally, @code{\lilypondversion} displays the current version
+of lilypond.
+Running @command{lilypond-book} yields a file that can be further
+processed with @LaTeX{}. 
+
+We show some examples here.  The @code{lilypond} environment
+
+@example
+\begin[quote,fragment,staffsize=26]@{lilypond@}
+  c' d' e' f' g'2 g'2
+\end@{lilypond@}
+@end example
+
+@noindent
+produces
+
+@lilypond[quote,fragment,staffsize=26]
+c' d' e' f' g'2 g'2
+@end lilypond
+
+The short version
+
+@example
+\lilypond[quote,fragment,staffsize=11]@{<c' e' g'>@}
+@end example
+
+@noindent
+produces
+
+@lilypond[quote,fragment,staffsize=11]{<c' e' g'>}
+
+@noindent
+Currently, you cannot include @code{@{} or @code{@}} within
+@code{\lilypond@{@}}, so this command is only useful with the
+@code{fragment} option.
+
+The default line width of the music will be adjusted by examining the
+commands in the document preamble, the part of the document before
+@code{\begin@{document@}}.  The @command{lilypond-book} command sends
+these to @LaTeX{} to find out how wide the text is.  The line width for
+the music fragments is then adjusted to the text width.  Note that this
+heuristic algorithm can fail easily; in such cases it is necessary to
+use the @code{line-width} music fragment option.
+
+@cindex titling and lilypond-book
+@cindex \header in @LaTeX{} documents
+
+Each snippet will call the following macros if they have been defined by
+the user:
+
+@itemize @bullet
+@item @code{\preLilyPondExample} called before the music,
+
+@item @code{\postLilyPondExample} called after the music,
+
+@item @code{\betweenLilyPondSystem[1]} is called between systems if
+@code{lilypond-book} has split the snippet into several PostScript
+files.  It must be defined as taking one parameter and will be
+passed the number of files already included in this snippet.
+The default is to simply insert a @code{\linebreak}.
+@end itemize
+
+@ignore
+Broken stuff.  :(
+
+@cindex Latex, feta symbols
+@cindex fetachar
+
+To include feta symbols (such as flat, segno, etc) in a LaTeX
+document, use @code{\input@{titledefs@}}
+
+@example
+\documentclass[a4paper]@{article@}
+
+\input@{titledefs@}
+
+\begin@{document@}
+
+\fetachar\fetasharp
+
+\end@{document@}
+@end example
+
+The font symbol names are defined in the file feta20.tex; to find
+the location of this file, use the command
+
+@example
+kpsewhich feta20.tex
+@end example
+
+@end ignore
+
+@snippets
+
+Sometimes it is useful to display music elements (such as ties and slurs)
+as if they continued after the end of the fragment.  This can be done by
+breaking the staff and suppressing inclusion of the rest of the LilyPond
+output.
+
+In @LaTeX{}, define @code{\betweenLilyPondSystem} in such a way that
+inclusion of other systems is terminated once the required number of
+systems are included.  Since @code{\betweenLilypondSystem} is first
+called @emph{after} the first system, including only the first system
+is trivial.
+
+@example
+\def\betweenLilyPondSystem#1@{\endinput@}
+
+\begin[fragment]@{lilypond@}
+  c'1\( e'( c'~ \break c' d) e f\)
+\end@{lilypond@}
+@end example
+
+If a greater number of systems is requested, a @TeX{} conditional must
+be used before the @code{\endinput}.  In this example, replace @q{2} by
+the number of systems you want in the output,
+
+@example
+\def\betweenLilyPondSystem#1@{
+    \ifnum##1<2\else\endinput\fi
+@}
+@end example
+
+Remember that the definition of @code{\betweenLilyPondSystem} is
+effective until @TeX{} quits the current group (such as the @LaTeX{}
+environment) or is overridden by another definition (which is, in
+most cases, for the rest of the document).  To reset your
+definition, write
+
+@example
+\let\betweenLilyPondSystem\undefined
+@end example
+
+@noindent
+in your @LaTeX{} source.
+
+This may be simplified by defining a @TeX{} macro
+
+@example
+\def\onlyFirstNSystems#1@{
+    \def\betweenLilyPondSystem##1@{\ifnum##1<#1\else\endinput\fi@}
+@}
+@end example
+
+@noindent
+and then saying only how many systems you want before each fragment,
+
+@example
+\onlyFirstNSystems@{3@}
+\begin@{lilypond@}...\end@{lilypond@}
+\onlyFirstNSystems@{1@}
+\begin@{lilypond@}...\end@{lilypond@}
+@end example
+
+
+@seealso
+There are specific @command{lilypond-book} command line options and
+other details to know when processing @LaTeX{} documents, see
+@ref{Invoking lilypond-book}.
+
+
+@node Texinfo
+@subsection Texinfo
+
+@untranslated
+
+Texinfo is the standard format for documentation of the GNU project.  An
+example of a Texinfo document is this manual.  The HTML, PDF, and Info
+versions of the manual are made from the Texinfo document.
+
+In the input file, music is specified with
+
+@example
+@@lilypond[options,go,here]
+  YOUR LILYPOND CODE
+@@end lilypond
+@end example
+
+@noindent
+or
+
+@example
+@@lilypond[options,go,here]@{ YOUR LILYPOND CODE @}
+@end example
+
+@noindent
+or
+
+@example
+@@lilypondfile[options,go,here]@{@var{filename}@}
+@end example
+
+Additionally, @code{@@lilypondversion} displays the current version
+of lilypond.
+
+When @command{lilypond-book} is run on it, this results in a Texinfo
+file (with extension @file{.texi}) containing @code{@@image} tags for
+HTML, Info and printed output.  @command{lilypond-book} generates images
+of the music in EPS and PDF formats for use in the printed output, and
+in PNG format for use in HTML and Info output.
+
+We show two simple examples here.  A @code{lilypond} environment
+
+@example
+@@lilypond[fragment]
+c' d' e' f' g'2 g'
+@@end lilypond
+@end example
+
+@noindent
+produces
+
+@lilypond[fragment]
+c' d' e' f' g'2 g'
+@end lilypond
+
+The short version
+
+@example
+@@lilypond[fragment,staffsize=11]@{<c' e' g'>@}
+@end example
+
+@noindent
+produces
+
+@lilypond[fragment,staffsize=11]{<c' e' g'>}
+
+Contrary to @LaTeX{}, @code{@@lilypond@{...@}} does not generate an
+in-line image.  It always gets a paragraph of its own.
+
+
+@node HTML
+@subsection HTML
+
+@untranslated
+
+Music is entered using
+
+@example
+<lilypond fragment relative=2>
+\key c \minor c4 es g2
+</lilypond>
+@end example
+@noindent
+@command{lilypond-book} then produces an HTML file with appropriate image
+tags for the music fragments:
+
+@lilypond[fragment,relative=2]
+\key c \minor c4 es g2
+@end lilypond
+
+For inline pictures, use @code{<lilypond ... />}, where the options
+are separated by a colon from the music, for example
+
+@example
+Some music in <lilypond relative=2: a b c/> a line of text.
+@end example
+
+
+To include separate files, say
+
+@example
+<lilypondfile @var{option1} @var{option2} ...>@var{filename}</lilypondfile>
+@end example
+
+Additionally, @code{<lilypondversion/>} displays the current version
+of lilypond.
+
+
+@cindex titling in HTML
+@cindex preview image
+@cindex thumbnail
+
+@node DocBook
+@subsection DocBook
+
+@untranslated
+
+For inserting LilyPond snippets it is good to keep the conformity of our
+DocBook document, thus allowing us to use DocBook editors, validation
+etc. So we don't use custom tags, only specify a convention based on the
+standard DocBook elements.
+
+@subheading Common conventions
+
+For inserting all type of snippets we use the @code{mediaobject} and
+@code{inlinemediaobject} element, so our snippets can be formatted
+inline or not inline.  The snippet formatting options are always
+provided in the @code{role} property of the innermost element (see in
+next sections).  Tags are chosen to allow DocBook editors format the
+content gracefully.  The DocBook files to be processed with
+@command{lilypond-book} should have the extension @file{.lyxml}.
+
+@subheading Including a LilyPond file
+
+This is the most simple case.  We must use the @file{.ly} extension for
+the included file, and insert it as a standard @code{imageobject}, with
+the following structure:
+
+@example
+<mediaobject>
+  <imageobject>
+    <imagedata fileref="music1.ly" role="printfilename" />
+  </imageobject>
+</mediaobject>
+@end example
+
+Note that you can use @code{mediaobject} or @code{inlinemediaobject}
+as the outermost element as you wish.
+
+@subheading Including LilyPond code
+
+Including LilyPond code is possible by using a @code{programlisting},
+where the language is set to @code{lilypond} with the following
+structure:
+
+@example
+<inlinemediaobject>
+  <textobject>
+    <programlisting language="lilypond" role="fragment verbatim staffsize=16 ragged-right relative=2">
+\context Staff \with @{
+  \remove Time_signature_engraver
+  \remove Clef_engraver@}
+  @{ c4( fis) @}
+    </programlisting>
+  </textobject>
+</inlinemediaobject>
+@end example
+
+As you can see, the outermost element is a @code{mediaobject} or
+@code{inlinemediaobject}, and there is a @code{textobject} containing
+the @code{programlisting} inside.
+
+@subheading Processing the DocBook document
+
+Running @command{lilypond-book} on our @file{.lyxml} file will create a
+valid DocBook document to be further processed with @file{.xml}
+extension.  If you use
+@uref{http://@/dblatex@/.sourceforge@/.net@/,dblatex}, it will create a
+PDF file from this document automatically.  For HTML (HTML Help,
+JavaHelp etc.) generation you can use the official DocBook XSL
+stylesheets, however, it is possible that you have to make some
+customization for it.
+
+
+@node Music fragment options
+@section Music fragment options
+
+@untranslated
+
+In the following, a @q{LilyPond command} refers to any command described
+in the previous sections which is handled by @command{lilypond-book} to
+produce a music snippet.  For simplicity, LilyPond commands are only
+shown in @LaTeX{} syntax.
+
+Note that the option string is parsed from left to right; if an option
+occurs multiple times, the last one is taken.
+
+The following options are available for LilyPond commands:
+
+@table @code
+@item staffsize=@var{ht}
+Set staff size to @var{ht}, which is measured in points.
+
+@item ragged-right
+Produce ragged-right lines with natural spacing, i.e.,
+@code{ragged-right = ##t} is added to the LilyPond snippet.  This is the
+default for the @code{\lilypond@{@}} command if no @code{line-width}
+option is present.  It is also the default for the @code{lilypond}
+environment if the @code{fragment} option is set, and no line width is
+explicitly specified.
+
+@item noragged-right
+For single-line snippets, allow the staff length to be stretched to
+equal that of the line width, i.e., @code{ragged-right = ##f} is
+added to the LilyPond snippet.
+
+@item line-width
+@itemx line-width=@var{size}\@var{unit}
+Set line width to @var{size}, using @var{unit} as units.  @var{unit} is
+one of the following strings: @code{cm}, @code{mm}, @code{in}, or
+@code{pt}.  This option affects LilyPond output (this is, the staff
+length of the music snippet), not the text layout.
+
+If used without an argument, set line width to a default value (as
+computed with a heuristic algorithm).
+
+If no @code{line-width} option is given, @command{lilypond-book} tries to
+guess a default for @code{lilypond} environments which don't use the
+@code{ragged-right} option.
+
+@item notime
+Do not print the time signature, and turns off the timing (time signature,
+bar lines) in the score.
+
+@item fragment
+Make @command{lilypond-book} add some boilerplate code so that you can
+simply enter, say,
+
+@example
+c'4
+@end example
+
+@noindent
+without @code{\layout}, @code{\score}, etc.
+
+@item nofragment
+Do not add additional code to complete LilyPond code in music snippets.
+Since this is the default, @code{nofragment} is redundant normally.
+
+@item indent=@var{size}\@var{unit}
+Set indentation of the first music system to @var{size}, using
+@var{unit} as units. @var{unit} is one of the following strings:
+@code{cm}, @code{mm}, @code{in}, or @code{pt}.  This option affects
+LilyPond, not the text layout.
+
+@item noindent
+Set indentation of the first music system to zero.  This option affects
+LilyPond, not the text layout.  Since no indentation is the default,
+@code{noindent} is redundant normally.
+
+@item quote
+Reduce line length of a music snippet by @math{2*0.4}@dmn{in} and put
+the output into a quotation block.  The value @q{0.4@dmn{in}} can be
+controlled with the @code{exampleindent} option.
+
+@item exampleindent
+Set the amount by which the @code{quote} option indents a music snippet.
+
+@item relative
+@itemx relative=@var{n}
+Use relative octave mode.  By default, notes are specified relative to
+middle@tie{}C.  The optional integer argument specifies the octave of
+the starting note, where the default @code{1} is middle C.
+@code{relative} option only works when @code{fragment} option is set,
+so @code{fragment} is automatically implied by @code{relative},
+regardless of the presence of any @code{(no)fragment} option in the
+source.
+@end table
+
+LilyPond also uses @command{lilypond-book} to produce its own
+documentation.  To do that, some more obscure music fragment options are
+available.
+
+@table @code
+@item verbatim
+The argument of a LilyPond command is copied to the output file and
+enclosed in a verbatim block, followed by any text given with the
+@code{intertext} option (not implemented yet); then the actual music is
+displayed.  This option does not work well with @code{\lilypond@{@}} if
+it is part of a paragraph.
+
+If @code{verbatim} is used in a @code{lilypondfile} command, it is
+possible to enclose verbatim only a part of the source file.  If the
+source file contain a comment containing @samp{begin verbatim} (without
+quotes), quoting the source in the verbatim block will start after the
+last occurrence of such a comment; similarly, quoting the source verbatim
+will stop just before the first occurrence of a comment containing
+@samp{end verbatim}, if there is any.  In the following source file
+example, the music will be interpreted in relative mode, but the
+verbatim quote will not show the @code{relative} block, i.e.
+
+@example
+\relative c' @{ % begin verbatim
+  c4 e2 g4
+  f2 e % end verbatim
+@}
+@end example
+
+@noindent
+will be printed with a verbatim block like
+
+@example
+  c4 e2 g4
+  f2 e
+@end example
+
+@noindent
+If you would like to translate comments and variable names in verbatim
+output but not in the sources, you may set the environment variable
+@code{LYDOC_LOCALEDIR} to a directory path; the directory should
+contain a tree of @file{.mo} message catalogs with @code{lilypond-doc}
+as a domain.
+
+@item addversion
+(Only for Texinfo output.)  Prepend line @code{\version
+@@w@{"@@version@{@}"@}} to @code{verbatim} output.
+
+@item texidoc
+(Only for Texinfo output.)  If @command{lilypond} is called with the
+@option{--header=@/texidoc} option, and the file to be processed is
+called @file{foo@/.ly}, it creates a file @file{foo@/.texidoc} if there
+is a @code{texidoc} field in the @code{\header}.  The @code{texidoc}
+option makes @command{lilypond-book} include such files, adding its
+contents as a documentation block right before the music snippet.
+
+Assuming the file @file{foo@/.ly} contains
+
+@example
+\header @{
+  texidoc = "This file demonstrates a single note."
+@}
+@{ c'4 @}
+@end example
+
+@noindent
+and we have this in our Texinfo document @file{test.texinfo}
+
+@example
+@@lilypondfile[texidoc]@{foo.ly@}
+@end example
+
+@noindent
+the following command line gives the expected result
+
+@example
+lilypond-book --pdf --process="lilypond \
+  -dbackend=eps --header=texidoc" test.texinfo
+@end example
+
+Most LilyPond test documents (in the @file{input} directory of the
+distribution) are small @file{.ly} files which look exactly like this.
+
+For localization purpose, if the Texinfo document contains
+@code{@@documentlanguage @var{LANG}} and @file{foo@/.ly} header
+contains a @code{texidoc@var{LANG}} field, and if @command{lilypond}
+is called with @option{--header=@/texidoc@var{LANG}}, then
+@file{foo@/.texidoc@var{LANG}} will be included instead of
+@file{foo@/.texidoc}.
+
+@item lilyquote
+(Only for Texinfo output.)  This option is similar to quote, but only
+the music snippet (and the optional verbatim block implied by
+@code{verbatim} option) is put into a quotation block.  This option is
+useful if you want to @code{quote} the music snippet but not the
+@code{texidoc} documentation block.
+
+@item doctitle
+(Only for Texinfo output.) This option works similarly to
+@code{texidoc} option: if @command{lilypond} is called with the
+@option{--header=@/doctitle} option, and the file to be processed is
+called @file{foo@/.ly} and contains a @code{doctitle} field in the
+@code{\header}, it creates a file @file{foo@/.doctitle}.  When
+@code{doctitle} option is used, the contents of @file{foo@/.doctitle},
+which should be a single line of @var{text}, is inserted in the
+Texinfo document as @code{@@lydoctitle @var{text}}.
+@code{@@lydoctitle} should be a macro defined in the Texinfo document.
+The same remark about @code{texidoc} processing with localized
+languages also applies to @code{doctitle}.
+
+@item nogettext
+(Only for Texinfo output.) Do not translate comments and variable
+names in the snippet quoted verbatim.
+
+@item printfilename
+If a LilyPond input file is included with @code{\lilypondfile}, print
+the file name right before the music snippet.  For HTML output, this
+is a link.  Only the base name of the file is printed, i.e. the
+directory part of the file path is stripped.
+
+@item fontload
+This option includes fonts in all of the generated EPS-files for this
+snippet.  This should be used if the snippet uses any font that @LaTeX{}
+cannot find on its own.
+
+@end table
+
+
+@node Invoking lilypond-book
+@section Invoking @command{lilypond-book}
+
+@untranslated
+
+@command{lilypond-book} produces a file with one of the following
+extensions: @file{.tex}, @file{.texi}, @file{.html} or @file{.xml},
+depending on the output format.  All of @file{.tex}, @file{.texi} and
+@file{.xml} files need further processing.
+
+@subheading Format-specific instructions
+
+@subsubheading @LaTeX{}
+
+There are two ways of processing your @LaTeX{} document for printing or
+publishing: getting a PDF file directly with PDF@LaTeX{}, or getting a
+PostScript file with @LaTeX{} via a DVI to PostScript translator like
+@command{dvips}.  The first way is simpler and recommended@footnote{Note
+that PDF@LaTeX{} and @LaTeX{} may not be both usable to compile any
+@LaTeX{} document, that is why we explain the two ways.}, and whichever
+way you use, you can easily convert between PostScript and PDF with
+tools, like @command{ps2pdf} and @command{pdf2ps} included in
+Ghostscript package.
+
+To produce a PDF file through PDF@LaTeX{}, use
+
+@example
+lilypond-book --pdf yourfile.pdftex
+pdflatex yourfile.tex
+@end example
+
+@cindex outline fonts
+@cindex type1 fonts
+@cindex dvips
+@cindex invoking dvips
+To produce PDF output via @LaTeX{}/@command{dvips}/@command{ps2pdf}, you
+should do
+
+@example
+lilypond-book yourfile.lytex
+latex yourfile.tex
+dvips -Ppdf yourfile.dvi
+ps2pdf yourfile.ps
+@end example
+
+@noindent
+The @file{.dvi} file created by this process will not contain
+ note heads.  This is normal; if you follow the instructions, they
+will be included in the @file{.ps} and @file{.pdf} files.
+
+Running @command{dvips} may produce some warnings about fonts; these
+are harmless and may be ignored.  If you are running @command{latex} in
+twocolumn mode, remember to add @code{-t landscape} to the
+@command{dvips} options.
+
+@subsubheading Texinfo
+
+To produce a Texinfo document (in any output format), follow the normal
+procedures for Texinfo; this is, either call @command{texi2pdf} or
+@command{texi2dvi} or @command{makeinfo}, depending on the output format
+you want to create.
+@ifinfo
+@xref{Format with texi2dvi, , , texinfo, GNU Texinfo}, and @ref{Creating
+an Info File, , , texinfo, GNU Texinfo}.
+@end ifinfo
+@ifnotinfo
+See the documentation of Texinfo for further details.
+@end ifnotinfo
+
+
+@subheading Command line options
+
+@command{lilypond-book} accepts the following command line options:
+
+@table @code
+@item -f @var{format}
+@itemx --format=@var{format}
+Specify the document type to process: @code{html}, @code{latex},
+@code{texi} (the default) or @code{docbook}.  If this option is missing,
+@command{lilypond-book} tries to detect the format automatically, see
+@ref{Filename extensions}. Currently, @code{texi} is the same as
+@code{texi-html}.
+
+@c This complicated detail is not implemented, comment it out -jm
+@ignore
+The @code{texi} document type produces a Texinfo file with music
+fragments in the printed output only.  For getting images in the HTML
+version, the format @code{texi-html} must be used instead.
+@end ignore
+
+@item -F @var{filter}
+@itemx --filter=@var{filter}
+Pipe snippets through @var{filter}.  @code{lilypond-book} will
+not --filter and --process at the same time.  For example,
+
+@example
+lilypond-book --filter='convert-ly --from=2.0.0 -' my-book.tely
+@end example
+
+@item -h
+@itemx --help
+Print a short help message.
+
+@item -I @var{dir}
+@itemx --include=@var{dir}
+Add @var{dir} to the include path.  @command{lilypond-book} also looks
+for already compiled snippets in the include path, and does not write
+them back to the output directory, so in some cases it is necessary to
+invoke further processing commands such as @command{makeinfo} or
+@command{latex} with the same @code{-I @var{dir}} options.
+
+@item -o @var{dir}
+@itemx --output=@var{dir}
+Place generated files in directory @var{dir}.  Running
+@command{lilypond-book} generates lots of small files that LilyPond will
+process.  To avoid all that garbage in the source directory, use the
+@option{--output} command line option, and change to that directory
+before running @command{latex} or @command{makeinfo}.
+
+@example
+lilypond-book --output=out yourfile.lytex
+cd out
+...
+@end example
+
+@itemx --skip-lily-check
+Do not fail if no lilypond output is found.  It is used for LilyPond
+Info documentation without images.
+
+@itemx --skip-png-check
+Do not fail if no PNG images are found for EPS files.  It is used for
+LilyPond Info documentation without images.
+
+@itemx --lily-output-dir=@var{dir}
+Write lily-XXX files to directory @var{dir}, link into @code{--output}
+directory.  Use this option to save building time for documents in
+different directories which share a lot of identical snippets.
+
+@itemx --info-images-dir=@var{dir}
+Format Texinfo output so that Info will look for images of music in
+@var{dir}.
+
+@itemx --latex-program=@var{prog}
+Run executable @command{prog} instead of @command{latex}.  This is
+useful if your document is processed with @command{xelatex}, for
+example.
+
+@itemx --left-padding=@var{amount}
+Pad EPS boxes by this much. @var{amount} is measured in millimeters,
+and is 3.0 by default.  This option should be used if the lines of
+music stick out of the right margin.
+
+The width of a tightly clipped system can vary, due to notation
+elements that stick into the left margin, such as bar numbers and
+instrument names.  This option will shorten each line and move each
+line to the right by the same amount.
+
+
+@item -P @var{command}
+@itemx --process=@var{command}
+Process LilyPond snippets using @var{command}.  The default command is
+@code{lilypond}.  @code{lilypond-book} will not @code{--filter} and
+@code{--process} at the same time.
+
+@item --pdf
+Create PDF files for use with PDF@LaTeX{}.
+
+@item -V
+@itemx --verbose
+Be verbose.
+
+@item -v
+@itemx --version
+Print version information.
+@end table
+
+@knownissues
+
+The Texinfo command @code{@@pagesizes} is not interpreted.  Similarly,
+@LaTeX{} commands that change margins and line widths after the preamble
+are ignored.
+
+Only the first @code{\score} of a LilyPond block is processed.
+
+
+@node Filename extensions
+@section Filename extensions
+
+@untranslated
+
+You can use any filename extension for the input file, but if you do not
+use the recommended extension for a particular format you may need to
+manually specify the output format; for details, see @ref{Invoking
+lilypond-book}.  Otherwise, @command{lilypond-book} automatically
+selects the output format based on the input filename's extension.
+
+@quotation
+@multitable @columnfractions .2 .5
+@item @strong{extension} @tab @strong{output format}
+@item
+@item @file{.html} @tab HTML
+@item @file{.itely} @tab Texinfo
+@item @file{.latex} @tab @LaTeX{}
+@item @file{.lytex} @tab @LaTeX{}
+@item @file{.lyxml} @tab DocBook
+@item @file{.tely} @tab Texinfo
+@item @file{.tex} @tab @LaTeX{}
+@item @file{.texi} @tab Texinfo
+@item @file{.texinfo} @tab Texinfo
+@item @file{.xml} @tab HTML
+@end multitable
+@end quotation
+
+If you use the same filename extension for the input file than the
+extension @command{lilypond-book} uses for the output file, and if the
+input file is in the same directory as @command{lilypond-book} working
+directory, you must use @code{--output} option to make
+@command{lilypond-book} running, otherwise it will exit with an error
+message like @qq{Output would overwrite input file}.
+
+
+@node Alternate methods of mixing text and music
+@section Alternative methods of mixing text and music
+
+@untranslated
+
+This section shows methods to integrate text and music, different than
+the automated method with @command{lilypond-book}.
+
+@menu
+* Many quotes from a large score::
+* Inserting LilyPond output into OpenOffice.org::
+* Inserting LilyPond output into other programs::
+@end menu
+
+@node Many quotes from a large score
+@unnumberedsubsec Many quotes from a large score
+
+@untranslated
+
+If you need to quote many fragments from a large score, you can also use
+the clip systems feature, see @ruser{Extracting fragments of music}.
+
+
+@node Inserting LilyPond output into OpenOffice.org
+@unnumberedsubsec Inserting LilyPond output into OpenOffice.org
+
+@untranslated
+
+@cindex OpenOffice.org
+
+LilyPond notation can be added to OpenOffice.org with
+@uref{http://@/ooolilypond@/.sourceforge@/.net@/,OOoLilyPond}.
+
+
+@node Inserting LilyPond output into other programs
+@unnumberedsubsec Inserting LilyPond output into other programs
+
+@untranslated
+
+To insert LilyPond output in other programs, use @code{lilypond}
+instead of @code{lilypond-book}.  Each example must be created
+individually and added to the document; consult the documentation for
+that program.  Most programs will be able to insert LilyPond output in
+@file{PNG}, @file{EPS}, or @file{PDF} formats.
+
+To reduce the white space around your LilyPond score, use
+the following options
+
+@example
+\paper@{
+  indent=0\mm
+  line-width=120\mm
+  oddFooterMarkup=##f
+  oddHeaderMarkup=##f
+  bookTitleMarkup = ##f
+  scoreTitleMarkup = ##f
+@}
+
+@{ c1 @}
+@end example
+
+To produce a useful @file{EPS} file, use
+
+@example
+lilypond -dbackend=eps -dno-gs-load-fonts -dinclude-eps-fonts   myfile.ly
+
+@file{PNG}:
+lilypond -dbackend=eps -dno-gs-load-fonts -dinclude-eps-fonts --png myfile.ly
+@end example
+
diff --git a/Documentation/ja/user/lilypond-learning.tely b/Documentation/ja/user/lilypond-learning.tely
new file mode 100644 (file)
index 0000000..7cb213a
--- /dev/null
@@ -0,0 +1,208 @@
+\input texinfo @c -*- coding: utf-8; mode: texinfo; -*-
+@ignore
+    Translation of GIT committish: 499a511d4166feaada31114e097f86b5e0c56421
+
+    When revising a translation, copy the HEAD committish of the
+    version that you are working on.  See TRANSLATION for details.
+@end ignore
+@documentencoding UTF-8
+@setfilename lilypond-learning.info
+@settitle GNU LilyPond -- 学習マニュアル
+
+
+@include macros.itexi
+
+@afourpaper
+
+@c don't remove this comment.
+@ignore
+@omfcreator Han-Wen Nienhuys, Jan Nieuwenhuizen and Graham Percival
+@omfdescription Learning Manual of the LilyPond music engraving system
+@omftype program usage
+@omfcategory Applications|Publishing
+@omflanguage Japanese
+@end ignore
+
+@c Translators: Yoshiki Sawada
+@c Translation status: post-GDP
+
+@ifnottex
+@node Top
+@top GNU LilyPond --- 学習マニュアル
+@end ifnottex
+
+
+@ifhtml
+@ifclear bigpage
+このドキュメントは @uref{source/Documentation/user/lilypond-learning.ja.pdf,PDF 
+形式} と @uref{source/Documentation/user/lilypond-learning-big-page.ja.html,
+大きな 1 ページ形式} でも利用可能です。
+@end ifclear
+@ifset bigpage
+このドキュメントは @uref{source/Documentation/user/lilypond-learning.ja.pdf,PDF 
+形式} と @uref{source/Documentation/user/lilypond-learning/index.ja.html,複数@c
+のページにインデックス化された形式} でも利用可能です。
+@end ifset
+@end ifhtml
+
+@c urg, makeinfo 4.9.91 French translation is funky
+@c 日本語の場合の makeinfo ???
+@iftex
+@documentlanguage ja
+@c @frenchspacing on
+@end iftex
+
+@c  This produces the unified index
+@syncodeindex fn cp
+@syncodeindex vr cp
+
+
+@finalout
+
+@titlepage
+@title LilyPond
+@c subtitle Le système de gravure musicale
+@subtitle 音楽譜刻システム
+@c titlefont{学習マニュアル}
+@author LilyPond 開発チーム
+
+
+Copyright @copyright{} 1999--2008 著作者一同
+
+@emph{The translation of the following copyright notice is provided
+for courtesy to non-English speakers, but only the notice in English
+legally counts.}
+
+@emph{以下は英語を話さない人々のための著作権についての注意書きです。しかしなが@c
+ら、英語で書かれた注意書きだけが法的に有効です。}
+
+@quotation
+GNU フリー文書利用許諾契約書バージョン 1.1 またはフリー ソフトウェア財団によっ@c
+て発行されたその後のバージョンの約定に従う限り、このドキュメントを複製、変更す@c
+る許可を与えます。変更不可部分はありません。この利用許諾契約書のコピーは 「GNU 
+フリー文書利用許諾契約書」という章に含まれています。
+@end quotation
+
+@quotation
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.1
+or any later version published by the Free Software Foundation;
+with no Invariant Sections.
+A copy of the license is included in the section entitled ``GNU
+Free Documentation License''.
+@end quotation
+
+@vskip 20pt
+
+Pour LilyPond version @version{}
+@end titlepage
+
+@copying
+Copyright @copyright{} 1999--2008 著作者一同
+
+@emph{The translation of the following copyright notice is provided
+for courtesy to non-English speakers, but only the notice in English
+legally counts.}
+
+@emph{以下は英語を話さない人々のための著作権についての注意書きです。しかしなが@c
+ら、英語で書かれた注意書きだけが法的に有効です。}
+
+
+@quotation
+GNU フリー文書利用許諾契約書バージョン 1.1 またはフリー ソフトウェア財団によっ@c
+て発行されたその後のバージョンの約定に従う限り、このドキュメントを複製、変更す@c
+る許可を与えます。変更不可部分はありません。この利用許諾契約書のコピーは 「GNU 
+フリー文書利用許諾契約書」という章に含まれています。
+@end quotation
+
+@quotation
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.1
+or any later version published by the Free Software Foundation;
+with no Invariant Sections.
+A copy of the license is included in the section entitled ``GNU
+Free Documentation License''.
+@end quotation
+@end copying
+
+@ifnottex
+このファイルは GNU LilyPond のドキュメントです。
+
+Copyright @copyright{} 1999--2008 著作者一同
+
+@emph{The translation of the following copyright notice is provided
+for courtesy to non-English speakers, but only the notice in English
+legally counts.}
+
+@emph{以下は英語を話さない人々のための著作権についての注意書きです。しかしなが@c
+ら、英語で書かれた注意書きだけが法的に有効です。}
+
+@quotation
+GNU フリー文書利用許諾契約書バージョン 1.1 またはフリー ソフトウェア財団によっ@c
+て発行されたその後のバージョンの約定に従う限り、このドキュメントを複製、変更す@c
+る許可を与えます。変更不可部分はありません。この利用許諾契約書のコピーは 「GNU 
+フリー文書利用許諾契約書」という章に含まれています。
+@end quotation
+
+@quotation
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.1
+or any later version published by the Free Software Foundation;
+with no Invariant Sections.
+A copy of the license is included in the section entitled ``GNU
+Free Documentation License''.
+@end quotation
+@end ifnottex
+
+@ifnottex
+
+これは GNU LilyPond バージョン @version{} のための学習マニュアルです。このド@c
+キュメントと他のドキュメントとの関係についての更なる情報は、@ref{About the 
+documentation} を参照してください。
+
+@cindex web site
+@cindex URL
+
+@uref{http://@/www@/.lilypond@/.org/} で更なる情報を見つけることができます。こ@c
+のウェブ サイトにはこのドキュメントと他のドキュメントのオンライン コピーがあり@c
+ます。
+
+@menu
+* Preface::
+* Introduction::                   LilyPond とは何なのか、なぜ LilyPond を使う@c
+のか、どうやって LilyPond を使うのか
+* Tutorial::                       LilyPond 導入の手引き
+* Fundamental concepts::           このマニュアルの残りの部分を読むために必要@c
+とされる基本的なコンセプト
+* Tweaking output::                出力を変更するための導入部
+* Working on LilyPond projects::   実際の使用についての議論
+
+付録
+
+* Templates::                      作成 (コンパイル) 準備ができているテンプレート
+* Scheme tutorial::                LilyPond 内部のプログラミング
+* GNU Free Documentation License:: このドキュメントの使用許諾書
+* LilyPond index::
+@end menu
+@end ifnottex
+
+@contents
+
+
+@include preface.itely
+@include introduction.itely
+@include tutorial.itely
+@include fundamental.itely
+@include tweaks.itely
+@include working.itely
+
+@include templates.itely
+@include scheme-tutorial.itely
+@include fdl.itexi
+
+@node LilyPond index
+@appendix LilyPond index
+
+@printindex cp
+
+@bye
diff --git a/Documentation/ja/user/lilypond-program.tely b/Documentation/ja/user/lilypond-program.tely
new file mode 100644 (file)
index 0000000..9c3cd46
--- /dev/null
@@ -0,0 +1,180 @@
+\input texinfo @c -*- coding: utf-8; mode: texinfo; documentlanguage: ja -*-
+@ignore
+    Translation of GIT committish: 499a511d4166feaada31114e097f86b5e0c56421
+
+    When revising a translation, copy the HEAD committish of the
+    version that you are working on.  See TRANSLATION for details.
+@end ignore
+
+@documentencoding UTF-8
+@setfilename lilypond-program.info
+@settitle GNU LilyPond -- アプリケーション使用方法
+
+@include macros.itexi
+
+@afourpaper
+
+@c don't remove this comment.
+@ignore
+@omfcreator Han-Wen Nienhuys, Jan Nieuwenhuizen and Graham Percival
+@omfdescription Program Usage of the LilyPond music engraving system
+@omftype user manual
+@omfcategory Applications|Publishing
+@omflanguage Japanese
+@end ignore
+
+@c Translators: Yoshiki Sawada
+@c Translation status: post-GDP
+
+@ifnottex
+@node Top
+@top GNU LilyPond --- アプリケーション使用方法
+@end ifnottex
+
+@ifhtml
+@ifclear bigpage
+このドキュメントは @uref{source/Documentation/user/lilypond-program.ja.pdf,PDF 
+形式} と @uref{source/Documentation/user/lilypond-program-big-page.ja.html,
+大きな 1 ページ形式} でも利用可能です。
+@end ifclear
+@ifset bigpage
+このドキュメントは @uref{source/Documentation/user/lilypond-program.ja.pdf,PDF 
+形式} と @uref{source/Documentation/user/lilypond-program/index.ja.html,
+複数のページにインデックス化された形式} でも利用可能です。
+@end ifset
+@end ifhtml
+
+@c urg, makeinfo 4.9.91 French translation is funky
+@iftex
+@documentlanguage ja
+@c frenchspacing on
+@end iftex
+
+@syncodeindex fn cp
+@c @syncodeindex ky cp
+@c @syncodeindex pg cp
+@c @syncodeindex tp cp
+@c @syncodeindex vr cp
+
+@finalout
+
+@titlepage
+@title GNU LilyPond
+@c subtitle Le système de gravure musicale
+@subtitle 音楽譜刻システム
+@c titlefont{Utilisation des programmes}
+@c author L'équipe de développement de LilyPond
+@author LilyPond開発チーム
+
+Copyright @copyright{} 1999--2008 著作者一同
+
+@emph{The translation of the following copyright notice is provided
+for courtesy to non-English speakers, but only the notice in English
+legally counts.}
+
+@emph{以下は英語を話さない人々のための著作権についての注意書きです。しかしなが@c
+ら、英語で書かれた注意書きだけが法的に有効です。}
+
+@quotation
+GNU フリー文書利用許諾契約書バージョン 1.1 またはフリー ソフトウェア財団によっ@c
+て発行されたその後のバージョンの約定に従う限り、このドキュメントを複製、変更す@c
+る許可を与えます。変更不可部分はありません。この利用許諾契約書のコピーは 「GNU 
+フリー文書利用許諾契約書」
+という章に含まれています。
+@end quotation
+
+@quotation
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.1
+or any later version published by the Free Software Foundation;
+with no Invariant Sections.
+A copy of the license is included in the section entitled ``GNU
+Free Documentation License''.
+@end quotation
+
+@vskip 20pt
+
+For LilyPond version @version{}
+@end titlepage
+
+
+@ifnottex
+このファイルは GNU LilyPond プログラムの使用方法についてのドキュメントです。
+@c This file documents GNU LilyPond program usage.
+
+Copyright @copyright{} 1999--2008 著作者一同
+
+@emph{The translation of the following copyright notice is provided
+for courtesy to non-English speakers, but only the notice in English
+legally counts.}
+
+@emph{以下は英語を話さない人々のための著作権についての注意書きです。しかしなが@c
+ら、英語で書かれた注意書きだけが法的に有効です。}
+
+
+@quotation
+GNU フリー文書利用許諾契約書バージョン 1.1 またはフリー ソフトウェア財団によっ@c
+て発行されたその後のバージョンの約定に従う限り、このドキュメントを複製、変更す@c
+る許可を与えます。変更不可部分はありません。この利用許諾契約書のコピーは 「GNU 
+フリー文書利用許諾契約書」
+という章に含まれています。
+@end quotation
+
+@quotation
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.1
+or any later version published by the Free Software Foundation;
+with no Invariant Sections.
+A copy of the license is included in the section entitled ``GNU
+Free Documentation License''.
+@end quotation
+@end ifnottex
+
+
+@ifnottex
+
+これは GNU LilyPond バージョン @version{} のためのアプリケーション使用方法マ@c
+ニュアルです。このドキュメントと他のドキュメントとの関係についての更なる情報@c
+は、@rlearning{About the documentation} を参照してください。
+
+@cindex web site
+@cindex URL
+
+@uref{http://@/www@/.lilypond@/.org/} で更なる情報を見つけることができます。こ@c
+のウェブ サイトにはこのドキュメントと他のドキュメントのオンライン コピーがあり@c
+ます。
+
+@include dedication.itely
+
+@menu
+* Install::                        インストール方法とコンパイル方法
+* Setup::                          他のプログラムの助けを借りて LilyPond を使@c
+用する
+* Running LilyPond::               操作方法
+* LilyPond-book::                  テキストと音楽を統合する
+* Converting from other formats::  lilypond ソース形式に変換する
+
+付録
+
+* GNU Free Documentation License:: このドキュメントの使用許諾書
+* LilyPond index::
+@end menu
+@end ifnottex
+
+@contents
+
+
+@include install.itely
+@include setup.itely
+@include running.itely
+@include lilypond-book.itely
+@include converters.itely
+
+@include fdl.itexi
+
+@node LilyPond index
+@appendix LilyPond index
+
+@printindex cp
+
+@bye
diff --git a/Documentation/ja/user/macros.itexi b/Documentation/ja/user/macros.itexi
new file mode 100644 (file)
index 0000000..6eeb8e1
--- /dev/null
@@ -0,0 +1,460 @@
+@c -*- coding: utf-8; mode: texinfo; -*-
+@ignore
+    Translation of GIT committish: 499a511d4166feaada31114e097f86b5e0c56421
+
+    When revising a translation, copy the HEAD committish of the
+    version that you are working on.  See TRANSLATION for details.
+@end ignore
+
+
+@include version.itexi
+
+@c Translators: Yoshiki Sawada
+
+@c Don't replace quotes with directed quotes.
+
+@set txicodequoteundirected
+@set txicodequotebacktick
+
+
+
+@c   ***** Displaying text *****
+
+@c We need this since @q{\} doesn't work with makeinfo 4.11 --
+@c say @q{@bs{}} instead.
+
+@macro bs
+\\
+@end macro
+
+@macro hash
+\#
+@end macro
+
+@c To get decent quotes in `foo' and ``foo''.
+@c FIXME: Use thin spaces for @qq.
+
+@ifnotinfo
+
+@macro q{TEXT}
+@quoteleft{}\TEXT\@quoteright{}
+@end macro
+
+@macro qq{TEXT}
+@quotedblleft{}\TEXT\@quotedblright{}
+@end macro
+
+@end ifnotinfo
+
+@ifinfo
+
+@macro q{TEXT}
+`\TEXT\'
+@end macro
+
+@macro qq{TEXT}
+« \TEXT\ »
+@end macro
+
+@end ifinfo
+
+
+@ifhtml
+
+@macro warning{TEXT}
+@cartouche
+@b{Note:} \TEXT\
+@end cartouche
+@end macro
+
+@end ifhtml
+
+@ifnothtml
+
+@macro warning{TEXT}
+@quotation
+@quotation
+@cartouche
+@b{Note:} \TEXT\
+@end cartouche
+@end quotation
+@end quotation
+@end macro
+
+@end ifnothtml
+
+
+@ifnotinfo
+
+@macro notation{TEXT}
+@var{\TEXT\}
+@end macro
+
+@end ifnotinfo
+
+@ifinfo
+
+@macro notation{TEXT}
+\TEXT\
+@end macro
+
+@end ifinfo
+
+
+@macro smallspace
+@sp 1
+@end macro
+
+
+
+@c   ***** Displaying images not generated by lilypond-book *****
+
+@c Current installation setup of Info docs requires that all images are
+@c expected to be found in the `lilypond/' subdirectory.  `lilypond-book'
+@c already generates proper @image commands for images of music; these
+@c macro definitions do the same for other images.
+
+@ifnotinfo
+
+@macro sourceimage{FILENAME,WIDTH,HEIGHT,ALTTEXT}
+@image{\FILENAME\,\WIDTH\,\HEIGHT\,\ALTTEXT\}
+@end macro
+
+@end ifnotinfo
+
+@ifinfo
+
+@macro sourceimage{FILENAME,WIDTH,HEIGHT,ALTTEXT}
+@image{lilypond/\FILENAME\,\WIDTH\,\HEIGHT\,\ALTTEXT\}
+@end macro
+
+@end ifinfo
+
+
+
+@c   ***** Headings in a doc subsection *****
+
+@c Don't insert an empty line after @predefined!  Right now
+@c it doesn't matter, but a future implementation will probably
+@c add some code which needs this restriction.
+
+@macro predefined
+@noindent
+@subsubheading Predefined commands
+@end macro
+
+@c The next macro is a dummy currently since texinfo doesn't
+@c provide a real ragged-right environment yet.
+@c
+@c Due to a bug in texi2html (texi2html.pl CVS versions <= 1.245)
+@c the macro must not be empty.
+
+@macro endpredefined
+@c
+@end macro
+
+
+@macro snippets
+@noindent
+@subsubheading Selected Snippets
+@end macro
+
+
+@c Don't insert an empty line after @seealso!  Otherwise we get
+@c unwanted extra vertical space in the PDF output.
+
+@macro seealso
+@noindent
+@subsubheading See also
+@indent
+@end macro
+
+
+@macro knownissues
+@noindent
+@subsubheading Known issues and warnings
+@end macro
+
+
+@macro lydoctitle {TEXT}
+@emph{\TEXT\}
+@end macro
+
+
+@c Don't remove the `@c' within the macro definition!  See section 19.3,
+@c `Macro Details and Caveats', in the texinfo info file for explanation.
+
+@macro funindex {TEXT}
+@findex \TEXT\
+@kindex \TEXT\
+@c
+@end macro
+
+
+
+@c   ***** Links and references *****
+
+@c  Definitions for references:
+@c
+@c     @rglos
+@c     @rlearning
+@c     @ruser
+@c     @rprogram
+@c     @rlsr
+@c     @rinternals
+@c
+@c  All these also have a @...named version which allows to specify the
+@c  displayed text for the reference as second argument.
+@c
+@c ***** HTML + bigpage is a special case (other manual names); all other
+@c formats are treated similarly.
+
+
+@c *** not TeX ***
+
+@ifnottex
+
+@c ** bigpage **
+
+@ifset bigpage
+
+@macro rglos{TEXT}
+@vindex \TEXT\
+@ref{\TEXT\,,,music-glossary-big-page,Music Glossary}
+@end macro
+
+@macro rglosnamed{TEXT,DISPLAY}
+@vindex \TEXT\
+@ref{\TEXT\,,\DISPLAY\,music-glossary-big-page,Music Glossary}
+@end macro
+
+@macro rlearning{TEXT}
+@vindex \TEXT\
+@ref{\TEXT\,,,lilypond-learning-big-page,Learning Manual}
+@end macro
+
+@macro rlearningnamed{TEXT,DISPLAY}
+@vindex \TEXT\
+@ref{\TEXT\,,\DISPLAY\,lilypond-learning-big-page,Learning Manual}
+@end macro
+
+@macro ruser{TEXT}
+@vindex \TEXT\
+@ref{\TEXT\,,,lilypond-big-page,Notation Reference}
+@end macro
+
+@macro rusernamed{TEXT,DISPLAY}
+@vindex \TEXT\
+@ref{\TEXT\,,\DISPLAY\,lilypond-big-page,Notation Reference}
+@end macro
+
+@macro rprogram{TEXT}
+@vindex \TEXT\
+@ref{\TEXT\,,,lilypond-program-big-page,Application Usage}
+@end macro
+
+@macro rprogramnamed{TEXT,DISPLAY}
+@vindex \TEXT\
+@ref{\TEXT\,,\DISPLAY\,lilypond-program-big-page,Application Usage}
+@end macro
+
+@macro rlsr{TEXT}
+@ref{\TEXT\,,,lilypond-snippets-big-page,Snippets}
+@end macro
+
+@macro rlsrnamed{TEXT,DISPLAY}
+@ref{\TEXT\,,\DISPLAY\,lilypond-snippets-big-page,Snippets}
+@end macro
+
+@macro rinternals{TEXT}
+@vindex \TEXT\
+@ref{\TEXT\,,,lilypond-internals-big-page,Internals Reference}
+@end macro
+
+@macro rinternalsnamed{TEXT,DISPLAY}
+@vindex \TEXT\
+@ref{\TEXT\,,\DISPLAY\,lilypond-internals-big-page,Internals Reference}
+@end macro
+
+@end ifset
+
+
+@c ** not bigpage **
+
+@ifclear bigpage
+
+@macro rglos{TEXT}
+@vindex \TEXT\
+@ref{\TEXT\,,,music-glossary,Music Glossary}
+@end macro
+
+@macro rglosnamed{TEXT,DISPLAY}
+@vindex \TEXT\
+@ref{\TEXT\,,\DISPLAY\,music-glossary,Music Glossary}
+@end macro
+
+@macro rlearning{TEXT}
+@vindex \TEXT\
+@ref{\TEXT\,,,lilypond-learning,Learning Manual}
+@end macro
+
+@macro rlearningnamed{TEXT,DISPLAY}
+@vindex \TEXT\
+@ref{\TEXT\,,,lilypond-learning,Learning Manual}
+@end macro
+
+@macro ruser{TEXT}
+@vindex \TEXT\
+@ref{\TEXT\,,,lilypond,Notation Reference}
+@end macro
+
+@macro rusernamed{TEXT,DISPLAY}
+@vindex \TEXT\
+@ref{\TEXT\,,\DISPLAY\,lilypond,Notation Reference}
+@end macro
+
+@macro rprogram{TEXT}
+@vindex \TEXT\
+@ref{\TEXT\,,,lilypond-program,Application Usage}
+@end macro
+
+@macro rprogramnamed{TEXT,DISPLAY}
+@vindex \TEXT\
+@ref{\TEXT\,,\DISPLAY\,lilypond-program,Application Usage}
+@end macro
+
+@macro rlsr{TEXT}
+@ref{\TEXT\,,,lilypond-snippets,Snippets}
+@end macro
+
+@macro rlsrnamed{TEXT,DISPLAY}
+@ref{\TEXT\,,\DISPLAY\,lilypond-snippets,Snippets}
+@end macro
+
+@macro rinternals{TEXT}
+@vindex \TEXT\
+@ref{\TEXT\,,,lilypond-internals,Internals Reference}
+@end macro
+
+@macro rinternalsnamed{TEXT,DISPLAY}
+@vindex \TEXT\
+@ref{\TEXT\,,\DISPLAY\,lilypond-internals,Internals Reference}
+@end macro
+
+@end ifclear
+
+@end ifnottex
+
+
+@c *** TeX ***
+
+@iftex
+
+@macro rglos{TEXT}
+@vindex \TEXT\
+@ref{\TEXT\,,,music-glossary,Music Glossary}
+@end macro
+
+@macro rglosnamed{TEXT,DISPLAY}
+@vindex \TEXT\
+@ref{\TEXT\,,\DISPLAY\,music-glossary,Music Glossary}
+@end macro
+
+@macro rlearning{TEXT}
+@ref{\TEXT\,,,lilypond-learning,Learning Manual}
+@end macro
+
+@macro rlearningnamed{TEXT,DISPLAY}
+@ref{\TEXT\,,\DISPLAY\,lilypond-learning,Learning Manual}
+@end macro
+
+@macro ruser{TEXT}
+@ref{\TEXT\,,,lilypond,Notation Reference}
+@end macro
+
+@macro rusernamed{TEXT,DISPLAY}
+@ref{\TEXT\,,\DISPLAY\,lilypond,Notation Reference}
+@end macro
+
+@macro rprogram{TEXT}
+@ref{\TEXT\,,,lilypond-program,Application Usage}
+@end macro
+
+@macro rprogramnamed{TEXT,DISPLAY}
+@ref{\TEXT\,,\DISPLAY\,lilypond-program,Application Usage}
+@end macro
+
+@macro rlsr{TEXT}
+@ref{\TEXT\,,,lilypond-snippets,Snippets}
+@end macro
+
+@macro rlsrnamed{TEXT,DISPLAY}
+@ref{\TEXT\,,\DISPLAY\,lilypond-snippets,Snippets}
+@end macro
+
+@macro rinternals{TEXT}
+@vindex \TEXT\
+@ref{\TEXT\,,,lilypond-internals,Internals Reference}
+@end macro
+
+@macro rinternalsnamed{TEXT,DISPLAY}
+@vindex \TEXT\
+@ref{\TEXT\,,\DISPLAY\,lilypond-internals,Internals Reference}
+@end macro
+
+@end iftex
+
+
+
+
+
+@c   ***** Macros specific to translated docs *****
+
+@c ugh, cannot set/define global variable 'translationof' in some way?
+
+@iftex
+
+@macro translationof{TEXT}
+@end macro
+
+@end iftex
+
+@ifinfo
+
+@macro translationof{TEXT}
+@set translationof \TEXT\
+@end macro
+
+@end ifinfo
+
+
+@c TODO: If @translationof is used in translated docs
+@c see whether it is feasible to say @value{translationof}.
+
+@macro englishref
+Cette section n'est pas encore encore traduite, veuillez
+vous reporter à la documentation correspondante en anglais.
+@end macro
+
+
+@ifhtml
+
+@ifset bigpage
+@macro untranslated
+@end macro
+@end ifset
+
+@ifclear bigpage
+@macro untranslated
+UNTRANSLATED NODE: IGNORE ME
+@end macro
+@end ifclear
+
+@end ifhtml
+
+@ifnothtml
+
+@macro untranslated
+@end macro
+
+@end ifnothtml
diff --git a/Documentation/ja/user/preface.itely b/Documentation/ja/user/preface.itely
new file mode 100644 (file)
index 0000000..b1ab52b
--- /dev/null
@@ -0,0 +1,59 @@
+@c -*- coding: utf-8; mode: texinfo; documentlanguage: ja -*-
+@c This file is part of lilypond-learning.tely
+@ignore
+    Translation of GIT committish: 499a511d4166feaada31114e097f86b5e0c56421
+
+    When revising a translation, copy the HEAD committish of the
+    version that you are working on.  See TRANSLATION for details.
+@end ignore
+
+@c \version "2.12.0"
+
+@c Translators: Yoshiki Sawada
+@c Translation status: post-GDP
+
+@node Preface
+@unnumbered Preface
+
+それは 1995 年のある日の EJE (Eindhoven Youth Orchestra) のリハーサル中のでき@c
+ごとでした − ある変わり者のバイオリン奏者であるジャンは同じく変わり者のフレン@c
+チホルン奏者のハン-ウェンに彼がかかわっている新しい大きなプロジェクトのことを@c
+話しました。それは音楽を出版するための自動化されたシステムです (正確には、それ@c
+は MPP − MusiXTeX のプリプロセッサです)。それを聞いてハン-ウェンはすぐに楽譜か@c
+らいくつかの部分をプリントアウトしたいと思い、彼はそのためのソフトウェアを探し@c
+始め、すぐにその虜になってしまいました。それが MPP の終わりを決定付けました。@c
+多くの哲学的考察を含み白熱した email の交換の後、ハン-ウェンは 1996 年に @c
+LilyPond の製作を開始しました。この時、ジャンはハン-ウェンの新しいプロジェクト@c
+に引きずり込まれました。
+
+ある意味、コンピュータ プログラムを開発することは楽器の演奏方法を学ぶことに似@c
+ています。最初は、それ (プログラムや楽器) がどのように機能するか考えていくこと@c
+が楽しみであり、できなかったことをできるようにするのは挑戦です。最初の興奮が@c
+去った後は、あなたは練習を積み重ねなければなりません。練習や勉強は退屈であり、@c
+他の人 − 先生、指揮者、聴衆 − からの動機付けを得なければあなたはすぐにあきらめ@c
+てしまうことでしょう。継続して少しずつ演奏を重ねていくことはあなたの生活の一部@c
+となります。あるときは演奏することはごく自然で素晴らしいことに感じ、さらにある@c
+ときはうまくいきません。それでも、あなたは来る日も来る日も演奏を続けます。
+
+音楽活動と同様に、LilyPond への取り組みも退屈なものになる可能性があり、あると@c
+きはバグの泥沼をこつこつと克服していくような感じになります。けれども、それは@c
+我々の生活の一部であり、我々はそれを続けます。おそらく最大の動機付けは、我々の@c
+プログラムが実際に人々のために何らかの形で役に立つということでしょう。我々がイ@c
+ンターネットを閲覧していると、多くの人々が LilyPond を使用し、印象的な楽譜を出@c
+版していることがわかります。そういったものを見ることはまるで現実ではないようで@c
+すが、とてもうれしいことです。
+
+我々のユーザは我々のプログラムを使って我々を喜ばせてくれるだけではなく、彼らの@c
+多くは我々に提案をくれたり、バグの報告を送ってくれます。そのため、我々はすべて@c
+のユーザにバグ報告を送ってくれたり、提案をくれたり、その他の形で LilyPond に貢@c
+献してくれることを感謝したいです。
+
+音楽を演奏することと楽譜をプリントすることは素晴らしい類似であるばかりではあり@c
+ません。一緒にプログラミングをすることは大いなる楽しみであり、人々の役に立つこ@c
+とは深い満足感を与えてくれます。しかし、究極的には LilyPond への取り組みは我々@c
+の音楽に対する深い愛情の表われなのです。あなたが多くの美しい音楽を作り出すのに 
+LilyPond が役に立ちますように!
+
+Han-Wen と Jan
+
+2002年7月、オランダ ユトレヒト/アイントホーフェン
diff --git a/Documentation/ja/user/running.itely b/Documentation/ja/user/running.itely
new file mode 100644 (file)
index 0000000..309cf9e
--- /dev/null
@@ -0,0 +1,631 @@
+@c -*- coding: utf-8; mode: texinfo; documentlanguage: ja -*-
+@c This file is part of lilypond-program.tely
+@ignore
+    Translation of GIT committish: 499a511d4166feaada31114e097f86b5e0c56421
+
+    When revising a translation, copy the HEAD committish of the
+    version that you are working on.  See TRANSLATION for details.
+@end ignore
+
+@c \version "2.12.0"
+
+@c Translators: Yoshiki Sawada
+@c Translation status: post-GDP
+
+@node Running LilyPond
+@chapter Running LilyPond
+
+この章では LilyPond を実行するための細かな規定について詳述します。
+
+@menu
+* Normal usage::
+* Command-line usage::
+* Error messages::
+* Updating files with convert-ly::
+* Reporting bugs::
+@end menu
+
+
+@node Normal usage
+@section Normal usage
+
+たいていのユーザは GUI から LilyPond を実行します。@rlearning{First steps} を@c
+まだ読んでいないのなら、それを読んでください。
+
+
+@node Command-line usage
+@section Command-line usage
+
+この節にはコマンド ラインで LilyPond を使用するための追加情報が含まれます。こ@c
+れにはプログラムに追加オプションを渡す必要があるかもしれません。さらに、いくつ@c
+かの特別なプログラム (@code{midi2ly} など) はコマンド ラインからしか利用できま@c
+せん。
+
+ここで @q{コマンド ライン} とは、OS の中にあるコマンド ラインを意味します。@c
+Windows ユーザは @q{DOS シェル} という言葉の方が馴染みがあるかもしれません。@c
+MaxOS@tie{}X ユーザは @q{ターミナル} や @q{コンソール} という言葉の方が馴染み@c
+があるかもしれません。MaxOS@tie{}X ユーザは @ref{Setup for MacOS X} も読んでお@c
+くべきです。
+
+OS のコマンド ラインの使用方法についての説明はこのマニュアルが扱う範囲ではあり@c
+ません。コマンド ラインに馴染みがない場合は、その内容を扱っている他のドキュ@c
+メントをあたってください。
+
+@menu
+* Invoking lilypond::
+* Command line options for lilypond::
+* Environment variables::
+@end menu
+
+@node Invoking lilypond
+@subsection Invoking @command{lilypond}
+
+@cindex Invoking @command{lilypond}
+@cindex command line options for @command{lilypond}
+@cindex options, command line
+@cindex switches
+
+@command{lilypond} 実行可能形式ファイルはコマンド ラインから以下のように呼び出@c
+されます。
+
+@example
+lilypond [@var{option}]@dots{} @var{file}@dots{}
+@end example
+
+拡張子を持たないファイル名で呼び出された場合、@file{.ly} が最初に試されます。@c
+sudin から入力を読み込む場合には、@var{file} に対してダッシュ (@code{−}) を使@c
+用します。
+
+@file{filename.ly} が処理されると、lilypond は出力として @file{filename.ps} と 
+@file{filename.pdf} を作り出します。いくつかのファイルを指定することもできま@c
+す。その場合、それらのファイルは個々に処理されます。@footnote{GUILE のステータ@c
+スは @code{.ly} 処理後にリセットされません。そのため、Scheme 内部からいかなる@c
+システム デフォルトも変更しないよう注意してください。}
+
+@file{filename.ly} が複数の @code{\score} を含んでいる場合、2 つ目以降の score 
+は @file{filename-1.pdf} から始まる番号付きのファイルに出力されます。さらに、@c
+@code{output-suffix} がベース名と番号の間に挿入されます。以下の内容を含んでい@c
+る入力ファイルは
+
+@example
+#(define output-suffix "violin")
+\book @{ @dots{} @}
+#(define output-suffix "cello")
+\book @{ @dots{} @}
+@end example
+
+@noindent
+@var{base}@file{-violin.pdf} と @var{base}@file{-cello-1.pdf} を出力します。
+
+
+@node Command line options for lilypond
+@subsection Command line options for @command{lilypond}
+
+以下のオプションがサポートされます:
+
+@table @code
+
+@item -e,--evaluate=@var{expr}
+@file{.ly} ファイルを解析する前に Scheme @var{expr} を評価します。複数の 
+@code{-e} オプションが与えられた場合、それらは順番に評価されます。
+
+表記は @code{guile-user} モジュールの中で評価されます。そのため、@var{expr} の@c
+中で definition を使いたいのならば、@code{.ly} ファイルに以下をインクルードして:
+
+@example
+#(use-modules (guile-user))
+@end example
+
+@noindent
+コマンド ラインで以下を使用します:
+
+@example
+lilypond -e '(define-public a 42)'
+@end example
+
+
+
+@item -f,--format=@var{format}
+フォーマットを指定します。@code{format} には @code{svg}, @code{ps}, @code{pdf}, 
+@code{png} を選択します。
+
+例: @code{lilypond -fpng @var{filename}.ly}
+
+
+
+@item -d,--define-default=@var{var}=@var{val}
+これは内部プログラム オプション @var{var} に Scheme 値 @var{val} をセットしま@c
+す。@var{val} が提供されていない場合、@var{#t} が使用されます。オプションを OFF 
+にするには、@var{var} の接頭辞として @code{no-} を付けます。つまり、
+
+@cindex point and click, command line
+
+@example
+-dno-point-and-click
+@end example
+
+@noindent
+は
+@example
+-dpoint-and-click='#f'
+@end example
+と同じです。
+
+ここで興味深いオプションをいくつか挙げます。
+
+@table @samp
+@item help
+@code{lilypond -dhelp} を実行すると使用可能な @code{-d} オプションがすべて表示@c
+されます。
+
+@item paper-size
+このオプションはデフォルトの用紙サイズをセットします。
+@example
+-dpaper-size=\"letter\"
+@end example
+
+@noindent
+文字列はエスケーブされたクォート ( @code{\"} ) で囲まれていなければならないと@c
+いうことに注意してください。
+@c Match " in previous line to help context-sensitive editors
+
+@item safe
+@code{.ly} 入力を信用してはいけません。
+
+Web サーバを通じて LilyPond フォーマットが利用可能な場合、@code{--safe} オプ@c
+ションか @code{--jail} オプションのどちらかを@b{渡さなければなりません}。@c
+@code{--safe} オプションは以下のようなインライン Scheme コードが大混乱をもたら@c
+すことを防ぎます:
+
+@quotation
+@verbatim
+#(system "rm -rf /")
+{
+  c4^#(ly:export (ly:gulp-file "/etc/passwd"))
+}
+@end verbatim
+@end quotation
+
+訳者: #(system "rm -rf /") はルート ディレクトリ以下を削除し、export 
+(ly:gulp-file "/etc/passwd") はパスワード ファイルをエクスポートします。
+
+@code{-dsafe} オプションはインライン Sceme 表記を特別なセーフ モジュールの中で@c
+評価します。このセーフ モジュールは GUILE @file{safe-r5rs} モジュールから派生@c
+したものですが、LilyPond API 関数をいくつか追加しています。これらの関数は 
+@file{scm/@/safe@/-lily@/.scm} でリスト アップされています。
+
+さらに、セーフ モードは @code{\include} 指示を却下し、@TeX{} 文字列の中にある@c
+バックスラッシュを無効にします。
+
+セーフ モードでは、LilyPond 変数を Scheme にインポートすることはできません。
+
+@code{-dsafe} はリソースの乱用を検出@emph{しません}。例えば循環データ構造体を@c
+バックエンドに食わせることで、プログラムをハングさせることは可能です。そのた@c
+め、パブリックにアクセス可能な Web サーバ上で LilyPond を使用する場合、そのプ@c
+ロセスの CPU とメモリの両方の使用は制限されるべきです。
+
+セーフ モードは多くの有用な LilyPond 断片がコンパイルされることを妨げます。@c
+@code{--jail} はより安全な代替オプションですが、セット アップにより多くの作業@c
+を必要とします。
+
+@cindex output format, setting
+@item backend
+バックエンドに対して使用する出力フォーマットを指定します。@code{format} の選択@c
+肢には以下があります:
+@table @code
+@item ps
+@cindex PostScript output
+ PostScript
+
+ Postscript ファイルは TTF, Type1, OTF フォントを含んでいます。これらのフォン@c
+トのサブセット化 (訳者: フォント セットを使用するフォントに限定すること) は行@c
+われません。東洋の文字セットを使用する場合、巨大なファイルになる可能性がありま@c
+す。
+
+@item eps
+ 縮約された  PostScript (EPS)。これは各ページ (システム) をフォントを持たない@c
+個別の @file{EPS} ファイルとして吐き出し、フォントを含めたすべてのページ (シス@c
+テム) を持つ @file{EPS} ファイルを 1 つ吐き出します。
+
+このモードは @command{lilypond-book} でデフォルトで使用されます。
+
+@item svg
+@cindex SVG (Scalable Vector Graphics)
+ SVG (Scalable Vector Graphics)。これは各ページをフォントを埋め込まれた個別の 
+@file{SVG} ファイルとして吐き出します。埋め込みフォントをサポートする SVG 
+ビューアか埋め込みフォントを OTF フォントに置き換える機能を持つ SVG ビューアが@c
+必要になります。UNIX では、@uref{http://www.inkscape.org,Inkscape} (バージョン 
+0.42 以降) を使うことになるかもしれません。使用前に、OTF フォントを LilyPond 
+ディレクトリ (一般には @file{/usr/share/lilypond/VERSION/fonts/otf/}) から 
+@file{~/.fonts/} にコピーしてください。
+@item scm
+@cindex Scheme dump
+ 生データ -- 内部 Scheme ベース描画コマンド -- を吐き出します。
+
+@item null
+ 譜刻された楽譜を出力しません。@code{-dno-print-pages} と同じ効果を持ちます。
+@end table
+
+例: @code{lilypond -dbackend=svg @var{filename}.ly}
+
+@item preview
+タイトルとファイル システム情報を保持している出力ファイルを生成します。
+@item print-pages
+
+すべてのページを生成します。デフォルトです。@code{-dno-print-pages} は 
+@code{-dpreview} と組み合わせて使うと有用です。
+
+@end table
+
+
+
+@item -h,--help
+使用方法の要約を表示します。
+
+@item -H,--header=@var{FIELD}
+ヘッダ フィールドをファイル @file{BASENAME.@var{FIELD}} に吐き出します。
+
+@item --include, -I=@var{directory}
+@var{directory} を入力ファイルのサーチ パスに追加します。
+@cindex file searching
+@cindex search path
+
+@item -i,--init=@var{file}
+init ファイルとして @var{file} をセットします (デフォルト: @file{init.ly})。
+
+@item -o,--output=@var{FILE}
+デフォルトの出力ファイルとして @var{FILE} をセットします。適切な接尾辞が追加さ@c
+れます (つまり、pdf ならば拡張子 @code{.pdf} が追加されます)。
+
+@item --ps
+PostScript を生成します。
+
+@item --png
+各ページの図を PNG フォーマットで生成します。これは内部で @code{--ps} を使用し@c
+ます。画像の DPI 解像度は以下のようにセットします:
+@example
+-dresolution=110
+@end example
+
+@item --pdf
+PDF を生成します。これは内部で @code{--ps} を使用します。
+
+
+
+@item -j,--jail=@var{user},@var{group},@var{jail},@var{dir}
+@command{lilypond} を chroot jail 環境で実行します。
+@c (訳者: chroot jail 環境とはセキュリティのためにカレント プロセスに対して@c
+ルート ディレクトリの位置を変更すること。)
+
+@code{--jail} オプションは、Web サーバを通じて LilyPond 譜刻を実行するときや 
+LilyPond が外部から提供されたソースを実行するときに、@code{--safe} よりも自由@c
+度の高い代替手段を提供します。
+
+@code{--jail} オプションはコンパイル プロセスの開始直前に @command{lilypond} の 
+ルートを @var{jail} に変更します。それからユーザとグループを提供された環境に@c
+マッチするように変更し、カレント ディレクトリは @var{dir} に変更されます。この@c
+セットアップは jail (牢獄) から抜け出せないということを (少なくとも理論的には) 
+保証します。@code{--jail} を指定した @command{lilypond} の実行はルート (ユーザ@c
+名) として行われる必要があります。通常、これは @command{sudo} を用いた安全な方@c
+法で行われます。
+
+jail のセットアップは少々デリケートな問題です。LilyPond がソースをコンパイルす@c
+るのに必要とされるものすべてを @emph{jail の内部} で見つけられるということを保@c
+証しなければならないからです。一般的なセットアップには以下の項目が含まれます:
+
+@table @asis
+@item 専用のファイルシステムをセットアップする
+@code{noexec}, @code{nodev}, @code{nosuid} などのセーフ オプションでマウントす@c
+るための専用ファイルシステムを作成すべきです。こうすることで、LilyPond から実@c
+行可能形式ファイルを実行したり、デバイスに直接書き込むことは不可能になります。@c
+専用のパーティションを作成することを望まないのなら、適当なサイズのファイルを作@c
+成し、それを使用してループ デバイス (ループバック デバイス) をマウントしてくだ@c
+さい。専用ファイルシステムはさらに、 LilyPond が許可されたディスク容量以上には@c
+書き込めないということを保証します。
+
+@item 専用のユーザをセットアップする
+jail 内部で LilyPond を実行する際、低い権限を持つ専用のユーザとグループ (仮に 
+@code{lily}/@code{lily} とします) で行うべきです。このユーザが書き込み可能な@c
+ディレクトリが 1 つだけ存在すべきであり、それを @var{dir} に渡します。
+
+@item jail の準備をする
+LilyPond は実行中にいくつかのファイルを読み込む必要があります。それらのファイ@c
+ルをすべて jail にコピーしておきます。それらのファイルが本当のルート ファイル@c
+システムで存在しているパスと同じパスにコピーします。LilyPond インストールの内@c
+容すべて (例えば、@file{/usr/share/lilypond}) をコピーすべきです。
+
+問題が発生した場合、その原因を突き止める最も簡単な方法は @command{strace} を@c
+使って LilyPond を実行することです。これによりどのファイルが見当たらないのかが@c
+わかります。
+
+@item LilyPond を実行する
+@code{noexec} でマウントされた jail の中では、外部プログラムを実行することは一@c
+切できません。そのため、外部プログラムを必要としないバックエンドで LilyPond を@c
+実行しなければなりません。すでに述べたように、jail モードでの LilyPond の実行@c
+はスーパーユーザ権限で行われなければなりません (もちろん、その権限はすぐに外さ@c
+れます)、たぶん @command{sudo} を使います。LilyPond が使用可能な CPU 時間を数@c
+秒に制限する (例えば、@command{ulimit -t} を使って) というのは良いアイディアで@c
+す。さらに、OS がサポートしているのなら、割り当て可能なメモリ容量を制限すると@c
+いうのも良いアイディアです。
+@end table
+
+
+@item -v,--version
+バージョン情報を表示します。
+
+@item -V,--verbose
+冗長表示モードにします: 読み込むすべてのファイルのフル パスを表示して、時間情@c
+報を表示します。
+
+@item -w,--warranty
+GNU LilyPond の保証責任を表示します。(GNU LilyPond には@strong{保証責任はあり@c
+ません}!)
+@end table
+
+@node Environment variables
+@subsection Environment variables
+
+@cindex LANG
+@cindex LILYPOND_DATADIR
+
+@command{lilypond} は以下の環境変数を認識します:
+@table @code
+@item LILYPOND_DATADIR
+これはデフォルトで参照するロケール メッセージとデータ ファイルがあるディレクト@c
+リを指定します。このディレクトリは @file{ly/}, @file{ps/}, @file{tex/} などの@c
+サブディレクトリを保持しているべきです。
+
+@item LANG
+これはワーニング メッセージの言語を選択します。
+
+@item LILYPOND_GC_YIELD
+この変数を使ってメモリ使用量とパフォーマンスを調節することができます。これはメ@c
+モリ管理の振る舞いを調整するパーセント値です。高い値にするとプログラムはより多@c
+くのメモリを使用し、低い値にするとより多くの CPU 時間を使用します。デフォルト@c
+値は @code{70} です。
+
+@end table
+
+
+@node Error messages
+@section Error messages
+
+@cindex error messages
+ファイルのコンパイルの最中にはさまざまなエラー メッセージが表示される可能性が@c
+あります。
+
+@table @emph
+
+@item Warning
+@cindex warning
+何か疑わしいことがあります。あなたが何か普通でないことをリクエストしている場合@c
+は、そのメッセージを理解して、それを無視することができます。しかしながら、@c
+Warning は通常、入力ファイルに何か問題があることを示しています。
+
+@item Error
+何か明らかに問題があります。カレントの処理ステップ (構文解析、構文解釈、フォー@c
+マット) は終了され、次のステップは飛ばされます。
+
+@item Fatal error
+@cindex error
+@cindex fatal error
+何か明らかに問題があり、LilyPond はコンパイルを続けられません。これが起きるこ@c
+とは稀です。これが起こるのはたいてい、フォントのインストールに問題があるためで@c
+す。
+
+@item Scheme error
+@cindex trace, Scheme
+@cindex call trace
+@cindex Scheme error
+Scheme コードの実行中に発生するこのエラーは Sceme インタプリタによって引き起こ@c
+されます。冗長オプション (@code{-V} または @code{--verbose}) 付きで実行してい@c
+る場合、問題となっている関数呼び出しの呼び出し追跡が表示されます。
+
+@item Programming error
+@cindex Programming error
+内部的な矛盾があります。このエラー メッセージはプログラマとデバッガを助けるこ@c
+とを意図したものです。通常、それらは無視できます。時々、それらは非常に大きな@c
+メッセージとなり、他の出力を見えにくくします。
+
+@item Aborted (core dumped)
+これは、プログラムをクラッシュさせる深刻なプログラミング エラーを示していま@c
+す。そのようなエラーは決定的なものだと考えられます。あなたがそのようなエラーで@c
+つまずいた場合、バグ レポートを送ってください。
+@end table
+
+@cindex errors, message format
+警告とエラーを入力ファイルのある部分にリンクさせることが可能な場合、エラー 
+メッセージは以下のような形式になります:
+
+@example
+@var{filename}:@var{lineno}:@var{columnno}: @var{message}
+@var{offending input line}
+@end example
+
+エラーが見つかった場所を示すために問題のある行に改行が挿入されます。例えば:
+
+@example
+test.ly:2:19: error: not a duration: 5
+  @{ c'4 e'
+           5 g' @}
+@end example
+
+これらの位置は LilyPond が警告やエラーが発生した位置を最善を尽くして推測したも@c
+のですが、(ごく当たり前のことですが) 警告とエラーは何か予期しないことが起こっ@c
+たときに発生するものです。入力ファイルの示された行にエラーを見つけることができ@c
+ない場合は、示された位置の 1 行か 2 行上をチェックしてみてください。
+
+
+@node Updating files with convert-ly
+@section Updating files with @command{convert-ly}
+
+@cindex Updating a LilyPond file
+@cindex convert-ly
+
+LilyPond の入力構文は、さまざまな方法で単純化または改善するために、定期的に変@c
+更されます。その副作用として、LilyPond のインタプリタはしばしば古い入力ファイ@c
+ルと互換性を持たなくなります。これを救済するために、プログラム 
+@command{convert-ly} を用いることで、たいていの LilyPond のバージョン間での構@c
+文変更を処理することができます。
+
+このプログラムは古いバージョン番号を検出するために入力ファイルの @code{version} 
+ステートメントを使用します。たいていの場合、あなたの入力ファイルをアップグレー@c
+ドするには以下を実行することで十分です:
+
+@example
+convert-ly -e myfile.ly
+@end example
+
+@noindent
+MacOS@tie{}X ユーザはこのコマンドをメニュー エントリ (@code{Compile > Update 
+syntax}) 下で実行することになるかもしれません。
+
+myfile.ly に変更が加えられず、myfile.ly.NEW というファイルが作成された場合、@c
+myfile.ly はすでに更新されています。
+
+@menu
+* Command line options for convert-ly::
+* Problems with convert-ly::
+@end menu
+
+@node Command line options for convert-ly
+@subsection Command line options for @command{convert-ly}
+
+@command{convert-ly} は常にそれが扱っている最新の構文変更に変換します。このこ@c
+とは、通常、ファイルの中にある @code{version} 番号は @command{convert-ly} 自体@c
+のバージョンよりも低いということを意味します。
+
+texinfo ファイルの中にある LilyPond 断片をアップグレードするには以下を使用して@c
+ください:
+
+@example
+convert-ly --from=... --to=... --no-version *.itely
+@end example
+
+2 つのバージョン間での LilyPond 構文の変更を調べるには、以下を使用してください:
+
+@example
+convert-ly --from=... --to=... -s
+@end example
+
+1 度に多くのファイルをアップグレードするには、@code{convert-ly} に標準 UNIX コ@c
+マンドを組み合わせてください。以下の例はカレント ディレクトリの中にあるすべての 
+@code{.ly} ファイルをアップグレードします:
+
+@example
+for f in *.ly; do convert-ly -e $f; done;
+@end example
+
+一般に、このプログラムは以下のように呼び出されます:
+
+@example
+convert-ly [@var{option}]@dots{} @var{file}@dots{}
+@end example
+
+
+以下のオプションを与えることができます:
+
+@table @code
+@item -e,--edit
+入力ファイルのインライン編集を行います。@code{--output} をオーバライドします。
+
+@item -f,--from=@var{from-patchlevel}
+変換元のバージョンをセットします。これがセットされていない場合、@c
+@command{convert-ly} は入力ファイルの中にある @code{version} 文字列を基に推測@c
+します。
+
+@item -n,--no-version
+通常、@command{convert-ly} は @code{\version} インジケータを出力に付け加えま@c
+す。このオプションを指定すると、それを抑制します。
+
+@item -s, --show-rules
+すべての変換を表示して、終了します。
+
+@item --to=@var{to-patchlevel}
+変換先のバージョンをセットします。デフォルトは利用可能な最新バージョンです。
+
+@item -h, --help
+使用方法についてのヘルプを表示します。
+@end table
+
+
+@node Problems with convert-ly
+@subsection Problems with @code{convert-ly}
+
+言語の変更がすべて処理されるわけではありません。指定できる出力オプションは 1 
+つだけです。自動的に Scheme と更新することと LilyPond の Scheme インタフェイス@c
+を更新することはまったく異なります。Scheme コードの調整は手動で行う覚悟でいて@c
+ください。
+
+convert-ly が処理できないことがいくつかあります。ここに、LilyPond コミュニティ@c
+がそのことについて訴えたリストを挙げます。
+
+convert-ly は必要とされるすべての変更をスムーズに実装できるような構造になって@c
+いないため、このようなバグ レポートがあります。
+
+@verbatim
+1.6->2.0:
+ Doesn't always convert figured bass correctly, specifically things like {<
+>}.  Mats' comment on working around this:
+   To be able to run convert-ly
+   on it, I first replaced all occurrences of '{<' to some dummy like '{#'
+   and similarly I replaced '>}' with '&}'.  After the conversion, I could
+   then change back from '{ #' to '{ <' and from '& }' to '> }'.
+ Doesn't convert all text markup correctly.  In the old markup syntax,
+ it was possible to group a number of markup commands together within
+parentheses, e.g.
+   -#'((bold italic) "string")
+   This will incorrectly be converted into
+   -\markup{{\bold italic} "string"}
+   instead of the correct
+   -\markup{\bold \italic "string"}
+2.0->2.2:
+ Doesn't handle \partcombine
+ Doesn't do \addlyrics => \lyricsto, this breaks some scores with multiple
+stanzas.
+2.0->2.4:
+ \magnify isn't changed to \fontsize.
+    - \magnify #m => \fontsize #f, where f = 6ln(m)/ln(2)
+ remove-tag isn't changed.
+    - \applyMusic #(remove-tag '. . .) => \keepWithTag #'. . .
+ first-page-number isn't changed.
+    - first-page-number no => print-first-page-number = ##f
+ Line breaks in header strings aren't converted.
+    - \\\\  as line break in \header strings => \markup \center-align <
+      "First Line" "Second Line" >
+ Crescendo and decrescendo terminators aren't converted.
+    - \rced => \!
+    - \rc => \!
+2.2->2.4:
+ \turnOff (used in \set Staff.VoltaBracket = \turnOff) is not properly
+converted.
+2.4.2->2.5.9
+ \markup{ \center-align <{ ... }> } should be converted to:
+ \markup{ \center-align {\line { ... }} }
+ but now, \line is missing.
+2.4->2.6
+ Special LaTeX characters such as $~$ in text are not converted to UTF8.
+2.8
+ \score{} must now begin with a music expression.  Anything else
+ (particularly \header{}) must come after the music.
+@end verbatim
+
+
+@node Reporting bugs
+@section Reporting bugs
+
+@cindex bugs
+@cindex reporting bugs
+
+クラッシュや間違った出力を発生させる入力があれば、それがバグです。我々の Google 
+バグ トラッカ上にカレント バグのリストがあります:
+
+@uref{http://code.google.com/p/lilypond/issues/list}
+
+ここにリスト アップされていないバグを発見した場合、以下の宛先にそのバグを報告@c
+してください:
+
+@uref{http://lilypond.org/web/devel/participating/bugs}
+
+レポートの中のバグの例は最小化して提出してください。我々には可能な限り小さくさ@c
+れてはいないレポートを調査するだけのリソースがありません。
diff --git a/Documentation/ja/user/scheme-tutorial.itely b/Documentation/ja/user/scheme-tutorial.itely
new file mode 100644 (file)
index 0000000..aaef210
--- /dev/null
@@ -0,0 +1,28 @@
+@c -*- coding: utf-8; mode: texinfo; documentlanguage: ja -*-
+@c This file is part of lilypond-learning.tely
+@ignore
+    Translation of GIT committish: 499a511d4166feaada31114e097f86b5e0c56421
+
+    When revising a translation, copy the HEAD committish of the
+    version that you are working on.  See TRANSLATION for details.
+@end ignore
+
+
+@node Scheme tutorial
+@appendix Scheme tutorial
+
+@untranslated
+
+
+@menu
+* Tweaking with Scheme::
+@end menu
+
+@node Tweaking with Scheme
+@appendixsec Tweaking with Scheme
+
+@untranslated
+
+
+
+@c -- SKELETON FILE --
diff --git a/Documentation/ja/user/setup.itely b/Documentation/ja/user/setup.itely
new file mode 100644 (file)
index 0000000..7177223
--- /dev/null
@@ -0,0 +1,340 @@
+@c -*- coding: utf-8; mode: texinfo; documentlanguage: ja -*-
+@c This file is part of lilypond-program.tely
+@ignore
+    Translation of GIT committish: 499a511d4166feaada31114e097f86b5e0c56421
+
+    When revising a translation, copy the HEAD committish of the
+    version that you are working on.  See TRANSLATION for details.
+@end ignore
+
+@c \version "2.12.0"
+
+@c Translators: Yoshiki Sawada
+@c Translation status: post-GDP
+
+
+@node Setup
+@chapter Setup
+
+この章では、インストール後に行う LilyPond と他の様々なプログラムのための様々な@c
+コンフィグレーション オプションについて議論します。この章はリファレンスと見な@c
+して差し支えないかもしれません: あなたに関係のある節だけを読んでください。
+
+@menu
+* Setup for specific Operating Systems::
+* Text editor support::
+* Point and click::
+@end menu
+
+@node Setup for specific Operating Systems
+@section Setup for specific Operating Systems
+
+この節では、特定の OS のために必要とされる追加のセットアップを実行する方法につ@c
+いて説明します。
+
+@menu
+* Setup for MacOS X::
+@end menu
+
+
+@node Setup for MacOS X
+@subsection Setup for MacOS X
+
+@subsubheading Using Python scripts on MacOS 10.3 or 10.4
+
+MacOS X 用の LilyPond バイナリは Python を提供しませんが、@command{convert-ly} 
+には Python 2.4 以降が必要です。そのため、あなたが MacOS 10.3 または 10.4 を@c
+使っているのなら、あなたは @uref{http://python.org/download/} から新しいバー@c
+ジョンの Python をインストールして、@command{convert-ly} と 
+@command{lilypond-book} の最初の行を以下のように編集する必要があります: あなた@c
+が新たにインストールした Python バイナリがあなたの @var{PATH} の中にある場合、@c
+最初の行を
+
+@example
+#!/usr/bin/env python
+@end example
+
+@noindent
+のように変更し、そうでない場合は、
+
+@example
+#!@var{/path/to/newly_installed/python}
+@end example
+
+と変更します。
+
+
+@subsubheading MacOS X on the command line
+
+MacOS@tie{}Xではスクリプト --- @command{lilypond-book}, @command{convert-ly},
+@command{abc2ly}, あるいは @command{lilypond} 自体のような --- は @code{.app} 
+ファイルの中に含まれています。それらは、それらをコマンド ラインから直接呼び出@c
+すことによって実行できます。例えば以下のようにです:
+
+@example
+@var{path/to}/LilyPond.app/Contents/Resources/bin/lilypond
+@end example
+
+@noindent
+
+@command{lilypond-book}, @command{convert-ly}, @command{abc2ly} などを含むその@c
+ディレクトリ (訳者: ファイルでは?) の中にある他のスクリプトについても同様です。
+
+他の方法としては、自動的にパスを追加するスクリプトを作成する方法があります。そ@c
+のようなスクリプトを保存するためのディレクトリを作成してください:
+
+@example
+mkdir -p ~/bin
+cd ~/bin
+@end example
+
+@code{lilypond} という名前のファイルを作成し、以下を記述してください:
+
+@example
+exec @var{path/to}/LilyPond.app/Contents/Resources/bin/lilypond "$@@"
+@end example
+
+@code{lilypond-book}, @code{convert-ly}, あなたが使用する他の補助プログラム 
+(@code{abc2ly}, @code{midi2ly} など) についても同様にしてください。上記のファ@c
+イルの中でただ @code{bin/lilypond} を @code{bin/convert-ly} (あるいは他のプロ@c
+グラム名) に置き換えるだけです。
+
+ファイルを実行可能形式にします:
+
+@example
+chmod u+x lilypond
+@end example
+
+さらに、このディレクトリをあなたのパスに追加します。あなたのホーム ディレクト@c
+リの中にある @code{.profile} というファイルを変更 (あるいは作成) して以下の記@c
+述を含めます:
+
+@example
+export PATH=$PATH:~/bin
+@end example
+
+@noindent
+このファイルは空行で終わっている必要があります。
+
+@var{path/to} は一般に @code{/Applications/} であるということに注意してくださ@c
+い。
+
+
+@node Text editor support
+@section Text editor support
+
+@cindex editors
+@cindex vim
+@cindex emacs
+@cindex modes, editor
+@cindex syntax coloring
+@cindex coloring, syntax
+
+LilyPond をサポートするテキスト エディタがいくつかあります。
+
+@menu
+* Emacs mode::
+* Vim mode::
+* jEdit::
+* TexShop::
+* TextMate::
+* LilyKDE::
+@end menu
+
+@node Emacs mode
+@subsection Emacs mode
+
+Emacs は @file{lilypond-mode} を持ちます。これはキーワード自動補完、インデント@c
+付け、LilyPond 特有の括弧マッチング、構文のカラーリング、便利なコンパイル 
+ショートカット、Info を使った LilyPond マニュアルの閲覧を提供します。あなたの@c
+プラットフォームに @file{lilypond-mode} がインストールされていない場合は、以下@c
+を読んでください。
+
+音楽を入力して LilyPond を実行するための Emacs モードは @file{elisp} ディレク@c
+トリの中にあるソース アーカイブの中に保持されています。それを @var{elispdir} 
+にインストールするには @command{make install} を実行します。@c
+@file{lilypond-init.el} は @var{load-path}@file{/site-start.d/} に置くか、@c
+@file{~/.emacs} または @file{~/.emacs.el} に付加すべきです。
+
+1 ユーザとして、あなたは以下の行を @file{~/.emacs} に付加する (あるいは変更する) 
+ことによってあなたのソース パス (例えば @file{~/site-lisp/}) をあなたの 
+@var{load-path} に付け加えたいと思うかもしれません:
+
+@c any reason we do not advise:  (push "~/site-lisp" load-path)
+@example
+(setq load-path (append (list (expand-file-name "~/site-lisp")) load-path))
+@end example
+
+
+@node Vim mode
+@subsection Vim mode
+
+@uref{http://@/www@/.vim@/.org,VIM} から @file{vimrc} と構文カラーリング ツー@c
+ルが入手できます。音楽を入力して LilyPond を実行するための Vim モードは 
+@code{$VIM} ディレクトリの中にあるソース アーカイブの中に保持されています。
+
+ファイル @file{~/.vim/filetype.vim} が以下の内容を保持している場合、LilyPond 
+ファイル タイプは検出されます:
+
+@example
+if exists("did_load_filetypes")
+  finish
+endif
+augroup filetypedetect
+  au! BufNewFile,BufRead *.ly           setf lilypond
+augroup END
+@end example
+
+以下の行を @file{~/.vimrc} 付加することによってパスをインクルードしてください。
+
+@example
+set runtimepath+=/usr/local/share/lilypond/$@{LILYPOND_VERSION@}/vim/
+@end example
+
+@noindent
+ここで、@code{$@{LILYPOND_VERSION@}} はあなたが使用している LilyPond のバー@c
+ジョンです。LilyPond が @file{/usr/local/} にインストールされていない場合は、@c
+パスを適切に書き換えてください。
+
+
+@node jEdit
+@subsection jEdit
+
+LilyPondTool は、LilyPond ソースを編集するために 
+@uref{http://@/www@/.jedit@/.org@/,jEdit} テキスト エディタのためのプラグイン@c
+として作成された最も機能豊富なテキスト ベース ツールです。その機能にはドキュ@c
+メントをより容易にセット アップするための歌詞サポートを持つドキュメント ウィ@c
+ザードと、高度なポイント&クリックをサポートする PDF ビューアが含まれます。ス@c
+クリーンショット、デモ、インストール手順については、@c
+@uref{http://lilypondtool@/.organum@/.hu} を参照してください
+
+
+@node TexShop
+@subsection TexShop
+
+MaxOS@tie{}X 用の @uref{http://@/www@/.uoregon@/.edu/~koch/texshop/index@/.html,
+TexShop} エディタは、
+@uref{http://@/www@/.dimi@/.uniud@/.it/vitacolo/freesoftware@/.html} で入手可@c
+能な拡張を使うことで、エディタから LilyPond, lilypond-book,
+convert-ly を実行できるように拡張することが可能です。
+
+
+@node TextMate
+@subsection TextMate
+
+TextMate 用の LilyPond バンドルがあります。以下を実行することでインストールで@c
+きるでしょう:
+
+@example
+mkdir -p /Library/Application\ Support/TextMate/Bundles
+cd /Library/Application\ Support/TextMate/Bundles
+svn co http://macromates.com/svn/Bundles/trunk/Bundles/Lilypond.tmbundle/
+@end example
+
+
+@node LilyKDE
+@subsection LilyKDE
+
+@uref{http://lilykde.googlecode.com/,LilyKDE} は KDE のテキスト エディタ 
+@uref{http://kate-editor.org/,Kate} 用のプラグインです。これは素早く LilyPond 
+ドキュメントをセットアップするためのパワフルな楽譜ウィザードと PDF ビューアを@c
+持ちます。
+
+LilyKDE は @uref{http://www.volny.cz/smilauer/rumor/,Rumor} を使うことができる@c
+ため、MIDI キーボードで演奏することで音楽を入力することができます。
+
+他の機能として、歌詞のハイフン付けする機能や KDE ファイル マネージャから複数の@c
+ファイルを含めて LilyPond を実行する機能があります。
+
+
+@node Point and click
+@section Point and click
+@cindex point and click
+
+
+ポイント&クリックは PDF ビューアの中で表記をクリックすることで入力表記を見つ@c
+け出すことを可能にします。これは楽譜の中でエラーを引き起こす入力をより容易に見@c
+つけ出すことを可能にします。
+
+この機能がアクティブな場合、LilyPond は PDF ファイルにハイパーリンクを付け加え@c
+ます。これらのハイパーリンクは Web ブラウザに送られ、Web ブラウザはカーソルを@c
+持つテキスト エディタを適切な位置に開きます。
+
+この一連の動作を有効にするには、PDF ビューアが LilyPond で提供される 
+@file{lilypond-invoke-editor} スクリプトを使ってハイパーリンクを追うようにコン@c
+フィグレーションする必要があります。
+
+UNIX の Xpdf では、@file{xpdfrc}@footnote{UNIXでは、このファイルは 
+@file{/etc/xpdfrc} かホーム ディレクトリの中の @file{.xpdfrc} としてのどちらか@c
+です。} の中に以下の記述が必要です:
+@example
+urlCommand     "lilypond-invoke-editor %s"
+@end example
+
+プログラム @file{lilypond-invoke-editor} は小さな援助プログラムです。これは特@c
+別な @code{textedit} URI に対してエディタを呼び出します。このプログラムは環境@c
+変数 @code{EDITOR} を以下のパターンに従ってテストします:
+
+@table @code
+@item emacs
+  このプログラムは以下を呼び出します
+@example
+emacsclient --no-wait +@var{line}:@var{column} @var{file}
+@end example
+@item vim
+  このプログラムは以下を呼び出します
+@example
+gvim --remote +:@var{line}:norm@var{char} @var{file}
+@end example
+
+@item nedit
+  このプログラムは以下を呼び出します
+@example
+  nc -noask +@var{line} @var{file}'
+@end example
+@end table
+
+環境変数 @code{LYEDITOR} はこれをオーバライドするために使用されます。これには@c
+エディタを起動するためのコマンド ラインを含み、
+@code{%(file)s}, 
+@code{%(column)s}, @code{%(line)s} 
+@ignore
+
+@end ignore
+はそれぞれ、ファイル、列、行で置換されます。@code{LYEDITOR} に対する設定
+
+@example
+emacsclient --no-wait +%(line)s:%(column)s %(file)s
+@end example
+
+@noindent
+は標準の emacsclient 呼び出しと等価です。
+
+
+@cindex file size, output
+
+ポイント&クリック リンクは出力ファイルをかなり大きなものにします。PDF ファイ@c
+ルや PS ファイルのサイズを減らすために、@file{.ly} ファイルに以下の記述をする@c
+ことでポイント&クリックを OFF にするかもしれません:
+
+@example
+\pointAndClickOff
+@end example
+
+@noindent
+ポイント&クリックは以下の記述で明示的に ON になります:
+
+@example
+\pointAndClickOn
+@end example
+
+他の手段として、コマンド ライン オプションでポイント&クリックを OFF にできます:
+
+@example
+lilypond -dno-point-and-click file.ly
+@end example
+
+@warning{あなたは配布する LilyPond ファイルでは常にポイント&クリックを OFF に@c
+すべきです。ポイント&クリックを ON にすると .pdf ファイルの中にあなたのコン@c
+ピュータのパス情報が含まれるため、セキュリティ リスクとなる可能性があります。}
diff --git a/Documentation/ja/user/templates.itely b/Documentation/ja/user/templates.itely
new file mode 100644 (file)
index 0000000..5919a46
--- /dev/null
@@ -0,0 +1,320 @@
+@c -*- coding: utf-8; mode: texinfo; documentlanguage: ja -*-
+@c This file is part of lilypond-learning.tely
+@ignore
+    Translation of GIT committish: 499a511d4166feaada31114e097f86b5e0c56421
+
+    When revising a translation, copy the HEAD committish of the
+    version that you are working on.  See TRANSLATION for details.
+@end ignore
+
+@c \version "2.12.0"
+
+
+@c Translators: Yoshiki Sawada
+@c Translation status: post-GDP
+
+
+@node Templates
+@appendix Templates
+
+このセクションにはセットアップ済みの LilyPond 楽譜を持つテンプレートがあります。音符を付け加えて、LilyPond を実行してください。あとは美しく譜刻された楽譜をお楽しみください!
+
+
+@menu
+* Single staff::
+* Piano templates::
+* String quartet::
+* Vocal ensembles::
+* Ancient notation templates::
+* Jazz combo::
+* lilypond-book templates::
+@end menu
+
+
+@node Single staff
+@appendixsec Single staff
+
+@appendixsubsec Notes only
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,addversion]
+{single-staff-template-with-only-notes.ly}
+
+@appendixsubsec Notes and lyrics
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,addversion]
+{single-staff-template-with-notes-and-lyrics.ly}
+
+@appendixsubsec Notes and chords
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+{single-staff-template-with-notes-and-chords.ly}
+
+@appendixsubsec Notes, lyrics, and chords.
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+{single-staff-template-with-notes,-lyrics,-and-chords.ly}
+
+
+@node Piano templates
+@appendixsec Piano templates
+
+@appendixsubsec Solo piano
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+{piano-template-simple.ly}
+
+@appendixsubsec Piano and melody with lyrics
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+{piano-template-with-melody-and-lyrics.ly}
+
+@appendixsubsec Piano centered lyrics
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+{piano-template-with-centered-lyrics.ly}
+
+@appendixsubsec Piano centered dynamics
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+{piano-template-with-centered-dynamics.ly}
+
+
+@node String quartet
+@appendixsec String quartet
+
+@appendixsubsec String quartet
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+{string-quartet-template-simple.ly}
+
+@appendixsubsec String quartet parts
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+{string-quartet-template-with-separate-parts.ly}
+
+
+@node Vocal ensembles
+@appendixsec Vocal ensembles
+
+@appendixsubsec SATB vocal score
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+{vocal-ensemble-template.ly}
+
+@appendixsubsec SATB vocal score and automatic piano reduction
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+{vocal-ensemble-template-with-automatic-piano-reduction.ly}
+
+@appendixsubsec SATB with aligned contexts
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+{vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly}
+
+
+@c bad node name to avoid node name conflict
+@node Ancient notation templates
+@appendixsec Ancient notation templates
+
+@appendixsubsec Transcription of mensural music
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+{ancient-notation-template----modern-transcription-of-mensural-music.ly}
+
+@appendixsubsec Gregorian transcription template
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+{ancient-notation-template----modern-transcription-of-gregorian-music.ly}
+
+
+@node Jazz combo
+@appendixsec Jazz combo
+
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+{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.12.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
+
+
+@node lilypond-book templates
+@appendixsec lilypond-book templates
+
+These templates are for use with @code{lilypond-book}.  If you're not familiar
+with this program, please refer to @rprogram{LilyPond-book}.
+
+@appendixsubsec LaTeX
+
+You can include LilyPond fragments in a LaTeX document.
+
+@example
+\documentclass[]@{article@}
+
+\begin@{document@}
+
+Normal LaTeX text.
+
+\begin@{lilypond@}
+\relative c'' @{
+a4 b c d
+@}
+\end@{lilypond@}
+
+More LaTeX text.
+
+\begin@{lilypond@}
+\relative c'' @{
+d4 c b a
+@}
+\end@{lilypond@}
+\end@{document@}
+@end example
+
+@appendixsubsec Texinfo
+
+You can include LilyPond fragments in Texinfo; in fact, this entire manual
+is written in Texinfo.
+
+@example
+\input texinfo
+@@node Top
+
+Texinfo text
+
+@@lilypond[verbatim,fragment,ragged-right]
+a4 b c d
+@@end lilypond
+
+More Texinfo text
+
+@@lilypond[verbatim,fragment,ragged-right]
+d4 c b a
+@@end lilypond
+
+@@bye
+@end example
+
+
+@appendixsubsec xelatex
+
+@verbatim
+\documentclass{article}
+\usepackage{ifxetex}
+\ifxetex
+%xetex specific stuff
+\usepackage{xunicode,fontspec,xltxtra}
+\setmainfont[Numbers=OldStyle]{Times New Roman}
+\setsansfont{Arial}
+\else
+%This can be empty if you are not going to use pdftex
+\usepackage[T1]{fontenc}
+\usepackage[utf8]{inputenc}
+\usepackage{mathptmx}%Times
+\usepackage{helvet}%Helvetica
+\fi
+%Here you can insert all packages that pdftex also understands
+\usepackage[ngerman,finnish,english]{babel}
+\usepackage{graphicx}
+
+\begin{document}
+\title{A short document with LilyPond and xelatex}
+\maketitle
+
+Normal \textbf{font} commands inside the \emph{text} work,
+because they \textsf{are supported by \LaTeX{} and XeteX.}
+If you want to use specific commands like \verb+\XeTeX+, you
+should include them again in a \verb+\ifxetex+ environment.
+You can use this to print the \ifxetex \XeTeX{} command \else
+XeTeX command \fi which is not known to normal \LaTeX .
+
+In normal text you can easily use LilyPond commands, like this:
+
+\begin{lilypond}
+{a2 b c'8 c' c' c'}
+\end{lilypond}
+
+\noindent
+and so on.
+
+The fonts of snippets set with LilyPond will have to be set from
+inside
+of the snippet. For this you should read the AU on how to use
+lilypond-book.
+
+\selectlanguage{ngerman}
+Auch Umlaute funktionieren ohne die \LaTeX -Befehle, wie auch alle
+anderen
+seltsamen Zeichen: __ ______, wenn sie von der Schriftart
+unterst__tzt werden.
+\end{document}
+@end verbatim
+
+
diff --git a/Documentation/ja/user/tutorial.itely b/Documentation/ja/user/tutorial.itely
new file mode 100644 (file)
index 0000000..d0365d3
--- /dev/null
@@ -0,0 +1,1763 @@
+@c -*- coding: utf-8; mode: texinfo; documentlanguage: ja -*-
+@c This file is part of lilypond-learning.tely
+@ignore
+    Translation of GIT committish: 499a511d4166feaada31114e097f86b5e0c56421
+
+    When revising a translation, copy the HEAD committish of the
+    version that you are working on.  See TRANSLATION for details.
+@end ignore
+
+@c \version "2.12.0"
+
+@ignore
+Tutorial guidelines:  (different from policy.txt!)
+- unless you have a really good reason, use either
+    @lilypond[verbatim,quote]
+  or
+    @lilypond[verbatim,quote,relative=2]
+
+  Don't use any other relative=X commands.
+
+- use "aes" and "ees" instead of "as" and "es".  I know it's not
+  correct Dutch naming, but let's not confuse people with this
+  until we get to the Basic notation chapter.
+
+- Add "Music Glossary: @rglos{foo}" to the *top* of the relevant
+  portions of the tutorial.
+
+@end ignore
+
+
+@c Translators: Yoshiki Sawada
+@c Translation status: post-GDP
+
+
+@node Tutorial
+@chapter Tutorial
+
+このチュートリアルではまず LilyPond 音楽言語についての紹介を行い、楽譜を作り出す方法について説明します。LilyPond との最初の接触の後、我々は一般的な音楽表記を持つ楽譜を作成する方法について説明します。
+
+@menu
+* First steps::
+* Single staff notation::
+* Multiple notes at once::
+* Songs::
+* Final touches::
+@end menu
+
+
+@node First steps
+@section First steps
+
+この節は LilyPond に取り組むための基本的な入門書です。
+
+@menu
+* Compiling a file::
+* Simple notation::
+* Working on input files::
+* How to read the manual::
+@end menu
+
+
+@node Compiling a file
+@subsection Compiling a file
+
+@cindex compiling
+@cindex first example
+@cindex example, first
+@cindex case sensitive
+
+@qq{コンパイル} は LilyPond フォーマットで書かれた入力ファイルを印刷可能なファイルを作り出すため、そして (オプションとして) 演奏可能な MIDI ファイルを作り出すために処理することを意味する用語です。LilyPond 入力ファイルはシンプルなテキストファイルです。最初の例ではシンプルな入力ファイルがどのようなものかを示します。
+
+楽譜を作成するために、我々は表記を指定する入力ファイルを書きます。例えば、以下のように書くと:
+
+@example
+@{
+  c' e' g' e'
+@}
+@end example
+
+@noindent
+結果は以下のようになります。
+
+@c  in this case we don't want verbatim
+@lilypond[quote]
+{
+  c' e' g' e'
+}
+@end lilypond
+
+@c !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+@c strong内で {} を使用しようとした場合、なぜか下記のような表記にしなければエラーが発生した
+@c !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+@warning{LilyPond 入力の音符と歌詞は、
+@strong{@code{@{}} @strong{中括弧} @strong{@code{@}}}
+で囲まれている必要があります。さらに、あいまいさを避けるために、中括弧は行の最初か最後でない限りはスペースによって囲まれているべきです。中括弧はこのマニュアルのいくつかの例では省略されているかもしれませんが、あなた自身が作成する楽譜では忘れないでください!マニュアルの中にある例を表示する方法についての更なる情報については、@ref{How to read the manual} を参照してください。}
+
+さらに、LilyPond 入力は@strong{大文字/小文字}の区別 があります。@w{@code{@{ c d e @}}} は有効な入力ですが、@w{@code{@{ C D E @}}} はエラーになります。
+
+@smallspace
+
+
+@subheading Entering music and viewing output
+@c 音楽の入力と出力の閲覧
+
+@cindex PDF file
+@cindex viewing music
+@cindex text editors
+@cindex running LilyPond under MacOS X
+@cindex MacOS X, running LilyPond
+@cindex running LilyPond under Windows
+@cindex Windows, running LilyPond
+@cindex running LilyPond under Unix
+@cindex Unix, running LilyPond
+
+ここでは、実行すべきコマンドと、出力を閲覧または印刷する方法について説明します。
+
+LilyPond に対してより良いサポートを提供するテキスト エディタがいくつかあります。更なる情報は @rprogram{Text editor support} を参照してください。
+@c LilyPond をサポートする テキスト エディタ (Text editor support)
+
+@warning{あなたが初めて LilyPond を実行した場合、1, 2 分かかるかもしれません。なぜなら、まず最初にすべてのシステム フォントが分析されるからです。それから後は、LilyPond はずっと早く実行されます!}
+
+
+@subsubheading MacOS X
+
+@command{LilyPond.app} をダブル クリックすると、見本となるファイルが開きます。それを -- 例えば @file{test.ly} という名前で -- Desktop に保存し、それをメニュー コマンド @w{@code{Compile > Typeset File}} で処理します。結果の PDF ファイルがスクリーン上に表示されます。
+
+この先の LilyPond の使用のために、あなたは @qq{New} または @qq{Open} を選択することによって開始すべきです。植字を行う (訳者: コンパイルする) 前に、あなたはあなたのファイルを保存しなければなりません。処理中にエラーが発生した場合、ログ ウィンドを見てください。
+
+
+@subsubheading Windows
+
+Windows では、デスクトップ上の LilyPond アイコンをダブル クリックした場合、シンプルなテキスト エディタで見本ファイルが開きます。それを -- 例えば @file{test.ly} という名前で -- デスクトップ上に保存し、そのファイルを処理するためにそのファイルをダブル クリックします (そのファイルのアイコンはノートのような形をしています)。数秒後、デスクトップ上に @file{test.pdf} というファイルが作成されます。刻譜された楽譜を見るにはこの PDF ファイルをダブル クリックします。@file{test.ly} ファイルを処理するためのもう 1 つの方法は、マウス ポインタを使ってそのファイルを LilyPond アイコンにドラッグ&ドロップします。
+
+既存の @file{.ly} を編集するには、そのファイルを右クリックして @qq{Edit source} を選択します。LilyPond 入力を開始するための空ファイルを作成するには、上記と同じようにしてエディタを開き、@qq{ファイル} メニューの中にある @qq{新規作成} を使用するか、デスクトップ上で右クリックして @qq{新規作成 ... テキスト文書} を選択して、そのテキスト ファイルの名前を変更して、ファイル拡張子を @file{.ly} に変更します。LilyPond ソース コードに入力するには前述と同様にアイコンを右クリックします。
+
+ファイルをダブル クリックすると、結果として PDF ファイルが出力されるだけではなく、LilyPond がそのファイルに対して行ったことについての情報を保持する @file{.log} ファイルも生成されます。エラーが発生した場合、このファイルを検証してください。
+
+
+@subsubheading UNIX
+@file{test.ly} という名前のテキスト ファイルを作成し、以下を入力します:
+@example
+@{
+  c' e' g' e'
+@}
+@end example
+
+@file{test.ly} を処理するには以下のようにします:
+
+@example
+lilypond test.ly
+@end example
+
+@noindent
+以下のようなものが表示されます:
+
+@example
+lilypond test.ly
+GNU LilyPond @version{}
+Processing `test.ly'
+Parsing...
+Interpreting music...
+Preprocessing graphical objects...
+Finding the ideal number of pages...
+Fitting music on 1 page...
+Drawing systems...
+Layout output to `test.ps'...
+Converting to `test.pdf'...
+@end example
+
+
+@node Simple notation
+@subsection Simple notation
+
+@cindex simple notation
+@cindex notation, simple
+
+LilyPond はいくつかの表記要素を自動的に追加します。次の例では、我々は 4 つの音高 (ピッチ) を指定しただけですが、LilyPond が音部記号、拍子記号、韻律を加えています。
+
+@lilypond[verbatim,quote]
+{
+  c' e' g' e'
+}
+@end lilypond
+
+@noindent
+この挙動は変更されるかもしれませんが、たいていのケースではこれらの自動値は役に立ちます。
+
+
+@subheading Pitches
+@c 音高
+
+@cindex pitches
+@cindex relative mode
+@cindex quote, single
+@cindex comma
+@cindex accidentals and relative mode
+@cindex relative mode, and accidentals
+
+@funindex \relative
+@funindex relative
+@funindex '
+@funindex ,
+
+音楽用語集: @rglos{pitch}, @rglos{interval},
+@rglos{scale}, @rglos{middle C}, @rglos{octave},
+@rglos{accidental}
+@c 音高 (pitch), 音程 (interval), 音階 (scale), ミドル C (middle C), オクターブ (octave), 臨時記号 (accidental)
+音符を入力するための最も簡単な方法は @code{\relative} モードを使用することです。このモードでは、後に続く音符は常に前の音符に最も近い場所になるという仮定によって自動的にオクターブが選択されます。つまり、音符は前の音符から 3 譜表スペース (訳者: 1 譜表スペースとは同じ音階のド→レ、レ→ミ、~の間隔のこと) 以内に置かれます。我々はまず音楽の最も基本的な要素 -- @notation{音階} (ここでは各音符は前の音符からちょうど 1 譜表スペースの位置にきます) -- からはじめます。
+
+@lilypond[verbatim,quote]
+% set the starting point to middle C
+% ミドル C から始めます
+\relative c' {
+  c d e f
+  g a b c
+}
+@end lilypond
+
+最初の音符は@notation{ミドル C} です。一連の音符はそれぞれ前の音符と最も近い場所に置かれています -- 言い換えると、最初の @code{c} はミドル C に最も近い C です。これに前の音符に最も近い D が続きます。我々は @code{\relative} モードだけを使ってより大きな音程を持つ旋律を作ることができます:
+
+@lilypond[verbatim,quote]
+\relative c' {
+  d f a g
+  c b f d
+}
+@end lilypond
+
+@noindent
+旋律の最初の音符が開始音高を指定している音符である必要はありません。前の例では、最初の音符 -- @code{d} -- はミドル C に最も近い D です。
+
+@code{@w{\relative c' @{}} コマンドにクォート @code{'} やカンマ @code{,} を付け加える (あるいは取り除く) ことによって、開始オクターブを変更することができます:
+
+@lilypond[verbatim,quote]
+% one octave above middle C
+% % ミドル C より 1 オクターブ上から開始します
+\relative c'' {
+  e c a c
+}
+@end lilypond
+
+相対モードは最初のうちは混乱を引き起こす可能性がありますが、たいていの旋律を入力するのに最も容易な方法です。相対計算が実際にどのように行われるのか見てみましょう。B -- ト音記号の譜面の真ん中の譜線上にあります -- から開始すると、C, D, E は上方向に 3 譜表スペース以内にあり、A, G, F は下方向に 3 譜表スペース以内にあります。そのため、B の後に続く音符が C, D, E である場合、その音符は B の上に置かれ、A, G, F である場合は B の下に置かれます。
+
+@lilypond[verbatim,quote]
+\relative c'' {
+  b c  % c is 1 staff space up, so is the c above
+       % c は 1 譜表スペース上なので、c は上になります
+  b d  % d is 2 up or 5 down, so is the d above
+       % d は 2 譜表スペース上あるいは 5 譜表スペース下なので、d は上になります
+  b e  % e is 3 up or 4 down, so is the e above
+       % e は 3 譜表スペース上あるいは 4 譜表スペース下なので、e は上になります
+  b a  % a is 6 up or 1 down, so is the a below
+       % a は 6 譜表スペース上あるいは 1 譜表スペース下なので、a は下になります
+  b g  % g is 5 up or 2 down, so is the g below
+       % g は 5 譜表スペース上あるいは 2 譜表スペース下なので、g は下になります
+  b f  % f is 4 up or 3 down, so is the f below
+       % f は 4 譜表スペース上あるいは 3 譜表スペース下なので、f は下になります
+}
+@end lilypond
+
+これらの音符のいずれかにシャープやフラットが付いたとしてもまったく同じことが起こります。相対位置の算出時に@notation{臨時記号}は@strong{完全に無視}されます。譜表上の他のいずれかの位置にある音符からの譜表スペース数もまったく同じです。
+
+3 譜表スペースよりも大きな音程を加えるために、シングル クォート @code{'} (あるいはアポストロフィ) を音符名に付け加えることによって@notation{オクターブ}を上げることができます。音符名にカンマ @code{,} を付け加えることによってオクターブを下げることができます。
+
+@lilypond[verbatim,quote]
+\relative c'' {
+  a a, c' f,
+  g g'' a,, f'
+}
+@end lilypond
+
+@noindent
+音符を 2 オクターブ (あるいはそれ以上) 変えるには、複数化した @code{''} や @code{,,} を使用します -- しかしながら、1 つのダブル クォート @code{"} ではなく、2 つのシングル クォートを使用するよう注意してください!また、@code{@w{\relative c'}} の中の最初の値もこのように変更されるかもしれません。
+@c " - keeps quotes in order for context-sensitive editor -td
+
+
+@subheading Durations (rhythms)
+@c 演奏時間 (原語: Durations, リズム)
+
+@cindex note durations
+@cindex durations
+@cindex rhythms
+@cindex whole note
+@cindex half note
+@cindex quarter note
+@cindex dotted note
+@cindex notating durations
+
+音楽用語集: @rglos{beam}, @rglos{duration},
+@rglos{whole note}, @rglos{half note}, @rglos{quarter note},
+@rglos{dotted note}
+@c ビーム (beam), 演奏時間 (duration), 全音符 (whole note), 半音符 (half note), 4 分音符 (quarter note), 付点音符 (dotted note)
+
+音符の@notation{演奏時間}は音符名の後の番号によって指定されます。@notation{全音符}には @code{1} を、@notation{半音符}には @code{2} を、@notation{4 分音符}には @code{4} を、などです。@notation{ビーム} (ステムとステムをつなぐ横棒。ステムはノート ヘッドから上下にでる縦棒。ノート ヘッドは音符の玉) は自動的に追加されます。
+
+あなたが演奏時間を指定しなかった場合、前の音符の演奏時間が次の音符の演奏時間に対しても使用されます。最初の音符のデフォルトの演奏時間は 4 分音符です。
+
+@lilypond[verbatim,quote]
+\relative c'' {
+  a1
+  a2 a4 a8 a
+  a16 a a a a32 a a a a64 a a a a a a a a2
+}
+@end lilypond
+
+@notation{付点音符}を作成するには、演奏時間数にドット @code{.} を付け加えます。付点音符の演奏時間は明記されなければなりません (つまり、数字で)。
+
+@lilypond[verbatim,quote]
+\relative c'' {
+  a a a4. a8
+  a8. a16 a a8. a8 a4.
+}
+@end lilypond
+
+
+@subheading Rests
+@c 休符
+
+@cindex rest
+@cindex notating rests
+
+音楽用語集: @rglos{rest}
+@c 休符 (rest)
+
+@notation{休符}は @code{r} という名前の音符のような形で入力されます:
+
+@lilypond[verbatim,quote]
+\relative c'' {
+  a r r2
+  r8 a r4 r4. r8
+}
+@end lilypond
+
+
+@subheading Time signature
+@c 拍子記号
+
+@cindex time signature
+
+@funindex \time
+@funindex time
+
+音楽用語集: @rglos{time signature}
+@c 拍子記号 (time signature)
+
+@notation{拍子記号}は @code{\time} コマンドでセットすることができます:
+
+@lilypond[verbatim,quote]
+\relative c'' {
+  \time 3/4
+  a4 a a
+  \time 6/8
+  a4. a
+  \time 4/4
+  a4 a a a
+}
+@end lilypond
+
+
+@subheading Clef
+@c 音部記号
+
+@cindex clef
+@cindex treble
+@cindex alto
+@cindex tenor
+@cindex bass
+
+@funindex \clef
+@funindex clef
+
+音楽用語集: @rglos{clef}
+@c : 音部記号 (clef)
+
+@notation{音部記号}は @code{\clef} コマンドを使ってセットすることができます:
+
+@lilypond[verbatim,quote]
+\relative c' {
+  \clef treble
+  c1
+  \clef alto
+  c1
+  \clef tenor
+  c1
+  \clef bass
+  c1
+}
+@end lilypond
+
+
+@subheading All together
+@c すべてをまとめて
+
+以上の要素をすべて集めたちょっとした例をお見せします:
+
+@lilypond[verbatim,quote]
+\relative c, {
+  \time 3/4
+  \clef bass
+  c2 e8 c' g'2.
+  f4 e d c4 c, r4
+}
+@end lilypond
+
+
+@seealso
+@c 参照
+表記リファレンス: @ruser{Writing pitches},
+@ruser{Writing rhythms}, @ruser{Writing rests},
+@ruser{Time signature}, @ruser{Clef}
+@c 音高を書く, リズムを書く, 休符を書く, 拍子記号, 音部記号
+
+
+@node Working on input files
+@subsection Working on input files
+
+@cindex curly braces
+@cindex braces, curly
+@cindex comments
+@cindex line comment
+@cindex comment, line
+@cindex block comment
+@cindex comment, line
+@cindex case sensitive
+@cindex whitespace insensitive
+@cindex expressions
+
+@funindex { ... }
+@funindex %
+@funindex %@{ ... %@}
+
+LilyPond 入力ファイルは多くの一般的なプログラミング言語のソース ファイルと同じようなものです。それらは大文字/小文字の区別があり、空白はたいてい無視されます。表記は中括弧 @{ @} で囲まれ、@code{%} または @w{@code{%@{ .. %@}}} でコメントになります。
+
+上の文章があなたにとって意味不明だとしても、心配ありません!我々がそれらの用語の意味を説明します:
+
+@itemize
+
+@item
+@strong{大文字/小文字の区別}:
+あなたが小文字 (つまり、@w{@code{a, b, s, t)}} で入力するか、大文字 (つまり、@w{@code{A, B, S, T}}) で入力するかの違いです: @w{@code{@{ c d e @}}} は有効な入力ですが、@w{@code{@{ C D E @}}} ではエラーになります。
+
+@item
+@strong{空白は無視される}:
+あなたがどれくらい多くのスペース (または新しい行) を追加しても問題にならないということです。@w{@code{@{ c d e @}}} は @w{@code{@{ c @tie{}} @tie{} @tie{} d e @}} や以下と同じ意味になります:
+
+@example
+@{ c                        d
+                   e   @}
+@end example
+
+@noindent
+もちろん、このような書き方をすると読みにくいです。見やすい書き方は、コード ブロックにタブか 2 つのスペースでインデントを付けることです:
+
+@example
+@{
+  c d e
+@}
+@end example
+
+@item
+@strong{表記}:
+LilyPond 入力の各部分は @strong{@{ 中括弧 @}} で囲まれている必要があります。これらの中括弧は LilyPond に入力が単一の音楽表記であることを教えます。これはちょうど数学での括弧 @code{()} のようなものです。あいまいさを避けるために、中括弧は行の先頭か終端にないかぎりスペースで囲まれているべきです。
+
+中括弧で囲まれた表記が後に続く LilyPond コマンド (@w{@code{\relative @{ @}}} など) もまた単一の音楽表記としてカウントされます。
+
+@cindex comments
+@cindex line comment
+@cindex block comment
+@item
+@strong{コメント}:
+コメントは音楽入力を読む人間のための注釈です。これは構文解析中には無視されるため、譜刻される出力には影響を与えません。コメントには 2 つのタイプがあります。パーセント記号 @code{%} は行コメントになります。@code{%} の後の文字は無視されます。慣習上、行コメントはそのコメントが参照するコードの上に置かれます。
+
+@example
+a4 a a a
+% this comment refers to the Bs
+b2 b
+@end example
+
+ブロック コメントは音楽入力のある部分全体をコメントにします。@code{%@{} と @code{%@}} で囲まれた部分は無視されます。しかしながら、ブロック コメントを @q{ネスト} させることはできません。このことはあるブロック コメントを他のブロック コメントの中に置くことはできないということを意味します。そうした場合、最初の @code{%@}} は両方のブロック コメントを終わらせてしまいます。以下のコード断片はコメントの使用例を示しています:
+
+@example
+% notes for twinkle twinkle follow
+% 以下はキラキラ星です
+  c4 c g' g a a g2
+
+%@{
+  This line, and the notes below are ignored,
+  since they are in a block comment.
+  この行と以下の音符は無視されます。
+  なぜなら、これらはブロック コメントの中にあるからです
+
+  f f e e d d c2
+%@}
+@end example
+
+@end itemize
+
+
+@node How to read the manual
+@subsection How to read the manual
+
+@cindex how to read the manual
+@cindex manual, reading
+@cindex reading the manual
+@cindex examples, clickable
+@cindex clickable examples
+@cindex tips for constructing files
+@cindex templates
+@cindex constructing files, tips
+@cindex files, tips for constructing
+
+@ref{Working on input files} で見てきたように、LilyPond 入力は @{ @} マークか @code{@w{\relative c'' @{ ... @}}} で囲まれていなければなりません。このマニュアルの残りの部分では、たいていの例はこのことを省略しています。このマニュアルにある例を複製するためにあなたは表示されいている入力をコピーするかもしれませんが、あなたは以下のように @code{@w{\relative c'' @{ @}}} を付け加えなければなりません:
+
+@example
+\relative c'' @{
+  ... example goes here...
+  ... 例がここに来ます ...
+@}
+@end example
+
+なぜ中括弧を省略するのか?このマニュアルの中のたいていの例はより大きな音楽の途中に挿入することができます。これらの例に対して @code{@w{\relative c'' @{ @}}} を付け加えることには意味がありません -- あなたはある @code{\relative} を他の @code{\relative} の中に置くべきではありません!すべての例の周りに @code{@w{\relative c'' @{ @}}} を置いてしまうと、あなたは小さな例をコピーして、それをより大きなあなた自身の音楽の中にペーストすることができなくなってしまいます。たいていの人は資料を既存の楽曲に付け加えようとしますので、我々はそのようにマニュアルを形作っています。
+
+
+@subheading Clickable examples
+@c クリック可能な例
+
+多くの人々はすでにあるプログラムを試したり、いじったりすることでプログラムを学びます。これは LilyPond でも可能です。このマニュアルの HTML バージョンの中にある画像をクリックすると、画像を生成するために使用された正確な LilyPond 入力を見ることができます。以下の画像を試してみてください:
+
+@c no verbatim here
+@lilypond[quote]
+\relative c'' {
+  c-\markup { \bold \huge { Click here.  } }
+}
+@end lilypond
+
+@q{ly 断片} セクションにある記述をカット&ペーストすることによって、あなたは LilyPond を経験するための開始テンプレートを入手できます。まったく同じもの (線の太さなどもすべて同じ) を出力させるには、@qq{Start cut-&-pastable section} からファイルの最後までをコピーしてください。
+
+
+@seealso
+@ref{Suggestions for writing LilyPond input files} に入力ファイルを構築するための更なる TIPS があります。しかしながら、まずはこのチュートリアルの残りの部分を読み終えることが大切です。
+@c LilyPond 入力ファイルの書き方の提案
+
+
+@node Single staff notation
+@section Single staff notation
+
+この節はでは 1 つの譜表の上にある 1 つの声部のために使用される一般的な表記を紹介します。
+
+@menu
+* Accidentals and key signatures::
+* Ties and slurs::
+* Articulation and dynamics::
+* Adding text::
+* Automatic and manual beams::
+* Advanced rhythmic commands::
+@end menu
+
+
+@node Accidentals and key signatures
+@subsection Accidentals and key signatures
+
+
+@subheading Accidentals
+
+@cindex accidentals
+@cindex accidentals and key signatures
+@cindex sharp
+@cindex double sharp
+@cindex sharp, double
+@cindex flat
+@cindex double flat
+@cindex flat, double
+
+@funindex es
+@funindex is
+@funindex eses
+@funindex isis
+
+音楽用語集: @rglos{sharp}, @rglos{flat}, @rglos{double sharp},
+@rglos{double flat}, @rglos{accidental}
+@c シャープ (sharp), フラット (flat), ダブル シャープ (double sharp), ダブル フラット (double flat), 臨時記号 (accidental)
+
+@notation{シャープ}は音符名に @code{is} を付け加えることによって作られ、@notation{フラット}は @code{es} を付け加えることによって作られます。予想しているかもしれませんが、@notation{ダブル シャープ}や@notation{ダブル フラット}は @code{isis} や @code{eses} を付け加えることによって作られます。この文法はドイツ語での命名規則から生まれました (訳者: 原文では @qq{Dutch} なのでオランダ語なのですが、実際はドイツ語での命名規則であり、@qq{Dutch} は「ゲルマン民族の支配している地域」=現在のドイツとオランダを意味しているものと解釈してドイツ語と訳すことにします)。@notation{臨時記号}に対して他の名前を使うには、@ruser{Note names in other languages} を参照してください。
+@c 他の言語での音符名
+
+@lilypond[verbatim,quote,relative=2]
+cis1 ees fisis, aeses
+@end lilypond
+
+
+@cindex key signature, setting
+@subheading Key signatures
+@c 調号
+
+@cindex key signature
+@cindex major
+@cindex minor
+@cindex accidentals and key signature
+@cindex content vs. layout
+@cindex layout vs. content
+
+@funindex \key
+@funindex key
+@funindex \major
+@funindex major
+@funindex \minor
+@funindex minor
+
+音楽用語集: @rglos{key signature}, @rglos{major}, @rglos{minor}
+@c 調号 (key signature), メジャ (major), マイナ (minor)
+
+@notation{調号}はコマンド @code{\key} とそれに続く音高と @code{\major} または @code{\minor} によってセットされます。
+
+@lilypond[verbatim,quote,relative=2]
+\key d \major
+a1
+\key c \minor
+a
+@end lilypond
+
+@smallspace
+
+
+@subheading Warning: key signatures and pitches
+@c 調号と音高
+
+音楽用語集: @rglos{accidental}, @rglos{key signature},
+@rglos{pitch}, @rglos{flat}, @rglos{natural}, @rglos{sharp},
+@rglos{transposition}
+@c 臨時記号 (accidental), 調号 (key signature), 音高 (pitch), フラット (flat), ナチュラル (natural), シャープ (sharp), 移調 (transposition)
+
+@notation{臨時記号}を譜刻するかを決定するために LilyPond は音高と@notation{調号}を検証します。調号は@emph{譜刻される}臨時記号にだけ影響を与え、音符の@notation{音高}には影響を与えません!この特徴はしばしば新しく LilyPond を始める人を混乱させるため、より詳細に説明します。
+
+LilyPond は音楽の内容とレイアウトを峻別します。音符の変更記号 (@notation{フラット}、@notation{ナチュラル}、@notation{シャープ}) は音高の一部であるため、音楽の内容です。臨時記号 (@emph{譜刻される}フラット、ナチュラル、シャープ記号) が対応する音符の前に譜刻されるかどうかはレイアウトの問題です。レイアウトは規則に従う何らかのものであるため、臨時記号はそれらの規則に対応して自動的に譜刻されます。あなたの音楽の中での音高は人工的な仕掛けであるため、それらは自動的には追加されず、あなたはあなたの聞きたい音高を入力しなければなりません。
+
+以下の例では:
+
+@lilypond[verbatim,quote,relative=2]
+\key d \major
+d cis fis
+@end lilypond
+
+@noindent
+臨時記号を譜刻されている音符はありません。しかしながら、あなたは入力ファイルで @code{is} を付け加えて @code{cis} や @code{fis} などとタイプしなければなりません。
+
+コード @code{b} は @qq{譜表の最初の線 (一番上の線) のすぐ下に黒い点を譜刻せよ} という意味ではありません。そうではなく、@qq{音高が B ナチュラルである音符がある} という意味です。A フラット メジャの調子では、@code{b} には臨時記号が付きます:
+
+@lilypond[verbatim,quote,relative=2]
+\key aes \major
+b
+@end lilypond
+
+すべての変化を明示的に付け加えることは入力時にちょっとした努力を要するかもしれません。しかしながら、移調がより容易になる、異なる規約に対応して臨時記号を譜刻できるという利点があります。臨時記号がどのように異なる規則に対応して譜刻されるのかについてのいくつかの例は、@ruser{Automatic accidentals} を参照してください。
+@c 臨時記号の自動譜刻
+
+@seealso
+@c 参照
+表記リファレンス: @ruser{Note names in other languages},
+@ruser{Accidentals}, @ruser{Automatic accidentals},
+@ruser{Key signature}
+@c 他の言語での音符名, 臨時記号, 臨時記号の自動譜刻, 調号
+
+音楽用語集: @rglos{Pitch names}
+@c 音高名
+
+
+@node Ties and slurs
+@subsection Ties and slurs
+
+@cindex tie
+@cindex slur
+@cindex slur, phrasing
+@cindex phrasing slur
+
+@funindex ~
+@funindex ( ... )
+@funindex \( ... \)
+
+
+@subheading Ties
+
+音楽用語集: @rglos{tie}
+@c タイ (tie)
+
+@notation{タイ}はタイが始まる最初の音符にチルド @code{~} を付加することによって作成されます。
+
+@lilypond[verbatim,quote,relative=2]
+g4~ g c2~
+c4 ~ c8 a8 ~ a2
+@end lilypond
+
+
+@subheading Slurs
+
+音楽用語集: @rglos{slur}
+@c スラー (slur)
+
+@notation{スラー}は多くの音符に亘って描かれる曲線です。スラーの開始音符と終了音符にはそれぞれ @code{(} と @code{)} を付加します。
+
+@lilypond[verbatim,quote,relative=2]
+d4( c16) cis( d e c cis d) e( d4)
+@end lilypond
+
+
+@subheading Phrasing slurs
+
+音楽用語集: @rglos{slur}, @rglos{phrasing}
+@c スラー (slur), フレージング (phrasing)
+
+長い@notation{フレーズ}を示すためのスラーは @code{\(} と @code{\)} によって挿入することができます。あなたは@notation{スラー}とフレージング スラーを重ねることができます。しかしながら、あなたは複数のスラーを重ねたり、複数のフレージング スラーを重ねることはできません。
+
+@lilypond[verbatim,quote,relative=2]
+a8(\( ais b c) cis2 b'2 a4 cis,\)
+@end lilypond
+
+@smallspace
+
+
+@cindex slurs versus ties
+@subheading Warnings: slurs vs. ties
+
+音楽用語集: @rglos{articulation}, @rglos{slur}, @rglos{tie}
+@c アーティキュレーション (articulation), スラー (slur), タイ (tie)
+
+@notation{スラー}は@notation{タイ}のように見えますが、意味が異なります。タイは単純に最初の音符をより長くするものであり、同じ音程の音符のペアに対してのみ使用することができます。スラーは複数の音符による@notation{アーティキュレーション} (節、表現) を表していて、より大きな音符のグループに対して使用することができます。スラーとタイはネストさせることができます。
+
+@lilypond[verbatim,quote,relative=2]
+c2~( c8 fis fis4 ~ fis2 g2)
+@end lilypond
+
+@seealso
+@c 参照
+表記リファレンス: @ruser{Ties}, @ruser{Slurs},
+@ruser{Phrasing slurs}
+@c タイ, スラー, フレージング スラー
+
+
+@node Articulation and dynamics
+@subsection Articulation and dynamics
+
+
+@subheading Articulations
+@c アーティキュレーション
+
+@cindex articulation
+@cindex accent
+@cindex staccato
+
+音楽用語集: @rglos{articulation}
+@c アーティキュレーション (articulation)
+
+一般的な@notation{アーティキュレーション}はダッシュ @code{-} と単一文字を使うことで音符に付け加えることができます:
+
+@lilypond[verbatim,quote,relative=2]
+c-. c-- c-> c-^ c-+ c-_
+@end lilypond
+
+
+@subheading Fingerings
+@c 運指法
+
+@cindex fingering
+
+@funindex ^
+@funindex _
+
+音楽用語集: @rglos{fingering}
+@c 運指法 (fingering)?
+
+同様に、@notation{運指法}はダッシュ (@code{-}) と譜刻する数字を使うことで音符に付け加えることができます:
+
+@lilypond[verbatim,quote,relative=2]
+c-3 e-5 b-2 a-1
+@end lilypond
+
+通常、アーティキュレーションと運指法は自動的に刻譜されます。しかしながら、あなたはダッシュ (@code{-}) を @code{^} (上へ) または @code{_} (下へ) に置き換えることによって方向を指定することができます。さらに、あなたは同じ音符に複数のアーティキュレーションを使用することもできます。しかしながらたいていの場合は、LilyPond にアーティキュレーションの方向を決定させるのが一番です。
+
+@lilypond[verbatim,quote,relative=2]
+c_-^1 d^. f^4_2-> e^-_+
+@end lilypond
+
+
+@subheading Dynamics
+@c 強弱記号
+
+@cindex dynamics
+@cindex decrescendo
+@cindex crescendo
+
+@funindex \f
+@funindex \ff
+@funindex \mp
+@funindex \p
+@funindex \mf
+@funindex \pp
+@funindex \<
+@funindex <
+@funindex \>
+@funindex >
+@funindex \!
+@funindex !
+
+音楽用語集: @rglos{dynamics}, @rglos{crescendo}
+@rglos{decrescendo}
+@c 強弱記号 (dynamics), クレッシェンド (crescendo), デクレッシェンド (decrescendo)
+
+@notation{強弱記号}は音符にバックシュ ラッシュ付きのマークを付け加えることによって作成されます:
+
+@lilypond[verbatim,quote,relative=2]
+c\ff c\mf c\p c\pp
+@end lilypond
+
+@notation{クレッシェンド}と@notation{デクレッシェンド}はコマンド @code{\<} と @code{\>} によって開始されます。次の強弱記号 -- 例えば、@code{\f} -- が (デ)クレッシェンドを終わらせます。コマンド @code{\!} を使って終わらせることもできます:
+
+@lilypond[verbatim,quote,relative=2]
+c2\< c2\ff\> c2 c2\!
+@end lilypond
+
+
+@seealso
+表記リファレンス: @ruser{Articulations and ornamentations},
+@ruser{Fingering instructions}, @ruser{Dynamics}
+@c アーティキュレーションと装飾, 運指法, 強弱記号
+
+
+@node Adding text
+@subsection Adding text
+@c テキストの追加
+
+@cindex text, adding
+@cindex adding text
+@cindex markup
+
+@funindex \markup
+@funindex markup
+
+テキストがあなたの楽譜に追加されるかもしれません:
+
+@lilypond[verbatim,quote,relative=2]
+c1^"espr" a_"legato"
+@end lilypond
+
+追加のフォーマット指定が @code{\markup} コマンドで追加されるかもしれません:
+
+@lilypond[verbatim,quote,relative=2]
+c1^\markup{ \bold espr}
+a1_\markup{
+  \dynamic f \italic \small { 2nd } \hspace #0.1 \dynamic p
+}
+@end lilypond
+
+
+@seealso
+表記リファレンス: @ruser{Writing text}
+@c テキストを書く
+
+
+@node Automatic and manual beams
+@subsection Automatic and manual beams
+@c 自動ビームと手動ビーム
+
+@cindex beaming
+@cindex automatic beams
+@cindex manual beams
+@cindex beams, automatic
+@cindex beams, manual
+@cindex beams, by hand
+
+@funindex [ ... ]
+@funindex [
+@funindex ]
+@funindex \autoBeamOff
+@funindex autoBeamOff
+@funindex \autoBeamOn
+@funindex autoBeamOn
+
+音楽用語集: @rglos{beam}
+@c ビーム
+
+すべての@notation{ビーム}は自動的に描かれます:
+
+@lilypond[verbatim,quote,relative=2]
+a8 ais d ees r d c16 b a8
+@end lilypond
+
+あなたが自動ビームを好まない場合、手動で上書きすることもできます。ある箇所のビームを修正するには、ビームを付ける最初の音符に @code{[} を、最後の音符に @code{]} を付け加えます。
+
+@lilypond[verbatim,quote,relative=2]
+a8[ ais] d[ ees r d] a b
+@end lilypond
+
+もしあなたが楽譜全体あるいは一部で自動ビームを Off にしたいのなら、自動ビームを Off にするにはコマンド @code{\autoBeamOff} を、再度自動ビームを On にするには @code{\autoBeamOn} を使用します。
+
+@lilypond[verbatim,quote,relative=2]
+\autoBeamOff
+a8 c b4 d8. c16 b4
+\autoBeamOn
+a8 c b4 d8. c16 b4
+@end lilypond
+
+
+@seealso
+表記リファレンス: @ruser{Automatic beams}, @ruser{Manual beams}
+@c 自動ビーム, 手動ビーム
+
+
+@node Advanced rhythmic commands
+@subsection Advanced rhythmic commands
+
+@c 高度なリズム コマンド
+
+
+@subheading Partial measure
+@c 部分小節
+
+@cindex pickup
+@cindex anacrusis
+@cindex partial measure
+
+@funindex \partial
+@funindex partial
+
+音楽用語集: @rglos{anacrusis}
+@c 弱拍 (anacrusis)
+
+ピックアップ (訳者: 本来の拍子以外の拍子を持つ小節のこと) (または@notation{弱拍} (原語: anarusis、西洋音楽用語の 1 つで楽曲が第 1 拍以外から開始すること)) はキーワード @code{\partial} によって挿入されます。この後に演奏時間が続きます: @code{\partial 4} は 4 分音符のピックアップであり、@code{\partial 8} は 8 分音符のピックアップです。
+
+@lilypond[verbatim,quote,relative=2]
+\partial 8
+f8 c2 d
+@end lilypond
+
+
+@subheading Tuplets
+@c 連符
+
+@cindex tuplets
+@cindex triplets
+
+@funindex \times
+@funindex times
+
+音楽用語集: @rglos{note value}, @rglos{triplet}
+@c 音価 (note value), 3 連符 (triplet)
+
+@notation{連符}は @code{\times} キーワードによって作成されます。これは 2 つの引数をとります: 分数と楽譜の断片です。楽譜の断片の演奏時間と分数が乗算されます。3 連符は表記された演奏時間の 2/3 の長さなので、@notation{3 連符}は分数として 2/3 を持ちます。
+
+@lilypond[verbatim,quote,relative=2]
+\times 2/3 { f8 g a }
+\times 2/3 { c r c }
+\times 2/3 { f,8 g16[ a g a] }
+\times 2/3 { d4 a8 }
+@end lilypond
+
+
+@subheading Grace notes
+@c グレース ノート (小さな音符で書かれた装飾音)
+
+@cindex grace notes
+@cindex acciaccatura
+@cindex appoggiatura
+
+@funindex \grace
+@funindex grace
+@funindex \acciaccatura
+@funindex acciaccatura
+@funindex \appoggiatura
+@funindex acciaccatura
+
+音楽用語集: @rglos{grace notes}, @rglos{acciaccatura},
+@rglos{appoggiatura}
+@c グレース ノート (grace notes), 短前打音 (acciaccatura), 前打音 (appoggiatura)
+
+@notation{グレース ノート}は @code{\grace} コマンドによって作成されますが、キーワード @code{\appoggiatura} や @code{\acciaccatura} による接頭音楽表記によっても作成されます:
+
+@lilypond[verbatim,quote,relative=2]
+c2 \grace { a32[ b] } c2
+c2 \appoggiatura b16 c2
+c2 \acciaccatura b16 c2
+@end lilypond
+
+
+@seealso
+表記リファレンス: @ruser{Grace notes}, @ruser{Tuplets},
+@ruser{Upbeats}
+@c グレース ノート, 連符, 上拍
+
+
+@node Multiple notes at once
+@section Multiple notes at once
+@c 複音表記
+
+この節はでは同時に複数の表記 -- 複数の楽器、単一の楽器に対する複数の譜 (すなわちピアノ)、和音 -- を持つ方法について紹介します。
+
+音楽の中での多声は楽曲の中にある複数の声部を参照します。LilyPond の中での多声は同じ譜表上にある複数の声部を参照します。
+
+@menu
+* Music expressions explained::
+* Multiple staves::
+* Staff groups::
+* Combining notes into chords::
+* Single staff polyphony::
+@end menu
+
+
+@node Music expressions explained
+@subsection Music expressions explained
+@c 音楽表記についての説明
+
+@cindex music expression
+@cindex expression, music
+@cindex compound music expression
+@cindex music expression, compound
+
+LilyPond 入力ファイルの中では、音楽は@notation{音楽表記}によって表されます。単一の音符は 1 つの音楽表記になります:
+
+@lilypond[verbatim,quote,relative=2]
+a4
+@end lilypond
+
+表記を中括弧で括ることによって@emph{複合音楽表記}が作成されます。2 つの音符を持つ複合音楽表記を作成しました:
+
+@lilypond[verbatim,quote,relative=2]
+{ a4 g4 }
+@end lilypond
+
+中括弧の中にある音楽表記 (例えば、いくつかの音符) のグループはそれらがシークエンスであるということを意味しています (つまり、それぞれの音符は前の音符に続くということです)。もう 1 つ音楽表記の結果を示します:
+
+@lilypond[verbatim,quote,relative=2]
+{ { a4 g } f g }
+@end lilypond
+
+
+@subheading Analogy: mathematical expressions
+
+このメカニズムは数学式と似ています: 大きな式は小さな式を組み合わせることによって作成されます。そのような式は表記と呼ばれ、それらの定義は再帰的なのであなたは任意に複雑で大きな表記を作ることができます。例えば、
+
+@example
+1
+
+1 + 2
+
+(1 + 2) * 3
+
+((1 + 2) * 3) / (4 * 5)
+@end example
+
+これは表記のシークエンスであり、各表記は次の (より大きな) 表記に組み込まれています。最も単純な表記は数であり、より大きな表記は演算子 (@code{+}, @code{*}, @code{/} など) と括弧を組み合わせることによって作成されます。数学式と同様に、音楽表記も任意の深さにネストさせることができ、それは多声楽譜のような複雑な音楽のために必要なことです。
+
+
+@subheading Simultaneous music expressions: multiple staves
+@c 同時進行の音楽表記: 複数の譜
+
+@cindex multiple staves
+@cindex staves, multiple
+@cindex polyphony
+@cindex combining expressions in parallel
+@cindex parallel expressions
+@cindex expressions, parallel
+@cindex relative notes and simultaneous music
+@cindex relative notes and parallel expressions
+@cindex simultaneous music and relative notes
+@cindex parallel expressions and relative notes
+
+@funindex <<
+@funindex >>
+@funindex << ... >>
+
+音楽用語集: @rglos{polyphony}
+@c 多声 (polyphony)
+
+このテクニックは@notation{多声音楽}に対して有用です。複数の声部や複数の譜を持つ音楽を入力するために、音楽表記を並列に組み合わせます。2 つの声部を同時に演奏すべきであるということを示すには、単純に音楽表記を同時進行するよう組み合わせて入力します。@q{同時進行} の音楽表記は @code{<<} と @code{>>} で音楽表記を囲い込むことによって形成されます。以下の例では、3 つのシークエンス (すべてのシークエンスはそれぞれ 2 つの音符を保持しています) が同時進行するように組み合わされています:
+
+@lilypond[verbatim,quote]
+\relative c'' {
+  <<
+    { a4 g }
+    { f e }
+    { d b }
+  >>
+}
+@end lilypond
+
+入力の各レベルに対して異なる量のスペースをインデントとして与えていることに注意してください。LilyPond は行の先頭にどれくらい多く (あるいは少なく) のスペースがあるかを気にしません。しかしながら、上の例のように LilyPond コードにインデントを入れることによって人間にとってはずっと読みやすくなります。
+
+@warning{入力での各音符は前の音符との相対関係にあり、先頭の @code{@bs{}relative} コマンドの中にある @code{c''} と相対関係にあるわけではありません。}
+
+
+
+@subheading Simultaneous music expressions: single staff
+@c 同時進行の音楽表記: 単一の譜
+
+楽曲の中にある譜の数を決定するために、LilPond は最初の音楽表記の始まりを調べます。始まりの音楽表記が単一の表記であった場合、楽譜の中の譜表は 1 つです。同時進行の表記であった場合、譜表は複数になります。
+
+@lilypond[verbatim,quote]
+\relative c'' {
+  c2 <<c e>>
+  << { e f } { c <<b d>> } >>
+}
+@end lilypond
+
+
+@node Multiple staves
+@subsection Multiple staves
+@c 複数の譜
+
+@cindex multiple staves
+@cindex staves, multiple
+@cindex context
+@cindex context, notation
+@cindex notation context
+
+@funindex \new Staff
+@funindex new Staff
+@funindex Staff
+@funindex \new
+@funindex new
+@funindex Score
+@funindex Voice
+@funindex Lyrics
+@funindex ChordNames
+
+@ref{Music expressions explained} で見てきたように、LilyPond 入力ファイルは音楽表記によって構築されています。複数の同時進行の音楽表記で始まる楽譜の場合、LilyPond は複数の譜を作成します。しかしながら、各譜表を明示的に作成すると何が起こるかより容易に見て取ることができます。
+@c 音楽表記についての説明
+
+複数の譜表を譜刻するには、1 つの譜表を形成する音楽の各部分の前に @code{\new Staff} を付け加えます。これらの @code{Staff} 要素は @code{<<} と @code{>>} で並列に組み合わされます:
+
+@lilypond[verbatim,quote]
+\relative c'' {
+  <<
+    \new Staff { \clef treble c }
+    \new Staff { \clef bass c,, }
+  >>
+}
+@end lilypond
+
+コマンド @code{\new} は 1 つの @q{表記コンテキスト} を導入します。表記コンテキストは音楽的イベント (音符や @code{\clef} コマンドなど) が解釈される環境です。単純な楽曲では、そのような表記コンテキストは自動的に作成されます。より複雑な楽曲ではコンテキストを明示的に記述することが望ましいです。
+
+コンテキストにはいくつかのタイプがあります。@code{Score}, @code{Staff}, @code{Voice} は旋律表記を扱います。一方、@code{Lyrics} は歌詞テキストをセットし、@code{ChordNames} はコード ネームを譜刻します。
+
+文法という観点で見ると、@code{\new} を音楽表記の先頭に付け加えることによってより大きな音楽表記が作成されます。これは数学でのマイナス符号に似ています。数式 @math{(4+5)} は数学表記であり、@math{-(4-5)} はより大きな数学表記です。
+
+ある譜表に挿入された@notation{拍子記号}はデフォルトで他のすべての譜に影響を与えます。一方で、ある譜表に挿入された調号は他のすべての譜に影響を@emph{与えません}。記号によってデフォルトの振る舞いが異なるのは、移調する楽器を扱う楽譜の方が複合リズム (polyrhythmic) の楽譜よりも一般的だからです。
+
+@lilypond[verbatim,quote]
+\relative c'' {
+  <<
+    \new Staff { \clef treble \key d \major \time 3/4 c }
+    \new Staff { \clef bass c,, }
+  >>
+}
+@end lilypond
+
+
+@node Staff groups
+@subsection Staff groups
+@c 譜表グループ
+
+@cindex piano staff
+@cindex staff, piano
+@cindex choir staff
+@cindex staff, choir
+@cindex grand staff
+@cindex staff, grand
+@cindex staff group
+
+@funindex PianoStaff
+@funindex GrandStaff
+@funindex ChoirStaff
+
+音楽用語集: @rglos{brace}
+@c ブレース (brace)
+
+ピアノ譜は@notation{ブレース}でつながれた 2 つの譜表として刻譜されます。そのような譜表を刻譜することは @ref{Multiple staves} での多声の例に似ています。しかしながら、今度は表記全体が @code{PianoStaff} の中に挿入されます:
+
+@example
+\new PianoStaff <<
+  \new Staff @dots{}
+  \new Staff @dots{}
+>>
+@end example
+
+小さな例を挙げます:
+
+@lilypond[verbatim,quote]
+\relative c'' {
+  \new PianoStaff <<
+    \new Staff { \time 2/4 c4 e g g, }
+    \new Staff { \clef bass c,, c' e c }
+  >>
+}
+@end lilypond
+
+ピアノ譜以外の譜表グループ化はオーケストラ譜向けには @code{\new GrandStaff} で、ボーカル譜向けには @w{@code{\new ChoirStaff}} で導入されます。これらの譜表グループはそれぞれタイプの異なるコンテキストを形成し、各システム (訳者: 楽譜 1 行分のこと。ピアノ譜では右手と左手の 2 つの譜表ペアでの 1 行が 1 システムになります) の左端にブレースを付けて、さらに、小節線の高さを制御します。
+
+
+@seealso
+表記リファレンス: @ruser{Keyboard and other multi-staff instruments},
+@ruser{Displaying staves}
+@c 楽器 キーボードと他の複譜表楽器, 譜表の表示
+
+
+@node Combining notes into chords
+@subsection Combining notes into chords
+@c 音符を組み合わせて和音にする
+
+@cindex chords
+@cindex note durations in chords
+
+@funindex <
+@funindex >
+@funindex < ... >
+
+音楽用語集: @rglos{chord}
+@c コード (chord)
+
+音符を @code{<< ... >>} で囲んでそれらの音符が同時進行であることを示すことによって、それらの音符を@notation{和音}として組み合わせる方法について見てきました。しかしながら、和音であることを示すための通常の方法は音符を < ... > (角括弧) で囲みます。和音の中にある音符はすべて同じ演奏時間でなければならず、その演奏時間は角括弧を閉じた後に置かれなければならないということに注意してください。
+
+@lilypond[verbatim,quote,relative=2]
+r4 <c e g>4 <c f a>2
+@end lilypond
+
+和音は単一の音符とほとんど同じであると考えてください: 単一の音符に付け加えられるものはほとんどすべて和音にも付け加えられ、付け加えるものはすべて角括弧の@emph{外}に付け加えられなければなりません。例えば、あなたはビームやタイなどのマークをコードに組み合わせることができます。それらは角括弧の外側に置かれなければなりません。
+
+@lilypond[verbatim,quote,relative=2]
+r4 <c e g>8[ <c f a>]~ <c f a>2
+r4 <c e g>8( <c e g>\> <c e g>4 <c f a>\!)
+@end lilypond
+
+
+@node Single staff polyphony
+@subsection Single staff polyphony
+@c 単一譜表での多声
+
+@cindex polyphony
+@cindex multiple voices
+@cindex voices, more on one staff
+@cindex single staff polyphony
+@cindex spacer rest
+@cindex rest, spacer
+
+@funindex << ... \\ ... >>
+@funindex <<
+@funindex \\
+@funindex >>
+
+異なる旋律が単一の譜に組み込まれる場合、それらは多声部として刻譜されます; 各声部はそれ自体のステム (音符の玉から上下に出る棒)、スラー、ビーム (ステムとステムを結ぶ横棒) を持ちます。最上段の声部は玉から上に伸びるステムを持ち、最下段の声部は下に伸びるステムを持ちます。
+
+そのような多声のパートを入力するには、各声部をシークエンスとして (@w{@code{@{ ... @}}} を使って) 入力し、それらを @code{\\} で区切って結合することで同時進行するように組み合わせます:
+
+@lilypond[verbatim,quote,relative=2]
+<<
+  { a4 g2 f4~ f4 } \\
+  { r4 g4 f2 f4 }
+>>
+@end lilypond
+
+多声部音楽を刻譜する場合、空白休符を使用すると都合が良いかもしれません: それは刻譜されない休符です。空白休符は一時的に演奏されない声部の空白期間を埋めるのに有用です。今度は通常の休符 (@code{r}) の代わりに空白休符 (@code{s}) を使った上と同じ例を示します:
+
+@lilypond[verbatim,quote,relative=2]
+<<
+  { a4 g2 f4~ f4 } \\
+  { s4 g4 f2 f4 }
+>>
+@end lilypond
+
+@noindent
+さらに、これらの表記は任意にネストさせることができます。
+
+@lilypond[verbatim,quote,relative=2]
+<<
+  \new Staff <<
+    { a4 g2 f4~ f4 } \\
+    { s4 g4 f2 f4 }
+  >>
+  \new Staff <<
+    \clef bass
+    { <c g>1 ~ <c g>4 } \\
+    { e,,4 d e2 ~ e4}
+  >>
+>>
+@end lilypond
+
+
+@seealso
+表記リファレンス: @ruser{Simultaneous notes}
+@c 同時進行の音符
+
+
+@node Songs
+@section Songs
+@c 歌曲
+
+この節はでは声楽とシンプルな歌曲譜についての紹介を行います。
+
+@menu
+* Setting simple songs::
+* Aligning lyrics to a melody::
+* Lyrics to multiple staves::
+@end menu
+
+
+@node Setting simple songs
+@subsection Setting simple songs
+@c 簡単な歌詞をセットする
+
+@cindex lyrics
+@cindex songs
+
+@funindex \addlyrics
+@funindex addlyrics
+
+音楽用語集: @rglos{lyrics}
+@c 歌詞 (lyrics)
+
+童謡の冒頭部分の旋律があります。歌詞は @notation{Girls and boys come out to play} です:
+
+@lilypond[verbatim,quote]
+\relative c'' {
+  \key g \major
+  \time 6/8
+  d4 b8 c4 a8 d4 b8 g4
+}
+@end lilypond
+
+@code{\addlyrics} キーワードで組み合わせることによって、@notation{歌詞}をこれらの音符にセットすることができます。歌詞は音節ごとにスペースで区切って入力します。
+
+@lilypond[verbatim,quote]
+<<
+  \relative c'' {
+    \key g \major
+    \time 6/8
+    d4 b8 c4 a8 d4 b8 g4
+  }
+  \addlyrics {
+    Girls and boys come out to play,
+  }
+>>
+@end lilypond
+
+中括弧が音楽と歌詞を区切っていて、音楽と歌詞が同時進行であることを示すために楽曲全体が @w{@code{<< ... >>}} で囲まれていることに注意してください。
+
+
+@node Aligning lyrics to a melody
+@subsection Aligning lyrics to a melody
+@c 歌詞を旋律に揃える
+
+@cindex melisma
+@cindex extender line
+@cindex hyphens
+@cindex underscore
+@cindex lyrics, aligning
+@cindex aligning lyrics
+@cindex lyrics, multi-syllable words
+@cindex words with multiple syllables in lyrics
+
+音楽用語集: @rglos{melisma}, @rglos{extender line}
+@c メリスマ (melisma), 延長線 (extender line)
+
+童謡の次の行は @notation{The moon doth shine as bright as day} です。これを前の例に付け加えてみましょう:
+
+@lilypond[verbatim,quote]
+<<
+  \relative c'' {
+    \key g \major
+    \time 6/8
+    d4 b8 c4 a8 d4 b8 g4
+    g8 a4 b8 c b a d4 b8 g4.
+  }
+  \addlyrics {
+    Girls and boys come out to play,
+    The moon doth shine as bright as day;
+  }
+>>
+@end lilypond
+
+付け足した歌詞は音符に適切に揃っていません。@notation{shine} は 2 音符に亘って歌われるべきですが、そうなっていません。これは@notation{メリスマ}と呼ばれ、単音節が複数の音符に亘って歌われます。ある音節を複数に広げる方法はいくつかあり、最も簡単なのはそれらの音符にスラーを付け加えることです。詳細は @ref{Ties and slurs} を参照してください。
+
+@lilypond[verbatim,quote]
+<<
+  \relative c'' {
+    \key g \major
+    \time 6/8
+    d4 b8 c4 a8 d4 b8 g4
+    g8 a4 b8 c( b) a d4 b8 g4.
+  }
+  \addlyrics {
+    Girls and boys come out to play,
+    The moon doth shine as bright as day;
+  }
+>>
+@end lilypond
+
+今度は、単語が正しく音符に対して並んでいます。しかしながら、@notation{shine as} 上の音符に対する自動ビームは適当でないように見えます。これを修正するために、手動ビーム コマンドを挿入して自動ビームをオーバライドします。詳細は @ref{Automatic and manual beams} を参照してください。
+
+@lilypond[verbatim,quote]
+<<
+  \relative c'' {
+    \key g \major
+    \time 6/8
+    d4 b8 c4 a8 d4 b8 g4
+    g8 a4 b8 c([ b]) a d4 b8 g4.
+  }
+  \addlyrics {
+    Girls and boys come out to play,
+    The moon doth shine as bright as day;
+  }
+>>
+@end lilypond
+
+スラーを用いる方法の外に、メリスマに含まれるべきである各音符に対応したアンダスコア @code{_} を用いることによってその歌詞がメリスマであるということを示すことができます:
+
+@lilypond[verbatim,quote]
+<<
+  \relative c'' {
+    \key g \major
+    \time 6/8
+    d4 b8 c4 a8 d4 b8 g4
+    g8 a4 b8 c[ b] a d4 b8 g4.
+  }
+  \addlyrics {
+    Girls and boys come out to play,
+    The moon doth shine _ as bright as day;
+  }
+>>
+@end lilypond
+
+通常、ある歌詞がいくつかの音符に亘って延長される場合や、単一の非常に長い音符に割り当てられる場合、その歌詞からその歌詞に対応しているすべての音符の下に@notation{延長線}が描かれます。延長線は 2 つのアンダスコア @code{__} で挿入されます。今度は、例として Purcell の @notation{Dido and Æeneas} から最初の 3 小節目からを挙げます:
+
+@lilypond[verbatim,quote]
+<<
+  \relative c'' {
+    \key g \minor
+    \time 3/2
+    g2 a bes bes( a)
+    b c4.( bes8 a4. g8 fis4.) g8 fis1
+  }
+  \addlyrics {
+    When I am laid,
+    am laid __ in earth,
+  }
+>>
+@end lilypond
+
+今までの例には複数の音節を持つ単語はありませんでした。通常、複数の音節を持つ単語は音節ごとに 1 つの音符に分割され、音節間はハイフンで結ばれます。ハイフンは 2 つのダッシュとして入力され、その結果として音節の間にハイフンが描かれます。今度の例では歌詞に複数の音節を持つ単語が含まれ、我々が今まで歌詞を音符に揃える方法について学んだことがすべて含まれています。
+
+@c no ragged-right here because otherwise the hyphens get lost,
+@c but the example is long enough to avoid looking strange.
+@lilypond[verbatim,quote,noragged-right]
+<<
+  \relative c' {
+    \key g \major
+    \time 3/4
+    \partial 4
+    d4 g4 g a8( b) g4 g4
+    b8( c) d4 d e4 c2
+  }
+  \addlyrics {
+    A -- way in a __ man -- ger,
+    no __ crib for a bed, __
+  }
+>>
+@end lilypond
+
+ある歌詞では -- 特にイタリア語では -- 反対のことが求められます: 複数の音節を 1 つの音符にセットします。これは音節を単一のアンダスコア @code{_} (スペース無し) でリンクさせるか、クォートで囲むことによって達成されます。今度の例は Rossini の @notation{Figaro} からで、@notation{Largo al factotum} の @notation{al} は @notation{Largo} の @notation{go} と同じ音符で歌われなければなりません:
+
+@c no ragged-right here because otherwise the hyphens get lost,
+@c but the example is long enough to avoid looking strange.
+@lilypond[verbatim,quote,noragged-right]
+<<
+  \relative c' {
+    \clef bass
+    \key c \major
+    \time 6/8
+    c4.~ c8 d b c([ d]) b c d b c
+  }
+  \addlyrics {
+    Lar -- go_al fac -- to -- tum del -- la cit -- tà
+  }
+>>
+@end lilypond
+
+
+@seealso
+表記リファレンス: @ruser{Vocal music}
+@c 歌曲譜
+
+
+@node Lyrics to multiple staves
+@subsection Lyrics to multiple staves
+@ 複数の譜への歌詞
+
+@cindex lyrics and multiple staves
+@cindex multiple staves and lyrics
+
+@code{\addlyrics} を用いた簡単なアプローチは歌詞を複数の譜表の下に置くために使用することができます。ここで、Handel の @notation{Judas Maccabæus} から例を挙げます: 
+
+@lilypond[verbatim,quote]
+<<
+  \relative c'' {
+    \key f \major
+    \time 6/8
+    \partial 8
+    c8 c([ bes]) a a([ g]) f f'4. b, c4.~ c4
+  }
+  \addlyrics {
+    Let flee -- cy flocks the hills a -- dorn, __
+  }
+  \relative c' {
+    \key f \major
+    \time 6/8
+    \partial 8
+    r8 r4. r4 c8 a'([ g]) f f([ e]) d e([ d]) c bes'4
+  }
+  \addlyrics {
+    Let flee -- cy flocks the hills a -- dorn,
+  }
+>>
+@end lilypond
+
+この簡単な例よりも複雑な楽譜では、変数を使って楽譜構造を音符と歌詞から分離したほうが良いです。このことは @ref{Organizing pieces with variables} で議論されています。
+
+
+@seealso
+表記リファレンス: @ruser{Vocal music}
+@c 歌曲譜
+
+
+@node Final touches
+@section Final touches
+@c 仕上げ
+
+この節はチュートリアルの最終節です; 単純な曲に仕上げを加える方法を示し、このマニュアルの残りの部分についての紹介を行います。
+
+@menu
+* Organizing pieces with variables::
+* Version number::
+* Adding titles::
+* Absolute note names::
+* After the tutorial::
+@end menu
+
+
+@node Organizing pieces with variables
+@subsection Organizing pieces with variables
+@c 変数を用いた楽曲の編成
+
+@cindex variables
+@cindex variables, defining
+@cindex identifiers
+@cindex macros
+@cindex assigning variables
+@cindex using variables
+@cindex variables, using
+@cindex variables, characters allowed in
+@cindex characters allowed in variables
+
+これまで議論してきたすべての要素を組み合わせてより大きなファイルを作成すると、音楽表記はずっと大きくなります。多くの譜を持つ多声音楽では、入力ファイルはとても混乱しやすくなります。@emph{変数}を使って混乱を避けることができます。
+
+変数 (これは識別子やマクロとも言えます) を使うことによって、音楽表記の複雑さを打破することができます。変数は以下のように割り当てられます:
+
+@example
+namedMusic = @{ @dots{} @}
+@end example
+
+音楽表記 @code{namedMusic} の内容は名前の前にバックスラッシュを置くことによって (@code{\namedMusic}、これはまさに LilyPond の標準コマンドと同様です) 後で使用することができます。
+
+@lilypond[verbatim,quote]
+violin = \new Staff {
+  \relative c'' {
+    a4 b c b
+  }
+}
+cello = \new Staff {
+  \relative c {
+    \clef bass
+    e2 d
+  }
+}
+{
+  <<
+    \violin
+    \cello
+  >>
+}
+@end lilypond
+
+@noindent
+変数の名前に使えるのはアルファベットだけであり、数字、アンダスコア、ダッシュを使うことはできません。
+
+変数はメインの音楽表記の@emph{前}に定義されていなければなりません。しかしながら定義後は必要に応じて何度も使用されるかもしれません。楽曲のある部分が何度もリピートしている場合、入力の手間を省くために、変数は他の変数の定義の中ででも使用されるかもしれません。
+
+@lilypond[verbatim,quote]
+tripletA = \times 2/3 { c,8 e g }
+barA = { \tripletA \tripletA \tripletA \tripletA }
+
+\relative c'' {
+ \barA \barA
+}
+@end lilypond
+
+変数は入力ファイルの中にある他の多くのタイプに対しても使用されるかもしれません。例えば以下のようにです:
+
+@example
+width = 4.5\cm
+name = "Wendy"
+aFivePaper = \paper @{ paperheight = 21.0 \cm @}
+@end example
+
+変数の内容次第では、変数は他の場所で使用することができます。以下の例は上の例の変数を使用しています:
+
+@example
+\paper @{
+  \aFivePaper
+  line-width = \width
+@}
+@{
+  c4^\name
+@}
+@end example
+
+
+@node Version number
+@subsection Version number
+@c バージョン番号
+
+@cindex versioning
+@cindex version
+@cindex version number
+@cindex upgrades
+@cindex future upgrades
+@cindex updating files
+@cindex files, updating
+
+@funindex \version
+@funindex version
+@funindex convert-ly
+
+@code{\version} ステートメントはその入力ファイルが LilyPond のどのバージョンに対して書かれているのかを記録しています:
+
+@example
+\version @w{"@version{}"}
+@end example
+
+@noindent
+慣習上、これは LilyPond ファイルの先頭に置きます。
+
+これらの注釈は LilyPond の将来のアップグレードをよりスムーズにします。構文の変更は特別なプログラム -- @command{convert-ly} -- によって扱われます。このプログラムは適用する規則を決定するために @code{\version} を使用します。詳細は @rprogram{Updating files with convert-ly} を参照してください。
+@c conver-ly を用いたファイルのアップデート
+
+
+@node Adding titles
+@subsection Adding titles
+@c タイトルを付け加える
+
+@cindex title
+@cindex headers
+@cindex header block
+
+@funindex \header
+@funindex header
+
+タイトル、作曲者、作品番号、それと類似の情報は @code{\header} ブロックの中に挿入されます。これはメインの音楽表記の外に存在します。普通、@code{\header} ブロックはバージョン番号の下に置かれます。
+
+@example
+\version @w{"@version{}"}
+\header @{
+  title = "Symphony"
+  composer = "Me"
+  opus = "Op. 9"
+@}
+
+@{
+  @dots{} music @dots{}
+@}
+@end example
+
+ファイルが処理されるとき、タイトルと作曲者は楽譜の上に譜刻されます。タイトルについての更なる情報は、@ruser{Creating titles} を参照してください。
+@c タイトルの作成
+
+
+@node Absolute note names
+@subsection Absolute note names
+@c 絶対音符名
+
+@cindex note names
+@cindex note names, absolute
+@cindex absolute mode (絶対モード)
+@cindex absolute values for pitches
+@cindex pitches, absolute values
+@cindex absolute note names
+
+これまで我々は常に音高を定義するのに @code{\relative} を使ってきました。これはたいていの音楽を入力するのに最も容易な方法です。しかしながら、音高を定義するための方法がもう一つ存在します。絶対モードです。
+
+あなたが @code{\relative} を省略した場合、LilyPond はすべての音高を絶対値として扱います。@code{c'} は常にミドル C を意味し、@code{b} は常にミドル C の 1 音下の音符を意味し、@code{g,} は常にヘ音記号の譜表の最下段の譜線上にある音符を意味します。
+
+@lilypond[verbatim,quote]
+{
+  \clef bass
+  c' b g, g,
+  g, f, f c'
+}
+@end lilypond
+
+今度は 4 オクターブの音階があります:
+
+@lilypond[verbatim,quote]
+{
+  \clef bass
+  c, d, e, f,
+  g, a, b, c
+  d e f g
+  a b c' d'
+  \clef treble
+  e' f' g' a'
+  b' c'' d'' e''
+  f'' g'' a'' b''
+  c'''1
+}
+@end lilypond
+
+見て取れるように、ト音記号に旋律を書く場合は多くのクォート @code{'} 記号が使用されます。モーツァルトからの以下の楽譜の断片について考えてみます:
+
+@lilypond[verbatim,quote]
+{
+  \key a \major
+  \time 6/8
+  cis''8. d''16 cis''8 e''4 e''8
+  b'8. cis''16 b'8 d''4 d''8
+}
+@end lilypond
+
+これらすべてのクォート記号は入力ファイルを読みにくいものにして、エラーの原因になります。@code{\relative} を使うことで、上の例はずっと読みやくす、入力しやすくなります:
+
+@lilypond[verbatim,quote]
+\relative c'' {
+  \key a \major
+  \time 6/8
+  cis8. d16 cis8 e4 e8
+  b8. cis16 b8 d4 d8
+}
+@end lilypond
+
+@code{\relative} モードを使っているときにあなたがオクターブ記号 (@code{'} や @code{,}) を付け間違えた場合、すぐにわかります -- 多くの音符が間違ったオクターブに譜刻されます。絶対モードを使っているときに、ある付け間違いをした場合、はっきりとせず、見つけにくいです。
+
+しかしながら、絶対モードは大きな音程を持つ音楽に対しては有用であり、LilyPond ファイルをコンピュータで生成する場合は非常に有用です。
+
+
+@node After the tutorial
+@subsection After the tutorial
+@c このチュートリアルの後にすべきこと
+
+このチュートリアルを終えた後、あなたは 1、2 の楽譜を書いてみるべきです。@ref{Templates} にある楽譜の 1 つに音符を付け加えることから始めてください。あなたがこのチュートリアルではカバーされなかった表記を行う必要がある場合、@ruser{Musical notation} で始まる表記リファレンスを参照してください。あなたがテンプレートではカバーされていない楽器のアンサンブルのために楽譜を書こうとする場合、@ref{Extending the templates} を参照してください。
+@c テンプレート
+@c 音楽表記
+@c テンプレートの拡張
+
+あなたがいくつかの短い楽譜を書き終えた後は、学習用マニュアルの残りの部分 (3~5 章) を読んでください。もちろん、今それらを読んでも何も問題はありません!しかしながら、学習用マニュアルの残りの部分はあなたが LilyPond 入力に馴れていると仮定しています。あなたはそれらの章を今すぐ一読し、もっと経験を積んだ後に読み直すことを望むかもしれません。
+
+このチュートリアルと学習マニュアルの残りの部分では、各節の最後に@strong{参照}があり、他の節を参照してます: 初めて本書を読むときはこれらの参照を追うべきではありません。あなたが学習マニュアルをすべて読み終えたとき、いくつかの節を読み返し、さらに参照を追おうと思うかもしれません。
+
+@ref{About the documentation} をまだ読んでいないのなら、それを@emph{読んでください}。LilyPond についての情報は多いため、新しく LilyPond を始める人はしばしばどこを読むべきかわからないことがあります。5 分間使ってその節を注意深く読めば、あなたは何時間も見当違いの場所を読むフラストレーションを持たずに済ますことができるでしょう!
+@c このドキュメントについて
+
diff --git a/Documentation/ja/user/tweaks.itely b/Documentation/ja/user/tweaks.itely
new file mode 100644 (file)
index 0000000..fcb8a2c
--- /dev/null
@@ -0,0 +1,3609 @@
+@c -*- coding: utf-8; mode: texinfo; documentlanguage: ja -*-
+@c This file is part of lilypond-learning.tely
+@ignore
+    Translation of GIT committish: 499a511d4166feaada31114e097f86b5e0c56421
+
+    When revising a translation, copy the HEAD committish of the
+    version that you are working on.  See TRANSLATION for details.
+@end ignore
+
+@c \version "2.12.0"
+
+
+@c Translators: Yoshiki Sawada
+@c Translation status: post-GDP
+
+
+@node Tweaking output
+@chapter Tweaking output
+
+この章では出力を変更する方法について議論します。LilyPond は本当にさまざまな設@c
+定が可能です。もしかすると出力のすべての部分が変更されるかもしれません。
+
+@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{調整} は入力ファイルの解釈中にとられるアクションを変更し、譜刻される音楽の@c
+見た目を変更するためにユーザが利用可能なさまざまな手段を指す LilyPond の用語で@c
+す。いくつかの調整はとても簡単に使うことができます。他の調整はもっと複雑です。@c
+しかしながら、調整のために利用可能な手段を組み合わせることによって、ほとんどい@c
+かなる望みの見た目を持った楽譜でも譜刻することが可能になります。
+
+このセクションでは、調整を理解するのに必要な基礎となるコンセプトをカバーしま@c
+す。その後、コピーするだけで効果が得られる作成準備が完了しているさまざまなコマ@c
+ンドについての情報を提供し、同時に、あなたがあなた自身の調整を開発する方法を学@c
+べるようにそれらのコマンドがどのように構築されるのかを示します。
+
+この章を読み始める前に、あなたは @ref{Contexts and engravers} を再読することを@c
+望むかもしれません。なぜなら、コンテキスト、エングラーバとそれらの中に含まれる@c
+プロパティは調整について理解し、調整を構成するための基礎だからです。
+
+
+@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
+
+調整には LilyPond プログラムの内部オペレーションと構造体への変更も含まれます。@c
+そのため、我々はまずそれらの内部オペレーションと構造体を記述するために使用され@c
+るいくつかの用語を導入しなければなりません。
+
+@q{オブジェクト} という用語は入力ファイルを処理している最中に LilyPond によっ@c
+てビルドされる多くの内部構造体を参照するために使われる汎用的な用語です。LilyPond 
+が @code{@bs{}new Staff} のようなコマンドに遭遇した場合、タイプ @code{Staff} 
+の新しいオブジェクトを構築します。その @code{Staff} オブジェクトは、その譜表の@c
+コンテキスト内部で機能するために割り当てられているエングラーバの詳細とともに、@c
+その譜表に関連付けられているすべてのプロパティ -- 例えば、その譜表の名前、調号 
+-- を保持します。同様に、@code{Voice} オブジェクト、@code{Score} オブジェク@c
+ト、@code{Lyrics} オブジェクトなどの他のすべてのコンテキストのプロパティを保持@c
+するためのオブジェクトが存在し、さらに、小節線、音符の玉、タイ、強弱記号などの@c
+すべての表記要素を表すためのオブジェクトも存在します。各オブジェクトはそれ自体@c
+のプロパティ値のセットを持ちます。
+
+いくつかのタイプのオブジェクトには特別な名前が与えられています。音符の玉、ステ@c
+ム、スラー、タイ、運指記号、音部記号などの譜刻される出力上の表記要素を表すオブ@c
+ジェクトは @q{レイアウト オブジェクト} と呼ばれ、しばしば @q{グラフィカル オブ@c
+ジェクト} あるいは短くして @q{グロッブ (Grob: GRaphical OBject)} と呼ばれま@c
+す。これらのオブジェクトも上記の汎用的な観点から見るとオブジェクトであり、それ@c
+ゆえ、それらもまたそれらのオブジェクトに関連付けされたプロパティ -- そのオブ@c
+ジェクトの位置、サイズ、色など -- を持ちます。
+
+いくつかのレイアウト オブジェクトも特別です。フレージング スラー、クレッシェン@c
+ド、オッターバ (訳者: オクターブ?) 記号、他の多くのグラフィカル オブジェクト@c
+が置かれる場所は一点ではありません -- それらは開始点、終了点、そしておそらくそ@c
+れらの形に関係する他のプロパティを持ちます。これらのオブジェクトのように形が伸@c
+長されるオブジェクトは @q{スパナ (Spanners)} と呼ばれます。
+
+@q{インタフェイス} とは何なのかという説明が残っています。多くのオブジェクト -- 
+たとえそれらが非常に異なっていたとしても -- は同じ方法で処理される必要がある共@c
+通特徴 (common feature) を共有します。例えば、すべてのグラフィカル オブジェク@c
+トは色、サイズ、位置などを持ち、これらのプロパティはすべて LilyPond が入力ファ@c
+イルを構文解釈する最中に同じ方法で処理されます。これらの内部オペレーションを簡@c
+潔にするために、これらの共通アクションとプロパティは 1 つのグループとして 
+@code{grob-interface} と呼ばれるオブジェクトにまとめられています。これと同じよ@c
+うな共有プロパティのグループ化が他にも多くあり、それぞれに対して最後に 
+@code{interface} が付く名前が与えられています。そのようなインタフェイスの総数は 
+100 を越えます。我々は後でなぜこれがユーザにとって利益となり、役に立つのかを見@c
+ていきます。
+
+これらは、我々がこの章で使用するオブジェクトと関係する主要な用語です。
+
+
+@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
+
+我々は以前にも @ref{Contexts and engravers} でいくつかのオブジェクト命名規約を@c
+見てきました。ここで参照のために、最も一般的なオブジェクトとプロパティをリスト@c
+アップし、それに加えてそれらの命名規約と実際の名前の例を挙げます。何らかの大文@c
+字のアルファベットを表すために @q{A} を使用し、いくつかの小文字のアルファベッ@c
+トを表すために @q{aaa} を使用しています。他の文字は実際の命名でもそのまま使用@c
+されます。
+
+@multitable @columnfractions .33 .33 .33
+@headitem オブジェクト/プロパティのタイプ
+  @tab 命名規約
+  @tab 例
+@item コンテキスト
+  @tab Aaaa や AaaaAaaaAaaa
+  @tab Staff, GrandStaff
+@item レイアウト オブジェクト
+  @tab Aaaa や AaaaAaaaAaaa
+  @tab Slur, NoteHead
+@item エングラーバ
+  @tab Aaaa_aaa_engraver
+  @tab Clef_engraver, Note_heads_engraver
+@item インタフェイス
+  @tab aaa-aaa-interface
+  @tab grob-interface, break-aligned-interface
+@item コンテキスト プロパティ
+  @tab aaa や aaaAaaaAaaa
+  @tab alignAboveContext, skipBars
+@item レイアウト オブジェクト プロパティ
+  @tab aaa や aaa-aaa-aaa
+  @tab direction, beam-thickness
+@end multitable
+
+これから見ていくのですが、タイプが異なるオブジェクトのプロパティは異なるコマン@c
+ドによって変更されます。そのため、プロパティの名前からオブジェクトの種類を識別@c
+できるようになると役に立ちます。
+
+
+@node Tweaking methods
+@subsection Tweaking methods
+
+@cindex tweaking methods
+
+@strong{@bs{}override コマンド}
+
+@cindex override command
+@cindex override syntax
+
+@funindex \override
+@funindex override
+
+我々はすでに @ref{Modifying context properties} と @ref{Adding and removing 
+engravers} で@strong{コンテキスト}のプロパティを変更したり、@strong{エングラー@c
+バ}を追加/削除したりするために使用するコマンド 
+@code{@bs{}set} と @code{@bs{}with} を見てきました。ここでは更に重要ないくつか@c
+のコマンドについて見ていきます。
+
+@strong{レイアウト オブジェクト}のプロパティを変更するためのコマンドは 
+@code{@bs{}override} です。このコマンドは LilyPond の奥深くにある内部プロパ@c
+ティを変更しなければならないため、これまで見てきたコマンドのように単純な構文で@c
+はありません。どのコンテキストの中にあるどのオブジェクトのどのプロパティを変更@c
+しなければならないのか、そこにセットする新しい値を何にするのかを正確に知ってい@c
+る必要があります。どのようにこれを行うのかを見ていきましょう。
+
+このコマンドの一般的な構文は以下のようなものです:
+
+@example
+@bs{}override @var{Context}.@var{LayoutObject} @hash{}'@var{layout-property} =
+@hash{}@var{value}
+@end example
+
+@noindent
+これは @var{Context} コンテキストのメンバである @var{LayoutObject} という名前@c
+のレイアウトの @var{layout-property} という名前のプロパティに値 @var{value} を@c
+セットします。
+
+必要とされているコンテキストが明白であり、それが最下位レベルのコンテキストである 
+-- つまり、@code{Voice}, @code{ChordNames} や @code{Lyrics} である -- 場合、その 
+@var{Context} は省略可能可能であり (そして通常は省略されます)、この後の例の多@c
+くでも省略します。後ほど、コンテキストを指定しなければならない場合について見て@c
+いきます。
+
+これから後のセクションでは広範囲に亘るプロパティとそれらの値を扱います。しかし@c
+ながら、そのフォーマットとそれらのコマンドの使用方法を示すためには、容易に理解@c
+できる簡単なプロパティと値を 2, 3 使用してみるだけです。
+
+今や、レイアウト プロパティの前に置かれなければならない @code{@hash{}'} やプロ@c
+パティ値の前に置かれなければならない @code{@hash{}} について心配する必要はあり@c
+ません。これらは常にそのような形式で正確に記述されなければなりません。これは調@c
+整では最も一般的に使用されるコマンドであり、この章の残りの部分の大半ではプロパ@c
+ティ (変更コマンド) の使用方法を示すための例を記述しています。ここでは音符玉の@c
+色を変更する簡単な例を挙げます:
+
+
+@cindex color property, example
+@cindex NoteHead, example of overriding
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
+c d
+\override NoteHead #'color = #red
+e f g
+\override NoteHead #'color = #green
+a b c
+@end lilypond
+
+
+@strong{@bs{}revert コマンド}
+
+@cindex revert command
+
+@funindex \revert
+@funindex revert
+
+一旦オーバライドされると、そのプロパティは再度オーバライドされるか 
+@code{@bs{}revert} コマンドに遭遇するまで新しい値のままでいます。@c
+@code{@bs{}revert} コマンドは以下の構文を持ち、プロパティの値をオリジナルのデ@c
+フォルト値に戻します。何度か @code{@bs{}override} コマンドが発行されている場合@c
+は、前の値に戻すわけではないということに注意してください。
+
+
+@example
+@bs{}revert @var{Context}.@var{LayoutObject} @hash{}'@var{layout-property}
+@end example
+
+繰り返しますが、@code{@bs{}override} コマンドでの @var{Context} と同様に、多く@c
+の場合で @var{Context} を記述する必要はありません。以下の例の多くで、@c
+@var{Context} は省略されます。ここでは、最後の 2 つの音符の音符玉の色をデフォ@c
+ルトに戻します:
+
+@cindex color property, example
+@cindex NoteHead, example of overriding
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
+c d
+\override NoteHead #'color = #red
+e f g
+\override NoteHead #'color = #green
+a
+\revert NoteHead #'color
+b c
+@end lilypond
+
+@strong{@bs{}once prefix}
+
+@funindex \once
+@funindex once
+
+@code{@bs{}override} コマンドと @code{@bs{}set} コマンドには両方とも接頭辞 
+@code{@bs{}once} が付く可能性があります。これはその後に続く @code{@bs{}override} 
+や @code{@bs{}set} コマンドをその場一回限り有効にし、その後にそのプロパティの@c
+値をデフォルト値に戻します。上と同じ例を使って、以下のように 1 つだけの音符の@c
+色を変更することができます:
+
+@cindex color property, example
+@cindex NoteHead, example of overriding
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
+c d
+\once \override NoteHead #'color = #red
+e f g
+\once \override NoteHead #'color = #green
+a b c
+@end lilypond
+
+@strong{@bs{}overrideProperty コマンド}
+
+@cindex overrideProperty command
+
+@funindex \overrideProperty
+@funindex overrideProperty
+
+オーバライド コマンドには @code{@bs{}overrideProperty} というもう 1 つのフォー@c
+マットがあり、時々必要となります。完璧を期すためにここでこれに言及しましたが、@c
+詳細は @ruser{Difficult tweaks} を参照してください。
+@c Maybe explain in a later iteration  -td
+
+@strong{@bs{}tweak コマンド}
+
+@cindex tweak command
+
+@funindex \tweak
+@funindex tweak
+
+利用可能な最後の調整コマンドは @code{@bs{}tweak} です。これは同じタイミングで@c
+起こるオブジェクト -- 和音の中にある音符などのように -- のプロパティを変更する@c
+ために使用されます。@code{@bs{}override} コマンドを使用すると和音の中にあるす@c
+べての音符に影響を与えます。一方、@code{@bs{}tweak} は入力ストリームの中でその 
+@code{@bs{}tweak} のすぐ後にある要素 1 つだけに影響を与えます。
+
+ここで例を挙げます。C メジャー コードの中にある真ん中の音符 (ミドル E) の音符@c
+玉のサイズを変更したいとします。まず最初に、@code{@bs{}once @bs{}override} だ@c
+とどうなるか見てみましょう:
+
+@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>
+  <c e g>
+@end lilypond
+
+このオーバライドは和音の中にある@emph{すべて}の音符玉に影響を与えています。こ@c
+れは和音の中にあるすべての音符が同じ@emph{タイミング}で起こるためであり、@c
+@code{@bs{}once} のアクションは @code{@bs{}override} と同様に同じタイミングで@c
+起こる、指定されたタイプすべてのレイアウト オブジェクトへのオーバライドに適用@c
+されます。
+
+@code{@bs{}tweak} コマンドはこれとは異なるやり方で処理されます。これは入力スト@c
+リームの中ですぐ後に続く要素にだけ作用します。しかしながら、これは入力ストリー@c
+ムから直接作成されるオブジェクト -- 本質的に音符玉とアーティキュレーション -- 
+にだけ効果を持ちます。ステムや臨時記号などのオブジェクトは後で作成されるため、@c
+この方法では調整できません。さらに、@code{@bs{}tweak} が音符玉に適用される場@c
+合、それらは和音の内部になければ@emph{なりません} -- つまり、単一角括弧 
+@code{< .. >} の内部です。そのため、単一の音符 (和音ではない音符) を調整するに@c
+は、@code{@bs{}tweak} コマンドはその音符とともに単一の角括弧で囲わなければなり@c
+ません。
+
+それでは例に戻り、この方法で和音の真ん中の音符のサイズを変更します:
+
+@cindex font-size property, example
+@cindex @code{@bs{}tweak}, example
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
+  <c e g>4
+  <c \tweak #'font-size #-3 e g>4
+@end lilypond
+
+@code{@bs{}tweak} の構文は @code{@bs{}override} コマンドの構文とは異なるという@c
+ことに注意してください。コンテキストもレイアウト オブジェクトも指定されませ@c
+ん。実際、それらを指定するとエラーになります。これらは両方とも入力ストリームの@c
+中で後に続く要素によって示されます。さらに、イコール記号を使うべきではないとい@c
+うことに注意してください。そのため、@code{@bs{}tweak} コマンドの一般的な構文は@c
+単純に以下のようになります:
+
+@example
+@bs{}tweak @hash{}'@var{layout-property} @hash{}@var{value}
+@end example
+
+さらに、@code{@bs{}tweak} コマンドは一連のアーティキュレーションの中にあるただ 1 
+つのアーティキュレーションを変更されるためにも使用できます。ここに例を挙げます:
+
+@cindex color property, example
+@cindex @code{@bs{}tweak}, example
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+a ^Black
+  -\tweak #'color #red ^Red
+  -\tweak #'color #green _Green
+@end lilypond
+
+@noindent
+@code{@bs{}tweak} コマンドは、まるでそれがアーティキュレーションの一部であるか@c
+のように、アーティキュレーション マークの前に置かれなければならないということ@c
+に注意してください。
+
+@cindex tuplets, nested
+@cindex triplets, nested
+@cindex bracket, tuplet
+@cindex bracket, triplet
+@cindex tuplet bracket
+@cindex triplet bracket
+
+@funindex TupletBracket
+
+さらに、@code{@bs{}tweak} コマンドは、同時に起こるネストされた連符記号のセット@c
+のうちの 1 つの見た目を変更するためにも使用されます。以下の例では、長い連符記@c
+号と 3 つの短い連符記号のうちの最初の連符記号が同時に起こります。そのため、@c
+@code{@bs{}override} コマンドだと両方の連符記号に適用されてしまいます。この例@c
+では、@code{@bs{}tweak} は 2 つの連符記号を区別するために使用されています。最@c
+初の @code{@bs{}tweak} コマンドは長い連符記号を音符の上に置くことを指定してい@c
+て、2 番目の @code{@bs{}tweak} コマンドは最初の短い連符記号の数字を赤で描くこ@c
+とを指定しています。
+
+@cindex @code{@bs{}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[ c8 c8] }
+  \times 2/3 { c8[ c8 c8] }
+  \times 2/3 { c8[ c8 c8] }
+}
+@end lilypond
+
+ネストされた連符が同時に起こらない場合、それらの見た目は @code{@bs{}override} 
+コマンドを用いた通常通りの方法で変更されるかもしれません:
+
+@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 {
+  c[ c]
+  c[ c]
+  \once \override TupletNumber #'transparent = ##t
+  \times 2/3 { c8[ c c] }
+\times 2/3 { c8[ c c]}
+}
+@end lilypond
+
+
+@seealso
+表記リファレンス:
+@ruser{The tweak command}
+
+@node The Internals Reference manual
+@section The Internals Reference manual
+
+
+@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
+
+あなたがスラーを楽譜に描き、そのスラーが細すぎるためにもう少し太くしたいと思っ@c
+たとします。どうやってスラーを太くしますか?以前に LilyPond の自由度の高さにつ@c
+いて述べたので、そのようなことが可能であることは知っています。あなたはおそらく 
+@code{@bs{}override} コマンドが必要であると推測するでしょう。しかしながら、ス@c
+ラーの太さプロパティは存在するのでしょうか?そして、それが存在するならどうやっ@c
+て変更するのでしょうか?このようなことに内部リファレンス マニュアルは触れてい@c
+ます。内部リファレンス マニュアルには、あなたがスラーを太くするために必要な情@c
+報、他のすべての @code{@bs{}override} コマンドを構築するために必要な情報が含ま@c
+れています。
+
+内部リファレンスを見ていく前に一言警告です。これは@strong{リファレンス} ドキュ@c
+メントであり、説明はほんの少しかまったく含まれていません: リファレンスの目的は@c
+情報を正確に、かつ簡潔に提供することです。そのため、内部リファレンスを一見して@c
+ひるんでしまうかもしれません。しかし、心配しないでください!ここにあるガイダン@c
+スと説明を読めば、少し練習するだけで、内部リファレンスから必要な情報を取り出せ@c
+るようになります。
+
+@cindex override example
+@cindex Internals Reference, example of using
+@cindex @code{@bs{}addlyrics} example
+
+実際の音楽からの簡単な断片を持つ具体例を使用していきましょう:
+
+@lilypond[quote,verbatim,relative=2]
+{
+  \time 6/8
+  {
+    r4 b8 b[( g]) g |
+    g[( e]) e d[( f]) a |
+    a g
+  }
+  \addlyrics {
+    The man who feels love's sweet e -- mo -- tion
+  }
+}
+@end lilypond
+
+ここで、スラーをもう少し太くしようと決めたことにします。それは可能でしょうか?@c
+スラーは確かにレイアウト オブジェクトです。そのため、その疑問は @q{スラーに属@c
+していて、太さを制御するプロパティは存在するのか?} ということになります。その@c
+答えを得るために内部リファレンス -- 縮めて IR -- を見なければなりません。
+
+あなたが使用しているバージョンの LilyPond のための内部リファレンスは LilyPond 
+ウェブサイト @uref{http://lilypond.org} で見つかるでしょう。ドキュメント ペー@c
+ジに行き、内部リファレンスへのリンクをクリックしてください。学習目的のためには@c
+標準の HTML バージョンを使うべきであり、@q{one big page} (@q{大きな 1 ページに@c
+まとめたもの}) や PDF を使うべきではありません。次の数段落を読めば、あなたが内@c
+部リファレンスを読むときに実際にすべきことがわかるでしょう。
+
+内部リファレンスの@strong{トップ ページ}下には 5 つのリンクがあります。@c
+@emph{バックエンド} へのリンクを選択してください。そこにはレイアウト オブジェ@c
+クトについての情報があります。@strong{バックエンド} 下にある @emph{すべてのレ@c
+イアウト オブジェクト} へのリンクを選択してください。そのページには、あなたが@c
+使用しているバージョンの LilyPond で使用されるすべてのレイアウト オブジェクト@c
+がアルファベット順でリストアップされています。Slur へのリンクを選択すると、@c
+Slur のプロパティがリスト アップされます。
+
+表記リファレンスからこのページを見つける方法もあります。スラーについて扱ってい@c
+るページで、内部リファレンスへのリンクがを見つかるかもしれません。このリンクで@c
+このページに直接行くことができます。しかしながら、あなたが調整するレイアウト 
+オブジェクトの名前を想像できる場合は、すぐに内部リファレンスに行ってそこで探す@c
+方が簡単です。
+
+内部リファレンスの Slur ページでは、まず Slur オブジェクトは 
+@code{Slur_engraver} によって作成されるということが述べられています。それか@c
+ら、標準設定がをリストアップされています。標準設定はアルファベット順にはなっ@c
+て@strong{いない}ということに注意してください。太さを制御していそうなプロパ@c
+ティを探してブラウザをスクロール ダウンさせていくと、以下が見つかります:
+
+@example
+@code{thickness} (number)
+     @code{1.2}
+     Line thickness, generally measured in @code{line-thickness}
+@end example
+
+これが太さを変更するプロパティのようです。@code{thickness} の値は@emph{数}であ@c
+り、デフォルト値は 1.2、この値は他のプロパティでは @code{line-thickness} と呼@c
+ばれるということがわかります。
+
+前にも言ったように、内部リファレンスには説明がほとんど、あるいはまったくありま@c
+せん。しかしながら、すでにスラーの太さを変えるための十分な情報を持っています。@c
+レイアウト オブジェクトの名前は @code{Slur} であり、変更するプロパティの名前は 
+@code{thickness} であり、スラーをもっと太くするには新しい値を 1.2 よりも大きく@c
+すべきであることがわかります。
+
+今度は、レイアウト オブジェクト名で見つけた値を置き換えることによって 
+@code{@bs{}override} コマンドを構築することができます。コンテキストは省略しま@c
+す。最初は太さに非常に大きな値を割り当ててみます。それによって、そのコマンドが@c
+確かに機能していることを確かめることができます。実行するコマンドは以下のように@c
+なります:
+
+@example
+@bs{}override Slur @hash{}'thickness = @hash{}5.0
+@end example
+
+プロパティ名の前に @code{@hash{}'} を付けること、新しい値の前に @code{@hash{}} 
+を付けることを忘れないでください!
+
+最後の疑問は @q{このコマンドをどこに置くべきか?} ということです。そのことにつ@c
+いて不確かであり、学んでいる最中であるのならば、ベストな答えはこうです @q{音楽@c
+表記の内部で、最初のスラーの直前}。ではやってみましょう:
+
+@cindex Slur example of overriding
+@cindex thickness property, example
+
+@lilypond[quote,verbatim,relative=2]
+{
+  \time 6/8
+  {
+    % Increase thickness of all following slurs from 1.2 to 5.0
+    \override Slur #'thickness = #5.0
+    r4 b8 b[( g]) g |
+    g[( e]) e d[( f]) a |
+    a g
+  }
+  \addlyrics {
+    The man who feels love's sweet e -- mo -- tion
+  }
+}
+@end lilypond
+
+@noindent
+確かにスラーが太くなっています。
+
+これが @code{@bs{}override} コマンドを構築する基本的な方法です。これより後のセ@c
+クションで遭遇するものはもう少し複雑ですが、必要な要点はすべて知っています -- 
+しかしながら、まだ練習が必要でしょう。これは以下の例で提供されます。
+
+
+@subheading Finding the context
+
+@cindex context, finding
+@cindex context, identifying correct
+
+しかしながら、まず最初にコンテキストを指定しなければならないとしたらどうでしょ@c
+うか?指定すべきコンテキストは何でしょうか?スラーとボイスは音楽表記の各行で明@c
+らかに関係が深いので、スラーは @code{Voice} コンテキストの中にあると推測できる@c
+かもしれません。しかし、それは確かでしょうか?この問題を解決するには、Slur に@c
+ついて記述している内部リファレンス ページの先頭に戻ります。@c
+そこには @q{Slur オブジェクトは Slur エングラーバによって作成される} と書かれ@c
+ています。そのため、スラーは @code{Slur_engraver} が存在しているコンテキストの@c
+どれかで作成されるということになります。@code{Slur_engraver} へのリンクを辿り@c
+ます。そのページの最後の方で @code{Slur_engraver} は 5 つのボイス コンテキスト 
+-- 標準のボイス コンテキストである @code{Voice} を含む -- の一部であることが述@c
+べられています。ですから、推測は正しかったのです。そして、@code{Voice} は最下@c
+位のコンテキストの 1 つである -- このことは、そこに音符を入力するという事実に@c
+よって明らかに示されています -- ため、ここではそのコンテキストを省略することが@c
+できるのです。
+
+
+@subheading Overriding once only
+
+@cindex overriding once only
+@cindex once override
+
+@funindex \once
+@funindex once
+
+上記の最後の例では@emph{すべて}のスラーが太くなっています。しかし、最初のス@c
+ラーだけを太くしたい場合はどうでしょうか?これは @code{@bs{}once} コマンドを使@c
+うことによって達成されます。@code{@bs{}override} コマンドの直前に 
+@code{@bs{}once} コマンドを置くことによって、@code{@bs{}override} コマンド@c
+は@strong{直後にある}音符から始まるスラーだけを変更するようになります。直後に@c
+ある音符がスラーの開始点ではない場合、そのコマンドはまったく機能しません -- そ@c
+れがスラーに遭遇するまで保持されるということはなく、ただ切り捨てられるだけで@c
+す。そのため、@code{@bs{}once} コマンド付きの @code{@bs{}override} コマンドは@c
+以下のように上記の例とは異なる場所に置かなくてはなりません:
+
+@cindex Slur, example of overriding
+@cindex thickness property, example
+
+@lilypond[quote,verbatim,relative=2]
+{
+  \time 6/8
+  {
+    r4 b8
+    % Increase thickness of immediately following slur only
+    \once \override Slur #'thickness = #5.0
+    b[( g]) g |
+    g[( e]) e d[( f]) a |
+    a g
+  }
+  \addlyrics {
+    The man who feels love's sweet e -- mo -- tion
+  }
+}
+@end lilypond
+
+@noindent
+今度は、最初のスラーだけが太くなりました。
+
+@code{@bs{}once} コマンドは @code{@bs{}set} コマンドの前でも使用される可能性が@c
+あります。
+
+
+@subheading Reverting
+
+@cindex revert
+@cindex default properties, reverting to
+
+@funindex \revert
+@funindex revert
+
+最後に、最初の 2 つだけのスラーを太くしたい場合はどうでしょうか?その場合、2 
+つのコマンド -- それぞれの前に @code{@bs{}once} を付けた -- をスラーが始まる音@c
+符の直前に置きます:
+
+@cindex Slur, example of overriding
+@cindex thickness property, example
+
+@lilypond[quote,verbatim,relative=2]
+{
+  \time 6/8
+  {
+    r4 b8
+    % Increase thickness of immediately following slur only
+    \once \override Slur #'thickness = #5.0
+    b[( g]) g |
+    % Increase thickness of immediately following slur only
+    \once \override Slur #'thickness = #5.0
+    g[( e]) e d[( f]) a |
+    a g
+  }
+  \addlyrics {
+    The man who feels love's sweet e -- mo -- tion
+  }
+}
+@end lilypond
+
+@noindent
+あるいは、@code{@bs{}once} コマンドを省略して、2 番目のスラーの後に 
+@code{thickness} プロパティをデフォルト値に戻すために @code{@bs{}revert} コマ@c
+ンドを使うこともできます:
+
+@cindex Slur, example of overriding
+@cindex thickness property, example
+
+@lilypond[quote,verbatim,relative=2]
+{
+  \time 6/8
+  {
+    r4 b8
+    % Increase thickness of all following slurs from 1.2 to 5.0
+    \override Slur #'thickness = #5.0
+    b[( g]) g |
+    g[( e])
+    % Revert thickness of all following slurs to default of 1.2
+    \revert Slur #'thickness
+    e d[( f]) a |
+    a g
+  }
+  \addlyrics {
+    The man who feels love's sweet e -- mo -- tion
+  }
+}
+@end lilypond
+
+@noindent
+@code{@bs{}revert} コマンドは @code{@bs{}override} コマンドで変更されたどのプ@c
+ロパティでもデフォルト値に戻すことができます。状況に相応しい方を使用してくださ@c
+い。
+
+これで内部リファレンスと調整の基本的な方法についての紹介を終わりにします。この@c
+章で後に続くセクションの中にあるいくつのかの例でも一部では、内部リファレンスの@c
+特徴についての追加の紹介や、そこから情報を取り出すための更なる練習を提供しま@c
+す。それらの例ではガイダンスや説明のための言葉はずっと少ないでしょう。
+
+
+@node Properties found in interfaces
+@subsection Properties found in interfaces
+
+@cindex interface
+@cindex interface properties
+@cindex properties in interfaces
+
+今度は歌詞をイタリック体で譜刻したいということにします。そうするには 
+@code{@bs{}override} コマンドをどのように使う必要があるのでしょうか?以前と同@c
+様に、まず @q{すべてのレイアウト オブジェクト} をリストアップしている内部リ@c
+ファレンス ページを開き、歌詞をコントロールしていそうなオブジェクトを探しま@c
+す。@code{LyricText} がそれであるようです。これをクリックすると、歌詞のテキス@c
+トに対してセットすることができるプロパティが表示されます。そこには 
+@code{font-series} と @code{font-size} が含まれますが、歌詞をイタリック体にす@c
+るためのプロパティらしきものはありません。これは、形に関するプロパティはすべて@c
+のフォント オブジェクトに共通なものであり、そのため、各レイアウト オブジェクト@c
+に含まれているのではなく、他の同様な共通プロパティと一緒にグループ化されてい@c
+て、@strong{インタフェイス}の 1 つ @code{font-interface} の中に置かれているか@c
+らです。
+
+そのため、インタフェイスのプロパティを見つける方法と、どのオブジェクトがこれら@c
+のインタフェイス プロパティを使うのかを調べる方法を学ぶ必要があります。
+
+@code{LyricText} について記述している内部リファレンスのページを再び開いてくだ@c
+さい。そのページの最後に @code{LyricText} がサポートするインタフェイスへのリン@c
+クがリスト アップされています。そのリストには @code{font-interface} を含むいく@c
+つかの要素があります。このリンクをクリックすると、このインタフェイスに関連付け@c
+されているプロパティのところに行きます。これらのプロパティは @code{LyricText} 
+を含む @code{font-interface} をサポートするすべてのオブジェクトのプロパティで@c
+もあります。
+
+@code{font-shape(symbol)} を含むフォントを制御するユーザが設定可能なプロパティ@c
+をすべて見つけました。@code{font-shape(symbol)} では @code{symbol} を 
+@code{upright}, @code{italics}, あるいは @code{caps} にセットすることができま@c
+す。
+
+そこには、@code{font-series} と @code{font-size} もリスト アップされていること@c
+に気づくでしょう。そこで次のような疑問が湧いてきます: 共通フォントプロパティ 
+@code{font-series} と @code{font-size} は @code{LyricText} とインタフェイス 
+@code{font-interface} の両方でリスト アップされているのに、なぜ 
+@code{font-shape} はそうでないのか?その答えは、@code{font-series} と 
+@code{font-size} は、@code{LyricText} オブジェクトが作成されるときに、それらの@c
+グローバルなデフォルト値から変更されるのに対して、@code{font-shape} はそうでは@c
+ないからです。@code{LyricText} の中にあるエントリから @code{LyricText} に適用@c
+されるそれら 2 つのプロパティの値がわかります。@code{font-interface} をサポー@c
+トする他のオブジェクトは、それらのオブジェクトが作成されるときに、それらのプロ@c
+パティを異なる値にセットします。
+
+今度は歌詞をイタリック体に変更するように @code{@bs{}override} コマンドを構築で@c
+きるかどうかを見ていきましょう。オブジェクトは @code{LyricText} であり、プロパ@c
+ティは @code{font-shape} であり、セットする値は @code{italic} です。前と同様@c
+に、コンテキストを省略します。
+
+話は逸れますが重要なことを 1 つ挙げます。@code{font-shape} の値はシンボルなの@c
+で、シングル アポストロフィ @code{'} を付ける必要があるということに注意してく@c
+ださい。その理由は、以前の例での @code{thickness} や @code{font-shape} の前に@c
+アポストロフィを付ける必要がある理由と同じです。それらも両方ともシンボルです。@c
+シンボルは LilyPond によって内部的に読み取られます。それらのいくつかは 
+@code{thickness} や @code{font-shape} のようなプロパティの名前であり、他のものは 
+@code{italic} のようにプロパティに与えられる値として使用されます。任意のテキス@c
+ト文字列との違い -- 任意のテキスト文字列は @code{"a text string"} のような形で@c
+表記されます -- に注意してください。シンボルと文字列についてのより詳細な説明@c
+は、@ref{Scheme tutorial} を参照してください。
+
+さて、それでは歌詞をイタリック体で譜刻するために必要となる @code{@bs{}override} 
+コマンドは以下のようになります:
+
+@example
+\override LyricText @hash{}'font-shape = @hash{}'italic
+@end example
+
+@noindent
+そして、これは以下のように影響を与える歌詞の前に、そして近くに置くべきです:
+
+@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]
+{
+  \time 6/8
+  {
+    r4 b8 b[( g]) g |
+    g[( e]) e d[( f]) a |
+    a g
+  }
+  \addlyrics {
+    \override LyricText #'font-shape = #'italic
+    The man who feels love's sweet e -- mo -- tion
+  }
+}
+@end lilypond
+
+@noindent
+これで歌詞がすべてイタリック体で譜刻されました。
+
+
+@subheading Specifying the context in lyric mode
+
+@cindex context, specifying in lyric mode
+@cindex lyric mode, specifying context
+
+歌詞の場合、以前のようなコマンドの発行の仕方の中でコンテキストを指定しようとし@c
+ても失敗するでしょう。歌詞モードの中で入力される音節はスペース、改行、数字のい@c
+ずれかで区切られます。他のすべての文字は音節の一部と見なされます。これが、終端の 
+@code{@}} の前にはスペースか改行を置かなければならない理由です。そうしないと、@c
+終端の @code{@}} は最後の音節の一部に含まれてしまいます。同様に、コンテキスト@c
+名とオブジェクト名を区切るために、ピリオドまたはドット @q{.} の前と後ろにス@c
+ペースを挿入しなければなりません。さもないと 2 つの名前は一緒になってしまい、@c
+インタプリタはそれらを認識できなくなります。そのため、コマンドは以下のようにす@c
+べきです:
+
+@example
+@bs{}override Lyrics . LyricText @hash{}'font-shape = @hash{}'italic
+@end example
+
+@warning{歌詞の中では、最後の音節と終端の中括弧の間に常にスペースを置いてくだ@c
+さい。}
+
+@warning{歌詞の中のオーバライドでは、コンテキスト名とオブジェクト名の間にある@c
+ドットの両側に常にスペースを置いてください。}
+
+
+@seealso
+学習マニュアル: @ref{Scheme tutorial}
+
+
+@node Types of properties
+@subsection Types of properties
+
+@cindex property types
+
+これまでにプロパティのタイプを 2 つ見てきました: @code{number} と @code{symbol} 
+です。プロパティに与える値が有効であるためには、その値は正しいタイプであり、そ@c
+のタイプのルールに従っていなければなりません。プロパティのタイプは内部リファレ@c
+ンスの中で常にプロパティ名の後の括弧の中に表示されています。ここに、あなたが必@c
+要になるであろうプロパティのタイプを、そのタイプのルールといくつかの例と共にリ@c
+スト アップします。もちろん、@code{@bs{}override} コマンドの中でプロパティの値@c
+を入力する時は、常にそれらの値の前にハッシュ記号 @code{@hash{}} を付け加える必@c
+要があります。
+
+@multitable @columnfractions .2 .45 .35
+@headitem プロパティ タイプ
+  @tab 規則
+  @tab 例
+@item Boolean
+  @tab 真か偽のどちらかで、それぞれ @hash{}t と @hash{}f で表されます
+  @tab @code{@hash{}t}, @code{@hash{}f}
+@item Dimension (譜表スペース)
+  @tab 正の小数 (譜表スペース単位)
+  @tab @code{2.5}, @code{0.34}
+@item Direction
+  @tab 有効な向きを表す定数またはそれと等価な数値 (-1 から 1 までの小数が許可@c
+されます)
+  @tab @code{LEFT}, @code{CENTER}, @code{UP},
+       @code{1}, @code{-1}
+@item Integer
+  @tab 正の整数
+  @tab @code{3}, @code{1}
+@item List
+  @tab 値のセット。セットの値はスペースで区切られ、前にアポストロフィが付いた@c
+括弧で囲まれます
+  @tab @code{'(left-edge staff-bar)}, @code{'(1)},
+       @code{'(1.0 0.25 0.5)}
+@item Markup
+  @tab 有効なマークアップ
+  @tab @code{@bs{}markup @{ \italic "cresc." @}}
+@item Moment
+  @tab make-moment 関数で構築される全音符の分数
+  @tab @code{(ly:make-moment 1 4)},
+       @code{(ly:make-moment 3 8)}
+@item Number
+  @tab 正または負の小数
+  @tab @code{3.5}, @code{-2.45}
+@item (数の) Pair
+  @tab @q{スペース . スペース} で区切られ、前にアポストロフィが付いた括弧で囲@c
+まれた 2 つの数値
+  @tab @code{'(2 . 3.5)}, @code{'(0.1 . -3.2)}
+@item Symbol
+  @tab プロパティに許可されているシンボルのセットのいずれかであり、前にアポロ@c
+ストロフィを付けます
+  @tab @code{'italic}, @code{'inside}
+@item Unknown
+  @tab 手続き。何のアクションも起こさない場合は @code{@hash{}f}
+  @tab @code{bend::print}, @code{ly:text-interface::print},
+       @code{@hash{}f}
+@item Vector
+  @tab 前にアポストロフィ-ハッシュ @code{'@hash{}} が付いた括弧で囲まれた 3 要@c
+素のリスト
+  @tab @code{'@hash{}(@hash{}t @hash{}t @hash{}f)}
+@end multitable
+
+
+@seealso
+学習マニュアル: @ref{Scheme tutorial}
+
+
+@node Appearance of objects
+@section Appearance of objects
+
+いくつかの例を使ってこれまでに学んだことを練習して、譜刻される楽譜の見た目を変@c
+更するためにどのように調整が使われるのかを見ていきましょう。
+
+
+@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
+
+教育目的の楽譜では、ある要素を省略した楽譜を譜刻して、学生にそれを付け足させる@c
+という訓練にしたいと思うかもしれません。簡単な例として、その訓練とは小節線の無@c
+い楽譜だと仮定してみましょう。しかしながら、通常、小節線は自動的に挿入されま@c
+す。どうやって小節線が譜刻されることを防ぐのでしょうか?
+
+このことに挑戦する前に、オブジェクト プロパティは@emph{インタフェイス}と呼ばれ@c
+るものにグループ化されているということを思い出してください -- @ref{Properties 
+found in interfaces} を参照してください。これはあるグラフィカル オブジェクトを@c
+調整するために一緒に使用されるかもしれないプロパティをグループ化したものです -- 
+あるオブジェクトに対してインタフェイス内のプロパティの 1 つを使うことが許可さ@c
+れるのなら、他のプロパティも許可されます。あるオブジェクトはいくつかのインタ@c
+フェイス内にあるプロパティを使用し、別のオブジェクトはそれとは別のインタフェイ@c
+ス内にあるプロパティを使用します。ある特定のグラフィカルオブジェクトによって使@c
+用されるプロパティを保持しているインタフェイスは、そのグラフィカル オブジェク@c
+トについて記述している内部リファレンス ページの最後にリスト アップされていて、@c
+それらのプロパティはそれらのインタフェイスを参照することによって閲覧できます。
+
+グラフィカル オブジェクトについての情報を見つけ出す方法を @ref{Properties of 
+layout objects} で説明しました。同じアプローチを使って、内部リファレンスで小節@c
+線を譜刻するレイアウト オブジェクトを見つけ出します。@emph{バックエンド}を経由@c
+して@emph{すべてのレイアウト オブジェクト}に行くと、そこに @code{BarLine} と呼@c
+ばれるレイアウト オブジェクトがあることがわかります。そのレイアウト オブジェク@c
+トのプロパティには小節線の可視性をコントロールする 2 つのプロパティが含まれて@c
+います: @code{break-visibility} と @code{stencil} です。さらに、@code{BarLine} 
+はインタフェイスのいくつかをサポートしています。@code{grob-interface} もサポー@c
+トされていて、そこには @code{transparent} プロパティと @code{color} プロパティ@c
+が含まれています。これらすべてが小節線の可視性に影響を与えます (そしてもちろ@c
+ん、拡大解釈すれば他の多くのレイアウト オブジェクトにも影響を与えます)。次はこ@c
+れらのプロパティをそれぞれ見ていきましょう。
+
+
+@subheading stencil
+
+@cindex stencil property
+
+このプロパティは譜刻すべきシンボル (グリフ) を指定することによって小節線の見た@c
+目を制御します。他の多くのプロパティでも共通に言えますが、このプロパティの値に 
+@code{@hash{}f} をセットすることによって何も譜刻させなくすることができます。で@c
+はやってみましょう。以前と同様に、暗黙のコンテキスト @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, a16 b8 c d4 e16 |
+  e8
+}
+@end lilypond
+
+小節線はまだ譜刻されています。何が間違っているのでしょうか?内部リファレンスに@c
+戻って、@code{BarLine} のプロパティを記述しているページを読み返してください。@c
+そのページの先頭に @qq{BarLine オブジェクトは Bar_engraver によって作成されます} 
+と記述されています。@code{Bar_engraver} ページに行ってください。そのページの最@c
+後で、@code{Bar_engraver} を保持するコンテキストがリスト アップされています。@c
+それらのコンテキストのタイプはすべて @code{Staff} です。ですから、@c
+@code{@bs{}override} コマンドが予期したように機能しなかったのは、@code{BarLine} 
+はデフォルトの @code{Voice} コンテキストの中にはいなかったからなのです。コンテ@c
+キストが間違って指定された場合、そのコマンドは機能しません。エラー メッセージ@c
+は生成されず、ログ ファイルには何もログが残りません。正しいコンテキストを付け@c
+加えることによってコマンドを修正してみましょう:
+
+@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, a16 b8 c d4 e16 |
+  e8
+}
+@end lilypond
+
+今度は小節線が消えました。
+
+
+@subheading break-visibility
+
+@cindex break-visibility property
+
+内部リファレンスの @code{BarLine} のプロパティから @code{break-visibility} プ@c
+ロパティには 3 つのブール値からなるベクトルが必要であることがわかります。これ@c
+らはそれぞれ、小節線が行の最後、行の途中、行の最初に譜刻されるかどうかを制御し@c
+ます。以下の例ではすべての小節線を消したいので、必要となる値は 
+@code{'@hash{}(@hash{}f @hash{}f @hash{}f)} です。それではやってみましょう。@c
+@code{Staff} コンテキストを含めることを忘れないでください。また、この値を書く@c
+ときに括弧を始める前に @code{@hash{}'@hash{}} を付ける必要があることにも注意し@c
+てください。@code{'@hash{}} はベクトルを導入するときに値の一部として必要とさ@c
+れ、先頭の @code{@hash{}} は @code{@bs{}override} コマンドの中で常に値の前に置@c
+くことが必要とされます。
+
+@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, a16 b8 c d4 e16 |
+  e8
+}
+@end lilypond
+
+今度もすべての小節線が消えました。
+
+
+@subheading transparent
+
+@cindex transparent property
+@cindex transparency
+
+内部リファレンスの @code{grob-interface} ページにあるプロパティから 
+@code{transparent} プロパティはブール値であることがわかります。これはグラフィ@c
+カル オブジェクトを透明にする場合には @code{@hash{}t} にセットします。次の例で@c
+は、小節線ではなく拍子記号を不可視にしてみましょう。そうするには、まず、拍子記@c
+号のグラフィカル オブジェクト名を見つける必要があります。@code{TimeSignature} 
+レイアウト オブジェクトのプロパティを見つけるために内部リファレンスの @q{すべ@c
+てのレイアウト オブジェクト} ページに戻ってください。@code{TimeSigunature} は 
+@code{Time_signature_engraver} によって作り出され、さらに、@c
+@code{Time_signature_engraver} は @code{Staff} コンテキストに含まれ、さらに、@c
+@code{Staff} コンテキストは @code{grob-interface} をサポートしているということ@c
+がわかります。そのため、拍子記号を透明にするためのコマンドは以下のようになりま@c
+す:
+
+@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, a16 b8 c d4 e16 |
+  e8
+}
+@end lilypond
+
+@noindent
+拍子記号は消えました。しかしながら、このコマンドは拍子記号があるべき場所に隙間@c
+を残しています。たぶん、これは学生がその部分を埋めるための練習としては望ましい@c
+でしょうが、他の状況ではこの隙間は望ましくありません。この隙間を取り除くには、@c
+拍子記号の @code{transparent} の代わりにステンシル (型、型紙) を @code{@hash{}f} 
+にセットします:
+
+@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, a16 b8 c d4 e16 |
+  e8
+}
+@end lilypond
+
+@noindent
+違いは明白です: ステンシルを @code{@hash{}f} にセットすると、オブジェクト自体@c
+が削除されます。一方、オブジェクトを @code{transparent} (透明) にするとそのオ@c
+ブジェクトは消えますが、オブジェクトは不可視になっただけです。
+
+
+@subheading color
+
+@cindex color property
+
+最後に、小節線の色を白にすることによって小節線を不可視にしてみましょう。(これ@c
+には白い小節線が譜表線と交差したところで譜表線を見えたり見えなくしてしまうかも@c
+しれないという問題があります。以下のいくつかの例で、このことを予測することはで@c
+きないと思うかもしれません。そうなる理由と、それを制御する方法についての詳細@c
+は、@ruser{Painting objects white} でカバーされています。しかしここでは色につ@c
+いて学んでいるところなので、オブジェクトを白で描くことの限界を受け入れるだけに@c
+してください。)
+
+@code{grob-interface} はカラー プロパティの値はリストであると指定しています。@c
+しかしながら、そのリストが何であるべきなのかの説明はありません。カラー プロパ@c
+ティで必要とされるリストは実際のところ内部ユニットの中にある値のリストです。し@c
+かし、内部ユニットの中にある値を知らなくても済むように、カラーを指定するための@c
+手段がいくつか用意されています。最初の方法は @ruser{List of colors} にある最初@c
+の表でリスト アップされている @q{標準} のカラーの 1 つを使用する方法です。小節@c
+線を白にするには以下のように記述します:
+
+@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, a16 b8 c d4 e16 |
+  e8
+}
+@end lilypond
+
+@noindent
+今度も再び小節線は見えなくなりました。@emph{white} の前にアポストロフィは付か@c
+ないということに注意してください -- これはシンボルではなく@emph{関数}です。こ@c
+の関数が呼び出されると、この関数はカラーを白にセットするために必要とされる内部@c
+値のリストを提供します。標準カラー リストにある他のカラーもまた関数です。これ@c
+が機能していることをあなた自身が納得するために、カラーをこのリストの中にある他@c
+の関数の 1 に変更しようと思うかもしれません。
+
+@cindex color, X11
+@cindex X11 colors
+
+@funindex x11-color
+
+カラーを変えるための 2 番目の方法は、@ruser{List of colors} の 2 番目のリスト@c
+の中にある X11 カラー名のリストを使用する方法です。しかしながら、以下のよう@c
+に、これらの前には X11 カラー名を内部値のリストに変更するもう 1 つの関数 -- 
+@code{x11-color} -- がなければなりません:
+
+@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, a16 b8 c d4 e16 |
+  e8
+}
+@end lilypond
+
+@noindent
+この場合、関数 @code{x11-color} はシンボルを引数として扱うので、シンボルの前に@c
+はアポストロフィをつけなくてはならず、@code{x11-color} とシンボルは括弧で囲ま@c
+れていなければならないということに注意してください。
+
+@cindex rgb colors
+@cindex color, rgb
+
+@funindex rgb-color
+
+まだ 3 番目の方法が残っています。これは RGB 値を内部カラーに変換する 
+@code{rgb-color} 関数を使用する方法です。この関数は赤、緑、青の輝度を表す 3 つ@c
+の引数をとります。これらの引数は 0 から 1 までの値をとります。ですから、カラー@c
+を赤にセットする場合の値は @code{(rgb-color 1 0 0)} となり、白の場合は 
+@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, a16 b8 c d4 e16 |
+  e8
+}
+@end lilypond
+
+最後に、X11 カラー セットの一部であるグレー スケールを用いる方法もあります。グ@c
+レー スケールの範囲は黒 @code{'grey0'} から白 @code{'grey100'} まで 1 段階ずつ@c
+あります。グレー スケールの使用方法を示すために、例の中にあるすべてのレイアウト 
+オブジェクトのカラーをさまざまな濃度のグレーにセットしてみましょう:
+
+@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, a16 b8 c d4 e16 |
+  e8
+}
+@end lilypond
+
+@noindent
+各レイアウト オブジェクトに関連付けされているコンテキストに注意してください。@c
+これらのコンテキストを正しく取得することが重要であり、そうしなければコマンドは@c
+機能しません!コンテキストの中には特定のエングラーバが置かれているということを@c
+忘れないでください。エングラーバに対するデフォルト コンテキストを見つけ出すに@c
+は、内部リファレンスのレイアウト オブジェクトからスタートして、そこからそれを@c
+作り出すエングラーバのページに行きます。エングラーバのページには、通常はどのコ@c
+ンテキストにそのエングラーバが含まれているのかが記述されています。
+
+
+@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
+
+以前の例を見直すことから始めてみましょう (@ref{Nesting music expressions} を参@c
+照してください)。そこでは @rglos{ossia} として新たに一時的な譜表を導入する方法@c
+が示されています。
+
+@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
+         <<
+           { f c c }
+           \new Staff \with {
+             alignAboveContext = #"main" }
+           { f8 f c }
+         >>
+         r4 |
+       }
+     }
+@end lilypond
+
+通常、オッシアは音部記号と拍子記号無しで記述され、メインの譜表よりもわずかに小@c
+さく譜刻されます。今度は、すでに音部記号と拍子記号を削除する方法を知っています 
+-- 以下のようにそれぞれのステンシルを @code{@hash{}f} にセットするだけです:
+
+@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
+    <<
+      { f c c }
+      \new Staff \with {
+        alignAboveContext = #"main"
+      }
+      {
+        \override Staff.Clef #'stencil = ##f
+        \override Staff.TimeSignature #'stencil = ##f
+        { f8 f c }
+      }
+    >>
+    r4 |
+  }
+}
+@end lilypond
+
+@noindent
+ここで、@code{@bs{}with} 節の後にある追加の括弧のペアが、その括弧に囲まれてい@c
+るオーバライドと音楽がオッシア譜表に適用されることを保証するために、必要となり@c
+ます。
+
+しかし、@code{@bs{}with} を使った譜表コンテキストの変更と @code{@bs{}override} 
+を使った音部記号と拍子記号のステンシルの変更との違いは何なのでしょうか?主な違@c
+いは、@code{@bs{}with} 節の中で行われた変更はそのコンテキストが作成されるとき@c
+に行われ、そのコンテキストでは@strong{デフォルト}値として残ります。一方、音楽@c
+の中に埋め込まれた @code{@bs{}set} コマンドや @code{@bs{}override} コマンドは@c
+動的です -- それらは音楽のある特定のポイントに同期して変更を行います。変更が 
+@code{@bs{}unset} や @code{@bs{}revert} を使ってセットを解除されたり元に戻され@c
+た場合、デフォルト値 -- これは @code{@bs{}with} 節でセットされていた場合はその@c
+値、そうでない場合は通常のデフォルト値 -- に戻ります。
+
+いくつかのコンテキスト プロパティは @code{@bs{}with} 節でのみ変更可能です。こ@c
+れらは、コンテキストが作成された後では、変更されることのないプロパティです。@c
+@code{alignAboveContext} とそのパートナー @code{alignBelowContext} がそのよう@c
+なプロパティです -- いったん譜表が作成されると、譜表のアラインメントは決定さ@c
+れ、それを後で変更しようとすることには意味がありません。
+
+レイアウト オブジェクトのデフォルト値は @code{@bs{}with} 節でセットすることも@c
+できます。通常の @code{@bs{}override} コマンドをコンテキスト名を省いて使用する@c
+だけです。コンテキスト名を省略するのは、そのコンテキストは明らかに 
+@code{@bs{}with} 節が変更しようとしているコンテキストだからです。実際、@c
+@code{@bs{}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
+    <<
+      { f 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
+
+最後に、レイアウト オブジェクトのサイズを変更してみます。
+
+いくつかのレイアウト オブジェクトはある書体から選択されたグリフとして作成され@c
+ます。これには音符の玉、臨時記号、マークアップ、音部記号、拍子記号、強弱記号、@c
+歌詞が含まれます。それらのサイズは、これから見ていくように、@code{font-size} 
+プロパティを変更することによって変更されます。スラーやタイのような他のレイアウト 
+オブジェクト -- 一般には、スパナ オブジェクト (spanner objects) -- は個々に描@c
+かれるため、@code{font-size} プロパティとは関係がありません。一般に、それらの@c
+オブジェクトはそれらを取り付けられるオブジェクトからサイズを決定する (訳者: 例@c
+えば、スラーはそのスラーが付着する音符からそのスラーのサイズを決定する) ので、@c
+通常はサイズを手動で変更する必要はありません。さらに、ステムや小節線の長さ、@c
+ビームや他の線の太さ、譜表線の間隔などといった他のプロパティはすべて特別な方法@c
+で変更する必要があります。
+
+オッシアの例に戻って、まず @code{font-size} を変更してみましょう。これを行うには 
+2 通りの方法があります。以下のようなコマンドで @code{NoteHead} のような各オブ@c
+ジェクト タイプのフォント サイズを変更する:
+
+@example
+\override NoteHead #'font-size = #-2
+@end example
+
+あるいは、@code{@bs{}set} を使って特別なプロパティ @code{fontSize} を設定する@c
+か、それを @code{@bs{}with} 節に含める (ただし、@code{@bs{}set} は含めません) 
+ことによってすべてのフォントのサイズを変更します:
+
+@example
+\set fontSize = #-2
+@end example
+
+これらの命令文は両方ともフォント サイズを前の値から 2 段階減らします。各段階で@c
+サイズはおよそ 12% 増減します。
+
+それではオッシアの例でフォント サイズを変更してみましょう:
+
+@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
+    <<
+      { f 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
+
+これでもまだ完璧ではありません。音符の玉とフラグは小さくなりましたが、ステムは@c
+それに対して長すぎ、譜表線は離れすぎています。これらをフォント サイズの減少に@c
+比例してスケール ダウンさせる必要があります。次のサブ セクションでそれを行う方@c
+法について議論します。
+
+
+@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
+
+LilyPond では距離と長さは一般に譜表スペース -- 譜表の中の隣り合う線の間隔 -- 
+で測ります (特別な場合では、譜表スペースの半分で測ることもあります)。一方、た@c
+いていの @code{thickness} プロパティは @code{line-thickness} と呼ばれる内部プ@c
+ロパティを単位として測ります。例えば、デフォルトでは、ヘアピン (訳者: 強弱記号) 
+の線の太さは 1 単位の @code{line-thickness} であり、音符のステムの 
+@code{thickness} は 1.3 です。けれども、それとは単位の異なる太さプロパティがあ@c
+るということにも注意してください。例えば、ビームの太さプロパティは譜表スペース@c
+で測ります。
+
+それでは、どうやって長さをフォント サイズに比例させるのでしょうか?これは、ま@c
+さにこの目的のために提供されている @code{magstep} と呼ばれる特別な関数の助けを@c
+借りることによって達成できます。この関数は引数を 1 つ -- フォント サイズの変化 
+(前の例では @hash{}-2) -- をとり、他のオブジェクトの縮小に比例したスケーリング 
+ファクタを返します。以下のように使用します:
+
+@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
+    <<
+      { f 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
+ステムの長さと他の多くの長さに関係するプロパティは常に @code{staff-space} プロ@c
+パティの値と比例関係になるよう算出されるため、それらの長さも自動的にスケール 
+ダウンされます。これはオッシアの垂直方向のスケールだけに効果を及ぼすということ@c
+に注意してください -- 水平方向のスケールは、メインの音楽と同期するよう、メイン@c
+の音楽のレイアウトによって決定されるため、水平方向のスケールは 
+@code{staff-space} の変更によっていかなる影響も受けません。もちろん、メインの@c
+音楽のすべてのスケールがこの方法で変更された場合、水平方向のスペースも影響を受@c
+けます。このことについては、後のレイアウト セクションで議論します。
+
+そして、これでオッシアの作成は完了です。他のすべてのオブジェクトのサイズと長さ@c
+が類似の方法で変更されるかもしれません。
+
+上記の例のようなスケールのちょっとした変更に対して、小節線、ビーム、ヘアピン、@c
+スラーなどのさまざまな描画線の太さは通常はグローバルな調節を必要としません。あ@c
+る特定のレイアウト オブジェクトの太さを調節する必要がある場合、それを達成する@c
+最良の方法はそのオブジェクトの @code{thickness} プロパティをオーバライドするこ@c
+とです。スラーの太さを変更する例は @ref{Properties of layout objects} で示され@c
+ています。すべての描画オブジェクト (つまり、フォントから作り出されるオブジェク@c
+トではないもの) の太さが同様の方法で変更されるかもしれません。
+
+
+@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
+
+音楽表記には譜表に属するオブジェクトがいくつかあり、他のオブジェクトは譜表の外@c
+側に置かれるべきです。それらはそれぞれ譜表内部オブジェクトと譜表外部オブジェク@c
+トと呼ばれます。
+
+譜表内部オブジェクトは譜表上に置かれます -- 音符の玉、ステム、臨時記号などで@c
+す。通常、それらの位置は音楽自体によって決定されます -- 譜表内部オブジェクトは@c
+譜表のある特定の線と同じ垂直位置に置かれたり、そこに置かれるべき他のオブジェク@c
+トにくっつけられたりします。近接する和音の中にある音符の玉、ステム、臨時記号の@c
+衝突は普通は自動的に回避されます。これから見ていくように、この自動配置を変更す@c
+ることができるコマンドとオーバライドがあります。
+
+譜表の外部にあるオブジェクトには、リハーサル記号、テキスト、強弱記号などがあり@c
+ます。LilyPond が持つ譜表外部オブジェクトの垂直位置のルールは、譜表外部オブ@c
+ジェクトをできるだけ譜表の近くに、しかし他のオブジェクトと衝突しない程度の近さ@c
+に置くというものです。以下で示すように、LilyPond はオブジェクトを配置する順番@c
+を決定するために @code{outside-staff-priority} プロパティを使用します。
+
+最初に、LilyPond はすべての譜表内部オブジェクトを配置します。それから、@c
+@code{outside-staff-priority} に従って譜表外部オブジェクトを並べます。譜表外部@c
+オブジェクトは最小の @code{outside-staff-priority} を持つオブジェクトから順番に 
+1 つずつ並べられ、すでに配置されたオブジェクトと衝突しないように配置されます。@c
+つまり、2 つの譜表外部オブジェクトが同じスペースを巡って競合する場合、より小さな 
+@code{outside-staff-priority} を持つオブジェクトが譜表の近くに配置されます。2 
+つのオブジェクトが同じ @code{outside-staff-priority} を持つ場合、先に発生する@c
+オブジェクトが譜表の近くに配置されます。
+
+以下の例では、すべてのマークアップ テキストが同じ優先度を持っています (なぜな@c
+ら、優先度が明示的にセットされていないからです)。@q{Text3} が自動的に譜表の近@c
+く、@q{Text2} のすぐ下に納まるよう配置されていることに注意してください。
+
+@cindex markup example
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+c2^"Text1"
+c^"Text2"
+c^"Text3"
+c^"Text4"
+@end lilypond
+
+デフォルトでは、譜も互いにできるだけ近くなるよう配置されます (最小間隔に従いま@c
+す)。音符が隣接する譜表に向かって長く突き出てている場合、譜を離さないと表記が@c
+重なり合ってしまう場合にのみ譜は離されます。以下の例は譜の調整によって音符が 
+@q{ぴったりと納まる} 様子を示しています:
+
+@lilypond[quote,ragged-right,verbatim]
+<<
+  \new Staff {
+    \relative c' { c a, }
+  }
+  \new Staff {
+    \relative c'''' { c a, }
+  }
+>>
+@end lilypond
+
+
+@node Within-staff objects
+@subsection Within-staff objects
+
+これまでにコマンド @code{\voiceXXX} がスラー、タイ、運指法記号、ステムの向きに@c
+依存する他のすべてに対してどのように影響を与えるかを見てきました。これらのコマ@c
+ンドは、多声部音楽を記述しているときに上下する旋律を見分けられるようにすること@c
+を可能にするために不可欠なものです。しかしながら、この自動機能をオーバライドす@c
+る必要がある場合もあります。このオーバライドは音楽全体に対しても、個々の音符に@c
+対してもできます。この自動機能を制御しているプロパティは各レイアウト オブジェ@c
+クトの @code{direction} プロパティです。まず、これは何をするのかを説明し、それ@c
+から、作成済みのコマンドをいくつか紹介します。それらのコマンドを使うと、一般的@c
+な変更のための明示的なオーバライドをコードしなくて済みます。
+
+
+スラーやタイのようなレイアウト オブジェクトはカーブを描き、曲がり、上下しま@c
+す。ステムやフラグのような他のオブジェクトも上下の向きによって位置が左右しま@c
+す。@code{direction} がセットされているときは、これは自動的に制御されます。
+
+@cindex down
+@cindex up
+@cindex center
+@cindex neutral
+
+以下の例は、小節 1 でステムのデフォルトの振る舞いを示しています。高い位置にあ@c
+る音符のステムは下向きで、低い位置にある音符のステムは上向きです。続いて 4 つ@c
+の音符のステムをすべて強制的に下向きにし、4 つの音符のステムをすべて強制的に上@c
+向きにし、最後に 4 つの音符のステムをデフォルトに戻します。
+
+@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
+a g c a
+\override Stem #'direction = #UP
+a g c a
+\revert Stem #'direction
+a g c a
+@end lilypond
+
+ここで定数 @code{DOWN} と @code{UP} を使っています。これらはそれぞれ値 @code{-1} 
+と @code{+1} を持ち、定数の代わりにそれらの数値を使うこともできまはす。さらに値 
+@code{0} を使う場合もあります。この値はステムでは @code{UP} を意味するものとし@c
+て扱われますが、いくつかのオブジェクトでは @q{center} という意味になります。値 
+@code{0} を持つ定数に @code{CENTER} があります。
+
+しかしながら、これらの明示的なオーバライドは普通は使われません。もっと簡単で定@c
+義済みのコマンドが利用可能だからです。ここに一般的なコマンドの表を挙げます。そ@c
+れぞれのコマンドの意味が明白でない場合は、そのコマンドの意味を述べています。
+
+@multitable @columnfractions .2 .2 .25 .35
+@headitem 下/左
+  @tab 上/右
+  @tab 元に戻す
+  @tab 効果
+@item @code{\arpeggioArrowDown}
+  @tab @code{\arpeggioArrowUp}
+  @tab @code{\arpeggioNormal}
+  @tab 矢印が下に付く、上に付く、付かない
+@item @code{\dotsDown}
+  @tab @code{\dotsUp}
+  @tab @code{\dotsNeutral}
+  @tab 譜表線を避けるための移動方向
+@item @code{\dynamicDown}
+  @tab @code{\dynamicUp}
+  @tab @code{\dynamicNeutral}
+  @tab
+@item @code{\phrasingSlurDown}
+  @tab @code{\phrasingSlurUp}
+  @tab @code{\phrasingSlurNeutral}
+  @tab Note: スラー コマンドとは別になります
+@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 スパナとして挿入されるテキストが譜表の下/上にくる
+@item @code{\tieDown}
+  @tab @code{\tieUp}
+  @tab @code{\tieNeutral}
+  @tab
+@item @code{\tupletDown}
+  @tab @code{\tupletUp}
+  @tab @code{\tupletNeutral}
+  @tab 連符記号が音符の下/上にくる
+@end multitable
+
+これらの定義済みコマンドの前には @code{@bs{}once} が付か@strong{ない}かもしれ@c
+ません。コマンドの効果を単一の音符に制限したい場合、等価の @code{@bs{}once 
+@bs{}override} コマンドを使用するか、あるいは、定義済みコマンドを使用して、効@c
+果を受けた音符の後に対応する @code{@bs{}xxxNeutral} コマンドを置かなければなり@c
+ません。
+
+@subheading Fingering
+
+@cindex fingering, placement
+@cindex fingering, chords
+
+単一の音符に対する運指法記号の配置も @code{direction} プロパティによって制御で@c
+きますが、@code{direction} を変更しても和音の運指法記号は影響を受けません。こ@c
+れから見ていくように、和音の中の個々の音符の運指法記号を制御するための特別なコ@c
+マンドがあります。このコマンドを使うことで運指法記号を各音符の上、下、左、右に@c
+配置することができます。
+
+まず、単一の音符の運指法記号に対する @code{direction} を効果を示します。最初の@c
+小節はデフォルト状態で、その後で @code{DOWN} と @code{UP} を指定したときの効果@c
+を示します:
+
+@cindex Fingering, example of overriding
+@cindex direction property, example
+
+@lilypond[quote,verbatim,relative=2]
+c-5 a-3 f-1 c'-5
+\override Fingering #'direction = #DOWN
+c-5 a-3 f-1 c'-5
+\override Fingering #'direction = #UP
+c-5 a-3 f-1 c'-5
+@end lilypond
+
+しかしながら、@code{direction} プロパティをオーバライドすることは、手動で運指@c
+法記号を音符の上または下に配置するもっとも簡単な方法ではありません。運指法番号@c
+の前に @code{-} の代わりに @code{_} または @code{^} を使う方が普通は適切です。@c
+ここで、上記の例にこの方法を用いた例を挙げます:
+
+@cindex fingering example
+
+@lilypond[quote,verbatim,relative=2]
+c-5 a-3 f-1 c'-5
+c_5 a_3 f_1 c'_5
+c^5 a^3 f^1 c'^5
+@end lilypond
+
+@code{direction} プロパティは和音では無視されますが、方向を示す接頭辞 @code{_} 
+と @code{^} は機能します。以下で示すように、デフォルトでは、運指法記号は和音の@c
+音符の上と下の両方に自動的に配置されます:
+
+@cindex fingering example
+
+@lilypond[quote,verbatim,relative=2]
+<c-5 g-3>
+<c-5 g-3 e-2>
+<c-5 g-3 e-2 c-1>
+@end lilypond
+
+@noindent
+しかし、以下で示すように、運指法番号のすべてまたはいずれかを手動で強制的に和音@c
+の上または下に配置するために、これはオーバライドされるかもしれません:
+
+@cindex fingering example
+
+@lilypond[quote,verbatim,relative=2]
+<c-5 g-3 e-2 c-1>
+<c^5 g_3 e_2 c_1>
+<c^5 g^3 e^2 c_1>
+@end lilypond
+
+@code{\set fingeringOrientations} コマンドを使うことによって和音の中にある個々@c
+の音符の運指法記号の配置をより細かく制御することさえできます。このコマンドの@c
+フォーマットは以下のようなものです:
+
+@example
+@code{\set fingeringOrientations = #'([up] [left/right] [down])}
+@end example
+
+@noindent
+@code{fingeringOrientations} は @code{Voice} コンテキストのプロパティであり、@c
+@code{New_fingering_engraver} によって作成、使用されるため、@code{\set} が使用@c
+されます。
+
+このプロパティには 1 つから 3 つまでの値のリストがセットされるかもしれません。@c
+このプロパティは運指法記号を上 (リストに @code{up} がある場合)、下 (リストに 
+@code{down} がある場合)、左 (リストに @code{left} がある場合。リストに 
+@code{right} がある場合は右) に配置します。逆に配置位置がリストされていない場@c
+合、その位置に運指法記号は配置されません。LilyPond はこれらの制約を受け取り、@c
+後に続く和音の音符への運指法記号をうまく配置します。@code{left} と @code{right} 
+は相互排他的であるということに注意してください -- 運指法記号は左右のどちらかに@c
+しか配置されないか、どちらにも配置されません。
+
+@warning{このコマンドを使って単一の音符への運指法記号の配置をコントロールする@c
+には、その音符を角括弧で囲んで単一音符の和音として記述する必要があります。}
+
+いくつか例を挙げます:
+
+@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>
+< c-1  e-2 g-3 b-5 > 4
+\set fingeringOrientations = #'(left)
+<f-2>
+< c-1  e-2 g-3 b-5 > 4
+\set fingeringOrientations = #'(up left down)
+<f-2>
+< c-1  e-2 g-3 b-5 > 4
+\set fingeringOrientations = #'(up left)
+<f-2>
+< c-1  e-2 g-3 b-5 > 4
+\set fingeringOrientations = #'(right)
+<f-2>
+< c-1  e-2 g-3 b-5 > 4
+@end lilypond
+
+@noindent
+運指法記号が少し込み合っているように見える場合は、@code{font-size} でサイズを@c
+下げることができます。デフォルト値は内部リファレンスの @code{Fingering} オブ@c
+ジェクトのページから @code{-5} であることがわかるので、@code{-7} にセットして@c
+みましょう:
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
+\override Fingering #'font-size = #-7
+\set fingeringOrientations = #'(left)
+<f-2>
+< c-1  e-2 g-3 b-5 > 4
+\set fingeringOrientations = #'(left)
+<f-2>
+< c-1  e-2 g-3 b-5 > 4
+\set fingeringOrientations = #'(up left down)
+<f-2>
+< c-1  e-2 g-3 b-5 > 4
+\set fingeringOrientations = #'(up left)
+<f-2>
+< c-1  e-2 g-3 b-5 > 4
+\set fingeringOrientations = #'(right)
+<f-2>
+< c-1  e-2 g-3 b-5 > 4
+@end lilypond 
+
+
+@node Outside-staff objects
+@subsection Outside-staff objects
+
+譜表外部オブジェクトは自動的に衝突を回避するよう配置されます。小さな値の 
+@code{outside-staff-priority} プロパティを持つオブジェクトは譜表の近くに配置さ@c
+れ、他の譜表外部オブジェクトは衝突を避けるのに必要な分だけ離されます。@c
+@code{outside-staff-priority} は @code{grob-interface} の中で定義されているた@c
+め、すべてのレイアウト  オブジェクトのプロパティです。デフォルトでは、すべての@c
+譜表内部オブジェクトの @code{outside-staff-priority} は @code{@hash{}f} にセッ@c
+トされていて、譜表外部オブジェクトが作成されたときにその譜表外部オブジェクトの 
+@code{outside-staff-priority} に適当な数値がセットされます。以下の表はデフォル@c
+トで @code{Staff} コンテキストまたは @code{Voice} コンテキストの中に配置される@c
+いくつかの一般的な譜表外部オブジェクトのデフォルトの 
+@code{outside-staff-priority} 値を示しています。
+
+@multitable @columnfractions .3 .3 .3
+@headitem レイアウト オブジェクト
+  @tab 優先度
+  @tab 以下のオブジェクトの配置を制御する:
+@item @code{MultiMeasureRestText}
+  @tab @code{450}
+  @tab 全休符上のテキスト
+@item @code{TextScript}
+  @tab @code{450}
+  @tab マークアップ テキスト
+@item @code{OttavaBracket}
+  @tab @code{400}
+  @tab オッターバ (オクターブを上下させる記号) の囲み
+@item @code{TextSpanner}
+  @tab @code{350}
+  @tab テキスト スパナ
+@item @code{DynamicLineSpanner}
+  @tab @code{250}
+  @tab すべての強弱記号
+@item @code{VoltaBracketSpanner}
+  @tab @code{100}
+  @tab Volta (番号付きのリピート) の囲み
+@item @code{TrillSpanner}
+  @tab @code{50}
+  @tab トリル記号
+@end multitable
+
+これらのうちのいくつかのデフォルトでの配置を示している例を挙げます。
+
+@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' \startTextSpan
+% Add Dynamic Text
+c\pp
+% Add Dynamic Line Spanner
+c\<
+% Add Text Script
+c^Text
+c c
+% Add Dynamic Text
+c\ff c \stopTextSpan
+% Stop Ottava Bracket
+\ottava #0
+c, c c c
+@end lilypond
+
+この例はテキスト スパナ -- 音楽の上に置かれる延長線付きのテキスト -- の作成方@c
+法についても示しています。スパナは @code{@bs{}startTextSpan} コマンドから 
+@code{@bs{}stopTextSpan} コマンドまで延び、テキストのフォーマットは 
+@code{@bs{}override TextSpanner} コマンドによって定義されます。詳細は 
+@ruser{Text spanners} を参照してください。
+
+この例はさらにオッターバ囲みを作成する方法についても示しています。
+
+@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
+
+小節番号、メトロノーム記号、リハーサル記号は示されていないということに注意して@c
+ください。デフォルトでは、それらは @code{Score} コンテキストの中で作成され、そ@c
+れらの @code{outside-staff-priority} は @code{Staff} コンテキストの中で作成さ@c
+れるレイアウト オブジェクトとは異なり無視されます。小節番号、メトロノーム記号@c
+あるいはリハーサル記号をそれらの @code{outside-staff-priority} に従って配置し@c
+たいのなら、@code{Score} コンテキストからそれぞれ @code{Bar_number_engraver}, 
+@code{Metronome_mark_engraver}, @code{Mark_engraver} を削除して最上位の 
+@code{Staff} コンテキストに置く必要があります。そうした場合、それらの記号には@c
+以下のデフォルトの @code{outside-staff-priority} 値が与えられます:
+
+@multitable @columnfractions .3 .3
+@headitem レイアウト オブジェクト           @tab 優先度
+@item @code{RehearsalMark}        @tab @code{1500}
+@item @code{MetronomeMark}        @tab @code{1000}
+@item @code{BarNumber}            @tab @code{ 100}
+@end multitable
+
+@code{outside-staff-priority} のデフォルト値による配置があなたの望みに合わない@c
+場合、いずれかのオブジェクトの優先度をオーバライドすることになるかもしれませ@c
+ん。上記の例で、オッターバ囲みをテキスト スパナの下に配置したいとします。すべ@c
+きことは、@code{OttavaBracket} は @code{Staff} コンテキストの中に作成されると@c
+いうことを思い出し、@code{OttavaBracket} の優先度を内部リファレンスか上記の表@c
+で調べて、それを @code{TextSpanner} の値よりも小さくすることです:
+
+@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' \startTextSpan
+% Add Dynamic Text
+c\pp
+% Add Dynamic Line Spanner
+c\<
+% Add Text Script
+c^Text
+c c
+% Add Dynamic Text
+c\ff c \stopTextSpan
+% Stop Ottava Bracket
+\ottava #0
+c, c c c
+@end lilypond
+
+@cindex slurs and outside-staff-priority
+@cindex slurs and articulations
+@cindex articulations and slurs
+
+スラーはデフォルトでは譜表内部オブジェクトに分類されています。しかしながら、譜@c
+表の上部に配置された音符に付くスラーはしばしば譜表の上に表示されます。このこと@c
+は、スラーがまず最初に配置されるため、アーティキュレーションなどの譜表外部オブ@c
+ジェクトをあまりにも高い位置に押し上げる可能性があります。アーティキュレーショ@c
+ンの @code{avoid-slur} プロパティに @code{'inside} をセットすることでアーティ@c
+キュレーションをスラーよりも内側に配置することができます。しかし、@c
+@code{avoid-slur} プロパティはアーティキュレーションの 
+@code{outside-staff-priority} が @code{@hash{}f} にセットされている場合にのみ@c
+効果を持ちます。代替手段として、スラーの @code{outside-staff-priority} に数値@c
+をセットすることによって、スラーを他の譜表外部オブジェクトとともに 
+@code{outside-staff-priority} 値に従って配置することができます。ここで、2 つの@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
+c^\markup\tiny\sharp d4.) c8
+\once \override Slur #'outside-staff-priority = #500
+c4( c^\markup\tiny\sharp d4.) c8
+@end lilypond
+
+@code{outside-staff-priority} は、個々のオブジェクトの垂直方向の配置を制御する@c
+ために使用することもできます。しかしながら、その結果は常に望み通りになるわけで@c
+はありません。@ref{Automatic behavior} にある例で @qq{Text3} を @qq{Text4} の@c
+上に配置したいとします。すべきことは @code{TextScript} の優先度を内部リファレ@c
+ンスか上記の表で調べて、@qq{Text3} の優先度を大きくすることです:
+
+@cindex TextScript, example of overriding
+@cindex outside-staff-priority property, example
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+c2^"Text1"
+c^"Text2"
+\once \override TextScript #'outside-staff-priority = #500
+c^"Text3"
+c^"Text4"
+@end lilypond
+
+これはたしかに @qq{Text3} を @qq{Text4} の上に配置しています。しかし、@c
+@qq{Text3}を @qq{Text2} の上に配置して、@qq{Text4} を押し下げてもいます。おそ@c
+らく、これはそれほど望ましい結果ではないでしょう。本当に望んでいることは、すべ@c
+ての注釈を譜表の上に譜表から同じ距離だけ離して配置することです。そうするには明@c
+らかに、テキストのためにもっと広いスペースを確保するために、音符を水平方向に広@c
+げる必要があります。これは @code{@bs{}textLengthOn} コマンドを用いることで達成@c
+できます。
+
+@subheading \textLengthOn
+
+@cindex notes, spreading out with text
+
+@funindex \textLengthOn
+@funindex textLengthOn
+@funindex \textLengthOff
+@funindex textLengthOff
+
+デフォルトでは、音楽のレイアウトが考慮されている限り、マークアップによって作り@c
+出されるテキストは水平方向のスペースと関係しません。@code{@bs{}textLengthOn} 
+コマンドはこの動作を逆にして、テキストの配置に便宜をはかる必要がある限り、音符@c
+の間隔を広げます:
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+\textLengthOn  % Cause notes to space out to accommodate text
+c2^"Text1"
+c^"Text2"
+c^"Text3"
+c^"Text4"
+@end lilypond
+
+デフォルトの動作に戻すためのコマンドは @code{@bs{}textLengthOff} です。@c
+@code{@bs{}once} は @code{@bs{}override}, @code{@bs{}set}, @code{@bs{}revert} 
+それに @code{@bs{}unset} だけに付けることができるということを思い出してくださ@c
+い。そのため、@code{@bs{}textLengthOn} で @code{@bs{}once} を使うことはできま@c
+せん。
+
+@cindex markup text, allowing collisions
+
+マークアップ テキストは譜表の上に突き出している音符を避けます。このことが望ま@c
+しくない場合、優先度を @code{@hash{}f} にセットすることによって上方向への自動@c
+再配置を Off にすることになるかもしれません。ここで、マークアップ テキストがそ@c
+のような音符とどのように相互作用するかを示す例を挙げます。
+
+@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''2
+R1
+% This is too long to fit, so it is displaced upwards
+c,,2^"Text"
+c''2
+R1
+% Turn off collision avoidance
+\once \override TextScript #'outside-staff-priority = ##f
+c,,2^"Long Text   "
+c''2
+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
+
+通常、強弱記号は譜表の下に配置されます。しかしながら、@code{dynamicUp} コマン@c
+ドを使うことで上に配置されるかもしれません。強弱記号は、その記号が付いている音@c
+符と垂直方向の関係で配置され、フレージング スラーや小節番号などの譜表内部オブ@c
+ジェクトのすべてよりも下 (あるいは上) に配置されます。このことは、以下の例のよ@c
+うに、到底受け入れられない結果を生み出す可能性があります:
+
+@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
+
+しかしながら、音符とそれに付けられた強弱記号が互いに近い場合、自動配置は後の方@c
+にある強弱記号を譜表から離すことによって衝突を避けます。しかし、以下のかなり不@c
+自然な例が示すように、それは最適な配置ではないかもしれません:
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+\dynamicUp
+a4\f b\mf c\mp b\p
+@end lilypond
+
+@noindent
+@q{実際} の音楽で同じような状況があった場合、音符の間隔をもう少し広げて、すべ@c
+ての強弱記号が譜表から垂直方向に同じだけ離れるようにする方が望ましいかもしれま@c
+せん。マークアップ テキストの場合は @code{@bs{}textLengthOn} コマンドを用いる@c
+ことによってそうすることができますが、強弱記号には等価のコマンドがありません。@c
+そのため、@code{@bs{}override} コマンドを用いてそれを達成する方法を見出す必要@c
+があります。
+
+@subheading Grob sizing
+
+@cindex grob sizing
+@cindex sizing grobs
+
+まず最初に、グラフィカル オブジェクトのサイズがどのように決定されるかを学ばな@c
+くてはなりません。すべてのグラフィカル オブジェクトの内部では参照ポイントが定@c
+義され、それはそれらの親オブジェクトとの相対位置を決定するために使用されます。@c
+このポイントは親オブジェクトから垂直方向に @code{X-offset}、垂直方向に 
+@code{Y-offset} 離れた位置になります。オブジェクトの水平方向の広がりは数値のペア 
+@code{X-extent} で与えられ、そのペアはオブジェクトの左端と右端の参照ポイントと@c
+の相対関係について述べています。垂直方向の広がりも同様に数値のペア 
+@code{Y-extent} によって与えられます。これらは @code{grob-interface} をサポー@c
+トするすべてのグラフィカル オブジェクトが持つプロパティです。
+
+@cindex @code{extra-spacing-width}
+
+デフォルトでは、譜表外部オブジェクトには 0 の幅が与えられているため、水平方向@c
+で重なる可能性があります。これは @code{extra-spacing-width} に @code{'(+inf.0 . 
+-inf.0)} をセットすることによって、左端の広がりにプラス無限大、右端の広がりに@c
+マイナス無限大を付け加えるというトリックによって達成されています。そのため、譜@c
+表外部オブジェクトが水平方向で重ならないことを保証するには、@c
+@code{extra-spacing-width} の値を @code{'(0 . 0)} にオーバライドする必要があり@c
+ます。これにより、本当の幅が明らかになります。以下は強弱記号テキストに対してこ@c
+れを行うコマンドです:
+
+@example
+\override DynamicText #'extra-spacing-width = #'(0 . 0)
+@end example
+
+@noindent
+これが前の例で機能するかどうかを見てみましょう:
+
+@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
+確かに強弱記号の再配置をストップさせています。しかし、2 つの問題が残っていま@c
+す。強弱記号を互いにもう少し離すべきであり、それらは譜表から同じ距離にあるほう@c
+が望ましいです。最初の問題は簡単に解決できます。@code{extra-spacing-width} を 0 
+にする代わりに、もう少し大きな値を与えるのです。単位は 2 本の譜表線の間隔なの@c
+で、左端を 1 単位の半分だけ左に移動させ、右端を 1 単位の半分だけ右に移動させる@c
+と解決になります:
+
+@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
+これで前よりも良くなりました。しかし、強弱記号が音符に合わせて上下するよりも、@c
+同じベースラインで揃っている方が望ましいでしょう。それを行うためのプロパティは 
+@code{staff-padding} であり、後に続くセクションでカバーされています。
+
+
+@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
+
+これを聞いて驚くかもしれませんが、LilyPond は完璧ではありません。いくつかの表@c
+記要素が重なりある可能性があります。これは遺憾なことですが、実際にはごく稀で@c
+す。通常、オブジェクトを移動させる必要性は読みやすさや美しさのためです -- オブ@c
+ジェクトの周りにもう少しスペースを多く/少なくとった方がより良くなるといった場@c
+合です。
+
+表記の重なりを解決する主要なアプローチが 3 つあります。それらは以下の順番で考@c
+慮されるべきです:
+
+@enumerate
+@item
+重なり合っているオブジェクトの 1 つの @strong{direction} を @ref{Within-staff 
+objects} でリストアップした内部オブジェクトのための定義済みコマンドを用いて変@c
+更することになるかもしれません。ステム、スラー、ビーム、タイ、強弱記号、テキス@c
+ト、連符はこの方法で容易に再配置できるかもしれません。この方法の限界は配置の仕@c
+方の選択肢が 2 つしかないことであり、どちらも適当でないかもしれません。
+
+@item
+LilyPond がレイアウト オブジェクトを配置するときに使用する@strong{オブジェクト 
+プロパティ}を @code{@bs{}override} を用いて変更することになるかもしれません。@c
+オブジェクト プロパティに変更を加えることの利点は、(a) スペースをとる必要があ@c
+る場合に他のいくつかのオブジェクトは自動的に移動させられます、(b) 1 回のオーバ@c
+ライドを同じオブジェクト タイプのインスタンスすべてに適用することができます。@c
+変更するプロパティには以下のものが含まれます:
+
+@itemize
+
+@item
+@code{direction}
+
+これはすでに詳しくカバーされています -- @ref{Within-staff objects} を参照して@c
+ください。
+
+@item
+@code{padding}, @code{left-padding},
+@code{right-padding}, @code{staff-padding}
+
+@cindex padding
+@cindex left-padding property
+@cindex padding property
+@cindex right-padding property
+@cindex staff-padding property
+
+あるオブジェクトが配置されるとき、そのオブジェクトの @code{padding} プロパティ@c
+が、そのオブジェクトとそのオブジェクトに最も隣接するオブジェクトの端との間に置@c
+かれる間隔を指定します。@strong{配置される最中}のオブジェクトの @code{padding} 
+値が使用されるということに注意してください。すでに配置されたオブジェクトの 
+@code{padding} 値は無視されます。@code{padding} によって指定された間隔は 
+@code{side-position-interface} をサポートするオブジェクトすべてに適用すること@c
+ができます。
+
+臨時記号のグループの配置は、@code{padding} の代わりに、@code{left-padding} と 
+@code{right-padding} によって制御されます。これらのプロパティは 
+@code{AccidentalPlacement} オブジェクトの中にあり、注意すべきことに、そのオブ@c
+ジェクトは @strong{Staff} コンテキストの中にあります。譜刻プロセスでは、音符の@c
+玉が最初に譜刻され、臨時記号 (がある場合は) が次に音符の玉の左側に付け加えられ@c
+ます。このとき、臨時記号と音符の玉の間隔は @code{right-padding} プロパティに@c
+よって指定されます。そのため、@code{AccidentalPlacement} オブジェクトの 
+@code{right-padding} プロパティだけが臨時記号の配置に影響を与えます。
+
+@code{staff-padding} プロパティは @code{padding} プロパティと深い関わりがあり@c
+ます: @code{padding} プロパティは、@code{side-position-interface} をサポートす@c
+るオブジェクトとそれに最隣接する他のオブジェクト (一般には音符や譜表線) との間@c
+のスペースの最小量を制御します。一方、@code{staff-padding} は常に譜表の外側に@c
+配置されるレイアウト オブジェクトにのみ適用されます -- これは譜表の外側に配置@c
+されるオブジェクトと譜表の間に挿入されるべきスペースの最小量を制御します。@c
+@code{staff-paddin} は譜表ではなく音符との相対関係で配置されるオブジェクトには@c
+影響を与えないということに注意してください。そのようなオブジェクトに対して 
+@code{staff-padding} のオーバライドを行ったとしてもエラーは起きないかもしれま@c
+せんが、無視されます。
+
+あなたが再配置しようとしているオブジェクトに対して求められる @code{padding} プ@c
+ロパティはどれなのかを見つけるには、内部リファレンスに戻ってそのオブジェクトの@c
+プロパティを調べる必要があります。@code{padding} プロパティはあなたが再配置し@c
+ようとしているオブジェクトの中には無いかもしれないということに注意してくださ@c
+い。その場合は、そのオブジェクトに関係があるオブジェクトを調べてください。
+
+すべての @code{padding} 値は譜表スペースで測られます。たいていのオブジェクトで@c
+は、この値はデフォルトで約 1.0 かそれ以下にセットされています (それぞれのオブ@c
+ジェクトで値はさまざまです)。間隔を大きく (あるいは小さく) する必要がある場@c
+合、その値はオーバライドされるかもしれません。
+
+@item
+@code{self-alignment-X}
+
+@cindex self-alignment-X property
+
+このプロパティを使うことで、親オブジェクトの参照ポイントに従って、オブジェクト@c
+を左、右、中央に揃えることができます。このプロパティは 
+@code{self-alignment-interface} をサポートするオブジェクトすべてに対して使用す@c
+ることができます。一般に、テキストを保持するオブジェクトです。値は @code{Left}, 
+@code{RIGHT}, @code{CENTER} です。代替手段として、@code{-1} から @code{+1} ま@c
+での数値を指定することもできます。@code{-1} は左揃えであり、@code{+1} は右揃@c
+え、その間の数値は左揃えから右揃えへのテキストを移動させます (訳者: @code{-0.5} 
+であれば、左揃えと中央揃えの中間ということ)。@code{1} よりも大きな数値を指定す@c
+ることでテキストをさらに左へ、@code{-1} よりも小さな数値を指定することでテキス@c
+トをさらに右へ移動させることができます。この値を @code{1} 増減することによる移@c
+動量はそのテキストの長さの半分です。
+
+@item
+@code{extra-spacing-width}
+
+@cindex extra-spacing-width property
+
+このプロパティは @code{item-interface} をサポートするオブジェクトすべてで利用@c
+可能です。このプロパティは 2 つの数値をとり、最初の数値はオブジェクトの左側に@c
+余白を追加し、2 番目の数値はオブジェクトの右側に余白を追加します。負値はオブ@c
+ジェクトの端を左に移動させ、正値は右に移動させます。そのため、オブジェクトを広@c
+くするには、最初の数値を負値にして、2 番目の数値を正値にする必要があります。す@c
+べてのオブジェクトが両方の数値を遵守するわけではないということに注意してくださ@c
+い。例えば、@code{Accidental} オブジェクトは最初の数値 (左端) にしか注意を払い@c
+ません。
+
+@item
+@code{staff-position}
+
+@cindex staff-position property
+
+@code{staff-position} は @code{staff-symbol-referencer-interface} のプロパティ@c
+です。これは、譜表との相対関係で配置されるオブジェクトによってサポートされま@c
+す。このプロパティはオブジェクトの垂直方向の位置を、譜表の中央にある譜表線から@c
+譜表スペースの半分を単位として、指定します。このプロパティは複数小節に亘る休@c
+符、タイ、異なるボイスの中にある音符といったレイアウト オブジェクトの衝突を解@c
+決する場合に有用です。
+
+@item
+@code{force-hshift}
+
+@cindex force-hshift property
+
+和音の中で近接して配置された音符や異なるボイスの中にあって同時に起こる音符は、@c
+音符の玉の衝突を避けるために、2 つ (場合によってはそれ以上) の列に配置されま@c
+す。この列は音符列と呼ばれ、その列に音符をレイアウトするために @code{NoteColumn} 
+と呼ばれるオブジェクトが作成されます。
+
+@code{force-hshift} プロパティは @code{NoteColumn} のプロパティです (実際には 
+@code{note-column-interface} のプロパティです)。このプロパティを変更することで@c
+音符列を、音符列特有の単位 -- すなわち、最初のボイスの中にある音符の音符玉の幅 
+-- に従って、移動させることができます。このプロパティは、通常の 
+@code{@bs{}shiftOn} コマンド (@ref{Explicitly instantiating voices} を参照して@c
+ください) が音符の衝突を解決できないような複雑な状況で使用されるべきです。この@c
+目的のためには、@code{extra-offset} プロパティを用いるよりも @code{force-hshift} 
+プロパティを用いる方が好ましいです。なぜなら、譜表スペースを単位とした距離を算@c
+出する必要が無く、@code{NoteColumn} の内外に音符を移動させることは音符玉のマー@c
+ジといった他のアクションに影響を与えるからです。
+
+@end itemize
+
+@item
+最後に、他の方法がすべて失敗した場合、オブジェクトを手動で譜表の中央線からの垂@c
+直方向の相対位置に従って、あるいは新たに設定した位置との距離に従って、再配置す@c
+ることになるかもしれません。この方法の欠点は、再配置のための正確な値を算出する@c
+必要がある -- しばしば、その算出はそれぞれのオブジェクトに対して個々に、トライ@c
+&エラーで行われます -- 必要があるということ、さらに、この方法による移動は 
+LilyPond が他のオブジェクトをすべて配置した後に行われるため、ユーザはその結果@c
+として起こるかもしれない衝突をすべて回避する責任があるということです。しかし、@c
+この方法の最大の問題点は、音楽が後で変更された場合に、再配置用の値を再び算出す@c
+る必要があるということです。このタイプの手動再配置のために使用されるプロパティ@c
+は以下のようなものです:
+
+@table @code
+@item extra-offset
+
+@cindex extra-offset property
+
+このプロパティは @code{grob-interface} をサポートするレイアウト オブジェクトの@c
+いずれかに適用されます。このプロパティはペアになった数値をとり、それぞれの数値@c
+は水平方向と垂直方向の移動を指定します。負値はオブジェクトを左または下へ移動さ@c
+せます。単位は譜表スペースです。この移動はオブジェクトの譜刻が完了した後に行わ@c
+れるため、あるオブジェクトを、任意の位置へ、他のオブジェクトに影響を与えること@c
+なく、再配置することができます。
+
+@item positions
+
+@cindex positions property
+
+このプロパティは、ビーム、スラー、連符の傾きと高さを手動で調節するために最も有@c
+用なプロパティです。このプロパティはペアになった数値をとり、それぞれの数値は@c
+ビーム、スラーなどの左端と右端の位置を譜表の中央線との距離で指定します。単位は@c
+譜表スペースです。けれども、スラーとフレージング スラーを任意の値で再配置する@c
+ことはできないということに注意してください。LilyPond はまずスラーが取り得る位@c
+置のリストを生成し、それからデフォルトでは @qq{最良に見える} スラーを探しま@c
+す。@code{positions} がオーバライドされていた場合、そのリストの中からリクエス@c
+トされた位置に最も近いスラーが選択されます。
+@end table
+
+@end enumerate
+
+あるオブジェクトがこれらのプロパティすべてを持っているわけではありません。内部@c
+リファレンスに行き、そのオブジェクトではどのプロパティが利用可能なのかを調べる@c
+必要があります。
+
+@multitable @columnfractions .5 .5
+@headitem オブジェクト タイプ
+  @tab オブジェクト名
+@item アーティキュレーション (Articulation)
+  @tab @code{Script}
+@item ビーム (Beam)
+  @tab @code{Beam}
+@item 強弱記号 (Dynamic) (垂直方向)
+  @tab @code{DynamicLineSpanner}
+@item 強弱記号 (Dynamic) (水平方向)
+  @tab @code{DynamicText}
+@item 運指法記号 (Fingering)
+  @tab @code{Fingering}
+@item リハーサル / テキスト記号 (Rehearsal / Text mark)
+  @tab @code{RehearsalMark}
+@item スラー (Slur)
+  @tab @code{Slur}
+@item テキスト -- つまり、@code{^"text"} (Text)
+  @tab @code{TextScript}
+@item タイ (Tie)
+  @tab @code{Tie}
+@item 連符 (Tuplet)
+  @tab @code{TupletBracket}
+@end multitable
+
+
+@node Fixing overlapping notation
+@subsection Fixing overlapping notation
+
+今度は、前のセクションで扱ったプロパティが表記の重なりを解決する手助けをどのよ@c
+うにできるかを見ていきましょう。
+
+@subheading padding property
+
+@cindex padding
+@cindex fixing overlapping notation
+@cindex overlapping notation
+
+@code{padding} プロパティに値をセットすることによって、音符とその上または下に@c
+譜刻される記号との間の距離を増減することができます。
+
+@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
+
+2 番目の例では、ある特定のオブジェクトを扱うのはどのコンテキストなのかを突き止@c
+めることが重要であるということに注意してください。@code{MetronomeMark} オブ@c
+ジェクトは @code{Score} コンテキストの中で処理されるため、@code{Voice} コンテ@c
+キストの中でのプロパティの変更は無視されます。更に詳細を知りたければ、@c
+@ruser{Modifying properties} を参照してください。
+
+@code{outside-staff-priority} に従って配置されているオブジェクトの並びの中のあ@c
+るオブジェクトの @code{padding} プロパティが増やされた場合、そのオブジェクトと@c
+それよりも外側にあるすべてオブジェクトが移動させられます。
+
+
+@subheading left-padding and right-padding
+
+@cindex left-padding property
+@cindex right-padding property
+
+@code{right-padding} プロパティは臨時記号とそれが適用される音符との間のスペー@c
+スに影響を与えます。このプロパティを変更することは必ずしも必要ではありません@c
+が、以下の例は変更を必要とする状況の 1 つを示しています。B ナチュラルと B フ@c
+ラットの両方を保持する和音を譜刻したいとします。あいまいさ (あるいは多義: ここ@c
+では B が B ナチュラルと B フラットの両方に解釈できるということ) を避けるため@c
+に、音符の前にナチュラル記号とフラット記号の両方を置くことにします。以下に、そ@c
+れを達成するための試みをいくつか挙げます:
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+<b bes>
+<b! bes>
+<b? bes>
+@end lilypond
+
+どれもうまくいっていません。2 番目と 3 番目の (和) 音符では 2 つの記号が衝突し@c
+ています。
+
+これを達成するための方法の 1 つは、臨時記号のステンシルを、ナチュラル記号とフ@c
+ラット記号を望んでいる並びで保持しているマークアップでオーバライドすることで@c
+す。以下のように:
+
+@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]
+naturalplusflat = \markup { \natural \flat }
+\relative c'' {
+  \once \override Accidental
+    #'stencil = #ly:text-interface::print
+  \once \override Accidental #'text = #naturalplusflat
+  \once \override Score.AccidentalPlacement #'right-padding = #1.5
+  <b bes>
+}
+@end lilypond
+
+@noindent
+これは必然的に臨時記号のステンシルをオーバライドすることになります。このオーバ@c
+ライドについては後々までカバーされません。ステンシル タイプは手続きでなければならず、@c
+ここでは @code{Accidental} の @code{text} プロパティの内容 -- フラット記号が後@c
+に続くナチュラル記号 -- を譜刻するように変更されています。それらの記号は 
+@code{right-padding} のオーバライドによって音符の玉からさらに遠くへ移動させら@c
+れています。
+
+@noindent
+
+@subheading staff-padding property
+
+@cindex aligning objects on a baseline
+@cindex objects, aligning on a baseline
+
+@code{staff-padding} を使うことで、強弱記号などのオブジェクトを、それらが取り@c
+付けられる音符の位置に依存した高さではなく、譜表上のある固定した高さのベースラ@c
+インに揃えることができます。このプロパティは @code{DynamicText} のプロパティで@c
+はなく、@code{DynamicSpanner} のプロパティです。この理由は、このベースラインは@c
+延長スパナを含む@strong{すべて}の強弱起動に等しく適用されるべきだからです。そ@c
+のため、これは以前のセクションでの例の中にある強弱記号を揃えるための方法になり@c
+ます:
+
+@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
+
+弦楽器の運指法記号オブジェクトと音符のステムとの衝突を、このプロパティが運指法@c
+記号オブジェクトの右端を親の音符の参照ポイントに揃えることによって解決している@c
+様子を以下の例は示しています:
+
+@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
+
+あるボイスの中にある複数小節に亘る休符は他のボイスの中にある音符と衝突する可能@c
+性があります。このような休符は小節線と小節線の間の中央に譜刻されるため、LilyPond 
+がそれと衝突するかもしれない音符を突き止めるのは非常に困難です。なぜなら、現在@c
+の音符間それに音符-休符間の衝突対応は、同時に起こる音符と休符に対してのみ行わ@c
+れるからです。以下に、このタイプの衝突の例を挙げます:
+
+@lilypond[quote,verbatim,fragment,ragged-right, relative=1]
+<< {c c c c} \\ {R1} >>
+@end lilypond
+
+ここでの最良の解決策は、複数小節に亘る休符を下へ移動させることです。なぜなら、@c
+その休符はボイス 2 の中にあるからです。@code{\voiceTwo} (すなわち、@c
+@code{<<@{...@} \\ @{...@}>>} 構造の 2 番目のボイス) のデフォルト状態では、@c
+@code{MultiMeasureRest} の @code{staff-position} は @code{-4} にセットされてい@c
+ます。そのため、そのプロパティを、例えば半譜表スペース 4 つ分押し下げるには、@c
+@code{-8} に変更する必要があります。
+
+@cindex MultiMeasureRest, example of overriding
+@cindex staff-position property, example
+
+@lilypond[quote,verbatim,fragment,ragged-right, relative=1]
+<<
+  {c c c c}
+\\
+  \override MultiMeasureRest #'staff-position = #-8
+  {R1}
+>>
+@end lilypond
+
+これは、例えば @code{extra-offset} を使うよりも良い解決方法です。なぜなら、そ@c
+の休符の上に加線が自動的に挿入されるからです。
+
+@subheading extra-offset property
+
+@cindex positioning objects
+@cindex positioning grobs
+@cindex objects, positioning
+@cindex grobs, positioning
+
+@code{extra-offset} プロパティは、あるオブジェクトの水平方向と垂直方向の配置を@c
+完全に制御します。
+
+以下の例では、2 番目の運指法記号が少し左に、そして 1.8 譜表スペース下に移動さ@c
+せられています:
+
+
+@cindex Fingering, example of overriding
+@cindex extra-offset property, example
+
+@lilypond[quote,fragment,relative=1,verbatim]
+\stemUp
+f-5
+\once \override Fingering
+    #'extra-offset = #'(-0.3 . -1.8)
+f-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
+
+@code{positions} プロパティは連符、スラー、フレージング スラー、ビームの位置と@c
+傾きを手動で制御することを可能にします。ここで、装飾音符に付いたスラーを避けよ@c
+うとしているために醜いフレージング スラーを持つ例を挙げます。
+
+@lilypond[quote,verbatim,fragment,ragged-right,relative=1]
+r4  \acciaccatura e8\( d8 c ~c d c d\)
+@end lilypond
+
+@noindent
+フレージング スラーを音符の上へ移動させることで、より良い結果が得られます:
+
+@lilypond[quote,verbatim,fragment,ragged-right,relative=1]
+r4
+\phrasingSlurUp
+\acciaccatura e8\( d8 c ~c d c d\)
+@end lilypond
+
+@noindent
+しかし、何らかの理由でそうすることができない場合、それに代わる解決策は、@c
+@code{positions} プロパティを使ってフレージング スラーの左端を少し下げることで@c
+す。この方法でも見栄えの悪さを解決できます。
+
+@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
+
+さらに、Chopin の 前奏曲 Op 28 No. 2 の左手の譜の開始部分から取った例を挙げま@c
+す。ビームが上部にある音符と衝突しています:
+
+@lilypond[quote,verbatim,fragment,ragged-right]
+{
+\clef "bass"
+<< {b,8 ais, b, g,} \\ {e, g e, g} >>
+<< {b,8 ais, b, g,} \\ {e, g e, g} >>
+}
+@end lilypond
+
+@noindent
+これは、譜表の中央線から 2 譜表スペース上の位置にあるビームの両端を、例えば、3 
+に手動で上げることによって解決することができます:
+
+@cindex Beam, example of overriding
+@cindex positions property, example
+
+@lilypond[quote,verbatim,fragment,ragged-right]
+{
+  \clef "bass"
+  <<
+    \override Beam #'positions = #'(3 . 3)
+    {b,8 ais, b, g,}
+  \\
+    {e, g e, g}
+  >>
+  << {b,8 ais, b, g,} \\ {e, g e, g} >>
+}
+@end lilypond
+
+@noindent
+オーバライドの効果は継続して 2 番目のブロックのボイス 1 にも適用されています@c
+が、ボイス 2 のビームにはまったく適用されていないということに注意してください。
+
+@subheading force-hshift property
+
+@c FIXME: formatting stuff  (ie not important right now IMO)
+@c @a nchor Chopin finally corrected TODOgp
+
+今や、@ref{I'm hearing Voices} の最後で挙げた Chopin の例にどのように修正を加@c
+えるべきかを知っています。この例は以下のような状態でした:
+
+@lilypond[quote,verbatim,fragment,ragged-right]
+\new Staff \relative c'' {
+  \key aes \major
+  <<
+    { c2 aes4. bes8 } \\
+    { aes2 f4 fes   } \\
+    { \voiceFour
+      <ees c>2
+      des2
+    }
+  >> |
+  <c ees aes c>1 |
+}
+@end lilypond
+
+@noindent
+最初の和音の下の方にある 2 つの音符 (つまり、3 番目のボイス (ボイス 4) の音符) 
+を上の方にある 2 つの音符の音符列からずらすべきではありません。これを修正する@c
+には、下の音符の @code{force-hshift} -- これは @code{NoteColumn} のプロパティ@c
+です -- を 0 にセットします。2 番目の和音の下の方の音符は、上の方の音符のすぐ@c
+右に置くのが最良です。そうするには、この音符の @code{force-hshift} を 0.5 に@c
+セットします -- つまり、上の方の音符の音符列から音符玉の幅の半分だけ右にずらし@c
+ます。
+
+ここで、最終結果を挙げます:
+
+@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 } \\
+    { aes2 f4 fes   } \\
+    { \voiceFour
+      \once \override NoteColumn #'force-hshift = #0 <ees c>2
+      \once \override NoteColumn #'force-hshift = #0.5 des2
+    }
+  >> |
+  <c ees aes c>1 |
+}
+@end lilypond
+
+
+@node Real music example
+@subsection Real music example
+
+調整についてのセクションを、望みの出力を作り出すためにいくつかの調整を必要とす@c
+るトリッキーな例を処理するときにとられるステップを示すことで締めくくります。こ@c
+の例は、表記についての普通ではない問題を解決するための表記リファレンスの使い方@c
+を示すために慎重に選ばれたものです。この例は一般的な譜刻プロセスを代表するもの@c
+ではありません。ですから、この例の複雑さでやる気を失わないでください!幸いなこ@c
+とに、このように複雑な問題は非常に稀です!
+
+この例は Chopin の Première Ballade, Op. 23 の第 6 - 9 小節からとりました。序@c
+盤の Lento から Moderato へと移調する部分です。まず最初に望んでいる出力挙げま@c
+すが、例があまりにも複雑になり過ぎないように強弱記号、運指法記号、ペダル記号は@c
+省きました。
+
+@c The following should appear as music without code
+@c This example should not be indexed
+@lilypond[quote,ragged-right]
+rhMusic = \relative c'' {
+  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] | }
+  \\
+    % Reposition the c2 to the right of the merged note
+    {c,8~ \once \override NoteColumn #'force-hshift = #1.0
+    % Move the c2 out of the main note column so the merge will work
+    \shiftOnn c2}
+  \\
+    % Stem on the d2 must be down to permit merging
+    {s8 \stemDown \once \override Stem #'transparent = ##t d2}
+  \\
+    {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
+
+まず、第 3 小節の右手パートには 4 つのボイスが必要であることに注目します。それ@c
+ぞれのボイスは、ビームでつながれた 5 つの 8 分音符、タイで結ばれた C、半音符の D 
+-- これは 8 分音符の D とマージされています、付点 4 分音符の F シャープ -- こ@c
+れも同じ音高の 8 分音符とマージされています -- です。他の部分はすべて単一のボ@c
+イスなので、最も容易な方法は 4 つのボイスを必要になったときに一時的に導入する@c
+方法です。一時的に多声にする方法を忘れてしまったのならば、@ref{I'm hearing
+Voices} を見てください。音符を 2 つの変数として入力し、譜表構造を @code{Score} 
+ブロックの中でセットアップすることから始めて、それで LilyPond がデフォルトでど@c
+のような出力を作り出すのか見てみましょう:
+
+@lilypond[quote,verbatim,ragged-right]
+rhMusic = \relative c'' {
+  r2 c4. g8 |
+  bes1~ |
+  \time 6/4
+  bes2. r8
+  % Start polyphonic section of four voices
+  <<
+    {c,8 d fis bes a | }
+  \\
+    {c,8~ c2 | }
+  \\
+    {s8 d2 | }
+  \\
+    {s4 fis4. | }
+  >>
+  g2.
+}
+
+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
+
+すべての音符は間違っていません。しかしながら、見た目は満足とは程遠いものです。@c
+タイは移調する拍子記号と衝突していて、第 3 小節のビームの付け方は間違ってい@c
+て、音符はマージされておらず、いくつかの表記要素は欠けています。簡単なものから@c
+片付けていきましょう。ビームの付け方は手動でビームを挿入することで修正でき、左@c
+手パートのスラーと右手パートのフレージング スラーは簡単に追加できます -- なぜ@c
+なら、これらはすべてチュートリアルでカバーされているからです。これらの修正を加@c
+えると、以下のようになります:
+
+@lilypond[quote,verbatim,ragged-right]
+rhMusic = \relative c'' {
+  r2 c4.\( g8 |
+  bes1~ |
+  \time 6/4
+  bes2. r8
+  % Start polyphonic section of four voices
+  <<
+    {c,8[ d fis bes a] | }
+  \\
+    {c,8~ c2 | }
+  \\
+    {s8 d2 | }
+  \\
+    {s4 fis4. | }
+  >>
+  g2.\)
+}
+
+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
+
+第 1 小節は正しくなりました。第 2 小節にはアルペジオが含まれていて、2 重の小節@c
+線で終わります。この学習マニュアルではこれらのことは言及されてこなかったのに、@c
+どうやってやればいいのでしょうか?ここで、表記リファレンスに移行する必要があり@c
+ます。索引で @q{arpeggio} と @q{bar line} を探せばすぐに、アルペジオは 
+@code{@bs{}arpeggio} を和音の後に付け加えることによって作り出され、2 重小節線は 
+@code{@bs{}bar "||"} コマンドによって作り出されることがわかります。それは簡単@c
+にできます。次に、タイと拍子記号の衝突を修正する必要があります。これはタイを上@c
+に移動させる方法が最善です。オブジェクトの移動については以前に @ref{Moving
+objects} でカバーしました。そこでは、譜表との相対位置で配置されるオブジェクト@c
+は、そのオブジェクトの @code{staff-position} プロパティをオーバライドすること@c
+によって、移動させることができると述べられています。このプロパティは譜表スペー@c
+スの半分を単位として、譜表の中央線からの距離で指定されます。ですから、以下の以@c
+下のオーバライドをタイで結ばれる最初の音符の前に置けば、タイは中央線から 3.5 
+半譜表スペースだけ上の位置に移動させられます:
+
+@code{\once \override Tie #'staff-position = #3.5}
+
+これで第 2 小節の修正も完了で、以下のようになります:
+
+@lilypond[quote,verbatim,ragged-right]
+rhMusic = \relative c'' {
+  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] | }
+  \\
+    {c,8~ c2 | }
+  \\
+    {s8 d2 | }
+  \\
+    {s4 fis4. | }
+  >>
+  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
+
+第 3 小節 -- Moderato セクションの開始部分 -- に取り掛かります。チュートリアルで 
+@code{@bs{}markup} コマンドを使ってボールド体のテキストを付け加える方法を示し@c
+ましたので、@q{Moderato} をボールド体で付け加えることは容易です。しかし、異な@c
+るボイスの中にある音符をマージするにはどうするのでしょうか?ここで、助けを求め@c
+て表記リファレンスに移行する必要があります。表記リファレンスで @qq{merge} を探@c
+せばすぐに、@ruser{Collision resolution} で玉や付点の付き方が異なる音符をマー@c
+ジするためのコマンドにたどり着きます。今回の例では、多声部セクションで両方のタ@c
+イプの音符をマージする (異なる玉を持つ音符のマージと、付点の付き方が異なる音符@c
+のマージ) 必要があるので、表記リファレンスで見つけた情報を使って、以下のコマン@c
+ド:
+
+@example
+\mergeDifferentlyHeadedOn
+\mergeDifferentlyDottedOn
+@end example
+
+@noindent
+を多声部セクションの開始点に置き、以下のコマンド:
+
+@example
+\mergeDifferentlyHeadedOff
+\mergeDifferentlyDottedOff
+@end example
+
+@noindent
+をセクションの終了点に置きます。これで、例は以下のようになります:
+
+@lilypond[quote,verbatim,ragged-right]
+rhMusic = \relative c'' {
+  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] | }
+  \\
+    {c,8~ c2 | }
+  \\
+    {s8 d2 | }
+  \\
+    {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
+
+オーバライドは 2 つの F シャープの音符をマージしましたが、2 つの D をマージし@c
+ませんでした。なぜマージしなかったのでしょうか?その答えは表記リファレンスの同@c
+じセクションにあります -- マージされる音符は反対向きのステムを持っていなくては@c
+ならず、同じ音符列に 3 つ目の音符がある場合は 2 つの音符をマージさせることはで@c
+きません。今回の例では、2 つの D は両方とも上向きのステムを持っていて、3 つ目@c
+の音符 -- C -- が存在します。我々は @code{@bs{}stemDown} を用いてステムの向き@c
+を変更する方法を知っていて、表記リファレンスも C を移動させる方法について述べ@c
+ています -- @code{@bs{}shift} コマンドの 1 つを用いてシフトを行います。しか@c
+し、どのシフトを行えばよいのでしょうか?C はシフト off のボイス 2 の中にあり、2 
+つの D はボイス 1 とボイス 3 -- それぞれ、シフト off とシフト on -- の中にあり@c
+ます。ですから、C が 2 つの D と衝突するのを避けるために、@code{@bs{}shiftOnn} 
+を用いて C を更にシフトさせる必要があります。これらの変更を加えると、以下のよ@c
+うになります:
+
+@cindex Tie, example of overriding
+@cindex staff-position property, example
+
+@lilypond[quote,verbatim,ragged-right]
+rhMusic = \relative c'' {
+  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] | }
+  \\
+    % Move the c2 out of the main note column so the merge will work
+    {c,8~ \shiftOnn c2 | }
+  \\
+    % Stem on the d2 must be down to permit merging
+    {s8 \stemDown d2 | }
+  \\
+    {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
+
+もうちょっとです。残っている問題は 2 つだけです: マージされた D の下向きのステ@c
+ムはあるべきではなく、C は D の右側に配置した方が良いということです。以前に@c
+行った調整からこれらを行う方法を両方とも知っています: ステムを透明にして、@c
+@code{force-hshift} プロパティを用いて C を移動させます。ここで、最終結果を示@c
+します:
+
+@cindex NoteColumn, example of overriding
+@cindex force-hshift property, example
+@cindex Stem, example of overriding
+@cindex transparent property, example
+
+@lilypond[quote,verbatim,ragged-right]
+rhMusic = \relative c'' {
+  r2
+  c4.\( g8 |
+  \once \override Tie #'staff-position = #3.5
+  bes1~ |
+  \bar "||"
+  \time 6/4
+  bes2.^\markup {\bold "Moderato"} r8
+  \mergeDifferentlyHeadedOn
+  \mergeDifferentlyDottedOn
+  <<
+    {c,8[ d fis bes a] | }
+  \\
+    % Reposition the c2 to the right of the merged note
+    {c,8~ \once \override NoteColumn #'force-hshift = #1.0
+    % Move the c2 out of the main note column so the merge will work
+    \shiftOnn c2}
+  \\
+    % Stem on the d2 must be down to permit merging
+    {s8 \stemDown \once \override Stem #'transparent = ##t d2}
+  \\
+    {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
+
+
+@node Further tweaking
+@section Further tweaking
+
+
+@menu
+* Other uses for tweaks::
+* Using variables for tweaks::
+* Other sources of information::
+* Avoiding tweaks with slower processing::
+* 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
+
+以下の例は異なるボイスの中にある音符をタイで結ぶ方法を示しています。通常、タイ@c
+で結べるのは同じボイスの中にある 2 つ音符だけです。2 つのボイスを使い、そのう@c
+ちの 1 つにタイで結んだ音符を置きます:
+
+@lilypond[quote,fragment,relative=2]
+<< { b8~ b8\noBeam }
+\\ { b[ g8] }
+>>
+@end lilypond
+
+@noindent
+そして、そのボイスの最初の上向きステムを消します。これで、タイはボイスをまた@c
+がっているように見えます:
+
+@cindex Stem, example of overriding
+@cindex transparent property, example
+
+@lilypond[quote,fragment,relative=2,verbatim]
+<<
+  {
+    \once \override Stem #'transparent = ##t
+    b8~ b8\noBeam
+  }
+\\
+  { b[ g8] }
+>>
+@end lilypond
+
+ステムは表示されなくなっただけなので、タイの長さが十分ではありません。ステムの 
+@code{length} を @code{8} にセットすることでステムを伸ばすことができます:
+
+@lilypond[quote,fragment,relative=2,verbatim]
+<<
+  {
+    \once \override Stem #'transparent = ##t
+    \once \override Stem #'length = #8
+    b8~ b8\noBeam
+  }
+\\
+  { b[ g8] }
+>>
+@end lilypond
+
+@subheading Simulating a fermata in MIDI
+
+@cindex stencil property, use of
+@cindex fermata, implementing in MIDI
+
+譜表外部オブジェクトを出力から削除しようとする場合、そのオブジェクトの 
+@code{transparent} プロパティではなく @code{stencil} プロパティをオーバライド@c
+する方が通常は望ましいです。あるオブジェクトの @code{stencil} プロパティを 
+@code{@hash{}f} にセットすると、そのオブジェクトは出力から完全に削除されます。@c
+このことは、削除されたオブジェクトがそのオブジェクトとの相対位置で配置される他@c
+のオブジェクトの配置にまったく影響を及ぼさないということを意味します。
+
+例えば、MIDI 出力でフェルマータをシミュレートするためにメトロノーム設定を変更@c
+したいとします。その場合、メトロノーム記号を出力に表示させたくありません。そし@c
+て、それが 2 つのシステム (小節とその中にある表記) 間のスペースと、譜表上にあ@c
+る隣接する注釈の位置に影響を与えることを望みません。そのため、そのメトロノーム@c
+記号の @code{stencil} プロパティを @code{@hash{}f} にセットする方法が最良で@c
+す。ここで、2 つの手法の結果を示します:
+
+@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
+    a\fermata
+    % New tempo for next section
+    \tempo 4=100
+    a 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
+    a\fermata
+    % New tempo for next section
+    \tempo 4=100
+    a a a a
+  }
+  \layout { }
+  \midi { }
+}
+@end lilypond
+
+@noindent
+両方の手段とも、フェルマータ部分の演奏時間を伸ばすメトロノーム記号を出力から削@c
+除していて、両方とも MIDI の演奏に必要な効果を与えています。しかし、1 番目の例@c
+の透明なメトロノーム記号がそれに続く拍子指示を上に押し上げているのに対して、2 
+番目のメトロノーム記号 (ステンシルが削除されたもの) は押し上げていません。
+
+
+@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
+
+オーバライド コマンドはしばしば長く、入力するのが大変なものになります。そし@c
+て、それらは完全に正しく記述されなければなりません。同じオーバライドが何度も使@c
+用される場合、それらを保持する変数を定義すると非常に役に立ちます。
+
+歌詞の中のある特定の単語をボールド イタリック体で譜刻することによって、それら@c
+を強調したいと仮定します。@c
+歌詞の中では、@code{@bs{}italic} と @code{@bs{}bold} は (書式を) 変更したい単@c
+語や文と一緒に @code{@bs{}markup} ブロックの中に入れた場合にのみ機能しますが、@c
+それを毎回入力するのは大変です。@c
+埋め込む必要のある単語自体が、2 つのコマンドを簡単な変数を用いて使うことを妨げ@c
+ます。代替手段として、@code{@bs{}override} コマンドと @code{@bs{}revert} コマ@c
+ンドを使うことはできないでしょうか?
+
+@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
+
+これらも、強調する必要のある単語がたくさんある場合、入力するのが非常に大変で@c
+す。しかしながら、これらは 2 つの変数として定義することが@emph{でき}、それらの@c
+変数で単語を囲むことによって使ってその単語を強調することが@emph{できます}。こ@c
+れらのオーバライドに変数を用いることのもう 1 つの利点は、ドットの両側にスペー@c
+スを置く必要が無いことです。なぜなら、これらのオーバライドは 
+@code{@bs{}lyricmode} の中で直接解釈されるわけではないからです。ここで変数を用@c
+いる例を挙げますが、実際には早く打ち込めるようにもっと短い変数名を使用します:
+
+@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 = { \time 4/4 \partial 4 \key c \major}
+SopranoMusic   = \relative c' { c4 | e4. e8 g4  g  | a a g }
+AltoMusic  = \relative c' { c4 | c4. c8 e4  e  | f 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 | \emphasize Christ, \normal 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 Other sources of information
+@subsection Other sources of information
+
+内部リファレンスは LilyPond についての多くの情報を持っていますが、LilyPond の@c
+内部ファイルを調べることによってさらに多くの情報を収集することができます。内部@c
+ファイルを探究するには、まずあなたの使っているシステム特有のディレクトリを見つ@c
+け出す必要があります。このディレクトリの場所は、(a) あなたが lilypond.org から@c
+コンパイル済みのバイナリをダウンロードすることによって LilyPond を手に入れたの@c
+か、それとも、パッケージ マネージャから LilyPond をインストールした (つまり、@c
+Linux と一緒に配布されたか、fink や cygwin でインストールされた) のか、(b) 
+LilyPond はどの OS 上で使用されているのか、に依存します:
+
+@strong{lilypond.org からダウンロードした}
+
+@itemize @bullet
+@item Linux
+
+@file{@var{INSTALLDIR}/lilypond/usr/share/lilypond/current/} に進んでください
+
+@item MacOS X
+
+@file{@var{INSTALLDIR}/LilyPond.app/Contents/Resources/share/lilypond/current/}
+に進んでください。ターミナルからこのディレクトリへ @code{cd} で移動するか、@c
+LilyPond アプリケーション上でコントロール クリックして @q{Show Package Contents} 
+を選択します。
+
+@item Windows
+
+@file{@var{INSTALLDIR}/LilyPond/usr/share/lilypond/current/} に進んでくださ@c
+い。Windows Explorer を使います。
+
+
+@end itemize
+
+@strong{パッケージ マネージャからインストールした、あるいは、ソースからコンパ@c
+イルした}
+
+@file{@var{PREFIX}/share/lilypond/@var{X.Y.Z}/} に進んでください。@var{PREFIX} 
+はパッケージ マネージャか @code{configure} スクリプトによってセットされるもの@c
+であり、@var{X.Y.Z} は LilyPond のバージョン番号です。
+
+@smallspace
+
+このディレクトリの中に 2 つの興味深いサブディレクトリがあります:
+
+@itemize
+@item @file{ly/} - LilyPond フォーマットに関するファイルを保持しています
+@item @file{scm/} -Scheme フォーマットに関するファイルを保持しています
+@end itemize
+
+@file{ly/} の中にあるファイルから見ていきましょう。@file{ly/property-init.ly} 
+をテキスト エディタで開いてください。@c
+エディタはあなたが普段 @code{.ly} ファイルを編集するために使っているもので結構です。@c
+このファイルは標準の LilyPond 定義済みコマンド -- @code{@bs{}stemUp} や 
+@code{@bs{}slurDotted} など -- のすべての定義を保持しています。1 つまたは複数の 
+@code{@bs{}override} コマンドを保持している変数の定義以外のものはないというこ@c
+とがわかるでしょう。例えば、@code{@bs{}tieDotted} は以下のように定義されていま@c
+す:
+
+@example
+tieDotted = @{
+  \override Tie #'dash-period = #0.75
+  \override Tie #'dash-fraction = #0.1
+@}
+@end example
+
+あなたがこれらのデフォルト値を好まない場合、これらの定義済みコマンドを容易に再@c
+定義することができます -- 他の変数と同様に、入力ファイルの先頭で定義します。
+
+以下のファイルは @file{ly/} で見つかる有用なファイルです:
+
+@multitable @columnfractions .4 .6
+@headitem ファイル名
+  @tab 内容
+@item @file{ly/engraver-init.ly}
+  @tab エングラーバ コンテキストの定義
+@item @file{ly/paper-defaults-init.ly}
+  @tab 紙面関係のデフォルトの仕様
+@item @file{ly/performer-init.ly}
+  @tab パフォーマ コンテキストの定義
+@item @file{ly/property-init.ly}
+  @tab すべての共通定義済みコマンドの定義
+@item @file{ly/spanner-init.ly}
+  @tab スパナ関係の定義済みコマンドの定義
+@end multitable
+
+他の設定 (マークアップ コマンドの定義など) は @code{.scm} (Scheme) ファイルと@c
+して保存されています。Scheme プログラミング言語は、LilyPond 内部処理へのプログ@c
+ラム可能なインタフェイスを提供するために使用されます。これらのファイルについて@c
+の詳しい説明は、Scheme 言語についての知識が必要となるため、このマニュアルの範@c
+囲外です。Scheme 言語とこれらのファイルを理解するには、十分な知識や時間が必要@c
+であるということを知っておくべきです (@ref{Scheme tutorial} を参照してくださ@c
+い)。
+
+あなたがこの知識を持っているのなら、興味を持つかもしれない Scheme ファイルは以@c
+下のものです:
+
+@multitable @columnfractions .4 .6
+@headitem ファイル名
+  @tab 内容
+@item @file{scm/auto-beam.scm}
+  @tab サブ ビームのデフォルト (訳者: 8 分音符にはビームだけが使用され、16 分@c
+音符やそれよりも短い音符にはビームとサブ ビームが使われるのだと思います)
+@item @file{scm/define-grobs.scm}
+  @tab Grob (グラフィカル オブジェクト) プロパティのデフォルト設定
+@item @file{scm/define-markup-commands.scm}
+  @tab すべてのマークアップ コマンドの仕様
+@item @file{scm/midi.scm}
+  @tab MIDI 出力のデフォルト設定
+@item @file{scm/output-lib.scm}
+  @tab フレット、色、臨時記号、小節線などの見た目に影響を与える設定
+@item @file{scm/parser-clef.scm}
+  @tab サポートされる音部記号の定義
+@item @file{scm/script.scm}
+  @tab アーティキュレーションのデフォルト設定
+@end multitable
+
+
+@node Avoiding tweaks with slower processing
+@subsection Avoiding tweaks with slower processing
+
+LilyPond は入力ファイルの処理中に追加のチェックを行うことができます。これらの@c
+チェックは実行時間を伸ばしますが、適切な結果を得るのに必要とされる手動調整を減@c
+らすかもしれません。テキストや歌詞の一部が余白まではみ出す場合、これらのチェッ@c
+クは楽譜のその行を縮めてマージンの内側に収まるようにします。
+
+すべての状況下で有効にするには、以下のように、音楽の中の行ではなく @code{Score} 
+の @code{@bs{}with} ブロックの中にこれらのチェックのオーバライドを置くことに@c
+よって、動作可能な状態にする必要があります:
+
+@example
+\new Score \with @{
+  % Makes sure text scripts and lyrics are within the paper margins
+  \override PaperColumn #'keep-inside-line = ##t
+  \override NonMusicalPaperColumn #'keep-inside-line = ##t
+@} @{
+   ..
+@}
+@end example
+
+
+@node Advanced tweaks with Scheme
+@subsection Advanced tweaks with Scheme
+
+@code{@bs{}override} と @code{@bs{}tweak} コマンドを用いることで多くのことが可@c
+能になりますが、LilyPond のアクションを変更するもっと強力な手段が LilyPond 内@c
+部処理へのプログラム可能なインタフェイスを通じて利用可能です。Scheme プログラ@c
+ミング言語で書かれたコードは LilyPond の内部処理に直接組み込むことができます。@c
+もちろん、それを行うには Scheme プログラミングについての基礎知識が必要であり、@c
+その手引きが @ref{Scheme tutorial} で提供されています。
+
+多くの実現可能なことの 1 つの例としては、プロパティに定数をセットする代わりに 
+Scheme プロシージャをセットすることができます。このプロパティが LilyPond に@c
+よってアクセスされたときに、このプロシージャが呼び出されます。このプロシージャ@c
+が呼び出されたときに、このプロシージャによって決定された値を動的にそのプロパ@c
+ティにセットすることができます。以下の例では、音符玉にその音符の譜表上での位置@c
+に従って色を付けています:
+
+@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
+  c2 c' |
+  b4 g8 a b4 c |
+  c,2 a' |
+  g1 |
+}
+\addlyrics {
+  Some -- where o -- ver the Rain -- bow, way up high,
+}
+@end lilypond
+
+@ref{Tweaking with Scheme} に、これらのプログラム可能なインタフェイスの使い方@c
+を示している例がもっとあります。
+
+
diff --git a/Documentation/ja/user/working.itely b/Documentation/ja/user/working.itely
new file mode 100644 (file)
index 0000000..8287810
--- /dev/null
@@ -0,0 +1,778 @@
+@c -*- coding: utf-8; mode: texinfo; documentlanguage: ja -*-
+@c This file is part of lilypond-learning.tely
+@ignore
+    Translation of GIT committish: 499a511d4166feaada31114e097f86b5e0c56421
+
+    When revising a translation, copy the HEAD committish of the
+    version that you are working on.  See TRANSLATION for details.
+@end ignore
+
+@c \version "2.12.0"
+
+
+@c Translators: Yoshiki Sawada
+@c Translation status: post-GDP
+
+
+@node Working on LilyPond projects
+@chapter Working on LilyPond projects
+
+このセクションでは一般的な問題のいくつかを解決または回避する方法について説明し@c
+ます。あなたにプログラミングの経験があるのなら、ここで取り上げる TIPS の多くは@c
+当たり前のことに見えるかもしれませんが、それでも本章を読むことをお勧めします。
+
+
+@menu
+* Suggestions for writing LilyPond input files::
+* When things don't work::
+* Scores and parts::
+@end menu
+
+
+@node Suggestions for writing LilyPond input files
+@section Suggestions for writing LilyPond input files
+
+今やあなたはもっと大きな LilyPond 入力ファイル -- チュートリアルにあるような小@c
+さな例ではなく、楽曲全体 -- を書き始める準備が整っています。しかしながら、どの@c
+ように書き進めていくべきなのでしょうか?
+
+LilyPond があなたの入力ファイルを理解でき、望みの出力を作り出している限り、あ@c
+なたの入力ファイルがどのようなものであるかは問題になりません。しかしながら、@c
+LilyPond 入力ファイルを書いているときに考慮すべきことが他にもいくつかあります。
+
+@itemize
+@item あなたがミスをしたとしたらどうでしょうか?LilyPond ファイルの構造はエ@c
+ラーを見つけ出すことをより容易に (あるいはより困難に) します。
+
+@item あなたがあなたの入力ファイルを誰か他の人と共有したいとしたらどうでしょう@c
+か?実際には、あなたが数年前のあなた自身の入力ファイルを変更したいとしたらどう@c
+でしょうか?一読して理解可能な LilyPond 入力ファイルがある一方で、あなたを 1 
+時間も悩ます入力ファイルもあるかもしれません。
+
+@item あなたがあなたの LilyPond ファイルを最近のバージョンの LilyPond のために@c
+アップグレードしたいとしたらどうでしょうか?入力構文は LilyPond の改良に合わせ@c
+てしばしば変更されます。たいていの変更は @code{convert-ly} で自動的に変換でき@c
+ますが、いくつかの変更は手動での援助を必要とするかもしれません。LilyPond 入力@c
+ファイルはより容易に (あるいはより困難に) アップグレードできるように構成するこ@c
+とができます。
+@end itemize
+
+@menu
+* General suggestions::
+* Typesetting existing music::
+* Large projects::
+* Saving typing with variables and functions::
+* Style sheets::
+@end menu
+
+
+@node General suggestions
+@subsection General suggestions
+
+ここで、あなたが問題を回避したり修正する手助けになる可能性がある提案をいくつか@c
+挙げます:
+
+@itemize
+@item @strong{すべてのファイルに @code{@bs{}version} 番号を含めます}。テンプ@c
+レートはすべて @code{@bs{}version} 情報を保持しているということに注意してくだ@c
+さい。常に @code{@bs{}version} を含めること -- ファイルの大小にかかわらず -- 
+を強く推奨します。個人的な経験から言って、数年前に使っていた LilyPond のバー@c
+ジョンを思い出そうとすることは大変なことです。@command{convert-ly} は使用した 
+LilyPond のバージョンを宣言することを必要とします。
+
+@item @strong{チェックを含めます}: @ruser{Bar and bar number checks}, 
+@ruser{Octave checks}。時々チェックを入れておけば、ミスをしたときに素早くそ@c
+れを見つけ出すことができます。@q{時々} とはどれくらいの頻度なのでしょうか?@c
+それはその音楽の複雑さ次第です。とても簡単な音楽であれば、たぶん 1 回か 2 回で@c
+す。とても複雑な音楽であれば、おそらく各小節にチェックを入れます。
+
+@item @strong{テキスト 1 行につき 1 小節にします}。音楽自体や望みの出力が複雑@c
+である場合、1 行に 1 小節だけを記述すると良い場合が多いです。画面スペースを節@c
+約するために 1 行に 8 小節も詰め込むことは、入力ファイルを @q{デバッグ} しなけ@c
+ればならない場合に、そうするだけの価値はありません。
+
+@item @strong{入力ファイルにコメントをつけます}。コメントとして小節番号 (時々) 
+や音楽テーマへの参照 (@q{second theme in violins}, @q{fourth variation} 
+(@q{ヴァイオリンの第 2 テーマ}, @q{第 4 ヴァイオリン}) など) を使用します。@c
+初めて楽曲を書いているときはコメントをつける必要は無いかもしれません。しかしな@c
+がら、数年後に何か変更を加えたいと思った場合や、ソースを友人に渡す場合、あなた@c
+がファイルにコメントをつけていなければ、あなたの意図やファイルがどのように構成@c
+されているのかを特定することはずっと大変になります。
+
+@item @strong{中括弧にインデントを入れる}。多くの問題は @code{@{} と @code{@}} 
+の数が食い違うことによって生じます。
+
+@item セクションや変数の開始時に@strong{明示的に演奏時間を付け加える}。フレー@c
+ズの開始時に @code{c4 d e} (@code{c d e} ではなく) と記述しておけば、後になっ@c
+て音楽を再編成する場合に問題の発生を免れる可能性があります。
+
+@item 音楽定義から@strong{調整を分離します}。@ref{Saving typing with variables 
+and functions} と @ref{Style sheets} を参照してください。
+
+@end itemize
+
+
+@node Typesetting existing music
+@subsection Typesetting existing music
+
+既存の楽譜からの音楽を入力している (つまり、既存の楽譜の楽曲を譜刻している) の@c
+なら、
+
+@itemize
+
+@item 1 回につき 1 つのシステム (訳者: システムとは譜の集まりのこと。例えば、@c
+ピアノ譜での 1 システムとは、右手譜 1 小節とそれに対応する左手譜 1 小節) を入@c
+力し (しかし、それでもテキスト 1 行につき 1 小節だけにします)、それを終えたと@c
+きに各システムをチェックします。処理をスピード アップさせるために 
+@code{showLastLength} プロパティや @code{showFirstLength} プロパティを使うこと@c
+になるかもしれません -- @ruser{Skipping corrected music} を参照してください。
+
+@item @code{mBreak = @{ @bs{}break @}} を定義して、写している楽譜が改行するた@c
+びに @code{@bs{}mBreak} を入力ファイルに挿入します。これにより、LilyPond の音@c
+楽とオリジナルの音楽を比較することがずっと容易になります。入力した楽譜の校正が@c
+終わったときに、それらの改行すべてを削除するために @code{mBreak = @{ @}} を定@c
+義することになるかもしれません。これにより、LilyPond は LilyPond が最適と思う@c
+場所に改行を入れることができるようになります。
+
+@end itemize
+
+
+@node Large projects
+@subsection Large projects
+
+大きなプロジェクトに取り組んでいるとき、LilyPond 入力ファイルの構造をすっきり@c
+させておくことが不可欠です。
+
+@itemize
+
+@item @strong{各ボイスに対して変数を使用して}、定義の中の構造を最小限にしま@c
+す。@code{@bs{}score} セクションの構造が最も変更される可能性が高い箇所です。一@c
+方、@code{violin} 定義は LilyPond のバージョンが新しくなっても変更される可能性@c
+はまずありません。
+
+@example
+violin = \relative c'' @{
+g4 c'8. e16
+@}
+...
+\score @{
+  \new GrandStaff @{
+    \new Staff @{
+      \violin
+    @}
+  @}
+@}
+@end example
+
+@item @strong{調整を音楽定義から分離します}。このことは前にも触れましたが、大@c
+きなプロジェクトでは絶対に不可欠なことです。@code{fthenp} の定義を変更する必要@c
+が生じた場合、変更は 1 回で済み、@code{violin} の内部にはまったく手を触れる必@c
+要がありません。
+
+@example
+fthenp = _\markup@{
+  \dynamic f \italic \small @{ 2nd @} \hspace #0.1 \dynamic p @}
+violin = \relative c'' @{
+g4\fthenp c'8. e16
+@}
+@end example
+
+@end itemize
+
+
+@node Saving typing with variables and functions
+@subsection Saving typing with variables and functions
+
+@cindex variables
+@cindex variables
+
+これまでに、以下のような記述を見てきました:
+
+@lilypond[quote,verbatim,ragged-right]
+hornNotes = \relative c'' { c4 b dis c }
+\score {
+  {
+    \hornNotes
+  }
+}
+@end lilypond
+
+これは音楽表記を最小化するのに役に立つ可能性があるということに気付くかもしれま@c
+せん:
+
+@lilypond[quote,verbatim,ragged-right]
+fragmentA = \relative c'' { a4 a8. b16 }
+fragmentB = \relative c'' { a8. gis16 ees4 }
+violin = \new Staff { \fragmentA \fragmentA \fragmentB \fragmentA }
+\score {
+  {
+    \violin
+  }
+}
+@end lilypond
+
+さらに、これらの変数 (変数、マクロ、(ユーザ定義) コマンドなどと呼ばれます) を@c
+調整のために使うこともできます:
+
+@lilypond[quote,verbatim,ragged-right]
+dolce = \markup{ \italic \bold dolce }
+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 {
+    c4._\dolce b8 a8 g a b |
+    \padText
+    c4.^"hi there!" d8 e' f g d |
+    c,4.\fthenp b8 c4 c-. |
+  }
+}
+\score {
+  {
+    \violin
+  }
+\layout{ragged-right=##t}
+}
+@end lilypond
+
+これらの明らかに変数は入力の手間を省くのに役立っています。例えそれらの変数が 1 
+回しか使用されないとしても、変数化することを考慮する価値があります -- 複雑さを@c
+減らします。以前に使用した変数を使っていない例を見てみましょう。それはとても読@c
+み難く、特に最後の行が読み難いです。
+
+@example
+violin = \relative c'' @{
+  \repeat volta 2 @{
+    c4._\markup@{ \italic \bold dolce @} b8 a8 g a b |
+    \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 @} b8 c4 c-. |
+  @}
+@}
+@end example
+
+@c TODO Replace the following with a better example  -td
+@c Skylining handles this correctly without padText
+
+これまでに見てきたのは静的な置き換えです -- LilyPond は @code{@bs{}padText} を@c
+見ると、それを定義した内容 (つまり、@code{padText=} の右側にあるもの) に置き換@c
+えます。
+
+LilyPond は非静的な置き換えも処理できます (それらを関数と見なすことができます)。
+
+@lilypond[quote,verbatim,ragged-right]
+padText =
+#(define-music-function (parser location padding) (number?)
+  #{
+    \once \override TextScript #'padding = #$padding
+  #})
+
+\relative c''' {
+  c4^"piu mosso" b a b
+  \padText #1.8
+  c4^"piu mosso" d e f
+  \padText #2.6
+  c4^"piu mosso" fis a g
+}
+@end lilypond
+
+変数を使うことは、LilyPond 入力構文に変更があった場合の作業を減らす良い方法で@c
+もあります (@ref{Updating old input files} を参照してください)。あなたがあなた@c
+の入力ファイルすべてに使用する単一の定義 (@code{@bs{}dolce} のような) を持って@c
+いて、構文が変更された場合、すべての @code{.ly} ファイルを変更する代わりに、@c
+@code{@bs{}dolce} 定義をアップデートするだけで済みます。
+
+
+@node Style sheets
+@subsection Style sheets
+
+LilyPond が作り出す出力にはさまざまな変更を加えることができます (詳細は 
+@ref{Tweaking output} を参照してください)。しかしながら、調整を加えたい入力@c
+ファイルがたくさんあるとしたらどうでしょう?また、単に調整を実際の音楽表記から@c
+分離したいとしたらどうでしょう?これはとても簡単なことです。
+
+以下の例を見てみましょう。@code{@hash{}()} を持つ部分を理解できなくても心配し@c
+ないでください。@ref{Advanced tweaks with Scheme} で説明されています。
+
+@lilypond[quote,verbatim,ragged-right]
+mpdolce = #(make-dynamic-script (markup #:hspace 1 #:translate (cons 5 0)
+  #:line(#:dynamic "mp" #:text #:italic "dolce" )))
+tempoMark = #(define-music-function (parser location markp) (string?)
+#{
+  \once \override Score . RehearsalMark #'self-alignment-X = #left
+  \once \override Score . RehearsalMark #'extra-spacing-width = #'(+inf.0 . -inf.0)
+  \mark \markup { \bold $markp }
+#})
+
+\relative c'' {
+  \tempo 4=50
+  a4.\mpdolce d8 cis4--\glissando a | b4 bes a2
+  \tempoMark "Poco piu mosso"
+  cis4.\< d8 e4 fis | g8(\! fis)-. e( d)-. cis2
+}
+@end lilypond
+
+この例には出力が重なり合うという問題がいくつかあり、@ref{Moving objects} のテ@c
+クニックを使ってそれらを修正しています。そこで、さらに @code{mpdolce} 定義と 
+@code{tempoMark} 定義に関して何かしてみましょう。それらは望みの出力を作り出し@c
+ていますが、それらを別の楽曲で使いたいとします。単純にそれらを各ファイルの先頭@c
+部分にカット&ペーストすることもできますが、わずらわしいです。その方法では定義@c
+は依然として入力ファイルの中にあり、私は個人的にすべての @code{@hash{}()} は何@c
+か醜いと感じます。それらを他のファイルの中に隠すことにしましょう:
+
+@example
+%%% save this to a file called "definitions.ly"
+mpdolce = #(make-dynamic-script (markup #:hspace 1 #:translate (cons 5 0)
+  #:line(#:dynamic "mp" #:text #:italic "dolce" )))
+tempoMark = #(define-music-function (parser location markp) (string?)
+#@{
+  \once \override Score . RehearsalMark #'self-alignment-X = #left
+  \once \override Score . RehearsalMark #'extra-spacing-width = #'(+inf.0 . -inf.0)
+  \mark \markup @{ \bold $markp @}
+#@})
+@end example
+
+今度は音楽ファイルを変更しましょう (このファイルを @file{"music.ly"} として保@c
+存しましょう)。
+
+@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.ly"
+
+\relative c'' @{
+  \tempo 4=50
+  a4.\mpdolce d8 cis4--\glissando a | b4 bes a2
+  \once \override Score.RehearsalMark #'padding = #2.0
+  \tempoMark "Poco piu mosso"
+  cis4.\< d8 e4 fis | g8(\! fis)-. e( d)-. cis2
+@}
+@end example
+
+@lilypond[quote,ragged-right]
+mpdolce = #(make-dynamic-script (markup #:hspace 1 #:translate (cons 5 0)
+  #:line(#:dynamic "mp" #:text #:italic "dolce" )))
+tempoMark = #(define-music-function (parser location markp) (string?)
+#{
+  \once \override Score . RehearsalMark #'self-alignment-X = #left
+  \once \override Score . RehearsalMark #'extra-spacing-width = #'(+inf.0 . -inf.0)
+  \mark \markup { \bold $markp }
+#})
+
+\relative c'' {
+  \tempo 4=50
+  a4.\mpdolce d8 cis4--\glissando a | b4 bes a2
+  \once \override Score.RehearsalMark #'padding = #2.0
+  \tempoMark "Poco piu mosso"
+  cis4.\< d8 e4 fis | g8(\! fis)-. e( d)-. cis2
+}
+@end lilypond
+
+これで前よりも良くなりましたが、2, 3 の変更を行いましょう。グリッサンド (訳者: 
+第 1 小節の C シャープと A の間) は見え難いので、もっと太く、音符の玉に近づけ@c
+ましょう。メトロノーム記号を最初の音符の上ではなく、音部記号の上に持ってきま@c
+しょう。最後に、私の作曲の先生は @q{C} 拍子記号を嫌っているので、@q{4/4} に変@c
+更した方が良さそうです。
+
+@file{music.ly} には変更を加えないでください。@file{definitions.ly} を以下のよ@c
+うに書き換えます:
+
+@example
+%%%  definitions.ly
+mpdolce = #(make-dynamic-script (markup #:hspace 1 #:translate (cons 5 0)
+  #:line( #:dynamic "mp" #:text #:italic "dolce" )))
+tempoMark = #(define-music-function (parser location markp) (string?)
+#@{
+  \once \override Score . RehearsalMark #'self-alignment-X = #left
+  \once \override Score . RehearsalMark #'extra-spacing-width = #'(+inf.0 . -inf.0)
+  \mark \markup @{ \bold $markp @}
+#@})
+
+\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 1 #:translate (cons 5 0)
+  #:line( #:dynamic "mp" #:text #:italic "dolce" )))
+tempoMark = #(define-music-function (parser location markp) (string?)
+#{
+  \once \override Score . RehearsalMark #'self-alignment-X = #left
+  \once \override Score . RehearsalMark #'extra-spacing-width = #'(+inf.0 . -inf.0)
+  \mark \markup { \bold $markp }
+#})
+
+\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
+  \once \override Score.RehearsalMark #'padding = #2.0
+  \tempoMark "Poco piu mosso"
+  cis4.\< d8 e4 fis | g8(\! fis)-. e( d)-. cis2
+}
+@end lilypond
+
+もっと良くなりました!今度はこれを公表したいとします。私の作曲の先生は @q{C} 
+拍子記号を嫌っていますが、私は幾分好きです。現在の @code{definitions.ly} を 
+@code{web-publish.ly} にコピーして、それを変更してみましょう。この音楽はスク@c
+リーンに表示される PDF を作り出すことを意図したものなので、出力のフォントを全@c
+体に大きくすることにします。
+
+@example
+%%%  definitions.ly
+mpdolce = #(make-dynamic-script (markup #:hspace 1 #:translate (cons 5 0)
+  #:line( #:dynamic "mp" #:text #:italic "dolce" )))
+tempoMark = #(define-music-function (parser location markp) (string?)
+#@{
+  \once \override Score . RehearsalMark #'self-alignment-X = #left
+  \once \override Score . RehearsalMark #'extra-spacing-width = #'(+inf.0 . -inf.0)
+  \mark \markup @{ \bold $markp @}
+#@})
+
+#(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 1 #:translate (cons 5 0)
+  #:line( #:dynamic "mp" #:text #:italic "dolce" )))
+tempoMark = #(define-music-function (parser location markp) (string?)
+#{
+  \once \override Score . RehearsalMark #'self-alignment-X = #left
+  \once \override Score . RehearsalMark #'extra-spacing-width = #'(+inf.0 . -inf.0)
+  \mark \markup { \bold $markp }
+#})
+
+#(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
+  \once \override Score.RehearsalMark #'padding = #2.0
+  \tempoMark "Poco piu mosso"
+  cis4.\< d8 e4 fis | g8(\! fis)-. e( d)-. cis2
+}
+@end lilypond
+
+音楽ファイルの中では、単に @code{@bs{}include "definitions.ly"} を 
+@code{@bs{}include "web-publish.ly"} に置き換えるだけです。もちろん、これを@c
+もっと便利なようにすることができます。@file{definitions.ly} ファイルには 
+@code{mpdolce} と @code{tempoMark} の定義だけを持たせて、@file{web-publish.ly} 
+ファイルには上で載せた @code{@bs{}layout} セクションだけを持たせ、@c
+@file{university.ly} ファイルには私の先生の好む出力を作り出すための調整だけを@c
+持たせます。@file{music.ly} の先頭部分は以下のようになります:
+
+@example
+\include "definitions.ly"
+
+%%%  Only uncomment one of these two lines!
+\include "web-publish.ly"
+%\include "university.ly"
+@end example
+
+このアプローチは、あなたがパーツ一式を作っているだけだとしても役に立つ可能性が@c
+あります。私は自分のプロジェクトのための半ダースの @q{スタイル シート} ファイ@c
+ルを使います。私は各音楽ファイルを @code{@bs{}include "../global.ly"} で始め@c
+て、@file{gloval.ly} には以下の内容を記述しています:
+
+@example
+%%%   global.ly
+\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 When things don't work
+@section When things don't work
+
+@menu
+* Updating old input files::
+* Troubleshooting (taking it all apart)::
+* Minimal examples::
+@end menu
+
+@node Updating old input files
+@subsection Updating old input files
+
+LilyPond 入力構文はしばしば変更されます。LilyPond 自体の改良に合わせて、構文 
+(入力言語) も変更されます。これらの変更は入力を読みやすく/書きやすくするために@c
+行われる場合もありますし、LilyPond の新しい機能のために行われる場合もあります。
+
+LilyPond は、このアップデートをより容易にするファイル: @code{convert-ly} と一@c
+緒に公開されます。このプログラムの実行方法についての詳細は @rprogram{Updating 
+files with convert-ly} を参照してください。
+
+残念なことに、@code{convert-ly} はすべての入力構文の変更を処理できるわけではあ@c
+りません。単純な探索-置換 (@code{raggedright} が @code{ragged-right} になった@c
+など) を処理しますが、複雑すぎる変更もあります。@code{convert-ly} が処理できな@c
+い構文の変更は @rprogram{Updating files with convert-ly} にリストアップされて@c
+います。
+
+例えば、LilyPond 2.4 以前では、アクセントと非英語文字 -- 例えば、@c
+@code{No@bs{}"el} (これは @q{クリスマス} に対応するフランス語となります) -- は 
+LaTex を使って入力していました。LilyPond 2.6 以降では、特殊文字 @code{ë} を 
+UTF-8 キャラクタとして直接 LilyPond ファイルに入力するようになりました。@c
+@code{convert-ly} はすべての LaTex 特殊文字を UTF-8 キャラクタに変更することは@c
+できません。その場合、あなたが手動で古い LilyPond 入力ファイルをアップデートす@c
+る必要があります。
+
+
+@node Troubleshooting (taking it all apart)
+@subsection Troubleshooting (taking it all apart)
+
+遅かれ早かれ、あなたは LilyPond がコンパイルできないファイルを書くことになりま@c
+す。LilyPond が返すメッセージはエラーを見つけ出す手助けになるかもしれません@c
+が、多くの場合、問題の原因を探し出すために調査を行う必要があります。
+
+この目的のための最も強力なツールは 1 行コメント (@code{%} で記述します) とブ@c
+ロック コメント (@code{%@{ ... %@}} で記述します) です。問題がどこにあるかわか@c
+らない場合、入力ファイルの大きな一部分をコメント アウトすることから始めます。@c
+あるセクションをコメント アウトして、そのファイルを再びコンパイルしてみます。@c
+コンパイルが通ったのなら、問題は今コメント アウトした部分の中にあります。コン@c
+パイルが通らなかった場合は、コンパイルが通るようになるまでコメント アウトした@c
+ままにしておきます。
+
+極端な場合、最終的に以下のようになるかもしれません:
+
+@example
+\score @{
+  <<
+    % \melody
+    % \harmony
+    % \bass
+  >>
+  \layout@{@}
+@}
+@end example
+
+@noindent
+(言い換えると、何の音楽も持たないファイルです)
+
+こうなったとしても、あきらめないでください。少しだけコメントを外して -- 例え@c
+ば、バス パートを -- コンパイルが通るかどうか試してみます。コンパイルが通らな@c
+かった場合は、バスの音楽をすべてコメント アウトします (しかし、@code{@bs{}score} 
+の中の @code{@bs{}bass} はコメントを外したままにしておきます)。
+
+@example
+bass = \relative c' @{
+%@{
+  c4 c c c
+  d d d d
+%@}
+@}
+@end example
+
+そして、問題を起こしている行を見つけ出すまで、@code{bass} パートから少しずつコ@c
+メントを外していきます。
+
+もう 1 つの非常に有用なデバッグ テクニックは @ref{Minimal examples} を構築する@c
+ことです。
+
+
+@node Minimal examples
+@subsection Minimal examples
+
+最小化例は可能な限り小さな例のことです。最小化例は長い例よりも理解することが@c
+ずっと容易です。最小化例は以下の目的で使用されます:
+
+@itemize
+@item バグ レポート
+@item メーリング リストに援助要請を送る
+@item @uref{http://lsr.dsi.unimi.it/,LilyPond Snippet Repository} に例を追加する
+@end itemize
+
+可能な限り小さな例を構築するための規則はとても単純です: 必要の無いものはすべて@c
+削除する。ファイルの不要な部分を削除しようとしているとき、実際に削除する代わり@c
+にコメント アウトを使用するというのはとても良いアイディアです。そうしておけ@c
+ば、ある行が実際には必要だということがわかった場合に、その行をゼロから入力する@c
+代わりに、コメントを外すだけで済みます。
+
+@qq{可能な限り小さく} という規則には 2 つの例外があります:
+
+@itemize
+@item @code{\version} 番号を含める。
+@item 可能であれば、例の先頭で @code{@bs{}paper@{ ragged-right=@hash{}@hash{}t 
+@}} を使う。
+@end itemize
+
+最小化例の要点は読みやすくするということです:
+
+@itemize
+@item 複雑な音符、調子、拍子を使うことを避ける -- それらの要素の振る舞いについ@c
+て何かを示そうとしているのでない限り
+@item @code{@bs{}override} コマンドを使わない -- それがその例のポイントでない@c
+限り
+@end itemize
+
+@node Scores and parts
+@section Scores and parts
+
+TODO: this is really old stuff from the really old tutorial.
+Rewrite, fix, etc.  Or maybe delete entirely.  -gp
+Include section on tags   -td
+and then move to section 5. Working ...  -td
+
+オーケストラ音楽では、すべての音符は 2 回譜刻されます。1 回は演奏家のための@c
+パート譜で、1 回は指揮者のための総譜で譜刻されます。変数を使うことで二度手間を@c
+避けることができます。音楽は 1 回、変数に入力されます。その変数の内容は、パー@c
+ト譜と総譜の両方を生成するために使用されます。
+
+音符を特別なファイルの中に定義すると便利です。例えば、ファイル 
+@code{horn-music.ly} は以下のホルン/@/バスーン デュオのパートを保持していると@c
+します:
+
+@example
+hornNotes = \relative c @{
+  \time 2/4
+  r4 f8 a cis4 f e d
+@}
+@end example
+
+@noindent
+個々のパートは、ファイルの中に以下の記述をすることによって作り出されます:
+
+@example
+\include "horn-music.ly"
+\header @{
+  instrument = "Horn in F"
+@}
+
+@{
+ \transpose f c' \hornNotes
+@}
+@end example
+
+以下の行:
+
+@example
+\include "horn-music.ly"
+@end example
+
+@noindent
+は、ファイルの中でその行が置かれている場所で、@file{horn-music.ly} の内容に置@c
+き換わり、@code{hornNotes} はその後に定義されます。コマンド @code{@bs{}transpose 
+f@tie{}c'} は、引数 @code{@bs{}hornNotes} は 5 度上へ移調すべきであるというこ@c
+とを示しています。@code{f} の音は譜面に表記された @code{c'} で表され、これは通@c
+常のフレンチ ホルンを F にチューニングすることに相当します。この移調により出力@c
+は以下のようになります:
+
+@lilypond[quote,ragged-right]
+\transpose f c' \relative c {
+  \time 2/4
+  r4 f8 a cis4 f e d
+}
+@end lilypond
+
+アンサンブルでは、しばしばボイスの 1 つが何小節も演奏されないことがあります。@c
+これは特別な休符 -- 複小節休符 -- によって示されます。これは大文字の @code{R} 
+とその後に続く演奏時間 (全音符には @code{1}、半音符には @code{2} などです) で@c
+入力されます。この演奏時間に掛け算を行うことによって、さらに長い休符を構築する@c
+ことができます。例えば、以下の休符は 2/4 拍子で 3 小節分の長さになります:
+
+@example
+R2*3
+@end example
+
+この部分を譜刻するとき、複小節休符を圧縮する必要があります。これは以下のラン-@c
+タイム変数を設定することによって行います:
+
+@example
+\set Score.skipBars = ##t
+@end example
+
+@noindent
+このコマンドは @code{Score} コンテキストの中にあるプロパティ @code{skipBars} 
+を真 (@code{@hash{}@hash{}t}) にセットします。この休符とオプションを上記の音楽@c
+の先頭に追加することによって、以下のような結果になります:
+
+@lilypond[quote,ragged-right]
+\transpose f c' \relative c {
+  \time 2/4
+  \set Score.skipBars = ##t
+  R2*3
+  r4 f8 a cis4 f e d
+}
+@end lilypond
+
+楽譜はすべての音楽を一緒にすることによって作り出されます。他のボイスはファイル 
+@file{bassoon-music.ly} の中の @code{bassoonNotes} の中にあると仮定すると、楽@c
+譜は以下のような記述で作られます:
+
+@example
+\include "bassoon-music.ly"
+\include "horn-music.ly"
+
+<<
+  \new Staff \hornNotes
+  \new Staff \bassoonNotes
+>>
+@end example
+
+@noindent
+そして、以下のような楽譜になります:
+
+@lilypond[quote,ragged-right]
+\relative c <<
+  \new Staff {
+    \time 2/4 R2*3
+    r4 f8 a cis4 f e d
+  }
+  \new Staff {
+    \clef bass
+    r4 d,8 f | gis4 c | b bes |
+    a8 e f4 | g d | gis f
+  }
+>>
+@end lilypond
+
+
index 1be8dfdd469adae28744ca547e0e75a2f3cd01bf..74d470a4691205e1a5020ace65406be8a479bf68 100644 (file)
@@ -91,14 +91,14 @@ a:active {
 /*                  BLOCK FORMATTING                       */
 /***********************************************************/
 
-blockquote {
+blockquote, .smallexample {
   border: thin solid #3465a4;
   border-width: 0 0 0 2px;
   margin: 1em 0 1em 3em;
   padding: 0;
 }
 
-blockquote p {
+blockquote p, pre.smallexample {
   margin: 0;
   padding: 1em;
 }
index 9bdc69ac8fc1281bcb8e4eb48f53f076bce2ed21..274f7fdc0ddcba8123f6ea981bd7347e2c426636 100644 (file)
@@ -33,6 +33,11 @@ blockquote {
   margin: 1em 1%;
 }
 
+table.cartouche {
+  width: 85%;
+  margin: 1em 7.5%;
+}
+
 /***********************************************************/
 /*                    TOC SIDEBAR                          */
 /***********************************************************/
@@ -56,11 +61,11 @@ table#navigation {
 /***********************************************************/
 
 table#navigation, div#tocframe, div#main,
-p, .footer, #languages {
+p, h1, h2, ul, .footer, #languages {
   text-align: left;
 }
 
-div.subheader p {
+div.header h1, div.subheader p {
   text-align: center;
 }
 
index c758db6dabdf505f74a80e920d430ee96ead8f91..247b835494bf92d7c5f230a3b053d27894d03595 100644 (file)
@@ -12,8 +12,8 @@ body {
   height: 100%;
   font-size: 100%;
   line-height: 1.125;
-  color: black;
-  background-color: white;
+  color: #000;
+  background-color: #fff;
 }
 
 /***********************************************************/
@@ -35,10 +35,10 @@ body {
   background: #b1d281;
   font-size: 2em;
   text-align: center;
-  margin: 0;
   padding: 0.4em 0.5em;
-  border: 1px solid #7b925a;
-  border-width: 0 0 1px 0;
+  border: solid #7b925a;
+  border-width: 1px 0;
+  margin: 0;
 }
 
 .chapter, .appendix, .unnumbered {
@@ -63,10 +63,10 @@ body {
 }
 
 .chapheading {
-  text-indent: -999em;
+  position: absolute;
   height: 0;
-  padding: 0;
-  margin: 0;
+  overflow: hidden;
+  text-indent: -999em;
 }
 
 /***********************************************************/
@@ -74,34 +74,34 @@ body {
 /***********************************************************/
 
 a:link {
-  color: #3465a4;
+  color: #0c51ab;
 }
 
 a:visited {
-  color: #8f5902;
+  color: #804f01;
 }
 
 a:active {
-  color: #73d216;
+  color: #278800;
 }
 
 a:hover {
-  color: #ce5c00;
+  color: #0105ad;
 }
 
 /***********************************************************/
 /*                  BLOCK FORMATTING                       */
 /***********************************************************/
 
-blockquote {
+blockquote, .smallexample {
   width: 96%;
   padding: 0;
-  border: 1px solid #708a4b;
-  border-left: 5px solid #a3ca6d;
+  border: solid #b1d281;
+  border-width: 1px 1px 1px 5px;
   margin: 1em auto;
 }
 
-blockquote p {
+blockquote p, pre.smallexample {
   padding: 1em;
   margin: 0;
 }
@@ -130,7 +130,7 @@ blockquote blockquote {
 }
 
 table.cartouche {
-  background: #f5f5dc; /* beige */
+  background: #f5f5dc;
   width: 85%;
   border-collapse: collapse;
   padding: 0 0.5em;
@@ -181,9 +181,7 @@ p {
 }
 
 #languages {
-  background-color: #f5f5dc; /* beige */
   padding: 0.5em 1em;
-  border-top: 1px solid #8fa77f;
   margin: 0;
 }
 
@@ -215,11 +213,11 @@ div#tocframe {
   padding: 0;
   margin: 0;
   overflow: auto;
-  background-color: #f5f5dc; /* beige */
+  background: #f5f5dc;
   z-index: 100;
   list-style-type: none;
   font-size: 0.83em;
-  line-height: 1.4;
+  line-height: 1.3;
 }
 
 @media screen {
@@ -228,24 +226,40 @@ div#tocframe {
   }
 }
 
+div#tocframe a:link, div#tocframe a:visited {
+  color: #454532;
+  text-decoration: none;
+}
+
+div#tocframe a:hover {
+  color: #232b16;
+  text-decoration: underline;
+}
+
 div#tocframe p.toc_uplink {
   font-size: 1em;
   line-height: 1.125;
   background: #c9ccc4;
-  padding: 0.25em 1em;
-  border-bottom: 1px solid #8a8c87;
+  padding: 0.25em 1em 0.25em 0.5em;
+  border-bottom: 1px solid #a0a087;
   margin: 0;
 }
 
+div#tocframe p.toc_uplink a:link,
+div#tocframe p.toc_uplink a:visited {
+  color: #1c1c1b;
+}
+
+div#tocframe p.toc_uplink a:hover {
+  color: #000;
+}
+
 div#tocframe h4 {
   font-size: 1em;
   line-height: 1.125;
   font-weight: bold;
   font-style: italic;
-  /* background: #c9ccc4; */
-  /* padding: 0.25em 1em; */
   padding: 0.75em 0.5em 0 0.5em;
-  /* border-bottom: 1px solid #8a8c87; */
   margin: 0;
 }
 
@@ -300,14 +314,22 @@ li.toc_current ul {
   width: 100%;
   background: #c9ccc4;
   font-size: 0.83em;
-  line-height: 1.125;
   border-collapse: collapse;
   padding: 0;
-  border: 0;
-  border-bottom: 1px solid #8a8c87;
+  border: none;
   margin: 0;
 }
 
+.nav_table a:link, .nav_table a:visited {
+  color: #1c1c1b;
+  text-decoration: none;
+}
+
+.nav_table a:hover {
+  color: #000;
+  text-decoration: underline;
+}
+
 .nav_table tr, .nav_table a {
   padding: 0;
   margin: 0;
@@ -334,7 +356,7 @@ div.header h1 {
 }
 
 div.subheader {
-  background-color: #ddd;
+  background: #ddd;
   padding: 0;
   margin: 0;
   text-align: center;
@@ -365,13 +387,18 @@ table .title {
 }
 
 .footer {
-  background: #c6e7b0;
+  background: #e5f5ce;
   font-size: 0.8em;
-  border: 0;
   padding: 0.2em 0;
+  border: solid #b1d281;
+  border-width: 0 0 5px 0;
   margin: 0;
 }
 
+.footer a:link {
+  color: #0308fc;
+}
+
 .footer p {
   padding: 0 1.25em;
   margin: 0.4em 0;
index 3ab076844c0234b0d660e49bf307b71926df097f..82ab472b9507104955dcb0eaac4295f89a61ef10 100644 (file)
@@ -46,7 +46,7 @@ blockquote {
   padding: 3px;
   width: 40em;
 }
-.verbatim, .example {
+.verbatim, .example, .smallexample {
   font-family: "Courier New",Courier,monospace;
 }
 hr {
@@ -163,7 +163,7 @@ li.toc_current ul {
 
 div.header {
   background-color: #E7EFE3;
-  padding: 2;
+  padding: 2px;
   border: #CCD3CC 1px solid;
   text-align: center;
 }
@@ -198,7 +198,7 @@ div.subheader {
 
 .footer {
   background-color: #E7EFE3;
-  padding: 5;
+  padding: 5px;
   border: #CCD3CC 1px solid;
   font-size: 80%;
 }
index 438389f944b8e088354abf71a7cd64f126b7b8d6..35ef738ae4158c785557192665c1f94c84338ea9 100644 (file)
@@ -12,7 +12,7 @@ include $(depth)/make/stepmake.make
 ifeq ($(PLATFORM_WINDOWS),yes)
 
 $(outdir)/%.ico: %.xpm
-       $(PYTHON) $(buildscript-dir)/genicon.py $< $@
+       $(buildscript-dir)/genicon $< $@
 
 default: $(lilypond-icon) $(ly-icon)
 
index 685d2bab5f17958fd0082811868e7621f39475a1..dc3d16144c5936e6349cd5ff34b6a09f343be75b 100644 (file)
@@ -8,9 +8,12 @@ include $(depth)/make/stepmake.make
 doc-localedir=$(outdir)
 LANGS = $(shell $(PYTHON) $(top-src-dir)/python/langdefs.py)
 DOMAIN=lilypond-doc
-DOC_PO_SOURCES = postprocess_html.py texi-gettext.py translations-status.py
+DOC_PO_SOURCES = python/auxiliar/postprocess_html.py \
+ scripts/build/texi-gettext.py scripts/auxiliar/translations-status.py
 TELY_FILES = $(shell ls $(depth)/Documentation/user/lilypond*.tely)
 TELY_FILES += $(foreach l, $(LANGS), $(shell ls $(depth)/Documentation/$(l)/user/lilypond*.tely))
+LSR_LYS := $(shell ls $(depth)/input/lsr/*.ly)
+TELY_FILES += $(LSR_LYS:%.ly=../%.ly)
 
 messages: $(outdir)/messages
 
@@ -22,10 +25,10 @@ $(outdir)/messages: $(MO_FILES)
        touch $@
 
 po-update:
-       $(PYTHON) $(buildscript-dir)/texi-langutils.py -d $(outdir) -o texi.pot --gettext $(TELY_FILES:%.tely=../%.tely)
-       $(foreach i, $(DOC_PO_SOURCES), cp $(buildscript-dir)/$(i) $(outdir) &&) true
-       cd $(outdir) && sed -i -e s/_doc/_/g $(DOC_PO_SOURCES)
-       cd $(outdir) && xgettext -cjn -L Python -o buildscripts.pot $(DOC_PO_SOURCES)
+       $(auxscript-dir)/texi-langutils.py -d $(outdir) -o texi.pot --gettext $(TELY_FILES:%.tely=../%.tely)
+       $(foreach i, $(DOC_PO_SOURCES), cp $(top-src-dir)/$(i) $(outdir) &&) true
+       cd $(outdir) && sed -i -e s/_doc/_/g $(foreach i, $(DOC_PO_SOURCES), $(notdir $(i)))
+       cd $(outdir) && xgettext -cjn -L Python -o buildscripts.pot $(foreach i, $(DOC_PO_SOURCES), $(notdir $(i)))
        msgcat -o $(outdir)/doc.pot $(outdir)/buildscripts.pot $(outdir)/texi.pot
        msgmerge -U lilypond-doc.pot $(outdir)/doc.pot
        for i in $(CATALOGS); do \
index f396c1e5e93a481531508dbbd466f408f3c447c2..064086a2579acaf935a5c8e130b5278fb999d83b 100644 (file)
@@ -1,17 +1,18 @@
+# translation of de.po to German
 # translation of LilyPond documentation
 # Copyright (C) 2006 Han-Wen Nienhuys, Jan Nieuwenhuizen
 # This file is distributed under the same license as the lilypond package.
-# Till Rettig <till.rettig@gmx.de>, 2007,2008
 #
 #
+# Till Rettig <till.rettig@gmx.de>, 2007,2008, 2009.
 msgid ""
 msgstr ""
 "Project-Id-Version: de\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-10-27 12:40+0100\n"
-"PO-Revision-Date: 2008-10-19 10:10+0300\n"
+"POT-Creation-Date: 2009-02-14 02:23+0100\n"
+"PO-Revision-Date: 2009-02-15 15:38+0200\n"
 "Last-Translator: Till Rettig <till.rettig@gmx.de>\n"
-"Language-Team: de\n"
+"Language-Team: German <de>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -43,11 +44,11 @@ msgstr "Andere Sprachen: %s."
 msgid "About <A HREF=\"%s\">automatic language selection</A>."
 msgstr "Über die <A HREF=\"%s\">automatische Sprachauswahl</A>."
 
-#: postprocess_html.py:315
+#: postprocess_html.py:316
 msgid "stable-branch"
 msgstr "stabiler Zweig"
 
-#: postprocess_html.py:317
+#: postprocess_html.py:318
 msgid "development-branch"
 msgstr "Entwicklungszweig"
 
@@ -59,82 +60,82 @@ msgstr ""
 "Dieser Abschnitt wurde noch nicht übersetzt, bitte lesen Sie den Abschnitt "
 "in der englischen Notationsreferenz."
 
-#: translations-status.py:52
+#: translations-status.py:59
 msgid "Section titles"
 msgstr "Überschriften"
 
-#: translations-status.py:53
+#: translations-status.py:60
 #, python-format
 msgid " <p><i>Last updated %s</i></p>\n"
 msgstr "·<p><i>Zuletzt aktualisiert am·%s</i></p>\n"
 
-#: translations-status.py:54
+#: translations-status.py:61
 msgid "Translators"
 msgstr "Übersetzer"
 
-#: translations-status.py:54
+#: translations-status.py:61
 msgid "Translation checkers"
 msgstr "Übersetzungsüberprüfer"
 
-#: translations-status.py:55
+#: translations-status.py:62
 msgid "Translated"
 msgstr "Übersetzt"
 
-#: translations-status.py:55
+#: translations-status.py:62
 msgid "Up to date"
 msgstr "Aktuell"
 
-#: translations-status.py:56
+#: translations-status.py:63
 msgid "Other info"
 msgstr "Mehr Information"
 
-#: translations-status.py:58
+#: translations-status.py:65
 msgid "no"
 msgstr "nein"
 
-#: translations-status.py:59
+#: translations-status.py:66
 msgid "not translated"
 msgstr "nicht übersetzt"
 
-#: translations-status.py:61
+#: translations-status.py:68
 #, python-format
 msgid "partially (%(p)d %%)"
 msgstr "teilweise (%(p)d %%)"
 
-#: translations-status.py:63
+#: translations-status.py:70
 #, python-format
 msgid "partially translated (%(p)d %%)"
 msgstr "teilweise übersetzt (%(p)d·%%)"
 
-#: translations-status.py:64 translations-status.py:66
+#: translations-status.py:71 translations-status.py:73
 msgid "yes"
 msgstr "ja"
 
-#: translations-status.py:65
+#: translations-status.py:72
 msgid "translated"
 msgstr "übersetzt"
 
-#: translations-status.py:66 translations-status.py:67
+#: translations-status.py:73 translations-status.py:74
 msgid "up to date"
 msgstr "aktuell"
 
-#: translations-status.py:68
+#: translations-status.py:75
 msgid "partially"
 msgstr "teilweise"
 
-#: translations-status.py:69
+#: translations-status.py:76
 msgid "partially up to date"
 msgstr "teilweise aktuell"
 
-#: translations-status.py:70
+#: translations-status.py:77
 msgid "N/A"
 msgstr "K/A"
 
-#: translations-status.py:71
+#: translations-status.py:78
 msgid "pre-GDP"
 msgstr "vor-GDP"
 
-#: translations-status.py:72
+#: translations-status.py:79
 msgid "post-GDP"
 msgstr "nach-GDP"
 
@@ -151,6 +152,8 @@ msgstr "nach-GDP"
 #. @node in Documentation/de/user/lilypond-learning.tely
 #. @node in Documentation/de/user/lilypond-program.tely
 #. @node in Documentation/de/user/lilypond.tely
+#. @node in Documentation/ja/user/lilypond-learning.tely
+#. @node in Documentation/ja/user/lilypond-program.tely
 msgid "Top"
 msgstr "Top"
 
@@ -182,30 +185,38 @@ msgstr "GNU LilyPond -- Das Handbuch zum Lernen"
 #. @appendix in Documentation/de/user/lilypond-program.tely
 #. @node in Documentation/de/user/lilypond.tely
 #. @appendix in Documentation/de/user/lilypond.tely
+#. @node in Documentation/ja/user/lilypond-learning.tely
+#. @appendix in Documentation/ja/user/lilypond-learning.tely
+#. @node in Documentation/ja/user/lilypond-program.tely
+#. @appendix in Documentation/ja/user/lilypond-program.tely
 msgid "LilyPond index"
 msgstr "LilyPond-Index"
 
 #. @subsubheading in Documentation/user/macros.itexi
 #. @subsubheading in Documentation/fr/user/macros.itexi
 #. @subsubheading in Documentation/de/user/macros.itexi
+#. @subsubheading in Documentation/ja/user/macros.itexi
 msgid "Predefined commands"
 msgstr "Vordefinierte Befehle"
 
 #. @subsubheading in Documentation/user/macros.itexi
 #. @subsubheading in Documentation/fr/user/macros.itexi
 #. @subsubheading in Documentation/de/user/macros.itexi
+#. @subsubheading in Documentation/ja/user/macros.itexi
 msgid "Selected Snippets"
 msgstr "Ausgewählte Schnipsel"
 
 #. @subsubheading in Documentation/user/macros.itexi
 #. @subsubheading in Documentation/fr/user/macros.itexi
 #. @subsubheading in Documentation/de/user/macros.itexi
+#. @subsubheading in Documentation/ja/user/macros.itexi
 msgid "See also"
 msgstr "Siehe auch"
 
 #. @subsubheading in Documentation/user/macros.itexi
 #. @subsubheading in Documentation/fr/user/macros.itexi
 #. @subsubheading in Documentation/de/user/macros.itexi
+#. @subsubheading in Documentation/ja/user/macros.itexi
 msgid "Known issues and warnings"
 msgstr "Bekannte Probleme und Warnungen"
 
@@ -217,6 +228,8 @@ msgstr "Bekannte Probleme und Warnungen"
 #. @unnumbered in Documentation/es/user/preface.itely
 #. @node in Documentation/de/user/preface.itely
 #. @unnumbered in Documentation/de/user/preface.itely
+#. @node in Documentation/ja/user/preface.itely
+#. @unnumbered in Documentation/ja/user/preface.itely
 msgid "Preface"
 msgstr "Vorwort"
 
@@ -228,6 +241,8 @@ msgstr "Vorwort"
 #. @chapter in Documentation/es/user/introduction.itely
 #. @node in Documentation/de/user/introduction.itely
 #. @chapter in Documentation/de/user/introduction.itely
+#. @node in Documentation/ja/user/introduction.itely
+#. @chapter in Documentation/ja/user/introduction.itely
 msgid "Introduction"
 msgstr "Einleitung"
 
@@ -239,6 +254,8 @@ msgstr "Einleitung"
 #. @section in Documentation/es/user/introduction.itely
 #. @node in Documentation/de/user/introduction.itely
 #. @section in Documentation/de/user/introduction.itely
+#. @node in Documentation/ja/user/introduction.itely
+#. @section in Documentation/ja/user/introduction.itely
 msgid "Background"
 msgstr "Hintergrund"
 
@@ -250,6 +267,8 @@ msgstr "Hintergrund"
 #. @unnumberedsubsec in Documentation/es/user/introduction.itely
 #. @node in Documentation/de/user/introduction.itely
 #. @unnumberedsubsec in Documentation/de/user/introduction.itely
+#. @node in Documentation/ja/user/introduction.itely
+#. @unnumberedsubsec in Documentation/ja/user/introduction.itely
 msgid "Engraving"
 msgstr "Notensatz"
 
@@ -261,6 +280,8 @@ msgstr "Notensatz"
 #. @unnumberedsubsec in Documentation/es/user/introduction.itely
 #. @node in Documentation/de/user/introduction.itely
 #. @unnumberedsubsec in Documentation/de/user/introduction.itely
+#. @node in Documentation/ja/user/introduction.itely
+#. @unnumberedsubsec in Documentation/ja/user/introduction.itely
 msgid "Automated engraving"
 msgstr "Automatisierter Notensatz"
 
@@ -272,6 +293,8 @@ msgstr "Automatisierter Notensatz"
 #. @unnumberedsubsec in Documentation/es/user/introduction.itely
 #. @node in Documentation/de/user/introduction.itely
 #. @unnumberedsubsec in Documentation/de/user/introduction.itely
+#. @node in Documentation/ja/user/introduction.itely
+#. @unnumberedsubsec in Documentation/ja/user/introduction.itely
 msgid "What symbols to engrave?"
 msgstr "Welche Symbole?"
 
@@ -283,6 +306,8 @@ msgstr "Welche Symbole?"
 #. @unnumberedsubsec in Documentation/es/user/introduction.itely
 #. @node in Documentation/de/user/introduction.itely
 #. @unnumberedsubsec in Documentation/de/user/introduction.itely
+#. @node in Documentation/ja/user/introduction.itely
+#. @unnumberedsubsec in Documentation/ja/user/introduction.itely
 msgid "Music representation"
 msgstr "Die Darstellung der Musik"
 
@@ -294,6 +319,8 @@ msgstr "Die Darstellung der Musik"
 #. @unnumberedsubsec in Documentation/es/user/introduction.itely
 #. @node in Documentation/de/user/introduction.itely
 #. @unnumberedsubsec in Documentation/de/user/introduction.itely
+#. @node in Documentation/ja/user/introduction.itely
+#. @unnumberedsubsec in Documentation/ja/user/introduction.itely
 msgid "Example applications"
 msgstr "Beispielanwendung"
 
@@ -305,6 +332,8 @@ msgstr "Beispielanwendung"
 #. @section in Documentation/es/user/introduction.itely
 #. @node in Documentation/de/user/introduction.itely
 #. @section in Documentation/de/user/introduction.itely
+#. @node in Documentation/ja/user/introduction.itely
+#. @section in Documentation/ja/user/introduction.itely
 msgid "About the documentation"
 msgstr "Über die Dokumentation"
 
@@ -316,6 +345,8 @@ msgstr "Über die Dokumentation"
 #. @unnumberedsubsec in Documentation/es/user/introduction.itely
 #. @node in Documentation/de/user/introduction.itely
 #. @unnumberedsubsec in Documentation/de/user/introduction.itely
+#. @node in Documentation/ja/user/introduction.itely
+#. @unnumberedsubsec in Documentation/ja/user/introduction.itely
 msgid "About the Learning Manual"
 msgstr "Über das Handbuch zum Lernen (LM)"
 
@@ -327,6 +358,8 @@ msgstr "Über das Handbuch zum Lernen (LM)"
 #. @unnumberedsubsec in Documentation/es/user/introduction.itely
 #. @node in Documentation/de/user/introduction.itely
 #. @unnumberedsubsec in Documentation/de/user/introduction.itely
+#. @node in Documentation/ja/user/introduction.itely
+#. @unnumberedsubsec in Documentation/ja/user/introduction.itely
 msgid "About the Music Glossary"
 msgstr "Über das Glossar (MG)"
 
@@ -338,6 +371,8 @@ msgstr "Über das Glossar (MG)"
 #. @unnumberedsubsec in Documentation/es/user/introduction.itely
 #. @node in Documentation/de/user/introduction.itely
 #. @unnumberedsubsec in Documentation/de/user/introduction.itely
+#. @node in Documentation/ja/user/introduction.itely
+#. @unnumberedsubsec in Documentation/ja/user/introduction.itely
 msgid "About the Notation Reference"
 msgstr "Über die Notationsreferenz (NR)"
 
@@ -349,6 +384,8 @@ msgstr "Über die Notationsreferenz (NR)"
 #. @unnumberedsubsec in Documentation/es/user/introduction.itely
 #. @node in Documentation/de/user/introduction.itely
 #. @unnumberedsubsec in Documentation/de/user/introduction.itely
+#. @node in Documentation/ja/user/introduction.itely
+#. @unnumberedsubsec in Documentation/ja/user/introduction.itely
 msgid "About the Application Usage"
 msgstr "Über die Anwendungsbenutzung (AU)"
 
@@ -360,6 +397,8 @@ msgstr "Über die Anwendungsbenutzung (AU)"
 #. @unnumberedsubsec in Documentation/es/user/introduction.itely
 #. @node in Documentation/de/user/introduction.itely
 #. @unnumberedsubsec in Documentation/de/user/introduction.itely
+#. @node in Documentation/ja/user/introduction.itely
+#. @unnumberedsubsec in Documentation/ja/user/introduction.itely
 msgid "About the Snippet List"
 msgstr "Über die Schnipselliste"
 
@@ -371,6 +410,8 @@ msgstr "Über die Schnipselliste"
 #. @unnumberedsubsec in Documentation/es/user/introduction.itely
 #. @node in Documentation/de/user/introduction.itely
 #. @unnumberedsubsec in Documentation/de/user/introduction.itely
+#. @node in Documentation/ja/user/introduction.itely
+#. @unnumberedsubsec in Documentation/ja/user/introduction.itely
 msgid "About the Internals Reference"
 msgstr "Über die Referenz der Iterna (IR)"
 
@@ -382,6 +423,8 @@ msgstr "Über die Referenz der Iterna (IR)"
 #. @unnumberedsubsec in Documentation/es/user/introduction.itely
 #. @node in Documentation/de/user/introduction.itely
 #. @unnumberedsubsec in Documentation/de/user/introduction.itely
+#. @node in Documentation/ja/user/introduction.itely
+#. @unnumberedsubsec in Documentation/ja/user/introduction.itely
 msgid "Other documentation"
 msgstr "Andere Dokumentation"
 
@@ -417,27 +460,32 @@ msgstr "g ist 5 aufwärts oder 2 runter, also g unter dem b"
 msgid "f is 4 up or 3 down, so is the f below"
 msgstr "f ist 4 aufwärts oder 3 runter, also f unter dem b"
 
-#. Documentation/user/tutorial.itely:1796 (variable)
-#. Documentation/user/working.itely:214 (variable)
-#. Documentation/user/working.itely:229 (variable)
+#. Documentation/user/tutorial.itely:1791 (variable)
+#. Documentation/user/working.itely:233 (variable)
+#. Documentation/user/working.itely:248 (variable)
+#. Documentation/user/pitches.itely:1078 (context id)
 msgid "violin"
 msgstr "Geige"
 
-#. Documentation/user/tutorial.itely:1801 (variable)
+#. Documentation/user/tutorial.itely:1796 (variable)
+#. input/lsr/string-quartet-template-simple.ly:62 (variable)
 msgid "cello"
 msgstr "Cello"
 
-#. Documentation/user/tutorial.itely:1826 (variable)
+#. Documentation/user/tutorial.itely:1821 (variable)
 msgid "tripletA"
 msgstr "TrioleA"
 
-#. Documentation/user/tutorial.itely:1827 (variable)
+#. Documentation/user/tutorial.itely:1822 (variable)
 msgid "barA"
 msgstr "barA"
 
 #. @rglos in Documentation/user/tutorial.itely
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
+#. input/lsr/measure-counter.ly:25 (context id)
+#. input/lsr/measure-counter.ly:32 (context id)
 msgid "foo"
 msgstr "foo"
 
@@ -449,6 +497,8 @@ msgstr "foo"
 #. @chapter in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @chapter in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @chapter in Documentation/ja/user/tutorial.itely
 msgid "Tutorial"
 msgstr "Übung"
 
@@ -460,6 +510,8 @@ msgstr "Übung"
 #. @section in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @section in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @section in Documentation/ja/user/tutorial.itely
 msgid "First steps"
 msgstr "Erste Schritte"
 
@@ -471,6 +523,8 @@ msgstr "Erste Schritte"
 #. @subsection in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "Compiling a file"
 msgstr "Eine Quelldatei übersetzen"
 
@@ -478,6 +532,7 @@ msgstr "Eine Quelldatei übersetzen"
 #. @subheading in Documentation/fr/user/tutorial.itely
 #. @subheading in Documentation/es/user/tutorial.itely
 #. @subheading in Documentation/de/user/tutorial.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Entering music and viewing output"
 msgstr "Eingabe von Noten und Ansicht des Ergebnisses"
 
@@ -485,6 +540,7 @@ msgstr "Eingabe von Noten und Ansicht des Ergebnisses"
 #. @subsubheading in Documentation/fr/user/tutorial.itely
 #. @subsubheading in Documentation/es/user/tutorial.itely
 #. @subsubheading in Documentation/de/user/tutorial.itely
+#. @subsubheading in Documentation/ja/user/tutorial.itely
 msgid "MacOS X"
 msgstr "MacOS X"
 
@@ -492,6 +548,7 @@ msgstr "MacOS X"
 #. @subsubheading in Documentation/fr/user/tutorial.itely
 #. @subsubheading in Documentation/es/user/tutorial.itely
 #. @subsubheading in Documentation/de/user/tutorial.itely
+#. @subsubheading in Documentation/ja/user/tutorial.itely
 msgid "Windows"
 msgstr "Windows"
 
@@ -499,6 +556,7 @@ msgstr "Windows"
 #. @subsubheading in Documentation/fr/user/tutorial.itely
 #. @subsubheading in Documentation/es/user/tutorial.itely
 #. @subsubheading in Documentation/de/user/tutorial.itely
+#. @subsubheading in Documentation/ja/user/tutorial.itely
 msgid "UNIX"
 msgstr "UNIX"
 
@@ -510,6 +568,8 @@ msgstr "UNIX"
 #. @subsection in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "Simple notation"
 msgstr "Einfache Notation"
 
@@ -524,6 +584,7 @@ msgstr "Einfache Notation"
 #. @subheading in Documentation/de/user/tutorial.itely
 #. @node in Documentation/de/user/pitches.itely
 #. @section in Documentation/de/user/pitches.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Pitches"
 msgstr "Tonhöhen"
 
@@ -531,6 +592,7 @@ msgstr "Tonhöhen"
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "pitch"
 msgstr "Tonhöhe"
 
@@ -541,6 +603,7 @@ msgstr "Tonhöhe"
 #. @rglos in Documentation/es/user/pitches.itely
 #. @rglos in Documentation/de/user/tutorial.itely
 #. @rglos in Documentation/de/user/pitches.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "interval"
 msgstr "Intervalle"
 
@@ -548,6 +611,7 @@ msgstr "Intervalle"
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "scale"
 msgstr "Tonleiter"
 
@@ -555,6 +619,7 @@ msgstr "Tonleiter"
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "middle C"
 msgstr "eingestrichenes C"
 
@@ -562,6 +627,7 @@ msgstr "eingestrichenes C"
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "octave"
 msgstr "Oktave"
 
@@ -569,12 +635,14 @@ msgstr "Oktave"
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "accidental"
 msgstr "Versetzungszeichen"
 
 #. @subheading in Documentation/user/tutorial.itely
 #. @subheading in Documentation/es/user/tutorial.itely
 #. @subheading in Documentation/de/user/tutorial.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Durations (rhythms)"
 msgstr "Tondauern (Rhythmen)"
 
@@ -582,6 +650,7 @@ msgstr "Tondauern (Rhythmen)"
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "beam"
 msgstr "Balken"
 
@@ -589,6 +658,7 @@ msgstr "Balken"
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "duration"
 msgstr "Tondauer"
 
@@ -596,6 +666,7 @@ msgstr "Tondauer"
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "whole note"
 msgstr "ganze Note"
 
@@ -603,6 +674,7 @@ msgstr "ganze Note"
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "half note"
 msgstr "halbe Note"
 
@@ -610,6 +682,7 @@ msgstr "halbe Note"
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "quarter note"
 msgstr "Viertelnote"
 
@@ -617,6 +690,7 @@ msgstr "Viertelnote"
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "dotted note"
 msgstr "punktierte Note"
 
@@ -631,12 +705,14 @@ msgstr "punktierte Note"
 #. @subheading in Documentation/de/user/tutorial.itely
 #. @node in Documentation/de/user/rhythms.itely
 #. @unnumberedsubsubsec in Documentation/de/user/rhythms.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Rests"
 msgstr "Pausen"
 
 #. @rglos in Documentation/user/tutorial.itely
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "rest"
 msgstr "Pause"
 
@@ -651,6 +727,7 @@ msgstr "Pause"
 #. @subheading in Documentation/de/user/tutorial.itely
 #. @node in Documentation/de/user/rhythms.itely
 #. @unnumberedsubsubsec in Documentation/de/user/rhythms.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Time signature"
 msgstr "Taktangabe"
 
@@ -660,6 +737,8 @@ msgstr "Taktangabe"
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/es/user/rhythms.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/de/user/rhythms.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "time signature"
 msgstr "Taktangabe"
 
@@ -675,18 +754,21 @@ msgstr "Taktangabe"
 #. @subheading in Documentation/de/user/tutorial.itely
 #. @node in Documentation/de/user/pitches.itely
 #. @unnumberedsubsubsec in Documentation/de/user/pitches.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Clef"
 msgstr "Notenschlüssel"
 
 #. @rglos in Documentation/user/tutorial.itely
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "clef"
 msgstr "Notenschlüssel"
 
 #. @subheading in Documentation/user/tutorial.itely
 #. @subheading in Documentation/es/user/tutorial.itely
 #. @subheading in Documentation/de/user/tutorial.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "All together"
 msgstr "Alles zusammen"
 
@@ -698,6 +780,8 @@ msgstr "Alles zusammen"
 #. @subsection in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "Working on input files"
 msgstr "Arbeiten an Eingabe-Dateien"
 
@@ -709,12 +793,15 @@ msgstr "Arbeiten an Eingabe-Dateien"
 #. @subsection in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "How to read the manual"
 msgstr "Wie soll das Handbuch gelesen werden"
 
 #. @subheading in Documentation/user/tutorial.itely
 #. @subheading in Documentation/es/user/tutorial.itely
 #. @subheading in Documentation/de/user/tutorial.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Clickable examples"
 msgstr "Anklickbare Beispiele"
 
@@ -726,6 +813,8 @@ msgstr "Anklickbare Beispiele"
 #. @section in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @section in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @section in Documentation/ja/user/tutorial.itely
 msgid "Single staff notation"
 msgstr "Notation auf einem System"
 
@@ -737,6 +826,8 @@ msgstr "Notation auf einem System"
 #. @subsection in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "Accidentals and key signatures"
 msgstr "Versetzungszeichen und Tonartbezeichnung (Vorzeichen)"
 
@@ -752,6 +843,7 @@ msgstr "Versetzungszeichen und Tonartbezeichnung (Vorzeichen)"
 #. @subheading in Documentation/de/user/tutorial.itely
 #. @node in Documentation/de/user/pitches.itely
 #. @unnumberedsubsubsec in Documentation/de/user/pitches.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Accidentals"
 msgstr "Versetzungszeichen"
 
@@ -762,6 +854,7 @@ msgstr "Versetzungszeichen"
 #. @rglos in Documentation/es/user/pitches.itely
 #. @rglos in Documentation/de/user/tutorial.itely
 #. @rglos in Documentation/de/user/pitches.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "sharp"
 msgstr "Kreuz"
 
@@ -772,6 +865,7 @@ msgstr "Kreuz"
 #. @rglos in Documentation/es/user/pitches.itely
 #. @rglos in Documentation/de/user/tutorial.itely
 #. @rglos in Documentation/de/user/pitches.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "flat"
 msgstr "B"
 
@@ -782,6 +876,7 @@ msgstr "B"
 #. @rglos in Documentation/es/user/pitches.itely
 #. @rglos in Documentation/de/user/tutorial.itely
 #. @rglos in Documentation/de/user/pitches.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "double sharp"
 msgstr "Doppelkreuz"
 
@@ -792,6 +887,7 @@ msgstr "Doppelkreuz"
 #. @rglos in Documentation/es/user/pitches.itely
 #. @rglos in Documentation/de/user/tutorial.itely
 #. @rglos in Documentation/de/user/pitches.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "double flat"
 msgstr "Doppel-B"
 
@@ -799,6 +895,7 @@ msgstr "Doppel-B"
 #. @subheading in Documentation/fr/user/tutorial.itely
 #. @subheading in Documentation/es/user/tutorial.itely
 #. @subheading in Documentation/de/user/tutorial.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Key signatures"
 msgstr "Tonartbezeichnungen (Vorzeichen)"
 
@@ -806,6 +903,7 @@ msgstr "Tonartbezeichnungen (Vorzeichen)"
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "key signature"
 msgstr "Tonartbezeichnung"
 
@@ -813,6 +911,7 @@ msgstr "Tonartbezeichnung"
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "major"
 msgstr "Dur"
 
@@ -820,6 +919,7 @@ msgstr "Dur"
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "minor"
 msgstr "Moll"
 
@@ -827,6 +927,7 @@ msgstr "Moll"
 #. @subheading in Documentation/fr/user/tutorial.itely
 #. @subheading in Documentation/es/user/tutorial.itely
 #. @subheading in Documentation/de/user/tutorial.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Warning: key signatures and pitches"
 msgstr "Warnung: Tonartbezeichnungen und Tonhöhen"
 
@@ -834,6 +935,7 @@ msgstr "Warnung: Tonartbezeichnungen und Tonhöhen"
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "natural"
 msgstr "Auflösungszeichen"
 
@@ -841,6 +943,7 @@ msgstr "Auflösungszeichen"
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "transposition"
 msgstr "Transposition"
 
@@ -851,6 +954,7 @@ msgstr "Transposition"
 #. @rglos in Documentation/es/user/pitches.itely
 #. @rglos in Documentation/de/user/tutorial.itely
 #. @rglos in Documentation/de/user/pitches.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "Pitch names"
 msgstr "Tonhöhenbezeichnungen"
 
@@ -862,6 +966,8 @@ msgstr "Tonhöhenbezeichnungen"
 #. @subsection in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "Ties and slurs"
 msgstr "Bindebögen und Legatobögen"
 
@@ -877,6 +983,7 @@ msgstr "Bindebögen und Legatobögen"
 #. @subheading in Documentation/de/user/tutorial.itely
 #. @node in Documentation/de/user/rhythms.itely
 #. @unnumberedsubsubsec in Documentation/de/user/rhythms.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Ties"
 msgstr "Bindebögen"
 
@@ -887,6 +994,8 @@ msgstr "Bindebögen"
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/es/user/rhythms.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/de/user/rhythms.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "tie"
 msgstr "Bindebogen"
 
@@ -902,6 +1011,7 @@ msgstr "Bindebogen"
 #. @subheading in Documentation/de/user/tutorial.itely
 #. @node in Documentation/de/user/expressive.itely
 #. @unnumberedsubsubsec in Documentation/de/user/expressive.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Slurs"
 msgstr "Legatobögen"
 
@@ -912,6 +1022,7 @@ msgstr "Legatobögen"
 #. @rglos in Documentation/es/user/expressive.itely
 #. @rglos in Documentation/de/user/tutorial.itely
 #. @rglos in Documentation/de/user/expressive.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "slur"
 msgstr "Legatobogen"
 
@@ -927,6 +1038,7 @@ msgstr "Legatobogen"
 #. @subheading in Documentation/de/user/tutorial.itely
 #. @node in Documentation/de/user/expressive.itely
 #. @unnumberedsubsubsec in Documentation/de/user/expressive.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Phrasing slurs"
 msgstr "Phrasierungsbögen"
 
@@ -934,6 +1046,7 @@ msgstr "Phrasierungsbögen"
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "phrasing"
 msgstr "Phrasierung"
 
@@ -941,6 +1054,7 @@ msgstr "Phrasierung"
 #. @subheading in Documentation/fr/user/tutorial.itely
 #. @subheading in Documentation/es/user/tutorial.itely
 #. @subheading in Documentation/de/user/tutorial.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Warnings: slurs vs. ties"
 msgstr "Warnung: Bindebögen sind nicht Legatobögen"
 
@@ -948,6 +1062,7 @@ msgstr "Warnung: Bindebögen sind nicht Legatobögen"
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "articulation"
 msgstr "Artikulationszeichen"
 
@@ -959,6 +1074,8 @@ msgstr "Artikulationszeichen"
 #. @subsection in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "Articulation and dynamics"
 msgstr "Artikulationszeichen und Lautstärke"
 
@@ -966,6 +1083,7 @@ msgstr "Artikulationszeichen und Lautstärke"
 #. @subheading in Documentation/fr/user/tutorial.itely
 #. @subheading in Documentation/es/user/tutorial.itely
 #. @subheading in Documentation/de/user/tutorial.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Articulations"
 msgstr "Artikulationszeichen"
 
@@ -981,6 +1099,7 @@ msgstr "Artikulationszeichen"
 #. @subheading in Documentation/de/user/tutorial.itely
 #. @node in Documentation/de/user/wind.itely
 #. @unnumberedsubsubsec in Documentation/de/user/wind.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Fingerings"
 msgstr "Fingersatz"
 
@@ -988,6 +1107,7 @@ msgstr "Fingersatz"
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "fingering"
 msgstr "Fingersatz"
 
@@ -996,6 +1116,7 @@ msgstr "Fingersatz"
 #. @node in Documentation/user/expressive.itely
 #. @unnumberedsubsubsec in Documentation/user/expressive.itely
 #. @subheading in Documentation/fr/user/tutorial.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @node in Documentation/fr/user/expressive.itely
 #. @unnumberedsubsubsec in Documentation/fr/user/expressive.itely
 #. @subheading in Documentation/es/user/tutorial.itely
@@ -1006,6 +1127,8 @@ msgstr "Fingersatz"
 #. @subheading in Documentation/de/user/tweaks.itely
 #. @node in Documentation/de/user/expressive.itely
 #. @unnumberedsubsubsec in Documentation/de/user/expressive.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "Dynamics"
 msgstr "Dynamik"
 
@@ -1013,6 +1136,8 @@ msgstr "Dynamik"
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
+#. input/lsr/piano-template-with-centered-dynamics.ly:52 (variable)
 msgid "dynamics"
 msgstr "Dynamik"
 
@@ -1023,6 +1148,7 @@ msgstr "Dynamik"
 #. @rglos in Documentation/es/user/expressive.itely
 #. @rglos in Documentation/de/user/tutorial.itely
 #. @rglos in Documentation/de/user/expressive.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "crescendo"
 msgstr "Crescendo"
 
@@ -1033,6 +1159,7 @@ msgstr "Crescendo"
 #. @rglos in Documentation/es/user/expressive.itely
 #. @rglos in Documentation/de/user/tutorial.itely
 #. @rglos in Documentation/de/user/expressive.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "decrescendo"
 msgstr "Decrescendo"
 
@@ -1044,6 +1171,8 @@ msgstr "Decrescendo"
 #. @subsection in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "Adding text"
 msgstr "Text hinzufügen"
 
@@ -1055,6 +1184,8 @@ msgstr "Text hinzufügen"
 #. @subsection in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "Automatic and manual beams"
 msgstr "Automatische und manuelle Balken"
 
@@ -1066,6 +1197,8 @@ msgstr "Automatische und manuelle Balken"
 #. @subsection in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "Advanced rhythmic commands"
 msgstr "Zusätzliche rhythmische Befehle"
 
@@ -1073,6 +1206,7 @@ msgstr "Zusätzliche rhythmische Befehle"
 #. @subheading in Documentation/fr/user/tutorial.itely
 #. @subheading in Documentation/es/user/tutorial.itely
 #. @subheading in Documentation/de/user/tutorial.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Partial measure"
 msgstr "Auftakt"
 
@@ -1081,6 +1215,8 @@ msgstr "Auftakt"
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/es/user/rhythms.itely
+#. @rglos in Documentation/de/user/rhythms.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "anacrusis"
 msgstr "Auftakt"
 
@@ -1096,6 +1232,7 @@ msgstr "Auftakt"
 #. @subheading in Documentation/de/user/tutorial.itely
 #. @node in Documentation/de/user/rhythms.itely
 #. @unnumberedsubsubsec in Documentation/de/user/rhythms.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Tuplets"
 msgstr "Andere rhythmische Aufteilungen"
 
@@ -1105,6 +1242,8 @@ msgstr "Andere rhythmische Aufteilungen"
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/es/user/rhythms.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/de/user/rhythms.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "note value"
 msgstr "Notenwert"
 
@@ -1114,6 +1253,8 @@ msgstr "Notenwert"
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/es/user/rhythms.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/de/user/rhythms.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "triplet"
 msgstr "Triole"
 
@@ -1129,6 +1270,7 @@ msgstr "Triole"
 #. @subheading in Documentation/de/user/tutorial.itely
 #. @node in Documentation/de/user/rhythms.itely
 #. @unnumberedsubsubsec in Documentation/de/user/rhythms.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Grace notes"
 msgstr "Verzierungen"
 
@@ -1138,6 +1280,8 @@ msgstr "Verzierungen"
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/es/user/rhythms.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/de/user/rhythms.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "grace notes"
 msgstr "Verzierungen"
 
@@ -1147,6 +1291,8 @@ msgstr "Verzierungen"
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/es/user/rhythms.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/de/user/rhythms.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "acciaccatura"
 msgstr "Vorschlag"
 
@@ -1156,6 +1302,8 @@ msgstr "Vorschlag"
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/es/user/rhythms.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/de/user/rhythms.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "appoggiatura"
 msgstr "Vorhalt"
 
@@ -1167,6 +1315,8 @@ msgstr "Vorhalt"
 #. @section in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @section in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @section in Documentation/ja/user/tutorial.itely
 msgid "Multiple notes at once"
 msgstr "Mehrere Noten auf einmal"
 
@@ -1178,6 +1328,8 @@ msgstr "Mehrere Noten auf einmal"
 #. @subsection in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "Music expressions explained"
 msgstr "Musikalische Ausdrücke erklärt"
 
@@ -1185,6 +1337,7 @@ msgstr "Musikalische Ausdrücke erklärt"
 #. @subheading in Documentation/fr/user/tutorial.itely
 #. @subheading in Documentation/es/user/tutorial.itely
 #. @subheading in Documentation/de/user/tutorial.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Analogy: mathematical expressions"
 msgstr "Analogie: mathematische Ausdrücke"
 
@@ -1192,6 +1345,7 @@ msgstr "Analogie: mathematische Ausdrücke"
 #. @subheading in Documentation/fr/user/tutorial.itely
 #. @subheading in Documentation/es/user/tutorial.itely
 #. @subheading in Documentation/de/user/tutorial.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Simultaneous music expressions: multiple staves"
 msgstr "Gleichzeitige musikalische Ausdrücke: mehrere Notensysteme"
 
@@ -1202,6 +1356,7 @@ msgstr "Gleichzeitige musikalische Ausdrücke: mehrere Notensysteme"
 #. @rglos in Documentation/es/user/simultaneous.itely
 #. @rglos in Documentation/de/user/tutorial.itely
 #. @rglos in Documentation/de/user/simultaneous.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "polyphony"
 msgstr "Polyphonie"
 
@@ -1209,6 +1364,7 @@ msgstr "Polyphonie"
 #. @subheading in Documentation/fr/user/tutorial.itely
 #. @subheading in Documentation/es/user/tutorial.itely
 #. @subheading in Documentation/de/user/tutorial.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Simultaneous music expressions: single staff"
 msgstr "Gleichzeitige musikalische Ausdrücke: ein Notensystem"
 
@@ -1220,6 +1376,8 @@ msgstr "Gleichzeitige musikalische Ausdrücke: ein Notensystem"
 #. @subsection in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "Multiple staves"
 msgstr "Mehrere Notensysteme"
 
@@ -1231,6 +1389,8 @@ msgstr "Mehrere Notensysteme"
 #. @subsection in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "Staff groups"
 msgstr "Notensysteme gruppieren"
 
@@ -1240,6 +1400,8 @@ msgstr "Notensysteme gruppieren"
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/es/user/staff.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/de/user/staff.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "brace"
 msgstr "Klammer"
 
@@ -1251,6 +1413,8 @@ msgstr "Klammer"
 #. @subsection in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "Combining notes into chords"
 msgstr "Noten zu Akkorden verbinden"
 
@@ -1263,6 +1427,8 @@ msgstr "Noten zu Akkorden verbinden"
 #. @rglos in Documentation/es/user/chords.itely
 #. @rglos in Documentation/de/user/tutorial.itely
 #. @rglos in Documentation/de/user/simultaneous.itely
+#. @rglos in Documentation/de/user/chords.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "chord"
 msgstr "Akkord"
 
@@ -1274,6 +1440,8 @@ msgstr "Akkord"
 #. @subsection in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "Single staff polyphony"
 msgstr "Mehrstimmigkeit in einem System"
 
@@ -1285,6 +1453,8 @@ msgstr "Mehrstimmigkeit in einem System"
 #. @section in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @section in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @section in Documentation/ja/user/tutorial.itely
 msgid "Songs"
 msgstr "Lieder"
 
@@ -1304,6 +1474,8 @@ msgstr "Lieder"
 #. @subsection in Documentation/de/user/tutorial.itely
 #. @node in Documentation/de/user/vocal.itely
 #. @unnumberedsubsubsec in Documentation/de/user/vocal.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "Setting simple songs"
 msgstr "Einfache Lieder setzen"
 
@@ -1311,6 +1483,7 @@ msgstr "Einfache Lieder setzen"
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "lyrics"
 msgstr "Gesangtext"
 
@@ -1330,6 +1503,8 @@ msgstr "Gesangtext"
 #. @subsection in Documentation/de/user/tutorial.itely
 #. @node in Documentation/de/user/vocal.itely
 #. @subsection in Documentation/de/user/vocal.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "Aligning lyrics to a melody"
 msgstr "Text an einer Melodie ausrichten"
 
@@ -1337,6 +1512,7 @@ msgstr "Text an einer Melodie ausrichten"
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "melisma"
 msgstr "Melisma"
 
@@ -1344,6 +1520,7 @@ msgstr "Melisma"
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "extender line"
 msgstr "Fülllinie"
 
@@ -1355,6 +1532,8 @@ msgstr "Fülllinie"
 #. @subsection in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "Lyrics to multiple staves"
 msgstr "Text zu mehreren Systemen"
 
@@ -1366,6 +1545,8 @@ msgstr "Text zu mehreren Systemen"
 #. @section in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @section in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @section in Documentation/ja/user/tutorial.itely
 msgid "Final touches"
 msgstr "Letzter Schliff"
 
@@ -1377,6 +1558,8 @@ msgstr "Letzter Schliff"
 #. @subsection in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "Organizing pieces with variables"
 msgstr "Stücke durch Bezeichner organisieren"
 
@@ -1388,6 +1571,8 @@ msgstr "Stücke durch Bezeichner organisieren"
 #. @subsection in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "Version number"
 msgstr "Versionsnummer"
 
@@ -1399,6 +1584,8 @@ msgstr "Versionsnummer"
 #. @subsection in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "Adding titles"
 msgstr "Titel hinzufügen"
 
@@ -1410,6 +1597,8 @@ msgstr "Titel hinzufügen"
 #. @subsection in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "Absolute note names"
 msgstr "Absolute Notenbezeichnungen"
 
@@ -1421,32 +1610,119 @@ msgstr "Absolute Notenbezeichnungen"
 #. @subsection in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "After the tutorial"
 msgstr "Nach der Übung"
 
-#. Documentation/user/fundamental.itely:361 (variable)
-#. Documentation/user/vocal.itely:1222 (variable)
-#. Documentation/user/vocal.itely:1264 (variable)
-msgid "melody"
-msgstr "Melodie"
+#. Documentation/user/fundamental.itely:324 (context id)
+#. Documentation/user/fundamental.itely:367 (context id)
+#. input/lsr/piano-template-with-centered-lyrics.ly:55 (context id)
+msgid "singer"
+msgstr "Sänger"
+
+#. Documentation/user/fundamental.itely:325 (context id)
+#. Documentation/user/fundamental.itely:368 (context id)
+msgid "vocal"
+msgstr "Gesang"
+
+#. Documentation/user/fundamental.itely:328 (context id)
+#. Documentation/user/fundamental.itely:371 (context id)
+#. input/lsr/jazz-combo-template.ly:218 (variable)
+#. input/lsr/jazz-combo-template.ly:278 (context id)
+msgid "piano"
+msgstr "Klavier"
 
+#. Documentation/user/fundamental.itely:329 (context id)
 #. Documentation/user/fundamental.itely:362 (variable)
-#. Documentation/user/vocal.itely:1045 (variable)
-#. Documentation/user/vocal.itely:1227 (variable)
-#. Documentation/user/vocal.itely:1268 (variable)
-msgid "text"
-msgstr "Text"
-
-#. Documentation/user/fundamental.itely:363 (variable)
+#. Documentation/user/fundamental.itely:372 (context id)
 #. Documentation/user/fundamental.itely:2669 (variable)
+#. Documentation/user/fundamental.itely:2711 (context id)
+#. input/lsr/changing-the-number-of-lines-in-a-staff.ly:19 (variable)
+#. input/lsr/jazz-combo-template.ly:221 (context id)
+#. input/lsr/piano-template-simple.ly:32 (variable)
+#. input/lsr/piano-template-simple.ly:51 (context id)
+#. input/lsr/piano-template-with-centered-dynamics.ly:42 (variable)
+#. input/lsr/piano-template-with-centered-lyrics.ly:33 (variable)
+#. input/lsr/piano-template-with-centered-lyrics.ly:55 (context id)
+#. input/lsr/piano-template-with-melody-and-lyrics.ly:44 (variable)
+#. input/lsr/piano-template-with-melody-and-lyrics.ly:65 (context id)
+#. input/lsr/polyphony-in-tablature.ly:32 (variable)
+#. input/lsr/polyphony-in-tablature.ly:50 (context id)
+#. input/lsr/polyphony-in-tablature.ly:54 (context id)
 msgid "upper"
 msgstr "oben"
 
-#. Documentation/user/fundamental.itely:364 (variable)
+#. Documentation/user/fundamental.itely:330 (context id)
+#. Documentation/user/fundamental.itely:363 (variable)
+#. Documentation/user/fundamental.itely:373 (context id)
 #. Documentation/user/fundamental.itely:2676 (variable)
+#. Documentation/user/fundamental.itely:2712 (context id)
+#. input/lsr/changing-the-number-of-lines-in-a-staff.ly:23 (variable)
+#. input/lsr/jazz-combo-template.ly:222 (context id)
+#. input/lsr/piano-template-simple.ly:40 (variable)
+#. input/lsr/piano-template-simple.ly:52 (context id)
+#. input/lsr/piano-template-with-centered-dynamics.ly:47 (variable)
+#. input/lsr/piano-template-with-centered-lyrics.ly:41 (variable)
+#. input/lsr/piano-template-with-centered-lyrics.ly:57 (context id)
+#. input/lsr/piano-template-with-melody-and-lyrics.ly:52 (variable)
+#. input/lsr/piano-template-with-melody-and-lyrics.ly:66 (context id)
+#. input/lsr/polyphony-in-tablature.ly:39 (variable)
+#. input/lsr/polyphony-in-tablature.ly:51 (context id)
+#. input/lsr/polyphony-in-tablature.ly:55 (context id)
 msgid "lower"
 msgstr "unten"
 
+#. Documentation/user/fundamental.itely:360 (variable)
+#. Documentation/user/simultaneous.itely:241 (context id)
+#. Documentation/user/vocal.itely:571 (context id)
+#. Documentation/user/vocal.itely:803 (context id)
+#. Documentation/user/vocal.itely:824 (context id)
+#. Documentation/user/vocal.itely:1224 (variable)
+#. Documentation/user/vocal.itely:1266 (variable)
+#. Documentation/user/ancient.itely:2413 (context id)
+#. Documentation/user/ancient.itely:2452 (context id)
+#. input/lsr/adjusting-lyrics-vertical-spacing.ly:32 (context id)
+#. input/lsr/adjusting-lyrics-vertical-spacing.ly:43 (context id)
+#. input/lsr/ancient-notation-template----modern-transcription-of-gregorian-music.ly:50 (context id)
+#. input/lsr/demo-midiinstruments.ly:28 (variable)
+#. input/lsr/formatting-lyrics-syllables.ly:28 (context id)
+#. input/lsr/guitar-strum-rhythms.ly:53 (context id)
+#. input/lsr/heavily-customized-polymetric-time-signatures.ly:37 (variable)
+#. input/lsr/piano-template-with-melody-and-lyrics.ly:32 (variable)
+#. input/lsr/single-staff-template-with-notes,-lyrics,-and-chords.ly:32 (variable)
+#. input/lsr/single-staff-template-with-notes-and-chords.ly:33 (variable)
+#. input/lsr/single-staff-template-with-notes-and-lyrics.ly:45 (variable)
+#. input/lsr/single-staff-template-with-only-notes.ly:37 (variable)
+#. input/lsr/vertically-centered-common-lyrics.ly:44 (variable)
+msgid "melody"
+msgstr "Melodie"
+
+#. Documentation/user/fundamental.itely:361 (variable)
+#. Documentation/user/vocal.itely:1051 (variable)
+#. Documentation/user/vocal.itely:1229 (variable)
+#. Documentation/user/vocal.itely:1270 (variable)
+#. input/lsr/piano-template-with-centered-lyrics.ly:49 (variable)
+#. input/lsr/piano-template-with-melody-and-lyrics.ly:40 (variable)
+#. input/lsr/single-staff-template-with-notes,-lyrics,-and-chords.ly:40 (variable)
+#. input/lsr/single-staff-template-with-notes-and-lyrics.ly:53 (variable)
+msgid "text"
+msgstr "Text"
+
+#. Documentation/user/fundamental.itely:443 (context id)
+#. Documentation/user/staff.itely:531 (context id)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:79 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:115 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:131 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:152 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:167 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:188 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:203 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:219 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:235 (comment)
+msgid "main"
+msgstr "haupt"
+
 #. Documentation/user/fundamental.itely:632 (comment)
 msgid "Voice \\\"1\\\"                  Voice \\\"2\\\""
 msgstr "Stimme \\\"1\\\"                 Stimme \\\"2\\\""
@@ -1474,16 +1750,16 @@ msgstr ""
 "Stimme·\\\"1\\\"··············Stimme·\\\"2\\\"            Stimme \\\"3\\\""
 
 #. Documentation/user/fundamental.itely:711 (comment)
-#. Documentation/user/simultaneous.itely:737 (comment)
-#. Documentation/user/simultaneous.itely:762 (comment)
-#. Documentation/user/simultaneous.itely:789 (comment)
+#. Documentation/user/simultaneous.itely:743 (comment)
+#. Documentation/user/simultaneous.itely:768 (comment)
+#. Documentation/user/simultaneous.itely:795 (comment)
 msgid "Bar 1"
 msgstr "Takt 1"
 
 #. Documentation/user/fundamental.itely:722 (comment)
-#. Documentation/user/simultaneous.itely:742 (comment)
-#. Documentation/user/simultaneous.itely:767 (comment)
-#. Documentation/user/simultaneous.itely:795 (comment)
+#. Documentation/user/simultaneous.itely:748 (comment)
+#. Documentation/user/simultaneous.itely:773 (comment)
+#. Documentation/user/simultaneous.itely:801 (comment)
 msgid "Bar 2"
 msgstr "Takt 2"
 
@@ -1551,11 +1827,38 @@ msgstr "Hälse usw. nach oben ausrichten"
 msgid "Initiate first voice"
 msgstr "Erste Stimme einrichten"
 
+#. Documentation/user/fundamental.itely:1199 (context id)
+#. Documentation/user/fundamental.itely:2441 (context id)
+#. Documentation/user/vocal.itely:506 (context id)
+#. Documentation/user/vocal.itely:1235 (context id)
+#. Documentation/user/vocal.itely:1276 (context id)
+#. Documentation/user/keyboards.itely:338 (context id)
+#. Documentation/user/fretted-strings.itely:246 (context id)
+#. input/lsr/adding-fingerings-to-tablatures.ly:23 (variable)
+#. input/lsr/jazz-combo-template.ly:204 (context id)
+#. input/lsr/jazz-combo-template.ly:213 (context id)
+#. input/lsr/single-staff-template-with-notes,-lyrics,-and-chords.ly:54 (context id)
+#. input/lsr/single-staff-template-with-notes-and-lyrics.ly:59 (context id)
+msgid "one"
+msgstr "eins"
+
 #. Documentation/user/fundamental.itely:1242 (variable)
 #. Documentation/user/fundamental.itely:2646 (variable)
-#. Documentation/user/tweaks.itely:3268 (variable)
-#. Documentation/user/simultaneous.itely:783 (variable)
+#. Documentation/user/tweaks.itely:3502 (variable)
+#. Documentation/user/simultaneous.itely:789 (variable)
 #. Documentation/user/percussion.itely:497 (variable)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:59 (variable)
+#. input/lsr/incipit.ly:57 (variable)
+#. input/lsr/jazz-combo-template.ly:74 (variable)
+#. input/lsr/mensurstriche-layout-bar-lines-between-the-staves.ly:29 (variable)
+#. input/lsr/piano-template-with-centered-dynamics.ly:37 (variable)
+#. input/lsr/printing-music-with-different-time-signatures.ly:25 (variable)
+#. input/lsr/string-quartet-template-simple.ly:29 (variable)
+#. input/lsr/string-quartet-template-with-separate-parts.ly:80 (variable)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:30 (variable)
+#. input/lsr/vocal-ensemble-template-with-automatic-piano-reduction.ly:46 (variable)
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:37 (variable)
+#. input/lsr/vocal-ensemble-template.ly:42 (variable)
 msgid "global"
 msgstr "global"
 
@@ -1575,6 +1878,14 @@ msgstr "SopEinsText"
 msgid "SopTwoLyrics"
 msgstr "SoprZweiText"
 
+#. Documentation/user/fundamental.itely:1255 (context id)
+msgid "SopOne"
+msgstr "SoprEins"
+
+#. Documentation/user/fundamental.itely:1264 (context id)
+msgid "SopTwo"
+msgstr "SoprZwei"
+
 #. Documentation/user/fundamental.itely:1296 (variable)
 #. Documentation/user/fundamental.itely:2864 (variable)
 msgid "TimeKey"
@@ -1585,40 +1896,63 @@ msgid "SopMusic"
 msgstr "SoprNoten"
 
 #. Documentation/user/fundamental.itely:1298 (variable)
-#. Documentation/user/tweaks.itely:3270 (variable)
+#. Documentation/user/tweaks.itely:3504 (variable)
 msgid "AltoMusic"
 msgstr "AltNoten"
 
 #. Documentation/user/fundamental.itely:1299 (variable)
-#. Documentation/user/tweaks.itely:3271 (variable)
+#. Documentation/user/tweaks.itely:3505 (variable)
 msgid "TenorMusic"
 msgstr "TenorNoten"
 
 #. Documentation/user/fundamental.itely:1300 (variable)
-#. Documentation/user/tweaks.itely:3272 (variable)
+#. Documentation/user/tweaks.itely:3506 (variable)
 msgid "BassMusic"
 msgstr "BassNoten"
 
 #. Documentation/user/fundamental.itely:1301 (variable)
-#. Documentation/user/tweaks.itely:3273 (variable)
+#. Documentation/user/tweaks.itely:3507 (variable)
 msgid "VerseOne"
 msgstr "StropheEins"
 
 #. Documentation/user/fundamental.itely:1303 (variable)
-#. Documentation/user/tweaks.itely:3274 (variable)
+#. Documentation/user/tweaks.itely:3508 (variable)
 msgid "VerseTwo"
 msgstr "StropheZwei"
 
 #. Documentation/user/fundamental.itely:1305 (variable)
-#. Documentation/user/tweaks.itely:3275 (variable)
+#. Documentation/user/tweaks.itely:3509 (variable)
 msgid "VerseThree"
 msgstr "StropheDrei"
 
 #. Documentation/user/fundamental.itely:1307 (variable)
-#. Documentation/user/tweaks.itely:3276 (variable)
+#. Documentation/user/tweaks.itely:3510 (variable)
 msgid "VerseFour"
 msgstr "StropheVier"
 
+#. Documentation/user/fundamental.itely:1314 (context id)
+msgid "Sop"
+msgstr "Sopr"
+
+#. Documentation/user/fundamental.itely:1315 (context id)
+#. Documentation/user/tweaks.itely:3517 (context id)
+#. Documentation/user/input.itely:961 (context id)
+msgid "Alto"
+msgstr "Alt"
+
+#. Documentation/user/fundamental.itely:1323 (context id)
+#. Documentation/user/tweaks.itely:3525 (context id)
+#. Documentation/user/input.itely:963 (context id)
+msgid "Tenor"
+msgstr "Tenor"
+
+#. Documentation/user/fundamental.itely:1324 (context id)
+#. Documentation/user/tweaks.itely:3526 (context id)
+#. Documentation/user/input.itely:968 (context id)
+#. input/lsr/jazz-combo-template.ly:227 (variable)
+msgid "Bass"
+msgstr "Bass"
+
 #. Documentation/user/fundamental.itely:1350 (variable)
 #. Documentation/user/fundamental.itely:1402 (variable)
 #. Documentation/user/fundamental.itely:1464 (variable)
@@ -1631,6 +1965,14 @@ msgstr "StrophenNoten"
 msgid "versewords"
 msgstr "StrophenText"
 
+#. Documentation/user/fundamental.itely:1361 (context id)
+#. Documentation/user/fundamental.itely:1428 (context id)
+#. Documentation/user/fundamental.itely:1489 (context id)
+#. Documentation/user/vocal.itely:826 (context id)
+#. input/lsr/score-for-diatonic-accordion.ly:59 (variable)
+msgid "verse"
+msgstr "Strophe"
+
 #. Documentation/user/fundamental.itely:1407 (variable)
 #. Documentation/user/fundamental.itely:1469 (variable)
 msgid "refrainnotesA"
@@ -1651,6 +1993,15 @@ msgstr "RefrainTextA"
 msgid "refrainwordsB"
 msgstr "RefrainTextB"
 
+#. Documentation/user/fundamental.itely:1436 (context id)
+#. Documentation/user/fundamental.itely:1509 (context id)
+msgid "refrainB"
+msgstr "RefrainB"
+
+#. Documentation/user/fundamental.itely:1501 (context id)
+msgid "refrainA"
+msgstr "RefrainA"
+
 #. Documentation/user/fundamental.itely:1655 (comment)
 msgid "start of single compound music expression"
 msgstr "Beginn des einen musikalischen Ausdrucks"
@@ -1752,7 +2103,7 @@ msgstr "zur Standardgröße zurückgehen"
 
 #. Documentation/user/fundamental.itely:2420 (variable)
 #. Documentation/user/fundamental.itely:2647 (variable)
-#. Documentation/user/input.itely:907 (variable)
+#. Documentation/user/input.itely:953 (variable)
 msgid "sopranoMusic"
 msgstr "SopranNoten"
 
@@ -1769,29 +2120,47 @@ msgid "sopranoWords"
 msgstr "SopranText"
 
 #. Documentation/user/fundamental.itely:2654 (variable)
-#. Documentation/user/input.itely:908 (variable)
+#. Documentation/user/input.itely:954 (variable)
+#. input/lsr/vocal-ensemble-template-with-automatic-piano-reduction.ly:58 (variable)
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:49 (variable)
+#. input/lsr/vocal-ensemble-template.ly:54 (variable)
 msgid "altoMusic"
 msgstr "AltNoten"
 
 #. Documentation/user/fundamental.itely:2658 (variable)
+#. input/lsr/vocal-ensemble-template-with-automatic-piano-reduction.ly:61 (variable)
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:52 (variable)
+#. input/lsr/vocal-ensemble-template.ly:57 (variable)
 msgid "altoWords"
 msgstr "AltText"
 
 #. Documentation/user/fundamental.itely:2659 (variable)
-#. Documentation/user/input.itely:909 (variable)
+#. Documentation/user/input.itely:955 (variable)
+#. input/lsr/vocal-ensemble-template-with-automatic-piano-reduction.ly:65 (variable)
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:56 (variable)
+#. input/lsr/vocal-ensemble-template.ly:61 (variable)
 msgid "tenorMusic"
 msgstr "TenorNoten"
 
 #. Documentation/user/fundamental.itely:2663 (variable)
+#. input/lsr/vocal-ensemble-template-with-automatic-piano-reduction.ly:68 (variable)
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:59 (variable)
+#. input/lsr/vocal-ensemble-template.ly:64 (variable)
 msgid "tenorWords"
 msgstr "TenorText"
 
 #. Documentation/user/fundamental.itely:2664 (variable)
-#. Documentation/user/input.itely:910 (variable)
+#. Documentation/user/input.itely:956 (variable)
+#. input/lsr/vocal-ensemble-template-with-automatic-piano-reduction.ly:72 (variable)
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:63 (variable)
+#. input/lsr/vocal-ensemble-template.ly:68 (variable)
 msgid "bassMusic"
 msgstr "BassNoten"
 
 #. Documentation/user/fundamental.itely:2668 (variable)
+#. input/lsr/vocal-ensemble-template-with-automatic-piano-reduction.ly:75 (variable)
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:66 (variable)
+#. input/lsr/vocal-ensemble-template.ly:71 (variable)
 msgid "bassWords"
 msgstr "BassText"
 
@@ -1799,6 +2168,38 @@ msgstr "BassText"
 msgid "combine ChoirStaff and PianoStaff in parallel"
 msgstr "ChoirStaff und PianoStaff parallel kombinieren"
 
+#. Documentation/user/fundamental.itely:2687 (context id)
+#. Documentation/user/fundamental.itely:2689 (context id)
+#. input/lsr/vocal-ensemble-template-with-automatic-piano-reduction.ly:84 (context id)
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:73 (context id)
+#. input/lsr/vocal-ensemble-template.ly:79 (context id)
+msgid "sopranos"
+msgstr "Sopran"
+
+#. Documentation/user/fundamental.itely:2692 (context id)
+#. Documentation/user/fundamental.itely:2694 (context id)
+#. input/lsr/vocal-ensemble-template-with-automatic-piano-reduction.ly:85 (context id)
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:74 (context id)
+#. input/lsr/vocal-ensemble-template.ly:83 (context id)
+msgid "altos"
+msgstr "Alt"
+
+#. Documentation/user/fundamental.itely:2697 (context id)
+#. Documentation/user/fundamental.itely:2699 (context id)
+#. input/lsr/vocal-ensemble-template-with-automatic-piano-reduction.ly:91 (context id)
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:84 (context id)
+#. input/lsr/vocal-ensemble-template.ly:92 (context id)
+msgid "tenors"
+msgstr "Tenor"
+
+#. Documentation/user/fundamental.itely:2702 (context id)
+#. Documentation/user/fundamental.itely:2704 (context id)
+#. input/lsr/vocal-ensemble-template-with-automatic-piano-reduction.ly:92 (context id)
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:85 (context id)
+#. input/lsr/vocal-ensemble-template.ly:96 (context id)
+msgid "basses"
+msgstr "Bass"
+
 #. Documentation/user/fundamental.itely:2707 (comment)
 msgid "end ChoirStaff"
 msgstr "Ende ChoirStaff"
@@ -1823,6 +2224,10 @@ msgstr "PedalOrgelNoten"
 msgid "PianoStaff and Pedal Staff must be simultaneous"
 msgstr "PianoStaff und Pedal-System müssen gleichzeitig sein"
 
+#. Documentation/user/fundamental.itely:2884 (context id)
+msgid "ManualOne"
+msgstr "ManualEins"
+
 #. Documentation/user/fundamental.itely:2885 (comment)
 msgid "set time signature and key"
 msgstr "Taktangabe und Tonart setzen"
@@ -1831,6 +2236,10 @@ msgstr "Taktangabe und Tonart setzen"
 msgid "end ManualOne Staff context"
 msgstr "Ende ManualEins Staff-Kontext"
 
+#. Documentation/user/fundamental.itely:2890 (context id)
+msgid "ManualTwo"
+msgstr "ManualZwei"
+
 #. Documentation/user/fundamental.itely:2894 (comment)
 msgid "end ManualTwo Staff context"
 msgstr "Ende ManualZwei Staff-Kontext"
@@ -1839,6 +2248,10 @@ msgstr "Ende ManualZwei Staff-Kontext"
 msgid "end PianoStaff context"
 msgstr "Klaviersystem beenden"
 
+#. Documentation/user/fundamental.itely:2896 (context id)
+msgid "PedalOrgan"
+msgstr "OrgelPedal"
+
 #. Documentation/user/fundamental.itely:2900 (comment)
 msgid "end PedalOrgan Staff context"
 msgstr "Orgelsystem beenden"
@@ -1855,6 +2268,8 @@ msgstr "Partitur-Kontext beenden"
 #. @chapter in Documentation/es/user/fundamental.itely
 #. @node in Documentation/de/user/fundamental.itely
 #. @chapter in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @chapter in Documentation/ja/user/fundamental.itely
 msgid "Fundamental concepts"
 msgstr "Grundbegriffe"
 
@@ -1864,6 +2279,10 @@ msgstr "Grundbegriffe"
 #. @section in Documentation/fr/user/fundamental.itely
 #. @node in Documentation/es/user/fundamental.itely
 #. @section in Documentation/es/user/fundamental.itely
+#. @node in Documentation/de/user/fundamental.itely
+#. @section in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @section in Documentation/ja/user/fundamental.itely
 msgid "How LilyPond input files work"
 msgstr "Wie eine LilyPond-Eingabe-Datei funktioniert"
 
@@ -1875,6 +2294,8 @@ msgstr "Wie eine LilyPond-Eingabe-Datei funktioniert"
 #. @subsection in Documentation/es/user/fundamental.itely
 #. @node in Documentation/de/user/fundamental.itely
 #. @subsection in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @subsection in Documentation/ja/user/fundamental.itely
 msgid "Introduction to the LilyPond file structure"
 msgstr "Einführung in die Dateistruktur von LilyPond"
 
@@ -1886,6 +2307,8 @@ msgstr "Einführung in die Dateistruktur von LilyPond"
 #. @subsection in Documentation/es/user/fundamental.itely
 #. @node in Documentation/de/user/fundamental.itely
 #. @subsection in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @subsection in Documentation/ja/user/fundamental.itely
 msgid "Score is a (single) compound musical expression"
 msgstr "Score ist ein (einziger)  zusammengesetzter musikalischer Ausdruck"
 
@@ -1897,17 +2320,28 @@ msgstr "Score ist ein (einziger)  zusammengesetzter musikalischer Ausdruck"
 #. @subsection in Documentation/es/user/fundamental.itely
 #. @node in Documentation/de/user/fundamental.itely
 #. @subsection in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @subsection in Documentation/ja/user/fundamental.itely
 msgid "Nesting music expressions"
 msgstr "Musikalische Ausdrücke ineinander verschachteln"
 
 #. @rglos in Documentation/user/fundamental.itely
 #. @rglos in Documentation/user/tweaks.itely
+#. Documentation/user/staff.itely:560 (context id)
+#. Documentation/user/staff.itely:573 (context id)
+#. Documentation/user/staff.itely:581 (context id)
+#. Documentation/user/staff.itely:600 (context id)
+#. Documentation/user/staff.itely:613 (context id)
 #. @rglos in Documentation/user/staff.itely
 #. @rglos in Documentation/fr/user/fundamental.itely
+#. @rglos in Documentation/fr/user/tweaks.itely
 #. @rglos in Documentation/es/user/fundamental.itely
 #. @rglos in Documentation/es/user/tweaks.itely
 #. @rglos in Documentation/es/user/staff.itely
 #. @rglos in Documentation/de/user/tweaks.itely
+#. @rglos in Documentation/de/user/staff.itely
+#. @rglos in Documentation/ja/user/fundamental.itely
+#. @rglos in Documentation/ja/user/tweaks.itely
 msgid "ossia"
 msgstr "Ossia"
 
@@ -1919,6 +2353,8 @@ msgstr "Ossia"
 #. @subsection in Documentation/es/user/fundamental.itely
 #. @node in Documentation/de/user/fundamental.itely
 #. @subsection in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @subsection in Documentation/ja/user/fundamental.itely
 msgid "On the un-nestedness of brackets and ties"
 msgstr "Über die Nicht-Schachtelung von Klammern und Bindebögen"
 
@@ -1930,6 +2366,8 @@ msgstr "Über die Nicht-Schachtelung von Klammern und Bindebögen"
 #. @section in Documentation/es/user/fundamental.itely
 #. @node in Documentation/de/user/fundamental.itely
 #. @section in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @section in Documentation/ja/user/fundamental.itely
 msgid "Voices contain music"
 msgstr "Voice enthält Noten"
 
@@ -1941,6 +2379,8 @@ msgstr "Voice enthält Noten"
 #. @subsection in Documentation/es/user/fundamental.itely
 #. @node in Documentation/de/user/fundamental.itely
 #. @subsection in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @subsection in Documentation/ja/user/fundamental.itely
 msgid "I'm hearing Voices"
 msgstr "Ich höre Stimmen"
 
@@ -1952,6 +2392,8 @@ msgstr "Ich höre Stimmen"
 #. @subsection in Documentation/es/user/fundamental.itely
 #. @node in Documentation/de/user/fundamental.itely
 #. @subsection in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @subsection in Documentation/ja/user/fundamental.itely
 msgid "Explicitly instantiating voices"
 msgstr "Stimmen explizit beginnen"
 
@@ -1959,6 +2401,7 @@ msgstr "Stimmen explizit beginnen"
 #. @subsubheading in Documentation/fr/user/fundamental.itely
 #. @subsubheading in Documentation/es/user/fundamental.itely
 #. @subsubheading in Documentation/de/user/fundamental.itely
+#. @subsubheading in Documentation/ja/user/fundamental.itely
 msgid "Note columns"
 msgstr "Notenkolumnen"
 
@@ -1970,6 +2413,8 @@ msgstr "Notenkolumnen"
 #. @subsection in Documentation/es/user/fundamental.itely
 #. @node in Documentation/de/user/fundamental.itely
 #. @subsection in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @subsection in Documentation/ja/user/fundamental.itely
 msgid "Voices and vocals"
 msgstr "Stimmen und Text"
 
@@ -1981,6 +2426,8 @@ msgstr "Stimmen und Text"
 #. @section in Documentation/es/user/fundamental.itely
 #. @node in Documentation/de/user/fundamental.itely
 #. @section in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @section in Documentation/ja/user/fundamental.itely
 msgid "Contexts and engravers"
 msgstr "Kontexte und Engraver"
 
@@ -2000,8 +2447,10 @@ msgstr "Kontexte und Engraver"
 #. @subsection in Documentation/de/user/fundamental.itely
 #. @node in Documentation/de/user/changing-defaults.itely
 #. @subsection in Documentation/de/user/changing-defaults.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @subsection in Documentation/ja/user/fundamental.itely
 msgid "Contexts explained"
-msgstr "Was sind Umgebungen?"
+msgstr "Was sind Kontexte?"
 
 #. @node in Documentation/user/fundamental.itely
 #. @subsection in Documentation/user/fundamental.itely
@@ -2009,6 +2458,8 @@ msgstr "Was sind Umgebungen?"
 #. @subsection in Documentation/user/changing-defaults.itely
 #. @node in Documentation/fr/user/fundamental.itely
 #. @subsection in Documentation/fr/user/fundamental.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/fundamental.itely
 #. @subsection in Documentation/es/user/fundamental.itely
 #. @node in Documentation/es/user/changing-defaults.itely
@@ -2017,8 +2468,10 @@ msgstr "Was sind Umgebungen?"
 #. @subsection in Documentation/de/user/fundamental.itely
 #. @node in Documentation/de/user/changing-defaults.itely
 #. @subsection in Documentation/de/user/changing-defaults.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @subsection in Documentation/ja/user/fundamental.itely
 msgid "Creating contexts"
-msgstr "Umgebungen erstellen"
+msgstr "Kontexte erstellen"
 
 #. @node in Documentation/user/fundamental.itely
 #. @subsection in Documentation/user/fundamental.itely
@@ -2028,6 +2481,8 @@ msgstr "Umgebungen erstellen"
 #. @subsection in Documentation/es/user/fundamental.itely
 #. @node in Documentation/de/user/fundamental.itely
 #. @subsection in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @subsection in Documentation/ja/user/fundamental.itely
 msgid "Engravers explained"
 msgstr "Was sind Engraver?"
 
@@ -2039,20 +2494,24 @@ msgstr "Was sind Engraver?"
 #. @subsection in Documentation/es/user/fundamental.itely
 #. @node in Documentation/de/user/fundamental.itely
 #. @subsection in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @subsection in Documentation/ja/user/fundamental.itely
 msgid "Modifying context properties"
 msgstr "Kontexteigenschaften verändern"
 
-#. @unnumberedsubsubsec in Documentation/user/fundamental.itely
+#. @subsubheading in Documentation/user/fundamental.itely
 #. @unnumberedsubsubsec in Documentation/fr/user/fundamental.itely
-#. @unnumberedsubsubsec in Documentation/es/user/fundamental.itely
-#. @unnumberedsubsubsec in Documentation/de/user/fundamental.itely
+#. @subsubheading in Documentation/es/user/fundamental.itely
+#. @subsubheading in Documentation/de/user/fundamental.itely
+#. @subsubheading in Documentation/ja/user/fundamental.itely
 msgid "Setting context properties with @code{\\with}"
 msgstr "Kontexteigenschaften mit @code{\\with} setzen"
 
-#. @unnumberedsubsubsec in Documentation/user/fundamental.itely
+#. @subsubheading in Documentation/user/fundamental.itely
 #. @unnumberedsubsubsec in Documentation/fr/user/fundamental.itely
-#. @unnumberedsubsubsec in Documentation/es/user/fundamental.itely
-#. @unnumberedsubsubsec in Documentation/de/user/fundamental.itely
+#. @subsubheading in Documentation/es/user/fundamental.itely
+#. @subsubheading in Documentation/de/user/fundamental.itely
+#. @subsubheading in Documentation/ja/user/fundamental.itely
 msgid "Setting context properties with @code{\\context}"
 msgstr "Kontexteigenschaften mit @code{\\context} setzen"
 
@@ -2064,6 +2523,8 @@ msgstr "Kontexteigenschaften mit @code{\\context} setzen"
 #. @subsection in Documentation/es/user/fundamental.itely
 #. @node in Documentation/de/user/fundamental.itely
 #. @subsection in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @subsection in Documentation/ja/user/fundamental.itely
 msgid "Adding and removing engravers"
 msgstr "Engraver hinzufügen und entfernen"
 
@@ -2071,6 +2532,7 @@ msgstr "Engraver hinzufügen und entfernen"
 #. @subsubheading in Documentation/fr/user/fundamental.itely
 #. @subsubheading in Documentation/es/user/fundamental.itely
 #. @subsubheading in Documentation/de/user/fundamental.itely
+#. @subsubheading in Documentation/ja/user/fundamental.itely
 msgid "Changing a single context"
 msgstr "Einen einzelnen Kontext verändern"
 
@@ -2081,6 +2543,7 @@ msgstr "Einen einzelnen Kontext verändern"
 #. @rglos in Documentation/es/user/pitches.itely
 #. @rglos in Documentation/de/user/fundamental.itely
 #. @rglos in Documentation/de/user/pitches.itely
+#. @rglos in Documentation/ja/user/fundamental.itely
 msgid "ambitus"
 msgstr "Tonumfang"
 
@@ -2088,6 +2551,7 @@ msgstr "Tonumfang"
 #. @subsubheading in Documentation/fr/user/fundamental.itely
 #. @subsubheading in Documentation/es/user/fundamental.itely
 #. @subsubheading in Documentation/de/user/fundamental.itely
+#. @subsubheading in Documentation/ja/user/fundamental.itely
 msgid "Changing all contexts of the same type"
 msgstr "Alle Kontexte des gleichen Typs verändern"
 
@@ -2099,6 +2563,8 @@ msgstr "Alle Kontexte des gleichen Typs verändern"
 #. @section in Documentation/es/user/fundamental.itely
 #. @node in Documentation/de/user/fundamental.itely
 #. @section in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @section in Documentation/ja/user/fundamental.itely
 msgid "Extending the templates"
 msgstr "Erweiterung der Beispiele"
 
@@ -2110,6 +2576,8 @@ msgstr "Erweiterung der Beispiele"
 #. @subsection in Documentation/es/user/fundamental.itely
 #. @node in Documentation/de/user/fundamental.itely
 #. @subsection in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @subsection in Documentation/ja/user/fundamental.itely
 msgid "Soprano and cello"
 msgstr "Sopran und Cello"
 
@@ -2121,6 +2589,8 @@ msgstr "Sopran und Cello"
 #. @subsection in Documentation/es/user/fundamental.itely
 #. @node in Documentation/de/user/fundamental.itely
 #. @subsection in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @subsection in Documentation/ja/user/fundamental.itely
 msgid "Four-part SATB vocal score"
 msgstr "Vierstimmige SATB-Partitur"
 
@@ -2132,203 +2602,230 @@ msgstr "Vierstimmige SATB-Partitur"
 #. @subsection in Documentation/es/user/fundamental.itely
 #. @node in Documentation/de/user/fundamental.itely
 #. @subsection in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @subsection in Documentation/ja/user/fundamental.itely
 msgid "Building a score from scratch"
 msgstr "Eine Partitur von Grund auf erstellen"
 
-#. Documentation/user/tweaks.itely:564 (comment)
-#. Documentation/user/tweaks.itely:690 (comment)
+#. Documentation/user/tweaks.itely:597 (comment)
+#. Documentation/user/tweaks.itely:732 (comment)
 msgid "Increase thickness of all following slurs from 1.2 to 5.0"
 msgstr "Dicke aller folgenden Bögen von 1.2 zu 5.0 vergrößern"
 
-#. Documentation/user/tweaks.itely:630 (comment)
 #. Documentation/user/tweaks.itely:666 (comment)
-#. Documentation/user/tweaks.itely:669 (comment)
+#. Documentation/user/tweaks.itely:705 (comment)
+#. Documentation/user/tweaks.itely:708 (comment)
 msgid "Increase thickness of immediately following slur only"
 msgstr "Nur die Dicke des direkt folgenden Bogens vergrößern"
 
-#. Documentation/user/tweaks.itely:694 (comment)
+#. Documentation/user/tweaks.itely:736 (comment)
 msgid "Revert thickness of all following slurs to default of 1.2"
 msgstr "Die Dicke aller folgenden Bögen zurücksezten auf 1.2"
 
-#. Documentation/user/tweaks.itely:1302 (comment)
+#. Documentation/user/tweaks.itely:1396 (comment)
 msgid "Don't print clefs in this staff"
 msgstr "Keine Schlüssel in diesem System"
 
-#. Documentation/user/tweaks.itely:1304 (comment)
+#. Documentation/user/tweaks.itely:1398 (comment)
 msgid "Don't print time signatures in this staff"
 msgstr "Keine Taktangabe in diesem System"
 
-#. Documentation/user/tweaks.itely:1362 (comment)
+#. Documentation/user/tweaks.itely:1462 (comment)
 msgid "Reduce all font sizes by ~24%"
 msgstr "Alle Schriftgrößen um ~24% verkleinern"
 
-#. Documentation/user/tweaks.itely:1418 (comment)
+#. Documentation/user/tweaks.itely:1528 (comment)
 msgid "Reduce stem length and line spacing to match"
 msgstr "Die Halslänge und Linienabstand anpassen"
 
-#. Documentation/user/tweaks.itely:1828 (comment)
-#. Documentation/user/tweaks.itely:1895 (comment)
+#. Documentation/user/tweaks.itely:1958 (comment)
+#. Documentation/user/tweaks.itely:2028 (comment)
 msgid "Set details for later Text Spanner"
 msgstr "Details für späteren Text-Spanner setzen"
 
-#. Documentation/user/tweaks.itely:1831 (comment)
-#. Documentation/user/tweaks.itely:1898 (comment)
+#. Documentation/user/tweaks.itely:1961 (comment)
+#. Documentation/user/tweaks.itely:2031 (comment)
 msgid "Place dynamics above staff"
 msgstr "Dynamik-Zeichen über System setzen"
 
-#. Documentation/user/tweaks.itely:1833 (comment)
-#. Documentation/user/tweaks.itely:1902 (comment)
+#. Documentation/user/tweaks.itely:1963 (comment)
+#. Documentation/user/tweaks.itely:2035 (comment)
 msgid "Start Ottava Bracket"
 msgstr "Beginn der Oktavierungsklammer"
 
-#. Documentation/user/tweaks.itely:1836 (comment)
-#. Documentation/user/tweaks.itely:1843 (comment)
-#. Documentation/user/tweaks.itely:1905 (comment)
-#. Documentation/user/tweaks.itely:1912 (comment)
+#. Documentation/user/tweaks.itely:1966 (comment)
+#. Documentation/user/tweaks.itely:1973 (comment)
+#. Documentation/user/tweaks.itely:2038 (comment)
+#. Documentation/user/tweaks.itely:2045 (comment)
 msgid "Add Dynamic Text"
 msgstr "Dynamik-Text hinzufügen"
 
-#. Documentation/user/tweaks.itely:1838 (comment)
-#. Documentation/user/tweaks.itely:1907 (comment)
+#. Documentation/user/tweaks.itely:1968 (comment)
+#. Documentation/user/tweaks.itely:2040 (comment)
 msgid "Add Dynamic Line Spanner"
 msgstr "Dynamic Line Spanner hinzufügen"
 
-#. Documentation/user/tweaks.itely:1840 (comment)
-#. Documentation/user/tweaks.itely:1909 (comment)
+#. Documentation/user/tweaks.itely:1970 (comment)
+#. Documentation/user/tweaks.itely:2042 (comment)
 msgid "Add Text Script"
 msgstr "Textbeschriftung hinzufügen"
 
-#. Documentation/user/tweaks.itely:1845 (comment)
-#. Documentation/user/tweaks.itely:1914 (comment)
+#. Documentation/user/tweaks.itely:1975 (comment)
+#. Documentation/user/tweaks.itely:2047 (comment)
 msgid "Stop Ottava Bracket"
 msgstr "Ende der Oktavierungsklammer"
 
-#. Documentation/user/tweaks.itely:1900 (comment)
+#. Documentation/user/tweaks.itely:2033 (comment)
 msgid "Place following Ottava Bracket below Text Spanners"
 msgstr "Nächste Ottava-Klammer unter Text-Spanner setzen"
 
-#. Documentation/user/tweaks.itely:1959 (comment)
+#. Documentation/user/tweaks.itely:2122 (comment)
 msgid "Cause notes to space out to accommodate text"
 msgstr "Noten spreizen um dem Text Platz zu machen"
 
-#. Documentation/user/tweaks.itely:1979 (comment)
+#. Documentation/user/tweaks.itely:2145 (comment)
 msgid "This markup is short enough to fit without collision"
 msgstr "Dieser Text ist kurz genug um ohne Kollision zu passen"
 
-#. Documentation/user/tweaks.itely:1983 (comment)
+#. Documentation/user/tweaks.itely:2149 (comment)
 msgid "This is too long to fit, so it is displaced upwards"
 msgstr "Dieser ist zu lang, darum wird der nach oben verschoben"
 
-#. Documentation/user/tweaks.itely:1987 (comment)
-#. Documentation/user/tweaks.itely:1992 (comment)
+#. Documentation/user/tweaks.itely:2153 (comment)
+#. Documentation/user/tweaks.itely:2158 (comment)
 msgid "Turn off collision avoidance"
 msgstr "Abschalten der automatischen Vermeidung von Zusammenstößen"
 
-#. Documentation/user/tweaks.itely:1994 (comment)
+#. Documentation/user/tweaks.itely:2160 (comment)
 msgid "and turn on textLengthOn"
 msgstr "und Textlänge berücksichtigen"
 
-#. Documentation/user/tweaks.itely:1995 (comment)
+#. Documentation/user/tweaks.itely:2161 (comment)
 msgid "Spaces at end are honored"
 msgstr "Leerzeichen am Ende werden beachtet"
 
-#. Documentation/user/tweaks.itely:2096 (comment)
+#. Documentation/user/tweaks.itely:2268 (comment)
 msgid "Extend width by 1 staff space"
 msgstr "Breite um einen Linienabstand vergrößern"
 
-#. Documentation/user/tweaks.itely:2373 (comment)
+#. Documentation/user/tweaks.itely:2551 (comment)
 msgid "This will not work, see below:"
 msgstr "Das funktioniert nicht, siehe unten"
 
-#. Documentation/user/tweaks.itely:2377 (comment)
+#. Documentation/user/tweaks.itely:2555 (comment)
 msgid "This works:"
 msgstr "Das funktioniert:"
 
-#. Documentation/user/tweaks.itely:2422 (variable)
+#. Documentation/user/tweaks.itely:2606 (variable)
 msgid "naturalplusflat"
 msgstr "AuflösungB"
 
-#. Documentation/user/tweaks.itely:2458 (comment)
+#. Documentation/user/tweaks.itely:2647 (comment)
 msgid "Extend width by 1 unit"
 msgstr "Breite um eine Einheit vergrößern"
 
-#. Documentation/user/tweaks.itely:2460 (comment)
+#. Documentation/user/tweaks.itely:2649 (comment)
 msgid "Align dynamics to a base line 2 units above staff"
 msgstr ""
 "Dynamik-Zeichen an einer Linie ausrichten, die 2 Einheiten über dem System "
 "ist"
 
-#. Documentation/user/tweaks.itely:2745 (variable)
-#. Documentation/user/tweaks.itely:2794 (variable)
-#. Documentation/user/tweaks.itely:2855 (variable)
-#. Documentation/user/tweaks.itely:2925 (variable)
-#. Documentation/user/tweaks.itely:2987 (variable)
-#. Documentation/user/tweaks.itely:3042 (variable)
+#. Documentation/user/tweaks.itely:2953 (variable)
+#. Documentation/user/tweaks.itely:3002 (variable)
+#. Documentation/user/tweaks.itely:3063 (variable)
+#. Documentation/user/tweaks.itely:3133 (variable)
+#. Documentation/user/tweaks.itely:3198 (variable)
+#. Documentation/user/tweaks.itely:3258 (variable)
 msgid "rhMusic"
 msgstr "rhNoten"
 
-#. Documentation/user/tweaks.itely:2750 (comment)
-#. Documentation/user/tweaks.itely:2799 (comment)
-#. Documentation/user/tweaks.itely:2862 (comment)
-#. Documentation/user/tweaks.itely:2934 (comment)
-#. Documentation/user/tweaks.itely:2996 (comment)
+#. Documentation/user/tweaks.itely:2958 (comment)
+#. Documentation/user/tweaks.itely:3007 (comment)
+#. Documentation/user/tweaks.itely:3070 (comment)
+#. Documentation/user/tweaks.itely:3142 (comment)
+#. Documentation/user/tweaks.itely:3207 (comment)
 msgid "Start polyphonic section of four voices"
 msgstr "Beginn des polyphonen Abschnitts mit vier Stimmen"
 
-#. Documentation/user/tweaks.itely:2763 (variable)
-#. Documentation/user/tweaks.itely:2812 (variable)
-#. Documentation/user/tweaks.itely:2875 (variable)
-#. Documentation/user/tweaks.itely:2949 (variable)
-#. Documentation/user/tweaks.itely:3013 (variable)
-#. Documentation/user/tweaks.itely:3070 (variable)
+#. Documentation/user/tweaks.itely:2971 (variable)
+#. Documentation/user/tweaks.itely:3020 (variable)
+#. Documentation/user/tweaks.itely:3083 (variable)
+#. Documentation/user/tweaks.itely:3157 (variable)
+#. Documentation/user/tweaks.itely:3224 (variable)
+#. Documentation/user/tweaks.itely:3286 (variable)
 msgid "lhMusic"
 msgstr "lhNoten"
 
-#. Documentation/user/tweaks.itely:3000 (comment)
-#. Documentation/user/tweaks.itely:3057 (comment)
+#. Documentation/user/tweaks.itely:2980 (context id)
+#. Documentation/user/tweaks.itely:3029 (context id)
+#. Documentation/user/tweaks.itely:3092 (context id)
+#. Documentation/user/tweaks.itely:3166 (context id)
+#. Documentation/user/tweaks.itely:3233 (context id)
+#. Documentation/user/tweaks.itely:3295 (context id)
+#. Documentation/user/input.itely:974 (context id)
+msgid "RH"
+msgstr "RH"
+
+#. Documentation/user/tweaks.itely:2984 (context id)
+#. Documentation/user/tweaks.itely:3033 (context id)
+#. Documentation/user/tweaks.itely:3096 (context id)
+#. Documentation/user/tweaks.itely:3170 (context id)
+#. Documentation/user/tweaks.itely:3237 (context id)
+#. Documentation/user/tweaks.itely:3299 (context id)
+#. Documentation/user/input.itely:980 (context id)
+msgid "LH"
+msgstr "LH"
+
+#. Documentation/user/tweaks.itely:3211 (comment)
+#. Documentation/user/tweaks.itely:3273 (comment)
 msgid "Move the c2 out of the main note column so the merge will work"
 msgstr ""
 "Verschiebe das c2 aus der Hauptnotenkolumne, damit Verschmelzung funktioniert"
 
-#. Documentation/user/tweaks.itely:3003 (comment)
-#. Documentation/user/tweaks.itely:3060 (comment)
+#. Documentation/user/tweaks.itely:3214 (comment)
+#. Documentation/user/tweaks.itely:3276 (comment)
 msgid "Stem on the d2 must be down to permit merging"
 msgstr "Hals vom d2 muss nach unten, damit Verschmelzung gelingt"
 
-#. Documentation/user/tweaks.itely:3055 (comment)
+#. Documentation/user/tweaks.itely:3271 (comment)
 msgid "Reposition the c2 to the right of the merged note"
 msgstr "c2 neu positionieren rechts von der verschmolzenen Note"
 
-#. Documentation/user/tweaks.itely:3185 (comment)
-#. Documentation/user/tweaks.itely:3204 (comment)
+#. Documentation/user/tweaks.itely:3407 (comment)
+#. Documentation/user/tweaks.itely:3429 (comment)
 msgid "Visible tempo marking"
 msgstr "Sichtbare Tempo-Bezeichnung"
 
-#. Documentation/user/tweaks.itely:3189 (comment)
-#. Documentation/user/tweaks.itely:3208 (comment)
+#. Documentation/user/tweaks.itely:3411 (comment)
+#. Documentation/user/tweaks.itely:3433 (comment)
 msgid "Invisible tempo marking to lengthen fermata in MIDI"
 msgstr "Unsichtbare Tempo-Bezeichnung um Fermate im MIDI zu verlängern"
 
-#. Documentation/user/tweaks.itely:3192 (comment)
-#. Documentation/user/tweaks.itely:3211 (comment)
+#. Documentation/user/tweaks.itely:3414 (comment)
+#. Documentation/user/tweaks.itely:3436 (comment)
 msgid "New tempo for next section"
 msgstr "Neues Tempo im nächsten Abschnitt"
 
-#. Documentation/user/tweaks.itely:3259 (variable)
+#. Documentation/user/tweaks.itely:3493 (variable)
 msgid "emphasize"
 msgstr "emphasize"
 
-#. Documentation/user/tweaks.itely:3263 (variable)
+#. Documentation/user/tweaks.itely:3497 (variable)
 msgid "normal"
 msgstr "normal"
 
-#. Documentation/user/tweaks.itely:3269 (variable)
+#. Documentation/user/tweaks.itely:3503 (variable)
 msgid "SopranoMusic"
 msgstr "SopranNoten"
 
-#. Documentation/user/tweaks.itely:3485 (comment)
+#. Documentation/user/tweaks.itely:3516 (context id)
+#. Documentation/user/input.itely:959 (context id)
+msgid "Soprano"
+msgstr "Sopran"
+
+#. Documentation/user/tweaks.itely:3725 (comment)
 msgid "Arrange to obtain color from color-notehead procedure"
-msgstr "Anordngen um Farbe von der color-notehead-Prozedur zu erhalten"
+msgstr "Anordnungen um Farbe von der color-notehead-Prozedur zu erhalten"
 
 #. @node in Documentation/user/tweaks.itely
 #. @chapter in Documentation/user/tweaks.itely
@@ -2338,6 +2835,8 @@ msgstr "Anordngen um Farbe von der color-notehead-Prozedur zu erhalten"
 #. @chapter in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @chapter in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @chapter in Documentation/ja/user/tweaks.itely
 msgid "Tweaking output"
 msgstr "Die Ausgabe verändern"
 
@@ -2349,6 +2848,8 @@ msgstr "Die Ausgabe verändern"
 #. @section in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @section in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @section in Documentation/ja/user/tweaks.itely
 msgid "Tweaking basics"
 msgstr "Grundlagen für die Optimierung"
 
@@ -2360,6 +2861,8 @@ msgstr "Grundlagen für die Optimierung"
 #. @subsection in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
 msgid "Introduction to tweaks"
 msgstr "Grundlagen zur Optimierung"
 
@@ -2371,6 +2874,8 @@ msgstr "Grundlagen zur Optimierung"
 #. @subsection in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
 msgid "Objects and interfaces"
 msgstr "Objekte und Schnittstellen"
 
@@ -2382,6 +2887,8 @@ msgstr "Objekte und Schnittstellen"
 #. @subsection in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
 msgid "Naming conventions of objects and properties"
 msgstr "Regeln zur Benennung von Objekten und Eigenschaften"
 
@@ -2393,6 +2900,8 @@ msgstr "Regeln zur Benennung von Objekten und Eigenschaften"
 #. @subsection in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
 msgid "Tweaking methods"
 msgstr "Optimierungsmethoden"
 
@@ -2404,6 +2913,8 @@ msgstr "Optimierungsmethoden"
 #. @section in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @section in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @section in Documentation/ja/user/tweaks.itely
 msgid "The Internals Reference manual"
 msgstr "Die Referenz der Programminterna"
 
@@ -2415,24 +2926,32 @@ msgstr "Die Referenz der Programminterna"
 #. @subsection in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
 msgid "Properties of layout objects"
 msgstr "Eigenschaften von Layoutobjekten"
 
 #. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @subheading in Documentation/es/user/tweaks.itely
 #. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "Finding the context"
 msgstr "Den Kontext finden"
 
 #. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @subheading in Documentation/es/user/tweaks.itely
 #. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "Overriding once only"
 msgstr "Nur einmal mit \\override verändern"
 
 #. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @subheading in Documentation/es/user/tweaks.itely
 #. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "Reverting"
 msgstr "Rückgängig machen"
 
@@ -2444,12 +2963,16 @@ msgstr "Rückgängig machen"
 #. @subsection in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
 msgid "Properties found in interfaces"
 msgstr "Eigenschaften, die Schnittstellen besitzen können"
 
 #. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @subheading in Documentation/es/user/tweaks.itely
 #. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "Specifying the context in lyric mode"
 msgstr "Den Kontext im Liedtextmodus bestimmen"
 
@@ -2461,6 +2984,8 @@ msgstr "Den Kontext im Liedtextmodus bestimmen"
 #. @subsection in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
 msgid "Types of properties"
 msgstr "Typen von Eigenschaften"
 
@@ -2472,6 +2997,8 @@ msgstr "Typen von Eigenschaften"
 #. @section in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @section in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @section in Documentation/ja/user/tweaks.itely
 msgid "Appearance of objects"
 msgstr "Erscheinung von Objekten"
 
@@ -2483,30 +3010,40 @@ msgstr "Erscheinung von Objekten"
 #. @subsection in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
 msgid "Visibility and color of objects"
 msgstr "Sichtbarkeit und Farbe von Objekten"
 
 #. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @subheading in Documentation/es/user/tweaks.itely
 #. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "stencil"
 msgstr "stencil (Matrize)"
 
 #. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @subheading in Documentation/es/user/tweaks.itely
 #. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "break-visibility"
 msgstr "break-visibility (unsichtbar machen)"
 
 #. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @subheading in Documentation/es/user/tweaks.itely
 #. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "transparent"
 msgstr "transparent (durchsichtig)"
 
 #. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @subheading in Documentation/es/user/tweaks.itely
 #. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "color"
 msgstr "color (Farbe)"
 
@@ -2518,6 +3055,8 @@ msgstr "color (Farbe)"
 #. @subsection in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
 msgid "Size of objects"
 msgstr "Größe von Objekten"
 
@@ -2529,6 +3068,8 @@ msgstr "Größe von Objekten"
 #. @subsection in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
 msgid "Length and thickness of objects"
 msgstr "Länge und Dicke von Objekten"
 
@@ -2540,6 +3081,8 @@ msgstr "Länge und Dicke von Objekten"
 #. @section in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @section in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @section in Documentation/ja/user/tweaks.itely
 msgid "Placement of objects"
 msgstr "Positionierung von Objekten"
 
@@ -2549,6 +3092,8 @@ msgstr "Positionierung von Objekten"
 #. @subsection in Documentation/fr/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
 msgid "Automatic behavior"
 msgstr "Automatisches Verhalten"
 
@@ -2560,12 +3105,16 @@ msgstr "Automatisches Verhalten"
 #. @subsection in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
 msgid "Within-staff objects"
 msgstr "within-staff (Objekte innerhalb des Notensystems)"
 
 #. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @subheading in Documentation/es/user/tweaks.itely
 #. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "Fingering"
 msgstr "Fingersatz"
 
@@ -2573,19 +3122,26 @@ msgstr "Fingersatz"
 #. @subsection in Documentation/user/tweaks.itely
 #. @node in Documentation/es/user/tweaks.itely
 #. @subsection in Documentation/es/user/tweaks.itely
-#, fuzzy
+#. @node in Documentation/de/user/tweaks.itely
+#. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
 msgid "Outside-staff objects"
 msgstr "Objekte außerhalb des Notensystems"
 
 #. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @subheading in Documentation/es/user/tweaks.itely
 #. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "\\textLengthOn"
 msgstr "\\textLengthOn (Textlänge berücksichtigen)"
 
 #. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @subheading in Documentation/es/user/tweaks.itely
 #. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "Grob sizing"
 msgstr "Verändern der Größe von grobs"
 
@@ -2597,6 +3153,8 @@ msgstr "Verändern der Größe von grobs"
 #. @section in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @section in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @section in Documentation/ja/user/tweaks.itely
 msgid "Collisions of objects"
 msgstr "Kollision von Objekten"
 
@@ -2608,6 +3166,8 @@ msgstr "Kollision von Objekten"
 #. @subsection in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
 msgid "Moving objects"
 msgstr "Verschieben von Objekten"
 
@@ -2619,56 +3179,74 @@ msgstr "Verschieben von Objekten"
 #. @subsection in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
 msgid "Fixing overlapping notation"
 msgstr "Überlappende Notation in Ordnung bringen"
 
 #. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @subheading in Documentation/es/user/tweaks.itely
 #. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "padding property"
 msgstr "padding (Fülleigenschafte)"
 
 #. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @subheading in Documentation/es/user/tweaks.itely
 #. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "left-padding and right-padding"
 msgstr ""
 "left-padding (Verschieben nach rechts) und right-padding (Verschieben nach "
 "links)"
 
 #. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @subheading in Documentation/es/user/tweaks.itely
 #. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "staff-padding property"
 msgstr "staff-padding (Systemfüllungseigenschaft)"
 
 #. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @subheading in Documentation/es/user/tweaks.itely
 #. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "self-alignment-X property"
 msgstr "self-alignment-X (Selbstausrichtung-X-Eigenschaft)"
 
 #. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @subheading in Documentation/es/user/tweaks.itely
 #. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "staff-position property"
 msgstr "staff-position (Position innerhalb des Systems)"
 
 #. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @subheading in Documentation/es/user/tweaks.itely
 #. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "extra-offset property"
 msgstr "extra-offset (Genaues Positionieren)"
 
 #. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @subheading in Documentation/es/user/tweaks.itely
 #. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "positions property"
 msgstr "Ausrichtungseigenschaft"
 
 #. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @subheading in Documentation/es/user/tweaks.itely
 #. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "force-hshift property"
 msgstr "force-hshift (vertikale Verschiebunseigenschaft)"
 
@@ -2680,6 +3258,8 @@ msgstr "force-hshift (vertikale Verschiebunseigenschaft)"
 #. @subsection in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
 msgid "Real music example"
 msgstr "Beispiele aus dem Leben"
 
@@ -2691,6 +3271,8 @@ msgstr "Beispiele aus dem Leben"
 #. @section in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @section in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @section in Documentation/ja/user/tweaks.itely
 msgid "Further tweaking"
 msgstr "Weitere Optimierungen"
 
@@ -2702,18 +3284,24 @@ msgstr "Weitere Optimierungen"
 #. @subsection in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
 msgid "Other uses for tweaks"
 msgstr "Andere Benutzung von Optimierungen"
 
 #. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @subheading in Documentation/es/user/tweaks.itely
 #. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "Tying notes across voices"
 msgstr "Noten zwischen unterschiedlichen Stimmen überbinden"
 
 #. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @subheading in Documentation/es/user/tweaks.itely
 #. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "Simulating a fermata in MIDI"
 msgstr "Eine Fermate in MIDI simulieren"
 
@@ -2725,6 +3313,8 @@ msgstr "Eine Fermate in MIDI simulieren"
 #. @subsection in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
 msgid "Using variables for tweaks"
 msgstr "Variablen für Optimierungen einsetzen"
 
@@ -2736,6 +3326,8 @@ msgstr "Variablen für Optimierungen einsetzen"
 #. @subsection in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
 msgid "Other sources of information"
 msgstr "Mehr Information"
 
@@ -2747,6 +3339,8 @@ msgstr "Mehr Information"
 #. @subsection in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
 msgid "Avoiding tweaks with slower processing"
 msgstr "Vermeiden von Optimierungen durch langsamere Übersetzung"
 
@@ -2758,41 +3352,43 @@ msgstr "Vermeiden von Optimierungen durch langsamere Übersetzung"
 #. @subsection in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
 msgid "Advanced tweaks with Scheme"
 msgstr "Fortgeschrittene Optimierungen mit Scheme"
 
-#. Documentation/user/working.itely:201 (variable)
+#. Documentation/user/working.itely:220 (variable)
 msgid "hornNotes"
 msgstr "HornNoten"
 
-#. Documentation/user/working.itely:212 (variable)
+#. Documentation/user/working.itely:231 (variable)
 msgid "fragmentA"
 msgstr "FramentA"
 
-#. Documentation/user/working.itely:213 (variable)
+#. Documentation/user/working.itely:232 (variable)
 msgid "fragmentB"
 msgstr "FragmentB"
 
-#. Documentation/user/working.itely:226 (variable)
+#. Documentation/user/working.itely:245 (variable)
 msgid "dolce"
 msgstr "dolce"
 
-#. Documentation/user/working.itely:227 (variable)
-#. Documentation/user/working.itely:276 (variable)
+#. Documentation/user/working.itely:246 (variable)
+#. Documentation/user/working.itely:295 (variable)
 #. Documentation/user/scheme-tutorial.itely:235 (variable)
 #. Documentation/user/programming-interface.itely:101 (variable)
 msgid "padText"
 msgstr "AbstandText"
 
-#. Documentation/user/working.itely:228 (variable)
+#. Documentation/user/working.itely:247 (variable)
 msgid "fthenp"
 msgstr "FdannP"
 
-#. Documentation/user/working.itely:313 (variable)
+#. Documentation/user/working.itely:332 (variable)
 msgid "mpdolce"
 msgstr "mpdolce"
 
-#. Documentation/user/working.itely:315 (variable)
+#. Documentation/user/working.itely:334 (variable)
 #. Documentation/user/scheme-tutorial.itely:256 (variable)
 #. Documentation/user/programming-interface.itely:135 (variable)
 msgid "tempoMark"
@@ -2806,6 +3402,8 @@ msgstr "tempoZeichen"
 #. @chapter in Documentation/es/user/working.itely
 #. @node in Documentation/de/user/working.itely
 #. @chapter in Documentation/de/user/working.itely
+#. @node in Documentation/ja/user/working.itely
+#. @chapter in Documentation/ja/user/working.itely
 msgid "Working on LilyPond projects"
 msgstr "An LilyPond-Projekten arbeiten"
 
@@ -2815,6 +3413,8 @@ msgstr "An LilyPond-Projekten arbeiten"
 #. @section in Documentation/fr/user/working.itely
 #. @node in Documentation/de/user/working.itely
 #. @section in Documentation/de/user/working.itely
+#. @node in Documentation/ja/user/working.itely
+#. @section in Documentation/ja/user/working.itely
 msgid "Suggestions for writing LilyPond input files"
 msgstr "Vorschläge, wie LilyPond-Eingabe-Dateien geschrieben werden sollen"
 
@@ -2826,6 +3426,8 @@ msgstr "Vorschläge, wie LilyPond-Eingabe-Dateien geschrieben werden sollen"
 #. @subsection in Documentation/es/user/working.itely
 #. @node in Documentation/de/user/working.itely
 #. @subsection in Documentation/de/user/working.itely
+#. @node in Documentation/ja/user/working.itely
+#. @subsection in Documentation/ja/user/working.itely
 msgid "General suggestions"
 msgstr "Allgemeine Vorschläge"
 
@@ -2837,6 +3439,8 @@ msgstr "Allgemeine Vorschläge"
 #. @subsection in Documentation/es/user/working.itely
 #. @node in Documentation/de/user/working.itely
 #. @subsection in Documentation/de/user/working.itely
+#. @node in Documentation/ja/user/working.itely
+#. @subsection in Documentation/ja/user/working.itely
 msgid "Typesetting existing music"
 msgstr "Das Kopieren von existierender Musik"
 
@@ -2848,6 +3452,8 @@ msgstr "Das Kopieren von existierender Musik"
 #. @subsection in Documentation/es/user/working.itely
 #. @node in Documentation/de/user/working.itely
 #. @subsection in Documentation/de/user/working.itely
+#. @node in Documentation/ja/user/working.itely
+#. @subsection in Documentation/ja/user/working.itely
 msgid "Large projects"
 msgstr "Große Projekte"
 
@@ -2859,6 +3465,8 @@ msgstr "Große Projekte"
 #. @subsection in Documentation/es/user/working.itely
 #. @node in Documentation/de/user/working.itely
 #. @subsection in Documentation/de/user/working.itely
+#. @node in Documentation/ja/user/working.itely
+#. @subsection in Documentation/ja/user/working.itely
 msgid "Saving typing with variables and functions"
 msgstr "Tipparbeit sparen durch Bezeichner und Funktionen"
 
@@ -2870,6 +3478,8 @@ msgstr "Tipparbeit sparen durch Bezeichner und Funktionen"
 #. @subsection in Documentation/es/user/working.itely
 #. @node in Documentation/de/user/working.itely
 #. @subsection in Documentation/de/user/working.itely
+#. @node in Documentation/ja/user/working.itely
+#. @subsection in Documentation/ja/user/working.itely
 msgid "Style sheets"
 msgstr "Stil-Dateien"
 
@@ -2881,11 +3491,15 @@ msgstr "Stil-Dateien"
 #. @section in Documentation/es/user/working.itely
 #. @node in Documentation/de/user/working.itely
 #. @section in Documentation/de/user/working.itely
+#. @node in Documentation/ja/user/working.itely
+#. @section in Documentation/ja/user/working.itely
 msgid "When things don't work"
 msgstr "Wenn etwas nicht funktioniert"
 
 #. @node in Documentation/user/working.itely
 #. @subsection in Documentation/user/working.itely
+#. @node in Documentation/ja/user/working.itely
+#. @subsection in Documentation/ja/user/working.itely
 msgid "Updating old input files"
 msgstr "Alte Eingabe-Dateien aktualisieren"
 
@@ -2897,6 +3511,8 @@ msgstr "Alte Eingabe-Dateien aktualisieren"
 #. @subsection in Documentation/es/user/working.itely
 #. @node in Documentation/de/user/working.itely
 #. @subsection in Documentation/de/user/working.itely
+#. @node in Documentation/ja/user/working.itely
+#. @subsection in Documentation/ja/user/working.itely
 msgid "Troubleshooting (taking it all apart)"
 msgstr "Fehlersuche (alles auseinandernehmen)"
 
@@ -2908,6 +3524,8 @@ msgstr "Fehlersuche (alles auseinandernehmen)"
 #. @subsection in Documentation/es/user/working.itely
 #. @node in Documentation/de/user/working.itely
 #. @subsection in Documentation/de/user/working.itely
+#. @node in Documentation/ja/user/working.itely
+#. @subsection in Documentation/ja/user/working.itely
 msgid "Minimal examples"
 msgstr "Minimalbeispiele"
 
@@ -2919,6 +3537,8 @@ msgstr "Minimalbeispiele"
 #. @section in Documentation/es/user/working.itely
 #. @node in Documentation/de/user/working.itely
 #. @section in Documentation/de/user/working.itely
+#. @node in Documentation/ja/user/working.itely
+#. @section in Documentation/ja/user/working.itely
 msgid "Scores and parts"
 msgstr "Partituren und Stimmen"
 
@@ -2930,6 +3550,8 @@ msgstr "Partituren und Stimmen"
 #. @appendix in Documentation/es/user/templates.itely
 #. @node in Documentation/de/user/templates.itely
 #. @appendix in Documentation/de/user/templates.itely
+#. @node in Documentation/ja/user/templates.itely
+#. @appendix in Documentation/ja/user/templates.itely
 msgid "Templates"
 msgstr "Vorlagen"
 
@@ -2941,6 +3563,8 @@ msgstr "Vorlagen"
 #. @appendixsec in Documentation/es/user/templates.itely
 #. @node in Documentation/de/user/templates.itely
 #. @appendixsec in Documentation/de/user/templates.itely
+#. @node in Documentation/ja/user/templates.itely
+#. @appendixsec in Documentation/ja/user/templates.itely
 msgid "Single staff"
 msgstr "Ein einzelnes System"
 
@@ -2948,6 +3572,7 @@ msgstr "Ein einzelnes System"
 #. @appendixsubsec in Documentation/fr/user/templates.itely
 #. @appendixsubsec in Documentation/es/user/templates.itely
 #. @appendixsubsec in Documentation/de/user/templates.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
 msgid "Notes only"
 msgstr "Nur Noten"
 
@@ -2955,6 +3580,7 @@ msgstr "Nur Noten"
 #. @appendixsubsec in Documentation/fr/user/templates.itely
 #. @appendixsubsec in Documentation/es/user/templates.itely
 #. @appendixsubsec in Documentation/de/user/templates.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
 msgid "Notes and lyrics"
 msgstr "Noten und Text"
 
@@ -2962,6 +3588,7 @@ msgstr "Noten und Text"
 #. @appendixsubsec in Documentation/fr/user/templates.itely
 #. @appendixsubsec in Documentation/es/user/templates.itely
 #. @appendixsubsec in Documentation/de/user/templates.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
 msgid "Notes and chords"
 msgstr "Noten und Akkordbezeichnungen"
 
@@ -2969,6 +3596,7 @@ msgstr "Noten und Akkordbezeichnungen"
 #. @appendixsubsec in Documentation/fr/user/templates.itely
 #. @appendixsubsec in Documentation/es/user/templates.itely
 #. @appendixsubsec in Documentation/de/user/templates.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
 msgid "Notes, lyrics, and chords."
 msgstr "Noten, Text und Akkordbezeichnungen"
 
@@ -2980,6 +3608,8 @@ msgstr "Noten, Text und Akkordbezeichnungen"
 #. @appendixsec in Documentation/es/user/templates.itely
 #. @node in Documentation/de/user/templates.itely
 #. @appendixsec in Documentation/de/user/templates.itely
+#. @node in Documentation/ja/user/templates.itely
+#. @appendixsec in Documentation/ja/user/templates.itely
 msgid "Piano templates"
 msgstr "Klaviervorlagen"
 
@@ -2987,6 +3617,7 @@ msgstr "Klaviervorlagen"
 #. @appendixsubsec in Documentation/fr/user/templates.itely
 #. @appendixsubsec in Documentation/es/user/templates.itely
 #. @appendixsubsec in Documentation/de/user/templates.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
 msgid "Solo piano"
 msgstr "Piano Solo"
 
@@ -2994,6 +3625,7 @@ msgstr "Piano Solo"
 #. @appendixsubsec in Documentation/fr/user/templates.itely
 #. @appendixsubsec in Documentation/es/user/templates.itely
 #. @appendixsubsec in Documentation/de/user/templates.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
 msgid "Piano and melody with lyrics"
 msgstr "Klavier und Gesangstimme"
 
@@ -3001,6 +3633,7 @@ msgstr "Klavier und Gesangstimme"
 #. @appendixsubsec in Documentation/fr/user/templates.itely
 #. @appendixsubsec in Documentation/es/user/templates.itely
 #. @appendixsubsec in Documentation/de/user/templates.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
 msgid "Piano centered lyrics"
 msgstr "Klavier mit zentriertem Text"
 
@@ -3008,6 +3641,7 @@ msgstr "Klavier mit zentriertem Text"
 #. @appendixsubsec in Documentation/fr/user/templates.itely
 #. @appendixsubsec in Documentation/es/user/templates.itely
 #. @appendixsubsec in Documentation/de/user/templates.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
 msgid "Piano centered dynamics"
 msgstr "Klavier mit zentrierten Lautstärkebezeichnungen"
 
@@ -3023,6 +3657,9 @@ msgstr "Klavier mit zentrierten Lautstärkebezeichnungen"
 #. @node in Documentation/de/user/templates.itely
 #. @appendixsec in Documentation/de/user/templates.itely
 #. @appendixsubsec in Documentation/de/user/templates.itely
+#. @node in Documentation/ja/user/templates.itely
+#. @appendixsec in Documentation/ja/user/templates.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
 msgid "String quartet"
 msgstr "Streichquartett"
 
@@ -3030,6 +3667,7 @@ msgstr "Streichquartett"
 #. @appendixsubsec in Documentation/fr/user/templates.itely
 #. @appendixsubsec in Documentation/es/user/templates.itely
 #. @appendixsubsec in Documentation/de/user/templates.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
 msgid "String quartet parts"
 msgstr "Streichquartettstimmen"
 
@@ -3041,6 +3679,8 @@ msgstr "Streichquartettstimmen"
 #. @appendixsec in Documentation/es/user/templates.itely
 #. @node in Documentation/de/user/templates.itely
 #. @appendixsec in Documentation/de/user/templates.itely
+#. @node in Documentation/ja/user/templates.itely
+#. @appendixsec in Documentation/ja/user/templates.itely
 msgid "Vocal ensembles"
 msgstr "Vokalensemble"
 
@@ -3048,6 +3688,7 @@ msgstr "Vokalensemble"
 #. @appendixsubsec in Documentation/fr/user/templates.itely
 #. @appendixsubsec in Documentation/es/user/templates.itely
 #. @appendixsubsec in Documentation/de/user/templates.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
 msgid "SATB vocal score"
 msgstr "SATB-Partitur"
 
@@ -3055,6 +3696,7 @@ msgstr "SATB-Partitur"
 #. @appendixsubsec in Documentation/fr/user/templates.itely
 #. @appendixsubsec in Documentation/es/user/templates.itely
 #. @appendixsubsec in Documentation/de/user/templates.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
 msgid "SATB vocal score and automatic piano reduction"
 msgstr "SATB-Partitur und automatischer Klavierauszug"
 
@@ -3062,6 +3704,7 @@ msgstr "SATB-Partitur und automatischer Klavierauszug"
 #. @appendixsubsec in Documentation/fr/user/templates.itely
 #. @appendixsubsec in Documentation/es/user/templates.itely
 #. @appendixsubsec in Documentation/de/user/templates.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
 msgid "SATB with aligned contexts"
 msgstr "SATB mit zugehörigen Kontexten"
 
@@ -3073,6 +3716,8 @@ msgstr "SATB mit zugehörigen Kontexten"
 #. @appendixsec in Documentation/es/user/templates.itely
 #. @node in Documentation/de/user/templates.itely
 #. @appendixsec in Documentation/de/user/templates.itely
+#. @node in Documentation/ja/user/templates.itely
+#. @appendixsec in Documentation/ja/user/templates.itely
 msgid "Ancient notation templates"
 msgstr "Vorlagen für alte Notation"
 
@@ -3080,6 +3725,7 @@ msgstr "Vorlagen für alte Notation"
 #. @appendixsubsec in Documentation/fr/user/templates.itely
 #. @appendixsubsec in Documentation/es/user/templates.itely
 #. @appendixsubsec in Documentation/de/user/templates.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
 msgid "Transcription of mensural music"
 msgstr "Transkription mensuraler Musik"
 
@@ -3087,6 +3733,7 @@ msgstr "Transkription mensuraler Musik"
 #. @appendixsubsec in Documentation/fr/user/templates.itely
 #. @appendixsubsec in Documentation/es/user/templates.itely
 #. @appendixsubsec in Documentation/de/user/templates.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
 msgid "Gregorian transcription template"
 msgstr "Vorlage zur Transkription von Gregorianik"
 
@@ -3098,6 +3745,8 @@ msgstr "Vorlage zur Transkription von Gregorianik"
 #. @appendixsec in Documentation/es/user/templates.itely
 #. @node in Documentation/de/user/templates.itely
 #. @appendixsec in Documentation/de/user/templates.itely
+#. @node in Documentation/ja/user/templates.itely
+#. @appendixsec in Documentation/ja/user/templates.itely
 msgid "Jazz combo"
 msgstr "Jazz-Combo"
 
@@ -3107,6 +3756,8 @@ msgstr "Jazz-Combo"
 #. @appendixsec in Documentation/fr/user/templates.itely
 #. @node in Documentation/es/user/templates.itely
 #. @appendixsec in Documentation/es/user/templates.itely
+#. @node in Documentation/ja/user/templates.itely
+#. @appendixsec in Documentation/ja/user/templates.itely
 msgid "lilypond-book templates"
 msgstr "lilypond-book-Vorlagen"
 
@@ -3118,6 +3769,8 @@ msgstr "lilypond-book-Vorlagen"
 #. @node in Documentation/es/user/lilypond-book.itely
 #. @appendixsubsec in Documentation/de/user/templates.itely
 #. @node in Documentation/de/user/lilypond-book.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
+#. @node in Documentation/ja/user/lilypond-book.itely
 msgid "LaTeX"
 msgstr "LaTeX"
 
@@ -3137,6 +3790,10 @@ msgstr "LaTeX"
 #. @node in Documentation/de/user/lilypond-book.itely
 #. @subsection in Documentation/de/user/lilypond-book.itely
 #. @subsubheading in Documentation/de/user/lilypond-book.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
+#. @node in Documentation/ja/user/lilypond-book.itely
+#. @subsection in Documentation/ja/user/lilypond-book.itely
+#. @subsubheading in Documentation/ja/user/lilypond-book.itely
 msgid "Texinfo"
 msgstr "Texinfo"
 
@@ -3144,6 +3801,7 @@ msgstr "Texinfo"
 #. @appendixsubsec in Documentation/fr/user/templates.itely
 #. @appendixsubsec in Documentation/es/user/templates.itely
 #. @appendixsubsec in Documentation/de/user/templates.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
 msgid "xelatex"
 msgstr "xelatex"
 
@@ -3159,6 +3817,8 @@ msgstr "Muster"
 #. @appendix in Documentation/es/user/scheme-tutorial.itely
 #. @node in Documentation/de/user/scheme-tutorial.itely
 #. @appendix in Documentation/de/user/scheme-tutorial.itely
+#. @node in Documentation/ja/user/scheme-tutorial.itely
+#. @appendix in Documentation/ja/user/scheme-tutorial.itely
 msgid "Scheme tutorial"
 msgstr "Scheme-Übung"
 
@@ -3170,6 +3830,8 @@ msgstr "Scheme-Übung"
 #. @appendixsec in Documentation/es/user/scheme-tutorial.itely
 #. @node in Documentation/de/user/scheme-tutorial.itely
 #. @appendixsec in Documentation/de/user/scheme-tutorial.itely
+#. @node in Documentation/ja/user/scheme-tutorial.itely
+#. @appendixsec in Documentation/ja/user/scheme-tutorial.itely
 msgid "Tweaking with Scheme"
 msgstr "Optimierungen mit Scheme"
 
@@ -3198,6 +3860,8 @@ msgstr "GNU LilyPond -- Die Programmbenutzung"
 #. @chapter in Documentation/es/user/install.itely
 #. @node in Documentation/de/user/install.itely
 #. @chapter in Documentation/de/user/install.itely
+#. @node in Documentation/ja/user/install.itely
+#. @chapter in Documentation/ja/user/install.itely
 msgid "Install"
 msgstr "Installieren"
 
@@ -3209,6 +3873,8 @@ msgstr "Installieren"
 #. @section in Documentation/es/user/install.itely
 #. @node in Documentation/de/user/install.itely
 #. @section in Documentation/de/user/install.itely
+#. @node in Documentation/ja/user/install.itely
+#. @section in Documentation/ja/user/install.itely
 msgid "Precompiled binaries"
 msgstr "Vorkompilierte Binär-Pakete"
 
@@ -3216,6 +3882,7 @@ msgstr "Vorkompilierte Binär-Pakete"
 #. @unnumberedsubsec in Documentation/fr/user/install.itely
 #. @unnumberedsubsec in Documentation/es/user/install.itely
 #. @unnumberedsubsec in Documentation/de/user/install.itely
+#. @unnumberedsubsec in Documentation/ja/user/install.itely
 msgid "Downloading"
 msgstr "Herunterladen"
 
@@ -3227,6 +3894,8 @@ msgstr "Herunterladen"
 #. @section in Documentation/es/user/install.itely
 #. @node in Documentation/de/user/install.itely
 #. @section in Documentation/de/user/install.itely
+#. @node in Documentation/ja/user/install.itely
+#. @section in Documentation/ja/user/install.itely
 msgid "Compiling from source"
 msgstr "Aus den Quellen übersetzen"
 
@@ -3322,6 +3991,8 @@ msgstr "Internationale Schriftarten"
 #. @chapter in Documentation/es/user/setup.itely
 #. @node in Documentation/de/user/setup.itely
 #. @chapter in Documentation/de/user/setup.itely
+#. @node in Documentation/ja/user/setup.itely
+#. @chapter in Documentation/ja/user/setup.itely
 msgid "Setup"
 msgstr "Setup"
 
@@ -3333,23 +4004,37 @@ msgstr "Setup"
 #. @section in Documentation/es/user/setup.itely
 #. @node in Documentation/de/user/setup.itely
 #. @section in Documentation/de/user/setup.itely
+#. @node in Documentation/ja/user/setup.itely
+#. @section in Documentation/ja/user/setup.itely
 msgid "Setup for specific Operating Systems"
 msgstr "Setup für bestimmte Betriebssysteme"
 
 #. @node in Documentation/user/setup.itely
 #. @subsection in Documentation/user/setup.itely
+#. @node in Documentation/fr/user/setup.itely
+#. @subsection in Documentation/fr/user/setup.itely
 #. @node in Documentation/es/user/setup.itely
 #. @subsection in Documentation/es/user/setup.itely
+#. @node in Documentation/de/user/setup.itely
+#. @subsection in Documentation/de/user/setup.itely
+#. @node in Documentation/ja/user/setup.itely
+#. @subsection in Documentation/ja/user/setup.itely
 msgid "Setup for MacOS X"
 msgstr "Einrichtung für MacOS X"
 
 #. @subsubheading in Documentation/user/setup.itely
+#. @subsubheading in Documentation/fr/user/setup.itely
 #. @subsubheading in Documentation/es/user/setup.itely
+#. @subsubheading in Documentation/de/user/setup.itely
+#. @subsubheading in Documentation/ja/user/setup.itely
 msgid "Using Python scripts on MacOS 10.3 or 10.4"
 msgstr "Benutzung von Python-Skripten unter MacOS 10.3 oder 10.4"
 
 #. @subsubheading in Documentation/user/setup.itely
+#. @subsubheading in Documentation/fr/user/setup.itely
 #. @subsubheading in Documentation/es/user/setup.itely
+#. @subsubheading in Documentation/de/user/setup.itely
+#. @subsubheading in Documentation/ja/user/setup.itely
 msgid "MacOS X on the command line"
 msgstr "MacOS X auf der Kommandozeile"
 
@@ -3361,6 +4046,8 @@ msgstr "MacOS X auf der Kommandozeile"
 #. @section in Documentation/es/user/setup.itely
 #. @node in Documentation/de/user/setup.itely
 #. @section in Documentation/de/user/setup.itely
+#. @node in Documentation/ja/user/setup.itely
+#. @section in Documentation/ja/user/setup.itely
 msgid "Text editor support"
 msgstr "Unterstützung von Texteditoren"
 
@@ -3372,6 +4059,8 @@ msgstr "Unterstützung von Texteditoren"
 #. @subsection in Documentation/es/user/setup.itely
 #. @node in Documentation/de/user/setup.itely
 #. @subsection in Documentation/de/user/setup.itely
+#. @node in Documentation/ja/user/setup.itely
+#. @subsection in Documentation/ja/user/setup.itely
 msgid "Emacs mode"
 msgstr "Emacs-Modus"
 
@@ -3383,6 +4072,8 @@ msgstr "Emacs-Modus"
 #. @subsection in Documentation/es/user/setup.itely
 #. @node in Documentation/de/user/setup.itely
 #. @subsection in Documentation/de/user/setup.itely
+#. @node in Documentation/ja/user/setup.itely
+#. @subsection in Documentation/ja/user/setup.itely
 msgid "Vim mode"
 msgstr "Vim-Modus"
 
@@ -3394,6 +4085,8 @@ msgstr "Vim-Modus"
 #. @subsection in Documentation/es/user/setup.itely
 #. @node in Documentation/de/user/setup.itely
 #. @subsection in Documentation/de/user/setup.itely
+#. @node in Documentation/ja/user/setup.itely
+#. @subsection in Documentation/ja/user/setup.itely
 msgid "jEdit"
 msgstr "jEdit"
 
@@ -3405,6 +4098,8 @@ msgstr "jEdit"
 #. @subsection in Documentation/es/user/setup.itely
 #. @node in Documentation/de/user/setup.itely
 #. @subsection in Documentation/de/user/setup.itely
+#. @node in Documentation/ja/user/setup.itely
+#. @subsection in Documentation/ja/user/setup.itely
 msgid "TexShop"
 msgstr "TexShop"
 
@@ -3416,6 +4111,8 @@ msgstr "TexShop"
 #. @subsection in Documentation/es/user/setup.itely
 #. @node in Documentation/de/user/setup.itely
 #. @subsection in Documentation/de/user/setup.itely
+#. @node in Documentation/ja/user/setup.itely
+#. @subsection in Documentation/ja/user/setup.itely
 msgid "TextMate"
 msgstr "TextMate"
 
@@ -3427,6 +4124,8 @@ msgstr "TextMate"
 #. @subsection in Documentation/es/user/setup.itely
 #. @node in Documentation/de/user/setup.itely
 #. @subsection in Documentation/de/user/setup.itely
+#. @node in Documentation/ja/user/setup.itely
+#. @subsection in Documentation/ja/user/setup.itely
 msgid "LilyKDE"
 msgstr "LilyKDE"
 
@@ -3438,6 +4137,8 @@ msgstr "LilyKDE"
 #. @section in Documentation/es/user/setup.itely
 #. @node in Documentation/de/user/setup.itely
 #. @section in Documentation/de/user/setup.itely
+#. @node in Documentation/ja/user/setup.itely
+#. @section in Documentation/ja/user/setup.itely
 msgid "Point and click"
 msgstr "Point and click"
 
@@ -3449,6 +4150,8 @@ msgstr "Point and click"
 #. @chapter in Documentation/es/user/running.itely
 #. @node in Documentation/de/user/running.itely
 #. @chapter in Documentation/de/user/running.itely
+#. @node in Documentation/ja/user/running.itely
+#. @chapter in Documentation/ja/user/running.itely
 msgid "Running LilyPond"
 msgstr "LilyPond starten"
 
@@ -3460,6 +4163,8 @@ msgstr "LilyPond starten"
 #. @section in Documentation/es/user/running.itely
 #. @node in Documentation/de/user/running.itely
 #. @section in Documentation/de/user/running.itely
+#. @node in Documentation/ja/user/running.itely
+#. @section in Documentation/ja/user/running.itely
 msgid "Normal usage"
 msgstr "Übliche Programmbenutzung"
 
@@ -3471,6 +4176,8 @@ msgstr "Übliche Programmbenutzung"
 #. @section in Documentation/es/user/running.itely
 #. @node in Documentation/de/user/running.itely
 #. @section in Documentation/de/user/running.itely
+#. @node in Documentation/ja/user/running.itely
+#. @section in Documentation/ja/user/running.itely
 msgid "Command-line usage"
 msgstr "Benutzung auf der Kommandozeile"
 
@@ -3479,22 +4186,28 @@ msgstr "Benutzung auf der Kommandozeile"
 #. @subsection in Documentation/fr/user/running.itely
 #. @node in Documentation/es/user/running.itely
 #. @node in Documentation/de/user/running.itely
-#. @subsection in Documentation/de/user/running.itely
+#. @node in Documentation/ja/user/running.itely
 msgid "Invoking lilypond"
 msgstr "lilypond aufrufen"
 
 #. @subsection in Documentation/user/running.itely
 #. @subsection in Documentation/es/user/running.itely
+#. @subsection in Documentation/de/user/running.itely
+#. @subsection in Documentation/ja/user/running.itely
 msgid "Invoking @command{lilypond}"
 msgstr "@command{lilypond} aufrufen"
 
 #. @node in Documentation/user/running.itely
 #. @node in Documentation/es/user/running.itely
+#. @node in Documentation/de/user/running.itely
+#. @node in Documentation/ja/user/running.itely
 msgid "Command line options for lilypond"
 msgstr "Optionen von lilypond auf der Kommandozeile"
 
 #. @subsection in Documentation/user/running.itely
 #. @subsection in Documentation/es/user/running.itely
+#. @subsection in Documentation/de/user/running.itely
+#. @subsection in Documentation/ja/user/running.itely
 msgid "Command line options for @command{lilypond}"
 msgstr "Optionen auf der Kommandozeile für @command{lilypond}"
 
@@ -3506,6 +4219,8 @@ msgstr "Optionen auf der Kommandozeile für @command{lilypond}"
 #. @subsection in Documentation/es/user/running.itely
 #. @node in Documentation/de/user/running.itely
 #. @subsection in Documentation/de/user/running.itely
+#. @node in Documentation/ja/user/running.itely
+#. @subsection in Documentation/ja/user/running.itely
 msgid "Environment variables"
 msgstr "Umgebungsvariablen"
 
@@ -3517,6 +4232,8 @@ msgstr "Umgebungsvariablen"
 #. @section in Documentation/es/user/running.itely
 #. @node in Documentation/de/user/running.itely
 #. @section in Documentation/de/user/running.itely
+#. @node in Documentation/ja/user/running.itely
+#. @section in Documentation/ja/user/running.itely
 msgid "Error messages"
 msgstr "Fehlermeldungen"
 
@@ -3524,21 +4241,28 @@ msgstr "Fehlermeldungen"
 #. @node in Documentation/fr/user/running.itely
 #. @node in Documentation/es/user/running.itely
 #. @node in Documentation/de/user/running.itely
+#. @node in Documentation/ja/user/running.itely
 msgid "Updating files with convert-ly"
 msgstr "Dateien mit convert-ly aktualisieren"
 
 #. @section in Documentation/user/running.itely
 #. @section in Documentation/es/user/running.itely
+#. @section in Documentation/de/user/running.itely
+#. @section in Documentation/ja/user/running.itely
 msgid "Updating files with @command{convert-ly}"
 msgstr "Dateien mit @command{convert-ly} aktualisieren"
 
 #. @node in Documentation/user/running.itely
 #. @node in Documentation/es/user/running.itely
+#. @node in Documentation/de/user/running.itely
+#. @node in Documentation/ja/user/running.itely
 msgid "Command line options for convert-ly"
 msgstr "Optionen von convert-ly auf der Kommandozeile"
 
 #. @subsection in Documentation/user/running.itely
 #. @subsection in Documentation/es/user/running.itely
+#. @subsection in Documentation/de/user/running.itely
+#. @subsection in Documentation/ja/user/running.itely
 msgid "Command line options for @command{convert-ly}"
 msgstr "Optionen von @command{convert-ly} auf der Kommandozeile"
 
@@ -3546,6 +4270,7 @@ msgstr "Optionen von @command{convert-ly} auf der Kommandozeile"
 #. @node in Documentation/fr/user/running.itely
 #. @node in Documentation/es/user/running.itely
 #. @node in Documentation/de/user/running.itely
+#. @node in Documentation/ja/user/running.itely
 msgid "Problems with convert-ly"
 msgstr "Probleme mit convert-ly"
 
@@ -3553,6 +4278,7 @@ msgstr "Probleme mit convert-ly"
 #. @subsection in Documentation/fr/user/running.itely
 #. @subsection in Documentation/es/user/running.itely
 #. @subsection in Documentation/de/user/running.itely
+#. @subsection in Documentation/ja/user/running.itely
 msgid "Problems with @code{convert-ly}"
 msgstr "Probleme mit @code{convert-ly}"
 
@@ -3564,6 +4290,8 @@ msgstr "Probleme mit @code{convert-ly}"
 #. @section in Documentation/es/user/running.itely
 #. @node in Documentation/de/user/running.itely
 #. @section in Documentation/de/user/running.itely
+#. @node in Documentation/ja/user/running.itely
+#. @section in Documentation/ja/user/running.itely
 msgid "Reporting bugs"
 msgstr "Fehler melden"
 
@@ -3571,6 +4299,7 @@ msgstr "Fehler melden"
 #. @node in Documentation/fr/user/lilypond-book.itely
 #. @node in Documentation/es/user/lilypond-book.itely
 #. @node in Documentation/de/user/lilypond-book.itely
+#. @node in Documentation/ja/user/lilypond-book.itely
 msgid "LilyPond-book"
 msgstr "LilyPond-book"
 
@@ -3578,6 +4307,7 @@ msgstr "LilyPond-book"
 #. @chapter in Documentation/fr/user/lilypond-book.itely
 #. @chapter in Documentation/es/user/lilypond-book.itely
 #. @chapter in Documentation/de/user/lilypond-book.itely
+#. @chapter in Documentation/ja/user/lilypond-book.itely
 msgid "@command{lilypond-book}: Integrating text and music"
 msgstr "@command{lilypond-book}: Noten in den Text integrieren"
 
@@ -3589,6 +4319,8 @@ msgstr "@command{lilypond-book}: Noten in den Text integrieren"
 #. @section in Documentation/es/user/lilypond-book.itely
 #. @node in Documentation/de/user/lilypond-book.itely
 #. @section in Documentation/de/user/lilypond-book.itely
+#. @node in Documentation/ja/user/lilypond-book.itely
+#. @section in Documentation/ja/user/lilypond-book.itely
 msgid "An example of a musicological document"
 msgstr "Ein musikwissenschaftlicher Text als Beispiel"
 
@@ -3596,6 +4328,7 @@ msgstr "Ein musikwissenschaftlicher Text als Beispiel"
 #. @subheading in Documentation/fr/user/lilypond-book.itely
 #. @subheading in Documentation/es/user/lilypond-book.itely
 #. @subheading in Documentation/de/user/lilypond-book.itely
+#. @subheading in Documentation/ja/user/lilypond-book.itely
 msgid "Input"
 msgstr "Eingabe"
 
@@ -3603,6 +4336,7 @@ msgstr "Eingabe"
 #. @subheading in Documentation/fr/user/lilypond-book.itely
 #. @subheading in Documentation/es/user/lilypond-book.itely
 #. @subheading in Documentation/de/user/lilypond-book.itely
+#. @subheading in Documentation/ja/user/lilypond-book.itely
 msgid "Processing"
 msgstr "Verarbeitung"
 
@@ -3610,6 +4344,7 @@ msgstr "Verarbeitung"
 #. @subheading in Documentation/fr/user/lilypond-book.itely
 #. @subheading in Documentation/es/user/lilypond-book.itely
 #. @subheading in Documentation/de/user/lilypond-book.itely
+#. @subheading in Documentation/ja/user/lilypond-book.itely
 msgid "Output"
 msgstr "Ausgabe"
 
@@ -3621,6 +4356,8 @@ msgstr "Ausgabe"
 #. @section in Documentation/es/user/lilypond-book.itely
 #. @node in Documentation/de/user/lilypond-book.itely
 #. @section in Documentation/de/user/lilypond-book.itely
+#. @node in Documentation/ja/user/lilypond-book.itely
+#. @section in Documentation/ja/user/lilypond-book.itely
 msgid "Integrating music and text"
 msgstr "Noten in Text integrieren"
 
@@ -3632,6 +4369,8 @@ msgstr "Noten in Text integrieren"
 #. @subsubheading in Documentation/es/user/lilypond-book.itely
 #. @subsection in Documentation/de/user/lilypond-book.itely
 #. @subsubheading in Documentation/de/user/lilypond-book.itely
+#. @subsection in Documentation/ja/user/lilypond-book.itely
+#. @subsubheading in Documentation/ja/user/lilypond-book.itely
 msgid "@LaTeX{}"
 msgstr "@LaTeX{}"
 
@@ -3643,6 +4382,8 @@ msgstr "@LaTeX{}"
 #. @subsection in Documentation/es/user/lilypond-book.itely
 #. @node in Documentation/de/user/lilypond-book.itely
 #. @subsection in Documentation/de/user/lilypond-book.itely
+#. @node in Documentation/ja/user/lilypond-book.itely
+#. @subsection in Documentation/ja/user/lilypond-book.itely
 msgid "HTML"
 msgstr "HTML"
 
@@ -3654,6 +4395,8 @@ msgstr "HTML"
 #. @subsection in Documentation/es/user/lilypond-book.itely
 #. @node in Documentation/de/user/lilypond-book.itely
 #. @subsection in Documentation/de/user/lilypond-book.itely
+#. @node in Documentation/ja/user/lilypond-book.itely
+#. @subsection in Documentation/ja/user/lilypond-book.itely
 msgid "DocBook"
 msgstr "DocBook"
 
@@ -3661,6 +4404,7 @@ msgstr "DocBook"
 #. @subheading in Documentation/fr/user/lilypond-book.itely
 #. @subheading in Documentation/es/user/lilypond-book.itely
 #. @subheading in Documentation/de/user/lilypond-book.itely
+#. @subheading in Documentation/ja/user/lilypond-book.itely
 msgid "Common conventions"
 msgstr "Definitionen"
 
@@ -3668,6 +4412,7 @@ msgstr "Definitionen"
 #. @subheading in Documentation/fr/user/lilypond-book.itely
 #. @subheading in Documentation/es/user/lilypond-book.itely
 #. @subheading in Documentation/de/user/lilypond-book.itely
+#. @subheading in Documentation/ja/user/lilypond-book.itely
 msgid "Including a LilyPond file"
 msgstr "Eine LilyPond-Datei einfügen"
 
@@ -3675,6 +4420,7 @@ msgstr "Eine LilyPond-Datei einfügen"
 #. @subheading in Documentation/fr/user/lilypond-book.itely
 #. @subheading in Documentation/es/user/lilypond-book.itely
 #. @subheading in Documentation/de/user/lilypond-book.itely
+#. @subheading in Documentation/ja/user/lilypond-book.itely
 msgid "Including LilyPond code"
 msgstr "LilyPond-Code einfügen"
 
@@ -3682,6 +4428,7 @@ msgstr "LilyPond-Code einfügen"
 #. @subheading in Documentation/fr/user/lilypond-book.itely
 #. @subheading in Documentation/es/user/lilypond-book.itely
 #. @subheading in Documentation/de/user/lilypond-book.itely
+#. @subheading in Documentation/ja/user/lilypond-book.itely
 msgid "Processing the DocBook document"
 msgstr "Ein DocBook-Dokument übersetzen"
 
@@ -3693,6 +4440,8 @@ msgstr "Ein DocBook-Dokument übersetzen"
 #. @section in Documentation/es/user/lilypond-book.itely
 #. @node in Documentation/de/user/lilypond-book.itely
 #. @section in Documentation/de/user/lilypond-book.itely
+#. @node in Documentation/ja/user/lilypond-book.itely
+#. @section in Documentation/ja/user/lilypond-book.itely
 msgid "Music fragment options"
 msgstr "Die Musikfragment-Optionen"
 
@@ -3700,6 +4449,7 @@ msgstr "Die Musikfragment-Optionen"
 #. @node in Documentation/fr/user/lilypond-book.itely
 #. @node in Documentation/es/user/lilypond-book.itely
 #. @node in Documentation/de/user/lilypond-book.itely
+#. @node in Documentation/ja/user/lilypond-book.itely
 msgid "Invoking lilypond-book"
 msgstr "lilypond-book aufrufen"
 
@@ -3707,6 +4457,7 @@ msgstr "lilypond-book aufrufen"
 #. @section in Documentation/fr/user/lilypond-book.itely
 #. @section in Documentation/es/user/lilypond-book.itely
 #. @section in Documentation/de/user/lilypond-book.itely
+#. @section in Documentation/ja/user/lilypond-book.itely
 msgid "Invoking @command{lilypond-book}"
 msgstr "@command{lilypond-book} aufrufen"
 
@@ -3714,6 +4465,7 @@ msgstr "@command{lilypond-book} aufrufen"
 #. @subheading in Documentation/fr/user/lilypond-book.itely
 #. @subheading in Documentation/es/user/lilypond-book.itely
 #. @subheading in Documentation/de/user/lilypond-book.itely
+#. @subheading in Documentation/ja/user/lilypond-book.itely
 msgid "Format-specific instructions"
 msgstr "Formatabhängige Anweisungen"
 
@@ -3722,9 +4474,8 @@ msgstr "Formatabhängige Anweisungen"
 #. @subsection in Documentation/fr/user/running.itely
 #. @subheading in Documentation/fr/user/lilypond-book.itely
 #. @subheading in Documentation/es/user/lilypond-book.itely
-#. @node in Documentation/de/user/running.itely
-#. @subsection in Documentation/de/user/running.itely
 #. @subheading in Documentation/de/user/lilypond-book.itely
+#. @subheading in Documentation/ja/user/lilypond-book.itely
 msgid "Command line options"
 msgstr "Optionen auf der Kommandozeile"
 
@@ -3736,6 +4487,8 @@ msgstr "Optionen auf der Kommandozeile"
 #. @section in Documentation/es/user/lilypond-book.itely
 #. @node in Documentation/de/user/lilypond-book.itely
 #. @section in Documentation/de/user/lilypond-book.itely
+#. @node in Documentation/ja/user/lilypond-book.itely
+#. @section in Documentation/ja/user/lilypond-book.itely
 msgid "Filename extensions"
 msgstr "Dateiendungen"
 
@@ -3743,6 +4496,7 @@ msgstr "Dateiendungen"
 #. @node in Documentation/fr/user/lilypond-book.itely
 #. @node in Documentation/es/user/lilypond-book.itely
 #. @node in Documentation/de/user/lilypond-book.itely
+#. @node in Documentation/ja/user/lilypond-book.itely
 msgid "Alternate methods of mixing text and music"
 msgstr "Alternative Methoden, Text und Musik zu kombinieren"
 
@@ -3750,6 +4504,7 @@ msgstr "Alternative Methoden, Text und Musik zu kombinieren"
 #. @section in Documentation/fr/user/lilypond-book.itely
 #. @section in Documentation/es/user/lilypond-book.itely
 #. @section in Documentation/de/user/lilypond-book.itely
+#. @section in Documentation/ja/user/lilypond-book.itely
 msgid "Alternative methods of mixing text and music"
 msgstr "Alternative Methoden, Text mit Musik zu kombinieren"
 
@@ -3761,6 +4516,8 @@ msgstr "Alternative Methoden, Text mit Musik zu kombinieren"
 #. @unnumberedsubsec in Documentation/es/user/lilypond-book.itely
 #. @node in Documentation/de/user/lilypond-book.itely
 #. @subsection in Documentation/de/user/lilypond-book.itely
+#. @node in Documentation/ja/user/lilypond-book.itely
+#. @unnumberedsubsec in Documentation/ja/user/lilypond-book.itely
 msgid "Many quotes from a large score"
 msgstr "Viele Zitate aus einer langen Partitur"
 
@@ -3772,6 +4529,8 @@ msgstr "Viele Zitate aus einer langen Partitur"
 #. @unnumberedsubsec in Documentation/es/user/lilypond-book.itely
 #. @node in Documentation/de/user/lilypond-book.itely
 #. @subsection in Documentation/de/user/lilypond-book.itely
+#. @node in Documentation/ja/user/lilypond-book.itely
+#. @unnumberedsubsec in Documentation/ja/user/lilypond-book.itely
 msgid "Inserting LilyPond output into OpenOffice.org"
 msgstr "LilyPond-Noten in OpenOffice.org integrieren"
 
@@ -3783,6 +4542,8 @@ msgstr "LilyPond-Noten in OpenOffice.org integrieren"
 #. @unnumberedsubsec in Documentation/es/user/lilypond-book.itely
 #. @node in Documentation/de/user/lilypond-book.itely
 #. @subsection in Documentation/de/user/lilypond-book.itely
+#. @node in Documentation/ja/user/lilypond-book.itely
+#. @unnumberedsubsec in Documentation/ja/user/lilypond-book.itely
 msgid "Inserting LilyPond output into other programs"
 msgstr "LilyPond-Noten in andere Programme integrieren"
 
@@ -3794,6 +4555,8 @@ msgstr "LilyPond-Noten in andere Programme integrieren"
 #. @chapter in Documentation/es/user/converters.itely
 #. @node in Documentation/de/user/converters.itely
 #. @chapter in Documentation/de/user/converters.itely
+#. @node in Documentation/ja/user/converters.itely
+#. @chapter in Documentation/ja/user/converters.itely
 msgid "Converting from other formats"
 msgstr "Von anderen Formaten konvertieren"
 
@@ -3801,6 +4564,7 @@ msgstr "Von anderen Formaten konvertieren"
 #. @node in Documentation/fr/user/converters.itely
 #. @node in Documentation/es/user/converters.itely
 #. @node in Documentation/de/user/converters.itely
+#. @node in Documentation/ja/user/converters.itely
 msgid "Invoking midi2ly"
 msgstr "midi2ly aufrufen"
 
@@ -3808,6 +4572,7 @@ msgstr "midi2ly aufrufen"
 #. @section in Documentation/fr/user/converters.itely
 #. @section in Documentation/es/user/converters.itely
 #. @section in Documentation/de/user/converters.itely
+#. @section in Documentation/ja/user/converters.itely
 msgid "Invoking @command{midi2ly}"
 msgstr "@command{midi2ly} aufrufen"
 
@@ -3815,6 +4580,7 @@ msgstr "@command{midi2ly} aufrufen"
 #. @node in Documentation/fr/user/converters.itely
 #. @node in Documentation/es/user/converters.itely
 #. @node in Documentation/de/user/converters.itely
+#. @node in Documentation/ja/user/converters.itely
 msgid "Invoking musicxml2ly"
 msgstr "muscxml2ly aufrufen"
 
@@ -3822,6 +4588,7 @@ msgstr "muscxml2ly aufrufen"
 #. @section in Documentation/fr/user/converters.itely
 #. @section in Documentation/es/user/converters.itely
 #. @section in Documentation/de/user/converters.itely
+#. @section in Documentation/ja/user/converters.itely
 msgid "Invoking @code{musicxml2ly}"
 msgstr "@command{muscxml2ly} aufrufen"
 
@@ -3829,6 +4596,7 @@ msgstr "@command{muscxml2ly} aufrufen"
 #. @node in Documentation/fr/user/converters.itely
 #. @node in Documentation/es/user/converters.itely
 #. @node in Documentation/de/user/converters.itely
+#. @node in Documentation/ja/user/converters.itely
 msgid "Invoking abc2ly"
 msgstr "abc2ly aufrufen"
 
@@ -3836,6 +4604,7 @@ msgstr "abc2ly aufrufen"
 #. @section in Documentation/fr/user/converters.itely
 #. @section in Documentation/es/user/converters.itely
 #. @section in Documentation/de/user/converters.itely
+#. @section in Documentation/ja/user/converters.itely
 msgid "Invoking @code{abc2ly}"
 msgstr "@command{abc2ly} aufrufen"
 
@@ -3843,6 +4612,7 @@ msgstr "@command{abc2ly} aufrufen"
 #. @node in Documentation/fr/user/converters.itely
 #. @node in Documentation/es/user/converters.itely
 #. @node in Documentation/de/user/converters.itely
+#. @node in Documentation/ja/user/converters.itely
 msgid "Invoking etf2ly"
 msgstr "etf2ly aufrufen"
 
@@ -3850,6 +4620,7 @@ msgstr "etf2ly aufrufen"
 #. @section in Documentation/fr/user/converters.itely
 #. @section in Documentation/es/user/converters.itely
 #. @section in Documentation/de/user/converters.itely
+#. @section in Documentation/ja/user/converters.itely
 msgid "Invoking @command{etf2ly}"
 msgstr "@command{etf2ly} aufrufen"
 
@@ -3861,12 +4632,15 @@ msgstr "@command{etf2ly} aufrufen"
 #. @section in Documentation/es/user/converters.itely
 #. @node in Documentation/de/user/converters.itely
 #. @section in Documentation/de/user/converters.itely
+#. @node in Documentation/ja/user/converters.itely
+#. @section in Documentation/ja/user/converters.itely
 msgid "Generating LilyPond files"
 msgstr "LilyPond-Dateien erstellen"
 
 #. @top in Documentation/user/lilypond.tely
+#. @top in Documentation/de/user/lilypond.tely
 msgid "GNU LilyPond --- Notation Reference"
-msgstr "GNU LilyPond -- Die Notationsreferenz"
+msgstr "GNU LilyPond -- Notationsreferenz"
 
 #. @chapheading in Documentation/user/lilypond.tely
 msgid "The music typesetter"
@@ -3894,26 +4668,55 @@ msgstr "Index der LilyPond-Befehle"
 msgid "Musical notation"
 msgstr "Musikalische Notation"
 
-#. Documentation/user/pitches.itely:654 (variable)
-#. Documentation/user/input.itely:997 (variable)
-#. Documentation/user/input.itely:1016 (variable)
-#. Documentation/user/input.itely:1053 (variable)
-#. Documentation/user/input.itely:1068 (variable)
+#. Documentation/user/pitches.itely:688 (variable)
+#. Documentation/user/input.itely:1043 (variable)
+#. Documentation/user/input.itely:1062 (variable)
+#. Documentation/user/input.itely:1099 (variable)
+#. Documentation/user/input.itely:1114 (variable)
+#. input/lsr/changing-the-chord-names-to-german-or-semi-german-notation.ly:29 (variable)
+#. input/lsr/controlling-tuplet-bracket-visibility.ly:20 (variable)
+#. input/lsr/letter-tablature-formatting.ly:25 (variable)
+#. input/lsr/string-quartet-template-with-separate-parts.ly:112 (variable)
+#. input/lsr/transposing-pitches-with-minimum-accidentals-smart-transpose.ly:137 (variable)
+#. input/lsr/vertically-aligned-dynamics-and-textscripts.ly:50 (variable)
 msgid "music"
 msgstr "Noten"
 
-#. Documentation/user/pitches.itely:1031 (comment)
+#. Documentation/user/pitches.itely:1082 (comment)
 msgid "not strictly necessary, but a good reminder"
 msgstr "nicht unbdingt nötig, aber gut zu erinnern"
 
-#. Documentation/user/pitches.itely:1123 (variable)
+#. Documentation/user/pitches.itely:1089 (context id)
+#. Documentation/user/staff.itely:1116 (variable)
+msgid "clarinet"
+msgstr "Klarinette"
+
+#. Documentation/user/pitches.itely:1174 (variable)
 msgid "musicA"
 msgstr "NotenA"
 
-#. Documentation/user/pitches.itely:1137 (variable)
+#. Documentation/user/pitches.itely:1188 (variable)
 msgid "musicB"
 msgstr "NotenB"
 
+#. Documentation/user/pitches.itely:1207 (context id)
+#. Documentation/user/keyboards.itely:175 (context id)
+#. Documentation/user/keyboards.itely:274 (context id)
+#. Documentation/user/percussion.itely:175 (variable)
+#. Documentation/user/percussion.itely:365 (variable)
+#. input/lsr/jazz-combo-template.ly:241 (variable)
+msgid "up"
+msgstr "oben"
+
+#. Documentation/user/pitches.itely:1211 (context id)
+#. Documentation/user/keyboards.itely:185 (context id)
+#. Documentation/user/keyboards.itely:283 (context id)
+#. Documentation/user/percussion.itely:178 (variable)
+#. Documentation/user/percussion.itely:366 (variable)
+#. input/lsr/jazz-combo-template.ly:247 (variable)
+msgid "down"
+msgstr "unten"
+
 #. @node in Documentation/user/pitches.itely
 #. @subsection in Documentation/user/pitches.itely
 #. @node in Documentation/fr/user/pitches.itely
@@ -3954,6 +4757,7 @@ msgid "fifth"
 msgstr "Quinte"
 
 #. @rglos in Documentation/user/pitches.itely
+#. @rglos in Documentation/es/user/pitches.itely
 #. @rglos in Documentation/de/user/pitches.itely
 msgid "quarter tone"
 msgstr "Viertelton"
@@ -4153,245 +4957,186 @@ msgstr "Notenköpfe mit besonderen Formen"
 msgid "Improvisation"
 msgstr "Improvisation"
 
-#. Documentation/user/rhythms.itely:294 (comment)
+#. Documentation/user/rhythms.itely:303 (comment)
 msgid "Alter durations to triplets"
 msgstr "Dauern zu Triolen verändern"
 
-#. Documentation/user/rhythms.itely:296 (comment)
-#. Documentation/user/rhythms.itely:321 (comment)
+#. Documentation/user/rhythms.itely:305 (comment)
+#. Documentation/user/rhythms.itely:332 (comment)
 msgid "Normal durations"
 msgstr "Normale Tondauern"
 
-#. Documentation/user/rhythms.itely:298 (comment)
+#. Documentation/user/rhythms.itely:307 (comment)
 msgid "Double the duration of chord"
 msgstr "Dauer der Akkorde verdoppeln"
 
-#. Documentation/user/rhythms.itely:300 (comment)
+#. Documentation/user/rhythms.itely:309 (comment)
 msgid "Duration of quarter, appears like sixteenth"
 msgstr "Dauer einer Vietel, erscheint vie eine Sechszehntel"
 
-#. Documentation/user/rhythms.itely:323 (comment)
+#. Documentation/user/rhythms.itely:334 (comment)
 msgid "Scale music by *2/3"
 msgstr "Noten mit 2/3 skalieren"
 
-#. Documentation/user/rhythms.itely:327 (comment)
+#. Documentation/user/rhythms.itely:338 (comment)
 msgid "Scale music by *2"
 msgstr "Noten *2 skalieren"
 
-#. Documentation/user/rhythms.itely:412 (comment)
+#. Documentation/user/rhythms.itely:425 (comment)
 msgid "First alternative: following note is tied normally"
 msgstr "Erste Weiche: nächste Note ist normal gebunden"
 
-#. Documentation/user/rhythms.itely:414 (comment)
+#. Documentation/user/rhythms.itely:427 (comment)
 msgid "Second alternative: following note has a repeated tie"
 msgstr "Zweite Weiche: folgende Note hat einen Wiederholten Bindebogen"
 
-#. Documentation/user/rhythms.itely:531 (comment)
+#. Documentation/user/rhythms.itely:559 (comment)
 msgid "These two lines are just to prettify this example"
 msgstr "Die zwei Linien sind nur zur Verschönerung"
 
-#. Documentation/user/rhythms.itely:534 (comment)
+#. Documentation/user/rhythms.itely:562 (comment)
 msgid "Print a maxima rest, equal to four breves"
 msgstr "Setze Maxima-Pause, gleich vier Breven"
 
-#. Documentation/user/rhythms.itely:536 (comment)
+#. Documentation/user/rhythms.itely:564 (comment)
 msgid "Print a longa rest, equal to two breves"
 msgstr "Setze Longa-Pause, gleich zwei Breven"
 
-#. Documentation/user/rhythms.itely:538 (comment)
+#. Documentation/user/rhythms.itely:566 (comment)
 msgid "Print a breve rest"
 msgstr "Setze Breve-Pause"
 
-#. Documentation/user/rhythms.itely:640 (comment)
+#. Documentation/user/rhythms.itely:675 (comment)
 msgid "This is valid input, but does nothing"
 msgstr "Gültiger Eingabecode, aber tut nichts"
 
-#. Documentation/user/rhythms.itely:666 (comment)
-#. Documentation/user/rhythms.itely:719 (comment)
+#. Documentation/user/rhythms.itely:703 (comment)
+#. Documentation/user/rhythms.itely:758 (comment)
 msgid "Rest measures contracted to single measure"
 msgstr "Pausentakte zu einem einzelnen Takt zusammegezogen"
 
-#. Documentation/user/rhythms.itely:715 (comment)
+#. Documentation/user/rhythms.itely:754 (comment)
+#. input/lsr/avoiding-collisions-with-chord-fingerings.ly:24 (comment)
 msgid "Default behavior"
 msgstr "Standart"
 
-#. Documentation/user/rhythms.itely:722 (comment)
+#. Documentation/user/rhythms.itely:761 (comment)
 msgid "Rest measures expanded"
 msgstr "Pausentakte \tausklappen"
 
-#. Documentation/user/rhythms.itely:755 (comment)
+#. Documentation/user/rhythms.itely:797 (comment)
 msgid "This fails, as the wrong object name is specified"
 msgstr ""
 "Das funktioniert nicht, weil die falsche Objektbezeichnung angegeben ist"
 
-#. Documentation/user/rhythms.itely:758 (comment)
+#. Documentation/user/rhythms.itely:800 (comment)
 msgid "This is correct and works"
 msgstr "Das stimmt und funktioniert"
 
-#. Documentation/user/rhythms.itely:880 (comment)
+#. Documentation/user/rhythms.itely:934 (comment)
 msgid "Default style"
 msgstr "Standardstil"
 
-#. Documentation/user/rhythms.itely:883 (comment)
+#. Documentation/user/rhythms.itely:937 (comment)
 msgid "Change to numeric style"
 msgstr "Wechsel zum nummerierten Stil"
 
-#. Documentation/user/rhythms.itely:887 (comment)
+#. Documentation/user/rhythms.itely:941 (comment)
 msgid "Revert to default style"
 msgstr "Zurück zum Standard"
 
-#. Documentation/user/rhythms.itely:916 (comment)
-msgid "Change time signature but keep 3/4 beaming"
-msgstr ""
-
-#. Documentation/user/rhythms.itely:917 (comment)
-#, fuzzy
-msgid "due to unchanged beatLength"
-msgstr "aufgrund von beatLength"
-
-#. Documentation/user/rhythms.itely:921 (comment)
-msgid "Lose 3/4 beaming now beatLength has changed to 16"
-msgstr ""
-
-#. Documentation/user/rhythms.itely:1044 (comment)
+#. Documentation/user/rhythms.itely:1087 (comment)
 msgid "Show all bar numbers"
 msgstr "Alle Taknummern anzeigen"
 
-#. Documentation/user/rhythms.itely:1154 (comment)
+#. Documentation/user/rhythms.itely:1217 (comment)
 msgid "Now each staff has its own time signature."
 msgstr "Jetzt hat jedes System eine eigene Taktart"
 
-#. Documentation/user/rhythms.itely:1571 (comment)
-#, fuzzy
-msgid "auto beam on 1/4 note groups"
-msgstr "autom. Balken für 1/4-Notengruppen\t"
-
-#. Documentation/user/rhythms.itely:1573 (comment)
-msgid "no defined auto-beaming for this time sig"
-msgstr "für diese Taktart keine autom. Balken definiert"
-
-#. Documentation/user/rhythms.itely:1577 (comment)
-#, fuzzy
-msgid "keep 3/4 beaming"
-msgstr "3/4-Balken behalten"
-
-#. Documentation/user/rhythms.itely:1578 (comment)
-msgid "due to beatLength"
-msgstr "aufgrund von beatLength"
-
-#. Documentation/user/rhythms.itely:1580 (comment)
-msgid "beam on 1/8 notes"
-msgstr "Balken für 1/8-Noten"
-
-#. Documentation/user/rhythms.itely:1583 (comment)
-msgid "beam on 3/16, 7/16, 9/16, 12/16"
-msgstr "Balken für 3/16, 7/16, 9/16, 12/16"
-
-#. Documentation/user/rhythms.itely:1612 (comment)
-msgid "Set beam sub-group length to an eighth note"
-msgstr "Balkenuntergruppenlänge als Achtel definieren"
-
-#. Documentation/user/rhythms.itely:1615 (comment)
-msgid "Set beam sub-group length to a sixteenth note"
-msgstr "Balkenuntergruppenlänge als Sechszehntel definieren"
+#. Documentation/user/rhythms.itely:1345 (context id)
+msgid "myRhythm"
+msgstr "meinRhythmus"
 
-#. Documentation/user/rhythms.itely:1730 (comment)
+#. Documentation/user/rhythms.itely:1713 (comment)
 msgid "end 1/16 beams for all time signatures at the 1/16 moment"
 msgstr "1/16-Balken für alle Taktarten beim 1/16-Moment beenden"
 
-#. Documentation/user/rhythms.itely:1734 (comment)
+#. Documentation/user/rhythms.itely:1717 (comment)
 msgid "end 1/32 beams for all time signatures at the 1/16 moment"
 msgstr "1/23-Balken für alle Taktarten beim 1/16-Moment beenden"
 
-#. Documentation/user/rhythms.itely:1744 (comment)
+#. Documentation/user/rhythms.itely:1727 (comment)
 msgid "end beams of all durations in 5/8 time signature at the 2/8 moment"
 msgstr "Balken aller Längen im 5/8-Takt am 2/8-Moment beenden"
 
-#. Documentation/user/rhythms.itely:1759 (comment)
+#. Documentation/user/rhythms.itely:1742 (comment)
 msgid "rhythm 3-1-1-2"
-msgstr ""
+msgstr "Rhythmus 3-1-1-2"
 
-#. Documentation/user/rhythms.itely:1760 (comment)
+#. Documentation/user/rhythms.itely:1743 (comment)
 msgid "Context not specified - does not work correctly"
-msgstr ""
+msgstr "Kontext nicht angegeben - funktioniert nicht richtig"
 
-#. Documentation/user/rhythms.itely:1766 (comment)
+#. Documentation/user/rhythms.itely:1749 (comment)
 msgid "Works correctly with context specified"
-msgstr ""
+msgstr "Funktioniert richtig mit angegebenem Kontext"
 
-#. Documentation/user/rhythms.itely:1802 (comment)
+#. Documentation/user/rhythms.itely:1782 (comment)
 msgid "undo a rule ending 1/16 beams in 4/4 time at 1/4 moment"
 msgstr "Regel annullieren, dass 1/16-Balken im 4/4-Takt am 1/4-Moment enden"
 
-#. Documentation/user/rhythms.itely:1815 (comment)
+#. Documentation/user/rhythms.itely:1795 (comment)
 msgid "this won't revert it!"
 msgstr "Das macht es nicth rückgängig"
 
-#. Documentation/user/rhythms.itely:1817 (comment)
+#. Documentation/user/rhythms.itely:1797 (comment)
 msgid "this will"
 msgstr "Das schon"
 
-#. Documentation/user/rhythms.itely:1832 (comment)
-msgid "rhythm 2-3-2"
-msgstr ""
-
-#. Documentation/user/rhythms.itely:1871 (comment)
-#, fuzzy
-msgid "Default beaming"
-msgstr "Standart"
-
-#. Documentation/user/rhythms.itely:1874 (comment)
-msgid "Revert default values in scm/auto-beam.scm for 12/8 time"
-msgstr ""
-
-#. Documentation/user/rhythms.itely:1880 (comment)
-msgid "Set new values for beam endings"
-msgstr ""
-
-#. Documentation/user/rhythms.itely:2002 (comment)
+#. Documentation/user/rhythms.itely:1942 (comment)
 msgid "revert to non-feathered beams"
 msgstr "in nichtgespreizte Balken zurückverwandeln"
 
-#. Documentation/user/rhythms.itely:2225 (comment)
-#. Documentation/user/rhythms.itely:2241 (comment)
+#. Documentation/user/rhythms.itely:2182 (comment)
+#. Documentation/user/rhythms.itely:2198 (comment)
 msgid "Permit first bar number to be printed"
 msgstr "Erste Taktnummer soll auch gesetzt werden"
 
-#. Documentation/user/rhythms.itely:2242 (comment)
-#. Documentation/user/rhythms.itely:2290 (comment)
+#. Documentation/user/rhythms.itely:2199 (comment)
+#. Documentation/user/rhythms.itely:2247 (comment)
 msgid "Print a bar number every second measure"
 msgstr "Jeden zweiten Takt eine Taktnummer setzen"
 
-#. Documentation/user/rhythms.itely:2258 (comment)
+#. Documentation/user/rhythms.itely:2215 (comment)
 msgid "Prevent bar numbers at the end of a line and permit them elsewhere"
 msgstr "Taktnummern am Zeilenende verbieten und woanders erlauben"
 
-#. Documentation/user/rhythms.itely:2262 (comment)
-#. Documentation/user/rhythms.itely:2288 (comment)
+#. Documentation/user/rhythms.itely:2219 (comment)
+#. Documentation/user/rhythms.itely:2245 (comment)
 msgid "Increase the size of the bar number by 2"
 msgstr "Taktnummer um Faktor zwei vergrößern"
 
-#. Documentation/user/rhythms.itely:2266 (comment)
+#. Documentation/user/rhythms.itely:2223 (comment)
 msgid "Draw a box round the following bar number(s)"
 msgstr "Einen Kasten um die folgenden Taktnummern zeichnen"
 
-#. Documentation/user/rhythms.itely:2271 (comment)
+#. Documentation/user/rhythms.itely:2228 (comment)
 msgid "Draw a circle round the following bar number(s)"
 msgstr "Einen Kreis um die folgenden Taktnummern zeichnen"
 
-#. Documentation/user/rhythms.itely:2293 (comment)
+#. Documentation/user/rhythms.itely:2250 (comment)
 msgid "Center-align bar numbers"
 msgstr "Taktnummern zentrieren"
 
-#. Documentation/user/rhythms.itely:2296 (comment)
+#. Documentation/user/rhythms.itely:2253 (comment)
 msgid "Right-align bar numbers"
 msgstr "Taktnummern rechtsbündig"
 
-#. Documentation/user/rhythms.itely:2399 (variable)
+#. Documentation/user/rhythms.itely:2347 (variable)
 msgid "pipeSymbol"
 msgstr "pipeSymbol"
 
-#. Documentation/user/rhythms.itely:2786 (variable)
+#. Documentation/user/rhythms.itely:2752 (variable)
 msgid "MyCadenza"
 msgstr "MeineKadenz"
 
@@ -4430,26 +5175,37 @@ msgstr "Tondauern"
 
 #. @rglos in Documentation/user/rhythms.itely
 #. @rglos in Documentation/es/user/rhythms.itely
+#. @rglos in Documentation/de/user/rhythms.itely
 msgid "breve"
 msgstr "Brevis"
 
 #. @rglos in Documentation/user/rhythms.itely
 #. @rglos in Documentation/es/user/rhythms.itely
+#. @rglos in Documentation/de/user/rhythms.itely
 msgid "longa"
 msgstr "Longa"
 
 #. @rglos in Documentation/user/rhythms.itely
 #. @rglos in Documentation/es/user/rhythms.itely
+#. @rglos in Documentation/de/user/rhythms.itely
+msgid "maxima"
+msgstr "Maxima"
+
+#. @rglos in Documentation/user/rhythms.itely
+#. @rglos in Documentation/es/user/rhythms.itely
+#. @rglos in Documentation/de/user/rhythms.itely
 msgid "Duration names notes and rests"
 msgstr "Dauerbezeichnungen für Noten und Pausen"
 
 #. @rglos in Documentation/user/rhythms.itely
 #. @rglos in Documentation/es/user/rhythms.itely
+#. @rglos in Documentation/de/user/rhythms.itely
 msgid "tuplet"
 msgstr "N-tole"
 
 #. @rglos in Documentation/user/rhythms.itely
 #. @rglos in Documentation/es/user/rhythms.itely
+#. @rglos in Documentation/de/user/rhythms.itely
 msgid "polymetric"
 msgstr "Polymetrie"
 
@@ -4467,6 +5223,7 @@ msgstr "Tondauern skalieren"
 #. @rglos in Documentation/user/rhythms.itely
 #. @rglos in Documentation/fr/user/rhythms.itely
 #. @rglos in Documentation/es/user/rhythms.itely
+#. @rglos in Documentation/de/user/rhythms.itely
 msgid "laissez vibrer"
 msgstr "Laissez-vibrer-Bögen"
 
@@ -4505,6 +5262,7 @@ msgstr "Ganztaktige Pausen"
 
 #. @rglos in Documentation/user/rhythms.itely
 #. @rglos in Documentation/es/user/rhythms.itely
+#. @rglos in Documentation/de/user/rhythms.itely
 msgid "multi-measure rest"
 msgstr "Pausen über mehrere Takte"
 
@@ -4543,6 +5301,7 @@ msgstr "Musik ohne Metrum"
 
 #. @rglos in Documentation/user/rhythms.itely
 #. @rglos in Documentation/es/user/rhythms.itely
+#. @rglos in Documentation/de/user/rhythms.itely
 msgid "cadenza"
 msgstr "Kadenz"
 
@@ -4559,11 +5318,13 @@ msgstr "Polymetrische Notation"
 
 #. @rglos in Documentation/user/rhythms.itely
 #. @rglos in Documentation/es/user/rhythms.itely
+#. @rglos in Documentation/de/user/rhythms.itely
 msgid "polymetric time signature"
 msgstr "Polymetrische Taktangabe"
 
 #. @rglos in Documentation/user/rhythms.itely
 #. @rglos in Documentation/es/user/rhythms.itely
+#. @rglos in Documentation/de/user/rhythms.itely
 msgid "meter"
 msgstr "Metrum"
 
@@ -4664,7 +5425,7 @@ msgstr "Takte"
 #. @node in Documentation/de/user/rhythms.itely
 #. @unnumberedsubsubsec in Documentation/de/user/rhythms.itely
 msgid "Bar lines"
-msgstr "Taktlinien"
+msgstr "Taktstriche"
 
 #. @node in Documentation/user/rhythms.itely
 #. @unnumberedsubsubsec in Documentation/user/rhythms.itely
@@ -4864,6 +5625,7 @@ msgstr "Atemzeichen"
 #. @rglos in Documentation/user/expressive.itely
 #. @rglos in Documentation/es/user/expressive.itely
 #. @rglos in Documentation/de/user/expressive.itely
+#. input/lsr/breathing-signs.ly:35 (comment)
 msgid "caesura"
 msgstr "Zäsur"
 
@@ -4952,7 +5714,8 @@ msgstr "Triller"
 msgid "trill"
 msgstr "Triller"
 
-#. Documentation/user/repeats.itely:298 (variable)
+#. Documentation/user/repeats.itely:299 (variable)
+#. input/lsr/volta-text-markup-using-repeatcommands.ly:21 (variable)
 msgid "voltaAdLib"
 msgstr "VoltaAdLib"
 
@@ -5058,27 +5821,27 @@ msgstr "gleichartig"
 msgid "Tremolo repeats"
 msgstr "Tremolo-Wiederholung"
 
-#. Documentation/user/simultaneous.itely:93 (comment)
+#. Documentation/user/simultaneous.itely:94 (comment)
 msgid "explicit single voice"
 msgstr "explizit eine Stimme"
 
-#. Documentation/user/simultaneous.itely:99 (comment)
+#. Documentation/user/simultaneous.itely:100 (comment)
 msgid "single first note"
 msgstr "einzelne erste Note"
 
-#. Documentation/user/simultaneous.itely:111 (comment)
+#. Documentation/user/simultaneous.itely:112 (comment)
 msgid "no single first note"
 msgstr "keine einzelne erste Note"
 
-#. Documentation/user/simultaneous.itely:617 (variable)
+#. Documentation/user/simultaneous.itely:622 (variable)
 msgid "instrumentOne"
 msgstr "InstrumentEins"
 
-#. Documentation/user/simultaneous.itely:625 (variable)
+#. Documentation/user/simultaneous.itely:630 (variable)
 msgid "instrumentTwo"
 msgstr "InstrumentZwei"
 
-#. Documentation/user/simultaneous.itely:801 (comment)
+#. Documentation/user/simultaneous.itely:807 (comment)
 msgid "Bar 3 ..."
 msgstr "Takt 3 ..."
 
@@ -5201,6 +5964,8 @@ msgstr "a due"
 #. @rglos in Documentation/user/simultaneous.itely
 #. @rglos in Documentation/es/user/simultaneous.itely
 #. @rglos in Documentation/de/user/simultaneous.itely
+#. input/lsr/flamenco-notation.ly:136 (variable)
+#. input/lsr/flamenco-notation.ly:233 (context id)
 msgid "part"
 msgstr "Stimme"
 
@@ -5215,26 +5980,24 @@ msgstr "Stimme"
 msgid "Writing music in parallel"
 msgstr "Musik parallel notieren"
 
-#. Documentation/user/staff.itely:1069 (variable)
-#. Documentation/user/staff.itely:1084 (variable)
-#. Documentation/user/staff.itely:1238 (variable)
+#. Documentation/user/staff.itely:1085 (variable)
+#. Documentation/user/staff.itely:1100 (variable)
+#. Documentation/user/staff.itely:1265 (variable)
 msgid "flute"
 msgstr "Flöte"
 
-#. Documentation/user/staff.itely:1100 (variable)
-msgid "clarinet"
-msgstr "Klarinette"
-
-#. Documentation/user/staff.itely:1189 (variable)
-#. Documentation/user/staff.itely:1210 (variable)
+#. Documentation/user/staff.itely:1207 (variable)
+#. Documentation/user/staff.itely:1228 (variable)
 msgid "oboe"
 msgstr "Oboe"
 
-#. Documentation/user/staff.itely:1259 (variable)
+#. Documentation/user/staff.itely:1286 (variable)
+#. Documentation/user/staff.itely:1302 (context id)
 msgid "piccolo"
 msgstr "Piccolo"
 
-#. Documentation/user/staff.itely:1267 (variable)
+#. Documentation/user/staff.itely:1294 (variable)
+#. Documentation/user/staff.itely:1303 (context id)
 msgid "cbassoon"
 msgstr "Ktrfgt"
 
@@ -5266,16 +6029,20 @@ msgstr "Systeme anzeigen lassen"
 #. @unnumberedsubsubsec in Documentation/fr/user/staff.itely
 #. @node in Documentation/es/user/staff.itely
 #. @unnumberedsubsubsec in Documentation/es/user/staff.itely
+#. @node in Documentation/de/user/staff.itely
+#. @unnumberedsubsubsec in Documentation/de/user/staff.itely
 msgid "Instantiating new staves"
 msgstr "Neue Notensysteme erstellen"
 
 #. @rglos in Documentation/user/staff.itely
 #. @rglos in Documentation/es/user/staff.itely
+#. @rglos in Documentation/de/user/staff.itely
 msgid "staff"
 msgstr "System"
 
 #. @rglos in Documentation/user/staff.itely
 #. @rglos in Documentation/es/user/staff.itely
+#. @rglos in Documentation/de/user/staff.itely
 msgid "staves"
 msgstr "Systeme"
 
@@ -5285,16 +6052,20 @@ msgstr "Systeme"
 #. @unnumberedsubsubsec in Documentation/fr/user/staff.itely
 #. @node in Documentation/es/user/staff.itely
 #. @unnumberedsubsubsec in Documentation/es/user/staff.itely
+#. @node in Documentation/de/user/staff.itely
+#. @unnumberedsubsubsec in Documentation/de/user/staff.itely
 msgid "Grouping staves"
 msgstr "Systeme gruppieren"
 
 #. @rglos in Documentation/user/staff.itely
 #. @rglos in Documentation/es/user/staff.itely
+#. @rglos in Documentation/de/user/staff.itely
 msgid "bracket"
 msgstr "Klammer"
 
 #. @rglos in Documentation/user/staff.itely
 #. @rglos in Documentation/es/user/staff.itely
+#. @rglos in Documentation/de/user/staff.itely
 msgid "grand staff"
 msgstr "Akkolade"
 
@@ -5304,6 +6075,8 @@ msgstr "Akkolade"
 #. @unnumberedsubsubsec in Documentation/fr/user/staff.itely
 #. @node in Documentation/es/user/staff.itely
 #. @unnumberedsubsubsec in Documentation/es/user/staff.itely
+#. @node in Documentation/de/user/staff.itely
+#. @unnumberedsubsubsec in Documentation/de/user/staff.itely
 msgid "Nested staff groups"
 msgstr "Verschachtelte Notensysteme"
 
@@ -5313,6 +6086,8 @@ msgstr "Verschachtelte Notensysteme"
 #. @subsection in Documentation/fr/user/staff.itely
 #. @node in Documentation/es/user/staff.itely
 #. @subsection in Documentation/es/user/staff.itely
+#. @node in Documentation/de/user/staff.itely
+#. @subsection in Documentation/de/user/staff.itely
 msgid "Modifying single staves"
 msgstr "Einzelne Systeme verändern"
 
@@ -5329,11 +6104,13 @@ msgstr "Das Notensystem"
 
 #. @rglos in Documentation/user/staff.itely
 #. @rglos in Documentation/es/user/staff.itely
+#. @rglos in Documentation/de/user/staff.itely
 msgid "line"
 msgstr "Linie"
 
 #. @rglos in Documentation/user/staff.itely
 #. @rglos in Documentation/es/user/staff.itely
+#. @rglos in Documentation/de/user/staff.itely
 msgid "ledger line"
 msgstr "Hilfslinie"
 
@@ -5343,11 +6120,14 @@ msgstr "Hilfslinie"
 #. @unnumberedsubsubsec in Documentation/fr/user/staff.itely
 #. @node in Documentation/es/user/staff.itely
 #. @unnumberedsubsubsec in Documentation/es/user/staff.itely
+#. @node in Documentation/de/user/staff.itely
+#. @unnumberedsubsubsec in Documentation/de/user/staff.itely
 msgid "Ossia staves"
 msgstr "Ossia-Systeme"
 
 #. @rglos in Documentation/user/staff.itely
 #. @rglos in Documentation/es/user/staff.itely
+#. @rglos in Documentation/de/user/staff.itely
 msgid "Frenched staff"
 msgstr "Verkleinerte Systeme"
 
@@ -5386,21 +6166,25 @@ msgstr "Metronomangabe"
 
 #. @rglos in Documentation/user/staff.itely
 #. @rglos in Documentation/es/user/staff.itely
+#. @rglos in Documentation/de/user/staff.itely
 msgid "metronome"
 msgstr "Metronomangabe"
 
 #. @rglos in Documentation/user/staff.itely
 #. @rglos in Documentation/es/user/staff.itely
+#. @rglos in Documentation/de/user/staff.itely
 msgid "metronomic indication"
 msgstr "Metronombezeichnung"
 
 #. @rglos in Documentation/user/staff.itely
 #. @rglos in Documentation/es/user/staff.itely
+#. @rglos in Documentation/de/user/staff.itely
 msgid "tempo indication"
 msgstr "Tempobezeichnung"
 
 #. @rglos in Documentation/user/staff.itely
 #. @rglos in Documentation/es/user/staff.itely
+#. @rglos in Documentation/de/user/staff.itely
 msgid "metronome mark"
 msgstr "Metronombezeichnung"
 
@@ -5441,7 +6225,7 @@ msgstr "Stichnoten"
 msgid "Formatting cue notes"
 msgstr "Stichnoten formatieren"
 
-#. Documentation/user/editorial.itely:321 (comment)
+#. Documentation/user/editorial.itely:326 (comment)
 msgid "this is deliberate nonsense; note that the stems remain black"
 msgstr "Das ist Unsinn, die Hälsen bleiben schwarz"
 
@@ -5577,7 +6361,7 @@ msgstr "Gitternetzlinien"
 msgid "Analysis brackets"
 msgstr "Analyseklammern"
 
-#. Documentation/user/text.itely:418 (variable)
+#. Documentation/user/text.itely:421 (variable)
 msgid "allegro"
 msgstr "Allegro"
 
@@ -5727,6 +6511,8 @@ msgstr "Schriftarten"
 #. @unnumberedsubsubsec in Documentation/user/text.itely
 #. @node in Documentation/es/user/text.itely
 #. @unnumberedsubsubsec in Documentation/es/user/text.itely
+#. @node in Documentation/de/user/text.itely
+#. @unnumberedsubsubsec in Documentation/de/user/text.itely
 msgid "Fonts explained"
 msgstr "Was sind Schriftarten"
 
@@ -5759,60 +6545,73 @@ msgstr "Schriftart des gesamten Dokuments"
 msgid "Specialist notation"
 msgstr "Spezielle Notation"
 
-#. Documentation/user/vocal.itely:509 (comment)
-msgid "not recommended: left aligns syllables "
+#. Documentation/user/vocal.itely:512 (comment)
+msgid "not recommended: left aligns syllables"
 msgstr "nicht empfohlen: Silben links ausrichten"
 
-#. Documentation/user/vocal.itely:512 (comment)
+#. Documentation/user/vocal.itely:515 (comment)
 msgid "wrong: durations needed"
 msgstr "Falsch: brache Dauern"
 
-#. Documentation/user/vocal.itely:515 (comment)
+#. Documentation/user/vocal.itely:518 (comment)
 msgid "correct"
 msgstr "richtig"
 
-#. Documentation/user/vocal.itely:847 (variable)
+#. Documentation/user/vocal.itely:667 (context id)
+msgid "lala"
+msgstr "lala"
+
+#. Documentation/user/vocal.itely:808 (context id)
+msgid "splitpart"
+msgstr "StimmeTeilen"
+
+#. Documentation/user/vocal.itely:853 (variable)
 msgid "voice"
 msgstr "Stimme"
 
-#. Documentation/user/vocal.itely:854 (variable)
+#. Documentation/user/vocal.itely:860 (variable)
+#. input/lsr/formatting-lyrics-syllables.ly:22 (variable)
 msgid "lyr"
 msgstr "Text"
 
-#. Documentation/user/vocal.itely:1112 (comment)
-msgid "applies to \\\"fas\\\""
-msgstr "gehört zu \\\"fas\\\""
+#. Documentation/user/vocal.itely:1059 (context id)
+msgid "tune"
+msgstr "Melodie"
+
+#. Documentation/user/vocal.itely:1101 (context id)
+msgid "lahlah"
+msgstr "Lalala"
 
-#. Documentation/user/vocal.itely:1282 (comment)
-msgid "moves the column off the left margin; "
-msgstr "Kolumne vom linken Rand wegbewegen"
+#. Documentation/user/vocal.itely:1284 (comment)
+msgid "moves the column off the left margin;"
+msgstr "Spalte vom linken Rand wegbewegen"
 
-#. Documentation/user/vocal.itely:1283 (comment)
+#. Documentation/user/vocal.itely:1285 (comment)
 msgid "can be removed if space on the page is tight"
 msgstr "Kann entfernt werden, wenn wenig Platz auf der Seite ist"
 
-#. Documentation/user/vocal.itely:1291 (comment)
-#. Documentation/user/vocal.itely:1309 (comment)
+#. Documentation/user/vocal.itely:1293 (comment)
+#. Documentation/user/vocal.itely:1311 (comment)
 msgid "adds vertical spacing between verses"
 msgstr "Vertikaler Abstand zwischen Strophen"
 
-#. Documentation/user/vocal.itely:1299 (comment)
-msgid "adds horizontal spacing between columns; "
-msgstr "Vertikaler Abstand zwischen Strophen"
+#. Documentation/user/vocal.itely:1301 (comment)
+msgid "adds horizontal spacing between columns;"
+msgstr "Horizontalen Abstand zwischen Spalten hinzufügen;"
 
-#. Documentation/user/vocal.itely:1300 (comment)
-msgid "if they are still too close, add more \\\" \\\" pairs  "
+#. Documentation/user/vocal.itely:1302 (comment)
+msgid "if they are still too close, add more \\\" \\\" pairs"
 msgstr "Wenn sie immer noch zu eng sind, mehr \\\" \\\"-Paare hinzufügen"
 
-#. Documentation/user/vocal.itely:1301 (comment)
+#. Documentation/user/vocal.itely:1303 (comment)
 msgid "until the result looks good"
 msgstr "bis das Resultat gut aussieht"
 
-#. Documentation/user/vocal.itely:1317 (comment)
-msgid "gives some extra space on the right margin; "
+#. Documentation/user/vocal.itely:1319 (comment)
+msgid "gives some extra space on the right margin;"
 msgstr "zusätzlichen Platz für den rechten Rand"
 
-#. Documentation/user/vocal.itely:1318 (comment)
+#. Documentation/user/vocal.itely:1320 (comment)
 msgid "can be removed if page space is tight"
 msgstr "kann entfernt werden, wenn wenig Platz auf der Seite ist"
 
@@ -6001,7 +6800,7 @@ msgstr "Noten überspringen"
 #. @node in Documentation/de/user/vocal.itely
 #. @unnumberedsubsubsec in Documentation/de/user/vocal.itely
 msgid "Extenders and hyphens"
-msgstr "Unterstrichen und Trennstriche"
+msgstr "Fülllinien und Trennstriche"
 
 #. @node in Documentation/user/vocal.itely
 #. @unnumberedsubsubsec in Documentation/user/vocal.itely
@@ -6126,7 +6925,6 @@ msgstr "Strophen mit unterschiedlichem Rhythmus"
 
 #. @subsubheading in Documentation/user/vocal.itely
 #. @subsubheading in Documentation/es/user/vocal.itely
-#. @subsubheading in Documentation/de/user/vocal.itely
 msgid "Ignoring melismata"
 msgstr "Melismen ignorieren"
 
@@ -6158,23 +6956,35 @@ msgstr "Die Strophen am Ende ausdrucken"
 msgid "Printing stanzas at the end in multiple columns"
 msgstr "Die Strophen am Ende in mehreren Spalten drucken"
 
-#. Documentation/user/keyboards.itely:182 (comment)
+#. Documentation/user/keyboards.itely:187 (comment)
 msgid "keep staff alive"
 msgstr "System aufrecht erhalten"
 
-#. Documentation/user/keyboards.itely:385 (comment)
+#. Documentation/user/keyboards.itely:275 (context id)
+msgid "melOne"
+msgstr "melEins"
+
+#. Documentation/user/keyboards.itely:344 (context id)
+#. Documentation/user/fretted-strings.itely:247 (context id)
+#. input/lsr/adding-fingerings-to-tablatures.ly:24 (variable)
+#. input/lsr/jazz-combo-template.ly:205 (context id)
+#. input/lsr/jazz-combo-template.ly:214 (context id)
+msgid "two"
+msgstr "zwei"
+
+#. Documentation/user/keyboards.itely:398 (comment)
 msgid "stems may overlap the other staff"
 msgstr "Hals kann das andere System überschneiden"
 
-#. Documentation/user/keyboards.itely:387 (comment)
+#. Documentation/user/keyboards.itely:400 (comment)
 msgid "extend the stems to reach other other staff"
 msgstr "Hälse verlängern um anderes System zu erreichen"
 
-#. Documentation/user/keyboards.itely:389 (comment)
+#. Documentation/user/keyboards.itely:402 (comment)
 msgid "do not print extra flags"
 msgstr "keine doppelten Fähnchen"
 
-#. Documentation/user/keyboards.itely:391 (comment)
+#. Documentation/user/keyboards.itely:404 (comment)
 msgid "prevent beaming as needed"
 msgstr "Balken verhindern"
 
@@ -6310,6 +7120,28 @@ msgstr "Diskant-Symbole"
 msgid "Harp"
 msgstr "Harfe"
 
+#. @node in Documentation/user/keyboards.itely
+#. @unnumberedsubsubsec in Documentation/user/keyboards.itely
+#. @node in Documentation/fr/user/keyboards.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/keyboards.itely
+#. @node in Documentation/es/user/keyboards.itely
+#. @unnumberedsubsubsec in Documentation/es/user/keyboards.itely
+#. @node in Documentation/de/user/keyboards.itely
+#. @unnumberedsubsubsec in Documentation/de/user/keyboards.itely
+msgid "References for harps"
+msgstr "Referenzen für Harfe"
+
+#. @node in Documentation/user/keyboards.itely
+#. @unnumberedsubsubsec in Documentation/user/keyboards.itely
+#. @node in Documentation/fr/user/keyboards.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/keyboards.itely
+#. @node in Documentation/es/user/keyboards.itely
+#. @unnumberedsubsubsec in Documentation/es/user/keyboards.itely
+#. @node in Documentation/de/user/keyboards.itely
+#. @unnumberedsubsubsec in Documentation/de/user/keyboards.itely
+msgid "Harp pedals"
+msgstr "Harfenpedal"
+
 #. @node in Documentation/user/unfretted-strings.itely
 #. @section in Documentation/user/unfretted-strings.itely
 #. @node in Documentation/fr/user/unfretted-strings.itely
@@ -6367,11 +7199,14 @@ msgstr "Flageolett"
 
 #. @rglos in Documentation/user/unfretted-strings.itely
 #. @rglos in Documentation/es/user/unfretted-strings.itely
+#. @rglos in Documentation/de/user/unfretted-strings.itely
 msgid "harmonics"
 msgstr "Flageolett"
 
 #. @node in Documentation/user/unfretted-strings.itely
 #. @node in Documentation/es/user/unfretted-strings.itely
+#. @node in Documentation/de/user/unfretted-strings.itely
+#. @unnumberedsubsubsec in Documentation/de/user/unfretted-strings.itely
 msgid "Snap (Bartok) pizzicato"
 msgstr "Bartók-Pizzicato"
 
@@ -6379,41 +7214,48 @@ msgstr "Bartók-Pizzicato"
 #. @node in Documentation/fr/user/unfretted-strings.itely
 #. @unnumberedsubsubsec in Documentation/fr/user/unfretted-strings.itely
 #. @unnumberedsubsubsec in Documentation/es/user/unfretted-strings.itely
-#. @node in Documentation/de/user/unfretted-strings.itely
-#. @unnumberedsubsubsec in Documentation/de/user/unfretted-strings.itely
 msgid "Snap (Bartók) pizzicato"
 msgstr "Bartók-Pizzicato"
 
-#. Documentation/user/fretted-strings.itely:238 (variable)
+#. Documentation/user/fretted-strings.itely:243 (variable)
 msgid "melodia"
 msgstr "Melodie"
 
-#. Documentation/user/fretted-strings.itely:321 (variable)
+#. Documentation/user/fretted-strings.itely:248 (context id)
+msgid "shared"
+msgstr "gemeinsam"
+
+#. Documentation/user/fretted-strings.itely:249 (context id)
+msgid "solo"
+msgstr "solo"
+
+#. Documentation/user/fretted-strings.itely:326 (variable)
 msgid "mynotes"
 msgstr "meineNoten"
 
-#. Documentation/user/fretted-strings.itely:448 (comment)
+#. Documentation/user/fretted-strings.itely:453 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:29 (comment)
 msgid "A chord for ukelele"
 msgstr "Akkord für Ukulele"
 
-#. Documentation/user/fretted-strings.itely:768 (variable)
-#. Documentation/user/fretted-strings.itely:791 (variable)
-#. Documentation/user/fretted-strings.itely:820 (variable)
-#. Documentation/user/fretted-strings.itely:849 (variable)
-#. Documentation/user/fretted-strings.itely:873 (variable)
-#. Documentation/user/fretted-strings.itely:917 (variable)
+#. Documentation/user/fretted-strings.itely:785 (variable)
+#. Documentation/user/fretted-strings.itely:808 (variable)
+#. Documentation/user/fretted-strings.itely:837 (variable)
+#. Documentation/user/fretted-strings.itely:868 (variable)
+#. Documentation/user/fretted-strings.itely:892 (variable)
+#. Documentation/user/fretted-strings.itely:940 (variable)
 msgid "mychords"
 msgstr "meineAkkorde"
 
-#. Documentation/user/fretted-strings.itely:795 (variable)
+#. Documentation/user/fretted-strings.itely:812 (variable)
 msgid "mychordlist"
 msgstr "meineAkkordliste"
 
-#. Documentation/user/fretted-strings.itely:904 (comment)
+#. Documentation/user/fretted-strings.itely:927 (comment)
 msgid "add a new chord shape"
 msgstr "Neues Akkordmuster hinzufügen"
 
-#. Documentation/user/fretted-strings.itely:908 (comment)
+#. Documentation/user/fretted-strings.itely:931 (comment)
 msgid "add some new chords based on the power chord shape"
 msgstr "neue Akkorde basierend auf dem power-chord-Muster hinzufügen"
 
@@ -6496,15 +7338,23 @@ msgstr "Bund-Diagramm-Beschriftung"
 
 #. @node in Documentation/user/fretted-strings.itely
 #. @unnumberedsubsubsec in Documentation/user/fretted-strings.itely
+#. @node in Documentation/fr/user/fretted-strings.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/fretted-strings.itely
 #. @node in Documentation/es/user/fretted-strings.itely
 #. @unnumberedsubsubsec in Documentation/es/user/fretted-strings.itely
+#. @node in Documentation/de/user/fretted-strings.itely
+#. @unnumberedsubsubsec in Documentation/de/user/fretted-strings.itely
 msgid "Predefined fret diagrams"
 msgstr "Vordefinierte Bund-Diagramme"
 
 #. @node in Documentation/user/fretted-strings.itely
 #. @unnumberedsubsubsec in Documentation/user/fretted-strings.itely
+#. @node in Documentation/fr/user/fretted-strings.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/fretted-strings.itely
 #. @node in Documentation/es/user/fretted-strings.itely
 #. @unnumberedsubsubsec in Documentation/es/user/fretted-strings.itely
+#. @node in Documentation/de/user/fretted-strings.itely
+#. @unnumberedsubsubsec in Documentation/de/user/fretted-strings.itely
 msgid "Automatic fret diagrams"
 msgstr "Automatische Bund-Diagramme"
 
@@ -6574,16 +7424,6 @@ msgstr "Banjo"
 msgid "Banjo tablatures"
 msgstr "Banjo-Tabulaturen"
 
-#. Documentation/user/percussion.itely:175 (variable)
-#. Documentation/user/percussion.itely:365 (variable)
-msgid "up"
-msgstr "oben"
-
-#. Documentation/user/percussion.itely:178 (variable)
-#. Documentation/user/percussion.itely:366 (variable)
-msgid "down"
-msgstr "unten"
-
 #. Documentation/user/percussion.itely:385 (comment)
 msgid "These lines define the position of the woodblocks in the stave;"
 msgstr "Diese Zeilen definieren die Position der Holzblöcke auf dem System"
@@ -6591,7 +7431,7 @@ msgstr "Diese Zeilen definieren die Position der Holzblöcke auf dem System"
 #. Documentation/user/percussion.itely:386 (comment)
 msgid "if you like, you can change it or you can use special note heads"
 msgstr ""
-"Wenn Sie wollen, können Sie das ändern oder besondere Notenkönpfe benutzen"
+"Wenn Sie wollen, können Sie das ändern oder besondere Notenköpfe benutzen"
 
 #. Documentation/user/percussion.itely:387 (comment)
 msgid "for the woodblocks."
@@ -6610,7 +7450,6 @@ msgid "It also defines the positions of the two lines."
 msgstr "Auch die Position der zwei Linien wird festgelegt"
 
 #. Documentation/user/percussion.itely:396 (comment)
-#, fuzzy
 msgid "This is neccessary; if not entered, the barline would be too short!"
 msgstr "Das ist notwendig. Wenn nicht angegeben, wird die Taktlinie zu kurz!"
 
@@ -6694,6 +7533,8 @@ msgstr "Grundlagen der Schlagzeugnotation"
 #. @unnumberedsubsubsec in Documentation/user/percussion.itely
 #. @node in Documentation/es/user/percussion.itely
 #. @unnumberedsubsubsec in Documentation/es/user/percussion.itely
+#. @node in Documentation/de/user/percussion.itely
+#. @unnumberedsubsubsec in Documentation/de/user/percussion.itely
 msgid "Drum rolls"
 msgstr "Trommelwirbel"
 
@@ -6701,6 +7542,8 @@ msgstr "Trommelwirbel"
 #. @unnumberedsubsubsec in Documentation/user/percussion.itely
 #. @node in Documentation/es/user/percussion.itely
 #. @unnumberedsubsubsec in Documentation/es/user/percussion.itely
+#. @node in Documentation/de/user/percussion.itely
+#. @unnumberedsubsubsec in Documentation/de/user/percussion.itely
 msgid "Pitched percussion"
 msgstr "Schlagzeug mit Tonhöhe"
 
@@ -6719,6 +7562,8 @@ msgstr "Schlagzeugsysteme"
 #. @unnumberedsubsubsec in Documentation/user/percussion.itely
 #. @node in Documentation/es/user/percussion.itely
 #. @unnumberedsubsubsec in Documentation/es/user/percussion.itely
+#. @node in Documentation/de/user/percussion.itely
+#. @unnumberedsubsubsec in Documentation/de/user/percussion.itely
 msgid "Custom percussion staves"
 msgstr "Eigene Schlagzeugsysteme"
 
@@ -6799,20 +7644,20 @@ msgstr "Dudelsack-Defintionen"
 msgid "Bagpipe example"
 msgstr "Dudelsack-Beispiele"
 
-#. Documentation/user/chords.itely:654 (variable)
+#. Documentation/user/chords.itely:669 (variable)
 msgid "myChords"
 msgstr "meineAkkorde"
 
-#. Documentation/user/chords.itely:981 (comment)
-#. Documentation/user/chords.itely:1002 (comment)
+#. Documentation/user/chords.itely:999 (comment)
+#. Documentation/user/chords.itely:1020 (comment)
 msgid "Put notes on same Staff as figures"
 msgstr "Noten auf dem gleichen System wie die Symbole"
 
-#. Documentation/user/chords.itely:1061 (comment)
+#. Documentation/user/chords.itely:1083 (comment)
 msgid "The extenders are correct here, with the same rhythm as the bass"
 msgstr "Linien stimmen hier, mit dem gleichen Rhythmus wie im Bass"
 
-#. Documentation/user/chords.itely:1073 (comment)
+#. Documentation/user/chords.itely:1095 (comment)
 msgid "The extenders are incorrect here, even though the timing is the same"
 msgstr "Linien stimmen nicht, obwohl der Rhythmus der gleiche ist"
 
@@ -6928,6 +7773,7 @@ msgstr "Grundlagen des Bezifferten Basses"
 
 #. @rglos in Documentation/user/chords.itely
 #. @rglos in Documentation/es/user/chords.itely
+#. @rglos in Documentation/de/user/chords.itely
 msgid "figured bass"
 msgstr "Generalbass"
 
@@ -6953,10 +7799,39 @@ msgstr "Eingabe des Generalbass'"
 msgid "Displaying figured bass"
 msgstr "Generalbass anzeigen"
 
-#. Documentation/user/ancient.itely:821 (variable)
+#. Documentation/user/ancient.itely:357 (context id)
+msgid "discantus"
+msgstr "Discantus"
+
+#. Documentation/user/ancient.itely:823 (variable)
 msgid "ficta"
 msgstr "ficta"
 
+#. Documentation/user/ancient.itely:976 (context id)
+msgid "cantus"
+msgstr "cantus"
+
+#. Documentation/user/ancient.itely:2399 (variable)
+#. Documentation/user/ancient.itely:2434 (variable)
+#. Documentation/user/ancient.itely:2502 (context id)
+#. input/lsr/ancient-notation-template----modern-transcription-of-gregorian-music.ly:37 (variable)
+msgid "chant"
+msgstr "Hymnus"
+
+#. Documentation/user/ancient.itely:2405 (variable)
+#. Documentation/user/ancient.itely:2445 (variable)
+#. input/lsr/ancient-notation-template----modern-transcription-of-gregorian-music.ly:44 (variable)
+msgid "verba"
+msgstr "verba"
+
+#. Documentation/user/ancient.itely:2487 (variable)
+msgid "spiritus"
+msgstr "spiritus"
+
+#. Documentation/user/ancient.itely:2495 (variable)
+msgid "spirLyr"
+msgstr "spirText"
+
 #. @node in Documentation/user/ancient.itely
 #. @section in Documentation/user/ancient.itely
 #. @node in Documentation/fr/user/ancient.itely
@@ -7317,11 +8192,11 @@ msgstr "Arabische Notenbeispiele"
 msgid "Further reading"
 msgstr "Weitere Literatur"
 
-#. Documentation/user/input.itely:494 (comment)
+#. Documentation/user/input.itely:525 (comment)
 msgid "not printed"
 msgstr "nicht gedruckt"
 
-#. Documentation/user/input.itely:911 (variable)
+#. Documentation/user/input.itely:957 (variable)
 msgid "allLyrics"
 msgstr "alleText"
 
@@ -7657,46 +8532,48 @@ msgstr "Verschidene Instrumente angleichen (ii)"
 #. @subsection in Documentation/user/input.itely
 #. @node in Documentation/es/user/input.itely
 #. @subsection in Documentation/es/user/input.itely
+#. @node in Documentation/de/user/input.itely
+#. @subsection in Documentation/de/user/input.itely
 msgid "Percussion in MIDI"
 msgstr "Schlagzeug in MIDI"
 
-#. Documentation/user/spacing.itely:872 (comment)
+#. Documentation/user/spacing.itely:864 (comment)
 msgid "this does nothing"
 msgstr "Das macht gar nichts"
 
-#. Documentation/user/spacing.itely:873 (comment)
+#. Documentation/user/spacing.itely:865 (comment)
 msgid "a break here would work"
 msgstr "ein Umbruch hier würde funktionieren"
 
-#. Documentation/user/spacing.itely:874 (comment)
+#. Documentation/user/spacing.itely:866 (comment)
 msgid "as does this break"
 msgstr "wie dieser Umbruch"
 
-#. Documentation/user/spacing.itely:886 (comment)
+#. Documentation/user/spacing.itely:878 (comment)
 msgid "now the break is allowed"
 msgstr "jetzt ist der Umbruch erlaubt"
 
-#. Documentation/user/spacing.itely:1719 (comment)
+#. Documentation/user/spacing.itely:1757 (comment)
 msgid "this time the text will be closer to the staff"
 msgstr "jetzt ist der Text näher am System"
 
-#. Documentation/user/spacing.itely:1721 (comment)
+#. Documentation/user/spacing.itely:1759 (comment)
 msgid "by setting outside-staff-priority to a non-number,"
 msgstr "indem outside-staff-priority auf Nicht-Zahl gesetzt wird,"
 
-#. Documentation/user/spacing.itely:1722 (comment)
+#. Documentation/user/spacing.itely:1760 (comment)
 msgid "we disable the automatic collision avoidance"
 msgstr " werden vertikale Zusammenstöße vermieden"
 
-#. Documentation/user/spacing.itely:1725 (comment)
+#. Documentation/user/spacing.itely:1763 (comment)
 msgid "now they will collide"
 msgstr "jetzt kollidieren sie"
 
-#. Documentation/user/spacing.itely:1750 (comment)
+#. Documentation/user/spacing.itely:1789 (comment)
 msgid "the markup is too close to the following note"
 msgstr "Beschriftung zu nah an der folgenden Note"
 
-#. Documentation/user/spacing.itely:1753 (comment)
+#. Documentation/user/spacing.itely:1793 (comment)
 msgid "setting outside-staff-horizontal-padding fixes this"
 msgstr "Setzen von outside-staff-horizontal-padding hilft"
 
@@ -7748,6 +8625,8 @@ msgstr "Seitenformatierung"
 #. @unnumberedsubsubsec in Documentation/user/spacing.itely
 #. @node in Documentation/es/user/spacing.itely
 #. @unnumberedsubsubsec in Documentation/es/user/spacing.itely
+#. @node in Documentation/de/user/spacing.itely
+#. @unnumberedsubsubsec in Documentation/de/user/spacing.itely
 msgid "Vertical dimensions"
 msgstr "Vertikale Dimensionen"
 
@@ -7755,6 +8634,8 @@ msgstr "Vertikale Dimensionen"
 #. @unnumberedsubsubsec in Documentation/user/spacing.itely
 #. @node in Documentation/es/user/spacing.itely
 #. @unnumberedsubsubsec in Documentation/es/user/spacing.itely
+#. @node in Documentation/de/user/spacing.itely
+#. @unnumberedsubsubsec in Documentation/de/user/spacing.itely
 msgid "Horizontal dimensions"
 msgstr "Horizontale Dimensionen"
 
@@ -7762,6 +8643,8 @@ msgstr "Horizontale Dimensionen"
 #. @unnumberedsubsubsec in Documentation/user/spacing.itely
 #. @node in Documentation/es/user/spacing.itely
 #. @unnumberedsubsubsec in Documentation/es/user/spacing.itely
+#. @node in Documentation/de/user/spacing.itely
+#. @unnumberedsubsubsec in Documentation/de/user/spacing.itely
 msgid "Other layout variables"
 msgstr "Weitere Layout-Variablen"
 
@@ -7958,6 +8841,7 @@ msgstr "Vermeidung von vertikalen Zusammenstößen"
 #. @node in Documentation/es/user/spacing.itely
 #. @section in Documentation/es/user/spacing.itely
 #. @node in Documentation/de/user/spacing.itely
+#. @section in Documentation/de/user/spacing.itely
 msgid "Horizontal spacing"
 msgstr "Horizontale Abstände"
 
@@ -8049,60 +8933,67 @@ msgstr "Abstände anzeigen lassen"
 msgid "Changing spacing"
 msgstr "Abstände verändern"
 
-#. Documentation/user/changing-defaults.itely:2015 (comment)
+#. Documentation/user/changing-defaults.itely:1991 (comment)
 msgid "increase the length of the tie"
 msgstr "Länge des Bindebogens vergrößern"
 
-#. Documentation/user/changing-defaults.itely:2024 (comment)
+#. Documentation/user/changing-defaults.itely:2000 (comment)
 msgid "increase the length of the rest bar"
 msgstr "Länge des Pausentaktes vergrößern"
 
-#. Documentation/user/changing-defaults.itely:2032 (comment)
+#. Documentation/user/changing-defaults.itely:2008 (comment)
 msgid "increase the length of the hairpin"
 msgstr "Länge der Crescendo-Klammer vergrößern"
 
-#. Documentation/user/changing-defaults.itely:2060 (comment)
+#. Documentation/user/changing-defaults.itely:2036 (comment)
 msgid "default"
 msgstr "Standard"
 
-#. Documentation/user/changing-defaults.itely:2063 (comment)
-#. Documentation/user/changing-defaults.itely:2076 (comment)
+#. Documentation/user/changing-defaults.itely:2039 (comment)
+#. Documentation/user/changing-defaults.itely:2052 (comment)
 msgid "not effective alone"
 msgstr "allein keine Wirkung"
 
-#. Documentation/user/changing-defaults.itely:2067 (comment)
-#. Documentation/user/changing-defaults.itely:2080 (comment)
+#. Documentation/user/changing-defaults.itely:2043 (comment)
+#. Documentation/user/changing-defaults.itely:2056 (comment)
 msgid "effective only when both overrides are present"
 msgstr "gilt nur, wenn beide \"override\" vorhanden sind"
 
-#. Documentation/user/changing-defaults.itely:2461 (comment)
+#. Documentation/user/changing-defaults.itely:2431 (comment)
 msgid "Remove bar line at the end of the current line"
 msgstr "Taktlinie am Ende der Zeile entfernen"
 
-#. Documentation/user/changing-defaults.itely:2507 (comment)
+#. Documentation/user/changing-defaults.itely:2477 (comment)
 msgid "Try to remove all key signatures"
 msgstr "Versuche alle Tonarten zu entfernen"
 
-#. Documentation/user/changing-defaults.itely:2926 (comment)
+#. Documentation/user/changing-defaults.itely:2897 (comment)
 msgid "move horizontally left"
 msgstr "horizontal nach links verschieben"
 
-#. Documentation/user/changing-defaults.itely:2928 (comment)
+#. Documentation/user/changing-defaults.itely:2899 (comment)
 msgid "move vertically up"
 msgstr "vertikal hochschieben"
 
-#. Documentation/user/changing-defaults.itely:2929 (comment)
+#. Documentation/user/changing-defaults.itely:2900 (comment)
 msgid "third finger"
 msgstr "dritter Finger"
 
-#. Documentation/user/changing-defaults.itely:2975 (comment)
+#. Documentation/user/changing-defaults.itely:2949 (comment)
+#. Documentation/user/changing-defaults.itely:2981 (comment)
+#. input/lsr/aligning-marks-with-various-notation-objects.ly:39 (comment)
 msgid "the RehearsalMark will be centered above the Clef"
 msgstr "RehearsalMark zentrieren über dem Schlüssel"
 
-#. Documentation/user/changing-defaults.itely:2981 (comment)
+#. Documentation/user/changing-defaults.itely:2955 (comment)
+#. input/lsr/aligning-marks-with-various-notation-objects.ly:46 (comment)
 msgid "the RehearsalMark will be centered above the TimeSignature"
 msgstr "RehearsalMark zentrieren über der Taktart (TimeSignature)"
 
+#. Documentation/user/changing-defaults.itely:2975 (comment)
+msgid "the RehearsalMark will be centered above the Key Signature"
+msgstr "RehearsalMark wird über der Tonart (KeySignature) zentriert"
+
 #. Documentation/user/changing-defaults.itely:2995 (comment)
 msgid "The RehearsalMark will be centered above the KeySignature"
 msgstr "RehearsalMark zentrieren über der Tonart (KeySignature)"
@@ -8127,7 +9018,7 @@ msgstr "nach rechts um 3,5 Linienabstände verschieben"
 msgid "and then shifted left by 2 staff-spaces"
 msgstr "nach links um 2 Linienabstände verschieben"
 
-#. Documentation/user/changing-defaults.itely:3075 (variable)
+#. Documentation/user/changing-defaults.itely:3074 (variable)
 msgid "XinO"
 msgstr "XinO"
 
@@ -8151,19 +9042,23 @@ msgstr "Standardeinstellungen verändern"
 #. @node in Documentation/de/user/changing-defaults.itely
 #. @section in Documentation/de/user/changing-defaults.itely
 msgid "Interpretation contexts"
-msgstr "Interpretationsumgebungen"
+msgstr "Interpretationskontexte"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/de/user/changing-defaults.itely
 msgid "Score - the master of all contexts"
-msgstr "Score - Meister aller Kontexte"
+msgstr "Score - der Vater aller Kontexte"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8173,6 +9068,8 @@ msgstr "Oberste Kontexte -- Container für Systeme"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8182,6 +9079,8 @@ msgstr "Mittlere Kontexte -- Systeme"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8209,7 +9108,7 @@ msgstr "Umgebungs-Plugins verändern"
 #. @node in Documentation/de/user/changing-defaults.itely
 #. @subsection in Documentation/de/user/changing-defaults.itely
 msgid "Changing context default settings"
-msgstr "Die Standardeinstellungen von Umgebungen ändern"
+msgstr "Die Standardeinstellungen von Kontexten ändern"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @subsection in Documentation/user/changing-defaults.itely
@@ -8220,7 +9119,7 @@ msgstr "Die Standardeinstellungen von Umgebungen ändern"
 #. @node in Documentation/de/user/changing-defaults.itely
 #. @subsection in Documentation/de/user/changing-defaults.itely
 msgid "Defining new contexts"
-msgstr "Neue Umgebungen definieren"
+msgstr "Neue Kontexte definieren"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @subsection in Documentation/user/changing-defaults.itely
@@ -8231,10 +9130,12 @@ msgstr "Neue Umgebungen definieren"
 #. @node in Documentation/de/user/changing-defaults.itely
 #. @subsection in Documentation/de/user/changing-defaults.itely
 msgid "Aligning contexts"
-msgstr "Umgebungen aneinander ausrichten"
+msgstr "Kontexte aneinander ausrichten"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @section in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @section in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @section in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8277,15 +9178,19 @@ msgstr "Die Grob-Eigenschaften"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @subsection in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @subsection in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
 #. @subsection in Documentation/de/user/changing-defaults.itely
 msgid "Naming conventions"
-msgstr "Benennungsübereinkommen"
+msgstr "Benennungskonventionen"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @section in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @section in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @section in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8295,6 +9200,8 @@ msgstr "Eignschaften verändern"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @subsection in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @subsection in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8324,7 +9231,7 @@ msgid "The override command"
 msgstr "Der override-Befehl"
 
 #. @subsection in Documentation/user/changing-defaults.itely
-#. @section in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
 #. @subsection in Documentation/es/user/changing-defaults.itely
 #. @subsection in Documentation/de/user/changing-defaults.itely
 msgid "The @code{\\override} command"
@@ -8360,6 +9267,8 @@ msgstr "@code{\\set} versus @code{\\override}"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @section in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @section in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @section in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8369,6 +9278,8 @@ msgstr "Nützliche Konzepte und Eigenschaften"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @subsection in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @subsection in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8378,6 +9289,8 @@ msgstr "Eingabe-Modi"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @subsection in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @subsection in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8387,6 +9300,8 @@ msgstr "Richtung und Platzierung"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @subsection in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @subsection in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8396,14 +9311,19 @@ msgstr "Abstände und Maße"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @subsection in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @subsection in Documentation/es/user/changing-defaults.itely
-#, fuzzy
+#. @node in Documentation/de/user/changing-defaults.itely
+#. @subsection in Documentation/de/user/changing-defaults.itely
 msgid "Staff symbol properties"
-msgstr "Eigenschaften des Layouts"
+msgstr "Eigenschaften des Staff-Symbols"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @subsection in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @subsection in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8412,24 +9332,34 @@ msgid "Spanners"
 msgstr "Strecker"
 
 #. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/de/user/changing-defaults.itely
 msgid "Using the @code{spanner-interface}"
 msgstr "Das @code{spanner-interface} benutzen"
 
 #. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/de/user/changing-defaults.itely
 msgid "Using the @code{line-spanner-interface}"
 msgstr "Das @code{line-spanner-interface} benutzen"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @subsection in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @subsection in Documentation/es/user/changing-defaults.itely
+#. @node in Documentation/de/user/changing-defaults.itely
+#. @subsection in Documentation/de/user/changing-defaults.itely
 msgid "Visibility of objects"
 msgstr "Sichtbarkeit von Objekten"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8439,6 +9369,8 @@ msgstr "Einen stencil entfernen"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8448,6 +9380,8 @@ msgstr "Objekten unsichtbar machen"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8457,6 +9391,8 @@ msgstr "Objekte weiß malen"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8466,6 +9402,8 @@ msgstr "break-visibility (unsichtbar machen) benutzen"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8475,6 +9413,8 @@ msgstr "Besonderheiten"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @subsection in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @subsection in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8484,6 +9424,8 @@ msgstr "Zeilenstile"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @subsection in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @subsection in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8493,20 +9435,30 @@ msgstr "Drehen von Objekten"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
+#. @node in Documentation/de/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/de/user/changing-defaults.itely
 msgid "Rotating layout objects"
 msgstr "Drehen von Objekten"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
+#. @node in Documentation/de/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/de/user/changing-defaults.itely
 msgid "Rotating markup"
 msgstr "Textbeschriftung drehen"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @section in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @section in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @section in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8516,50 +9468,70 @@ msgstr "Fortgeschrittene Optimierungen"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @subsection in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @subsection in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
 #. @subsection in Documentation/de/user/changing-defaults.itely
 msgid "Aligning objects"
-msgstr "Umgebungen ausrichten"
+msgstr "Objekte ausrichten"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
+#. @node in Documentation/de/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/de/user/changing-defaults.itely
 msgid "Setting @code{X-offset} and @code{Y-offset} directly"
 msgstr "@code{X-offset} und @code{Y-offset} direkt setzen"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
+#. @node in Documentation/de/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/de/user/changing-defaults.itely
 msgid "Using the @code{side-position-interface}"
 msgstr "Das @code{side-position-interface} benutzen"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
+#. @node in Documentation/de/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/de/user/changing-defaults.itely
 msgid "Using the @code{self-alignment-interface}"
 msgstr "Das @code{self-alignment-interface} benutzen"
 
 #. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/de/user/changing-defaults.itely
 msgid "Using the @code{aligned-on-parent} procedures"
 msgstr "Die @code{aligned-on-parent}-Prozeduren benutzen"
 
 #. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/de/user/changing-defaults.itely
 msgid "Using the @code{centered-on-parent} procedures"
 msgstr "Die @code{centered-on-parent}-Prozeduren benutzen"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
-msgid "Using the @code{break-aligned-interface}"
-msgstr "Das @{break-aligned-interface} benutzen"
+msgid "Using the @code{break-alignable-interface}"
+msgstr "Benutzung des @code{break-aligned-interface}"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @subsection in Documentation/user/changing-defaults.itely
@@ -8574,6 +9546,8 @@ msgstr "Vertikale Gruppierung der grafischen Objekte („grob“s)"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @subsection in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @subsection in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8583,6 +9557,8 @@ msgstr "stencils verändern"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @subsection in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @subsection in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8592,8 +9568,12 @@ msgstr "Formen verändern"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
+#. @node in Documentation/de/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/de/user/changing-defaults.itely
 msgid "Modifying ties and slurs"
 msgstr "Bögen verändern"
 
@@ -8918,20 +9898,20 @@ msgid "Using Scheme code instead of \\tweak"
 msgstr "Scheme-Code anstelle von \\tweak verwenden"
 
 #. @section in Documentation/user/programming-interface.itely
-#. @subsection in Documentation/fr/user/changing-defaults.itely
+#. @section in Documentation/fr/user/programming-interface.itely
 #. @section in Documentation/es/user/programming-interface.itely
-#. @subsection in Documentation/de/user/programming-interface.itely
+#. @section in Documentation/de/user/programming-interface.itely
 msgid "Using Scheme code instead of @code{\\tweak}"
 msgstr "Scheme-Code anstelle von @code{\tweak} verwenden"
 
 #. @node in Documentation/user/programming-interface.itely
 #. @section in Documentation/user/programming-interface.itely
-#. @node in Documentation/fr/user/changing-defaults.itely
-#. @subsection in Documentation/fr/user/changing-defaults.itely
+#. @node in Documentation/fr/user/programming-interface.itely
+#. @section in Documentation/fr/user/programming-interface.itely
 #. @node in Documentation/es/user/programming-interface.itely
 #. @section in Documentation/es/user/programming-interface.itely
 #. @node in Documentation/de/user/programming-interface.itely
-#. @subsection in Documentation/de/user/programming-interface.itely
+#. @section in Documentation/de/user/programming-interface.itely
 msgid "Difficult tweaks"
 msgstr "Schwierige Korrekturen"
 
@@ -8970,15 +9950,23 @@ msgstr "Liste der Akkordbezeichnungen"
 
 #. @node in Documentation/user/notation-appendices.itely
 #. @appendixsec in Documentation/user/notation-appendices.itely
+#. @node in Documentation/fr/user/notation-appendices.itely
+#. @appendixsec in Documentation/fr/user/notation-appendices.itely
 #. @node in Documentation/es/user/notation-appendices.itely
 #. @appendixsec in Documentation/es/user/notation-appendices.itely
+#. @node in Documentation/de/user/notation-appendices.itely
+#. @appendixsec in Documentation/de/user/notation-appendices.itely
 msgid "Common chord modifiers"
 msgstr "Übliche Akkord-Variablen"
 
 #. @node in Documentation/user/notation-appendices.itely
 #. @appendixsec in Documentation/user/notation-appendices.itely
+#. @node in Documentation/fr/user/notation-appendices.itely
+#. @appendixsec in Documentation/fr/user/notation-appendices.itely
 #. @node in Documentation/es/user/notation-appendices.itely
 #. @appendixsec in Documentation/es/user/notation-appendices.itely
+#. @node in Documentation/de/user/notation-appendices.itely
+#. @appendixsec in Documentation/de/user/notation-appendices.itely
 msgid "Predefined fretboard diagrams"
 msgstr "Vordefinierte Bund-Diagramme"
 
@@ -9074,8 +10062,12 @@ msgstr "Liste der Arktikulationszeichen"
 
 #. @node in Documentation/user/notation-appendices.itely
 #. @appendixsec in Documentation/user/notation-appendices.itely
+#. @node in Documentation/fr/user/notation-appendices.itely
+#. @appendixsec in Documentation/fr/user/notation-appendices.itely
 #. @node in Documentation/es/user/notation-appendices.itely
 #. @appendixsec in Documentation/es/user/notation-appendices.itely
+#. @node in Documentation/de/user/notation-appendices.itely
+#. @appendixsec in Documentation/de/user/notation-appendices.itely
 msgid "Percussion notes"
 msgstr "Schlagzeugnoten"
 
@@ -9135,7 +10127,7 @@ msgid "Cheat sheet"
 msgstr "Befehlsübersicht"
 
 #. @top in Documentation/fr/user/lilypond-learning.tely
-msgid "GNU LilyPond --- manuel d'initiation"
+msgid "GNU LilyPond --- Manuel d'initiation"
 msgstr "GNU LilyPond -- Das Handbuch zum Lernen"
 
 #. @subsubheading in Documentation/fr/user/macros.itexi
@@ -9145,40 +10137,33 @@ msgstr "Übliche Veränderungen der Einstellungen"
 
 #. @subheading in Documentation/fr/user/tutorial.itely
 msgid "Hauteurs"
-msgstr ""
+msgstr "Hauteurs"
 
 #. @subheading in Documentation/fr/user/tutorial.itely
 msgid "Durées et rythme"
-msgstr ""
+msgstr "Durées·et·rythme"
 
 #. @subheading in Documentation/fr/user/tutorial.itely
 msgid "Silences"
-msgstr ""
+msgstr "Silences"
 
 #. @subheading in Documentation/fr/user/tutorial.itely
 msgid "Métrique"
-msgstr ""
+msgstr "Métrique"
 
 #. @subheading in Documentation/fr/user/tutorial.itely
 msgid "Tout ensemble"
-msgstr ""
+msgstr "Tout·ensemble"
 
 #. @subheading in Documentation/fr/user/tutorial.itely
 msgid "Exemples cliquables"
-msgstr ""
+msgstr "Exemples·cliquables"
 
 #. @node in Documentation/fr/user/tweaks.itely
 #. @subsection in Documentation/fr/user/tweaks.itely
-#. @node in Documentation/de/user/tweaks.itely
-#. @subsection in Documentation/de/user/tweaks.itely
 msgid "Outside staff objects"
 msgstr "Objekte außerhalb des Notensystems"
 
-#. @node in Documentation/fr/user/tweaks.itely
-#. @section in Documentation/fr/user/tweaks.itely
-msgid "Common tweaks"
-msgstr "Übliche Optimierungen"
-
 #. @node in Documentation/fr/user/working.itely
 #. @subsection in Documentation/fr/user/working.itely
 #. @node in Documentation/es/user/working.itely
@@ -9189,24 +10174,16 @@ msgid "Updating old files"
 msgstr "Alte Dateien aktualisieren"
 
 #. @top in Documentation/fr/user/lilypond-program.tely
-msgid "GNU LilyPond --- utilisation des programmes"
+msgid "GNU LilyPond --- Utilisation des programmes"
 msgstr "GNU LilyPond -- Die Programmbenutzung"
 
-#. @node in Documentation/fr/user/setup.itely
-#. @subsection in Documentation/fr/user/setup.itely
-#. @node in Documentation/de/user/setup.itely
-#. @subsection in Documentation/de/user/setup.itely
-msgid "MacOS X on the command-line"
-msgstr "MacOS X auf der Kommandozeile"
-
 #. @section in Documentation/fr/user/running.itely
-#. @section in Documentation/de/user/running.itely
 msgid "Updating with @command{convert-ly}"
 msgstr "Dateien mit @command{convert-ly} aktualisieren"
 
 #. @top in Documentation/fr/user/lilypond.tely
-msgid "GNU LilyPond --- manuel de notation"
-msgstr ""
+msgid "GNU LilyPond --- Manuel de notation"
+msgstr "GNU LilyPond -- Das Handbuch zum Lernen"
 
 #. @node in Documentation/fr/user/repeats.itely
 #. @unnumberedsubsubsec in Documentation/fr/user/repeats.itely
@@ -9265,11 +10242,11 @@ msgstr "Text über mehrere Seiten"
 
 #. @subsubheading in Documentation/fr/user/vocal.itely
 msgid "Mélismes dans certaines strophes seulement"
-msgstr ""
+msgstr "Mélismes·dans·certaines·strophes·seulement"
 
 #. @subsubheading in Documentation/fr/user/vocal.itely
 msgid "Basculer vers une mélodie alternative"
-msgstr ""
+msgstr "Basculer·vers·une·mélodie·alternative"
 
 #. @node in Documentation/fr/user/ancient.itely
 #. @subsection in Documentation/fr/user/ancient.itely
@@ -9377,7 +10354,6 @@ msgid "Baroque rhythmic notation"
 msgstr "Notation barocker Rhythmen"
 
 #. @section in Documentation/fr/user/spacing.itely
-#. @section in Documentation/de/user/spacing.itely
 msgid "Horizontal Spacing"
 msgstr "Horizontale Abstände"
 
@@ -9391,9 +10367,9 @@ msgstr "Layouteinstellungen mit Umgebungen"
 msgid "Constructing a tweak"
 msgstr "Eine Korrektur konstruieren"
 
-#. @node in Documentation/fr/user/changing-defaults.itely
+#. @node in Documentation/fr/user/programming-interface.itely
 msgid "Using Scheme code instead of tweak"
-msgstr ""
+msgstr "Using·Scheme·code·instead·of·tweak"
 
 #. @top in Documentation/es/user/lilypond-learning.tely
 msgid "GNU LilyPond: Manual de aprendizaje"
@@ -9401,23 +10377,23 @@ msgstr "GNU LilyPond -- Das Handbuch zum Lernen"
 
 #. @subsubheading in Documentation/es/user/macros.itexi
 msgid "Instrucciones predefinidas"
-msgstr ""
+msgstr "Instrucciones·predefinidas"
 
 #. @subsubheading in Documentation/es/user/macros.itexi
 msgid "Fragmentos de código seleccionados"
-msgstr ""
+msgstr "Fragmentos·de·código·seleccionados"
 
 #. @subsubheading in Documentation/es/user/macros.itexi
 msgid "Propiedades trucadas frecuentemente"
-msgstr ""
+msgstr "Propiedades·trucadas·frecuentemente"
 
 #. @subsubheading in Documentation/es/user/macros.itexi
 msgid "Véase también"
-msgstr ""
+msgstr "Véase·también"
 
 #. @subsubheading in Documentation/es/user/macros.itexi
 msgid "Advertencias y problemas conocidos"
-msgstr ""
+msgstr "Advertencias·y·problemas·conocido"
 
 #. @node in Documentation/es/user/tweaks.itely
 #. @subsection in Documentation/es/user/tweaks.itely
@@ -9429,10 +10405,6 @@ msgstr "Automatisches Verhalten"
 msgid "Suggestions for writing LilyPond files"
 msgstr "Vorschläge, wie LilyPond-Dateien geschrieben werden sollen"
 
-#. @rglos in Documentation/es/user/working.itely
-msgid "baritone"
-msgstr ""
-
 #. @top in Documentation/es/user/lilypond-program.tely
 msgid "GNU LilyPond: Manual de utilización del programa"
 msgstr "GNU LilyPond -- Die Programmbenutzung"
@@ -9445,19 +10417,10 @@ msgstr "GNU LilyPond -- Die Notationsreferenz"
 msgid "El tipografiador de música"
 msgstr "GNU LilyPond -- Das Notensatzprogramm"
 
-#. @rglos in Documentation/es/user/pitches.itely
-msgid "semitone"
-msgstr ""
-
 #. @top in Documentation/de/user/lilypond-learning.tely
 msgid "GNU LilyPond -- Handbuch zum Lernen"
 msgstr "GNU LilyPond -- Handbuch zum Lernen"
 
-#. @node in Documentation/de/user/fundamental.itely
-#. @section in Documentation/de/user/fundamental.itely
-msgid "How LilyPond files work"
-msgstr "Wie eine LilyPond-Datei funktioniert"
-
 #. @node in Documentation/de/user/templates.itely
 #. @appendixsec in Documentation/de/user/templates.itely
 msgid "Lilypond-book templates"
@@ -9467,219 +10430,3007 @@ msgstr "Lilypond-book-Vorlagen"
 msgid "GNU LilyPond -- Programmbenutzung"
 msgstr "GNU LilyPond -- Programmbenutzung"
 
-#. @top in Documentation/de/user/lilypond.tely
-msgid "GNU LilyPond -- Das Notationsprogramm"
-msgstr "GNU LilyPond -- Das Notationsprogramm"
+#. @chapheading in Documentation/de/user/lilypond.tely
+msgid "Das Notensatzprogramm"
+msgstr "Das Notensatzprogramm"
 
-#. @node in Documentation/de/user/staff.itely
-#. @unnumberedsubsubsec in Documentation/de/user/staff.itely
-msgid "System start delimiters"
-msgstr "Klammern am Systemanfang"
+#. @subsubheading in Documentation/de/user/vocal.itely
+msgid "Ignorieren von Melismen"
+msgstr "Melismen ignorieren"
 
 #. @node in Documentation/de/user/changing-defaults.itely
-#. @section in Documentation/de/user/changing-defaults.itely
-msgid "Common properties"
-msgstr "Übliche Eigenschaften"
+#. @unnumberedsubsubsec in Documentation/de/user/changing-defaults.itely
+msgid "Using the @code{break-aligned-interface}"
+msgstr "Das @code{break-aligned-interface} benutzen"
 
-#. @node in Documentation/de/user/changing-defaults.itely
-#. @subsection in Documentation/de/user/changing-defaults.itely
-msgid "Controlling visibility of objects"
-msgstr "Die Sichtbarkeit von Objekten kontrollieren"
+#. @top in Documentation/ja/user/lilypond-learning.tely
+msgid "GNU LilyPond --- 学習マニュアル"
+msgstr ""
 
-#. @node in Documentation/de/user/changing-defaults.itely
-#. @subsection in Documentation/de/user/changing-defaults.itely
-msgid "Modifying ends of spanners"
-msgstr "Enden von Streckern verändern"
+#. @top in Documentation/ja/user/lilypond-program.tely
+msgid "GNU LilyPond --- アプリケーション使用方法"
+msgstr ""
 
-#. @node in Documentation/de/user/changing-defaults.itely
-#. @section in Documentation/de/user/changing-defaults.itely
-msgid "Discussion of specific tweaks"
-msgstr "Erklärung von speziellen Optimierungen"
+#. input/lsr/accordion-discant-symbols.ly:34 (variable)
+msgid "discant"
+msgstr "Diskant"
 
-#. @node in Documentation/de/user/changing-defaults.itely
-#. @subsection in Documentation/de/user/changing-defaults.itely
-msgid "old Contexts explained"
-msgstr "Alte Kontexte"
+#. input/lsr/accordion-discant-symbols.ly:37 (variable)
+msgid "dot"
+msgstr "punkt"
 
-#. @node in Documentation/de/user/programming-interface.itely
-#. @section in Documentation/de/user/programming-interface.itely
-msgid "TODO moved into scheme"
-msgstr "TODO nach Scheme verschoben"
+#. input/lsr/accordion-discant-symbols.ly:43 (comment)
+msgid "16 voets register"
+msgstr "16 voets Register"
 
-msgid "Up:"
-msgstr "Nach oben:"
+#. input/lsr/accordion-discant-symbols.ly:44 (variable)
+msgid "accBasson"
+msgstr "accBasson"
 
-msgid "Next:"
-msgstr "Weiter:"
+#. input/lsr/accordion-discant-symbols.ly:50 (comment)
+msgid "een korig 8 en 16 voets register"
+msgstr "een·korig·8·en·16·voets·register"
 
-msgid "Previous:"
-msgstr "Zurück:"
+#. input/lsr/accordion-discant-symbols.ly:51 (variable)
+msgid "accBandon"
+msgstr "accBandon"
 
-msgid "Appendix "
-msgstr "Anhang "
+#. input/lsr/accordion-discant-symbols.ly:59 (variable)
+msgid "accVCello"
+msgstr "accVCello"
 
-msgid "Footnotes"
-msgstr "Fußnoten"
+#. input/lsr/accordion-discant-symbols.ly:69 (comment)
+msgid "4-8-16 voets register"
+msgstr "4-8-16·voets·register"
 
-msgid "Table of Contents"
-msgstr "Inhaltsverzeichnis"
+#. input/lsr/accordion-discant-symbols.ly:70 (variable)
+msgid "accHarmon"
+msgstr "accHarmon"
 
-#~ msgid "broken"
-#~ msgstr "broken"
+#. input/lsr/accordion-discant-symbols.ly:80 (variable)
+msgid "accTrombon"
+msgstr "accPosaune"
 
-#~ msgid "\\set DrumStaff.drumStyleTable = #(alist->hash-table mydrums)"
-#~ msgstr "\\set DrumStaff.drumStyleTable = #(alist->hash-table mydrums)"
+#. input/lsr/accordion-discant-symbols.ly:92 (comment)
+msgid "eenkorig 4 en 16 voets register"
+msgstr "eenkorig·4·en·16·voets·register"
 
-#~ msgid "force-hshift-Eigenschaft"
-#~ msgstr "force-hshift-Eigenschaft"
+#. input/lsr/accordion-discant-symbols.ly:93 (variable)
+msgid "accOrgan"
+msgstr "accOrgel"
 
-#~ msgid "Laissez vibrer ties"
-#~ msgstr "Laissez-vibrer-Bögen"
+#. input/lsr/accordion-discant-symbols.ly:101 (variable)
+msgid "accMaster"
+msgstr "accHaupt"
 
-#~ msgid "Create 9/8 split into 2/4 + 5/8"
-#~ msgstr "Erstelle 9/8 als 2/4 + 5/8"
+#. input/lsr/accordion-discant-symbols.ly:115 (variable)
+msgid "accAccord"
+msgstr "accAkkord"
 
-#~ msgid "tsMarkup"
-#~ msgstr "Taktangabe"
+#. input/lsr/accordion-discant-symbols.ly:127 (variable)
+msgid "accMusette"
+msgstr "accMusette"
 
-#~ msgid "Keyboard instruments"
-#~ msgstr "Tasteninstrumente"
+#. input/lsr/accordion-discant-symbols.ly:137 (variable)
+msgid "accCeleste"
+msgstr "accCelesta"
 
-#~ msgid "Bowed instruments"
-#~ msgstr "Streichinstrumente"
+#. input/lsr/accordion-discant-symbols.ly:145 (variable)
+msgid "accOboe"
+msgstr "accOboe"
 
-#~ msgid "References for bowed strings"
-#~ msgstr "Referenz für Streicher"
+#. input/lsr/accordion-discant-symbols.ly:153 (variable)
+msgid "accClarin"
+msgstr "accClarin"
 
-#~ msgid "Plucked instruments"
-#~ msgstr "Zupfinstrumente"
+#. input/lsr/accordion-discant-symbols.ly:159 (variable)
+msgid "accPiccolo"
+msgstr "accPiccolo"
 
-#~ msgid "Writing long repeats"
-#~ msgstr "Lange Wiederholungen eingeben"
+#. input/lsr/accordion-discant-symbols.ly:165 (variable)
+msgid "accViolin"
+msgstr "accGeige"
 
-#~ msgid "Placement of lyrics"
-#~ msgstr "Positionierung von Gesangtext"
+#. input/lsr/adding-a-figured-bass-above-or-below-the-notes.ly:41 (variable)
+#. input/lsr/jazz-combo-template.ly:231 (variable)
+#. input/lsr/jazz-combo-template.ly:279 (context id)
+msgid "bass"
+msgstr "Bass"
 
-#, fuzzy
-#~ msgid "Keyboard and other many-stringed instruments"
-#~ msgstr "Saiteninstrumente mit Bünden"
+#. input/lsr/adding-a-figured-bass-above-or-below-the-notes.ly:42 (variable)
+msgid "continuo"
+msgstr "Continuo"
 
-#~ msgid ""
-#~ "Report errors to <a href=\"%(mail_address_url)s\">%(mail_address)s</a>."
-#~ msgstr ""
-#~ "Fehler bitte an <a href=\"%(mail_address_url)s\">%(mail_address)s</a> "
-#~ "melden."
+#. input/lsr/adding-a-figured-bass-above-or-below-the-notes.ly:53 (context id)
+#. input/lsr/adding-a-figured-bass-above-or-below-the-notes.ly:54 (context id)
+msgid "bassStaff"
+msgstr "BassSystem"
 
-#~ msgid "Writing repeats"
-#~ msgstr "Wiederholungen eingeben"
+#. input/lsr/adding-an-extra-staff-at-a-line-break.ly:52 (comment)
+msgid "The next line is not needed in 2.11.x or later:"
+msgstr "Die nächste Zeile braucht man nicht in 2.11.x oder später"
 
-#~ msgid "doits"
-#~ msgstr "doits"
+#. input/lsr/adding-drum-parts.ly:46 (variable)
+msgid "drh"
+msgstr "drh"
 
-#~ msgid "or You can use  special note heads for the woodblocks."
-#~ msgstr ""
-#~ "oder spezielle Notenköpfe können für die Holzblöcke definiert werden"
+#. input/lsr/adding-drum-parts.ly:47 (variable)
+msgid "drl"
+msgstr "drl"
 
-#~ msgid "tambourine-music is entered with \\\"tamb\\\""
-#~ msgstr "Taburin-Noten eingegeben mit \\\"tamb\\\""
+#. input/lsr/adding-drum-parts.ly:48 (variable)
+msgid "timb"
+msgstr "timb"
 
-#~ msgid "bells are enterd with:"
-#~ msgstr "Glocken eingeben:"
+#. input/lsr/adding-fingerings-to-tablatures.ly:25 (variable)
+msgid "threeTwo"
+msgstr "dreiZwei"
 
-#~ msgid "\\\"cb\\\" (cowbell) and \\\"rb\\\" (ridebell)\\\" "
-#~ msgstr "\\\"cb\\\" (Kuhglocke) und \\\"rb\\\" (Reitglocke)\\\" "
+#. input/lsr/adding-fingerings-to-tablatures.ly:32 (variable)
+msgid "threeFour"
+msgstr "dreiVier"
 
-#~ msgid "Collision Resolution"
-#~ msgstr "Auflösung von Zusammenstößen"
+#. input/lsr/adding-the-current-date-to-a-score.ly:29 (comment)
+msgid "first, define a variable to hold the formatted date:"
+msgstr "zuerst eine Variable für das formatierte Datum definieren:"
 
-#~ msgid "The piano staff"
-#~ msgstr "Das Klaviersystem"
+#. input/lsr/adding-the-current-date-to-a-score.ly:30 (variable)
+msgid "date"
+msgstr "Datum"
 
-#~ msgid "Right hand fingerings"
-#~ msgstr "Fingersatz der rechten Hand"
+#. input/lsr/adding-the-current-date-to-a-score.ly:30 (comment)
+msgid "d-%m-%Y\\\" (localtime (current-time)))"
+msgstr "d-%m-%Y\\\" (localtime (current-time)))"
 
-#~ msgid "Simulating a fermata"
-#~ msgstr "Eine Fermate simulieren"
+#. input/lsr/adding-the-current-date-to-a-score.ly:32 (comment)
+msgid "use it in the title block:"
+msgstr "das für den Titel benutzen"
 
-#~ msgid "Ancient TODO"
-#~ msgstr "Alte Musik"
+#. input/lsr/adding-the-current-date-to-a-score.ly:43 (comment)
+msgid "and use it in a \\markup block:"
+msgstr "und in einer \\markup-Umgebung benutzen"
 
-#~ msgid "Gregorian Chant contexts"
-#~ msgstr "Gregorianische Gesangs-Kontexte"
+#. input/lsr/additional-voices-to-avoid-collisions.ly:27 (variable)
+msgid "voiceFive"
+msgstr "StimmeFünf"
 
-#~ msgid "Musica ficta accidentals"
-#~ msgstr "Musica-ficta-Versetzungszeichen"
+#. input/lsr/adjusting-lyrics-vertical-spacing.ly:30 (comment)
+msgid "Default layout:"
+msgstr "Standardlayout:"
 
-#~ msgid "User manual"
-#~ msgstr "Benutzerhandbuch"
+#. input/lsr/adjusting-lyrics-vertical-spacing.ly:39 (comment)
+msgid "Reducing the minimum space below the staff and above the lyrics:"
+msgstr "Mindestplatz unter dem System und über dem Gesangstext:"
 
-#~ msgid "Learning manual"
-#~ msgstr "Handbuch zum Lernen (LH)"
+#. input/lsr/aligning-marks-with-various-notation-objects.ly:54 (comment)
+msgid "the RehearsalMark will be centered above the KeySignature"
+msgstr "RehearsalMark über der Tonart (KeySignature) zentrieren"
 
-#~ msgid "Notation reference"
-#~ msgstr "Notationsreferenz (NR)"
+#. input/lsr/aligning-marks-with-various-notation-objects.ly:65 (comment)
+#. input/lsr/aligning-marks-with-various-notation-objects.ly:77 (comment)
+msgid ""
+"the RehearsalMark will be aligned with the left edge of the KeySignature"
+msgstr "RehearsalMark mit der linken Ecke von KeySignature ausrichten"
 
-#~ msgid "Appendices"
-#~ msgstr "Anhang"
+#. input/lsr/aligning-marks-with-various-notation-objects.ly:71 (comment)
+msgid ""
+"the RehearsalMark will be aligned with the right edge of the KeySignature"
+msgstr "RehearsalMark mit der rechten Ecke von KeySignature ausrichten"
 
-#~ msgid "Program usage"
-#~ msgstr "Programmbenutzung"
+#. input/lsr/aligning-marks-with-various-notation-objects.ly:78 (comment)
+msgid "and then shifted right by one unit."
+msgstr "nach rechts um eine Einheit verschieben"
+
+#. input/lsr/ancient-fonts.ly:33 (variable)
+#. input/lsr/ancient-fonts.ly:33 (context id)
+msgid "upperStaff"
+msgstr "SystemOben"
+
+#. input/lsr/ancient-fonts.ly:45 (comment)
+msgid "\\break % 1 (8*1)"
+msgstr "\\break % 1 (8*1)"
+
+#. input/lsr/ancient-fonts.ly:56 (comment)
+msgid "\\break %2 (8*1)"
+msgstr "\\break·%2·(8*1)"
+
+#. input/lsr/ancient-fonts.ly:68 (comment)
+msgid "\\break % 3 (8*1)"
+msgstr "\\break·%·3·(8*1)"
+
+#. input/lsr/ancient-fonts.ly:83 (comment)
+msgid "\\break % 4 (8*1)"
+msgstr "\\break·%·4·(8*1)"
+
+#. input/lsr/ancient-fonts.ly:92 (comment)
+#. input/lsr/ancient-fonts.ly:154 (comment)
+msgid "\\break % 5 (8*1)"
+msgstr "\\break·%·5·(8*1)"
+
+#. input/lsr/ancient-fonts.ly:106 (comment)
+#. input/lsr/ancient-fonts.ly:169 (comment)
+msgid "\\break % 6 (8*1)"
+msgstr "\\break·%·6·(8*1"
+
+#. input/lsr/ancient-fonts.ly:115 (comment)
+#. input/lsr/ancient-fonts.ly:179 (comment)
+msgid "\\break % 7 (8*1)"
+msgstr "\\break·%·7·(8*1)"
+
+#. input/lsr/ancient-fonts.ly:122 (comment)
+msgid "\\break % 8 (8*1)"
+msgstr "\\break·%·8·(8*1)"
+
+#. input/lsr/ancient-fonts.ly:125 (comment)
+msgid "\\break % 12 (32*1)"
+msgstr "\\break·%·12·(32*1)"
+
+#. input/lsr/ancient-fonts.ly:130 (variable)
+#. input/lsr/ancient-fonts.ly:130 (context id)
+msgid "lowerStaff"
+msgstr "SystemUnten"
+
+#. input/lsr/ancient-fonts.ly:140 (comment)
+msgid "\\break % 2 (16*1)"
+msgstr "\\break·%·2·(16*1)"
+
+#. input/lsr/ancient-fonts.ly:145 (comment)
+msgid "\\break % 4 (16*1)"
+msgstr "\\break·%·4·(16*1)"
+
+#. input/lsr/ancient-fonts.ly:184 (comment)
+msgid "\\break % 9 (16*1)"
+msgstr "\\break·%·9·(16*1)"
+
+#. input/lsr/ancient-fonts.ly:186 (comment)
+msgid "lig"
+msgstr "lig"
+
+#. input/lsr/ancient-fonts.ly:190 (comment)
+msgid "\\break % 11 (16*1)"
+msgstr "\\break·%·11·(16*1)"
+
+#. input/lsr/ancient-fonts.ly:201 (comment)
+msgid "\\break % 12 (8*1)"
+msgstr "\\break·%·12·(8*1)"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:62 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:109 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:128 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:145 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:164 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:179 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:200 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:213 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:232 (comment)
+#. input/lsr/incipit.ly:19 (variable)
+#. input/lsr/incipit.ly:189 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:212 (comment)
+msgid "incipit"
+msgstr "Incipit"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:64 (comment)
+msgid "tight spacing"
+msgstr "dichter Satz"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:71 (comment)
+msgid "turn off bar lines"
+msgstr "Taktstriche ausschalten"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:75 (comment)
+msgid "need this extra \\skip such that clef change comes"
+msgstr "zusätzliches \\skip nötig, damit Schlüsselwechsel gedruckt wird"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:76 (comment)
+msgid "after bar line"
+msgstr "nach der Taktlinie"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:80 (comment)
+msgid "CHECK: no effect?"
+msgstr "CHECK: keine Auswirkung?"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:81 (comment)
+msgid "turn bar lines on again"
+msgstr "Taktstriche wieder anschalten"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:89 (comment)
+msgid "FIXME: setting printKeyCancellation back to #t must not"
+msgstr "FIXME: printKeyCancellation wieder auf #t setzen darf nicht"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:90 (comment)
+msgid "occur in the first bar after the incipit.  Dto. for forceClef."
+msgstr "im ersten Takt nach dem Incipit auftauchen. Genauso für forceClef."
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:91 (comment)
+msgid "Therefore, we need an extra \\skip."
+msgstr "Darum ein zusätzlicher \\skip"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:96 (comment)
+#. input/lsr/incipit.ly:62 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:37 (comment)
+msgid "the actual music"
+msgstr "die eigentlichen Noten"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:98 (comment)
+#. input/lsr/incipit.ly:65 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:39 (comment)
+msgid "let finis bar go through all staves"
+msgstr "Finis Taktlinie durch alle Systeme setzen"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:101 (comment)
+#. input/lsr/incipit.ly:68 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:42 (comment)
+msgid "finis bar"
+msgstr "Finis-Taktstrich"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:105 (variable)
+#. input/lsr/incipit.ly:85 (variable)
+#. input/lsr/incipit.ly:220 (context id)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:47 (variable)
+msgid "discantusNotes"
+msgstr "DiskantusNoten"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:111 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:148 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:154 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:168 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:182 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:184 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:193 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:204 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:216 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:73 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:83 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:96 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:103 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:138 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:163 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:187 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:189 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:214 (comment)
+msgid "two bars"
+msgstr "zwei Takte"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:112 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:215 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:139 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:213 (comment)
+msgid "eight bars"
+msgstr "acht Takte"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:113 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:147 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:150 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:183 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:185 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:186 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:217 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:162 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:188 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:190 (comment)
+msgid "one bar"
+msgstr "Ein Takt"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:127 (variable)
+#. input/lsr/incipit.ly:99 (variable)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:60 (variable)
+msgid "discantusLyrics"
+msgstr "DiskantusText"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:141 (variable)
+#. input/lsr/incipit.ly:122 (variable)
+#. input/lsr/incipit.ly:227 (context id)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:70 (variable)
+msgid "altusNotes"
+msgstr "AltNoten"
 
-#~ msgid "Other information"
-#~ msgstr "Mehr Information"
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:149 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:164 (comment)
+msgid "seven bars"
+msgstr "Sieben Takte"
 
-#~ msgid "Unix"
-#~ msgstr "Unix"
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:163 (variable)
+#. input/lsr/incipit.ly:136 (variable)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:82 (variable)
+msgid "altusLyrics"
+msgstr "AltText"
 
-#~ msgid "Working on text files"
-#~ msgstr "Arbeiten an Text-Dateien"
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:175 (variable)
+#. input/lsr/incipit.ly:160 (variable)
+#. input/lsr/incipit.ly:234 (context id)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:90 (variable)
+msgid "tenorNotes"
+msgstr "TenorNoten"
 
-#~ msgid "legato"
-#~ msgstr "Legato"
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:181 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:186 (comment)
+msgid "four bars"
+msgstr "vier Takte"
 
-#~ msgid "Chords"
-#~ msgstr "Akkorde"
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:199 (variable)
+#. input/lsr/incipit.ly:175 (variable)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:102 (variable)
+msgid "tenorLyrics"
+msgstr "TenorText"
 
-#~ msgid "Guitar tablatures"
-#~ msgstr "Gitarren-Tabulaturen"
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:209 (variable)
+#. input/lsr/incipit.ly:197 (variable)
+#. input/lsr/incipit.ly:241 (context id)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:108 (variable)
+msgid "bassusNotes"
+msgstr "BassNoten"
 
-#~ msgid "smaller"
-#~ msgstr "kleiner"
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:231 (variable)
+#. input/lsr/incipit.ly:211 (variable)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:121 (variable)
+msgid "bassusLyrics"
+msgstr "BassText"
 
-#~ msgid "Half-holes"
-#~ msgstr "Halbgeschlossene Löcher"
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:242 (context id)
+#. input/lsr/incipit.ly:219 (context id)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:229 (context id)
+msgid "choirStaff"
+msgstr "choirStaff"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:264 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:266 (comment)
+msgid "no bars in staves"
+msgstr "keine Taktstriche in den Systemen"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:267 (comment)
+msgid "incipit should not start with a start delimiter"
+msgstr "Incipit nicht mit einer Systemklammer beginnen"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:273 (comment)
+#. input/lsr/incipit.ly:264 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:277 (comment)
+msgid "no slurs"
+msgstr "keine Legatobögen"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:276 (comment)
+#. input/lsr/incipit.ly:266 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:280 (comment)
+msgid "Comment in the below \\\"\\remove\\\" command to allow line"
+msgstr "Den \\\"\\remove\\\"-Befehl einkommentieren, um"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:277 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:281 (comment)
+msgid "breaking also at those barlines where a note overlaps"
+msgstr "Zeilenumbrauch auch zu erlauben, wenn Noten über Taktlinie reichen"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:278 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:282 (comment)
+msgid "into the next bar.  The command is commented out in this"
+msgstr "Der Befehl ist auskommentiert in"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:279 (comment)
+#. input/lsr/incipit.ly:269 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:283 (comment)
+msgid "short example score, but especially for large scores, you"
+msgstr "diesem kleinen Beispiel, aber für größere Partituren"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:280 (comment)
+#. input/lsr/incipit.ly:270 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:284 (comment)
+msgid "will typically yield better line breaking and thus improve"
+msgstr "ergeben sich bessere Zeilenumbrüche und"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:281 (comment)
+#. input/lsr/incipit.ly:271 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:285 (comment)
+msgid "overall spacing if you comment in the following command."
+msgstr ""
+"auch die Aufteilung der Noten verbessert sich, wenn der folgende Befehl "
+"benutzt wird:"
 
-#~ msgid "Objects connected to the input"
-#~ msgstr "Objekte, die mit der Eingabe verbunden sind"
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:282 (comment)
+#. input/lsr/incipit.ly:272 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:286 (comment)
+msgid "\\remove \\\"Forbid_line_break_engraver\\\""
+msgstr "\\remove·\\\"Forbid_line_break_engraver\\\""
 
-#~ msgid "Default files"
-#~ msgstr "Standarddateien"
+#. input/lsr/applying-note-head-styles-depending-on-the-step-of-the-scale.ly:73 (variable)
+#. input/lsr/clusters.ly:27 (variable)
+msgid "fragment"
+msgstr "Frament"
 
-#~ msgid "Normal pitches"
-#~ msgstr "Normale Tonhöhen"
+#. input/lsr/automatic-beams-two-per-two-in-4-4-or-2-2-time-signature.ly:41 (comment)
+msgid "Automatic beams two per two in 4/4 or 2/2 time signature"
+msgstr "Automatische Balken zwei und zwei in 4/4 oder 2/2-Takten"
 
-#~ msgid "Cautionary accidentals"
-#~ msgstr "Warnungsversetzungszeichen"
+#. input/lsr/automatic-beams-two-per-two-in-4-4-or-2-2-time-signature.ly:42 (comment)
+msgid "_____"
+msgstr "_____"
 
-#~ msgid "Micro tones"
-#~ msgstr "Mikrotöne"
+#. input/lsr/automatic-beams-two-per-two-in-4-4-or-2-2-time-signature.ly:43 (comment)
+msgid "Default     | | | |"
+msgstr "Standard····|·|·|·|"
 
-#~ msgid "Relative octaves"
-#~ msgstr "Relative Oktavenbezeichnung"
+#. input/lsr/automatic-beams-two-per-two-in-4-4-or-2-2-time-signature.ly:44 (comment)
+msgid "_   _"
+msgstr "_..._"
 
-#~ msgid "Octave check"
-#~ msgstr "Oktavenüberprüfung"
+#. input/lsr/automatic-beams-two-per-two-in-4-4-or-2-2-time-signature.ly:45 (comment)
+msgid "Required    | | | |"
+msgstr "Benötigt····|·|·|·|"
 
-#~ msgid "Augmentation dots"
-#~ msgstr "Punktierung"
+#. input/lsr/automatic-beams-two-per-two-in-4-4-or-2-2-time-signature.ly:47 (comment)
+msgid "macro for beamed two per two in 2/2 and 4/4 time signature"
+msgstr "Makro für bebalkte zwei und zwei in 2/2 und 4/4 Takten"
 
-#~ msgid "Skips"
-#~ msgstr "Überspringen von Zeichen"
+#. input/lsr/automatic-beams-two-per-two-in-4-4-or-2-2-time-signature.ly:48 (variable)
+msgid "qBeam"
+msgstr "qBalken"
 
-#~ msgid "Multi measure rests"
-#~ msgstr "Mehrtaktige Pausen"
+#. input/lsr/automatic-beams-two-per-two-in-4-4-or-2-2-time-signature.ly:63 (comment)
+msgid "Use the macro"
+msgstr "Makro benutzen"
 
-#~ msgid "Bar check"
+#. input/lsr/avoiding-collisions-with-chord-fingerings.ly:30 (comment)
+msgid "Corrected to avoid collisions"
+msgstr "Korrigiert, um Zusammenstöße zu vermeiden"
+
+#. input/lsr/beam-endings-in-score-context.ly:28 (comment)
+msgid "Set default beaming for all staves"
+msgstr "Automatische Bebalkung für alle Systeme"
+
+#. input/lsr/beam-endings-in-score-context.ly:36 (comment)
+msgid "Modify beaming for just this staff"
+msgstr "Balken nur für dieses System verändern"
+
+#. input/lsr/beam-endings-in-score-context.ly:42 (comment)
+msgid "Inherit beaming from Score context"
+msgstr "Bebalkung vom Score-Kontext geerbt"
+
+#. input/lsr/beam-endings-in-score-context.ly:48 (comment)
+msgid "Modify beaming for this voice only"
+msgstr "Balken nur für diese Stimme ändern"
+
+#. input/lsr/beam-grouping-in-7-8-time.ly:40 (comment)
+msgid "rhythm 2-3-2"
+msgstr "Rhythmus 2-3-2"
+
+#. input/lsr/book-parts.ly:21 (comment)
+msgid "book paper, which is inherited by all children bookparts"
+msgstr "book-Papier, wird von allen untergeordneten book-Abschnitten geerbt"
+
+#. input/lsr/book-parts.ly:24 (comment)
+msgid "Page footer: add a different part-tagline at part last page"
+msgstr "Seitenfuß: eine andere tagline für letzte Seite des Abschnitts"
+
+#. input/lsr/book-parts.ly:28 (comment)
+msgid "Copyright header field only on book first page."
+msgstr "Copyright-Feld nur auf erster Seite von book"
+
+#. input/lsr/book-parts.ly:32 (comment)
+msgid "Part tagline header field only on each part last page."
+msgstr "Abschnitt-tagline-Feld nur auf letzter Seite jedes Abschnitts"
+
+#. input/lsr/book-parts.ly:36 (comment)
+msgid "Tagline header field only on book last page."
+msgstr "Tagline-Feld nur auf letzter Seite von book"
+
+#. input/lsr/book-parts.ly:43 (comment)
+msgid "book header, which is inherited by the first bookpart"
+msgstr "Kopf von book, wird vom ersten Abschnitt in book geerbt"
+
+#. input/lsr/book-parts.ly:52 (comment)
+msgid "a different page breaking function may be used on each part"
+msgstr ""
+"andere Seitenumbruchfunktionen können für jeden Abschnitt benutzt werden"
+
+#. input/lsr/breathing-signs.ly:19 (comment)
+msgid "this bar contains no \\breathe"
+msgstr "Dieser Takt hat kein \\breathe"
+
+#. input/lsr/breathing-signs.ly:21 (comment)
+msgid "Modern notation:"
+msgstr "Moderne Notation:"
+
+#. input/lsr/breathing-signs.ly:22 (comment)
+msgid "by default, \\breathe uses the rcomma, just as if saying:"
+msgstr "von sich aus, \\breathe benutzt rcomma, also ob man schreibt:"
+
+#. input/lsr/breathing-signs.ly:23 (comment)
+msgid ""
+"\\override BreathingSign #'text = #(make-musicglyph-markup \\\"scripts.rcomma"
+"\\\")"
+msgstr ""
+"\\override·BreathingSign·#'text·=·#(make-musicglyph-markup·\\\"scripts.rcomma"
+"\\\")"
+
+#. input/lsr/breathing-signs.ly:26 (comment)
+msgid "rvarcomma and lvarcomma are variations of the default rcomma and lcomma"
+msgstr "rvarcomma·und·lvarcomma sind Variationen von rcomma und lcomma"
+
+#. input/lsr/breathing-signs.ly:27 (comment)
+msgid "N.B.: must use Staff context here, since we start a Voice below"
+msgstr "Staff-Kontext benötigt, weil ein Voice-Kontext begonnen wird"
+
+#. input/lsr/breathing-signs.ly:31 (comment)
+msgid "vee"
+msgstr "vau"
+
+#. input/lsr/caesura-railtracks-with-fermata.ly:28 (comment)
+msgid "construct the symbol"
+msgstr "Das Symbol konstruieren"
+
+#. input/lsr/caesura-railtracks-with-fermata.ly:37 (comment)
+msgid "set the breathe mark back to normal"
+msgstr "Atemzeichen auf Standard zurücksetzen"
+
+#. input/lsr/center-text-below-hairpin-dynamics.ly:27 (variable)
+msgid "hairpinWithCenteredText"
+msgstr "GabelmitzentriertemText"
+
+#. input/lsr/center-text-below-hairpin-dynamics.ly:39 (variable)
+msgid "hairpinMolto"
+msgstr "GabelMolto"
+
+#. input/lsr/center-text-below-hairpin-dynamics.ly:40 (variable)
+msgid "hairpinMore"
+msgstr "GabelMehr"
+
+#. input/lsr/changing--flageolet-mark-size.ly:23 (variable)
+msgid "smallFlageolet"
+msgstr "kleinFlageolett"
+
+#. input/lsr/changing-the-chord-names-to-german-or-semi-german-notation.ly:34 (comment)
+msgid "The following is only here to print the names of the"
+msgstr "Das hier nur, damit die Bezeichnungen der Akkordstile"
+
+#. input/lsr/changing-the-chord-names-to-german-or-semi-german-notation.ly:35 (comment)
+msgid "chords styles; it can be removed if you do not need to"
+msgstr "gesetzt werden, kann entfernt werden, wenn nicht"
+
+#. input/lsr/changing-the-chord-names-to-german-or-semi-german-notation.ly:36 (comment)
+msgid "print them."
+msgstr "gebraucht wird."
+
+#. input/lsr/changing-the-default-text-font-family.ly:17 (comment)
+msgid "change for other default global staff size. "
+msgstr "Änderung für andere globale Systemgröße"
+
+#. input/lsr/changing-the-default-text-font-family.ly:19 (comment)
+#. input/lsr/engravers-one-by-one.ly:191 (comment)
+#. input/lsr/score-for-diatonic-accordion.ly:110 (comment)
+msgid "{"
+msgstr "{"
+
+#. input/lsr/changing-the-default-text-font-family.ly:23 (comment)
+#. input/lsr/engravers-one-by-one.ly:194 (comment)
+#. input/lsr/score-for-diatonic-accordion.ly:111 (comment)
+#. input/lsr/score-for-diatonic-accordion.ly:233 (comment)
+#. input/lsr/string-quartet-template-with-separate-parts.ly:177 (comment)
+msgid "}"
+msgstr "}"
+
+#. input/lsr/changing-the-time-signature-without-affecting-the-beaming.ly:35 (comment)
+msgid "Change time signature symbol but keep 3/4 beaming"
+msgstr "Taktartsymbol ändern, aber 3/4-Balken"
+
+#. input/lsr/changing-the-time-signature-without-affecting-the-beaming.ly:36 (comment)
+msgid "due to unchanged underlying time signature"
+msgstr "wegen unveränderter Taktartaufteilung behalten"
+
+#. input/lsr/changing-the-time-signature-without-affecting-the-beaming.ly:41 (comment)
+msgid "Lose 3/4 beaming now \\time has been changed"
+msgstr "3/4-Balken lösen, da \\time geändert wurde"
+
+#. input/lsr/chant-or-psalms-notation.ly:23 (variable)
+msgid "stemOn"
+msgstr "halsAn"
+
+#. input/lsr/chant-or-psalms-notation.ly:24 (variable)
+msgid "stemOff"
+msgstr "halsAus"
+
+#. input/lsr/chord-name-exceptions.ly:24 (comment)
+msgid "modify maj9 and 6(add9)"
+msgstr "maj9 und 6(add9) verändern"
+
+#. input/lsr/chord-name-exceptions.ly:25 (comment)
+msgid "Exception music is chords with markups"
+msgstr "Ausnahmemusik sind Akkorde mit Textbeschriftung"
+
+#. input/lsr/chord-name-exceptions.ly:26 (variable)
+msgid "chExceptionMusic"
+msgstr "chExceptionMusic"
+
+#. input/lsr/chord-name-exceptions.ly:31 (comment)
+msgid "Convert music to list and prepend to existing exceptions."
+msgstr "Noten zu Liste konvertieren und an existierende Ausnahmen anhängen"
+
+#. input/lsr/chord-name-exceptions.ly:32 (variable)
+msgid "chExceptions"
+msgstr "chAusnahmen"
+
+#. input/lsr/chord-name-exceptions.ly:36 (variable)
+msgid "theMusic"
+msgstr "Noten"
+
+#. input/lsr/clip-systems.ly:37 (variable)
+msgid "origScore"
+msgstr "origPartitur"
+
+#. input/lsr/clip-systems.ly:55 (comment)
+msgid "Each clip-region is a (START . END) pair"
+msgstr "Jede Clip-Region ist ein (START . END) Paar"
+
+#. input/lsr/clip-systems.ly:56 (comment)
+msgid "where both are rhythmic-locations."
+msgstr "wobei beide rhythmische Plätze sind"
+
+#. input/lsr/clip-systems.ly:58 (comment)
+msgid "(make-rhythmic-locations BAR-NUMBER NUM DEN)"
+msgstr "(make-rhythmic-locations TAKT-NUMMER ZÄHLER NENNER)"
+
+#. input/lsr/clip-systems.ly:59 (comment)
+msgid "means NUM/DEN whole-notes into bar numbered BAR-NUMBER"
+msgstr "bedeutet ZÄHLER/NENNER ganze Noten in den Takt mit Nummer TAKT-NUMMER"
+
+#. input/lsr/coloring-notes-depending-on-their-pitch.ly:13 (comment)
+msgid "Association list of pitches to colors."
+msgstr "Tonhöhen bestimmten Farben zuweisen."
+
+#. input/lsr/coloring-notes-depending-on-their-pitch.ly:34 (comment)
+msgid "Compare pitch and alteration (not octave)."
+msgstr "Tonhöhen und Alteration vergleichen (nicht Oktaven)."
+
+#. input/lsr/combining-dynamics-with-markup-texts.ly:24 (variable)
+msgid "piuF"
+msgstr "piuF"
+
+#. input/lsr/combining-two-parts-on-the-same-staff.ly:51 (variable)
+msgid "musicUp"
+msgstr "NotenHoch"
+
+#. input/lsr/combining-two-parts-on-the-same-staff.ly:58 (variable)
+msgid "musicDown"
+msgstr "NotenRunter"
+
+#. input/lsr/creating-a-sequence-of-notes-on-various-pitches.ly:53 (variable)
+#. input/lsr/jazz-combo-template.ly:275 (context id)
+msgid "rhythm"
+msgstr "Rhythmus"
+
+#. input/lsr/creating-real-parenthesized-dynamics.ly:45 (variable)
+msgid "parenF"
+msgstr "KlammerF"
+
+#. input/lsr/creating-simultaneous-rehearsal-marks.ly:40 (comment)
+msgid "the hidden measure and bar line"
+msgstr "versteckter Takt und Taktlinie"
+
+#. input/lsr/customizing-fretboard-fret-diagrams.ly:40 (comment)
+#. input/lsr/customizing-markup-fret-diagrams.ly:43 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:23 (comment)
+msgid "Set global properties of fret diagram"
+msgstr "Allgemeine Eigenschaften von Bund-Diagramme bestimmen"
+
+#. input/lsr/customizing-markup-fret-diagrams.ly:41 (context id)
+#. input/lsr/formatting-lyrics-syllables.ly:21 (variable)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:21 (context id)
+#. input/lsr/piano-template-with-melody-and-lyrics.ly:62 (context id)
+msgid "mel"
+msgstr "Melodie"
+
+#. input/lsr/customizing-markup-fret-diagrams.ly:50 (comment)
+msgid "C major for guitar, no barre, using defaults"
+msgstr "C-Dur für Gitarre, kein Barre, Standardeinstellungen"
+
+#. input/lsr/customizing-markup-fret-diagrams.ly:51 (comment)
+#. input/lsr/customizing-markup-fret-diagrams.ly:101 (comment)
+msgid "terse style"
+msgstr "knapper Stil"
+
+#. input/lsr/customizing-markup-fret-diagrams.ly:54 (comment)
+#. input/lsr/customizing-markup-fret-diagrams.ly:76 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:52 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:73 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:152 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:173 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:251 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:272 (comment)
+msgid "C major for guitar, barred on third fret"
+msgstr "C-Dur für Gitarre, Barre auf dem dritten Bund"
+
+#. input/lsr/customizing-markup-fret-diagrams.ly:55 (comment)
+#. input/lsr/customizing-markup-fret-diagrams.ly:77 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:53 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:75 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:102 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:153 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:175 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:202 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:252 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:274 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:301 (comment)
+msgid "verbose style"
+msgstr "ausführlicher Stil"
+
+#. input/lsr/customizing-markup-fret-diagrams.ly:56 (comment)
+msgid "size 1.0"
+msgstr "Größe 1.0"
+
+#. input/lsr/customizing-markup-fret-diagrams.ly:57 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:54 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:154 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:253 (comment)
+msgid "roman fret label, finger labels below string, straight barre"
+msgstr "römische Bundnummer, Fingersatz unter der Saite, grades Barre"
+
+#. input/lsr/customizing-markup-fret-diagrams.ly:59 (comment)
+msgid "standard size"
+msgstr "Standardgröße"
+
+#. input/lsr/customizing-markup-fret-diagrams.ly:78 (comment)
+msgid "landscape orientation, arabic numbers, M for mute string"
+msgstr "quer liegend, arabische Nummern, M (mute) für stumme Saite"
+
+#. input/lsr/customizing-markup-fret-diagrams.ly:79 (comment)
+msgid "no barre, fret label down or left, small mute label font"
+msgstr ""
+"kein Barre, Bundbezeichnung unten oder links, kleine Schrift für stumme Saite"
+
+#. input/lsr/customizing-markup-fret-diagrams.ly:100 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:124 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:224 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:323 (comment)
+msgid "simple D chord"
+msgstr "einfacher D-Akkord"
+
+#. input/lsr/customizing-markup-fret-diagrams.ly:102 (comment)
+msgid "larger dots, centered dots, fewer frets"
+msgstr "größere Punkte, zentrierte Punkte, weniger Bünde"
+
+#. input/lsr/customizing-markup-fret-diagrams.ly:103 (comment)
+msgid "label below string"
+msgstr "Bezeichnung darunter"
+
+#. input/lsr/defining-predefined-fretboards-for-other-instruments.ly:58 (comment)
+msgid "add FretBoards for the Cuatro"
+msgstr "Bunddiagramme für Cuatro hinzufügen"
+
+#. input/lsr/defining-predefined-fretboards-for-other-instruments.ly:59 (comment)
+msgid "Note: This section could be put into a separate file"
+msgstr "Achtung: dieser Abschnitt gehört in eine eigene Datei"
+
+#. input/lsr/defining-predefined-fretboards-for-other-instruments.ly:60 (comment)
+msgid "predefined-cuatro-fretboards.ly"
+msgstr "predefined-cuatro-fretboards.ly"
+
+#. input/lsr/defining-predefined-fretboards-for-other-instruments.ly:61 (comment)
+msgid "and \\included into each of your compositions"
+msgstr "und wird mit \\include in jede Quelldatei eingefügt"
+
+#. input/lsr/defining-predefined-fretboards-for-other-instruments.ly:63 (variable)
+msgid "cuatroTuning"
+msgstr "cuatroStimmung"
+
+#. input/lsr/defining-predefined-fretboards-for-other-instruments.ly:65 (variable)
+msgid "dSix"
+msgstr "dSexte"
+
+#. input/lsr/defining-predefined-fretboards-for-other-instruments.ly:66 (variable)
+msgid "dMajor"
+msgstr "dDur"
+
+#. input/lsr/defining-predefined-fretboards-for-other-instruments.ly:67 (variable)
+msgid "aMajSeven"
+msgstr "aGrSept"
+
+#. input/lsr/defining-predefined-fretboards-for-other-instruments.ly:68 (variable)
+msgid "dMajSeven"
+msgstr "dGrSept"
+
+#. input/lsr/defining-predefined-fretboards-for-other-instruments.ly:69 (variable)
+msgid "gMajor"
+msgstr "gDur"
+
+#. input/lsr/defining-predefined-fretboards-for-other-instruments.ly:87 (comment)
+msgid "end of potential include file /predefined-cuatro-fretboards.ly"
+msgstr "Ende der eigenständigen Datei /predefined-cuatro-fretboards.ly"
+
+#. input/lsr/defining-predefined-fretboards-for-other-instruments.ly:92 (variable)
+msgid "primerosNames"
+msgstr "primerosBezeichnungen"
+
+#. input/lsr/defining-predefined-fretboards-for-other-instruments.ly:96 (variable)
+msgid "primeros"
+msgstr "primeros"
+
+#. input/lsr/demo-midiinstruments.ly:23 (variable)
+msgid "baseMelody"
+msgstr "basisMelodie"
+
+#. input/lsr/display-bracket-with-only-one-staff-in-a-system.ly:37 (comment)
+msgid "Must be lower than the actual number of staff lines"
+msgstr "Muss geringer sein als die aktuelle Zahl der Notenlinien"
+
+#. input/lsr/displaying-complex-chords.ly:16 (variable)
+msgid "fixA"
+msgstr "fixA"
+
+#. input/lsr/displaying-complex-chords.ly:20 (variable)
+msgid "fixB"
+msgstr "fixB"
+
+#. input/lsr/double-glissando.ly:20 (comment)
+msgid "new voice ( = \\voiceOne), hidden"
+msgstr "neue Stimme ( = \\voiceOne), versteckt"
+
+#. input/lsr/double-glissando.ly:22 (comment)
+msgid "attach glissando to note heads"
+msgstr "Glissando an Notenkopf angehängt"
+
+#. input/lsr/double-glissando.ly:27 (comment)
+msgid "original voice with chords rearranged so that"
+msgstr "originale Stimme mit Akkorden umgruppiert,"
+
+#. input/lsr/double-glissando.ly:28 (comment)
+msgid "glissando is attached to a & c"
+msgstr "so dass Glissando an a & c gefügt wird"
+
+#. input/lsr/embedding-native-postscript-in-a--markup-block.ly:23 (comment)
+msgid "PostScript is a registered trademark of Adobe Systems Inc."
+msgstr "PostScript ist eine registrierte Handelsmarke von Adobe Systems Inc."
+
+#. input/lsr/engravers-one-by-one.ly:75 (comment)
+msgid "sample music"
+msgstr "Beispielnoten"
+
+#. input/lsr/engravers-one-by-one.ly:76 (variable)
+msgid "topVoice"
+msgstr "topStimme"
+
+#. input/lsr/engravers-one-by-one.ly:84 (variable)
+msgid "botVoice"
+msgstr "bottomStimme"
+
+#. input/lsr/engravers-one-by-one.ly:92 (variable)
+msgid "hoom"
+msgstr "hoom"
+
+#. input/lsr/engravers-one-by-one.ly:103 (variable)
+msgid "pah"
+msgstr "pah"
+
+#. input/lsr/engravers-one-by-one.ly:113 (comment)
+msgid "setup for Request->Element conversion. Guru-only"
+msgstr "setup·for·Request->Element·conversion.·Guru-only"
+
+#. input/lsr/engravers-one-by-one.ly:116 (variable)
+#. input/lsr/engravers-one-by-one.ly:221 (variable)
+#. input/lsr/engravers-one-by-one.ly:234 (variable)
+#. input/lsr/engravers-one-by-one.ly:290 (variable)
+#. input/lsr/engravers-one-by-one.ly:304 (variable)
+msgid "MyStaff"
+msgstr "DasSystem"
+
+#. input/lsr/engravers-one-by-one.ly:148 (comment)
+msgid "explicitly set instrument, so we don't get "
+msgstr "explizit Instrument angeben, damit keine"
+
+#. input/lsr/engravers-one-by-one.ly:149 (comment)
+msgid "weird effects when doing instrument names for"
+msgstr "seltsamen Effekte auftreten, wenn die Instrumentbezeichnungen"
+
+#. input/lsr/engravers-one-by-one.ly:150 (comment)
+msgid "piano staves"
+msgstr "Klaviersysteme erstellt werden"
+
+#. input/lsr/engravers-one-by-one.ly:159 (variable)
+#. input/lsr/engravers-one-by-one.ly:248 (variable)
+#. input/lsr/engravers-one-by-one.ly:261 (variable)
+#. input/lsr/engravers-one-by-one.ly:274 (variable)
+msgid "MyVoice"
+msgstr "MeineStimme"
+
+#. input/lsr/engravers-one-by-one.ly:174 (comment)
+msgid "must come before all"
+msgstr "muss vor allem anderen kommen"
+
+#. input/lsr/engravers-one-by-one.ly:184 (comment)
+msgid "\\consists \\\"Rest_engraver\\\""
+msgstr "\\consists·\\\"Rest_engraver\\\""
+
+#. input/lsr/flamenco-notation.ly:46 (comment)
+msgid "Cut here ----- Start 'flamenco.ly' "
+msgstr "Hier ausschneiden: Beginn von 'flamenco.ly'"
+
+#. input/lsr/flamenco-notation.ly:48 (comment)
+msgid "Text indicators"
+msgstr "Textanweisungen"
+
+#. input/lsr/flamenco-notation.ly:49 (variable)
+msgid "abanico"
+msgstr "abanico"
+
+#. input/lsr/flamenco-notation.ly:50 (variable)
+msgid "rasgueaso"
+msgstr "rasgueaso"
+
+#. input/lsr/flamenco-notation.ly:51 (variable)
+msgid "alzapua"
+msgstr "alzapua"
+
+#. input/lsr/flamenco-notation.ly:53 (comment)
+msgid "Finger stroke symbols"
+msgstr "Schlag-Symbole"
+
+#. input/lsr/flamenco-notation.ly:54 (variable)
+msgid "strokeUp"
+msgstr "SchlagHoch"
+
+#. input/lsr/flamenco-notation.ly:64 (variable)
+msgid "strokeDown"
+msgstr "schlagRunter"
+
+#. input/lsr/flamenco-notation.ly:74 (comment)
+msgid "Golpe symbol"
+msgstr "Golpe-Symbol"
+
+#. input/lsr/flamenco-notation.ly:75 (variable)
+msgid "golpe"
+msgstr "golpe"
+
+#. input/lsr/flamenco-notation.ly:89 (variable)
+msgid "strokeUpGolpe"
+msgstr "SchlagHochGolpe"
+
+#. input/lsr/flamenco-notation.ly:90 (variable)
+msgid "iUpGolpe"
+msgstr "iHochGolpe"
+
+#. input/lsr/flamenco-notation.ly:92 (comment)
+msgid "Strokes for all fingers"
+msgstr "Schläge für alle Finger"
+
+#. input/lsr/flamenco-notation.ly:93 (variable)
+msgid "pUp"
+msgstr "pHoch"
+
+#. input/lsr/flamenco-notation.ly:94 (variable)
+msgid "pDown"
+msgstr "pRunter"
+
+#. input/lsr/flamenco-notation.ly:95 (variable)
+msgid "iUp"
+msgstr "iHoch"
+
+#. input/lsr/flamenco-notation.ly:96 (variable)
+msgid "iDown"
+msgstr "iRunter"
+
+#. input/lsr/flamenco-notation.ly:97 (variable)
+msgid "mUp"
+msgstr "mHoch"
+
+#. input/lsr/flamenco-notation.ly:98 (variable)
+msgid "mDown"
+msgstr "mRunter"
+
+#. input/lsr/flamenco-notation.ly:99 (variable)
+msgid "aUp"
+msgstr "aHoch"
+
+#. input/lsr/flamenco-notation.ly:100 (variable)
+msgid "aDown"
+msgstr "aRunter"
+
+#. input/lsr/flamenco-notation.ly:101 (variable)
+msgid "xUp"
+msgstr "xHoch"
+
+#. input/lsr/flamenco-notation.ly:102 (variable)
+msgid "xDown"
+msgstr "xRunter"
+
+#. input/lsr/flamenco-notation.ly:105 (comment)
+msgid "Just handy :)"
+msgstr "Sehr geschickt :)"
+
+#. input/lsr/flamenco-notation.ly:106 (variable)
+msgid "tupletOff"
+msgstr "NtoleAus"
+
+#. input/lsr/flamenco-notation.ly:111 (variable)
+msgid "tupletsOff"
+msgstr "NtoleAus"
+
+#. input/lsr/flamenco-notation.ly:116 (variable)
+msgid "tupletsOn"
+msgstr "NtolenAn"
+
+#. input/lsr/flamenco-notation.ly:121 (variable)
+msgid "headsOff"
+msgstr "köpfeAus"
+
+#. input/lsr/flamenco-notation.ly:127 (variable)
+msgid "headsOn"
+msgstr "köpfeEin"
+
+#. input/lsr/flamenco-notation.ly:133 (comment)
+msgid "Cut here ----- End 'flamenco.ly' "
+msgstr "Hier ausschneiden --- Ende 'flamenco.ly' "
+
+#. input/lsr/flat-flags-and-beam-nibs.ly:109 (comment)
+msgid "Example 1"
+msgstr "Beispiel 1"
+
+#. input/lsr/flat-flags-and-beam-nibs.ly:116 (comment)
+msgid "Example 2"
+msgstr "Beispiel 2"
+
+#. input/lsr/flat-flags-and-beam-nibs.ly:123 (comment)
+msgid "Example 3"
+msgstr "Beispiel 3"
+
+#. input/lsr/flat-flags-and-beam-nibs.ly:132 (comment)
+msgid "Example 4"
+msgstr "Beispiel 4"
+
+#. input/lsr/flute-slap-notation.ly:18 (variable)
+msgid "slap"
+msgstr "schlag"
+
+#. input/lsr/formatting-lyrics-syllables.ly:16 (comment)
+msgid ""
+"Tip taken from http://lists.gnu.org/archive/html/lilypond-user/2007-12/"
+"msg00215.html"
+msgstr ""
+"Tipp von http://lists.gnu.org/archive/html/lilypond-user/2007-12/msg00215."
+"html"
+
+#. input/lsr/fret-diagrams-explained-and-developed.ly:39 (comment)
+msgid "A chord for ukelele, with formatting defined in definition string"
+msgstr "Ein Akkord für Ukulele, mit Formatierung in der Definition enthalten"
+
+#. input/lsr/fret-diagrams-explained-and-developed.ly:40 (comment)
+msgid "1.2 * size, 4 strings, 4 frets, fingerings below string"
+msgstr "1.2 * Größe, 4 Saiten, vier Bünde, Fingersatz unterhalb"
+
+#. input/lsr/fret-diagrams-explained-and-developed.ly:41 (comment)
+msgid "dot radius .35 of fret spacing, dot position 0.55 of fret spacing"
+msgstr ""
+"Punktgröße .35 von Bundzwischenraum, Punktposition .55 von Bundzwischenraum"
+
+#. input/lsr/fret-diagrams-explained-and-developed.ly:50 (comment)
+msgid "These chords will be in normal orientation"
+msgstr "Diese Akkorde sind in normaler Ausrichtung"
+
+#. input/lsr/fret-diagrams-explained-and-developed.ly:56 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:77 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:104 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:156 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:177 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:204 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:255 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:276 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:303 (comment)
+#, python-format
+msgid "110% of default size"
+msgstr "110% der Standardgröße"
+
+#. input/lsr/fret-diagrams-explained-and-developed.ly:74 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:174 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:273 (comment)
+msgid "Double barre used to test barre function"
+msgstr "Doppel-Barré um die Barré-Funktion zu testen"
+
+#. input/lsr/fret-diagrams-explained-and-developed.ly:101 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:201 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:300 (comment)
+msgid "C major for guitar, with capo on third fret"
+msgstr "C-Dur für Gitarre, mit Barré auf dem dritten Bund"
+
+#. input/lsr/fret-diagrams-explained-and-developed.ly:136 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:235 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:334 (comment)
+msgid "simple D chord, large top fret thickness"
+msgstr "einfacher D-Durakkord, Dicke des Bundes oben groß"
+
+#. input/lsr/fret-diagrams-explained-and-developed.ly:148 (comment)
+msgid "These chords will be in landscape orientation"
+msgstr "Diese Akkorde werden quer ausgerichtet"
+
+#. input/lsr/fret-diagrams-explained-and-developed.ly:247 (comment)
+msgid "These chords will be in opposing-landscape orientation"
+msgstr "Diese Akkorde werden quer auf dem Kopf ausgerichtet"
+
+#. input/lsr/grid-lines--changing-their-appearance.ly:33 (comment)
+msgid "this moves them up one staff space from the default position"
+msgstr "damit werden sie einen Notenlinienzwischenraum hochgeschoben"
+
+#. input/lsr/grid-lines--changing-their-appearance.ly:51 (comment)
+msgid "set up grids"
+msgstr "Gitter einstellen"
+
+#. input/lsr/grid-lines--changing-their-appearance.ly:53 (comment)
+msgid "set the grid interval to one quarter note"
+msgstr "den Gitter-Abstand auf eine Viertelnote setzen"
+
+#. input/lsr/grid-lines--changing-their-appearance.ly:59 (comment)
+msgid "this moves them to the right half a staff space"
+msgstr ""
+"damit werden sie nach rechts um einen halben Notenlinienabstand verschoben"
+
+#. input/lsr/grid-lines--emphasizing-rhythms-and-notes-synchronization.ly:36 (comment)
+msgid "hides staff and notes so that only the grid lines are visible"
+msgstr "versteckt System und Noten so dass nur die Gitterlinien sichtbar sind"
+
+#. input/lsr/grid-lines--emphasizing-rhythms-and-notes-synchronization.ly:43 (comment)
+msgid "dummy notes to force regular note spacing"
+msgstr "Blindnoten damit die Noten regelmäßig verteilt sind"
+
+#. input/lsr/grid-lines--emphasizing-rhythms-and-notes-synchronization.ly:59 (comment)
+msgid "center grid lines horizontally below note heads"
+msgstr "Gitterlinien horizontal unter Notenköpfen zentrieren"
+
+#. input/lsr/grid-lines--emphasizing-rhythms-and-notes-synchronization.ly:66 (comment)
+msgid "set line length and positioning:"
+msgstr "Länge und Position von Linien setzen:"
+
+#. input/lsr/grid-lines--emphasizing-rhythms-and-notes-synchronization.ly:67 (comment)
+msgid "two staff spaces above center line on hidden staff"
+msgstr ""
+"zwei Notenlinienzwischenräume über der Mittellinie auf dem versteckten System"
+
+#. input/lsr/grid-lines--emphasizing-rhythms-and-notes-synchronization.ly:68 (comment)
+msgid "to four spaces below center line on visible staff"
+msgstr "bis vier Zwischenräume unter der Mittellinie des sichtbaren Systems"
+
+#. input/lsr/heavily-customized-polymetric-time-signatures.ly:51 (variable)
+msgid "drum"
+msgstr "Trommel"
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:54 (comment)
+msgid "Solution 1: Using a simple markup with a particular halign value"
+msgstr ""
+"Lösung 1: Benutzung von einfacher Beschriftung mit horizontaler Verschiebung"
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:55 (comment)
+msgid ""
+"Drawback: It's a markup, not a dynamic command, so \\dynamicDown etc. will "
+"have no effect"
+msgstr ""
+"Nachteil: nur Beschriftung, keine Dynamik, also wirkt sich \\dynamicDown usw."
+"nicht aus"
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:56 (variable)
+msgid "semppMarkup"
+msgstr "semppBeschriftung"
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:58 (comment)
+msgid ""
+"Solution 2: Using a dynamic script and shifting with \\once\\override ... "
+"#'X-offset = .."
+msgstr ""
+"Lösung 2: Dynamik-Skript benutzen und mit \\once\\override·...·#'X-"
+"offset·=·.. verschieben"
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:59 (comment)
+msgid "Drawback: \\once\\override needed for every invocation"
+msgstr "Nachteil: \\once\\override muss jedes Mal geschrieben werden"
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:60 (variable)
+msgid "semppK"
+msgstr "semppK"
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:62 (comment)
+msgid ""
+"Solution 3: Padding the dynamic script so the center-alignment puts it to "
+"the correct position"
+msgstr ""
+"Lösung 3: Dynamik-Skript so verschieben mit padding, dass es "
+"automatischdurch center-alignment an die richtige Position kommt"
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:63 (comment)
+msgid ""
+"Drawback: the padding really reserves the space, nothing else can be there"
+msgstr ""
+"Nachteil: Die Verschiebung lässt den Platz frei, dort kann nichts anderes "
+"stehen"
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:64 (variable)
+msgid "semppT"
+msgstr "semppT"
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:72 (comment)
+msgid "Solution 4: Dynamic, setting the dimensions of the additional text to 0"
+msgstr "Lösung 4: Dynamik, Dimensionen des zusätzlichen Textes auf 0 setzen"
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:73 (comment)
+msgid ""
+"Drawback: To lilypond \\\"sempre\\\" has no extent, so it might put other "
+"stuff there => collisions"
+msgstr ""
+"Nachteil: LilyPond glaubt, dass \\\"sempre\\\" keinen Platz einnimmt undkann "
+"andere Elemente hier hintun --> Kollisionen"
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:74 (comment)
+msgid ""
+"Drawback: Also, there seems to be some spacing, so it's not exactly the "
+msgstr ""
+"Nachteil: Es gibt offensichtlich noch Ränder, so dass es nicht genau die"
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:75 (comment)
+msgid "same alignment as without the additional text"
+msgstr "gleiche Postionierung ist wie ohne den zusätzlichen Text"
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:76 (variable)
+msgid "semppM"
+msgstr "semppM"
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:78 (comment)
+msgid "Solution 5: Dynamic with explicit shifting inside the scheme function"
+msgstr ""
+"Lösung 5: Dynamik mit ausdrücklicher Verschiebung innerhalb von Scheme-"
+"Funktion"
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:79 (variable)
+msgid "semppG"
+msgstr "semppG"
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:85 (comment)
+msgid ""
+"Solution 6: Dynamic with explicit alignment. This has only effect, if one "
+"sets X-offset!"
+msgstr ""
+"Lösung 6: Dynamik mit expliziter Ausrichtung. Das wirkt sich nur dann aus,"
+"wenn X-offset auch gesetzt wird!"
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:86 (comment)
+msgid "Drawback: One needs to set DynamicText #'X-offset!"
+msgstr "Nachteil: #'X-offset von DynamicText muss gesetzt werden"
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:87 (comment)
+msgid ""
+"Drawback: Aligned at the right edge of the additional text, not at the "
+"center of pp"
+msgstr ""
+"Nachteil: An der rechten Ecke des zusätzlichen Textes ausgerichtet, nichtan "
+"der Mitte von pp"
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:88 (variable)
+msgid "semppMII"
+msgstr "semppMII"
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:114 (comment)
+msgid "Setting to ##f (false) gives the same resul"
+msgstr "Auf falsch (##f) setzen ergibt gleiches Ergebnis"
+
+#. input/lsr/how-to-change-fret-diagram-position.ly:28 (variable)
+#. input/lsr/score-for-diatonic-accordion.ly:61 (variable)
+#. input/lsr/showing-chords-at-changes.ly:23 (variable)
+#. input/lsr/single-staff-template-with-notes,-lyrics,-and-chords.ly:44 (variable)
+#. input/lsr/single-staff-template-with-notes-and-chords.ly:42 (variable)
+msgid "harmonies"
+msgstr "Harmonien"
+
+#. input/lsr/how-to-change-fret-diagram-position.ly:31 (comment)
+msgid "THE FOLLOWING IS THE COMMAND TO MOVE THE CHORD NAME"
+msgstr "DAS IST DER BEFEHL UM AKKORDBEZEICHNUNG ZU VERSCHIEBEN"
+
+#. input/lsr/how-to-change-fret-diagram-position.ly:34 (comment)
+msgid "THIS LINE IS THE SECOND METHOD"
+msgstr "DIESE ZEILE IST DIE ZWEITE METHODE"
+
+#. input/lsr/how-to-change-fret-diagram-position.ly:44 (comment)
+msgid "THE FOLLOWING IS THE COMMAND TO MOVE THE FRET DIAGRAM"
+msgstr "DAS IST DER BEFEHL UM DAS BUNDDIAGRAMM ZU VERSCHIEBEN"
+
+#. input/lsr/how-to-change-fret-diagram-position.ly:47 (comment)
+msgid "HERE IS THE SECOND METHOD"
+msgstr "HIER DIE ZWEITE METHODE"
+
+#. input/lsr/incipit.ly:72 (variable)
+#. input/lsr/incipit.ly:73 (context id)
+msgid "discantusIncipit"
+msgstr "discantusIncipit"
+
+#. input/lsr/incipit.ly:109 (variable)
+#. input/lsr/incipit.ly:110 (context id)
+msgid "altusIncipit"
+msgstr "altusIncipit"
+
+#. input/lsr/incipit.ly:125 (comment)
+#. input/lsr/incipit.ly:137 (comment)
+#. input/lsr/incipit.ly:167 (comment)
+#. input/lsr/incipit.ly:176 (comment)
+msgid "two measures"
+msgstr "zwei Takte"
+
+#. input/lsr/incipit.ly:145 (variable)
+#. input/lsr/incipit.ly:146 (context id)
+msgid "tenorIncipit"
+msgstr "tenorIncipit"
+
+#. input/lsr/incipit.ly:182 (variable)
+#. input/lsr/incipit.ly:183 (context id)
+msgid "bassusIncipit"
+msgstr "bassusIncipit"
+
+#. input/lsr/incipit.ly:253 (comment)
+msgid "no bar lines in staves or lyrics"
+msgstr "keine Taktstriche auf Systemen oder Gesangstext"
+
+#. input/lsr/incipit.ly:256 (comment)
+msgid "the next two instructions keep the lyrics between the bar lines"
+msgstr "mit den zwei nächsten Befehlen wird der Text zwischen den Taktstrichen "
+"gehalten"
+
+#. input/lsr/incipit.ly:267 (comment)
+msgid "breaking also at those bar lines where a note overlaps"
+msgstr "auch an den Takten umbrechen, wo eine Note aus dem Takt heraussteht"
+
+#. input/lsr/incipit.ly:268 (comment)
+msgid "into the next measure.  The command is commented out in this"
+msgstr "Der Befehl ist hier auskommentiert"
+
+#. input/lsr/inserting-score-fragments-above-a-staff,-as-markups.ly:16 (variable)
+msgid "tuning"
+msgstr "Stimmung"
+
+#. input/lsr/jazz-combo-template.ly:52 (comment)
+msgid "#(set-global-staff-size 16)"
+msgstr "#(set-global-staff-size·16)"
+
+#. input/lsr/jazz-combo-template.ly:55 (comment)
+msgid "Some macros %%%%%%%%%%%%%%%%%%%"
+msgstr "Einige Makros %%%%%%%%%%%%%%%%%%%"
+
+#. input/lsr/jazz-combo-template.ly:57 (variable)
+msgid "sl"
+msgstr "sl"
+
+#. input/lsr/jazz-combo-template.ly:61 (variable)
+msgid "nsl"
+msgstr "nsl"
+
+#. input/lsr/jazz-combo-template.ly:65 (variable)
+msgid "crOn"
+msgstr "crOn"
+
+#. input/lsr/jazz-combo-template.ly:66 (variable)
+msgid "crOff"
+msgstr "crOff"
+
+#. input/lsr/jazz-combo-template.ly:68 (comment)
+msgid "insert chord name style stuff here."
+msgstr "Akkordbezeichnungen hierher"
+
+#. input/lsr/jazz-combo-template.ly:70 (variable)
+msgid "jazzChords"
+msgstr "jazzAkkorde"
+
+#. input/lsr/jazz-combo-template.ly:72 (comment)
+msgid "Keys'n'thangs %%%%%%%%%%%%%%%%%"
+msgstr "Taktart/Tonart %%%%%%%%%%%%%%%%%"
+
+#. input/lsr/jazz-combo-template.ly:76 (variable)
+msgid "Key"
+msgstr "Tonart"
+
+#. input/lsr/jazz-combo-template.ly:78 (comment)
+msgid "############ Horns ############"
+msgstr "############·Hörner·############"
+
+#. input/lsr/jazz-combo-template.ly:80 (comment)
+msgid "------ Trumpet ------"
+msgstr "------·Trompete·------"
+
+#. input/lsr/jazz-combo-template.ly:81 (variable)
+msgid "trpt"
+msgstr "trpt"
+
+#. input/lsr/jazz-combo-template.ly:85 (variable)
+msgid "trpHarmony"
+msgstr "trpHarmonie"
+
+#. input/lsr/jazz-combo-template.ly:88 (variable)
+#. input/lsr/jazz-combo-template.ly:268 (context id)
+msgid "trumpet"
+msgstr "trompete"
+
+#. input/lsr/jazz-combo-template.ly:97 (comment)
+msgid "------ Alto Saxophone ------"
+msgstr "------·Altsaxophon·------"
+
+#. input/lsr/jazz-combo-template.ly:98 (variable)
+msgid "alto"
+msgstr "alt"
+
+#. input/lsr/jazz-combo-template.ly:102 (variable)
+msgid "altoHarmony"
+msgstr "altHarmonien"
+
+#. input/lsr/jazz-combo-template.ly:105 (variable)
+msgid "altoSax"
+msgstr "altSax"
+
+#. input/lsr/jazz-combo-template.ly:114 (comment)
+msgid "------ Baritone Saxophone ------"
+msgstr "------·Baritonsaxophon·------"
+
+#. input/lsr/jazz-combo-template.ly:115 (variable)
+msgid "bari"
+msgstr "bari"
+
+#. input/lsr/jazz-combo-template.ly:123 (variable)
+msgid "bariHarmony"
+msgstr "bariHarmonie"
+
+#. input/lsr/jazz-combo-template.ly:126 (variable)
+msgid "bariSax"
+msgstr "bariSax"
+
+#. input/lsr/jazz-combo-template.ly:135 (comment)
+msgid "------ Trombone ------"
+msgstr "------ Posaune ------"
+
+#. input/lsr/jazz-combo-template.ly:136 (variable)
+msgid "tbone"
+msgstr "pos"
+
+#. input/lsr/jazz-combo-template.ly:140 (variable)
+msgid "tboneHarmony"
+msgstr "PosHarmonie"
+
+#. input/lsr/jazz-combo-template.ly:143 (variable)
+#. input/lsr/jazz-combo-template.ly:272 (context id)
+msgid "trombone"
+msgstr "posaune"
+
+#. input/lsr/jazz-combo-template.ly:152 (comment)
+msgid "############ Rhythm Section #############"
+msgstr "############·Rhythmus-Abschnitt·#############"
+
+#. input/lsr/jazz-combo-template.ly:154 (comment)
+msgid "------ Guitar ------"
+msgstr "------ Gitarre ------"
+
+#. input/lsr/jazz-combo-template.ly:155 (variable)
+msgid "gtr"
+msgstr "gtr"
+
+#. input/lsr/jazz-combo-template.ly:163 (variable)
+msgid "gtrHarmony"
+msgstr "gtrHarmonie"
+
+#. input/lsr/jazz-combo-template.ly:167 (variable)
+#. input/lsr/jazz-combo-template.ly:277 (context id)
+#. input/lsr/polyphony-in-tablature.ly:48 (context id)
+#. input/lsr/polyphony-in-tablature.ly:53 (context id)
+msgid "guitar"
+msgstr "Gitarre"
+
+#. input/lsr/jazz-combo-template.ly:176 (comment)
+msgid "------ Piano ------"
+msgstr "------ Klavier ------"
+
+#. input/lsr/jazz-combo-template.ly:177 (variable)
+msgid "rhUpper"
+msgstr "rhOben"
+
+#. input/lsr/jazz-combo-template.ly:182 (variable)
+msgid "rhLower"
+msgstr "rhUnten"
+
+#. input/lsr/jazz-combo-template.ly:188 (variable)
+msgid "lhUpper"
+msgstr "lhOben"
+
+#. input/lsr/jazz-combo-template.ly:193 (variable)
+msgid "lhLower"
+msgstr "lhUnten"
+
+#. input/lsr/jazz-combo-template.ly:199 (variable)
+msgid "PianoRH"
+msgstr "KlavierRH"
+
+#. input/lsr/jazz-combo-template.ly:208 (variable)
+msgid "PianoLH"
+msgstr "KlavierLH"
+
+#. input/lsr/jazz-combo-template.ly:226 (comment)
+msgid "------ Bass Guitar ------"
+msgstr "------ Bassgitarre ------"
+
+#. input/lsr/jazz-combo-template.ly:240 (comment)
+msgid "------ Drums ------"
+msgstr "------ Schlagzeugt ------"
+
+#. input/lsr/jazz-combo-template.ly:254 (variable)
+msgid "drumContents"
+msgstr "SchlagInhalt"
+
+#. input/lsr/jazz-combo-template.ly:263 (comment)
+#, python-format
+msgid "It All Goes Together Here %%%%%%%%%%%%%%%%%%%%%%"
+msgstr "Alles zusammengefügt: %%%%%%%%%%%%%%%%%%%%%%"
+
+#. input/lsr/jazz-combo-template.ly:267 (context id)
+msgid "horns"
+msgstr "Horn"
+
+#. input/lsr/jazz-combo-template.ly:269 (context id)
+msgid "altosax"
+msgstr "altsax"
+
+#. input/lsr/jazz-combo-template.ly:270 (context id)
+msgid "barichords"
+msgstr "bariakk"
+
+#. input/lsr/jazz-combo-template.ly:271 (context id)
+msgid "barisax"
+msgstr "barsisax"
+
+#. input/lsr/jazz-combo-template.ly:276 (context id)
+msgid "chords"
+msgstr "Akkorde"
+
+#. input/lsr/makam-example.ly:26 (comment)
+msgid "Initialize makam settings"
+msgstr "Makam-Einstellungen initialisieren"
+
+#. input/lsr/manually-break-figured-bass-extenders-for-only-some-numbers.ly:19 (variable)
+msgid "bassfigures"
+msgstr "Bassfiguren"
+
+#. input/lsr/manually-controlling-beam-positions.ly:21 (comment)
+msgid "from upper staff-line (position 2) to center (position 0)"
+msgstr "von oberer Notenlinie (Position 2) bis Mitte (Position 0)"
+
+#. input/lsr/manually-controlling-beam-positions.ly:24 (comment)
+msgid "from center to one above center (position 1)"
+msgstr "von Mitte bis eins über der Mitte (Position 1)"
+
+#. input/lsr/marking-notes-of-spoken-parts-with-a-cross-on-the-stem.ly:17 (variable)
+msgid "speakOn"
+msgstr "sprechAn"
+
+#. input/lsr/marking-notes-of-spoken-parts-with-a-cross-on-the-stem.ly:33 (variable)
+msgid "speakOff"
+msgstr "sprechAus"
+
+#. input/lsr/markup-lines.ly:19 (comment)
+msgid "Candide, Voltaire"
+msgstr "Candide, Voltaire"
+
+#. input/lsr/mensurstriche-layout-bar-lines-between-the-staves.ly:32 (comment)
+msgid "the final bar line is not interrupted"
+msgstr "Letze Taktlinie ist nicht unterbrochen"
+
+#. input/lsr/merging-multi-measure-rests-in-a-polyphonic-part.ly:17 (variable)
+msgid "normalPos"
+msgstr "normalPos"
+
+#. input/lsr/modern-tab-text-clef.ly:16 (variable)
+msgid "TAB"
+msgstr "TAB"
+
+#. input/lsr/modifying-default-values-for-articulation-shorthand-notation.ly:51 (variable)
+msgid "dashPlus"
+msgstr "dashPlus"
+
+#. input/lsr/modifying-tuplet-bracket-length.ly:23 (comment)
+msgid "Set tuplets to be extendable..."
+msgstr "Ntolen so definieren, dass sie erweiterbar sind"
+
+#. input/lsr/modifying-tuplet-bracket-length.ly:25 (comment)
+msgid "...to cover all items up to the next note"
+msgstr "um alle Objekte bis zu nächsten Note"
+
+#. input/lsr/modifying-tuplet-bracket-length.ly:29 (comment)
+msgid "...or to cover just whitespace"
+msgstr "oder auch nur Leerzeichen zu überbrücken"
+
+#. input/lsr/percussion-beaters.ly:18 (variable)
+msgid "stick"
+msgstr "Stock"
+
+#. input/lsr/permitting-line-breaks-within-beamed-tuplets.ly:39 (comment)
+msgid "Permit line breaks within tuplets"
+msgstr "Zeilenumbrüche innerhalb von N-tolen zulassen"
+
+#. input/lsr/permitting-line-breaks-within-beamed-tuplets.ly:41 (comment)
+msgid "Allow beams to be broken at line breaks"
+msgstr "Balken können an Umbrüchen gebrochen werden"
+
+#. input/lsr/permitting-line-breaks-within-beamed-tuplets.ly:48 (comment)
+msgid "Insert a manual line break within a tuplet"
+msgstr "Manuellen Zeilenumbruch in N-tole"
+
+#. input/lsr/piano-template-with-centered-dynamics.ly:56 (variable)
+msgid "pedal"
+msgstr "Pedal"
+
+#. input/lsr/piano-template-with-centered-dynamics.ly:69 (comment)
+msgid "define Dynamics context"
+msgstr "Dynamik-Kontext definieren"
+
+#. input/lsr/piano-template-with-centered-dynamics.ly:90 (comment)
+msgid "modify PianoStaff context to accept Dynamics context"
+msgstr "PianoStaff-Kontext verändern, dass er Dynamics-Kontext akzeptiert"
+
+#. input/lsr/polyphony-in-tablature.ly:47 (context id)
+msgid "tab"
+msgstr "tab"
+
+#. input/lsr/positioning-multi--measure-rests.ly:41 (comment)
+msgid "Multi-measure rests by default are set under the second line"
+msgstr "Ganztaktpausen werden unter die zweite Linie gesetzt"
+
+#. input/lsr/positioning-multi--measure-rests.ly:43 (comment)
+msgid "They can be moved with an override"
+msgstr "Sie können mit override verschoben werden"
+
+#. input/lsr/positioning-multi--measure-rests.ly:46 (comment)
+msgid "A value of 0 is the default position;"
+msgstr "Ein Wert von O ist die Standardposition"
+
+#. input/lsr/positioning-multi--measure-rests.ly:47 (comment)
+msgid "the following trick moves the rest to the center line"
+msgstr "hiermit wird die Pause zur Mittellinie verschoben"
+
+#. input/lsr/positioning-multi--measure-rests.ly:50 (comment)
+msgid "Multi-measure rests in odd-numbered voices are under the top line"
+msgstr ""
+"Ganztaktpausen in Stimmen mit ungerader Zahl sind unter der obersten Linie"
+
+#. input/lsr/positioning-multi--measure-rests.ly:52 (comment)
+msgid "Multi-measure rests in even-numbered voices are under the bottom line"
+msgstr "Ganztaktpausen in geraden Stimmen sind unter der untersten Linie"
+
+#. input/lsr/positioning-multi--measure-rests.ly:54 (comment)
+msgid "They remain separated even in empty measures"
+msgstr "auch in leeren Takten bleichen sie getrennt"
+
+#. input/lsr/positioning-multi--measure-rests.ly:56 (comment)
+msgid "This brings them together even though there are two voices"
+msgstr "Hiermit werden sie zusammegefügt, auch wenn sie zwei Stimmen sind"
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:28 (comment)
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:49 (comment)
+msgid "Set segno sign as rehearsal mark and adjust size if needed"
+msgstr "Segno-Zeichen als Übungszeichen definieren und Größe evtl. anpassen"
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:29 (comment)
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:51 (comment)
+msgid "\\once \\override Score.RehearsalMark #'font-size = #3"
+msgstr "\\once·\\override·Score.RehearsalMark·#'font-size·=·#3"
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:35 (comment)
+msgid "Set coda sign as rehearsal mark and adjust size if needed"
+msgstr "Coda-Zeichen als Übungszeichen definieren und Größe evtl. anpassen"
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:42 (comment)
+msgid "Should Coda be on anew line?"
+msgstr "Soll Coda auf einer neuen Zeile sein?"
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:43 (comment)
+msgid "Coda NOT on new line: use \\nobreak"
+msgstr "Coda NICHT auf neuer Zeile: benutze \\nobreak"
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:44 (comment)
+msgid "Coda on new line: DON'T use \\nobreak"
+msgstr "Coda auf neuer Zeile: NICHT \\nobreak benutzen"
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:45 (comment)
+msgid "\\noBreak"
+msgstr "\\noBreak"
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:54 (comment)
+msgid "Here begins the trickery! "
+msgstr "Her beginnt der Trick"
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:55 (comment)
+msgid ""
+"\\cadenzaOn will suppress the bar count and \\stopStaff removes the staff "
+"lines."
+msgstr ""
+"\\cadenzaOn unterdrückt die Taktzählung und \\stopStaff entfernt Notenlinien"
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:58 (comment)
+msgid "Some examples of possible text-displays "
+msgstr "Eine Beispiel für mögliche Textanzeige"
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:60 (comment)
+msgid "text line-aligned"
+msgstr "Text an Zeile ausgerichtet"
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:61 (comment)
+msgid "=================="
+msgstr "=================="
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:62 (comment)
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:68 (comment)
+msgid "Move text to the desired position"
+msgstr "Text zur gewünschten Position verschieben"
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:63 (comment)
+msgid "\\once \\override TextScript #'extra-offset = #'( 2 . -3.5 )"
+msgstr "\\once·\\override·TextScript·#'extra-offset·=·#'(·2·.·-3.5·)"
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:64 (comment)
+msgid "| s1*0^\\markup { D.S. al Coda } }"
+msgstr "|·s1*0^\\markup·{·D.S.·al·Coda·}·}"
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:66 (comment)
+msgid "text center-aligned"
+msgstr "Text zentriert"
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:67 (comment)
+msgid "===================="
+msgstr "===================="
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:69 (comment)
+msgid "\\once \\override TextScript #'extra-offset = #'( 6 . -5.0 )"
+msgstr "\\once·\\override·TextScript·#'extra-offset·=·#'(·6·.·-5.0·)"
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:70 (comment)
+msgid "| s1*0^\\markup { \\center-column { D.S. \\\"al Coda\\\" } }"
+msgstr "|·s1*0^\\markup·{·\\center-column·{·D.S.·\\\"al·Coda\\\"·}·}"
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:72 (comment)
+msgid "text and symbols center-aligned"
+msgstr "Text und Symbole zentriert"
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:73 (comment)
+msgid "==============================="
+msgstr "==============================="
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:74 (comment)
+msgid ""
+"Move text to the desired position and tweak spacing for optimum text "
+"alignment"
+msgstr ""
+"Text zur gewünschten Position verschieben und Platzbedarf für "
+"optimalesErgebnis verändern."
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:75 (comment)
+msgid "\\once \\override TextScript #'extra-offset = #'( 8 . -5.5 )"
+msgstr "\\once·\\override·TextScript·#'extra-offset·=·#'(·8·.·-5.5·)"
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:81 (comment)
+msgid "Increasing the unfold counter will expand the staff-free space"
+msgstr ""
+"wenn der unfold-Zähler höher gesetzt wird, vergrößert sich der Platz ohne "
+"System"
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:86 (comment)
+msgid "Resume bar count and show staff lines again"
+msgstr "Taktzählung aufnehmen und Notenlinien anzeigen"
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:90 (comment)
+msgid "Should Coda be on new line?"
+msgstr "Soll Coda auf einer neuen Zeile sein?"
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:91 (comment)
+msgid "Coda NOT on new line: DON'T use \\break"
+msgstr "Coda NICHT auf neuer Zeile: NICHT \\break benutzen"
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:92 (comment)
+msgid "Coda on new line: use \\break"
+msgstr "Coda auf neuer Zeile: \\break benutzen"
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:95 (comment)
+msgid "Show up, you clef and key!"
+msgstr "Schlüssel/Tonart"
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:99 (comment)
+msgid "Set coda sign as rehearsal mark and adjust size and position"
+msgstr "Coda-Zeichen als Übungszeichen setzen und Position/Größe anpassen"
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:101 (comment)
+msgid ""
+"Put the coda sign ontop of the (treble-)clef dependend on coda's line-"
+"position"
+msgstr ""
+"Coda-Zeichen über den Schlüssel setzen abhängig von Zeilenpositionvon Coda"
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:103 (comment)
+msgid "Coda NOT on new line, use this:"
+msgstr "Coda NICHT auf neuer Zeile:"
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:104 (comment)
+msgid "\\once \\override Score.RehearsalMark #'extra-offset = #'( -2 . 1.75 )"
+msgstr "\\once·\\override·Score.RehearsalMark·#'extra-offset·=·#'(·-2·.·1.75·)"
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:106 (comment)
+msgid "Coda on new line, use this:"
+msgstr "Coda auf neuer Zeile:"
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:112 (comment)
+msgid "The coda"
+msgstr "Die Coda"
+
+#. input/lsr/printing-metronome-and-rehearsal-marks-below-the-staff.ly:31 (comment)
+msgid "Metronome marks below the staff "
+msgstr "Metronomangabe unter dem System"
+
+#. input/lsr/printing-metronome-and-rehearsal-marks-below-the-staff.ly:36 (comment)
+msgid "Rehearsal marks below the staff"
+msgstr "Übungszeichen unter dem System"
+
+#. input/lsr/printing-music-with-different-time-signatures.ly:50 (variable)
+msgid "Bassklarinette"
+msgstr "Bassklarinette"
+
+#. input/lsr/printing-music-with-different-time-signatures.ly:90 (variable)
+msgid "Perkussion"
+msgstr "Schlagzeug"
+
+#. input/lsr/quoting-another-voice-with-transposition.ly:37 (variable)
+msgid "quoteTest"
+msgstr "zitatTest"
+
+#. input/lsr/quoting-another-voice-with-transposition.ly:38 (comment)
+msgid "french horn"
+msgstr "Waldhorn"
+
+#. input/lsr/quoting-another-voice.ly:27 (variable)
+msgid "quoteMe"
+msgstr "zitiereMich"
+
+#. input/lsr/quoting-another-voice.ly:32 (variable)
+msgid "original"
+msgstr "Original"
+
+#. input/lsr/removing-the-first-empty-line.ly:43 (comment)
+msgid "To use the setting globally, uncomment the following line:"
+msgstr "Um die Einstellung global zu benutzen, diese Zeile benutzen:"
+
+#. input/lsr/removing-the-first-empty-line.ly:44 (comment)
+msgid "\\override VerticalAxisGroup #'remove-first = ##t"
+msgstr "\\override·VerticalAxisGroup·#'remove-first·=·##t"
+
+#. input/lsr/removing-the-first-empty-line.ly:53 (comment)
+msgid "To use the setting globally, comment this line,"
+msgstr "Um Einstellung global zu benutzen, folgende Zeile auskommentieren"
+
+#. input/lsr/removing-the-first-empty-line.ly:54 (comment)
+msgid "uncomment the line in the \\layout block above"
+msgstr "und die Zeile im \\layout-Block oben benutzen"
+
+#. input/lsr/reverting-default-beam-endings.ly:29 (comment)
+msgid "Default beaming"
+msgstr "Standartbebalkung"
+
+#. input/lsr/reverting-default-beam-endings.ly:32 (comment)
+msgid "Revert default values in scm/auto-beam.scm for 12/8 time"
+msgstr "Standardwerte von scm/auto-beam.scm für 12/8-Takt herstellen"
+
+#. input/lsr/reverting-default-beam-endings.ly:38 (comment)
+msgid "Set new values for beam endings"
+msgstr "Neue Werte für Balkenenden"
+
+#. input/lsr/rhythmic-slashes.ly:25 (comment)
+msgid "Macro to print single slash"
+msgstr "Makro um einzelnen Strich zu setzen"
+
+#. input/lsr/rhythmic-slashes.ly:26 (variable)
+msgid "rs"
+msgstr "rs"
+
+#. input/lsr/rhythmic-slashes.ly:33 (comment)
+msgid "Function to print a specified number of slashes"
+msgstr "Funktoin, um eine bestimmte Anzahl an Strichen zu setzen"
+
+#. input/lsr/rhythmic-slashes.ly:34 (variable)
+msgid "comp"
+msgstr "comp"
+
+#. input/lsr/score-for-diatonic-accordion.ly:69 (variable)
+msgid "NoStem"
+msgstr "KeinHals"
+
+#. input/lsr/score-for-diatonic-accordion.ly:70 (variable)
+msgid "NoNoteHead"
+msgstr "KeinNotenkopf"
+
+#. input/lsr/score-for-diatonic-accordion.ly:71 (variable)
+msgid "ZeroBeam"
+msgstr "NullBalken"
+
+#. input/lsr/score-for-diatonic-accordion.ly:73 (variable)
+msgid "staffTabLine"
+msgstr "systemTabZeile"
+
+#. input/lsr/score-for-diatonic-accordion.ly:78 (comment)
+msgid ""
+"Shows one horizontal line. The vertical line (simulating a bar-line) is "
+"simulated with a gridline"
+msgstr ""
+"Zeigt eine horizontale Zeile. Vertikale Linie (wie eine Taktlinie) wirdmit "
+"einer Gitterlinie simuliert"
+
+#. input/lsr/score-for-diatonic-accordion.ly:83 (comment)
+msgid ""
+"disable the following line to see the the noteheads while writing the song "
+msgstr ""
+"nächste Zeile auskommentieren, um Noten während des Schreibens zu sehen"
+
+#. input/lsr/score-for-diatonic-accordion.ly:87 (comment)
+msgid "The beam between 8th-notes is used to draw the push-line"
+msgstr "Balken zwischen Achteln wird benutzt um Zug-Linie zu zeichnen"
+
+#. input/lsr/score-for-diatonic-accordion.ly:88 (comment)
+msgid "How to fast write the push-lines: "
+msgstr "Zug-Linie schnell schreiben:"
+
+#. input/lsr/score-for-diatonic-accordion.ly:89 (comment)
+msgid ""
+"1. write repeatedly 'c c c c c c c c |' for the whole length of the song "
+msgstr ""
+"1. wiederholt 'c·c·c·c·c·c·c·c·|' über die gesamte Länge des Stückes "
+"schreiben"
+
+#. input/lsr/score-for-diatonic-accordion.ly:90 (comment)
+msgid "2. uncomment the line \\NoNoteHead"
+msgstr "2. \\NoNoteHead auskommentieren"
+
+#. input/lsr/score-for-diatonic-accordion.ly:91 (comment)
+msgid "3. compile"
+msgstr "3. kompilieren"
+
+#. input/lsr/score-for-diatonic-accordion.ly:92 (comment)
+msgid "4. Mark the positions on which push/pull changes. "
+msgstr "4. Positionen mit Zugrichtungsänderung markieren"
+
+#. input/lsr/score-for-diatonic-accordion.ly:93 (comment)
+msgid ""
+"In the score-picture click on the position the push- or pull-part starts "
+msgstr "im Partiturbild auf die Position der Zug-Anfänge klicken"
+
+#. input/lsr/score-for-diatonic-accordion.ly:94 (comment)
+msgid "(on the noteHead, the cursor will change to a hand-icon)."
+msgstr "(über dem Notenkopf ändert sich die Maus in eine Hand)"
+
+#. input/lsr/score-for-diatonic-accordion.ly:95 (comment)
+msgid "The cursor in the source code will jump just at this position."
+msgstr "Die Maus in der Quelldatei geht zur gewünschten Position"
+
+#. input/lsr/score-for-diatonic-accordion.ly:96 (comment)
+msgid "a) If a push-part starts there, replace the 'c' by an 'e['"
+msgstr "a) wenn ein Schub hier beginng, 'c' mit 'e[' ersetzen"
+
+#. input/lsr/score-for-diatonic-accordion.ly:97 (comment)
+msgid "b) If a pull-part starts there, replace the 'c' by an 's'"
+msgstr "b) wenn ein Zug hier beginnt, 'c' mit 's' ersetzen"
+
+#. input/lsr/score-for-diatonic-accordion.ly:98 (comment)
+msgid "5. Switch into 'overwrite-mode' by pressing the 'ins' key. "
+msgstr "5. in den Überschreibmodus wechseln mit der \"Einfg\"-Taste"
+
+#. input/lsr/score-for-diatonic-accordion.ly:99 (comment)
+msgid "6. For the pull-parts overwrite the 'c' with 's' "
+msgstr "6. Für Zug 'c' mit 's' überschreiben"
+
+#. input/lsr/score-for-diatonic-accordion.ly:100 (comment)
+msgid "7. For every push-part replace the last 'c' with 'e]' "
+msgstr "7. für jeden Schub das letzte 'c' mit 'e]' ersetzen"
+
+#. input/lsr/score-for-diatonic-accordion.ly:101 (comment)
+msgid "8. Switch into 'insert-mode' again "
+msgstr "8. In den Einfügen-Modus wechseln"
+
+#. input/lsr/score-for-diatonic-accordion.ly:102 (comment)
+msgid ""
+"9. At last it should look lik e.g. (s s e[ c | c c c c c c c c | c c c c c c "
+"e] s s)"
+msgstr ""
+"9. Es sollte jetzt aussehen wie (s·s·e[·c·|·c·c·c·c·c·c·c·c·|·c·c·c·c·c·c·e]"
+"·s·s)"
+
+#. input/lsr/score-for-diatonic-accordion.ly:103 (comment)
+msgid "10. re-enable the line \\NoNoteHead"
+msgstr "10 \\NoNoteHead wieder einkommentieren"
+
+#. input/lsr/score-for-diatonic-accordion.ly:113 (comment)
+msgid "Accordion melody in tabulator score\t\t"
+msgstr "Akkordeonmelodie in Tabulaturen-Partitur\t\t"
+
+#. input/lsr/score-for-diatonic-accordion.ly:114 (comment)
+msgid "1. Place a copy of the piano melody below"
+msgstr "1. Eine Kopie der Klaviermelodie unten benutzen"
+
+#. input/lsr/score-for-diatonic-accordion.ly:115 (comment)
+#. input/lsr/score-for-diatonic-accordion.ly:134 (comment)
+msgid ""
+"2. Separate piano melody into pull- and push-parts according to the "
+"staffTabLine you've already made      "
+msgstr ""
+"2. Klaviermelodie in Zug- und Schubteile teilen, wie schon mitsystemTabLinie "
+"gemacht"
+
+#. input/lsr/score-for-diatonic-accordion.ly:116 (comment)
+msgid ""
+"3. For each line: Double the line. Remark the 1st one (Keeps unchanged as "
+"reference) and then change the second line using the transformation paper"
+msgstr ""
+"3. Für jede Zeile: verdoppele die Zeile. die erste bleibt als Referenz, die "
+"zweite wirdmit dem Transformationspapier verändert"
+
+#. input/lsr/score-for-diatonic-accordion.ly:117 (comment)
+msgid "or the macros 'conv2diaton push.bsh' and 'conv2diaton pull.bsh' "
+msgstr "oder den Makros 'conv2diaton·push.bsh'·and·'conv2diaton·pull.bsh'·"
+
+#. input/lsr/score-for-diatonic-accordion.ly:118 (comment)
+#. input/lsr/score-for-diatonic-accordion.ly:137 (comment)
+msgid "Tips:"
+msgstr "Tipps:"
+
+#. input/lsr/score-for-diatonic-accordion.ly:119 (comment)
+#. input/lsr/score-for-diatonic-accordion.ly:138 (comment)
+msgid "- In jEdit Search & Replace mark the Option 'Keep Dialog'"
+msgstr "- In jEdit Suchen und Ersetzen die Option wählen: 'Keep Dialog'"
+
+#. input/lsr/score-for-diatonic-accordion.ly:121 (variable)
+msgid "AccordionTabTwoCBesDur"
+msgstr "AccordionTabTwoCBesDur"
+
+#. input/lsr/score-for-diatonic-accordion.ly:122 (comment)
+msgid "pull 1"
+msgstr "Zug 1"
+
+#. input/lsr/score-for-diatonic-accordion.ly:123 (comment)
+msgid "<f' bes'>8 <f' a'>8 <d' bes'>8 | "
+msgstr "<f'·bes'>8·<f'·a'>8·<d'·bes'>8·|·"
+
+#. input/lsr/score-for-diatonic-accordion.ly:125 (comment)
+msgid "push 2"
+msgstr "Schub 2"
+
+#. input/lsr/score-for-diatonic-accordion.ly:126 (comment)
+msgid "<g' c''>4 <f' d''> <g' ees''> <f' a'> | "
+msgstr "<g'·c''>4·<f'·d''>·<g'·ees''>·<f'·a'>·|·"
+
+#. input/lsr/score-for-diatonic-accordion.ly:128 (comment)
+msgid "pull 3"
+msgstr "Zug 3"
+
+#. input/lsr/score-for-diatonic-accordion.ly:129 (comment)
+msgid "<f' bes'>2 r8 }"
+msgstr "<f'·bes'>2·r8·}"
+
+#. input/lsr/score-for-diatonic-accordion.ly:133 (comment)
+msgid "1. Place a copy of the piano melody above"
+msgstr "1. Eine Kopie der Klaviermelodie oben machen"
+
+#. input/lsr/score-for-diatonic-accordion.ly:135 (comment)
+msgid ""
+"3. For each line: Double the line. Remark the 1st one (Keeps unchanged as "
+"reference) and then "
+msgstr ""
+"3. Für jede Zeile: Zeile verdoppeln. Erste bleibt unverändert (Referenz), "
+"dann"
+
+#. input/lsr/score-for-diatonic-accordion.ly:136 (comment)
+msgid "change the second line using the transformation paper"
+msgstr "wird die zweite anhand des Transformationspapiers verändert"
+
+#. input/lsr/score-for-diatonic-accordion.ly:139 (comment)
+msgid "- "
+msgstr "- "
+
+#. input/lsr/score-for-diatonic-accordion.ly:150 (comment)
+msgid "4/4 - tact. How many beats per bar"
+msgstr "4/4-Takt. Wie viele Takzeiten im Takt"
+
+#. input/lsr/score-for-diatonic-accordion.ly:152 (comment)
+msgid "The following line has to be adjusted O-F-T-E-N."
+msgstr "Die nächste Zeile muss sehr oft angepasst werden"
+
+#. input/lsr/score-for-diatonic-accordion.ly:161 (variable)
+msgid "staffVoice"
+msgstr "systemStimme"
+
+#. input/lsr/score-for-diatonic-accordion.ly:169 (context id)
+msgid "melodyVoi"
+msgstr "MelodieStimme"
+
+#. input/lsr/score-for-diatonic-accordion.ly:175 (variable)
+msgid "staffAccordionMel"
+msgstr "systemAkkordionMel"
+
+#. input/lsr/score-for-diatonic-accordion.ly:176 (comment)
+msgid "Set the accidentals (Vorzeichen) for each note, "
+msgstr "Versetzungszeichen für jede Note"
+
+#. input/lsr/score-for-diatonic-accordion.ly:177 (comment)
+msgid "do not remember them for the rest of the measure.  "
+msgstr "im Rest des Taktes nicht erinnern"
+
+#. input/lsr/score-for-diatonic-accordion.ly:196 (variable)
+msgid "BassRhytm"
+msgstr "BassRhythmus"
+
+#. input/lsr/score-for-diatonic-accordion.ly:197 (variable)
+msgid "LyricBassRhythmI"
+msgstr "LyricBassRhythmI"
+
+#. input/lsr/score-for-diatonic-accordion.ly:199 (variable)
+msgid "staffBassRhytm"
+msgstr "systemBassRhythmus"
+
+#. input/lsr/score-for-diatonic-accordion.ly:200 (comment)
+msgid ""
+"This is not a RhythmicStaff  because it must be possible to append lyrics."
+msgstr "Das ist kein RhythmicStaff weil hier Text hinzugefügt werden muss"
+
+#. input/lsr/score-for-diatonic-accordion.ly:202 (comment)
+msgid "x.y"
+msgstr "x.y"
+
+#. input/lsr/score-for-diatonic-accordion.ly:204 (comment)
+msgid ""
+"Shows one horizontal line. The vertical line (simulating a bar-line) is "
+"simulated by a grid"
+msgstr ""
+"Zeigt eine horizontale Linie. Die vertikale Linie (wie eine Taktlinie) "
+"istvon einer Gitterlinie simuliert"
+
+#. input/lsr/score-for-diatonic-accordion.ly:205 (comment)
+msgid "Search for 'grid' in this page to find all related functions "
+msgstr ""
+"Suche 'grid' (Gitter) in dieser Seite um alle wichtigen Funktionen zu finden"
+
+#. input/lsr/score-for-diatonic-accordion.ly:208 (context id)
+msgid "VoiceBassRhytm"
+msgstr "StimmeBassRhythmus"
+
+#. input/lsr/score-for-diatonic-accordion.ly:221 (comment)
+msgid ""
+"The vertical line (simulating a bar-line) in the staffBassRhytm is a "
+"gridline "
+msgstr ""
+"Die·vertikale·Linie·(wie·eine·Taktlinie) im "
+"systemBassRhythmus·istvon·einer·Gitterlinie·simuliert "
+
+#. input/lsr/single-staff-template-with-notes,-lyrics,-chords-and-frets.ly:24 (comment)
+msgid "Define the fret diagrams to be used"
+msgstr "Die benutzten Bund-Diagramme definieren"
+
+#. input/lsr/single-staff-template-with-notes,-lyrics,-chords-and-frets.ly:25 (variable)
+msgid "cFretDiagram"
+msgstr "cBundDiagramm"
+
+#. input/lsr/single-staff-template-with-notes,-lyrics,-chords-and-frets.ly:29 (variable)
+msgid "gFretDiagram"
+msgstr "gBundDiagramm"
+
+#. input/lsr/single-staff-template-with-notes,-lyrics,-chords-and-frets.ly:33 (variable)
+msgid "verseI"
+msgstr "StropheI"
+
+#. input/lsr/single-staff-template-with-notes,-lyrics,-chords-and-frets.ly:38 (variable)
+msgid "verseII"
+msgstr "StropheII"
+
+#. input/lsr/single-staff-template-with-notes,-lyrics,-chords-and-frets.ly:43 (variable)
+msgid "theChords"
+msgstr "Akkorde"
+
+#. input/lsr/single-staff-template-with-notes,-lyrics,-chords-and-frets.ly:45 (comment)
+msgid "insert the chords for chordnames here"
+msgstr "Akkorde für die Akkordbezeichnung hierher"
+
+#. input/lsr/single-staff-template-with-notes,-lyrics,-chords-and-frets.ly:50 (variable)
+msgid "staffMelody"
+msgstr "systemMelodie"
+
+#. input/lsr/single-staff-template-with-notes,-lyrics,-chords-and-frets.ly:51 (context id)
+msgid "voiceMelody"
+msgstr "stimmeMelodie"
+
+#. input/lsr/single-staff-template-with-notes,-lyrics,-chords-and-frets.ly:55 (comment)
+msgid "Type notes and fret diagram markups here"
+msgstr "Noten und Bund-Diagramm-Text hierher"
+
+#. input/lsr/snap-pizzicato-markup-bartok-pizzicato.ly:54 (variable)
+msgid "snapPizzicato"
+msgstr "schlagPizzicato"
+
+#. input/lsr/snap-pizzicato-markup-bartok-pizzicato.ly:56 (comment)
+msgid "now it can be used as \\snappizzicato after the note/chord"
+msgstr ""
+"jetzt kann es als \\schlagPizzicato nach einer Note/Akkord benutzt werden"
+
+#. input/lsr/snap-pizzicato-markup-bartok-pizzicato.ly:57 (comment)
+msgid "Note that a direction (-, ^ or _) is required."
+msgstr "Eine Richtung (-, ^ oder _) wird benötigt"
+
+#. input/lsr/snap-pizzicato-markup-bartok-pizzicato.ly:60 (comment)
+msgid "This does NOT work:"
+msgstr "Das funktioniert NICHT:"
+
+#. input/lsr/snap-pizzicato-markup-bartok-pizzicato.ly:61 (comment)
+msgid "<c e g>\\snapPizzicato"
+msgstr "<c·e·g>\\schlagPizzicato"
+
+#. input/lsr/stemlets.ly:35 (comment)
+msgid "N.B. use Score.Stem to set for the whole score."
+msgstr "Score.Stem benutzen, um es für die gesamte Partitur zu setzen"
+
+#. input/lsr/string-quartet-template-simple.ly:34 (variable)
+msgid "violinOne"
+msgstr "GeigeEins"
+
+#. input/lsr/string-quartet-template-simple.ly:43 (variable)
+msgid "violinTwo"
+msgstr "GeigeZwei"
+
+#. input/lsr/string-quartet-template-simple.ly:52 (variable)
+msgid "viola"
+msgstr "Bratsche"
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:77 (comment)
+msgid "piece.ly"
+msgstr "piece.ly"
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:78 (comment)
+msgid "(This is the global definitions file)"
+msgstr "(Globale Definitionen)"
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:85 (variable)
+msgid "Violinone"
+msgstr "Geigeeins"
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:90 (comment)
+#. input/lsr/string-quartet-template-with-separate-parts.ly:96 (comment)
+#. input/lsr/string-quartet-template-with-separate-parts.ly:103 (comment)
+msgid "*********************************"
+msgstr "**********************************"
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:91 (variable)
+msgid "Violintwo"
+msgstr "Geigezwei"
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:97 (variable)
+msgid "Viola"
+msgstr "Bratsche"
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:104 (variable)
+msgid "Cello"
+msgstr "Cello"
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:110 (comment)
+msgid "**********************************"
+msgstr "**********************************"
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:121 (comment)
+msgid "These are the other files you need to save on your computer"
+msgstr "Das sind die anderen Dateien, die gespeichert werden müssen"
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:123 (comment)
+msgid "score.ly"
+msgstr "score.ly"
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:124 (comment)
+msgid "(This is the main file)"
+msgstr "(Das ist die Hauptdatei)"
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:127 (comment)
+#, python-format
+msgid ""
+"\\include \\\"piece.ly\\\"             %%% uncomment this line when using a "
+"separate file"
+msgstr ""
+"\\include \\\"piece.ly\\\"             %%% Zeile einkommentieren, wenn eine "
+"extra Datei benutzt wird"
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:136 (comment)
+msgid "{ Uncomment this block when using separate files"
+msgstr "{ Diesen Block einkommentieren, wenn extra Dateien benutzt werden"
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:138 (comment)
+msgid "vn1.ly"
+msgstr "vn1.ly"
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:139 (comment)
+msgid "(This is the Violin 1 part file)"
+msgstr "(Stimme der ersten Geige)"
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:148 (comment)
+msgid "vn2.ly"
+msgstr "vn2.ly"
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:149 (comment)
+msgid "(This is the Violin 2 part file)"
+msgstr "(Stimme der zweiten Geige)"
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:158 (comment)
+msgid "vla.ly"
+msgstr "vla.ly"
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:159 (comment)
+msgid "(This is the Viola part file)"
+msgstr "(Stimme der Bratsche)"
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:168 (comment)
+msgid "vlc.ly"
+msgstr "vlc.ly"
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:169 (comment)
+msgid "(This is the Cello part file)"
+msgstr "(Stimme des Cellos)"
+
+#. input/lsr/sub-dividing-beams.ly:50 (comment)
+msgid "Set beam sub-group length to an eighth note"
+msgstr "Balkenuntergruppenlänge als Achtel definieren"
+
+#. input/lsr/sub-dividing-beams.ly:54 (comment)
+msgid "Set beam sub-group length to a sixteenth note"
+msgstr "Balkenuntergruppenlänge als Sechszehntel definieren"
+
+#. input/lsr/suppressing-warnings-for-clashing-note-columns.ly:19 (variable)
+msgid "ignore"
+msgstr "ignorieren"
+
+#. input/lsr/three-sided-box.ly:16 (comment)
+msgid "New command to add a three sided box, with sides north, west and south"
+msgstr ""
+"Neuer Befehl um einen Kasten mit drei Seiten (Nord, West und Süd) zu "
+"erstellen"
+
+#. input/lsr/three-sided-box.ly:17 (comment)
+msgid "Based on the box-stencil command defined in scm/stencil.scm"
+msgstr "Basierend auf dem box-stencil-Befehl, definiert in scm/stencil.scm"
+
+#. input/lsr/three-sided-box.ly:18 (comment)
+msgid "Note that \\\";\\\" is used to comment a line in Scheme"
+msgstr ""
+"Achtung: \\\";\\\" wird benutzt, um eine Zeile in Scheme auszukommentieren"
+
+#. input/lsr/three-sided-box.ly:32 (comment)
+msgid "The corresponding markup command, based on the \\box command defined "
+msgstr ""
+"Der entsprechende Beschriftungbefehl, basierend auf dem \\box-Befehl "
+"definiert"
+
+#. input/lsr/three-sided-box.ly:33 (comment)
+msgid "in scm/define-markup-commands.scm"
+msgstr "in scm/define-markup-commands.scm"
+
+#. input/lsr/three-sided-box.ly:45 (comment)
+msgid "Test it:"
+msgstr "testen:"
+
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:35 (comment)
+msgid "make the staff lines invisible on staves"
+msgstr "Taktstriche auf dem System unsichtbar machen"
+
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:127 (variable)
+msgid "incipitDiscantus"
+msgstr "incipitDiscantus"
+
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:151 (variable)
+msgid "incipitAltus"
+msgstr "IncipitAltus"
+
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:176 (variable)
+msgid "incipitTenor"
+msgstr "IncipitTenor"
+
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:202 (variable)
+msgid "incipitBassus"
+msgstr "IncipitBassus"
+
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:226 (comment)
+msgid ""
+"StaffGroup is used instead of ChoirStaff to get bar lines between systems"
+msgstr ""
+"StaffGroup wird anstelle von ChoirStaff benutzt, um Taktstriche zwischen "
+"Systemen zu haben"
+
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:258 (comment)
+msgid "Keep the bass lyrics outside of the staff group to avoid bar lines"
+msgstr "Gesangstext von Bass außerhalb der StaffGroup, um Taktstriche"
+
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:259 (comment)
+msgid "between the lyrics."
+msgstr "zwischen dem Text ·zu·vermeiden"
+
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:269 (comment)
+msgid "the next three instructions keep the lyrics between the barlines"
+msgstr ""
+"die nächsten drei Anweisungen, um den Text zwischen den Taktstriche zu halten"
+
+#. input/lsr/transposing-pitches-with-minimum-accidentals-smart-transpose.ly:132 (variable)
+msgid "naturalizeMusic"
+msgstr "AuflösungszeichenNoten"
+
+#. input/lsr/tweaking-clef-properties.ly:111 (comment)
+msgid "The default treble clef"
+msgstr "Standard-Sopranschlüssel"
+
+#. input/lsr/tweaking-clef-properties.ly:113 (comment)
+msgid "The standard bass clef"
+msgstr "Standard-Bassschlüssel"
+
+#. input/lsr/tweaking-clef-properties.ly:118 (comment)
+msgid "The baritone clef"
+msgstr "Baritonschlüssel"
+
+#. input/lsr/tweaking-clef-properties.ly:123 (comment)
+msgid "The standard choral tenor clef"
+msgstr "Standard-Chortenorschlüssel"
+
+#. input/lsr/tweaking-clef-properties.ly:129 (comment)
+msgid "A non-standard clef"
+msgstr "Nicht-Standard-Schlüssel"
+
+#. input/lsr/tweaking-clef-properties.ly:135 (comment)
+msgid "The following clef changes do not preserve"
+msgstr "Folgende Schlüsselwechsel erhalten nicht"
+
+#. input/lsr/tweaking-clef-properties.ly:136 (comment)
+msgid "the normal relationship between notes and clefs:"
+msgstr "das normale Verhältnis zwischen Noten und Schlüsseln"
+
+#. input/lsr/tweaking-clef-properties.ly:151 (comment)
+msgid "Return to the normal clef:"
+msgstr "Wieder der normale Schlüssel:"
+
+#. input/lsr/using-beatlength-and-beatgrouping.ly:34 (comment)
+msgid "The default in 3/4 time is to beam in three groups"
+msgstr "Standard in 3/4-Takt sind drei bebalkte Gruppen"
+
+#. input/lsr/using-beatlength-and-beatgrouping.ly:35 (comment)
+msgid "each of a quarter note length"
+msgstr "jede mit der Dauer einer Viertel"
+
+#. input/lsr/using-beatlength-and-beatgrouping.ly:39 (comment)
+msgid "No auto-beaming is defined for 12/16"
+msgstr "Keine autom. Bebalkung definiert für 12/16"
+
+#. input/lsr/using-beatlength-and-beatgrouping.ly:43 (comment)
+msgid "Change time signature symbol, but retain underlying 3/4 beaming"
+msgstr "Taktart-Symbol ändern, aber 3/4-Bebalkung beibehalten"
+
+#. input/lsr/using-beatlength-and-beatgrouping.ly:47 (comment)
+msgid "The 3/4 time default grouping of (1 1 1) and beatLength of 1/8"
+msgstr "3/4-Taktart Standardgruppen (1 1 1) und beatLenght von 1/8"
+
+#. input/lsr/using-beatlength-and-beatgrouping.ly:48 (comment)
+msgid "are not consistent with a measureLength of 3/4, so the beams"
+msgstr "stimme nicht überein mit measureLenght von 3/4, sodass die Balken"
+
+#. input/lsr/using-beatlength-and-beatgrouping.ly:49 (comment)
+msgid "are grouped at beatLength intervals"
+msgstr "anhand von beatLength-Intervallen gruppiert werden"
+
+#. input/lsr/using-beatlength-and-beatgrouping.ly:53 (comment)
+msgid "Specify beams in groups of (3 3 2 3) 1/16th notes"
+msgstr "Definition von Balken in Gruppen von (3 3 2 3) 1/16-Noten"
+
+#. input/lsr/using-beatlength-and-beatgrouping.ly:54 (comment)
+msgid "3+3+2+3=11, and 11*1/16<>3/4, so beatGrouping does not apply,"
+msgstr "3+3+2+3=11, und 11*16<>3/4, also trifft beatGrouping nicht zu,"
+
+#. input/lsr/using-beatlength-and-beatgrouping.ly:55 (comment)
+msgid "and beams are grouped at beatLength (1/16) intervals"
+msgstr "und Balken werden gruppiert anhand von beatLength (1/16)-Intervallen"
+
+#. input/lsr/using-beatlength-and-beatgrouping.ly:60 (comment)
+msgid "Specify beams in groups of (3 4 2 3) 1/16th notes"
+msgstr "Definition von Balkengruppen für (3 4 2 3) 1/16-Noten"
+
+#. input/lsr/using-beatlength-and-beatgrouping.ly:61 (comment)
+msgid "3+4+2+3=12, and 12*1/16=3/4, so beatGrouping applies"
+msgstr "3+4+2+3=12, und 12*1/16=3/4, also beatGrouping wird verwendet"
+
+#. input/lsr/using-postscript-to-generate-special-note-head-shapes.ly:26 (variable)
+msgid "parallelogram"
+msgstr "Parallelogramm"
+
+#. input/lsr/using-postscript-to-generate-special-note-head-shapes.ly:41 (variable)
+msgid "myNoteHeads"
+msgstr "meineNotenköpfe"
+
+#. input/lsr/using-postscript-to-generate-special-note-head-shapes.ly:42 (variable)
+msgid "normalNoteHeads"
+msgstr "normaleNotenköpfe"
+
+#. input/lsr/utf-8.ly:34 (comment)
+msgid "end verbatim - this comment is a hack to prevent texinfo.tex"
+msgstr "Ende von verbatim -- Dieser Kommentar ist ein Trick um texinfo.tex"
+
+#. input/lsr/utf-8.ly:35 (comment)
+msgid "from choking on non-European UTF-8 subsets"
+msgstr ""
+"daran zu hindern, sich an nicht-europäische UTF-8-Untergruppen zu stören"
+
+#. input/lsr/utf-8.ly:36 (comment)
+msgid "Cyrillic font"
+msgstr "Kyrillische Schrift"
+
+#. input/lsr/utf-8.ly:37 (variable)
+msgid "bulgarian"
+msgstr "Bulgarisch"
+
+#. input/lsr/utf-8.ly:41 (variable)
+msgid "hebrew"
+msgstr "Hebräisch"
+
+#. input/lsr/utf-8.ly:45 (variable)
+msgid "japanese"
+msgstr "Japanisch"
+
+#. input/lsr/utf-8.ly:52 (comment)
+msgid "\\\"a legal song to you\\\""
+msgstr "\\\"a·legal·song·to·you\\\""
+
+#. input/lsr/utf-8.ly:53 (variable)
+msgid "portuguese"
+msgstr "Portugiesisch"
+
+#. input/lsr/vertically-centered-common-lyrics.ly:19 (variable)
+msgid "leftbrace"
+msgstr "linkeKlammer"
+
+#. input/lsr/vertically-centered-common-lyrics.ly:20 (variable)
+msgid "rightbrace"
+msgstr "rechteKlammer"
+
+#. input/lsr/vertically-centered-common-lyrics.ly:22 (variable)
+msgid "dropLyrics"
+msgstr "Textnachunten"
+
+#. input/lsr/vertically-centered-common-lyrics.ly:29 (variable)
+msgid "raiseLyrics"
+msgstr "Textnachoben"
+
+#. input/lsr/vertically-centered-common-lyrics.ly:36 (variable)
+msgid "skipFour"
+msgstr "überspringeVier"
+
+#. input/lsr/vertically-centered-common-lyrics.ly:38 (variable)
+msgid "lyricsA"
+msgstr "TextA"
+
+#. input/lsr/vertically-centered-common-lyrics.ly:40 (variable)
+msgid "lyricsB"
+msgstr "TextB"
+
+#. input/lsr/vertically-centered-common-lyrics.ly:41 (variable)
+msgid "lyricsC"
+msgstr "TextC"
+
+#. input/lsr/vertically-centered-common-lyrics.ly:42 (variable)
+msgid "lyricsD"
+msgstr "TextD"
+
+#. input/lsr/vertically-centered-common-lyrics.ly:49 (context id)
+msgid "m"
+msgstr "m"
+
+#. input/lsr/vocal-ensemble-template-with-automatic-piano-reduction.ly:51 (variable)
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:42 (variable)
+#. input/lsr/vocal-ensemble-template.ly:47 (variable)
+msgid "sopMusic"
+msgstr "SoprNoten"
+
+#. input/lsr/vocal-ensemble-template-with-automatic-piano-reduction.ly:54 (variable)
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:45 (variable)
+#. input/lsr/vocal-ensemble-template.ly:50 (variable)
+msgid "sopWords"
+msgstr "SopranText"
+
+#. input/lsr/vocal-ensemble-template-with-automatic-piano-reduction.ly:83 (context id)
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:72 (context id)
+#. input/lsr/vocal-ensemble-template.ly:78 (context id)
+msgid "women"
+msgstr "frauen"
+
+#. input/lsr/vocal-ensemble-template-with-automatic-piano-reduction.ly:89 (context id)
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:82 (context id)
+#. input/lsr/vocal-ensemble-template.ly:90 (context id)
+msgid "men"
+msgstr "Männer"
+
+#. input/lsr/vocal-ensemble-template-with-automatic-piano-reduction.ly:118 (comment)
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:94 (comment)
+#. input/lsr/vocal-ensemble-template.ly:108 (comment)
+msgid "a little smaller so lyrics"
+msgstr "etwas kleiner, damit der Text"
+
+#. input/lsr/vocal-ensemble-template-with-automatic-piano-reduction.ly:119 (comment)
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:95 (comment)
+#. input/lsr/vocal-ensemble-template.ly:109 (comment)
+msgid "can be closer to the staff"
+msgstr "näher am System sein kann"
+
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:78 (comment)
+msgid "we could remove the line about this with the line below, since we want"
+msgstr ""
+"die Zeile oberhalb könnte mir der Zeile unterhalb entfernt werden, weil"
+
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:79 (comment)
+msgid "the alto lyrics to be below the alto Voice anyway."
+msgstr "der Alt-Text sowieso unter der Altstimme sein soll"
+
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:80 (comment)
+msgid "\\new Lyrics \\lyricsto altos \\altoWords"
+msgstr "\\new·Lyrics·\\lyricsto·altos·\\altoWords"
+
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:89 (comment)
+msgid "again, we could replace the line above this with the line below."
+msgstr "die Zeile oberhalb könnte mit der Zeile unterhalb ersetzt werden"
+
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:90 (comment)
+msgid "\\new Lyrics \\lyricsto basses \\bassWords"
+msgstr "\\new·Lyrics·\\lyricsto·basses·\\bassWords"
+
+#. input/lsr/volta-multi-staff.ly:13 (variable)
+msgid "voltaMusic"
+msgstr "KlammerNoten"
+
+msgid "Up:"
+msgstr "NachOben:"
+
+msgid "Next:"
+msgstr "Weiter:"
+
+msgid "Previous:"
+msgstr "Zurück:"
+
+msgid "Appendix "
+msgstr "Anhang "
+
+msgid "Footnotes"
+msgstr "Fußnoten"
+
+msgid "Table of Contents"
+msgstr "Inhaltsverzeichnis"
+
+#~ msgid "baritone"
+#~ msgstr "baritone"
+
+#~ msgid "semitone"
+#~ msgstr "semitone"
+
+#~ msgid "How LilyPond files work"
+#~ msgstr "Wie eine LilyPond-Datei funktioniert"
+
+#~ msgid "MacOS X on the command-line"
+#~ msgstr "MacOS X auf der Kommandozeile"
+
+#~ msgid "Harp notation"
+#~ msgstr "Harfennotation"
+
+#~ msgid "GNU LilyPond -- Notationsreferenz"
+#~ msgstr "GNU LilyPond -- Notationsreferenz"
+
+#~ msgid "Common properties"
+#~ msgstr "Übliche Eigenschaften"
+
+#~ msgid "Controlling visibility of objects"
+#~ msgstr "Die Sichtbarkeit von Objekten kontrollieren"
+
+#~ msgid "Modifying ends of spanners"
+#~ msgstr "Enden von Streckern verändern"
+
+#~ msgid "Discussion of specific tweaks"
+#~ msgstr "Erklärung von speziellen Optimierungen"
+
+#~ msgid "old Contexts explained"
+#~ msgstr "Alte Kontexte"
+
+#~ msgid "TODO moved into scheme"
+#~ msgstr "TODO nach Scheme verschoben"
+
+#~ msgid "Use 'bar-size to control the height of the tick,"
+#~ msgstr "'bar-size benutzen um die Höhe des Häkchens zu bestimmen,"
+
+#~ msgid "and 'extra-offset to determine its position."
+#~ msgstr "'extra-offset, umd seine Position zu bestimmen."
+
+#~ msgid "With 'extra-offset set to zero, the tick will be"
+#~ msgstr "Mit 'extra-offset auf Null gesetzt, wird das Häkchen"
+
+#~ msgid "centered around the middle line of the staff."
+#~ msgstr "um die Mittellinie des Systems zentriert"
+
+#~ msgid "Replace Staff.BarLine with Score.BarLine to"
+#~ msgstr "Staff.BarLine mit Score.BarLine ersetzen"
+
+#~ msgid "apply the method to the whole score."
+#~ msgstr "um die Methode auf die gesamte Partitur anzuwenden"
+
+#~ msgid "Revert the overrides to get back a normal"
+#~ msgstr "alles rückgängig machen und eine normale"
+
+#~ msgid "bar line at the end."
+#~ msgstr "Taktlinie am Ende setzen"
+
+#~ msgid "applies to \\\"fas\\\""
+#~ msgstr "gehört zu \\\"fas\\\""
+
+#~ msgid "Common tweaks"
+#~ msgstr "Übliche Optimierungen"
+
+#~ msgid "GNU LilyPond -- Das Notationsprogramm"
+#~ msgstr "GNU LilyPond -- Das Notationsprogramm"
+
+#~ msgid "System start delimiters"
+#~ msgstr "Klammern am Systemanfang"
+
+#, fuzzy
+#~ msgid "lines length"
+#~ msgstr "Zeilenlänge"
+
+#, fuzzy
+#~ msgid "making sure the lines will be placed outside the Staff"
+#~ msgstr "jetzt ist der Text näher am System"
+
+#, fuzzy
+#~ msgid "auto beam on 1/4 note groups"
+#~ msgstr "autom. Balken für 1/4-Notengruppen\t"
+
+#, fuzzy
+#~ msgid "keep 3/4 beaming"
+#~ msgstr "3/4-Balken behalten"
+
+#~ msgid "due to beatLength"
+#~ msgstr "aufgrund von beatLength"
+
+#~ msgid "beam on 1/8 notes"
+#~ msgstr "Balken für 1/8-Noten"
+
+#~ msgid "beam on 3/16, 7/16, 9/16, 12/16"
+#~ msgstr "Balken für 3/16, 7/16, 9/16, 12/16"
+
+#~ msgid "\\set DrumStaff.drumStyleTable = #(alist->hash-table mydrums)"
+#~ msgstr "\\set DrumStaff.drumStyleTable = #(alist->hash-table mydrums)"
+
+#~ msgid "force-hshift-Eigenschaft"
+#~ msgstr "force-hshift-Eigenschaft"
+
+#~ msgid "Laissez vibrer ties"
+#~ msgstr "Laissez-vibrer-Bögen"
+
+#~ msgid "Create 9/8 split into 2/4 + 5/8"
+#~ msgstr "Erstelle 9/8 als 2/4 + 5/8"
+
+#~ msgid "Keyboard instruments"
+#~ msgstr "Tasteninstrumente"
+
+#~ msgid "Bowed instruments"
+#~ msgstr "Streichinstrumente"
+
+#~ msgid "References for bowed strings"
+#~ msgstr "Referenz für Streicher"
+
+#~ msgid "Plucked instruments"
+#~ msgstr "Zupfinstrumente"
+
+#~ msgid "Writing long repeats"
+#~ msgstr "Lange Wiederholungen eingeben"
+
+#~ msgid "Placement of lyrics"
+#~ msgstr "Positionierung von Gesangtext"
+
+#, fuzzy
+#~ msgid "Keyboard and other many-stringed instruments"
+#~ msgstr "Saiteninstrumente mit Bünden"
+
+#~ msgid ""
+#~ "Report errors to <a href=\"%(mail_address_url)s\">%(mail_address)s</a>."
+#~ msgstr ""
+#~ "Fehler bitte an <a href=\"%(mail_address_url)s\">%(mail_address)s</a> "
+#~ "melden."
+
+#~ msgid "Writing repeats"
+#~ msgstr "Wiederholungen eingeben"
+
+#~ msgid "doits"
+#~ msgstr "doits"
+
+#~ msgid "or You can use  special note heads for the woodblocks."
+#~ msgstr ""
+#~ "oder spezielle Notenköpfe können für die Holzblöcke definiert werden"
+
+#~ msgid "tambourine-music is entered with \\\"tamb\\\""
+#~ msgstr "Taburin-Noten eingegeben mit \\\"tamb\\\""
+
+#~ msgid "bells are enterd with:"
+#~ msgstr "Glocken eingeben:"
+
+#~ msgid "\\\"cb\\\" (cowbell) and \\\"rb\\\" (ridebell)\\\" "
+#~ msgstr "\\\"cb\\\" (Kuhglocke) und \\\"rb\\\" (Reitglocke)\\\" "
+
+#~ msgid "Collision Resolution"
+#~ msgstr "Auflösung von Zusammenstößen"
+
+#~ msgid "The piano staff"
+#~ msgstr "Das Klaviersystem"
+
+#~ msgid "Right hand fingerings"
+#~ msgstr "Fingersatz der rechten Hand"
+
+#~ msgid "Simulating a fermata"
+#~ msgstr "Eine Fermate simulieren"
+
+#~ msgid "Ancient TODO"
+#~ msgstr "Alte Musik"
+
+#~ msgid "Gregorian Chant contexts"
+#~ msgstr "Gregorianische Gesangs-Kontexte"
+
+#~ msgid "Musica ficta accidentals"
+#~ msgstr "Musica-ficta-Versetzungszeichen"
+
+#~ msgid "User manual"
+#~ msgstr "Benutzerhandbuch"
+
+#~ msgid "Learning manual"
+#~ msgstr "Handbuch zum Lernen (LH)"
+
+#~ msgid "Notation reference"
+#~ msgstr "Notationsreferenz (NR)"
+
+#~ msgid "Appendices"
+#~ msgstr "Anhang"
+
+#~ msgid "Program usage"
+#~ msgstr "Programmbenutzung"
+
+#~ msgid "Other information"
+#~ msgstr "Mehr Information"
+
+#~ msgid "Unix"
+#~ msgstr "Unix"
+
+#~ msgid "Working on text files"
+#~ msgstr "Arbeiten an Text-Dateien"
+
+#~ msgid "legato"
+#~ msgstr "Legato"
+
+#~ msgid "Guitar tablatures"
+#~ msgstr "Gitarren-Tabulaturen"
+
+#~ msgid "smaller"
+#~ msgstr "kleiner"
+
+#~ msgid "Half-holes"
+#~ msgstr "Halbgeschlossene Löcher"
+
+#~ msgid "Objects connected to the input"
+#~ msgstr "Objekte, die mit der Eingabe verbunden sind"
+
+#~ msgid "Default files"
+#~ msgstr "Standarddateien"
+
+#~ msgid "Normal pitches"
+#~ msgstr "Normale Tonhöhen"
+
+#~ msgid "Cautionary accidentals"
+#~ msgstr "Warnungsversetzungszeichen"
+
+#~ msgid "Micro tones"
+#~ msgstr "Mikrotöne"
+
+#~ msgid "Relative octaves"
+#~ msgstr "Relative Oktavenbezeichnung"
+
+#~ msgid "Octave check"
+#~ msgstr "Oktavenüberprüfung"
+
+#~ msgid "Augmentation dots"
+#~ msgstr "Punktierung"
+
+#~ msgid "Skips"
+#~ msgstr "Überspringen von Zeichen"
+
+#~ msgid "Multi measure rests"
+#~ msgstr "Mehrtaktige Pausen"
+
+#~ msgid "Bar check"
 #~ msgstr "Taktüberprüfung"
 
 #
@@ -9690,9 +13441,6 @@ msgstr "Inhaltsverzeichnis"
 #~ msgid "Proportional notation (introduction)"
 #~ msgstr "Proportionale Notation (Einleitung)"
 
-#~ msgid "Fret diagrams"
-#~ msgstr "Bund-Diagramme"
-
 #~ msgid "Automatic notation"
 #~ msgstr "Automatische Notation"
 
@@ -9816,9 +13564,6 @@ msgstr "Inhaltsverzeichnis"
 #~ msgid "Relative note names"
 #~ msgstr "Relative Notenbezeichnungen"
 
-#~ msgid "Piano staves"
-#~ msgstr "Klaviersysteme"
-
 #~ msgid "Printing lyrics"
 #~ msgstr "Eingabe von Gesangtext"
 
@@ -9899,9 +13644,6 @@ msgstr "Inhaltsverzeichnis"
 #~ msgid "About this manual"
 #~ msgstr "Über das Handbuch"
 
-#~ msgid "dashPlus"
-#~ msgstr "dashPlus"
-
 #~ msgid "Common notation"
 #~ msgstr "Übliche Notation"
 
@@ -9909,13 +13651,6 @@ msgstr "Inhaltsverzeichnis"
 #~ msgid "FGGChordNames"
 #~ msgstr "Akkord-Modus"
 
-#, fuzzy
-#~ msgid "chordStuff"
-#~ msgstr "Akkord"
-
-#~ msgid "standard names"
-#~ msgstr "Standardbezeichnungen"
-
 #~ msgid "Building chords"
 #~ msgstr "Akkorde aufbauen"
 
@@ -9953,9 +13688,6 @@ msgstr "Inhaltsverzeichnis"
 #~ msgid "Manual staff switches"
 #~ msgstr "Manuelle Notensystemwechsel"
 
-#~ msgid "Pedals"
-#~ msgstr "Pedalbezeichnungen"
-
 #~ msgid "Staff switch lines"
 #~ msgstr "Stimmführungslinien"
 
@@ -10026,9 +13758,6 @@ msgstr "Inhaltsverzeichnis"
 #~ msgid "More information"
 #~ msgstr "Mehr Information"
 
-#~ msgid "Partial measures"
-#~ msgstr "Auftakte"
-
 #~ msgid "Connecting notes"
 #~ msgstr "Noten verbinden"
 
@@ -10060,9 +13789,6 @@ msgstr "Inhaltsverzeichnis"
 #~ msgid "Hyphens and extenders"
 #~ msgstr "Trennstriche und Fülllinien"
 
-#~ msgid "The Lyrics context"
-#~ msgstr "Der Text-Kontext"
-
 #~ msgid "Melismata"
 #~ msgstr "Melismen"
 
@@ -10072,8 +13798,5 @@ msgstr "Inhaltsverzeichnis"
 #~ msgid "French"
 #~ msgstr "Französisch"
 
-#~ msgid "Spanish"
-#~ msgstr "Spanisch"
-
 #~ msgid "German"
 #~ msgstr "Deutsch"
index e69c6128f3798f28c9383b8e2809951f67547357..2f1e88a8d30be02c19a27401a726165ac3bd76ef 100644 (file)
@@ -3,13 +3,13 @@
 # Copyright (C) 2006 Han-Wen Nienhuys, Jan Nieuwenhuizen
 # This file is distributed under the same license as the lilypond package.
 #
-# Francisco Vila <francisco.vila@hispalinux.es>, 2007, 2008.
+# Francisco Vila <francisco.vila@hispalinux.es>, 2007, 2008, 2009.
 msgid ""
 msgstr ""
 "Project-Id-Version: es\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-10-27 12:40+0100\n"
-"PO-Revision-Date: 2008-10-27 17:26+0100\n"
+"POT-Creation-Date: 2009-02-17 11:59+0100\n"
+"PO-Revision-Date: 2009-02-17 12:06+0100\n"
 "Last-Translator: Francisco Vila <francisco.vila@hispalinux.es>\n"
 "Language-Team: Español\n"
 "MIME-Version: 1.0\n"
@@ -48,11 +48,11 @@ msgstr "Otros idiomas: %s."
 msgid "About <A HREF=\"%s\">automatic language selection</A>."
 msgstr "Acerca de la <A HREF=\"%s\">selección automática del idioma</A>."
 
-#: postprocess_html.py:315
+#: postprocess_html.py:316
 msgid "stable-branch"
 msgstr "rama estable"
 
-#: postprocess_html.py:317
+#: postprocess_html.py:318
 msgid "development-branch"
 msgstr "rama de desarrollo"
 
@@ -62,82 +62,82 @@ msgid ""
 "English."
 msgstr "Esta sección aún no está traducida; consulte el manual en inglés."
 
-#: translations-status.py:52
+#: translations-status.py:59
 msgid "Section titles"
 msgstr "Títulos de sección"
 
-#: translations-status.py:53
+#: translations-status.py:60
 #, python-format
 msgid " <p><i>Last updated %s</i></p>\n"
 msgstr " <p><i>Actualizado en %s</i></p>\n"
 
-#: translations-status.py:54
+#: translations-status.py:61
 msgid "Translators"
 msgstr "Traductores"
 
-#: translations-status.py:54
+#: translations-status.py:61
 msgid "Translation checkers"
 msgstr "Revisores"
 
-#: translations-status.py:55
+#: translations-status.py:62
 msgid "Translated"
 msgstr "Traducido"
 
-#: translations-status.py:55
+#: translations-status.py:62
 msgid "Up to date"
 msgstr "Actualizado"
 
-#: translations-status.py:56
+#: translations-status.py:63
 msgid "Other info"
 msgstr "Más inf."
 
-#: translations-status.py:58
+#: translations-status.py:65
 msgid "no"
 msgstr "no"
 
-#: translations-status.py:59
+#: translations-status.py:66
 msgid "not translated"
 msgstr "no traducido"
 
-#: translations-status.py:61
+#: translations-status.py:68
 #, python-format
 msgid "partially (%(p)d %%)"
 msgstr "parcialmente (%(p)d %%)"
 
-#: translations-status.py:63
+#: translations-status.py:70
 #, python-format
 msgid "partially translated (%(p)d %%)"
 msgstr "parlte. traducido (%(p)d %%)"
 
-#: translations-status.py:64 translations-status.py:66
+#: translations-status.py:71 translations-status.py:73
 msgid "yes"
 msgstr "sí"
 
-#: translations-status.py:65
+#: translations-status.py:72
 msgid "translated"
 msgstr "traducido"
 
-#: translations-status.py:66 translations-status.py:67
+#: translations-status.py:73 translations-status.py:74
 msgid "up to date"
 msgstr "actualizado"
 
-#: translations-status.py:68
+#: translations-status.py:75
 msgid "partially"
 msgstr "parcialmente"
 
-#: translations-status.py:69
+#: translations-status.py:76
 msgid "partially up to date"
 msgstr "parlte. actualizado"
 
-#: translations-status.py:70
+#: translations-status.py:77
 msgid "N/A"
 msgstr "N/D"
 
-#: translations-status.py:71
+#: translations-status.py:78
 msgid "pre-GDP"
 msgstr "pre-GDP"
 
-#: translations-status.py:72
+#: translations-status.py:79
 msgid "post-GDP"
 msgstr "post-GDP"
 
@@ -154,6 +154,8 @@ msgstr "post-GDP"
 #. @node in Documentation/de/user/lilypond-learning.tely
 #. @node in Documentation/de/user/lilypond-program.tely
 #. @node in Documentation/de/user/lilypond.tely
+#. @node in Documentation/ja/user/lilypond-learning.tely
+#. @node in Documentation/ja/user/lilypond-program.tely
 msgid "Top"
 msgstr "Inicio"
 
@@ -185,30 +187,38 @@ msgstr "GNU LilyPond: Manual de aprendizaje"
 #. @appendix in Documentation/de/user/lilypond-program.tely
 #. @node in Documentation/de/user/lilypond.tely
 #. @appendix in Documentation/de/user/lilypond.tely
+#. @node in Documentation/ja/user/lilypond-learning.tely
+#. @appendix in Documentation/ja/user/lilypond-learning.tely
+#. @node in Documentation/ja/user/lilypond-program.tely
+#. @appendix in Documentation/ja/user/lilypond-program.tely
 msgid "LilyPond index"
 msgstr "Índice de LilyPond"
 
 #. @subsubheading in Documentation/user/macros.itexi
 #. @subsubheading in Documentation/fr/user/macros.itexi
 #. @subsubheading in Documentation/de/user/macros.itexi
+#. @subsubheading in Documentation/ja/user/macros.itexi
 msgid "Predefined commands"
 msgstr "Instrucciones predefinidas"
 
 #. @subsubheading in Documentation/user/macros.itexi
 #. @subsubheading in Documentation/fr/user/macros.itexi
 #. @subsubheading in Documentation/de/user/macros.itexi
+#. @subsubheading in Documentation/ja/user/macros.itexi
 msgid "Selected Snippets"
 msgstr "Fragmentos de código seleccionados"
 
 #. @subsubheading in Documentation/user/macros.itexi
 #. @subsubheading in Documentation/fr/user/macros.itexi
 #. @subsubheading in Documentation/de/user/macros.itexi
+#. @subsubheading in Documentation/ja/user/macros.itexi
 msgid "See also"
 msgstr "Véase también"
 
 #. @subsubheading in Documentation/user/macros.itexi
 #. @subsubheading in Documentation/fr/user/macros.itexi
 #. @subsubheading in Documentation/de/user/macros.itexi
+#. @subsubheading in Documentation/ja/user/macros.itexi
 msgid "Known issues and warnings"
 msgstr "Fallos y problemas conocidos"
 
@@ -220,6 +230,8 @@ msgstr "Fallos y problemas conocidos"
 #. @unnumbered in Documentation/es/user/preface.itely
 #. @node in Documentation/de/user/preface.itely
 #. @unnumbered in Documentation/de/user/preface.itely
+#. @node in Documentation/ja/user/preface.itely
+#. @unnumbered in Documentation/ja/user/preface.itely
 msgid "Preface"
 msgstr "Preámbulo"
 
@@ -231,6 +243,8 @@ msgstr "Preámbulo"
 #. @chapter in Documentation/es/user/introduction.itely
 #. @node in Documentation/de/user/introduction.itely
 #. @chapter in Documentation/de/user/introduction.itely
+#. @node in Documentation/ja/user/introduction.itely
+#. @chapter in Documentation/ja/user/introduction.itely
 msgid "Introduction"
 msgstr "Introducción"
 
@@ -242,6 +256,8 @@ msgstr "Introducción"
 #. @section in Documentation/es/user/introduction.itely
 #. @node in Documentation/de/user/introduction.itely
 #. @section in Documentation/de/user/introduction.itely
+#. @node in Documentation/ja/user/introduction.itely
+#. @section in Documentation/ja/user/introduction.itely
 msgid "Background"
 msgstr "Antecedentes"
 
@@ -253,6 +269,8 @@ msgstr "Antecedentes"
 #. @unnumberedsubsec in Documentation/es/user/introduction.itely
 #. @node in Documentation/de/user/introduction.itely
 #. @unnumberedsubsec in Documentation/de/user/introduction.itely
+#. @node in Documentation/ja/user/introduction.itely
+#. @unnumberedsubsec in Documentation/ja/user/introduction.itely
 msgid "Engraving"
 msgstr "Grabado"
 
@@ -264,6 +282,8 @@ msgstr "Grabado"
 #. @unnumberedsubsec in Documentation/es/user/introduction.itely
 #. @node in Documentation/de/user/introduction.itely
 #. @unnumberedsubsec in Documentation/de/user/introduction.itely
+#. @node in Documentation/ja/user/introduction.itely
+#. @unnumberedsubsec in Documentation/ja/user/introduction.itely
 msgid "Automated engraving"
 msgstr "Grabado automático"
 
@@ -275,6 +295,8 @@ msgstr "Grabado automático"
 #. @unnumberedsubsec in Documentation/es/user/introduction.itely
 #. @node in Documentation/de/user/introduction.itely
 #. @unnumberedsubsec in Documentation/de/user/introduction.itely
+#. @node in Documentation/ja/user/introduction.itely
+#. @unnumberedsubsec in Documentation/ja/user/introduction.itely
 msgid "What symbols to engrave?"
 msgstr "¿Qué símbolos grabar?"
 
@@ -286,6 +308,8 @@ msgstr "¿Qué símbolos grabar?"
 #. @unnumberedsubsec in Documentation/es/user/introduction.itely
 #. @node in Documentation/de/user/introduction.itely
 #. @unnumberedsubsec in Documentation/de/user/introduction.itely
+#. @node in Documentation/ja/user/introduction.itely
+#. @unnumberedsubsec in Documentation/ja/user/introduction.itely
 msgid "Music representation"
 msgstr "Representación musical"
 
@@ -297,6 +321,8 @@ msgstr "Representación musical"
 #. @unnumberedsubsec in Documentation/es/user/introduction.itely
 #. @node in Documentation/de/user/introduction.itely
 #. @unnumberedsubsec in Documentation/de/user/introduction.itely
+#. @node in Documentation/ja/user/introduction.itely
+#. @unnumberedsubsec in Documentation/ja/user/introduction.itely
 msgid "Example applications"
 msgstr "Aplicaciones de ejemplo"
 
@@ -308,6 +334,8 @@ msgstr "Aplicaciones de ejemplo"
 #. @section in Documentation/es/user/introduction.itely
 #. @node in Documentation/de/user/introduction.itely
 #. @section in Documentation/de/user/introduction.itely
+#. @node in Documentation/ja/user/introduction.itely
+#. @section in Documentation/ja/user/introduction.itely
 msgid "About the documentation"
 msgstr "Sobre la documentación"
 
@@ -319,6 +347,8 @@ msgstr "Sobre la documentación"
 #. @unnumberedsubsec in Documentation/es/user/introduction.itely
 #. @node in Documentation/de/user/introduction.itely
 #. @unnumberedsubsec in Documentation/de/user/introduction.itely
+#. @node in Documentation/ja/user/introduction.itely
+#. @unnumberedsubsec in Documentation/ja/user/introduction.itely
 msgid "About the Learning Manual"
 msgstr "Sobre el Manual de aprendizaje"
 
@@ -330,6 +360,8 @@ msgstr "Sobre el Manual de aprendizaje"
 #. @unnumberedsubsec in Documentation/es/user/introduction.itely
 #. @node in Documentation/de/user/introduction.itely
 #. @unnumberedsubsec in Documentation/de/user/introduction.itely
+#. @node in Documentation/ja/user/introduction.itely
+#. @unnumberedsubsec in Documentation/ja/user/introduction.itely
 msgid "About the Music Glossary"
 msgstr "Sobre el Glosario Musical"
 
@@ -341,6 +373,8 @@ msgstr "Sobre el Glosario Musical"
 #. @unnumberedsubsec in Documentation/es/user/introduction.itely
 #. @node in Documentation/de/user/introduction.itely
 #. @unnumberedsubsec in Documentation/de/user/introduction.itely
+#. @node in Documentation/ja/user/introduction.itely
+#. @unnumberedsubsec in Documentation/ja/user/introduction.itely
 msgid "About the Notation Reference"
 msgstr "Sobre la Referencia de la notación"
 
@@ -352,6 +386,8 @@ msgstr "Sobre la Referencia de la notación"
 #. @unnumberedsubsec in Documentation/es/user/introduction.itely
 #. @node in Documentation/de/user/introduction.itely
 #. @unnumberedsubsec in Documentation/de/user/introduction.itely
+#. @node in Documentation/ja/user/introduction.itely
+#. @unnumberedsubsec in Documentation/ja/user/introduction.itely
 msgid "About the Application Usage"
 msgstr "Sobre el manual de Utilización del programa"
 
@@ -363,6 +399,8 @@ msgstr "Sobre el manual de Utilización del programa"
 #. @unnumberedsubsec in Documentation/es/user/introduction.itely
 #. @node in Documentation/de/user/introduction.itely
 #. @unnumberedsubsec in Documentation/de/user/introduction.itely
+#. @node in Documentation/ja/user/introduction.itely
+#. @unnumberedsubsec in Documentation/ja/user/introduction.itely
 msgid "About the Snippet List"
 msgstr "Sobre la lista de fragmentos de código"
 
@@ -374,6 +412,8 @@ msgstr "Sobre la lista de fragmentos de código"
 #. @unnumberedsubsec in Documentation/es/user/introduction.itely
 #. @node in Documentation/de/user/introduction.itely
 #. @unnumberedsubsec in Documentation/de/user/introduction.itely
+#. @node in Documentation/ja/user/introduction.itely
+#. @unnumberedsubsec in Documentation/ja/user/introduction.itely
 msgid "About the Internals Reference"
 msgstr "Sobre el Manual de Referencia de Funcionamiento Interno"
 
@@ -385,6 +425,8 @@ msgstr "Sobre el Manual de Referencia de Funcionamiento Interno"
 #. @unnumberedsubsec in Documentation/es/user/introduction.itely
 #. @node in Documentation/de/user/introduction.itely
 #. @unnumberedsubsec in Documentation/de/user/introduction.itely
+#. @node in Documentation/ja/user/introduction.itely
+#. @unnumberedsubsec in Documentation/ja/user/introduction.itely
 msgid "Other documentation"
 msgstr "Otros documentos"
 
@@ -420,27 +462,32 @@ msgstr "el Sol está 5 por encima ó 2 por debajo, es el Sol grave"
 msgid "f is 4 up or 3 down, so is the f below"
 msgstr "el Fa está 4 por encima ó 3 por debajo, es el Fa grave"
 
-#. Documentation/user/tutorial.itely:1796 (variable)
-#. Documentation/user/working.itely:214 (variable)
-#. Documentation/user/working.itely:229 (variable)
+#. Documentation/user/tutorial.itely:1791 (variable)
+#. Documentation/user/working.itely:233 (variable)
+#. Documentation/user/working.itely:248 (variable)
+#. Documentation/user/pitches.itely:1078 (context id)
 msgid "violin"
 msgstr "violin"
 
-#. Documentation/user/tutorial.itely:1801 (variable)
+#. Documentation/user/tutorial.itely:1796 (variable)
+#. input/lsr/string-quartet-template-simple.ly:62 (variable)
 msgid "cello"
 msgstr "cello"
 
-#. Documentation/user/tutorial.itely:1826 (variable)
+#. Documentation/user/tutorial.itely:1821 (variable)
 msgid "tripletA"
 msgstr "tresilloA"
 
-#. Documentation/user/tutorial.itely:1827 (variable)
+#. Documentation/user/tutorial.itely:1822 (variable)
 msgid "barA"
 msgstr "compasA"
 
 #. @rglos in Documentation/user/tutorial.itely
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
+#. input/lsr/measure-counter.ly:25 (context id)
+#. input/lsr/measure-counter.ly:32 (context id)
 msgid "foo"
 msgstr "bla"
 
@@ -452,6 +499,8 @@ msgstr "bla"
 #. @chapter in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @chapter in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @chapter in Documentation/ja/user/tutorial.itely
 msgid "Tutorial"
 msgstr "Tutorial"
 
@@ -463,6 +512,8 @@ msgstr "Tutorial"
 #. @section in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @section in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @section in Documentation/ja/user/tutorial.itely
 msgid "First steps"
 msgstr "Primeros pasos"
 
@@ -474,6 +525,8 @@ msgstr "Primeros pasos"
 #. @subsection in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "Compiling a file"
 msgstr "Compilar un archivo"
 
@@ -481,6 +534,7 @@ msgstr "Compilar un archivo"
 #. @subheading in Documentation/fr/user/tutorial.itely
 #. @subheading in Documentation/es/user/tutorial.itely
 #. @subheading in Documentation/de/user/tutorial.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Entering music and viewing output"
 msgstr "Introducir música y ver la salida"
 
@@ -488,6 +542,7 @@ msgstr "Introducir música y ver la salida"
 #. @subsubheading in Documentation/fr/user/tutorial.itely
 #. @subsubheading in Documentation/es/user/tutorial.itely
 #. @subsubheading in Documentation/de/user/tutorial.itely
+#. @subsubheading in Documentation/ja/user/tutorial.itely
 msgid "MacOS X"
 msgstr "MacOS X"
 
@@ -495,6 +550,7 @@ msgstr "MacOS X"
 #. @subsubheading in Documentation/fr/user/tutorial.itely
 #. @subsubheading in Documentation/es/user/tutorial.itely
 #. @subsubheading in Documentation/de/user/tutorial.itely
+#. @subsubheading in Documentation/ja/user/tutorial.itely
 msgid "Windows"
 msgstr "Windows"
 
@@ -502,6 +558,7 @@ msgstr "Windows"
 #. @subsubheading in Documentation/fr/user/tutorial.itely
 #. @subsubheading in Documentation/es/user/tutorial.itely
 #. @subsubheading in Documentation/de/user/tutorial.itely
+#. @subsubheading in Documentation/ja/user/tutorial.itely
 msgid "UNIX"
 msgstr "UNIX"
 
@@ -513,6 +570,8 @@ msgstr "UNIX"
 #. @subsection in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "Simple notation"
 msgstr "Notación sencilla"
 
@@ -527,6 +586,7 @@ msgstr "Notación sencilla"
 #. @subheading in Documentation/de/user/tutorial.itely
 #. @node in Documentation/de/user/pitches.itely
 #. @section in Documentation/de/user/pitches.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Pitches"
 msgstr "Alturas"
 
@@ -534,6 +594,7 @@ msgstr "Alturas"
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "pitch"
 msgstr "altura"
 
@@ -544,6 +605,7 @@ msgstr "altura"
 #. @rglos in Documentation/es/user/pitches.itely
 #. @rglos in Documentation/de/user/tutorial.itely
 #. @rglos in Documentation/de/user/pitches.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "interval"
 msgstr "intervalo"
 
@@ -551,6 +613,7 @@ msgstr "intervalo"
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "scale"
 msgstr "escala"
 
@@ -558,6 +621,7 @@ msgstr "escala"
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "middle C"
 msgstr "Do central"
 
@@ -565,6 +629,7 @@ msgstr "Do central"
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "octave"
 msgstr "octava"
 
@@ -572,12 +637,14 @@ msgstr "octava"
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "accidental"
 msgstr "alteración accidental"
 
 #. @subheading in Documentation/user/tutorial.itely
 #. @subheading in Documentation/es/user/tutorial.itely
 #. @subheading in Documentation/de/user/tutorial.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Durations (rhythms)"
 msgstr "Duraciones (valores rítmicos)"
 
@@ -585,6 +652,7 @@ msgstr "Duraciones (valores rítmicos)"
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "beam"
 msgstr "barra"
 
@@ -592,6 +660,7 @@ msgstr "barra"
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "duration"
 msgstr "duración"
 
@@ -599,6 +668,7 @@ msgstr "duración"
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "whole note"
 msgstr "redonda"
 
@@ -606,6 +676,7 @@ msgstr "redonda"
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "half note"
 msgstr "blanca"
 
@@ -613,6 +684,7 @@ msgstr "blanca"
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "quarter note"
 msgstr "negra"
 
@@ -620,6 +692,7 @@ msgstr "negra"
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "dotted note"
 msgstr "figura con puntillo"
 
@@ -634,12 +707,14 @@ msgstr "figura con puntillo"
 #. @subheading in Documentation/de/user/tutorial.itely
 #. @node in Documentation/de/user/rhythms.itely
 #. @unnumberedsubsubsec in Documentation/de/user/rhythms.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Rests"
 msgstr "Silencios"
 
 #. @rglos in Documentation/user/tutorial.itely
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "rest"
 msgstr "silencio"
 
@@ -654,6 +729,7 @@ msgstr "silencio"
 #. @subheading in Documentation/de/user/tutorial.itely
 #. @node in Documentation/de/user/rhythms.itely
 #. @unnumberedsubsubsec in Documentation/de/user/rhythms.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Time signature"
 msgstr "Indicación de compás"
 
@@ -663,6 +739,8 @@ msgstr "Indicación de compás"
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/es/user/rhythms.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/de/user/rhythms.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "time signature"
 msgstr "indicación de compás"
 
@@ -678,18 +756,21 @@ msgstr "indicación de compás"
 #. @subheading in Documentation/de/user/tutorial.itely
 #. @node in Documentation/de/user/pitches.itely
 #. @unnumberedsubsubsec in Documentation/de/user/pitches.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Clef"
 msgstr "Clave"
 
 #. @rglos in Documentation/user/tutorial.itely
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "clef"
 msgstr "clave"
 
 #. @subheading in Documentation/user/tutorial.itely
 #. @subheading in Documentation/es/user/tutorial.itely
 #. @subheading in Documentation/de/user/tutorial.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "All together"
 msgstr "Todo junto"
 
@@ -701,6 +782,8 @@ msgstr "Todo junto"
 #. @subsection in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "Working on input files"
 msgstr "Trabajar sobre los archivos de entrada"
 
@@ -712,12 +795,15 @@ msgstr "Trabajar sobre los archivos de entrada"
 #. @subsection in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "How to read the manual"
 msgstr "Cómo leer el manual"
 
 #. @subheading in Documentation/user/tutorial.itely
 #. @subheading in Documentation/es/user/tutorial.itely
 #. @subheading in Documentation/de/user/tutorial.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Clickable examples"
 msgstr "Ejemplos con enlace"
 
@@ -729,6 +815,8 @@ msgstr "Ejemplos con enlace"
 #. @section in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @section in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @section in Documentation/ja/user/tutorial.itely
 msgid "Single staff notation"
 msgstr "Notación en un solo pentagrama"
 
@@ -740,6 +828,8 @@ msgstr "Notación en un solo pentagrama"
 #. @subsection in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "Accidentals and key signatures"
 msgstr "Alteraciones accidentales y armaduras"
 
@@ -755,6 +845,7 @@ msgstr "Alteraciones accidentales y armaduras"
 #. @subheading in Documentation/de/user/tutorial.itely
 #. @node in Documentation/de/user/pitches.itely
 #. @unnumberedsubsubsec in Documentation/de/user/pitches.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Accidentals"
 msgstr "Alteraciones accidentales"
 
@@ -765,6 +856,7 @@ msgstr "Alteraciones accidentales"
 #. @rglos in Documentation/es/user/pitches.itely
 #. @rglos in Documentation/de/user/tutorial.itely
 #. @rglos in Documentation/de/user/pitches.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "sharp"
 msgstr "sostenido"
 
@@ -775,6 +867,7 @@ msgstr "sostenido"
 #. @rglos in Documentation/es/user/pitches.itely
 #. @rglos in Documentation/de/user/tutorial.itely
 #. @rglos in Documentation/de/user/pitches.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "flat"
 msgstr "bemol"
 
@@ -785,6 +878,7 @@ msgstr "bemol"
 #. @rglos in Documentation/es/user/pitches.itely
 #. @rglos in Documentation/de/user/tutorial.itely
 #. @rglos in Documentation/de/user/pitches.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "double sharp"
 msgstr "doble sostenido"
 
@@ -795,6 +889,7 @@ msgstr "doble sostenido"
 #. @rglos in Documentation/es/user/pitches.itely
 #. @rglos in Documentation/de/user/tutorial.itely
 #. @rglos in Documentation/de/user/pitches.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "double flat"
 msgstr "doble bemol"
 
@@ -802,6 +897,7 @@ msgstr "doble bemol"
 #. @subheading in Documentation/fr/user/tutorial.itely
 #. @subheading in Documentation/es/user/tutorial.itely
 #. @subheading in Documentation/de/user/tutorial.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Key signatures"
 msgstr "Armaduras"
 
@@ -809,6 +905,7 @@ msgstr "Armaduras"
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "key signature"
 msgstr "armadura de la tonalidad"
 
@@ -816,6 +913,7 @@ msgstr "armadura de la tonalidad"
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "major"
 msgstr "mayor"
 
@@ -823,6 +921,7 @@ msgstr "mayor"
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "minor"
 msgstr "menor"
 
@@ -830,6 +929,7 @@ msgstr "menor"
 #. @subheading in Documentation/fr/user/tutorial.itely
 #. @subheading in Documentation/es/user/tutorial.itely
 #. @subheading in Documentation/de/user/tutorial.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Warning: key signatures and pitches"
 msgstr "Advertencia: armaduras y alturas"
 
@@ -837,6 +937,7 @@ msgstr "Advertencia: armaduras y alturas"
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "natural"
 msgstr "becuadro"
 
@@ -844,6 +945,7 @@ msgstr "becuadro"
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "transposition"
 msgstr "transposición"
 
@@ -854,6 +956,7 @@ msgstr "transposición"
 #. @rglos in Documentation/es/user/pitches.itely
 #. @rglos in Documentation/de/user/tutorial.itely
 #. @rglos in Documentation/de/user/pitches.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "Pitch names"
 msgstr "Nombres de las notas"
 
@@ -865,6 +968,8 @@ msgstr "Nombres de las notas"
 #. @subsection in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "Ties and slurs"
 msgstr "Ligaduras de unión y de expresión"
 
@@ -880,6 +985,7 @@ msgstr "Ligaduras de unión y de expresión"
 #. @subheading in Documentation/de/user/tutorial.itely
 #. @node in Documentation/de/user/rhythms.itely
 #. @unnumberedsubsubsec in Documentation/de/user/rhythms.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Ties"
 msgstr "Ligaduras de unión"
 
@@ -890,6 +996,8 @@ msgstr "Ligaduras de unión"
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/es/user/rhythms.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/de/user/rhythms.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "tie"
 msgstr "ligadura de unión"
 
@@ -905,6 +1013,7 @@ msgstr "ligadura de unión"
 #. @subheading in Documentation/de/user/tutorial.itely
 #. @node in Documentation/de/user/expressive.itely
 #. @unnumberedsubsubsec in Documentation/de/user/expressive.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Slurs"
 msgstr "Ligaduras de expresión"
 
@@ -915,6 +1024,7 @@ msgstr "Ligaduras de expresión"
 #. @rglos in Documentation/es/user/expressive.itely
 #. @rglos in Documentation/de/user/tutorial.itely
 #. @rglos in Documentation/de/user/expressive.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "slur"
 msgstr "ligadura de expresión"
 
@@ -930,6 +1040,7 @@ msgstr "ligadura de expresión"
 #. @subheading in Documentation/de/user/tutorial.itely
 #. @node in Documentation/de/user/expressive.itely
 #. @unnumberedsubsubsec in Documentation/de/user/expressive.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Phrasing slurs"
 msgstr "Ligaduras de fraseo"
 
@@ -937,6 +1048,7 @@ msgstr "Ligaduras de fraseo"
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "phrasing"
 msgstr "fraseo"
 
@@ -944,6 +1056,7 @@ msgstr "fraseo"
 #. @subheading in Documentation/fr/user/tutorial.itely
 #. @subheading in Documentation/es/user/tutorial.itely
 #. @subheading in Documentation/de/user/tutorial.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Warnings: slurs vs. ties"
 msgstr "Advertencias: ligaduras de expresión frente a ligaduras de unión"
 
@@ -951,6 +1064,7 @@ msgstr "Advertencias: ligaduras de expresión frente a ligaduras de unión"
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "articulation"
 msgstr "articulación"
 
@@ -962,6 +1076,8 @@ msgstr "articulación"
 #. @subsection in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "Articulation and dynamics"
 msgstr "Articulaciones y matices dinámicos"
 
@@ -969,6 +1085,7 @@ msgstr "Articulaciones y matices dinámicos"
 #. @subheading in Documentation/fr/user/tutorial.itely
 #. @subheading in Documentation/es/user/tutorial.itely
 #. @subheading in Documentation/de/user/tutorial.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Articulations"
 msgstr "Articulaciones"
 
@@ -984,6 +1101,7 @@ msgstr "Articulaciones"
 #. @subheading in Documentation/de/user/tutorial.itely
 #. @node in Documentation/de/user/wind.itely
 #. @unnumberedsubsubsec in Documentation/de/user/wind.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Fingerings"
 msgstr "Digitaciones"
 
@@ -991,6 +1109,7 @@ msgstr "Digitaciones"
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "fingering"
 msgstr "digitaciones"
 
@@ -999,6 +1118,7 @@ msgstr "digitaciones"
 #. @node in Documentation/user/expressive.itely
 #. @unnumberedsubsubsec in Documentation/user/expressive.itely
 #. @subheading in Documentation/fr/user/tutorial.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @node in Documentation/fr/user/expressive.itely
 #. @unnumberedsubsubsec in Documentation/fr/user/expressive.itely
 #. @subheading in Documentation/es/user/tutorial.itely
@@ -1009,6 +1129,8 @@ msgstr "digitaciones"
 #. @subheading in Documentation/de/user/tweaks.itely
 #. @node in Documentation/de/user/expressive.itely
 #. @unnumberedsubsubsec in Documentation/de/user/expressive.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "Dynamics"
 msgstr "Matices dinámicos"
 
@@ -1016,6 +1138,8 @@ msgstr "Matices dinámicos"
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
+#. input/lsr/piano-template-with-centered-dynamics.ly:52 (variable)
 msgid "dynamics"
 msgstr "matices dinámicos"
 
@@ -1026,6 +1150,7 @@ msgstr "matices dinámicos"
 #. @rglos in Documentation/es/user/expressive.itely
 #. @rglos in Documentation/de/user/tutorial.itely
 #. @rglos in Documentation/de/user/expressive.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "crescendo"
 msgstr "crescendo"
 
@@ -1036,6 +1161,7 @@ msgstr "crescendo"
 #. @rglos in Documentation/es/user/expressive.itely
 #. @rglos in Documentation/de/user/tutorial.itely
 #. @rglos in Documentation/de/user/expressive.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "decrescendo"
 msgstr "decrescendo"
 
@@ -1047,6 +1173,8 @@ msgstr "decrescendo"
 #. @subsection in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "Adding text"
 msgstr "Añadir texto"
 
@@ -1058,6 +1186,8 @@ msgstr "Añadir texto"
 #. @subsection in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "Automatic and manual beams"
 msgstr "Barras automáticas y manuales"
 
@@ -1069,6 +1199,8 @@ msgstr "Barras automáticas y manuales"
 #. @subsection in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "Advanced rhythmic commands"
 msgstr "Instrucciones rítmicas avanzadas"
 
@@ -1076,6 +1208,7 @@ msgstr "Instrucciones rítmicas avanzadas"
 #. @subheading in Documentation/fr/user/tutorial.itely
 #. @subheading in Documentation/es/user/tutorial.itely
 #. @subheading in Documentation/de/user/tutorial.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Partial measure"
 msgstr "Compás parcial"
 
@@ -1084,6 +1217,8 @@ msgstr "Compás parcial"
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/es/user/rhythms.itely
+#. @rglos in Documentation/de/user/rhythms.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "anacrusis"
 msgstr "anacrusa"
 
@@ -1099,6 +1234,7 @@ msgstr "anacrusa"
 #. @subheading in Documentation/de/user/tutorial.itely
 #. @node in Documentation/de/user/rhythms.itely
 #. @unnumberedsubsubsec in Documentation/de/user/rhythms.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Tuplets"
 msgstr "Grupos especiales"
 
@@ -1108,6 +1244,8 @@ msgstr "Grupos especiales"
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/es/user/rhythms.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/de/user/rhythms.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "note value"
 msgstr "figura"
 
@@ -1117,6 +1255,8 @@ msgstr "figura"
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/es/user/rhythms.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/de/user/rhythms.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "triplet"
 msgstr "tresillo"
 
@@ -1132,6 +1272,7 @@ msgstr "tresillo"
 #. @subheading in Documentation/de/user/tutorial.itely
 #. @node in Documentation/de/user/rhythms.itely
 #. @unnumberedsubsubsec in Documentation/de/user/rhythms.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Grace notes"
 msgstr "Notas de adorno"
 
@@ -1141,6 +1282,8 @@ msgstr "Notas de adorno"
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/es/user/rhythms.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/de/user/rhythms.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "grace notes"
 msgstr "notas de adorno"
 
@@ -1150,6 +1293,8 @@ msgstr "notas de adorno"
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/es/user/rhythms.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/de/user/rhythms.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "acciaccatura"
 msgstr "acciaccatura"
 
@@ -1159,6 +1304,8 @@ msgstr "acciaccatura"
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/es/user/rhythms.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/de/user/rhythms.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "appoggiatura"
 msgstr "appoggiatura"
 
@@ -1170,6 +1317,8 @@ msgstr "appoggiatura"
 #. @section in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @section in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @section in Documentation/ja/user/tutorial.itely
 msgid "Multiple notes at once"
 msgstr "Varias notas a la vez"
 
@@ -1181,6 +1330,8 @@ msgstr "Varias notas a la vez"
 #. @subsection in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "Music expressions explained"
 msgstr "Explicación de las expresiones musicales"
 
@@ -1188,6 +1339,7 @@ msgstr "Explicación de las expresiones musicales"
 #. @subheading in Documentation/fr/user/tutorial.itely
 #. @subheading in Documentation/es/user/tutorial.itely
 #. @subheading in Documentation/de/user/tutorial.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Analogy: mathematical expressions"
 msgstr "Analogía: expresiones matemáticas"
 
@@ -1195,6 +1347,7 @@ msgstr "Analogía: expresiones matemáticas"
 #. @subheading in Documentation/fr/user/tutorial.itely
 #. @subheading in Documentation/es/user/tutorial.itely
 #. @subheading in Documentation/de/user/tutorial.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Simultaneous music expressions: multiple staves"
 msgstr "Expresiones musicales simultáneas: varios pentagramas"
 
@@ -1205,6 +1358,7 @@ msgstr "Expresiones musicales simultáneas: varios pentagramas"
 #. @rglos in Documentation/es/user/simultaneous.itely
 #. @rglos in Documentation/de/user/tutorial.itely
 #. @rglos in Documentation/de/user/simultaneous.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "polyphony"
 msgstr "polifonía"
 
@@ -1212,6 +1366,7 @@ msgstr "polifonía"
 #. @subheading in Documentation/fr/user/tutorial.itely
 #. @subheading in Documentation/es/user/tutorial.itely
 #. @subheading in Documentation/de/user/tutorial.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Simultaneous music expressions: single staff"
 msgstr "Expresiones musicales simultáneas: un solo pentagrama"
 
@@ -1223,6 +1378,8 @@ msgstr "Expresiones musicales simultáneas: un solo pentagrama"
 #. @subsection in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "Multiple staves"
 msgstr "Varios pentagramas"
 
@@ -1234,6 +1391,8 @@ msgstr "Varios pentagramas"
 #. @subsection in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "Staff groups"
 msgstr "Grupos de pentagramas"
 
@@ -1243,6 +1402,8 @@ msgstr "Grupos de pentagramas"
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/es/user/staff.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/de/user/staff.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "brace"
 msgstr "llave"
 
@@ -1254,6 +1415,8 @@ msgstr "llave"
 #. @subsection in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "Combining notes into chords"
 msgstr "Combinar notas para formar acordes"
 
@@ -1266,6 +1429,8 @@ msgstr "Combinar notas para formar acordes"
 #. @rglos in Documentation/es/user/chords.itely
 #. @rglos in Documentation/de/user/tutorial.itely
 #. @rglos in Documentation/de/user/simultaneous.itely
+#. @rglos in Documentation/de/user/chords.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "chord"
 msgstr "acorde"
 
@@ -1277,6 +1442,8 @@ msgstr "acorde"
 #. @subsection in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "Single staff polyphony"
 msgstr "Polifonía en un solo pentagrama"
 
@@ -1288,6 +1455,8 @@ msgstr "Polifonía en un solo pentagrama"
 #. @section in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @section in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @section in Documentation/ja/user/tutorial.itely
 msgid "Songs"
 msgstr "Canciones"
 
@@ -1307,6 +1476,8 @@ msgstr "Canciones"
 #. @subsection in Documentation/de/user/tutorial.itely
 #. @node in Documentation/de/user/vocal.itely
 #. @unnumberedsubsubsec in Documentation/de/user/vocal.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "Setting simple songs"
 msgstr "Elaborar canciones sencillas"
 
@@ -1314,6 +1485,7 @@ msgstr "Elaborar canciones sencillas"
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "lyrics"
 msgstr "letra"
 
@@ -1333,6 +1505,8 @@ msgstr "letra"
 #. @subsection in Documentation/de/user/tutorial.itely
 #. @node in Documentation/de/user/vocal.itely
 #. @subsection in Documentation/de/user/vocal.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "Aligning lyrics to a melody"
 msgstr "Alineación de la letra a una melodía"
 
@@ -1340,6 +1514,7 @@ msgstr "Alineación de la letra a una melodía"
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "melisma"
 msgstr "melisma"
 
@@ -1347,6 +1522,7 @@ msgstr "melisma"
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "extender line"
 msgstr "línea extensora"
 
@@ -1358,6 +1534,8 @@ msgstr "línea extensora"
 #. @subsection in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "Lyrics to multiple staves"
 msgstr "Letra en varios pentagramas"
 
@@ -1369,6 +1547,8 @@ msgstr "Letra en varios pentagramas"
 #. @section in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @section in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @section in Documentation/ja/user/tutorial.itely
 msgid "Final touches"
 msgstr "Retoques finales"
 
@@ -1380,6 +1560,8 @@ msgstr "Retoques finales"
 #. @subsection in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "Organizing pieces with variables"
 msgstr "Organizar las piezas mediante variables"
 
@@ -1391,6 +1573,8 @@ msgstr "Organizar las piezas mediante variables"
 #. @subsection in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "Version number"
 msgstr "Número de la versión"
 
@@ -1402,6 +1586,8 @@ msgstr "Número de la versión"
 #. @subsection in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "Adding titles"
 msgstr "Añadir títulos"
 
@@ -1413,6 +1599,8 @@ msgstr "Añadir títulos"
 #. @subsection in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "Absolute note names"
 msgstr "Nombres de nota absolutos"
 
@@ -1424,32 +1612,125 @@ msgstr "Nombres de nota absolutos"
 #. @subsection in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "After the tutorial"
 msgstr "Más allá del tutorial"
 
-#. Documentation/user/fundamental.itely:361 (variable)
-#. Documentation/user/vocal.itely:1222 (variable)
-#. Documentation/user/vocal.itely:1264 (variable)
-msgid "melody"
-msgstr "melodia"
+#. Documentation/user/fundamental.itely:324 (context id)
+#. Documentation/user/fundamental.itely:367 (context id)
+#. input/lsr/piano-template-with-centered-lyrics.ly:55 (context id)
+msgid "singer"
+msgstr "cantante"
 
-#. Documentation/user/fundamental.itely:362 (variable)
-#. Documentation/user/vocal.itely:1045 (variable)
-#. Documentation/user/vocal.itely:1227 (variable)
-#. Documentation/user/vocal.itely:1268 (variable)
-msgid "text"
-msgstr "texto"
+#. Documentation/user/fundamental.itely:325 (context id)
+#. Documentation/user/fundamental.itely:368 (context id)
+msgid "vocal"
+msgstr "voz"
 
-#. Documentation/user/fundamental.itely:363 (variable)
+#. Documentation/user/fundamental.itely:328 (context id)
+#. Documentation/user/fundamental.itely:371 (context id)
+#. input/lsr/jazz-combo-template.ly:218 (variable)
+#. input/lsr/jazz-combo-template.ly:278 (context id)
+msgid "piano"
+msgstr "piano"
+
+#. Documentation/user/fundamental.itely:329 (context id)
+#. Documentation/user/fundamental.itely:362 (variable)
+#. Documentation/user/fundamental.itely:372 (context id)
 #. Documentation/user/fundamental.itely:2669 (variable)
+#. Documentation/user/fundamental.itely:2711 (context id)
+#. input/lsr/changing-the-number-of-lines-in-a-staff.ly:19 (variable)
+#. input/lsr/jazz-combo-template.ly:221 (context id)
+#. input/lsr/piano-template-simple.ly:32 (variable)
+#. input/lsr/piano-template-simple.ly:51 (context id)
+#. input/lsr/piano-template-with-centered-dynamics.ly:42 (variable)
+#. input/lsr/piano-template-with-centered-lyrics.ly:33 (variable)
+#. input/lsr/piano-template-with-centered-lyrics.ly:55 (context id)
+#. input/lsr/piano-template-with-melody-and-lyrics.ly:44 (variable)
+#. input/lsr/piano-template-with-melody-and-lyrics.ly:65 (context id)
+#. input/lsr/polyphony-in-tablature.ly:32 (variable)
+#. input/lsr/polyphony-in-tablature.ly:50 (context id)
+#. input/lsr/polyphony-in-tablature.ly:54 (context id)
 msgid "upper"
 msgstr "superior"
 
-#. Documentation/user/fundamental.itely:364 (variable)
+#. Documentation/user/fundamental.itely:330 (context id)
+#. Documentation/user/fundamental.itely:363 (variable)
+#. Documentation/user/fundamental.itely:373 (context id)
 #. Documentation/user/fundamental.itely:2676 (variable)
+#. Documentation/user/fundamental.itely:2712 (context id)
+#. input/lsr/changing-the-number-of-lines-in-a-staff.ly:23 (variable)
+#. input/lsr/jazz-combo-template.ly:222 (context id)
+#. input/lsr/piano-template-simple.ly:40 (variable)
+#. input/lsr/piano-template-simple.ly:52 (context id)
+#. input/lsr/piano-template-with-centered-dynamics.ly:47 (variable)
+#. input/lsr/piano-template-with-centered-lyrics.ly:41 (variable)
+#. input/lsr/piano-template-with-centered-lyrics.ly:57 (context id)
+#. input/lsr/piano-template-with-melody-and-lyrics.ly:52 (variable)
+#. input/lsr/piano-template-with-melody-and-lyrics.ly:66 (context id)
+#. input/lsr/polyphony-in-tablature.ly:39 (variable)
+#. input/lsr/polyphony-in-tablature.ly:51 (context id)
+#. input/lsr/polyphony-in-tablature.ly:55 (context id)
 msgid "lower"
 msgstr "inferior"
 
+#. Documentation/user/fundamental.itely:360 (variable)
+#. Documentation/user/simultaneous.itely:241 (context id)
+#. Documentation/user/vocal.itely:571 (context id)
+#. Documentation/user/vocal.itely:803 (context id)
+#. Documentation/user/vocal.itely:824 (context id)
+#. Documentation/user/vocal.itely:1224 (variable)
+#. Documentation/user/vocal.itely:1266 (variable)
+#. Documentation/user/ancient.itely:2413 (context id)
+#. Documentation/user/ancient.itely:2452 (context id)
+#. Documentation/user/changing-defaults.itely:486 (variable)
+#. Documentation/user/changing-defaults.itely:493 (context id)
+#. Documentation/user/changing-defaults.itely:503 (context id)
+#. Documentation/user/changing-defaults.itely:508 (context id)
+#. Documentation/user/changing-defaults.itely:525 (variable)
+#. Documentation/user/changing-defaults.itely:543 (context id)
+#. input/lsr/adjusting-lyrics-vertical-spacing.ly:32 (context id)
+#. input/lsr/adjusting-lyrics-vertical-spacing.ly:43 (context id)
+#. input/lsr/ancient-notation-template----modern-transcription-of-gregorian-music.ly:50 (context id)
+#. input/lsr/demo-midiinstruments.ly:28 (variable)
+#. input/lsr/formatting-lyrics-syllables.ly:28 (context id)
+#. input/lsr/guitar-strum-rhythms.ly:53 (context id)
+#. input/lsr/heavily-customized-polymetric-time-signatures.ly:37 (variable)
+#. input/lsr/piano-template-with-melody-and-lyrics.ly:32 (variable)
+#. input/lsr/single-staff-template-with-notes,-lyrics,-and-chords.ly:32 (variable)
+#. input/lsr/single-staff-template-with-notes-and-chords.ly:33 (variable)
+#. input/lsr/single-staff-template-with-notes-and-lyrics.ly:45 (variable)
+#. input/lsr/single-staff-template-with-only-notes.ly:37 (variable)
+#. input/lsr/vertically-centered-common-lyrics.ly:44 (variable)
+msgid "melody"
+msgstr "melodia"
+
+#. Documentation/user/fundamental.itely:361 (variable)
+#. Documentation/user/vocal.itely:1051 (variable)
+#. Documentation/user/vocal.itely:1229 (variable)
+#. Documentation/user/vocal.itely:1270 (variable)
+#. input/lsr/piano-template-with-centered-lyrics.ly:49 (variable)
+#. input/lsr/piano-template-with-melody-and-lyrics.ly:40 (variable)
+#. input/lsr/single-staff-template-with-notes,-lyrics,-and-chords.ly:40 (variable)
+#. input/lsr/single-staff-template-with-notes-and-lyrics.ly:53 (variable)
+msgid "text"
+msgstr "texto"
+
+#. Documentation/user/fundamental.itely:443 (context id)
+#. Documentation/user/staff.itely:531 (context id)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:79 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:115 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:131 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:152 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:167 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:188 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:203 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:219 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:235 (comment)
+msgid "main"
+msgstr "principal"
+
 #. Documentation/user/fundamental.itely:632 (comment)
 msgid "Voice \\\"1\\\"                  Voice \\\"2\\\""
 msgstr "Voz \\\"1\\\"                  Voz \\\"2\\\""
@@ -1476,17 +1757,17 @@ msgid "Voice \\\"1\\\"     Voice \\\"2\\\"                 Voice \\\"3\\\""
 msgstr "Voz \\\"1\\\"     Voz \\\"2\\\"                 Voz \\\"3\\\""
 
 #. Documentation/user/fundamental.itely:711 (comment)
-#. Documentation/user/simultaneous.itely:737 (comment)
-#. Documentation/user/simultaneous.itely:762 (comment)
-#. Documentation/user/simultaneous.itely:789 (comment)
+#. Documentation/user/simultaneous.itely:743 (comment)
+#. Documentation/user/simultaneous.itely:768 (comment)
+#. Documentation/user/simultaneous.itely:795 (comment)
 msgid "Bar 1"
 msgstr "Compás 1"
 
 # También Líneas divisorias. FVD
 #. Documentation/user/fundamental.itely:722 (comment)
-#. Documentation/user/simultaneous.itely:742 (comment)
-#. Documentation/user/simultaneous.itely:767 (comment)
-#. Documentation/user/simultaneous.itely:795 (comment)
+#. Documentation/user/simultaneous.itely:748 (comment)
+#. Documentation/user/simultaneous.itely:773 (comment)
+#. Documentation/user/simultaneous.itely:801 (comment)
 msgid "Bar 2"
 msgstr "Compás 2"
 
@@ -1554,11 +1835,38 @@ msgstr "Poner las plicas, etc. hacia arriba"
 msgid "Initiate first voice"
 msgstr "Iniciar la primera voz"
 
+#. Documentation/user/fundamental.itely:1199 (context id)
+#. Documentation/user/fundamental.itely:2441 (context id)
+#. Documentation/user/vocal.itely:506 (context id)
+#. Documentation/user/vocal.itely:1235 (context id)
+#. Documentation/user/vocal.itely:1276 (context id)
+#. Documentation/user/keyboards.itely:338 (context id)
+#. Documentation/user/fretted-strings.itely:246 (context id)
+#. input/lsr/adding-fingerings-to-tablatures.ly:23 (variable)
+#. input/lsr/jazz-combo-template.ly:204 (context id)
+#. input/lsr/jazz-combo-template.ly:213 (context id)
+#. input/lsr/single-staff-template-with-notes,-lyrics,-and-chords.ly:54 (context id)
+#. input/lsr/single-staff-template-with-notes-and-lyrics.ly:59 (context id)
+msgid "one"
+msgstr "uno"
+
 #. Documentation/user/fundamental.itely:1242 (variable)
 #. Documentation/user/fundamental.itely:2646 (variable)
-#. Documentation/user/tweaks.itely:3268 (variable)
-#. Documentation/user/simultaneous.itely:783 (variable)
+#. Documentation/user/tweaks.itely:3502 (variable)
+#. Documentation/user/simultaneous.itely:789 (variable)
 #. Documentation/user/percussion.itely:497 (variable)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:59 (variable)
+#. input/lsr/incipit.ly:57 (variable)
+#. input/lsr/jazz-combo-template.ly:74 (variable)
+#. input/lsr/mensurstriche-layout-bar-lines-between-the-staves.ly:29 (variable)
+#. input/lsr/piano-template-with-centered-dynamics.ly:37 (variable)
+#. input/lsr/printing-music-with-different-time-signatures.ly:25 (variable)
+#. input/lsr/string-quartet-template-simple.ly:29 (variable)
+#. input/lsr/string-quartet-template-with-separate-parts.ly:80 (variable)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:30 (variable)
+#. input/lsr/vocal-ensemble-template-with-automatic-piano-reduction.ly:46 (variable)
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:37 (variable)
+#. input/lsr/vocal-ensemble-template.ly:42 (variable)
 msgid "global"
 msgstr "global"
 
@@ -1578,6 +1886,14 @@ msgstr "LetraSopranoUno"
 msgid "SopTwoLyrics"
 msgstr "LetraSopranoDos"
 
+#. Documentation/user/fundamental.itely:1255 (context id)
+msgid "SopOne"
+msgstr "SopranoUno"
+
+#. Documentation/user/fundamental.itely:1264 (context id)
+msgid "SopTwo"
+msgstr "SopranoDos"
+
 #. Documentation/user/fundamental.itely:1296 (variable)
 #. Documentation/user/fundamental.itely:2864 (variable)
 msgid "TimeKey"
@@ -1588,40 +1904,64 @@ msgid "SopMusic"
 msgstr "MusicaSoprano"
 
 #. Documentation/user/fundamental.itely:1298 (variable)
-#. Documentation/user/tweaks.itely:3270 (variable)
+#. Documentation/user/tweaks.itely:3504 (variable)
 msgid "AltoMusic"
 msgstr "MusicaAlto"
 
 #. Documentation/user/fundamental.itely:1299 (variable)
-#. Documentation/user/tweaks.itely:3271 (variable)
+#. Documentation/user/tweaks.itely:3505 (variable)
 msgid "TenorMusic"
 msgstr "MusicaTenor"
 
 #. Documentation/user/fundamental.itely:1300 (variable)
-#. Documentation/user/tweaks.itely:3272 (variable)
+#. Documentation/user/tweaks.itely:3506 (variable)
 msgid "BassMusic"
 msgstr "MusicaBajo"
 
 #. Documentation/user/fundamental.itely:1301 (variable)
-#. Documentation/user/tweaks.itely:3273 (variable)
+#. Documentation/user/tweaks.itely:3507 (variable)
 msgid "VerseOne"
 msgstr "EstrofaUno"
 
 #. Documentation/user/fundamental.itely:1303 (variable)
-#. Documentation/user/tweaks.itely:3274 (variable)
+#. Documentation/user/tweaks.itely:3508 (variable)
 msgid "VerseTwo"
 msgstr "EstrofaDos"
 
 #. Documentation/user/fundamental.itely:1305 (variable)
-#. Documentation/user/tweaks.itely:3275 (variable)
+#. Documentation/user/tweaks.itely:3509 (variable)
 msgid "VerseThree"
 msgstr "EstrofaTres"
 
 #. Documentation/user/fundamental.itely:1307 (variable)
-#. Documentation/user/tweaks.itely:3276 (variable)
+#. Documentation/user/tweaks.itely:3510 (variable)
 msgid "VerseFour"
 msgstr "EstrofaCuatro"
 
+#. Documentation/user/fundamental.itely:1314 (context id)
+msgid "Sop"
+msgstr "Soprano"
+
+#. Documentation/user/fundamental.itely:1315 (context id)
+#. Documentation/user/tweaks.itely:3517 (context id)
+#. Documentation/user/input.itely:961 (context id)
+msgid "Alto"
+msgstr "Alto"
+
+#. Documentation/user/fundamental.itely:1323 (context id)
+#. Documentation/user/tweaks.itely:3525 (context id)
+#. Documentation/user/input.itely:963 (context id)
+msgid "Tenor"
+msgstr "Tenor"
+
+# También Líneas divisorias. FVD
+#. Documentation/user/fundamental.itely:1324 (context id)
+#. Documentation/user/tweaks.itely:3526 (context id)
+#. Documentation/user/input.itely:968 (context id)
+#. input/lsr/jazz-combo-template.ly:227 (variable)
+msgid "Bass"
+msgstr "Bajo"
+
 #. Documentation/user/fundamental.itely:1350 (variable)
 #. Documentation/user/fundamental.itely:1402 (variable)
 #. Documentation/user/fundamental.itely:1464 (variable)
@@ -1634,6 +1974,14 @@ msgstr "notas_estrofa"
 msgid "versewords"
 msgstr "letra_estrofa"
 
+#. Documentation/user/fundamental.itely:1361 (context id)
+#. Documentation/user/fundamental.itely:1428 (context id)
+#. Documentation/user/fundamental.itely:1489 (context id)
+#. Documentation/user/vocal.itely:826 (context id)
+#. input/lsr/score-for-diatonic-accordion.ly:59 (variable)
+msgid "verse"
+msgstr "estrofa"
+
 #. Documentation/user/fundamental.itely:1407 (variable)
 #. Documentation/user/fundamental.itely:1469 (variable)
 msgid "refrainnotesA"
@@ -1654,6 +2002,15 @@ msgstr "letra_estribilloA"
 msgid "refrainwordsB"
 msgstr "letra_estribilloB"
 
+#. Documentation/user/fundamental.itely:1436 (context id)
+#. Documentation/user/fundamental.itely:1509 (context id)
+msgid "refrainB"
+msgstr "estribilloB"
+
+#. Documentation/user/fundamental.itely:1501 (context id)
+msgid "refrainA"
+msgstr "estribilloA"
+
 #. Documentation/user/fundamental.itely:1655 (comment)
 msgid "start of single compound music expression"
 msgstr "inicio de la expresión musical compuesta única"
@@ -1757,7 +2114,7 @@ msgstr "tamaño predeterminado"
 
 #. Documentation/user/fundamental.itely:2420 (variable)
 #. Documentation/user/fundamental.itely:2647 (variable)
-#. Documentation/user/input.itely:907 (variable)
+#. Documentation/user/input.itely:953 (variable)
 msgid "sopranoMusic"
 msgstr "musicaSoprano"
 
@@ -1774,29 +2131,47 @@ msgid "sopranoWords"
 msgstr "letraSoprano"
 
 #. Documentation/user/fundamental.itely:2654 (variable)
-#. Documentation/user/input.itely:908 (variable)
+#. Documentation/user/input.itely:954 (variable)
+#. input/lsr/vocal-ensemble-template-with-automatic-piano-reduction.ly:58 (variable)
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:49 (variable)
+#. input/lsr/vocal-ensemble-template.ly:54 (variable)
 msgid "altoMusic"
 msgstr "musicaContralto"
 
 #. Documentation/user/fundamental.itely:2658 (variable)
+#. input/lsr/vocal-ensemble-template-with-automatic-piano-reduction.ly:61 (variable)
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:52 (variable)
+#. input/lsr/vocal-ensemble-template.ly:57 (variable)
 msgid "altoWords"
 msgstr "letraContralto"
 
 #. Documentation/user/fundamental.itely:2659 (variable)
-#. Documentation/user/input.itely:909 (variable)
+#. Documentation/user/input.itely:955 (variable)
+#. input/lsr/vocal-ensemble-template-with-automatic-piano-reduction.ly:65 (variable)
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:56 (variable)
+#. input/lsr/vocal-ensemble-template.ly:61 (variable)
 msgid "tenorMusic"
 msgstr "musicaTenor"
 
 #. Documentation/user/fundamental.itely:2663 (variable)
+#. input/lsr/vocal-ensemble-template-with-automatic-piano-reduction.ly:68 (variable)
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:59 (variable)
+#. input/lsr/vocal-ensemble-template.ly:64 (variable)
 msgid "tenorWords"
 msgstr "letraTenor"
 
 #. Documentation/user/fundamental.itely:2664 (variable)
-#. Documentation/user/input.itely:910 (variable)
+#. Documentation/user/input.itely:956 (variable)
+#. input/lsr/vocal-ensemble-template-with-automatic-piano-reduction.ly:72 (variable)
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:63 (variable)
+#. input/lsr/vocal-ensemble-template.ly:68 (variable)
 msgid "bassMusic"
 msgstr "musicaBajo"
 
 #. Documentation/user/fundamental.itely:2668 (variable)
+#. input/lsr/vocal-ensemble-template-with-automatic-piano-reduction.ly:75 (variable)
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:66 (variable)
+#. input/lsr/vocal-ensemble-template.ly:71 (variable)
 msgid "bassWords"
 msgstr "letraBajo"
 
@@ -1804,6 +2179,38 @@ msgstr "letraBajo"
 msgid "combine ChoirStaff and PianoStaff in parallel"
 msgstr "combinar ChoirStaff y PianoStaff en paralelo"
 
+#. Documentation/user/fundamental.itely:2687 (context id)
+#. Documentation/user/fundamental.itely:2689 (context id)
+#. input/lsr/vocal-ensemble-template-with-automatic-piano-reduction.ly:84 (context id)
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:73 (context id)
+#. input/lsr/vocal-ensemble-template.ly:79 (context id)
+msgid "sopranos"
+msgstr "sopranos"
+
+#. Documentation/user/fundamental.itely:2692 (context id)
+#. Documentation/user/fundamental.itely:2694 (context id)
+#. input/lsr/vocal-ensemble-template-with-automatic-piano-reduction.ly:85 (context id)
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:74 (context id)
+#. input/lsr/vocal-ensemble-template.ly:83 (context id)
+msgid "altos"
+msgstr "altos"
+
+#. Documentation/user/fundamental.itely:2697 (context id)
+#. Documentation/user/fundamental.itely:2699 (context id)
+#. input/lsr/vocal-ensemble-template-with-automatic-piano-reduction.ly:91 (context id)
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:84 (context id)
+#. input/lsr/vocal-ensemble-template.ly:92 (context id)
+msgid "tenors"
+msgstr "tenores"
+
+#. Documentation/user/fundamental.itely:2702 (context id)
+#. Documentation/user/fundamental.itely:2704 (context id)
+#. input/lsr/vocal-ensemble-template-with-automatic-piano-reduction.ly:92 (context id)
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:85 (context id)
+#. input/lsr/vocal-ensemble-template.ly:96 (context id)
+msgid "basses"
+msgstr "bajos"
+
 #. Documentation/user/fundamental.itely:2707 (comment)
 msgid "end ChoirStaff"
 msgstr "fin del ChoirStaff"
@@ -1828,6 +2235,10 @@ msgstr "MusicaPedales"
 msgid "PianoStaff and Pedal Staff must be simultaneous"
 msgstr "El PianoStaff y el pentagrama del Pedal son simultáneos"
 
+#. Documentation/user/fundamental.itely:2884 (context id)
+msgid "ManualOne"
+msgstr "ManualUno"
+
 #. Documentation/user/fundamental.itely:2885 (comment)
 msgid "set time signature and key"
 msgstr "indicación de compás y armadura"
@@ -1836,6 +2247,10 @@ msgstr "indicación de compás y armadura"
 msgid "end ManualOne Staff context"
 msgstr "fin del contexto de pentagrama del ManualUno"
 
+#. Documentation/user/fundamental.itely:2890 (context id)
+msgid "ManualTwo"
+msgstr "ManualDos"
+
 #. Documentation/user/fundamental.itely:2894 (comment)
 msgid "end ManualTwo Staff context"
 msgstr "fin del contexto de pentagrama del ManualDos"
@@ -1844,6 +2259,10 @@ msgstr "fin del contexto de pentagrama del ManualDos"
 msgid "end PianoStaff context"
 msgstr "fin del contexto PianoStaff"
 
+#. Documentation/user/fundamental.itely:2896 (context id)
+msgid "PedalOrgan"
+msgstr "Pedales"
+
 #. Documentation/user/fundamental.itely:2900 (comment)
 msgid "end PedalOrgan Staff context"
 msgstr "fin del contexto de pentagrama del Pedal"
@@ -1860,6 +2279,8 @@ msgstr "fin del contexto de Score (partitura)"
 #. @chapter in Documentation/es/user/fundamental.itely
 #. @node in Documentation/de/user/fundamental.itely
 #. @chapter in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @chapter in Documentation/ja/user/fundamental.itely
 msgid "Fundamental concepts"
 msgstr "Conceptos fundamentales"
 
@@ -1869,6 +2290,10 @@ msgstr "Conceptos fundamentales"
 #. @section in Documentation/fr/user/fundamental.itely
 #. @node in Documentation/es/user/fundamental.itely
 #. @section in Documentation/es/user/fundamental.itely
+#. @node in Documentation/de/user/fundamental.itely
+#. @section in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @section in Documentation/ja/user/fundamental.itely
 msgid "How LilyPond input files work"
 msgstr "Cómo funcionan los archivos de entrada de LilyPond"
 
@@ -1880,6 +2305,8 @@ msgstr "Cómo funcionan los archivos de entrada de LilyPond"
 #. @subsection in Documentation/es/user/fundamental.itely
 #. @node in Documentation/de/user/fundamental.itely
 #. @subsection in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @subsection in Documentation/ja/user/fundamental.itely
 msgid "Introduction to the LilyPond file structure"
 msgstr "Introducción a la estructura de los archivos de LilyPond"
 
@@ -1891,6 +2318,8 @@ msgstr "Introducción a la estructura de los archivos de LilyPond"
 #. @subsection in Documentation/es/user/fundamental.itely
 #. @node in Documentation/de/user/fundamental.itely
 #. @subsection in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @subsection in Documentation/ja/user/fundamental.itely
 msgid "Score is a (single) compound musical expression"
 msgstr "La partitura es una (única) expresión musical compuesta"
 
@@ -1902,17 +2331,28 @@ msgstr "La partitura es una (única) expresión musical compuesta"
 #. @subsection in Documentation/es/user/fundamental.itely
 #. @node in Documentation/de/user/fundamental.itely
 #. @subsection in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @subsection in Documentation/ja/user/fundamental.itely
 msgid "Nesting music expressions"
 msgstr "Anidado de expresiones musicales"
 
 #. @rglos in Documentation/user/fundamental.itely
 #. @rglos in Documentation/user/tweaks.itely
+#. Documentation/user/staff.itely:560 (context id)
+#. Documentation/user/staff.itely:573 (context id)
+#. Documentation/user/staff.itely:581 (context id)
+#. Documentation/user/staff.itely:600 (context id)
+#. Documentation/user/staff.itely:613 (context id)
 #. @rglos in Documentation/user/staff.itely
 #. @rglos in Documentation/fr/user/fundamental.itely
+#. @rglos in Documentation/fr/user/tweaks.itely
 #. @rglos in Documentation/es/user/fundamental.itely
 #. @rglos in Documentation/es/user/tweaks.itely
 #. @rglos in Documentation/es/user/staff.itely
 #. @rglos in Documentation/de/user/tweaks.itely
+#. @rglos in Documentation/de/user/staff.itely
+#. @rglos in Documentation/ja/user/fundamental.itely
+#. @rglos in Documentation/ja/user/tweaks.itely
 msgid "ossia"
 msgstr "ossia"
 
@@ -1924,6 +2364,8 @@ msgstr "ossia"
 #. @subsection in Documentation/es/user/fundamental.itely
 #. @node in Documentation/de/user/fundamental.itely
 #. @subsection in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @subsection in Documentation/ja/user/fundamental.itely
 msgid "On the un-nestedness of brackets and ties"
 msgstr "Acerca de la no anidabilidad de llaves y ligaduras"
 
@@ -1935,6 +2377,8 @@ msgstr "Acerca de la no anidabilidad de llaves y ligaduras"
 #. @section in Documentation/es/user/fundamental.itely
 #. @node in Documentation/de/user/fundamental.itely
 #. @section in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @section in Documentation/ja/user/fundamental.itely
 msgid "Voices contain music"
 msgstr "Las voces contienen música"
 
@@ -1946,6 +2390,8 @@ msgstr "Las voces contienen música"
 #. @subsection in Documentation/es/user/fundamental.itely
 #. @node in Documentation/de/user/fundamental.itely
 #. @subsection in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @subsection in Documentation/ja/user/fundamental.itely
 msgid "I'm hearing Voices"
 msgstr "Oigo voces"
 
@@ -1957,6 +2403,8 @@ msgstr "Oigo voces"
 #. @subsection in Documentation/es/user/fundamental.itely
 #. @node in Documentation/de/user/fundamental.itely
 #. @subsection in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @subsection in Documentation/ja/user/fundamental.itely
 msgid "Explicitly instantiating voices"
 msgstr "Voces explícitas"
 
@@ -1964,6 +2412,7 @@ msgstr "Voces explícitas"
 #. @subsubheading in Documentation/fr/user/fundamental.itely
 #. @subsubheading in Documentation/es/user/fundamental.itely
 #. @subsubheading in Documentation/de/user/fundamental.itely
+#. @subsubheading in Documentation/ja/user/fundamental.itely
 msgid "Note columns"
 msgstr "Columnas de notas"
 
@@ -1975,6 +2424,8 @@ msgstr "Columnas de notas"
 #. @subsection in Documentation/es/user/fundamental.itely
 #. @node in Documentation/de/user/fundamental.itely
 #. @subsection in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @subsection in Documentation/ja/user/fundamental.itely
 msgid "Voices and vocals"
 msgstr "Voces y música vocal"
 
@@ -1986,6 +2437,8 @@ msgstr "Voces y música vocal"
 #. @section in Documentation/es/user/fundamental.itely
 #. @node in Documentation/de/user/fundamental.itely
 #. @section in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @section in Documentation/ja/user/fundamental.itely
 msgid "Contexts and engravers"
 msgstr "Contextos y grabadores"
 
@@ -2005,6 +2458,8 @@ msgstr "Contextos y grabadores"
 #. @subsection in Documentation/de/user/fundamental.itely
 #. @node in Documentation/de/user/changing-defaults.itely
 #. @subsection in Documentation/de/user/changing-defaults.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @subsection in Documentation/ja/user/fundamental.itely
 msgid "Contexts explained"
 msgstr "Explicación de los contextos"
 
@@ -2014,6 +2469,8 @@ msgstr "Explicación de los contextos"
 #. @subsection in Documentation/user/changing-defaults.itely
 #. @node in Documentation/fr/user/fundamental.itely
 #. @subsection in Documentation/fr/user/fundamental.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/fundamental.itely
 #. @subsection in Documentation/es/user/fundamental.itely
 #. @node in Documentation/es/user/changing-defaults.itely
@@ -2022,6 +2479,8 @@ msgstr "Explicación de los contextos"
 #. @subsection in Documentation/de/user/fundamental.itely
 #. @node in Documentation/de/user/changing-defaults.itely
 #. @subsection in Documentation/de/user/changing-defaults.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @subsection in Documentation/ja/user/fundamental.itely
 msgid "Creating contexts"
 msgstr "Crear contextos"
 
@@ -2033,6 +2492,8 @@ msgstr "Crear contextos"
 #. @subsection in Documentation/es/user/fundamental.itely
 #. @node in Documentation/de/user/fundamental.itely
 #. @subsection in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @subsection in Documentation/ja/user/fundamental.itely
 msgid "Engravers explained"
 msgstr "Explicación de los grabadores"
 
@@ -2044,20 +2505,24 @@ msgstr "Explicación de los grabadores"
 #. @subsection in Documentation/es/user/fundamental.itely
 #. @node in Documentation/de/user/fundamental.itely
 #. @subsection in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @subsection in Documentation/ja/user/fundamental.itely
 msgid "Modifying context properties"
 msgstr "Modificar las propiedades de los contextos"
 
-#. @unnumberedsubsubsec in Documentation/user/fundamental.itely
+#. @subsubheading in Documentation/user/fundamental.itely
 #. @unnumberedsubsubsec in Documentation/fr/user/fundamental.itely
-#. @unnumberedsubsubsec in Documentation/es/user/fundamental.itely
-#. @unnumberedsubsubsec in Documentation/de/user/fundamental.itely
+#. @subsubheading in Documentation/es/user/fundamental.itely
+#. @subsubheading in Documentation/de/user/fundamental.itely
+#. @subsubheading in Documentation/ja/user/fundamental.itely
 msgid "Setting context properties with @code{\\with}"
 msgstr "Cambiar las propiedades de un contexto con @code{\\with}"
 
-#. @unnumberedsubsubsec in Documentation/user/fundamental.itely
+#. @subsubheading in Documentation/user/fundamental.itely
 #. @unnumberedsubsubsec in Documentation/fr/user/fundamental.itely
-#. @unnumberedsubsubsec in Documentation/es/user/fundamental.itely
-#. @unnumberedsubsubsec in Documentation/de/user/fundamental.itely
+#. @subsubheading in Documentation/es/user/fundamental.itely
+#. @subsubheading in Documentation/de/user/fundamental.itely
+#. @subsubheading in Documentation/ja/user/fundamental.itely
 msgid "Setting context properties with @code{\\context}"
 msgstr "Cambiar las propiedades de un contexto con @code{\\context}"
 
@@ -2069,6 +2534,8 @@ msgstr "Cambiar las propiedades de un contexto con @code{\\context}"
 #. @subsection in Documentation/es/user/fundamental.itely
 #. @node in Documentation/de/user/fundamental.itely
 #. @subsection in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @subsection in Documentation/ja/user/fundamental.itely
 msgid "Adding and removing engravers"
 msgstr "Añadir y eliminar grabadores"
 
@@ -2076,6 +2543,7 @@ msgstr "Añadir y eliminar grabadores"
 #. @subsubheading in Documentation/fr/user/fundamental.itely
 #. @subsubheading in Documentation/es/user/fundamental.itely
 #. @subsubheading in Documentation/de/user/fundamental.itely
+#. @subsubheading in Documentation/ja/user/fundamental.itely
 msgid "Changing a single context"
 msgstr "Cambiar un solo contexto"
 
@@ -2086,6 +2554,7 @@ msgstr "Cambiar un solo contexto"
 #. @rglos in Documentation/es/user/pitches.itely
 #. @rglos in Documentation/de/user/fundamental.itely
 #. @rglos in Documentation/de/user/pitches.itely
+#. @rglos in Documentation/ja/user/fundamental.itely
 msgid "ambitus"
 msgstr "tesitura"
 
@@ -2093,6 +2562,7 @@ msgstr "tesitura"
 #. @subsubheading in Documentation/fr/user/fundamental.itely
 #. @subsubheading in Documentation/es/user/fundamental.itely
 #. @subsubheading in Documentation/de/user/fundamental.itely
+#. @subsubheading in Documentation/ja/user/fundamental.itely
 msgid "Changing all contexts of the same type"
 msgstr "Cambiar todos los contextos del mismo tipo"
 
@@ -2104,6 +2574,8 @@ msgstr "Cambiar todos los contextos del mismo tipo"
 #. @section in Documentation/es/user/fundamental.itely
 #. @node in Documentation/de/user/fundamental.itely
 #. @section in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @section in Documentation/ja/user/fundamental.itely
 msgid "Extending the templates"
 msgstr "Extender las plantillas"
 
@@ -2115,6 +2587,8 @@ msgstr "Extender las plantillas"
 #. @subsection in Documentation/es/user/fundamental.itely
 #. @node in Documentation/de/user/fundamental.itely
 #. @subsection in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @subsection in Documentation/ja/user/fundamental.itely
 msgid "Soprano and cello"
 msgstr "Soprano y violoncello"
 
@@ -2126,6 +2600,8 @@ msgstr "Soprano y violoncello"
 #. @subsection in Documentation/es/user/fundamental.itely
 #. @node in Documentation/de/user/fundamental.itely
 #. @subsection in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @subsection in Documentation/ja/user/fundamental.itely
 msgid "Four-part SATB vocal score"
 msgstr "Partitura vocal a cuatro voces SATB"
 
@@ -2137,201 +2613,228 @@ msgstr "Partitura vocal a cuatro voces SATB"
 #. @subsection in Documentation/es/user/fundamental.itely
 #. @node in Documentation/de/user/fundamental.itely
 #. @subsection in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @subsection in Documentation/ja/user/fundamental.itely
 msgid "Building a score from scratch"
 msgstr "Crear una partitura partiendo de cero"
 
-#. Documentation/user/tweaks.itely:564 (comment)
-#. Documentation/user/tweaks.itely:690 (comment)
+#. Documentation/user/tweaks.itely:597 (comment)
+#. Documentation/user/tweaks.itely:732 (comment)
 msgid "Increase thickness of all following slurs from 1.2 to 5.0"
 msgstr "Aumentar el grosor de todas las ligaduras siguientes de 1.2 a 5.0"
 
-#. Documentation/user/tweaks.itely:630 (comment)
 #. Documentation/user/tweaks.itely:666 (comment)
-#. Documentation/user/tweaks.itely:669 (comment)
+#. Documentation/user/tweaks.itely:705 (comment)
+#. Documentation/user/tweaks.itely:708 (comment)
 msgid "Increase thickness of immediately following slur only"
 msgstr "Aumentar solamente el grosor de la ligadura siguiente"
 
-#. Documentation/user/tweaks.itely:694 (comment)
+#. Documentation/user/tweaks.itely:736 (comment)
 msgid "Revert thickness of all following slurs to default of 1.2"
 msgstr "Devolver el grosor de las ligaduras siguientes al valor predeterminado 1.2"
 
-#. Documentation/user/tweaks.itely:1302 (comment)
+#. Documentation/user/tweaks.itely:1396 (comment)
 msgid "Don't print clefs in this staff"
 msgstr "No imprimir la clave en este pentagrama"
 
-#. Documentation/user/tweaks.itely:1304 (comment)
+#. Documentation/user/tweaks.itely:1398 (comment)
 msgid "Don't print time signatures in this staff"
 msgstr "No imprimir el compás en este pentagrama"
 
-#. Documentation/user/tweaks.itely:1362 (comment)
+#. Documentation/user/tweaks.itely:1462 (comment)
 msgid "Reduce all font sizes by ~24%"
 msgstr "Reducir el tamaño de la fuente en un 24% aprox."
 
-#. Documentation/user/tweaks.itely:1418 (comment)
+#. Documentation/user/tweaks.itely:1528 (comment)
 msgid "Reduce stem length and line spacing to match"
 msgstr "Reducir la longitud de la plica y el espaciado de la línea en coincidencia"
 
-#. Documentation/user/tweaks.itely:1828 (comment)
-#. Documentation/user/tweaks.itely:1895 (comment)
+#. Documentation/user/tweaks.itely:1958 (comment)
+#. Documentation/user/tweaks.itely:2028 (comment)
 msgid "Set details for later Text Spanner"
 msgstr "Establecer ajustes para el extensor de texto ulterior"
 
-#. Documentation/user/tweaks.itely:1831 (comment)
-#. Documentation/user/tweaks.itely:1898 (comment)
+#. Documentation/user/tweaks.itely:1961 (comment)
+#. Documentation/user/tweaks.itely:2031 (comment)
 msgid "Place dynamics above staff"
 msgstr "Situar la dinámica por encima"
 
 # fuzzy. FVD
-#. Documentation/user/tweaks.itely:1833 (comment)
-#. Documentation/user/tweaks.itely:1902 (comment)
+#. Documentation/user/tweaks.itely:1963 (comment)
+#. Documentation/user/tweaks.itely:2035 (comment)
 msgid "Start Ottava Bracket"
 msgstr "Inicio del corchete de octava"
 
-#. Documentation/user/tweaks.itely:1836 (comment)
-#. Documentation/user/tweaks.itely:1843 (comment)
-#. Documentation/user/tweaks.itely:1905 (comment)
-#. Documentation/user/tweaks.itely:1912 (comment)
+#. Documentation/user/tweaks.itely:1966 (comment)
+#. Documentation/user/tweaks.itely:1973 (comment)
+#. Documentation/user/tweaks.itely:2038 (comment)
+#. Documentation/user/tweaks.itely:2045 (comment)
 msgid "Add Dynamic Text"
 msgstr "Añadir indicación dinámica textual"
 
-#. Documentation/user/tweaks.itely:1838 (comment)
-#. Documentation/user/tweaks.itely:1907 (comment)
+#. Documentation/user/tweaks.itely:1968 (comment)
+#. Documentation/user/tweaks.itely:2040 (comment)
 msgid "Add Dynamic Line Spanner"
 msgstr "Añadir indicación dinámica de extensión de línea"
 
-#. Documentation/user/tweaks.itely:1840 (comment)
-#. Documentation/user/tweaks.itely:1909 (comment)
+#. Documentation/user/tweaks.itely:1970 (comment)
+#. Documentation/user/tweaks.itely:2042 (comment)
 msgid "Add Text Script"
 msgstr "Guiones de texto"
 
-#. Documentation/user/tweaks.itely:1845 (comment)
-#. Documentation/user/tweaks.itely:1914 (comment)
+#. Documentation/user/tweaks.itely:1975 (comment)
+#. Documentation/user/tweaks.itely:2047 (comment)
 msgid "Stop Ottava Bracket"
 msgstr "Detener el corchete de octava"
 
-#. Documentation/user/tweaks.itely:1900 (comment)
+#. Documentation/user/tweaks.itely:2033 (comment)
 msgid "Place following Ottava Bracket below Text Spanners"
 msgstr "Situar el corchete de octava ulterior por debajo de los extensores de texto"
 
-#. Documentation/user/tweaks.itely:1959 (comment)
+#. Documentation/user/tweaks.itely:2122 (comment)
 msgid "Cause notes to space out to accommodate text"
 msgstr "Ocasionar que las notas se espacíen para adecuarse al texto"
 
-#. Documentation/user/tweaks.itely:1979 (comment)
+#. Documentation/user/tweaks.itely:2145 (comment)
 msgid "This markup is short enough to fit without collision"
 msgstr "Este marcado es corto y cabe sin colisionar"
 
-#. Documentation/user/tweaks.itely:1983 (comment)
+#. Documentation/user/tweaks.itely:2149 (comment)
 msgid "This is too long to fit, so it is displaced upwards"
 msgstr "Este es muy largo y se desplaza hacia arriba"
 
-#. Documentation/user/tweaks.itely:1987 (comment)
-#. Documentation/user/tweaks.itely:1992 (comment)
+#. Documentation/user/tweaks.itely:2153 (comment)
+#. Documentation/user/tweaks.itely:2158 (comment)
 msgid "Turn off collision avoidance"
 msgstr "Desactivar el detector de colisiones"
 
-#. Documentation/user/tweaks.itely:1994 (comment)
+#. Documentation/user/tweaks.itely:2160 (comment)
 msgid "and turn on textLengthOn"
 msgstr "y activar textLengthOn"
 
-#. Documentation/user/tweaks.itely:1995 (comment)
+#. Documentation/user/tweaks.itely:2161 (comment)
 msgid "Spaces at end are honored"
 msgstr "Los espacios al final se respetan"
 
-#. Documentation/user/tweaks.itely:2096 (comment)
+#. Documentation/user/tweaks.itely:2268 (comment)
 msgid "Extend width by 1 staff space"
 msgstr "Aumentar la anchura en un espacio de pentagrama"
 
-#. Documentation/user/tweaks.itely:2373 (comment)
+#. Documentation/user/tweaks.itely:2551 (comment)
 msgid "This will not work, see below:"
 msgstr "Esto no va a funcionar, véase más abajo:"
 
-#. Documentation/user/tweaks.itely:2377 (comment)
+#. Documentation/user/tweaks.itely:2555 (comment)
 msgid "This works:"
 msgstr "Esto sí funciona:"
 
-#. Documentation/user/tweaks.itely:2422 (variable)
+#. Documentation/user/tweaks.itely:2606 (variable)
 msgid "naturalplusflat"
 msgstr "becuadro_y_bemol"
 
-#. Documentation/user/tweaks.itely:2458 (comment)
+#. Documentation/user/tweaks.itely:2647 (comment)
 msgid "Extend width by 1 unit"
 msgstr "Aumentar la anchura en una unidad"
 
-#. Documentation/user/tweaks.itely:2460 (comment)
+#. Documentation/user/tweaks.itely:2649 (comment)
 msgid "Align dynamics to a base line 2 units above staff"
 msgstr "Alinear los matices a dos unidades por encima del pentagrama"
 
-#. Documentation/user/tweaks.itely:2745 (variable)
-#. Documentation/user/tweaks.itely:2794 (variable)
-#. Documentation/user/tweaks.itely:2855 (variable)
-#. Documentation/user/tweaks.itely:2925 (variable)
-#. Documentation/user/tweaks.itely:2987 (variable)
-#. Documentation/user/tweaks.itely:3042 (variable)
+#. Documentation/user/tweaks.itely:2953 (variable)
+#. Documentation/user/tweaks.itely:3002 (variable)
+#. Documentation/user/tweaks.itely:3063 (variable)
+#. Documentation/user/tweaks.itely:3133 (variable)
+#. Documentation/user/tweaks.itely:3198 (variable)
+#. Documentation/user/tweaks.itely:3258 (variable)
 msgid "rhMusic"
 msgstr "Musica_m_der"
 
-#. Documentation/user/tweaks.itely:2750 (comment)
-#. Documentation/user/tweaks.itely:2799 (comment)
-#. Documentation/user/tweaks.itely:2862 (comment)
-#. Documentation/user/tweaks.itely:2934 (comment)
-#. Documentation/user/tweaks.itely:2996 (comment)
+#. Documentation/user/tweaks.itely:2958 (comment)
+#. Documentation/user/tweaks.itely:3007 (comment)
+#. Documentation/user/tweaks.itely:3070 (comment)
+#. Documentation/user/tweaks.itely:3142 (comment)
+#. Documentation/user/tweaks.itely:3207 (comment)
 msgid "Start polyphonic section of four voices"
 msgstr "Inicio de la sección polifónica de cuatro voces"
 
-#. Documentation/user/tweaks.itely:2763 (variable)
-#. Documentation/user/tweaks.itely:2812 (variable)
-#. Documentation/user/tweaks.itely:2875 (variable)
-#. Documentation/user/tweaks.itely:2949 (variable)
-#. Documentation/user/tweaks.itely:3013 (variable)
-#. Documentation/user/tweaks.itely:3070 (variable)
+#. Documentation/user/tweaks.itely:2971 (variable)
+#. Documentation/user/tweaks.itely:3020 (variable)
+#. Documentation/user/tweaks.itely:3083 (variable)
+#. Documentation/user/tweaks.itely:3157 (variable)
+#. Documentation/user/tweaks.itely:3224 (variable)
+#. Documentation/user/tweaks.itely:3286 (variable)
 msgid "lhMusic"
 msgstr "Muslca_m_izq"
 
-#. Documentation/user/tweaks.itely:3000 (comment)
-#. Documentation/user/tweaks.itely:3057 (comment)
+#. Documentation/user/tweaks.itely:2980 (context id)
+#. Documentation/user/tweaks.itely:3029 (context id)
+#. Documentation/user/tweaks.itely:3092 (context id)
+#. Documentation/user/tweaks.itely:3166 (context id)
+#. Documentation/user/tweaks.itely:3233 (context id)
+#. Documentation/user/tweaks.itely:3295 (context id)
+#. Documentation/user/input.itely:974 (context id)
+msgid "RH"
+msgstr "MD"
+
+#. Documentation/user/tweaks.itely:2984 (context id)
+#. Documentation/user/tweaks.itely:3033 (context id)
+#. Documentation/user/tweaks.itely:3096 (context id)
+#. Documentation/user/tweaks.itely:3170 (context id)
+#. Documentation/user/tweaks.itely:3237 (context id)
+#. Documentation/user/tweaks.itely:3299 (context id)
+#. Documentation/user/input.itely:980 (context id)
+msgid "LH"
+msgstr "MI"
+
+#. Documentation/user/tweaks.itely:3211 (comment)
+#. Documentation/user/tweaks.itely:3273 (comment)
 msgid "Move the c2 out of the main note column so the merge will work"
 msgstr ""
 "Sacar el Do blanca de la columna principal de notas para que la fusión "
 "funcione"
 
-#. Documentation/user/tweaks.itely:3003 (comment)
-#. Documentation/user/tweaks.itely:3060 (comment)
+#. Documentation/user/tweaks.itely:3214 (comment)
+#. Documentation/user/tweaks.itely:3276 (comment)
 msgid "Stem on the d2 must be down to permit merging"
 msgstr "La plica del Re blanca debe estar hacia abajo para permitir la fusión"
 
-#. Documentation/user/tweaks.itely:3055 (comment)
+#. Documentation/user/tweaks.itely:3271 (comment)
 msgid "Reposition the c2 to the right of the merged note"
 msgstr "Recolocar el Do blanca a la derecha de la nota fundida"
 
-#. Documentation/user/tweaks.itely:3185 (comment)
-#. Documentation/user/tweaks.itely:3204 (comment)
+#. Documentation/user/tweaks.itely:3407 (comment)
+#. Documentation/user/tweaks.itely:3429 (comment)
 msgid "Visible tempo marking"
 msgstr "Indicación metronómica visible"
 
-#. Documentation/user/tweaks.itely:3189 (comment)
-#. Documentation/user/tweaks.itely:3208 (comment)
+#. Documentation/user/tweaks.itely:3411 (comment)
+#. Documentation/user/tweaks.itely:3433 (comment)
 msgid "Invisible tempo marking to lengthen fermata in MIDI"
 msgstr "Indicación metronómica invisible para prolongar el calderón en el MIDI"
 
-#. Documentation/user/tweaks.itely:3192 (comment)
-#. Documentation/user/tweaks.itely:3211 (comment)
+#. Documentation/user/tweaks.itely:3414 (comment)
+#. Documentation/user/tweaks.itely:3436 (comment)
 msgid "New tempo for next section"
 msgstr "Tempo nuevo para la sección siguiente"
 
-#. Documentation/user/tweaks.itely:3259 (variable)
+#. Documentation/user/tweaks.itely:3493 (variable)
 msgid "emphasize"
 msgstr "enfatizar"
 
-#. Documentation/user/tweaks.itely:3263 (variable)
+#. Documentation/user/tweaks.itely:3497 (variable)
 msgid "normal"
 msgstr "normal"
 
-#. Documentation/user/tweaks.itely:3269 (variable)
+#. Documentation/user/tweaks.itely:3503 (variable)
 msgid "SopranoMusic"
 msgstr "musicaSoprano"
 
-#. Documentation/user/tweaks.itely:3485 (comment)
+#. Documentation/user/tweaks.itely:3516 (context id)
+#. Documentation/user/input.itely:959 (context id)
+msgid "Soprano"
+msgstr "Soprano"
+
+#. Documentation/user/tweaks.itely:3725 (comment)
 msgid "Arrange to obtain color from color-notehead procedure"
 msgstr "Truco para obtener color a partir del procedimiento color-notehead"
 
@@ -2343,6 +2846,8 @@ msgstr "Truco para obtener color a partir del procedimiento color-notehead"
 #. @chapter in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @chapter in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @chapter in Documentation/ja/user/tweaks.itely
 msgid "Tweaking output"
 msgstr "Trucar la salida"
 
@@ -2354,6 +2859,8 @@ msgstr "Trucar la salida"
 #. @section in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @section in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @section in Documentation/ja/user/tweaks.itely
 msgid "Tweaking basics"
 msgstr "Elementos de trucaje"
 
@@ -2366,6 +2873,8 @@ msgstr "Elementos de trucaje"
 #. @subsection in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
 msgid "Introduction to tweaks"
 msgstr "Introducción al trucaje"
 
@@ -2377,6 +2886,8 @@ msgstr "Introducción al trucaje"
 #. @subsection in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
 msgid "Objects and interfaces"
 msgstr "Objetos e interfaces"
 
@@ -2388,6 +2899,8 @@ msgstr "Objetos e interfaces"
 #. @subsection in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
 msgid "Naming conventions of objects and properties"
 msgstr "Convenciones de nombres de objetos y propiedades"
 
@@ -2399,6 +2912,8 @@ msgstr "Convenciones de nombres de objetos y propiedades"
 #. @subsection in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
 msgid "Tweaking methods"
 msgstr "Métodos de trucaje"
 
@@ -2410,6 +2925,8 @@ msgstr "Métodos de trucaje"
 #. @section in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @section in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @section in Documentation/ja/user/tweaks.itely
 msgid "The Internals Reference manual"
 msgstr "Manual de referencia de funcionamiento interno"
 
@@ -2421,24 +2938,32 @@ msgstr "Manual de referencia de funcionamiento interno"
 #. @subsection in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
 msgid "Properties of layout objects"
 msgstr "Propiedades de los objetos de presentación"
 
 #. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @subheading in Documentation/es/user/tweaks.itely
 #. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "Finding the context"
 msgstr "Búsqueda del contexto"
 
 #. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @subheading in Documentation/es/user/tweaks.itely
 #. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "Overriding once only"
 msgstr "Sobreescritura por una sola vez"
 
 #. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @subheading in Documentation/es/user/tweaks.itely
 #. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "Reverting"
 msgstr "Recuperación del ajuste"
 
@@ -2450,12 +2975,16 @@ msgstr "Recuperación del ajuste"
 #. @subsection in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
 msgid "Properties found in interfaces"
 msgstr "Propiedades de los interfaces"
 
 #. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @subheading in Documentation/es/user/tweaks.itely
 #. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "Specifying the context in lyric mode"
 msgstr "Especificación del contexto en modo letra"
 
@@ -2467,6 +2996,8 @@ msgstr "Especificación del contexto en modo letra"
 #. @subsection in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
 msgid "Types of properties"
 msgstr "Tipos de propiedades"
 
@@ -2478,6 +3009,8 @@ msgstr "Tipos de propiedades"
 #. @section in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @section in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @section in Documentation/ja/user/tweaks.itely
 msgid "Appearance of objects"
 msgstr "Apariencia de los objetos"
 
@@ -2489,30 +3022,40 @@ msgstr "Apariencia de los objetos"
 #. @subsection in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
 msgid "Visibility and color of objects"
 msgstr "Visibilidad y color de los objetos"
 
 #. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @subheading in Documentation/es/user/tweaks.itely
 #. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "stencil"
 msgstr "stencil (sello)"
 
 #. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @subheading in Documentation/es/user/tweaks.itely
 #. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "break-visibility"
 msgstr "break-visibility (visibilidad en el salto)"
 
 #. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @subheading in Documentation/es/user/tweaks.itely
 #. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "transparent"
 msgstr "transparent (transparente)"
 
 #. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @subheading in Documentation/es/user/tweaks.itely
 #. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "color"
 msgstr "color"
 
@@ -2524,6 +3067,8 @@ msgstr "color"
 #. @subsection in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
 msgid "Size of objects"
 msgstr "Tamaño de los objetos"
 
@@ -2535,6 +3080,8 @@ msgstr "Tamaño de los objetos"
 #. @subsection in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
 msgid "Length and thickness of objects"
 msgstr "Longitud y grosor de los objetos"
 
@@ -2546,6 +3093,8 @@ msgstr "Longitud y grosor de los objetos"
 #. @section in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @section in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @section in Documentation/ja/user/tweaks.itely
 msgid "Placement of objects"
 msgstr "Colocación de los objetos"
 
@@ -2555,6 +3104,8 @@ msgstr "Colocación de los objetos"
 #. @subsection in Documentation/fr/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
 msgid "Automatic behavior"
 msgstr "Comportamiento automático"
 
@@ -2566,12 +3117,16 @@ msgstr "Comportamiento automático"
 #. @subsection in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
 msgid "Within-staff objects"
 msgstr "Objetos interiores al pentagrama"
 
 #. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @subheading in Documentation/es/user/tweaks.itely
 #. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "Fingering"
 msgstr "Digitaciones"
 
@@ -2579,18 +3134,26 @@ msgstr "Digitaciones"
 #. @subsection in Documentation/user/tweaks.itely
 #. @node in Documentation/es/user/tweaks.itely
 #. @subsection in Documentation/es/user/tweaks.itely
+#. @node in Documentation/de/user/tweaks.itely
+#. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
 msgid "Outside-staff objects"
 msgstr "Objetos fuera del pentagrama"
 
 #. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @subheading in Documentation/es/user/tweaks.itely
 #. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "\\textLengthOn"
 msgstr "\\textLengthOn"
 
 #. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @subheading in Documentation/es/user/tweaks.itely
 #. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "Grob sizing"
 msgstr "Escalado de un «Grob»"
 
@@ -2602,6 +3165,8 @@ msgstr "Escalado de un «Grob»"
 #. @section in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @section in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @section in Documentation/ja/user/tweaks.itely
 msgid "Collisions of objects"
 msgstr "Colisiones de objetos"
 
@@ -2613,6 +3178,8 @@ msgstr "Colisiones de objetos"
 #. @subsection in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
 msgid "Moving objects"
 msgstr "Mover objetos"
 
@@ -2624,54 +3191,72 @@ msgstr "Mover objetos"
 #. @subsection in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
 msgid "Fixing overlapping notation"
 msgstr "Arreglar notación con superposiciones"
 
 #. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @subheading in Documentation/es/user/tweaks.itely
 #. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "padding property"
 msgstr "la propiedad padding (relleno)"
 
 #. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @subheading in Documentation/es/user/tweaks.itely
 #. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "left-padding and right-padding"
 msgstr "left-padding y right-padding (relleno por la izquierda y por la derecha)"
 
 #. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @subheading in Documentation/es/user/tweaks.itely
 #. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "staff-padding property"
 msgstr "la propiedad staff-padding (relleno de pentagrama)"
 
 #. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @subheading in Documentation/es/user/tweaks.itely
 #. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "self-alignment-X property"
 msgstr "la propiedad self-alignment-X (auto-alineación en X)"
 
 #. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @subheading in Documentation/es/user/tweaks.itely
 #. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "staff-position property"
 msgstr "la propiedad staff-position (posición en el pentagrama)"
 
 #. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @subheading in Documentation/es/user/tweaks.itely
 #. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "extra-offset property"
 msgstr "la propiedad extra-offset (desplazamiento adicional)"
 
 #. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @subheading in Documentation/es/user/tweaks.itely
 #. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "positions property"
 msgstr "la propiedad positions (posiciones)"
 
 #. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @subheading in Documentation/es/user/tweaks.itely
 #. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "force-hshift property"
 msgstr "la propiedad force-hshift (forzar desplazamiento horizontal)"
 
@@ -2683,6 +3268,8 @@ msgstr "la propiedad force-hshift (forzar desplazamiento horizontal)"
 #. @subsection in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
 msgid "Real music example"
 msgstr "Ejemplos reales de música"
 
@@ -2694,6 +3281,8 @@ msgstr "Ejemplos reales de música"
 #. @section in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @section in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @section in Documentation/ja/user/tweaks.itely
 msgid "Further tweaking"
 msgstr "Trucajes adicionales"
 
@@ -2705,18 +3294,24 @@ msgstr "Trucajes adicionales"
 #. @subsection in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
 msgid "Other uses for tweaks"
 msgstr "Otras aplicaciones de los trucos"
 
 #. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @subheading in Documentation/es/user/tweaks.itely
 #. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "Tying notes across voices"
 msgstr "Ligar notas entre voces distintas"
 
 #. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @subheading in Documentation/es/user/tweaks.itely
 #. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "Simulating a fermata in MIDI"
 msgstr "Simulación de un calderón en el MIDI"
 
@@ -2728,6 +3323,8 @@ msgstr "Simulación de un calderón en el MIDI"
 #. @subsection in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
 msgid "Using variables for tweaks"
 msgstr "Uso de variables para los trucos"
 
@@ -2739,6 +3336,8 @@ msgstr "Uso de variables para los trucos"
 #. @subsection in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
 msgid "Other sources of information"
 msgstr "Otras fuentes de información"
 
@@ -2750,6 +3349,8 @@ msgstr "Otras fuentes de información"
 #. @subsection in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
 msgid "Avoiding tweaks with slower processing"
 msgstr "Evitar los trucos con un proceso ralentizado"
 
@@ -2761,41 +3362,43 @@ msgstr "Evitar los trucos con un proceso ralentizado"
 #. @subsection in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
 msgid "Advanced tweaks with Scheme"
 msgstr "Trucos avanzados con Scheme"
 
-#. Documentation/user/working.itely:201 (variable)
+#. Documentation/user/working.itely:220 (variable)
 msgid "hornNotes"
 msgstr "notasTrompa"
 
-#. Documentation/user/working.itely:212 (variable)
+#. Documentation/user/working.itely:231 (variable)
 msgid "fragmentA"
 msgstr "fragmentoA"
 
-#. Documentation/user/working.itely:213 (variable)
+#. Documentation/user/working.itely:232 (variable)
 msgid "fragmentB"
 msgstr "fragmentoB"
 
-#. Documentation/user/working.itely:226 (variable)
+#. Documentation/user/working.itely:245 (variable)
 msgid "dolce"
 msgstr "dolce"
 
-#. Documentation/user/working.itely:227 (variable)
-#. Documentation/user/working.itely:276 (variable)
+#. Documentation/user/working.itely:246 (variable)
+#. Documentation/user/working.itely:295 (variable)
 #. Documentation/user/scheme-tutorial.itely:235 (variable)
 #. Documentation/user/programming-interface.itely:101 (variable)
 msgid "padText"
 msgstr "textoRelleno"
 
-#. Documentation/user/working.itely:228 (variable)
+#. Documentation/user/working.itely:247 (variable)
 msgid "fthenp"
 msgstr "f_luego_p"
 
-#. Documentation/user/working.itely:313 (variable)
+#. Documentation/user/working.itely:332 (variable)
 msgid "mpdolce"
 msgstr "mpdolce"
 
-#. Documentation/user/working.itely:315 (variable)
+#. Documentation/user/working.itely:334 (variable)
 #. Documentation/user/scheme-tutorial.itely:256 (variable)
 #. Documentation/user/programming-interface.itely:135 (variable)
 msgid "tempoMark"
@@ -2809,6 +3412,8 @@ msgstr "marcaDeTempo"
 #. @chapter in Documentation/es/user/working.itely
 #. @node in Documentation/de/user/working.itely
 #. @chapter in Documentation/de/user/working.itely
+#. @node in Documentation/ja/user/working.itely
+#. @chapter in Documentation/ja/user/working.itely
 msgid "Working on LilyPond projects"
 msgstr "Trabajar en proyectos de LilyPond"
 
@@ -2818,6 +3423,8 @@ msgstr "Trabajar en proyectos de LilyPond"
 #. @section in Documentation/fr/user/working.itely
 #. @node in Documentation/de/user/working.itely
 #. @section in Documentation/de/user/working.itely
+#. @node in Documentation/ja/user/working.itely
+#. @section in Documentation/ja/user/working.itely
 msgid "Suggestions for writing LilyPond input files"
 msgstr "Sugerencias para escribir archivos de entrada de LilyPond"
 
@@ -2829,6 +3436,8 @@ msgstr "Sugerencias para escribir archivos de entrada de LilyPond"
 #. @subsection in Documentation/es/user/working.itely
 #. @node in Documentation/de/user/working.itely
 #. @subsection in Documentation/de/user/working.itely
+#. @node in Documentation/ja/user/working.itely
+#. @subsection in Documentation/ja/user/working.itely
 msgid "General suggestions"
 msgstr "Sugerencias de tipo general"
 
@@ -2840,6 +3449,8 @@ msgstr "Sugerencias de tipo general"
 #. @subsection in Documentation/es/user/working.itely
 #. @node in Documentation/de/user/working.itely
 #. @subsection in Documentation/de/user/working.itely
+#. @node in Documentation/ja/user/working.itely
+#. @subsection in Documentation/ja/user/working.itely
 msgid "Typesetting existing music"
 msgstr "Tipografiar música existente"
 
@@ -2851,6 +3462,8 @@ msgstr "Tipografiar música existente"
 #. @subsection in Documentation/es/user/working.itely
 #. @node in Documentation/de/user/working.itely
 #. @subsection in Documentation/de/user/working.itely
+#. @node in Documentation/ja/user/working.itely
+#. @subsection in Documentation/ja/user/working.itely
 msgid "Large projects"
 msgstr "Proyectos grandes"
 
@@ -2862,6 +3475,8 @@ msgstr "Proyectos grandes"
 #. @subsection in Documentation/es/user/working.itely
 #. @node in Documentation/de/user/working.itely
 #. @subsection in Documentation/de/user/working.itely
+#. @node in Documentation/ja/user/working.itely
+#. @subsection in Documentation/ja/user/working.itely
 msgid "Saving typing with variables and functions"
 msgstr "Ahorrar tecleo mediante variables y funciones"
 
@@ -2873,6 +3488,8 @@ msgstr "Ahorrar tecleo mediante variables y funciones"
 #. @subsection in Documentation/es/user/working.itely
 #. @node in Documentation/de/user/working.itely
 #. @subsection in Documentation/de/user/working.itely
+#. @node in Documentation/ja/user/working.itely
+#. @subsection in Documentation/ja/user/working.itely
 msgid "Style sheets"
 msgstr "Hojas de estilo"
 
@@ -2884,11 +3501,17 @@ msgstr "Hojas de estilo"
 #. @section in Documentation/es/user/working.itely
 #. @node in Documentation/de/user/working.itely
 #. @section in Documentation/de/user/working.itely
+#. @node in Documentation/ja/user/working.itely
+#. @section in Documentation/ja/user/working.itely
 msgid "When things don't work"
 msgstr "Cuando las cosas no van"
 
 #. @node in Documentation/user/working.itely
 #. @subsection in Documentation/user/working.itely
+#. @node in Documentation/fr/user/working.itely
+#. @subsection in Documentation/fr/user/working.itely
+#. @node in Documentation/ja/user/working.itely
+#. @subsection in Documentation/ja/user/working.itely
 msgid "Updating old input files"
 msgstr "Actualizar archivos de entrada antiguos"
 
@@ -2900,6 +3523,8 @@ msgstr "Actualizar archivos de entrada antiguos"
 #. @subsection in Documentation/es/user/working.itely
 #. @node in Documentation/de/user/working.itely
 #. @subsection in Documentation/de/user/working.itely
+#. @node in Documentation/ja/user/working.itely
+#. @subsection in Documentation/ja/user/working.itely
 msgid "Troubleshooting (taking it all apart)"
 msgstr "Resolución de problemas (tomar cada parte por separado)"
 
@@ -2911,6 +3536,8 @@ msgstr "Resolución de problemas (tomar cada parte por separado)"
 #. @subsection in Documentation/es/user/working.itely
 #. @node in Documentation/de/user/working.itely
 #. @subsection in Documentation/de/user/working.itely
+#. @node in Documentation/ja/user/working.itely
+#. @subsection in Documentation/ja/user/working.itely
 msgid "Minimal examples"
 msgstr "Ejemplos mínimos"
 
@@ -2922,6 +3549,8 @@ msgstr "Ejemplos mínimos"
 #. @section in Documentation/es/user/working.itely
 #. @node in Documentation/de/user/working.itely
 #. @section in Documentation/de/user/working.itely
+#. @node in Documentation/ja/user/working.itely
+#. @section in Documentation/ja/user/working.itely
 msgid "Scores and parts"
 msgstr "Partituras y particellas"
 
@@ -2933,6 +3562,8 @@ msgstr "Partituras y particellas"
 #. @appendix in Documentation/es/user/templates.itely
 #. @node in Documentation/de/user/templates.itely
 #. @appendix in Documentation/de/user/templates.itely
+#. @node in Documentation/ja/user/templates.itely
+#. @appendix in Documentation/ja/user/templates.itely
 msgid "Templates"
 msgstr "Plantillas"
 
@@ -2944,6 +3575,8 @@ msgstr "Plantillas"
 #. @appendixsec in Documentation/es/user/templates.itely
 #. @node in Documentation/de/user/templates.itely
 #. @appendixsec in Documentation/de/user/templates.itely
+#. @node in Documentation/ja/user/templates.itely
+#. @appendixsec in Documentation/ja/user/templates.itely
 msgid "Single staff"
 msgstr "Pentagrama único"
 
@@ -2951,6 +3584,7 @@ msgstr "Pentagrama único"
 #. @appendixsubsec in Documentation/fr/user/templates.itely
 #. @appendixsubsec in Documentation/es/user/templates.itely
 #. @appendixsubsec in Documentation/de/user/templates.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
 msgid "Notes only"
 msgstr "Sólo notas"
 
@@ -2958,6 +3592,7 @@ msgstr "Sólo notas"
 #. @appendixsubsec in Documentation/fr/user/templates.itely
 #. @appendixsubsec in Documentation/es/user/templates.itely
 #. @appendixsubsec in Documentation/de/user/templates.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
 msgid "Notes and lyrics"
 msgstr "Notas y letra"
 
@@ -2965,6 +3600,7 @@ msgstr "Notas y letra"
 #. @appendixsubsec in Documentation/fr/user/templates.itely
 #. @appendixsubsec in Documentation/es/user/templates.itely
 #. @appendixsubsec in Documentation/de/user/templates.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
 msgid "Notes and chords"
 msgstr "Notas y acordes"
 
@@ -2972,6 +3608,7 @@ msgstr "Notas y acordes"
 #. @appendixsubsec in Documentation/fr/user/templates.itely
 #. @appendixsubsec in Documentation/es/user/templates.itely
 #. @appendixsubsec in Documentation/de/user/templates.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
 msgid "Notes, lyrics, and chords."
 msgstr "Notas, letra y acordes."
 
@@ -2983,6 +3620,8 @@ msgstr "Notas, letra y acordes."
 #. @appendixsec in Documentation/es/user/templates.itely
 #. @node in Documentation/de/user/templates.itely
 #. @appendixsec in Documentation/de/user/templates.itely
+#. @node in Documentation/ja/user/templates.itely
+#. @appendixsec in Documentation/ja/user/templates.itely
 msgid "Piano templates"
 msgstr "Plantillas de piano"
 
@@ -2990,6 +3629,7 @@ msgstr "Plantillas de piano"
 #. @appendixsubsec in Documentation/fr/user/templates.itely
 #. @appendixsubsec in Documentation/es/user/templates.itely
 #. @appendixsubsec in Documentation/de/user/templates.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
 msgid "Solo piano"
 msgstr "Piano solo"
 
@@ -2997,6 +3637,7 @@ msgstr "Piano solo"
 #. @appendixsubsec in Documentation/fr/user/templates.itely
 #. @appendixsubsec in Documentation/es/user/templates.itely
 #. @appendixsubsec in Documentation/de/user/templates.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
 msgid "Piano and melody with lyrics"
 msgstr "Piano y melodía con letra"
 
@@ -3004,6 +3645,7 @@ msgstr "Piano y melodía con letra"
 #. @appendixsubsec in Documentation/fr/user/templates.itely
 #. @appendixsubsec in Documentation/es/user/templates.itely
 #. @appendixsubsec in Documentation/de/user/templates.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
 msgid "Piano centered lyrics"
 msgstr "Piano con letra centrada"
 
@@ -3011,6 +3653,7 @@ msgstr "Piano con letra centrada"
 #. @appendixsubsec in Documentation/fr/user/templates.itely
 #. @appendixsubsec in Documentation/es/user/templates.itely
 #. @appendixsubsec in Documentation/de/user/templates.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
 msgid "Piano centered dynamics"
 msgstr "Piano con dinámicas centradas"
 
@@ -3026,6 +3669,9 @@ msgstr "Piano con dinámicas centradas"
 #. @node in Documentation/de/user/templates.itely
 #. @appendixsec in Documentation/de/user/templates.itely
 #. @appendixsubsec in Documentation/de/user/templates.itely
+#. @node in Documentation/ja/user/templates.itely
+#. @appendixsec in Documentation/ja/user/templates.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
 msgid "String quartet"
 msgstr "Cuarteto de cuerda"
 
@@ -3033,6 +3679,7 @@ msgstr "Cuarteto de cuerda"
 #. @appendixsubsec in Documentation/fr/user/templates.itely
 #. @appendixsubsec in Documentation/es/user/templates.itely
 #. @appendixsubsec in Documentation/de/user/templates.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
 msgid "String quartet parts"
 msgstr "Particellas de cuarteto de cuerda"
 
@@ -3044,6 +3691,8 @@ msgstr "Particellas de cuarteto de cuerda"
 #. @appendixsec in Documentation/es/user/templates.itely
 #. @node in Documentation/de/user/templates.itely
 #. @appendixsec in Documentation/de/user/templates.itely
+#. @node in Documentation/ja/user/templates.itely
+#. @appendixsec in Documentation/ja/user/templates.itely
 msgid "Vocal ensembles"
 msgstr "Conjuntos vocales"
 
@@ -3051,6 +3700,7 @@ msgstr "Conjuntos vocales"
 #. @appendixsubsec in Documentation/fr/user/templates.itely
 #. @appendixsubsec in Documentation/es/user/templates.itely
 #. @appendixsubsec in Documentation/de/user/templates.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
 msgid "SATB vocal score"
 msgstr "Partitura vocal SATB"
 
@@ -3058,6 +3708,7 @@ msgstr "Partitura vocal SATB"
 #. @appendixsubsec in Documentation/fr/user/templates.itely
 #. @appendixsubsec in Documentation/es/user/templates.itely
 #. @appendixsubsec in Documentation/de/user/templates.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
 msgid "SATB vocal score and automatic piano reduction"
 msgstr "Partitura vocal SATB y reducción para piano automática"
 
@@ -3065,6 +3716,7 @@ msgstr "Partitura vocal SATB y reducción para piano automática"
 #. @appendixsubsec in Documentation/fr/user/templates.itely
 #. @appendixsubsec in Documentation/es/user/templates.itely
 #. @appendixsubsec in Documentation/de/user/templates.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
 msgid "SATB with aligned contexts"
 msgstr "SATB con contextos alineados"
 
@@ -3076,6 +3728,8 @@ msgstr "SATB con contextos alineados"
 #. @appendixsec in Documentation/es/user/templates.itely
 #. @node in Documentation/de/user/templates.itely
 #. @appendixsec in Documentation/de/user/templates.itely
+#. @node in Documentation/ja/user/templates.itely
+#. @appendixsec in Documentation/ja/user/templates.itely
 msgid "Ancient notation templates"
 msgstr "Plantillas para notación antigua"
 
@@ -3083,6 +3737,7 @@ msgstr "Plantillas para notación antigua"
 #. @appendixsubsec in Documentation/fr/user/templates.itely
 #. @appendixsubsec in Documentation/es/user/templates.itely
 #. @appendixsubsec in Documentation/de/user/templates.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
 msgid "Transcription of mensural music"
 msgstr "Transcripción de música mensural"
 
@@ -3090,6 +3745,7 @@ msgstr "Transcripción de música mensural"
 #. @appendixsubsec in Documentation/fr/user/templates.itely
 #. @appendixsubsec in Documentation/es/user/templates.itely
 #. @appendixsubsec in Documentation/de/user/templates.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
 msgid "Gregorian transcription template"
 msgstr "Plantilla para transcripción de canto gregoriano"
 
@@ -3101,6 +3757,8 @@ msgstr "Plantilla para transcripción de canto gregoriano"
 #. @appendixsec in Documentation/es/user/templates.itely
 #. @node in Documentation/de/user/templates.itely
 #. @appendixsec in Documentation/de/user/templates.itely
+#. @node in Documentation/ja/user/templates.itely
+#. @appendixsec in Documentation/ja/user/templates.itely
 msgid "Jazz combo"
 msgstr "Combo de jazz"
 
@@ -3110,6 +3768,8 @@ msgstr "Combo de jazz"
 #. @appendixsec in Documentation/fr/user/templates.itely
 #. @node in Documentation/es/user/templates.itely
 #. @appendixsec in Documentation/es/user/templates.itely
+#. @node in Documentation/ja/user/templates.itely
+#. @appendixsec in Documentation/ja/user/templates.itely
 msgid "lilypond-book templates"
 msgstr "Plantillas de lilypond-book"
 
@@ -3121,6 +3781,8 @@ msgstr "Plantillas de lilypond-book"
 #. @node in Documentation/es/user/lilypond-book.itely
 #. @appendixsubsec in Documentation/de/user/templates.itely
 #. @node in Documentation/de/user/lilypond-book.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
+#. @node in Documentation/ja/user/lilypond-book.itely
 msgid "LaTeX"
 msgstr "LaTeX"
 
@@ -3140,6 +3802,10 @@ msgstr "LaTeX"
 #. @node in Documentation/de/user/lilypond-book.itely
 #. @subsection in Documentation/de/user/lilypond-book.itely
 #. @subsubheading in Documentation/de/user/lilypond-book.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
+#. @node in Documentation/ja/user/lilypond-book.itely
+#. @subsection in Documentation/ja/user/lilypond-book.itely
+#. @subsubheading in Documentation/ja/user/lilypond-book.itely
 msgid "Texinfo"
 msgstr "Texinfo"
 
@@ -3147,6 +3813,7 @@ msgstr "Texinfo"
 #. @appendixsubsec in Documentation/fr/user/templates.itely
 #. @appendixsubsec in Documentation/es/user/templates.itely
 #. @appendixsubsec in Documentation/de/user/templates.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
 msgid "xelatex"
 msgstr "xelatex"
 
@@ -3162,6 +3829,8 @@ msgstr "patron"
 #. @appendix in Documentation/es/user/scheme-tutorial.itely
 #. @node in Documentation/de/user/scheme-tutorial.itely
 #. @appendix in Documentation/de/user/scheme-tutorial.itely
+#. @node in Documentation/ja/user/scheme-tutorial.itely
+#. @appendix in Documentation/ja/user/scheme-tutorial.itely
 msgid "Scheme tutorial"
 msgstr "Tutorial de Scheme"
 
@@ -3173,6 +3842,8 @@ msgstr "Tutorial de Scheme"
 #. @appendixsec in Documentation/es/user/scheme-tutorial.itely
 #. @node in Documentation/de/user/scheme-tutorial.itely
 #. @appendixsec in Documentation/de/user/scheme-tutorial.itely
+#. @node in Documentation/ja/user/scheme-tutorial.itely
+#. @appendixsec in Documentation/ja/user/scheme-tutorial.itely
 msgid "Tweaking with Scheme"
 msgstr "Trucos con Scheme"
 
@@ -3201,6 +3872,8 @@ msgstr "GNU LilyPond: Manual de utilización del programa"
 #. @chapter in Documentation/es/user/install.itely
 #. @node in Documentation/de/user/install.itely
 #. @chapter in Documentation/de/user/install.itely
+#. @node in Documentation/ja/user/install.itely
+#. @chapter in Documentation/ja/user/install.itely
 msgid "Install"
 msgstr "Instalación"
 
@@ -3212,6 +3885,8 @@ msgstr "Instalación"
 #. @section in Documentation/es/user/install.itely
 #. @node in Documentation/de/user/install.itely
 #. @section in Documentation/de/user/install.itely
+#. @node in Documentation/ja/user/install.itely
+#. @section in Documentation/ja/user/install.itely
 msgid "Precompiled binaries"
 msgstr "Archivos binarios pre-compilados"
 
@@ -3219,6 +3894,7 @@ msgstr "Archivos binarios pre-compilados"
 #. @unnumberedsubsec in Documentation/fr/user/install.itely
 #. @unnumberedsubsec in Documentation/es/user/install.itely
 #. @unnumberedsubsec in Documentation/de/user/install.itely
+#. @unnumberedsubsec in Documentation/ja/user/install.itely
 msgid "Downloading"
 msgstr "Descarga"
 
@@ -3230,6 +3906,8 @@ msgstr "Descarga"
 #. @section in Documentation/es/user/install.itely
 #. @node in Documentation/de/user/install.itely
 #. @section in Documentation/de/user/install.itely
+#. @node in Documentation/ja/user/install.itely
+#. @section in Documentation/ja/user/install.itely
 msgid "Compiling from source"
 msgstr "Compilar a partir del código fuente"
 
@@ -3325,6 +4003,8 @@ msgstr "Tipografías internacionales"
 #. @chapter in Documentation/es/user/setup.itely
 #. @node in Documentation/de/user/setup.itely
 #. @chapter in Documentation/de/user/setup.itely
+#. @node in Documentation/ja/user/setup.itely
+#. @chapter in Documentation/ja/user/setup.itely
 msgid "Setup"
 msgstr "Configuración"
 
@@ -3336,23 +4016,37 @@ msgstr "Configuración"
 #. @section in Documentation/es/user/setup.itely
 #. @node in Documentation/de/user/setup.itely
 #. @section in Documentation/de/user/setup.itely
+#. @node in Documentation/ja/user/setup.itely
+#. @section in Documentation/ja/user/setup.itely
 msgid "Setup for specific Operating Systems"
 msgstr "Ajustes para sistemas operativos específicos"
 
 #. @node in Documentation/user/setup.itely
 #. @subsection in Documentation/user/setup.itely
+#. @node in Documentation/fr/user/setup.itely
+#. @subsection in Documentation/fr/user/setup.itely
 #. @node in Documentation/es/user/setup.itely
 #. @subsection in Documentation/es/user/setup.itely
+#. @node in Documentation/de/user/setup.itely
+#. @subsection in Documentation/de/user/setup.itely
+#. @node in Documentation/ja/user/setup.itely
+#. @subsection in Documentation/ja/user/setup.itely
 msgid "Setup for MacOS X"
 msgstr "Configuración para MacOS X"
 
 #. @subsubheading in Documentation/user/setup.itely
+#. @subsubheading in Documentation/fr/user/setup.itely
 #. @subsubheading in Documentation/es/user/setup.itely
+#. @subsubheading in Documentation/de/user/setup.itely
+#. @subsubheading in Documentation/ja/user/setup.itely
 msgid "Using Python scripts on MacOS 10.3 or 10.4"
 msgstr "Uso de guiones Python en MacOS 10.3 o 10.4"
 
 #. @subsubheading in Documentation/user/setup.itely
+#. @subsubheading in Documentation/fr/user/setup.itely
 #. @subsubheading in Documentation/es/user/setup.itely
+#. @subsubheading in Documentation/de/user/setup.itely
+#. @subsubheading in Documentation/ja/user/setup.itely
 msgid "MacOS X on the command line"
 msgstr "MacOS X sobre línea de órdenes"
 
@@ -3364,6 +4058,8 @@ msgstr "MacOS X sobre línea de órdenes"
 #. @section in Documentation/es/user/setup.itely
 #. @node in Documentation/de/user/setup.itely
 #. @section in Documentation/de/user/setup.itely
+#. @node in Documentation/ja/user/setup.itely
+#. @section in Documentation/ja/user/setup.itely
 msgid "Text editor support"
 msgstr "Apoyo respecto de los editores de texto"
 
@@ -3375,6 +4071,8 @@ msgstr "Apoyo respecto de los editores de texto"
 #. @subsection in Documentation/es/user/setup.itely
 #. @node in Documentation/de/user/setup.itely
 #. @subsection in Documentation/de/user/setup.itely
+#. @node in Documentation/ja/user/setup.itely
+#. @subsection in Documentation/ja/user/setup.itely
 msgid "Emacs mode"
 msgstr "Modo de Emacs"
 
@@ -3386,6 +4084,8 @@ msgstr "Modo de Emacs"
 #. @subsection in Documentation/es/user/setup.itely
 #. @node in Documentation/de/user/setup.itely
 #. @subsection in Documentation/de/user/setup.itely
+#. @node in Documentation/ja/user/setup.itely
+#. @subsection in Documentation/ja/user/setup.itely
 msgid "Vim mode"
 msgstr "Modo de Vim"
 
@@ -3397,6 +4097,8 @@ msgstr "Modo de Vim"
 #. @subsection in Documentation/es/user/setup.itely
 #. @node in Documentation/de/user/setup.itely
 #. @subsection in Documentation/de/user/setup.itely
+#. @node in Documentation/ja/user/setup.itely
+#. @subsection in Documentation/ja/user/setup.itely
 msgid "jEdit"
 msgstr "jEdit"
 
@@ -3408,6 +4110,8 @@ msgstr "jEdit"
 #. @subsection in Documentation/es/user/setup.itely
 #. @node in Documentation/de/user/setup.itely
 #. @subsection in Documentation/de/user/setup.itely
+#. @node in Documentation/ja/user/setup.itely
+#. @subsection in Documentation/ja/user/setup.itely
 msgid "TexShop"
 msgstr "TexShop"
 
@@ -3419,6 +4123,8 @@ msgstr "TexShop"
 #. @subsection in Documentation/es/user/setup.itely
 #. @node in Documentation/de/user/setup.itely
 #. @subsection in Documentation/de/user/setup.itely
+#. @node in Documentation/ja/user/setup.itely
+#. @subsection in Documentation/ja/user/setup.itely
 msgid "TextMate"
 msgstr "TextMate"
 
@@ -3430,6 +4136,8 @@ msgstr "TextMate"
 #. @subsection in Documentation/es/user/setup.itely
 #. @node in Documentation/de/user/setup.itely
 #. @subsection in Documentation/de/user/setup.itely
+#. @node in Documentation/ja/user/setup.itely
+#. @subsection in Documentation/ja/user/setup.itely
 msgid "LilyKDE"
 msgstr "LilyKDE"
 
@@ -3441,6 +4149,8 @@ msgstr "LilyKDE"
 #. @section in Documentation/es/user/setup.itely
 #. @node in Documentation/de/user/setup.itely
 #. @section in Documentation/de/user/setup.itely
+#. @node in Documentation/ja/user/setup.itely
+#. @section in Documentation/ja/user/setup.itely
 msgid "Point and click"
 msgstr "Apuntar y pulsar"
 
@@ -3452,6 +4162,8 @@ msgstr "Apuntar y pulsar"
 #. @chapter in Documentation/es/user/running.itely
 #. @node in Documentation/de/user/running.itely
 #. @chapter in Documentation/de/user/running.itely
+#. @node in Documentation/ja/user/running.itely
+#. @chapter in Documentation/ja/user/running.itely
 msgid "Running LilyPond"
 msgstr "Ejecutar LilyPond"
 
@@ -3463,6 +4175,8 @@ msgstr "Ejecutar LilyPond"
 #. @section in Documentation/es/user/running.itely
 #. @node in Documentation/de/user/running.itely
 #. @section in Documentation/de/user/running.itely
+#. @node in Documentation/ja/user/running.itely
+#. @section in Documentation/ja/user/running.itely
 msgid "Normal usage"
 msgstr "Utilización normal"
 
@@ -3474,6 +4188,8 @@ msgstr "Utilización normal"
 #. @section in Documentation/es/user/running.itely
 #. @node in Documentation/de/user/running.itely
 #. @section in Documentation/de/user/running.itely
+#. @node in Documentation/ja/user/running.itely
+#. @section in Documentation/ja/user/running.itely
 msgid "Command-line usage"
 msgstr "Utilización desde la línea de órdenes"
 
@@ -3482,22 +4198,28 @@ msgstr "Utilización desde la línea de órdenes"
 #. @subsection in Documentation/fr/user/running.itely
 #. @node in Documentation/es/user/running.itely
 #. @node in Documentation/de/user/running.itely
-#. @subsection in Documentation/de/user/running.itely
+#. @node in Documentation/ja/user/running.itely
 msgid "Invoking lilypond"
 msgstr "Invocar a LilyPond"
 
 #. @subsection in Documentation/user/running.itely
 #. @subsection in Documentation/es/user/running.itely
+#. @subsection in Documentation/de/user/running.itely
+#. @subsection in Documentation/ja/user/running.itely
 msgid "Invoking @command{lilypond}"
 msgstr "Invocar @command{lilypond}"
 
 #. @node in Documentation/user/running.itely
 #. @node in Documentation/es/user/running.itely
+#. @node in Documentation/de/user/running.itely
+#. @node in Documentation/ja/user/running.itely
 msgid "Command line options for lilypond"
 msgstr "Opciones de la línea de órdenes para lilypond"
 
 #. @subsection in Documentation/user/running.itely
 #. @subsection in Documentation/es/user/running.itely
+#. @subsection in Documentation/de/user/running.itely
+#. @subsection in Documentation/ja/user/running.itely
 msgid "Command line options for @command{lilypond}"
 msgstr "Opciones de la línea de órdenes para @command{lilypond}"
 
@@ -3509,6 +4231,8 @@ msgstr "Opciones de la línea de órdenes para @command{lilypond}"
 #. @subsection in Documentation/es/user/running.itely
 #. @node in Documentation/de/user/running.itely
 #. @subsection in Documentation/de/user/running.itely
+#. @node in Documentation/ja/user/running.itely
+#. @subsection in Documentation/ja/user/running.itely
 msgid "Environment variables"
 msgstr "Variables de entorno"
 
@@ -3520,6 +4244,8 @@ msgstr "Variables de entorno"
 #. @section in Documentation/es/user/running.itely
 #. @node in Documentation/de/user/running.itely
 #. @section in Documentation/de/user/running.itely
+#. @node in Documentation/ja/user/running.itely
+#. @section in Documentation/ja/user/running.itely
 msgid "Error messages"
 msgstr "Mensajes de error"
 
@@ -3527,21 +4253,28 @@ msgstr "Mensajes de error"
 #. @node in Documentation/fr/user/running.itely
 #. @node in Documentation/es/user/running.itely
 #. @node in Documentation/de/user/running.itely
+#. @node in Documentation/ja/user/running.itely
 msgid "Updating files with convert-ly"
 msgstr "Actualizar ficheros con convert-ly"
 
 #. @section in Documentation/user/running.itely
 #. @section in Documentation/es/user/running.itely
+#. @section in Documentation/de/user/running.itely
+#. @section in Documentation/ja/user/running.itely
 msgid "Updating files with @command{convert-ly}"
 msgstr "Actualizar ficheros con @command{convert-ly}"
 
 #. @node in Documentation/user/running.itely
 #. @node in Documentation/es/user/running.itely
+#. @node in Documentation/de/user/running.itely
+#. @node in Documentation/ja/user/running.itely
 msgid "Command line options for convert-ly"
 msgstr "Opciones de la línea de órdenes para convert-ly"
 
 #. @subsection in Documentation/user/running.itely
 #. @subsection in Documentation/es/user/running.itely
+#. @subsection in Documentation/de/user/running.itely
+#. @subsection in Documentation/ja/user/running.itely
 msgid "Command line options for @command{convert-ly}"
 msgstr "Opciones de la línea de órdenes para @command{convert-ly}"
 
@@ -3549,6 +4282,7 @@ msgstr "Opciones de la línea de órdenes para @command{convert-ly}"
 #. @node in Documentation/fr/user/running.itely
 #. @node in Documentation/es/user/running.itely
 #. @node in Documentation/de/user/running.itely
+#. @node in Documentation/ja/user/running.itely
 msgid "Problems with convert-ly"
 msgstr "Problemas con convert-ly"
 
@@ -3556,6 +4290,7 @@ msgstr "Problemas con convert-ly"
 #. @subsection in Documentation/fr/user/running.itely
 #. @subsection in Documentation/es/user/running.itely
 #. @subsection in Documentation/de/user/running.itely
+#. @subsection in Documentation/ja/user/running.itely
 msgid "Problems with @code{convert-ly}"
 msgstr "Problemas con @code{convert-ly}"
 
@@ -3567,6 +4302,8 @@ msgstr "Problemas con @code{convert-ly}"
 #. @section in Documentation/es/user/running.itely
 #. @node in Documentation/de/user/running.itely
 #. @section in Documentation/de/user/running.itely
+#. @node in Documentation/ja/user/running.itely
+#. @section in Documentation/ja/user/running.itely
 msgid "Reporting bugs"
 msgstr "Informar de fallos"
 
@@ -3574,6 +4311,7 @@ msgstr "Informar de fallos"
 #. @node in Documentation/fr/user/lilypond-book.itely
 #. @node in Documentation/es/user/lilypond-book.itely
 #. @node in Documentation/de/user/lilypond-book.itely
+#. @node in Documentation/ja/user/lilypond-book.itely
 msgid "LilyPond-book"
 msgstr "LilyPond-book"
 
@@ -3581,6 +4319,7 @@ msgstr "LilyPond-book"
 #. @chapter in Documentation/fr/user/lilypond-book.itely
 #. @chapter in Documentation/es/user/lilypond-book.itely
 #. @chapter in Documentation/de/user/lilypond-book.itely
+#. @chapter in Documentation/ja/user/lilypond-book.itely
 msgid "@command{lilypond-book}: Integrating text and music"
 msgstr "@command{lilypond-book}: integrar texto y música"
 
@@ -3592,6 +4331,8 @@ msgstr "@command{lilypond-book}: integrar texto y música"
 #. @section in Documentation/es/user/lilypond-book.itely
 #. @node in Documentation/de/user/lilypond-book.itely
 #. @section in Documentation/de/user/lilypond-book.itely
+#. @node in Documentation/ja/user/lilypond-book.itely
+#. @section in Documentation/ja/user/lilypond-book.itely
 msgid "An example of a musicological document"
 msgstr "Un ejemplo de documento musicológico"
 
@@ -3599,6 +4340,7 @@ msgstr "Un ejemplo de documento musicológico"
 #. @subheading in Documentation/fr/user/lilypond-book.itely
 #. @subheading in Documentation/es/user/lilypond-book.itely
 #. @subheading in Documentation/de/user/lilypond-book.itely
+#. @subheading in Documentation/ja/user/lilypond-book.itely
 msgid "Input"
 msgstr "Entrada"
 
@@ -3606,6 +4348,7 @@ msgstr "Entrada"
 #. @subheading in Documentation/fr/user/lilypond-book.itely
 #. @subheading in Documentation/es/user/lilypond-book.itely
 #. @subheading in Documentation/de/user/lilypond-book.itely
+#. @subheading in Documentation/ja/user/lilypond-book.itely
 msgid "Processing"
 msgstr "Procesado"
 
@@ -3613,6 +4356,7 @@ msgstr "Procesado"
 #. @subheading in Documentation/fr/user/lilypond-book.itely
 #. @subheading in Documentation/es/user/lilypond-book.itely
 #. @subheading in Documentation/de/user/lilypond-book.itely
+#. @subheading in Documentation/ja/user/lilypond-book.itely
 msgid "Output"
 msgstr "Salida"
 
@@ -3624,6 +4368,8 @@ msgstr "Salida"
 #. @section in Documentation/es/user/lilypond-book.itely
 #. @node in Documentation/de/user/lilypond-book.itely
 #. @section in Documentation/de/user/lilypond-book.itely
+#. @node in Documentation/ja/user/lilypond-book.itely
+#. @section in Documentation/ja/user/lilypond-book.itely
 msgid "Integrating music and text"
 msgstr "Integrar música y texto"
 
@@ -3635,6 +4381,8 @@ msgstr "Integrar música y texto"
 #. @subsubheading in Documentation/es/user/lilypond-book.itely
 #. @subsection in Documentation/de/user/lilypond-book.itely
 #. @subsubheading in Documentation/de/user/lilypond-book.itely
+#. @subsection in Documentation/ja/user/lilypond-book.itely
+#. @subsubheading in Documentation/ja/user/lilypond-book.itely
 msgid "@LaTeX{}"
 msgstr "@LaTeX{}"
 
@@ -3646,6 +4394,8 @@ msgstr "@LaTeX{}"
 #. @subsection in Documentation/es/user/lilypond-book.itely
 #. @node in Documentation/de/user/lilypond-book.itely
 #. @subsection in Documentation/de/user/lilypond-book.itely
+#. @node in Documentation/ja/user/lilypond-book.itely
+#. @subsection in Documentation/ja/user/lilypond-book.itely
 msgid "HTML"
 msgstr "HTML"
 
@@ -3657,6 +4407,8 @@ msgstr "HTML"
 #. @subsection in Documentation/es/user/lilypond-book.itely
 #. @node in Documentation/de/user/lilypond-book.itely
 #. @subsection in Documentation/de/user/lilypond-book.itely
+#. @node in Documentation/ja/user/lilypond-book.itely
+#. @subsection in Documentation/ja/user/lilypond-book.itely
 msgid "DocBook"
 msgstr "DocBook"
 
@@ -3664,6 +4416,7 @@ msgstr "DocBook"
 #. @subheading in Documentation/fr/user/lilypond-book.itely
 #. @subheading in Documentation/es/user/lilypond-book.itely
 #. @subheading in Documentation/de/user/lilypond-book.itely
+#. @subheading in Documentation/ja/user/lilypond-book.itely
 msgid "Common conventions"
 msgstr "Convenciones usuales"
 
@@ -3671,6 +4424,7 @@ msgstr "Convenciones usuales"
 #. @subheading in Documentation/fr/user/lilypond-book.itely
 #. @subheading in Documentation/es/user/lilypond-book.itely
 #. @subheading in Documentation/de/user/lilypond-book.itely
+#. @subheading in Documentation/ja/user/lilypond-book.itely
 msgid "Including a LilyPond file"
 msgstr "Incluir un archivo de LilyPond"
 
@@ -3678,6 +4432,7 @@ msgstr "Incluir un archivo de LilyPond"
 #. @subheading in Documentation/fr/user/lilypond-book.itely
 #. @subheading in Documentation/es/user/lilypond-book.itely
 #. @subheading in Documentation/de/user/lilypond-book.itely
+#. @subheading in Documentation/ja/user/lilypond-book.itely
 msgid "Including LilyPond code"
 msgstr "Incluir código de LilyPond"
 
@@ -3685,6 +4440,7 @@ msgstr "Incluir código de LilyPond"
 #. @subheading in Documentation/fr/user/lilypond-book.itely
 #. @subheading in Documentation/es/user/lilypond-book.itely
 #. @subheading in Documentation/de/user/lilypond-book.itely
+#. @subheading in Documentation/ja/user/lilypond-book.itely
 msgid "Processing the DocBook document"
 msgstr "Procesar el documento de DocBook"
 
@@ -3696,6 +4452,8 @@ msgstr "Procesar el documento de DocBook"
 #. @section in Documentation/es/user/lilypond-book.itely
 #. @node in Documentation/de/user/lilypond-book.itely
 #. @section in Documentation/de/user/lilypond-book.itely
+#. @node in Documentation/ja/user/lilypond-book.itely
+#. @section in Documentation/ja/user/lilypond-book.itely
 msgid "Music fragment options"
 msgstr "Opciones de fragmentos de música"
 
@@ -3703,6 +4461,7 @@ msgstr "Opciones de fragmentos de música"
 #. @node in Documentation/fr/user/lilypond-book.itely
 #. @node in Documentation/es/user/lilypond-book.itely
 #. @node in Documentation/de/user/lilypond-book.itely
+#. @node in Documentation/ja/user/lilypond-book.itely
 msgid "Invoking lilypond-book"
 msgstr "Invocar lilypond-book"
 
@@ -3710,6 +4469,7 @@ msgstr "Invocar lilypond-book"
 #. @section in Documentation/fr/user/lilypond-book.itely
 #. @section in Documentation/es/user/lilypond-book.itely
 #. @section in Documentation/de/user/lilypond-book.itely
+#. @section in Documentation/ja/user/lilypond-book.itely
 msgid "Invoking @command{lilypond-book}"
 msgstr "Invocar @command{lilypond-book}"
 
@@ -3717,6 +4477,7 @@ msgstr "Invocar @command{lilypond-book}"
 #. @subheading in Documentation/fr/user/lilypond-book.itely
 #. @subheading in Documentation/es/user/lilypond-book.itely
 #. @subheading in Documentation/de/user/lilypond-book.itely
+#. @subheading in Documentation/ja/user/lilypond-book.itely
 msgid "Format-specific instructions"
 msgstr "Instrucciones específicas de formato"
 
@@ -3725,9 +4486,8 @@ msgstr "Instrucciones específicas de formato"
 #. @subsection in Documentation/fr/user/running.itely
 #. @subheading in Documentation/fr/user/lilypond-book.itely
 #. @subheading in Documentation/es/user/lilypond-book.itely
-#. @node in Documentation/de/user/running.itely
-#. @subsection in Documentation/de/user/running.itely
 #. @subheading in Documentation/de/user/lilypond-book.itely
+#. @subheading in Documentation/ja/user/lilypond-book.itely
 msgid "Command line options"
 msgstr "Opciones de la línea de órdenes"
 
@@ -3739,6 +4499,8 @@ msgstr "Opciones de la línea de órdenes"
 #. @section in Documentation/es/user/lilypond-book.itely
 #. @node in Documentation/de/user/lilypond-book.itely
 #. @section in Documentation/de/user/lilypond-book.itely
+#. @node in Documentation/ja/user/lilypond-book.itely
+#. @section in Documentation/ja/user/lilypond-book.itely
 msgid "Filename extensions"
 msgstr "Extensiones de nombres de archivo"
 
@@ -3746,6 +4508,7 @@ msgstr "Extensiones de nombres de archivo"
 #. @node in Documentation/fr/user/lilypond-book.itely
 #. @node in Documentation/es/user/lilypond-book.itely
 #. @node in Documentation/de/user/lilypond-book.itely
+#. @node in Documentation/ja/user/lilypond-book.itely
 msgid "Alternate methods of mixing text and music"
 msgstr "Métodos alternativos para mezclar texto y música"
 
@@ -3753,6 +4516,7 @@ msgstr "Métodos alternativos para mezclar texto y música"
 #. @section in Documentation/fr/user/lilypond-book.itely
 #. @section in Documentation/es/user/lilypond-book.itely
 #. @section in Documentation/de/user/lilypond-book.itely
+#. @section in Documentation/ja/user/lilypond-book.itely
 msgid "Alternative methods of mixing text and music"
 msgstr "Otros métodos para mezclar texto y música"
 
@@ -3764,6 +4528,8 @@ msgstr "Otros métodos para mezclar texto y música"
 #. @unnumberedsubsec in Documentation/es/user/lilypond-book.itely
 #. @node in Documentation/de/user/lilypond-book.itely
 #. @subsection in Documentation/de/user/lilypond-book.itely
+#. @node in Documentation/ja/user/lilypond-book.itely
+#. @unnumberedsubsec in Documentation/ja/user/lilypond-book.itely
 msgid "Many quotes from a large score"
 msgstr "Muchas citas de una partitura extensa"
 
@@ -3775,6 +4541,8 @@ msgstr "Muchas citas de una partitura extensa"
 #. @unnumberedsubsec in Documentation/es/user/lilypond-book.itely
 #. @node in Documentation/de/user/lilypond-book.itely
 #. @subsection in Documentation/de/user/lilypond-book.itely
+#. @node in Documentation/ja/user/lilypond-book.itely
+#. @unnumberedsubsec in Documentation/ja/user/lilypond-book.itely
 msgid "Inserting LilyPond output into OpenOffice.org"
 msgstr "Insertar la salida de LilyPond dentro de OpenOffice.org"
 
@@ -3786,6 +4554,8 @@ msgstr "Insertar la salida de LilyPond dentro de OpenOffice.org"
 #. @unnumberedsubsec in Documentation/es/user/lilypond-book.itely
 #. @node in Documentation/de/user/lilypond-book.itely
 #. @subsection in Documentation/de/user/lilypond-book.itely
+#. @node in Documentation/ja/user/lilypond-book.itely
+#. @unnumberedsubsec in Documentation/ja/user/lilypond-book.itely
 msgid "Inserting LilyPond output into other programs"
 msgstr "Insertar la salida de LilyPond dentro de otros programas"
 
@@ -3797,6 +4567,8 @@ msgstr "Insertar la salida de LilyPond dentro de otros programas"
 #. @chapter in Documentation/es/user/converters.itely
 #. @node in Documentation/de/user/converters.itely
 #. @chapter in Documentation/de/user/converters.itely
+#. @node in Documentation/ja/user/converters.itely
+#. @chapter in Documentation/ja/user/converters.itely
 msgid "Converting from other formats"
 msgstr "Conversión desde otros formatos"
 
@@ -3804,6 +4576,7 @@ msgstr "Conversión desde otros formatos"
 #. @node in Documentation/fr/user/converters.itely
 #. @node in Documentation/es/user/converters.itely
 #. @node in Documentation/de/user/converters.itely
+#. @node in Documentation/ja/user/converters.itely
 msgid "Invoking midi2ly"
 msgstr "Invocar midi2ly"
 
@@ -3811,6 +4584,7 @@ msgstr "Invocar midi2ly"
 #. @section in Documentation/fr/user/converters.itely
 #. @section in Documentation/es/user/converters.itely
 #. @section in Documentation/de/user/converters.itely
+#. @section in Documentation/ja/user/converters.itely
 msgid "Invoking @command{midi2ly}"
 msgstr "Invocar @command{midi2ly}"
 
@@ -3818,6 +4592,7 @@ msgstr "Invocar @command{midi2ly}"
 #. @node in Documentation/fr/user/converters.itely
 #. @node in Documentation/es/user/converters.itely
 #. @node in Documentation/de/user/converters.itely
+#. @node in Documentation/ja/user/converters.itely
 msgid "Invoking musicxml2ly"
 msgstr "Invocar musicxml2ly"
 
@@ -3825,6 +4600,7 @@ msgstr "Invocar musicxml2ly"
 #. @section in Documentation/fr/user/converters.itely
 #. @section in Documentation/es/user/converters.itely
 #. @section in Documentation/de/user/converters.itely
+#. @section in Documentation/ja/user/converters.itely
 msgid "Invoking @code{musicxml2ly}"
 msgstr "Invocar @command{musicxml2ly}"
 
@@ -3832,6 +4608,7 @@ msgstr "Invocar @command{musicxml2ly}"
 #. @node in Documentation/fr/user/converters.itely
 #. @node in Documentation/es/user/converters.itely
 #. @node in Documentation/de/user/converters.itely
+#. @node in Documentation/ja/user/converters.itely
 msgid "Invoking abc2ly"
 msgstr "Invocar abc2ly"
 
@@ -3839,6 +4616,7 @@ msgstr "Invocar abc2ly"
 #. @section in Documentation/fr/user/converters.itely
 #. @section in Documentation/es/user/converters.itely
 #. @section in Documentation/de/user/converters.itely
+#. @section in Documentation/ja/user/converters.itely
 msgid "Invoking @code{abc2ly}"
 msgstr "Invocar @code{abc2ly}"
 
@@ -3846,6 +4624,7 @@ msgstr "Invocar @code{abc2ly}"
 #. @node in Documentation/fr/user/converters.itely
 #. @node in Documentation/es/user/converters.itely
 #. @node in Documentation/de/user/converters.itely
+#. @node in Documentation/ja/user/converters.itely
 msgid "Invoking etf2ly"
 msgstr "Invocar etf2ly"
 
@@ -3853,6 +4632,7 @@ msgstr "Invocar etf2ly"
 #. @section in Documentation/fr/user/converters.itely
 #. @section in Documentation/es/user/converters.itely
 #. @section in Documentation/de/user/converters.itely
+#. @section in Documentation/ja/user/converters.itely
 msgid "Invoking @command{etf2ly}"
 msgstr "Invocar @command{etf2ly}"
 
@@ -3864,10 +4644,13 @@ msgstr "Invocar @command{etf2ly}"
 #. @section in Documentation/es/user/converters.itely
 #. @node in Documentation/de/user/converters.itely
 #. @section in Documentation/de/user/converters.itely
+#. @node in Documentation/ja/user/converters.itely
+#. @section in Documentation/ja/user/converters.itely
 msgid "Generating LilyPond files"
 msgstr "Generar archivos de LilyPond"
 
 #. @top in Documentation/user/lilypond.tely
+#. @top in Documentation/de/user/lilypond.tely
 msgid "GNU LilyPond --- Notation Reference"
 msgstr "GNU LilyPond: Referencia de la notación"
 
@@ -3897,26 +4680,59 @@ msgstr "Índice de instrucciones de LilyPond"
 msgid "Musical notation"
 msgstr "Notación musical"
 
-#. Documentation/user/pitches.itely:654 (variable)
-#. Documentation/user/input.itely:997 (variable)
-#. Documentation/user/input.itely:1016 (variable)
-#. Documentation/user/input.itely:1053 (variable)
-#. Documentation/user/input.itely:1068 (variable)
+#. Documentation/user/pitches.itely:688 (variable)
+#. Documentation/user/input.itely:1043 (variable)
+#. Documentation/user/input.itely:1062 (variable)
+#. Documentation/user/input.itely:1099 (variable)
+#. Documentation/user/input.itely:1114 (variable)
+#. Documentation/user/changing-defaults.itely:491 (context id)
+#. Documentation/user/changing-defaults.itely:541 (context id)
+#. input/lsr/changing-the-chord-names-to-german-or-semi-german-notation.ly:29 (variable)
+#. input/lsr/controlling-tuplet-bracket-visibility.ly:20 (variable)
+#. input/lsr/letter-tablature-formatting.ly:25 (variable)
+#. input/lsr/string-quartet-template-with-separate-parts.ly:112 (variable)
+#. input/lsr/transposing-pitches-with-minimum-accidentals-smart-transpose.ly:137 (variable)
+#. input/lsr/vertically-aligned-dynamics-and-textscripts.ly:50 (variable)
 msgid "music"
 msgstr "musica"
 
-#. Documentation/user/pitches.itely:1031 (comment)
+#. Documentation/user/pitches.itely:1082 (comment)
 msgid "not strictly necessary, but a good reminder"
 msgstr "no es imprescindible pero es bueno recordarlo"
 
-#. Documentation/user/pitches.itely:1123 (variable)
+#. Documentation/user/pitches.itely:1089 (context id)
+#. Documentation/user/staff.itely:1116 (variable)
+msgid "clarinet"
+msgstr "clarinete"
+
+#. Documentation/user/pitches.itely:1174 (variable)
+#. Documentation/user/changing-defaults.itely:444 (variable)
 msgid "musicA"
 msgstr "musicaA"
 
-#. Documentation/user/pitches.itely:1137 (variable)
+#. Documentation/user/pitches.itely:1188 (variable)
+#. Documentation/user/changing-defaults.itely:445 (variable)
 msgid "musicB"
 msgstr "musicaB"
 
+#. Documentation/user/pitches.itely:1207 (context id)
+#. Documentation/user/keyboards.itely:175 (context id)
+#. Documentation/user/keyboards.itely:274 (context id)
+#. Documentation/user/percussion.itely:175 (variable)
+#. Documentation/user/percussion.itely:365 (variable)
+#. input/lsr/jazz-combo-template.ly:241 (variable)
+msgid "up"
+msgstr "arriba"
+
+#. Documentation/user/pitches.itely:1211 (context id)
+#. Documentation/user/keyboards.itely:185 (context id)
+#. Documentation/user/keyboards.itely:283 (context id)
+#. Documentation/user/percussion.itely:178 (variable)
+#. Documentation/user/percussion.itely:366 (variable)
+#. input/lsr/jazz-combo-template.ly:247 (variable)
+msgid "down"
+msgstr "abajo"
+
 #. @node in Documentation/user/pitches.itely
 #. @subsection in Documentation/user/pitches.itely
 #. @node in Documentation/fr/user/pitches.itely
@@ -3957,6 +4773,7 @@ msgid "fifth"
 msgstr "quinta"
 
 #. @rglos in Documentation/user/pitches.itely
+#. @rglos in Documentation/es/user/pitches.itely
 #. @rglos in Documentation/de/user/pitches.itely
 msgid "quarter tone"
 msgstr "cuarto de tono"
@@ -4159,244 +4976,189 @@ msgstr "Cabezas de notas con formas diversas"
 msgid "Improvisation"
 msgstr "Improvisación"
 
-#. Documentation/user/rhythms.itely:294 (comment)
+#. Documentation/user/rhythms.itely:303 (comment)
 msgid "Alter durations to triplets"
 msgstr "Alterar la duración de los tresillos"
 
-#. Documentation/user/rhythms.itely:296 (comment)
-#. Documentation/user/rhythms.itely:321 (comment)
+#. Documentation/user/rhythms.itely:305 (comment)
+#. Documentation/user/rhythms.itely:332 (comment)
 msgid "Normal durations"
 msgstr "Duraciones normales"
 
-#. Documentation/user/rhythms.itely:298 (comment)
+#. Documentation/user/rhythms.itely:307 (comment)
 msgid "Double the duration of chord"
 msgstr "Duplicar la duración del acorde"
 
-#. Documentation/user/rhythms.itely:300 (comment)
+#. Documentation/user/rhythms.itely:309 (comment)
 msgid "Duration of quarter, appears like sixteenth"
 msgstr "Duración de negra, aparece como semicorchea"
 
-#. Documentation/user/rhythms.itely:323 (comment)
+#. Documentation/user/rhythms.itely:334 (comment)
 msgid "Scale music by *2/3"
 msgstr "Escalar la música en un factor 2/3"
 
-#. Documentation/user/rhythms.itely:327 (comment)
+#. Documentation/user/rhythms.itely:338 (comment)
 msgid "Scale music by *2"
 msgstr "Escalar la música en un factor de 2"
 
-#. Documentation/user/rhythms.itely:412 (comment)
+#. Documentation/user/rhythms.itely:425 (comment)
 msgid "First alternative: following note is tied normally"
 msgstr "Primera alternativa: la nota siguiente se liga normalmente"
 
-#. Documentation/user/rhythms.itely:414 (comment)
+#. Documentation/user/rhythms.itely:427 (comment)
 msgid "Second alternative: following note has a repeated tie"
 msgstr "Segunda alternativa, la nota siguiente lleva una ligadura repetida"
 
-#. Documentation/user/rhythms.itely:531 (comment)
+#. Documentation/user/rhythms.itely:559 (comment)
 msgid "These two lines are just to prettify this example"
 msgstr "Estas dos líneas son solamente para embellecer el ejemplo"
 
-#. Documentation/user/rhythms.itely:534 (comment)
+#. Documentation/user/rhythms.itely:562 (comment)
 msgid "Print a maxima rest, equal to four breves"
 msgstr "Imprimir un silencio de máxima, equivalente a cuatro breves"
 
-#. Documentation/user/rhythms.itely:536 (comment)
+#. Documentation/user/rhythms.itely:564 (comment)
 msgid "Print a longa rest, equal to two breves"
 msgstr "Imprimir un silencio de longa, igual a dos breves"
 
-#. Documentation/user/rhythms.itely:538 (comment)
+#. Documentation/user/rhythms.itely:566 (comment)
 msgid "Print a breve rest"
 msgstr "Imprimir un silencio de breve"
 
-#. Documentation/user/rhythms.itely:640 (comment)
+#. Documentation/user/rhythms.itely:675 (comment)
 msgid "This is valid input, but does nothing"
 msgstr "Esto es una entrada válida, pero no hace nada"
 
-#. Documentation/user/rhythms.itely:666 (comment)
-#. Documentation/user/rhythms.itely:719 (comment)
+#. Documentation/user/rhythms.itely:703 (comment)
+#. Documentation/user/rhythms.itely:758 (comment)
 msgid "Rest measures contracted to single measure"
 msgstr "Compases en silencio contraídos a un solo compás"
 
-#. Documentation/user/rhythms.itely:715 (comment)
+#. Documentation/user/rhythms.itely:754 (comment)
+#. input/lsr/avoiding-collisions-with-chord-fingerings.ly:24 (comment)
 msgid "Default behavior"
 msgstr "Comportamiento predeterminado"
 
-#. Documentation/user/rhythms.itely:722 (comment)
+#. Documentation/user/rhythms.itely:761 (comment)
 msgid "Rest measures expanded"
 msgstr "Compases de silencio expandidos"
 
-#. Documentation/user/rhythms.itely:755 (comment)
+#. Documentation/user/rhythms.itely:797 (comment)
 msgid "This fails, as the wrong object name is specified"
 msgstr "Esto no funciona, se ha especificado un nombre de objeto equivocado"
 
-#. Documentation/user/rhythms.itely:758 (comment)
+#. Documentation/user/rhythms.itely:800 (comment)
 msgid "This is correct and works"
 msgstr "Esto es correcto y funciona"
 
-#. Documentation/user/rhythms.itely:880 (comment)
+#. Documentation/user/rhythms.itely:934 (comment)
 msgid "Default style"
 msgstr "Estilo predeterminado"
 
-#. Documentation/user/rhythms.itely:883 (comment)
+#. Documentation/user/rhythms.itely:937 (comment)
 msgid "Change to numeric style"
 msgstr "Cambiar al estilo numérico"
 
-#. Documentation/user/rhythms.itely:887 (comment)
+#. Documentation/user/rhythms.itely:941 (comment)
 msgid "Revert to default style"
 msgstr "Retornar al estilo predeterminado"
 
-#. Documentation/user/rhythms.itely:916 (comment)
-msgid "Change time signature but keep 3/4 beaming"
-msgstr "Cambio de compás manteniendo las barras del 3/4"
-
-#. Documentation/user/rhythms.itely:917 (comment)
-msgid "due to unchanged beatLength"
-msgstr "debido a que beatLength no cambia"
-
-#. Documentation/user/rhythms.itely:921 (comment)
-msgid "Lose 3/4 beaming now beatLength has changed to 16"
-msgstr "Se pierden las barras de 3/4 pues beatLength ha cambiado a 16"
-
-#. Documentation/user/rhythms.itely:1044 (comment)
+#. Documentation/user/rhythms.itely:1087 (comment)
 msgid "Show all bar numbers"
 msgstr "Mostrar todos los números de compás"
 
-#. Documentation/user/rhythms.itely:1154 (comment)
+#. Documentation/user/rhythms.itely:1217 (comment)
 msgid "Now each staff has its own time signature."
 msgstr "Ahora cada pentagrama tiene un compás distinto"
 
-#. Documentation/user/rhythms.itely:1571 (comment)
-msgid "auto beam on 1/4 note groups"
-msgstr "barra automática sobre grupos de 1/4 (negra)"
-
-#. Documentation/user/rhythms.itely:1573 (comment)
-msgid "no defined auto-beaming for this time sig"
-msgstr "ningún barrado automático se define para este compás"
-
-#. Documentation/user/rhythms.itely:1577 (comment)
-msgid "keep 3/4 beaming"
-msgstr "mantener el barrado del 3/4 "
-
-#. Documentation/user/rhythms.itely:1578 (comment)
-msgid "due to beatLength"
-msgstr "debido a beatLength"
-
-#. Documentation/user/rhythms.itely:1580 (comment)
-msgid "beam on 1/8 notes"
-msgstr "barras sobre las corcheas"
-
-#. Documentation/user/rhythms.itely:1583 (comment)
-msgid "beam on 3/16, 7/16, 9/16, 12/16"
-msgstr "barras de semicorchea sobre 3/16, 7/16, 9/16, 12/16"
-
-#. Documentation/user/rhythms.itely:1612 (comment)
-msgid "Set beam sub-group length to an eighth note"
-msgstr "Establecer longitud de barra del subgrupo a corchea"
-
-#. Documentation/user/rhythms.itely:1615 (comment)
-msgid "Set beam sub-group length to a sixteenth note"
-msgstr "Establecer longitud de barra del subgrupo a semicorchea"
+#. Documentation/user/rhythms.itely:1345 (context id)
+msgid "myRhythm"
+msgstr "misDuraciones"
 
-#. Documentation/user/rhythms.itely:1730 (comment)
+#. Documentation/user/rhythms.itely:1713 (comment)
 msgid "end 1/16 beams for all time signatures at the 1/16 moment"
 msgstr "finalizar barras de semicorchea para todos los compases en el momento 1/16"
 
-#. Documentation/user/rhythms.itely:1734 (comment)
+#. Documentation/user/rhythms.itely:1717 (comment)
 msgid "end 1/32 beams for all time signatures at the 1/16 moment"
 msgstr "finalizar barras de fusa para todos los compases en el momento 1/16"
 
-#. Documentation/user/rhythms.itely:1744 (comment)
+#. Documentation/user/rhythms.itely:1727 (comment)
 msgid "end beams of all durations in 5/8 time signature at the 2/8 moment"
 msgstr ""
 "finalizar barras para cualquier duración en el compás de 5/8, en el momento "
 "2/8"
 
-#. Documentation/user/rhythms.itely:1759 (comment)
+#. Documentation/user/rhythms.itely:1742 (comment)
 msgid "rhythm 3-1-1-2"
 msgstr "ritmo 3-1-1-2"
 
-#. Documentation/user/rhythms.itely:1760 (comment)
+#. Documentation/user/rhythms.itely:1743 (comment)
 msgid "Context not specified - does not work correctly"
 msgstr "Contexto sin especificar: no funciona correctamente"
 
-#. Documentation/user/rhythms.itely:1766 (comment)
+#. Documentation/user/rhythms.itely:1749 (comment)
 msgid "Works correctly with context specified"
 msgstr "Funciona correctamente con el contexto especificado"
 
-#. Documentation/user/rhythms.itely:1802 (comment)
+#. Documentation/user/rhythms.itely:1782 (comment)
 msgid "undo a rule ending 1/16 beams in 4/4 time at 1/4 moment"
 msgstr ""
 "deshacer regla de finalizar barras de semicorchea en compás 4/4 en el "
 "momento 1/4"
 
-#. Documentation/user/rhythms.itely:1815 (comment)
+#. Documentation/user/rhythms.itely:1795 (comment)
 msgid "this won't revert it!"
 msgstr "¡esto no lo devuelve a su valor anterior!"
 
-#. Documentation/user/rhythms.itely:1817 (comment)
+#. Documentation/user/rhythms.itely:1797 (comment)
 msgid "this will"
 msgstr "esto sí"
 
-#. Documentation/user/rhythms.itely:1832 (comment)
-msgid "rhythm 2-3-2"
-msgstr "ritmo 2-3-2"
-
-#. Documentation/user/rhythms.itely:1871 (comment)
-msgid "Default beaming"
-msgstr "Barrado predeterminado"
-
-#. Documentation/user/rhythms.itely:1874 (comment)
-msgid "Revert default values in scm/auto-beam.scm for 12/8 time"
-msgstr "Revertir los valores predeterminados en scm/auto-beam.scm para el 12/8"
-
-#. Documentation/user/rhythms.itely:1880 (comment)
-msgid "Set new values for beam endings"
-msgstr "Establecer nuevos valores para finales de barra"
-
-#. Documentation/user/rhythms.itely:2002 (comment)
+#. Documentation/user/rhythms.itely:1942 (comment)
 msgid "revert to non-feathered beams"
 msgstr "volver a usar barras continuas"
 
-#. Documentation/user/rhythms.itely:2225 (comment)
-#. Documentation/user/rhythms.itely:2241 (comment)
+#. Documentation/user/rhythms.itely:2182 (comment)
+#. Documentation/user/rhythms.itely:2198 (comment)
 msgid "Permit first bar number to be printed"
 msgstr "Habilitar la impresión del número del primer compás"
 
-#. Documentation/user/rhythms.itely:2242 (comment)
-#. Documentation/user/rhythms.itely:2290 (comment)
+#. Documentation/user/rhythms.itely:2199 (comment)
+#. Documentation/user/rhythms.itely:2247 (comment)
 msgid "Print a bar number every second measure"
 msgstr "Imprimir el número de compás cada dos compases"
 
-#. Documentation/user/rhythms.itely:2258 (comment)
+#. Documentation/user/rhythms.itely:2215 (comment)
 msgid "Prevent bar numbers at the end of a line and permit them elsewhere"
 msgstr "No poner números de compás al final de la línea, pero sí en otros lugares"
 
-#. Documentation/user/rhythms.itely:2262 (comment)
-#. Documentation/user/rhythms.itely:2288 (comment)
+#. Documentation/user/rhythms.itely:2219 (comment)
+#. Documentation/user/rhythms.itely:2245 (comment)
 msgid "Increase the size of the bar number by 2"
 msgstr "Aumentar en 2 el tamaño del número de compás"
 
-#. Documentation/user/rhythms.itely:2266 (comment)
+#. Documentation/user/rhythms.itely:2223 (comment)
 msgid "Draw a box round the following bar number(s)"
 msgstr "Pintar una caja rodeando al siguiente(s) número de compás"
 
-#. Documentation/user/rhythms.itely:2271 (comment)
+#. Documentation/user/rhythms.itely:2228 (comment)
 msgid "Draw a circle round the following bar number(s)"
 msgstr "Rodear con un círculo el siguiente(s) número de compás"
 
-#. Documentation/user/rhythms.itely:2293 (comment)
+#. Documentation/user/rhythms.itely:2250 (comment)
 msgid "Center-align bar numbers"
 msgstr "Alinear números de compás al centro"
 
-#. Documentation/user/rhythms.itely:2296 (comment)
+#. Documentation/user/rhythms.itely:2253 (comment)
 msgid "Right-align bar numbers"
 msgstr "Alinear números de compás a la derecha"
 
-#. Documentation/user/rhythms.itely:2399 (variable)
+#. Documentation/user/rhythms.itely:2347 (variable)
 msgid "pipeSymbol"
 msgstr "simboloTubo"
 
-#. Documentation/user/rhythms.itely:2786 (variable)
+#. Documentation/user/rhythms.itely:2752 (variable)
 msgid "MyCadenza"
 msgstr "miCadencia"
 
@@ -4436,26 +5198,37 @@ msgstr "Duraciones"
 
 #. @rglos in Documentation/user/rhythms.itely
 #. @rglos in Documentation/es/user/rhythms.itely
+#. @rglos in Documentation/de/user/rhythms.itely
 msgid "breve"
 msgstr "breve"
 
 #. @rglos in Documentation/user/rhythms.itely
 #. @rglos in Documentation/es/user/rhythms.itely
+#. @rglos in Documentation/de/user/rhythms.itely
 msgid "longa"
 msgstr "longa"
 
 #. @rglos in Documentation/user/rhythms.itely
 #. @rglos in Documentation/es/user/rhythms.itely
+#. @rglos in Documentation/de/user/rhythms.itely
+msgid "maxima"
+msgstr "maxima"
+
+#. @rglos in Documentation/user/rhythms.itely
+#. @rglos in Documentation/es/user/rhythms.itely
+#. @rglos in Documentation/de/user/rhythms.itely
 msgid "Duration names notes and rests"
 msgstr "Nombre de las duraciones de notas y silencios"
 
 #. @rglos in Documentation/user/rhythms.itely
 #. @rglos in Documentation/es/user/rhythms.itely
+#. @rglos in Documentation/de/user/rhythms.itely
 msgid "tuplet"
 msgstr "grupo especial"
 
 #. @rglos in Documentation/user/rhythms.itely
 #. @rglos in Documentation/es/user/rhythms.itely
+#. @rglos in Documentation/de/user/rhythms.itely
 msgid "polymetric"
 msgstr "polimétrica"
 
@@ -4473,6 +5246,7 @@ msgstr "Escalar las duraciones"
 #. @rglos in Documentation/user/rhythms.itely
 #. @rglos in Documentation/fr/user/rhythms.itely
 #. @rglos in Documentation/es/user/rhythms.itely
+#. @rglos in Documentation/de/user/rhythms.itely
 msgid "laissez vibrer"
 msgstr "laissez vibrer"
 
@@ -4511,6 +5285,7 @@ msgstr "Silencios de compás completo"
 
 #. @rglos in Documentation/user/rhythms.itely
 #. @rglos in Documentation/es/user/rhythms.itely
+#. @rglos in Documentation/de/user/rhythms.itely
 msgid "multi-measure rest"
 msgstr "silencios multicompás"
 
@@ -4549,6 +5324,7 @@ msgstr "Música sin compasear"
 
 #. @rglos in Documentation/user/rhythms.itely
 #. @rglos in Documentation/es/user/rhythms.itely
+#. @rglos in Documentation/de/user/rhythms.itely
 msgid "cadenza"
 msgstr "cadenza"
 
@@ -4565,11 +5341,13 @@ msgstr "Notación polimétrica"
 
 #. @rglos in Documentation/user/rhythms.itely
 #. @rglos in Documentation/es/user/rhythms.itely
+#. @rglos in Documentation/de/user/rhythms.itely
 msgid "polymetric time signature"
 msgstr "compás polimétrico"
 
 #. @rglos in Documentation/user/rhythms.itely
 #. @rglos in Documentation/es/user/rhythms.itely
+#. @rglos in Documentation/de/user/rhythms.itely
 msgid "meter"
 msgstr "metro"
 
@@ -4872,6 +5650,7 @@ msgstr "Marcas de respiración"
 #. @rglos in Documentation/user/expressive.itely
 #. @rglos in Documentation/es/user/expressive.itely
 #. @rglos in Documentation/de/user/expressive.itely
+#. input/lsr/breathing-signs.ly:35 (comment)
 msgid "caesura"
 msgstr "cesura"
 
@@ -4961,7 +5740,8 @@ msgstr "Trinos"
 msgid "trill"
 msgstr "trino"
 
-#. Documentation/user/repeats.itely:298 (variable)
+#. Documentation/user/repeats.itely:299 (variable)
+#. input/lsr/volta-text-markup-using-repeatcommands.ly:21 (variable)
 msgid "voltaAdLib"
 msgstr "voltaAdLib"
 
@@ -5067,27 +5847,27 @@ msgstr "simile"
 msgid "Tremolo repeats"
 msgstr "Repeticiones de trémolo"
 
-#. Documentation/user/simultaneous.itely:93 (comment)
+#. Documentation/user/simultaneous.itely:94 (comment)
 msgid "explicit single voice"
 msgstr "una voz explícita"
 
-#. Documentation/user/simultaneous.itely:99 (comment)
+#. Documentation/user/simultaneous.itely:100 (comment)
 msgid "single first note"
 msgstr "primera nota única"
 
-#. Documentation/user/simultaneous.itely:111 (comment)
+#. Documentation/user/simultaneous.itely:112 (comment)
 msgid "no single first note"
 msgstr "primera nota no única"
 
-#. Documentation/user/simultaneous.itely:617 (variable)
+#. Documentation/user/simultaneous.itely:622 (variable)
 msgid "instrumentOne"
 msgstr "instrumentoUno"
 
-#. Documentation/user/simultaneous.itely:625 (variable)
+#. Documentation/user/simultaneous.itely:630 (variable)
 msgid "instrumentTwo"
 msgstr "instrumentoDos"
 
-#. Documentation/user/simultaneous.itely:801 (comment)
+#. Documentation/user/simultaneous.itely:807 (comment)
 msgid "Bar 3 ..."
 msgstr "Compás 3 ..."
 
@@ -5210,6 +5990,8 @@ msgstr "a due"
 #. @rglos in Documentation/user/simultaneous.itely
 #. @rglos in Documentation/es/user/simultaneous.itely
 #. @rglos in Documentation/de/user/simultaneous.itely
+#. input/lsr/flamenco-notation.ly:136 (variable)
+#. input/lsr/flamenco-notation.ly:233 (context id)
 msgid "part"
 msgstr "parte"
 
@@ -5224,26 +6006,24 @@ msgstr "parte"
 msgid "Writing music in parallel"
 msgstr "Escribir música en paralelo"
 
-#. Documentation/user/staff.itely:1069 (variable)
-#. Documentation/user/staff.itely:1084 (variable)
-#. Documentation/user/staff.itely:1238 (variable)
+#. Documentation/user/staff.itely:1085 (variable)
+#. Documentation/user/staff.itely:1100 (variable)
+#. Documentation/user/staff.itely:1265 (variable)
 msgid "flute"
 msgstr "flauta"
 
-#. Documentation/user/staff.itely:1100 (variable)
-msgid "clarinet"
-msgstr "clarinete"
-
-#. Documentation/user/staff.itely:1189 (variable)
-#. Documentation/user/staff.itely:1210 (variable)
+#. Documentation/user/staff.itely:1207 (variable)
+#. Documentation/user/staff.itely:1228 (variable)
 msgid "oboe"
 msgstr "oboe"
 
-#. Documentation/user/staff.itely:1259 (variable)
+#. Documentation/user/staff.itely:1286 (variable)
+#. Documentation/user/staff.itely:1302 (context id)
 msgid "piccolo"
 msgstr "flautin"
 
-#. Documentation/user/staff.itely:1267 (variable)
+#. Documentation/user/staff.itely:1294 (variable)
+#. Documentation/user/staff.itely:1303 (context id)
 msgid "cbassoon"
 msgstr "cfagot"
 
@@ -5275,16 +6055,20 @@ msgstr "Impresión de los pentagramas"
 #. @unnumberedsubsubsec in Documentation/fr/user/staff.itely
 #. @node in Documentation/es/user/staff.itely
 #. @unnumberedsubsubsec in Documentation/es/user/staff.itely
+#. @node in Documentation/de/user/staff.itely
+#. @unnumberedsubsubsec in Documentation/de/user/staff.itely
 msgid "Instantiating new staves"
 msgstr "Crear instancias de pentagramas nuevos"
 
 #. @rglos in Documentation/user/staff.itely
 #. @rglos in Documentation/es/user/staff.itely
+#. @rglos in Documentation/de/user/staff.itely
 msgid "staff"
 msgstr "pantagrama"
 
 #. @rglos in Documentation/user/staff.itely
 #. @rglos in Documentation/es/user/staff.itely
+#. @rglos in Documentation/de/user/staff.itely
 msgid "staves"
 msgstr "pentagramas"
 
@@ -5294,16 +6078,20 @@ msgstr "pentagramas"
 #. @unnumberedsubsubsec in Documentation/fr/user/staff.itely
 #. @node in Documentation/es/user/staff.itely
 #. @unnumberedsubsubsec in Documentation/es/user/staff.itely
+#. @node in Documentation/de/user/staff.itely
+#. @unnumberedsubsubsec in Documentation/de/user/staff.itely
 msgid "Grouping staves"
 msgstr "Agrupar pentagramas"
 
 #. @rglos in Documentation/user/staff.itely
 #. @rglos in Documentation/es/user/staff.itely
+#. @rglos in Documentation/de/user/staff.itely
 msgid "bracket"
 msgstr "llave o corchete"
 
 #. @rglos in Documentation/user/staff.itely
 #. @rglos in Documentation/es/user/staff.itely
+#. @rglos in Documentation/de/user/staff.itely
 msgid "grand staff"
 msgstr "sistema de piano"
 
@@ -5313,6 +6101,8 @@ msgstr "sistema de piano"
 #. @unnumberedsubsubsec in Documentation/fr/user/staff.itely
 #. @node in Documentation/es/user/staff.itely
 #. @unnumberedsubsubsec in Documentation/es/user/staff.itely
+#. @node in Documentation/de/user/staff.itely
+#. @unnumberedsubsubsec in Documentation/de/user/staff.itely
 msgid "Nested staff groups"
 msgstr "Grupos de pentagramas anidados"
 
@@ -5322,6 +6112,8 @@ msgstr "Grupos de pentagramas anidados"
 #. @subsection in Documentation/fr/user/staff.itely
 #. @node in Documentation/es/user/staff.itely
 #. @subsection in Documentation/es/user/staff.itely
+#. @node in Documentation/de/user/staff.itely
+#. @subsection in Documentation/de/user/staff.itely
 msgid "Modifying single staves"
 msgstr "Modificación de pentagramas sueltos"
 
@@ -5338,11 +6130,13 @@ msgstr "El símbolo del pentagrama"
 
 #. @rglos in Documentation/user/staff.itely
 #. @rglos in Documentation/es/user/staff.itely
+#. @rglos in Documentation/de/user/staff.itely
 msgid "line"
 msgstr "línea"
 
 #. @rglos in Documentation/user/staff.itely
 #. @rglos in Documentation/es/user/staff.itely
+#. @rglos in Documentation/de/user/staff.itely
 msgid "ledger line"
 msgstr "línea adicional"
 
@@ -5352,11 +6146,14 @@ msgstr "línea adicional"
 #. @unnumberedsubsubsec in Documentation/fr/user/staff.itely
 #. @node in Documentation/es/user/staff.itely
 #. @unnumberedsubsubsec in Documentation/es/user/staff.itely
+#. @node in Documentation/de/user/staff.itely
+#. @unnumberedsubsubsec in Documentation/de/user/staff.itely
 msgid "Ossia staves"
 msgstr "Pentagramas de Ossia"
 
 #. @rglos in Documentation/user/staff.itely
 #. @rglos in Documentation/es/user/staff.itely
+#. @rglos in Documentation/de/user/staff.itely
 msgid "Frenched staff"
 msgstr "Sistemas a la francesa"
 
@@ -5395,21 +6192,25 @@ msgstr "Indicaciones metronómicas"
 
 #. @rglos in Documentation/user/staff.itely
 #. @rglos in Documentation/es/user/staff.itely
+#. @rglos in Documentation/de/user/staff.itely
 msgid "metronome"
 msgstr "metrónomo"
 
 #. @rglos in Documentation/user/staff.itely
 #. @rglos in Documentation/es/user/staff.itely
+#. @rglos in Documentation/de/user/staff.itely
 msgid "metronomic indication"
 msgstr "indicación metronómica"
 
 #. @rglos in Documentation/user/staff.itely
 #. @rglos in Documentation/es/user/staff.itely
+#. @rglos in Documentation/de/user/staff.itely
 msgid "tempo indication"
 msgstr "indicación del tempo"
 
 #. @rglos in Documentation/user/staff.itely
 #. @rglos in Documentation/es/user/staff.itely
+#. @rglos in Documentation/de/user/staff.itely
 msgid "metronome mark"
 msgstr "indicación metronómica"
 
@@ -5450,7 +6251,7 @@ msgstr "Citar otras voces"
 msgid "Formatting cue notes"
 msgstr "Formateo de las notas de aviso"
 
-#. Documentation/user/editorial.itely:321 (comment)
+#. Documentation/user/editorial.itely:326 (comment)
 msgid "this is deliberate nonsense; note that the stems remain black"
 msgstr "esto no tiene sentido, intencionalmente. Observe que las plicas siguen negras"
 
@@ -5586,7 +6387,7 @@ msgstr "Líneas de rejilla"
 msgid "Analysis brackets"
 msgstr "Corchetes de análisis"
 
-#. Documentation/user/text.itely:418 (variable)
+#. Documentation/user/text.itely:421 (variable)
 msgid "allegro"
 msgstr "allegro"
 
@@ -5738,6 +6539,8 @@ msgstr "Tipografías"
 #. @unnumberedsubsubsec in Documentation/user/text.itely
 #. @node in Documentation/es/user/text.itely
 #. @unnumberedsubsubsec in Documentation/es/user/text.itely
+#. @node in Documentation/de/user/text.itely
+#. @unnumberedsubsubsec in Documentation/de/user/text.itely
 msgid "Fonts explained"
 msgstr "Explicación de las fuentes tipográficas"
 
@@ -5770,60 +6573,73 @@ msgstr "Fuentes tipográficas del documento completo"
 msgid "Specialist notation"
 msgstr "Notación especializada"
 
-#. Documentation/user/vocal.itely:509 (comment)
-msgid "not recommended: left aligns syllables "
-msgstr "no recomendado: alinea las sílabas a la izquierda "
-
 #. Documentation/user/vocal.itely:512 (comment)
+msgid "not recommended: left aligns syllables"
+msgstr "no recomendado: alinea las sílabas a la izquierda"
+
+#. Documentation/user/vocal.itely:515 (comment)
 msgid "wrong: durations needed"
 msgstr "incorrecto: se necesitan las duraciones"
 
-#. Documentation/user/vocal.itely:515 (comment)
+#. Documentation/user/vocal.itely:518 (comment)
 msgid "correct"
 msgstr "correcto"
 
-#. Documentation/user/vocal.itely:847 (variable)
+#. Documentation/user/vocal.itely:667 (context id)
+msgid "lala"
+msgstr "lala"
+
+#. Documentation/user/vocal.itely:808 (context id)
+msgid "splitpart"
+msgstr "partedividida"
+
+#. Documentation/user/vocal.itely:853 (variable)
 msgid "voice"
 msgstr "voz"
 
-#. Documentation/user/vocal.itely:854 (variable)
+#. Documentation/user/vocal.itely:860 (variable)
+#. input/lsr/formatting-lyrics-syllables.ly:22 (variable)
 msgid "lyr"
 msgstr "letra"
 
-#. Documentation/user/vocal.itely:1112 (comment)
-msgid "applies to \\\"fas\\\""
-msgstr "se aplica al \\\"fas\\\""
+#. Documentation/user/vocal.itely:1059 (context id)
+msgid "tune"
+msgstr "melodia"
+
+#. Documentation/user/vocal.itely:1101 (context id)
+msgid "lahlah"
+msgstr "lala"
 
-#. Documentation/user/vocal.itely:1282 (comment)
-msgid "moves the column off the left margin; "
-msgstr "aleja la columna del margen izquierdo; "
+#. Documentation/user/vocal.itely:1284 (comment)
+msgid "moves the column off the left margin;"
+msgstr "aleja la columna del margen izquierdo;"
 
-#. Documentation/user/vocal.itely:1283 (comment)
+#. Documentation/user/vocal.itely:1285 (comment)
 msgid "can be removed if space on the page is tight"
 msgstr "se puede quitar si el espaciado de la página es apretado"
 
-#. Documentation/user/vocal.itely:1291 (comment)
-#. Documentation/user/vocal.itely:1309 (comment)
+#. Documentation/user/vocal.itely:1293 (comment)
+#. Documentation/user/vocal.itely:1311 (comment)
 msgid "adds vertical spacing between verses"
 msgstr "añade espaciado vertical entre estrofas"
 
-#. Documentation/user/vocal.itely:1299 (comment)
-msgid "adds horizontal spacing between columns; "
-msgstr "añade espaciado horizontal entre columnas; "
+#. Documentation/user/vocal.itely:1301 (comment)
+msgid "adds horizontal spacing between columns;"
+msgstr "añade espaciado horizontal entre columnas;"
 
-#. Documentation/user/vocal.itely:1300 (comment)
-msgid "if they are still too close, add more \\\" \\\" pairs  "
-msgstr "si aún están muy juntas, añada más parejas \\\" \\\"  "
+#. Documentation/user/vocal.itely:1302 (comment)
+msgid "if they are still too close, add more \\\" \\\" pairs"
+msgstr "si aún están muy juntas, añada más parejas \\\" \\\""
 
-#. Documentation/user/vocal.itely:1301 (comment)
+#. Documentation/user/vocal.itely:1303 (comment)
 msgid "until the result looks good"
 msgstr "hasta que el resultado resulte adecuado"
 
-#. Documentation/user/vocal.itely:1317 (comment)
-msgid "gives some extra space on the right margin; "
-msgstr "aplica más separación en el margen derecho; "
+#. Documentation/user/vocal.itely:1319 (comment)
+msgid "gives some extra space on the right margin;"
+msgstr "aplica más separación en el margen derecho;"
 
-#. Documentation/user/vocal.itely:1318 (comment)
+#. Documentation/user/vocal.itely:1320 (comment)
 msgid "can be removed if page space is tight"
 msgstr "se puede quitar si el espaciado de la página es apretado"
 
@@ -6137,7 +6953,6 @@ msgstr "Versos con ritmos distintos"
 
 #. @subsubheading in Documentation/user/vocal.itely
 #. @subsubheading in Documentation/es/user/vocal.itely
-#. @subsubheading in Documentation/de/user/vocal.itely
 msgid "Ignoring melismata"
 msgstr "Ignorar los melismas"
 
@@ -6169,23 +6984,35 @@ msgstr "Imprimir los versos al final"
 msgid "Printing stanzas at the end in multiple columns"
 msgstr "Imprimir los versos al final en varias columnas"
 
-#. Documentation/user/keyboards.itely:182 (comment)
+#. Documentation/user/keyboards.itely:187 (comment)
 msgid "keep staff alive"
 msgstr "mantener vivo el pentagrama"
 
-#. Documentation/user/keyboards.itely:385 (comment)
+#. Documentation/user/keyboards.itely:275 (context id)
+msgid "melOne"
+msgstr "melodiaUno"
+
+#. Documentation/user/keyboards.itely:344 (context id)
+#. Documentation/user/fretted-strings.itely:247 (context id)
+#. input/lsr/adding-fingerings-to-tablatures.ly:24 (variable)
+#. input/lsr/jazz-combo-template.ly:205 (context id)
+#. input/lsr/jazz-combo-template.ly:214 (context id)
+msgid "two"
+msgstr "dos"
+
+#. Documentation/user/keyboards.itely:398 (comment)
 msgid "stems may overlap the other staff"
 msgstr "las plicas pueden superponerse al otro pentagrama"
 
-#. Documentation/user/keyboards.itely:387 (comment)
+#. Documentation/user/keyboards.itely:400 (comment)
 msgid "extend the stems to reach other other staff"
 msgstr "extender las plicas para que lleguen hasta el otro pentagrama"
 
-#. Documentation/user/keyboards.itely:389 (comment)
+#. Documentation/user/keyboards.itely:402 (comment)
 msgid "do not print extra flags"
 msgstr "no imprimir corchetes adicionales"
 
-#. Documentation/user/keyboards.itely:391 (comment)
+#. Documentation/user/keyboards.itely:404 (comment)
 msgid "prevent beaming as needed"
 msgstr "evitar el barrado según necesidades"
 
@@ -6322,6 +7149,28 @@ msgstr "Símbolos de Discanto"
 msgid "Harp"
 msgstr "Arpa"
 
+#. @node in Documentation/user/keyboards.itely
+#. @unnumberedsubsubsec in Documentation/user/keyboards.itely
+#. @node in Documentation/fr/user/keyboards.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/keyboards.itely
+#. @node in Documentation/es/user/keyboards.itely
+#. @unnumberedsubsubsec in Documentation/es/user/keyboards.itely
+#. @node in Documentation/de/user/keyboards.itely
+#. @unnumberedsubsubsec in Documentation/de/user/keyboards.itely
+msgid "References for harps"
+msgstr "Referencias para notación de arpa"
+
+#. @node in Documentation/user/keyboards.itely
+#. @unnumberedsubsubsec in Documentation/user/keyboards.itely
+#. @node in Documentation/fr/user/keyboards.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/keyboards.itely
+#. @node in Documentation/es/user/keyboards.itely
+#. @unnumberedsubsubsec in Documentation/es/user/keyboards.itely
+#. @node in Documentation/de/user/keyboards.itely
+#. @unnumberedsubsubsec in Documentation/de/user/keyboards.itely
+msgid "Harp pedals"
+msgstr "Pedales de arpa"
+
 #. @node in Documentation/user/unfretted-strings.itely
 #. @section in Documentation/user/unfretted-strings.itely
 #. @node in Documentation/fr/user/unfretted-strings.itely
@@ -6379,11 +7228,14 @@ msgstr "Armónicos"
 
 #. @rglos in Documentation/user/unfretted-strings.itely
 #. @rglos in Documentation/es/user/unfretted-strings.itely
+#. @rglos in Documentation/de/user/unfretted-strings.itely
 msgid "harmonics"
 msgstr "armónicos"
 
 #. @node in Documentation/user/unfretted-strings.itely
 #. @node in Documentation/es/user/unfretted-strings.itely
+#. @node in Documentation/de/user/unfretted-strings.itely
+#. @unnumberedsubsubsec in Documentation/de/user/unfretted-strings.itely
 msgid "Snap (Bartok) pizzicato"
 msgstr "Pizzicato de Bartok (Snap)"
 
@@ -6391,41 +7243,48 @@ msgstr "Pizzicato de Bartok (Snap)"
 #. @node in Documentation/fr/user/unfretted-strings.itely
 #. @unnumberedsubsubsec in Documentation/fr/user/unfretted-strings.itely
 #. @unnumberedsubsubsec in Documentation/es/user/unfretted-strings.itely
-#. @node in Documentation/de/user/unfretted-strings.itely
-#. @unnumberedsubsubsec in Documentation/de/user/unfretted-strings.itely
 msgid "Snap (Bartók) pizzicato"
 msgstr "Pizzicato de Bartók (Snap)"
 
-#. Documentation/user/fretted-strings.itely:238 (variable)
+#. Documentation/user/fretted-strings.itely:243 (variable)
 msgid "melodia"
 msgstr "melodia"
 
-#. Documentation/user/fretted-strings.itely:321 (variable)
+#. Documentation/user/fretted-strings.itely:248 (context id)
+msgid "shared"
+msgstr "comun"
+
+#. Documentation/user/fretted-strings.itely:249 (context id)
+msgid "solo"
+msgstr "solo"
+
+#. Documentation/user/fretted-strings.itely:326 (variable)
 msgid "mynotes"
 msgstr "misNotas"
 
-#. Documentation/user/fretted-strings.itely:448 (comment)
+#. Documentation/user/fretted-strings.itely:453 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:29 (comment)
 msgid "A chord for ukelele"
 msgstr "Un acorde de ukelele"
 
-#. Documentation/user/fretted-strings.itely:768 (variable)
-#. Documentation/user/fretted-strings.itely:791 (variable)
-#. Documentation/user/fretted-strings.itely:820 (variable)
-#. Documentation/user/fretted-strings.itely:849 (variable)
-#. Documentation/user/fretted-strings.itely:873 (variable)
-#. Documentation/user/fretted-strings.itely:917 (variable)
+#. Documentation/user/fretted-strings.itely:785 (variable)
+#. Documentation/user/fretted-strings.itely:808 (variable)
+#. Documentation/user/fretted-strings.itely:837 (variable)
+#. Documentation/user/fretted-strings.itely:868 (variable)
+#. Documentation/user/fretted-strings.itely:892 (variable)
+#. Documentation/user/fretted-strings.itely:940 (variable)
 msgid "mychords"
 msgstr "misAcordes"
 
-#. Documentation/user/fretted-strings.itely:795 (variable)
+#. Documentation/user/fretted-strings.itely:812 (variable)
 msgid "mychordlist"
 msgstr "miListaDeAcordes"
 
-#. Documentation/user/fretted-strings.itely:904 (comment)
+#. Documentation/user/fretted-strings.itely:927 (comment)
 msgid "add a new chord shape"
 msgstr "añadir una forma de acorde nueva"
 
-#. Documentation/user/fretted-strings.itely:908 (comment)
+#. Documentation/user/fretted-strings.itely:931 (comment)
 msgid "add some new chords based on the power chord shape"
 msgstr "añadir acordes nuevos basados en la forma de acorde principal"
 
@@ -6508,15 +7367,23 @@ msgstr "Marcas de diagramas de trastes"
 
 #. @node in Documentation/user/fretted-strings.itely
 #. @unnumberedsubsubsec in Documentation/user/fretted-strings.itely
+#. @node in Documentation/fr/user/fretted-strings.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/fretted-strings.itely
 #. @node in Documentation/es/user/fretted-strings.itely
 #. @unnumberedsubsubsec in Documentation/es/user/fretted-strings.itely
+#. @node in Documentation/de/user/fretted-strings.itely
+#. @unnumberedsubsubsec in Documentation/de/user/fretted-strings.itely
 msgid "Predefined fret diagrams"
 msgstr "Diagramas predefinidos de trastes"
 
 #. @node in Documentation/user/fretted-strings.itely
 #. @unnumberedsubsubsec in Documentation/user/fretted-strings.itely
+#. @node in Documentation/fr/user/fretted-strings.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/fretted-strings.itely
 #. @node in Documentation/es/user/fretted-strings.itely
 #. @unnumberedsubsubsec in Documentation/es/user/fretted-strings.itely
+#. @node in Documentation/de/user/fretted-strings.itely
+#. @unnumberedsubsubsec in Documentation/de/user/fretted-strings.itely
 msgid "Automatic fret diagrams"
 msgstr "Diagramas de traste automáticos"
 
@@ -6586,16 +7453,6 @@ msgstr "Banjo"
 msgid "Banjo tablatures"
 msgstr "Tablaturas de banjo"
 
-#. Documentation/user/percussion.itely:175 (variable)
-#. Documentation/user/percussion.itely:365 (variable)
-msgid "up"
-msgstr "arriba"
-
-#. Documentation/user/percussion.itely:178 (variable)
-#. Documentation/user/percussion.itely:366 (variable)
-msgid "down"
-msgstr "abajo"
-
 #. Documentation/user/percussion.itely:385 (comment)
 msgid "These lines define the position of the woodblocks in the stave;"
 msgstr "Estas líneas definen la posición de los bloques en la pauta;"
@@ -6704,6 +7561,8 @@ msgstr "Notación básica de percusión"
 #. @unnumberedsubsubsec in Documentation/user/percussion.itely
 #. @node in Documentation/es/user/percussion.itely
 #. @unnumberedsubsubsec in Documentation/es/user/percussion.itely
+#. @node in Documentation/de/user/percussion.itely
+#. @unnumberedsubsubsec in Documentation/de/user/percussion.itely
 msgid "Drum rolls"
 msgstr "Redobles"
 
@@ -6711,6 +7570,8 @@ msgstr "Redobles"
 #. @unnumberedsubsubsec in Documentation/user/percussion.itely
 #. @node in Documentation/es/user/percussion.itely
 #. @unnumberedsubsubsec in Documentation/es/user/percussion.itely
+#. @node in Documentation/de/user/percussion.itely
+#. @unnumberedsubsubsec in Documentation/de/user/percussion.itely
 msgid "Pitched percussion"
 msgstr "Percusión afinada"
 
@@ -6729,6 +7590,8 @@ msgstr "Pautas de percusión"
 #. @unnumberedsubsubsec in Documentation/user/percussion.itely
 #. @node in Documentation/es/user/percussion.itely
 #. @unnumberedsubsubsec in Documentation/es/user/percussion.itely
+#. @node in Documentation/de/user/percussion.itely
+#. @unnumberedsubsubsec in Documentation/de/user/percussion.itely
 msgid "Custom percussion staves"
 msgstr "Pautas de percusión personalizadas"
 
@@ -6809,20 +7672,20 @@ msgstr "Definiciones para la gaita"
 msgid "Bagpipe example"
 msgstr "Ejemplo de música de gaita"
 
-#. Documentation/user/chords.itely:654 (variable)
+#. Documentation/user/chords.itely:669 (variable)
 msgid "myChords"
 msgstr "misAcordes"
 
-#. Documentation/user/chords.itely:981 (comment)
-#. Documentation/user/chords.itely:1002 (comment)
+#. Documentation/user/chords.itely:999 (comment)
+#. Documentation/user/chords.itely:1020 (comment)
 msgid "Put notes on same Staff as figures"
 msgstr "Poner las notas en el mismo pentagrama que los números"
 
-#. Documentation/user/chords.itely:1061 (comment)
+#. Documentation/user/chords.itely:1083 (comment)
 msgid "The extenders are correct here, with the same rhythm as the bass"
 msgstr "Los extensores aquí son correctos, con el mismo ritmo que el bajo"
 
-#. Documentation/user/chords.itely:1073 (comment)
+#. Documentation/user/chords.itely:1095 (comment)
 msgid "The extenders are incorrect here, even though the timing is the same"
 msgstr "Los extensores aquí son incorrectos, aunque la medida es la misma"
 
@@ -6939,6 +7802,7 @@ msgstr "Introducción al bajo cifrado"
 
 #. @rglos in Documentation/user/chords.itely
 #. @rglos in Documentation/es/user/chords.itely
+#. @rglos in Documentation/de/user/chords.itely
 msgid "figured bass"
 msgstr "bajo cifrado"
 
@@ -6964,10 +7828,39 @@ msgstr "Introducir el bajo cifrado"
 msgid "Displaying figured bass"
 msgstr "Imprimir el bajo cifrado"
 
-#. Documentation/user/ancient.itely:821 (variable)
+#. Documentation/user/ancient.itely:357 (context id)
+msgid "discantus"
+msgstr "discantus"
+
+#. Documentation/user/ancient.itely:823 (variable)
 msgid "ficta"
 msgstr "ficta"
 
+#. Documentation/user/ancient.itely:976 (context id)
+msgid "cantus"
+msgstr "cantus"
+
+#. Documentation/user/ancient.itely:2399 (variable)
+#. Documentation/user/ancient.itely:2434 (variable)
+#. Documentation/user/ancient.itely:2502 (context id)
+#. input/lsr/ancient-notation-template----modern-transcription-of-gregorian-music.ly:37 (variable)
+msgid "chant"
+msgstr "canto"
+
+#. Documentation/user/ancient.itely:2405 (variable)
+#. Documentation/user/ancient.itely:2445 (variable)
+#. input/lsr/ancient-notation-template----modern-transcription-of-gregorian-music.ly:44 (variable)
+msgid "verba"
+msgstr "verba"
+
+#. Documentation/user/ancient.itely:2487 (variable)
+msgid "spiritus"
+msgstr "spiritus"
+
+#. Documentation/user/ancient.itely:2495 (variable)
+msgid "spirLyr"
+msgstr "letraSpir"
+
 #. @node in Documentation/user/ancient.itely
 #. @section in Documentation/user/ancient.itely
 #. @node in Documentation/fr/user/ancient.itely
@@ -7120,7 +8013,7 @@ msgstr "Ligaduras mensurales blancas"
 #. @node in Documentation/es/user/ancient.itely
 #. @subsection in Documentation/es/user/ancient.itely
 msgid "Typesetting Gregorian chant"
-msgstr "Tipografiado del canto Gregoriano"
+msgstr "Tipografiado del canto gregoriano"
 
 #. @node in Documentation/user/ancient.itely
 #. @unnumberedsubsubsec in Documentation/user/ancient.itely
@@ -7131,21 +8024,21 @@ msgstr "Tipografiado del canto Gregoriano"
 #. @node in Documentation/de/user/ancient.itely
 #. @unnumberedsubsubsec in Documentation/de/user/ancient.itely
 msgid "Gregorian chant contexts"
-msgstr "Contextos del Canto Gregoriano"
+msgstr "Contextos del canto gregoriano"
 
 #. @node in Documentation/user/ancient.itely
 #. @unnumberedsubsubsec in Documentation/user/ancient.itely
 #. @node in Documentation/es/user/ancient.itely
 #. @unnumberedsubsubsec in Documentation/es/user/ancient.itely
 msgid "Gregorian clefs"
-msgstr "Claves de canto Gregoriano"
+msgstr "Claves de canto gregoriano"
 
 #. @node in Documentation/user/ancient.itely
 #. @unnumberedsubsubsec in Documentation/user/ancient.itely
 #. @node in Documentation/es/user/ancient.itely
 #. @unnumberedsubsubsec in Documentation/es/user/ancient.itely
 msgid "Gregorian accidentals and key signatures"
-msgstr "Alteraciones y armaduras de canto Gregoriano"
+msgstr "Alteraciones y armaduras de canto gregoriano"
 
 #  ? FVD
 #. @node in Documentation/user/ancient.itely
@@ -7164,7 +8057,7 @@ msgstr "Divisiones"
 #. @node in Documentation/es/user/ancient.itely
 #. @unnumberedsubsubsec in Documentation/es/user/ancient.itely
 msgid "Gregorian articulation signs"
-msgstr "Articulaciones del canto Gregoriano"
+msgstr "Articulaciones del canto gregoriano"
 
 #. @node in Documentation/user/ancient.itely
 #. @unnumberedsubsubsec in Documentation/user/ancient.itely
@@ -7218,7 +8111,7 @@ msgstr "Disposición tipo «Mensurstriche»"
 #. @node in Documentation/de/user/ancient.itely
 #. @unnumberedsubsubsec in Documentation/de/user/ancient.itely
 msgid "Transcribing Gregorian chant"
-msgstr "Transcripción de Canto Gregoriano"
+msgstr "Transcripción de canto gregoriano"
 
 #. @node in Documentation/user/ancient.itely
 #. @unnumberedsubsubsec in Documentation/user/ancient.itely
@@ -7330,11 +8223,11 @@ msgstr "Ejemplo de música árabe"
 msgid "Further reading"
 msgstr "Lecturas adicionales"
 
-#. Documentation/user/input.itely:494 (comment)
+#. Documentation/user/input.itely:525 (comment)
 msgid "not printed"
 msgstr "no impreso"
 
-#. Documentation/user/input.itely:911 (variable)
+#. Documentation/user/input.itely:957 (variable)
 msgid "allLyrics"
 msgstr "letraCompleta"
 
@@ -7671,46 +8564,48 @@ msgstr "Balance entre instrumentos (i)"
 #. @subsection in Documentation/user/input.itely
 #. @node in Documentation/es/user/input.itely
 #. @subsection in Documentation/es/user/input.itely
+#. @node in Documentation/de/user/input.itely
+#. @subsection in Documentation/de/user/input.itely
 msgid "Percussion in MIDI"
 msgstr "Percusión en MIDI"
 
-#. Documentation/user/spacing.itely:872 (comment)
+#. Documentation/user/spacing.itely:864 (comment)
 msgid "this does nothing"
 msgstr "esto no hace nada"
 
-#. Documentation/user/spacing.itely:873 (comment)
+#. Documentation/user/spacing.itely:865 (comment)
 msgid "a break here would work"
 msgstr "un salto aquí funcionaría"
 
-#. Documentation/user/spacing.itely:874 (comment)
+#. Documentation/user/spacing.itely:866 (comment)
 msgid "as does this break"
 msgstr "como por ejemplo este salto"
 
-#. Documentation/user/spacing.itely:886 (comment)
+#. Documentation/user/spacing.itely:878 (comment)
 msgid "now the break is allowed"
 msgstr "ahora se permite el salto de línea"
 
-#. Documentation/user/spacing.itely:1719 (comment)
+#. Documentation/user/spacing.itely:1757 (comment)
 msgid "this time the text will be closer to the staff"
 msgstr "esta vez el texto estará más cerca del pentagrama"
 
-#. Documentation/user/spacing.itely:1721 (comment)
+#. Documentation/user/spacing.itely:1759 (comment)
 msgid "by setting outside-staff-priority to a non-number,"
 msgstr "ajustando el valor de outside-staff-priority a algo que no sea un número,"
 
-#. Documentation/user/spacing.itely:1722 (comment)
+#. Documentation/user/spacing.itely:1760 (comment)
 msgid "we disable the automatic collision avoidance"
 msgstr "desactivamos la evitación automática de colisiones"
 
-#. Documentation/user/spacing.itely:1725 (comment)
+#. Documentation/user/spacing.itely:1763 (comment)
 msgid "now they will collide"
 msgstr "ahora se producirá la colisión"
 
-#. Documentation/user/spacing.itely:1750 (comment)
+#. Documentation/user/spacing.itely:1789 (comment)
 msgid "the markup is too close to the following note"
 msgstr "el marcado está demasiado cerca de la nota siguiente"
 
-#. Documentation/user/spacing.itely:1753 (comment)
+#. Documentation/user/spacing.itely:1793 (comment)
 msgid "setting outside-staff-horizontal-padding fixes this"
 msgstr "ajustar outside-staff-horizontal-padding corrige esto"
 
@@ -7762,6 +8657,8 @@ msgstr "Formateo de las páginas"
 #. @unnumberedsubsubsec in Documentation/user/spacing.itely
 #. @node in Documentation/es/user/spacing.itely
 #. @unnumberedsubsubsec in Documentation/es/user/spacing.itely
+#. @node in Documentation/de/user/spacing.itely
+#. @unnumberedsubsubsec in Documentation/de/user/spacing.itely
 msgid "Vertical dimensions"
 msgstr "Dimensiones verticales"
 
@@ -7769,6 +8666,8 @@ msgstr "Dimensiones verticales"
 #. @unnumberedsubsubsec in Documentation/user/spacing.itely
 #. @node in Documentation/es/user/spacing.itely
 #. @unnumberedsubsubsec in Documentation/es/user/spacing.itely
+#. @node in Documentation/de/user/spacing.itely
+#. @unnumberedsubsubsec in Documentation/de/user/spacing.itely
 msgid "Horizontal dimensions"
 msgstr "Dimensiones horizontales"
 
@@ -7776,6 +8675,8 @@ msgstr "Dimensiones horizontales"
 #. @unnumberedsubsubsec in Documentation/user/spacing.itely
 #. @node in Documentation/es/user/spacing.itely
 #. @unnumberedsubsubsec in Documentation/es/user/spacing.itely
+#. @node in Documentation/de/user/spacing.itely
+#. @unnumberedsubsubsec in Documentation/de/user/spacing.itely
 msgid "Other layout variables"
 msgstr "Otras variables de diseño de página"
 
@@ -7972,6 +8873,7 @@ msgstr "Evitar las colisiones verticales"
 #. @node in Documentation/es/user/spacing.itely
 #. @section in Documentation/es/user/spacing.itely
 #. @node in Documentation/de/user/spacing.itely
+#. @section in Documentation/de/user/spacing.itely
 msgid "Horizontal spacing"
 msgstr "Espaciado horizontal"
 
@@ -8063,83 +8965,147 @@ msgstr "Mostrar el espaciado"
 msgid "Changing spacing"
 msgstr "Cambiar el espaciado"
 
-#. Documentation/user/changing-defaults.itely:2015 (comment)
+#. Documentation/user/changing-defaults.itely:449 (context id)
+#. Documentation/user/changing-defaults.itely:452 (context id)
+#. Documentation/user/changing-defaults.itely:460 (context id)
+#. Documentation/user/changing-defaults.itely:468 (context id)
+msgid "A"
+msgstr "A"
+
+#. Documentation/user/changing-defaults.itely:449 (comment)
+msgid "Keep Voice \\\"A\\\" alive for 5 bars"
+msgstr "Mantener viva la voz \\\"A\\\" durante 5 compases"
+
+#. Documentation/user/changing-defaults.itely:450 (context id)
+#. Documentation/user/changing-defaults.itely:456 (context id)
+#. Documentation/user/changing-defaults.itely:464 (context id)
+msgid "B"
+msgstr "B"
+
+#. Documentation/user/changing-defaults.itely:450 (comment)
+msgid "Keep Voice \\\"B\\\" alive for 5 bars"
+msgstr "Mantener viva la voz \\\"B\\\" durante 5 compases"
+
+#. Documentation/user/changing-defaults.itely:461 (comment)
+msgid "voiceOneStyle continues as Voice A is kept alive"
+msgstr "voiceOneStyle permanece porque la voz A se mantiene viva"
+
+#. Documentation/user/changing-defaults.itely:465 (comment)
+msgid "voiceTwoStyle continues, as Voice \\\"B\\\" is kept alive"
+msgstr "voiceTwoStyle permanece porque la voz \\\"B\\\" se mantiene viva"
+
+#. Documentation/user/changing-defaults.itely:469 (comment)
+msgid "Voice \\\"A\\\" is still alive"
+msgstr "La voz \\\"A\\\" aún está viva"
+
+#. Documentation/user/changing-defaults.itely:487 (variable)
+#. Documentation/user/changing-defaults.itely:498 (context id)
+#. Documentation/user/changing-defaults.itely:504 (context id)
+#. Documentation/user/changing-defaults.itely:506 (context id)
+#. Documentation/user/changing-defaults.itely:509 (context id)
+#. Documentation/user/changing-defaults.itely:531 (variable)
+#. Documentation/user/changing-defaults.itely:547 (context id)
+msgid "accompaniment"
+msgstr "acompanamiento"
+
+#. Documentation/user/changing-defaults.itely:488 (variable)
+#. Documentation/user/changing-defaults.itely:537 (variable)
+msgid "words"
+msgstr "letra"
+
+#. Documentation/user/changing-defaults.itely:495 (comment)
+msgid "Keep Voice \\\"melody\\\" alive for 4 bars"
+msgstr "Mantener con vida la voz \\\"melodia\\\" durante 4 compases"
+
+#. Documentation/user/changing-defaults.itely:526 (comment)
+#. Documentation/user/changing-defaults.itely:528 (comment)
+msgid "skip a bar"
+msgstr "saltar un compás"
+
+#. Documentation/user/changing-defaults.itely:2145 (comment)
 msgid "increase the length of the tie"
 msgstr "aumentar la longitud de la ligadura"
 
-#. Documentation/user/changing-defaults.itely:2024 (comment)
+#. Documentation/user/changing-defaults.itely:2154 (comment)
 msgid "increase the length of the rest bar"
 msgstr "aumentar la longitud del compás en silencio"
 
-#. Documentation/user/changing-defaults.itely:2032 (comment)
+#. Documentation/user/changing-defaults.itely:2162 (comment)
 msgid "increase the length of the hairpin"
 msgstr "aumentar la longitud del regulador"
 
-#. Documentation/user/changing-defaults.itely:2060 (comment)
+#. Documentation/user/changing-defaults.itely:2190 (comment)
 msgid "default"
 msgstr "predeterminado"
 
-#. Documentation/user/changing-defaults.itely:2063 (comment)
-#. Documentation/user/changing-defaults.itely:2076 (comment)
+#. Documentation/user/changing-defaults.itely:2193 (comment)
+#. Documentation/user/changing-defaults.itely:2206 (comment)
 msgid "not effective alone"
 msgstr "no es efectivo por sí solo"
 
-#. Documentation/user/changing-defaults.itely:2067 (comment)
-#. Documentation/user/changing-defaults.itely:2080 (comment)
+#. Documentation/user/changing-defaults.itely:2197 (comment)
+#. Documentation/user/changing-defaults.itely:2210 (comment)
 msgid "effective only when both overrides are present"
 msgstr "es efectivo sólo cuando las dos sobreescrituras están presentes"
 
-#. Documentation/user/changing-defaults.itely:2461 (comment)
+#. Documentation/user/changing-defaults.itely:2585 (comment)
 msgid "Remove bar line at the end of the current line"
 msgstr "Quitar la barra de compás al final de la línea en curso"
 
-#. Documentation/user/changing-defaults.itely:2507 (comment)
+#. Documentation/user/changing-defaults.itely:2631 (comment)
 msgid "Try to remove all key signatures"
 msgstr "Intentar quitar todas las armaduras"
 
-#. Documentation/user/changing-defaults.itely:2926 (comment)
+#. Documentation/user/changing-defaults.itely:3051 (comment)
 msgid "move horizontally left"
 msgstr "desplazar a la izquierda"
 
-#. Documentation/user/changing-defaults.itely:2928 (comment)
+#. Documentation/user/changing-defaults.itely:3053 (comment)
 msgid "move vertically up"
 msgstr "desplazar hacia arriba"
 
-#. Documentation/user/changing-defaults.itely:2929 (comment)
+#. Documentation/user/changing-defaults.itely:3054 (comment)
 msgid "third finger"
 msgstr "dedo tercero"
 
-#. Documentation/user/changing-defaults.itely:2975 (comment)
+#. Documentation/user/changing-defaults.itely:3103 (comment)
+#. Documentation/user/changing-defaults.itely:3135 (comment)
+#. input/lsr/aligning-marks-with-various-notation-objects.ly:39 (comment)
 msgid "the RehearsalMark will be centered above the Clef"
 msgstr "la RehearsalMark se centra sobre la clave"
 
-#. Documentation/user/changing-defaults.itely:2981 (comment)
+#. Documentation/user/changing-defaults.itely:3109 (comment)
+#. input/lsr/aligning-marks-with-various-notation-objects.ly:46 (comment)
 msgid "the RehearsalMark will be centered above the TimeSignature"
 msgstr "la RehearsalMark se centra sobre el compás"
 
-#. Documentation/user/changing-defaults.itely:2995 (comment)
+#. Documentation/user/changing-defaults.itely:3129 (comment)
+msgid "the RehearsalMark will be centered above the Key Signature"
+msgstr "la RehearsalMark se centra sobre la armadura"
+
+#. Documentation/user/changing-defaults.itely:3149 (comment)
 msgid "The RehearsalMark will be centered above the KeySignature"
 msgstr "la RehearsalMark se centra sobre la armadura"
 
-#. Documentation/user/changing-defaults.itely:3002 (comment)
-#. Documentation/user/changing-defaults.itely:3018 (comment)
-#. Documentation/user/changing-defaults.itely:3025 (comment)
+#. Documentation/user/changing-defaults.itely:3156 (comment)
+#. Documentation/user/changing-defaults.itely:3172 (comment)
+#. Documentation/user/changing-defaults.itely:3179 (comment)
 msgid "The RehearsalMark will be aligned with the left edge of the KeySignature"
 msgstr "la RehearsalMark se alinea por la izquierda con la armadura"
 
-#. Documentation/user/changing-defaults.itely:3007 (comment)
+#. Documentation/user/changing-defaults.itely:3161 (comment)
 msgid "The RehearsalMark will be aligned with the right edge of the KeySignature"
 msgstr "la RehearsalMark se alinea por la derecha con la armadura"
 
-#. Documentation/user/changing-defaults.itely:3019 (comment)
+#. Documentation/user/changing-defaults.itely:3173 (comment)
 msgid "and then shifted right by 3.5 staff-spaces"
 msgstr "y se desplaza 3.5 espacios a la derecha"
 
-#. Documentation/user/changing-defaults.itely:3026 (comment)
+#. Documentation/user/changing-defaults.itely:3180 (comment)
 msgid "and then shifted left by 2 staff-spaces"
 msgstr "y se desplaza 2 espacios a la izquierda"
 
-#. Documentation/user/changing-defaults.itely:3075 (variable)
+#. Documentation/user/changing-defaults.itely:3228 (variable)
 msgid "XinO"
 msgstr "X_O"
 
@@ -8167,6 +9133,8 @@ msgstr "Contextos de interpretación"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8176,6 +9144,8 @@ msgstr "Score: el contexto maestro"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8185,6 +9155,8 @@ msgstr "Contextos del nivel superior: contenedores de pentagramas"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8194,6 +9166,8 @@ msgstr "Contextos de nivel intermedio: pentagramas"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8201,6 +9175,13 @@ msgstr "Contextos de nivel intermedio: pentagramas"
 msgid "Bottom-level contexts - voices"
 msgstr "Contextos del nivel más bajo: voces"
 
+#. @node in Documentation/user/changing-defaults.itely
+#. @subsection in Documentation/user/changing-defaults.itely
+#. @node in Documentation/es/user/changing-defaults.itely
+#. @subsection in Documentation/es/user/changing-defaults.itely
+msgid "Keeping contexts alive"
+msgstr "Mantener vivos los contextos"
+
 #. @node in Documentation/user/changing-defaults.itely
 #. @subsection in Documentation/user/changing-defaults.itely
 #. @node in Documentation/fr/user/changing-defaults.itely
@@ -8247,6 +9228,8 @@ msgstr "Alinear los contextos"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @section in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @section in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @section in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8290,6 +9273,8 @@ msgstr "Determinar la propiedad del grob"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @subsection in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @subsection in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8299,6 +9284,8 @@ msgstr "Convenciones de nombres"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @section in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @section in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @section in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8308,6 +9295,8 @@ msgstr "Modificar las propiedades"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @subsection in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @subsection in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8337,7 +9326,7 @@ msgid "The override command"
 msgstr "La instrucción override"
 
 #. @subsection in Documentation/user/changing-defaults.itely
-#. @section in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
 #. @subsection in Documentation/es/user/changing-defaults.itely
 #. @subsection in Documentation/de/user/changing-defaults.itely
 msgid "The @code{\\override} command"
@@ -8373,6 +9362,8 @@ msgstr "@code{\\set} frente a @code{\\override}"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @section in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @section in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @section in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8382,6 +9373,8 @@ msgstr "Conceptos y propiedades útiles"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @subsection in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @subsection in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8391,6 +9384,8 @@ msgstr "Modos de entrada"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @subsection in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @subsection in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8400,6 +9395,8 @@ msgstr "Dirección y posición"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @subsection in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @subsection in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8409,14 +9406,20 @@ msgstr "Distancias y medidas"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @subsection in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @subsection in Documentation/es/user/changing-defaults.itely
+#. @node in Documentation/de/user/changing-defaults.itely
+#. @subsection in Documentation/de/user/changing-defaults.itely
 msgid "Staff symbol properties"
 msgstr "Propiedades del símbolo del pentagrama"
 
 # fuzzy. FVD
 #. @node in Documentation/user/changing-defaults.itely
 #. @subsection in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @subsection in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8425,24 +9428,34 @@ msgid "Spanners"
 msgstr "Objetos de extensión"
 
 #. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/de/user/changing-defaults.itely
 msgid "Using the @code{spanner-interface}"
 msgstr "Uso del @code{spanner-interface}"
 
 #. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/de/user/changing-defaults.itely
 msgid "Using the @code{line-spanner-interface}"
 msgstr "Uso del @code{line-spanner-interface}"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @subsection in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @subsection in Documentation/es/user/changing-defaults.itely
+#. @node in Documentation/de/user/changing-defaults.itely
+#. @subsection in Documentation/de/user/changing-defaults.itely
 msgid "Visibility of objects"
 msgstr "Visibilidad de los objetos"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8452,6 +9465,8 @@ msgstr "Eliminar el sello"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8461,6 +9476,8 @@ msgstr "Hacer transparentes los objetos"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8470,6 +9487,8 @@ msgstr "Pintar los objetos de blanco"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8479,6 +9498,8 @@ msgstr "Uso de break-visibility (visibilidad en el salto)"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8488,6 +9509,8 @@ msgstr "Consideraciones especiales"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @subsection in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @subsection in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8497,6 +9520,8 @@ msgstr "Estilos de línea"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @subsection in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @subsection in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8506,20 +9531,30 @@ msgstr "Rotación de objetos"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
+#. @node in Documentation/de/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/de/user/changing-defaults.itely
 msgid "Rotating layout objects"
 msgstr "Rotación de objetos de presentación"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
+#. @node in Documentation/de/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/de/user/changing-defaults.itely
 msgid "Rotating markup"
 msgstr "Rotación de elementos de marcado"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @section in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @section in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @section in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8529,6 +9564,8 @@ msgstr "Trucos avanzados"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @subsection in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @subsection in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8538,41 +9575,59 @@ msgstr "Alineación de objetos"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
+#. @node in Documentation/de/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/de/user/changing-defaults.itely
 msgid "Setting @code{X-offset} and @code{Y-offset} directly"
 msgstr "Establecer directamente @code{X-offset} y @code{Y-offset}"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
+#. @node in Documentation/de/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/de/user/changing-defaults.itely
 msgid "Using the @code{side-position-interface}"
 msgstr "Uso del @code{side-position-interface}"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
+#. @node in Documentation/de/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/de/user/changing-defaults.itely
 msgid "Using the @code{self-alignment-interface}"
 msgstr "Uso del @code{self-alignment-interface}"
 
 #. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/de/user/changing-defaults.itely
 msgid "Using the @code{aligned-on-parent} procedures"
 msgstr "Uso de los procedimientos @code{aligned-on-parent}"
 
 #. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/de/user/changing-defaults.itely
 msgid "Using the @code{centered-on-parent} procedures"
 msgstr "Uso de los procedimientos @code{centered-on-parent}"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
-msgid "Using the @code{break-aligned-interface}"
-msgstr "Uso del @code{break-aligned-interface}"
+msgid "Using the @code{break-alignable-interface}"
+msgstr "Uso del @code{break-alignable-interface}"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @subsection in Documentation/user/changing-defaults.itely
@@ -8587,6 +9642,8 @@ msgstr "Agrupación vertical de objetos gráficos"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @subsection in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @subsection in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8596,6 +9653,8 @@ msgstr "Modificación de los sellos"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @subsection in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @subsection in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8605,8 +9664,12 @@ msgstr "Modificación de las formas"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
+#. @node in Documentation/de/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/de/user/changing-defaults.itely
 msgid "Modifying ties and slurs"
 msgstr "Modificación de ligaduras de unión y de expresión"
 
@@ -8932,21 +9995,21 @@ msgid "Using Scheme code instead of \\tweak"
 msgstr "Usar código de Scheme en lugar de \\tweak"
 
 #. @section in Documentation/user/programming-interface.itely
-#. @subsection in Documentation/fr/user/changing-defaults.itely
+#. @section in Documentation/fr/user/programming-interface.itely
 #. @section in Documentation/es/user/programming-interface.itely
-#. @subsection in Documentation/de/user/programming-interface.itely
+#. @section in Documentation/de/user/programming-interface.itely
 msgid "Using Scheme code instead of @code{\\tweak}"
 msgstr "Usar código de Scheme en lugar de @code{\\tweak}"
 
 # ??FVD
 #. @node in Documentation/user/programming-interface.itely
 #. @section in Documentation/user/programming-interface.itely
-#. @node in Documentation/fr/user/changing-defaults.itely
-#. @subsection in Documentation/fr/user/changing-defaults.itely
+#. @node in Documentation/fr/user/programming-interface.itely
+#. @section in Documentation/fr/user/programming-interface.itely
 #. @node in Documentation/es/user/programming-interface.itely
 #. @section in Documentation/es/user/programming-interface.itely
 #. @node in Documentation/de/user/programming-interface.itely
-#. @subsection in Documentation/de/user/programming-interface.itely
+#. @section in Documentation/de/user/programming-interface.itely
 msgid "Difficult tweaks"
 msgstr "Trucos difíciles"
 
@@ -8985,15 +10048,23 @@ msgstr "Carta de nombres de acordes"
 
 #. @node in Documentation/user/notation-appendices.itely
 #. @appendixsec in Documentation/user/notation-appendices.itely
+#. @node in Documentation/fr/user/notation-appendices.itely
+#. @appendixsec in Documentation/fr/user/notation-appendices.itely
 #. @node in Documentation/es/user/notation-appendices.itely
 #. @appendixsec in Documentation/es/user/notation-appendices.itely
+#. @node in Documentation/de/user/notation-appendices.itely
+#. @appendixsec in Documentation/de/user/notation-appendices.itely
 msgid "Common chord modifiers"
 msgstr "Modificadores de acorde más usuales"
 
 #. @node in Documentation/user/notation-appendices.itely
 #. @appendixsec in Documentation/user/notation-appendices.itely
+#. @node in Documentation/fr/user/notation-appendices.itely
+#. @appendixsec in Documentation/fr/user/notation-appendices.itely
 #. @node in Documentation/es/user/notation-appendices.itely
 #. @appendixsec in Documentation/es/user/notation-appendices.itely
+#. @node in Documentation/de/user/notation-appendices.itely
+#. @appendixsec in Documentation/de/user/notation-appendices.itely
 msgid "Predefined fretboard diagrams"
 msgstr "Diagramas predefinidos de trastes"
 
@@ -9089,8 +10160,12 @@ msgstr "Lista de articulaciones"
 
 #. @node in Documentation/user/notation-appendices.itely
 #. @appendixsec in Documentation/user/notation-appendices.itely
+#. @node in Documentation/fr/user/notation-appendices.itely
+#. @appendixsec in Documentation/fr/user/notation-appendices.itely
 #. @node in Documentation/es/user/notation-appendices.itely
 #. @appendixsec in Documentation/es/user/notation-appendices.itely
+#. @node in Documentation/de/user/notation-appendices.itely
+#. @appendixsec in Documentation/de/user/notation-appendices.itely
 msgid "Percussion notes"
 msgstr "Notas de percusión"
 
@@ -9151,7 +10226,7 @@ msgid "Cheat sheet"
 msgstr "Hoja de referencia rápida"
 
 #. @top in Documentation/fr/user/lilypond-learning.tely
-msgid "GNU LilyPond --- manuel d'initiation"
+msgid "GNU LilyPond --- Manuel d'initiation"
 msgstr ""
 
 #. @subsubheading in Documentation/fr/user/macros.itexi
@@ -9185,43 +10260,19 @@ msgstr ""
 
 #. @node in Documentation/fr/user/tweaks.itely
 #. @subsection in Documentation/fr/user/tweaks.itely
-#. @node in Documentation/de/user/tweaks.itely
-#. @subsection in Documentation/de/user/tweaks.itely
 msgid "Outside staff objects"
 msgstr "Objetos fuera del pentagrama"
 
-#. @node in Documentation/fr/user/tweaks.itely
-#. @section in Documentation/fr/user/tweaks.itely
-msgid "Common tweaks"
-msgstr ""
-
-#. @node in Documentation/fr/user/working.itely
-#. @subsection in Documentation/fr/user/working.itely
-#. @node in Documentation/es/user/working.itely
-#. @subsection in Documentation/es/user/working.itely
-#. @node in Documentation/de/user/working.itely
-#. @subsection in Documentation/de/user/working.itely
-msgid "Updating old files"
-msgstr "Actualizar archivos antiguos"
-
 #. @top in Documentation/fr/user/lilypond-program.tely
-msgid "GNU LilyPond --- utilisation des programmes"
-msgstr "GNU LilyPond --- utilisation des programmes"
-
-#. @node in Documentation/fr/user/setup.itely
-#. @subsection in Documentation/fr/user/setup.itely
-#. @node in Documentation/de/user/setup.itely
-#. @subsection in Documentation/de/user/setup.itely
-msgid "MacOS X on the command-line"
-msgstr "MacOS X sobre línea de órdenes"
+msgid "GNU LilyPond --- Utilisation des programmes"
+msgstr ""
 
 #. @section in Documentation/fr/user/running.itely
-#. @section in Documentation/de/user/running.itely
 msgid "Updating with @command{convert-ly}"
 msgstr "Actualizar ficheros con @command{convert-ly}"
 
 #. @top in Documentation/fr/user/lilypond.tely
-msgid "GNU LilyPond --- manuel de notation"
+msgid "GNU LilyPond --- Manuel de notation"
 msgstr ""
 
 #. @node in Documentation/fr/user/repeats.itely
@@ -9395,7 +10446,6 @@ msgid "Baroque rhythmic notation"
 msgstr "Notación rítmica barroca"
 
 #. @section in Documentation/fr/user/spacing.itely
-#. @section in Documentation/de/user/spacing.itely
 msgid "Horizontal Spacing"
 msgstr "Espaciado horizontal"
 
@@ -9410,7 +10460,7 @@ msgstr "Ajuste fino de la presentación dentro de los contextos"
 msgid "Constructing a tweak"
 msgstr "Construir un truco"
 
-#. @node in Documentation/fr/user/changing-defaults.itely
+#. @node in Documentation/fr/user/programming-interface.itely
 msgid "Using Scheme code instead of tweak"
 msgstr ""
 
@@ -9448,9 +10498,12 @@ msgstr "Comportamiento automático"
 msgid "Suggestions for writing LilyPond files"
 msgstr "Sugerencias para escribir archivos de LilyPond"
 
-#. @rglos in Documentation/es/user/working.itely
-msgid "baritone"
-msgstr "barítono"
+#. @node in Documentation/es/user/working.itely
+#. @subsection in Documentation/es/user/working.itely
+#. @node in Documentation/de/user/working.itely
+#. @subsection in Documentation/de/user/working.itely
+msgid "Updating old files"
+msgstr "Actualizar archivos antiguos"
 
 #. @top in Documentation/es/user/lilypond-program.tely
 msgid "GNU LilyPond: Manual de utilización del programa"
@@ -9464,19 +10517,10 @@ msgstr ""
 msgid "El tipografiador de música"
 msgstr ""
 
-#. @rglos in Documentation/es/user/pitches.itely
-msgid "semitone"
-msgstr "semitono"
-
 #. @top in Documentation/de/user/lilypond-learning.tely
 msgid "GNU LilyPond -- Handbuch zum Lernen"
 msgstr ""
 
-#. @node in Documentation/de/user/fundamental.itely
-#. @section in Documentation/de/user/fundamental.itely
-msgid "How LilyPond files work"
-msgstr "Cómo funcionan los archivos de LilyPond"
-
 #. @node in Documentation/de/user/templates.itely
 #. @appendixsec in Documentation/de/user/templates.itely
 msgid "Lilypond-book templates"
@@ -9486,44 +10530,2757 @@ msgstr ""
 msgid "GNU LilyPond -- Programmbenutzung"
 msgstr ""
 
-#. @top in Documentation/de/user/lilypond.tely
-msgid "GNU LilyPond -- Das Notationsprogramm"
+#. @chapheading in Documentation/de/user/lilypond.tely
+msgid "Das Notensatzprogramm"
 msgstr ""
 
-#. @node in Documentation/de/user/staff.itely
-#. @unnumberedsubsubsec in Documentation/de/user/staff.itely
-msgid "System start delimiters"
-msgstr "Delimitadores del comienzo de un sistema"
+#. @subsubheading in Documentation/de/user/vocal.itely
+msgid "Ignorieren von Melismen"
+msgstr ""
 
 #. @node in Documentation/de/user/changing-defaults.itely
-#. @section in Documentation/de/user/changing-defaults.itely
-msgid "Common properties"
-msgstr "Propiedades más usuales"
+#. @unnumberedsubsubsec in Documentation/de/user/changing-defaults.itely
+msgid "Using the @code{break-aligned-interface}"
+msgstr "Uso del @code{break-aligned-interface}"
 
-#. @node in Documentation/de/user/changing-defaults.itely
-#. @subsection in Documentation/de/user/changing-defaults.itely
-msgid "Controlling visibility of objects"
-msgstr "Control de la visibilidad de los objetos"
+#. @top in Documentation/ja/user/lilypond-learning.tely
+msgid "GNU LilyPond --- 学習マニュアル"
+msgstr ""
 
-#. @node in Documentation/de/user/changing-defaults.itely
-#. @subsection in Documentation/de/user/changing-defaults.itely
-msgid "Modifying ends of spanners"
-msgstr "Modificación de los extremos de los extensores"
+#. @top in Documentation/ja/user/lilypond-program.tely
+msgid "GNU LilyPond --- アプリケーション使用方法"
+msgstr ""
 
-#. @node in Documentation/de/user/changing-defaults.itely
-#. @section in Documentation/de/user/changing-defaults.itely
-msgid "Discussion of specific tweaks"
-msgstr "Discusión sobre trucos específicos"
+#. input/lsr/accordion-discant-symbols.ly:34 (variable)
+msgid "discant"
+msgstr "discanto"
 
-#. @node in Documentation/de/user/changing-defaults.itely
-#. @subsection in Documentation/de/user/changing-defaults.itely
-msgid "old Contexts explained"
-msgstr "antiguo Explicación de los contextos"
+#. input/lsr/accordion-discant-symbols.ly:37 (variable)
+msgid "dot"
+msgstr "punto"
 
-#. @node in Documentation/de/user/programming-interface.itely
-#. @section in Documentation/de/user/programming-interface.itely
-msgid "TODO moved into scheme"
-msgstr "HACER trasladado al apartado sobre scheme"
+#. input/lsr/accordion-discant-symbols.ly:43 (comment)
+msgid "16 voets register"
+msgstr "registro de 16 pies"
+
+#. input/lsr/accordion-discant-symbols.ly:44 (variable)
+msgid "accBasson"
+msgstr "acordFagot"
+
+#. input/lsr/accordion-discant-symbols.ly:50 (comment)
+msgid "een korig 8 en 16 voets register"
+msgstr "registro de een korig 8 en 16 pies"
+
+#. input/lsr/accordion-discant-symbols.ly:51 (variable)
+msgid "accBandon"
+msgstr "acordBandon"
+
+#. input/lsr/accordion-discant-symbols.ly:59 (variable)
+msgid "accVCello"
+msgstr "acordVCello"
+
+#. input/lsr/accordion-discant-symbols.ly:69 (comment)
+msgid "4-8-16 voets register"
+msgstr "registro de 4-8-16 pies"
+
+#. input/lsr/accordion-discant-symbols.ly:70 (variable)
+msgid "accHarmon"
+msgstr "acordArmon"
+
+#. input/lsr/accordion-discant-symbols.ly:80 (variable)
+msgid "accTrombon"
+msgstr "acordTrombon"
+
+#. input/lsr/accordion-discant-symbols.ly:92 (comment)
+msgid "eenkorig 4 en 16 voets register"
+msgstr "registro de eenkorig 4 y 16 pies"
+
+#. input/lsr/accordion-discant-symbols.ly:93 (variable)
+msgid "accOrgan"
+msgstr "acordOrgano"
+
+#. input/lsr/accordion-discant-symbols.ly:101 (variable)
+msgid "accMaster"
+msgstr "acordMaestro"
+
+#. input/lsr/accordion-discant-symbols.ly:115 (variable)
+msgid "accAccord"
+msgstr "acordAcordeon"
+
+#. input/lsr/accordion-discant-symbols.ly:127 (variable)
+msgid "accMusette"
+msgstr "accordMusette"
+
+#. input/lsr/accordion-discant-symbols.ly:137 (variable)
+msgid "accCeleste"
+msgstr "acordCeleste"
+
+#. input/lsr/accordion-discant-symbols.ly:145 (variable)
+msgid "accOboe"
+msgstr "acordOboe"
+
+#. input/lsr/accordion-discant-symbols.ly:153 (variable)
+msgid "accClarin"
+msgstr "acordClarin"
+
+#. input/lsr/accordion-discant-symbols.ly:159 (variable)
+msgid "accPiccolo"
+msgstr "acordPiccolo"
+
+#. input/lsr/accordion-discant-symbols.ly:165 (variable)
+msgid "accViolin"
+msgstr "acordViolin"
+
+#. input/lsr/adding-a-figured-bass-above-or-below-the-notes.ly:41 (variable)
+#. input/lsr/jazz-combo-template.ly:231 (variable)
+#. input/lsr/jazz-combo-template.ly:279 (context id)
+msgid "bass"
+msgstr "bajo"
+
+#. input/lsr/adding-a-figured-bass-above-or-below-the-notes.ly:42 (variable)
+msgid "continuo"
+msgstr "continuo"
+
+#. input/lsr/adding-a-figured-bass-above-or-below-the-notes.ly:53 (context id)
+#. input/lsr/adding-a-figured-bass-above-or-below-the-notes.ly:54 (context id)
+msgid "bassStaff"
+msgstr "pentagramaBajo"
+
+#. input/lsr/adding-an-extra-staff-at-a-line-break.ly:52 (comment)
+msgid "The next line is not needed in 2.11.x or later:"
+msgstr "La línea siguiente no es necesaria en versiones 2.11.x o posteriores:"
+
+#. input/lsr/adding-drum-parts.ly:46 (variable)
+msgid "drh"
+msgstr "drh"
+
+#. input/lsr/adding-drum-parts.ly:47 (variable)
+msgid "drl"
+msgstr "drl"
+
+#. input/lsr/adding-drum-parts.ly:48 (variable)
+msgid "timb"
+msgstr "timb"
+
+#. input/lsr/adding-fingerings-to-tablatures.ly:25 (variable)
+msgid "threeTwo"
+msgstr "tresDos"
+
+#. input/lsr/adding-fingerings-to-tablatures.ly:32 (variable)
+msgid "threeFour"
+msgstr "tresCuatro"
+
+#. input/lsr/adding-the-current-date-to-a-score.ly:29 (comment)
+msgid "first, define a variable to hold the formatted date:"
+msgstr "primero definimos una variable para almacenar la fecha con formato:"
+
+#. input/lsr/adding-the-current-date-to-a-score.ly:30 (variable)
+msgid "date"
+msgstr "fecha"
+
+#. input/lsr/adding-the-current-date-to-a-score.ly:30 (comment)
+msgid "d-%m-%Y\\\" (localtime (current-time)))"
+msgstr ""
+
+#. input/lsr/adding-the-current-date-to-a-score.ly:32 (comment)
+msgid "use it in the title block:"
+msgstr "usarla en el bloque de título:"
+
+#. input/lsr/adding-the-current-date-to-a-score.ly:43 (comment)
+msgid "and use it in a \\markup block:"
+msgstr "y usarla en un bloque \\markup:"
+
+#. input/lsr/additional-voices-to-avoid-collisions.ly:27 (variable)
+msgid "voiceFive"
+msgstr "vozCinco"
+
+#. input/lsr/adjusting-lyrics-vertical-spacing.ly:30 (comment)
+msgid "Default layout:"
+msgstr "Diseño predeterminado:"
+
+#. input/lsr/adjusting-lyrics-vertical-spacing.ly:39 (comment)
+msgid "Reducing the minimum space below the staff and above the lyrics:"
+msgstr "Reducir el espacio mínimo bajo el pentagrama y sobre la letra:"
+
+#. input/lsr/aligning-marks-with-various-notation-objects.ly:54 (comment)
+msgid "the RehearsalMark will be centered above the KeySignature"
+msgstr "la RehearsalMark se centra sobre la armadura"
+
+#. input/lsr/aligning-marks-with-various-notation-objects.ly:65 (comment)
+#. input/lsr/aligning-marks-with-various-notation-objects.ly:77 (comment)
+msgid "the RehearsalMark will be aligned with the left edge of the KeySignature"
+msgstr "la RehearsalMark se alinea por la izquierda con la armadura"
+
+#. input/lsr/aligning-marks-with-various-notation-objects.ly:71 (comment)
+msgid "the RehearsalMark will be aligned with the right edge of the KeySignature"
+msgstr "la RehearsalMark se alinea por la derecha con la armadura"
+
+#. input/lsr/aligning-marks-with-various-notation-objects.ly:78 (comment)
+msgid "and then shifted right by one unit."
+msgstr "y se desplaza una unidad a la derecha."
+
+#. input/lsr/ancient-fonts.ly:33 (variable)
+#. input/lsr/ancient-fonts.ly:33 (context id)
+msgid "upperStaff"
+msgstr "pentagramaSuperior"
+
+#. input/lsr/ancient-fonts.ly:45 (comment)
+msgid "\\break % 1 (8*1)"
+msgstr ""
+
+#. input/lsr/ancient-fonts.ly:56 (comment)
+msgid "\\break %2 (8*1)"
+msgstr ""
+
+#. input/lsr/ancient-fonts.ly:68 (comment)
+msgid "\\break % 3 (8*1)"
+msgstr ""
+
+#. input/lsr/ancient-fonts.ly:83 (comment)
+msgid "\\break % 4 (8*1)"
+msgstr ""
+
+#. input/lsr/ancient-fonts.ly:92 (comment)
+#. input/lsr/ancient-fonts.ly:154 (comment)
+msgid "\\break % 5 (8*1)"
+msgstr ""
+
+#. input/lsr/ancient-fonts.ly:106 (comment)
+#. input/lsr/ancient-fonts.ly:169 (comment)
+msgid "\\break % 6 (8*1)"
+msgstr ""
+
+#. input/lsr/ancient-fonts.ly:115 (comment)
+#. input/lsr/ancient-fonts.ly:179 (comment)
+msgid "\\break % 7 (8*1)"
+msgstr ""
+
+#. input/lsr/ancient-fonts.ly:122 (comment)
+msgid "\\break % 8 (8*1)"
+msgstr ""
+
+#. input/lsr/ancient-fonts.ly:125 (comment)
+msgid "\\break % 12 (32*1)"
+msgstr ""
+
+#. input/lsr/ancient-fonts.ly:130 (variable)
+#. input/lsr/ancient-fonts.ly:130 (context id)
+msgid "lowerStaff"
+msgstr "pentagramaInferior"
+
+#. input/lsr/ancient-fonts.ly:140 (comment)
+msgid "\\break % 2 (16*1)"
+msgstr ""
+
+#. input/lsr/ancient-fonts.ly:145 (comment)
+msgid "\\break % 4 (16*1)"
+msgstr ""
+
+#. input/lsr/ancient-fonts.ly:184 (comment)
+msgid "\\break % 9 (16*1)"
+msgstr ""
+
+#. input/lsr/ancient-fonts.ly:186 (comment)
+msgid "lig"
+msgstr "lig"
+
+#. input/lsr/ancient-fonts.ly:190 (comment)
+msgid "\\break % 11 (16*1)"
+msgstr ""
+
+#. input/lsr/ancient-fonts.ly:201 (comment)
+msgid "\\break % 12 (8*1)"
+msgstr ""
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:62 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:109 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:128 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:145 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:164 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:179 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:200 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:213 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:232 (comment)
+#. input/lsr/incipit.ly:19 (variable)
+#. input/lsr/incipit.ly:189 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:212 (comment)
+msgid "incipit"
+msgstr "incipit"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:64 (comment)
+msgid "tight spacing"
+msgstr "espaciado apretado"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:71 (comment)
+msgid "turn off bar lines"
+msgstr "oculter líneas divisorias"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:75 (comment)
+msgid "need this extra \\skip such that clef change comes"
+msgstr "se necesita este \\skip adicional tal que el cambio de clave aparezca"
+
+# También Líneas divisorias. FVD
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:76 (comment)
+msgid "after bar line"
+msgstr "después de la barra de compás"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:80 (comment)
+msgid "CHECK: no effect?"
+msgstr "COMPROBAR: ¿no hace efecto?"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:81 (comment)
+msgid "turn bar lines on again"
+msgstr "activar de nuevo las barras de compás"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:89 (comment)
+msgid "FIXME: setting printKeyCancellation back to #t must not"
+msgstr "ARREGLAR: esablecer de nuevo printKeyCancellation a #t no debe"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:90 (comment)
+msgid "occur in the first bar after the incipit.  Dto. for forceClef."
+msgstr "ocurrir en el primer compás después del incipit. Lo mismo para forceClef."
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:91 (comment)
+msgid "Therefore, we need an extra \\skip."
+msgstr "Por tanto, necesitamos un \\skip adicional."
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:96 (comment)
+#. input/lsr/incipit.ly:62 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:37 (comment)
+msgid "the actual music"
+msgstr "la música en sí"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:98 (comment)
+#. input/lsr/incipit.ly:65 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:39 (comment)
+msgid "let finis bar go through all staves"
+msgstr "hacer que la línea de finis cruce todas las pautas"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:101 (comment)
+#. input/lsr/incipit.ly:68 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:42 (comment)
+msgid "finis bar"
+msgstr "línea de finis"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:105 (variable)
+#. input/lsr/incipit.ly:85 (variable)
+#. input/lsr/incipit.ly:220 (context id)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:47 (variable)
+msgid "discantusNotes"
+msgstr "notasDiscanto"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:111 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:148 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:154 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:168 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:182 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:184 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:193 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:204 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:216 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:73 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:83 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:96 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:103 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:138 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:163 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:187 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:189 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:214 (comment)
+msgid "two bars"
+msgstr "dos compases"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:112 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:215 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:139 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:213 (comment)
+msgid "eight bars"
+msgstr "ocho compases"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:113 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:147 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:150 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:183 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:185 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:186 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:217 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:162 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:188 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:190 (comment)
+msgid "one bar"
+msgstr "un compás"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:127 (variable)
+#. input/lsr/incipit.ly:99 (variable)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:60 (variable)
+msgid "discantusLyrics"
+msgstr "letraDiscanto"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:141 (variable)
+#. input/lsr/incipit.ly:122 (variable)
+#. input/lsr/incipit.ly:227 (context id)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:70 (variable)
+msgid "altusNotes"
+msgstr "notasAlto"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:149 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:164 (comment)
+msgid "seven bars"
+msgstr "siete compases"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:163 (variable)
+#. input/lsr/incipit.ly:136 (variable)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:82 (variable)
+msgid "altusLyrics"
+msgstr "letraAltus"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:175 (variable)
+#. input/lsr/incipit.ly:160 (variable)
+#. input/lsr/incipit.ly:234 (context id)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:90 (variable)
+msgid "tenorNotes"
+msgstr "notasTenor"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:181 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:186 (comment)
+msgid "four bars"
+msgstr "cuatro compases"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:199 (variable)
+#. input/lsr/incipit.ly:175 (variable)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:102 (variable)
+msgid "tenorLyrics"
+msgstr "letraTenor"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:209 (variable)
+#. input/lsr/incipit.ly:197 (variable)
+#. input/lsr/incipit.ly:241 (context id)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:108 (variable)
+msgid "bassusNotes"
+msgstr "notasBajo"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:231 (variable)
+#. input/lsr/incipit.ly:211 (variable)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:121 (variable)
+msgid "bassusLyrics"
+msgstr "letraBajo"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:242 (context id)
+#. input/lsr/incipit.ly:219 (context id)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:229 (context id)
+msgid "choirStaff"
+msgstr "pautaCoro"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:264 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:266 (comment)
+msgid "no bars in staves"
+msgstr "no poner barras dentro de los pentagramas"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:267 (comment)
+msgid "incipit should not start with a start delimiter"
+msgstr "el incipit no empieza con un delimitador de comienzo"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:273 (comment)
+#. input/lsr/incipit.ly:264 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:277 (comment)
+msgid "no slurs"
+msgstr "sin ligaduras de expresión"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:276 (comment)
+#. input/lsr/incipit.ly:266 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:280 (comment)
+msgid "Comment in the below \\\"\\remove\\\" command to allow line"
+msgstr "Quite el comentario de la instrucción \\\"\\remove\\\" de abajo para permitir"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:277 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:281 (comment)
+msgid "breaking also at those barlines where a note overlaps"
+msgstr "los saltos de línea también en aquellas barras donde"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:278 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:282 (comment)
+msgid "into the next bar.  The command is commented out in this"
+msgstr ""
+"se superpone una nota con el siguiente compás. La instrucción es un "
+"comentario en esta"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:279 (comment)
+#. input/lsr/incipit.ly:269 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:283 (comment)
+msgid "short example score, but especially for large scores, you"
+msgstr "partitura corta de ejemplo, pero especialmente para partituras extensas,"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:280 (comment)
+#. input/lsr/incipit.ly:270 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:284 (comment)
+msgid "will typically yield better line breaking and thus improve"
+msgstr "probablemente consiga unos saltos de línea mejores y así mejorar"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:281 (comment)
+#. input/lsr/incipit.ly:271 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:285 (comment)
+msgid "overall spacing if you comment in the following command."
+msgstr "el espaciado general si elimina el comentario de la instrucción siguiente."
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:282 (comment)
+#. input/lsr/incipit.ly:272 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:286 (comment)
+msgid "\\remove \\\"Forbid_line_break_engraver\\\""
+msgstr "\\remove \\\"Forbid_line_break_engraver\\\""
+
+#. input/lsr/applying-note-head-styles-depending-on-the-step-of-the-scale.ly:73 (variable)
+#. input/lsr/clusters.ly:27 (variable)
+msgid "fragment"
+msgstr "fragmento"
+
+#. input/lsr/automatic-beams-two-per-two-in-4-4-or-2-2-time-signature.ly:41 (comment)
+msgid "Automatic beams two per two in 4/4 or 2/2 time signature"
+msgstr "Barras automáticas dos a dos en 4/4 y 2/2"
+
+#. input/lsr/automatic-beams-two-per-two-in-4-4-or-2-2-time-signature.ly:42 (comment)
+msgid "_____"
+msgstr "_____"
+
+#. input/lsr/automatic-beams-two-per-two-in-4-4-or-2-2-time-signature.ly:43 (comment)
+msgid "Default     | | | |"
+msgstr "Predeterminado     | | | |"
+
+#. input/lsr/automatic-beams-two-per-two-in-4-4-or-2-2-time-signature.ly:44 (comment)
+msgid "_   _"
+msgstr "_   _"
+
+#. input/lsr/automatic-beams-two-per-two-in-4-4-or-2-2-time-signature.ly:45 (comment)
+msgid "Required    | | | |"
+msgstr "Necesario    | | | |"
+
+#. input/lsr/automatic-beams-two-per-two-in-4-4-or-2-2-time-signature.ly:47 (comment)
+msgid "macro for beamed two per two in 2/2 and 4/4 time signature"
+msgstr "macro para barras dos a dos en 2/2 y 4/4"
+
+#. input/lsr/automatic-beams-two-per-two-in-4-4-or-2-2-time-signature.ly:48 (variable)
+msgid "qBeam"
+msgstr "barraNegras"
+
+#. input/lsr/automatic-beams-two-per-two-in-4-4-or-2-2-time-signature.ly:63 (comment)
+msgid "Use the macro"
+msgstr "Usar el macro"
+
+#. input/lsr/avoiding-collisions-with-chord-fingerings.ly:30 (comment)
+msgid "Corrected to avoid collisions"
+msgstr "Corregido para evitar colisiones"
+
+#. input/lsr/beam-endings-in-score-context.ly:28 (comment)
+msgid "Set default beaming for all staves"
+msgstr "Establecer el barrado predeterminado para todos los pentagramas"
+
+#. input/lsr/beam-endings-in-score-context.ly:36 (comment)
+msgid "Modify beaming for just this staff"
+msgstr "Modificar el barrado sólo para este pentagrama"
+
+#. input/lsr/beam-endings-in-score-context.ly:42 (comment)
+msgid "Inherit beaming from Score context"
+msgstr "Heredar el barrado del contexto Score"
+
+#. input/lsr/beam-endings-in-score-context.ly:48 (comment)
+msgid "Modify beaming for this voice only"
+msgstr "Modificar el barrado sólo para esta voz"
+
+#. input/lsr/beam-grouping-in-7-8-time.ly:40 (comment)
+msgid "rhythm 2-3-2"
+msgstr "ritmo 2-3-2"
+
+#. input/lsr/book-parts.ly:21 (comment)
+msgid "book paper, which is inherited by all children bookparts"
+msgstr "bloque paper del book, que se hereda por todas las bookparts"
+
+#. input/lsr/book-parts.ly:24 (comment)
+msgid "Page footer: add a different part-tagline at part last page"
+msgstr ""
+"Pie de la página: añadir una línea de pie diferente para la parte en la "
+"última página de la parte"
+
+#. input/lsr/book-parts.ly:28 (comment)
+msgid "Copyright header field only on book first page."
+msgstr "Campo de cabecera Copyright sólo en la primera página del libro"
+
+#. input/lsr/book-parts.ly:32 (comment)
+msgid "Part tagline header field only on each part last page."
+msgstr "Cebecera de lína de pie de la parte sólo en la última página de cada parte"
+
+#. input/lsr/book-parts.ly:36 (comment)
+msgid "Tagline header field only on book last page."
+msgstr "Campo de cabecera Tagline sólo en la última página del libro"
+
+#. input/lsr/book-parts.ly:43 (comment)
+msgid "book header, which is inherited by the first bookpart"
+msgstr "Cabecera del libro, que se hereda por la primera bookpart"
+
+#. input/lsr/book-parts.ly:52 (comment)
+msgid "a different page breaking function may be used on each part"
+msgstr "Se puede usar una función de salto de página diferente en cada parte"
+
+#. input/lsr/breathing-signs.ly:19 (comment)
+msgid "this bar contains no \\breathe"
+msgstr "este compás no tiene ningún \\breathe"
+
+#. input/lsr/breathing-signs.ly:21 (comment)
+msgid "Modern notation:"
+msgstr "Notación moderna:"
+
+#. input/lsr/breathing-signs.ly:22 (comment)
+msgid "by default, \\breathe uses the rcomma, just as if saying:"
+msgstr "de forma predeterminada, \\breathe usa la rcomma, como si dijésemos:"
+
+#. input/lsr/breathing-signs.ly:23 (comment)
+msgid ""
+"\\override BreathingSign #'text = #(make-musicglyph-markup \\\"scripts.rcomma"
+"\\\")"
+msgstr ""
+
+#. input/lsr/breathing-signs.ly:26 (comment)
+msgid "rvarcomma and lvarcomma are variations of the default rcomma and lcomma"
+msgstr "rvarcomma y lvarcomma son variantes de las rcomma y lcomma predeterminadas"
+
+#. input/lsr/breathing-signs.ly:27 (comment)
+msgid "N.B.: must use Staff context here, since we start a Voice below"
+msgstr ""
+"Nota: aquí hay que usar el contexto de Staff pues iniciamos una Voice más "
+"abajo"
+
+#. input/lsr/breathing-signs.ly:31 (comment)
+msgid "vee"
+msgstr "uve"
+
+#. input/lsr/caesura-railtracks-with-fermata.ly:28 (comment)
+msgid "construct the symbol"
+msgstr "construir el símbolo"
+
+#. input/lsr/caesura-railtracks-with-fermata.ly:37 (comment)
+msgid "set the breathe mark back to normal"
+msgstr "volver a poner la respiración normal"
+
+#. input/lsr/center-text-below-hairpin-dynamics.ly:27 (variable)
+msgid "hairpinWithCenteredText"
+msgstr "reguladorConTextoCentrado"
+
+#. input/lsr/center-text-below-hairpin-dynamics.ly:39 (variable)
+msgid "hairpinMolto"
+msgstr "reguladorMolto"
+
+#. input/lsr/center-text-below-hairpin-dynamics.ly:40 (variable)
+msgid "hairpinMore"
+msgstr "reguladorMas"
+
+#. input/lsr/changing--flageolet-mark-size.ly:23 (variable)
+msgid "smallFlageolet"
+msgstr "flageoletPequeño"
+
+#. input/lsr/changing-the-chord-names-to-german-or-semi-german-notation.ly:34 (comment)
+msgid "The following is only here to print the names of the"
+msgstr "Lo que sigue está solamente para poder imprimir los nombres de los"
+
+#. input/lsr/changing-the-chord-names-to-german-or-semi-german-notation.ly:35 (comment)
+msgid "chords styles; it can be removed if you do not need to"
+msgstr "estilos de acorde; quítelos si no los quiere"
+
+#. input/lsr/changing-the-chord-names-to-german-or-semi-german-notation.ly:36 (comment)
+msgid "print them."
+msgstr "imprimir."
+
+#. input/lsr/changing-the-default-text-font-family.ly:17 (comment)
+msgid "change for other default global staff size. "
+msgstr "cambiar a otro tamaño global predeterminado. "
+
+#. input/lsr/changing-the-default-text-font-family.ly:19 (comment)
+#. input/lsr/engravers-one-by-one.ly:191 (comment)
+#. input/lsr/score-for-diatonic-accordion.ly:110 (comment)
+msgid "{"
+msgstr ""
+
+#. input/lsr/changing-the-default-text-font-family.ly:23 (comment)
+#. input/lsr/engravers-one-by-one.ly:194 (comment)
+#. input/lsr/score-for-diatonic-accordion.ly:111 (comment)
+#. input/lsr/score-for-diatonic-accordion.ly:233 (comment)
+#. input/lsr/string-quartet-template-with-separate-parts.ly:177 (comment)
+msgid "}"
+msgstr ""
+
+#. input/lsr/changing-the-time-signature-without-affecting-the-beaming.ly:35 (comment)
+msgid "Change time signature symbol but keep 3/4 beaming"
+msgstr "Cambio de compás manterniendo el barrado de 3/4"
+
+#. input/lsr/changing-the-time-signature-without-affecting-the-beaming.ly:36 (comment)
+msgid "due to unchanged underlying time signature"
+msgstr "a causa de que el compás subyacente no ha cambiado"
+
+#. input/lsr/changing-the-time-signature-without-affecting-the-beaming.ly:41 (comment)
+msgid "Lose 3/4 beaming now \\time has been changed"
+msgstr "Perder el barrado de 3/4 ahora que se ha cambiado el \\time"
+
+#. input/lsr/chant-or-psalms-notation.ly:23 (variable)
+msgid "stemOn"
+msgstr "plicaSi"
+
+#. input/lsr/chant-or-psalms-notation.ly:24 (variable)
+msgid "stemOff"
+msgstr "plicaNo"
+
+#. input/lsr/chord-name-exceptions.ly:24 (comment)
+msgid "modify maj9 and 6(add9)"
+msgstr "cambiar maj9 y 6(add9)"
+
+#. input/lsr/chord-name-exceptions.ly:25 (comment)
+msgid "Exception music is chords with markups"
+msgstr "la Música de Excepciones son acordes con marcados"
+
+#. input/lsr/chord-name-exceptions.ly:26 (variable)
+msgid "chExceptionMusic"
+msgstr "cambiaMusicaExcepciones"
+
+#. input/lsr/chord-name-exceptions.ly:31 (comment)
+msgid "Convert music to list and prepend to existing exceptions."
+msgstr "Convertir la música en una lista y añadirla a las excepciones existentes."
+
+#. input/lsr/chord-name-exceptions.ly:32 (variable)
+msgid "chExceptions"
+msgstr "cambiaExcepciones"
+
+#. input/lsr/chord-name-exceptions.ly:36 (variable)
+msgid "theMusic"
+msgstr "laMusica"
+
+#. input/lsr/clip-systems.ly:37 (variable)
+msgid "origScore"
+msgstr "partituraOriginal"
+
+#. input/lsr/clip-systems.ly:55 (comment)
+msgid "Each clip-region is a (START . END) pair"
+msgstr "cada zona clip-region es un par (INICIO . FIN)"
+
+#. input/lsr/clip-systems.ly:56 (comment)
+msgid "where both are rhythmic-locations."
+msgstr "donde ambas son rhythmic-locations."
+
+#. input/lsr/clip-systems.ly:58 (comment)
+msgid "(make-rhythmic-locations BAR-NUMBER NUM DEN)"
+msgstr "(make-rhythmic-locations NUM-COMPAS NUMERADOR DENOMINADOR)"
+
+#. input/lsr/clip-systems.ly:59 (comment)
+msgid "means NUM/DEN whole-notes into bar numbered BAR-NUMBER"
+msgstr "significa NUMERADOR/DENOMINADOR redondas en el compás número NUM-COMPAS"
+
+#. input/lsr/coloring-notes-depending-on-their-pitch.ly:13 (comment)
+msgid "Association list of pitches to colors."
+msgstr "Lista asociativa de alturas a colores."
+
+#. input/lsr/coloring-notes-depending-on-their-pitch.ly:34 (comment)
+msgid "Compare pitch and alteration (not octave)."
+msgstr "Comparar la altura y la alteración (no la octava)."
+
+#. input/lsr/combining-dynamics-with-markup-texts.ly:24 (variable)
+msgid "piuF"
+msgstr ""
+
+#. input/lsr/combining-two-parts-on-the-same-staff.ly:51 (variable)
+msgid "musicUp"
+msgstr "musicaArriba"
+
+#. input/lsr/combining-two-parts-on-the-same-staff.ly:58 (variable)
+msgid "musicDown"
+msgstr "musicaAbajo"
+
+#. input/lsr/creating-a-sequence-of-notes-on-various-pitches.ly:53 (variable)
+#. input/lsr/jazz-combo-template.ly:275 (context id)
+msgid "rhythm"
+msgstr "duraciones"
+
+#. input/lsr/creating-real-parenthesized-dynamics.ly:45 (variable)
+msgid "parenF"
+msgstr "forteParen"
+
+#. input/lsr/creating-simultaneous-rehearsal-marks.ly:40 (comment)
+msgid "the hidden measure and bar line"
+msgstr "el compás y barra ocultos"
+
+#. input/lsr/customizing-fretboard-fret-diagrams.ly:40 (comment)
+#. input/lsr/customizing-markup-fret-diagrams.ly:43 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:23 (comment)
+msgid "Set global properties of fret diagram"
+msgstr "Fijar propiedades globales del diagrama de posición"
+
+#. input/lsr/customizing-markup-fret-diagrams.ly:41 (context id)
+#. input/lsr/formatting-lyrics-syllables.ly:21 (variable)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:21 (context id)
+#. input/lsr/piano-template-with-melody-and-lyrics.ly:62 (context id)
+msgid "mel"
+msgstr "melo"
+
+#. input/lsr/customizing-markup-fret-diagrams.ly:50 (comment)
+msgid "C major for guitar, no barre, using defaults"
+msgstr "Do mayor para guitarra, sin cejilla, usar predeterminados"
+
+#. input/lsr/customizing-markup-fret-diagrams.ly:51 (comment)
+#. input/lsr/customizing-markup-fret-diagrams.ly:101 (comment)
+msgid "terse style"
+msgstr "estilo escueto"
+
+#. input/lsr/customizing-markup-fret-diagrams.ly:54 (comment)
+#. input/lsr/customizing-markup-fret-diagrams.ly:76 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:52 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:73 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:152 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:173 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:251 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:272 (comment)
+msgid "C major for guitar, barred on third fret"
+msgstr "Do mayor para guitarra, cejilla en el tercer traste"
+
+#. input/lsr/customizing-markup-fret-diagrams.ly:55 (comment)
+#. input/lsr/customizing-markup-fret-diagrams.ly:77 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:53 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:75 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:102 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:153 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:175 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:202 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:252 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:274 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:301 (comment)
+msgid "verbose style"
+msgstr "estilo prolijo"
+
+#. input/lsr/customizing-markup-fret-diagrams.ly:56 (comment)
+msgid "size 1.0"
+msgstr "tamaño 1.0"
+
+#. input/lsr/customizing-markup-fret-diagrams.ly:57 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:54 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:154 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:253 (comment)
+msgid "roman fret label, finger labels below string, straight barre"
+msgstr ""
+"leyenda de posición en romana, leyendas de dedos debajo de las cuerdas, "
+"cejilla recta"
+
+#. input/lsr/customizing-markup-fret-diagrams.ly:59 (comment)
+msgid "standard size"
+msgstr "tamaño estándar"
+
+#. input/lsr/customizing-markup-fret-diagrams.ly:78 (comment)
+msgid "landscape orientation, arabic numbers, M for mute string"
+msgstr "orientación apaisada, números arábigos, M para cuerda muda"
+
+#. input/lsr/customizing-markup-fret-diagrams.ly:79 (comment)
+msgid "no barre, fret label down or left, small mute label font"
+msgstr ""
+"sin cejilla, leyenda de posición abajo o izquierda, fuente pequeña de "
+"indicación de cuerda muda"
+
+#. input/lsr/customizing-markup-fret-diagrams.ly:100 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:124 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:224 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:323 (comment)
+msgid "simple D chord"
+msgstr "acorde de Re sencillo"
+
+#. input/lsr/customizing-markup-fret-diagrams.ly:102 (comment)
+msgid "larger dots, centered dots, fewer frets"
+msgstr "puntos mayores, centrados, menos trastes"
+
+#. input/lsr/customizing-markup-fret-diagrams.ly:103 (comment)
+msgid "label below string"
+msgstr "leyenda debajo de la cuerda"
+
+#. input/lsr/defining-predefined-fretboards-for-other-instruments.ly:58 (comment)
+msgid "add FretBoards for the Cuatro"
+msgstr "añadir FretBoards para el cuatro venezolano"
+
+#. input/lsr/defining-predefined-fretboards-for-other-instruments.ly:59 (comment)
+msgid "Note: This section could be put into a separate file"
+msgstr "Nota: esta sección se puede poner en un archivo aparte"
+
+#. input/lsr/defining-predefined-fretboards-for-other-instruments.ly:60 (comment)
+msgid "predefined-cuatro-fretboards.ly"
+msgstr "posiciones-predefinidas-del-cuatro.ly"
+
+#. input/lsr/defining-predefined-fretboards-for-other-instruments.ly:61 (comment)
+msgid "and \\included into each of your compositions"
+msgstr "e incluirse en todas sus composiciones con \\include"
+
+#. input/lsr/defining-predefined-fretboards-for-other-instruments.ly:63 (variable)
+msgid "cuatroTuning"
+msgstr "afinacionCuatro"
+
+#. input/lsr/defining-predefined-fretboards-for-other-instruments.ly:65 (variable)
+msgid "dSix"
+msgstr "sextaRe"
+
+#. input/lsr/defining-predefined-fretboards-for-other-instruments.ly:66 (variable)
+msgid "dMajor"
+msgstr "reMayor"
+
+#. input/lsr/defining-predefined-fretboards-for-other-instruments.ly:67 (variable)
+msgid "aMajSeven"
+msgstr "laSeptMayor"
+
+#. input/lsr/defining-predefined-fretboards-for-other-instruments.ly:68 (variable)
+msgid "dMajSeven"
+msgstr "reSeptMayor"
+
+#. input/lsr/defining-predefined-fretboards-for-other-instruments.ly:69 (variable)
+msgid "gMajor"
+msgstr "solMayor"
+
+#. input/lsr/defining-predefined-fretboards-for-other-instruments.ly:87 (comment)
+msgid "end of potential include file /predefined-cuatro-fretboards.ly"
+msgstr "fin del potencial archivo de inclusión /posiciones-predefinidas-del-cuatro.ly"
+
+#. input/lsr/defining-predefined-fretboards-for-other-instruments.ly:92 (variable)
+msgid "primerosNames"
+msgstr "nombresPrimeros"
+
+#. input/lsr/defining-predefined-fretboards-for-other-instruments.ly:96 (variable)
+msgid "primeros"
+msgstr "primeros"
+
+#. input/lsr/demo-midiinstruments.ly:23 (variable)
+msgid "baseMelody"
+msgstr "melodiaBase"
+
+#. input/lsr/display-bracket-with-only-one-staff-in-a-system.ly:37 (comment)
+msgid "Must be lower than the actual number of staff lines"
+msgstr "debe ser menor que el número real de líneas de la pauta"
+
+#. input/lsr/displaying-complex-chords.ly:16 (variable)
+msgid "fixA"
+msgstr ""
+
+#. input/lsr/displaying-complex-chords.ly:20 (variable)
+msgid "fixB"
+msgstr ""
+
+#. input/lsr/double-glissando.ly:20 (comment)
+msgid "new voice ( = \\voiceOne), hidden"
+msgstr "new voice ( = \\voiceOne), oculta"
+
+#. input/lsr/double-glissando.ly:22 (comment)
+msgid "attach glissando to note heads"
+msgstr "aplicar glissando a la cabeza de las notas"
+
+#. input/lsr/double-glissando.ly:27 (comment)
+msgid "original voice with chords rearranged so that"
+msgstr "voz original con acordes rehecha de forma que"
+
+#. input/lsr/double-glissando.ly:28 (comment)
+msgid "glissando is attached to a & c"
+msgstr "el glissando se aplica al La y al Do"
+
+#. input/lsr/embedding-native-postscript-in-a--markup-block.ly:23 (comment)
+msgid "PostScript is a registered trademark of Adobe Systems Inc."
+msgstr ""
+
+#. input/lsr/engravers-one-by-one.ly:75 (comment)
+msgid "sample music"
+msgstr "música de ejemplo"
+
+#. input/lsr/engravers-one-by-one.ly:76 (variable)
+msgid "topVoice"
+msgstr "vozSuperior"
+
+#. input/lsr/engravers-one-by-one.ly:84 (variable)
+msgid "botVoice"
+msgstr "vozInferior"
+
+#. input/lsr/engravers-one-by-one.ly:92 (variable)
+msgid "hoom"
+msgstr "hum"
+
+#. input/lsr/engravers-one-by-one.ly:103 (variable)
+msgid "pah"
+msgstr "pa"
+
+#. input/lsr/engravers-one-by-one.ly:113 (comment)
+msgid "setup for Request->Element conversion. Guru-only"
+msgstr "Sólo para gurús: tinglado para la conversión Request->Element"
+
+#. input/lsr/engravers-one-by-one.ly:116 (variable)
+#. input/lsr/engravers-one-by-one.ly:221 (variable)
+#. input/lsr/engravers-one-by-one.ly:234 (variable)
+#. input/lsr/engravers-one-by-one.ly:290 (variable)
+#. input/lsr/engravers-one-by-one.ly:304 (variable)
+msgid "MyStaff"
+msgstr "miPentagrama"
+
+#. input/lsr/engravers-one-by-one.ly:148 (comment)
+msgid "explicitly set instrument, so we don't get "
+msgstr "especificar el instrumento para evitar efectos no deseados"
+
+#. input/lsr/engravers-one-by-one.ly:149 (comment)
+msgid "weird effects when doing instrument names for"
+msgstr "si se hacen nombres de instrumentos para pentagramas de piano"
+
+#. input/lsr/engravers-one-by-one.ly:150 (comment)
+msgid "piano staves"
+msgstr "sistemas de piano"
+
+#. input/lsr/engravers-one-by-one.ly:159 (variable)
+#. input/lsr/engravers-one-by-one.ly:248 (variable)
+#. input/lsr/engravers-one-by-one.ly:261 (variable)
+#. input/lsr/engravers-one-by-one.ly:274 (variable)
+msgid "MyVoice"
+msgstr "miVoz"
+
+#. input/lsr/engravers-one-by-one.ly:174 (comment)
+msgid "must come before all"
+msgstr "ha de ir antes de todo"
+
+#. input/lsr/engravers-one-by-one.ly:184 (comment)
+msgid "\\consists \\\"Rest_engraver\\\""
+msgstr ""
+
+#. input/lsr/flamenco-notation.ly:46 (comment)
+msgid "Cut here ----- Start 'flamenco.ly' "
+msgstr "Cortar por aquí ----- Inicio 'flamenco.ly' "
+
+#. input/lsr/flamenco-notation.ly:48 (comment)
+msgid "Text indicators"
+msgstr "Indicadores de texto"
+
+#. input/lsr/flamenco-notation.ly:49 (variable)
+msgid "abanico"
+msgstr "abanico"
+
+#. input/lsr/flamenco-notation.ly:50 (variable)
+msgid "rasgueaso"
+msgstr "rasgueo"
+
+#. input/lsr/flamenco-notation.ly:51 (variable)
+msgid "alzapua"
+msgstr "alzapua"
+
+#. input/lsr/flamenco-notation.ly:53 (comment)
+msgid "Finger stroke symbols"
+msgstr "Símbolos de golpes de dedo"
+
+#. input/lsr/flamenco-notation.ly:54 (variable)
+msgid "strokeUp"
+msgstr "golpeArriba"
+
+#. input/lsr/flamenco-notation.ly:64 (variable)
+msgid "strokeDown"
+msgstr "golpeAbajo"
+
+#. input/lsr/flamenco-notation.ly:74 (comment)
+msgid "Golpe symbol"
+msgstr "Símbolo de golpe"
+
+#. input/lsr/flamenco-notation.ly:75 (variable)
+msgid "golpe"
+msgstr "golpe"
+
+#. input/lsr/flamenco-notation.ly:89 (variable)
+msgid "strokeUpGolpe"
+msgstr "golpearArriba"
+
+#. input/lsr/flamenco-notation.ly:90 (variable)
+msgid "iUpGolpe"
+msgstr "iGolpeArriba"
+
+#. input/lsr/flamenco-notation.ly:92 (comment)
+msgid "Strokes for all fingers"
+msgstr "Golpes para todos los dedos"
+
+#. input/lsr/flamenco-notation.ly:93 (variable)
+msgid "pUp"
+msgstr "pArriba"
+
+#. input/lsr/flamenco-notation.ly:94 (variable)
+msgid "pDown"
+msgstr "pAbajo"
+
+#. input/lsr/flamenco-notation.ly:95 (variable)
+msgid "iUp"
+msgstr "iArriba"
+
+#. input/lsr/flamenco-notation.ly:96 (variable)
+msgid "iDown"
+msgstr "iAbajo"
+
+#. input/lsr/flamenco-notation.ly:97 (variable)
+msgid "mUp"
+msgstr "mArriba"
+
+#. input/lsr/flamenco-notation.ly:98 (variable)
+msgid "mDown"
+msgstr "mAbajo"
+
+#. input/lsr/flamenco-notation.ly:99 (variable)
+msgid "aUp"
+msgstr "aArriba"
+
+#. input/lsr/flamenco-notation.ly:100 (variable)
+msgid "aDown"
+msgstr "aAbajo"
+
+#. input/lsr/flamenco-notation.ly:101 (variable)
+msgid "xUp"
+msgstr "xArriba"
+
+#. input/lsr/flamenco-notation.ly:102 (variable)
+msgid "xDown"
+msgstr "xAbajo"
+
+#. input/lsr/flamenco-notation.ly:105 (comment)
+msgid "Just handy :)"
+msgstr "Muy cómodo :)"
+
+#. input/lsr/flamenco-notation.ly:106 (variable)
+msgid "tupletOff"
+msgstr "grupoNo"
+
+#. input/lsr/flamenco-notation.ly:111 (variable)
+msgid "tupletsOff"
+msgstr "gruposNo"
+
+#. input/lsr/flamenco-notation.ly:116 (variable)
+msgid "tupletsOn"
+msgstr "gruposSi"
+
+#. input/lsr/flamenco-notation.ly:121 (variable)
+msgid "headsOff"
+msgstr "cabezasNo"
+
+#. input/lsr/flamenco-notation.ly:127 (variable)
+msgid "headsOn"
+msgstr "cabezasSi"
+
+#. input/lsr/flamenco-notation.ly:133 (comment)
+msgid "Cut here ----- End 'flamenco.ly' "
+msgstr "Cortar por aquí ----- Final 'flamenco.ly' "
+
+#. input/lsr/flat-flags-and-beam-nibs.ly:109 (comment)
+msgid "Example 1"
+msgstr "Ejemplo 1"
+
+#. input/lsr/flat-flags-and-beam-nibs.ly:116 (comment)
+msgid "Example 2"
+msgstr "Ejemplo 2"
+
+#. input/lsr/flat-flags-and-beam-nibs.ly:123 (comment)
+msgid "Example 3"
+msgstr "Ejemplo 3"
+
+#. input/lsr/flat-flags-and-beam-nibs.ly:132 (comment)
+msgid "Example 4"
+msgstr "Ejemplo 4"
+
+#. input/lsr/flute-slap-notation.ly:18 (variable)
+msgid "slap"
+msgstr "slap"
+
+#. input/lsr/formatting-lyrics-syllables.ly:16 (comment)
+msgid ""
+"Tip taken from http://lists.gnu.org/archive/html/lilypond-user/2007-12/"
+"msg00215.html"
+msgstr ""
+"Truco sacado de http://lists.gnu.org/archive/html/lilypond-user/2007-12/"
+"msg00215.html"
+
+#. input/lsr/fret-diagrams-explained-and-developed.ly:39 (comment)
+msgid "A chord for ukelele, with formatting defined in definition string"
+msgstr "Acorde para el ukelele, con el formato definido en la cadena de definición"
+
+#. input/lsr/fret-diagrams-explained-and-developed.ly:40 (comment)
+msgid "1.2 * size, 4 strings, 4 frets, fingerings below string"
+msgstr "1.2 * tamaño, 4 cuerdas, 4 trastes, digitación debajo de las cuerdas"
+
+#. input/lsr/fret-diagrams-explained-and-developed.ly:41 (comment)
+msgid "dot radius .35 of fret spacing, dot position 0.55 of fret spacing"
+msgstr ""
+"redio del punto .35 del espacio de traste, posición del punto 0.55 del "
+"espacio de traste"
+
+#. input/lsr/fret-diagrams-explained-and-developed.ly:50 (comment)
+msgid "These chords will be in normal orientation"
+msgstr "Estos acordes estarán en la orientación normal"
+
+#. input/lsr/fret-diagrams-explained-and-developed.ly:56 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:77 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:104 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:156 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:177 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:204 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:255 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:276 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:303 (comment)
+#, python-format
+msgid "110% of default size"
+msgstr "110% del tamaño predeterminado"
+
+#. input/lsr/fret-diagrams-explained-and-developed.ly:74 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:174 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:273 (comment)
+msgid "Double barre used to test barre function"
+msgstr "Doble barra utilizada para probar la función de barra"
+
+#. input/lsr/fret-diagrams-explained-and-developed.ly:101 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:201 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:300 (comment)
+msgid "C major for guitar, with capo on third fret"
+msgstr "Do mayor para guitarra, cejilla en el tercer traste"
+
+#. input/lsr/fret-diagrams-explained-and-developed.ly:136 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:235 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:334 (comment)
+msgid "simple D chord, large top fret thickness"
+msgstr "acorde sencillo de Re, grosor del traste grande superior"
+
+#. input/lsr/fret-diagrams-explained-and-developed.ly:148 (comment)
+msgid "These chords will be in landscape orientation"
+msgstr "Eestos acordes estarán en orientación horizontal"
+
+#. input/lsr/fret-diagrams-explained-and-developed.ly:247 (comment)
+msgid "These chords will be in opposing-landscape orientation"
+msgstr "Estos acordes estarán en orientación horizontal opuesta"
+
+#. input/lsr/grid-lines--changing-their-appearance.ly:33 (comment)
+msgid "this moves them up one staff space from the default position"
+msgstr "moverlas hacia arriba un espacio de pentagrama desde la posición de"
+
+#. input/lsr/grid-lines--changing-their-appearance.ly:51 (comment)
+msgid "set up grids"
+msgstr "establecer rejillas"
+
+#. input/lsr/grid-lines--changing-their-appearance.ly:53 (comment)
+msgid "set the grid interval to one quarter note"
+msgstr "establecer intervalo de rejilla a una negra"
+
+#. input/lsr/grid-lines--changing-their-appearance.ly:59 (comment)
+msgid "this moves them to the right half a staff space"
+msgstr "moverlas a la derecha medio espacio de pentagrama"
+
+#. input/lsr/grid-lines--emphasizing-rhythms-and-notes-synchronization.ly:36 (comment)
+msgid "hides staff and notes so that only the grid lines are visible"
+msgstr "ocultar pentagrama y notas para que sólo se vea la rejilla"
+
+#. input/lsr/grid-lines--emphasizing-rhythms-and-notes-synchronization.ly:43 (comment)
+msgid "dummy notes to force regular note spacing"
+msgstr "notas falsas para forzar el espaciado regular de las notas"
+
+#. input/lsr/grid-lines--emphasizing-rhythms-and-notes-synchronization.ly:59 (comment)
+msgid "center grid lines horizontally below note heads"
+msgstr "centrar las líneas de rejilla horizontalmente bajo las cabezas"
+
+#. input/lsr/grid-lines--emphasizing-rhythms-and-notes-synchronization.ly:66 (comment)
+msgid "set line length and positioning:"
+msgstr "fijar la longitud y la posición de la línea:"
+
+#. input/lsr/grid-lines--emphasizing-rhythms-and-notes-synchronization.ly:67 (comment)
+msgid "two staff spaces above center line on hidden staff"
+msgstr "dos espacios por encima de la línea central sobre el pentagrama oculto"
+
+#. input/lsr/grid-lines--emphasizing-rhythms-and-notes-synchronization.ly:68 (comment)
+msgid "to four spaces below center line on visible staff"
+msgstr ""
+"hasta cuatro espacios por debajo de la línea central sobre el pentagrama "
+"visible"
+
+#. input/lsr/heavily-customized-polymetric-time-signatures.ly:51 (variable)
+msgid "drum"
+msgstr "percusion"
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:54 (comment)
+msgid "Solution 1: Using a simple markup with a particular halign value"
+msgstr "Solución 1: usar un marcado sencillo con un valor concreto de halign"
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:55 (comment)
+msgid ""
+"Drawback: It's a markup, not a dynamic command, so \\dynamicDown etc. will "
+"have no effect"
+msgstr ""
+"Inconveniente: es un marcado, no una instrucción de matiz dinámico por lo "
+"que \\dynamicDown etc. no funcionan"
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:56 (variable)
+msgid "semppMarkup"
+msgstr "semppMarcado"
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:58 (comment)
+msgid ""
+"Solution 2: Using a dynamic script and shifting with \\once\\override ... "
+"#'X-offset = .."
+msgstr ""
+"Solución 2: usar una indicación de dinámica y desplazarla con \\once"
+"\\override ... #'X-offset = .."
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:59 (comment)
+msgid "Drawback: \\once\\override needed for every invocation"
+msgstr "Inconveniente: se necesita \\once\\override para cada invocación"
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:60 (variable)
+msgid "semppK"
+msgstr "semppK"
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:62 (comment)
+msgid ""
+"Solution 3: Padding the dynamic script so the center-alignment puts it to "
+"the correct position"
+msgstr ""
+"Solución 3: aplicar relleno a la indicación dinámica para que  el center-"
+"alignment lo ponga en la posición correcta"
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:63 (comment)
+msgid "Drawback: the padding really reserves the space, nothing else can be there"
+msgstr ""
+"Inconveniente: el relleno reserva el espacio realmente, no puede haber nada "
+"más aquí"
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:64 (variable)
+msgid "semppT"
+msgstr "semppT"
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:72 (comment)
+msgid "Solution 4: Dynamic, setting the dimensions of the additional text to 0"
+msgstr ""
+"Solución 4: indicación dinámica, fijando a 0 las dimensiones del texto "
+"adicional"
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:73 (comment)
+msgid ""
+"Drawback: To lilypond \\\"sempre\\\" has no extent, so it might put other "
+"stuff there => collisions"
+msgstr ""
+"Inconveniente: para lilypond \\\"sempre\\\" no tiene dimensiones, lo que "
+"podría dar lugar a colisiones"
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:74 (comment)
+msgid "Drawback: Also, there seems to be some spacing, so it's not exactly the "
+msgstr ""
+"Inconveniente: asimismo, parece haber algo de espacio, por lo que no es "
+"exactamente"
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:75 (comment)
+msgid "same alignment as without the additional text"
+msgstr "la misma alnieación que sin el texto adicional"
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:76 (variable)
+msgid "semppM"
+msgstr "semppM"
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:78 (comment)
+msgid "Solution 5: Dynamic with explicit shifting inside the scheme function"
+msgstr ""
+"Solución 5: indicación dinámica con desplazamiento explícito dentro de la "
+"función de Scheme"
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:79 (variable)
+msgid "semppG"
+msgstr "semppG"
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:85 (comment)
+msgid ""
+"Solution 6: Dynamic with explicit alignment. This has only effect, if one "
+"sets X-offset!"
+msgstr ""
+"Solución 6: indicación dinámica con alineación explícita. ¡Sólo tiene efecto "
+"si se fija X-offset!"
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:86 (comment)
+msgid "Drawback: One needs to set DynamicText #'X-offset!"
+msgstr "Inconveniente: ¡Hay que fijar DynamicText #'X-offset!"
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:87 (comment)
+msgid ""
+"Drawback: Aligned at the right edge of the additional text, not at the "
+"center of pp"
+msgstr ""
+"Inconveniente: alineado con el borde derecho del texto adicional, no con el "
+"centro del pp"
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:88 (variable)
+msgid "semppMII"
+msgstr "semppMII"
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:114 (comment)
+msgid "Setting to ##f (false) gives the same resul"
+msgstr "Al fijarlo a ##f (falso) obtenemos el mismo resultado"
+
+#. input/lsr/how-to-change-fret-diagram-position.ly:28 (variable)
+#. input/lsr/score-for-diatonic-accordion.ly:61 (variable)
+#. input/lsr/showing-chords-at-changes.ly:23 (variable)
+#. input/lsr/single-staff-template-with-notes,-lyrics,-and-chords.ly:44 (variable)
+#. input/lsr/single-staff-template-with-notes-and-chords.ly:42 (variable)
+msgid "harmonies"
+msgstr "armonias"
+
+#. input/lsr/how-to-change-fret-diagram-position.ly:31 (comment)
+msgid "THE FOLLOWING IS THE COMMAND TO MOVE THE CHORD NAME"
+msgstr "a continuación la instrucción para mover el nombre del acorde"
+
+#. input/lsr/how-to-change-fret-diagram-position.ly:34 (comment)
+msgid "THIS LINE IS THE SECOND METHOD"
+msgstr "esta línea es el segundo método"
+
+#. input/lsr/how-to-change-fret-diagram-position.ly:44 (comment)
+msgid "THE FOLLOWING IS THE COMMAND TO MOVE THE FRET DIAGRAM"
+msgstr "a continuación la instrucción para mover el diagrama de posición"
+
+#. input/lsr/how-to-change-fret-diagram-position.ly:47 (comment)
+msgid "HERE IS THE SECOND METHOD"
+msgstr "aquí el segundo método"
+
+#. input/lsr/incipit.ly:72 (variable)
+#. input/lsr/incipit.ly:73 (context id)
+msgid "discantusIncipit"
+msgstr "discantusIncipit"
+
+#. input/lsr/incipit.ly:109 (variable)
+#. input/lsr/incipit.ly:110 (context id)
+msgid "altusIncipit"
+msgstr "altusIncipit"
+
+#. input/lsr/incipit.ly:125 (comment)
+#. input/lsr/incipit.ly:137 (comment)
+#. input/lsr/incipit.ly:167 (comment)
+#. input/lsr/incipit.ly:176 (comment)
+msgid "two measures"
+msgstr "dos compases"
+
+#. input/lsr/incipit.ly:145 (variable)
+#. input/lsr/incipit.ly:146 (context id)
+msgid "tenorIncipit"
+msgstr "tenorIncipit"
+
+#. input/lsr/incipit.ly:182 (variable)
+#. input/lsr/incipit.ly:183 (context id)
+msgid "bassusIncipit"
+msgstr "bassusIncipit"
+
+#. input/lsr/incipit.ly:253 (comment)
+msgid "no bar lines in staves or lyrics"
+msgstr "sin líneas divisorias en los pentagramas ni en la letra"
+
+#. input/lsr/incipit.ly:256 (comment)
+msgid "the next two instructions keep the lyrics between the bar lines"
+msgstr ""
+"las dos instrucciones siguientes mantienen la letra entre las barras de "
+"compás"
+
+#. input/lsr/incipit.ly:267 (comment)
+msgid "breaking also at those bar lines where a note overlaps"
+msgstr "saltar también en las barras en que se superpone una nota"
+
+#. input/lsr/incipit.ly:268 (comment)
+msgid "into the next measure.  The command is commented out in this"
+msgstr "sobre el siguiente compás.  La instrucción es un comentario en este"
+
+#. input/lsr/inserting-score-fragments-above-a-staff,-as-markups.ly:16 (variable)
+msgid "tuning"
+msgstr "afinacion"
+
+#. input/lsr/jazz-combo-template.ly:52 (comment)
+msgid "#(set-global-staff-size 16)"
+msgstr "#(set-global-staff-size 16)"
+
+#. input/lsr/jazz-combo-template.ly:55 (comment)
+msgid "Some macros %%%%%%%%%%%%%%%%%%%"
+msgstr "Algunos macros %%%%%%%%%%%%%%%%%%%"
+
+#. input/lsr/jazz-combo-template.ly:57 (variable)
+msgid "sl"
+msgstr "sl"
+
+#. input/lsr/jazz-combo-template.ly:61 (variable)
+msgid "nsl"
+msgstr "nsl"
+
+#. input/lsr/jazz-combo-template.ly:65 (variable)
+msgid "crOn"
+msgstr "crSi"
+
+#. input/lsr/jazz-combo-template.ly:66 (variable)
+msgid "crOff"
+msgstr "crNo"
+
+#. input/lsr/jazz-combo-template.ly:68 (comment)
+msgid "insert chord name style stuff here."
+msgstr "insertar aquí el código para el estilo de nombres de acorde"
+
+#. input/lsr/jazz-combo-template.ly:70 (variable)
+msgid "jazzChords"
+msgstr "acordesJazz"
+
+#. input/lsr/jazz-combo-template.ly:72 (comment)
+msgid "Keys'n'thangs %%%%%%%%%%%%%%%%%"
+msgstr "Keys'n'thangs %%%%%%%%%%%%%%%%%"
+
+#. input/lsr/jazz-combo-template.ly:76 (variable)
+msgid "Key"
+msgstr "Tono"
+
+#. input/lsr/jazz-combo-template.ly:78 (comment)
+msgid "############ Horns ############"
+msgstr "############ Trompas ############"
+
+#. input/lsr/jazz-combo-template.ly:80 (comment)
+msgid "------ Trumpet ------"
+msgstr "------ Trompeta ------"
+
+#. input/lsr/jazz-combo-template.ly:81 (variable)
+msgid "trpt"
+msgstr "trpt"
+
+#. input/lsr/jazz-combo-template.ly:85 (variable)
+msgid "trpHarmony"
+msgstr "acordesTrp"
+
+#. input/lsr/jazz-combo-template.ly:88 (variable)
+#. input/lsr/jazz-combo-template.ly:268 (context id)
+msgid "trumpet"
+msgstr "trompeta"
+
+#. input/lsr/jazz-combo-template.ly:97 (comment)
+msgid "------ Alto Saxophone ------"
+msgstr "------ Saxofón alto ------"
+
+#. input/lsr/jazz-combo-template.ly:98 (variable)
+msgid "alto"
+msgstr "alto"
+
+#. input/lsr/jazz-combo-template.ly:102 (variable)
+msgid "altoHarmony"
+msgstr "acordesAlto"
+
+#. input/lsr/jazz-combo-template.ly:105 (variable)
+msgid "altoSax"
+msgstr "saxoAlto"
+
+#. input/lsr/jazz-combo-template.ly:114 (comment)
+msgid "------ Baritone Saxophone ------"
+msgstr "------ Saxofón barítono ------"
+
+#. input/lsr/jazz-combo-template.ly:115 (variable)
+msgid "bari"
+msgstr "bari"
+
+#. input/lsr/jazz-combo-template.ly:123 (variable)
+msgid "bariHarmony"
+msgstr "acordesBari"
+
+#. input/lsr/jazz-combo-template.ly:126 (variable)
+msgid "bariSax"
+msgstr "saxoBari"
+
+#. input/lsr/jazz-combo-template.ly:135 (comment)
+msgid "------ Trombone ------"
+msgstr "------ Trombón ------"
+
+#. input/lsr/jazz-combo-template.ly:136 (variable)
+msgid "tbone"
+msgstr "tbon"
+
+#. input/lsr/jazz-combo-template.ly:140 (variable)
+msgid "tboneHarmony"
+msgstr "acordesTbon"
+
+#. input/lsr/jazz-combo-template.ly:143 (variable)
+#. input/lsr/jazz-combo-template.ly:272 (context id)
+msgid "trombone"
+msgstr "trombon"
+
+#. input/lsr/jazz-combo-template.ly:152 (comment)
+msgid "############ Rhythm Section #############"
+msgstr "############ Sección rítmica #############"
+
+#. input/lsr/jazz-combo-template.ly:154 (comment)
+msgid "------ Guitar ------"
+msgstr "------ Guitarra ------"
+
+#. input/lsr/jazz-combo-template.ly:155 (variable)
+msgid "gtr"
+msgstr "guit"
+
+#. input/lsr/jazz-combo-template.ly:163 (variable)
+msgid "gtrHarmony"
+msgstr "acordesGuit"
+
+#. input/lsr/jazz-combo-template.ly:167 (variable)
+#. input/lsr/jazz-combo-template.ly:277 (context id)
+#. input/lsr/polyphony-in-tablature.ly:48 (context id)
+#. input/lsr/polyphony-in-tablature.ly:53 (context id)
+msgid "guitar"
+msgstr "guitarra"
+
+#. input/lsr/jazz-combo-template.ly:176 (comment)
+msgid "------ Piano ------"
+msgstr "------ Piano ------"
+
+#. input/lsr/jazz-combo-template.ly:177 (variable)
+msgid "rhUpper"
+msgstr "mdArriba"
+
+#. input/lsr/jazz-combo-template.ly:182 (variable)
+msgid "rhLower"
+msgstr "mdAbajo"
+
+#. input/lsr/jazz-combo-template.ly:188 (variable)
+msgid "lhUpper"
+msgstr "miArriba"
+
+#. input/lsr/jazz-combo-template.ly:193 (variable)
+msgid "lhLower"
+msgstr "miAbajo"
+
+#. input/lsr/jazz-combo-template.ly:199 (variable)
+msgid "PianoRH"
+msgstr "PianoMD"
+
+#. input/lsr/jazz-combo-template.ly:208 (variable)
+msgid "PianoLH"
+msgstr "PianoMI"
+
+#. input/lsr/jazz-combo-template.ly:226 (comment)
+msgid "------ Bass Guitar ------"
+msgstr "------ Guitarra bajo ------"
+
+#. input/lsr/jazz-combo-template.ly:240 (comment)
+msgid "------ Drums ------"
+msgstr "------ Percusión ------"
+
+#. input/lsr/jazz-combo-template.ly:254 (variable)
+msgid "drumContents"
+msgstr "contenidoPercusion"
+
+#. input/lsr/jazz-combo-template.ly:263 (comment)
+#, python-format
+msgid "It All Goes Together Here %%%%%%%%%%%%%%%%%%%%%%"
+msgstr "Aquí va todo junto %%%%%%%%%%%%%%%%%%%%%%"
+
+#. input/lsr/jazz-combo-template.ly:267 (context id)
+msgid "horns"
+msgstr "trompas"
+
+#. input/lsr/jazz-combo-template.ly:269 (context id)
+msgid "altosax"
+msgstr "saxoalto"
+
+#. input/lsr/jazz-combo-template.ly:270 (context id)
+msgid "barichords"
+msgstr "acordesbari"
+
+#. input/lsr/jazz-combo-template.ly:271 (context id)
+msgid "barisax"
+msgstr "saxobari"
+
+#. input/lsr/jazz-combo-template.ly:276 (context id)
+msgid "chords"
+msgstr "acordes"
+
+#. input/lsr/makam-example.ly:26 (comment)
+msgid "Initialize makam settings"
+msgstr "Iniciar ajustes de makam"
+
+#. input/lsr/manually-break-figured-bass-extenders-for-only-some-numbers.ly:19 (variable)
+msgid "bassfigures"
+msgstr "cifrasbajo"
+
+#. input/lsr/manually-controlling-beam-positions.ly:21 (comment)
+msgid "from upper staff-line (position 2) to center (position 0)"
+msgstr "desde la quinta línea (posición 2) hasta la tercera (posición 0)"
+
+#. input/lsr/manually-controlling-beam-positions.ly:24 (comment)
+msgid "from center to one above center (position 1)"
+msgstr "desde tercera línea hasta la cuarta (posición 1)"
+
+#. input/lsr/marking-notes-of-spoken-parts-with-a-cross-on-the-stem.ly:17 (variable)
+msgid "speakOn"
+msgstr "hablarSi"
+
+#. input/lsr/marking-notes-of-spoken-parts-with-a-cross-on-the-stem.ly:33 (variable)
+msgid "speakOff"
+msgstr "hablarNo"
+
+#. input/lsr/markup-lines.ly:19 (comment)
+msgid "Candide, Voltaire"
+msgstr "Candide, Voltaire"
+
+#. input/lsr/mensurstriche-layout-bar-lines-between-the-staves.ly:32 (comment)
+msgid "the final bar line is not interrupted"
+msgstr "la barra final no se interrumpe"
+
+#. input/lsr/merging-multi-measure-rests-in-a-polyphonic-part.ly:17 (variable)
+msgid "normalPos"
+msgstr "posNormal"
+
+#. input/lsr/modern-tab-text-clef.ly:16 (variable)
+msgid "TAB"
+msgstr "TAB"
+
+#. input/lsr/modifying-default-values-for-articulation-shorthand-notation.ly:51 (variable)
+msgid "dashPlus"
+msgstr "dashPlus"
+
+#. input/lsr/modifying-tuplet-bracket-length.ly:23 (comment)
+msgid "Set tuplets to be extendable..."
+msgstr "Hacer los grupos especiales extensibles..."
+
+#. input/lsr/modifying-tuplet-bracket-length.ly:25 (comment)
+msgid "...to cover all items up to the next note"
+msgstr "... para que cubran todos los elementos hasta la nota siguiente"
+
+#. input/lsr/modifying-tuplet-bracket-length.ly:29 (comment)
+msgid "...or to cover just whitespace"
+msgstr "... o para cubrir sólo el espacio vacio"
+
+#. input/lsr/percussion-beaters.ly:18 (variable)
+msgid "stick"
+msgstr "baqueta"
+
+#. input/lsr/permitting-line-breaks-within-beamed-tuplets.ly:39 (comment)
+msgid "Permit line breaks within tuplets"
+msgstr "Permitir saltos de línea dentro de grupos especiales"
+
+#. input/lsr/permitting-line-breaks-within-beamed-tuplets.ly:41 (comment)
+msgid "Allow beams to be broken at line breaks"
+msgstr "Permitir romper barras en saltos de línea"
+
+#. input/lsr/permitting-line-breaks-within-beamed-tuplets.ly:48 (comment)
+msgid "Insert a manual line break within a tuplet"
+msgstr "Insertar salto de línea manual dentro de un grupo especial"
+
+#. input/lsr/piano-template-with-centered-dynamics.ly:56 (variable)
+msgid "pedal"
+msgstr "pedal"
+
+#. input/lsr/piano-template-with-centered-dynamics.ly:69 (comment)
+msgid "define Dynamics context"
+msgstr "definir el contexto Dynamics"
+
+#. input/lsr/piano-template-with-centered-dynamics.ly:90 (comment)
+msgid "modify PianoStaff context to accept Dynamics context"
+msgstr "modificar el contexto PianoStaff para que acepte el contexto Dynamics"
+
+#. input/lsr/polyphony-in-tablature.ly:47 (context id)
+msgid "tab"
+msgstr "tab"
+
+#. input/lsr/positioning-multi--measure-rests.ly:41 (comment)
+msgid "Multi-measure rests by default are set under the second line"
+msgstr ""
+"Los silencios multicompás se sitúan de forma predeterminada bajo la segunda "
+"línea"
+
+#. input/lsr/positioning-multi--measure-rests.ly:43 (comment)
+msgid "They can be moved with an override"
+msgstr "Se pueden mover con un override"
+
+#. input/lsr/positioning-multi--measure-rests.ly:46 (comment)
+msgid "A value of 0 is the default position;"
+msgstr "Un valor de cero es la posición predeterminada;"
+
+#. input/lsr/positioning-multi--measure-rests.ly:47 (comment)
+msgid "the following trick moves the rest to the center line"
+msgstr "el truco siguiente mueve el silencio a la línea central"
+
+#. input/lsr/positioning-multi--measure-rests.ly:50 (comment)
+msgid "Multi-measure rests in odd-numbered voices are under the top line"
+msgstr "Los silencios multicompás de las voces impares están bajo la línea superior"
+
+#. input/lsr/positioning-multi--measure-rests.ly:52 (comment)
+msgid "Multi-measure rests in even-numbered voices are under the bottom line"
+msgstr "Los silencios multicompás de las voces pares están bajo la línea inferior"
+
+#. input/lsr/positioning-multi--measure-rests.ly:54 (comment)
+msgid "They remain separated even in empty measures"
+msgstr "Siguen estando separados incluso en compases vacíos"
+
+#. input/lsr/positioning-multi--measure-rests.ly:56 (comment)
+msgid "This brings them together even though there are two voices"
+msgstr "Así los juntamos incluso si hay dos voces"
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:28 (comment)
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:49 (comment)
+msgid "Set segno sign as rehearsal mark and adjust size if needed"
+msgstr "Fijar llamada como letra de ensayo y ajustar su tamaño si es necesario"
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:29 (comment)
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:51 (comment)
+msgid "\\once \\override Score.RehearsalMark #'font-size = #3"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:35 (comment)
+msgid "Set coda sign as rehearsal mark and adjust size if needed"
+msgstr "Fijar llamada de coda como letra de ensayo y ajustar tamaño si es necesario"
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:42 (comment)
+msgid "Should Coda be on anew line?"
+msgstr "¿Debe ir la Coda sobre una línea nueva?"
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:43 (comment)
+msgid "Coda NOT on new line: use \\nobreak"
+msgstr "Coda NO en línea nueva: usar \\nobreak"
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:44 (comment)
+msgid "Coda on new line: DON'T use \\nobreak"
+msgstr "Coda en línea nueva: NO USAR \\nobreak"
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:45 (comment)
+msgid "\\noBreak"
+msgstr "\\noBreak"
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:54 (comment)
+msgid "Here begins the trickery! "
+msgstr "¡Aquí comienzan los trucos!"
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:55 (comment)
+msgid ""
+"\\cadenzaOn will suppress the bar count and \\stopStaff removes the staff "
+"lines."
+msgstr "\\cadenzaOn suprime la cuenta de compases y \\stopStaff quita el pentagrama"
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:58 (comment)
+msgid "Some examples of possible text-displays "
+msgstr "Algunos ejemplos de text-displays posibles"
+
+# fuzzy. FVD
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:60 (comment)
+msgid "text line-aligned"
+msgstr "texto line-aligned"
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:61 (comment)
+msgid "=================="
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:62 (comment)
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:68 (comment)
+msgid "Move text to the desired position"
+msgstr "Mover el texto a la posición deseada"
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:63 (comment)
+msgid "\\once \\override TextScript #'extra-offset = #'( 2 . -3.5 )"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:64 (comment)
+msgid "| s1*0^\\markup { D.S. al Coda } }"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:66 (comment)
+msgid "text center-aligned"
+msgstr "texto center-aligned"
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:67 (comment)
+msgid "===================="
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:69 (comment)
+msgid "\\once \\override TextScript #'extra-offset = #'( 6 . -5.0 )"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:70 (comment)
+msgid "| s1*0^\\markup { \\center-column { D.S. \\\"al Coda\\\" } }"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:72 (comment)
+msgid "text and symbols center-aligned"
+msgstr "texto y símbolos center-aligned"
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:73 (comment)
+msgid "==============================="
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:74 (comment)
+msgid ""
+"Move text to the desired position and tweak spacing for optimum text "
+"alignment"
+msgstr ""
+"Mover el texto a la posición deseada y ajustar el espacio para una "
+"alineación óptima"
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:75 (comment)
+msgid "\\once \\override TextScript #'extra-offset = #'( 8 . -5.5 )"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:81 (comment)
+msgid "Increasing the unfold counter will expand the staff-free space"
+msgstr "El aumento del contador de despliegue expande el espacio de staff-free"
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:86 (comment)
+msgid "Resume bar count and show staff lines again"
+msgstr "Reanudar la cuenta de compases y mostrar el pentagrama de nuevo"
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:90 (comment)
+msgid "Should Coda be on new line?"
+msgstr "¿La Coda va en una línea nueva?"
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:91 (comment)
+msgid "Coda NOT on new line: DON'T use \\break"
+msgstr "Coda NO en nueva línea: NO USAR \\break"
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:92 (comment)
+msgid "Coda on new line: use \\break"
+msgstr "Coda en nueva línea: usar \\break"
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:95 (comment)
+msgid "Show up, you clef and key!"
+msgstr "¡Mostraos, clave y armadura!"
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:99 (comment)
+msgid "Set coda sign as rehearsal mark and adjust size and position"
+msgstr "Fijar el signo de coda como letra de enzayo y ajustar el tamaño y posición"
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:101 (comment)
+msgid ""
+"Put the coda sign ontop of the (treble-)clef dependend on coda's line-"
+"position"
+msgstr ""
+"Poner el signo de coda encima de la clave dependiendo de la line-position de "
+"la coda"
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:103 (comment)
+msgid "Coda NOT on new line, use this:"
+msgstr "Coda NO en nueva línea, hacer esto:"
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:104 (comment)
+msgid "\\once \\override Score.RehearsalMark #'extra-offset = #'( -2 . 1.75 )"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:106 (comment)
+msgid "Coda on new line, use this:"
+msgstr "Coda en nueva línea, hacer esto:"
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:112 (comment)
+msgid "The coda"
+msgstr "La coda"
+
+#. input/lsr/printing-metronome-and-rehearsal-marks-below-the-staff.ly:31 (comment)
+msgid "Metronome marks below the staff "
+msgstr "las marcas de metrónomo debajo del pentagrama"
+
+#. input/lsr/printing-metronome-and-rehearsal-marks-below-the-staff.ly:36 (comment)
+msgid "Rehearsal marks below the staff"
+msgstr "Letras de ensayo debajo del pentagrama"
+
+#. input/lsr/printing-music-with-different-time-signatures.ly:50 (variable)
+msgid "Bassklarinette"
+msgstr "ClarineteBajo"
+
+#. input/lsr/printing-music-with-different-time-signatures.ly:90 (variable)
+msgid "Perkussion"
+msgstr "Percusion"
+
+#. input/lsr/quoting-another-voice-with-transposition.ly:37 (variable)
+msgid "quoteTest"
+msgstr "pruebaDeCita"
+
+#. input/lsr/quoting-another-voice-with-transposition.ly:38 (comment)
+msgid "french horn"
+msgstr "trompa"
+
+#. input/lsr/quoting-another-voice.ly:27 (variable)
+msgid "quoteMe"
+msgstr "citaMe"
+
+#. input/lsr/quoting-another-voice.ly:32 (variable)
+msgid "original"
+msgstr "original"
+
+#. input/lsr/removing-the-first-empty-line.ly:43 (comment)
+msgid "To use the setting globally, uncomment the following line:"
+msgstr ""
+"Para usar el ajuste de forma global, quite el comentario de la líne "
+"siguiente:"
+
+#. input/lsr/removing-the-first-empty-line.ly:44 (comment)
+msgid "\\override VerticalAxisGroup #'remove-first = ##t"
+msgstr ""
+
+#. input/lsr/removing-the-first-empty-line.ly:53 (comment)
+msgid "To use the setting globally, comment this line,"
+msgstr "Para usar el ajuste globalmente, haga un comentario de la línea siguiente:"
+
+#. input/lsr/removing-the-first-empty-line.ly:54 (comment)
+msgid "uncomment the line in the \\layout block above"
+msgstr "quite el comentario de la línea del bloque \\layout de arriba"
+
+#. input/lsr/reverting-default-beam-endings.ly:29 (comment)
+msgid "Default beaming"
+msgstr "Barrado predeterminado"
+
+#. input/lsr/reverting-default-beam-endings.ly:32 (comment)
+msgid "Revert default values in scm/auto-beam.scm for 12/8 time"
+msgstr "Revertir los valores predeterminados en scm/auto-beam.scm para el 12/8"
+
+#. input/lsr/reverting-default-beam-endings.ly:38 (comment)
+msgid "Set new values for beam endings"
+msgstr "establecer valores nuevos para finales de barra"
+
+#. input/lsr/rhythmic-slashes.ly:25 (comment)
+msgid "Macro to print single slash"
+msgstr "Macro para imprimir una barra inclinada única"
+
+#. input/lsr/rhythmic-slashes.ly:26 (variable)
+msgid "rs"
+msgstr "rs"
+
+#. input/lsr/rhythmic-slashes.ly:33 (comment)
+msgid "Function to print a specified number of slashes"
+msgstr "Función para imprimir un número especificado de barras inclinadas"
+
+#. input/lsr/rhythmic-slashes.ly:34 (variable)
+msgid "comp"
+msgstr "comp"
+
+#. input/lsr/score-for-diatonic-accordion.ly:69 (variable)
+msgid "NoStem"
+msgstr "sinPlica"
+
+#. input/lsr/score-for-diatonic-accordion.ly:70 (variable)
+msgid "NoNoteHead"
+msgstr "sinCabezas"
+
+#. input/lsr/score-for-diatonic-accordion.ly:71 (variable)
+msgid "ZeroBeam"
+msgstr "sinBarras"
+
+#. input/lsr/score-for-diatonic-accordion.ly:73 (variable)
+msgid "staffTabLine"
+msgstr "lineaTablatura"
+
+#. input/lsr/score-for-diatonic-accordion.ly:78 (comment)
+msgid ""
+"Shows one horizontal line. The vertical line (simulating a bar-line) is "
+"simulated with a gridline"
+msgstr ""
+"Muestra una línea horizontal. La línea horizontal (que simula una divisoria) "
+"se simula con una línea de rejilla"
+
+#. input/lsr/score-for-diatonic-accordion.ly:83 (comment)
+msgid "disable the following line to see the the noteheads while writing the song "
+msgstr ""
+"Deshabilite la línea siguiente para ver las cabezas mientras escribe la "
+"canción"
+
+#. input/lsr/score-for-diatonic-accordion.ly:87 (comment)
+msgid "The beam between 8th-notes is used to draw the push-line"
+msgstr "La barra entre las corcheas se usa para trazar la línea de cerrar"
+
+#. input/lsr/score-for-diatonic-accordion.ly:88 (comment)
+msgid "How to fast write the push-lines: "
+msgstr "Cuán rápido escribir las líneas de cerrar:"
+
+#. input/lsr/score-for-diatonic-accordion.ly:89 (comment)
+msgid "1. write repeatedly 'c c c c c c c c |' for the whole length of the song "
+msgstr "1. escribir repetidamente 'c c c c c c c c |' en toda la canción"
+
+#. input/lsr/score-for-diatonic-accordion.ly:90 (comment)
+msgid "2. uncomment the line \\NoNoteHead"
+msgstr "2. quitar el comentario de la línea \\NoNoteHead"
+
+#. input/lsr/score-for-diatonic-accordion.ly:91 (comment)
+msgid "3. compile"
+msgstr "3. compilar"
+
+#. input/lsr/score-for-diatonic-accordion.ly:92 (comment)
+msgid "4. Mark the positions on which push/pull changes. "
+msgstr "4. Marcar las posiciones en las que cambia el abrir o cerrar"
+
+#. input/lsr/score-for-diatonic-accordion.ly:93 (comment)
+msgid "In the score-picture click on the position the push- or pull-part starts "
+msgstr ""
+"En la imagen de la partitura pulse sobre la posición en que inician las "
+"partes de abrir o cerrar"
+
+#. input/lsr/score-for-diatonic-accordion.ly:94 (comment)
+msgid "(on the noteHead, the cursor will change to a hand-icon)."
+msgstr "(sobre la cabeza, el cursor cambia a una mano)."
+
+#. input/lsr/score-for-diatonic-accordion.ly:95 (comment)
+msgid "The cursor in the source code will jump just at this position."
+msgstr "El cursor sobre la fuente salta a esta posición."
+
+#. input/lsr/score-for-diatonic-accordion.ly:96 (comment)
+msgid "a) If a push-part starts there, replace the 'c' by an 'e['"
+msgstr "a) Si en ese lugar empieza una parte de cerrar, cambie la 'c' por 'e['"
+
+#. input/lsr/score-for-diatonic-accordion.ly:97 (comment)
+msgid "b) If a pull-part starts there, replace the 'c' by an 's'"
+msgstr "b) Si en ese lugar empieza una parte de abrir, cambie la 'c' por una 's'"
+
+#. input/lsr/score-for-diatonic-accordion.ly:98 (comment)
+msgid "5. Switch into 'overwrite-mode' by pressing the 'ins' key. "
+msgstr "5. Cambie al modo de sobreescritura de texto pulsando la tecla 'ins'."
+
+#. input/lsr/score-for-diatonic-accordion.ly:99 (comment)
+msgid "6. For the pull-parts overwrite the 'c' with 's' "
+msgstr "6. Para las partes de abrir sobreescriba la 'c' con 's' "
+
+#. input/lsr/score-for-diatonic-accordion.ly:100 (comment)
+msgid "7. For every push-part replace the last 'c' with 'e]' "
+msgstr "7. Para cada parte de cerrar cambie la última 'c' por una 'e]' "
+
+#. input/lsr/score-for-diatonic-accordion.ly:101 (comment)
+msgid "8. Switch into 'insert-mode' again "
+msgstr "8. Pase de nuevo al modo de inserción"
+
+#. input/lsr/score-for-diatonic-accordion.ly:102 (comment)
+msgid ""
+"9. At last it should look lik e.g. (s s e[ c | c c c c c c c c | c c c c c c "
+"e] s s)"
+msgstr ""
+"9. Al final se verá como p.ej. (s s e[ c | c c c c c c c c | c c c c c c e] "
+"s s)"
+
+#. input/lsr/score-for-diatonic-accordion.ly:103 (comment)
+msgid "10. re-enable the line \\NoNoteHead"
+msgstr "10. rehabilite la línea \\NoNoteHead"
+
+#. input/lsr/score-for-diatonic-accordion.ly:113 (comment)
+msgid "Accordion melody in tabulator score\t\t"
+msgstr "Melodía de acordeón en partitura de tablatura\t\t"
+
+#. input/lsr/score-for-diatonic-accordion.ly:114 (comment)
+msgid "1. Place a copy of the piano melody below"
+msgstr "1. Ponga debajo una copia de la melodía de piano"
+
+#. input/lsr/score-for-diatonic-accordion.ly:115 (comment)
+#. input/lsr/score-for-diatonic-accordion.ly:134 (comment)
+msgid ""
+"2. Separate piano melody into pull- and push-parts according to the "
+"staffTabLine you've already made      "
+msgstr ""
+"2. Separe la melodía de piano en partes de abrir y de cerrar de acuerdo con "
+"la staffTabLine que ha preparado"
+
+#. input/lsr/score-for-diatonic-accordion.ly:116 (comment)
+msgid ""
+"3. For each line: Double the line. Remark the 1st one (Keeps unchanged as "
+"reference) and then change the second line using the transformation paper"
+msgstr ""
+"3. Para cada línea; duplique la línea. Marque la primera como comentario (la "
+"conserva intacta como referencia) y luego cambie la segunda línea usando el "
+"papel de transformación"
+
+#. input/lsr/score-for-diatonic-accordion.ly:117 (comment)
+msgid "or the macros 'conv2diaton push.bsh' and 'conv2diaton pull.bsh' "
+msgstr "o los macros 'conv2diaton push.bsh' y 'conv2diaton pull.bsh' "
+
+#. input/lsr/score-for-diatonic-accordion.ly:118 (comment)
+#. input/lsr/score-for-diatonic-accordion.ly:137 (comment)
+msgid "Tips:"
+msgstr "Consejos:"
+
+#. input/lsr/score-for-diatonic-accordion.ly:119 (comment)
+#. input/lsr/score-for-diatonic-accordion.ly:138 (comment)
+msgid "- In jEdit Search & Replace mark the Option 'Keep Dialog'"
+msgstr "- En la búsqueda y sustitución de jEdit marque la opción 'Keep Dialog'"
+
+#. input/lsr/score-for-diatonic-accordion.ly:121 (variable)
+msgid "AccordionTabTwoCBesDur"
+msgstr "AcordeonTabDosCSibM"
+
+#. input/lsr/score-for-diatonic-accordion.ly:122 (comment)
+msgid "pull 1"
+msgstr "abrir 1"
+
+#. input/lsr/score-for-diatonic-accordion.ly:123 (comment)
+msgid "<f' bes'>8 <f' a'>8 <d' bes'>8 | "
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:125 (comment)
+msgid "push 2"
+msgstr "cerrar 2"
+
+#. input/lsr/score-for-diatonic-accordion.ly:126 (comment)
+msgid "<g' c''>4 <f' d''> <g' ees''> <f' a'> | "
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:128 (comment)
+msgid "pull 3"
+msgstr "abrir 3"
+
+#. input/lsr/score-for-diatonic-accordion.ly:129 (comment)
+msgid "<f' bes'>2 r8 }"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:133 (comment)
+msgid "1. Place a copy of the piano melody above"
+msgstr "1. Haga una copia de la melodía de piano de arriba"
+
+#. input/lsr/score-for-diatonic-accordion.ly:135 (comment)
+msgid ""
+"3. For each line: Double the line. Remark the 1st one (Keeps unchanged as "
+"reference) and then "
+msgstr ""
+"3. Para cada línea: duplique la línea. marque la primera como comentario (la "
+"conserva intacta como referencia) y después"
+
+#. input/lsr/score-for-diatonic-accordion.ly:136 (comment)
+msgid "change the second line using the transformation paper"
+msgstr "cambie la segunda línea usando el papel de transformación"
+
+#. input/lsr/score-for-diatonic-accordion.ly:139 (comment)
+msgid "- "
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:150 (comment)
+msgid "4/4 - tact. How many beats per bar"
+msgstr "4/4 - tact. Cuántos pulsos por compás"
+
+#. input/lsr/score-for-diatonic-accordion.ly:152 (comment)
+msgid "The following line has to be adjusted O-F-T-E-N."
+msgstr "La línea siguiente se tiene que ajustar A M-E-N-U-D-O."
+
+#. input/lsr/score-for-diatonic-accordion.ly:161 (variable)
+msgid "staffVoice"
+msgstr "vozPentagrama"
+
+#. input/lsr/score-for-diatonic-accordion.ly:169 (context id)
+msgid "melodyVoi"
+msgstr "melodiaVoi"
+
+#. input/lsr/score-for-diatonic-accordion.ly:175 (variable)
+msgid "staffAccordionMel"
+msgstr "pentagramaAcordMelodia"
+
+#. input/lsr/score-for-diatonic-accordion.ly:176 (comment)
+msgid "Set the accidentals (Vorzeichen) for each note, "
+msgstr "Fijar las alteraciones (Vorzeichen) para cada nota,"
+
+#. input/lsr/score-for-diatonic-accordion.ly:177 (comment)
+msgid "do not remember them for the rest of the measure.  "
+msgstr "no recordarlas para el resto del compás."
+
+#. input/lsr/score-for-diatonic-accordion.ly:196 (variable)
+msgid "BassRhytm"
+msgstr "DuracionesBajo"
+
+#. input/lsr/score-for-diatonic-accordion.ly:197 (variable)
+msgid "LyricBassRhythmI"
+msgstr "DuracionesLetraBajoI"
+
+#. input/lsr/score-for-diatonic-accordion.ly:199 (variable)
+msgid "staffBassRhytm"
+msgstr "duracionesPentagramaBajo"
+
+#. input/lsr/score-for-diatonic-accordion.ly:200 (comment)
+msgid "This is not a RhythmicStaff  because it must be possible to append lyrics."
+msgstr "Esto no es un RhythmicStaff porque se debe poder aplicar letra."
+
+#. input/lsr/score-for-diatonic-accordion.ly:202 (comment)
+msgid "x.y"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:204 (comment)
+msgid ""
+"Shows one horizontal line. The vertical line (simulating a bar-line) is "
+"simulated by a grid"
+msgstr ""
+"Muestra una línea horizontal. La línea vertical (que simula una divisoria) "
+"está simulada por una rejilla"
+
+#. input/lsr/score-for-diatonic-accordion.ly:205 (comment)
+msgid "Search for 'grid' in this page to find all related functions "
+msgstr ""
+"Busque por el término 'grid' en esta página para hallar todas las funciones "
+"relacionadas"
+
+#. input/lsr/score-for-diatonic-accordion.ly:208 (context id)
+msgid "VoiceBassRhytm"
+msgstr "DuracionesVozBajo"
+
+#. input/lsr/score-for-diatonic-accordion.ly:221 (comment)
+msgid ""
+"The vertical line (simulating a bar-line) in the staffBassRhytm is a "
+"gridline "
+msgstr ""
+"La línea vertical (que simula una divisoria) en el duracionesPentagramaBajo "
+"es una línea de rejilla"
+
+#. input/lsr/single-staff-template-with-notes,-lyrics,-chords-and-frets.ly:24 (comment)
+msgid "Define the fret diagrams to be used"
+msgstr "Definir los diagramas de posiciones que se van a usar"
+
+#. input/lsr/single-staff-template-with-notes,-lyrics,-chords-and-frets.ly:25 (variable)
+msgid "cFretDiagram"
+msgstr "diagramaPosicionDo"
+
+#. input/lsr/single-staff-template-with-notes,-lyrics,-chords-and-frets.ly:29 (variable)
+msgid "gFretDiagram"
+msgstr "diagramaPosicionSol"
+
+#. input/lsr/single-staff-template-with-notes,-lyrics,-chords-and-frets.ly:33 (variable)
+msgid "verseI"
+msgstr "estrofaI"
+
+#. input/lsr/single-staff-template-with-notes,-lyrics,-chords-and-frets.ly:38 (variable)
+msgid "verseII"
+msgstr "estrofaII"
+
+#. input/lsr/single-staff-template-with-notes,-lyrics,-chords-and-frets.ly:43 (variable)
+msgid "theChords"
+msgstr "losAcordes"
+
+#. input/lsr/single-staff-template-with-notes,-lyrics,-chords-and-frets.ly:45 (comment)
+msgid "insert the chords for chordnames here"
+msgstr "inserte aquí los acordes para chordnames"
+
+#. input/lsr/single-staff-template-with-notes,-lyrics,-chords-and-frets.ly:50 (variable)
+msgid "staffMelody"
+msgstr "melodiaPentagrama"
+
+#. input/lsr/single-staff-template-with-notes,-lyrics,-chords-and-frets.ly:51 (context id)
+msgid "voiceMelody"
+msgstr "melodiaVoz"
+
+#. input/lsr/single-staff-template-with-notes,-lyrics,-chords-and-frets.ly:55 (comment)
+msgid "Type notes and fret diagram markups here"
+msgstr "Teclee aquí las notas y los marcados de diagramas de posiciones"
+
+#. input/lsr/snap-pizzicato-markup-bartok-pizzicato.ly:54 (variable)
+msgid "snapPizzicato"
+msgstr "pizzicatoSnap"
+
+#. input/lsr/snap-pizzicato-markup-bartok-pizzicato.ly:56 (comment)
+msgid "now it can be used as \\snappizzicato after the note/chord"
+msgstr "ahora se puede usar como pizzicatoSnap después de la nota o acorde"
+
+#. input/lsr/snap-pizzicato-markup-bartok-pizzicato.ly:57 (comment)
+msgid "Note that a direction (-, ^ or _) is required."
+msgstr "Observe que se requiere una dirección (-, ^ ó _)."
+
+#. input/lsr/snap-pizzicato-markup-bartok-pizzicato.ly:60 (comment)
+msgid "This does NOT work:"
+msgstr "Esto NO funciona:"
+
+#. input/lsr/snap-pizzicato-markup-bartok-pizzicato.ly:61 (comment)
+msgid "<c e g>\\snapPizzicato"
+msgstr ""
+
+#. input/lsr/stemlets.ly:35 (comment)
+msgid "N.B. use Score.Stem to set for the whole score."
+msgstr "Nota: use Score.Stem para establecerlo para la partitura entera."
+
+#. input/lsr/string-quartet-template-simple.ly:34 (variable)
+msgid "violinOne"
+msgstr "violinUno"
+
+#. input/lsr/string-quartet-template-simple.ly:43 (variable)
+msgid "violinTwo"
+msgstr "violinDos"
+
+#. input/lsr/string-quartet-template-simple.ly:52 (variable)
+msgid "viola"
+msgstr "viola"
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:77 (comment)
+msgid "piece.ly"
+msgstr "pieza.ly"
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:78 (comment)
+msgid "(This is the global definitions file)"
+msgstr "(Este es el archivo de definiciones globales)"
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:85 (variable)
+msgid "Violinone"
+msgstr "violinuno"
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:90 (comment)
+#. input/lsr/string-quartet-template-with-separate-parts.ly:96 (comment)
+#. input/lsr/string-quartet-template-with-separate-parts.ly:103 (comment)
+msgid "*********************************"
+msgstr ""
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:91 (variable)
+msgid "Violintwo"
+msgstr "ViolinDos"
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:97 (variable)
+msgid "Viola"
+msgstr "Viola"
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:104 (variable)
+msgid "Cello"
+msgstr "Cello"
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:110 (comment)
+msgid "**********************************"
+msgstr ""
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:121 (comment)
+msgid "These are the other files you need to save on your computer"
+msgstr "Estos son los tros archivos que debe guardar en su sistema"
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:123 (comment)
+msgid "score.ly"
+msgstr "partitura.ly"
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:124 (comment)
+msgid "(This is the main file)"
+msgstr "(Este es el archivo principal)"
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:127 (comment)
+#, python-format
+msgid ""
+"\\include \\\"piece.ly\\\"             %%% uncomment this line when using a "
+"separate file"
+msgstr ""
+"\\include \\\"piece.ly\\\"             %%% quite la marca de comentario de "
+"esta línea si está usando un archivo aparte"
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:136 (comment)
+msgid "{ Uncomment this block when using separate files"
+msgstr "{ Quite la marca de comentario de este bloque si está usando archivos aparte"
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:138 (comment)
+msgid "vn1.ly"
+msgstr ""
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:139 (comment)
+msgid "(This is the Violin 1 part file)"
+msgstr "(Este es el archivo de particella del violín 1)"
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:148 (comment)
+msgid "vn2.ly"
+msgstr ""
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:149 (comment)
+msgid "(This is the Violin 2 part file)"
+msgstr "(Este es el archivo de particella del violín 2)"
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:158 (comment)
+msgid "vla.ly"
+msgstr ""
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:159 (comment)
+msgid "(This is the Viola part file)"
+msgstr "(Este es el archivo de particella de la viola)"
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:168 (comment)
+msgid "vlc.ly"
+msgstr ""
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:169 (comment)
+msgid "(This is the Cello part file)"
+msgstr "(Este es el archivo de particella del cello)"
+
+#. input/lsr/sub-dividing-beams.ly:50 (comment)
+msgid "Set beam sub-group length to an eighth note"
+msgstr "Fijar la longitud del subgrupo de barras a una corchea"
+
+#. input/lsr/sub-dividing-beams.ly:54 (comment)
+msgid "Set beam sub-group length to a sixteenth note"
+msgstr "Fijar la longitud del subgrupo de barras a una semicorchea"
+
+#. input/lsr/suppressing-warnings-for-clashing-note-columns.ly:19 (variable)
+msgid "ignore"
+msgstr "ignorar"
+
+#. input/lsr/three-sided-box.ly:16 (comment)
+msgid "New command to add a three sided box, with sides north, west and south"
+msgstr ""
+"Instrucción nueva para añadir una caja con tres lados apuntando al norte, "
+"oeste y sur"
+
+#. input/lsr/three-sided-box.ly:17 (comment)
+msgid "Based on the box-stencil command defined in scm/stencil.scm"
+msgstr "Basado en la instrucción box-stencil definida en scm/stencil.scm"
+
+#. input/lsr/three-sided-box.ly:18 (comment)
+msgid "Note that \\\";\\\" is used to comment a line in Scheme"
+msgstr "Observe que utilizamos \\\";\\\" para comentar una línea en Scheme"
+
+#. input/lsr/three-sided-box.ly:32 (comment)
+msgid "The corresponding markup command, based on the \\box command defined "
+msgstr ""
+"La instrucción de marcado correspondiente, basada en la instrucción \\box "
+"definida"
+
+#. input/lsr/three-sided-box.ly:33 (comment)
+msgid "in scm/define-markup-commands.scm"
+msgstr "en scm/define-markup-commands.scm"
+
+#. input/lsr/three-sided-box.ly:45 (comment)
+msgid "Test it:"
+msgstr "Probarla:"
+
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:35 (comment)
+msgid "make the staff lines invisible on staves"
+msgstr "hacer invisibles las líneas de los pentagramas"
+
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:127 (variable)
+msgid "incipitDiscantus"
+msgstr ""
+
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:151 (variable)
+msgid "incipitAltus"
+msgstr ""
+
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:176 (variable)
+msgid "incipitTenor"
+msgstr ""
+
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:202 (variable)
+msgid "incipitBassus"
+msgstr ""
+
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:226 (comment)
+msgid "StaffGroup is used instead of ChoirStaff to get bar lines between systems"
+msgstr ""
+"StaffGroup se usa en lugar de ChoirStaff para tener líneas divisorias entre "
+"los sistemas"
+
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:258 (comment)
+msgid "Keep the bass lyrics outside of the staff group to avoid bar lines"
+msgstr ""
+"Mantener la letra del bajo fuera del grupo de pentagrama para evitar las "
+"barras de compás"
+
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:259 (comment)
+msgid "between the lyrics."
+msgstr "entre las sílabas del texto"
+
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:269 (comment)
+msgid "the next three instructions keep the lyrics between the barlines"
+msgstr ""
+"las tres instrucciones siguientes hacen que la letra no choque con las "
+"divisorias"
+
+#. input/lsr/transposing-pitches-with-minimum-accidentals-smart-transpose.ly:132 (variable)
+msgid "naturalizeMusic"
+msgstr "naturalizarMusica"
+
+#. input/lsr/tweaking-clef-properties.ly:111 (comment)
+msgid "The default treble clef"
+msgstr "Clave de sol predeterminada"
+
+#. input/lsr/tweaking-clef-properties.ly:113 (comment)
+msgid "The standard bass clef"
+msgstr "Clave de Fa estándar"
+
+#. input/lsr/tweaking-clef-properties.ly:118 (comment)
+msgid "The baritone clef"
+msgstr "Clave de barítono (do en quinta)"
+
+#. input/lsr/tweaking-clef-properties.ly:123 (comment)
+msgid "The standard choral tenor clef"
+msgstr "Clave estándar de tenor coral"
+
+#. input/lsr/tweaking-clef-properties.ly:129 (comment)
+msgid "A non-standard clef"
+msgstr "Clave no estándar"
+
+#. input/lsr/tweaking-clef-properties.ly:135 (comment)
+msgid "The following clef changes do not preserve"
+msgstr "Los siguientes cambios de clave no preservan"
+
+#. input/lsr/tweaking-clef-properties.ly:136 (comment)
+msgid "the normal relationship between notes and clefs:"
+msgstr "la relación normal entre notas y claves:"
+
+#. input/lsr/tweaking-clef-properties.ly:151 (comment)
+msgid "Return to the normal clef:"
+msgstr "Volver a la clave normal:"
+
+#. input/lsr/using-beatlength-and-beatgrouping.ly:34 (comment)
+msgid "The default in 3/4 time is to beam in three groups"
+msgstr "De forma predeterminada, en 3/4 el barrado se hace en tres grupos"
+
+#. input/lsr/using-beatlength-and-beatgrouping.ly:35 (comment)
+msgid "each of a quarter note length"
+msgstr "de una negra de longitud cada uno"
+
+#. input/lsr/using-beatlength-and-beatgrouping.ly:39 (comment)
+msgid "No auto-beaming is defined for 12/16"
+msgstr "No hay ningún barrado automático definido para 12/16"
+
+#. input/lsr/using-beatlength-and-beatgrouping.ly:43 (comment)
+msgid "Change time signature symbol, but retain underlying 3/4 beaming"
+msgstr "Cambiar el símbolo de compás, manteniendo el barrado subyacente de 3/4"
+
+#. input/lsr/using-beatlength-and-beatgrouping.ly:47 (comment)
+msgid "The 3/4 time default grouping of (1 1 1) and beatLength of 1/8"
+msgstr "El agrupamiento predeterminado de (1 1 1) y beatLength de 1/8 del compás 3/4"
+
+#. input/lsr/using-beatlength-and-beatgrouping.ly:48 (comment)
+msgid "are not consistent with a measureLength of 3/4, so the beams"
+msgstr ""
+"no son consistentes con una longitud de compás measureLength de 3/4, por "
+"ello las barras"
+
+#. input/lsr/using-beatlength-and-beatgrouping.ly:49 (comment)
+msgid "are grouped at beatLength intervals"
+msgstr "se agrupan a intervalos de beatLength"
+
+#. input/lsr/using-beatlength-and-beatgrouping.ly:53 (comment)
+msgid "Specify beams in groups of (3 3 2 3) 1/16th notes"
+msgstr "Especificar barras en grupos de (3 3 2 3) semicorcheas"
+
+#. input/lsr/using-beatlength-and-beatgrouping.ly:54 (comment)
+msgid "3+3+2+3=11, and 11*1/16<>3/4, so beatGrouping does not apply,"
+msgstr "3+3+2+3=11, y 11*1/16<>3/4, así que no es de aplicación beatGrouping"
+
+#. input/lsr/using-beatlength-and-beatgrouping.ly:55 (comment)
+msgid "and beams are grouped at beatLength (1/16) intervals"
+msgstr "y las barras se agrupan a intervalos de beatLength (semicorcheas)"
+
+#. input/lsr/using-beatlength-and-beatgrouping.ly:60 (comment)
+msgid "Specify beams in groups of (3 4 2 3) 1/16th notes"
+msgstr "Especificat barras en grupos de (3 4 2 3) semicorcheas"
+
+#. input/lsr/using-beatlength-and-beatgrouping.ly:61 (comment)
+msgid "3+4+2+3=12, and 12*1/16=3/4, so beatGrouping applies"
+msgstr "3+4+2+3=12, y 12*1/16=3/4, así pues beatGrouping es de aplicación"
+
+#. input/lsr/using-postscript-to-generate-special-note-head-shapes.ly:26 (variable)
+msgid "parallelogram"
+msgstr "paralelogramo"
+
+#. input/lsr/using-postscript-to-generate-special-note-head-shapes.ly:41 (variable)
+msgid "myNoteHeads"
+msgstr "misCabezas"
+
+#. input/lsr/using-postscript-to-generate-special-note-head-shapes.ly:42 (variable)
+msgid "normalNoteHeads"
+msgstr "cabezasNormales"
+
+#. input/lsr/utf-8.ly:34 (comment)
+msgid "end verbatim - this comment is a hack to prevent texinfo.tex"
+msgstr ""
+"final del bloque literal. Este comentario es un truco para evitar que "
+"texinfo.tex"
+
+#. input/lsr/utf-8.ly:35 (comment)
+msgid "from choking on non-European UTF-8 subsets"
+msgstr "proteste respecto a los subconjuntos de UTF-8 no europeos"
+
+#. input/lsr/utf-8.ly:36 (comment)
+msgid "Cyrillic font"
+msgstr "Fuente cirílica"
+
+#. input/lsr/utf-8.ly:37 (variable)
+msgid "bulgarian"
+msgstr "bulgaro"
+
+#. input/lsr/utf-8.ly:41 (variable)
+msgid "hebrew"
+msgstr "hebreo"
+
+# fuzzy. FVD
+#. input/lsr/utf-8.ly:45 (variable)
+msgid "japanese"
+msgstr "japones"
+
+#. input/lsr/utf-8.ly:52 (comment)
+msgid "\\\"a legal song to you\\\""
+msgstr "\\\"una canción legal para ti\\\""
+
+#. input/lsr/utf-8.ly:53 (variable)
+msgid "portuguese"
+msgstr "portugues"
+
+#. input/lsr/vertically-centered-common-lyrics.ly:19 (variable)
+msgid "leftbrace"
+msgstr "llaveizquierda"
+
+#. input/lsr/vertically-centered-common-lyrics.ly:20 (variable)
+msgid "rightbrace"
+msgstr "llavederecha"
+
+#. input/lsr/vertically-centered-common-lyrics.ly:22 (variable)
+msgid "dropLyrics"
+msgstr "bajarLetra"
+
+#. input/lsr/vertically-centered-common-lyrics.ly:29 (variable)
+msgid "raiseLyrics"
+msgstr "elevarLetra"
+
+#. input/lsr/vertically-centered-common-lyrics.ly:36 (variable)
+msgid "skipFour"
+msgstr "saltoCuatro"
+
+#. input/lsr/vertically-centered-common-lyrics.ly:38 (variable)
+msgid "lyricsA"
+msgstr "letraA"
+
+#. input/lsr/vertically-centered-common-lyrics.ly:40 (variable)
+msgid "lyricsB"
+msgstr "letraB"
+
+#. input/lsr/vertically-centered-common-lyrics.ly:41 (variable)
+msgid "lyricsC"
+msgstr "letraC"
+
+#. input/lsr/vertically-centered-common-lyrics.ly:42 (variable)
+msgid "lyricsD"
+msgstr "letraD"
+
+#. input/lsr/vertically-centered-common-lyrics.ly:49 (context id)
+msgid "m"
+msgstr ""
+
+#. input/lsr/vocal-ensemble-template-with-automatic-piano-reduction.ly:51 (variable)
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:42 (variable)
+#. input/lsr/vocal-ensemble-template.ly:47 (variable)
+msgid "sopMusic"
+msgstr "musicaSoprano"
+
+#. input/lsr/vocal-ensemble-template-with-automatic-piano-reduction.ly:54 (variable)
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:45 (variable)
+#. input/lsr/vocal-ensemble-template.ly:50 (variable)
+msgid "sopWords"
+msgstr "letraSoprano"
+
+#. input/lsr/vocal-ensemble-template-with-automatic-piano-reduction.ly:83 (context id)
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:72 (context id)
+#. input/lsr/vocal-ensemble-template.ly:78 (context id)
+msgid "women"
+msgstr "mujeres"
+
+#. input/lsr/vocal-ensemble-template-with-automatic-piano-reduction.ly:89 (context id)
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:82 (context id)
+#. input/lsr/vocal-ensemble-template.ly:90 (context id)
+msgid "men"
+msgstr "hombres"
+
+#. input/lsr/vocal-ensemble-template-with-automatic-piano-reduction.ly:118 (comment)
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:94 (comment)
+#. input/lsr/vocal-ensemble-template.ly:108 (comment)
+msgid "a little smaller so lyrics"
+msgstr "algo más pequeño de forma que la letra"
+
+#. input/lsr/vocal-ensemble-template-with-automatic-piano-reduction.ly:119 (comment)
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:95 (comment)
+#. input/lsr/vocal-ensemble-template.ly:109 (comment)
+msgid "can be closer to the staff"
+msgstr "esté más cerca del pentagrama"
+
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:78 (comment)
+msgid "we could remove the line about this with the line below, since we want"
+msgstr ""
+"podríamos quitar la línea anterior y sustituirla por la siguiente, pues "
+"queremos"
+
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:79 (comment)
+msgid "the alto lyrics to be below the alto Voice anyway."
+msgstr ""
+"que la letra de la contralto esté debajo de la voz de contralto de todas "
+"formas."
+
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:80 (comment)
+msgid "\\new Lyrics \\lyricsto altos \\altoWords"
+msgstr ""
+
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:89 (comment)
+msgid "again, we could replace the line above this with the line below."
+msgstr "de nuevo podríamos sustituir la línea anterior con la línea siguiente."
+
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:90 (comment)
+msgid "\\new Lyrics \\lyricsto basses \\bassWords"
+msgstr ""
+
+#. input/lsr/volta-multi-staff.ly:13 (variable)
+msgid "voltaMusic"
+msgstr "musicaRepeticion"
 
 msgid "Up:"
 msgstr "Arriba:"
index 79a0872f7426639ed1dc75fb2f6c3182f7cd082e..e3d0d8c72cfc065b04b3f35c4da5cc270f3a33b3 100644 (file)
@@ -1,15 +1,15 @@
-# translation of fr.po to Français
-# translation of LilyPond documentation
+# translation of LilyPond documentation to French
 # Copyright (C) 2006 Han-Wen Nienhuys, Jan Nieuwenhuizen
 # This file is distributed under the same license as the lilypond package.
 #
-# John Mandereau <john.mandereau@free.fr>, 2006, 2007.
+# John Mandereau <john.mandereau@free.fr>, 2006-2008,
+# Jean-Charles Malahieude <lilyfan@orange.fr>, 2008.
 msgid ""
 msgstr ""
 "Project-Id-Version: fr\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-10-27 12:40+0100\n"
-"PO-Revision-Date: 2008-10-22 22:31+0200\n"
+"POT-Creation-Date: 2009-02-14 02:23+0100\n"
+"PO-Revision-Date: 2009-02-15 13:17+0100\n"
 "Last-Translator: Jean-Charles Malahieude <lolyfan-AT-wanadoo-DOT-fr>\n"
 "Language-Team: Français <lilypond-user-fr@gnu.org>\n"
 "MIME-Version: 1.0\n"
@@ -32,7 +32,11 @@ msgid ""
 msgstr ""
 "Vos <a href=\"%(suggest_Docs_url)s\">suggestions à propos de la "
 "documentation</a> sont les bienvenues ;\n"
-"signalez tout bogue à la <a href=\\\"%(mail_address_url)s\\\">liste.."
+"signalez tout bogue en français à la <a href=\\\"http://n2.nabble.com/"
+"LilyPond-French-Users-f1298960.html\\\">liste\n"
+"francophone des utilisateurs</a> ou en anglais à la <a href=\\\"%"
+"(mail_address_url)s\\\">liste des\n"
+"utilisateurs</a>."
 
 #: postprocess_html.py:59
 #, python-format
@@ -44,11 +48,11 @@ msgstr "Autres langues&nbsp;: %s."
 msgid "About <A HREF=\"%s\">automatic language selection</A>."
 msgstr "À propos de la <A HREF=\"%s\">sélection automatique de la langue</A>."
 
-#: postprocess_html.py:315
+#: postprocess_html.py:316
 msgid "stable-branch"
 msgstr "branche stable"
 
-#: postprocess_html.py:317
+#: postprocess_html.py:318
 msgid "development-branch"
 msgstr "branche de développement"
 
@@ -60,82 +64,82 @@ msgstr ""
 "Cette section n'est pas encore traduite ; reportez-vous à l'édition de ce "
 "manuel en anglais."
 
-#: translations-status.py:52
+#: translations-status.py:59
 msgid "Section titles"
 msgstr "Titre des chapitres"
 
-#: translations-status.py:53
+#: translations-status.py:60
 #, python-format
 msgid " <p><i>Last updated %s</i></p>\n"
 msgstr " <p><i>Dernière mise à jour %s</i></p>\n"
 
-#: translations-status.py:54
+#: translations-status.py:61
 msgid "Translators"
 msgstr "Traducteurs"
 
-#: translations-status.py:54
+#: translations-status.py:61
 msgid "Translation checkers"
 msgstr "Relecteurs"
 
-#: translations-status.py:55
+#: translations-status.py:62
 msgid "Translated"
 msgstr "Traduit"
 
-#: translations-status.py:55
+#: translations-status.py:62
 msgid "Up to date"
 msgstr "À jour"
 
-#: translations-status.py:56
+#: translations-status.py:63
 msgid "Other info"
 msgstr "Autres informations"
 
-#: translations-status.py:58
+#: translations-status.py:65
 msgid "no"
 msgstr "non"
 
-#: translations-status.py:59
+#: translations-status.py:66
 msgid "not translated"
 msgstr "non traduit"
 
-#: translations-status.py:61
+#: translations-status.py:68
 #, python-format
 msgid "partially (%(p)d %%)"
 msgstr "partiellement (%(p)d %%)"
 
-#: translations-status.py:63
+#: translations-status.py:70
 #, python-format
 msgid "partially translated (%(p)d %%)"
 msgstr "partiellement traduit (%(p)d %%)"
 
-#: translations-status.py:64 translations-status.py:66
+#: translations-status.py:71 translations-status.py:73
 msgid "yes"
 msgstr "oui"
 
-#: translations-status.py:65
+#: translations-status.py:72
 msgid "translated"
 msgstr "traduit"
 
-#: translations-status.py:66 translations-status.py:67
+#: translations-status.py:73 translations-status.py:74
 msgid "up to date"
 msgstr "à jour"
 
-#: translations-status.py:68
+#: translations-status.py:75
 msgid "partially"
 msgstr "partiellement"
 
-#: translations-status.py:69
+#: translations-status.py:76
 msgid "partially up to date"
 msgstr "partiellement à jour"
 
-#: translations-status.py:70
+#: translations-status.py:77
 msgid "N/A"
 msgstr "N/A"
 
-#: translations-status.py:71
+#: translations-status.py:78
 msgid "pre-GDP"
 msgstr "pré-GDP"
 
-#: translations-status.py:72
+#: translations-status.py:79
 msgid "post-GDP"
 msgstr "post-GDP"
 
@@ -152,11 +156,12 @@ msgstr "post-GDP"
 #. @node in Documentation/de/user/lilypond-learning.tely
 #. @node in Documentation/de/user/lilypond-program.tely
 #. @node in Documentation/de/user/lilypond.tely
+#. @node in Documentation/ja/user/lilypond-learning.tely
+#. @node in Documentation/ja/user/lilypond-program.tely
 msgid "Top"
 msgstr "Sommaire"
 
 #. @top in Documentation/user/lilypond-learning.tely
-#, fuzzy
 msgid "GNU LilyPond --- Learning Manual"
 msgstr "GNU LilyPond --- Manuel d'initiation"
 
@@ -184,30 +189,38 @@ msgstr "GNU LilyPond --- Manuel d'initiation"
 #. @appendix in Documentation/de/user/lilypond-program.tely
 #. @node in Documentation/de/user/lilypond.tely
 #. @appendix in Documentation/de/user/lilypond.tely
+#. @node in Documentation/ja/user/lilypond-learning.tely
+#. @appendix in Documentation/ja/user/lilypond-learning.tely
+#. @node in Documentation/ja/user/lilypond-program.tely
+#. @appendix in Documentation/ja/user/lilypond-program.tely
 msgid "LilyPond index"
 msgstr "Index de LilyPond"
 
 #. @subsubheading in Documentation/user/macros.itexi
 #. @subsubheading in Documentation/fr/user/macros.itexi
 #. @subsubheading in Documentation/de/user/macros.itexi
+#. @subsubheading in Documentation/ja/user/macros.itexi
 msgid "Predefined commands"
 msgstr "Commandes prédéfinies"
 
 #. @subsubheading in Documentation/user/macros.itexi
 #. @subsubheading in Documentation/fr/user/macros.itexi
 #. @subsubheading in Documentation/de/user/macros.itexi
+#. @subsubheading in Documentation/ja/user/macros.itexi
 msgid "Selected Snippets"
 msgstr "Morceaux choisis"
 
 #. @subsubheading in Documentation/user/macros.itexi
 #. @subsubheading in Documentation/fr/user/macros.itexi
 #. @subsubheading in Documentation/de/user/macros.itexi
+#. @subsubheading in Documentation/ja/user/macros.itexi
 msgid "See also"
 msgstr "Voir aussi"
 
 #. @subsubheading in Documentation/user/macros.itexi
 #. @subsubheading in Documentation/fr/user/macros.itexi
 #. @subsubheading in Documentation/de/user/macros.itexi
+#. @subsubheading in Documentation/ja/user/macros.itexi
 msgid "Known issues and warnings"
 msgstr "Problèmes connus et avertissements"
 
@@ -219,6 +232,8 @@ msgstr "Problèmes connus et avertissements"
 #. @unnumbered in Documentation/es/user/preface.itely
 #. @node in Documentation/de/user/preface.itely
 #. @unnumbered in Documentation/de/user/preface.itely
+#. @node in Documentation/ja/user/preface.itely
+#. @unnumbered in Documentation/ja/user/preface.itely
 msgid "Preface"
 msgstr "Préface"
 
@@ -230,6 +245,8 @@ msgstr "Préface"
 #. @chapter in Documentation/es/user/introduction.itely
 #. @node in Documentation/de/user/introduction.itely
 #. @chapter in Documentation/de/user/introduction.itely
+#. @node in Documentation/ja/user/introduction.itely
+#. @chapter in Documentation/ja/user/introduction.itely
 msgid "Introduction"
 msgstr "Introduction"
 
@@ -241,6 +258,8 @@ msgstr "Introduction"
 #. @section in Documentation/es/user/introduction.itely
 #. @node in Documentation/de/user/introduction.itely
 #. @section in Documentation/de/user/introduction.itely
+#. @node in Documentation/ja/user/introduction.itely
+#. @section in Documentation/ja/user/introduction.itely
 msgid "Background"
 msgstr "Contexte"
 
@@ -252,6 +271,8 @@ msgstr "Contexte"
 #. @unnumberedsubsec in Documentation/es/user/introduction.itely
 #. @node in Documentation/de/user/introduction.itely
 #. @unnumberedsubsec in Documentation/de/user/introduction.itely
+#. @node in Documentation/ja/user/introduction.itely
+#. @unnumberedsubsec in Documentation/ja/user/introduction.itely
 msgid "Engraving"
 msgstr "Gravure"
 
@@ -263,6 +284,8 @@ msgstr "Gravure"
 #. @unnumberedsubsec in Documentation/es/user/introduction.itely
 #. @node in Documentation/de/user/introduction.itely
 #. @unnumberedsubsec in Documentation/de/user/introduction.itely
+#. @node in Documentation/ja/user/introduction.itely
+#. @unnumberedsubsec in Documentation/ja/user/introduction.itely
 msgid "Automated engraving"
 msgstr "Gravure automatisée"
 
@@ -274,6 +297,8 @@ msgstr "Gravure automatisée"
 #. @unnumberedsubsec in Documentation/es/user/introduction.itely
 #. @node in Documentation/de/user/introduction.itely
 #. @unnumberedsubsec in Documentation/de/user/introduction.itely
+#. @node in Documentation/ja/user/introduction.itely
+#. @unnumberedsubsec in Documentation/ja/user/introduction.itely
 msgid "What symbols to engrave?"
 msgstr "Gravure des symboles musicaux"
 
@@ -285,6 +310,8 @@ msgstr "Gravure des symboles musicaux"
 #. @unnumberedsubsec in Documentation/es/user/introduction.itely
 #. @node in Documentation/de/user/introduction.itely
 #. @unnumberedsubsec in Documentation/de/user/introduction.itely
+#. @node in Documentation/ja/user/introduction.itely
+#. @unnumberedsubsec in Documentation/ja/user/introduction.itely
 msgid "Music representation"
 msgstr "Représentation de la musique"
 
@@ -296,6 +323,8 @@ msgstr "Représentation de la musique"
 #. @unnumberedsubsec in Documentation/es/user/introduction.itely
 #. @node in Documentation/de/user/introduction.itely
 #. @unnumberedsubsec in Documentation/de/user/introduction.itely
+#. @node in Documentation/ja/user/introduction.itely
+#. @unnumberedsubsec in Documentation/ja/user/introduction.itely
 msgid "Example applications"
 msgstr "Exemples d'application"
 
@@ -307,6 +336,8 @@ msgstr "Exemples d'application"
 #. @section in Documentation/es/user/introduction.itely
 #. @node in Documentation/de/user/introduction.itely
 #. @section in Documentation/de/user/introduction.itely
+#. @node in Documentation/ja/user/introduction.itely
+#. @section in Documentation/ja/user/introduction.itely
 msgid "About the documentation"
 msgstr "À propos de la documentation"
 
@@ -318,6 +349,8 @@ msgstr "À propos de la documentation"
 #. @unnumberedsubsec in Documentation/es/user/introduction.itely
 #. @node in Documentation/de/user/introduction.itely
 #. @unnumberedsubsec in Documentation/de/user/introduction.itely
+#. @node in Documentation/ja/user/introduction.itely
+#. @unnumberedsubsec in Documentation/ja/user/introduction.itely
 msgid "About the Learning Manual"
 msgstr "À propos du manuel d'initiation"
 
@@ -329,6 +362,8 @@ msgstr "À propos du manuel d'initiation"
 #. @unnumberedsubsec in Documentation/es/user/introduction.itely
 #. @node in Documentation/de/user/introduction.itely
 #. @unnumberedsubsec in Documentation/de/user/introduction.itely
+#. @node in Documentation/ja/user/introduction.itely
+#. @unnumberedsubsec in Documentation/ja/user/introduction.itely
 msgid "About the Music Glossary"
 msgstr "À propos du glossaire musicologique"
 
@@ -340,6 +375,8 @@ msgstr "À propos du glossaire musicologique"
 #. @unnumberedsubsec in Documentation/es/user/introduction.itely
 #. @node in Documentation/de/user/introduction.itely
 #. @unnumberedsubsec in Documentation/de/user/introduction.itely
+#. @node in Documentation/ja/user/introduction.itely
+#. @unnumberedsubsec in Documentation/ja/user/introduction.itely
 msgid "About the Notation Reference"
 msgstr "À propos du manuel de notation"
 
@@ -351,6 +388,8 @@ msgstr "À propos du manuel de notation"
 #. @unnumberedsubsec in Documentation/es/user/introduction.itely
 #. @node in Documentation/de/user/introduction.itely
 #. @unnumberedsubsec in Documentation/de/user/introduction.itely
+#. @node in Documentation/ja/user/introduction.itely
+#. @unnumberedsubsec in Documentation/ja/user/introduction.itely
 msgid "About the Application Usage"
 msgstr "À propos du manuel d'utilisation"
 
@@ -362,6 +401,8 @@ msgstr "À propos du manuel d'utilisation"
 #. @unnumberedsubsec in Documentation/es/user/introduction.itely
 #. @node in Documentation/de/user/introduction.itely
 #. @unnumberedsubsec in Documentation/de/user/introduction.itely
+#. @node in Documentation/ja/user/introduction.itely
+#. @unnumberedsubsec in Documentation/ja/user/introduction.itely
 msgid "About the Snippet List"
 msgstr "À propos des morceaux choisis"
 
@@ -373,6 +414,8 @@ msgstr "À propos des morceaux choisis"
 #. @unnumberedsubsec in Documentation/es/user/introduction.itely
 #. @node in Documentation/de/user/introduction.itely
 #. @unnumberedsubsec in Documentation/de/user/introduction.itely
+#. @node in Documentation/ja/user/introduction.itely
+#. @unnumberedsubsec in Documentation/ja/user/introduction.itely
 msgid "About the Internals Reference"
 msgstr "À propos des références du programme"
 
@@ -384,6 +427,8 @@ msgstr "À propos des références du programme"
 #. @unnumberedsubsec in Documentation/es/user/introduction.itely
 #. @node in Documentation/de/user/introduction.itely
 #. @unnumberedsubsec in Documentation/de/user/introduction.itely
+#. @node in Documentation/ja/user/introduction.itely
+#. @unnumberedsubsec in Documentation/ja/user/introduction.itely
 msgid "Other documentation"
 msgstr "Autres sources de documentation"
 
@@ -397,15 +442,15 @@ msgstr "une octave au dessus du do central"
 
 #. Documentation/user/tutorial.itely:298 (comment)
 msgid "c is 1 staff space up, so is the c above"
-msgstr "do est à un cran de plus, il sera donc au dessus"
+msgstr "do est à un cran de plus, il sera donc au-dessus"
 
 #. Documentation/user/tutorial.itely:299 (comment)
 msgid "d is 2 up or 5 down, so is the d above"
-msgstr "ré est à 2 crans de plus ou 5 de moins, il sera donc au dessus"
+msgstr "ré est à 2 crans de plus ou 5 de moins, il sera donc au-dessus"
 
 #. Documentation/user/tutorial.itely:300 (comment)
 msgid "e is 3 up or 4 down, so is the e above"
-msgstr "mi est à 3 crans de plus ou 4 de moins, il sera donc au dessus"
+msgstr "mi est à 3 crans de plus ou 4 de moins, il sera donc au-dessus"
 
 #. Documentation/user/tutorial.itely:301 (comment)
 msgid "a is 6 up or 1 down, so is the a below"
@@ -419,21 +464,23 @@ msgstr "sol est à 5 crans de plus ou 2 de moins, il sera donc en dessous"
 msgid "f is 4 up or 3 down, so is the f below"
 msgstr "fa est à 4 crans de plus ou 3 de moins, il sera donc en dessous"
 
-#. Documentation/user/tutorial.itely:1796 (variable)
-#. Documentation/user/working.itely:214 (variable)
-#. Documentation/user/working.itely:229 (variable)
+#. Documentation/user/tutorial.itely:1791 (variable)
+#. Documentation/user/working.itely:233 (variable)
+#. Documentation/user/working.itely:248 (variable)
+#. Documentation/user/pitches.itely:1078 (context id)
 msgid "violin"
 msgstr "violon"
 
-#. Documentation/user/tutorial.itely:1801 (variable)
+#. Documentation/user/tutorial.itely:1796 (variable)
+#. input/lsr/string-quartet-template-simple.ly:62 (variable)
 msgid "cello"
 msgstr "cello"
 
-#. Documentation/user/tutorial.itely:1826 (variable)
+#. Documentation/user/tutorial.itely:1821 (variable)
 msgid "tripletA"
 msgstr "trioletA"
 
-#. Documentation/user/tutorial.itely:1827 (variable)
+#. Documentation/user/tutorial.itely:1822 (variable)
 msgid "barA"
 msgstr "mesureA"
 
@@ -442,6 +489,9 @@ msgstr "mesureA"
 #. @rglos in Documentation/user/tutorial.itely
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
+#. input/lsr/measure-counter.ly:25 (context id)
+#. input/lsr/measure-counter.ly:32 (context id)
 msgid "foo"
 msgstr "toto"
 
@@ -453,6 +503,8 @@ msgstr "toto"
 #. @chapter in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @chapter in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @chapter in Documentation/ja/user/tutorial.itely
 msgid "Tutorial"
 msgstr "Tutoriel"
 
@@ -464,6 +516,8 @@ msgstr "Tutoriel"
 #. @section in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @section in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @section in Documentation/ja/user/tutorial.itely
 msgid "First steps"
 msgstr "Premiers pas"
 
@@ -475,6 +529,8 @@ msgstr "Premiers pas"
 #. @subsection in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "Compiling a file"
 msgstr "Compilation d'un fichier"
 
@@ -482,6 +538,7 @@ msgstr "Compilation d'un fichier"
 #. @subheading in Documentation/fr/user/tutorial.itely
 #. @subheading in Documentation/es/user/tutorial.itely
 #. @subheading in Documentation/de/user/tutorial.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Entering music and viewing output"
 msgstr "Saisie de la musique et visualisation de la partition produite"
 
@@ -489,6 +546,7 @@ msgstr "Saisie de la musique et visualisation de la partition produite"
 #. @subsubheading in Documentation/fr/user/tutorial.itely
 #. @subsubheading in Documentation/es/user/tutorial.itely
 #. @subsubheading in Documentation/de/user/tutorial.itely
+#. @subsubheading in Documentation/ja/user/tutorial.itely
 msgid "MacOS X"
 msgstr "MacOS X"
 
@@ -496,6 +554,7 @@ msgstr "MacOS X"
 #. @subsubheading in Documentation/fr/user/tutorial.itely
 #. @subsubheading in Documentation/es/user/tutorial.itely
 #. @subsubheading in Documentation/de/user/tutorial.itely
+#. @subsubheading in Documentation/ja/user/tutorial.itely
 msgid "Windows"
 msgstr "Windows"
 
@@ -503,6 +562,7 @@ msgstr "Windows"
 #. @subsubheading in Documentation/fr/user/tutorial.itely
 #. @subsubheading in Documentation/es/user/tutorial.itely
 #. @subsubheading in Documentation/de/user/tutorial.itely
+#. @subsubheading in Documentation/ja/user/tutorial.itely
 msgid "UNIX"
 msgstr "UNIX"
 
@@ -514,6 +574,8 @@ msgstr "UNIX"
 #. @subsection in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "Simple notation"
 msgstr "Notation simple"
 
@@ -528,6 +590,7 @@ msgstr "Notation simple"
 #. @subheading in Documentation/de/user/tutorial.itely
 #. @node in Documentation/de/user/pitches.itely
 #. @section in Documentation/de/user/pitches.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Pitches"
 msgstr "Hauteurs"
 
@@ -535,6 +598,7 @@ msgstr "Hauteurs"
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "pitch"
 msgstr "hauteur"
 
@@ -545,6 +609,7 @@ msgstr "hauteur"
 #. @rglos in Documentation/es/user/pitches.itely
 #. @rglos in Documentation/de/user/tutorial.itely
 #. @rglos in Documentation/de/user/pitches.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "interval"
 msgstr "intervalle"
 
@@ -552,6 +617,7 @@ msgstr "intervalle"
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "scale"
 msgstr "gamme"
 
@@ -559,6 +625,7 @@ msgstr "gamme"
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "middle C"
 msgstr "do central"
 
@@ -566,6 +633,7 @@ msgstr "do central"
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "octave"
 msgstr "octave"
 
@@ -573,12 +641,14 @@ msgstr "octave"
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "accidental"
-msgstr "altération accidentelle"
+msgstr "altération"
 
 #. @subheading in Documentation/user/tutorial.itely
 #. @subheading in Documentation/es/user/tutorial.itely
 #. @subheading in Documentation/de/user/tutorial.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Durations (rhythms)"
 msgstr "Durées (rythme)"
 
@@ -586,6 +656,7 @@ msgstr "Durées (rythme)"
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "beam"
 msgstr "barre de ligature"
 
@@ -593,6 +664,7 @@ msgstr "barre de ligature"
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "duration"
 msgstr "durée"
 
@@ -600,6 +672,7 @@ msgstr "durée"
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "whole note"
 msgstr "ronde"
 
@@ -607,6 +680,7 @@ msgstr "ronde"
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "half note"
 msgstr "blanche"
 
@@ -614,6 +688,7 @@ msgstr "blanche"
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "quarter note"
 msgstr "noire"
 
@@ -621,6 +696,7 @@ msgstr "noire"
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "dotted note"
 msgstr "note pointée"
 
@@ -635,12 +711,14 @@ msgstr "note pointée"
 #. @subheading in Documentation/de/user/tutorial.itely
 #. @node in Documentation/de/user/rhythms.itely
 #. @unnumberedsubsubsec in Documentation/de/user/rhythms.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Rests"
 msgstr "Silences"
 
 #. @rglos in Documentation/user/tutorial.itely
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "rest"
 msgstr "silence"
 
@@ -655,6 +733,7 @@ msgstr "silence"
 #. @subheading in Documentation/de/user/tutorial.itely
 #. @node in Documentation/de/user/rhythms.itely
 #. @unnumberedsubsubsec in Documentation/de/user/rhythms.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Time signature"
 msgstr "Métrique"
 
@@ -664,6 +743,8 @@ msgstr "Métrique"
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/es/user/rhythms.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/de/user/rhythms.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "time signature"
 msgstr "métrique"
 
@@ -679,12 +760,14 @@ msgstr "métrique"
 #. @subheading in Documentation/de/user/tutorial.itely
 #. @node in Documentation/de/user/pitches.itely
 #. @unnumberedsubsubsec in Documentation/de/user/pitches.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Clef"
 msgstr "Clefs"
 
 #. @rglos in Documentation/user/tutorial.itely
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "clef"
 msgstr "clef"
 
@@ -692,6 +775,7 @@ msgstr "clef"
 #. @subheading in Documentation/user/tutorial.itely
 #. @subheading in Documentation/es/user/tutorial.itely
 #. @subheading in Documentation/de/user/tutorial.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "All together"
 msgstr "Assemblage"
 
@@ -703,6 +787,8 @@ msgstr "Assemblage"
 #. @subsection in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "Working on input files"
 msgstr "Travail sur les fichiers d'entrée"
 
@@ -714,12 +800,15 @@ msgstr "Travail sur les fichiers d'entrée"
 #. @subsection in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "How to read the manual"
 msgstr "Bien lire le manuel"
 
 #. @subheading in Documentation/user/tutorial.itely
 #. @subheading in Documentation/es/user/tutorial.itely
 #. @subheading in Documentation/de/user/tutorial.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Clickable examples"
 msgstr "Exemples cliquables"
 
@@ -731,6 +820,8 @@ msgstr "Exemples cliquables"
 #. @section in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @section in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @section in Documentation/ja/user/tutorial.itely
 msgid "Single staff notation"
 msgstr "Notation sur une seule portée"
 
@@ -742,6 +833,8 @@ msgstr "Notation sur une seule portée"
 #. @subsection in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "Accidentals and key signatures"
 msgstr "Altérations et armure"
 
@@ -757,6 +850,7 @@ msgstr "Altérations et armure"
 #. @subheading in Documentation/de/user/tutorial.itely
 #. @node in Documentation/de/user/pitches.itely
 #. @unnumberedsubsubsec in Documentation/de/user/pitches.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Accidentals"
 msgstr "Altérations"
 
@@ -767,6 +861,7 @@ msgstr "Altérations"
 #. @rglos in Documentation/es/user/pitches.itely
 #. @rglos in Documentation/de/user/tutorial.itely
 #. @rglos in Documentation/de/user/pitches.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "sharp"
 msgstr "dièse"
 
@@ -777,6 +872,7 @@ msgstr "dièse"
 #. @rglos in Documentation/es/user/pitches.itely
 #. @rglos in Documentation/de/user/tutorial.itely
 #. @rglos in Documentation/de/user/pitches.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "flat"
 msgstr "bémol"
 
@@ -787,6 +883,7 @@ msgstr "bémol"
 #. @rglos in Documentation/es/user/pitches.itely
 #. @rglos in Documentation/de/user/tutorial.itely
 #. @rglos in Documentation/de/user/pitches.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "double sharp"
 msgstr "double dièse"
 
@@ -797,6 +894,7 @@ msgstr "double dièse"
 #. @rglos in Documentation/es/user/pitches.itely
 #. @rglos in Documentation/de/user/tutorial.itely
 #. @rglos in Documentation/de/user/pitches.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "double flat"
 msgstr "double bémol"
 
@@ -804,6 +902,7 @@ msgstr "double bémol"
 #. @subheading in Documentation/fr/user/tutorial.itely
 #. @subheading in Documentation/es/user/tutorial.itely
 #. @subheading in Documentation/de/user/tutorial.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Key signatures"
 msgstr "Armures"
 
@@ -811,6 +910,7 @@ msgstr "Armures"
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "key signature"
 msgstr "armure"
 
@@ -818,6 +918,7 @@ msgstr "armure"
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "major"
 msgstr "majeur"
 
@@ -825,6 +926,7 @@ msgstr "majeur"
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "minor"
 msgstr "mineur"
 
@@ -832,6 +934,7 @@ msgstr "mineur"
 #. @subheading in Documentation/fr/user/tutorial.itely
 #. @subheading in Documentation/es/user/tutorial.itely
 #. @subheading in Documentation/de/user/tutorial.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Warning: key signatures and pitches"
 msgstr "Attention aux armures et aux hauteurs"
 
@@ -839,6 +942,7 @@ msgstr "Attention aux armures et aux hauteurs"
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "natural"
 msgstr "bécarre"
 
@@ -846,6 +950,7 @@ msgstr "bécarre"
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "transposition"
 msgstr "transposition"
 
@@ -856,6 +961,7 @@ msgstr "transposition"
 #. @rglos in Documentation/es/user/pitches.itely
 #. @rglos in Documentation/de/user/tutorial.itely
 #. @rglos in Documentation/de/user/pitches.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "Pitch names"
 msgstr "Noms de note"
 
@@ -867,6 +973,8 @@ msgstr "Noms de note"
 #. @subsection in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "Ties and slurs"
 msgstr "Liaisons"
 
@@ -882,6 +990,7 @@ msgstr "Liaisons"
 #. @subheading in Documentation/de/user/tutorial.itely
 #. @node in Documentation/de/user/rhythms.itely
 #. @unnumberedsubsubsec in Documentation/de/user/rhythms.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Ties"
 msgstr "Liaisons de prolongation"
 
@@ -892,6 +1001,8 @@ msgstr "Liaisons de prolongation"
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/es/user/rhythms.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/de/user/rhythms.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "tie"
 msgstr "liaison de prolongation"
 
@@ -907,6 +1018,7 @@ msgstr "liaison de prolongation"
 #. @subheading in Documentation/de/user/tutorial.itely
 #. @node in Documentation/de/user/expressive.itely
 #. @unnumberedsubsubsec in Documentation/de/user/expressive.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Slurs"
 msgstr "Liaisons d'articulation"
 
@@ -917,6 +1029,7 @@ msgstr "Liaisons d'articulation"
 #. @rglos in Documentation/es/user/expressive.itely
 #. @rglos in Documentation/de/user/tutorial.itely
 #. @rglos in Documentation/de/user/expressive.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "slur"
 msgstr "liaison d'articulation"
 
@@ -932,6 +1045,7 @@ msgstr "liaison d'articulation"
 #. @subheading in Documentation/de/user/tutorial.itely
 #. @node in Documentation/de/user/expressive.itely
 #. @unnumberedsubsubsec in Documentation/de/user/expressive.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Phrasing slurs"
 msgstr "Liaisons de phrasé"
 
@@ -939,6 +1053,7 @@ msgstr "Liaisons de phrasé"
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "phrasing"
 msgstr "phrasé"
 
@@ -946,6 +1061,7 @@ msgstr "phrasé"
 #. @subheading in Documentation/fr/user/tutorial.itely
 #. @subheading in Documentation/es/user/tutorial.itely
 #. @subheading in Documentation/de/user/tutorial.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Warnings: slurs vs. ties"
 msgstr "Attention aux types de liaison"
 
@@ -953,6 +1069,7 @@ msgstr "Attention aux types de liaison"
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "articulation"
 msgstr "articulation"
 
@@ -964,6 +1081,8 @@ msgstr "articulation"
 #. @subsection in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "Articulation and dynamics"
 msgstr "Articulations et nuances"
 
@@ -971,6 +1090,7 @@ msgstr "Articulations et nuances"
 #. @subheading in Documentation/fr/user/tutorial.itely
 #. @subheading in Documentation/es/user/tutorial.itely
 #. @subheading in Documentation/de/user/tutorial.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Articulations"
 msgstr "Articulations"
 
@@ -986,6 +1106,7 @@ msgstr "Articulations"
 #. @subheading in Documentation/de/user/tutorial.itely
 #. @node in Documentation/de/user/wind.itely
 #. @unnumberedsubsubsec in Documentation/de/user/wind.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Fingerings"
 msgstr "Doigtés"
 
@@ -993,6 +1114,7 @@ msgstr "Doigtés"
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "fingering"
 msgstr "doigté"
 
@@ -1001,6 +1123,7 @@ msgstr "doigté"
 #. @node in Documentation/user/expressive.itely
 #. @unnumberedsubsubsec in Documentation/user/expressive.itely
 #. @subheading in Documentation/fr/user/tutorial.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @node in Documentation/fr/user/expressive.itely
 #. @unnumberedsubsubsec in Documentation/fr/user/expressive.itely
 #. @subheading in Documentation/es/user/tutorial.itely
@@ -1011,6 +1134,8 @@ msgstr "doigté"
 #. @subheading in Documentation/de/user/tweaks.itely
 #. @node in Documentation/de/user/expressive.itely
 #. @unnumberedsubsubsec in Documentation/de/user/expressive.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "Dynamics"
 msgstr "Nuances"
 
@@ -1018,6 +1143,8 @@ msgstr "Nuances"
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
+#. input/lsr/piano-template-with-centered-dynamics.ly:52 (variable)
 msgid "dynamics"
 msgstr "nuances"
 
@@ -1028,6 +1155,7 @@ msgstr "nuances"
 #. @rglos in Documentation/es/user/expressive.itely
 #. @rglos in Documentation/de/user/tutorial.itely
 #. @rglos in Documentation/de/user/expressive.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "crescendo"
 msgstr "crescendo"
 
@@ -1038,6 +1166,7 @@ msgstr "crescendo"
 #. @rglos in Documentation/es/user/expressive.itely
 #. @rglos in Documentation/de/user/tutorial.itely
 #. @rglos in Documentation/de/user/expressive.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "decrescendo"
 msgstr "decrescendo"
 
@@ -1049,6 +1178,8 @@ msgstr "decrescendo"
 #. @subsection in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "Adding text"
 msgstr "Ajout de texte"
 
@@ -1060,6 +1191,8 @@ msgstr "Ajout de texte"
 #. @subsection in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "Automatic and manual beams"
 msgstr "Barres de ligature automatiques et manuelles"
 
@@ -1071,6 +1204,8 @@ msgstr "Barres de ligature automatiques et manuelles"
 #. @subsection in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "Advanced rhythmic commands"
 msgstr "Commandes rythmiques avancées"
 
@@ -1078,6 +1213,7 @@ msgstr "Commandes rythmiques avancées"
 #. @subheading in Documentation/fr/user/tutorial.itely
 #. @subheading in Documentation/es/user/tutorial.itely
 #. @subheading in Documentation/de/user/tutorial.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Partial measure"
 msgstr "Mesure incomplète"
 
@@ -1086,6 +1222,8 @@ msgstr "Mesure incomplète"
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/es/user/rhythms.itely
+#. @rglos in Documentation/de/user/rhythms.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "anacrusis"
 msgstr "anacrouse"
 
@@ -1101,6 +1239,7 @@ msgstr "anacrouse"
 #. @subheading in Documentation/de/user/tutorial.itely
 #. @node in Documentation/de/user/rhythms.itely
 #. @unnumberedsubsubsec in Documentation/de/user/rhythms.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Tuplets"
 msgstr "Nolets"
 
@@ -1110,6 +1249,8 @@ msgstr "Nolets"
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/es/user/rhythms.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/de/user/rhythms.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "note value"
 msgstr "valeur d'une note"
 
@@ -1119,6 +1260,8 @@ msgstr "valeur d'une note"
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/es/user/rhythms.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/de/user/rhythms.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "triplet"
 msgstr "triolet"
 
@@ -1134,6 +1277,7 @@ msgstr "triolet"
 #. @subheading in Documentation/de/user/tutorial.itely
 #. @node in Documentation/de/user/rhythms.itely
 #. @unnumberedsubsubsec in Documentation/de/user/rhythms.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Grace notes"
 msgstr "Notes d'ornement"
 
@@ -1143,6 +1287,8 @@ msgstr "Notes d'ornement"
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/es/user/rhythms.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/de/user/rhythms.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "grace notes"
 msgstr "notes d'ornement"
 
@@ -1155,6 +1301,8 @@ msgstr "notes d'ornement"
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/es/user/rhythms.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/de/user/rhythms.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "acciaccatura"
 msgstr "acciaccature"
 
@@ -1164,6 +1312,8 @@ msgstr "acciaccature"
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/es/user/rhythms.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/de/user/rhythms.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "appoggiatura"
 msgstr "appoggiature"
 
@@ -1175,6 +1325,8 @@ msgstr "appoggiature"
 #. @section in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @section in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @section in Documentation/ja/user/tutorial.itely
 msgid "Multiple notes at once"
 msgstr "Notes simultanées"
 
@@ -1186,6 +1338,8 @@ msgstr "Notes simultanées"
 #. @subsection in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "Music expressions explained"
 msgstr "Les expressions musicales en clair"
 
@@ -1193,6 +1347,7 @@ msgstr "Les expressions musicales en clair"
 #. @subheading in Documentation/fr/user/tutorial.itely
 #. @subheading in Documentation/es/user/tutorial.itely
 #. @subheading in Documentation/de/user/tutorial.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Analogy: mathematical expressions"
 msgstr "Analogie avec les expressions mathématiques"
 
@@ -1200,6 +1355,7 @@ msgstr "Analogie avec les expressions mathématiques"
 #. @subheading in Documentation/fr/user/tutorial.itely
 #. @subheading in Documentation/es/user/tutorial.itely
 #. @subheading in Documentation/de/user/tutorial.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Simultaneous music expressions: multiple staves"
 msgstr "Expressions musicales simultanées -- plusieurs portées"
 
@@ -1210,6 +1366,7 @@ msgstr "Expressions musicales simultanées -- plusieurs portées"
 #. @rglos in Documentation/es/user/simultaneous.itely
 #. @rglos in Documentation/de/user/tutorial.itely
 #. @rglos in Documentation/de/user/simultaneous.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "polyphony"
 msgstr "polyphonie"
 
@@ -1217,6 +1374,7 @@ msgstr "polyphonie"
 #. @subheading in Documentation/fr/user/tutorial.itely
 #. @subheading in Documentation/es/user/tutorial.itely
 #. @subheading in Documentation/de/user/tutorial.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Simultaneous music expressions: single staff"
 msgstr "Expressions musicales simultanées -- une seule portée"
 
@@ -1228,6 +1386,8 @@ msgstr "Expressions musicales simultanées -- une seule portée"
 #. @subsection in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "Multiple staves"
 msgstr "Plusieurs portées"
 
@@ -1239,6 +1399,8 @@ msgstr "Plusieurs portées"
 #. @subsection in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "Staff groups"
 msgstr "Regroupements de portées"
 
@@ -1248,6 +1410,8 @@ msgstr "Regroupements de portées"
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/es/user/staff.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/de/user/staff.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "brace"
 msgstr "accolade"
 
@@ -1259,6 +1423,8 @@ msgstr "accolade"
 #. @subsection in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "Combining notes into chords"
 msgstr "Combinaison de notes en accords"
 
@@ -1271,6 +1437,8 @@ msgstr "Combinaison de notes en accords"
 #. @rglos in Documentation/es/user/chords.itely
 #. @rglos in Documentation/de/user/tutorial.itely
 #. @rglos in Documentation/de/user/simultaneous.itely
+#. @rglos in Documentation/de/user/chords.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "chord"
 msgstr "accord"
 
@@ -1282,6 +1450,8 @@ msgstr "accord"
 #. @subsection in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "Single staff polyphony"
 msgstr "Polyphonie sur une portée"
 
@@ -1293,6 +1463,8 @@ msgstr "Polyphonie sur une portée"
 #. @section in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @section in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @section in Documentation/ja/user/tutorial.itely
 msgid "Songs"
 msgstr "Chansons"
 
@@ -1312,6 +1484,8 @@ msgstr "Chansons"
 #. @subsection in Documentation/de/user/tutorial.itely
 #. @node in Documentation/de/user/vocal.itely
 #. @unnumberedsubsubsec in Documentation/de/user/vocal.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "Setting simple songs"
 msgstr "Écriture de chants simples"
 
@@ -1319,6 +1493,7 @@ msgstr "Écriture de chants simples"
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "lyrics"
 msgstr "paroles"
 
@@ -1338,6 +1513,8 @@ msgstr "paroles"
 #. @subsection in Documentation/de/user/tutorial.itely
 #. @node in Documentation/de/user/vocal.itely
 #. @subsection in Documentation/de/user/vocal.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "Aligning lyrics to a melody"
 msgstr "Alignement des paroles sur une mélodie"
 
@@ -1345,6 +1522,7 @@ msgstr "Alignement des paroles sur une mélodie"
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "melisma"
 msgstr "mélisme"
 
@@ -1352,6 +1530,7 @@ msgstr "mélisme"
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "extender line"
 msgstr "ligne de prolongation"
 
@@ -1363,6 +1542,8 @@ msgstr "ligne de prolongation"
 #. @subsection in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "Lyrics to multiple staves"
 msgstr "Paroles pour plusieurs portées"
 
@@ -1374,6 +1555,8 @@ msgstr "Paroles pour plusieurs portées"
 #. @section in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @section in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @section in Documentation/ja/user/tutorial.itely
 msgid "Final touches"
 msgstr "Dernières précisions"
 
@@ -1385,6 +1568,8 @@ msgstr "Dernières précisions"
 #. @subsection in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "Organizing pieces with variables"
 msgstr "Organisation du code source avec des variables"
 
@@ -1396,6 +1581,8 @@ msgstr "Organisation du code source avec des variables"
 #. @subsection in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "Version number"
 msgstr "Numéro de version"
 
@@ -1407,6 +1594,8 @@ msgstr "Numéro de version"
 #. @subsection in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "Adding titles"
 msgstr "Ajout de titres"
 
@@ -1418,6 +1607,8 @@ msgstr "Ajout de titres"
 #. @subsection in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "Absolute note names"
 msgstr "Noms de note absolus"
 
@@ -1429,32 +1620,119 @@ msgstr "Noms de note absolus"
 #. @subsection in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "After the tutorial"
 msgstr "Après le tutoriel"
 
-#. Documentation/user/fundamental.itely:361 (variable)
-#. Documentation/user/vocal.itely:1222 (variable)
-#. Documentation/user/vocal.itely:1264 (variable)
-msgid "melody"
-msgstr "melodie"
-
+#. Documentation/user/fundamental.itely:324 (context id)
+#. Documentation/user/fundamental.itely:367 (context id)
+#. input/lsr/piano-template-with-centered-lyrics.ly:55 (context id)
+msgid "singer"
+msgstr "chanteur"
+
+#. Documentation/user/fundamental.itely:325 (context id)
+#. Documentation/user/fundamental.itely:368 (context id)
+msgid "vocal"
+msgstr "vocal"
+
+#. Documentation/user/fundamental.itely:328 (context id)
+#. Documentation/user/fundamental.itely:371 (context id)
+#. input/lsr/jazz-combo-template.ly:218 (variable)
+#. input/lsr/jazz-combo-template.ly:278 (context id)
+msgid "piano"
+msgstr "piano"
+
+#. Documentation/user/fundamental.itely:329 (context id)
 #. Documentation/user/fundamental.itely:362 (variable)
-#. Documentation/user/vocal.itely:1045 (variable)
-#. Documentation/user/vocal.itely:1227 (variable)
-#. Documentation/user/vocal.itely:1268 (variable)
-msgid "text"
-msgstr "texte"
-
-#. Documentation/user/fundamental.itely:363 (variable)
+#. Documentation/user/fundamental.itely:372 (context id)
 #. Documentation/user/fundamental.itely:2669 (variable)
+#. Documentation/user/fundamental.itely:2711 (context id)
+#. input/lsr/changing-the-number-of-lines-in-a-staff.ly:19 (variable)
+#. input/lsr/jazz-combo-template.ly:221 (context id)
+#. input/lsr/piano-template-simple.ly:32 (variable)
+#. input/lsr/piano-template-simple.ly:51 (context id)
+#. input/lsr/piano-template-with-centered-dynamics.ly:42 (variable)
+#. input/lsr/piano-template-with-centered-lyrics.ly:33 (variable)
+#. input/lsr/piano-template-with-centered-lyrics.ly:55 (context id)
+#. input/lsr/piano-template-with-melody-and-lyrics.ly:44 (variable)
+#. input/lsr/piano-template-with-melody-and-lyrics.ly:65 (context id)
+#. input/lsr/polyphony-in-tablature.ly:32 (variable)
+#. input/lsr/polyphony-in-tablature.ly:50 (context id)
+#. input/lsr/polyphony-in-tablature.ly:54 (context id)
 msgid "upper"
 msgstr "superieur"
 
-#. Documentation/user/fundamental.itely:364 (variable)
+#. Documentation/user/fundamental.itely:330 (context id)
+#. Documentation/user/fundamental.itely:363 (variable)
+#. Documentation/user/fundamental.itely:373 (context id)
 #. Documentation/user/fundamental.itely:2676 (variable)
+#. Documentation/user/fundamental.itely:2712 (context id)
+#. input/lsr/changing-the-number-of-lines-in-a-staff.ly:23 (variable)
+#. input/lsr/jazz-combo-template.ly:222 (context id)
+#. input/lsr/piano-template-simple.ly:40 (variable)
+#. input/lsr/piano-template-simple.ly:52 (context id)
+#. input/lsr/piano-template-with-centered-dynamics.ly:47 (variable)
+#. input/lsr/piano-template-with-centered-lyrics.ly:41 (variable)
+#. input/lsr/piano-template-with-centered-lyrics.ly:57 (context id)
+#. input/lsr/piano-template-with-melody-and-lyrics.ly:52 (variable)
+#. input/lsr/piano-template-with-melody-and-lyrics.ly:66 (context id)
+#. input/lsr/polyphony-in-tablature.ly:39 (variable)
+#. input/lsr/polyphony-in-tablature.ly:51 (context id)
+#. input/lsr/polyphony-in-tablature.ly:55 (context id)
 msgid "lower"
 msgstr "inferieur"
 
+#. Documentation/user/fundamental.itely:360 (variable)
+#. Documentation/user/simultaneous.itely:241 (context id)
+#. Documentation/user/vocal.itely:571 (context id)
+#. Documentation/user/vocal.itely:803 (context id)
+#. Documentation/user/vocal.itely:824 (context id)
+#. Documentation/user/vocal.itely:1224 (variable)
+#. Documentation/user/vocal.itely:1266 (variable)
+#. Documentation/user/ancient.itely:2413 (context id)
+#. Documentation/user/ancient.itely:2452 (context id)
+#. input/lsr/adjusting-lyrics-vertical-spacing.ly:32 (context id)
+#. input/lsr/adjusting-lyrics-vertical-spacing.ly:43 (context id)
+#. input/lsr/ancient-notation-template----modern-transcription-of-gregorian-music.ly:50 (context id)
+#. input/lsr/demo-midiinstruments.ly:28 (variable)
+#. input/lsr/formatting-lyrics-syllables.ly:28 (context id)
+#. input/lsr/guitar-strum-rhythms.ly:53 (context id)
+#. input/lsr/heavily-customized-polymetric-time-signatures.ly:37 (variable)
+#. input/lsr/piano-template-with-melody-and-lyrics.ly:32 (variable)
+#. input/lsr/single-staff-template-with-notes,-lyrics,-and-chords.ly:32 (variable)
+#. input/lsr/single-staff-template-with-notes-and-chords.ly:33 (variable)
+#. input/lsr/single-staff-template-with-notes-and-lyrics.ly:45 (variable)
+#. input/lsr/single-staff-template-with-only-notes.ly:37 (variable)
+#. input/lsr/vertically-centered-common-lyrics.ly:44 (variable)
+msgid "melody"
+msgstr "melodie"
+
+#. Documentation/user/fundamental.itely:361 (variable)
+#. Documentation/user/vocal.itely:1051 (variable)
+#. Documentation/user/vocal.itely:1229 (variable)
+#. Documentation/user/vocal.itely:1270 (variable)
+#. input/lsr/piano-template-with-centered-lyrics.ly:49 (variable)
+#. input/lsr/piano-template-with-melody-and-lyrics.ly:40 (variable)
+#. input/lsr/single-staff-template-with-notes,-lyrics,-and-chords.ly:40 (variable)
+#. input/lsr/single-staff-template-with-notes-and-lyrics.ly:53 (variable)
+msgid "text"
+msgstr "texte"
+
+#. Documentation/user/fundamental.itely:443 (context id)
+#. Documentation/user/staff.itely:531 (context id)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:79 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:115 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:131 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:152 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:167 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:188 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:203 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:219 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:235 (comment)
+msgid "main"
+msgstr "principal"
+
 #. Documentation/user/fundamental.itely:632 (comment)
 msgid "Voice \\\"1\\\"                  Voice \\\"2\\\""
 msgstr "Voix \\\"1\\\"                   Voix \\\"2\\\""
@@ -1481,26 +1759,26 @@ msgid "Voice \\\"1\\\"     Voice \\\"2\\\"                 Voice \\\"3\\\""
 msgstr "Voix \\\"1\\\"       Voix \\\"2\\\"                   Voix \\\"3\\\""
 
 #. Documentation/user/fundamental.itely:711 (comment)
-#. Documentation/user/simultaneous.itely:737 (comment)
-#. Documentation/user/simultaneous.itely:762 (comment)
-#. Documentation/user/simultaneous.itely:789 (comment)
+#. Documentation/user/simultaneous.itely:743 (comment)
+#. Documentation/user/simultaneous.itely:768 (comment)
+#. Documentation/user/simultaneous.itely:795 (comment)
 msgid "Bar 1"
 msgstr "Mesure 1"
 
 #. Documentation/user/fundamental.itely:722 (comment)
-#. Documentation/user/simultaneous.itely:742 (comment)
-#. Documentation/user/simultaneous.itely:767 (comment)
-#. Documentation/user/simultaneous.itely:795 (comment)
+#. Documentation/user/simultaneous.itely:748 (comment)
+#. Documentation/user/simultaneous.itely:773 (comment)
+#. Documentation/user/simultaneous.itely:801 (comment)
 msgid "Bar 2"
 msgstr "Mesure 2"
 
 #. Documentation/user/fundamental.itely:723 (comment)
 msgid "Voice 1 continues"
-msgstr "La voix 1 continue"
+msgstr "Suite de la voix 1"
 
 #. Documentation/user/fundamental.itely:726 (comment)
 msgid "Voice 2 continues"
-msgstr "La voix 2 continue"
+msgstr "Suite de la voix 2"
 
 #. Documentation/user/fundamental.itely:900 (comment)
 msgid "Voice one"
@@ -1558,13 +1836,40 @@ msgstr "Hampes et autres attributs iront vers le haut"
 msgid "Initiate first voice"
 msgstr "Initialisation de la première voix"
 
+#. Documentation/user/fundamental.itely:1199 (context id)
+#. Documentation/user/fundamental.itely:2441 (context id)
+#. Documentation/user/vocal.itely:506 (context id)
+#. Documentation/user/vocal.itely:1235 (context id)
+#. Documentation/user/vocal.itely:1276 (context id)
+#. Documentation/user/keyboards.itely:338 (context id)
+#. Documentation/user/fretted-strings.itely:246 (context id)
+#. input/lsr/adding-fingerings-to-tablatures.ly:23 (variable)
+#. input/lsr/jazz-combo-template.ly:204 (context id)
+#. input/lsr/jazz-combo-template.ly:213 (context id)
+#. input/lsr/single-staff-template-with-notes,-lyrics,-and-chords.ly:54 (context id)
+#. input/lsr/single-staff-template-with-notes-and-lyrics.ly:59 (context id)
+msgid "one"
+msgstr "un"
+
 #. Documentation/user/fundamental.itely:1242 (variable)
 #. Documentation/user/fundamental.itely:2646 (variable)
-#. Documentation/user/tweaks.itely:3268 (variable)
-#. Documentation/user/simultaneous.itely:783 (variable)
+#. Documentation/user/tweaks.itely:3502 (variable)
+#. Documentation/user/simultaneous.itely:789 (variable)
 #. Documentation/user/percussion.itely:497 (variable)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:59 (variable)
+#. input/lsr/incipit.ly:57 (variable)
+#. input/lsr/jazz-combo-template.ly:74 (variable)
+#. input/lsr/mensurstriche-layout-bar-lines-between-the-staves.ly:29 (variable)
+#. input/lsr/piano-template-with-centered-dynamics.ly:37 (variable)
+#. input/lsr/printing-music-with-different-time-signatures.ly:25 (variable)
+#. input/lsr/string-quartet-template-simple.ly:29 (variable)
+#. input/lsr/string-quartet-template-with-separate-parts.ly:80 (variable)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:30 (variable)
+#. input/lsr/vocal-ensemble-template-with-automatic-piano-reduction.ly:46 (variable)
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:37 (variable)
+#. input/lsr/vocal-ensemble-template.ly:42 (variable)
 msgid "global"
-msgstr "glogal"
+msgstr "global"
 
 #. Documentation/user/fundamental.itely:1243 (variable)
 msgid "SopOneMusic"
@@ -1582,6 +1887,14 @@ msgstr "SopUnParoles"
 msgid "SopTwoLyrics"
 msgstr "SopDeuxParoles"
 
+#. Documentation/user/fundamental.itely:1255 (context id)
+msgid "SopOne"
+msgstr "SopUn"
+
+#. Documentation/user/fundamental.itely:1264 (context id)
+msgid "SopTwo"
+msgstr "SopDeux"
+
 #. Documentation/user/fundamental.itely:1296 (variable)
 #. Documentation/user/fundamental.itely:2864 (variable)
 msgid "TimeKey"
@@ -1592,40 +1905,63 @@ msgid "SopMusic"
 msgstr "SopMusique"
 
 #. Documentation/user/fundamental.itely:1298 (variable)
-#. Documentation/user/tweaks.itely:3270 (variable)
+#. Documentation/user/tweaks.itely:3504 (variable)
 msgid "AltoMusic"
 msgstr "AltoMusique"
 
 #. Documentation/user/fundamental.itely:1299 (variable)
-#. Documentation/user/tweaks.itely:3271 (variable)
+#. Documentation/user/tweaks.itely:3505 (variable)
 msgid "TenorMusic"
 msgstr "TenorMusique"
 
 #. Documentation/user/fundamental.itely:1300 (variable)
-#. Documentation/user/tweaks.itely:3272 (variable)
+#. Documentation/user/tweaks.itely:3506 (variable)
 msgid "BassMusic"
 msgstr "BasseMusique"
 
 #. Documentation/user/fundamental.itely:1301 (variable)
-#. Documentation/user/tweaks.itely:3273 (variable)
+#. Documentation/user/tweaks.itely:3507 (variable)
 msgid "VerseOne"
 msgstr "CoupletUn"
 
 #. Documentation/user/fundamental.itely:1303 (variable)
-#. Documentation/user/tweaks.itely:3274 (variable)
+#. Documentation/user/tweaks.itely:3508 (variable)
 msgid "VerseTwo"
 msgstr "CoupletDeux"
 
 #. Documentation/user/fundamental.itely:1305 (variable)
-#. Documentation/user/tweaks.itely:3275 (variable)
+#. Documentation/user/tweaks.itely:3509 (variable)
 msgid "VerseThree"
 msgstr "CoupletTrois"
 
 #. Documentation/user/fundamental.itely:1307 (variable)
-#. Documentation/user/tweaks.itely:3276 (variable)
+#. Documentation/user/tweaks.itely:3510 (variable)
 msgid "VerseFour"
 msgstr "CoupletQuatre"
 
+#. Documentation/user/fundamental.itely:1314 (context id)
+msgid "Sop"
+msgstr "Sop"
+
+#. Documentation/user/fundamental.itely:1315 (context id)
+#. Documentation/user/tweaks.itely:3517 (context id)
+#. Documentation/user/input.itely:961 (context id)
+msgid "Alto"
+msgstr "Alto"
+
+#. Documentation/user/fundamental.itely:1323 (context id)
+#. Documentation/user/tweaks.itely:3525 (context id)
+#. Documentation/user/input.itely:963 (context id)
+msgid "Tenor"
+msgstr "Tenor"
+
+#. Documentation/user/fundamental.itely:1324 (context id)
+#. Documentation/user/tweaks.itely:3526 (context id)
+#. Documentation/user/input.itely:968 (context id)
+#. input/lsr/jazz-combo-template.ly:227 (variable)
+msgid "Bass"
+msgstr "Basse"
+
 #. Documentation/user/fundamental.itely:1350 (variable)
 #. Documentation/user/fundamental.itely:1402 (variable)
 #. Documentation/user/fundamental.itely:1464 (variable)
@@ -1638,6 +1974,14 @@ msgstr "coupletnotes"
 msgid "versewords"
 msgstr "coupletparoles"
 
+#. Documentation/user/fundamental.itely:1361 (context id)
+#. Documentation/user/fundamental.itely:1428 (context id)
+#. Documentation/user/fundamental.itely:1489 (context id)
+#. Documentation/user/vocal.itely:826 (context id)
+#. input/lsr/score-for-diatonic-accordion.ly:59 (variable)
+msgid "verse"
+msgstr "couplet"
+
 #. Documentation/user/fundamental.itely:1407 (variable)
 #. Documentation/user/fundamental.itely:1469 (variable)
 msgid "refrainnotesA"
@@ -1658,6 +2002,15 @@ msgstr "refrainparolesA"
 msgid "refrainwordsB"
 msgstr "refrainparolesB"
 
+#. Documentation/user/fundamental.itely:1436 (context id)
+#. Documentation/user/fundamental.itely:1509 (context id)
+msgid "refrainB"
+msgstr "refrainB"
+
+#. Documentation/user/fundamental.itely:1501 (context id)
+msgid "refrainA"
+msgstr "refrainA"
+
 #. Documentation/user/fundamental.itely:1655 (comment)
 msgid "start of single compound music expression"
 msgstr "début de l'unique expression musicale composée"
@@ -1759,7 +2112,7 @@ msgstr "retour à la taille par défaut"
 
 #. Documentation/user/fundamental.itely:2420 (variable)
 #. Documentation/user/fundamental.itely:2647 (variable)
-#. Documentation/user/input.itely:907 (variable)
+#. Documentation/user/input.itely:953 (variable)
 msgid "sopranoMusic"
 msgstr "sopranoMusique"
 
@@ -1776,29 +2129,47 @@ msgid "sopranoWords"
 msgstr "sopranoParoles"
 
 #. Documentation/user/fundamental.itely:2654 (variable)
-#. Documentation/user/input.itely:908 (variable)
+#. Documentation/user/input.itely:954 (variable)
+#. input/lsr/vocal-ensemble-template-with-automatic-piano-reduction.ly:58 (variable)
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:49 (variable)
+#. input/lsr/vocal-ensemble-template.ly:54 (variable)
 msgid "altoMusic"
 msgstr "altoMusique"
 
 #. Documentation/user/fundamental.itely:2658 (variable)
+#. input/lsr/vocal-ensemble-template-with-automatic-piano-reduction.ly:61 (variable)
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:52 (variable)
+#. input/lsr/vocal-ensemble-template.ly:57 (variable)
 msgid "altoWords"
 msgstr "altoParoles"
 
 #. Documentation/user/fundamental.itely:2659 (variable)
-#. Documentation/user/input.itely:909 (variable)
+#. Documentation/user/input.itely:955 (variable)
+#. input/lsr/vocal-ensemble-template-with-automatic-piano-reduction.ly:65 (variable)
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:56 (variable)
+#. input/lsr/vocal-ensemble-template.ly:61 (variable)
 msgid "tenorMusic"
 msgstr "tenorMusique"
 
 #. Documentation/user/fundamental.itely:2663 (variable)
+#. input/lsr/vocal-ensemble-template-with-automatic-piano-reduction.ly:68 (variable)
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:59 (variable)
+#. input/lsr/vocal-ensemble-template.ly:64 (variable)
 msgid "tenorWords"
 msgstr "tenorParoles"
 
 #. Documentation/user/fundamental.itely:2664 (variable)
-#. Documentation/user/input.itely:910 (variable)
+#. Documentation/user/input.itely:956 (variable)
+#. input/lsr/vocal-ensemble-template-with-automatic-piano-reduction.ly:72 (variable)
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:63 (variable)
+#. input/lsr/vocal-ensemble-template.ly:68 (variable)
 msgid "bassMusic"
 msgstr "basseMusique"
 
 #. Documentation/user/fundamental.itely:2668 (variable)
+#. input/lsr/vocal-ensemble-template-with-automatic-piano-reduction.ly:75 (variable)
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:66 (variable)
+#. input/lsr/vocal-ensemble-template.ly:71 (variable)
 msgid "bassWords"
 msgstr "basseParoles"
 
@@ -1806,29 +2177,65 @@ msgstr "basseParoles"
 msgid "combine ChoirStaff and PianoStaff in parallel"
 msgstr "combinaison en parallèle du ChoirStaff et du PianoStaff"
 
+#. Documentation/user/fundamental.itely:2687 (context id)
+#. Documentation/user/fundamental.itely:2689 (context id)
+#. input/lsr/vocal-ensemble-template-with-automatic-piano-reduction.ly:84 (context id)
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:73 (context id)
+#. input/lsr/vocal-ensemble-template.ly:79 (context id)
+msgid "sopranos"
+msgstr "soprani"
+
+#. Documentation/user/fundamental.itely:2692 (context id)
+#. Documentation/user/fundamental.itely:2694 (context id)
+#. input/lsr/vocal-ensemble-template-with-automatic-piano-reduction.ly:85 (context id)
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:74 (context id)
+#. input/lsr/vocal-ensemble-template.ly:83 (context id)
+msgid "altos"
+msgstr "alti"
+
+#. Documentation/user/fundamental.itely:2697 (context id)
+#. Documentation/user/fundamental.itely:2699 (context id)
+#. input/lsr/vocal-ensemble-template-with-automatic-piano-reduction.ly:91 (context id)
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:84 (context id)
+#. input/lsr/vocal-ensemble-template.ly:92 (context id)
+msgid "tenors"
+msgstr "tenors"
+
+#. Documentation/user/fundamental.itely:2702 (context id)
+#. Documentation/user/fundamental.itely:2704 (context id)
+#. input/lsr/vocal-ensemble-template-with-automatic-piano-reduction.ly:92 (context id)
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:85 (context id)
+#. input/lsr/vocal-ensemble-template.ly:96 (context id)
+msgid "basses"
+msgstr "basses"
+
 #. Documentation/user/fundamental.itely:2707 (comment)
 msgid "end ChoirStaff"
 msgstr "fin du ChoirStaff (système pour chœur)"
 
 #. Documentation/user/fundamental.itely:2865 (variable)
 msgid "ManualOneVoiceOneMusic"
-msgstr "ManuelUnVoixUnMusique"
+msgstr "MusiqueManuelUnVoixUn"
 
 #. Documentation/user/fundamental.itely:2868 (variable)
 msgid "ManualOneVoiceTwoMusic"
-msgstr "ManuelUnVoixDeuxMusique"
+msgstr "MusiqueManuelUnVoixDeux"
 
 #. Documentation/user/fundamental.itely:2872 (variable)
 msgid "ManualTwoMusic"
-msgstr "ManuelDeuxMusique"
+msgstr "MusiqueManuelDeux"
 
 #. Documentation/user/fundamental.itely:2876 (variable)
 msgid "PedalOrganMusic"
-msgstr "PedalierOrgueMusique"
+msgstr "MusiquePedalierOrgue"
 
 #. Documentation/user/fundamental.itely:2882 (comment)
 msgid "PianoStaff and Pedal Staff must be simultaneous"
-msgstr "Système pianistique et portée de pédalier sont synchrones"
+msgstr "système pianistique et portée de pédalier simultanés"
+
+#. Documentation/user/fundamental.itely:2884 (context id)
+msgid "ManualOne"
+msgstr "ManuelUn"
 
 #. Documentation/user/fundamental.itely:2885 (comment)
 msgid "set time signature and key"
@@ -1836,19 +2243,27 @@ msgstr "définition de la métrique et de l'armure"
 
 #. Documentation/user/fundamental.itely:2889 (comment)
 msgid "end ManualOne Staff context"
-msgstr "fin du contexte de la portée ManuelUn"
+msgstr "fin du contexte de portée ManuelUn"
+
+#. Documentation/user/fundamental.itely:2890 (context id)
+msgid "ManualTwo"
+msgstr "ManuelDeux"
 
 #. Documentation/user/fundamental.itely:2894 (comment)
 msgid "end ManualTwo Staff context"
-msgstr "fin du contexte de la portée ManuelDeux"
+msgstr "fin du contexte de portée ManuelDeux"
 
 #. Documentation/user/fundamental.itely:2895 (comment)
 msgid "end PianoStaff context"
 msgstr "fin du contexte PianoStaff"
 
+#. Documentation/user/fundamental.itely:2896 (context id)
+msgid "PedalOrgan"
+msgstr "PedalierOrgue"
+
 #. Documentation/user/fundamental.itely:2900 (comment)
 msgid "end PedalOrgan Staff context"
-msgstr "fin du contexte de la portée PedalOrgan"
+msgstr "fin du contexte de portée PedalierOrgue"
 
 #. Documentation/user/fundamental.itely:2902 (comment)
 msgid "end Score context"
@@ -1862,6 +2277,8 @@ msgstr "fin du contexte Score"
 #. @chapter in Documentation/es/user/fundamental.itely
 #. @node in Documentation/de/user/fundamental.itely
 #. @chapter in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @chapter in Documentation/ja/user/fundamental.itely
 msgid "Fundamental concepts"
 msgstr "Concepts fondamentaux"
 
@@ -1871,6 +2288,10 @@ msgstr "Concepts fondamentaux"
 #. @section in Documentation/fr/user/fundamental.itely
 #. @node in Documentation/es/user/fundamental.itely
 #. @section in Documentation/es/user/fundamental.itely
+#. @node in Documentation/de/user/fundamental.itely
+#. @section in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @section in Documentation/ja/user/fundamental.itely
 msgid "How LilyPond input files work"
 msgstr "Organisation des fichiers LilyPond"
 
@@ -1882,6 +2303,8 @@ msgstr "Organisation des fichiers LilyPond"
 #. @subsection in Documentation/es/user/fundamental.itely
 #. @node in Documentation/de/user/fundamental.itely
 #. @subsection in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @subsection in Documentation/ja/user/fundamental.itely
 msgid "Introduction to the LilyPond file structure"
 msgstr "Introduction à la structure de fichier LilyPond"
 
@@ -1893,6 +2316,8 @@ msgstr "Introduction à la structure de fichier LilyPond"
 #. @subsection in Documentation/es/user/fundamental.itely
 #. @node in Documentation/de/user/fundamental.itely
 #. @subsection in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @subsection in Documentation/ja/user/fundamental.itely
 msgid "Score is a (single) compound musical expression"
 msgstr "La partition est une (unique) expression musicale composée"
 
@@ -1904,17 +2329,28 @@ msgstr "La partition est une (unique) expression musicale composée"
 #. @subsection in Documentation/es/user/fundamental.itely
 #. @node in Documentation/de/user/fundamental.itely
 #. @subsection in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @subsection in Documentation/ja/user/fundamental.itely
 msgid "Nesting music expressions"
 msgstr "Expressions musicales imbriquées"
 
 #. @rglos in Documentation/user/fundamental.itely
 #. @rglos in Documentation/user/tweaks.itely
+#. Documentation/user/staff.itely:560 (context id)
+#. Documentation/user/staff.itely:573 (context id)
+#. Documentation/user/staff.itely:581 (context id)
+#. Documentation/user/staff.itely:600 (context id)
+#. Documentation/user/staff.itely:613 (context id)
 #. @rglos in Documentation/user/staff.itely
 #. @rglos in Documentation/fr/user/fundamental.itely
+#. @rglos in Documentation/fr/user/tweaks.itely
 #. @rglos in Documentation/es/user/fundamental.itely
 #. @rglos in Documentation/es/user/tweaks.itely
 #. @rglos in Documentation/es/user/staff.itely
 #. @rglos in Documentation/de/user/tweaks.itely
+#. @rglos in Documentation/de/user/staff.itely
+#. @rglos in Documentation/ja/user/fundamental.itely
+#. @rglos in Documentation/ja/user/tweaks.itely
 msgid "ossia"
 msgstr "ossia"
 
@@ -1926,6 +2362,8 @@ msgstr "ossia"
 #. @subsection in Documentation/es/user/fundamental.itely
 #. @node in Documentation/de/user/fundamental.itely
 #. @subsection in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @subsection in Documentation/ja/user/fundamental.itely
 msgid "On the un-nestedness of brackets and ties"
 msgstr "Non-imbrication des crochets et liaisons"
 
@@ -1937,6 +2375,8 @@ msgstr "Non-imbrication des crochets et liaisons"
 #. @section in Documentation/es/user/fundamental.itely
 #. @node in Documentation/de/user/fundamental.itely
 #. @section in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @section in Documentation/ja/user/fundamental.itely
 msgid "Voices contain music"
 msgstr "Les voix contiennent la musique"
 
@@ -1948,6 +2388,8 @@ msgstr "Les voix contiennent la musique"
 #. @subsection in Documentation/es/user/fundamental.itely
 #. @node in Documentation/de/user/fundamental.itely
 #. @subsection in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @subsection in Documentation/ja/user/fundamental.itely
 msgid "I'm hearing Voices"
 msgstr "J'entends des Voix"
 
@@ -1959,6 +2401,8 @@ msgstr "J'entends des Voix"
 #. @subsection in Documentation/es/user/fundamental.itely
 #. @node in Documentation/de/user/fundamental.itely
 #. @subsection in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @subsection in Documentation/ja/user/fundamental.itely
 msgid "Explicitly instantiating voices"
 msgstr "Instanciation explicite des voix"
 
@@ -1966,6 +2410,7 @@ msgstr "Instanciation explicite des voix"
 #. @subsubheading in Documentation/fr/user/fundamental.itely
 #. @subsubheading in Documentation/es/user/fundamental.itely
 #. @subsubheading in Documentation/de/user/fundamental.itely
+#. @subsubheading in Documentation/ja/user/fundamental.itely
 msgid "Note columns"
 msgstr "Empilement des notes"
 
@@ -1977,6 +2422,8 @@ msgstr "Empilement des notes"
 #. @subsection in Documentation/es/user/fundamental.itely
 #. @node in Documentation/de/user/fundamental.itely
 #. @subsection in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @subsection in Documentation/ja/user/fundamental.itely
 msgid "Voices and vocals"
 msgstr "Voix et paroles"
 
@@ -1988,6 +2435,8 @@ msgstr "Voix et paroles"
 #. @section in Documentation/es/user/fundamental.itely
 #. @node in Documentation/de/user/fundamental.itely
 #. @section in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @section in Documentation/ja/user/fundamental.itely
 msgid "Contexts and engravers"
 msgstr "Contextes et graveurs"
 
@@ -2007,6 +2456,8 @@ msgstr "Contextes et graveurs"
 #. @subsection in Documentation/de/user/fundamental.itely
 #. @node in Documentation/de/user/changing-defaults.itely
 #. @subsection in Documentation/de/user/changing-defaults.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @subsection in Documentation/ja/user/fundamental.itely
 msgid "Contexts explained"
 msgstr "Tout savoir sur les contextes"
 
@@ -2016,6 +2467,8 @@ msgstr "Tout savoir sur les contextes"
 #. @subsection in Documentation/user/changing-defaults.itely
 #. @node in Documentation/fr/user/fundamental.itely
 #. @subsection in Documentation/fr/user/fundamental.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/fundamental.itely
 #. @subsection in Documentation/es/user/fundamental.itely
 #. @node in Documentation/es/user/changing-defaults.itely
@@ -2024,6 +2477,8 @@ msgstr "Tout savoir sur les contextes"
 #. @subsection in Documentation/de/user/fundamental.itely
 #. @node in Documentation/de/user/changing-defaults.itely
 #. @subsection in Documentation/de/user/changing-defaults.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @subsection in Documentation/ja/user/fundamental.itely
 msgid "Creating contexts"
 msgstr "Création d'un contexte"
 
@@ -2035,6 +2490,8 @@ msgstr "Création d'un contexte"
 #. @subsection in Documentation/es/user/fundamental.itely
 #. @node in Documentation/de/user/fundamental.itely
 #. @subsection in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @subsection in Documentation/ja/user/fundamental.itely
 msgid "Engravers explained"
 msgstr "Tout savoir sur les graveurs"
 
@@ -2046,20 +2503,24 @@ msgstr "Tout savoir sur les graveurs"
 #. @subsection in Documentation/es/user/fundamental.itely
 #. @node in Documentation/de/user/fundamental.itely
 #. @subsection in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @subsection in Documentation/ja/user/fundamental.itely
 msgid "Modifying context properties"
 msgstr "Modification des propriétés d'un contexte"
 
-#. @unnumberedsubsubsec in Documentation/user/fundamental.itely
+#. @subsubheading in Documentation/user/fundamental.itely
 #. @unnumberedsubsubsec in Documentation/fr/user/fundamental.itely
-#. @unnumberedsubsubsec in Documentation/es/user/fundamental.itely
-#. @unnumberedsubsubsec in Documentation/de/user/fundamental.itely
+#. @subsubheading in Documentation/es/user/fundamental.itely
+#. @subsubheading in Documentation/de/user/fundamental.itely
+#. @subsubheading in Documentation/ja/user/fundamental.itely
 msgid "Setting context properties with @code{\\with}"
 msgstr "Définition des propriétés de contexte avec @code{\\with}"
 
-#. @unnumberedsubsubsec in Documentation/user/fundamental.itely
+#. @subsubheading in Documentation/user/fundamental.itely
 #. @unnumberedsubsubsec in Documentation/fr/user/fundamental.itely
-#. @unnumberedsubsubsec in Documentation/es/user/fundamental.itely
-#. @unnumberedsubsubsec in Documentation/de/user/fundamental.itely
+#. @subsubheading in Documentation/es/user/fundamental.itely
+#. @subsubheading in Documentation/de/user/fundamental.itely
+#. @subsubheading in Documentation/ja/user/fundamental.itely
 msgid "Setting context properties with @code{\\context}"
 msgstr "Définition des propriétés de contexte avec @code{\\context}"
 
@@ -2071,6 +2532,8 @@ msgstr "Définition des propriétés de contexte avec @code{\\context}"
 #. @subsection in Documentation/es/user/fundamental.itely
 #. @node in Documentation/de/user/fundamental.itely
 #. @subsection in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @subsection in Documentation/ja/user/fundamental.itely
 msgid "Adding and removing engravers"
 msgstr "Ajout et suppression de graveurs"
 
@@ -2078,6 +2541,7 @@ msgstr "Ajout et suppression de graveurs"
 #. @subsubheading in Documentation/fr/user/fundamental.itely
 #. @subsubheading in Documentation/es/user/fundamental.itely
 #. @subsubheading in Documentation/de/user/fundamental.itely
+#. @subsubheading in Documentation/ja/user/fundamental.itely
 msgid "Changing a single context"
 msgstr "Modification d'un seul contexte"
 
@@ -2088,6 +2552,7 @@ msgstr "Modification d'un seul contexte"
 #. @rglos in Documentation/es/user/pitches.itely
 #. @rglos in Documentation/de/user/fundamental.itely
 #. @rglos in Documentation/de/user/pitches.itely
+#. @rglos in Documentation/ja/user/fundamental.itely
 msgid "ambitus"
 msgstr "ambitus"
 
@@ -2095,6 +2560,7 @@ msgstr "ambitus"
 #. @subsubheading in Documentation/fr/user/fundamental.itely
 #. @subsubheading in Documentation/es/user/fundamental.itely
 #. @subsubheading in Documentation/de/user/fundamental.itely
+#. @subsubheading in Documentation/ja/user/fundamental.itely
 msgid "Changing all contexts of the same type"
 msgstr "Modification de tous les contextes d'un même type"
 
@@ -2106,6 +2572,8 @@ msgstr "Modification de tous les contextes d'un même type"
 #. @section in Documentation/es/user/fundamental.itely
 #. @node in Documentation/de/user/fundamental.itely
 #. @section in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @section in Documentation/ja/user/fundamental.itely
 msgid "Extending the templates"
 msgstr "Extension des modèles"
 
@@ -2117,6 +2585,8 @@ msgstr "Extension des modèles"
 #. @subsection in Documentation/es/user/fundamental.itely
 #. @node in Documentation/de/user/fundamental.itely
 #. @subsection in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @subsection in Documentation/ja/user/fundamental.itely
 msgid "Soprano and cello"
 msgstr "Soprano et violoncelle"
 
@@ -2128,6 +2598,8 @@ msgstr "Soprano et violoncelle"
 #. @subsection in Documentation/es/user/fundamental.itely
 #. @node in Documentation/de/user/fundamental.itely
 #. @subsection in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @subsection in Documentation/ja/user/fundamental.itely
 msgid "Four-part SATB vocal score"
 msgstr "Partition pour chœur à quatre voix mixtes"
 
@@ -2139,201 +2611,228 @@ msgstr "Partition pour chœur à quatre voix mixtes"
 #. @subsection in Documentation/es/user/fundamental.itely
 #. @node in Documentation/de/user/fundamental.itely
 #. @subsection in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @subsection in Documentation/ja/user/fundamental.itely
 msgid "Building a score from scratch"
 msgstr "Écriture d'une partition à partir de zéro"
 
-#. Documentation/user/tweaks.itely:564 (comment)
-#. Documentation/user/tweaks.itely:690 (comment)
+#. Documentation/user/tweaks.itely:597 (comment)
+#. Documentation/user/tweaks.itely:732 (comment)
 msgid "Increase thickness of all following slurs from 1.2 to 5.0"
 msgstr "L'épaisseur de toutes les liaisons à venir passe de 1,2 à 5,0"
 
-#. Documentation/user/tweaks.itely:630 (comment)
 #. Documentation/user/tweaks.itely:666 (comment)
-#. Documentation/user/tweaks.itely:669 (comment)
+#. Documentation/user/tweaks.itely:705 (comment)
+#. Documentation/user/tweaks.itely:708 (comment)
 msgid "Increase thickness of immediately following slur only"
 msgstr "Épaississement de la prochaine liaison seulement"
 
-#. Documentation/user/tweaks.itely:694 (comment)
+#. Documentation/user/tweaks.itely:736 (comment)
 msgid "Revert thickness of all following slurs to default of 1.2"
 msgstr "Retour à l'épaisseur par défaut de 1,2 pour les prochaines liaisons"
 
-#. Documentation/user/tweaks.itely:1302 (comment)
+#. Documentation/user/tweaks.itely:1396 (comment)
 msgid "Don't print clefs in this staff"
 msgstr "pas de clef pour cette portée"
 
-#. Documentation/user/tweaks.itely:1304 (comment)
+#. Documentation/user/tweaks.itely:1398 (comment)
 msgid "Don't print time signatures in this staff"
 msgstr "pas de métrique pour cette portée"
 
-#. Documentation/user/tweaks.itely:1362 (comment)
+#. Documentation/user/tweaks.itely:1462 (comment)
 msgid "Reduce all font sizes by ~24%"
 msgstr "Réduction d'environ 24 % de toutes les tailles de fonte"
 
-#. Documentation/user/tweaks.itely:1418 (comment)
+#. Documentation/user/tweaks.itely:1528 (comment)
 msgid "Reduce stem length and line spacing to match"
 msgstr ""
 "Réduction de la taille des hampes et de l'interligne pour ne pas déborder"
 
-#. Documentation/user/tweaks.itely:1828 (comment)
-#. Documentation/user/tweaks.itely:1895 (comment)
+#. Documentation/user/tweaks.itely:1958 (comment)
+#. Documentation/user/tweaks.itely:2028 (comment)
 msgid "Set details for later Text Spanner"
 msgstr "Réglage des détails du texte avec extension"
 
-#. Documentation/user/tweaks.itely:1831 (comment)
-#. Documentation/user/tweaks.itely:1898 (comment)
+#. Documentation/user/tweaks.itely:1961 (comment)
+#. Documentation/user/tweaks.itely:2031 (comment)
 msgid "Place dynamics above staff"
-msgstr "Positionnement des nuances au dessus de la portée"
+msgstr "Positionnement des nuances au-dessus de la portée"
 
-#. Documentation/user/tweaks.itely:1833 (comment)
-#. Documentation/user/tweaks.itely:1902 (comment)
+#. Documentation/user/tweaks.itely:1963 (comment)
+#. Documentation/user/tweaks.itely:2035 (comment)
 msgid "Start Ottava Bracket"
-msgstr "Début du crochet d'octavation"
+msgstr "Début du crochet d'octaviation"
 
-#. Documentation/user/tweaks.itely:1836 (comment)
-#. Documentation/user/tweaks.itely:1843 (comment)
-#. Documentation/user/tweaks.itely:1905 (comment)
-#. Documentation/user/tweaks.itely:1912 (comment)
+#. Documentation/user/tweaks.itely:1966 (comment)
+#. Documentation/user/tweaks.itely:1973 (comment)
+#. Documentation/user/tweaks.itely:2038 (comment)
+#. Documentation/user/tweaks.itely:2045 (comment)
 msgid "Add Dynamic Text"
 msgstr "Ajout d'une nuance textuelle"
 
-#. Documentation/user/tweaks.itely:1838 (comment)
-#. Documentation/user/tweaks.itely:1907 (comment)
+#. Documentation/user/tweaks.itely:1968 (comment)
+#. Documentation/user/tweaks.itely:2040 (comment)
 msgid "Add Dynamic Line Spanner"
 msgstr "Ajout d'une nuance graphique"
 
-#. Documentation/user/tweaks.itely:1840 (comment)
-#. Documentation/user/tweaks.itely:1909 (comment)
+#. Documentation/user/tweaks.itely:1970 (comment)
+#. Documentation/user/tweaks.itely:2042 (comment)
 msgid "Add Text Script"
 msgstr "Ajout d'un commentaire textuel"
 
-#. Documentation/user/tweaks.itely:1845 (comment)
-#. Documentation/user/tweaks.itely:1914 (comment)
+#. Documentation/user/tweaks.itely:1975 (comment)
+#. Documentation/user/tweaks.itely:2047 (comment)
 msgid "Stop Ottava Bracket"
-msgstr "Fin du crochet d'octavation"
+msgstr "Fin du crochet d'octaviation"
 
-#. Documentation/user/tweaks.itely:1900 (comment)
+#. Documentation/user/tweaks.itely:2033 (comment)
 msgid "Place following Ottava Bracket below Text Spanners"
-msgstr "Positionnement du crochet d'octavation sous le texte avec extension"
+msgstr "Positionnement du crochet d'octaviation sous le texte avec extension"
 
-#. Documentation/user/tweaks.itely:1959 (comment)
+#. Documentation/user/tweaks.itely:2122 (comment)
 msgid "Cause notes to space out to accommodate text"
 msgstr "Force les notes à s'espacer selon le texte"
 
-#. Documentation/user/tweaks.itely:1979 (comment)
+#. Documentation/user/tweaks.itely:2145 (comment)
 msgid "This markup is short enough to fit without collision"
-msgstr "Cette étiquette est assez courte pour ne pas risquer de chevauchement"
+msgstr "Ce morceau de texte est assez court pour ne pas risquer de collision"
 
-#. Documentation/user/tweaks.itely:1983 (comment)
+#. Documentation/user/tweaks.itely:2149 (comment)
 msgid "This is too long to fit, so it is displaced upwards"
-msgstr "Celle-ci est trop longue pour tenir, elle est déplacée plus haut"
+msgstr "Celui-ci est trop long pour tenir, il est déplacé vers le haut"
 
-#. Documentation/user/tweaks.itely:1987 (comment)
-#. Documentation/user/tweaks.itely:1992 (comment)
+#. Documentation/user/tweaks.itely:2153 (comment)
+#. Documentation/user/tweaks.itely:2158 (comment)
 msgid "Turn off collision avoidance"
 msgstr "Désactivation du processus d'évitement de collision"
 
-#. Documentation/user/tweaks.itely:1994 (comment)
+#. Documentation/user/tweaks.itely:2160 (comment)
 msgid "and turn on textLengthOn"
 msgstr "activation de textLengthOn"
 
-#. Documentation/user/tweaks.itely:1995 (comment)
+#. Documentation/user/tweaks.itely:2161 (comment)
 msgid "Spaces at end are honored"
 msgstr "Les espaces de la fin sont pris en compte"
 
-#. Documentation/user/tweaks.itely:2096 (comment)
+#. Documentation/user/tweaks.itely:2268 (comment)
 msgid "Extend width by 1 staff space"
 msgstr "Élargissement d'un espace"
 
-#. Documentation/user/tweaks.itely:2373 (comment)
+#. Documentation/user/tweaks.itely:2551 (comment)
 msgid "This will not work, see below:"
 msgstr "La commande suivante est sans résultat ; voir plus loin."
 
-#. Documentation/user/tweaks.itely:2377 (comment)
+#. Documentation/user/tweaks.itely:2555 (comment)
 msgid "This works:"
 msgstr "Celle-ci produit le résultat escompté"
 
-#. Documentation/user/tweaks.itely:2422 (variable)
+#. Documentation/user/tweaks.itely:2606 (variable)
 msgid "naturalplusflat"
 msgstr "becarreplusbemol"
 
-#. Documentation/user/tweaks.itely:2458 (comment)
+#. Documentation/user/tweaks.itely:2647 (comment)
 msgid "Extend width by 1 unit"
 msgstr "Élargissement d'une unité"
 
-#. Documentation/user/tweaks.itely:2460 (comment)
+#. Documentation/user/tweaks.itely:2649 (comment)
 msgid "Align dynamics to a base line 2 units above staff"
 msgstr ""
-"Alignement des nuances sur une ligne de base à 2 unités au dessus de la "
+"Alignement des nuances sur une ligne de base à 2 unités au-dessus de la "
 "portée"
 
-#. Documentation/user/tweaks.itely:2745 (variable)
-#. Documentation/user/tweaks.itely:2794 (variable)
-#. Documentation/user/tweaks.itely:2855 (variable)
-#. Documentation/user/tweaks.itely:2925 (variable)
-#. Documentation/user/tweaks.itely:2987 (variable)
-#. Documentation/user/tweaks.itely:3042 (variable)
+#. Documentation/user/tweaks.itely:2953 (variable)
+#. Documentation/user/tweaks.itely:3002 (variable)
+#. Documentation/user/tweaks.itely:3063 (variable)
+#. Documentation/user/tweaks.itely:3133 (variable)
+#. Documentation/user/tweaks.itely:3198 (variable)
+#. Documentation/user/tweaks.itely:3258 (variable)
 msgid "rhMusic"
 msgstr "mdMusique"
 
-#. Documentation/user/tweaks.itely:2750 (comment)
-#. Documentation/user/tweaks.itely:2799 (comment)
-#. Documentation/user/tweaks.itely:2862 (comment)
-#. Documentation/user/tweaks.itely:2934 (comment)
-#. Documentation/user/tweaks.itely:2996 (comment)
+#. Documentation/user/tweaks.itely:2958 (comment)
+#. Documentation/user/tweaks.itely:3007 (comment)
+#. Documentation/user/tweaks.itely:3070 (comment)
+#. Documentation/user/tweaks.itely:3142 (comment)
+#. Documentation/user/tweaks.itely:3207 (comment)
 msgid "Start polyphonic section of four voices"
-msgstr "Début d'un section polyphonique de quatre voix"
-
-#. Documentation/user/tweaks.itely:2763 (variable)
-#. Documentation/user/tweaks.itely:2812 (variable)
-#. Documentation/user/tweaks.itely:2875 (variable)
-#. Documentation/user/tweaks.itely:2949 (variable)
-#. Documentation/user/tweaks.itely:3013 (variable)
-#. Documentation/user/tweaks.itely:3070 (variable)
+msgstr "Début d'une section polyphonique de quatre voix"
+
+#. Documentation/user/tweaks.itely:2971 (variable)
+#. Documentation/user/tweaks.itely:3020 (variable)
+#. Documentation/user/tweaks.itely:3083 (variable)
+#. Documentation/user/tweaks.itely:3157 (variable)
+#. Documentation/user/tweaks.itely:3224 (variable)
+#. Documentation/user/tweaks.itely:3286 (variable)
 msgid "lhMusic"
 msgstr "mgMusique"
 
-#. Documentation/user/tweaks.itely:3000 (comment)
-#. Documentation/user/tweaks.itely:3057 (comment)
+#. Documentation/user/tweaks.itely:2980 (context id)
+#. Documentation/user/tweaks.itely:3029 (context id)
+#. Documentation/user/tweaks.itely:3092 (context id)
+#. Documentation/user/tweaks.itely:3166 (context id)
+#. Documentation/user/tweaks.itely:3233 (context id)
+#. Documentation/user/tweaks.itely:3295 (context id)
+#. Documentation/user/input.itely:974 (context id)
+msgid "RH"
+msgstr "MD"
+
+#. Documentation/user/tweaks.itely:2984 (context id)
+#. Documentation/user/tweaks.itely:3033 (context id)
+#. Documentation/user/tweaks.itely:3096 (context id)
+#. Documentation/user/tweaks.itely:3170 (context id)
+#. Documentation/user/tweaks.itely:3237 (context id)
+#. Documentation/user/tweaks.itely:3299 (context id)
+#. Documentation/user/input.itely:980 (context id)
+msgid "LH"
+msgstr "MG"
+
+#. Documentation/user/tweaks.itely:3211 (comment)
+#. Documentation/user/tweaks.itely:3273 (comment)
 msgid "Move the c2 out of the main note column so the merge will work"
 msgstr "Déplace le do2 pour que la fusion puisse fonctionner"
 
-#. Documentation/user/tweaks.itely:3003 (comment)
-#. Documentation/user/tweaks.itely:3060 (comment)
+#. Documentation/user/tweaks.itely:3214 (comment)
+#. Documentation/user/tweaks.itely:3276 (comment)
 msgid "Stem on the d2 must be down to permit merging"
 msgstr "La hampe du ré2 ira vers le bas pour permettre la fusion"
 
-#. Documentation/user/tweaks.itely:3055 (comment)
+#. Documentation/user/tweaks.itely:3271 (comment)
 msgid "Reposition the c2 to the right of the merged note"
 msgstr "Repositionnement du do2 à droite de la note fusionnée"
 
-#. Documentation/user/tweaks.itely:3185 (comment)
-#. Documentation/user/tweaks.itely:3204 (comment)
+#. Documentation/user/tweaks.itely:3407 (comment)
+#. Documentation/user/tweaks.itely:3429 (comment)
 msgid "Visible tempo marking"
 msgstr "Indication de tempo visible"
 
-#. Documentation/user/tweaks.itely:3189 (comment)
-#. Documentation/user/tweaks.itely:3208 (comment)
+#. Documentation/user/tweaks.itely:3411 (comment)
+#. Documentation/user/tweaks.itely:3433 (comment)
 msgid "Invisible tempo marking to lengthen fermata in MIDI"
 msgstr "Indication de tempo invisible ; utilisée pour le MIDI"
 
-#. Documentation/user/tweaks.itely:3192 (comment)
-#. Documentation/user/tweaks.itely:3211 (comment)
+#. Documentation/user/tweaks.itely:3414 (comment)
+#. Documentation/user/tweaks.itely:3436 (comment)
 msgid "New tempo for next section"
 msgstr "Nouveau tempo pour la section suivante"
 
-#. Documentation/user/tweaks.itely:3259 (variable)
+#. Documentation/user/tweaks.itely:3493 (variable)
 msgid "emphasize"
 msgstr "emphase"
 
-#. Documentation/user/tweaks.itely:3263 (variable)
+#. Documentation/user/tweaks.itely:3497 (variable)
 msgid "normal"
 msgstr "normal"
 
-#. Documentation/user/tweaks.itely:3269 (variable)
+#. Documentation/user/tweaks.itely:3503 (variable)
 msgid "SopranoMusic"
 msgstr "sopranoMusique"
 
-#. Documentation/user/tweaks.itely:3485 (comment)
+#. Documentation/user/tweaks.itely:3516 (context id)
+#. Documentation/user/input.itely:959 (context id)
+msgid "Soprano"
+msgstr "Soprano"
+
+#. Documentation/user/tweaks.itely:3725 (comment)
 msgid "Arrange to obtain color from color-notehead procedure"
 msgstr "Arranger pour obtenir une couleur par la procédure color-notehead"
 
@@ -2345,6 +2844,8 @@ msgstr "Arranger pour obtenir une couleur par la procédure color-notehead"
 #. @chapter in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @chapter in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @chapter in Documentation/ja/user/tweaks.itely
 msgid "Tweaking output"
 msgstr "Retouche de partition"
 
@@ -2356,6 +2857,8 @@ msgstr "Retouche de partition"
 #. @section in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @section in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @section in Documentation/ja/user/tweaks.itely
 msgid "Tweaking basics"
 msgstr "Retouches élémentaires"
 
@@ -2367,6 +2870,8 @@ msgstr "Retouches élémentaires"
 #. @subsection in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
 msgid "Introduction to tweaks"
 msgstr "Introduction aux retouches"
 
@@ -2378,9 +2883,13 @@ msgstr "Introduction aux retouches"
 #. @subsection in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
 msgid "Objects and interfaces"
 msgstr "Objets et interfaces"
 
+# jcm - Journal officiel de la République française du 19/11/2008 
+# jcm - (NOR : CTNX0825937X) traduction de naming
 #. @node in Documentation/user/tweaks.itely
 #. @subsection in Documentation/user/tweaks.itely
 #. @node in Documentation/fr/user/tweaks.itely
@@ -2389,8 +2898,10 @@ msgstr "Objets et interfaces"
 #. @subsection in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
 msgid "Naming conventions of objects and properties"
-msgstr "Conventions de nom des objets et propriétés"
+msgstr "Conventions de nommage des objets et propriétés"
 
 #. @node in Documentation/user/tweaks.itely
 #. @subsection in Documentation/user/tweaks.itely
@@ -2400,6 +2911,8 @@ msgstr "Conventions de nom des objets et propriétés"
 #. @subsection in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
 msgid "Tweaking methods"
 msgstr "Méthodes de retouche"
 
@@ -2411,6 +2924,8 @@ msgstr "Méthodes de retouche"
 #. @section in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @section in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @section in Documentation/ja/user/tweaks.itely
 msgid "The Internals Reference manual"
 msgstr "Le manuel des références internes"
 
@@ -2422,24 +2937,32 @@ msgstr "Le manuel des références internes"
 #. @subsection in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
 msgid "Properties of layout objects"
 msgstr "Propriétés des objets de rendu"
 
 #. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @subheading in Documentation/es/user/tweaks.itely
 #. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "Finding the context"
 msgstr "Détermination du contexte adéquat"
 
 #. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @subheading in Documentation/es/user/tweaks.itely
 #. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "Overriding once only"
 msgstr "Redéfinition pour une seule occurence"
 
 #. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @subheading in Documentation/es/user/tweaks.itely
 #. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "Reverting"
 msgstr "Rétablissement"
 
@@ -2451,14 +2974,18 @@ msgstr "Rétablissement"
 #. @subsection in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
 msgid "Properties found in interfaces"
 msgstr "Propriétés listées par interface"
 
 #. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @subheading in Documentation/es/user/tweaks.itely
 #. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "Specifying the context in lyric mode"
-msgstr "Specification du contexte en mode lyrique"
+msgstr "Spécification du contexte en mode lyrique"
 
 #. @node in Documentation/user/tweaks.itely
 #. @subsection in Documentation/user/tweaks.itely
@@ -2468,6 +2995,8 @@ msgstr "Specification du contexte en mode lyrique"
 #. @subsection in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
 msgid "Types of properties"
 msgstr "Types de propriétés"
 
@@ -2479,6 +3008,8 @@ msgstr "Types de propriétés"
 #. @section in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @section in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @section in Documentation/ja/user/tweaks.itely
 msgid "Appearance of objects"
 msgstr "Apparence des objets"
 
@@ -2490,30 +3021,40 @@ msgstr "Apparence des objets"
 #. @subsection in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
 msgid "Visibility and color of objects"
 msgstr "Visibilité et couleur des objets"
 
 #. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @subheading in Documentation/es/user/tweaks.itely
 #. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "stencil"
 msgstr "stencil"
 
 #. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @subheading in Documentation/es/user/tweaks.itely
 #. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "break-visibility"
 msgstr "visibilité des barres (break-visibility)"
 
 #. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @subheading in Documentation/es/user/tweaks.itely
 #. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "transparent"
 msgstr "transparence"
 
 #. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @subheading in Documentation/es/user/tweaks.itely
 #. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "color"
 msgstr "couleur"
 
@@ -2525,6 +3066,8 @@ msgstr "couleur"
 #. @subsection in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
 msgid "Size of objects"
 msgstr "Taille des objets"
 
@@ -2536,6 +3079,8 @@ msgstr "Taille des objets"
 #. @subsection in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
 msgid "Length and thickness of objects"
 msgstr "Longueur et épaisseur des objets"
 
@@ -2547,6 +3092,8 @@ msgstr "Longueur et épaisseur des objets"
 #. @section in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @section in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @section in Documentation/ja/user/tweaks.itely
 msgid "Placement of objects"
 msgstr "Positionnement des objets"
 
@@ -2556,6 +3103,8 @@ msgstr "Positionnement des objets"
 #. @subsection in Documentation/fr/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
 msgid "Automatic behavior"
 msgstr "Comportement automatique"
 
@@ -2567,12 +3116,16 @@ msgstr "Comportement automatique"
 #. @subsection in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
 msgid "Within-staff objects"
 msgstr "Objets inclus dans la portée"
 
 #. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @subheading in Documentation/es/user/tweaks.itely
 #. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "Fingering"
 msgstr "Doigtés"
 
@@ -2580,19 +3133,26 @@ msgstr "Doigtés"
 #. @subsection in Documentation/user/tweaks.itely
 #. @node in Documentation/es/user/tweaks.itely
 #. @subsection in Documentation/es/user/tweaks.itely
-#, fuzzy
+#. @node in Documentation/de/user/tweaks.itely
+#. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
 msgid "Outside-staff objects"
 msgstr "Objets hors de la portée"
 
 #. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @subheading in Documentation/es/user/tweaks.itely
 #. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "\\textLengthOn"
 msgstr "\\textLengthOn"
 
 #. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @subheading in Documentation/es/user/tweaks.itely
 #. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "Grob sizing"
 msgstr "Dimensionnement des objets graphiques"
 
@@ -2604,6 +3164,8 @@ msgstr "Dimensionnement des objets graphiques"
 #. @section in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @section in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @section in Documentation/ja/user/tweaks.itely
 msgid "Collisions of objects"
 msgstr "Collisions d'objets"
 
@@ -2615,6 +3177,8 @@ msgstr "Collisions d'objets"
 #. @subsection in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
 msgid "Moving objects"
 msgstr "Déplacement d'objets"
 
@@ -2626,54 +3190,72 @@ msgstr "Déplacement d'objets"
 #. @subsection in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
 msgid "Fixing overlapping notation"
 msgstr "Correction des collisions d'objets"
 
 #. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @subheading in Documentation/es/user/tweaks.itely
 #. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "padding property"
 msgstr "la propriété padding"
 
 #. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @subheading in Documentation/es/user/tweaks.itely
 #. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "left-padding and right-padding"
 msgstr "left-padding et right-padding"
 
 #. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @subheading in Documentation/es/user/tweaks.itely
 #. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "staff-padding property"
 msgstr "la propriété staff-padding"
 
 #. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @subheading in Documentation/es/user/tweaks.itely
 #. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "self-alignment-X property"
 msgstr "la propriété self-alignment-X"
 
 #. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @subheading in Documentation/es/user/tweaks.itely
 #. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "staff-position property"
 msgstr "la propriété staff-position"
 
 #. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @subheading in Documentation/es/user/tweaks.itely
 #. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "extra-offset property"
 msgstr "la propriété extra-offset"
 
 #. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @subheading in Documentation/es/user/tweaks.itely
 #. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "positions property"
 msgstr "la propriété positions"
 
 #. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @subheading in Documentation/es/user/tweaks.itely
 #. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "force-hshift property"
 msgstr "la propriété force-hshift"
 
@@ -2685,6 +3267,8 @@ msgstr "la propriété force-hshift"
 #. @subsection in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
 msgid "Real music example"
 msgstr "Exemple concret"
 
@@ -2696,6 +3280,8 @@ msgstr "Exemple concret"
 #. @section in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @section in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @section in Documentation/ja/user/tweaks.itely
 msgid "Further tweaking"
 msgstr "Autres retouches"
 
@@ -2707,18 +3293,24 @@ msgstr "Autres retouches"
 #. @subsection in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
 msgid "Other uses for tweaks"
 msgstr "Autres utilisations des retouches"
 
 #. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @subheading in Documentation/es/user/tweaks.itely
 #. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "Tying notes across voices"
 msgstr "Liaison entre plusieurs voix"
 
 #. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @subheading in Documentation/es/user/tweaks.itely
 #. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "Simulating a fermata in MIDI"
 msgstr "Rendu MIDI d'un point d'orgue"
 
@@ -2730,6 +3322,8 @@ msgstr "Rendu MIDI d'un point d'orgue"
 #. @subsection in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
 msgid "Using variables for tweaks"
 msgstr "Utilisation de variables dans les retouches"
 
@@ -2741,6 +3335,8 @@ msgstr "Utilisation de variables dans les retouches"
 #. @subsection in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
 msgid "Other sources of information"
 msgstr "Autres sources de documentation"
 
@@ -2752,6 +3348,8 @@ msgstr "Autres sources de documentation"
 #. @subsection in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
 msgid "Avoiding tweaks with slower processing"
 msgstr "Options ralentissant le traitement"
 
@@ -2763,41 +3361,43 @@ msgstr "Options ralentissant le traitement"
 #. @subsection in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
 msgid "Advanced tweaks with Scheme"
 msgstr "Retouches avancées avec Scheme"
 
-#. Documentation/user/working.itely:201 (variable)
+#. Documentation/user/working.itely:220 (variable)
 msgid "hornNotes"
 msgstr "corNotes"
 
-#. Documentation/user/working.itely:212 (variable)
+#. Documentation/user/working.itely:231 (variable)
 msgid "fragmentA"
 msgstr "fragmentA"
 
-#. Documentation/user/working.itely:213 (variable)
+#. Documentation/user/working.itely:232 (variable)
 msgid "fragmentB"
 msgstr "fragmentB"
 
-#. Documentation/user/working.itely:226 (variable)
+#. Documentation/user/working.itely:245 (variable)
 msgid "dolce"
 msgstr "dolce"
 
-#. Documentation/user/working.itely:227 (variable)
-#. Documentation/user/working.itely:276 (variable)
+#. Documentation/user/working.itely:246 (variable)
+#. Documentation/user/working.itely:295 (variable)
 #. Documentation/user/scheme-tutorial.itely:235 (variable)
 #. Documentation/user/programming-interface.itely:101 (variable)
 msgid "padText"
 msgstr "decallageTexte"
 
-#. Documentation/user/working.itely:228 (variable)
+#. Documentation/user/working.itely:247 (variable)
 msgid "fthenp"
 msgstr "fpuisp"
 
-#. Documentation/user/working.itely:313 (variable)
+#. Documentation/user/working.itely:332 (variable)
 msgid "mpdolce"
 msgstr "mpdolce"
 
-#. Documentation/user/working.itely:315 (variable)
+#. Documentation/user/working.itely:334 (variable)
 #. Documentation/user/scheme-tutorial.itely:256 (variable)
 #. Documentation/user/programming-interface.itely:135 (variable)
 msgid "tempoMark"
@@ -2811,6 +3411,8 @@ msgstr "tempoMarque"
 #. @chapter in Documentation/es/user/working.itely
 #. @node in Documentation/de/user/working.itely
 #. @chapter in Documentation/de/user/working.itely
+#. @node in Documentation/ja/user/working.itely
+#. @chapter in Documentation/ja/user/working.itely
 msgid "Working on LilyPond projects"
 msgstr "Travail sur des projets LilyPond"
 
@@ -2820,8 +3422,10 @@ msgstr "Travail sur des projets LilyPond"
 #. @section in Documentation/fr/user/working.itely
 #. @node in Documentation/de/user/working.itely
 #. @section in Documentation/de/user/working.itely
+#. @node in Documentation/ja/user/working.itely
+#. @section in Documentation/ja/user/working.itely
 msgid "Suggestions for writing LilyPond input files"
-msgstr "Suggestions de saisie des fichiers LilyPond"
+msgstr "Suggestions pour la saisie de fichiers LilyPond"
 
 #. @node in Documentation/user/working.itely
 #. @subsection in Documentation/user/working.itely
@@ -2831,6 +3435,8 @@ msgstr "Suggestions de saisie des fichiers LilyPond"
 #. @subsection in Documentation/es/user/working.itely
 #. @node in Documentation/de/user/working.itely
 #. @subsection in Documentation/de/user/working.itely
+#. @node in Documentation/ja/user/working.itely
+#. @subsection in Documentation/ja/user/working.itely
 msgid "General suggestions"
 msgstr "Suggestions générales"
 
@@ -2842,6 +3448,8 @@ msgstr "Suggestions générales"
 #. @subsection in Documentation/es/user/working.itely
 #. @node in Documentation/de/user/working.itely
 #. @subsection in Documentation/de/user/working.itely
+#. @node in Documentation/ja/user/working.itely
+#. @subsection in Documentation/ja/user/working.itely
 msgid "Typesetting existing music"
 msgstr "Gravure de musique existante"
 
@@ -2853,6 +3461,8 @@ msgstr "Gravure de musique existante"
 #. @subsection in Documentation/es/user/working.itely
 #. @node in Documentation/de/user/working.itely
 #. @subsection in Documentation/de/user/working.itely
+#. @node in Documentation/ja/user/working.itely
+#. @subsection in Documentation/ja/user/working.itely
 msgid "Large projects"
 msgstr "Projets d'envergure"
 
@@ -2864,6 +3474,8 @@ msgstr "Projets d'envergure"
 #. @subsection in Documentation/es/user/working.itely
 #. @node in Documentation/de/user/working.itely
 #. @subsection in Documentation/de/user/working.itely
+#. @node in Documentation/ja/user/working.itely
+#. @subsection in Documentation/ja/user/working.itely
 msgid "Saving typing with variables and functions"
 msgstr "Économie de saisie grâce aux identificateurs et fonctions"
 
@@ -2875,6 +3487,8 @@ msgstr "Économie de saisie grâce aux identificateurs et fonctions"
 #. @subsection in Documentation/es/user/working.itely
 #. @node in Documentation/de/user/working.itely
 #. @subsection in Documentation/de/user/working.itely
+#. @node in Documentation/ja/user/working.itely
+#. @subsection in Documentation/ja/user/working.itely
 msgid "Style sheets"
 msgstr "Feuilles de style"
 
@@ -2886,11 +3500,15 @@ msgstr "Feuilles de style"
 #. @section in Documentation/es/user/working.itely
 #. @node in Documentation/de/user/working.itely
 #. @section in Documentation/de/user/working.itely
+#. @node in Documentation/ja/user/working.itely
+#. @section in Documentation/ja/user/working.itely
 msgid "When things don't work"
 msgstr "Quand ça ne fonctionne pas"
 
 #. @node in Documentation/user/working.itely
 #. @subsection in Documentation/user/working.itely
+#. @node in Documentation/ja/user/working.itely
+#. @subsection in Documentation/ja/user/working.itely
 msgid "Updating old input files"
 msgstr "Mise à jour d'anciens fichiers"
 
@@ -2902,8 +3520,10 @@ msgstr "Mise à jour d'anciens fichiers"
 #. @subsection in Documentation/es/user/working.itely
 #. @node in Documentation/de/user/working.itely
 #. @subsection in Documentation/de/user/working.itely
+#. @node in Documentation/ja/user/working.itely
+#. @subsection in Documentation/ja/user/working.itely
 msgid "Troubleshooting (taking it all apart)"
-msgstr "Résolution de problèmes --- tout remettre à plat"
+msgstr "Résolution de problèmes -- tout remettre à plat"
 
 #. @node in Documentation/user/working.itely
 #. @subsection in Documentation/user/working.itely
@@ -2913,8 +3533,10 @@ msgstr "Résolution de problèmes --- tout remettre à plat"
 #. @subsection in Documentation/es/user/working.itely
 #. @node in Documentation/de/user/working.itely
 #. @subsection in Documentation/de/user/working.itely
+#. @node in Documentation/ja/user/working.itely
+#. @subsection in Documentation/ja/user/working.itely
 msgid "Minimal examples"
-msgstr "Exemples minimaux"
+msgstr "Exemples minimalistes"
 
 #. @node in Documentation/user/working.itely
 #. @section in Documentation/user/working.itely
@@ -2924,6 +3546,8 @@ msgstr "Exemples minimaux"
 #. @section in Documentation/es/user/working.itely
 #. @node in Documentation/de/user/working.itely
 #. @section in Documentation/de/user/working.itely
+#. @node in Documentation/ja/user/working.itely
+#. @section in Documentation/ja/user/working.itely
 msgid "Scores and parts"
 msgstr "Conducteurs et parties"
 
@@ -2935,6 +3559,8 @@ msgstr "Conducteurs et parties"
 #. @appendix in Documentation/es/user/templates.itely
 #. @node in Documentation/de/user/templates.itely
 #. @appendix in Documentation/de/user/templates.itely
+#. @node in Documentation/ja/user/templates.itely
+#. @appendix in Documentation/ja/user/templates.itely
 msgid "Templates"
 msgstr "Modèles"
 
@@ -2946,6 +3572,8 @@ msgstr "Modèles"
 #. @appendixsec in Documentation/es/user/templates.itely
 #. @node in Documentation/de/user/templates.itely
 #. @appendixsec in Documentation/de/user/templates.itely
+#. @node in Documentation/ja/user/templates.itely
+#. @appendixsec in Documentation/ja/user/templates.itely
 msgid "Single staff"
 msgstr "Portée unique"
 
@@ -2953,6 +3581,7 @@ msgstr "Portée unique"
 #. @appendixsubsec in Documentation/fr/user/templates.itely
 #. @appendixsubsec in Documentation/es/user/templates.itely
 #. @appendixsubsec in Documentation/de/user/templates.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
 msgid "Notes only"
 msgstr "Notes seules"
 
@@ -2960,6 +3589,7 @@ msgstr "Notes seules"
 #. @appendixsubsec in Documentation/fr/user/templates.itely
 #. @appendixsubsec in Documentation/es/user/templates.itely
 #. @appendixsubsec in Documentation/de/user/templates.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
 msgid "Notes and lyrics"
 msgstr "Notes et paroles"
 
@@ -2967,6 +3597,7 @@ msgstr "Notes et paroles"
 #. @appendixsubsec in Documentation/fr/user/templates.itely
 #. @appendixsubsec in Documentation/es/user/templates.itely
 #. @appendixsubsec in Documentation/de/user/templates.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
 msgid "Notes and chords"
 msgstr "Notes et accords"
 
@@ -2974,6 +3605,7 @@ msgstr "Notes et accords"
 #. @appendixsubsec in Documentation/fr/user/templates.itely
 #. @appendixsubsec in Documentation/es/user/templates.itely
 #. @appendixsubsec in Documentation/de/user/templates.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
 msgid "Notes, lyrics, and chords."
 msgstr "Notes, paroles et accords"
 
@@ -2985,6 +3617,8 @@ msgstr "Notes, paroles et accords"
 #. @appendixsec in Documentation/es/user/templates.itely
 #. @node in Documentation/de/user/templates.itely
 #. @appendixsec in Documentation/de/user/templates.itely
+#. @node in Documentation/ja/user/templates.itely
+#. @appendixsec in Documentation/ja/user/templates.itely
 msgid "Piano templates"
 msgstr "Modèles pour claviers"
 
@@ -2992,6 +3626,7 @@ msgstr "Modèles pour claviers"
 #. @appendixsubsec in Documentation/fr/user/templates.itely
 #. @appendixsubsec in Documentation/es/user/templates.itely
 #. @appendixsubsec in Documentation/de/user/templates.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
 msgid "Solo piano"
 msgstr "Piano seul"
 
@@ -2999,6 +3634,7 @@ msgstr "Piano seul"
 #. @appendixsubsec in Documentation/fr/user/templates.itely
 #. @appendixsubsec in Documentation/es/user/templates.itely
 #. @appendixsubsec in Documentation/de/user/templates.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
 msgid "Piano and melody with lyrics"
 msgstr "Chant et accompagnement"
 
@@ -3006,6 +3642,7 @@ msgstr "Chant et accompagnement"
 #. @appendixsubsec in Documentation/fr/user/templates.itely
 #. @appendixsubsec in Documentation/es/user/templates.itely
 #. @appendixsubsec in Documentation/de/user/templates.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
 msgid "Piano centered lyrics"
 msgstr "Piano et paroles entre les portées"
 
@@ -3013,6 +3650,7 @@ msgstr "Piano et paroles entre les portées"
 #. @appendixsubsec in Documentation/fr/user/templates.itely
 #. @appendixsubsec in Documentation/es/user/templates.itely
 #. @appendixsubsec in Documentation/de/user/templates.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
 msgid "Piano centered dynamics"
 msgstr "Piano et nuances entre les portées"
 
@@ -3028,6 +3666,9 @@ msgstr "Piano et nuances entre les portées"
 #. @node in Documentation/de/user/templates.itely
 #. @appendixsec in Documentation/de/user/templates.itely
 #. @appendixsubsec in Documentation/de/user/templates.itely
+#. @node in Documentation/ja/user/templates.itely
+#. @appendixsec in Documentation/ja/user/templates.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
 msgid "String quartet"
 msgstr "Quatuor à cordes"
 
@@ -3035,6 +3676,7 @@ msgstr "Quatuor à cordes"
 #. @appendixsubsec in Documentation/fr/user/templates.itely
 #. @appendixsubsec in Documentation/es/user/templates.itely
 #. @appendixsubsec in Documentation/de/user/templates.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
 msgid "String quartet parts"
 msgstr "Parties pour quatuor à cordes"
 
@@ -3046,6 +3688,8 @@ msgstr "Parties pour quatuor à cordes"
 #. @appendixsec in Documentation/es/user/templates.itely
 #. @node in Documentation/de/user/templates.itely
 #. @appendixsec in Documentation/de/user/templates.itely
+#. @node in Documentation/ja/user/templates.itely
+#. @appendixsec in Documentation/ja/user/templates.itely
 msgid "Vocal ensembles"
 msgstr "Ensemble vocal"
 
@@ -3053,6 +3697,7 @@ msgstr "Ensemble vocal"
 #. @appendixsubsec in Documentation/fr/user/templates.itely
 #. @appendixsubsec in Documentation/es/user/templates.itely
 #. @appendixsubsec in Documentation/de/user/templates.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
 msgid "SATB vocal score"
 msgstr "Partition pour chœur à quatre voix mixtes"
 
@@ -3060,6 +3705,7 @@ msgstr "Partition pour chœur à quatre voix mixtes"
 #. @appendixsubsec in Documentation/fr/user/templates.itely
 #. @appendixsubsec in Documentation/es/user/templates.itely
 #. @appendixsubsec in Documentation/de/user/templates.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
 msgid "SATB vocal score and automatic piano reduction"
 msgstr "Partition pour chœur SATB avec réduction pour piano"
 
@@ -3067,6 +3713,7 @@ msgstr "Partition pour chœur SATB avec réduction pour piano"
 #. @appendixsubsec in Documentation/fr/user/templates.itely
 #. @appendixsubsec in Documentation/es/user/templates.itely
 #. @appendixsubsec in Documentation/de/user/templates.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
 msgid "SATB with aligned contexts"
 msgstr "Partition pour chœur SATB avec alignement des contextes"
 
@@ -3078,6 +3725,8 @@ msgstr "Partition pour chœur SATB avec alignement des contextes"
 #. @appendixsec in Documentation/es/user/templates.itely
 #. @node in Documentation/de/user/templates.itely
 #. @appendixsec in Documentation/de/user/templates.itely
+#. @node in Documentation/ja/user/templates.itely
+#. @appendixsec in Documentation/ja/user/templates.itely
 msgid "Ancient notation templates"
 msgstr "Exemples de notation ancienne"
 
@@ -3085,6 +3734,7 @@ msgstr "Exemples de notation ancienne"
 #. @appendixsubsec in Documentation/fr/user/templates.itely
 #. @appendixsubsec in Documentation/es/user/templates.itely
 #. @appendixsubsec in Documentation/de/user/templates.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
 msgid "Transcription of mensural music"
 msgstr "Transcription de musique mensurale"
 
@@ -3092,6 +3742,7 @@ msgstr "Transcription de musique mensurale"
 #. @appendixsubsec in Documentation/fr/user/templates.itely
 #. @appendixsubsec in Documentation/es/user/templates.itely
 #. @appendixsubsec in Documentation/de/user/templates.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
 msgid "Gregorian transcription template"
 msgstr "Transcription du grégorien"
 
@@ -3103,6 +3754,8 @@ msgstr "Transcription du grégorien"
 #. @appendixsec in Documentation/es/user/templates.itely
 #. @node in Documentation/de/user/templates.itely
 #. @appendixsec in Documentation/de/user/templates.itely
+#. @node in Documentation/ja/user/templates.itely
+#. @appendixsec in Documentation/ja/user/templates.itely
 msgid "Jazz combo"
 msgstr "Symboles de jazz"
 
@@ -3112,6 +3765,8 @@ msgstr "Symboles de jazz"
 #. @appendixsec in Documentation/fr/user/templates.itely
 #. @node in Documentation/es/user/templates.itely
 #. @appendixsec in Documentation/es/user/templates.itely
+#. @node in Documentation/ja/user/templates.itely
+#. @appendixsec in Documentation/ja/user/templates.itely
 msgid "lilypond-book templates"
 msgstr "Squelettes pour lilypond-book"
 
@@ -3123,6 +3778,8 @@ msgstr "Squelettes pour lilypond-book"
 #. @node in Documentation/es/user/lilypond-book.itely
 #. @appendixsubsec in Documentation/de/user/templates.itely
 #. @node in Documentation/de/user/lilypond-book.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
+#. @node in Documentation/ja/user/lilypond-book.itely
 msgid "LaTeX"
 msgstr "LaTeX"
 
@@ -3142,6 +3799,10 @@ msgstr "LaTeX"
 #. @node in Documentation/de/user/lilypond-book.itely
 #. @subsection in Documentation/de/user/lilypond-book.itely
 #. @subsubheading in Documentation/de/user/lilypond-book.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
+#. @node in Documentation/ja/user/lilypond-book.itely
+#. @subsection in Documentation/ja/user/lilypond-book.itely
+#. @subsubheading in Documentation/ja/user/lilypond-book.itely
 msgid "Texinfo"
 msgstr "Texinfo"
 
@@ -3149,6 +3810,7 @@ msgstr "Texinfo"
 #. @appendixsubsec in Documentation/fr/user/templates.itely
 #. @appendixsubsec in Documentation/es/user/templates.itely
 #. @appendixsubsec in Documentation/de/user/templates.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
 msgid "xelatex"
 msgstr "xelatex"
 
@@ -3164,6 +3826,8 @@ msgstr "motif"
 #. @appendix in Documentation/es/user/scheme-tutorial.itely
 #. @node in Documentation/de/user/scheme-tutorial.itely
 #. @appendix in Documentation/de/user/scheme-tutorial.itely
+#. @node in Documentation/ja/user/scheme-tutorial.itely
+#. @appendix in Documentation/ja/user/scheme-tutorial.itely
 msgid "Scheme tutorial"
 msgstr "Tutoriel Scheme"
 
@@ -3175,6 +3839,8 @@ msgstr "Tutoriel Scheme"
 #. @appendixsec in Documentation/es/user/scheme-tutorial.itely
 #. @node in Documentation/de/user/scheme-tutorial.itely
 #. @appendixsec in Documentation/de/user/scheme-tutorial.itely
+#. @node in Documentation/ja/user/scheme-tutorial.itely
+#. @appendixsec in Documentation/ja/user/scheme-tutorial.itely
 msgid "Tweaking with Scheme"
 msgstr "Scheme et les retouches"
 
@@ -3192,7 +3858,6 @@ msgid "ADDENDUM: How to use this License for your documents"
 msgstr "SUPPLÉMENT : comment utiliser cette licence pour vos documents"
 
 #. @top in Documentation/user/lilypond-program.tely
-#, fuzzy
 msgid "GNU LilyPond --- Application Usage"
 msgstr "GNU LilyPond --- Utilisation du programme"
 
@@ -3204,6 +3869,8 @@ msgstr "GNU LilyPond --- Utilisation du programme"
 #. @chapter in Documentation/es/user/install.itely
 #. @node in Documentation/de/user/install.itely
 #. @chapter in Documentation/de/user/install.itely
+#. @node in Documentation/ja/user/install.itely
+#. @chapter in Documentation/ja/user/install.itely
 msgid "Install"
 msgstr "Installation"
 
@@ -3215,6 +3882,8 @@ msgstr "Installation"
 #. @section in Documentation/es/user/install.itely
 #. @node in Documentation/de/user/install.itely
 #. @section in Documentation/de/user/install.itely
+#. @node in Documentation/ja/user/install.itely
+#. @section in Documentation/ja/user/install.itely
 msgid "Precompiled binaries"
 msgstr "Paquets précompilés"
 
@@ -3222,6 +3891,7 @@ msgstr "Paquets précompilés"
 #. @unnumberedsubsec in Documentation/fr/user/install.itely
 #. @unnumberedsubsec in Documentation/es/user/install.itely
 #. @unnumberedsubsec in Documentation/de/user/install.itely
+#. @unnumberedsubsec in Documentation/ja/user/install.itely
 msgid "Downloading"
 msgstr "Téléchargement"
 
@@ -3233,6 +3903,8 @@ msgstr "Téléchargement"
 #. @section in Documentation/es/user/install.itely
 #. @node in Documentation/de/user/install.itely
 #. @section in Documentation/de/user/install.itely
+#. @node in Documentation/ja/user/install.itely
+#. @section in Documentation/ja/user/install.itely
 msgid "Compiling from source"
 msgstr "Compilation à partir du code source"
 
@@ -3328,6 +4000,8 @@ msgstr "Polices de caractères non européens"
 #. @chapter in Documentation/es/user/setup.itely
 #. @node in Documentation/de/user/setup.itely
 #. @chapter in Documentation/de/user/setup.itely
+#. @node in Documentation/ja/user/setup.itely
+#. @chapter in Documentation/ja/user/setup.itely
 msgid "Setup"
 msgstr "Environnement de travail"
 
@@ -3339,23 +4013,37 @@ msgstr "Environnement de travail"
 #. @section in Documentation/es/user/setup.itely
 #. @node in Documentation/de/user/setup.itely
 #. @section in Documentation/de/user/setup.itely
+#. @node in Documentation/ja/user/setup.itely
+#. @section in Documentation/ja/user/setup.itely
 msgid "Setup for specific Operating Systems"
 msgstr "Spécificités pour certains systèmes"
 
 #. @node in Documentation/user/setup.itely
 #. @subsection in Documentation/user/setup.itely
+#. @node in Documentation/fr/user/setup.itely
+#. @subsection in Documentation/fr/user/setup.itely
 #. @node in Documentation/es/user/setup.itely
 #. @subsection in Documentation/es/user/setup.itely
+#. @node in Documentation/de/user/setup.itely
+#. @subsection in Documentation/de/user/setup.itely
+#. @node in Documentation/ja/user/setup.itely
+#. @subsection in Documentation/ja/user/setup.itely
 msgid "Setup for MacOS X"
 msgstr "Spécificités pour MacOS X"
 
 #. @subsubheading in Documentation/user/setup.itely
+#. @subsubheading in Documentation/fr/user/setup.itely
 #. @subsubheading in Documentation/es/user/setup.itely
+#. @subsubheading in Documentation/de/user/setup.itely
+#. @subsubheading in Documentation/ja/user/setup.itely
 msgid "Using Python scripts on MacOS 10.3 or 10.4"
 msgstr "Utilisation de scripts Python sur MacOS 10.3 ou 10.4"
 
 #. @subsubheading in Documentation/user/setup.itely
+#. @subsubheading in Documentation/fr/user/setup.itely
 #. @subsubheading in Documentation/es/user/setup.itely
+#. @subsubheading in Documentation/de/user/setup.itely
+#. @subsubheading in Documentation/ja/user/setup.itely
 msgid "MacOS X on the command line"
 msgstr "MacOS X et la ligne de commande"
 
@@ -3367,6 +4055,8 @@ msgstr "MacOS X et la ligne de commande"
 #. @section in Documentation/es/user/setup.itely
 #. @node in Documentation/de/user/setup.itely
 #. @section in Documentation/de/user/setup.itely
+#. @node in Documentation/ja/user/setup.itely
+#. @section in Documentation/ja/user/setup.itely
 msgid "Text editor support"
 msgstr "LilyPond et les éditeurs de texte"
 
@@ -3378,6 +4068,8 @@ msgstr "LilyPond et les éditeurs de texte"
 #. @subsection in Documentation/es/user/setup.itely
 #. @node in Documentation/de/user/setup.itely
 #. @subsection in Documentation/de/user/setup.itely
+#. @node in Documentation/ja/user/setup.itely
+#. @subsection in Documentation/ja/user/setup.itely
 msgid "Emacs mode"
 msgstr "Mode Emacs"
 
@@ -3389,6 +4081,8 @@ msgstr "Mode Emacs"
 #. @subsection in Documentation/es/user/setup.itely
 #. @node in Documentation/de/user/setup.itely
 #. @subsection in Documentation/de/user/setup.itely
+#. @node in Documentation/ja/user/setup.itely
+#. @subsection in Documentation/ja/user/setup.itely
 msgid "Vim mode"
 msgstr "Mode Vim"
 
@@ -3400,6 +4094,8 @@ msgstr "Mode Vim"
 #. @subsection in Documentation/es/user/setup.itely
 #. @node in Documentation/de/user/setup.itely
 #. @subsection in Documentation/de/user/setup.itely
+#. @node in Documentation/ja/user/setup.itely
+#. @subsection in Documentation/ja/user/setup.itely
 msgid "jEdit"
 msgstr "jEdit"
 
@@ -3411,6 +4107,8 @@ msgstr "jEdit"
 #. @subsection in Documentation/es/user/setup.itely
 #. @node in Documentation/de/user/setup.itely
 #. @subsection in Documentation/de/user/setup.itely
+#. @node in Documentation/ja/user/setup.itely
+#. @subsection in Documentation/ja/user/setup.itely
 msgid "TexShop"
 msgstr "TexShop"
 
@@ -3422,6 +4120,8 @@ msgstr "TexShop"
 #. @subsection in Documentation/es/user/setup.itely
 #. @node in Documentation/de/user/setup.itely
 #. @subsection in Documentation/de/user/setup.itely
+#. @node in Documentation/ja/user/setup.itely
+#. @subsection in Documentation/ja/user/setup.itely
 msgid "TextMate"
 msgstr "TextMate"
 
@@ -3433,6 +4133,8 @@ msgstr "TextMate"
 #. @subsection in Documentation/es/user/setup.itely
 #. @node in Documentation/de/user/setup.itely
 #. @subsection in Documentation/de/user/setup.itely
+#. @node in Documentation/ja/user/setup.itely
+#. @subsection in Documentation/ja/user/setup.itely
 msgid "LilyKDE"
 msgstr "LilyKDE"
 
@@ -3444,6 +4146,8 @@ msgstr "LilyKDE"
 #. @section in Documentation/es/user/setup.itely
 #. @node in Documentation/de/user/setup.itely
 #. @section in Documentation/de/user/setup.itely
+#. @node in Documentation/ja/user/setup.itely
+#. @section in Documentation/ja/user/setup.itely
 msgid "Point and click"
 msgstr "Pointer-cliquer"
 
@@ -3455,6 +4159,8 @@ msgstr "Pointer-cliquer"
 #. @chapter in Documentation/es/user/running.itely
 #. @node in Documentation/de/user/running.itely
 #. @chapter in Documentation/de/user/running.itely
+#. @node in Documentation/ja/user/running.itely
+#. @chapter in Documentation/ja/user/running.itely
 msgid "Running LilyPond"
 msgstr "Exécution de LilyPond"
 
@@ -3466,6 +4172,8 @@ msgstr "Exécution de LilyPond"
 #. @section in Documentation/es/user/running.itely
 #. @node in Documentation/de/user/running.itely
 #. @section in Documentation/de/user/running.itely
+#. @node in Documentation/ja/user/running.itely
+#. @section in Documentation/ja/user/running.itely
 msgid "Normal usage"
 msgstr "Utilisation habituelle"
 
@@ -3477,6 +4185,8 @@ msgstr "Utilisation habituelle"
 #. @section in Documentation/es/user/running.itely
 #. @node in Documentation/de/user/running.itely
 #. @section in Documentation/de/user/running.itely
+#. @node in Documentation/ja/user/running.itely
+#. @section in Documentation/ja/user/running.itely
 msgid "Command-line usage"
 msgstr "Utilisation en ligne de commande"
 
@@ -3485,22 +4195,28 @@ msgstr "Utilisation en ligne de commande"
 #. @subsection in Documentation/fr/user/running.itely
 #. @node in Documentation/es/user/running.itely
 #. @node in Documentation/de/user/running.itely
-#. @subsection in Documentation/de/user/running.itely
+#. @node in Documentation/ja/user/running.itely
 msgid "Invoking lilypond"
 msgstr "Lancement de lilypond"
 
 #. @subsection in Documentation/user/running.itely
 #. @subsection in Documentation/es/user/running.itely
+#. @subsection in Documentation/de/user/running.itely
+#. @subsection in Documentation/ja/user/running.itely
 msgid "Invoking @command{lilypond}"
 msgstr "Lancement de @command{lilypond}"
 
 #. @node in Documentation/user/running.itely
 #. @node in Documentation/es/user/running.itely
+#. @node in Documentation/de/user/running.itely
+#. @node in Documentation/ja/user/running.itely
 msgid "Command line options for lilypond"
 msgstr "Options en ligne de commande pour lilypond"
 
 #. @subsection in Documentation/user/running.itely
 #. @subsection in Documentation/es/user/running.itely
+#. @subsection in Documentation/de/user/running.itely
+#. @subsection in Documentation/ja/user/running.itely
 msgid "Command line options for @command{lilypond}"
 msgstr "Options en ligne de commande pour @command{lilypond}"
 
@@ -3512,6 +4228,8 @@ msgstr "Options en ligne de commande pour @command{lilypond}"
 #. @subsection in Documentation/es/user/running.itely
 #. @node in Documentation/de/user/running.itely
 #. @subsection in Documentation/de/user/running.itely
+#. @node in Documentation/ja/user/running.itely
+#. @subsection in Documentation/ja/user/running.itely
 msgid "Environment variables"
 msgstr "Variables d'environnement"
 
@@ -3523,6 +4241,8 @@ msgstr "Variables d'environnement"
 #. @section in Documentation/es/user/running.itely
 #. @node in Documentation/de/user/running.itely
 #. @section in Documentation/de/user/running.itely
+#. @node in Documentation/ja/user/running.itely
+#. @section in Documentation/ja/user/running.itely
 msgid "Error messages"
 msgstr "Messages d'erreur"
 
@@ -3530,21 +4250,28 @@ msgstr "Messages d'erreur"
 #. @node in Documentation/fr/user/running.itely
 #. @node in Documentation/es/user/running.itely
 #. @node in Documentation/de/user/running.itely
+#. @node in Documentation/ja/user/running.itely
 msgid "Updating files with convert-ly"
 msgstr "Mise à jour des fichiers avec convert-ly"
 
 #. @section in Documentation/user/running.itely
 #. @section in Documentation/es/user/running.itely
+#. @section in Documentation/de/user/running.itely
+#. @section in Documentation/ja/user/running.itely
 msgid "Updating files with @command{convert-ly}"
 msgstr "Mise à jour des fichiers avec @command{convert-ly}"
 
 #. @node in Documentation/user/running.itely
 #. @node in Documentation/es/user/running.itely
+#. @node in Documentation/de/user/running.itely
+#. @node in Documentation/ja/user/running.itely
 msgid "Command line options for convert-ly"
 msgstr "Options en ligne de commande pour convert-ly"
 
 #. @subsection in Documentation/user/running.itely
 #. @subsection in Documentation/es/user/running.itely
+#. @subsection in Documentation/de/user/running.itely
+#. @subsection in Documentation/ja/user/running.itely
 msgid "Command line options for @command{convert-ly}"
 msgstr "Options en ligne de commande pour @command{convert-ly}"
 
@@ -3552,6 +4279,7 @@ msgstr "Options en ligne de commande pour @command{convert-ly}"
 #. @node in Documentation/fr/user/running.itely
 #. @node in Documentation/es/user/running.itely
 #. @node in Documentation/de/user/running.itely
+#. @node in Documentation/ja/user/running.itely
 msgid "Problems with convert-ly"
 msgstr "Limitations de convert-ly"
 
@@ -3559,6 +4287,7 @@ msgstr "Limitations de convert-ly"
 #. @subsection in Documentation/fr/user/running.itely
 #. @subsection in Documentation/es/user/running.itely
 #. @subsection in Documentation/de/user/running.itely
+#. @subsection in Documentation/ja/user/running.itely
 msgid "Problems with @code{convert-ly}"
 msgstr "Limitations de @command{convert-ly}"
 
@@ -3570,6 +4299,8 @@ msgstr "Limitations de @command{convert-ly}"
 #. @section in Documentation/es/user/running.itely
 #. @node in Documentation/de/user/running.itely
 #. @section in Documentation/de/user/running.itely
+#. @node in Documentation/ja/user/running.itely
+#. @section in Documentation/ja/user/running.itely
 msgid "Reporting bugs"
 msgstr "Rapport de bogue"
 
@@ -3577,6 +4308,7 @@ msgstr "Rapport de bogue"
 #. @node in Documentation/fr/user/lilypond-book.itely
 #. @node in Documentation/es/user/lilypond-book.itely
 #. @node in Documentation/de/user/lilypond-book.itely
+#. @node in Documentation/ja/user/lilypond-book.itely
 msgid "LilyPond-book"
 msgstr "LilyPond-book"
 
@@ -3584,6 +4316,7 @@ msgstr "LilyPond-book"
 #. @chapter in Documentation/fr/user/lilypond-book.itely
 #. @chapter in Documentation/es/user/lilypond-book.itely
 #. @chapter in Documentation/de/user/lilypond-book.itely
+#. @chapter in Documentation/ja/user/lilypond-book.itely
 msgid "@command{lilypond-book}: Integrating text and music"
 msgstr "@command{lilypond-book} : association musique-texte"
 
@@ -3595,6 +4328,8 @@ msgstr "@command{lilypond-book} : association musique-texte"
 #. @section in Documentation/es/user/lilypond-book.itely
 #. @node in Documentation/de/user/lilypond-book.itely
 #. @section in Documentation/de/user/lilypond-book.itely
+#. @node in Documentation/ja/user/lilypond-book.itely
+#. @section in Documentation/ja/user/lilypond-book.itely
 msgid "An example of a musicological document"
 msgstr "Exemple de document musicologique"
 
@@ -3602,6 +4337,7 @@ msgstr "Exemple de document musicologique"
 #. @subheading in Documentation/fr/user/lilypond-book.itely
 #. @subheading in Documentation/es/user/lilypond-book.itely
 #. @subheading in Documentation/de/user/lilypond-book.itely
+#. @subheading in Documentation/ja/user/lilypond-book.itely
 msgid "Input"
 msgstr "Fichier d'entrée"
 
@@ -3609,6 +4345,7 @@ msgstr "Fichier d'entrée"
 #. @subheading in Documentation/fr/user/lilypond-book.itely
 #. @subheading in Documentation/es/user/lilypond-book.itely
 #. @subheading in Documentation/de/user/lilypond-book.itely
+#. @subheading in Documentation/ja/user/lilypond-book.itely
 msgid "Processing"
 msgstr "Traitement"
 
@@ -3616,6 +4353,7 @@ msgstr "Traitement"
 #. @subheading in Documentation/fr/user/lilypond-book.itely
 #. @subheading in Documentation/es/user/lilypond-book.itely
 #. @subheading in Documentation/de/user/lilypond-book.itely
+#. @subheading in Documentation/ja/user/lilypond-book.itely
 msgid "Output"
 msgstr "Résultat"
 
@@ -3627,6 +4365,8 @@ msgstr "Résultat"
 #. @section in Documentation/es/user/lilypond-book.itely
 #. @node in Documentation/de/user/lilypond-book.itely
 #. @section in Documentation/de/user/lilypond-book.itely
+#. @node in Documentation/ja/user/lilypond-book.itely
+#. @section in Documentation/ja/user/lilypond-book.itely
 msgid "Integrating music and text"
 msgstr "Association musique-texte"
 
@@ -3638,6 +4378,8 @@ msgstr "Association musique-texte"
 #. @subsubheading in Documentation/es/user/lilypond-book.itely
 #. @subsection in Documentation/de/user/lilypond-book.itely
 #. @subsubheading in Documentation/de/user/lilypond-book.itely
+#. @subsection in Documentation/ja/user/lilypond-book.itely
+#. @subsubheading in Documentation/ja/user/lilypond-book.itely
 msgid "@LaTeX{}"
 msgstr "@LaTeX{}"
 
@@ -3649,6 +4391,8 @@ msgstr "@LaTeX{}"
 #. @subsection in Documentation/es/user/lilypond-book.itely
 #. @node in Documentation/de/user/lilypond-book.itely
 #. @subsection in Documentation/de/user/lilypond-book.itely
+#. @node in Documentation/ja/user/lilypond-book.itely
+#. @subsection in Documentation/ja/user/lilypond-book.itely
 msgid "HTML"
 msgstr "HTML"
 
@@ -3660,6 +4404,8 @@ msgstr "HTML"
 #. @subsection in Documentation/es/user/lilypond-book.itely
 #. @node in Documentation/de/user/lilypond-book.itely
 #. @subsection in Documentation/de/user/lilypond-book.itely
+#. @node in Documentation/ja/user/lilypond-book.itely
+#. @subsection in Documentation/ja/user/lilypond-book.itely
 msgid "DocBook"
 msgstr "DocBook"
 
@@ -3667,6 +4413,7 @@ msgstr "DocBook"
 #. @subheading in Documentation/fr/user/lilypond-book.itely
 #. @subheading in Documentation/es/user/lilypond-book.itely
 #. @subheading in Documentation/de/user/lilypond-book.itely
+#. @subheading in Documentation/ja/user/lilypond-book.itely
 msgid "Common conventions"
 msgstr "Conventions communes"
 
@@ -3674,6 +4421,7 @@ msgstr "Conventions communes"
 #. @subheading in Documentation/fr/user/lilypond-book.itely
 #. @subheading in Documentation/es/user/lilypond-book.itely
 #. @subheading in Documentation/de/user/lilypond-book.itely
+#. @subheading in Documentation/ja/user/lilypond-book.itely
 msgid "Including a LilyPond file"
 msgstr "Inclusion d'un fichier LilyPond"
 
@@ -3681,6 +4429,7 @@ msgstr "Inclusion d'un fichier LilyPond"
 #. @subheading in Documentation/fr/user/lilypond-book.itely
 #. @subheading in Documentation/es/user/lilypond-book.itely
 #. @subheading in Documentation/de/user/lilypond-book.itely
+#. @subheading in Documentation/ja/user/lilypond-book.itely
 msgid "Including LilyPond code"
 msgstr "Inclusion de code LilyPond"
 
@@ -3688,6 +4437,7 @@ msgstr "Inclusion de code LilyPond"
 #. @subheading in Documentation/fr/user/lilypond-book.itely
 #. @subheading in Documentation/es/user/lilypond-book.itely
 #. @subheading in Documentation/de/user/lilypond-book.itely
+#. @subheading in Documentation/ja/user/lilypond-book.itely
 msgid "Processing the DocBook document"
 msgstr "Génération du document DocBook"
 
@@ -3699,6 +4449,8 @@ msgstr "Génération du document DocBook"
 #. @section in Documentation/es/user/lilypond-book.itely
 #. @node in Documentation/de/user/lilypond-book.itely
 #. @section in Documentation/de/user/lilypond-book.itely
+#. @node in Documentation/ja/user/lilypond-book.itely
+#. @section in Documentation/ja/user/lilypond-book.itely
 msgid "Music fragment options"
 msgstr "Options applicables aux fragments de musique"
 
@@ -3706,6 +4458,7 @@ msgstr "Options applicables aux fragments de musique"
 #. @node in Documentation/fr/user/lilypond-book.itely
 #. @node in Documentation/es/user/lilypond-book.itely
 #. @node in Documentation/de/user/lilypond-book.itely
+#. @node in Documentation/ja/user/lilypond-book.itely
 msgid "Invoking lilypond-book"
 msgstr "Utilisation de lilypond-book"
 
@@ -3713,13 +4466,15 @@ msgstr "Utilisation de lilypond-book"
 #. @section in Documentation/fr/user/lilypond-book.itely
 #. @section in Documentation/es/user/lilypond-book.itely
 #. @section in Documentation/de/user/lilypond-book.itely
+#. @section in Documentation/ja/user/lilypond-book.itely
 msgid "Invoking @command{lilypond-book}"
-msgstr "Lancement de @command{lilypond-book}"
+msgstr "Utilisation de @command{lilypond-book}"
 
 #. @subheading in Documentation/user/lilypond-book.itely
 #. @subheading in Documentation/fr/user/lilypond-book.itely
 #. @subheading in Documentation/es/user/lilypond-book.itely
 #. @subheading in Documentation/de/user/lilypond-book.itely
+#. @subheading in Documentation/ja/user/lilypond-book.itely
 msgid "Format-specific instructions"
 msgstr "Instructions spécifiques à certains formats"
 
@@ -3728,9 +4483,8 @@ msgstr "Instructions spécifiques à certains formats"
 #. @subsection in Documentation/fr/user/running.itely
 #. @subheading in Documentation/fr/user/lilypond-book.itely
 #. @subheading in Documentation/es/user/lilypond-book.itely
-#. @node in Documentation/de/user/running.itely
-#. @subsection in Documentation/de/user/running.itely
 #. @subheading in Documentation/de/user/lilypond-book.itely
+#. @subheading in Documentation/ja/user/lilypond-book.itely
 msgid "Command line options"
 msgstr "Options en ligne de commande"
 
@@ -3742,6 +4496,8 @@ msgstr "Options en ligne de commande"
 #. @section in Documentation/es/user/lilypond-book.itely
 #. @node in Documentation/de/user/lilypond-book.itely
 #. @section in Documentation/de/user/lilypond-book.itely
+#. @node in Documentation/ja/user/lilypond-book.itely
+#. @section in Documentation/ja/user/lilypond-book.itely
 msgid "Filename extensions"
 msgstr "Extensions de nom de fichier"
 
@@ -3749,6 +4505,7 @@ msgstr "Extensions de nom de fichier"
 #. @node in Documentation/fr/user/lilypond-book.itely
 #. @node in Documentation/es/user/lilypond-book.itely
 #. @node in Documentation/de/user/lilypond-book.itely
+#. @node in Documentation/ja/user/lilypond-book.itely
 msgid "Alternate methods of mixing text and music"
 msgstr "Autres méthodes d'association texte-musique"
 
@@ -3756,6 +4513,7 @@ msgstr "Autres méthodes d'association texte-musique"
 #. @section in Documentation/fr/user/lilypond-book.itely
 #. @section in Documentation/es/user/lilypond-book.itely
 #. @section in Documentation/de/user/lilypond-book.itely
+#. @section in Documentation/ja/user/lilypond-book.itely
 msgid "Alternative methods of mixing text and music"
 msgstr "Autres méthodes d'association texte-musique"
 
@@ -3767,6 +4525,8 @@ msgstr "Autres méthodes d'association texte-musique"
 #. @unnumberedsubsec in Documentation/es/user/lilypond-book.itely
 #. @node in Documentation/de/user/lilypond-book.itely
 #. @subsection in Documentation/de/user/lilypond-book.itely
+#. @node in Documentation/ja/user/lilypond-book.itely
+#. @unnumberedsubsec in Documentation/ja/user/lilypond-book.itely
 msgid "Many quotes from a large score"
 msgstr "Extraction de plusieurs fragments d'une grande partition"
 
@@ -3778,6 +4538,8 @@ msgstr "Extraction de plusieurs fragments d'une grande partition"
 #. @unnumberedsubsec in Documentation/es/user/lilypond-book.itely
 #. @node in Documentation/de/user/lilypond-book.itely
 #. @subsection in Documentation/de/user/lilypond-book.itely
+#. @node in Documentation/ja/user/lilypond-book.itely
+#. @unnumberedsubsec in Documentation/ja/user/lilypond-book.itely
 msgid "Inserting LilyPond output into OpenOffice.org"
 msgstr "Insertion du résultat de LilyPond dans OpenOffice.org"
 
@@ -3789,6 +4551,8 @@ msgstr "Insertion du résultat de LilyPond dans OpenOffice.org"
 #. @unnumberedsubsec in Documentation/es/user/lilypond-book.itely
 #. @node in Documentation/de/user/lilypond-book.itely
 #. @subsection in Documentation/de/user/lilypond-book.itely
+#. @node in Documentation/ja/user/lilypond-book.itely
+#. @unnumberedsubsec in Documentation/ja/user/lilypond-book.itely
 msgid "Inserting LilyPond output into other programs"
 msgstr "Insertion du résultat de LilyPond dans d'autres programmes"
 
@@ -3800,6 +4564,8 @@ msgstr "Insertion du résultat de LilyPond dans d'autres programmes"
 #. @chapter in Documentation/es/user/converters.itely
 #. @node in Documentation/de/user/converters.itely
 #. @chapter in Documentation/de/user/converters.itely
+#. @node in Documentation/ja/user/converters.itely
+#. @chapter in Documentation/ja/user/converters.itely
 msgid "Converting from other formats"
 msgstr "Conversion à partir d'autres formats"
 
@@ -3807,6 +4573,7 @@ msgstr "Conversion à partir d'autres formats"
 #. @node in Documentation/fr/user/converters.itely
 #. @node in Documentation/es/user/converters.itely
 #. @node in Documentation/de/user/converters.itely
+#. @node in Documentation/ja/user/converters.itely
 msgid "Invoking midi2ly"
 msgstr "Utilisation de midi2ly"
 
@@ -3814,6 +4581,7 @@ msgstr "Utilisation de midi2ly"
 #. @section in Documentation/fr/user/converters.itely
 #. @section in Documentation/es/user/converters.itely
 #. @section in Documentation/de/user/converters.itely
+#. @section in Documentation/ja/user/converters.itely
 msgid "Invoking @command{midi2ly}"
 msgstr "Utilisation de @command{midi2ly}"
 
@@ -3821,6 +4589,7 @@ msgstr "Utilisation de @command{midi2ly}"
 #. @node in Documentation/fr/user/converters.itely
 #. @node in Documentation/es/user/converters.itely
 #. @node in Documentation/de/user/converters.itely
+#. @node in Documentation/ja/user/converters.itely
 msgid "Invoking musicxml2ly"
 msgstr "Utilisation de musicxml2ly"
 
@@ -3828,6 +4597,7 @@ msgstr "Utilisation de musicxml2ly"
 #. @section in Documentation/fr/user/converters.itely
 #. @section in Documentation/es/user/converters.itely
 #. @section in Documentation/de/user/converters.itely
+#. @section in Documentation/ja/user/converters.itely
 msgid "Invoking @code{musicxml2ly}"
 msgstr "Utilisation de @command{musicxml2ly}"
 
@@ -3835,6 +4605,7 @@ msgstr "Utilisation de @command{musicxml2ly}"
 #. @node in Documentation/fr/user/converters.itely
 #. @node in Documentation/es/user/converters.itely
 #. @node in Documentation/de/user/converters.itely
+#. @node in Documentation/ja/user/converters.itely
 msgid "Invoking abc2ly"
 msgstr "Utilisation d'abc2ly"
 
@@ -3842,6 +4613,7 @@ msgstr "Utilisation d'abc2ly"
 #. @section in Documentation/fr/user/converters.itely
 #. @section in Documentation/es/user/converters.itely
 #. @section in Documentation/de/user/converters.itely
+#. @section in Documentation/ja/user/converters.itely
 msgid "Invoking @code{abc2ly}"
 msgstr "Utilisation de @command{abc2ly}"
 
@@ -3849,6 +4621,7 @@ msgstr "Utilisation de @command{abc2ly}"
 #. @node in Documentation/fr/user/converters.itely
 #. @node in Documentation/es/user/converters.itely
 #. @node in Documentation/de/user/converters.itely
+#. @node in Documentation/ja/user/converters.itely
 msgid "Invoking etf2ly"
 msgstr "Utilisation d'etf2ly"
 
@@ -3856,6 +4629,7 @@ msgstr "Utilisation d'etf2ly"
 #. @section in Documentation/fr/user/converters.itely
 #. @section in Documentation/es/user/converters.itely
 #. @section in Documentation/de/user/converters.itely
+#. @section in Documentation/ja/user/converters.itely
 msgid "Invoking @command{etf2ly}"
 msgstr "Utilisation de @command{etf2ly}"
 
@@ -3867,10 +4641,13 @@ msgstr "Utilisation de @command{etf2ly}"
 #. @section in Documentation/es/user/converters.itely
 #. @node in Documentation/de/user/converters.itely
 #. @section in Documentation/de/user/converters.itely
+#. @node in Documentation/ja/user/converters.itely
+#. @section in Documentation/ja/user/converters.itely
 msgid "Generating LilyPond files"
 msgstr "Génération de fichiers LilyPond"
 
 #. @top in Documentation/user/lilypond.tely
+#. @top in Documentation/de/user/lilypond.tely
 msgid "GNU LilyPond --- Notation Reference"
 msgstr "GNU LilyPond --- Manuel de notation"
 
@@ -3900,26 +4677,55 @@ msgstr "Index des commandes LilyPond"
 msgid "Musical notation"
 msgstr "Notation musicale générale"
 
-#. Documentation/user/pitches.itely:654 (variable)
-#. Documentation/user/input.itely:997 (variable)
-#. Documentation/user/input.itely:1016 (variable)
-#. Documentation/user/input.itely:1053 (variable)
-#. Documentation/user/input.itely:1068 (variable)
+#. Documentation/user/pitches.itely:688 (variable)
+#. Documentation/user/input.itely:1043 (variable)
+#. Documentation/user/input.itely:1062 (variable)
+#. Documentation/user/input.itely:1099 (variable)
+#. Documentation/user/input.itely:1114 (variable)
+#. input/lsr/changing-the-chord-names-to-german-or-semi-german-notation.ly:29 (variable)
+#. input/lsr/controlling-tuplet-bracket-visibility.ly:20 (variable)
+#. input/lsr/letter-tablature-formatting.ly:25 (variable)
+#. input/lsr/string-quartet-template-with-separate-parts.ly:112 (variable)
+#. input/lsr/transposing-pitches-with-minimum-accidentals-smart-transpose.ly:137 (variable)
+#. input/lsr/vertically-aligned-dynamics-and-textscripts.ly:50 (variable)
 msgid "music"
 msgstr "musique"
 
-#. Documentation/user/pitches.itely:1031 (comment)
+#. Documentation/user/pitches.itely:1082 (comment)
 msgid "not strictly necessary, but a good reminder"
 msgstr "pas strictement nécessaire, mais en pense-bête"
 
-#. Documentation/user/pitches.itely:1123 (variable)
+#. Documentation/user/pitches.itely:1089 (context id)
+#. Documentation/user/staff.itely:1116 (variable)
+msgid "clarinet"
+msgstr "clarinette"
+
+#. Documentation/user/pitches.itely:1174 (variable)
 msgid "musicA"
 msgstr "musiqueA"
 
-#. Documentation/user/pitches.itely:1137 (variable)
+#. Documentation/user/pitches.itely:1188 (variable)
 msgid "musicB"
 msgstr "musiqueB"
 
+#. Documentation/user/pitches.itely:1207 (context id)
+#. Documentation/user/keyboards.itely:175 (context id)
+#. Documentation/user/keyboards.itely:274 (context id)
+#. Documentation/user/percussion.itely:175 (variable)
+#. Documentation/user/percussion.itely:365 (variable)
+#. input/lsr/jazz-combo-template.ly:241 (variable)
+msgid "up"
+msgstr "haut"
+
+#. Documentation/user/pitches.itely:1211 (context id)
+#. Documentation/user/keyboards.itely:185 (context id)
+#. Documentation/user/keyboards.itely:283 (context id)
+#. Documentation/user/percussion.itely:178 (variable)
+#. Documentation/user/percussion.itely:366 (variable)
+#. input/lsr/jazz-combo-template.ly:247 (variable)
+msgid "down"
+msgstr "bas"
+
 #. @node in Documentation/user/pitches.itely
 #. @subsection in Documentation/user/pitches.itely
 #. @node in Documentation/fr/user/pitches.itely
@@ -3960,6 +4766,7 @@ msgid "fifth"
 msgstr "quinte"
 
 #. @rglos in Documentation/user/pitches.itely
+#. @rglos in Documentation/es/user/pitches.itely
 #. @rglos in Documentation/de/user/pitches.itely
 msgid "quarter tone"
 msgstr "quart de ton"
@@ -4051,13 +4858,13 @@ msgstr "scordatura"
 #. @node in Documentation/de/user/pitches.itely
 #. @unnumberedsubsubsec in Documentation/de/user/pitches.itely
 msgid "Ottava brackets"
-msgstr "Marques d'octavation"
+msgstr "Marques d'octaviation"
 
 #. @rglos in Documentation/user/pitches.itely
 #. @rglos in Documentation/es/user/pitches.itely
 #. @rglos in Documentation/de/user/pitches.itely
 msgid "octavation"
-msgstr "octavation"
+msgstr "octaviation"
 
 #. @node in Documentation/user/pitches.itely
 #. @unnumberedsubsubsec in Documentation/user/pitches.itely
@@ -4159,252 +4966,192 @@ msgstr "Têtes de note à forme variable"
 msgid "Improvisation"
 msgstr "Improvisation"
 
-#. Documentation/user/rhythms.itely:294 (comment)
+#. Documentation/user/rhythms.itely:303 (comment)
 msgid "Alter durations to triplets"
 msgstr "Modification des durées pour obtenir un triolet"
 
-#. Documentation/user/rhythms.itely:296 (comment)
-#. Documentation/user/rhythms.itely:321 (comment)
+#. Documentation/user/rhythms.itely:305 (comment)
+#. Documentation/user/rhythms.itely:332 (comment)
 msgid "Normal durations"
 msgstr "Durées normales"
 
-#. Documentation/user/rhythms.itely:298 (comment)
+#. Documentation/user/rhythms.itely:307 (comment)
 msgid "Double the duration of chord"
 msgstr "Doublement de la durée de l'accord"
 
-#. Documentation/user/rhythms.itely:300 (comment)
+#. Documentation/user/rhythms.itely:309 (comment)
 msgid "Duration of quarter, appears like sixteenth"
 msgstr "Bien que durant une noire, apparaît comme une double croche"
 
-#. Documentation/user/rhythms.itely:323 (comment)
+#. Documentation/user/rhythms.itely:334 (comment)
 msgid "Scale music by *2/3"
 msgstr "Échelonnement de la musique par 2/3"
 
-#. Documentation/user/rhythms.itely:327 (comment)
+#. Documentation/user/rhythms.itely:338 (comment)
 msgid "Scale music by *2"
-msgstr "Échelonnement de la musique par 2"
+msgstr "Échelonnement de la musique au double"
 
-#. Documentation/user/rhythms.itely:412 (comment)
+#. Documentation/user/rhythms.itely:425 (comment)
 msgid "First alternative: following note is tied normally"
 msgstr "Première alternative : la note qui suit est liée normalement"
 
-#. Documentation/user/rhythms.itely:414 (comment)
+#. Documentation/user/rhythms.itely:427 (comment)
 msgid "Second alternative: following note has a repeated tie"
 msgstr "Seconde alternative : la liaison est rappelée"
 
-#. Documentation/user/rhythms.itely:531 (comment)
+#. Documentation/user/rhythms.itely:559 (comment)
 msgid "These two lines are just to prettify this example"
-msgstr "Les deux lignes qui suivent ne sont là que pourillustrer le propos"
+msgstr "Les deux lignes qui suivent ne sont là que pour illustrer le propos"
 
-#. Documentation/user/rhythms.itely:534 (comment)
+#. Documentation/user/rhythms.itely:562 (comment)
 msgid "Print a maxima rest, equal to four breves"
 msgstr "Affiche une maxima, équivalant à quatre double-pauses"
 
-#. Documentation/user/rhythms.itely:536 (comment)
+#. Documentation/user/rhythms.itely:564 (comment)
 msgid "Print a longa rest, equal to two breves"
 msgstr "Affiche une longa, équivalant à deux double-pauses"
 
-#. Documentation/user/rhythms.itely:538 (comment)
+#. Documentation/user/rhythms.itely:566 (comment)
 msgid "Print a breve rest"
 msgstr "Affiche une double-pause"
 
-#. Documentation/user/rhythms.itely:640 (comment)
+#. Documentation/user/rhythms.itely:675 (comment)
 msgid "This is valid input, but does nothing"
 msgstr "Cette entrée est tout à fait valide, mais ne fait rien"
 
-#. Documentation/user/rhythms.itely:666 (comment)
-#. Documentation/user/rhythms.itely:719 (comment)
+#. Documentation/user/rhythms.itely:703 (comment)
+#. Documentation/user/rhythms.itely:758 (comment)
 msgid "Rest measures contracted to single measure"
 msgstr "Contraction des mesures de silence consécutives en une seule"
 
-#. Documentation/user/rhythms.itely:715 (comment)
+#. Documentation/user/rhythms.itely:754 (comment)
+#. input/lsr/avoiding-collisions-with-chord-fingerings.ly:24 (comment)
 msgid "Default behavior"
 msgstr "Comportement par défaut"
 
-#. Documentation/user/rhythms.itely:722 (comment)
+#. Documentation/user/rhythms.itely:761 (comment)
 msgid "Rest measures expanded"
 msgstr "Expansion des mesures de silence"
 
-#. Documentation/user/rhythms.itely:755 (comment)
+#. Documentation/user/rhythms.itely:797 (comment)
 msgid "This fails, as the wrong object name is specified"
 msgstr "Ceci échouera, il y a erreur sur l'objet spécifié"
 
-#. Documentation/user/rhythms.itely:758 (comment)
+#. Documentation/user/rhythms.itely:800 (comment)
 msgid "This is correct and works"
 msgstr "Formulation correcte, qui fonctionnera"
 
-#. Documentation/user/rhythms.itely:880 (comment)
+#. Documentation/user/rhythms.itely:934 (comment)
 msgid "Default style"
 msgstr "Style par défaut"
 
-#. Documentation/user/rhythms.itely:883 (comment)
+#. Documentation/user/rhythms.itely:937 (comment)
 msgid "Change to numeric style"
 msgstr "Adoption du style numérique"
 
-#. Documentation/user/rhythms.itely:887 (comment)
+#. Documentation/user/rhythms.itely:941 (comment)
 msgid "Revert to default style"
 msgstr "Retour au style par défaut"
 
-#. Documentation/user/rhythms.itely:916 (comment)
-msgid "Change time signature but keep 3/4 beaming"
-msgstr ""
-
-#. Documentation/user/rhythms.itely:917 (comment)
-#, fuzzy
-msgid "due to unchanged beatLength"
-msgstr "en raison de la battue"
-
-#. Documentation/user/rhythms.itely:921 (comment)
-msgid "Lose 3/4 beaming now beatLength has changed to 16"
-msgstr ""
-
-#. Documentation/user/rhythms.itely:1044 (comment)
+#. Documentation/user/rhythms.itely:1087 (comment)
 msgid "Show all bar numbers"
 msgstr "Affichage de tous les numéros de mesure"
 
-#. Documentation/user/rhythms.itely:1154 (comment)
+#. Documentation/user/rhythms.itely:1217 (comment)
 msgid "Now each staff has its own time signature."
 msgstr "Chaque portée dispose désormais de sa propre métrique."
 
-#. Documentation/user/rhythms.itely:1571 (comment)
-#, fuzzy
-msgid "auto beam on 1/4 note groups"
-msgstr "ligature automatique basée sur une noire\t"
-
-#. Documentation/user/rhythms.itely:1573 (comment)
-msgid "no defined auto-beaming for this time sig"
-msgstr "pas de ligature automatique définie pour cette métrique"
-
-#. Documentation/user/rhythms.itely:1577 (comment)
-#, fuzzy
-msgid "keep 3/4 beaming"
-msgstr "maintien d'une règle de ligature sur trois noires"
-
-#. Documentation/user/rhythms.itely:1578 (comment)
-msgid "due to beatLength"
-msgstr "en raison de la battue"
-
-#. Documentation/user/rhythms.itely:1580 (comment)
-msgid "beam on 1/8 notes"
-msgstr "ligature basée sur la croche"
+#. Documentation/user/rhythms.itely:1345 (context id)
+msgid "myRhythm"
+msgstr "monRythme"
 
-#. Documentation/user/rhythms.itely:1583 (comment)
-msgid "beam on 3/16, 7/16, 9/16, 12/16"
-msgstr "ligature sur les 3ème, 7ème, 9ème et 12ème double croche"
-
-#. Documentation/user/rhythms.itely:1612 (comment)
-msgid "Set beam sub-group length to an eighth note"
-msgstr "Subdivision des ligatures à la croche"
-
-#. Documentation/user/rhythms.itely:1615 (comment)
-msgid "Set beam sub-group length to a sixteenth note"
-msgstr "Subdivision des ligatures à la double-croche"
-
-# je ne comprends pas la différence entre les 2 mesures -JCM
-#. Documentation/user/rhythms.itely:1730 (comment)
+#. Documentation/user/rhythms.itely:1713 (comment)
 msgid "end 1/16 beams for all time signatures at the 1/16 moment"
 msgstr ""
-"fin de ligature des doubles croches, quelle que soit la métrique, sur la "
-"base d'une double croche"
+"fin des ligatures de doubles croches, quelle que soit la métrique, au moment "
+"1/16"
 
-#. Documentation/user/rhythms.itely:1734 (comment)
+#. Documentation/user/rhythms.itely:1717 (comment)
 msgid "end 1/32 beams for all time signatures at the 1/16 moment"
 msgstr ""
-"ligature les triples croches, quelle que soit la métrique, sur la base d'une "
-"double croche"
+"fin des ligatures de triples croches, quelle que soit la métrique, au moment "
+"1/16"
 
-#. Documentation/user/rhythms.itely:1744 (comment)
+#. Documentation/user/rhythms.itely:1727 (comment)
 msgid "end beams of all durations in 5/8 time signature at the 2/8 moment"
 msgstr ""
 "fin de ligature, pour une métrique à 5/8, sur la deuxième croche de la mesure"
 
-#. Documentation/user/rhythms.itely:1759 (comment)
+#. Documentation/user/rhythms.itely:1742 (comment)
 msgid "rhythm 3-1-1-2"
-msgstr ""
+msgstr "subdivision 3-1-1-2"
 
-#. Documentation/user/rhythms.itely:1760 (comment)
+#. Documentation/user/rhythms.itely:1743 (comment)
 msgid "Context not specified - does not work correctly"
-msgstr ""
+msgstr "Contexte non spécifié -- cela ne fonctionne pas"
 
-#. Documentation/user/rhythms.itely:1766 (comment)
+#. Documentation/user/rhythms.itely:1749 (comment)
 msgid "Works correctly with context specified"
-msgstr ""
+msgstr "Fonctionne car le contexte est spécifié"
 
-#. Documentation/user/rhythms.itely:1802 (comment)
+#. Documentation/user/rhythms.itely:1782 (comment)
 msgid "undo a rule ending 1/16 beams in 4/4 time at 1/4 moment"
 msgstr ""
 "annulation de la règle de fin de ligature des doubles croches, dans une "
-"mesure à 4/4, sur la base de la première noire"
+"mesure à 4/4, au moment de la première noire"
 
-#. Documentation/user/rhythms.itely:1815 (comment)
+#. Documentation/user/rhythms.itely:1795 (comment)
 msgid "this won't revert it!"
 msgstr "ceci n'est pas en concordance"
 
-#. Documentation/user/rhythms.itely:1817 (comment)
+#. Documentation/user/rhythms.itely:1797 (comment)
 msgid "this will"
 msgstr "ceci est conforme"
 
-#. Documentation/user/rhythms.itely:1832 (comment)
-msgid "rhythm 2-3-2"
-msgstr ""
-
-#. Documentation/user/rhythms.itely:1871 (comment)
-#, fuzzy
-msgid "Default beaming"
-msgstr "Comportement par défaut"
-
-#. Documentation/user/rhythms.itely:1874 (comment)
-msgid "Revert default values in scm/auto-beam.scm for 12/8 time"
-msgstr ""
-
-#. Documentation/user/rhythms.itely:1880 (comment)
-msgid "Set new values for beam endings"
-msgstr ""
-
-#. Documentation/user/rhythms.itely:2002 (comment)
+#. Documentation/user/rhythms.itely:1942 (comment)
 msgid "revert to non-feathered beams"
 msgstr "retour à des liens de croches rectilignes"
 
-#. Documentation/user/rhythms.itely:2225 (comment)
-#. Documentation/user/rhythms.itely:2241 (comment)
+#. Documentation/user/rhythms.itely:2182 (comment)
+#. Documentation/user/rhythms.itely:2198 (comment)
 msgid "Permit first bar number to be printed"
-msgstr "Le numéro de la première mesure sera affiché"
+msgstr "Le numéro de la première mesure est imprimé"
 
-#. Documentation/user/rhythms.itely:2242 (comment)
-#. Documentation/user/rhythms.itely:2290 (comment)
+#. Documentation/user/rhythms.itely:2199 (comment)
+#. Documentation/user/rhythms.itely:2247 (comment)
 msgid "Print a bar number every second measure"
 msgstr "Affichage du numéro toutes les deux mesures"
 
-#. Documentation/user/rhythms.itely:2258 (comment)
+#. Documentation/user/rhythms.itely:2215 (comment)
 msgid "Prevent bar numbers at the end of a line and permit them elsewhere"
 msgstr "Affichage du numéro à chaque mesure, hormis en fin de ligne"
 
-#. Documentation/user/rhythms.itely:2262 (comment)
-#. Documentation/user/rhythms.itely:2288 (comment)
+#. Documentation/user/rhythms.itely:2219 (comment)
+#. Documentation/user/rhythms.itely:2245 (comment)
 msgid "Increase the size of the bar number by 2"
 msgstr "Augmentation de la taille des numéros de mesure au double"
 
-#. Documentation/user/rhythms.itely:2266 (comment)
+#. Documentation/user/rhythms.itely:2223 (comment)
 msgid "Draw a box round the following bar number(s)"
 msgstr "Numéros de mesure encadrés dans un rectangle"
 
-#. Documentation/user/rhythms.itely:2271 (comment)
+#. Documentation/user/rhythms.itely:2228 (comment)
 msgid "Draw a circle round the following bar number(s)"
 msgstr "Numéros de mesure encadrés dans un cercle"
 
-#. Documentation/user/rhythms.itely:2293 (comment)
+#. Documentation/user/rhythms.itely:2250 (comment)
 msgid "Center-align bar numbers"
 msgstr "Alignement au centre des numéros de mesure"
 
-#. Documentation/user/rhythms.itely:2296 (comment)
+#. Documentation/user/rhythms.itely:2253 (comment)
 msgid "Right-align bar numbers"
 msgstr "Alignement à droite des numéros de mesure"
 
-#. Documentation/user/rhythms.itely:2399 (variable)
+#. Documentation/user/rhythms.itely:2347 (variable)
 msgid "pipeSymbol"
 msgstr "pipeSymbole"
 
-#. Documentation/user/rhythms.itely:2786 (variable)
+#. Documentation/user/rhythms.itely:2752 (variable)
 msgid "MyCadenza"
 msgstr "MaCadence"
 
@@ -4443,26 +5190,37 @@ msgstr "Durées"
 
 #. @rglos in Documentation/user/rhythms.itely
 #. @rglos in Documentation/es/user/rhythms.itely
+#. @rglos in Documentation/de/user/rhythms.itely
 msgid "breve"
 msgstr "brève"
 
 #. @rglos in Documentation/user/rhythms.itely
 #. @rglos in Documentation/es/user/rhythms.itely
+#. @rglos in Documentation/de/user/rhythms.itely
 msgid "longa"
 msgstr "longue"
 
 #. @rglos in Documentation/user/rhythms.itely
 #. @rglos in Documentation/es/user/rhythms.itely
+#. @rglos in Documentation/de/user/rhythms.itely
+msgid "maxima"
+msgstr "mamima"
+
+#. @rglos in Documentation/user/rhythms.itely
+#. @rglos in Documentation/es/user/rhythms.itely
+#. @rglos in Documentation/de/user/rhythms.itely
 msgid "Duration names notes and rests"
 msgstr "Noms des notes et silences selon leur durée"
 
 #. @rglos in Documentation/user/rhythms.itely
 #. @rglos in Documentation/es/user/rhythms.itely
+#. @rglos in Documentation/de/user/rhythms.itely
 msgid "tuplet"
 msgstr "nolet"
 
 #. @rglos in Documentation/user/rhythms.itely
 #. @rglos in Documentation/es/user/rhythms.itely
+#. @rglos in Documentation/de/user/rhythms.itely
 msgid "polymetric"
 msgstr "polymétrique"
 
@@ -4480,6 +5238,7 @@ msgstr "Changement d'échelle des durées"
 #. @rglos in Documentation/user/rhythms.itely
 #. @rglos in Documentation/fr/user/rhythms.itely
 #. @rglos in Documentation/es/user/rhythms.itely
+#. @rglos in Documentation/de/user/rhythms.itely
 msgid "laissez vibrer"
 msgstr "laissez vibrer"
 
@@ -4518,6 +5277,7 @@ msgstr "Silences valant une mesure"
 
 #. @rglos in Documentation/user/rhythms.itely
 #. @rglos in Documentation/es/user/rhythms.itely
+#. @rglos in Documentation/de/user/rhythms.itely
 msgid "multi-measure rest"
 msgstr "silence multi-mesures"
 
@@ -4556,6 +5316,7 @@ msgstr "Musique sans métrique"
 
 #. @rglos in Documentation/user/rhythms.itely
 #. @rglos in Documentation/es/user/rhythms.itely
+#. @rglos in Documentation/de/user/rhythms.itely
 msgid "cadenza"
 msgstr "cadence"
 
@@ -4572,11 +5333,13 @@ msgstr "Notation polymétrique"
 
 #. @rglos in Documentation/user/rhythms.itely
 #. @rglos in Documentation/es/user/rhythms.itely
+#. @rglos in Documentation/de/user/rhythms.itely
 msgid "polymetric time signature"
 msgstr "métrique composite"
 
 #. @rglos in Documentation/user/rhythms.itely
 #. @rglos in Documentation/es/user/rhythms.itely
+#. @rglos in Documentation/de/user/rhythms.itely
 msgid "meter"
 msgstr "métrique"
 
@@ -4877,6 +5640,7 @@ msgstr "Signes de respiration"
 #. @rglos in Documentation/user/expressive.itely
 #. @rglos in Documentation/es/user/expressive.itely
 #. @rglos in Documentation/de/user/expressive.itely
+#. input/lsr/breathing-signs.ly:35 (comment)
 msgid "caesura"
 msgstr "césure"
 
@@ -4965,7 +5729,8 @@ msgstr "Trilles"
 msgid "trill"
 msgstr "trille"
 
-#. Documentation/user/repeats.itely:298 (variable)
+#. Documentation/user/repeats.itely:299 (variable)
+#. input/lsr/volta-text-markup-using-repeatcommands.ly:21 (variable)
 msgid "voltaAdLib"
 msgstr "voltaAdLib"
 
@@ -5071,27 +5836,27 @@ msgstr "simile"
 msgid "Tremolo repeats"
 msgstr "Répétition en trémolo"
 
-#. Documentation/user/simultaneous.itely:93 (comment)
+#. Documentation/user/simultaneous.itely:94 (comment)
 msgid "explicit single voice"
 msgstr "voix unique explicite"
 
-#. Documentation/user/simultaneous.itely:99 (comment)
+#. Documentation/user/simultaneous.itely:100 (comment)
 msgid "single first note"
 msgstr "première note unique"
 
-#. Documentation/user/simultaneous.itely:111 (comment)
+#. Documentation/user/simultaneous.itely:112 (comment)
 msgid "no single first note"
 msgstr "pas de première note unique"
 
-#. Documentation/user/simultaneous.itely:617 (variable)
+#. Documentation/user/simultaneous.itely:622 (variable)
 msgid "instrumentOne"
 msgstr "instrumentUn"
 
-#. Documentation/user/simultaneous.itely:625 (variable)
+#. Documentation/user/simultaneous.itely:630 (variable)
 msgid "instrumentTwo"
 msgstr "instrumentDeux"
 
-#. Documentation/user/simultaneous.itely:801 (comment)
+#. Documentation/user/simultaneous.itely:807 (comment)
 msgid "Bar 3 ..."
 msgstr "Mesure 3..."
 
@@ -5214,6 +5979,8 @@ msgstr "a due"
 #. @rglos in Documentation/user/simultaneous.itely
 #. @rglos in Documentation/es/user/simultaneous.itely
 #. @rglos in Documentation/de/user/simultaneous.itely
+#. input/lsr/flamenco-notation.ly:136 (variable)
+#. input/lsr/flamenco-notation.ly:233 (context id)
 msgid "part"
 msgstr "partie"
 
@@ -5226,28 +5993,26 @@ msgstr "partie"
 #. @node in Documentation/de/user/simultaneous.itely
 #. @unnumberedsubsubsec in Documentation/de/user/simultaneous.itely
 msgid "Writing music in parallel"
-msgstr "Saisie la musique en parallèle"
+msgstr "Saisie de musique en parallèle"
 
-#. Documentation/user/staff.itely:1069 (variable)
-#. Documentation/user/staff.itely:1084 (variable)
-#. Documentation/user/staff.itely:1238 (variable)
+#. Documentation/user/staff.itely:1085 (variable)
+#. Documentation/user/staff.itely:1100 (variable)
+#. Documentation/user/staff.itely:1265 (variable)
 msgid "flute"
 msgstr "flute"
 
-#. Documentation/user/staff.itely:1100 (variable)
-msgid "clarinet"
-msgstr "clarinette"
-
-#. Documentation/user/staff.itely:1189 (variable)
-#. Documentation/user/staff.itely:1210 (variable)
+#. Documentation/user/staff.itely:1207 (variable)
+#. Documentation/user/staff.itely:1228 (variable)
 msgid "oboe"
 msgstr "hautbois"
 
-#. Documentation/user/staff.itely:1259 (variable)
+#. Documentation/user/staff.itely:1286 (variable)
+#. Documentation/user/staff.itely:1302 (context id)
 msgid "piccolo"
 msgstr "piccolo"
 
-#. Documentation/user/staff.itely:1267 (variable)
+#. Documentation/user/staff.itely:1294 (variable)
+#. Documentation/user/staff.itely:1303 (context id)
 msgid "cbassoon"
 msgstr "cbasson"
 
@@ -5279,16 +6044,20 @@ msgstr "Gravure des portées"
 #. @unnumberedsubsubsec in Documentation/fr/user/staff.itely
 #. @node in Documentation/es/user/staff.itely
 #. @unnumberedsubsubsec in Documentation/es/user/staff.itely
+#. @node in Documentation/de/user/staff.itely
+#. @unnumberedsubsubsec in Documentation/de/user/staff.itely
 msgid "Instantiating new staves"
 msgstr "Initialisation de nouvelles portées"
 
 #. @rglos in Documentation/user/staff.itely
 #. @rglos in Documentation/es/user/staff.itely
+#. @rglos in Documentation/de/user/staff.itely
 msgid "staff"
 msgstr "portée"
 
 #. @rglos in Documentation/user/staff.itely
 #. @rglos in Documentation/es/user/staff.itely
+#. @rglos in Documentation/de/user/staff.itely
 msgid "staves"
 msgstr "portées"
 
@@ -5298,16 +6067,20 @@ msgstr "portées"
 #. @unnumberedsubsubsec in Documentation/fr/user/staff.itely
 #. @node in Documentation/es/user/staff.itely
 #. @unnumberedsubsubsec in Documentation/es/user/staff.itely
+#. @node in Documentation/de/user/staff.itely
+#. @unnumberedsubsubsec in Documentation/de/user/staff.itely
 msgid "Grouping staves"
 msgstr "Regroupement de portées"
 
 #. @rglos in Documentation/user/staff.itely
 #. @rglos in Documentation/es/user/staff.itely
+#. @rglos in Documentation/de/user/staff.itely
 msgid "bracket"
 msgstr "crochet"
 
 #. @rglos in Documentation/user/staff.itely
 #. @rglos in Documentation/es/user/staff.itely
+#. @rglos in Documentation/de/user/staff.itely
 msgid "grand staff"
 msgstr "système"
 
@@ -5317,6 +6090,8 @@ msgstr "système"
 #. @unnumberedsubsubsec in Documentation/fr/user/staff.itely
 #. @node in Documentation/es/user/staff.itely
 #. @unnumberedsubsubsec in Documentation/es/user/staff.itely
+#. @node in Documentation/de/user/staff.itely
+#. @unnumberedsubsubsec in Documentation/de/user/staff.itely
 msgid "Nested staff groups"
 msgstr "Imbrication de regroupements de portées"
 
@@ -5326,6 +6101,8 @@ msgstr "Imbrication de regroupements de portées"
 #. @subsection in Documentation/fr/user/staff.itely
 #. @node in Documentation/es/user/staff.itely
 #. @subsection in Documentation/es/user/staff.itely
+#. @node in Documentation/de/user/staff.itely
+#. @subsection in Documentation/de/user/staff.itely
 msgid "Modifying single staves"
 msgstr "Modification de portées individuelles"
 
@@ -5342,11 +6119,13 @@ msgstr "Symbole de la portée"
 
 #. @rglos in Documentation/user/staff.itely
 #. @rglos in Documentation/es/user/staff.itely
+#. @rglos in Documentation/de/user/staff.itely
 msgid "line"
 msgstr "ligne"
 
 #. @rglos in Documentation/user/staff.itely
 #. @rglos in Documentation/es/user/staff.itely
+#. @rglos in Documentation/de/user/staff.itely
 msgid "ledger line"
 msgstr "ligne supplémentaire"
 
@@ -5356,11 +6135,14 @@ msgstr "ligne supplémentaire"
 #. @unnumberedsubsubsec in Documentation/fr/user/staff.itely
 #. @node in Documentation/es/user/staff.itely
 #. @unnumberedsubsubsec in Documentation/es/user/staff.itely
+#. @node in Documentation/de/user/staff.itely
+#. @unnumberedsubsubsec in Documentation/de/user/staff.itely
 msgid "Ossia staves"
 msgstr "Portées d'ossia"
 
 #. @rglos in Documentation/user/staff.itely
 #. @rglos in Documentation/es/user/staff.itely
+#. @rglos in Documentation/de/user/staff.itely
 msgid "Frenched staff"
 msgstr "Portée à la française"
 
@@ -5399,21 +6181,25 @@ msgstr "Indications métronomiques"
 
 #. @rglos in Documentation/user/staff.itely
 #. @rglos in Documentation/es/user/staff.itely
+#. @rglos in Documentation/de/user/staff.itely
 msgid "metronome"
 msgstr "métronome"
 
 #. @rglos in Documentation/user/staff.itely
 #. @rglos in Documentation/es/user/staff.itely
+#. @rglos in Documentation/de/user/staff.itely
 msgid "metronomic indication"
 msgstr "indication métronomique"
 
 #. @rglos in Documentation/user/staff.itely
 #. @rglos in Documentation/es/user/staff.itely
+#. @rglos in Documentation/de/user/staff.itely
 msgid "tempo indication"
 msgstr "indication du tempo"
 
 #. @rglos in Documentation/user/staff.itely
 #. @rglos in Documentation/es/user/staff.itely
+#. @rglos in Documentation/de/user/staff.itely
 msgid "metronome mark"
 msgstr "marque métronomique"
 
@@ -5454,7 +6240,7 @@ msgstr "Citation d'autres voix"
 msgid "Formatting cue notes"
 msgstr "Mise en forme d'une citation"
 
-#. Documentation/user/editorial.itely:321 (comment)
+#. Documentation/user/editorial.itely:326 (comment)
 msgid "this is deliberate nonsense; note that the stems remain black"
 msgstr "pour cette erreur manifeste, notez que les hampes restent en noir"
 
@@ -5590,7 +6376,7 @@ msgstr "Quadrillage temporel"
 msgid "Analysis brackets"
 msgstr "Crochets d'analyse"
 
-#. Documentation/user/text.itely:418 (variable)
+#. Documentation/user/text.itely:421 (variable)
 msgid "allegro"
 msgstr "allegro"
 
@@ -5678,7 +6464,7 @@ msgstr "Mise en forme du texte"
 #. @node in Documentation/de/user/text.itely
 #. @unnumberedsubsubsec in Documentation/de/user/text.itely
 msgid "Text markup introduction"
-msgstr "Introduction aux étiquettes de texte"
+msgstr "Introduction au formatage de texte"
 
 #. @node in Documentation/user/text.itely
 #. @unnumberedsubsubsec in Documentation/user/text.itely
@@ -5740,6 +6526,8 @@ msgstr "Fontes"
 #. @unnumberedsubsubsec in Documentation/user/text.itely
 #. @node in Documentation/es/user/text.itely
 #. @unnumberedsubsubsec in Documentation/es/user/text.itely
+#. @node in Documentation/de/user/text.itely
+#. @unnumberedsubsubsec in Documentation/de/user/text.itely
 msgid "Fonts explained"
 msgstr "Tout savoir sur les fontes"
 
@@ -5772,61 +6560,74 @@ msgstr "Choix des fontes par défaut"
 msgid "Specialist notation"
 msgstr "Notation spécialisée"
 
-#. Documentation/user/vocal.itely:509 (comment)
-msgid "not recommended: left aligns syllables "
-msgstr "peu recommandable : les paroles sont alignées à gauche"
-
 #. Documentation/user/vocal.itely:512 (comment)
+msgid "not recommended: left aligns syllables"
+msgstr "peu recommandable : les syllabes sont alignées à gauche"
+
+#. Documentation/user/vocal.itely:515 (comment)
 msgid "wrong: durations needed"
 msgstr "mauvais : il manque les durées"
 
-#. Documentation/user/vocal.itely:515 (comment)
+#. Documentation/user/vocal.itely:518 (comment)
 msgid "correct"
-msgstr "excellent"
+msgstr "correct"
+
+#. Documentation/user/vocal.itely:667 (context id)
+msgid "lala"
+msgstr "global"
 
-#. Documentation/user/vocal.itely:847 (variable)
+#. Documentation/user/vocal.itely:808 (context id)
+msgid "splitpart"
+msgstr "partieSeparee"
+
+#. Documentation/user/vocal.itely:853 (variable)
 msgid "voice"
 msgstr "voix"
 
-#. Documentation/user/vocal.itely:854 (variable)
+#. Documentation/user/vocal.itely:860 (variable)
+#. input/lsr/formatting-lyrics-syllables.ly:22 (variable)
 msgid "lyr"
 msgstr "paroles"
 
-#. Documentation/user/vocal.itely:1112 (comment)
-msgid "applies to \\\"fas\\\""
-msgstr "s'applique à \\\"fas\\\""
+#. Documentation/user/vocal.itely:1059 (context id)
+msgid "tune"
+msgstr "melodie"
+
+#. Documentation/user/vocal.itely:1101 (context id)
+msgid "lahlah"
+msgstr "lala"
 
-#. Documentation/user/vocal.itely:1282 (comment)
-msgid "moves the column off the left margin; "
+#. Documentation/user/vocal.itely:1284 (comment)
+msgid "moves the column off the left margin;"
 msgstr "décalage par rapport à la marge de gauche"
 
-#. Documentation/user/vocal.itely:1283 (comment)
+#. Documentation/user/vocal.itely:1285 (comment)
 msgid "can be removed if space on the page is tight"
 msgstr "peut être supprimé si l'espace sur la page est réduit"
 
-#. Documentation/user/vocal.itely:1291 (comment)
-#. Documentation/user/vocal.itely:1309 (comment)
+#. Documentation/user/vocal.itely:1293 (comment)
+#. Documentation/user/vocal.itely:1311 (comment)
 msgid "adds vertical spacing between verses"
 msgstr "ajout d'espace vertical entre les couplets"
 
-#. Documentation/user/vocal.itely:1299 (comment)
-msgid "adds horizontal spacing between columns; "
+#. Documentation/user/vocal.itely:1301 (comment)
+msgid "adds horizontal spacing between columns;"
 msgstr "ajout d'espace horizontal entre les colonnes"
 
-#. Documentation/user/vocal.itely:1300 (comment)
-msgid "if they are still too close, add more \\\" \\\" pairs  "
+#. Documentation/user/vocal.itely:1302 (comment)
+msgid "if they are still too close, add more \\\" \\\" pairs"
 msgstr ""
 "si elles sont toujours trop proches, ajouter d'autres paires de \\\" \\\""
 
-#. Documentation/user/vocal.itely:1301 (comment)
+#. Documentation/user/vocal.itely:1303 (comment)
 msgid "until the result looks good"
 msgstr "jusqu'à ce que le résultat soit acceptable."
 
-#. Documentation/user/vocal.itely:1317 (comment)
-msgid "gives some extra space on the right margin; "
+#. Documentation/user/vocal.itely:1319 (comment)
+msgid "gives some extra space on the right margin;"
 msgstr "décalage par rapport à la marge de droite"
 
-#. Documentation/user/vocal.itely:1318 (comment)
+#. Documentation/user/vocal.itely:1320 (comment)
 msgid "can be removed if page space is tight"
 msgstr "peut être supprimé si l'espace sur la page est réduit"
 
@@ -5916,7 +6717,7 @@ msgstr "Chants"
 #. @node in Documentation/de/user/vocal.itely
 #. @unnumberedsubsubsec in Documentation/de/user/vocal.itely
 msgid "Ancient vocal music"
-msgstr "Musique vocale anciennes"
+msgstr "Musique vocale ancienne"
 
 #. @node in Documentation/user/vocal.itely
 #. @subsection in Documentation/user/vocal.itely
@@ -6140,7 +6941,6 @@ msgstr "Rythme différent selon le couplet"
 
 #. @subsubheading in Documentation/user/vocal.itely
 #. @subsubheading in Documentation/es/user/vocal.itely
-#. @subsubheading in Documentation/de/user/vocal.itely
 msgid "Ignoring melismata"
 msgstr "Désactivation du traitement des mélismes"
 
@@ -6172,25 +6972,37 @@ msgstr "Paroles en fin de partition"
 msgid "Printing stanzas at the end in multiple columns"
 msgstr "Paroles sur plusieurs colonnes en fin de partition"
 
-#. Documentation/user/keyboards.itely:182 (comment)
+#. Documentation/user/keyboards.itely:187 (comment)
 msgid "keep staff alive"
-msgstr "maintien la portée active"
+msgstr "maintient la portée active"
+
+#. Documentation/user/keyboards.itely:275 (context id)
+msgid "melOne"
+msgstr "melodieUn"
+
+#. Documentation/user/keyboards.itely:344 (context id)
+#. Documentation/user/fretted-strings.itely:247 (context id)
+#. input/lsr/adding-fingerings-to-tablatures.ly:24 (variable)
+#. input/lsr/jazz-combo-template.ly:205 (context id)
+#. input/lsr/jazz-combo-template.ly:214 (context id)
+msgid "two"
+msgstr "deux"
 
-#. Documentation/user/keyboards.itely:385 (comment)
+#. Documentation/user/keyboards.itely:398 (comment)
 msgid "stems may overlap the other staff"
 msgstr "autorise les hampes à déborder sur l'autre portée"
 
-#. Documentation/user/keyboards.itely:387 (comment)
+#. Documentation/user/keyboards.itely:400 (comment)
 msgid "extend the stems to reach other other staff"
 msgstr "étend les hampes pour qu'elles atteignent l'autre portée"
 
-#. Documentation/user/keyboards.itely:389 (comment)
+#. Documentation/user/keyboards.itely:402 (comment)
 msgid "do not print extra flags"
 msgstr "pas de crochet superflu"
 
-#. Documentation/user/keyboards.itely:391 (comment)
+#. Documentation/user/keyboards.itely:404 (comment)
 msgid "prevent beaming as needed"
-msgstr "évite la ligature telle que devrait intervenir"
+msgstr "on empêche la formation de la ligature automatique"
 
 #. @node in Documentation/user/keyboards.itely
 #. @section in Documentation/user/keyboards.itely
@@ -6200,7 +7012,6 @@ msgstr "évite la ligature telle que devrait intervenir"
 #. @section in Documentation/es/user/keyboards.itely
 #. @node in Documentation/de/user/keyboards.itely
 #. @section in Documentation/de/user/keyboards.itely
-#, fuzzy
 msgid "Keyboard and other multi-staff instruments"
 msgstr "Instruments utilisant des portées multiples"
 
@@ -6325,6 +7136,28 @@ msgstr "Symboles de jeux"
 msgid "Harp"
 msgstr "Harpe"
 
+#. @node in Documentation/user/keyboards.itely
+#. @unnumberedsubsubsec in Documentation/user/keyboards.itely
+#. @node in Documentation/fr/user/keyboards.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/keyboards.itely
+#. @node in Documentation/es/user/keyboards.itely
+#. @unnumberedsubsubsec in Documentation/es/user/keyboards.itely
+#. @node in Documentation/de/user/keyboards.itely
+#. @unnumberedsubsubsec in Documentation/de/user/keyboards.itely
+msgid "References for harps"
+msgstr "Généralités sur la harpe"
+
+#. @node in Documentation/user/keyboards.itely
+#. @unnumberedsubsubsec in Documentation/user/keyboards.itely
+#. @node in Documentation/fr/user/keyboards.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/keyboards.itely
+#. @node in Documentation/es/user/keyboards.itely
+#. @unnumberedsubsubsec in Documentation/es/user/keyboards.itely
+#. @node in Documentation/de/user/keyboards.itely
+#. @unnumberedsubsubsec in Documentation/de/user/keyboards.itely
+msgid "Harp pedals"
+msgstr "Pédales de harpe"
+
 #. @node in Documentation/user/unfretted-strings.itely
 #. @section in Documentation/user/unfretted-strings.itely
 #. @node in Documentation/fr/user/unfretted-strings.itely
@@ -6382,11 +7215,14 @@ msgstr "Harmoniques"
 
 #. @rglos in Documentation/user/unfretted-strings.itely
 #. @rglos in Documentation/es/user/unfretted-strings.itely
+#. @rglos in Documentation/de/user/unfretted-strings.itely
 msgid "harmonics"
 msgstr "harmoniques"
 
 #. @node in Documentation/user/unfretted-strings.itely
 #. @node in Documentation/es/user/unfretted-strings.itely
+#. @node in Documentation/de/user/unfretted-strings.itely
+#. @unnumberedsubsubsec in Documentation/de/user/unfretted-strings.itely
 msgid "Snap (Bartok) pizzicato"
 msgstr "Pizzicato Bartok"
 
@@ -6394,41 +7230,48 @@ msgstr "Pizzicato Bartok"
 #. @node in Documentation/fr/user/unfretted-strings.itely
 #. @unnumberedsubsubsec in Documentation/fr/user/unfretted-strings.itely
 #. @unnumberedsubsubsec in Documentation/es/user/unfretted-strings.itely
-#. @node in Documentation/de/user/unfretted-strings.itely
-#. @unnumberedsubsubsec in Documentation/de/user/unfretted-strings.itely
 msgid "Snap (Bartók) pizzicato"
 msgstr "Pizzicato Bartók"
 
-#. Documentation/user/fretted-strings.itely:238 (variable)
+#. Documentation/user/fretted-strings.itely:243 (variable)
 msgid "melodia"
 msgstr "melodie"
 
-#. Documentation/user/fretted-strings.itely:321 (variable)
+#. Documentation/user/fretted-strings.itely:248 (context id)
+msgid "shared"
+msgstr "partage"
+
+#. Documentation/user/fretted-strings.itely:249 (context id)
+msgid "solo"
+msgstr "solo"
+
+#. Documentation/user/fretted-strings.itely:326 (variable)
 msgid "mynotes"
 msgstr "mesnotes"
 
-#. Documentation/user/fretted-strings.itely:448 (comment)
+#. Documentation/user/fretted-strings.itely:453 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:29 (comment)
 msgid "A chord for ukelele"
 msgstr "Un accord pour ukulele"
 
-#. Documentation/user/fretted-strings.itely:768 (variable)
-#. Documentation/user/fretted-strings.itely:791 (variable)
-#. Documentation/user/fretted-strings.itely:820 (variable)
-#. Documentation/user/fretted-strings.itely:849 (variable)
-#. Documentation/user/fretted-strings.itely:873 (variable)
-#. Documentation/user/fretted-strings.itely:917 (variable)
+#. Documentation/user/fretted-strings.itely:785 (variable)
+#. Documentation/user/fretted-strings.itely:808 (variable)
+#. Documentation/user/fretted-strings.itely:837 (variable)
+#. Documentation/user/fretted-strings.itely:868 (variable)
+#. Documentation/user/fretted-strings.itely:892 (variable)
+#. Documentation/user/fretted-strings.itely:940 (variable)
 msgid "mychords"
 msgstr "mesaccords"
 
-#. Documentation/user/fretted-strings.itely:795 (variable)
+#. Documentation/user/fretted-strings.itely:812 (variable)
 msgid "mychordlist"
 msgstr "malistedaccords"
 
-#. Documentation/user/fretted-strings.itely:904 (comment)
+#. Documentation/user/fretted-strings.itely:927 (comment)
 msgid "add a new chord shape"
 msgstr "ajout d'un nouveau canevas d'accord"
 
-#. Documentation/user/fretted-strings.itely:908 (comment)
+#. Documentation/user/fretted-strings.itely:931 (comment)
 msgid "add some new chords based on the power chord shape"
 msgstr "ajout de nouveaux accords basés sur le nouveau canevas"
 
@@ -6511,15 +7354,23 @@ msgstr "Tablatures sous forme d'étiquette"
 
 #. @node in Documentation/user/fretted-strings.itely
 #. @unnumberedsubsubsec in Documentation/user/fretted-strings.itely
+#. @node in Documentation/fr/user/fretted-strings.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/fretted-strings.itely
 #. @node in Documentation/es/user/fretted-strings.itely
 #. @unnumberedsubsubsec in Documentation/es/user/fretted-strings.itely
+#. @node in Documentation/de/user/fretted-strings.itely
+#. @unnumberedsubsubsec in Documentation/de/user/fretted-strings.itely
 msgid "Predefined fret diagrams"
 msgstr "Tablatures prédéfinies"
 
 #. @node in Documentation/user/fretted-strings.itely
 #. @unnumberedsubsubsec in Documentation/user/fretted-strings.itely
+#. @node in Documentation/fr/user/fretted-strings.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/fretted-strings.itely
 #. @node in Documentation/es/user/fretted-strings.itely
 #. @unnumberedsubsubsec in Documentation/es/user/fretted-strings.itely
+#. @node in Documentation/de/user/fretted-strings.itely
+#. @unnumberedsubsubsec in Documentation/de/user/fretted-strings.itely
 msgid "Automatic fret diagrams"
 msgstr "Tablatures automatiques"
 
@@ -6589,16 +7440,6 @@ msgstr "Banjo"
 msgid "Banjo tablatures"
 msgstr "Tablatures pour banjo"
 
-#. Documentation/user/percussion.itely:175 (variable)
-#. Documentation/user/percussion.itely:365 (variable)
-msgid "up"
-msgstr "haut"
-
-#. Documentation/user/percussion.itely:178 (variable)
-#. Documentation/user/percussion.itely:366 (variable)
-msgid "down"
-msgstr "bas"
-
 #. Documentation/user/percussion.itely:385 (comment)
 msgid "These lines define the position of the woodblocks in the stave;"
 msgstr ""
@@ -6627,11 +7468,8 @@ msgid "It also defines the positions of the two lines."
 msgstr "Nous définissons aussi la position de ces deux lignes."
 
 #. Documentation/user/percussion.itely:396 (comment)
-#, fuzzy
 msgid "This is neccessary; if not entered, the barline would be too short!"
-msgstr ""
-"Mention rendue nécessaire, afin d'obtenir des barres de mesure de hauteur "
-"suffisante."
+msgstr "nécessaire afin d'obtenir des barres de mesure assez longues"
 
 #. Documentation/user/percussion.itely:403 (comment)
 msgid "with this you load your new drum style table"
@@ -6713,6 +7551,8 @@ msgstr "Notation de base pour percussions"
 #. @unnumberedsubsubsec in Documentation/user/percussion.itely
 #. @node in Documentation/es/user/percussion.itely
 #. @unnumberedsubsubsec in Documentation/es/user/percussion.itely
+#. @node in Documentation/de/user/percussion.itely
+#. @unnumberedsubsubsec in Documentation/de/user/percussion.itely
 msgid "Drum rolls"
 msgstr "Roulements de tambour"
 
@@ -6720,6 +7560,8 @@ msgstr "Roulements de tambour"
 #. @unnumberedsubsubsec in Documentation/user/percussion.itely
 #. @node in Documentation/es/user/percussion.itely
 #. @unnumberedsubsubsec in Documentation/es/user/percussion.itely
+#. @node in Documentation/de/user/percussion.itely
+#. @unnumberedsubsubsec in Documentation/de/user/percussion.itely
 msgid "Pitched percussion"
 msgstr "Percussions avec hauteurs"
 
@@ -6732,14 +7574,16 @@ msgstr "Percussions avec hauteurs"
 #. @node in Documentation/de/user/percussion.itely
 #. @unnumberedsubsubsec in Documentation/de/user/percussion.itely
 msgid "Percussion staves"
-msgstr "Portée de percussion"
+msgstr "Portées de percussion"
 
 #. @node in Documentation/user/percussion.itely
 #. @unnumberedsubsubsec in Documentation/user/percussion.itely
 #. @node in Documentation/es/user/percussion.itely
 #. @unnumberedsubsubsec in Documentation/es/user/percussion.itely
+#. @node in Documentation/de/user/percussion.itely
+#. @unnumberedsubsubsec in Documentation/de/user/percussion.itely
 msgid "Custom percussion staves"
-msgstr "Portéec de percussion personnalisées"
+msgstr "Portées de percussion personnalisées"
 
 #. @node in Documentation/user/percussion.itely
 #. @unnumberedsubsubsec in Documentation/user/percussion.itely
@@ -6818,21 +7662,21 @@ msgstr "Définitions pour la cornemuse"
 msgid "Bagpipe example"
 msgstr "Exemple pour la cornemuse"
 
-#. Documentation/user/chords.itely:654 (variable)
+#. Documentation/user/chords.itely:669 (variable)
 msgid "myChords"
 msgstr "mesAccords"
 
-#. Documentation/user/chords.itely:981 (comment)
-#. Documentation/user/chords.itely:1002 (comment)
+#. Documentation/user/chords.itely:999 (comment)
+#. Documentation/user/chords.itely:1020 (comment)
 msgid "Put notes on same Staff as figures"
 msgstr "Assemblage des notes et de la basse chiffrée sur une même portée"
 
-#. Documentation/user/chords.itely:1061 (comment)
+#. Documentation/user/chords.itely:1083 (comment)
 msgid "The extenders are correct here, with the same rhythm as the bass"
 msgstr ""
 "Les prolongateurs sont corrects, ils suivent bien le rythme de la basse"
 
-#. Documentation/user/chords.itely:1073 (comment)
+#. Documentation/user/chords.itely:1095 (comment)
 msgid "The extenders are incorrect here, even though the timing is the same"
 msgstr "Les prolongateurs sont erronés, bien que le rythme soit le même"
 
@@ -6948,6 +7792,7 @@ msgstr "Introduction à la basse chiffrée"
 
 #. @rglos in Documentation/user/chords.itely
 #. @rglos in Documentation/es/user/chords.itely
+#. @rglos in Documentation/de/user/chords.itely
 msgid "figured bass"
 msgstr "basse chiffrée"
 
@@ -6973,10 +7818,39 @@ msgstr "Saisie de la basse chiffrée"
 msgid "Displaying figured bass"
 msgstr "Gravure de la basse chiffrée"
 
-#. Documentation/user/ancient.itely:821 (variable)
+#. Documentation/user/ancient.itely:357 (context id)
+msgid "discantus"
+msgstr "discantus"
+
+#. Documentation/user/ancient.itely:823 (variable)
 msgid "ficta"
 msgstr "ficta"
 
+#. Documentation/user/ancient.itely:976 (context id)
+msgid "cantus"
+msgstr "cantus"
+
+#. Documentation/user/ancient.itely:2399 (variable)
+#. Documentation/user/ancient.itely:2434 (variable)
+#. Documentation/user/ancient.itely:2502 (context id)
+#. input/lsr/ancient-notation-template----modern-transcription-of-gregorian-music.ly:37 (variable)
+msgid "chant"
+msgstr "Chant"
+
+#. Documentation/user/ancient.itely:2405 (variable)
+#. Documentation/user/ancient.itely:2445 (variable)
+#. input/lsr/ancient-notation-template----modern-transcription-of-gregorian-music.ly:44 (variable)
+msgid "verba"
+msgstr "verba"
+
+#. Documentation/user/ancient.itely:2487 (variable)
+msgid "spiritus"
+msgstr "spiritus"
+
+#. Documentation/user/ancient.itely:2495 (variable)
+msgid "spirLyr"
+msgstr "spiritusParoles"
+
 #. @node in Documentation/user/ancient.itely
 #. @section in Documentation/user/ancient.itely
 #. @node in Documentation/fr/user/ancient.itely
@@ -7337,11 +8211,11 @@ msgstr "Exemple concret de musique arabe"
 msgid "Further reading"
 msgstr "Autres sources d'information"
 
-#. Documentation/user/input.itely:494 (comment)
+#. Documentation/user/input.itely:525 (comment)
 msgid "not printed"
 msgstr "non imprimé"
 
-#. Documentation/user/input.itely:911 (variable)
+#. Documentation/user/input.itely:957 (variable)
 msgid "allLyrics"
 msgstr "tuttiParoles"
 
@@ -7677,46 +8551,48 @@ msgstr "Égalisation de plusieurs instruments (ii)"
 #. @subsection in Documentation/user/input.itely
 #. @node in Documentation/es/user/input.itely
 #. @subsection in Documentation/es/user/input.itely
+#. @node in Documentation/de/user/input.itely
+#. @subsection in Documentation/de/user/input.itely
 msgid "Percussion in MIDI"
 msgstr "MIDI et percussions"
 
-#. Documentation/user/spacing.itely:872 (comment)
+#. Documentation/user/spacing.itely:864 (comment)
 msgid "this does nothing"
 msgstr "ceci est sans effet"
 
-#. Documentation/user/spacing.itely:873 (comment)
+#. Documentation/user/spacing.itely:865 (comment)
 msgid "a break here would work"
 msgstr "une rupture serait ici acceptée"
 
-#. Documentation/user/spacing.itely:874 (comment)
+#. Documentation/user/spacing.itely:866 (comment)
 msgid "as does this break"
 msgstr "à l'instar de celle-ci"
 
-#. Documentation/user/spacing.itely:886 (comment)
+#. Documentation/user/spacing.itely:878 (comment)
 msgid "now the break is allowed"
-msgstr "la rupture est maintenant autorisée"
+msgstr "le saut de ligne est maintenant autorisé"
 
-#. Documentation/user/spacing.itely:1719 (comment)
+#. Documentation/user/spacing.itely:1757 (comment)
 msgid "this time the text will be closer to the staff"
 msgstr "cette fois, le texte est plus proche de la portée"
 
-#. Documentation/user/spacing.itely:1721 (comment)
+#. Documentation/user/spacing.itely:1759 (comment)
 msgid "by setting outside-staff-priority to a non-number,"
 msgstr "definir outside-staff-priority à autre chose qu'un nombre"
 
-#. Documentation/user/spacing.itely:1722 (comment)
+#. Documentation/user/spacing.itely:1760 (comment)
 msgid "we disable the automatic collision avoidance"
 msgstr "désactive l'évitement automatique de collision"
 
-#. Documentation/user/spacing.itely:1725 (comment)
+#. Documentation/user/spacing.itely:1763 (comment)
 msgid "now they will collide"
 msgstr "il y a maintenant chevauchement"
 
-#. Documentation/user/spacing.itely:1750 (comment)
+#. Documentation/user/spacing.itely:1789 (comment)
 msgid "the markup is too close to the following note"
-msgstr "l'étiquette est trop proche de la note qui suit"
+msgstr "le texte est trop proche de la note qui suit"
 
-#. Documentation/user/spacing.itely:1753 (comment)
+#. Documentation/user/spacing.itely:1793 (comment)
 msgid "setting outside-staff-horizontal-padding fixes this"
 msgstr "définir outside-staff-horizontal-padding règle le problème"
 
@@ -7768,6 +8644,8 @@ msgstr "Mise en forme de la page"
 #. @unnumberedsubsubsec in Documentation/user/spacing.itely
 #. @node in Documentation/es/user/spacing.itely
 #. @unnumberedsubsubsec in Documentation/es/user/spacing.itely
+#. @node in Documentation/de/user/spacing.itely
+#. @unnumberedsubsubsec in Documentation/de/user/spacing.itely
 msgid "Vertical dimensions"
 msgstr "Dimensionnement vertical"
 
@@ -7775,6 +8653,8 @@ msgstr "Dimensionnement vertical"
 #. @unnumberedsubsubsec in Documentation/user/spacing.itely
 #. @node in Documentation/es/user/spacing.itely
 #. @unnumberedsubsubsec in Documentation/es/user/spacing.itely
+#. @node in Documentation/de/user/spacing.itely
+#. @unnumberedsubsubsec in Documentation/de/user/spacing.itely
 msgid "Horizontal dimensions"
 msgstr "Dimensionnement horizontal"
 
@@ -7782,6 +8662,8 @@ msgstr "Dimensionnement horizontal"
 #. @unnumberedsubsubsec in Documentation/user/spacing.itely
 #. @node in Documentation/es/user/spacing.itely
 #. @unnumberedsubsubsec in Documentation/es/user/spacing.itely
+#. @node in Documentation/de/user/spacing.itely
+#. @unnumberedsubsubsec in Documentation/de/user/spacing.itely
 msgid "Other layout variables"
 msgstr "Autres variables de mise en forme"
 
@@ -7978,6 +8860,7 @@ msgstr "Résolution des collisions verticales"
 #. @node in Documentation/es/user/spacing.itely
 #. @section in Documentation/es/user/spacing.itely
 #. @node in Documentation/de/user/spacing.itely
+#. @section in Documentation/de/user/spacing.itely
 msgid "Horizontal spacing"
 msgstr "Espacement horizontal"
 
@@ -8069,63 +8952,70 @@ msgstr "Mise en évidence de l'espacement"
 msgid "Changing spacing"
 msgstr "Modification de l'espacement"
 
-#. Documentation/user/changing-defaults.itely:2015 (comment)
+#. Documentation/user/changing-defaults.itely:1991 (comment)
 msgid "increase the length of the tie"
-msgstr "Augmentation de la longueur de la liaison"
+msgstr "augmentation de la longueur de la liaison"
 
-#. Documentation/user/changing-defaults.itely:2024 (comment)
+#. Documentation/user/changing-defaults.itely:2000 (comment)
 msgid "increase the length of the rest bar"
-msgstr "Augmentation de la longueur de la mesure se silence multi-mesures"
+msgstr "augmentation de la longueur de la mesure de silence"
 
-#. Documentation/user/changing-defaults.itely:2032 (comment)
+#. Documentation/user/changing-defaults.itely:2008 (comment)
 msgid "increase the length of the hairpin"
-msgstr "Augmentation de la longueur du soufflet"
+msgstr "augmentation de la longueur du soufflet"
 
-#. Documentation/user/changing-defaults.itely:2060 (comment)
+#. Documentation/user/changing-defaults.itely:2036 (comment)
 msgid "default"
 msgstr "comportement par défaut"
 
-#. Documentation/user/changing-defaults.itely:2063 (comment)
-#. Documentation/user/changing-defaults.itely:2076 (comment)
+#. Documentation/user/changing-defaults.itely:2039 (comment)
+#. Documentation/user/changing-defaults.itely:2052 (comment)
 msgid "not effective alone"
 msgstr "ne fonctionne pas tout seul"
 
-#. Documentation/user/changing-defaults.itely:2067 (comment)
-#. Documentation/user/changing-defaults.itely:2080 (comment)
+#. Documentation/user/changing-defaults.itely:2043 (comment)
+#. Documentation/user/changing-defaults.itely:2056 (comment)
 msgid "effective only when both overrides are present"
 msgstr "effectivité si les deux modifications sont explicitées"
 
-#. Documentation/user/changing-defaults.itely:2461 (comment)
+#. Documentation/user/changing-defaults.itely:2431 (comment)
 msgid "Remove bar line at the end of the current line"
 msgstr "Suppression de la barre de mesure à la fin de la ligne en cours"
 
-#. Documentation/user/changing-defaults.itely:2507 (comment)
+#. Documentation/user/changing-defaults.itely:2477 (comment)
 msgid "Try to remove all key signatures"
 msgstr "Tentative de suppression de toutes les armures"
 
-#. Documentation/user/changing-defaults.itely:2926 (comment)
+#. Documentation/user/changing-defaults.itely:2897 (comment)
 msgid "move horizontally left"
-msgstr "déplacement vers la droite"
+msgstr "déplacement vers la gauche"
 
-#. Documentation/user/changing-defaults.itely:2928 (comment)
+#. Documentation/user/changing-defaults.itely:2899 (comment)
 msgid "move vertically up"
 msgstr "déplacement vers le haut"
 
-#. Documentation/user/changing-defaults.itely:2929 (comment)
+#. Documentation/user/changing-defaults.itely:2900 (comment)
 msgid "third finger"
 msgstr "troisième doigt"
 
-#. Documentation/user/changing-defaults.itely:2975 (comment)
+#. Documentation/user/changing-defaults.itely:2949 (comment)
+#. Documentation/user/changing-defaults.itely:2981 (comment)
+#. input/lsr/aligning-marks-with-various-notation-objects.ly:39 (comment)
 msgid "the RehearsalMark will be centered above the Clef"
-msgstr "Pour centrer le repère au dessus de la clef"
+msgstr "Pour centrer le repère au-dessus de la clef"
 
-#. Documentation/user/changing-defaults.itely:2981 (comment)
+#. Documentation/user/changing-defaults.itely:2955 (comment)
+#. input/lsr/aligning-marks-with-various-notation-objects.ly:46 (comment)
 msgid "the RehearsalMark will be centered above the TimeSignature"
-msgstr "Pour centrer le repère au dessus de la métrique"
+msgstr "Pour centrer le repère au-dessus de la métrique"
+
+#. Documentation/user/changing-defaults.itely:2975 (comment)
+msgid "the RehearsalMark will be centered above the Key Signature"
+msgstr "Pour centrer le repère au-dessus de l'armure"
 
 #. Documentation/user/changing-defaults.itely:2995 (comment)
 msgid "The RehearsalMark will be centered above the KeySignature"
-msgstr "Pour centrer le repère au dessus de l'armure"
+msgstr "Pour centrer le repère au-dessus de l'armure"
 
 #. Documentation/user/changing-defaults.itely:3002 (comment)
 #. Documentation/user/changing-defaults.itely:3018 (comment)
@@ -8147,7 +9037,7 @@ msgstr "puis décaler vers la droite de 3,5 espaces"
 msgid "and then shifted left by 2 staff-spaces"
 msgstr "puis décaler vers la gauche de 2 espaces"
 
-#. Documentation/user/changing-defaults.itely:3075 (variable)
+#. Documentation/user/changing-defaults.itely:3074 (variable)
 msgid "XinO"
 msgstr "XdansO"
 
@@ -8175,6 +9065,8 @@ msgstr "Contextes d'interprétation"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8184,6 +9076,8 @@ msgstr "Score - le père de tous les contextes"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8193,6 +9087,8 @@ msgstr "Contextes de haut niveau - les systèmes"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8202,6 +9098,8 @@ msgstr "Contextes de niveau intermédiaire - les portées"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8255,6 +9153,8 @@ msgstr "Alignement des contextes"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @section in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @section in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @section in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8297,15 +9197,19 @@ msgstr "Détermination de la propriété d'un objet graphique (grob)"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @subsection in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @subsection in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
 #. @subsection in Documentation/de/user/changing-defaults.itely
 msgid "Naming conventions"
-msgstr "Conventions d'attribution de nom"
+msgstr "Conventions de nommage"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @section in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @section in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @section in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8315,6 +9219,8 @@ msgstr "Modification de propriétés"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @subsection in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @subsection in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8344,7 +9250,7 @@ msgid "The override command"
 msgstr "La commande de dérogation (override)"
 
 #. @subsection in Documentation/user/changing-defaults.itely
-#. @section in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
 #. @subsection in Documentation/es/user/changing-defaults.itely
 #. @subsection in Documentation/de/user/changing-defaults.itely
 msgid "The @code{\\override} command"
@@ -8362,7 +9268,7 @@ msgstr "La commande tweak"
 #. @subsection in Documentation/es/user/changing-defaults.itely
 #. @subsection in Documentation/de/user/changing-defaults.itely
 msgid "The @code{\\tweak} command"
-msgstr "La commande @code{\\set}"
+msgstr "La commande @code{\\tweak}"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @node in Documentation/fr/user/changing-defaults.itely
@@ -8380,6 +9286,8 @@ msgstr "@code{\\set} ou @code{\\override}"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @section in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @section in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @section in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8389,6 +9297,8 @@ msgstr "Propriétés et contextes utiles"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @subsection in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @subsection in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8398,6 +9308,8 @@ msgstr "Modes de saisie"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @subsection in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @subsection in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8407,6 +9319,8 @@ msgstr "Direction et positionnement"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @subsection in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @subsection in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8416,14 +9330,19 @@ msgstr "Distances et unités de mesure"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @subsection in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @subsection in Documentation/es/user/changing-defaults.itely
-#, fuzzy
+#. @node in Documentation/de/user/changing-defaults.itely
+#. @subsection in Documentation/de/user/changing-defaults.itely
 msgid "Staff symbol properties"
-msgstr "Propriétés de mise en forme"
+msgstr "Propriétés des lignes de portée"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @subsection in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @subsection in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8432,33 +9351,45 @@ msgid "Spanners"
 msgstr "Extenseurs et prolongateurs"
 
 #. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/de/user/changing-defaults.itely
 msgid "Using the @code{spanner-interface}"
 msgstr "Utilisation de @code{spanner-interface}"
 
 #. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/de/user/changing-defaults.itely
 msgid "Using the @code{line-spanner-interface}"
 msgstr "Utilisation de @code{line-spanner-interface}"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @subsection in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @subsection in Documentation/es/user/changing-defaults.itely
+#. @node in Documentation/de/user/changing-defaults.itely
+#. @subsection in Documentation/de/user/changing-defaults.itely
 msgid "Visibility of objects"
 msgstr "Visibilité des objets"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/de/user/changing-defaults.itely
 msgid "Removing the stencil"
-msgstr "Supression des stencils"
+msgstr "Suppression des stencils"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8468,6 +9399,8 @@ msgstr "Transparence des objets"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8477,6 +9410,8 @@ msgstr "Blanchiment des objets"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8486,6 +9421,8 @@ msgstr "Utilisation de break-visibility"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8495,6 +9432,8 @@ msgstr "Considérations spécifiques"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @subsection in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @subsection in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8504,6 +9443,8 @@ msgstr "Styles de ligne"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @subsection in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @subsection in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8513,20 +9454,30 @@ msgstr "Rotation des objets"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
+#. @node in Documentation/de/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/de/user/changing-defaults.itely
 msgid "Rotating layout objects"
 msgstr "Rotation des objets de mise en forme"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
+#. @node in Documentation/de/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/de/user/changing-defaults.itely
 msgid "Rotating markup"
 msgstr "Rotation des étiquettes"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @section in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @section in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @section in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8536,6 +9487,8 @@ msgstr "Retouches avancées"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @subsection in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @subsection in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8545,40 +9498,58 @@ msgstr "Alignement des objets"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
+#. @node in Documentation/de/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/de/user/changing-defaults.itely
 msgid "Setting @code{X-offset} and @code{Y-offset} directly"
 msgstr "Détermination directe de @code{X-offset} et @code{Y-offset}"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
+#. @node in Documentation/de/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/de/user/changing-defaults.itely
 msgid "Using the @code{side-position-interface}"
 msgstr "Utilisation de @code{side-position-interface}"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
+#. @node in Documentation/de/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/de/user/changing-defaults.itely
 msgid "Using the @code{self-alignment-interface}"
 msgstr "Utilisation de @code{self-alignment-interface}"
 
 #. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/de/user/changing-defaults.itely
 msgid "Using the @code{aligned-on-parent} procedures"
 msgstr "Utilisation des procédures @code{aligned-on-parent}"
 
 #. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/de/user/changing-defaults.itely
 msgid "Using the @code{centered-on-parent} procedures"
 msgstr "Utilisation des procédures @code{centered-on-parent}"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
-msgid "Using the @code{break-aligned-interface}"
+msgid "Using the @code{break-alignable-interface}"
 msgstr "Utilisation de @code{break-aligned-interface}"
 
 #. @node in Documentation/user/changing-defaults.itely
@@ -8594,6 +9565,8 @@ msgstr "Groupement vertical d'objets graphiques"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @subsection in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @subsection in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8603,6 +9576,8 @@ msgstr "Modification des stencils"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @subsection in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @subsection in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8612,8 +9587,12 @@ msgstr "Modification de l'allure des éléments"
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
+#. @node in Documentation/de/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/de/user/changing-defaults.itely
 msgid "Modifying ties and slurs"
 msgstr "Modification des liaisons"
 
@@ -8938,20 +9917,20 @@ msgid "Using Scheme code instead of \\tweak"
 msgstr "Utilisation de code Scheme au lieu de \\tweak"
 
 #. @section in Documentation/user/programming-interface.itely
-#. @subsection in Documentation/fr/user/changing-defaults.itely
+#. @section in Documentation/fr/user/programming-interface.itely
 #. @section in Documentation/es/user/programming-interface.itely
-#. @subsection in Documentation/de/user/programming-interface.itely
+#. @section in Documentation/de/user/programming-interface.itely
 msgid "Using Scheme code instead of @code{\\tweak}"
 msgstr "Utilisation de code Scheme au lieu de @code{\\tweak}"
 
 #. @node in Documentation/user/programming-interface.itely
 #. @section in Documentation/user/programming-interface.itely
-#. @node in Documentation/fr/user/changing-defaults.itely
-#. @subsection in Documentation/fr/user/changing-defaults.itely
+#. @node in Documentation/fr/user/programming-interface.itely
+#. @section in Documentation/fr/user/programming-interface.itely
 #. @node in Documentation/es/user/programming-interface.itely
 #. @section in Documentation/es/user/programming-interface.itely
 #. @node in Documentation/de/user/programming-interface.itely
-#. @subsection in Documentation/de/user/programming-interface.itely
+#. @section in Documentation/de/user/programming-interface.itely
 msgid "Difficult tweaks"
 msgstr "Retouches complexes"
 
@@ -8990,15 +9969,23 @@ msgstr "Table des noms d'accord"
 
 #. @node in Documentation/user/notation-appendices.itely
 #. @appendixsec in Documentation/user/notation-appendices.itely
+#. @node in Documentation/fr/user/notation-appendices.itely
+#. @appendixsec in Documentation/fr/user/notation-appendices.itely
 #. @node in Documentation/es/user/notation-appendices.itely
 #. @appendixsec in Documentation/es/user/notation-appendices.itely
+#. @node in Documentation/de/user/notation-appendices.itely
+#. @appendixsec in Documentation/de/user/notation-appendices.itely
 msgid "Common chord modifiers"
 msgstr "Modificateurs d'accord usuels"
 
 #. @node in Documentation/user/notation-appendices.itely
 #. @appendixsec in Documentation/user/notation-appendices.itely
+#. @node in Documentation/fr/user/notation-appendices.itely
+#. @appendixsec in Documentation/fr/user/notation-appendices.itely
 #. @node in Documentation/es/user/notation-appendices.itely
 #. @appendixsec in Documentation/es/user/notation-appendices.itely
+#. @node in Documentation/de/user/notation-appendices.itely
+#. @appendixsec in Documentation/de/user/notation-appendices.itely
 msgid "Predefined fretboard diagrams"
 msgstr "Tablatures prédéfinies"
 
@@ -9094,8 +10081,12 @@ msgstr "Liste des signes d'articulation"
 
 #. @node in Documentation/user/notation-appendices.itely
 #. @appendixsec in Documentation/user/notation-appendices.itely
+#. @node in Documentation/fr/user/notation-appendices.itely
+#. @appendixsec in Documentation/fr/user/notation-appendices.itely
 #. @node in Documentation/es/user/notation-appendices.itely
 #. @appendixsec in Documentation/es/user/notation-appendices.itely
+#. @node in Documentation/de/user/notation-appendices.itely
+#. @appendixsec in Documentation/de/user/notation-appendices.itely
 msgid "Percussion notes"
 msgstr "Notes utilisées en percussion"
 
@@ -9155,8 +10146,8 @@ msgid "Cheat sheet"
 msgstr "Aide-mémoire"
 
 #. @top in Documentation/fr/user/lilypond-learning.tely
-msgid "GNU LilyPond --- manuel d'initiation"
-msgstr "GNU LilyPond --- manuel d'initiation"
+msgid "GNU LilyPond --- Manuel d'initiation"
+msgstr "GNU LilyPond --- Manuel d'initiation"
 
 #. @subsubheading in Documentation/fr/user/macros.itexi
 #. @subsubheading in Documentation/de/user/macros.itexi
@@ -9165,11 +10156,11 @@ msgstr "Propriétés couramment modifiées"
 
 #. @subheading in Documentation/fr/user/tutorial.itely
 msgid "Hauteurs"
-msgstr ""
+msgstr "Hauteurs"
 
 #. @subheading in Documentation/fr/user/tutorial.itely
 msgid "Durées et rythme"
-msgstr ""
+msgstr "Durées et rythme"
 
 #. @subheading in Documentation/fr/user/tutorial.itely
 msgid "Silences"
@@ -9189,16 +10180,9 @@ msgstr ""
 
 #. @node in Documentation/fr/user/tweaks.itely
 #. @subsection in Documentation/fr/user/tweaks.itely
-#. @node in Documentation/de/user/tweaks.itely
-#. @subsection in Documentation/de/user/tweaks.itely
 msgid "Outside staff objects"
 msgstr "Objets hors de la portée"
 
-#. @node in Documentation/fr/user/tweaks.itely
-#. @section in Documentation/fr/user/tweaks.itely
-msgid "Common tweaks"
-msgstr "Retouches courantes"
-
 #. @node in Documentation/fr/user/working.itely
 #. @subsection in Documentation/fr/user/working.itely
 #. @node in Documentation/es/user/working.itely
@@ -9209,24 +10193,16 @@ msgid "Updating old files"
 msgstr "Mise à jour d'anciens fichiers"
 
 #. @top in Documentation/fr/user/lilypond-program.tely
-msgid "GNU LilyPond --- utilisation des programmes"
-msgstr ""
-
-#. @node in Documentation/fr/user/setup.itely
-#. @subsection in Documentation/fr/user/setup.itely
-#. @node in Documentation/de/user/setup.itely
-#. @subsection in Documentation/de/user/setup.itely
-msgid "MacOS X on the command-line"
-msgstr "MacOS X et la ligne de commande"
+msgid "GNU LilyPond --- Utilisation des programmes"
+msgstr "GNU LilyPond --- Utilisation du programme"
 
 #. @section in Documentation/fr/user/running.itely
-#. @section in Documentation/de/user/running.itely
 msgid "Updating with @command{convert-ly}"
 msgstr "Mise à jour avec @command{convert-ly}"
 
 #. @top in Documentation/fr/user/lilypond.tely
-msgid "GNU LilyPond --- manuel de notation"
-msgstr ""
+msgid "GNU LilyPond --- Manuel de notation"
+msgstr "GNU LilyPond --- Manuel d'initiation"
 
 #. @node in Documentation/fr/user/repeats.itely
 #. @unnumberedsubsubsec in Documentation/fr/user/repeats.itely
@@ -9387,7 +10363,7 @@ msgstr "Transcription de musique mensurale"
 #. @node in Documentation/de/user/ancient.itely
 #. @unnumberedsubsubsec in Documentation/de/user/ancient.itely
 msgid "Annotational accidentals"
-msgstr "Altérations accidentelles"
+msgstr "Altérations accidentelles suggérées"
 
 #. @node in Documentation/fr/user/ancient.itely
 #. @unnumberedsubsubsec in Documentation/fr/user/ancient.itely
@@ -9397,7 +10373,6 @@ msgid "Baroque rhythmic notation"
 msgstr "Notation du rythme dans la musique baroque"
 
 #. @section in Documentation/fr/user/spacing.itely
-#. @section in Documentation/de/user/spacing.itely
 msgid "Horizontal Spacing"
 msgstr "Espacement horizontal"
 
@@ -9411,7 +10386,7 @@ msgstr "Retouches de mise en forme au sein des contextes"
 msgid "Constructing a tweak"
 msgstr "Élaboration d'une retouche"
 
-#. @node in Documentation/fr/user/changing-defaults.itely
+#. @node in Documentation/fr/user/programming-interface.itely
 msgid "Using Scheme code instead of tweak"
 msgstr "Utilisation de code Scheme au lieu de \\\"tweak\\\""
 
@@ -9449,37 +10424,22 @@ msgstr "Comportement automatique"
 msgid "Suggestions for writing LilyPond files"
 msgstr "Suggestions de saisie des fichiers LilyPond"
 
-#. @rglos in Documentation/es/user/working.itely
-msgid "baritone"
-msgstr "baryton"
-
 #. @top in Documentation/es/user/lilypond-program.tely
 msgid "GNU LilyPond: Manual de utilización del programa"
 msgstr "GNU LilyPond --- utilisation du programme"
 
 #. @top in Documentation/es/user/lilypond.tely
-#, fuzzy
 msgid "GNU LilyPond: Manual de referencia de la notación"
-msgstr "GNU LilyPond --- manuel d'initiation"
+msgstr ""
 
 #. @chapheading in Documentation/es/user/lilypond.tely
-#, fuzzy
 msgid "El tipografiador de música"
-msgstr "GNU LilyPond --- utilisation du programme"
-
-#. @rglos in Documentation/es/user/pitches.itely
-msgid "semitone"
 msgstr ""
 
 #. @top in Documentation/de/user/lilypond-learning.tely
 msgid "GNU LilyPond -- Handbuch zum Lernen"
 msgstr "GNU LilyPond --- manuel d'initiation"
 
-#. @node in Documentation/de/user/fundamental.itely
-#. @section in Documentation/de/user/fundamental.itely
-msgid "How LilyPond files work"
-msgstr "Organisation des fichiers LilyPond"
-
 #. @node in Documentation/de/user/templates.itely
 #. @appendixsec in Documentation/de/user/templates.itely
 msgid "Lilypond-book templates"
@@ -9489,65 +10449,2708 @@ msgstr "Squelettes pour lilypond-book"
 msgid "GNU LilyPond -- Programmbenutzung"
 msgstr "GNU LilyPond --- utilisation du programme"
 
-#. @top in Documentation/de/user/lilypond.tely
-msgid "GNU LilyPond -- Das Notationsprogramm"
+#. @chapheading in Documentation/de/user/lilypond.tely
+msgid "Das Notensatzprogramm"
 msgstr ""
 
-#. @node in Documentation/de/user/staff.itely
-#. @unnumberedsubsubsec in Documentation/de/user/staff.itely
-msgid "System start delimiters"
-msgstr "Délimitations en début de système"
+#. @subsubheading in Documentation/de/user/vocal.itely
+msgid "Ignorieren von Melismen"
+msgstr "Désactivation du traitement des mélismes"
 
 #. @node in Documentation/de/user/changing-defaults.itely
-#. @section in Documentation/de/user/changing-defaults.itely
-msgid "Common properties"
-msgstr "Propriétés couramment utilisées"
+#. @unnumberedsubsubsec in Documentation/de/user/changing-defaults.itely
+msgid "Using the @code{break-aligned-interface}"
+msgstr "Utilisation de @code{break-aligned-interface}"
 
-#. @node in Documentation/de/user/changing-defaults.itely
-#. @subsection in Documentation/de/user/changing-defaults.itely
-msgid "Controlling visibility of objects"
-msgstr "Contrôle de la visibilité des objets"
+#. @top in Documentation/ja/user/lilypond-learning.tely
+msgid "GNU LilyPond --- 学習マニュアル"
+msgstr ""
 
-#. @node in Documentation/de/user/changing-defaults.itely
-#. @subsection in Documentation/de/user/changing-defaults.itely
-msgid "Modifying ends of spanners"
-msgstr "Modification de la terminaison des extenseurs"
+#. @top in Documentation/ja/user/lilypond-program.tely
+msgid "GNU LilyPond --- アプリケーション使用方法"
+msgstr ""
 
-#. @node in Documentation/de/user/changing-defaults.itely
-#. @section in Documentation/de/user/changing-defaults.itely
-msgid "Discussion of specific tweaks"
-msgstr "Considération de certaines retouches spécifiques"
+#. input/lsr/accordion-discant-symbols.ly:34 (variable)
+msgid "discant"
+msgstr "discantus"
 
-#. @node in Documentation/de/user/changing-defaults.itely
-#. @subsection in Documentation/de/user/changing-defaults.itely
-msgid "old Contexts explained"
-msgstr "ex Tout savoir sur les contextes"
+#. input/lsr/accordion-discant-symbols.ly:37 (variable)
+msgid "dot"
+msgstr "point"
 
-#. @node in Documentation/de/user/programming-interface.itely
-#. @section in Documentation/de/user/programming-interface.itely
-msgid "TODO moved into scheme"
+#. input/lsr/accordion-discant-symbols.ly:43 (comment)
+msgid "16 voets register"
+msgstr "registre de 16 pieds"
+
+#. input/lsr/accordion-discant-symbols.ly:44 (variable)
+msgid "accBasson"
+msgstr "accBasson"
+
+#. input/lsr/accordion-discant-symbols.ly:50 (comment)
+msgid "een korig 8 en 16 voets register"
 msgstr ""
 
-msgid "Up:"
-msgstr "Haut&nbsp;:"
+#. input/lsr/accordion-discant-symbols.ly:51 (variable)
+msgid "accBandon"
+msgstr "accBandon"
 
-msgid "Next:"
-msgstr "Suivant&nbsp;:"
+#. input/lsr/accordion-discant-symbols.ly:59 (variable)
+msgid "accVCello"
+msgstr "accVCelle"
 
-msgid "Previous:"
-msgstr "Précédent&nbsp;:"
+#. input/lsr/accordion-discant-symbols.ly:69 (comment)
+msgid "4-8-16 voets register"
+msgstr "ergistre 4-8-16 pieds"
 
-msgid "Appendix "
-msgstr "Annexe "
+#. input/lsr/accordion-discant-symbols.ly:70 (variable)
+msgid "accHarmon"
+msgstr "accHarmonica"
 
-msgid "Footnotes"
-msgstr "Notes de bas de page"
+#. input/lsr/accordion-discant-symbols.ly:80 (variable)
+msgid "accTrombon"
+msgstr "accTrombonne"
 
-msgid "Table of Contents"
-msgstr "Table des matières"
+#. input/lsr/accordion-discant-symbols.ly:92 (comment)
+msgid "eenkorig 4 en 16 voets register"
+msgstr ""
+
+#. input/lsr/accordion-discant-symbols.ly:93 (variable)
+msgid "accOrgan"
+msgstr "accOrgue"
+
+#. input/lsr/accordion-discant-symbols.ly:101 (variable)
+msgid "accMaster"
+msgstr "accMaitre"
+
+#. input/lsr/accordion-discant-symbols.ly:115 (variable)
+msgid "accAccord"
+msgstr "accAccordeon"
+
+#. input/lsr/accordion-discant-symbols.ly:127 (variable)
+msgid "accMusette"
+msgstr "accMusette"
+
+#. input/lsr/accordion-discant-symbols.ly:137 (variable)
+msgid "accCeleste"
+msgstr "accCeleste"
+
+#. input/lsr/accordion-discant-symbols.ly:145 (variable)
+msgid "accOboe"
+msgstr "accHautbois"
+
+#. input/lsr/accordion-discant-symbols.ly:153 (variable)
+msgid "accClarin"
+msgstr "accClarinette"
+
+#. input/lsr/accordion-discant-symbols.ly:159 (variable)
+msgid "accPiccolo"
+msgstr "accPiccolo"
+
+#. input/lsr/accordion-discant-symbols.ly:165 (variable)
+msgid "accViolin"
+msgstr "accViolon"
+
+#. input/lsr/adding-a-figured-bass-above-or-below-the-notes.ly:41 (variable)
+#. input/lsr/jazz-combo-template.ly:231 (variable)
+#. input/lsr/jazz-combo-template.ly:279 (context id)
+msgid "bass"
+msgstr "basse"
+
+#. input/lsr/adding-a-figured-bass-above-or-below-the-notes.ly:42 (variable)
+msgid "continuo"
+msgstr "continuo"
+
+#. input/lsr/adding-a-figured-bass-above-or-below-the-notes.ly:53 (context id)
+#. input/lsr/adding-a-figured-bass-above-or-below-the-notes.ly:54 (context id)
+msgid "bassStaff"
+msgstr "bassePortee"
+
+#. input/lsr/adding-an-extra-staff-at-a-line-break.ly:52 (comment)
+msgid "The next line is not needed in 2.11.x or later:"
+msgstr "la ligne suivante n'est plus nécessaire à partir de la version 2.11.x"
+
+#. input/lsr/adding-drum-parts.ly:46 (variable)
+msgid "drh"
+msgstr "tomh"
+
+#. input/lsr/adding-drum-parts.ly:47 (variable)
+msgid "drl"
+msgstr "tomb"
+
+#. input/lsr/adding-drum-parts.ly:48 (variable)
+msgid "timb"
+msgstr "timb"
+
+#. input/lsr/adding-fingerings-to-tablatures.ly:25 (variable)
+msgid "threeTwo"
+msgstr "troisDeux"
+
+#. input/lsr/adding-fingerings-to-tablatures.ly:32 (variable)
+msgid "threeFour"
+msgstr "troisQuatre"
+
+#. input/lsr/adding-the-current-date-to-a-score.ly:29 (comment)
+msgid "first, define a variable to hold the formatted date:"
+msgstr "tout d'abord, définir une variable qui contiendra la date formattée"
+
+#. input/lsr/adding-the-current-date-to-a-score.ly:30 (variable)
+msgid "date"
+msgstr "date"
+
+#. input/lsr/adding-the-current-date-to-a-score.ly:30 (comment)
+msgid "d-%m-%Y\\\" (localtime (current-time)))"
+msgstr "d-%m-%Y\\\" (localtime (current-time)))"
+
+#. input/lsr/adding-the-current-date-to-a-score.ly:32 (comment)
+msgid "use it in the title block:"
+msgstr "utilisation dans le bloc de titre :"
+
+#. input/lsr/adding-the-current-date-to-a-score.ly:43 (comment)
+msgid "and use it in a \\markup block:"
+msgstr "et utilisation dans un bloc \\markup :"
+
+#. input/lsr/additional-voices-to-avoid-collisions.ly:27 (variable)
+msgid "voiceFive"
+msgstr "voixCinq"
+
+#. input/lsr/adjusting-lyrics-vertical-spacing.ly:30 (comment)
+msgid "Default layout:"
+msgstr "Mise en forme par défaut :"
+
+#. input/lsr/adjusting-lyrics-vertical-spacing.ly:39 (comment)
+msgid "Reducing the minimum space below the staff and above the lyrics:"
+msgstr ""
+"Réduction au minimum de l'espace au-dessous de la portée et au-dessus des "
+"paroles :"
+
+#. input/lsr/aligning-marks-with-various-notation-objects.ly:54 (comment)
+msgid "the RehearsalMark will be centered above the KeySignature"
+msgstr "Pour centrer le repère au-dessus de l'armure"
+
+#. input/lsr/aligning-marks-with-various-notation-objects.ly:65 (comment)
+#. input/lsr/aligning-marks-with-various-notation-objects.ly:77 (comment)
+msgid ""
+"the RehearsalMark will be aligned with the left edge of the KeySignature"
+msgstr "Pour aligner le repère sur le coin gauche de l'armure"
+
+#. input/lsr/aligning-marks-with-various-notation-objects.ly:71 (comment)
+msgid ""
+"the RehearsalMark will be aligned with the right edge of the KeySignature"
+msgstr "Pour aligner le repère sur le coin droit de l'armure"
+
+#. input/lsr/aligning-marks-with-various-notation-objects.ly:78 (comment)
+msgid "and then shifted right by one unit."
+msgstr "puis décaler vers la droite d'une unité."
+
+#. input/lsr/ancient-fonts.ly:33 (variable)
+#. input/lsr/ancient-fonts.ly:33 (context id)
+msgid "upperStaff"
+msgstr "porteeSuperieure"
+
+#. input/lsr/ancient-fonts.ly:45 (comment)
+msgid "\\break % 1 (8*1)"
+msgstr "\\break % 1 (8*1)"
+
+#. input/lsr/ancient-fonts.ly:56 (comment)
+msgid "\\break %2 (8*1)"
+msgstr "\\break %2 (8*1)"
+
+#. input/lsr/ancient-fonts.ly:68 (comment)
+msgid "\\break % 3 (8*1)"
+msgstr "\\break % 3 (8*1)"
+
+#. input/lsr/ancient-fonts.ly:83 (comment)
+msgid "\\break % 4 (8*1)"
+msgstr "\\break % 4 (8*1)"
+
+#. input/lsr/ancient-fonts.ly:92 (comment)
+#. input/lsr/ancient-fonts.ly:154 (comment)
+msgid "\\break % 5 (8*1)"
+msgstr "\\break % 5 (8*1)"
+
+#. input/lsr/ancient-fonts.ly:106 (comment)
+#. input/lsr/ancient-fonts.ly:169 (comment)
+msgid "\\break % 6 (8*1)"
+msgstr "\\break % 6 (8*1)"
+
+#. input/lsr/ancient-fonts.ly:115 (comment)
+#. input/lsr/ancient-fonts.ly:179 (comment)
+msgid "\\break % 7 (8*1)"
+msgstr "\\break % 7 (8*1)"
+
+#. input/lsr/ancient-fonts.ly:122 (comment)
+msgid "\\break % 8 (8*1)"
+msgstr "\\break % 8 (8*1)"
+
+#. input/lsr/ancient-fonts.ly:125 (comment)
+msgid "\\break % 12 (32*1)"
+msgstr "\\break % 12 (32*1)"
+
+#. input/lsr/ancient-fonts.ly:130 (variable)
+#. input/lsr/ancient-fonts.ly:130 (context id)
+msgid "lowerStaff"
+msgstr "PorteeInferieure"
+
+#. input/lsr/ancient-fonts.ly:140 (comment)
+msgid "\\break % 2 (16*1)"
+msgstr "\\break % 2 (16*1)"
+
+#. input/lsr/ancient-fonts.ly:145 (comment)
+msgid "\\break % 4 (16*1)"
+msgstr "\\break % 4 (16*1)"
+
+#. input/lsr/ancient-fonts.ly:184 (comment)
+msgid "\\break % 9 (16*1)"
+msgstr "\\break % 9 (16*1)"
+
+#. input/lsr/ancient-fonts.ly:186 (comment)
+msgid "lig"
+msgstr "lig"
+
+#. input/lsr/ancient-fonts.ly:190 (comment)
+msgid "\\break % 11 (16*1)"
+msgstr "\\break % 11 (16*1)"
+
+#. input/lsr/ancient-fonts.ly:201 (comment)
+msgid "\\break % 12 (8*1)"
+msgstr "\\break % 12 (8*1)"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:62 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:109 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:128 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:145 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:164 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:179 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:200 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:213 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:232 (comment)
+#. input/lsr/incipit.ly:19 (variable)
+#. input/lsr/incipit.ly:189 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:212 (comment)
+msgid "incipit"
+msgstr "incipit"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:64 (comment)
+msgid "tight spacing"
+msgstr "espacement resserré"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:71 (comment)
+msgid "turn off bar lines"
+msgstr "désactivation des barres de mesure"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:75 (comment)
+msgid "need this extra \\skip such that clef change comes"
+msgstr "ce \\skip supplémentaire permet d'afficher le changement de clef"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:76 (comment)
+msgid "after bar line"
+msgstr "après la barre de mesure"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:80 (comment)
+msgid "CHECK: no effect?"
+msgstr "À VÉRIFIER : sans effet ?"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:81 (comment)
+msgid "turn bar lines on again"
+msgstr "réactive les barres de mesure"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:89 (comment)
+msgid "FIXME: setting printKeyCancellation back to #t must not"
+msgstr "À CORRIGER : remettre printKeyCancellation à #t ne doit intervenir"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:90 (comment)
+msgid "occur in the first bar after the incipit.  Dto. for forceClef."
+msgstr "à la première mesure suivant l'incipit. Idem pour forceClef."
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:91 (comment)
+msgid "Therefore, we need an extra \\skip."
+msgstr "C'est pourquoi nous ajooutons un \\skip."
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:96 (comment)
+#. input/lsr/incipit.ly:62 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:37 (comment)
+msgid "the actual music"
+msgstr "la vraie musique"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:98 (comment)
+#. input/lsr/incipit.ly:65 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:39 (comment)
+msgid "let finis bar go through all staves"
+msgstr "pour que la barre de mesure finale traverse toutes les portées"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:101 (comment)
+#. input/lsr/incipit.ly:68 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:42 (comment)
+msgid "finis bar"
+msgstr "la barre finale"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:105 (variable)
+#. input/lsr/incipit.ly:85 (variable)
+#. input/lsr/incipit.ly:220 (context id)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:47 (variable)
+msgid "discantusNotes"
+msgstr "discantusNotes"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:111 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:148 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:154 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:168 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:182 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:184 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:193 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:204 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:216 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:73 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:83 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:96 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:103 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:138 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:163 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:187 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:189 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:214 (comment)
+msgid "two bars"
+msgstr "deux mesures"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:112 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:215 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:139 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:213 (comment)
+msgid "eight bars"
+msgstr "huit mesures"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:113 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:147 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:150 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:183 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:185 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:186 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:217 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:162 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:188 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:190 (comment)
+msgid "one bar"
+msgstr "une mesure"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:127 (variable)
+#. input/lsr/incipit.ly:99 (variable)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:60 (variable)
+msgid "discantusLyrics"
+msgstr "discantusParoles"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:141 (variable)
+#. input/lsr/incipit.ly:122 (variable)
+#. input/lsr/incipit.ly:227 (context id)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:70 (variable)
+msgid "altusNotes"
+msgstr "altusNotes"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:149 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:164 (comment)
+msgid "seven bars"
+msgstr "sept mesures"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:163 (variable)
+#. input/lsr/incipit.ly:136 (variable)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:82 (variable)
+msgid "altusLyrics"
+msgstr "altusParoles"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:175 (variable)
+#. input/lsr/incipit.ly:160 (variable)
+#. input/lsr/incipit.ly:234 (context id)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:90 (variable)
+msgid "tenorNotes"
+msgstr "tenorNotes"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:181 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:186 (comment)
+msgid "four bars"
+msgstr "quatre mesures"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:199 (variable)
+#. input/lsr/incipit.ly:175 (variable)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:102 (variable)
+msgid "tenorLyrics"
+msgstr "tenorParoles"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:209 (variable)
+#. input/lsr/incipit.ly:197 (variable)
+#. input/lsr/incipit.ly:241 (context id)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:108 (variable)
+msgid "bassusNotes"
+msgstr "bassusNotes"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:231 (variable)
+#. input/lsr/incipit.ly:211 (variable)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:121 (variable)
+msgid "bassusLyrics"
+msgstr "bassusParoles"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:242 (context id)
+#. input/lsr/incipit.ly:219 (context id)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:229 (context id)
+msgid "choirStaff"
+msgstr "choirStaff"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:264 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:266 (comment)
+msgid "no bars in staves"
+msgstr "pas de barre sur les portées"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:267 (comment)
+msgid "incipit should not start with a start delimiter"
+msgstr "l'incipit ne doit pas commencer par une marque de regroupement"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:273 (comment)
+#. input/lsr/incipit.ly:264 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:277 (comment)
+msgid "no slurs"
+msgstr "pas de liaison"
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:276 (comment)
+#. input/lsr/incipit.ly:266 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:280 (comment)
+msgid "Comment in the below \\\"\\remove\\\" command to allow line"
+msgstr ""
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:277 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:281 (comment)
+msgid "breaking also at those barlines where a note overlaps"
+msgstr ""
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:278 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:282 (comment)
+msgid "into the next bar.  The command is commented out in this"
+msgstr ""
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:279 (comment)
+#. input/lsr/incipit.ly:269 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:283 (comment)
+msgid "short example score, but especially for large scores, you"
+msgstr ""
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:280 (comment)
+#. input/lsr/incipit.ly:270 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:284 (comment)
+msgid "will typically yield better line breaking and thus improve"
+msgstr ""
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:281 (comment)
+#. input/lsr/incipit.ly:271 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:285 (comment)
+msgid "overall spacing if you comment in the following command."
+msgstr ""
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:282 (comment)
+#. input/lsr/incipit.ly:272 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:286 (comment)
+msgid "\\remove \\\"Forbid_line_break_engraver\\\""
+msgstr "\\remove \\\"Forbid_line_break_engraver\\\""
+
+#. input/lsr/applying-note-head-styles-depending-on-the-step-of-the-scale.ly:73 (variable)
+#. input/lsr/clusters.ly:27 (variable)
+msgid "fragment"
+msgstr "fragment"
+
+#. input/lsr/automatic-beams-two-per-two-in-4-4-or-2-2-time-signature.ly:41 (comment)
+msgid "Automatic beams two per two in 4/4 or 2/2 time signature"
+msgstr "Ligature automatique deux par deux, aussi bien en 4/4 qu'en 2/2"
+
+#. input/lsr/automatic-beams-two-per-two-in-4-4-or-2-2-time-signature.ly:42 (comment)
+msgid "_____"
+msgstr "_____"
+
+#. input/lsr/automatic-beams-two-per-two-in-4-4-or-2-2-time-signature.ly:43 (comment)
+msgid "Default     | | | |"
+msgstr "Par défaut  | | | |"
+
+#. input/lsr/automatic-beams-two-per-two-in-4-4-or-2-2-time-signature.ly:44 (comment)
+msgid "_   _"
+msgstr "_   _"
+
+#. input/lsr/automatic-beams-two-per-two-in-4-4-or-2-2-time-signature.ly:45 (comment)
+msgid "Required    | | | |"
+msgstr "Requis      | | | |"
+
+#. input/lsr/automatic-beams-two-per-two-in-4-4-or-2-2-time-signature.ly:47 (comment)
+msgid "macro for beamed two per two in 2/2 and 4/4 time signature"
+msgstr "macro pour ligaturer deux par deux, aussi bien en 4/4 qu'en 2/2"
+
+#. input/lsr/automatic-beams-two-per-two-in-4-4-or-2-2-time-signature.ly:48 (variable)
+msgid "qBeam"
+msgstr "LigatureNoire"
+
+#. input/lsr/automatic-beams-two-per-two-in-4-4-or-2-2-time-signature.ly:63 (comment)
+msgid "Use the macro"
+msgstr "Utilisation de la macro"
+
+#. input/lsr/avoiding-collisions-with-chord-fingerings.ly:30 (comment)
+msgid "Corrected to avoid collisions"
+msgstr "Correction pour éviter les collisions"
+
+#. input/lsr/beam-endings-in-score-context.ly:28 (comment)
+msgid "Set default beaming for all staves"
+msgstr "définition des règles de ligature pour toutes les portées"
+
+#. input/lsr/beam-endings-in-score-context.ly:36 (comment)
+msgid "Modify beaming for just this staff"
+msgstr "changement des règles de ligature seulement pour cette portée"
+
+#. input/lsr/beam-endings-in-score-context.ly:42 (comment)
+msgid "Inherit beaming from Score context"
+msgstr "héritage des règles de ligature du contexte Score"
+
+#. input/lsr/beam-endings-in-score-context.ly:48 (comment)
+msgid "Modify beaming for this voice only"
+msgstr "changement des règles de ligature seulement pour cette voix"
+
+#. input/lsr/beam-grouping-in-7-8-time.ly:40 (comment)
+msgid "rhythm 2-3-2"
+msgstr "subdivision 2-3-2"
+
+#. input/lsr/book-parts.ly:21 (comment)
+msgid "book paper, which is inherited by all children bookparts"
+msgstr ""
+
+#. input/lsr/book-parts.ly:24 (comment)
+msgid "Page footer: add a different part-tagline at part last page"
+msgstr ""
+
+#. input/lsr/book-parts.ly:28 (comment)
+msgid "Copyright header field only on book first page."
+msgstr ""
+
+#. input/lsr/book-parts.ly:32 (comment)
+msgid "Part tagline header field only on each part last page."
+msgstr ""
+
+#. input/lsr/book-parts.ly:36 (comment)
+msgid "Tagline header field only on book last page."
+msgstr ""
+
+#. input/lsr/book-parts.ly:43 (comment)
+msgid "book header, which is inherited by the first bookpart"
+msgstr ""
+
+#. input/lsr/book-parts.ly:52 (comment)
+msgid "a different page breaking function may be used on each part"
+msgstr ""
+
+#. input/lsr/breathing-signs.ly:19 (comment)
+msgid "this bar contains no \\breathe"
+msgstr "mesure sans \\breathe :"
+
+#. input/lsr/breathing-signs.ly:21 (comment)
+msgid "Modern notation:"
+msgstr "Notation moderne :"
+
+#. input/lsr/breathing-signs.ly:22 (comment)
+msgid "by default, \\breathe uses the rcomma, just as if saying:"
+msgstr ""
+"par défaut, \\breathe produit un @code{rcomma} (virgule vers la droite) "
+"comme si l' on avait : "
+
+#. input/lsr/breathing-signs.ly:23 (comment)
+msgid ""
+"\\override BreathingSign #'text = #(make-musicglyph-markup \\\"scripts.rcomma"
+"\\\")"
+msgstr ""
+"\\override BreathingSign #'text = #(make-musicglyph-markup \\\"scripts.rcomma"
+"\\\")"
+
+#. input/lsr/breathing-signs.ly:26 (comment)
+msgid "rvarcomma and lvarcomma are variations of the default rcomma and lcomma"
+msgstr "rvarcomma et lvarcomma sont des variantes de rcomma and lcomma"
+
+#. input/lsr/breathing-signs.ly:27 (comment)
+msgid "N.B.: must use Staff context here, since we start a Voice below"
+msgstr "N.B. : affectation au niveau portée, puisqu'il y a une nouvelle voix"
+
+#. input/lsr/breathing-signs.ly:31 (comment)
+msgid "vee"
+msgstr "en V"
+
+#. input/lsr/caesura-railtracks-with-fermata.ly:28 (comment)
+msgid "construct the symbol"
+msgstr "construction du symbole"
+
+#. input/lsr/caesura-railtracks-with-fermata.ly:37 (comment)
+msgid "set the breathe mark back to normal"
+msgstr "retour à la normale pour les marques de respiration"
+
+#. input/lsr/center-text-below-hairpin-dynamics.ly:27 (variable)
+msgid "hairpinWithCenteredText"
+msgstr "souffletAvecTexteCentre"
+
+#. input/lsr/center-text-below-hairpin-dynamics.ly:39 (variable)
+msgid "hairpinMolto"
+msgstr "souffletMolto"
+
+#. input/lsr/center-text-below-hairpin-dynamics.ly:40 (variable)
+msgid "hairpinMore"
+msgstr "souffletPlus"
+
+#. input/lsr/changing--flageolet-mark-size.ly:23 (variable)
+msgid "smallFlageolet"
+msgstr "petitFlageolet"
+
+#. input/lsr/changing-the-chord-names-to-german-or-semi-german-notation.ly:34 (comment)
+msgid "The following is only here to print the names of the"
+msgstr "Ce qui suit n'est là que pour permettre l'impression des noms"
+
+#. input/lsr/changing-the-chord-names-to-german-or-semi-german-notation.ly:35 (comment)
+msgid "chords styles; it can be removed if you do not need to"
+msgstr "de style d'accord ; vous pouvez supprimer ce bloc \\layout"
+
+#. input/lsr/changing-the-chord-names-to-german-or-semi-german-notation.ly:36 (comment)
+msgid "print them."
+msgstr "si vous ne voulez pas les imprimer."
+
+#. input/lsr/changing-the-default-text-font-family.ly:17 (comment)
+msgid "change for other default global staff size. "
+msgstr ""
+
+#. input/lsr/changing-the-default-text-font-family.ly:19 (comment)
+#. input/lsr/engravers-one-by-one.ly:191 (comment)
+#. input/lsr/score-for-diatonic-accordion.ly:110 (comment)
+msgid "{"
+msgstr "{"
+
+#. input/lsr/changing-the-default-text-font-family.ly:23 (comment)
+#. input/lsr/engravers-one-by-one.ly:194 (comment)
+#. input/lsr/score-for-diatonic-accordion.ly:111 (comment)
+#. input/lsr/score-for-diatonic-accordion.ly:233 (comment)
+#. input/lsr/string-quartet-template-with-separate-parts.ly:177 (comment)
+msgid "}"
+msgstr "}"
+
+#. input/lsr/changing-the-time-signature-without-affecting-the-beaming.ly:35 (comment)
+msgid "Change time signature symbol but keep 3/4 beaming"
+msgstr "La métrique change mais on garde les règles de ligatures en 3/4"
+
+#. input/lsr/changing-the-time-signature-without-affecting-the-beaming.ly:36 (comment)
+msgid "due to unchanged underlying time signature"
+msgstr "car la durée de pulsation n'a pas changée"
+
+#. input/lsr/changing-the-time-signature-without-affecting-the-beaming.ly:41 (comment)
+msgid "Lose 3/4 beaming now \\time has been changed"
+msgstr "\\time a été modifié, on abandonne les règles de ligature en 3/4"
+
+#. input/lsr/chant-or-psalms-notation.ly:23 (variable)
+msgid "stemOn"
+msgstr "hampeOui"
+
+#. input/lsr/chant-or-psalms-notation.ly:24 (variable)
+msgid "stemOff"
+msgstr "hampeNon"
+
+#. input/lsr/chord-name-exceptions.ly:24 (comment)
+msgid "modify maj9 and 6(add9)"
+msgstr ""
+
+#. input/lsr/chord-name-exceptions.ly:25 (comment)
+msgid "Exception music is chords with markups"
+msgstr ""
+
+#. input/lsr/chord-name-exceptions.ly:26 (variable)
+msgid "chExceptionMusic"
+msgstr ""
+
+#. input/lsr/chord-name-exceptions.ly:31 (comment)
+msgid "Convert music to list and prepend to existing exceptions."
+msgstr ""
+
+#. input/lsr/chord-name-exceptions.ly:32 (variable)
+msgid "chExceptions"
+msgstr ""
+
+#. input/lsr/chord-name-exceptions.ly:36 (variable)
+msgid "theMusic"
+msgstr "laMusique"
+
+#. input/lsr/clip-systems.ly:37 (variable)
+msgid "origScore"
+msgstr ""
+
+#. input/lsr/clip-systems.ly:55 (comment)
+msgid "Each clip-region is a (START . END) pair"
+msgstr ""
+
+#. input/lsr/clip-systems.ly:56 (comment)
+msgid "where both are rhythmic-locations."
+msgstr ""
+
+#. input/lsr/clip-systems.ly:58 (comment)
+msgid "(make-rhythmic-locations BAR-NUMBER NUM DEN)"
+msgstr ""
+
+#. input/lsr/clip-systems.ly:59 (comment)
+msgid "means NUM/DEN whole-notes into bar numbered BAR-NUMBER"
+msgstr ""
+
+#. input/lsr/coloring-notes-depending-on-their-pitch.ly:13 (comment)
+msgid "Association list of pitches to colors."
+msgstr ""
+
+#. input/lsr/coloring-notes-depending-on-their-pitch.ly:34 (comment)
+msgid "Compare pitch and alteration (not octave)."
+msgstr ""
+
+#. input/lsr/combining-dynamics-with-markup-texts.ly:24 (variable)
+msgid "piuF"
+msgstr "piuF"
+
+#. input/lsr/combining-two-parts-on-the-same-staff.ly:51 (variable)
+msgid "musicUp"
+msgstr "musiqueHaut"
+
+#. input/lsr/combining-two-parts-on-the-same-staff.ly:58 (variable)
+msgid "musicDown"
+msgstr "musiqueBas"
+
+#. input/lsr/creating-a-sequence-of-notes-on-various-pitches.ly:53 (variable)
+#. input/lsr/jazz-combo-template.ly:275 (context id)
+msgid "rhythm"
+msgstr ""
+
+#. input/lsr/creating-real-parenthesized-dynamics.ly:45 (variable)
+msgid "parenF"
+msgstr ""
+
+#. input/lsr/creating-simultaneous-rehearsal-marks.ly:40 (comment)
+msgid "the hidden measure and bar line"
+msgstr ""
+
+#. input/lsr/customizing-fretboard-fret-diagrams.ly:40 (comment)
+#. input/lsr/customizing-markup-fret-diagrams.ly:43 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:23 (comment)
+msgid "Set global properties of fret diagram"
+msgstr ""
+
+#. input/lsr/customizing-markup-fret-diagrams.ly:41 (context id)
+#. input/lsr/formatting-lyrics-syllables.ly:21 (variable)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:21 (context id)
+#. input/lsr/piano-template-with-melody-and-lyrics.ly:62 (context id)
+msgid "mel"
+msgstr "melodie"
+
+#. input/lsr/customizing-markup-fret-diagrams.ly:50 (comment)
+msgid "C major for guitar, no barre, using defaults"
+msgstr ""
+
+#. input/lsr/customizing-markup-fret-diagrams.ly:51 (comment)
+#. input/lsr/customizing-markup-fret-diagrams.ly:101 (comment)
+msgid "terse style"
+msgstr ""
+
+#. input/lsr/customizing-markup-fret-diagrams.ly:54 (comment)
+#. input/lsr/customizing-markup-fret-diagrams.ly:76 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:52 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:73 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:152 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:173 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:251 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:272 (comment)
+msgid "C major for guitar, barred on third fret"
+msgstr ""
+
+#. input/lsr/customizing-markup-fret-diagrams.ly:55 (comment)
+#. input/lsr/customizing-markup-fret-diagrams.ly:77 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:53 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:75 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:102 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:153 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:175 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:202 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:252 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:274 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:301 (comment)
+msgid "verbose style"
+msgstr ""
+
+#. input/lsr/customizing-markup-fret-diagrams.ly:56 (comment)
+msgid "size 1.0"
+msgstr ""
+
+#. input/lsr/customizing-markup-fret-diagrams.ly:57 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:54 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:154 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:253 (comment)
+msgid "roman fret label, finger labels below string, straight barre"
+msgstr ""
+
+#. input/lsr/customizing-markup-fret-diagrams.ly:59 (comment)
+msgid "standard size"
+msgstr ""
+
+#. input/lsr/customizing-markup-fret-diagrams.ly:78 (comment)
+msgid "landscape orientation, arabic numbers, M for mute string"
+msgstr ""
+
+#. input/lsr/customizing-markup-fret-diagrams.ly:79 (comment)
+msgid "no barre, fret label down or left, small mute label font"
+msgstr ""
+
+#. input/lsr/customizing-markup-fret-diagrams.ly:100 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:124 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:224 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:323 (comment)
+msgid "simple D chord"
+msgstr ""
+
+#. input/lsr/customizing-markup-fret-diagrams.ly:102 (comment)
+msgid "larger dots, centered dots, fewer frets"
+msgstr ""
+
+#. input/lsr/customizing-markup-fret-diagrams.ly:103 (comment)
+msgid "label below string"
+msgstr ""
+
+#. input/lsr/defining-predefined-fretboards-for-other-instruments.ly:58 (comment)
+msgid "add FretBoards for the Cuatro"
+msgstr ""
+
+#. input/lsr/defining-predefined-fretboards-for-other-instruments.ly:59 (comment)
+msgid "Note: This section could be put into a separate file"
+msgstr ""
+
+#. input/lsr/defining-predefined-fretboards-for-other-instruments.ly:60 (comment)
+msgid "predefined-cuatro-fretboards.ly"
+msgstr "predefined-cuatro-fretboards.ly"
+
+#. input/lsr/defining-predefined-fretboards-for-other-instruments.ly:61 (comment)
+msgid "and \\included into each of your compositions"
+msgstr ""
+
+#. input/lsr/defining-predefined-fretboards-for-other-instruments.ly:63 (variable)
+msgid "cuatroTuning"
+msgstr ""
+
+#. input/lsr/defining-predefined-fretboards-for-other-instruments.ly:65 (variable)
+msgid "dSix"
+msgstr ""
+
+#. input/lsr/defining-predefined-fretboards-for-other-instruments.ly:66 (variable)
+msgid "dMajor"
+msgstr ""
+
+#. input/lsr/defining-predefined-fretboards-for-other-instruments.ly:67 (variable)
+msgid "aMajSeven"
+msgstr ""
+
+#. input/lsr/defining-predefined-fretboards-for-other-instruments.ly:68 (variable)
+msgid "dMajSeven"
+msgstr ""
+
+#. input/lsr/defining-predefined-fretboards-for-other-instruments.ly:69 (variable)
+msgid "gMajor"
+msgstr ""
+
+#. input/lsr/defining-predefined-fretboards-for-other-instruments.ly:87 (comment)
+msgid "end of potential include file /predefined-cuatro-fretboards.ly"
+msgstr ""
+
+#. input/lsr/defining-predefined-fretboards-for-other-instruments.ly:92 (variable)
+msgid "primerosNames"
+msgstr ""
+
+#. input/lsr/defining-predefined-fretboards-for-other-instruments.ly:96 (variable)
+msgid "primeros"
+msgstr ""
+
+#. input/lsr/demo-midiinstruments.ly:23 (variable)
+msgid "baseMelody"
+msgstr ""
+
+#. input/lsr/display-bracket-with-only-one-staff-in-a-system.ly:37 (comment)
+msgid "Must be lower than the actual number of staff lines"
+msgstr ""
+
+#. input/lsr/displaying-complex-chords.ly:16 (variable)
+msgid "fixA"
+msgstr ""
+
+#. input/lsr/displaying-complex-chords.ly:20 (variable)
+msgid "fixB"
+msgstr ""
+
+#. input/lsr/double-glissando.ly:20 (comment)
+msgid "new voice ( = \\voiceOne), hidden"
+msgstr ""
+
+#. input/lsr/double-glissando.ly:22 (comment)
+msgid "attach glissando to note heads"
+msgstr "rattachement du glissando aux têtes de note"
+
+#. input/lsr/double-glissando.ly:27 (comment)
+msgid "original voice with chords rearranged so that"
+msgstr ""
+
+#. input/lsr/double-glissando.ly:28 (comment)
+msgid "glissando is attached to a & c"
+msgstr ""
+
+#. input/lsr/embedding-native-postscript-in-a--markup-block.ly:23 (comment)
+msgid "PostScript is a registered trademark of Adobe Systems Inc."
+msgstr "PostScript est une marque déposée par Adobe Systems Inc."
+
+#. input/lsr/engravers-one-by-one.ly:75 (comment)
+msgid "sample music"
+msgstr ""
+
+#. input/lsr/engravers-one-by-one.ly:76 (variable)
+msgid "topVoice"
+msgstr ""
+
+#. input/lsr/engravers-one-by-one.ly:84 (variable)
+msgid "botVoice"
+msgstr ""
+
+#. input/lsr/engravers-one-by-one.ly:92 (variable)
+msgid "hoom"
+msgstr ""
+
+#. input/lsr/engravers-one-by-one.ly:103 (variable)
+msgid "pah"
+msgstr ""
+
+#. input/lsr/engravers-one-by-one.ly:113 (comment)
+msgid "setup for Request->Element conversion. Guru-only"
+msgstr ""
+
+#. input/lsr/engravers-one-by-one.ly:116 (variable)
+#. input/lsr/engravers-one-by-one.ly:221 (variable)
+#. input/lsr/engravers-one-by-one.ly:234 (variable)
+#. input/lsr/engravers-one-by-one.ly:290 (variable)
+#. input/lsr/engravers-one-by-one.ly:304 (variable)
+msgid "MyStaff"
+msgstr "MaPortee"
+
+#. input/lsr/engravers-one-by-one.ly:148 (comment)
+msgid "explicitly set instrument, so we don't get "
+msgstr ""
+
+#. input/lsr/engravers-one-by-one.ly:149 (comment)
+msgid "weird effects when doing instrument names for"
+msgstr ""
+
+#. input/lsr/engravers-one-by-one.ly:150 (comment)
+msgid "piano staves"
+msgstr "portées de piano"
+
+#. input/lsr/engravers-one-by-one.ly:159 (variable)
+#. input/lsr/engravers-one-by-one.ly:248 (variable)
+#. input/lsr/engravers-one-by-one.ly:261 (variable)
+#. input/lsr/engravers-one-by-one.ly:274 (variable)
+msgid "MyVoice"
+msgstr "MaVoix"
+
+#. input/lsr/engravers-one-by-one.ly:174 (comment)
+msgid "must come before all"
+msgstr ""
+
+#. input/lsr/engravers-one-by-one.ly:184 (comment)
+msgid "\\consists \\\"Rest_engraver\\\""
+msgstr ""
+
+#. input/lsr/flamenco-notation.ly:46 (comment)
+msgid "Cut here ----- Start 'flamenco.ly' "
+msgstr ""
+
+#. input/lsr/flamenco-notation.ly:48 (comment)
+msgid "Text indicators"
+msgstr ""
+
+#. input/lsr/flamenco-notation.ly:49 (variable)
+msgid "abanico"
+msgstr ""
+
+#. input/lsr/flamenco-notation.ly:50 (variable)
+msgid "rasgueaso"
+msgstr ""
+
+#. input/lsr/flamenco-notation.ly:51 (variable)
+msgid "alzapua"
+msgstr ""
+
+#. input/lsr/flamenco-notation.ly:53 (comment)
+msgid "Finger stroke symbols"
+msgstr ""
+
+#. input/lsr/flamenco-notation.ly:54 (variable)
+msgid "strokeUp"
+msgstr ""
+
+#. input/lsr/flamenco-notation.ly:64 (variable)
+msgid "strokeDown"
+msgstr ""
+
+#. input/lsr/flamenco-notation.ly:74 (comment)
+msgid "Golpe symbol"
+msgstr ""
+
+#. input/lsr/flamenco-notation.ly:75 (variable)
+msgid "golpe"
+msgstr ""
+
+#. input/lsr/flamenco-notation.ly:89 (variable)
+msgid "strokeUpGolpe"
+msgstr ""
+
+#. input/lsr/flamenco-notation.ly:90 (variable)
+msgid "iUpGolpe"
+msgstr ""
+
+#. input/lsr/flamenco-notation.ly:92 (comment)
+msgid "Strokes for all fingers"
+msgstr ""
+
+#. input/lsr/flamenco-notation.ly:93 (variable)
+msgid "pUp"
+msgstr ""
+
+#. input/lsr/flamenco-notation.ly:94 (variable)
+msgid "pDown"
+msgstr ""
+
+#. input/lsr/flamenco-notation.ly:95 (variable)
+msgid "iUp"
+msgstr ""
+
+#. input/lsr/flamenco-notation.ly:96 (variable)
+msgid "iDown"
+msgstr ""
+
+#. input/lsr/flamenco-notation.ly:97 (variable)
+msgid "mUp"
+msgstr ""
+
+#. input/lsr/flamenco-notation.ly:98 (variable)
+msgid "mDown"
+msgstr ""
+
+#. input/lsr/flamenco-notation.ly:99 (variable)
+msgid "aUp"
+msgstr ""
+
+#. input/lsr/flamenco-notation.ly:100 (variable)
+msgid "aDown"
+msgstr ""
+
+#. input/lsr/flamenco-notation.ly:101 (variable)
+msgid "xUp"
+msgstr ""
+
+#. input/lsr/flamenco-notation.ly:102 (variable)
+msgid "xDown"
+msgstr ""
+
+#. input/lsr/flamenco-notation.ly:105 (comment)
+msgid "Just handy :)"
+msgstr ""
+
+#. input/lsr/flamenco-notation.ly:106 (variable)
+msgid "tupletOff"
+msgstr "noletNon"
+
+#. input/lsr/flamenco-notation.ly:111 (variable)
+msgid "tupletsOff"
+msgstr "noletsNon"
+
+#. input/lsr/flamenco-notation.ly:116 (variable)
+msgid "tupletsOn"
+msgstr "noletsOui"
+
+#. input/lsr/flamenco-notation.ly:121 (variable)
+msgid "headsOff"
+msgstr "tetesNon"
+
+#. input/lsr/flamenco-notation.ly:127 (variable)
+msgid "headsOn"
+msgstr "tetesOui"
+
+#. input/lsr/flamenco-notation.ly:133 (comment)
+msgid "Cut here ----- End 'flamenco.ly' "
+msgstr ""
+
+#. input/lsr/flat-flags-and-beam-nibs.ly:109 (comment)
+msgid "Example 1"
+msgstr "Exemple 1"
+
+#. input/lsr/flat-flags-and-beam-nibs.ly:116 (comment)
+msgid "Example 2"
+msgstr "Exemple 2"
+
+#. input/lsr/flat-flags-and-beam-nibs.ly:123 (comment)
+msgid "Example 3"
+msgstr "Exemple 3"
+
+#. input/lsr/flat-flags-and-beam-nibs.ly:132 (comment)
+msgid "Example 4"
+msgstr "Exemple 4"
+
+#. input/lsr/flute-slap-notation.ly:18 (variable)
+msgid "slap"
+msgstr ""
+
+#. input/lsr/formatting-lyrics-syllables.ly:16 (comment)
+msgid ""
+"Tip taken from http://lists.gnu.org/archive/html/lilypond-user/2007-12/"
+"msg00215.html"
+msgstr ""
+"Truc extrait de http://lists.gnu.org/archive/html/lilypond-user/2007-12/"
+"msg00215.html"
+
+#. input/lsr/fret-diagrams-explained-and-developed.ly:39 (comment)
+msgid "A chord for ukelele, with formatting defined in definition string"
+msgstr ""
+
+#. input/lsr/fret-diagrams-explained-and-developed.ly:40 (comment)
+msgid "1.2 * size, 4 strings, 4 frets, fingerings below string"
+msgstr ""
+
+#. input/lsr/fret-diagrams-explained-and-developed.ly:41 (comment)
+msgid "dot radius .35 of fret spacing, dot position 0.55 of fret spacing"
+msgstr ""
+
+#. input/lsr/fret-diagrams-explained-and-developed.ly:50 (comment)
+msgid "These chords will be in normal orientation"
+msgstr ""
+
+#. input/lsr/fret-diagrams-explained-and-developed.ly:56 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:77 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:104 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:156 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:177 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:204 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:255 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:276 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:303 (comment)
+#, python-format
+msgid "110% of default size"
+msgstr "110 % de la taille par défaut"
+
+#. input/lsr/fret-diagrams-explained-and-developed.ly:74 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:174 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:273 (comment)
+msgid "Double barre used to test barre function"
+msgstr ""
+
+#. input/lsr/fret-diagrams-explained-and-developed.ly:101 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:201 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:300 (comment)
+msgid "C major for guitar, with capo on third fret"
+msgstr ""
+
+#. input/lsr/fret-diagrams-explained-and-developed.ly:136 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:235 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:334 (comment)
+msgid "simple D chord, large top fret thickness"
+msgstr ""
+
+#. input/lsr/fret-diagrams-explained-and-developed.ly:148 (comment)
+msgid "These chords will be in landscape orientation"
+msgstr ""
+
+#. input/lsr/fret-diagrams-explained-and-developed.ly:247 (comment)
+msgid "These chords will be in opposing-landscape orientation"
+msgstr ""
+
+#. input/lsr/grid-lines--changing-their-appearance.ly:33 (comment)
+msgid "this moves them up one staff space from the default position"
+msgstr ""
+
+#. input/lsr/grid-lines--changing-their-appearance.ly:51 (comment)
+msgid "set up grids"
+msgstr ""
+
+#. input/lsr/grid-lines--changing-their-appearance.ly:53 (comment)
+msgid "set the grid interval to one quarter note"
+msgstr ""
+
+#. input/lsr/grid-lines--changing-their-appearance.ly:59 (comment)
+msgid "this moves them to the right half a staff space"
+msgstr ""
+
+#. input/lsr/grid-lines--emphasizing-rhythms-and-notes-synchronization.ly:36 (comment)
+msgid "hides staff and notes so that only the grid lines are visible"
+msgstr ""
+
+#. input/lsr/grid-lines--emphasizing-rhythms-and-notes-synchronization.ly:43 (comment)
+msgid "dummy notes to force regular note spacing"
+msgstr ""
+
+#. input/lsr/grid-lines--emphasizing-rhythms-and-notes-synchronization.ly:59 (comment)
+msgid "center grid lines horizontally below note heads"
+msgstr ""
+
+#. input/lsr/grid-lines--emphasizing-rhythms-and-notes-synchronization.ly:66 (comment)
+msgid "set line length and positioning:"
+msgstr ""
+
+#. input/lsr/grid-lines--emphasizing-rhythms-and-notes-synchronization.ly:67 (comment)
+msgid "two staff spaces above center line on hidden staff"
+msgstr ""
+
+#. input/lsr/grid-lines--emphasizing-rhythms-and-notes-synchronization.ly:68 (comment)
+msgid "to four spaces below center line on visible staff"
+msgstr ""
+
+#. input/lsr/heavily-customized-polymetric-time-signatures.ly:51 (variable)
+msgid "drum"
+msgstr ""
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:54 (comment)
+msgid "Solution 1: Using a simple markup with a particular halign value"
+msgstr ""
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:55 (comment)
+msgid ""
+"Drawback: It's a markup, not a dynamic command, so \\dynamicDown etc. will "
+"have no effect"
+msgstr ""
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:56 (variable)
+msgid "semppMarkup"
+msgstr "semppMarque"
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:58 (comment)
+msgid ""
+"Solution 2: Using a dynamic script and shifting with \\once\\override ... "
+"#'X-offset = .."
+msgstr ""
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:59 (comment)
+msgid "Drawback: \\once\\override needed for every invocation"
+msgstr ""
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:60 (variable)
+msgid "semppK"
+msgstr ""
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:62 (comment)
+msgid ""
+"Solution 3: Padding the dynamic script so the center-alignment puts it to "
+"the correct position"
+msgstr ""
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:63 (comment)
+msgid ""
+"Drawback: the padding really reserves the space, nothing else can be there"
+msgstr ""
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:64 (variable)
+msgid "semppT"
+msgstr ""
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:72 (comment)
+msgid "Solution 4: Dynamic, setting the dimensions of the additional text to 0"
+msgstr ""
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:73 (comment)
+msgid ""
+"Drawback: To lilypond \\\"sempre\\\" has no extent, so it might put other "
+"stuff there => collisions"
+msgstr ""
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:74 (comment)
+msgid ""
+"Drawback: Also, there seems to be some spacing, so it's not exactly the "
+msgstr ""
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:75 (comment)
+msgid "same alignment as without the additional text"
+msgstr ""
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:76 (variable)
+msgid "semppM"
+msgstr ""
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:78 (comment)
+msgid "Solution 5: Dynamic with explicit shifting inside the scheme function"
+msgstr ""
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:79 (variable)
+msgid "semppG"
+msgstr ""
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:85 (comment)
+msgid ""
+"Solution 6: Dynamic with explicit alignment. This has only effect, if one "
+"sets X-offset!"
+msgstr ""
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:86 (comment)
+msgid "Drawback: One needs to set DynamicText #'X-offset!"
+msgstr ""
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:87 (comment)
+msgid ""
+"Drawback: Aligned at the right edge of the additional text, not at the "
+"center of pp"
+msgstr ""
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:88 (variable)
+msgid "semppMII"
+msgstr ""
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:114 (comment)
+msgid "Setting to ##f (false) gives the same resul"
+msgstr ""
+
+#. input/lsr/how-to-change-fret-diagram-position.ly:28 (variable)
+#. input/lsr/score-for-diatonic-accordion.ly:61 (variable)
+#. input/lsr/showing-chords-at-changes.ly:23 (variable)
+#. input/lsr/single-staff-template-with-notes,-lyrics,-and-chords.ly:44 (variable)
+#. input/lsr/single-staff-template-with-notes-and-chords.ly:42 (variable)
+msgid "harmonies"
+msgstr ""
+
+#. input/lsr/how-to-change-fret-diagram-position.ly:31 (comment)
+msgid "THE FOLLOWING IS THE COMMAND TO MOVE THE CHORD NAME"
+msgstr ""
+
+#. input/lsr/how-to-change-fret-diagram-position.ly:34 (comment)
+msgid "THIS LINE IS THE SECOND METHOD"
+msgstr ""
+
+#. input/lsr/how-to-change-fret-diagram-position.ly:44 (comment)
+msgid "THE FOLLOWING IS THE COMMAND TO MOVE THE FRET DIAGRAM"
+msgstr ""
+
+#. input/lsr/how-to-change-fret-diagram-position.ly:47 (comment)
+msgid "HERE IS THE SECOND METHOD"
+msgstr ""
+
+#. input/lsr/incipit.ly:72 (variable)
+#. input/lsr/incipit.ly:73 (context id)
+msgid "discantusIncipit"
+msgstr "discantusIncipit"
+
+#. input/lsr/incipit.ly:109 (variable)
+#. input/lsr/incipit.ly:110 (context id)
+msgid "altusIncipit"
+msgstr "altusIncipit"
+
+#. input/lsr/incipit.ly:125 (comment)
+#. input/lsr/incipit.ly:137 (comment)
+#. input/lsr/incipit.ly:167 (comment)
+#. input/lsr/incipit.ly:176 (comment)
+msgid "two measures"
+msgstr "deux mesures"
+
+#. input/lsr/incipit.ly:145 (variable)
+#. input/lsr/incipit.ly:146 (context id)
+msgid "tenorIncipit"
+msgstr "tenorIncipit"
+
+#. input/lsr/incipit.ly:182 (variable)
+#. input/lsr/incipit.ly:183 (context id)
+msgid "bassusIncipit"
+msgstr "bassusIncipit"
+
+#. input/lsr/incipit.ly:253 (comment)
+msgid "no bar lines in staves or lyrics"
+msgstr "pas de barre sur les portées ou dans les paroles"
+
+#. input/lsr/incipit.ly:256 (comment)
+msgid "the next two instructions keep the lyrics between the bar lines"
+msgstr ""
+
+#. input/lsr/incipit.ly:267 (comment)
+msgid "breaking also at those bar lines where a note overlaps"
+msgstr ""
+
+#. input/lsr/incipit.ly:268 (comment)
+msgid "into the next measure.  The command is commented out in this"
+msgstr ""
+
+#. input/lsr/inserting-score-fragments-above-a-staff,-as-markups.ly:16 (variable)
+msgid "tuning"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:52 (comment)
+msgid "#(set-global-staff-size 16)"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:55 (comment)
+msgid "Some macros %%%%%%%%%%%%%%%%%%%"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:57 (variable)
+msgid "sl"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:61 (variable)
+msgid "nsl"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:65 (variable)
+msgid "crOn"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:66 (variable)
+msgid "crOff"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:68 (comment)
+msgid "insert chord name style stuff here."
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:70 (variable)
+msgid "jazzChords"
+msgstr "jazzAccords"
+
+#. input/lsr/jazz-combo-template.ly:72 (comment)
+msgid "Keys'n'thangs %%%%%%%%%%%%%%%%%"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:76 (variable)
+msgid "Key"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:78 (comment)
+msgid "############ Horns ############"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:80 (comment)
+msgid "------ Trumpet ------"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:81 (variable)
+msgid "trpt"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:85 (variable)
+msgid "trpHarmony"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:88 (variable)
+#. input/lsr/jazz-combo-template.ly:268 (context id)
+msgid "trumpet"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:97 (comment)
+msgid "------ Alto Saxophone ------"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:98 (variable)
+msgid "alto"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:102 (variable)
+msgid "altoHarmony"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:105 (variable)
+msgid "altoSax"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:114 (comment)
+msgid "------ Baritone Saxophone ------"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:115 (variable)
+msgid "bari"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:123 (variable)
+msgid "bariHarmony"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:126 (variable)
+msgid "bariSax"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:135 (comment)
+msgid "------ Trombone ------"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:136 (variable)
+msgid "tbone"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:140 (variable)
+msgid "tboneHarmony"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:143 (variable)
+#. input/lsr/jazz-combo-template.ly:272 (context id)
+msgid "trombone"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:152 (comment)
+msgid "############ Rhythm Section #############"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:154 (comment)
+msgid "------ Guitar ------"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:155 (variable)
+msgid "gtr"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:163 (variable)
+msgid "gtrHarmony"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:167 (variable)
+#. input/lsr/jazz-combo-template.ly:277 (context id)
+#. input/lsr/polyphony-in-tablature.ly:48 (context id)
+#. input/lsr/polyphony-in-tablature.ly:53 (context id)
+msgid "guitar"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:176 (comment)
+msgid "------ Piano ------"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:177 (variable)
+msgid "rhUpper"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:182 (variable)
+msgid "rhLower"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:188 (variable)
+msgid "lhUpper"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:193 (variable)
+msgid "lhLower"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:199 (variable)
+msgid "PianoRH"
+msgstr "PianoMD"
+
+#. input/lsr/jazz-combo-template.ly:208 (variable)
+msgid "PianoLH"
+msgstr "PianoMG"
+
+#. input/lsr/jazz-combo-template.ly:226 (comment)
+msgid "------ Bass Guitar ------"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:240 (comment)
+msgid "------ Drums ------"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:254 (variable)
+msgid "drumContents"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:263 (comment)
+#, python-format
+msgid "It All Goes Together Here %%%%%%%%%%%%%%%%%%%%%%"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:267 (context id)
+msgid "horns"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:269 (context id)
+msgid "altosax"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:270 (context id)
+msgid "barichords"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:271 (context id)
+msgid "barisax"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:276 (context id)
+msgid "chords"
+msgstr ""
+
+#. input/lsr/makam-example.ly:26 (comment)
+msgid "Initialize makam settings"
+msgstr ""
+
+#. input/lsr/manually-break-figured-bass-extenders-for-only-some-numbers.ly:19 (variable)
+msgid "bassfigures"
+msgstr ""
+
+#. input/lsr/manually-controlling-beam-positions.ly:21 (comment)
+msgid "from upper staff-line (position 2) to center (position 0)"
+msgstr ""
+
+#. input/lsr/manually-controlling-beam-positions.ly:24 (comment)
+msgid "from center to one above center (position 1)"
+msgstr ""
+
+#. input/lsr/marking-notes-of-spoken-parts-with-a-cross-on-the-stem.ly:17 (variable)
+msgid "speakOn"
+msgstr ""
+
+#. input/lsr/marking-notes-of-spoken-parts-with-a-cross-on-the-stem.ly:33 (variable)
+msgid "speakOff"
+msgstr ""
+
+#. input/lsr/markup-lines.ly:19 (comment)
+msgid "Candide, Voltaire"
+msgstr ""
+
+#. input/lsr/mensurstriche-layout-bar-lines-between-the-staves.ly:32 (comment)
+msgid "the final bar line is not interrupted"
+msgstr ""
+
+#. input/lsr/merging-multi-measure-rests-in-a-polyphonic-part.ly:17 (variable)
+msgid "normalPos"
+msgstr ""
+
+#. input/lsr/modern-tab-text-clef.ly:16 (variable)
+msgid "TAB"
+msgstr ""
+
+#. input/lsr/modifying-default-values-for-articulation-shorthand-notation.ly:51 (variable)
+msgid "dashPlus"
+msgstr ""
+
+#. input/lsr/modifying-tuplet-bracket-length.ly:23 (comment)
+msgid "Set tuplets to be extendable..."
+msgstr ""
+
+#. input/lsr/modifying-tuplet-bracket-length.ly:25 (comment)
+msgid "...to cover all items up to the next note"
+msgstr ""
+
+#. input/lsr/modifying-tuplet-bracket-length.ly:29 (comment)
+msgid "...or to cover just whitespace"
+msgstr ""
+
+#. input/lsr/percussion-beaters.ly:18 (variable)
+msgid "stick"
+msgstr ""
+
+#. input/lsr/permitting-line-breaks-within-beamed-tuplets.ly:39 (comment)
+msgid "Permit line breaks within tuplets"
+msgstr ""
+
+#. input/lsr/permitting-line-breaks-within-beamed-tuplets.ly:41 (comment)
+msgid "Allow beams to be broken at line breaks"
+msgstr ""
+
+#. input/lsr/permitting-line-breaks-within-beamed-tuplets.ly:48 (comment)
+msgid "Insert a manual line break within a tuplet"
+msgstr ""
+
+#. input/lsr/piano-template-with-centered-dynamics.ly:56 (variable)
+msgid "pedal"
+msgstr "pedale"
+
+#. input/lsr/piano-template-with-centered-dynamics.ly:69 (comment)
+msgid "define Dynamics context"
+msgstr ""
+
+#. input/lsr/piano-template-with-centered-dynamics.ly:90 (comment)
+msgid "modify PianoStaff context to accept Dynamics context"
+msgstr ""
+
+#. input/lsr/polyphony-in-tablature.ly:47 (context id)
+msgid "tab"
+msgstr ""
+
+#. input/lsr/positioning-multi--measure-rests.ly:41 (comment)
+msgid "Multi-measure rests by default are set under the second line"
+msgstr ""
+
+#. input/lsr/positioning-multi--measure-rests.ly:43 (comment)
+msgid "They can be moved with an override"
+msgstr ""
+
+#. input/lsr/positioning-multi--measure-rests.ly:46 (comment)
+msgid "A value of 0 is the default position;"
+msgstr ""
+
+#. input/lsr/positioning-multi--measure-rests.ly:47 (comment)
+msgid "the following trick moves the rest to the center line"
+msgstr ""
+
+#. input/lsr/positioning-multi--measure-rests.ly:50 (comment)
+msgid "Multi-measure rests in odd-numbered voices are under the top line"
+msgstr ""
+
+#. input/lsr/positioning-multi--measure-rests.ly:52 (comment)
+msgid "Multi-measure rests in even-numbered voices are under the bottom line"
+msgstr ""
+
+#. input/lsr/positioning-multi--measure-rests.ly:54 (comment)
+msgid "They remain separated even in empty measures"
+msgstr ""
+
+#. input/lsr/positioning-multi--measure-rests.ly:56 (comment)
+msgid "This brings them together even though there are two voices"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:28 (comment)
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:49 (comment)
+msgid "Set segno sign as rehearsal mark and adjust size if needed"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:29 (comment)
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:51 (comment)
+msgid "\\once \\override Score.RehearsalMark #'font-size = #3"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:35 (comment)
+msgid "Set coda sign as rehearsal mark and adjust size if needed"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:42 (comment)
+msgid "Should Coda be on anew line?"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:43 (comment)
+msgid "Coda NOT on new line: use \\nobreak"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:44 (comment)
+msgid "Coda on new line: DON'T use \\nobreak"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:45 (comment)
+msgid "\\noBreak"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:54 (comment)
+msgid "Here begins the trickery! "
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:55 (comment)
+msgid ""
+"\\cadenzaOn will suppress the bar count and \\stopStaff removes the staff "
+"lines."
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:58 (comment)
+msgid "Some examples of possible text-displays "
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:60 (comment)
+msgid "text line-aligned"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:61 (comment)
+msgid "=================="
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:62 (comment)
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:68 (comment)
+msgid "Move text to the desired position"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:63 (comment)
+msgid "\\once \\override TextScript #'extra-offset = #'( 2 . -3.5 )"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:64 (comment)
+msgid "| s1*0^\\markup { D.S. al Coda } }"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:66 (comment)
+msgid "text center-aligned"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:67 (comment)
+msgid "===================="
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:69 (comment)
+msgid "\\once \\override TextScript #'extra-offset = #'( 6 . -5.0 )"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:70 (comment)
+msgid "| s1*0^\\markup { \\center-column { D.S. \\\"al Coda\\\" } }"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:72 (comment)
+msgid "text and symbols center-aligned"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:73 (comment)
+msgid "==============================="
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:74 (comment)
+msgid ""
+"Move text to the desired position and tweak spacing for optimum text "
+"alignment"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:75 (comment)
+msgid "\\once \\override TextScript #'extra-offset = #'( 8 . -5.5 )"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:81 (comment)
+msgid "Increasing the unfold counter will expand the staff-free space"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:86 (comment)
+msgid "Resume bar count and show staff lines again"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:90 (comment)
+msgid "Should Coda be on new line?"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:91 (comment)
+msgid "Coda NOT on new line: DON'T use \\break"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:92 (comment)
+msgid "Coda on new line: use \\break"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:95 (comment)
+msgid "Show up, you clef and key!"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:99 (comment)
+msgid "Set coda sign as rehearsal mark and adjust size and position"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:101 (comment)
+msgid ""
+"Put the coda sign ontop of the (treble-)clef dependend on coda's line-"
+"position"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:103 (comment)
+msgid "Coda NOT on new line, use this:"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:104 (comment)
+msgid "\\once \\override Score.RehearsalMark #'extra-offset = #'( -2 . 1.75 )"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:106 (comment)
+msgid "Coda on new line, use this:"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:112 (comment)
+msgid "The coda"
+msgstr "La coda"
+
+#. input/lsr/printing-metronome-and-rehearsal-marks-below-the-staff.ly:31 (comment)
+msgid "Metronome marks below the staff "
+msgstr "Indications métronimiques sous la portée"
+
+#. input/lsr/printing-metronome-and-rehearsal-marks-below-the-staff.ly:36 (comment)
+msgid "Rehearsal marks below the staff"
+msgstr "Indications de repère sous la portée"
+
+#. input/lsr/printing-music-with-different-time-signatures.ly:50 (variable)
+msgid "Bassklarinette"
+msgstr "ClarinetteBasse"
+
+#. input/lsr/printing-music-with-different-time-signatures.ly:90 (variable)
+msgid "Perkussion"
+msgstr "Percussions"
+
+#. input/lsr/quoting-another-voice-with-transposition.ly:37 (variable)
+msgid "quoteTest"
+msgstr ""
+
+#. input/lsr/quoting-another-voice-with-transposition.ly:38 (comment)
+msgid "french horn"
+msgstr "cor anglais"
+
+#. input/lsr/quoting-another-voice.ly:27 (variable)
+msgid "quoteMe"
+msgstr ""
+
+#. input/lsr/quoting-another-voice.ly:32 (variable)
+msgid "original"
+msgstr "original"
+
+#. input/lsr/removing-the-first-empty-line.ly:43 (comment)
+msgid "To use the setting globally, uncomment the following line:"
+msgstr ""
+
+#. input/lsr/removing-the-first-empty-line.ly:44 (comment)
+msgid "\\override VerticalAxisGroup #'remove-first = ##t"
+msgstr ""
+
+#. input/lsr/removing-the-first-empty-line.ly:53 (comment)
+msgid "To use the setting globally, comment this line,"
+msgstr ""
+
+#. input/lsr/removing-the-first-empty-line.ly:54 (comment)
+msgid "uncomment the line in the \\layout block above"
+msgstr ""
+
+#. input/lsr/reverting-default-beam-endings.ly:29 (comment)
+msgid "Default beaming"
+msgstr "Ligatures par défaut"
+
+#. input/lsr/reverting-default-beam-endings.ly:32 (comment)
+msgid "Revert default values in scm/auto-beam.scm for 12/8 time"
+msgstr "On annule les réglages par défaut de scm/autobeam.scm pour 12/8"
+
+#. input/lsr/reverting-default-beam-endings.ly:38 (comment)
+msgid "Set new values for beam endings"
+msgstr "puis on ajoute des règles de fin de ligature"
+
+#. input/lsr/rhythmic-slashes.ly:25 (comment)
+msgid "Macro to print single slash"
+msgstr ""
+
+#. input/lsr/rhythmic-slashes.ly:26 (variable)
+msgid "rs"
+msgstr ""
+
+#. input/lsr/rhythmic-slashes.ly:33 (comment)
+msgid "Function to print a specified number of slashes"
+msgstr ""
+
+#. input/lsr/rhythmic-slashes.ly:34 (variable)
+msgid "comp"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:69 (variable)
+msgid "NoStem"
+msgstr "SansHampe"
+
+#. input/lsr/score-for-diatonic-accordion.ly:70 (variable)
+msgid "NoNoteHead"
+msgstr "SansTetedeNote"
+
+#. input/lsr/score-for-diatonic-accordion.ly:71 (variable)
+msgid "ZeroBeam"
+msgstr "ZeroLigature"
+
+#. input/lsr/score-for-diatonic-accordion.ly:73 (variable)
+msgid "staffTabLine"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:78 (comment)
+msgid ""
+"Shows one horizontal line. The vertical line (simulating a bar-line) is "
+"simulated with a gridline"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:83 (comment)
+msgid ""
+"disable the following line to see the the noteheads while writing the song "
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:87 (comment)
+msgid "The beam between 8th-notes is used to draw the push-line"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:88 (comment)
+msgid "How to fast write the push-lines: "
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:89 (comment)
+msgid ""
+"1. write repeatedly 'c c c c c c c c |' for the whole length of the song "
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:90 (comment)
+msgid "2. uncomment the line \\NoNoteHead"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:91 (comment)
+msgid "3. compile"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:92 (comment)
+msgid "4. Mark the positions on which push/pull changes. "
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:93 (comment)
+msgid ""
+"In the score-picture click on the position the push- or pull-part starts "
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:94 (comment)
+msgid "(on the noteHead, the cursor will change to a hand-icon)."
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:95 (comment)
+msgid "The cursor in the source code will jump just at this position."
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:96 (comment)
+msgid "a) If a push-part starts there, replace the 'c' by an 'e['"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:97 (comment)
+msgid "b) If a pull-part starts there, replace the 'c' by an 's'"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:98 (comment)
+msgid "5. Switch into 'overwrite-mode' by pressing the 'ins' key. "
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:99 (comment)
+msgid "6. For the pull-parts overwrite the 'c' with 's' "
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:100 (comment)
+msgid "7. For every push-part replace the last 'c' with 'e]' "
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:101 (comment)
+msgid "8. Switch into 'insert-mode' again "
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:102 (comment)
+msgid ""
+"9. At last it should look lik e.g. (s s e[ c | c c c c c c c c | c c c c c c "
+"e] s s)"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:103 (comment)
+msgid "10. re-enable the line \\NoNoteHead"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:113 (comment)
+msgid "Accordion melody in tabulator score\t\t"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:114 (comment)
+msgid "1. Place a copy of the piano melody below"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:115 (comment)
+#. input/lsr/score-for-diatonic-accordion.ly:134 (comment)
+msgid ""
+"2. Separate piano melody into pull- and push-parts according to the "
+"staffTabLine you've already made      "
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:116 (comment)
+msgid ""
+"3. For each line: Double the line. Remark the 1st one (Keeps unchanged as "
+"reference) and then change the second line using the transformation paper"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:117 (comment)
+msgid "or the macros 'conv2diaton push.bsh' and 'conv2diaton pull.bsh' "
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:118 (comment)
+#. input/lsr/score-for-diatonic-accordion.ly:137 (comment)
+msgid "Tips:"
+msgstr "Astuces :"
+
+#. input/lsr/score-for-diatonic-accordion.ly:119 (comment)
+#. input/lsr/score-for-diatonic-accordion.ly:138 (comment)
+msgid "- In jEdit Search & Replace mark the Option 'Keep Dialog'"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:121 (variable)
+msgid "AccordionTabTwoCBesDur"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:122 (comment)
+msgid "pull 1"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:123 (comment)
+msgid "<f' bes'>8 <f' a'>8 <d' bes'>8 | "
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:125 (comment)
+msgid "push 2"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:126 (comment)
+msgid "<g' c''>4 <f' d''> <g' ees''> <f' a'> | "
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:128 (comment)
+msgid "pull 3"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:129 (comment)
+msgid "<f' bes'>2 r8 }"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:133 (comment)
+msgid "1. Place a copy of the piano melody above"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:135 (comment)
+msgid ""
+"3. For each line: Double the line. Remark the 1st one (Keeps unchanged as "
+"reference) and then "
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:136 (comment)
+msgid "change the second line using the transformation paper"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:139 (comment)
+msgid "- "
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:150 (comment)
+msgid "4/4 - tact. How many beats per bar"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:152 (comment)
+msgid "The following line has to be adjusted O-F-T-E-N."
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:161 (variable)
+msgid "staffVoice"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:169 (context id)
+msgid "melodyVoi"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:175 (variable)
+msgid "staffAccordionMel"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:176 (comment)
+msgid "Set the accidentals (Vorzeichen) for each note, "
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:177 (comment)
+msgid "do not remember them for the rest of the measure.  "
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:196 (variable)
+msgid "BassRhytm"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:197 (variable)
+msgid "LyricBassRhythmI"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:199 (variable)
+msgid "staffBassRhytm"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:200 (comment)
+msgid ""
+"This is not a RhythmicStaff  because it must be possible to append lyrics."
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:202 (comment)
+msgid "x.y"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:204 (comment)
+msgid ""
+"Shows one horizontal line. The vertical line (simulating a bar-line) is "
+"simulated by a grid"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:205 (comment)
+msgid "Search for 'grid' in this page to find all related functions "
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:208 (context id)
+msgid "VoiceBassRhytm"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:221 (comment)
+msgid ""
+"The vertical line (simulating a bar-line) in the staffBassRhytm is a "
+"gridline "
+msgstr ""
+
+#. input/lsr/single-staff-template-with-notes,-lyrics,-chords-and-frets.ly:24 (comment)
+msgid "Define the fret diagrams to be used"
+msgstr "Définition du diagramme de fret à utiliser"
+
+#. input/lsr/single-staff-template-with-notes,-lyrics,-chords-and-frets.ly:25 (variable)
+msgid "cFretDiagram"
+msgstr ""
+
+#. input/lsr/single-staff-template-with-notes,-lyrics,-chords-and-frets.ly:29 (variable)
+msgid "gFretDiagram"
+msgstr ""
+
+#. input/lsr/single-staff-template-with-notes,-lyrics,-chords-and-frets.ly:33 (variable)
+msgid "verseI"
+msgstr "coupletI"
+
+#. input/lsr/single-staff-template-with-notes,-lyrics,-chords-and-frets.ly:38 (variable)
+msgid "verseII"
+msgstr "coupletII"
+
+#. input/lsr/single-staff-template-with-notes,-lyrics,-chords-and-frets.ly:43 (variable)
+msgid "theChords"
+msgstr "lesAccords"
+
+#. input/lsr/single-staff-template-with-notes,-lyrics,-chords-and-frets.ly:45 (comment)
+msgid "insert the chords for chordnames here"
+msgstr ""
+
+#. input/lsr/single-staff-template-with-notes,-lyrics,-chords-and-frets.ly:50 (variable)
+msgid "staffMelody"
+msgstr ""
+
+#. input/lsr/single-staff-template-with-notes,-lyrics,-chords-and-frets.ly:51 (context id)
+msgid "voiceMelody"
+msgstr ""
+
+#. input/lsr/single-staff-template-with-notes,-lyrics,-chords-and-frets.ly:55 (comment)
+msgid "Type notes and fret diagram markups here"
+msgstr ""
+
+#. input/lsr/snap-pizzicato-markup-bartok-pizzicato.ly:54 (variable)
+msgid "snapPizzicato"
+msgstr ""
+
+#. input/lsr/snap-pizzicato-markup-bartok-pizzicato.ly:56 (comment)
+msgid "now it can be used as \\snappizzicato after the note/chord"
+msgstr ""
+
+#. input/lsr/snap-pizzicato-markup-bartok-pizzicato.ly:57 (comment)
+msgid "Note that a direction (-, ^ or _) is required."
+msgstr ""
+
+#. input/lsr/snap-pizzicato-markup-bartok-pizzicato.ly:60 (comment)
+msgid "This does NOT work:"
+msgstr ""
+
+#. input/lsr/snap-pizzicato-markup-bartok-pizzicato.ly:61 (comment)
+msgid "<c e g>\\snapPizzicato"
+msgstr ""
+
+#. input/lsr/stemlets.ly:35 (comment)
+msgid "N.B. use Score.Stem to set for the whole score."
+msgstr ""
+
+#. input/lsr/string-quartet-template-simple.ly:34 (variable)
+msgid "violinOne"
+msgstr "violonUn"
+
+#. input/lsr/string-quartet-template-simple.ly:43 (variable)
+msgid "violinTwo"
+msgstr "violonDeux"
+
+#. input/lsr/string-quartet-template-simple.ly:52 (variable)
+msgid "viola"
+msgstr "viola"
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:77 (comment)
+msgid "piece.ly"
+msgstr "piece.ly"
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:78 (comment)
+msgid "(This is the global definitions file)"
+msgstr ""
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:85 (variable)
+msgid "Violinone"
+msgstr "Violonun"
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:90 (comment)
+#. input/lsr/string-quartet-template-with-separate-parts.ly:96 (comment)
+#. input/lsr/string-quartet-template-with-separate-parts.ly:103 (comment)
+msgid "*********************************"
+msgstr ""
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:91 (variable)
+msgid "Violintwo"
+msgstr "Violondeux"
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:97 (variable)
+msgid "Viola"
+msgstr "Viola"
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:104 (variable)
+msgid "Cello"
+msgstr "Cello"
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:110 (comment)
+msgid "**********************************"
+msgstr ""
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:121 (comment)
+msgid "These are the other files you need to save on your computer"
+msgstr ""
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:123 (comment)
+msgid "score.ly"
+msgstr "score.ly"
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:124 (comment)
+msgid "(This is the main file)"
+msgstr ""
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:127 (comment)
+#, python-format
+msgid ""
+"\\include \\\"piece.ly\\\"             %%% uncomment this line when using a "
+"separate file"
+msgstr ""
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:136 (comment)
+msgid "{ Uncomment this block when using separate files"
+msgstr ""
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:138 (comment)
+msgid "vn1.ly"
+msgstr "vn1.ly"
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:139 (comment)
+msgid "(This is the Violin 1 part file)"
+msgstr ""
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:148 (comment)
+msgid "vn2.ly"
+msgstr "vn2.ly"
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:149 (comment)
+msgid "(This is the Violin 2 part file)"
+msgstr ""
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:158 (comment)
+msgid "vla.ly"
+msgstr "vla.ly"
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:159 (comment)
+msgid "(This is the Viola part file)"
+msgstr ""
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:168 (comment)
+msgid "vlc.ly"
+msgstr "vcl.ly"
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:169 (comment)
+msgid "(This is the Cello part file)"
+msgstr ""
+
+#. input/lsr/sub-dividing-beams.ly:50 (comment)
+msgid "Set beam sub-group length to an eighth note"
+msgstr "Subdivision des ligatures à la croche"
+
+#. input/lsr/sub-dividing-beams.ly:54 (comment)
+msgid "Set beam sub-group length to a sixteenth note"
+msgstr "Subdivision des ligatures à la double-croche"
+
+#. input/lsr/suppressing-warnings-for-clashing-note-columns.ly:19 (variable)
+msgid "ignore"
+msgstr ""
+
+#. input/lsr/three-sided-box.ly:16 (comment)
+msgid "New command to add a three sided box, with sides north, west and south"
+msgstr ""
+
+#. input/lsr/three-sided-box.ly:17 (comment)
+msgid "Based on the box-stencil command defined in scm/stencil.scm"
+msgstr ""
+
+#. input/lsr/three-sided-box.ly:18 (comment)
+msgid "Note that \\\";\\\" is used to comment a line in Scheme"
+msgstr ""
+
+#. input/lsr/three-sided-box.ly:32 (comment)
+msgid "The corresponding markup command, based on the \\box command defined "
+msgstr ""
+
+#. input/lsr/three-sided-box.ly:33 (comment)
+msgid "in scm/define-markup-commands.scm"
+msgstr ""
+
+#. input/lsr/three-sided-box.ly:45 (comment)
+msgid "Test it:"
+msgstr ""
+
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:35 (comment)
+msgid "make the staff lines invisible on staves"
+msgstr ""
+
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:127 (variable)
+msgid "incipitDiscantus"
+msgstr "incipitDiscantus"
+
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:151 (variable)
+msgid "incipitAltus"
+msgstr "incipitAltus"
+
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:176 (variable)
+msgid "incipitTenor"
+msgstr "incipitTenor"
+
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:202 (variable)
+msgid "incipitBassus"
+msgstr "incipitBassus"
+
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:226 (comment)
+msgid ""
+"StaffGroup is used instead of ChoirStaff to get bar lines between systems"
+msgstr ""
+
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:258 (comment)
+msgid "Keep the bass lyrics outside of the staff group to avoid bar lines"
+msgstr ""
+
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:259 (comment)
+msgid "between the lyrics."
+msgstr ""
+
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:269 (comment)
+msgid "the next three instructions keep the lyrics between the barlines"
+msgstr ""
+
+#. input/lsr/transposing-pitches-with-minimum-accidentals-smart-transpose.ly:132 (variable)
+msgid "naturalizeMusic"
+msgstr ""
+
+#. input/lsr/tweaking-clef-properties.ly:111 (comment)
+msgid "The default treble clef"
+msgstr ""
+
+#. input/lsr/tweaking-clef-properties.ly:113 (comment)
+msgid "The standard bass clef"
+msgstr ""
+
+#. input/lsr/tweaking-clef-properties.ly:118 (comment)
+msgid "The baritone clef"
+msgstr ""
+
+#. input/lsr/tweaking-clef-properties.ly:123 (comment)
+msgid "The standard choral tenor clef"
+msgstr ""
+
+#. input/lsr/tweaking-clef-properties.ly:129 (comment)
+msgid "A non-standard clef"
+msgstr ""
+
+#. input/lsr/tweaking-clef-properties.ly:135 (comment)
+msgid "The following clef changes do not preserve"
+msgstr ""
+
+#. input/lsr/tweaking-clef-properties.ly:136 (comment)
+msgid "the normal relationship between notes and clefs:"
+msgstr ""
+
+#. input/lsr/tweaking-clef-properties.ly:151 (comment)
+msgid "Return to the normal clef:"
+msgstr ""
+
+#. input/lsr/using-beatlength-and-beatgrouping.ly:34 (comment)
+msgid "The default in 3/4 time is to beam in three groups"
+msgstr ""
+
+#. input/lsr/using-beatlength-and-beatgrouping.ly:35 (comment)
+msgid "each of a quarter note length"
+msgstr ""
+
+#. input/lsr/using-beatlength-and-beatgrouping.ly:39 (comment)
+msgid "No auto-beaming is defined for 12/16"
+msgstr ""
+
+#. input/lsr/using-beatlength-and-beatgrouping.ly:43 (comment)
+msgid "Change time signature symbol, but retain underlying 3/4 beaming"
+msgstr "la métrique change mais on garde les règles de ligatures en 3/4"
+
+#. input/lsr/using-beatlength-and-beatgrouping.ly:47 (comment)
+msgid "The 3/4 time default grouping of (1 1 1) and beatLength of 1/8"
+msgstr ""
+
+#. input/lsr/using-beatlength-and-beatgrouping.ly:48 (comment)
+msgid "are not consistent with a measureLength of 3/4, so the beams"
+msgstr ""
+
+#. input/lsr/using-beatlength-and-beatgrouping.ly:49 (comment)
+msgid "are grouped at beatLength intervals"
+msgstr ""
+
+#. input/lsr/using-beatlength-and-beatgrouping.ly:53 (comment)
+msgid "Specify beams in groups of (3 3 2 3) 1/16th notes"
+msgstr ""
+
+#. input/lsr/using-beatlength-and-beatgrouping.ly:54 (comment)
+msgid "3+3+2+3=11, and 11*1/16<>3/4, so beatGrouping does not apply,"
+msgstr ""
+
+#. input/lsr/using-beatlength-and-beatgrouping.ly:55 (comment)
+msgid "and beams are grouped at beatLength (1/16) intervals"
+msgstr ""
+
+#. input/lsr/using-beatlength-and-beatgrouping.ly:60 (comment)
+msgid "Specify beams in groups of (3 4 2 3) 1/16th notes"
+msgstr ""
+
+#. input/lsr/using-beatlength-and-beatgrouping.ly:61 (comment)
+msgid "3+4+2+3=12, and 12*1/16=3/4, so beatGrouping applies"
+msgstr ""
+
+#. input/lsr/using-postscript-to-generate-special-note-head-shapes.ly:26 (variable)
+msgid "parallelogram"
+msgstr "parallelogramme"
+
+#. input/lsr/using-postscript-to-generate-special-note-head-shapes.ly:41 (variable)
+msgid "myNoteHeads"
+msgstr "tetePersonnalisee"
+
+#. input/lsr/using-postscript-to-generate-special-note-head-shapes.ly:42 (variable)
+msgid "normalNoteHeads"
+msgstr "teteNormale"
+
+#. input/lsr/utf-8.ly:34 (comment)
+msgid "end verbatim - this comment is a hack to prevent texinfo.tex"
+msgstr ""
+
+#. input/lsr/utf-8.ly:35 (comment)
+msgid "from choking on non-European UTF-8 subsets"
+msgstr ""
+
+#. input/lsr/utf-8.ly:36 (comment)
+msgid "Cyrillic font"
+msgstr "Caractères cyrilliques"
+
+#. input/lsr/utf-8.ly:37 (variable)
+msgid "bulgarian"
+msgstr "bulgare"
+
+#. input/lsr/utf-8.ly:41 (variable)
+msgid "hebrew"
+msgstr "hébreux"
+
+#. input/lsr/utf-8.ly:45 (variable)
+msgid "japanese"
+msgstr "japonais"
+
+#. input/lsr/utf-8.ly:52 (comment)
+msgid "\\\"a legal song to you\\\""
+msgstr "\\\"a legal song to you\\\""
+
+#. input/lsr/utf-8.ly:53 (variable)
+msgid "portuguese"
+msgstr "portugais"
+
+#. input/lsr/vertically-centered-common-lyrics.ly:19 (variable)
+msgid "leftbrace"
+msgstr "accoladegauche"
+
+#. input/lsr/vertically-centered-common-lyrics.ly:20 (variable)
+msgid "rightbrace"
+msgstr "accoladedroite"
+
+#. input/lsr/vertically-centered-common-lyrics.ly:22 (variable)
+msgid "dropLyrics"
+msgstr ""
+
+#. input/lsr/vertically-centered-common-lyrics.ly:29 (variable)
+msgid "raiseLyrics"
+msgstr ""
+
+#. input/lsr/vertically-centered-common-lyrics.ly:36 (variable)
+msgid "skipFour"
+msgstr ""
+
+#. input/lsr/vertically-centered-common-lyrics.ly:38 (variable)
+msgid "lyricsA"
+msgstr "parolesA"
+
+#. input/lsr/vertically-centered-common-lyrics.ly:40 (variable)
+msgid "lyricsB"
+msgstr "parolesB"
+
+#. input/lsr/vertically-centered-common-lyrics.ly:41 (variable)
+msgid "lyricsC"
+msgstr "parolesC"
+
+#. input/lsr/vertically-centered-common-lyrics.ly:42 (variable)
+msgid "lyricsD"
+msgstr "parolesD"
+
+#. input/lsr/vertically-centered-common-lyrics.ly:49 (context id)
+msgid "m"
+msgstr "m"
+
+#. input/lsr/vocal-ensemble-template-with-automatic-piano-reduction.ly:51 (variable)
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:42 (variable)
+#. input/lsr/vocal-ensemble-template.ly:47 (variable)
+msgid "sopMusic"
+msgstr "sopranoMusique"
+
+#. input/lsr/vocal-ensemble-template-with-automatic-piano-reduction.ly:54 (variable)
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:45 (variable)
+#. input/lsr/vocal-ensemble-template.ly:50 (variable)
+msgid "sopWords"
+msgstr "sopranoParoles"
+
+#. input/lsr/vocal-ensemble-template-with-automatic-piano-reduction.ly:83 (context id)
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:72 (context id)
+#. input/lsr/vocal-ensemble-template.ly:78 (context id)
+msgid "women"
+msgstr "femmes"
+
+#. input/lsr/vocal-ensemble-template-with-automatic-piano-reduction.ly:89 (context id)
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:82 (context id)
+#. input/lsr/vocal-ensemble-template.ly:90 (context id)
+msgid "men"
+msgstr "hommes"
+
+#. input/lsr/vocal-ensemble-template-with-automatic-piano-reduction.ly:118 (comment)
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:94 (comment)
+#. input/lsr/vocal-ensemble-template.ly:108 (comment)
+msgid "a little smaller so lyrics"
+msgstr ""
+
+#. input/lsr/vocal-ensemble-template-with-automatic-piano-reduction.ly:119 (comment)
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:95 (comment)
+#. input/lsr/vocal-ensemble-template.ly:109 (comment)
+msgid "can be closer to the staff"
+msgstr ""
+
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:78 (comment)
+msgid "we could remove the line about this with the line below, since we want"
+msgstr ""
+
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:79 (comment)
+msgid "the alto lyrics to be below the alto Voice anyway."
+msgstr ""
+
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:80 (comment)
+msgid "\\new Lyrics \\lyricsto altos \\altoWords"
+msgstr ""
+
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:89 (comment)
+msgid "again, we could replace the line above this with the line below."
+msgstr ""
+
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:90 (comment)
+msgid "\\new Lyrics \\lyricsto basses \\bassWords"
+msgstr ""
+
+#. input/lsr/volta-multi-staff.ly:13 (variable)
+msgid "voltaMusic"
+msgstr ""
+
+msgid "Up:"
+msgstr "Haut&nbsp;:"
+
+msgid "Next:"
+msgstr "Suivant&nbsp;:"
+
+msgid "Previous:"
+msgstr "Précédent&nbsp;:"
+
+msgid "Appendix "
+msgstr "Annexe "
+
+msgid "Footnotes"
+msgstr "Notes de bas de page"
+
+msgid "Table of Contents"
+msgstr "Table des matières"
+
+#~ msgid "baritone"
+#~ msgstr "baryton"
 
-#~ msgid "force-hshift-Eigenschaft"
-#~ msgstr "la propriété force-hshift"
+#~ msgid "semitone"
+#~ msgstr "demi-ton"
 
-#~ msgid "Laissez vibrer ties"
-#~ msgstr "Liaisons ``laissez vibrer''"
+#~ msgid "How LilyPond files work"
+#~ msgstr "Organisation des fichiers LilyPond"
diff --git a/Documentation/po/ja.po b/Documentation/po/ja.po
new file mode 100644 (file)
index 0000000..f7d0173
--- /dev/null
@@ -0,0 +1,13208 @@
+# translation of LilyPond documentation
+# Copyright (C) 2006 Han-Wen Nienhuys, Jan Nieuwenhuizen
+# This file is distributed under the same license as the lilypond package.
+# Yoshiki Sawada <sawada.yoshiki@gmail.com>, 2009.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: ja\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-02-14 02:23+0100\n"
+"PO-Revision-Date: 2009-01-15 13:24+0900\n"
+"Last-Translator: Yoshiki Sawada <sawada.yoshiki@gmail.com>\n"
+"Language-Team: 日本語 <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+# not yet
+#: postprocess_html.py:45
+#, python-format
+msgid "This page is for %(package_name)s-%(package_version)s (%(branch_str)s)."
+msgstr ""
+"このページは %(package_name)s-%(package_version)s (%(branch_str)s) を対象とし"
+"ています。"
+
+# not yet
+#: postprocess_html.py:47
+#, python-format
+msgid ""
+"Your <a href=\"%(suggest_Docs_url)s\">suggestions for the documentation</a> "
+"are welcome, please report errors to our <a href=\"%(mail_address_url)s"
+"\">bug list</a>."
+msgstr ""
+
+#: postprocess_html.py:59
+#, python-format
+msgid "Other languages: %s."
+msgstr "他の言語: %s"
+
+# not yet
+#: postprocess_html.py:60
+#, python-format
+msgid "About <A HREF=\"%s\">automatic language selection</A>."
+msgstr ""
+
+#: postprocess_html.py:316
+msgid "stable-branch"
+msgstr "安定版"
+
+#: postprocess_html.py:318
+msgid "development-branch"
+msgstr "開発版"
+
+#: texi-gettext.py:63
+msgid ""
+"This section has not been translated yet; please refer to the manual in "
+"English."
+msgstr ""
+"このセクションはまだ翻訳されていません。英語で書かれたマニュアルを参照してく"
+"ださい。"
+
+#: translations-status.py:59
+msgid "Section titles"
+msgstr "セクション タイトル"
+
+#: translations-status.py:60
+#, python-format
+msgid " <p><i>Last updated %s</i></p>\n"
+msgstr " <p><i>最終更新日 %s</i></p>\n"
+
+#: translations-status.py:61
+msgid "Translators"
+msgstr "翻訳者"
+
+#: translations-status.py:61
+msgid "Translation checkers"
+msgstr "翻訳点検者"
+
+#: translations-status.py:62
+msgid "Translated"
+msgstr "翻訳済み"
+
+#: translations-status.py:62
+msgid "Up to date"
+msgstr "最新"
+
+#: translations-status.py:63
+msgid "Other info"
+msgstr "その他の情報"
+
+#: translations-status.py:65
+msgid "no"
+msgstr "いいえ"
+
+#: translations-status.py:66
+msgid "not translated"
+msgstr "未翻訳"
+
+#: translations-status.py:68
+#, python-format
+msgid "partially (%(p)d %%)"
+msgstr "一部 (%(p)d %%)"
+
+# not yet
+#: translations-status.py:70
+#, python-format
+msgid "partially translated (%(p)d %%)"
+msgstr ""
+
+#: translations-status.py:71 translations-status.py:73
+msgid "yes"
+msgstr "はい"
+
+#: translations-status.py:72
+msgid "translated"
+msgstr ""
+
+#: translations-status.py:73 translations-status.py:74
+msgid "up to date"
+msgstr "最新"
+
+# not yet
+#: translations-status.py:75
+msgid "partially"
+msgstr ""
+
+# not yet
+#: translations-status.py:76
+msgid "partially up to date"
+msgstr ""
+
+# not yet
+#: translations-status.py:77
+msgid "N/A"
+msgstr ""
+
+# not needed to translate
+#: translations-status.py:78
+msgid "pre-GDP"
+msgstr ""
+
+# not needed to translate
+#: translations-status.py:79
+msgid "post-GDP"
+msgstr ""
+
+# not yet
+#. -*- coding: utf-8 -*-
+#. @node in Documentation/user/lilypond-learning.tely
+#. @node in Documentation/user/lilypond-program.tely
+#. @node in Documentation/user/lilypond.tely
+#. @node in Documentation/fr/user/lilypond-learning.tely
+#. @node in Documentation/fr/user/lilypond-program.tely
+#. @node in Documentation/fr/user/lilypond.tely
+#. @node in Documentation/es/user/lilypond-learning.tely
+#. @node in Documentation/es/user/lilypond-program.tely
+#. @node in Documentation/es/user/lilypond.tely
+#. @node in Documentation/de/user/lilypond-learning.tely
+#. @node in Documentation/de/user/lilypond-program.tely
+#. @node in Documentation/de/user/lilypond.tely
+#. @node in Documentation/ja/user/lilypond-learning.tely
+#. @node in Documentation/ja/user/lilypond-program.tely
+msgid "Top"
+msgstr "トップ ページ"
+
+#. @top in Documentation/user/lilypond-learning.tely
+msgid "GNU LilyPond --- Learning Manual"
+msgstr "GNU LilyPond --- 学習マニュアル"
+
+#. @node in Documentation/user/lilypond-learning.tely
+#. @appendix in Documentation/user/lilypond-learning.tely
+#. @node in Documentation/user/lilypond-program.tely
+#. @appendix in Documentation/user/lilypond-program.tely
+#. @node in Documentation/user/lilypond.tely
+#. @appendix in Documentation/user/lilypond.tely
+#. @node in Documentation/fr/user/lilypond-learning.tely
+#. @appendix in Documentation/fr/user/lilypond-learning.tely
+#. @node in Documentation/fr/user/lilypond-program.tely
+#. @appendix in Documentation/fr/user/lilypond-program.tely
+#. @node in Documentation/fr/user/lilypond.tely
+#. @appendix in Documentation/fr/user/lilypond.tely
+#. @node in Documentation/es/user/lilypond-learning.tely
+#. @appendix in Documentation/es/user/lilypond-learning.tely
+#. @node in Documentation/es/user/lilypond-program.tely
+#. @appendix in Documentation/es/user/lilypond-program.tely
+#. @node in Documentation/es/user/lilypond.tely
+#. @appendix in Documentation/es/user/lilypond.tely
+#. @node in Documentation/de/user/lilypond-learning.tely
+#. @appendix in Documentation/de/user/lilypond-learning.tely
+#. @node in Documentation/de/user/lilypond-program.tely
+#. @appendix in Documentation/de/user/lilypond-program.tely
+#. @node in Documentation/de/user/lilypond.tely
+#. @appendix in Documentation/de/user/lilypond.tely
+#. @node in Documentation/ja/user/lilypond-learning.tely
+#. @appendix in Documentation/ja/user/lilypond-learning.tely
+#. @node in Documentation/ja/user/lilypond-program.tely
+#. @appendix in Documentation/ja/user/lilypond-program.tely
+msgid "LilyPond index"
+msgstr "LilyPond インデックス"
+
+#. @subsubheading in Documentation/user/macros.itexi
+#. @subsubheading in Documentation/fr/user/macros.itexi
+#. @subsubheading in Documentation/de/user/macros.itexi
+#. @subsubheading in Documentation/ja/user/macros.itexi
+msgid "Predefined commands"
+msgstr "定義済みコマンド"
+
+# not yet
+#. @subsubheading in Documentation/user/macros.itexi
+#. @subsubheading in Documentation/fr/user/macros.itexi
+#. @subsubheading in Documentation/de/user/macros.itexi
+#. @subsubheading in Documentation/ja/user/macros.itexi
+msgid "Selected Snippets"
+msgstr ""
+
+# pending
+#. @subsubheading in Documentation/user/macros.itexi
+#. @subsubheading in Documentation/fr/user/macros.itexi
+#. @subsubheading in Documentation/de/user/macros.itexi
+#. @subsubheading in Documentation/ja/user/macros.itexi
+msgid "See also"
+msgstr "参照"
+
+#. @subsubheading in Documentation/user/macros.itexi
+#. @subsubheading in Documentation/fr/user/macros.itexi
+#. @subsubheading in Documentation/de/user/macros.itexi
+#. @subsubheading in Documentation/ja/user/macros.itexi
+msgid "Known issues and warnings"
+msgstr "既知の問題と警告"
+
+#. @node in Documentation/user/preface.itely
+#. @unnumbered in Documentation/user/preface.itely
+#. @node in Documentation/fr/user/preface.itely
+#. @unnumbered in Documentation/fr/user/preface.itely
+#. @node in Documentation/es/user/preface.itely
+#. @unnumbered in Documentation/es/user/preface.itely
+#. @node in Documentation/de/user/preface.itely
+#. @unnumbered in Documentation/de/user/preface.itely
+#. @node in Documentation/ja/user/preface.itely
+#. @unnumbered in Documentation/ja/user/preface.itely
+msgid "Preface"
+msgstr "序文"
+
+#. @node in Documentation/user/introduction.itely
+#. @chapter in Documentation/user/introduction.itely
+#. @node in Documentation/fr/user/introduction.itely
+#. @chapter in Documentation/fr/user/introduction.itely
+#. @node in Documentation/es/user/introduction.itely
+#. @chapter in Documentation/es/user/introduction.itely
+#. @node in Documentation/de/user/introduction.itely
+#. @chapter in Documentation/de/user/introduction.itely
+#. @node in Documentation/ja/user/introduction.itely
+#. @chapter in Documentation/ja/user/introduction.itely
+msgid "Introduction"
+msgstr "導入部"
+
+#. @node in Documentation/user/introduction.itely
+#. @section in Documentation/user/introduction.itely
+#. @node in Documentation/fr/user/introduction.itely
+#. @section in Documentation/fr/user/introduction.itely
+#. @node in Documentation/es/user/introduction.itely
+#. @section in Documentation/es/user/introduction.itely
+#. @node in Documentation/de/user/introduction.itely
+#. @section in Documentation/de/user/introduction.itely
+#. @node in Documentation/ja/user/introduction.itely
+#. @section in Documentation/ja/user/introduction.itely
+msgid "Background"
+msgstr "バックグラウンド"
+
+#. @node in Documentation/user/introduction.itely
+#. @unnumberedsubsec in Documentation/user/introduction.itely
+#. @node in Documentation/fr/user/introduction.itely
+#. @unnumberedsubsec in Documentation/fr/user/introduction.itely
+#. @node in Documentation/es/user/introduction.itely
+#. @unnumberedsubsec in Documentation/es/user/introduction.itely
+#. @node in Documentation/de/user/introduction.itely
+#. @unnumberedsubsec in Documentation/de/user/introduction.itely
+#. @node in Documentation/ja/user/introduction.itely
+#. @unnumberedsubsec in Documentation/ja/user/introduction.itely
+msgid "Engraving"
+msgstr "譜刻"
+
+#. @node in Documentation/user/introduction.itely
+#. @unnumberedsubsec in Documentation/user/introduction.itely
+#. @node in Documentation/fr/user/introduction.itely
+#. @unnumberedsubsec in Documentation/fr/user/introduction.itely
+#. @node in Documentation/es/user/introduction.itely
+#. @unnumberedsubsec in Documentation/es/user/introduction.itely
+#. @node in Documentation/de/user/introduction.itely
+#. @unnumberedsubsec in Documentation/de/user/introduction.itely
+#. @node in Documentation/ja/user/introduction.itely
+#. @unnumberedsubsec in Documentation/ja/user/introduction.itely
+msgid "Automated engraving"
+msgstr "自動譜刻"
+
+#. @node in Documentation/user/introduction.itely
+#. @unnumberedsubsec in Documentation/user/introduction.itely
+#. @node in Documentation/fr/user/introduction.itely
+#. @unnumberedsubsec in Documentation/fr/user/introduction.itely
+#. @node in Documentation/es/user/introduction.itely
+#. @unnumberedsubsec in Documentation/es/user/introduction.itely
+#. @node in Documentation/de/user/introduction.itely
+#. @unnumberedsubsec in Documentation/de/user/introduction.itely
+#. @node in Documentation/ja/user/introduction.itely
+#. @unnumberedsubsec in Documentation/ja/user/introduction.itely
+msgid "What symbols to engrave?"
+msgstr "譜刻するシンボルは何か?"
+
+#. @node in Documentation/user/introduction.itely
+#. @unnumberedsubsec in Documentation/user/introduction.itely
+#. @node in Documentation/fr/user/introduction.itely
+#. @unnumberedsubsec in Documentation/fr/user/introduction.itely
+#. @node in Documentation/es/user/introduction.itely
+#. @unnumberedsubsec in Documentation/es/user/introduction.itely
+#. @node in Documentation/de/user/introduction.itely
+#. @unnumberedsubsec in Documentation/de/user/introduction.itely
+#. @node in Documentation/ja/user/introduction.itely
+#. @unnumberedsubsec in Documentation/ja/user/introduction.itely
+msgid "Music representation"
+msgstr "音楽表記"
+
+#. @node in Documentation/user/introduction.itely
+#. @unnumberedsubsec in Documentation/user/introduction.itely
+#. @node in Documentation/fr/user/introduction.itely
+#. @unnumberedsubsec in Documentation/fr/user/introduction.itely
+#. @node in Documentation/es/user/introduction.itely
+#. @unnumberedsubsec in Documentation/es/user/introduction.itely
+#. @node in Documentation/de/user/introduction.itely
+#. @unnumberedsubsec in Documentation/de/user/introduction.itely
+#. @node in Documentation/ja/user/introduction.itely
+#. @unnumberedsubsec in Documentation/ja/user/introduction.itely
+msgid "Example applications"
+msgstr "例用例"
+
+#. @node in Documentation/user/introduction.itely
+#. @section in Documentation/user/introduction.itely
+#. @node in Documentation/fr/user/introduction.itely
+#. @section in Documentation/fr/user/introduction.itely
+#. @node in Documentation/es/user/introduction.itely
+#. @section in Documentation/es/user/introduction.itely
+#. @node in Documentation/de/user/introduction.itely
+#. @section in Documentation/de/user/introduction.itely
+#. @node in Documentation/ja/user/introduction.itely
+#. @section in Documentation/ja/user/introduction.itely
+msgid "About the documentation"
+msgstr "このドキュメントについて"
+
+#. @node in Documentation/user/introduction.itely
+#. @unnumberedsubsec in Documentation/user/introduction.itely
+#. @node in Documentation/fr/user/introduction.itely
+#. @unnumberedsubsec in Documentation/fr/user/introduction.itely
+#. @node in Documentation/es/user/introduction.itely
+#. @unnumberedsubsec in Documentation/es/user/introduction.itely
+#. @node in Documentation/de/user/introduction.itely
+#. @unnumberedsubsec in Documentation/de/user/introduction.itely
+#. @node in Documentation/ja/user/introduction.itely
+#. @unnumberedsubsec in Documentation/ja/user/introduction.itely
+msgid "About the Learning Manual"
+msgstr "学習マニュアルについて"
+
+#. @node in Documentation/user/introduction.itely
+#. @unnumberedsubsec in Documentation/user/introduction.itely
+#. @node in Documentation/fr/user/introduction.itely
+#. @unnumberedsubsec in Documentation/fr/user/introduction.itely
+#. @node in Documentation/es/user/introduction.itely
+#. @unnumberedsubsec in Documentation/es/user/introduction.itely
+#. @node in Documentation/de/user/introduction.itely
+#. @unnumberedsubsec in Documentation/de/user/introduction.itely
+#. @node in Documentation/ja/user/introduction.itely
+#. @unnumberedsubsec in Documentation/ja/user/introduction.itely
+msgid "About the Music Glossary"
+msgstr "音楽用語集について"
+
+#. @node in Documentation/user/introduction.itely
+#. @unnumberedsubsec in Documentation/user/introduction.itely
+#. @node in Documentation/fr/user/introduction.itely
+#. @unnumberedsubsec in Documentation/fr/user/introduction.itely
+#. @node in Documentation/es/user/introduction.itely
+#. @unnumberedsubsec in Documentation/es/user/introduction.itely
+#. @node in Documentation/de/user/introduction.itely
+#. @unnumberedsubsec in Documentation/de/user/introduction.itely
+#. @node in Documentation/ja/user/introduction.itely
+#. @unnumberedsubsec in Documentation/ja/user/introduction.itely
+msgid "About the Notation Reference"
+msgstr "表記リファレンスについて"
+
+#. @node in Documentation/user/introduction.itely
+#. @unnumberedsubsec in Documentation/user/introduction.itely
+#. @node in Documentation/fr/user/introduction.itely
+#. @unnumberedsubsec in Documentation/fr/user/introduction.itely
+#. @node in Documentation/es/user/introduction.itely
+#. @unnumberedsubsec in Documentation/es/user/introduction.itely
+#. @node in Documentation/de/user/introduction.itely
+#. @unnumberedsubsec in Documentation/de/user/introduction.itely
+#. @node in Documentation/ja/user/introduction.itely
+#. @unnumberedsubsec in Documentation/ja/user/introduction.itely
+msgid "About the Application Usage"
+msgstr "アプリケーション使用方法について"
+
+#. @node in Documentation/user/introduction.itely
+#. @unnumberedsubsec in Documentation/user/introduction.itely
+#. @node in Documentation/fr/user/introduction.itely
+#. @unnumberedsubsec in Documentation/fr/user/introduction.itely
+#. @node in Documentation/es/user/introduction.itely
+#. @unnumberedsubsec in Documentation/es/user/introduction.itely
+#. @node in Documentation/de/user/introduction.itely
+#. @unnumberedsubsec in Documentation/de/user/introduction.itely
+#. @node in Documentation/ja/user/introduction.itely
+#. @unnumberedsubsec in Documentation/ja/user/introduction.itely
+msgid "About the Snippet List"
+msgstr "断片集について"
+
+#. @node in Documentation/user/introduction.itely
+#. @unnumberedsubsec in Documentation/user/introduction.itely
+#. @node in Documentation/fr/user/introduction.itely
+#. @unnumberedsubsec in Documentation/fr/user/introduction.itely
+#. @node in Documentation/es/user/introduction.itely
+#. @unnumberedsubsec in Documentation/es/user/introduction.itely
+#. @node in Documentation/de/user/introduction.itely
+#. @unnumberedsubsec in Documentation/de/user/introduction.itely
+#. @node in Documentation/ja/user/introduction.itely
+#. @unnumberedsubsec in Documentation/ja/user/introduction.itely
+msgid "About the Internals Reference"
+msgstr "内部リファレンスについて"
+
+#. @node in Documentation/user/introduction.itely
+#. @unnumberedsubsec in Documentation/user/introduction.itely
+#. @node in Documentation/fr/user/introduction.itely
+#. @unnumberedsubsec in Documentation/fr/user/introduction.itely
+#. @node in Documentation/es/user/introduction.itely
+#. @unnumberedsubsec in Documentation/es/user/introduction.itely
+#. @node in Documentation/de/user/introduction.itely
+#. @unnumberedsubsec in Documentation/de/user/introduction.itely
+#. @node in Documentation/ja/user/introduction.itely
+#. @unnumberedsubsec in Documentation/ja/user/introduction.itely
+msgid "Other documentation"
+msgstr "その他のドキュメント"
+
+#. Documentation/user/tutorial.itely:251 (comment)
+msgid "set the starting point to middle C"
+msgstr "開始位置をミドル C にセットします"
+
+#. Documentation/user/tutorial.itely:282 (comment)
+msgid "one octave above middle C"
+msgstr "ミドル C より 1 オクターブ上から開始します"
+
+#. Documentation/user/tutorial.itely:298 (comment)
+msgid "c is 1 staff space up, so is the c above"
+msgstr "c は 1 譜表スペース上なので、c は上になります"
+
+#. Documentation/user/tutorial.itely:299 (comment)
+msgid "d is 2 up or 5 down, so is the d above"
+msgstr "d は 2 譜表スペース上あるいは 5 譜表スペース下なので、d は上になります"
+
+#. Documentation/user/tutorial.itely:300 (comment)
+msgid "e is 3 up or 4 down, so is the e above"
+msgstr "e は 3 譜表スペース上あるいは 4 譜表スペース下なので、e は上になります"
+
+#. Documentation/user/tutorial.itely:301 (comment)
+msgid "a is 6 up or 1 down, so is the a below"
+msgstr "a は 6 譜表スペース上あるいは 1 譜表スペース下なので、a は下になります"
+
+#. Documentation/user/tutorial.itely:302 (comment)
+msgid "g is 5 up or 2 down, so is the g below"
+msgstr "g は 5 譜表スペース上あるいは 2 譜表スペース下なので、g は下になります"
+
+#. Documentation/user/tutorial.itely:303 (comment)
+msgid "f is 4 up or 3 down, so is the f below"
+msgstr "f は 4 譜表スペース上あるいは 3 譜表スペース下なので、f は下になります"
+
+# not needed to translate
+#. Documentation/user/tutorial.itely:1791 (variable)
+#. Documentation/user/working.itely:233 (variable)
+#. Documentation/user/working.itely:248 (variable)
+#. Documentation/user/pitches.itely:1078 (context id)
+msgid "violin"
+msgstr ""
+
+# not needed to translate
+#. Documentation/user/tutorial.itely:1796 (variable)
+#. input/lsr/string-quartet-template-simple.ly:62 (variable)
+msgid "cello"
+msgstr ""
+
+# not needed to translate
+#. Documentation/user/tutorial.itely:1821 (variable)
+msgid "tripletA"
+msgstr ""
+
+# not needed to translate
+#. Documentation/user/tutorial.itely:1822 (variable)
+msgid "barA"
+msgstr ""
+
+# not needed to translate
+#. @rglos in Documentation/user/tutorial.itely
+#. @rglos in Documentation/fr/user/tutorial.itely
+#. @rglos in Documentation/es/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
+#. input/lsr/measure-counter.ly:25 (context id)
+#. input/lsr/measure-counter.ly:32 (context id)
+msgid "foo"
+msgstr ""
+
+#. @node in Documentation/user/tutorial.itely
+#. @chapter in Documentation/user/tutorial.itely
+#. @node in Documentation/fr/user/tutorial.itely
+#. @chapter in Documentation/fr/user/tutorial.itely
+#. @node in Documentation/es/user/tutorial.itely
+#. @chapter in Documentation/es/user/tutorial.itely
+#. @node in Documentation/de/user/tutorial.itely
+#. @chapter in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @chapter in Documentation/ja/user/tutorial.itely
+msgid "Tutorial"
+msgstr "チュートリアル"
+
+#. @node in Documentation/user/tutorial.itely
+#. @section in Documentation/user/tutorial.itely
+#. @node in Documentation/fr/user/tutorial.itely
+#. @section in Documentation/fr/user/tutorial.itely
+#. @node in Documentation/es/user/tutorial.itely
+#. @section in Documentation/es/user/tutorial.itely
+#. @node in Documentation/de/user/tutorial.itely
+#. @section in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @section in Documentation/ja/user/tutorial.itely
+msgid "First steps"
+msgstr "最初のステップ"
+
+#. @node in Documentation/user/tutorial.itely
+#. @subsection in Documentation/user/tutorial.itely
+#. @node in Documentation/fr/user/tutorial.itely
+#. @subsection in Documentation/fr/user/tutorial.itely
+#. @node in Documentation/es/user/tutorial.itely
+#. @subsection in Documentation/es/user/tutorial.itely
+#. @node in Documentation/de/user/tutorial.itely
+#. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
+msgid "Compiling a file"
+msgstr "ファイルをコンパイルする"
+
+#. @subheading in Documentation/user/tutorial.itely
+#. @subheading in Documentation/fr/user/tutorial.itely
+#. @subheading in Documentation/es/user/tutorial.itely
+#. @subheading in Documentation/de/user/tutorial.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
+msgid "Entering music and viewing output"
+msgstr "音楽表記を入力して出力を閲覧する"
+
+# not needed to translate
+#. @subsubheading in Documentation/user/tutorial.itely
+#. @subsubheading in Documentation/fr/user/tutorial.itely
+#. @subsubheading in Documentation/es/user/tutorial.itely
+#. @subsubheading in Documentation/de/user/tutorial.itely
+#. @subsubheading in Documentation/ja/user/tutorial.itely
+msgid "MacOS X"
+msgstr ""
+
+# not needed to translate
+#. @subsubheading in Documentation/user/tutorial.itely
+#. @subsubheading in Documentation/fr/user/tutorial.itely
+#. @subsubheading in Documentation/es/user/tutorial.itely
+#. @subsubheading in Documentation/de/user/tutorial.itely
+#. @subsubheading in Documentation/ja/user/tutorial.itely
+msgid "Windows"
+msgstr ""
+
+# not needed to translate
+#. @subsubheading in Documentation/user/tutorial.itely
+#. @subsubheading in Documentation/fr/user/tutorial.itely
+#. @subsubheading in Documentation/es/user/tutorial.itely
+#. @subsubheading in Documentation/de/user/tutorial.itely
+#. @subsubheading in Documentation/ja/user/tutorial.itely
+msgid "UNIX"
+msgstr ""
+
+#. @node in Documentation/user/tutorial.itely
+#. @subsection in Documentation/user/tutorial.itely
+#. @node in Documentation/fr/user/tutorial.itely
+#. @subsection in Documentation/fr/user/tutorial.itely
+#. @node in Documentation/es/user/tutorial.itely
+#. @subsection in Documentation/es/user/tutorial.itely
+#. @node in Documentation/de/user/tutorial.itely
+#. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
+msgid "Simple notation"
+msgstr "簡単な表記"
+
+#. @subheading in Documentation/user/tutorial.itely
+#. @node in Documentation/user/pitches.itely
+#. @section in Documentation/user/pitches.itely
+#. @node in Documentation/fr/user/pitches.itely
+#. @section in Documentation/fr/user/pitches.itely
+#. @subheading in Documentation/es/user/tutorial.itely
+#. @node in Documentation/es/user/pitches.itely
+#. @section in Documentation/es/user/pitches.itely
+#. @subheading in Documentation/de/user/tutorial.itely
+#. @node in Documentation/de/user/pitches.itely
+#. @section in Documentation/de/user/pitches.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
+msgid "Pitches"
+msgstr "音高"
+
+#. @rglos in Documentation/user/tutorial.itely
+#. @rglos in Documentation/fr/user/tutorial.itely
+#. @rglos in Documentation/es/user/tutorial.itely
+#. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
+msgid "pitch"
+msgstr "音高 (pitch)"
+
+#. @rglos in Documentation/user/tutorial.itely
+#. @rglos in Documentation/user/pitches.itely
+#. @rglos in Documentation/fr/user/tutorial.itely
+#. @rglos in Documentation/es/user/tutorial.itely
+#. @rglos in Documentation/es/user/pitches.itely
+#. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/de/user/pitches.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
+msgid "interval"
+msgstr "音程 (interval)"
+
+#. @rglos in Documentation/user/tutorial.itely
+#. @rglos in Documentation/fr/user/tutorial.itely
+#. @rglos in Documentation/es/user/tutorial.itely
+#. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
+msgid "scale"
+msgstr "音階 (scale)"
+
+#. @rglos in Documentation/user/tutorial.itely
+#. @rglos in Documentation/fr/user/tutorial.itely
+#. @rglos in Documentation/es/user/tutorial.itely
+#. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
+msgid "middle C"
+msgstr "ミドル C (middle C)"
+
+#. @rglos in Documentation/user/tutorial.itely
+#. @rglos in Documentation/fr/user/tutorial.itely
+#. @rglos in Documentation/es/user/tutorial.itely
+#. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
+msgid "octave"
+msgstr "オクターブ (octave)"
+
+#. @rglos in Documentation/user/tutorial.itely
+#. @rglos in Documentation/fr/user/tutorial.itely
+#. @rglos in Documentation/es/user/tutorial.itely
+#. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
+msgid "accidental"
+msgstr "臨時記号 (accidental)"
+
+#. @subheading in Documentation/user/tutorial.itely
+#. @subheading in Documentation/es/user/tutorial.itely
+#. @subheading in Documentation/de/user/tutorial.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
+msgid "Durations (rhythms)"
+msgstr "演奏時間 (リズム)"
+
+#. @rglos in Documentation/user/tutorial.itely
+#. @rglos in Documentation/fr/user/tutorial.itely
+#. @rglos in Documentation/es/user/tutorial.itely
+#. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
+msgid "beam"
+msgstr "ビーム (beam)"
+
+#. @rglos in Documentation/user/tutorial.itely
+#. @rglos in Documentation/fr/user/tutorial.itely
+#. @rglos in Documentation/es/user/tutorial.itely
+#. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
+msgid "duration"
+msgstr "演奏時間 (duration)"
+
+#. @rglos in Documentation/user/tutorial.itely
+#. @rglos in Documentation/fr/user/tutorial.itely
+#. @rglos in Documentation/es/user/tutorial.itely
+#. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
+msgid "whole note"
+msgstr "全音符 (whole note)"
+
+#. @rglos in Documentation/user/tutorial.itely
+#. @rglos in Documentation/fr/user/tutorial.itely
+#. @rglos in Documentation/es/user/tutorial.itely
+#. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
+msgid "half note"
+msgstr "半音符 (half note)"
+
+#. @rglos in Documentation/user/tutorial.itely
+#. @rglos in Documentation/fr/user/tutorial.itely
+#. @rglos in Documentation/es/user/tutorial.itely
+#. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
+msgid "quarter note"
+msgstr "4 分音符 (quarter note)"
+
+#. @rglos in Documentation/user/tutorial.itely
+#. @rglos in Documentation/fr/user/tutorial.itely
+#. @rglos in Documentation/es/user/tutorial.itely
+#. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
+msgid "dotted note"
+msgstr "符点音符 (dotted note)"
+
+#. @subheading in Documentation/user/tutorial.itely
+#. @node in Documentation/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/user/rhythms.itely
+#. @node in Documentation/fr/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/rhythms.itely
+#. @subheading in Documentation/es/user/tutorial.itely
+#. @node in Documentation/es/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/es/user/rhythms.itely
+#. @subheading in Documentation/de/user/tutorial.itely
+#. @node in Documentation/de/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/de/user/rhythms.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
+msgid "Rests"
+msgstr "休符"
+
+#. @rglos in Documentation/user/tutorial.itely
+#. @rglos in Documentation/fr/user/tutorial.itely
+#. @rglos in Documentation/es/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
+msgid "rest"
+msgstr "休符 (rest)"
+
+#. @subheading in Documentation/user/tutorial.itely
+#. @node in Documentation/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/user/rhythms.itely
+#. @node in Documentation/fr/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/rhythms.itely
+#. @subheading in Documentation/es/user/tutorial.itely
+#. @node in Documentation/es/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/es/user/rhythms.itely
+#. @subheading in Documentation/de/user/tutorial.itely
+#. @node in Documentation/de/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/de/user/rhythms.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
+msgid "Time signature"
+msgstr "拍子記号"
+
+#. @rglos in Documentation/user/tutorial.itely
+#. @rglos in Documentation/user/rhythms.itely
+#. @rglos in Documentation/fr/user/tutorial.itely
+#. @rglos in Documentation/es/user/tutorial.itely
+#. @rglos in Documentation/es/user/rhythms.itely
+#. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/de/user/rhythms.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
+msgid "time signature"
+msgstr "拍子記号 (time signature)"
+
+#. @subheading in Documentation/user/tutorial.itely
+#. @node in Documentation/user/pitches.itely
+#. @unnumberedsubsubsec in Documentation/user/pitches.itely
+#. @subheading in Documentation/fr/user/tutorial.itely
+#. @node in Documentation/fr/user/pitches.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/pitches.itely
+#. @subheading in Documentation/es/user/tutorial.itely
+#. @node in Documentation/es/user/pitches.itely
+#. @unnumberedsubsubsec in Documentation/es/user/pitches.itely
+#. @subheading in Documentation/de/user/tutorial.itely
+#. @node in Documentation/de/user/pitches.itely
+#. @unnumberedsubsubsec in Documentation/de/user/pitches.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
+msgid "Clef"
+msgstr "音部記号"
+
+#. @rglos in Documentation/user/tutorial.itely
+#. @rglos in Documentation/fr/user/tutorial.itely
+#. @rglos in Documentation/es/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
+msgid "clef"
+msgstr "音部記号 (clef)"
+
+#. @subheading in Documentation/user/tutorial.itely
+#. @subheading in Documentation/es/user/tutorial.itely
+#. @subheading in Documentation/de/user/tutorial.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
+msgid "All together"
+msgstr "すべてを一緒に"
+
+#. @node in Documentation/user/tutorial.itely
+#. @subsection in Documentation/user/tutorial.itely
+#. @node in Documentation/fr/user/tutorial.itely
+#. @subsection in Documentation/fr/user/tutorial.itely
+#. @node in Documentation/es/user/tutorial.itely
+#. @subsection in Documentation/es/user/tutorial.itely
+#. @node in Documentation/de/user/tutorial.itely
+#. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
+msgid "Working on input files"
+msgstr "入力ファイルに取り組む"
+
+#. @node in Documentation/user/tutorial.itely
+#. @subsection in Documentation/user/tutorial.itely
+#. @node in Documentation/fr/user/tutorial.itely
+#. @subsection in Documentation/fr/user/tutorial.itely
+#. @node in Documentation/es/user/tutorial.itely
+#. @subsection in Documentation/es/user/tutorial.itely
+#. @node in Documentation/de/user/tutorial.itely
+#. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
+msgid "How to read the manual"
+msgstr "このマニュアルの読み方"
+
+#. @subheading in Documentation/user/tutorial.itely
+#. @subheading in Documentation/es/user/tutorial.itely
+#. @subheading in Documentation/de/user/tutorial.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
+msgid "Clickable examples"
+msgstr "クリック可能な例"
+
+#. @node in Documentation/user/tutorial.itely
+#. @section in Documentation/user/tutorial.itely
+#. @node in Documentation/fr/user/tutorial.itely
+#. @section in Documentation/fr/user/tutorial.itely
+#. @node in Documentation/es/user/tutorial.itely
+#. @section in Documentation/es/user/tutorial.itely
+#. @node in Documentation/de/user/tutorial.itely
+#. @section in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @section in Documentation/ja/user/tutorial.itely
+msgid "Single staff notation"
+msgstr "単一譜表表記"
+
+#. @node in Documentation/user/tutorial.itely
+#. @subsection in Documentation/user/tutorial.itely
+#. @node in Documentation/fr/user/tutorial.itely
+#. @subsection in Documentation/fr/user/tutorial.itely
+#. @node in Documentation/es/user/tutorial.itely
+#. @subsection in Documentation/es/user/tutorial.itely
+#. @node in Documentation/de/user/tutorial.itely
+#. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
+msgid "Accidentals and key signatures"
+msgstr "臨時記号と調号"
+
+#. @subheading in Documentation/user/tutorial.itely
+#. @node in Documentation/user/pitches.itely
+#. @unnumberedsubsubsec in Documentation/user/pitches.itely
+#. @subheading in Documentation/fr/user/tutorial.itely
+#. @node in Documentation/fr/user/pitches.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/pitches.itely
+#. @subheading in Documentation/es/user/tutorial.itely
+#. @node in Documentation/es/user/pitches.itely
+#. @unnumberedsubsubsec in Documentation/es/user/pitches.itely
+#. @subheading in Documentation/de/user/tutorial.itely
+#. @node in Documentation/de/user/pitches.itely
+#. @unnumberedsubsubsec in Documentation/de/user/pitches.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
+msgid "Accidentals"
+msgstr "臨時記号"
+
+#. @rglos in Documentation/user/tutorial.itely
+#. @rglos in Documentation/user/pitches.itely
+#. @rglos in Documentation/fr/user/tutorial.itely
+#. @rglos in Documentation/es/user/tutorial.itely
+#. @rglos in Documentation/es/user/pitches.itely
+#. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/de/user/pitches.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
+msgid "sharp"
+msgstr "シャープ (sharp)"
+
+#. @rglos in Documentation/user/tutorial.itely
+#. @rglos in Documentation/user/pitches.itely
+#. @rglos in Documentation/fr/user/tutorial.itely
+#. @rglos in Documentation/es/user/tutorial.itely
+#. @rglos in Documentation/es/user/pitches.itely
+#. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/de/user/pitches.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
+msgid "flat"
+msgstr "フラット (flat)"
+
+#. @rglos in Documentation/user/tutorial.itely
+#. @rglos in Documentation/user/pitches.itely
+#. @rglos in Documentation/fr/user/tutorial.itely
+#. @rglos in Documentation/es/user/tutorial.itely
+#. @rglos in Documentation/es/user/pitches.itely
+#. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/de/user/pitches.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
+msgid "double sharp"
+msgstr "ダブル シャープ (double sharp)"
+
+#. @rglos in Documentation/user/tutorial.itely
+#. @rglos in Documentation/user/pitches.itely
+#. @rglos in Documentation/fr/user/tutorial.itely
+#. @rglos in Documentation/es/user/tutorial.itely
+#. @rglos in Documentation/es/user/pitches.itely
+#. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/de/user/pitches.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
+msgid "double flat"
+msgstr "ダブル フラット (double flat)"
+
+#. @subheading in Documentation/user/tutorial.itely
+#. @subheading in Documentation/fr/user/tutorial.itely
+#. @subheading in Documentation/es/user/tutorial.itely
+#. @subheading in Documentation/de/user/tutorial.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
+msgid "Key signatures"
+msgstr "調号"
+
+#. @rglos in Documentation/user/tutorial.itely
+#. @rglos in Documentation/fr/user/tutorial.itely
+#. @rglos in Documentation/es/user/tutorial.itely
+#. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
+msgid "key signature"
+msgstr "調号 (key signature)"
+
+#. @rglos in Documentation/user/tutorial.itely
+#. @rglos in Documentation/fr/user/tutorial.itely
+#. @rglos in Documentation/es/user/tutorial.itely
+#. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
+msgid "major"
+msgstr "メジャー (major)"
+
+#. @rglos in Documentation/user/tutorial.itely
+#. @rglos in Documentation/fr/user/tutorial.itely
+#. @rglos in Documentation/es/user/tutorial.itely
+#. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
+msgid "minor"
+msgstr "マイナー (minor)"
+
+#. @subheading in Documentation/user/tutorial.itely
+#. @subheading in Documentation/fr/user/tutorial.itely
+#. @subheading in Documentation/es/user/tutorial.itely
+#. @subheading in Documentation/de/user/tutorial.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
+msgid "Warning: key signatures and pitches"
+msgstr "警告: 調号と音高"
+
+#. @rglos in Documentation/user/tutorial.itely
+#. @rglos in Documentation/fr/user/tutorial.itely
+#. @rglos in Documentation/es/user/tutorial.itely
+#. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
+msgid "natural"
+msgstr "ナチュラル (natural)"
+
+#. @rglos in Documentation/user/tutorial.itely
+#. @rglos in Documentation/fr/user/tutorial.itely
+#. @rglos in Documentation/es/user/tutorial.itely
+#. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
+msgid "transposition"
+msgstr "移調 (transposition)"
+
+#. @rglos in Documentation/user/tutorial.itely
+#. @rglos in Documentation/user/pitches.itely
+#. @rglos in Documentation/fr/user/tutorial.itely
+#. @rglos in Documentation/es/user/tutorial.itely
+#. @rglos in Documentation/es/user/pitches.itely
+#. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/de/user/pitches.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
+msgid "Pitch names"
+msgstr "音高名 (Pitch names)"
+
+#. @node in Documentation/user/tutorial.itely
+#. @subsection in Documentation/user/tutorial.itely
+#. @node in Documentation/fr/user/tutorial.itely
+#. @subsection in Documentation/fr/user/tutorial.itely
+#. @node in Documentation/es/user/tutorial.itely
+#. @subsection in Documentation/es/user/tutorial.itely
+#. @node in Documentation/de/user/tutorial.itely
+#. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
+msgid "Ties and slurs"
+msgstr "タイとスラー"
+
+#. @subheading in Documentation/user/tutorial.itely
+#. @node in Documentation/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/user/rhythms.itely
+#. @subheading in Documentation/fr/user/tutorial.itely
+#. @node in Documentation/fr/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/rhythms.itely
+#. @subheading in Documentation/es/user/tutorial.itely
+#. @node in Documentation/es/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/es/user/rhythms.itely
+#. @subheading in Documentation/de/user/tutorial.itely
+#. @node in Documentation/de/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/de/user/rhythms.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
+msgid "Ties"
+msgstr "タイ"
+
+#. @rglos in Documentation/user/tutorial.itely
+#. @rglos in Documentation/user/rhythms.itely
+#. @rglos in Documentation/fr/user/tutorial.itely
+#. @rglos in Documentation/fr/user/rhythms.itely
+#. @rglos in Documentation/es/user/tutorial.itely
+#. @rglos in Documentation/es/user/rhythms.itely
+#. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/de/user/rhythms.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
+msgid "tie"
+msgstr "タイ (tie)"
+
+#. @subheading in Documentation/user/tutorial.itely
+#. @node in Documentation/user/expressive.itely
+#. @unnumberedsubsubsec in Documentation/user/expressive.itely
+#. @subheading in Documentation/fr/user/tutorial.itely
+#. @node in Documentation/fr/user/expressive.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/expressive.itely
+#. @subheading in Documentation/es/user/tutorial.itely
+#. @node in Documentation/es/user/expressive.itely
+#. @unnumberedsubsubsec in Documentation/es/user/expressive.itely
+#. @subheading in Documentation/de/user/tutorial.itely
+#. @node in Documentation/de/user/expressive.itely
+#. @unnumberedsubsubsec in Documentation/de/user/expressive.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
+msgid "Slurs"
+msgstr "スラー"
+
+#. @rglos in Documentation/user/tutorial.itely
+#. @rglos in Documentation/user/expressive.itely
+#. @rglos in Documentation/fr/user/tutorial.itely
+#. @rglos in Documentation/es/user/tutorial.itely
+#. @rglos in Documentation/es/user/expressive.itely
+#. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/de/user/expressive.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
+msgid "slur"
+msgstr "スラー (slur)"
+
+#. @subheading in Documentation/user/tutorial.itely
+#. @node in Documentation/user/expressive.itely
+#. @unnumberedsubsubsec in Documentation/user/expressive.itely
+#. @subheading in Documentation/fr/user/tutorial.itely
+#. @node in Documentation/fr/user/expressive.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/expressive.itely
+#. @subheading in Documentation/es/user/tutorial.itely
+#. @node in Documentation/es/user/expressive.itely
+#. @unnumberedsubsubsec in Documentation/es/user/expressive.itely
+#. @subheading in Documentation/de/user/tutorial.itely
+#. @node in Documentation/de/user/expressive.itely
+#. @unnumberedsubsubsec in Documentation/de/user/expressive.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
+msgid "Phrasing slurs"
+msgstr "フレージング スラー"
+
+#. @rglos in Documentation/user/tutorial.itely
+#. @rglos in Documentation/fr/user/tutorial.itely
+#. @rglos in Documentation/es/user/tutorial.itely
+#. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
+msgid "phrasing"
+msgstr "フレージング (phrasing)"
+
+#. @subheading in Documentation/user/tutorial.itely
+#. @subheading in Documentation/fr/user/tutorial.itely
+#. @subheading in Documentation/es/user/tutorial.itely
+#. @subheading in Documentation/de/user/tutorial.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
+msgid "Warnings: slurs vs. ties"
+msgstr "警告: スラー vs. タイ"
+
+#. @rglos in Documentation/user/tutorial.itely
+#. @rglos in Documentation/fr/user/tutorial.itely
+#. @rglos in Documentation/es/user/tutorial.itely
+#. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
+msgid "articulation"
+msgstr "アーティキュレーション (articulation)"
+
+#. @node in Documentation/user/tutorial.itely
+#. @subsection in Documentation/user/tutorial.itely
+#. @node in Documentation/fr/user/tutorial.itely
+#. @subsection in Documentation/fr/user/tutorial.itely
+#. @node in Documentation/es/user/tutorial.itely
+#. @subsection in Documentation/es/user/tutorial.itely
+#. @node in Documentation/de/user/tutorial.itely
+#. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
+msgid "Articulation and dynamics"
+msgstr "アーティキュレーションと強弱記号"
+
+#. @subheading in Documentation/user/tutorial.itely
+#. @subheading in Documentation/fr/user/tutorial.itely
+#. @subheading in Documentation/es/user/tutorial.itely
+#. @subheading in Documentation/de/user/tutorial.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
+msgid "Articulations"
+msgstr "アーティキュレーション"
+
+#. @subheading in Documentation/user/tutorial.itely
+#. @node in Documentation/user/wind.itely
+#. @unnumberedsubsubsec in Documentation/user/wind.itely
+#. @subheading in Documentation/fr/user/tutorial.itely
+#. @node in Documentation/fr/user/wind.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/wind.itely
+#. @subheading in Documentation/es/user/tutorial.itely
+#. @node in Documentation/es/user/wind.itely
+#. @unnumberedsubsubsec in Documentation/es/user/wind.itely
+#. @subheading in Documentation/de/user/tutorial.itely
+#. @node in Documentation/de/user/wind.itely
+#. @unnumberedsubsubsec in Documentation/de/user/wind.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
+msgid "Fingerings"
+msgstr "運指法記号"
+
+#. @rglos in Documentation/user/tutorial.itely
+#. @rglos in Documentation/fr/user/tutorial.itely
+#. @rglos in Documentation/es/user/tutorial.itely
+#. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
+msgid "fingering"
+msgstr "運指法記号 (fingering)"
+
+#. @subheading in Documentation/user/tutorial.itely
+#. @subheading in Documentation/user/tweaks.itely
+#. @node in Documentation/user/expressive.itely
+#. @unnumberedsubsubsec in Documentation/user/expressive.itely
+#. @subheading in Documentation/fr/user/tutorial.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
+#. @node in Documentation/fr/user/expressive.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/expressive.itely
+#. @subheading in Documentation/es/user/tutorial.itely
+#. @subheading in Documentation/es/user/tweaks.itely
+#. @node in Documentation/es/user/expressive.itely
+#. @unnumberedsubsubsec in Documentation/es/user/expressive.itely
+#. @subheading in Documentation/de/user/tutorial.itely
+#. @subheading in Documentation/de/user/tweaks.itely
+#. @node in Documentation/de/user/expressive.itely
+#. @unnumberedsubsubsec in Documentation/de/user/expressive.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
+msgid "Dynamics"
+msgstr "強弱記号"
+
+#. @rglos in Documentation/user/tutorial.itely
+#. @rglos in Documentation/fr/user/tutorial.itely
+#. @rglos in Documentation/es/user/tutorial.itely
+#. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
+#. input/lsr/piano-template-with-centered-dynamics.ly:52 (variable)
+msgid "dynamics"
+msgstr "強弱記号 (dynamics)"
+
+#. @rglos in Documentation/user/tutorial.itely
+#. @rglos in Documentation/user/expressive.itely
+#. @rglos in Documentation/fr/user/tutorial.itely
+#. @rglos in Documentation/es/user/tutorial.itely
+#. @rglos in Documentation/es/user/expressive.itely
+#. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/de/user/expressive.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
+msgid "crescendo"
+msgstr "クレッシェンド (crescendo)"
+
+#. @rglos in Documentation/user/tutorial.itely
+#. @rglos in Documentation/user/expressive.itely
+#. @rglos in Documentation/fr/user/tutorial.itely
+#. @rglos in Documentation/es/user/tutorial.itely
+#. @rglos in Documentation/es/user/expressive.itely
+#. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/de/user/expressive.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
+msgid "decrescendo"
+msgstr "デクレッシェンド (decrescendo)"
+
+#. @node in Documentation/user/tutorial.itely
+#. @subsection in Documentation/user/tutorial.itely
+#. @node in Documentation/fr/user/tutorial.itely
+#. @subsection in Documentation/fr/user/tutorial.itely
+#. @node in Documentation/es/user/tutorial.itely
+#. @subsection in Documentation/es/user/tutorial.itely
+#. @node in Documentation/de/user/tutorial.itely
+#. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
+msgid "Adding text"
+msgstr "テキストを追加する"
+
+#. @node in Documentation/user/tutorial.itely
+#. @subsection in Documentation/user/tutorial.itely
+#. @node in Documentation/fr/user/tutorial.itely
+#. @subsection in Documentation/fr/user/tutorial.itely
+#. @node in Documentation/es/user/tutorial.itely
+#. @subsection in Documentation/es/user/tutorial.itely
+#. @node in Documentation/de/user/tutorial.itely
+#. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
+msgid "Automatic and manual beams"
+msgstr "自動ビームと手動ビーム"
+
+#. @node in Documentation/user/tutorial.itely
+#. @subsection in Documentation/user/tutorial.itely
+#. @node in Documentation/fr/user/tutorial.itely
+#. @subsection in Documentation/fr/user/tutorial.itely
+#. @node in Documentation/es/user/tutorial.itely
+#. @subsection in Documentation/es/user/tutorial.itely
+#. @node in Documentation/de/user/tutorial.itely
+#. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
+msgid "Advanced rhythmic commands"
+msgstr "高度なリズム コマンド"
+
+#. @subheading in Documentation/user/tutorial.itely
+#. @subheading in Documentation/fr/user/tutorial.itely
+#. @subheading in Documentation/es/user/tutorial.itely
+#. @subheading in Documentation/de/user/tutorial.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
+msgid "Partial measure"
+msgstr "部分小節"
+
+#. @rglos in Documentation/user/tutorial.itely
+#. @rglos in Documentation/user/rhythms.itely
+#. @rglos in Documentation/fr/user/tutorial.itely
+#. @rglos in Documentation/es/user/tutorial.itely
+#. @rglos in Documentation/es/user/rhythms.itely
+#. @rglos in Documentation/de/user/rhythms.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
+msgid "anacrusis"
+msgstr ""
+
+#. @subheading in Documentation/user/tutorial.itely
+#. @node in Documentation/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/user/rhythms.itely
+#. @subheading in Documentation/fr/user/tutorial.itely
+#. @node in Documentation/fr/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/rhythms.itely
+#. @subheading in Documentation/es/user/tutorial.itely
+#. @node in Documentation/es/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/es/user/rhythms.itely
+#. @subheading in Documentation/de/user/tutorial.itely
+#. @node in Documentation/de/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/de/user/rhythms.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
+msgid "Tuplets"
+msgstr "連符"
+
+# not yet
+#. @rglos in Documentation/user/tutorial.itely
+#. @rglos in Documentation/user/rhythms.itely
+#. @rglos in Documentation/fr/user/tutorial.itely
+#. @rglos in Documentation/es/user/tutorial.itely
+#. @rglos in Documentation/es/user/rhythms.itely
+#. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/de/user/rhythms.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
+msgid "note value"
+msgstr ""
+
+#. @rglos in Documentation/user/tutorial.itely
+#. @rglos in Documentation/user/rhythms.itely
+#. @rglos in Documentation/fr/user/tutorial.itely
+#. @rglos in Documentation/es/user/tutorial.itely
+#. @rglos in Documentation/es/user/rhythms.itely
+#. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/de/user/rhythms.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
+msgid "triplet"
+msgstr "3 連符 (triplet)"
+
+#. @subheading in Documentation/user/tutorial.itely
+#. @node in Documentation/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/user/rhythms.itely
+#. @subheading in Documentation/fr/user/tutorial.itely
+#. @node in Documentation/fr/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/rhythms.itely
+#. @subheading in Documentation/es/user/tutorial.itely
+#. @node in Documentation/es/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/es/user/rhythms.itely
+#. @subheading in Documentation/de/user/tutorial.itely
+#. @node in Documentation/de/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/de/user/rhythms.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
+msgid "Grace notes"
+msgstr "グレース ノート"
+
+#. @rglos in Documentation/user/tutorial.itely
+#. @rglos in Documentation/user/rhythms.itely
+#. @rglos in Documentation/fr/user/tutorial.itely
+#. @rglos in Documentation/es/user/tutorial.itely
+#. @rglos in Documentation/es/user/rhythms.itely
+#. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/de/user/rhythms.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
+msgid "grace notes"
+msgstr "グレース ノート (grace notes)"
+
+# not yet
+#. @rglos in Documentation/user/tutorial.itely
+#. @rglos in Documentation/user/rhythms.itely
+#. @rglos in Documentation/fr/user/tutorial.itely
+#. @rglos in Documentation/es/user/tutorial.itely
+#. @rglos in Documentation/es/user/rhythms.itely
+#. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/de/user/rhythms.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
+msgid "acciaccatura"
+msgstr ""
+
+# not yet
+#. @rglos in Documentation/user/tutorial.itely
+#. @rglos in Documentation/user/rhythms.itely
+#. @rglos in Documentation/fr/user/tutorial.itely
+#. @rglos in Documentation/es/user/tutorial.itely
+#. @rglos in Documentation/es/user/rhythms.itely
+#. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/de/user/rhythms.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
+msgid "appoggiatura"
+msgstr ""
+
+#. @node in Documentation/user/tutorial.itely
+#. @section in Documentation/user/tutorial.itely
+#. @node in Documentation/fr/user/tutorial.itely
+#. @section in Documentation/fr/user/tutorial.itely
+#. @node in Documentation/es/user/tutorial.itely
+#. @section in Documentation/es/user/tutorial.itely
+#. @node in Documentation/de/user/tutorial.itely
+#. @section in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @section in Documentation/ja/user/tutorial.itely
+msgid "Multiple notes at once"
+msgstr "同時に演奏する複数の音符"
+
+#. @node in Documentation/user/tutorial.itely
+#. @subsection in Documentation/user/tutorial.itely
+#. @node in Documentation/fr/user/tutorial.itely
+#. @subsection in Documentation/fr/user/tutorial.itely
+#. @node in Documentation/es/user/tutorial.itely
+#. @subsection in Documentation/es/user/tutorial.itely
+#. @node in Documentation/de/user/tutorial.itely
+#. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
+msgid "Music expressions explained"
+msgstr "音楽表記についての説明"
+
+#. @subheading in Documentation/user/tutorial.itely
+#. @subheading in Documentation/fr/user/tutorial.itely
+#. @subheading in Documentation/es/user/tutorial.itely
+#. @subheading in Documentation/de/user/tutorial.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
+msgid "Analogy: mathematical expressions"
+msgstr "数学的表記との類似"
+
+#. @subheading in Documentation/user/tutorial.itely
+#. @subheading in Documentation/fr/user/tutorial.itely
+#. @subheading in Documentation/es/user/tutorial.itely
+#. @subheading in Documentation/de/user/tutorial.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
+msgid "Simultaneous music expressions: multiple staves"
+msgstr "同時進行する音楽表記: 複数の譜"
+
+#. @rglos in Documentation/user/tutorial.itely
+#. @rglos in Documentation/user/simultaneous.itely
+#. @rglos in Documentation/fr/user/tutorial.itely
+#. @rglos in Documentation/es/user/tutorial.itely
+#. @rglos in Documentation/es/user/simultaneous.itely
+#. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/de/user/simultaneous.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
+msgid "polyphony"
+msgstr "多声 (polyphony)"
+
+#. @subheading in Documentation/user/tutorial.itely
+#. @subheading in Documentation/fr/user/tutorial.itely
+#. @subheading in Documentation/es/user/tutorial.itely
+#. @subheading in Documentation/de/user/tutorial.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
+msgid "Simultaneous music expressions: single staff"
+msgstr "同時進行する音楽表記: 単一の譜表"
+
+#. @node in Documentation/user/tutorial.itely
+#. @subsection in Documentation/user/tutorial.itely
+#. @node in Documentation/fr/user/tutorial.itely
+#. @subsection in Documentation/fr/user/tutorial.itely
+#. @node in Documentation/es/user/tutorial.itely
+#. @subsection in Documentation/es/user/tutorial.itely
+#. @node in Documentation/de/user/tutorial.itely
+#. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
+msgid "Multiple staves"
+msgstr "複数の譜"
+
+#. @node in Documentation/user/tutorial.itely
+#. @subsection in Documentation/user/tutorial.itely
+#. @node in Documentation/fr/user/tutorial.itely
+#. @subsection in Documentation/fr/user/tutorial.itely
+#. @node in Documentation/es/user/tutorial.itely
+#. @subsection in Documentation/es/user/tutorial.itely
+#. @node in Documentation/de/user/tutorial.itely
+#. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
+msgid "Staff groups"
+msgstr "譜表グループ"
+
+#. @rglos in Documentation/user/tutorial.itely
+#. @rglos in Documentation/user/staff.itely
+#. @rglos in Documentation/fr/user/tutorial.itely
+#. @rglos in Documentation/es/user/tutorial.itely
+#. @rglos in Documentation/es/user/staff.itely
+#. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/de/user/staff.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
+msgid "brace"
+msgstr "ブレース (brace)"
+
+#. @node in Documentation/user/tutorial.itely
+#. @subsection in Documentation/user/tutorial.itely
+#. @node in Documentation/fr/user/tutorial.itely
+#. @subsection in Documentation/fr/user/tutorial.itely
+#. @node in Documentation/es/user/tutorial.itely
+#. @subsection in Documentation/es/user/tutorial.itely
+#. @node in Documentation/de/user/tutorial.itely
+#. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
+msgid "Combining notes into chords"
+msgstr "音符を組み合わせて和音にする"
+
+#. @rglos in Documentation/user/tutorial.itely
+#. @rglos in Documentation/user/simultaneous.itely
+#. @rglos in Documentation/user/chords.itely
+#. @rglos in Documentation/fr/user/tutorial.itely
+#. @rglos in Documentation/es/user/tutorial.itely
+#. @rglos in Documentation/es/user/simultaneous.itely
+#. @rglos in Documentation/es/user/chords.itely
+#. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/de/user/simultaneous.itely
+#. @rglos in Documentation/de/user/chords.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
+msgid "chord"
+msgstr "和音 (chord)"
+
+#. @node in Documentation/user/tutorial.itely
+#. @subsection in Documentation/user/tutorial.itely
+#. @node in Documentation/fr/user/tutorial.itely
+#. @subsection in Documentation/fr/user/tutorial.itely
+#. @node in Documentation/es/user/tutorial.itely
+#. @subsection in Documentation/es/user/tutorial.itely
+#. @node in Documentation/de/user/tutorial.itely
+#. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
+msgid "Single staff polyphony"
+msgstr "単一譜表での多声"
+
+#. @node in Documentation/user/tutorial.itely
+#. @section in Documentation/user/tutorial.itely
+#. @node in Documentation/fr/user/tutorial.itely
+#. @section in Documentation/fr/user/tutorial.itely
+#. @node in Documentation/es/user/tutorial.itely
+#. @section in Documentation/es/user/tutorial.itely
+#. @node in Documentation/de/user/tutorial.itely
+#. @section in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @section in Documentation/ja/user/tutorial.itely
+msgid "Songs"
+msgstr "歌曲"
+
+#. @node in Documentation/user/tutorial.itely
+#. @subsection in Documentation/user/tutorial.itely
+#. @node in Documentation/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/user/vocal.itely
+#. @node in Documentation/fr/user/tutorial.itely
+#. @subsection in Documentation/fr/user/tutorial.itely
+#. @node in Documentation/fr/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/vocal.itely
+#. @node in Documentation/es/user/tutorial.itely
+#. @subsection in Documentation/es/user/tutorial.itely
+#. @node in Documentation/es/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/es/user/vocal.itely
+#. @node in Documentation/de/user/tutorial.itely
+#. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/de/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/de/user/vocal.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
+msgid "Setting simple songs"
+msgstr "簡単な歌詞をセットする"
+
+#. @rglos in Documentation/user/tutorial.itely
+#. @rglos in Documentation/fr/user/tutorial.itely
+#. @rglos in Documentation/es/user/tutorial.itely
+#. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
+msgid "lyrics"
+msgstr "歌詞 (lyrics)"
+
+#. @node in Documentation/user/tutorial.itely
+#. @subsection in Documentation/user/tutorial.itely
+#. @node in Documentation/user/vocal.itely
+#. @subsection in Documentation/user/vocal.itely
+#. @node in Documentation/fr/user/tutorial.itely
+#. @subsection in Documentation/fr/user/tutorial.itely
+#. @node in Documentation/fr/user/vocal.itely
+#. @subsection in Documentation/fr/user/vocal.itely
+#. @node in Documentation/es/user/tutorial.itely
+#. @subsection in Documentation/es/user/tutorial.itely
+#. @node in Documentation/es/user/vocal.itely
+#. @subsection in Documentation/es/user/vocal.itely
+#. @node in Documentation/de/user/tutorial.itely
+#. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/de/user/vocal.itely
+#. @subsection in Documentation/de/user/vocal.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
+msgid "Aligning lyrics to a melody"
+msgstr "歌詞を旋律に揃える"
+
+#. @rglos in Documentation/user/tutorial.itely
+#. @rglos in Documentation/fr/user/tutorial.itely
+#. @rglos in Documentation/es/user/tutorial.itely
+#. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
+msgid "melisma"
+msgstr "メリスマ (melisma)"
+
+#. @rglos in Documentation/user/tutorial.itely
+#. @rglos in Documentation/fr/user/tutorial.itely
+#. @rglos in Documentation/es/user/tutorial.itely
+#. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
+msgid "extender line"
+msgstr "延長線 (extender line)"
+
+#. @node in Documentation/user/tutorial.itely
+#. @subsection in Documentation/user/tutorial.itely
+#. @node in Documentation/fr/user/tutorial.itely
+#. @subsection in Documentation/fr/user/tutorial.itely
+#. @node in Documentation/es/user/tutorial.itely
+#. @subsection in Documentation/es/user/tutorial.itely
+#. @node in Documentation/de/user/tutorial.itely
+#. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
+msgid "Lyrics to multiple staves"
+msgstr "複数の譜への歌詞"
+
+#. @node in Documentation/user/tutorial.itely
+#. @section in Documentation/user/tutorial.itely
+#. @node in Documentation/fr/user/tutorial.itely
+#. @section in Documentation/fr/user/tutorial.itely
+#. @node in Documentation/es/user/tutorial.itely
+#. @section in Documentation/es/user/tutorial.itely
+#. @node in Documentation/de/user/tutorial.itely
+#. @section in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @section in Documentation/ja/user/tutorial.itely
+msgid "Final touches"
+msgstr "仕上げ"
+
+#. @node in Documentation/user/tutorial.itely
+#. @subsection in Documentation/user/tutorial.itely
+#. @node in Documentation/fr/user/tutorial.itely
+#. @subsection in Documentation/fr/user/tutorial.itely
+#. @node in Documentation/es/user/tutorial.itely
+#. @subsection in Documentation/es/user/tutorial.itely
+#. @node in Documentation/de/user/tutorial.itely
+#. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
+msgid "Organizing pieces with variables"
+msgstr "変数を用いて楽曲を編成する"
+
+#. @node in Documentation/user/tutorial.itely
+#. @subsection in Documentation/user/tutorial.itely
+#. @node in Documentation/fr/user/tutorial.itely
+#. @subsection in Documentation/fr/user/tutorial.itely
+#. @node in Documentation/es/user/tutorial.itely
+#. @subsection in Documentation/es/user/tutorial.itely
+#. @node in Documentation/de/user/tutorial.itely
+#. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
+msgid "Version number"
+msgstr "バージョン番号"
+
+#. @node in Documentation/user/tutorial.itely
+#. @subsection in Documentation/user/tutorial.itely
+#. @node in Documentation/fr/user/tutorial.itely
+#. @subsection in Documentation/fr/user/tutorial.itely
+#. @node in Documentation/es/user/tutorial.itely
+#. @subsection in Documentation/es/user/tutorial.itely
+#. @node in Documentation/de/user/tutorial.itely
+#. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
+msgid "Adding titles"
+msgstr "タイトルを付け加える"
+
+#. @node in Documentation/user/tutorial.itely
+#. @subsection in Documentation/user/tutorial.itely
+#. @node in Documentation/fr/user/tutorial.itely
+#. @subsection in Documentation/fr/user/tutorial.itely
+#. @node in Documentation/es/user/tutorial.itely
+#. @subsection in Documentation/es/user/tutorial.itely
+#. @node in Documentation/de/user/tutorial.itely
+#. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
+msgid "Absolute note names"
+msgstr "絶対音符名"
+
+#. @node in Documentation/user/tutorial.itely
+#. @subsection in Documentation/user/tutorial.itely
+#. @node in Documentation/fr/user/tutorial.itely
+#. @subsection in Documentation/fr/user/tutorial.itely
+#. @node in Documentation/es/user/tutorial.itely
+#. @subsection in Documentation/es/user/tutorial.itely
+#. @node in Documentation/de/user/tutorial.itely
+#. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
+msgid "After the tutorial"
+msgstr "このチュートリアルの後にすべきこと"
+
+# not needed to translate
+#. Documentation/user/fundamental.itely:324 (context id)
+#. Documentation/user/fundamental.itely:367 (context id)
+#. input/lsr/piano-template-with-centered-lyrics.ly:55 (context id)
+msgid "singer"
+msgstr ""
+
+# not needed to translate
+#. Documentation/user/fundamental.itely:325 (context id)
+#. Documentation/user/fundamental.itely:368 (context id)
+msgid "vocal"
+msgstr ""
+
+# not needed to translate
+#. Documentation/user/fundamental.itely:328 (context id)
+#. Documentation/user/fundamental.itely:371 (context id)
+#. input/lsr/jazz-combo-template.ly:218 (variable)
+#. input/lsr/jazz-combo-template.ly:278 (context id)
+msgid "piano"
+msgstr ""
+
+# not needed to translate
+#. Documentation/user/fundamental.itely:329 (context id)
+#. Documentation/user/fundamental.itely:362 (variable)
+#. Documentation/user/fundamental.itely:372 (context id)
+#. Documentation/user/fundamental.itely:2669 (variable)
+#. Documentation/user/fundamental.itely:2711 (context id)
+#. input/lsr/changing-the-number-of-lines-in-a-staff.ly:19 (variable)
+#. input/lsr/jazz-combo-template.ly:221 (context id)
+#. input/lsr/piano-template-simple.ly:32 (variable)
+#. input/lsr/piano-template-simple.ly:51 (context id)
+#. input/lsr/piano-template-with-centered-dynamics.ly:42 (variable)
+#. input/lsr/piano-template-with-centered-lyrics.ly:33 (variable)
+#. input/lsr/piano-template-with-centered-lyrics.ly:55 (context id)
+#. input/lsr/piano-template-with-melody-and-lyrics.ly:44 (variable)
+#. input/lsr/piano-template-with-melody-and-lyrics.ly:65 (context id)
+#. input/lsr/polyphony-in-tablature.ly:32 (variable)
+#. input/lsr/polyphony-in-tablature.ly:50 (context id)
+#. input/lsr/polyphony-in-tablature.ly:54 (context id)
+msgid "upper"
+msgstr ""
+
+# not needed to translate
+#. Documentation/user/fundamental.itely:330 (context id)
+#. Documentation/user/fundamental.itely:363 (variable)
+#. Documentation/user/fundamental.itely:373 (context id)
+#. Documentation/user/fundamental.itely:2676 (variable)
+#. Documentation/user/fundamental.itely:2712 (context id)
+#. input/lsr/changing-the-number-of-lines-in-a-staff.ly:23 (variable)
+#. input/lsr/jazz-combo-template.ly:222 (context id)
+#. input/lsr/piano-template-simple.ly:40 (variable)
+#. input/lsr/piano-template-simple.ly:52 (context id)
+#. input/lsr/piano-template-with-centered-dynamics.ly:47 (variable)
+#. input/lsr/piano-template-with-centered-lyrics.ly:41 (variable)
+#. input/lsr/piano-template-with-centered-lyrics.ly:57 (context id)
+#. input/lsr/piano-template-with-melody-and-lyrics.ly:52 (variable)
+#. input/lsr/piano-template-with-melody-and-lyrics.ly:66 (context id)
+#. input/lsr/polyphony-in-tablature.ly:39 (variable)
+#. input/lsr/polyphony-in-tablature.ly:51 (context id)
+#. input/lsr/polyphony-in-tablature.ly:55 (context id)
+msgid "lower"
+msgstr ""
+
+# not needed to translate
+#. Documentation/user/fundamental.itely:360 (variable)
+#. Documentation/user/simultaneous.itely:241 (context id)
+#. Documentation/user/vocal.itely:571 (context id)
+#. Documentation/user/vocal.itely:803 (context id)
+#. Documentation/user/vocal.itely:824 (context id)
+#. Documentation/user/vocal.itely:1224 (variable)
+#. Documentation/user/vocal.itely:1266 (variable)
+#. Documentation/user/ancient.itely:2413 (context id)
+#. Documentation/user/ancient.itely:2452 (context id)
+#. input/lsr/adjusting-lyrics-vertical-spacing.ly:32 (context id)
+#. input/lsr/adjusting-lyrics-vertical-spacing.ly:43 (context id)
+#. input/lsr/ancient-notation-template----modern-transcription-of-gregorian-music.ly:50 (context id)
+#. input/lsr/demo-midiinstruments.ly:28 (variable)
+#. input/lsr/formatting-lyrics-syllables.ly:28 (context id)
+#. input/lsr/guitar-strum-rhythms.ly:53 (context id)
+#. input/lsr/heavily-customized-polymetric-time-signatures.ly:37 (variable)
+#. input/lsr/piano-template-with-melody-and-lyrics.ly:32 (variable)
+#. input/lsr/single-staff-template-with-notes,-lyrics,-and-chords.ly:32 (variable)
+#. input/lsr/single-staff-template-with-notes-and-chords.ly:33 (variable)
+#. input/lsr/single-staff-template-with-notes-and-lyrics.ly:45 (variable)
+#. input/lsr/single-staff-template-with-only-notes.ly:37 (variable)
+#. input/lsr/vertically-centered-common-lyrics.ly:44 (variable)
+msgid "melody"
+msgstr ""
+
+# not needed to translate
+#. Documentation/user/fundamental.itely:361 (variable)
+#. Documentation/user/vocal.itely:1051 (variable)
+#. Documentation/user/vocal.itely:1229 (variable)
+#. Documentation/user/vocal.itely:1270 (variable)
+#. input/lsr/piano-template-with-centered-lyrics.ly:49 (variable)
+#. input/lsr/piano-template-with-melody-and-lyrics.ly:40 (variable)
+#. input/lsr/single-staff-template-with-notes,-lyrics,-and-chords.ly:40 (variable)
+#. input/lsr/single-staff-template-with-notes-and-lyrics.ly:53 (variable)
+msgid "text"
+msgstr ""
+
+# not needed to translate
+#. Documentation/user/fundamental.itely:443 (context id)
+#. Documentation/user/staff.itely:531 (context id)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:79 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:115 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:131 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:152 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:167 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:188 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:203 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:219 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:235 (comment)
+msgid "main"
+msgstr ""
+
+#. Documentation/user/fundamental.itely:632 (comment)
+msgid "Voice \\\"1\\\"                  Voice \\\"2\\\""
+msgstr ""
+
+#. Documentation/user/fundamental.itely:642 (comment)
+msgid "Voice \\\"1\\\"             Voice \\\"2\\\""
+msgstr ""
+
+#. Documentation/user/fundamental.itely:657 (comment)
+msgid "Voice \\\"1\\\""
+msgstr ""
+
+#. Documentation/user/fundamental.itely:662 (comment)
+msgid "Voice \\\"2\\\""
+msgstr ""
+
+#. Documentation/user/fundamental.itely:685 (comment)
+#. Documentation/user/fundamental.itely:709 (comment)
+msgid "Main voice"
+msgstr ""
+
+#. Documentation/user/fundamental.itely:687 (comment)
+msgid "Voice \\\"1\\\"     Voice \\\"2\\\"                 Voice \\\"3\\\""
+msgstr ""
+
+#. Documentation/user/fundamental.itely:711 (comment)
+#. Documentation/user/simultaneous.itely:743 (comment)
+#. Documentation/user/simultaneous.itely:768 (comment)
+#. Documentation/user/simultaneous.itely:795 (comment)
+msgid "Bar 1"
+msgstr ""
+
+#. Documentation/user/fundamental.itely:722 (comment)
+#. Documentation/user/simultaneous.itely:748 (comment)
+#. Documentation/user/simultaneous.itely:773 (comment)
+#. Documentation/user/simultaneous.itely:801 (comment)
+msgid "Bar 2"
+msgstr ""
+
+#. Documentation/user/fundamental.itely:723 (comment)
+msgid "Voice 1 continues"
+msgstr "Voice 1 の続き"
+
+#. Documentation/user/fundamental.itely:726 (comment)
+msgid "Voice 2 continues"
+msgstr "Voice 2 の続き"
+
+#. Documentation/user/fundamental.itely:900 (comment)
+msgid "Voice one"
+msgstr ""
+
+#. Documentation/user/fundamental.itely:902 (comment)
+msgid "Voice two"
+msgstr ""
+
+#. Documentation/user/fundamental.itely:904 (comment)
+msgid "Omit Voice three"
+msgstr "Voice three を省略"
+
+#. Documentation/user/fundamental.itely:905 (comment)
+msgid "Voice four"
+msgstr ""
+
+#. Documentation/user/fundamental.itely:1004 (comment)
+msgid "Default behavior or behavior after \\oneVoice"
+msgstr "デフォルトの振る舞い方、または、\\oneVoice の後での振る舞い方"
+
+#. Documentation/user/fundamental.itely:1042 (comment)
+msgid "The following notes are monophonic"
+msgstr "以下の音符は単声"
+
+#. Documentation/user/fundamental.itely:1044 (comment)
+msgid "Start simultaneous section of three voices"
+msgstr "3 つのボイスからなる同時進行セクションの開始"
+
+#. Documentation/user/fundamental.itely:1046 (comment)
+msgid "Continue the main voice in parallel"
+msgstr "並列 (同時進行) 状態での main ボイスの続き"
+
+#. Documentation/user/fundamental.itely:1048 (comment)
+#. Documentation/user/fundamental.itely:1110 (comment)
+msgid "Initiate second voice"
+msgstr "second ボイスの開始"
+
+#. Documentation/user/fundamental.itely:1050 (comment)
+#. Documentation/user/fundamental.itely:1112 (comment)
+msgid "Set stems, etc, down"
+msgstr "ステムなどを下向きにセット"
+
+#. Documentation/user/fundamental.itely:1054 (comment)
+#. Documentation/user/fundamental.itely:1116 (comment)
+msgid "Initiate third voice"
+msgstr "third ボイスの開始"
+
+#. Documentation/user/fundamental.itely:1056 (comment)
+#. Documentation/user/fundamental.itely:1118 (comment)
+msgid "Set stems, etc, up"
+msgstr "ステムなどを上向きにセット"
+
+#. Documentation/user/fundamental.itely:1105 (comment)
+msgid "Initiate first voice"
+msgstr "first ボイスの開始"
+
+#. Documentation/user/fundamental.itely:1199 (context id)
+#. Documentation/user/fundamental.itely:2441 (context id)
+#. Documentation/user/vocal.itely:506 (context id)
+#. Documentation/user/vocal.itely:1235 (context id)
+#. Documentation/user/vocal.itely:1276 (context id)
+#. Documentation/user/keyboards.itely:338 (context id)
+#. Documentation/user/fretted-strings.itely:246 (context id)
+#. input/lsr/adding-fingerings-to-tablatures.ly:23 (variable)
+#. input/lsr/jazz-combo-template.ly:204 (context id)
+#. input/lsr/jazz-combo-template.ly:213 (context id)
+#. input/lsr/single-staff-template-with-notes,-lyrics,-and-chords.ly:54 (context id)
+#. input/lsr/single-staff-template-with-notes-and-lyrics.ly:59 (context id)
+msgid "one"
+msgstr ""
+
+#. Documentation/user/fundamental.itely:1242 (variable)
+#. Documentation/user/fundamental.itely:2646 (variable)
+#. Documentation/user/tweaks.itely:3502 (variable)
+#. Documentation/user/simultaneous.itely:789 (variable)
+#. Documentation/user/percussion.itely:497 (variable)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:59 (variable)
+#. input/lsr/incipit.ly:57 (variable)
+#. input/lsr/jazz-combo-template.ly:74 (variable)
+#. input/lsr/mensurstriche-layout-bar-lines-between-the-staves.ly:29 (variable)
+#. input/lsr/piano-template-with-centered-dynamics.ly:37 (variable)
+#. input/lsr/printing-music-with-different-time-signatures.ly:25 (variable)
+#. input/lsr/string-quartet-template-simple.ly:29 (variable)
+#. input/lsr/string-quartet-template-with-separate-parts.ly:80 (variable)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:30 (variable)
+#. input/lsr/vocal-ensemble-template-with-automatic-piano-reduction.ly:46 (variable)
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:37 (variable)
+#. input/lsr/vocal-ensemble-template.ly:42 (variable)
+msgid "global"
+msgstr ""
+
+#. Documentation/user/fundamental.itely:1243 (variable)
+msgid "SopOneMusic"
+msgstr ""
+
+#. Documentation/user/fundamental.itely:1245 (variable)
+msgid "SopTwoMusic"
+msgstr ""
+
+#. Documentation/user/fundamental.itely:1247 (variable)
+msgid "SopOneLyrics"
+msgstr ""
+
+#. Documentation/user/fundamental.itely:1249 (variable)
+msgid "SopTwoLyrics"
+msgstr ""
+
+#. Documentation/user/fundamental.itely:1255 (context id)
+msgid "SopOne"
+msgstr ""
+
+#. Documentation/user/fundamental.itely:1264 (context id)
+msgid "SopTwo"
+msgstr ""
+
+#. Documentation/user/fundamental.itely:1296 (variable)
+#. Documentation/user/fundamental.itely:2864 (variable)
+msgid "TimeKey"
+msgstr ""
+
+#. Documentation/user/fundamental.itely:1297 (variable)
+msgid "SopMusic"
+msgstr ""
+
+#. Documentation/user/fundamental.itely:1298 (variable)
+#. Documentation/user/tweaks.itely:3504 (variable)
+msgid "AltoMusic"
+msgstr ""
+
+#. Documentation/user/fundamental.itely:1299 (variable)
+#. Documentation/user/tweaks.itely:3505 (variable)
+msgid "TenorMusic"
+msgstr ""
+
+#. Documentation/user/fundamental.itely:1300 (variable)
+#. Documentation/user/tweaks.itely:3506 (variable)
+msgid "BassMusic"
+msgstr ""
+
+#. Documentation/user/fundamental.itely:1301 (variable)
+#. Documentation/user/tweaks.itely:3507 (variable)
+msgid "VerseOne"
+msgstr ""
+
+#. Documentation/user/fundamental.itely:1303 (variable)
+#. Documentation/user/tweaks.itely:3508 (variable)
+msgid "VerseTwo"
+msgstr ""
+
+#. Documentation/user/fundamental.itely:1305 (variable)
+#. Documentation/user/tweaks.itely:3509 (variable)
+msgid "VerseThree"
+msgstr ""
+
+#. Documentation/user/fundamental.itely:1307 (variable)
+#. Documentation/user/tweaks.itely:3510 (variable)
+msgid "VerseFour"
+msgstr ""
+
+#. Documentation/user/fundamental.itely:1314 (context id)
+msgid "Sop"
+msgstr ""
+
+#. Documentation/user/fundamental.itely:1315 (context id)
+#. Documentation/user/tweaks.itely:3517 (context id)
+#. Documentation/user/input.itely:961 (context id)
+msgid "Alto"
+msgstr ""
+
+#. Documentation/user/fundamental.itely:1323 (context id)
+#. Documentation/user/tweaks.itely:3525 (context id)
+#. Documentation/user/input.itely:963 (context id)
+msgid "Tenor"
+msgstr ""
+
+#. Documentation/user/fundamental.itely:1324 (context id)
+#. Documentation/user/tweaks.itely:3526 (context id)
+#. Documentation/user/input.itely:968 (context id)
+#. input/lsr/jazz-combo-template.ly:227 (variable)
+msgid "Bass"
+msgstr ""
+
+#. Documentation/user/fundamental.itely:1350 (variable)
+#. Documentation/user/fundamental.itely:1402 (variable)
+#. Documentation/user/fundamental.itely:1464 (variable)
+msgid "versenotes"
+msgstr ""
+
+#. Documentation/user/fundamental.itely:1355 (variable)
+#. Documentation/user/fundamental.itely:1416 (variable)
+#. Documentation/user/fundamental.itely:1478 (variable)
+msgid "versewords"
+msgstr ""
+
+#. Documentation/user/fundamental.itely:1361 (context id)
+#. Documentation/user/fundamental.itely:1428 (context id)
+#. Documentation/user/fundamental.itely:1489 (context id)
+#. Documentation/user/vocal.itely:826 (context id)
+#. input/lsr/score-for-diatonic-accordion.ly:59 (variable)
+msgid "verse"
+msgstr ""
+
+#. Documentation/user/fundamental.itely:1407 (variable)
+#. Documentation/user/fundamental.itely:1469 (variable)
+msgid "refrainnotesA"
+msgstr ""
+
+#. Documentation/user/fundamental.itely:1411 (variable)
+#. Documentation/user/fundamental.itely:1473 (variable)
+msgid "refrainnotesB"
+msgstr ""
+
+#. Documentation/user/fundamental.itely:1419 (variable)
+#. Documentation/user/fundamental.itely:1481 (variable)
+msgid "refrainwordsA"
+msgstr ""
+
+#. Documentation/user/fundamental.itely:1422 (variable)
+#. Documentation/user/fundamental.itely:1484 (variable)
+msgid "refrainwordsB"
+msgstr ""
+
+#. Documentation/user/fundamental.itely:1436 (context id)
+#. Documentation/user/fundamental.itely:1509 (context id)
+msgid "refrainB"
+msgstr ""
+
+#. Documentation/user/fundamental.itely:1501 (context id)
+msgid "refrainA"
+msgstr ""
+
+#. Documentation/user/fundamental.itely:1655 (comment)
+msgid "start of single compound music expression"
+msgstr "単一の複合音楽表記の開始"
+
+#. Documentation/user/fundamental.itely:1656 (comment)
+msgid "start of simultaneous staves section"
+msgstr "同時進行する譜セクションの開始"
+
+#. Documentation/user/fundamental.itely:1658 (comment)
+msgid "create RH staff"
+msgstr "RH (右手) 譜表の作成"
+
+#. Documentation/user/fundamental.itely:1661 (comment)
+msgid "create voice for RH notes"
+msgstr "RH 音符のためのボイスを作成"
+
+#. Documentation/user/fundamental.itely:1662 (comment)
+msgid "start of RH notes"
+msgstr "RH 音符の開始"
+
+#. Documentation/user/fundamental.itely:1665 (comment)
+msgid "end of RH notes"
+msgstr "RH 音符の終了"
+
+#. Documentation/user/fundamental.itely:1666 (comment)
+msgid "end of RH voice"
+msgstr "RH ボイスの終了"
+
+#. Documentation/user/fundamental.itely:1667 (comment)
+msgid "end of RH staff"
+msgstr "RH 譜表の終了"
+
+#. Documentation/user/fundamental.itely:1668 (comment)
+msgid "create LH staff; needs two simultaneous voices"
+msgstr "LH (左手) 譜表の作成。2 つの同時進行するボイスが必要"
+
+#. Documentation/user/fundamental.itely:1671 (comment)
+msgid "create LH voice one"
+msgstr "LH voice one の作成"
+
+#. Documentation/user/fundamental.itely:1673 (comment)
+msgid "start of LH voice one notes"
+msgstr "LH voice one の音符の開始"
+
+#. Documentation/user/fundamental.itely:1676 (comment)
+msgid "end of LH voice one notes"
+msgstr "LH voice one 音符の終了"
+
+#. Documentation/user/fundamental.itely:1677 (comment)
+msgid "end of LH voice one"
+msgstr "LH voice one の終了"
+
+#. Documentation/user/fundamental.itely:1678 (comment)
+msgid "create LH voice two"
+msgstr "LH voice two の作成"
+
+#. Documentation/user/fundamental.itely:1680 (comment)
+msgid "start of LH voice two notes"
+msgstr "LH voice two 音符の開始"
+
+#. Documentation/user/fundamental.itely:1683 (comment)
+msgid "end of LH voice two notes"
+msgstr "LH voice two 音符の終了"
+
+#. Documentation/user/fundamental.itely:1684 (comment)
+msgid "end of LH voice two"
+msgstr "LH voice two の終了"
+
+#. Documentation/user/fundamental.itely:1685 (comment)
+msgid "end of LH staff"
+msgstr "LH 譜表の終了"
+
+#. Documentation/user/fundamental.itely:1686 (comment)
+msgid "end of simultaneous staves section"
+msgstr "同時進行する譜セクションの終了"
+
+#. Documentation/user/fundamental.itely:1687 (comment)
+msgid "end of single compound music expression"
+msgstr "単一の複合音楽表記の終了"
+
+#. Documentation/user/fundamental.itely:1906 (comment)
+msgid "Wrong!"
+msgstr "間違い!"
+
+#. Documentation/user/fundamental.itely:1992 (comment)
+#. Documentation/user/fundamental.itely:2144 (comment)
+msgid "make note heads smaller"
+msgstr "音符の玉を小さくする"
+
+#. Documentation/user/fundamental.itely:1995 (comment)
+#. Documentation/user/fundamental.itely:2146 (comment)
+msgid "make note heads larger"
+msgstr "音符の玉を大きくする"
+
+#. Documentation/user/fundamental.itely:1998 (comment)
+#. Documentation/user/fundamental.itely:2148 (comment)
+msgid "return to default size"
+msgstr "デフォルトのサイズに戻す"
+
+#. Documentation/user/fundamental.itely:2420 (variable)
+#. Documentation/user/fundamental.itely:2647 (variable)
+#. Documentation/user/input.itely:953 (variable)
+msgid "sopranoMusic"
+msgstr ""
+
+#. Documentation/user/fundamental.itely:2427 (variable)
+msgid "sopranoLyrics"
+msgstr ""
+
+#. Documentation/user/fundamental.itely:2431 (variable)
+msgid "celloMusic"
+msgstr ""
+
+#. Documentation/user/fundamental.itely:2651 (variable)
+msgid "sopranoWords"
+msgstr ""
+
+#. Documentation/user/fundamental.itely:2654 (variable)
+#. Documentation/user/input.itely:954 (variable)
+#. input/lsr/vocal-ensemble-template-with-automatic-piano-reduction.ly:58 (variable)
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:49 (variable)
+#. input/lsr/vocal-ensemble-template.ly:54 (variable)
+msgid "altoMusic"
+msgstr ""
+
+#. Documentation/user/fundamental.itely:2658 (variable)
+#. input/lsr/vocal-ensemble-template-with-automatic-piano-reduction.ly:61 (variable)
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:52 (variable)
+#. input/lsr/vocal-ensemble-template.ly:57 (variable)
+msgid "altoWords"
+msgstr ""
+
+#. Documentation/user/fundamental.itely:2659 (variable)
+#. Documentation/user/input.itely:955 (variable)
+#. input/lsr/vocal-ensemble-template-with-automatic-piano-reduction.ly:65 (variable)
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:56 (variable)
+#. input/lsr/vocal-ensemble-template.ly:61 (variable)
+msgid "tenorMusic"
+msgstr ""
+
+#. Documentation/user/fundamental.itely:2663 (variable)
+#. input/lsr/vocal-ensemble-template-with-automatic-piano-reduction.ly:68 (variable)
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:59 (variable)
+#. input/lsr/vocal-ensemble-template.ly:64 (variable)
+msgid "tenorWords"
+msgstr ""
+
+#. Documentation/user/fundamental.itely:2664 (variable)
+#. Documentation/user/input.itely:956 (variable)
+#. input/lsr/vocal-ensemble-template-with-automatic-piano-reduction.ly:72 (variable)
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:63 (variable)
+#. input/lsr/vocal-ensemble-template.ly:68 (variable)
+msgid "bassMusic"
+msgstr ""
+
+#. Documentation/user/fundamental.itely:2668 (variable)
+#. input/lsr/vocal-ensemble-template-with-automatic-piano-reduction.ly:75 (variable)
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:66 (variable)
+#. input/lsr/vocal-ensemble-template.ly:71 (variable)
+msgid "bassWords"
+msgstr ""
+
+#. Documentation/user/fundamental.itely:2685 (comment)
+msgid "combine ChoirStaff and PianoStaff in parallel"
+msgstr "ChoirStaff と PianoStaff を並列に組み合わせる"
+
+#. Documentation/user/fundamental.itely:2687 (context id)
+#. Documentation/user/fundamental.itely:2689 (context id)
+#. input/lsr/vocal-ensemble-template-with-automatic-piano-reduction.ly:84 (context id)
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:73 (context id)
+#. input/lsr/vocal-ensemble-template.ly:79 (context id)
+msgid "sopranos"
+msgstr ""
+
+#. Documentation/user/fundamental.itely:2692 (context id)
+#. Documentation/user/fundamental.itely:2694 (context id)
+#. input/lsr/vocal-ensemble-template-with-automatic-piano-reduction.ly:85 (context id)
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:74 (context id)
+#. input/lsr/vocal-ensemble-template.ly:83 (context id)
+msgid "altos"
+msgstr ""
+
+#. Documentation/user/fundamental.itely:2697 (context id)
+#. Documentation/user/fundamental.itely:2699 (context id)
+#. input/lsr/vocal-ensemble-template-with-automatic-piano-reduction.ly:91 (context id)
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:84 (context id)
+#. input/lsr/vocal-ensemble-template.ly:92 (context id)
+msgid "tenors"
+msgstr ""
+
+#. Documentation/user/fundamental.itely:2702 (context id)
+#. Documentation/user/fundamental.itely:2704 (context id)
+#. input/lsr/vocal-ensemble-template-with-automatic-piano-reduction.ly:92 (context id)
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:85 (context id)
+#. input/lsr/vocal-ensemble-template.ly:96 (context id)
+msgid "basses"
+msgstr ""
+
+#. Documentation/user/fundamental.itely:2707 (comment)
+msgid "end ChoirStaff"
+msgstr "ChoirStaff の終了"
+
+#. Documentation/user/fundamental.itely:2865 (variable)
+msgid "ManualOneVoiceOneMusic"
+msgstr ""
+
+#. Documentation/user/fundamental.itely:2868 (variable)
+msgid "ManualOneVoiceTwoMusic"
+msgstr ""
+
+#. Documentation/user/fundamental.itely:2872 (variable)
+msgid "ManualTwoMusic"
+msgstr ""
+
+#. Documentation/user/fundamental.itely:2876 (variable)
+msgid "PedalOrganMusic"
+msgstr ""
+
+#. Documentation/user/fundamental.itely:2882 (comment)
+msgid "PianoStaff and Pedal Staff must be simultaneous"
+msgstr "PianoStaff と Pedal Staff は同時進行でなければならない"
+
+#. Documentation/user/fundamental.itely:2884 (context id)
+msgid "ManualOne"
+msgstr ""
+
+#. Documentation/user/fundamental.itely:2885 (comment)
+msgid "set time signature and key"
+msgstr "拍子記号と調号をセットする"
+
+#. Documentation/user/fundamental.itely:2889 (comment)
+msgid "end ManualOne Staff context"
+msgstr "ManualOne Staff コンテキストの終了"
+
+#. Documentation/user/fundamental.itely:2890 (context id)
+msgid "ManualTwo"
+msgstr ""
+
+#. Documentation/user/fundamental.itely:2894 (comment)
+msgid "end ManualTwo Staff context"
+msgstr "ManualTwo Staff コンテキストの終了"
+
+#. Documentation/user/fundamental.itely:2895 (comment)
+msgid "end PianoStaff context"
+msgstr "PianoStaff コンテキストの終了"
+
+#. Documentation/user/fundamental.itely:2896 (context id)
+msgid "PedalOrgan"
+msgstr ""
+
+#. Documentation/user/fundamental.itely:2900 (comment)
+msgid "end PedalOrgan Staff context"
+msgstr "PedalOrgan Staff コンテキストの終了"
+
+#. Documentation/user/fundamental.itely:2902 (comment)
+msgid "end Score context"
+msgstr "Score コンテキストの終了"
+
+#. @node in Documentation/user/fundamental.itely
+#. @chapter in Documentation/user/fundamental.itely
+#. @node in Documentation/fr/user/fundamental.itely
+#. @chapter in Documentation/fr/user/fundamental.itely
+#. @node in Documentation/es/user/fundamental.itely
+#. @chapter in Documentation/es/user/fundamental.itely
+#. @node in Documentation/de/user/fundamental.itely
+#. @chapter in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @chapter in Documentation/ja/user/fundamental.itely
+msgid "Fundamental concepts"
+msgstr "基礎となるコンセプト"
+
+#. @node in Documentation/user/fundamental.itely
+#. @section in Documentation/user/fundamental.itely
+#. @node in Documentation/fr/user/fundamental.itely
+#. @section in Documentation/fr/user/fundamental.itely
+#. @node in Documentation/es/user/fundamental.itely
+#. @section in Documentation/es/user/fundamental.itely
+#. @node in Documentation/de/user/fundamental.itely
+#. @section in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @section in Documentation/ja/user/fundamental.itely
+msgid "How LilyPond input files work"
+msgstr "LilyPond 入力ファイルの仕組み"
+
+#. @node in Documentation/user/fundamental.itely
+#. @subsection in Documentation/user/fundamental.itely
+#. @node in Documentation/fr/user/fundamental.itely
+#. @subsection in Documentation/fr/user/fundamental.itely
+#. @node in Documentation/es/user/fundamental.itely
+#. @subsection in Documentation/es/user/fundamental.itely
+#. @node in Documentation/de/user/fundamental.itely
+#. @subsection in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @subsection in Documentation/ja/user/fundamental.itely
+msgid "Introduction to the LilyPond file structure"
+msgstr "LilyPond ファイル構造の紹介"
+
+#. @node in Documentation/user/fundamental.itely
+#. @subsection in Documentation/user/fundamental.itely
+#. @node in Documentation/fr/user/fundamental.itely
+#. @subsection in Documentation/fr/user/fundamental.itely
+#. @node in Documentation/es/user/fundamental.itely
+#. @subsection in Documentation/es/user/fundamental.itely
+#. @node in Documentation/de/user/fundamental.itely
+#. @subsection in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @subsection in Documentation/ja/user/fundamental.itely
+msgid "Score is a (single) compound musical expression"
+msgstr "Score は (単一の) 複合的な音楽表記"
+
+#. @node in Documentation/user/fundamental.itely
+#. @subsection in Documentation/user/fundamental.itely
+#. @node in Documentation/fr/user/fundamental.itely
+#. @subsection in Documentation/fr/user/fundamental.itely
+#. @node in Documentation/es/user/fundamental.itely
+#. @subsection in Documentation/es/user/fundamental.itely
+#. @node in Documentation/de/user/fundamental.itely
+#. @subsection in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @subsection in Documentation/ja/user/fundamental.itely
+msgid "Nesting music expressions"
+msgstr "音楽表記のネスト"
+
+# not yet
+#. @rglos in Documentation/user/fundamental.itely
+#. @rglos in Documentation/user/tweaks.itely
+#. Documentation/user/staff.itely:560 (context id)
+#. Documentation/user/staff.itely:573 (context id)
+#. Documentation/user/staff.itely:581 (context id)
+#. Documentation/user/staff.itely:600 (context id)
+#. Documentation/user/staff.itely:613 (context id)
+#. @rglos in Documentation/user/staff.itely
+#. @rglos in Documentation/fr/user/fundamental.itely
+#. @rglos in Documentation/fr/user/tweaks.itely
+#. @rglos in Documentation/es/user/fundamental.itely
+#. @rglos in Documentation/es/user/tweaks.itely
+#. @rglos in Documentation/es/user/staff.itely
+#. @rglos in Documentation/de/user/tweaks.itely
+#. @rglos in Documentation/de/user/staff.itely
+#. @rglos in Documentation/ja/user/fundamental.itely
+#. @rglos in Documentation/ja/user/tweaks.itely
+msgid "ossia"
+msgstr ""
+
+#. @node in Documentation/user/fundamental.itely
+#. @subsection in Documentation/user/fundamental.itely
+#. @node in Documentation/fr/user/fundamental.itely
+#. @subsection in Documentation/fr/user/fundamental.itely
+#. @node in Documentation/es/user/fundamental.itely
+#. @subsection in Documentation/es/user/fundamental.itely
+#. @node in Documentation/de/user/fundamental.itely
+#. @subsection in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @subsection in Documentation/ja/user/fundamental.itely
+msgid "On the un-nestedness of brackets and ties"
+msgstr "ネストされない括弧とタイ"
+
+#. @node in Documentation/user/fundamental.itely
+#. @section in Documentation/user/fundamental.itely
+#. @node in Documentation/fr/user/fundamental.itely
+#. @section in Documentation/fr/user/fundamental.itely
+#. @node in Documentation/es/user/fundamental.itely
+#. @section in Documentation/es/user/fundamental.itely
+#. @node in Documentation/de/user/fundamental.itely
+#. @section in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @section in Documentation/ja/user/fundamental.itely
+msgid "Voices contain music"
+msgstr "音楽を保持するボイス"
+
+#. @node in Documentation/user/fundamental.itely
+#. @subsection in Documentation/user/fundamental.itely
+#. @node in Documentation/fr/user/fundamental.itely
+#. @subsection in Documentation/fr/user/fundamental.itely
+#. @node in Documentation/es/user/fundamental.itely
+#. @subsection in Documentation/es/user/fundamental.itely
+#. @node in Documentation/de/user/fundamental.itely
+#. @subsection in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @subsection in Documentation/ja/user/fundamental.itely
+msgid "I'm hearing Voices"
+msgstr "私はボイスを聴いている"
+
+#. @node in Documentation/user/fundamental.itely
+#. @subsection in Documentation/user/fundamental.itely
+#. @node in Documentation/fr/user/fundamental.itely
+#. @subsection in Documentation/fr/user/fundamental.itely
+#. @node in Documentation/es/user/fundamental.itely
+#. @subsection in Documentation/es/user/fundamental.itely
+#. @node in Documentation/de/user/fundamental.itely
+#. @subsection in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @subsection in Documentation/ja/user/fundamental.itely
+msgid "Explicitly instantiating voices"
+msgstr "ボイスの明示的なインスタンス化"
+
+#. @subsubheading in Documentation/user/fundamental.itely
+#. @subsubheading in Documentation/fr/user/fundamental.itely
+#. @subsubheading in Documentation/es/user/fundamental.itely
+#. @subsubheading in Documentation/de/user/fundamental.itely
+#. @subsubheading in Documentation/ja/user/fundamental.itely
+msgid "Note columns"
+msgstr "音符列"
+
+#. @node in Documentation/user/fundamental.itely
+#. @subsection in Documentation/user/fundamental.itely
+#. @node in Documentation/fr/user/fundamental.itely
+#. @subsection in Documentation/fr/user/fundamental.itely
+#. @node in Documentation/es/user/fundamental.itely
+#. @subsection in Documentation/es/user/fundamental.itely
+#. @node in Documentation/de/user/fundamental.itely
+#. @subsection in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @subsection in Documentation/ja/user/fundamental.itely
+msgid "Voices and vocals"
+msgstr "ボイスとボーカル"
+
+#. @node in Documentation/user/fundamental.itely
+#. @section in Documentation/user/fundamental.itely
+#. @node in Documentation/fr/user/fundamental.itely
+#. @section in Documentation/fr/user/fundamental.itely
+#. @node in Documentation/es/user/fundamental.itely
+#. @section in Documentation/es/user/fundamental.itely
+#. @node in Documentation/de/user/fundamental.itely
+#. @section in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @section in Documentation/ja/user/fundamental.itely
+msgid "Contexts and engravers"
+msgstr "コンテキストとエングラーバ"
+
+#. @node in Documentation/user/fundamental.itely
+#. @subsection in Documentation/user/fundamental.itely
+#. @node in Documentation/user/changing-defaults.itely
+#. @subsection in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/fundamental.itely
+#. @subsection in Documentation/fr/user/fundamental.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
+#. @node in Documentation/es/user/fundamental.itely
+#. @subsection in Documentation/es/user/fundamental.itely
+#. @node in Documentation/es/user/changing-defaults.itely
+#. @subsection in Documentation/es/user/changing-defaults.itely
+#. @node in Documentation/de/user/fundamental.itely
+#. @subsection in Documentation/de/user/fundamental.itely
+#. @node in Documentation/de/user/changing-defaults.itely
+#. @subsection in Documentation/de/user/changing-defaults.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @subsection in Documentation/ja/user/fundamental.itely
+msgid "Contexts explained"
+msgstr "コンテキストの説明"
+
+#. @node in Documentation/user/fundamental.itely
+#. @subsection in Documentation/user/fundamental.itely
+#. @node in Documentation/user/changing-defaults.itely
+#. @subsection in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/fundamental.itely
+#. @subsection in Documentation/fr/user/fundamental.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
+#. @node in Documentation/es/user/fundamental.itely
+#. @subsection in Documentation/es/user/fundamental.itely
+#. @node in Documentation/es/user/changing-defaults.itely
+#. @subsection in Documentation/es/user/changing-defaults.itely
+#. @node in Documentation/de/user/fundamental.itely
+#. @subsection in Documentation/de/user/fundamental.itely
+#. @node in Documentation/de/user/changing-defaults.itely
+#. @subsection in Documentation/de/user/changing-defaults.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @subsection in Documentation/ja/user/fundamental.itely
+msgid "Creating contexts"
+msgstr "コンテキストを作成する"
+
+#. @node in Documentation/user/fundamental.itely
+#. @subsection in Documentation/user/fundamental.itely
+#. @node in Documentation/fr/user/fundamental.itely
+#. @subsection in Documentation/fr/user/fundamental.itely
+#. @node in Documentation/es/user/fundamental.itely
+#. @subsection in Documentation/es/user/fundamental.itely
+#. @node in Documentation/de/user/fundamental.itely
+#. @subsection in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @subsection in Documentation/ja/user/fundamental.itely
+msgid "Engravers explained"
+msgstr "エングラーバの説明"
+
+#. @node in Documentation/user/fundamental.itely
+#. @subsection in Documentation/user/fundamental.itely
+#. @node in Documentation/fr/user/fundamental.itely
+#. @subsection in Documentation/fr/user/fundamental.itely
+#. @node in Documentation/es/user/fundamental.itely
+#. @subsection in Documentation/es/user/fundamental.itely
+#. @node in Documentation/de/user/fundamental.itely
+#. @subsection in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @subsection in Documentation/ja/user/fundamental.itely
+msgid "Modifying context properties"
+msgstr "コンテキスト プロパティを変更する"
+
+#. @subsubheading in Documentation/user/fundamental.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/fundamental.itely
+#. @subsubheading in Documentation/es/user/fundamental.itely
+#. @subsubheading in Documentation/de/user/fundamental.itely
+#. @subsubheading in Documentation/ja/user/fundamental.itely
+msgid "Setting context properties with @code{\\with}"
+msgstr "@code{\\with} を用いてコンテキスト プロパティを設定する"
+
+#. @subsubheading in Documentation/user/fundamental.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/fundamental.itely
+#. @subsubheading in Documentation/es/user/fundamental.itely
+#. @subsubheading in Documentation/de/user/fundamental.itely
+#. @subsubheading in Documentation/ja/user/fundamental.itely
+msgid "Setting context properties with @code{\\context}"
+msgstr "@code{\\context} を用いてコンテキスト プロパティを設定する"
+
+#. @node in Documentation/user/fundamental.itely
+#. @subsection in Documentation/user/fundamental.itely
+#. @node in Documentation/fr/user/fundamental.itely
+#. @subsection in Documentation/fr/user/fundamental.itely
+#. @node in Documentation/es/user/fundamental.itely
+#. @subsection in Documentation/es/user/fundamental.itely
+#. @node in Documentation/de/user/fundamental.itely
+#. @subsection in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @subsection in Documentation/ja/user/fundamental.itely
+msgid "Adding and removing engravers"
+msgstr "エングラーバを追加 / 削除する"
+
+#. @subsubheading in Documentation/user/fundamental.itely
+#. @subsubheading in Documentation/fr/user/fundamental.itely
+#. @subsubheading in Documentation/es/user/fundamental.itely
+#. @subsubheading in Documentation/de/user/fundamental.itely
+#. @subsubheading in Documentation/ja/user/fundamental.itely
+msgid "Changing a single context"
+msgstr "単一のコンテキストを変更する"
+
+#. @rglos in Documentation/user/fundamental.itely
+#. @rglos in Documentation/user/pitches.itely
+#. @rglos in Documentation/fr/user/fundamental.itely
+#. @rglos in Documentation/es/user/fundamental.itely
+#. @rglos in Documentation/es/user/pitches.itely
+#. @rglos in Documentation/de/user/fundamental.itely
+#. @rglos in Documentation/de/user/pitches.itely
+#. @rglos in Documentation/ja/user/fundamental.itely
+msgid "ambitus"
+msgstr "音域 (ambitus)"
+
+#. @subsubheading in Documentation/user/fundamental.itely
+#. @subsubheading in Documentation/fr/user/fundamental.itely
+#. @subsubheading in Documentation/es/user/fundamental.itely
+#. @subsubheading in Documentation/de/user/fundamental.itely
+#. @subsubheading in Documentation/ja/user/fundamental.itely
+msgid "Changing all contexts of the same type"
+msgstr "同じタイプのコンテキストをすべて変更する"
+
+#. @node in Documentation/user/fundamental.itely
+#. @section in Documentation/user/fundamental.itely
+#. @node in Documentation/fr/user/fundamental.itely
+#. @section in Documentation/fr/user/fundamental.itely
+#. @node in Documentation/es/user/fundamental.itely
+#. @section in Documentation/es/user/fundamental.itely
+#. @node in Documentation/de/user/fundamental.itely
+#. @section in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @section in Documentation/ja/user/fundamental.itely
+msgid "Extending the templates"
+msgstr "テンプレートを拡張する"
+
+#. @node in Documentation/user/fundamental.itely
+#. @subsection in Documentation/user/fundamental.itely
+#. @node in Documentation/fr/user/fundamental.itely
+#. @subsection in Documentation/fr/user/fundamental.itely
+#. @node in Documentation/es/user/fundamental.itely
+#. @subsection in Documentation/es/user/fundamental.itely
+#. @node in Documentation/de/user/fundamental.itely
+#. @subsection in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @subsection in Documentation/ja/user/fundamental.itely
+msgid "Soprano and cello"
+msgstr "ソプラノとチェロ"
+
+#. @node in Documentation/user/fundamental.itely
+#. @subsection in Documentation/user/fundamental.itely
+#. @node in Documentation/fr/user/fundamental.itely
+#. @subsection in Documentation/fr/user/fundamental.itely
+#. @node in Documentation/es/user/fundamental.itely
+#. @subsection in Documentation/es/user/fundamental.itely
+#. @node in Documentation/de/user/fundamental.itely
+#. @subsection in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @subsection in Documentation/ja/user/fundamental.itely
+msgid "Four-part SATB vocal score"
+msgstr "4 パート SATB ボーカル譜"
+
+#. @node in Documentation/user/fundamental.itely
+#. @subsection in Documentation/user/fundamental.itely
+#. @node in Documentation/fr/user/fundamental.itely
+#. @subsection in Documentation/fr/user/fundamental.itely
+#. @node in Documentation/es/user/fundamental.itely
+#. @subsection in Documentation/es/user/fundamental.itely
+#. @node in Documentation/de/user/fundamental.itely
+#. @subsection in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @subsection in Documentation/ja/user/fundamental.itely
+msgid "Building a score from scratch"
+msgstr "ゼロから楽譜を構築する"
+
+#. Documentation/user/tweaks.itely:597 (comment)
+#. Documentation/user/tweaks.itely:732 (comment)
+msgid "Increase thickness of all following slurs from 1.2 to 5.0"
+msgstr "後に続くすべてのスラーの太さを 1.2 から 5.0 に増やします"
+
+#. Documentation/user/tweaks.itely:666 (comment)
+#. Documentation/user/tweaks.itely:705 (comment)
+#. Documentation/user/tweaks.itely:708 (comment)
+msgid "Increase thickness of immediately following slur only"
+msgstr "直後にあるスラーの太さだけを増やします"
+
+#. Documentation/user/tweaks.itely:736 (comment)
+msgid "Revert thickness of all following slurs to default of 1.2"
+msgstr "後に続くすべてのスラーの太さをデフォルトの 1.2 に戻します"
+
+#. Documentation/user/tweaks.itely:1396 (comment)
+msgid "Don't print clefs in this staff"
+msgstr "この譜表には音部記号を譜刻しません"
+
+#. Documentation/user/tweaks.itely:1398 (comment)
+msgid "Don't print time signatures in this staff"
+msgstr "この譜表には拍子記号を譜刻しません"
+
+#. Documentation/user/tweaks.itely:1462 (comment)
+msgid "Reduce all font sizes by ~24%"
+msgstr "すべてのフォント サイズを約 24% 減らします"
+
+#. Documentation/user/tweaks.itely:1528 (comment)
+msgid "Reduce stem length and line spacing to match"
+msgstr "釣り合いをとるためにステムの長さと譜表線の間隔を減らします"
+
+#. Documentation/user/tweaks.itely:1958 (comment)
+#. Documentation/user/tweaks.itely:2028 (comment)
+msgid "Set details for later Text Spanner"
+msgstr "後のテキスト スパナのための詳細を設定"
+
+#. Documentation/user/tweaks.itely:1961 (comment)
+#. Documentation/user/tweaks.itely:2031 (comment)
+msgid "Place dynamics above staff"
+msgstr "譜表の上に強弱記号を配置"
+
+#. Documentation/user/tweaks.itely:1963 (comment)
+#. Documentation/user/tweaks.itely:2035 (comment)
+msgid "Start Ottava Bracket"
+msgstr "オッターバ囲みの開始"
+
+#. Documentation/user/tweaks.itely:1966 (comment)
+#. Documentation/user/tweaks.itely:1973 (comment)
+#. Documentation/user/tweaks.itely:2038 (comment)
+#. Documentation/user/tweaks.itely:2045 (comment)
+msgid "Add Dynamic Text"
+msgstr "強弱記号テキストの追加"
+
+#. Documentation/user/tweaks.itely:1968 (comment)
+#. Documentation/user/tweaks.itely:2040 (comment)
+msgid "Add Dynamic Line Spanner"
+msgstr "強弱記号線スパナの追加"
+
+#. Documentation/user/tweaks.itely:1970 (comment)
+#. Documentation/user/tweaks.itely:2042 (comment)
+msgid "Add Text Script"
+msgstr "テキスト スクリプトの追加"
+
+#. Documentation/user/tweaks.itely:1975 (comment)
+#. Documentation/user/tweaks.itely:2047 (comment)
+msgid "Stop Ottava Bracket"
+msgstr "オッターバ囲みの終了"
+
+#. Documentation/user/tweaks.itely:2033 (comment)
+msgid "Place following Ottava Bracket below Text Spanners"
+msgstr "以下のオッターバ囲みをテキスト スパナの下に配置"
+
+#. Documentation/user/tweaks.itely:2122 (comment)
+msgid "Cause notes to space out to accommodate text"
+msgstr "テキストに合わせて音符の間隔を広げます"
+
+#. Documentation/user/tweaks.itely:2145 (comment)
+msgid "This markup is short enough to fit without collision"
+msgstr "このマークアップは短いため、衝突を起こさずにぴったりと収まります"
+
+#. Documentation/user/tweaks.itely:2149 (comment)
+msgid "This is too long to fit, so it is displaced upwards"
+msgstr "このマークアップは長いため、上の方に再配置されます"
+
+#. Documentation/user/tweaks.itely:2153 (comment)
+#. Documentation/user/tweaks.itely:2158 (comment)
+msgid "Turn off collision avoidance"
+msgstr "衝突回避を off にします"
+
+#. Documentation/user/tweaks.itely:2160 (comment)
+msgid "and turn on textLengthOn"
+msgstr "今度は textLengthOn を on にします"
+
+#. Documentation/user/tweaks.itely:2161 (comment)
+msgid "Spaces at end are honored"
+msgstr "テキスト終端のスペースは尊重されます"
+
+#. Documentation/user/tweaks.itely:2268 (comment)
+msgid "Extend width by 1 staff space"
+msgstr "幅を 1 譜表スペース広げます"
+
+#. Documentation/user/tweaks.itely:2551 (comment)
+msgid "This will not work, see below:"
+msgstr "これは機能しません。以下を見てください:"
+
+#. Documentation/user/tweaks.itely:2555 (comment)
+msgid "This works:"
+msgstr "これは機能します:"
+
+#. Documentation/user/tweaks.itely:2606 (variable)
+msgid "naturalplusflat"
+msgstr ""
+
+#. Documentation/user/tweaks.itely:2647 (comment)
+msgid "Extend width by 1 unit"
+msgstr "幅を 1 単位 (譜表スペース) 広げます"
+
+#. Documentation/user/tweaks.itely:2649 (comment)
+msgid "Align dynamics to a base line 2 units above staff"
+msgstr "強弱記号を譜表から 2 単位上のベース ラインに揃えます"
+
+#. Documentation/user/tweaks.itely:2953 (variable)
+#. Documentation/user/tweaks.itely:3002 (variable)
+#. Documentation/user/tweaks.itely:3063 (variable)
+#. Documentation/user/tweaks.itely:3133 (variable)
+#. Documentation/user/tweaks.itely:3198 (variable)
+#. Documentation/user/tweaks.itely:3258 (variable)
+msgid "rhMusic"
+msgstr ""
+
+#. Documentation/user/tweaks.itely:2958 (comment)
+#. Documentation/user/tweaks.itely:3007 (comment)
+#. Documentation/user/tweaks.itely:3070 (comment)
+#. Documentation/user/tweaks.itely:3142 (comment)
+#. Documentation/user/tweaks.itely:3207 (comment)
+msgid "Start polyphonic section of four voices"
+msgstr "4 つのボイスを持つ多声部セクションの開始"
+
+#. Documentation/user/tweaks.itely:2971 (variable)
+#. Documentation/user/tweaks.itely:3020 (variable)
+#. Documentation/user/tweaks.itely:3083 (variable)
+#. Documentation/user/tweaks.itely:3157 (variable)
+#. Documentation/user/tweaks.itely:3224 (variable)
+#. Documentation/user/tweaks.itely:3286 (variable)
+msgid "lhMusic"
+msgstr ""
+
+#. Documentation/user/tweaks.itely:2980 (context id)
+#. Documentation/user/tweaks.itely:3029 (context id)
+#. Documentation/user/tweaks.itely:3092 (context id)
+#. Documentation/user/tweaks.itely:3166 (context id)
+#. Documentation/user/tweaks.itely:3233 (context id)
+#. Documentation/user/tweaks.itely:3295 (context id)
+#. Documentation/user/input.itely:974 (context id)
+msgid "RH"
+msgstr ""
+
+#. Documentation/user/tweaks.itely:2984 (context id)
+#. Documentation/user/tweaks.itely:3033 (context id)
+#. Documentation/user/tweaks.itely:3096 (context id)
+#. Documentation/user/tweaks.itely:3170 (context id)
+#. Documentation/user/tweaks.itely:3237 (context id)
+#. Documentation/user/tweaks.itely:3299 (context id)
+#. Documentation/user/input.itely:980 (context id)
+msgid "LH"
+msgstr ""
+
+#. Documentation/user/tweaks.itely:3211 (comment)
+#. Documentation/user/tweaks.itely:3273 (comment)
+msgid "Move the c2 out of the main note column so the merge will work"
+msgstr "マージが機能するように、c2 をメインの音符列の外に移動させます"
+
+#. Documentation/user/tweaks.itely:3214 (comment)
+#. Documentation/user/tweaks.itely:3276 (comment)
+msgid "Stem on the d2 must be down to permit merging"
+msgstr "マージを可能にするため、d2 のステムは下向きでなければなりません"
+
+#. Documentation/user/tweaks.itely:3271 (comment)
+msgid "Reposition the c2 to the right of the merged note"
+msgstr "c2 をマージされた音符の右側に再配置します"
+
+#. Documentation/user/tweaks.itely:3407 (comment)
+#. Documentation/user/tweaks.itely:3429 (comment)
+msgid "Visible tempo marking"
+msgstr "可視のテンポ記号"
+
+#. Documentation/user/tweaks.itely:3411 (comment)
+#. Documentation/user/tweaks.itely:3433 (comment)
+msgid "Invisible tempo marking to lengthen fermata in MIDI"
+msgstr "MIDI の中でフェルマータの演奏時間を伸ばすための不可視のテンポ記号"
+
+#. Documentation/user/tweaks.itely:3414 (comment)
+#. Documentation/user/tweaks.itely:3436 (comment)
+msgid "New tempo for next section"
+msgstr "次のセクションのための新しいテンポ"
+
+#. Documentation/user/tweaks.itely:3493 (variable)
+msgid "emphasize"
+msgstr ""
+
+#. Documentation/user/tweaks.itely:3497 (variable)
+msgid "normal"
+msgstr ""
+
+#. Documentation/user/tweaks.itely:3503 (variable)
+msgid "SopranoMusic"
+msgstr ""
+
+#. Documentation/user/tweaks.itely:3516 (context id)
+#. Documentation/user/input.itely:959 (context id)
+msgid "Soprano"
+msgstr ""
+
+#. Documentation/user/tweaks.itely:3725 (comment)
+msgid "Arrange to obtain color from color-notehead procedure"
+msgstr "color-notehead プロシージャからカラーを取得するための手続き"
+
+#. @node in Documentation/user/tweaks.itely
+#. @chapter in Documentation/user/tweaks.itely
+#. @node in Documentation/fr/user/tweaks.itely
+#. @chapter in Documentation/fr/user/tweaks.itely
+#. @node in Documentation/es/user/tweaks.itely
+#. @chapter in Documentation/es/user/tweaks.itely
+#. @node in Documentation/de/user/tweaks.itely
+#. @chapter in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @chapter in Documentation/ja/user/tweaks.itely
+msgid "Tweaking output"
+msgstr "出力を調整する"
+
+#. @node in Documentation/user/tweaks.itely
+#. @section in Documentation/user/tweaks.itely
+#. @node in Documentation/fr/user/tweaks.itely
+#. @section in Documentation/fr/user/tweaks.itely
+#. @node in Documentation/es/user/tweaks.itely
+#. @section in Documentation/es/user/tweaks.itely
+#. @node in Documentation/de/user/tweaks.itely
+#. @section in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @section in Documentation/ja/user/tweaks.itely
+msgid "Tweaking basics"
+msgstr "調整の基本"
+
+#. @node in Documentation/user/tweaks.itely
+#. @subsection in Documentation/user/tweaks.itely
+#. @node in Documentation/fr/user/tweaks.itely
+#. @subsection in Documentation/fr/user/tweaks.itely
+#. @node in Documentation/es/user/tweaks.itely
+#. @subsection in Documentation/es/user/tweaks.itely
+#. @node in Documentation/de/user/tweaks.itely
+#. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
+msgid "Introduction to tweaks"
+msgstr "調整の紹介"
+
+#. @node in Documentation/user/tweaks.itely
+#. @subsection in Documentation/user/tweaks.itely
+#. @node in Documentation/fr/user/tweaks.itely
+#. @subsection in Documentation/fr/user/tweaks.itely
+#. @node in Documentation/es/user/tweaks.itely
+#. @subsection in Documentation/es/user/tweaks.itely
+#. @node in Documentation/de/user/tweaks.itely
+#. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
+msgid "Objects and interfaces"
+msgstr "オブジェクトとインタフェイス"
+
+#. @node in Documentation/user/tweaks.itely
+#. @subsection in Documentation/user/tweaks.itely
+#. @node in Documentation/fr/user/tweaks.itely
+#. @subsection in Documentation/fr/user/tweaks.itely
+#. @node in Documentation/es/user/tweaks.itely
+#. @subsection in Documentation/es/user/tweaks.itely
+#. @node in Documentation/de/user/tweaks.itely
+#. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
+msgid "Naming conventions of objects and properties"
+msgstr "オブジェクトとプロパティの命名規約"
+
+#. @node in Documentation/user/tweaks.itely
+#. @subsection in Documentation/user/tweaks.itely
+#. @node in Documentation/fr/user/tweaks.itely
+#. @subsection in Documentation/fr/user/tweaks.itely
+#. @node in Documentation/es/user/tweaks.itely
+#. @subsection in Documentation/es/user/tweaks.itely
+#. @node in Documentation/de/user/tweaks.itely
+#. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
+msgid "Tweaking methods"
+msgstr "調整手段"
+
+#. @node in Documentation/user/tweaks.itely
+#. @section in Documentation/user/tweaks.itely
+#. @node in Documentation/fr/user/tweaks.itely
+#. @section in Documentation/fr/user/tweaks.itely
+#. @node in Documentation/es/user/tweaks.itely
+#. @section in Documentation/es/user/tweaks.itely
+#. @node in Documentation/de/user/tweaks.itely
+#. @section in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @section in Documentation/ja/user/tweaks.itely
+msgid "The Internals Reference manual"
+msgstr "内部リファレンス マニュアル"
+
+#. @node in Documentation/user/tweaks.itely
+#. @subsection in Documentation/user/tweaks.itely
+#. @node in Documentation/fr/user/tweaks.itely
+#. @subsection in Documentation/fr/user/tweaks.itely
+#. @node in Documentation/es/user/tweaks.itely
+#. @subsection in Documentation/es/user/tweaks.itely
+#. @node in Documentation/de/user/tweaks.itely
+#. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
+msgid "Properties of layout objects"
+msgstr "レイアウト オブジェクトのプロパティ"
+
+#. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
+#. @subheading in Documentation/es/user/tweaks.itely
+#. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
+msgid "Finding the context"
+msgstr "コンテキストを見つけ出す"
+
+#. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
+#. @subheading in Documentation/es/user/tweaks.itely
+#. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
+msgid "Overriding once only"
+msgstr "1 回だけオーバライドする"
+
+#. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
+#. @subheading in Documentation/es/user/tweaks.itely
+#. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
+msgid "Reverting"
+msgstr "元に戻す"
+
+#. @node in Documentation/user/tweaks.itely
+#. @subsection in Documentation/user/tweaks.itely
+#. @node in Documentation/fr/user/tweaks.itely
+#. @subsection in Documentation/fr/user/tweaks.itely
+#. @node in Documentation/es/user/tweaks.itely
+#. @subsection in Documentation/es/user/tweaks.itely
+#. @node in Documentation/de/user/tweaks.itely
+#. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
+msgid "Properties found in interfaces"
+msgstr "インタフェイスの中で見つかるプロパティ"
+
+#. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
+#. @subheading in Documentation/es/user/tweaks.itely
+#. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
+msgid "Specifying the context in lyric mode"
+msgstr "歌詞モードの中でコンテキストを指定する"
+
+#. @node in Documentation/user/tweaks.itely
+#. @subsection in Documentation/user/tweaks.itely
+#. @node in Documentation/fr/user/tweaks.itely
+#. @subsection in Documentation/fr/user/tweaks.itely
+#. @node in Documentation/es/user/tweaks.itely
+#. @subsection in Documentation/es/user/tweaks.itely
+#. @node in Documentation/de/user/tweaks.itely
+#. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
+msgid "Types of properties"
+msgstr "プロパティのタイプ"
+
+#. @node in Documentation/user/tweaks.itely
+#. @section in Documentation/user/tweaks.itely
+#. @node in Documentation/fr/user/tweaks.itely
+#. @section in Documentation/fr/user/tweaks.itely
+#. @node in Documentation/es/user/tweaks.itely
+#. @section in Documentation/es/user/tweaks.itely
+#. @node in Documentation/de/user/tweaks.itely
+#. @section in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @section in Documentation/ja/user/tweaks.itely
+msgid "Appearance of objects"
+msgstr "オブジェクトの見た目"
+
+#. @node in Documentation/user/tweaks.itely
+#. @subsection in Documentation/user/tweaks.itely
+#. @node in Documentation/fr/user/tweaks.itely
+#. @subsection in Documentation/fr/user/tweaks.itely
+#. @node in Documentation/es/user/tweaks.itely
+#. @subsection in Documentation/es/user/tweaks.itely
+#. @node in Documentation/de/user/tweaks.itely
+#. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
+msgid "Visibility and color of objects"
+msgstr "オブジェクトの可視性と色"
+
+#. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
+#. @subheading in Documentation/es/user/tweaks.itely
+#. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
+msgid "stencil"
+msgstr "ステンシル (stencil)"
+
+#. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
+#. @subheading in Documentation/es/user/tweaks.itely
+#. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
+msgid "break-visibility"
+msgstr "可視性の破棄 (break-visibility)"
+
+#. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
+#. @subheading in Documentation/es/user/tweaks.itely
+#. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
+msgid "transparent"
+msgstr "透過性 (transparent)"
+
+#. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
+#. @subheading in Documentation/es/user/tweaks.itely
+#. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
+msgid "color"
+msgstr "色 (color)"
+
+#. @node in Documentation/user/tweaks.itely
+#. @subsection in Documentation/user/tweaks.itely
+#. @node in Documentation/fr/user/tweaks.itely
+#. @subsection in Documentation/fr/user/tweaks.itely
+#. @node in Documentation/es/user/tweaks.itely
+#. @subsection in Documentation/es/user/tweaks.itely
+#. @node in Documentation/de/user/tweaks.itely
+#. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
+msgid "Size of objects"
+msgstr "オブジェクトのサイズ"
+
+#. @node in Documentation/user/tweaks.itely
+#. @subsection in Documentation/user/tweaks.itely
+#. @node in Documentation/fr/user/tweaks.itely
+#. @subsection in Documentation/fr/user/tweaks.itely
+#. @node in Documentation/es/user/tweaks.itely
+#. @subsection in Documentation/es/user/tweaks.itely
+#. @node in Documentation/de/user/tweaks.itely
+#. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
+msgid "Length and thickness of objects"
+msgstr "オブジェクトの長さと太さ"
+
+#. @node in Documentation/user/tweaks.itely
+#. @section in Documentation/user/tweaks.itely
+#. @node in Documentation/fr/user/tweaks.itely
+#. @section in Documentation/fr/user/tweaks.itely
+#. @node in Documentation/es/user/tweaks.itely
+#. @section in Documentation/es/user/tweaks.itely
+#. @node in Documentation/de/user/tweaks.itely
+#. @section in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @section in Documentation/ja/user/tweaks.itely
+msgid "Placement of objects"
+msgstr "オブジェクトの配置"
+
+#. @node in Documentation/user/tweaks.itely
+#. @subsection in Documentation/user/tweaks.itely
+#. @node in Documentation/fr/user/tweaks.itely
+#. @subsection in Documentation/fr/user/tweaks.itely
+#. @node in Documentation/de/user/tweaks.itely
+#. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
+msgid "Automatic behavior"
+msgstr "自動配置"
+
+#. @node in Documentation/user/tweaks.itely
+#. @subsection in Documentation/user/tweaks.itely
+#. @node in Documentation/fr/user/tweaks.itely
+#. @subsection in Documentation/fr/user/tweaks.itely
+#. @node in Documentation/es/user/tweaks.itely
+#. @subsection in Documentation/es/user/tweaks.itely
+#. @node in Documentation/de/user/tweaks.itely
+#. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
+msgid "Within-staff objects"
+msgstr "譜表内部オブジェクト"
+
+#. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
+#. @subheading in Documentation/es/user/tweaks.itely
+#. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
+msgid "Fingering"
+msgstr "運指法記号 (Fingering)"
+
+#. @node in Documentation/user/tweaks.itely
+#. @subsection in Documentation/user/tweaks.itely
+#. @node in Documentation/es/user/tweaks.itely
+#. @subsection in Documentation/es/user/tweaks.itely
+#. @node in Documentation/de/user/tweaks.itely
+#. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
+msgid "Outside-staff objects"
+msgstr "譜表外部オブジェクト"
+
+#. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
+#. @subheading in Documentation/es/user/tweaks.itely
+#. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
+msgid "\\textLengthOn"
+msgstr ""
+
+#. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
+#. @subheading in Documentation/es/user/tweaks.itely
+#. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
+msgid "Grob sizing"
+msgstr "グラフィカル オブジェクトのサイズ"
+
+#. @node in Documentation/user/tweaks.itely
+#. @section in Documentation/user/tweaks.itely
+#. @node in Documentation/fr/user/tweaks.itely
+#. @section in Documentation/fr/user/tweaks.itely
+#. @node in Documentation/es/user/tweaks.itely
+#. @section in Documentation/es/user/tweaks.itely
+#. @node in Documentation/de/user/tweaks.itely
+#. @section in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @section in Documentation/ja/user/tweaks.itely
+msgid "Collisions of objects"
+msgstr "オブジェクトの衝突"
+
+#. @node in Documentation/user/tweaks.itely
+#. @subsection in Documentation/user/tweaks.itely
+#. @node in Documentation/fr/user/tweaks.itely
+#. @subsection in Documentation/fr/user/tweaks.itely
+#. @node in Documentation/es/user/tweaks.itely
+#. @subsection in Documentation/es/user/tweaks.itely
+#. @node in Documentation/de/user/tweaks.itely
+#. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
+msgid "Moving objects"
+msgstr "オブジェクトを移動させる"
+
+#. @node in Documentation/user/tweaks.itely
+#. @subsection in Documentation/user/tweaks.itely
+#. @node in Documentation/fr/user/tweaks.itely
+#. @subsection in Documentation/fr/user/tweaks.itely
+#. @node in Documentation/es/user/tweaks.itely
+#. @subsection in Documentation/es/user/tweaks.itely
+#. @node in Documentation/de/user/tweaks.itely
+#. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
+msgid "Fixing overlapping notation"
+msgstr "表記の重なりを修正する"
+
+#. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
+#. @subheading in Documentation/es/user/tweaks.itely
+#. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
+msgid "padding property"
+msgstr "padding プロパティ"
+
+#. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
+#. @subheading in Documentation/es/user/tweaks.itely
+#. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
+msgid "left-padding and right-padding"
+msgstr "left-padding と right-padding"
+
+#. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
+#. @subheading in Documentation/es/user/tweaks.itely
+#. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
+msgid "staff-padding property"
+msgstr "staff-padding プロパティ"
+
+#. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
+#. @subheading in Documentation/es/user/tweaks.itely
+#. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
+msgid "self-alignment-X property"
+msgstr "self-alignment-X プロパティ"
+
+#. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
+#. @subheading in Documentation/es/user/tweaks.itely
+#. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
+msgid "staff-position property"
+msgstr "staff-position プロパティ"
+
+#. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
+#. @subheading in Documentation/es/user/tweaks.itely
+#. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
+msgid "extra-offset property"
+msgstr "extra-offset プロパティ"
+
+#. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
+#. @subheading in Documentation/es/user/tweaks.itely
+#. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
+msgid "positions property"
+msgstr "positions プロパティ"
+
+#. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
+#. @subheading in Documentation/es/user/tweaks.itely
+#. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
+msgid "force-hshift property"
+msgstr "force-hshift プロパティ"
+
+#. @node in Documentation/user/tweaks.itely
+#. @subsection in Documentation/user/tweaks.itely
+#. @node in Documentation/fr/user/tweaks.itely
+#. @subsection in Documentation/fr/user/tweaks.itely
+#. @node in Documentation/es/user/tweaks.itely
+#. @subsection in Documentation/es/user/tweaks.itely
+#. @node in Documentation/de/user/tweaks.itely
+#. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
+msgid "Real music example"
+msgstr "実際の音楽からの例"
+
+#. @node in Documentation/user/tweaks.itely
+#. @section in Documentation/user/tweaks.itely
+#. @node in Documentation/fr/user/tweaks.itely
+#. @section in Documentation/fr/user/tweaks.itely
+#. @node in Documentation/es/user/tweaks.itely
+#. @section in Documentation/es/user/tweaks.itely
+#. @node in Documentation/de/user/tweaks.itely
+#. @section in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @section in Documentation/ja/user/tweaks.itely
+msgid "Further tweaking"
+msgstr "更なる調整"
+
+#. @node in Documentation/user/tweaks.itely
+#. @subsection in Documentation/user/tweaks.itely
+#. @node in Documentation/fr/user/tweaks.itely
+#. @subsection in Documentation/fr/user/tweaks.itely
+#. @node in Documentation/es/user/tweaks.itely
+#. @subsection in Documentation/es/user/tweaks.itely
+#. @node in Documentation/de/user/tweaks.itely
+#. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
+msgid "Other uses for tweaks"
+msgstr "調整のその他の使用方法"
+
+#. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
+#. @subheading in Documentation/es/user/tweaks.itely
+#. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
+msgid "Tying notes across voices"
+msgstr "異なるボイスの中にある音符をタイで結ぶ"
+
+#. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
+#. @subheading in Documentation/es/user/tweaks.itely
+#. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
+msgid "Simulating a fermata in MIDI"
+msgstr "MIDI でフェルマータをシミュレートする"
+
+#. @node in Documentation/user/tweaks.itely
+#. @subsection in Documentation/user/tweaks.itely
+#. @node in Documentation/fr/user/tweaks.itely
+#. @subsection in Documentation/fr/user/tweaks.itely
+#. @node in Documentation/es/user/tweaks.itely
+#. @subsection in Documentation/es/user/tweaks.itely
+#. @node in Documentation/de/user/tweaks.itely
+#. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
+msgid "Using variables for tweaks"
+msgstr "調整のために変数を使用する"
+
+#. @node in Documentation/user/tweaks.itely
+#. @subsection in Documentation/user/tweaks.itely
+#. @node in Documentation/fr/user/tweaks.itely
+#. @subsection in Documentation/fr/user/tweaks.itely
+#. @node in Documentation/es/user/tweaks.itely
+#. @subsection in Documentation/es/user/tweaks.itely
+#. @node in Documentation/de/user/tweaks.itely
+#. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
+msgid "Other sources of information"
+msgstr "その他の情報源"
+
+#. @node in Documentation/user/tweaks.itely
+#. @subsection in Documentation/user/tweaks.itely
+#. @node in Documentation/fr/user/tweaks.itely
+#. @subsection in Documentation/fr/user/tweaks.itely
+#. @node in Documentation/es/user/tweaks.itely
+#. @subsection in Documentation/es/user/tweaks.itely
+#. @node in Documentation/de/user/tweaks.itely
+#. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
+msgid "Avoiding tweaks with slower processing"
+msgstr "処理に時間のかかる調整を避ける"
+
+#. @node in Documentation/user/tweaks.itely
+#. @subsection in Documentation/user/tweaks.itely
+#. @node in Documentation/fr/user/tweaks.itely
+#. @subsection in Documentation/fr/user/tweaks.itely
+#. @node in Documentation/es/user/tweaks.itely
+#. @subsection in Documentation/es/user/tweaks.itely
+#. @node in Documentation/de/user/tweaks.itely
+#. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
+msgid "Advanced tweaks with Scheme"
+msgstr "Scheme を用いた高度な調整"
+
+#. Documentation/user/working.itely:220 (variable)
+msgid "hornNotes"
+msgstr ""
+
+#. Documentation/user/working.itely:231 (variable)
+msgid "fragmentA"
+msgstr ""
+
+#. Documentation/user/working.itely:232 (variable)
+msgid "fragmentB"
+msgstr ""
+
+#. Documentation/user/working.itely:245 (variable)
+msgid "dolce"
+msgstr ""
+
+#. Documentation/user/working.itely:246 (variable)
+#. Documentation/user/working.itely:295 (variable)
+#. Documentation/user/scheme-tutorial.itely:235 (variable)
+#. Documentation/user/programming-interface.itely:101 (variable)
+msgid "padText"
+msgstr ""
+
+#. Documentation/user/working.itely:247 (variable)
+msgid "fthenp"
+msgstr ""
+
+#. Documentation/user/working.itely:332 (variable)
+msgid "mpdolce"
+msgstr ""
+
+#. Documentation/user/working.itely:334 (variable)
+#. Documentation/user/scheme-tutorial.itely:256 (variable)
+#. Documentation/user/programming-interface.itely:135 (variable)
+msgid "tempoMark"
+msgstr ""
+
+#. @node in Documentation/user/working.itely
+#. @chapter in Documentation/user/working.itely
+#. @node in Documentation/fr/user/working.itely
+#. @chapter in Documentation/fr/user/working.itely
+#. @node in Documentation/es/user/working.itely
+#. @chapter in Documentation/es/user/working.itely
+#. @node in Documentation/de/user/working.itely
+#. @chapter in Documentation/de/user/working.itely
+#. @node in Documentation/ja/user/working.itely
+#. @chapter in Documentation/ja/user/working.itely
+msgid "Working on LilyPond projects"
+msgstr "LilyPond プロジェクトに取り組む"
+
+#. @node in Documentation/user/working.itely
+#. @section in Documentation/user/working.itely
+#. @node in Documentation/fr/user/working.itely
+#. @section in Documentation/fr/user/working.itely
+#. @node in Documentation/de/user/working.itely
+#. @section in Documentation/de/user/working.itely
+#. @node in Documentation/ja/user/working.itely
+#. @section in Documentation/ja/user/working.itely
+msgid "Suggestions for writing LilyPond input files"
+msgstr "LilyPond 入力ファイルの記述に対する提案"
+
+#. @node in Documentation/user/working.itely
+#. @subsection in Documentation/user/working.itely
+#. @node in Documentation/fr/user/working.itely
+#. @subsection in Documentation/fr/user/working.itely
+#. @node in Documentation/es/user/working.itely
+#. @subsection in Documentation/es/user/working.itely
+#. @node in Documentation/de/user/working.itely
+#. @subsection in Documentation/de/user/working.itely
+#. @node in Documentation/ja/user/working.itely
+#. @subsection in Documentation/ja/user/working.itely
+msgid "General suggestions"
+msgstr "一般的な提案"
+
+#. @node in Documentation/user/working.itely
+#. @subsection in Documentation/user/working.itely
+#. @node in Documentation/fr/user/working.itely
+#. @subsection in Documentation/fr/user/working.itely
+#. @node in Documentation/es/user/working.itely
+#. @subsection in Documentation/es/user/working.itely
+#. @node in Documentation/de/user/working.itely
+#. @subsection in Documentation/de/user/working.itely
+#. @node in Documentation/ja/user/working.itely
+#. @subsection in Documentation/ja/user/working.itely
+msgid "Typesetting existing music"
+msgstr "既存の音楽を譜刻する"
+
+#. @node in Documentation/user/working.itely
+#. @subsection in Documentation/user/working.itely
+#. @node in Documentation/fr/user/working.itely
+#. @subsection in Documentation/fr/user/working.itely
+#. @node in Documentation/es/user/working.itely
+#. @subsection in Documentation/es/user/working.itely
+#. @node in Documentation/de/user/working.itely
+#. @subsection in Documentation/de/user/working.itely
+#. @node in Documentation/ja/user/working.itely
+#. @subsection in Documentation/ja/user/working.itely
+msgid "Large projects"
+msgstr "大きなプロジェクト"
+
+#. @node in Documentation/user/working.itely
+#. @subsection in Documentation/user/working.itely
+#. @node in Documentation/fr/user/working.itely
+#. @subsection in Documentation/fr/user/working.itely
+#. @node in Documentation/es/user/working.itely
+#. @subsection in Documentation/es/user/working.itely
+#. @node in Documentation/de/user/working.itely
+#. @subsection in Documentation/de/user/working.itely
+#. @node in Documentation/ja/user/working.itely
+#. @subsection in Documentation/ja/user/working.itely
+msgid "Saving typing with variables and functions"
+msgstr "変数と関数を用いて入力の手間を省く"
+
+#. @node in Documentation/user/working.itely
+#. @subsection in Documentation/user/working.itely
+#. @node in Documentation/fr/user/working.itely
+#. @subsection in Documentation/fr/user/working.itely
+#. @node in Documentation/es/user/working.itely
+#. @subsection in Documentation/es/user/working.itely
+#. @node in Documentation/de/user/working.itely
+#. @subsection in Documentation/de/user/working.itely
+#. @node in Documentation/ja/user/working.itely
+#. @subsection in Documentation/ja/user/working.itely
+msgid "Style sheets"
+msgstr "スタイル シート"
+
+#. @node in Documentation/user/working.itely
+#. @section in Documentation/user/working.itely
+#. @node in Documentation/fr/user/working.itely
+#. @section in Documentation/fr/user/working.itely
+#. @node in Documentation/es/user/working.itely
+#. @section in Documentation/es/user/working.itely
+#. @node in Documentation/de/user/working.itely
+#. @section in Documentation/de/user/working.itely
+#. @node in Documentation/ja/user/working.itely
+#. @section in Documentation/ja/user/working.itely
+msgid "When things don't work"
+msgstr "うまくいかないとき"
+
+#. @node in Documentation/user/working.itely
+#. @subsection in Documentation/user/working.itely
+#. @node in Documentation/ja/user/working.itely
+#. @subsection in Documentation/ja/user/working.itely
+msgid "Updating old input files"
+msgstr "古い入力ファイルをアップデートする"
+
+#. @node in Documentation/user/working.itely
+#. @subsection in Documentation/user/working.itely
+#. @node in Documentation/fr/user/working.itely
+#. @subsection in Documentation/fr/user/working.itely
+#. @node in Documentation/es/user/working.itely
+#. @subsection in Documentation/es/user/working.itely
+#. @node in Documentation/de/user/working.itely
+#. @subsection in Documentation/de/user/working.itely
+#. @node in Documentation/ja/user/working.itely
+#. @subsection in Documentation/ja/user/working.itely
+msgid "Troubleshooting (taking it all apart)"
+msgstr "トラブルシューティング (すべてをバラバラにする)"
+
+#. @node in Documentation/user/working.itely
+#. @subsection in Documentation/user/working.itely
+#. @node in Documentation/fr/user/working.itely
+#. @subsection in Documentation/fr/user/working.itely
+#. @node in Documentation/es/user/working.itely
+#. @subsection in Documentation/es/user/working.itely
+#. @node in Documentation/de/user/working.itely
+#. @subsection in Documentation/de/user/working.itely
+#. @node in Documentation/ja/user/working.itely
+#. @subsection in Documentation/ja/user/working.itely
+msgid "Minimal examples"
+msgstr "最小化例"
+
+#. @node in Documentation/user/working.itely
+#. @section in Documentation/user/working.itely
+#. @node in Documentation/fr/user/working.itely
+#. @section in Documentation/fr/user/working.itely
+#. @node in Documentation/es/user/working.itely
+#. @section in Documentation/es/user/working.itely
+#. @node in Documentation/de/user/working.itely
+#. @section in Documentation/de/user/working.itely
+#. @node in Documentation/ja/user/working.itely
+#. @section in Documentation/ja/user/working.itely
+msgid "Scores and parts"
+msgstr "楽譜とパート"
+
+#. @node in Documentation/user/templates.itely
+#. @appendix in Documentation/user/templates.itely
+#. @node in Documentation/fr/user/templates.itely
+#. @appendix in Documentation/fr/user/templates.itely
+#. @node in Documentation/es/user/templates.itely
+#. @appendix in Documentation/es/user/templates.itely
+#. @node in Documentation/de/user/templates.itely
+#. @appendix in Documentation/de/user/templates.itely
+#. @node in Documentation/ja/user/templates.itely
+#. @appendix in Documentation/ja/user/templates.itely
+msgid "Templates"
+msgstr "テンプレート"
+
+#. @node in Documentation/user/templates.itely
+#. @appendixsec in Documentation/user/templates.itely
+#. @node in Documentation/fr/user/templates.itely
+#. @appendixsec in Documentation/fr/user/templates.itely
+#. @node in Documentation/es/user/templates.itely
+#. @appendixsec in Documentation/es/user/templates.itely
+#. @node in Documentation/de/user/templates.itely
+#. @appendixsec in Documentation/de/user/templates.itely
+#. @node in Documentation/ja/user/templates.itely
+#. @appendixsec in Documentation/ja/user/templates.itely
+msgid "Single staff"
+msgstr "単一の譜表"
+
+#. @appendixsubsec in Documentation/user/templates.itely
+#. @appendixsubsec in Documentation/fr/user/templates.itely
+#. @appendixsubsec in Documentation/es/user/templates.itely
+#. @appendixsubsec in Documentation/de/user/templates.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
+msgid "Notes only"
+msgstr "音符のみ"
+
+#. @appendixsubsec in Documentation/user/templates.itely
+#. @appendixsubsec in Documentation/fr/user/templates.itely
+#. @appendixsubsec in Documentation/es/user/templates.itely
+#. @appendixsubsec in Documentation/de/user/templates.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
+msgid "Notes and lyrics"
+msgstr "音符と歌詞"
+
+#. @appendixsubsec in Documentation/user/templates.itely
+#. @appendixsubsec in Documentation/fr/user/templates.itely
+#. @appendixsubsec in Documentation/es/user/templates.itely
+#. @appendixsubsec in Documentation/de/user/templates.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
+msgid "Notes and chords"
+msgstr "音符とコード"
+
+#. @appendixsubsec in Documentation/user/templates.itely
+#. @appendixsubsec in Documentation/fr/user/templates.itely
+#. @appendixsubsec in Documentation/es/user/templates.itely
+#. @appendixsubsec in Documentation/de/user/templates.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
+msgid "Notes, lyrics, and chords."
+msgstr "音符、歌詞それにコード"
+
+#. @node in Documentation/user/templates.itely
+#. @appendixsec in Documentation/user/templates.itely
+#. @node in Documentation/fr/user/templates.itely
+#. @appendixsec in Documentation/fr/user/templates.itely
+#. @node in Documentation/es/user/templates.itely
+#. @appendixsec in Documentation/es/user/templates.itely
+#. @node in Documentation/de/user/templates.itely
+#. @appendixsec in Documentation/de/user/templates.itely
+#. @node in Documentation/ja/user/templates.itely
+#. @appendixsec in Documentation/ja/user/templates.itely
+msgid "Piano templates"
+msgstr "ピアノ テンプレート"
+
+#. @appendixsubsec in Documentation/user/templates.itely
+#. @appendixsubsec in Documentation/fr/user/templates.itely
+#. @appendixsubsec in Documentation/es/user/templates.itely
+#. @appendixsubsec in Documentation/de/user/templates.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
+msgid "Solo piano"
+msgstr "ソロ ピアノ"
+
+#. @appendixsubsec in Documentation/user/templates.itely
+#. @appendixsubsec in Documentation/fr/user/templates.itely
+#. @appendixsubsec in Documentation/es/user/templates.itely
+#. @appendixsubsec in Documentation/de/user/templates.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
+msgid "Piano and melody with lyrics"
+msgstr "ピアノと歌詞を持つ旋律"
+
+#. @appendixsubsec in Documentation/user/templates.itely
+#. @appendixsubsec in Documentation/fr/user/templates.itely
+#. @appendixsubsec in Documentation/es/user/templates.itely
+#. @appendixsubsec in Documentation/de/user/templates.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
+msgid "Piano centered lyrics"
+msgstr "中央に歌詞を持つピアノ譜"
+
+#. @appendixsubsec in Documentation/user/templates.itely
+#. @appendixsubsec in Documentation/fr/user/templates.itely
+#. @appendixsubsec in Documentation/es/user/templates.itely
+#. @appendixsubsec in Documentation/de/user/templates.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
+msgid "Piano centered dynamics"
+msgstr "中央に強弱記号を持つピアノ譜"
+
+#. @node in Documentation/user/templates.itely
+#. @appendixsec in Documentation/user/templates.itely
+#. @appendixsubsec in Documentation/user/templates.itely
+#. @node in Documentation/fr/user/templates.itely
+#. @appendixsec in Documentation/fr/user/templates.itely
+#. @appendixsubsec in Documentation/fr/user/templates.itely
+#. @node in Documentation/es/user/templates.itely
+#. @appendixsec in Documentation/es/user/templates.itely
+#. @appendixsubsec in Documentation/es/user/templates.itely
+#. @node in Documentation/de/user/templates.itely
+#. @appendixsec in Documentation/de/user/templates.itely
+#. @appendixsubsec in Documentation/de/user/templates.itely
+#. @node in Documentation/ja/user/templates.itely
+#. @appendixsec in Documentation/ja/user/templates.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
+msgid "String quartet"
+msgstr "弦楽四重奏"
+
+#. @appendixsubsec in Documentation/user/templates.itely
+#. @appendixsubsec in Documentation/fr/user/templates.itely
+#. @appendixsubsec in Documentation/es/user/templates.itely
+#. @appendixsubsec in Documentation/de/user/templates.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
+msgid "String quartet parts"
+msgstr "弦楽四重奏パート"
+
+#. @node in Documentation/user/templates.itely
+#. @appendixsec in Documentation/user/templates.itely
+#. @node in Documentation/fr/user/templates.itely
+#. @appendixsec in Documentation/fr/user/templates.itely
+#. @node in Documentation/es/user/templates.itely
+#. @appendixsec in Documentation/es/user/templates.itely
+#. @node in Documentation/de/user/templates.itely
+#. @appendixsec in Documentation/de/user/templates.itely
+#. @node in Documentation/ja/user/templates.itely
+#. @appendixsec in Documentation/ja/user/templates.itely
+msgid "Vocal ensembles"
+msgstr "合唱"
+
+#. @appendixsubsec in Documentation/user/templates.itely
+#. @appendixsubsec in Documentation/fr/user/templates.itely
+#. @appendixsubsec in Documentation/es/user/templates.itely
+#. @appendixsubsec in Documentation/de/user/templates.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
+msgid "SATB vocal score"
+msgstr "SATB ボーカル譜"
+
+#. @appendixsubsec in Documentation/user/templates.itely
+#. @appendixsubsec in Documentation/fr/user/templates.itely
+#. @appendixsubsec in Documentation/es/user/templates.itely
+#. @appendixsubsec in Documentation/de/user/templates.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
+msgid "SATB vocal score and automatic piano reduction"
+msgstr "SATB ボーカル譜と自動ピアノ譜"
+
+#. @appendixsubsec in Documentation/user/templates.itely
+#. @appendixsubsec in Documentation/fr/user/templates.itely
+#. @appendixsubsec in Documentation/es/user/templates.itely
+#. @appendixsubsec in Documentation/de/user/templates.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
+msgid "SATB with aligned contexts"
+msgstr "整列されたコンテキストを持つ SATB"
+
+#. @node in Documentation/user/templates.itely
+#. @appendixsec in Documentation/user/templates.itely
+#. @node in Documentation/fr/user/templates.itely
+#. @appendixsec in Documentation/fr/user/templates.itely
+#. @node in Documentation/es/user/templates.itely
+#. @appendixsec in Documentation/es/user/templates.itely
+#. @node in Documentation/de/user/templates.itely
+#. @appendixsec in Documentation/de/user/templates.itely
+#. @node in Documentation/ja/user/templates.itely
+#. @appendixsec in Documentation/ja/user/templates.itely
+msgid "Ancient notation templates"
+msgstr ""
+
+#. @appendixsubsec in Documentation/user/templates.itely
+#. @appendixsubsec in Documentation/fr/user/templates.itely
+#. @appendixsubsec in Documentation/es/user/templates.itely
+#. @appendixsubsec in Documentation/de/user/templates.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
+msgid "Transcription of mensural music"
+msgstr ""
+
+#. @appendixsubsec in Documentation/user/templates.itely
+#. @appendixsubsec in Documentation/fr/user/templates.itely
+#. @appendixsubsec in Documentation/es/user/templates.itely
+#. @appendixsubsec in Documentation/de/user/templates.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
+msgid "Gregorian transcription template"
+msgstr ""
+
+#. @node in Documentation/user/templates.itely
+#. @appendixsec in Documentation/user/templates.itely
+#. @node in Documentation/fr/user/templates.itely
+#. @appendixsec in Documentation/fr/user/templates.itely
+#. @node in Documentation/es/user/templates.itely
+#. @appendixsec in Documentation/es/user/templates.itely
+#. @node in Documentation/de/user/templates.itely
+#. @appendixsec in Documentation/de/user/templates.itely
+#. @node in Documentation/ja/user/templates.itely
+#. @appendixsec in Documentation/ja/user/templates.itely
+msgid "Jazz combo"
+msgstr ""
+
+#. @node in Documentation/user/templates.itely
+#. @appendixsec in Documentation/user/templates.itely
+#. @node in Documentation/fr/user/templates.itely
+#. @appendixsec in Documentation/fr/user/templates.itely
+#. @node in Documentation/es/user/templates.itely
+#. @appendixsec in Documentation/es/user/templates.itely
+#. @node in Documentation/ja/user/templates.itely
+#. @appendixsec in Documentation/ja/user/templates.itely
+msgid "lilypond-book templates"
+msgstr ""
+
+#. @appendixsubsec in Documentation/user/templates.itely
+#. @node in Documentation/user/lilypond-book.itely
+#. @appendixsubsec in Documentation/fr/user/templates.itely
+#. @node in Documentation/fr/user/lilypond-book.itely
+#. @appendixsubsec in Documentation/es/user/templates.itely
+#. @node in Documentation/es/user/lilypond-book.itely
+#. @appendixsubsec in Documentation/de/user/templates.itely
+#. @node in Documentation/de/user/lilypond-book.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
+#. @node in Documentation/ja/user/lilypond-book.itely
+msgid "LaTeX"
+msgstr ""
+
+#. @appendixsubsec in Documentation/user/templates.itely
+#. @node in Documentation/user/lilypond-book.itely
+#. @subsection in Documentation/user/lilypond-book.itely
+#. @subsubheading in Documentation/user/lilypond-book.itely
+#. @appendixsubsec in Documentation/fr/user/templates.itely
+#. @node in Documentation/fr/user/lilypond-book.itely
+#. @subsection in Documentation/fr/user/lilypond-book.itely
+#. @subsubheading in Documentation/fr/user/lilypond-book.itely
+#. @appendixsubsec in Documentation/es/user/templates.itely
+#. @node in Documentation/es/user/lilypond-book.itely
+#. @subsection in Documentation/es/user/lilypond-book.itely
+#. @subsubheading in Documentation/es/user/lilypond-book.itely
+#. @appendixsubsec in Documentation/de/user/templates.itely
+#. @node in Documentation/de/user/lilypond-book.itely
+#. @subsection in Documentation/de/user/lilypond-book.itely
+#. @subsubheading in Documentation/de/user/lilypond-book.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
+#. @node in Documentation/ja/user/lilypond-book.itely
+#. @subsection in Documentation/ja/user/lilypond-book.itely
+#. @subsubheading in Documentation/ja/user/lilypond-book.itely
+msgid "Texinfo"
+msgstr ""
+
+#. @appendixsubsec in Documentation/user/templates.itely
+#. @appendixsubsec in Documentation/fr/user/templates.itely
+#. @appendixsubsec in Documentation/es/user/templates.itely
+#. @appendixsubsec in Documentation/de/user/templates.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
+msgid "xelatex"
+msgstr ""
+
+#. Documentation/user/scheme-tutorial.itely:274 (variable)
+msgid "pattern"
+msgstr ""
+
+#. @node in Documentation/user/scheme-tutorial.itely
+#. @appendix in Documentation/user/scheme-tutorial.itely
+#. @node in Documentation/fr/user/scheme-tutorial.itely
+#. @appendix in Documentation/fr/user/scheme-tutorial.itely
+#. @node in Documentation/es/user/scheme-tutorial.itely
+#. @appendix in Documentation/es/user/scheme-tutorial.itely
+#. @node in Documentation/de/user/scheme-tutorial.itely
+#. @appendix in Documentation/de/user/scheme-tutorial.itely
+#. @node in Documentation/ja/user/scheme-tutorial.itely
+#. @appendix in Documentation/ja/user/scheme-tutorial.itely
+msgid "Scheme tutorial"
+msgstr ""
+
+#. @node in Documentation/user/scheme-tutorial.itely
+#. @appendixsec in Documentation/user/scheme-tutorial.itely
+#. @node in Documentation/fr/user/scheme-tutorial.itely
+#. @appendixsec in Documentation/fr/user/scheme-tutorial.itely
+#. @node in Documentation/es/user/scheme-tutorial.itely
+#. @appendixsec in Documentation/es/user/scheme-tutorial.itely
+#. @node in Documentation/de/user/scheme-tutorial.itely
+#. @appendixsec in Documentation/de/user/scheme-tutorial.itely
+#. @node in Documentation/ja/user/scheme-tutorial.itely
+#. @appendixsec in Documentation/ja/user/scheme-tutorial.itely
+msgid "Tweaking with Scheme"
+msgstr ""
+
+#. @node in Documentation/user/fdl.itexi
+#. @appendix in Documentation/user/fdl.itexi
+#. @node in Documentation/user/fdl.itexi
+#. @appendix in Documentation/user/fdl.itexi
+#. @node in Documentation/user/fdl.itexi
+#. @appendix in Documentation/user/fdl.itexi
+msgid "GNU Free Documentation License"
+msgstr ""
+
+#. @subheading in Documentation/user/fdl.itexi
+msgid "ADDENDUM: How to use this License for your documents"
+msgstr ""
+
+#. @top in Documentation/user/lilypond-program.tely
+msgid "GNU LilyPond --- Application Usage"
+msgstr "GNU LilyPond --- アプリケーション使用方法"
+
+#. @node in Documentation/user/install.itely
+#. @chapter in Documentation/user/install.itely
+#. @node in Documentation/fr/user/install.itely
+#. @chapter in Documentation/fr/user/install.itely
+#. @node in Documentation/es/user/install.itely
+#. @chapter in Documentation/es/user/install.itely
+#. @node in Documentation/de/user/install.itely
+#. @chapter in Documentation/de/user/install.itely
+#. @node in Documentation/ja/user/install.itely
+#. @chapter in Documentation/ja/user/install.itely
+msgid "Install"
+msgstr "インストール"
+
+#. @node in Documentation/user/install.itely
+#. @section in Documentation/user/install.itely
+#. @node in Documentation/fr/user/install.itely
+#. @section in Documentation/fr/user/install.itely
+#. @node in Documentation/es/user/install.itely
+#. @section in Documentation/es/user/install.itely
+#. @node in Documentation/de/user/install.itely
+#. @section in Documentation/de/user/install.itely
+#. @node in Documentation/ja/user/install.itely
+#. @section in Documentation/ja/user/install.itely
+msgid "Precompiled binaries"
+msgstr "コンパイル済みのバイナリ"
+
+#. @unnumberedsubsec in Documentation/user/install.itely
+#. @unnumberedsubsec in Documentation/fr/user/install.itely
+#. @unnumberedsubsec in Documentation/es/user/install.itely
+#. @unnumberedsubsec in Documentation/de/user/install.itely
+#. @unnumberedsubsec in Documentation/ja/user/install.itely
+msgid "Downloading"
+msgstr "ダウンロードする"
+
+#. @node in Documentation/user/install.itely
+#. @section in Documentation/user/install.itely
+#. @node in Documentation/fr/user/install.itely
+#. @section in Documentation/fr/user/install.itely
+#. @node in Documentation/es/user/install.itely
+#. @section in Documentation/es/user/install.itely
+#. @node in Documentation/de/user/install.itely
+#. @section in Documentation/de/user/install.itely
+#. @node in Documentation/ja/user/install.itely
+#. @section in Documentation/ja/user/install.itely
+msgid "Compiling from source"
+msgstr "ソースからコンパイルする"
+
+#. @node in Documentation/user/install.itely
+#. @subsection in Documentation/user/install.itely
+msgid "Downloading source code"
+msgstr ""
+
+#. @node in Documentation/user/install.itely
+#. @subsection in Documentation/user/install.itely
+msgid "Requirements"
+msgstr ""
+
+#. @unnumberedsubsubsec in Documentation/user/install.itely
+msgid "Compilation"
+msgstr ""
+
+#. @unnumberedsubsubsec in Documentation/user/install.itely
+msgid "Running requirements"
+msgstr ""
+
+#. @unnumberedsubsubsec in Documentation/user/install.itely
+msgid "Requirements for building documentation"
+msgstr ""
+
+#. @node in Documentation/user/install.itely
+#. @subsection in Documentation/user/install.itely
+msgid "Building LilyPond"
+msgstr ""
+
+#. @unnumberedsubsubsec in Documentation/user/install.itely
+msgid "Compiling"
+msgstr ""
+
+#. @unnumberedsubsubsec in Documentation/user/install.itely
+msgid "Compiling for multiple platforms"
+msgstr ""
+
+#. @unnumberedsubsubsec in Documentation/user/install.itely
+msgid "Compiling outside the source tree"
+msgstr ""
+
+#. @unnumberedsubsubsec in Documentation/user/install.itely
+msgid "Useful @command{make} variables"
+msgstr ""
+
+#. @node in Documentation/user/install.itely
+#. @subsection in Documentation/user/install.itely
+msgid "Building documentation"
+msgstr ""
+
+#. @node in Documentation/user/install.itely
+#. @unnumberedsubsubsec in Documentation/user/install.itely
+msgid "Commands for building documentation"
+msgstr ""
+
+#. @node in Documentation/user/install.itely
+#. @unnumberedsubsubsec in Documentation/user/install.itely
+msgid "Building documentation without compiling LilyPond"
+msgstr ""
+
+#. @node in Documentation/user/install.itely
+#. @subsection in Documentation/user/install.itely
+msgid "Testing LilyPond"
+msgstr ""
+
+#. @node in Documentation/user/install.itely
+#. @subsection in Documentation/user/install.itely
+msgid "Problems"
+msgstr ""
+
+#. @unnumberedsubsubsec in Documentation/user/install.itely
+msgid "Bison 1.875"
+msgstr ""
+
+#. @unnumberedsubsubsec in Documentation/user/install.itely
+msgid "Solaris"
+msgstr ""
+
+#. @unnumberedsubsubsec in Documentation/user/install.itely
+msgid "FreeBSD"
+msgstr ""
+
+#. @unnumberedsubsubsec in Documentation/user/install.itely
+msgid "International fonts"
+msgstr ""
+
+#. @node in Documentation/user/setup.itely
+#. @chapter in Documentation/user/setup.itely
+#. @node in Documentation/fr/user/setup.itely
+#. @chapter in Documentation/fr/user/setup.itely
+#. @node in Documentation/es/user/setup.itely
+#. @chapter in Documentation/es/user/setup.itely
+#. @node in Documentation/de/user/setup.itely
+#. @chapter in Documentation/de/user/setup.itely
+#. @node in Documentation/ja/user/setup.itely
+#. @chapter in Documentation/ja/user/setup.itely
+msgid "Setup"
+msgstr "セットアップ"
+
+#. @node in Documentation/user/setup.itely
+#. @section in Documentation/user/setup.itely
+#. @node in Documentation/fr/user/setup.itely
+#. @section in Documentation/fr/user/setup.itely
+#. @node in Documentation/es/user/setup.itely
+#. @section in Documentation/es/user/setup.itely
+#. @node in Documentation/de/user/setup.itely
+#. @section in Documentation/de/user/setup.itely
+#. @node in Documentation/ja/user/setup.itely
+#. @section in Documentation/ja/user/setup.itely
+msgid "Setup for specific Operating Systems"
+msgstr "特定の OS のためのセットアップ"
+
+#. @node in Documentation/user/setup.itely
+#. @subsection in Documentation/user/setup.itely
+#. @node in Documentation/fr/user/setup.itely
+#. @subsection in Documentation/fr/user/setup.itely
+#. @node in Documentation/es/user/setup.itely
+#. @subsection in Documentation/es/user/setup.itely
+#. @node in Documentation/de/user/setup.itely
+#. @subsection in Documentation/de/user/setup.itely
+#. @node in Documentation/ja/user/setup.itely
+#. @subsection in Documentation/ja/user/setup.itely
+msgid "Setup for MacOS X"
+msgstr "MacOS X のためのセットアップ"
+
+#. @subsubheading in Documentation/user/setup.itely
+#. @subsubheading in Documentation/fr/user/setup.itely
+#. @subsubheading in Documentation/es/user/setup.itely
+#. @subsubheading in Documentation/de/user/setup.itely
+#. @subsubheading in Documentation/ja/user/setup.itely
+msgid "Using Python scripts on MacOS 10.3 or 10.4"
+msgstr "MaxOS 10.3 または 10.4 で Python スクリプトを使用する"
+
+#. @subsubheading in Documentation/user/setup.itely
+#. @subsubheading in Documentation/fr/user/setup.itely
+#. @subsubheading in Documentation/es/user/setup.itely
+#. @subsubheading in Documentation/de/user/setup.itely
+#. @subsubheading in Documentation/ja/user/setup.itely
+msgid "MacOS X on the command line"
+msgstr "MaxOS X のコマンド ライン"
+
+#. @node in Documentation/user/setup.itely
+#. @section in Documentation/user/setup.itely
+#. @node in Documentation/fr/user/setup.itely
+#. @section in Documentation/fr/user/setup.itely
+#. @node in Documentation/es/user/setup.itely
+#. @section in Documentation/es/user/setup.itely
+#. @node in Documentation/de/user/setup.itely
+#. @section in Documentation/de/user/setup.itely
+#. @node in Documentation/ja/user/setup.itely
+#. @section in Documentation/ja/user/setup.itely
+msgid "Text editor support"
+msgstr "テキスト エディタのサポート"
+
+#. @node in Documentation/user/setup.itely
+#. @subsection in Documentation/user/setup.itely
+#. @node in Documentation/fr/user/setup.itely
+#. @subsection in Documentation/fr/user/setup.itely
+#. @node in Documentation/es/user/setup.itely
+#. @subsection in Documentation/es/user/setup.itely
+#. @node in Documentation/de/user/setup.itely
+#. @subsection in Documentation/de/user/setup.itely
+#. @node in Documentation/ja/user/setup.itely
+#. @subsection in Documentation/ja/user/setup.itely
+msgid "Emacs mode"
+msgstr "Emacs モード"
+
+#. @node in Documentation/user/setup.itely
+#. @subsection in Documentation/user/setup.itely
+#. @node in Documentation/fr/user/setup.itely
+#. @subsection in Documentation/fr/user/setup.itely
+#. @node in Documentation/es/user/setup.itely
+#. @subsection in Documentation/es/user/setup.itely
+#. @node in Documentation/de/user/setup.itely
+#. @subsection in Documentation/de/user/setup.itely
+#. @node in Documentation/ja/user/setup.itely
+#. @subsection in Documentation/ja/user/setup.itely
+msgid "Vim mode"
+msgstr "Vim モード"
+
+#. @node in Documentation/user/setup.itely
+#. @subsection in Documentation/user/setup.itely
+#. @node in Documentation/fr/user/setup.itely
+#. @subsection in Documentation/fr/user/setup.itely
+#. @node in Documentation/es/user/setup.itely
+#. @subsection in Documentation/es/user/setup.itely
+#. @node in Documentation/de/user/setup.itely
+#. @subsection in Documentation/de/user/setup.itely
+#. @node in Documentation/ja/user/setup.itely
+#. @subsection in Documentation/ja/user/setup.itely
+msgid "jEdit"
+msgstr ""
+
+#. @node in Documentation/user/setup.itely
+#. @subsection in Documentation/user/setup.itely
+#. @node in Documentation/fr/user/setup.itely
+#. @subsection in Documentation/fr/user/setup.itely
+#. @node in Documentation/es/user/setup.itely
+#. @subsection in Documentation/es/user/setup.itely
+#. @node in Documentation/de/user/setup.itely
+#. @subsection in Documentation/de/user/setup.itely
+#. @node in Documentation/ja/user/setup.itely
+#. @subsection in Documentation/ja/user/setup.itely
+msgid "TexShop"
+msgstr ""
+
+#. @node in Documentation/user/setup.itely
+#. @subsection in Documentation/user/setup.itely
+#. @node in Documentation/fr/user/setup.itely
+#. @subsection in Documentation/fr/user/setup.itely
+#. @node in Documentation/es/user/setup.itely
+#. @subsection in Documentation/es/user/setup.itely
+#. @node in Documentation/de/user/setup.itely
+#. @subsection in Documentation/de/user/setup.itely
+#. @node in Documentation/ja/user/setup.itely
+#. @subsection in Documentation/ja/user/setup.itely
+msgid "TextMate"
+msgstr ""
+
+#. @node in Documentation/user/setup.itely
+#. @subsection in Documentation/user/setup.itely
+#. @node in Documentation/fr/user/setup.itely
+#. @subsection in Documentation/fr/user/setup.itely
+#. @node in Documentation/es/user/setup.itely
+#. @subsection in Documentation/es/user/setup.itely
+#. @node in Documentation/de/user/setup.itely
+#. @subsection in Documentation/de/user/setup.itely
+#. @node in Documentation/ja/user/setup.itely
+#. @subsection in Documentation/ja/user/setup.itely
+msgid "LilyKDE"
+msgstr ""
+
+#. @node in Documentation/user/setup.itely
+#. @section in Documentation/user/setup.itely
+#. @node in Documentation/fr/user/setup.itely
+#. @section in Documentation/fr/user/setup.itely
+#. @node in Documentation/es/user/setup.itely
+#. @section in Documentation/es/user/setup.itely
+#. @node in Documentation/de/user/setup.itely
+#. @section in Documentation/de/user/setup.itely
+#. @node in Documentation/ja/user/setup.itely
+#. @section in Documentation/ja/user/setup.itely
+msgid "Point and click"
+msgstr "ポイント&クリック"
+
+#. @node in Documentation/user/running.itely
+#. @chapter in Documentation/user/running.itely
+#. @node in Documentation/fr/user/running.itely
+#. @chapter in Documentation/fr/user/running.itely
+#. @node in Documentation/es/user/running.itely
+#. @chapter in Documentation/es/user/running.itely
+#. @node in Documentation/de/user/running.itely
+#. @chapter in Documentation/de/user/running.itely
+#. @node in Documentation/ja/user/running.itely
+#. @chapter in Documentation/ja/user/running.itely
+msgid "Running LilyPond"
+msgstr "LilyPond を実行する"
+
+#. @node in Documentation/user/running.itely
+#. @section in Documentation/user/running.itely
+#. @node in Documentation/fr/user/running.itely
+#. @section in Documentation/fr/user/running.itely
+#. @node in Documentation/es/user/running.itely
+#. @section in Documentation/es/user/running.itely
+#. @node in Documentation/de/user/running.itely
+#. @section in Documentation/de/user/running.itely
+#. @node in Documentation/ja/user/running.itely
+#. @section in Documentation/ja/user/running.itely
+msgid "Normal usage"
+msgstr "通常の使用方法"
+
+#. @node in Documentation/user/running.itely
+#. @section in Documentation/user/running.itely
+#. @node in Documentation/fr/user/running.itely
+#. @section in Documentation/fr/user/running.itely
+#. @node in Documentation/es/user/running.itely
+#. @section in Documentation/es/user/running.itely
+#. @node in Documentation/de/user/running.itely
+#. @section in Documentation/de/user/running.itely
+#. @node in Documentation/ja/user/running.itely
+#. @section in Documentation/ja/user/running.itely
+msgid "Command-line usage"
+msgstr "コマンド ラインの使用方法"
+
+#. @node in Documentation/user/running.itely
+#. @node in Documentation/fr/user/running.itely
+#. @subsection in Documentation/fr/user/running.itely
+#. @node in Documentation/es/user/running.itely
+#. @node in Documentation/de/user/running.itely
+#. @node in Documentation/ja/user/running.itely
+msgid "Invoking lilypond"
+msgstr ""
+
+#. @subsection in Documentation/user/running.itely
+#. @subsection in Documentation/es/user/running.itely
+#. @subsection in Documentation/de/user/running.itely
+#. @subsection in Documentation/ja/user/running.itely
+msgid "Invoking @command{lilypond}"
+msgstr "@command{lilypond} を呼び出す"
+
+#. @node in Documentation/user/running.itely
+#. @node in Documentation/es/user/running.itely
+#. @node in Documentation/de/user/running.itely
+#. @node in Documentation/ja/user/running.itely
+msgid "Command line options for lilypond"
+msgstr "lilypond のコマンド ライン オプション"
+
+#. @subsection in Documentation/user/running.itely
+#. @subsection in Documentation/es/user/running.itely
+#. @subsection in Documentation/de/user/running.itely
+#. @subsection in Documentation/ja/user/running.itely
+msgid "Command line options for @command{lilypond}"
+msgstr "@command{lilypond} のコマンド ライン オプション"
+
+#. @node in Documentation/user/running.itely
+#. @subsection in Documentation/user/running.itely
+#. @node in Documentation/fr/user/running.itely
+#. @subsection in Documentation/fr/user/running.itely
+#. @node in Documentation/es/user/running.itely
+#. @subsection in Documentation/es/user/running.itely
+#. @node in Documentation/de/user/running.itely
+#. @subsection in Documentation/de/user/running.itely
+#. @node in Documentation/ja/user/running.itely
+#. @subsection in Documentation/ja/user/running.itely
+msgid "Environment variables"
+msgstr "環境変数"
+
+#. @node in Documentation/user/running.itely
+#. @section in Documentation/user/running.itely
+#. @node in Documentation/fr/user/running.itely
+#. @section in Documentation/fr/user/running.itely
+#. @node in Documentation/es/user/running.itely
+#. @section in Documentation/es/user/running.itely
+#. @node in Documentation/de/user/running.itely
+#. @section in Documentation/de/user/running.itely
+#. @node in Documentation/ja/user/running.itely
+#. @section in Documentation/ja/user/running.itely
+msgid "Error messages"
+msgstr "エラー メッセージ"
+
+#. @node in Documentation/user/running.itely
+#. @node in Documentation/fr/user/running.itely
+#. @node in Documentation/es/user/running.itely
+#. @node in Documentation/de/user/running.itely
+#. @node in Documentation/ja/user/running.itely
+msgid "Updating files with convert-ly"
+msgstr "convert-ly を使ってファイルを更新する"
+
+#. @section in Documentation/user/running.itely
+#. @section in Documentation/es/user/running.itely
+#. @section in Documentation/de/user/running.itely
+#. @section in Documentation/ja/user/running.itely
+msgid "Updating files with @command{convert-ly}"
+msgstr "@command{convert-ly} を使ってファイルを更新する"
+
+#. @node in Documentation/user/running.itely
+#. @node in Documentation/es/user/running.itely
+#. @node in Documentation/de/user/running.itely
+#. @node in Documentation/ja/user/running.itely
+msgid "Command line options for convert-ly"
+msgstr "convert-ly のコマンド ライン オプション"
+
+#. @subsection in Documentation/user/running.itely
+#. @subsection in Documentation/es/user/running.itely
+#. @subsection in Documentation/de/user/running.itely
+#. @subsection in Documentation/ja/user/running.itely
+msgid "Command line options for @command{convert-ly}"
+msgstr "@command{convert-ly} のコマンド ライン オプション"
+
+#. @node in Documentation/user/running.itely
+#. @node in Documentation/fr/user/running.itely
+#. @node in Documentation/es/user/running.itely
+#. @node in Documentation/de/user/running.itely
+#. @node in Documentation/ja/user/running.itely
+msgid "Problems with convert-ly"
+msgstr "convert-ly の問題点"
+
+#. @subsection in Documentation/user/running.itely
+#. @subsection in Documentation/fr/user/running.itely
+#. @subsection in Documentation/es/user/running.itely
+#. @subsection in Documentation/de/user/running.itely
+#. @subsection in Documentation/ja/user/running.itely
+msgid "Problems with @code{convert-ly}"
+msgstr "@command{convert-ly} の問題点"
+
+#. @node in Documentation/user/running.itely
+#. @section in Documentation/user/running.itely
+#. @node in Documentation/fr/user/running.itely
+#. @section in Documentation/fr/user/running.itely
+#. @node in Documentation/es/user/running.itely
+#. @section in Documentation/es/user/running.itely
+#. @node in Documentation/de/user/running.itely
+#. @section in Documentation/de/user/running.itely
+#. @node in Documentation/ja/user/running.itely
+#. @section in Documentation/ja/user/running.itely
+msgid "Reporting bugs"
+msgstr "バグを報告する"
+
+#. @node in Documentation/user/lilypond-book.itely
+#. @node in Documentation/fr/user/lilypond-book.itely
+#. @node in Documentation/es/user/lilypond-book.itely
+#. @node in Documentation/de/user/lilypond-book.itely
+#. @node in Documentation/ja/user/lilypond-book.itely
+msgid "LilyPond-book"
+msgstr ""
+
+#. @chapter in Documentation/user/lilypond-book.itely
+#. @chapter in Documentation/fr/user/lilypond-book.itely
+#. @chapter in Documentation/es/user/lilypond-book.itely
+#. @chapter in Documentation/de/user/lilypond-book.itely
+#. @chapter in Documentation/ja/user/lilypond-book.itely
+msgid "@command{lilypond-book}: Integrating text and music"
+msgstr ""
+
+#. @node in Documentation/user/lilypond-book.itely
+#. @section in Documentation/user/lilypond-book.itely
+#. @node in Documentation/fr/user/lilypond-book.itely
+#. @section in Documentation/fr/user/lilypond-book.itely
+#. @node in Documentation/es/user/lilypond-book.itely
+#. @section in Documentation/es/user/lilypond-book.itely
+#. @node in Documentation/de/user/lilypond-book.itely
+#. @section in Documentation/de/user/lilypond-book.itely
+#. @node in Documentation/ja/user/lilypond-book.itely
+#. @section in Documentation/ja/user/lilypond-book.itely
+msgid "An example of a musicological document"
+msgstr ""
+
+#. @subheading in Documentation/user/lilypond-book.itely
+#. @subheading in Documentation/fr/user/lilypond-book.itely
+#. @subheading in Documentation/es/user/lilypond-book.itely
+#. @subheading in Documentation/de/user/lilypond-book.itely
+#. @subheading in Documentation/ja/user/lilypond-book.itely
+msgid "Input"
+msgstr ""
+
+#. @subheading in Documentation/user/lilypond-book.itely
+#. @subheading in Documentation/fr/user/lilypond-book.itely
+#. @subheading in Documentation/es/user/lilypond-book.itely
+#. @subheading in Documentation/de/user/lilypond-book.itely
+#. @subheading in Documentation/ja/user/lilypond-book.itely
+msgid "Processing"
+msgstr ""
+
+#. @subheading in Documentation/user/lilypond-book.itely
+#. @subheading in Documentation/fr/user/lilypond-book.itely
+#. @subheading in Documentation/es/user/lilypond-book.itely
+#. @subheading in Documentation/de/user/lilypond-book.itely
+#. @subheading in Documentation/ja/user/lilypond-book.itely
+msgid "Output"
+msgstr ""
+
+#. @node in Documentation/user/lilypond-book.itely
+#. @section in Documentation/user/lilypond-book.itely
+#. @node in Documentation/fr/user/lilypond-book.itely
+#. @section in Documentation/fr/user/lilypond-book.itely
+#. @node in Documentation/es/user/lilypond-book.itely
+#. @section in Documentation/es/user/lilypond-book.itely
+#. @node in Documentation/de/user/lilypond-book.itely
+#. @section in Documentation/de/user/lilypond-book.itely
+#. @node in Documentation/ja/user/lilypond-book.itely
+#. @section in Documentation/ja/user/lilypond-book.itely
+msgid "Integrating music and text"
+msgstr ""
+
+#. @subsection in Documentation/user/lilypond-book.itely
+#. @subsubheading in Documentation/user/lilypond-book.itely
+#. @subsection in Documentation/fr/user/lilypond-book.itely
+#. @subsubheading in Documentation/fr/user/lilypond-book.itely
+#. @subsection in Documentation/es/user/lilypond-book.itely
+#. @subsubheading in Documentation/es/user/lilypond-book.itely
+#. @subsection in Documentation/de/user/lilypond-book.itely
+#. @subsubheading in Documentation/de/user/lilypond-book.itely
+#. @subsection in Documentation/ja/user/lilypond-book.itely
+#. @subsubheading in Documentation/ja/user/lilypond-book.itely
+msgid "@LaTeX{}"
+msgstr ""
+
+#. @node in Documentation/user/lilypond-book.itely
+#. @subsection in Documentation/user/lilypond-book.itely
+#. @node in Documentation/fr/user/lilypond-book.itely
+#. @subsection in Documentation/fr/user/lilypond-book.itely
+#. @node in Documentation/es/user/lilypond-book.itely
+#. @subsection in Documentation/es/user/lilypond-book.itely
+#. @node in Documentation/de/user/lilypond-book.itely
+#. @subsection in Documentation/de/user/lilypond-book.itely
+#. @node in Documentation/ja/user/lilypond-book.itely
+#. @subsection in Documentation/ja/user/lilypond-book.itely
+msgid "HTML"
+msgstr ""
+
+#. @node in Documentation/user/lilypond-book.itely
+#. @subsection in Documentation/user/lilypond-book.itely
+#. @node in Documentation/fr/user/lilypond-book.itely
+#. @subsection in Documentation/fr/user/lilypond-book.itely
+#. @node in Documentation/es/user/lilypond-book.itely
+#. @subsection in Documentation/es/user/lilypond-book.itely
+#. @node in Documentation/de/user/lilypond-book.itely
+#. @subsection in Documentation/de/user/lilypond-book.itely
+#. @node in Documentation/ja/user/lilypond-book.itely
+#. @subsection in Documentation/ja/user/lilypond-book.itely
+msgid "DocBook"
+msgstr ""
+
+#. @subheading in Documentation/user/lilypond-book.itely
+#. @subheading in Documentation/fr/user/lilypond-book.itely
+#. @subheading in Documentation/es/user/lilypond-book.itely
+#. @subheading in Documentation/de/user/lilypond-book.itely
+#. @subheading in Documentation/ja/user/lilypond-book.itely
+msgid "Common conventions"
+msgstr ""
+
+#. @subheading in Documentation/user/lilypond-book.itely
+#. @subheading in Documentation/fr/user/lilypond-book.itely
+#. @subheading in Documentation/es/user/lilypond-book.itely
+#. @subheading in Documentation/de/user/lilypond-book.itely
+#. @subheading in Documentation/ja/user/lilypond-book.itely
+msgid "Including a LilyPond file"
+msgstr ""
+
+#. @subheading in Documentation/user/lilypond-book.itely
+#. @subheading in Documentation/fr/user/lilypond-book.itely
+#. @subheading in Documentation/es/user/lilypond-book.itely
+#. @subheading in Documentation/de/user/lilypond-book.itely
+#. @subheading in Documentation/ja/user/lilypond-book.itely
+msgid "Including LilyPond code"
+msgstr ""
+
+#. @subheading in Documentation/user/lilypond-book.itely
+#. @subheading in Documentation/fr/user/lilypond-book.itely
+#. @subheading in Documentation/es/user/lilypond-book.itely
+#. @subheading in Documentation/de/user/lilypond-book.itely
+#. @subheading in Documentation/ja/user/lilypond-book.itely
+msgid "Processing the DocBook document"
+msgstr ""
+
+#. @node in Documentation/user/lilypond-book.itely
+#. @section in Documentation/user/lilypond-book.itely
+#. @node in Documentation/fr/user/lilypond-book.itely
+#. @section in Documentation/fr/user/lilypond-book.itely
+#. @node in Documentation/es/user/lilypond-book.itely
+#. @section in Documentation/es/user/lilypond-book.itely
+#. @node in Documentation/de/user/lilypond-book.itely
+#. @section in Documentation/de/user/lilypond-book.itely
+#. @node in Documentation/ja/user/lilypond-book.itely
+#. @section in Documentation/ja/user/lilypond-book.itely
+msgid "Music fragment options"
+msgstr ""
+
+#. @node in Documentation/user/lilypond-book.itely
+#. @node in Documentation/fr/user/lilypond-book.itely
+#. @node in Documentation/es/user/lilypond-book.itely
+#. @node in Documentation/de/user/lilypond-book.itely
+#. @node in Documentation/ja/user/lilypond-book.itely
+msgid "Invoking lilypond-book"
+msgstr ""
+
+#. @section in Documentation/user/lilypond-book.itely
+#. @section in Documentation/fr/user/lilypond-book.itely
+#. @section in Documentation/es/user/lilypond-book.itely
+#. @section in Documentation/de/user/lilypond-book.itely
+#. @section in Documentation/ja/user/lilypond-book.itely
+msgid "Invoking @command{lilypond-book}"
+msgstr ""
+
+#. @subheading in Documentation/user/lilypond-book.itely
+#. @subheading in Documentation/fr/user/lilypond-book.itely
+#. @subheading in Documentation/es/user/lilypond-book.itely
+#. @subheading in Documentation/de/user/lilypond-book.itely
+#. @subheading in Documentation/ja/user/lilypond-book.itely
+msgid "Format-specific instructions"
+msgstr ""
+
+#. @subheading in Documentation/user/lilypond-book.itely
+#. @node in Documentation/fr/user/running.itely
+#. @subsection in Documentation/fr/user/running.itely
+#. @subheading in Documentation/fr/user/lilypond-book.itely
+#. @subheading in Documentation/es/user/lilypond-book.itely
+#. @subheading in Documentation/de/user/lilypond-book.itely
+#. @subheading in Documentation/ja/user/lilypond-book.itely
+msgid "Command line options"
+msgstr ""
+
+#. @node in Documentation/user/lilypond-book.itely
+#. @section in Documentation/user/lilypond-book.itely
+#. @node in Documentation/fr/user/lilypond-book.itely
+#. @section in Documentation/fr/user/lilypond-book.itely
+#. @node in Documentation/es/user/lilypond-book.itely
+#. @section in Documentation/es/user/lilypond-book.itely
+#. @node in Documentation/de/user/lilypond-book.itely
+#. @section in Documentation/de/user/lilypond-book.itely
+#. @node in Documentation/ja/user/lilypond-book.itely
+#. @section in Documentation/ja/user/lilypond-book.itely
+msgid "Filename extensions"
+msgstr ""
+
+#. @node in Documentation/user/lilypond-book.itely
+#. @node in Documentation/fr/user/lilypond-book.itely
+#. @node in Documentation/es/user/lilypond-book.itely
+#. @node in Documentation/de/user/lilypond-book.itely
+#. @node in Documentation/ja/user/lilypond-book.itely
+msgid "Alternate methods of mixing text and music"
+msgstr ""
+
+#. @section in Documentation/user/lilypond-book.itely
+#. @section in Documentation/fr/user/lilypond-book.itely
+#. @section in Documentation/es/user/lilypond-book.itely
+#. @section in Documentation/de/user/lilypond-book.itely
+#. @section in Documentation/ja/user/lilypond-book.itely
+msgid "Alternative methods of mixing text and music"
+msgstr ""
+
+#. @node in Documentation/user/lilypond-book.itely
+#. @unnumberedsubsec in Documentation/user/lilypond-book.itely
+#. @node in Documentation/fr/user/lilypond-book.itely
+#. @subsection in Documentation/fr/user/lilypond-book.itely
+#. @node in Documentation/es/user/lilypond-book.itely
+#. @unnumberedsubsec in Documentation/es/user/lilypond-book.itely
+#. @node in Documentation/de/user/lilypond-book.itely
+#. @subsection in Documentation/de/user/lilypond-book.itely
+#. @node in Documentation/ja/user/lilypond-book.itely
+#. @unnumberedsubsec in Documentation/ja/user/lilypond-book.itely
+msgid "Many quotes from a large score"
+msgstr ""
+
+#. @node in Documentation/user/lilypond-book.itely
+#. @unnumberedsubsec in Documentation/user/lilypond-book.itely
+#. @node in Documentation/fr/user/lilypond-book.itely
+#. @subsection in Documentation/fr/user/lilypond-book.itely
+#. @node in Documentation/es/user/lilypond-book.itely
+#. @unnumberedsubsec in Documentation/es/user/lilypond-book.itely
+#. @node in Documentation/de/user/lilypond-book.itely
+#. @subsection in Documentation/de/user/lilypond-book.itely
+#. @node in Documentation/ja/user/lilypond-book.itely
+#. @unnumberedsubsec in Documentation/ja/user/lilypond-book.itely
+msgid "Inserting LilyPond output into OpenOffice.org"
+msgstr ""
+
+#. @node in Documentation/user/lilypond-book.itely
+#. @unnumberedsubsec in Documentation/user/lilypond-book.itely
+#. @node in Documentation/fr/user/lilypond-book.itely
+#. @subsection in Documentation/fr/user/lilypond-book.itely
+#. @node in Documentation/es/user/lilypond-book.itely
+#. @unnumberedsubsec in Documentation/es/user/lilypond-book.itely
+#. @node in Documentation/de/user/lilypond-book.itely
+#. @subsection in Documentation/de/user/lilypond-book.itely
+#. @node in Documentation/ja/user/lilypond-book.itely
+#. @unnumberedsubsec in Documentation/ja/user/lilypond-book.itely
+msgid "Inserting LilyPond output into other programs"
+msgstr ""
+
+#. @node in Documentation/user/converters.itely
+#. @chapter in Documentation/user/converters.itely
+#. @node in Documentation/fr/user/converters.itely
+#. @chapter in Documentation/fr/user/converters.itely
+#. @node in Documentation/es/user/converters.itely
+#. @chapter in Documentation/es/user/converters.itely
+#. @node in Documentation/de/user/converters.itely
+#. @chapter in Documentation/de/user/converters.itely
+#. @node in Documentation/ja/user/converters.itely
+#. @chapter in Documentation/ja/user/converters.itely
+msgid "Converting from other formats"
+msgstr ""
+
+#. @node in Documentation/user/converters.itely
+#. @node in Documentation/fr/user/converters.itely
+#. @node in Documentation/es/user/converters.itely
+#. @node in Documentation/de/user/converters.itely
+#. @node in Documentation/ja/user/converters.itely
+msgid "Invoking midi2ly"
+msgstr ""
+
+#. @section in Documentation/user/converters.itely
+#. @section in Documentation/fr/user/converters.itely
+#. @section in Documentation/es/user/converters.itely
+#. @section in Documentation/de/user/converters.itely
+#. @section in Documentation/ja/user/converters.itely
+msgid "Invoking @command{midi2ly}"
+msgstr ""
+
+#. @node in Documentation/user/converters.itely
+#. @node in Documentation/fr/user/converters.itely
+#. @node in Documentation/es/user/converters.itely
+#. @node in Documentation/de/user/converters.itely
+#. @node in Documentation/ja/user/converters.itely
+msgid "Invoking musicxml2ly"
+msgstr ""
+
+#. @section in Documentation/user/converters.itely
+#. @section in Documentation/fr/user/converters.itely
+#. @section in Documentation/es/user/converters.itely
+#. @section in Documentation/de/user/converters.itely
+#. @section in Documentation/ja/user/converters.itely
+msgid "Invoking @code{musicxml2ly}"
+msgstr ""
+
+#. @node in Documentation/user/converters.itely
+#. @node in Documentation/fr/user/converters.itely
+#. @node in Documentation/es/user/converters.itely
+#. @node in Documentation/de/user/converters.itely
+#. @node in Documentation/ja/user/converters.itely
+msgid "Invoking abc2ly"
+msgstr ""
+
+#. @section in Documentation/user/converters.itely
+#. @section in Documentation/fr/user/converters.itely
+#. @section in Documentation/es/user/converters.itely
+#. @section in Documentation/de/user/converters.itely
+#. @section in Documentation/ja/user/converters.itely
+msgid "Invoking @code{abc2ly}"
+msgstr ""
+
+#. @node in Documentation/user/converters.itely
+#. @node in Documentation/fr/user/converters.itely
+#. @node in Documentation/es/user/converters.itely
+#. @node in Documentation/de/user/converters.itely
+#. @node in Documentation/ja/user/converters.itely
+msgid "Invoking etf2ly"
+msgstr ""
+
+#. @section in Documentation/user/converters.itely
+#. @section in Documentation/fr/user/converters.itely
+#. @section in Documentation/es/user/converters.itely
+#. @section in Documentation/de/user/converters.itely
+#. @section in Documentation/ja/user/converters.itely
+msgid "Invoking @command{etf2ly}"
+msgstr ""
+
+#. @node in Documentation/user/converters.itely
+#. @section in Documentation/user/converters.itely
+#. @node in Documentation/fr/user/converters.itely
+#. @section in Documentation/fr/user/converters.itely
+#. @node in Documentation/es/user/converters.itely
+#. @section in Documentation/es/user/converters.itely
+#. @node in Documentation/de/user/converters.itely
+#. @section in Documentation/de/user/converters.itely
+#. @node in Documentation/ja/user/converters.itely
+#. @section in Documentation/ja/user/converters.itely
+msgid "Generating LilyPond files"
+msgstr ""
+
+#. @top in Documentation/user/lilypond.tely
+#. @top in Documentation/de/user/lilypond.tely
+msgid "GNU LilyPond --- Notation Reference"
+msgstr ""
+
+#. @chapheading in Documentation/user/lilypond.tely
+msgid "The music typesetter"
+msgstr ""
+
+#. @node in Documentation/user/lilypond.tely
+#. @appendix in Documentation/user/lilypond.tely
+#. @node in Documentation/fr/user/lilypond.tely
+#. @appendix in Documentation/fr/user/lilypond.tely
+#. @node in Documentation/es/user/lilypond.tely
+#. @appendix in Documentation/es/user/lilypond.tely
+#. @node in Documentation/de/user/lilypond.tely
+#. @appendix in Documentation/de/user/lilypond.tely
+msgid "LilyPond command index"
+msgstr ""
+
+#. @node in Documentation/user/notation.itely
+#. @chapter in Documentation/user/notation.itely
+#. @node in Documentation/fr/user/notation.itely
+#. @chapter in Documentation/fr/user/notation.itely
+#. @node in Documentation/es/user/notation.itely
+#. @chapter in Documentation/es/user/notation.itely
+#. @node in Documentation/de/user/notation.itely
+#. @chapter in Documentation/de/user/notation.itely
+msgid "Musical notation"
+msgstr ""
+
+#. Documentation/user/pitches.itely:688 (variable)
+#. Documentation/user/input.itely:1043 (variable)
+#. Documentation/user/input.itely:1062 (variable)
+#. Documentation/user/input.itely:1099 (variable)
+#. Documentation/user/input.itely:1114 (variable)
+#. input/lsr/changing-the-chord-names-to-german-or-semi-german-notation.ly:29 (variable)
+#. input/lsr/controlling-tuplet-bracket-visibility.ly:20 (variable)
+#. input/lsr/letter-tablature-formatting.ly:25 (variable)
+#. input/lsr/string-quartet-template-with-separate-parts.ly:112 (variable)
+#. input/lsr/transposing-pitches-with-minimum-accidentals-smart-transpose.ly:137 (variable)
+#. input/lsr/vertically-aligned-dynamics-and-textscripts.ly:50 (variable)
+msgid "music"
+msgstr ""
+
+#. Documentation/user/pitches.itely:1082 (comment)
+msgid "not strictly necessary, but a good reminder"
+msgstr ""
+
+#. Documentation/user/pitches.itely:1089 (context id)
+#. Documentation/user/staff.itely:1116 (variable)
+msgid "clarinet"
+msgstr ""
+
+#. Documentation/user/pitches.itely:1174 (variable)
+msgid "musicA"
+msgstr ""
+
+#. Documentation/user/pitches.itely:1188 (variable)
+msgid "musicB"
+msgstr ""
+
+#. Documentation/user/pitches.itely:1207 (context id)
+#. Documentation/user/keyboards.itely:175 (context id)
+#. Documentation/user/keyboards.itely:274 (context id)
+#. Documentation/user/percussion.itely:175 (variable)
+#. Documentation/user/percussion.itely:365 (variable)
+#. input/lsr/jazz-combo-template.ly:241 (variable)
+msgid "up"
+msgstr ""
+
+#. Documentation/user/pitches.itely:1211 (context id)
+#. Documentation/user/keyboards.itely:185 (context id)
+#. Documentation/user/keyboards.itely:283 (context id)
+#. Documentation/user/percussion.itely:178 (variable)
+#. Documentation/user/percussion.itely:366 (variable)
+#. input/lsr/jazz-combo-template.ly:247 (variable)
+msgid "down"
+msgstr ""
+
+#. @node in Documentation/user/pitches.itely
+#. @subsection in Documentation/user/pitches.itely
+#. @node in Documentation/fr/user/pitches.itely
+#. @subsection in Documentation/fr/user/pitches.itely
+#. @node in Documentation/es/user/pitches.itely
+#. @subsection in Documentation/es/user/pitches.itely
+#. @node in Documentation/de/user/pitches.itely
+#. @subsection in Documentation/de/user/pitches.itely
+msgid "Writing pitches"
+msgstr ""
+
+#. @node in Documentation/user/pitches.itely
+#. @unnumberedsubsubsec in Documentation/user/pitches.itely
+#. @node in Documentation/fr/user/pitches.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/pitches.itely
+#. @node in Documentation/es/user/pitches.itely
+#. @unnumberedsubsubsec in Documentation/es/user/pitches.itely
+#. @node in Documentation/de/user/pitches.itely
+#. @unnumberedsubsubsec in Documentation/de/user/pitches.itely
+msgid "Absolute octave entry"
+msgstr ""
+
+#. @node in Documentation/user/pitches.itely
+#. @unnumberedsubsubsec in Documentation/user/pitches.itely
+#. @node in Documentation/fr/user/pitches.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/pitches.itely
+#. @node in Documentation/es/user/pitches.itely
+#. @unnumberedsubsubsec in Documentation/es/user/pitches.itely
+#. @node in Documentation/de/user/pitches.itely
+#. @unnumberedsubsubsec in Documentation/de/user/pitches.itely
+msgid "Relative octave entry"
+msgstr ""
+
+#. @rglos in Documentation/user/pitches.itely
+#. @rglos in Documentation/es/user/pitches.itely
+#. @rglos in Documentation/de/user/pitches.itely
+msgid "fifth"
+msgstr ""
+
+#. @rglos in Documentation/user/pitches.itely
+#. @rglos in Documentation/es/user/pitches.itely
+#. @rglos in Documentation/de/user/pitches.itely
+msgid "quarter tone"
+msgstr ""
+
+#. @node in Documentation/user/pitches.itely
+#. @unnumberedsubsubsec in Documentation/user/pitches.itely
+#. @node in Documentation/fr/user/pitches.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/pitches.itely
+#. @node in Documentation/es/user/pitches.itely
+#. @unnumberedsubsubsec in Documentation/es/user/pitches.itely
+#. @node in Documentation/de/user/pitches.itely
+#. @unnumberedsubsubsec in Documentation/de/user/pitches.itely
+msgid "Note names in other languages"
+msgstr ""
+
+#. @node in Documentation/user/pitches.itely
+#. @subsection in Documentation/user/pitches.itely
+#. @node in Documentation/fr/user/pitches.itely
+#. @subsection in Documentation/fr/user/pitches.itely
+#. @node in Documentation/es/user/pitches.itely
+#. @subsection in Documentation/es/user/pitches.itely
+#. @node in Documentation/de/user/pitches.itely
+#. @subsection in Documentation/de/user/pitches.itely
+msgid "Changing multiple pitches"
+msgstr ""
+
+#. @node in Documentation/user/pitches.itely
+#. @unnumberedsubsubsec in Documentation/user/pitches.itely
+#. @node in Documentation/fr/user/pitches.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/pitches.itely
+#. @node in Documentation/es/user/pitches.itely
+#. @unnumberedsubsubsec in Documentation/es/user/pitches.itely
+#. @node in Documentation/de/user/pitches.itely
+#. @unnumberedsubsubsec in Documentation/de/user/pitches.itely
+msgid "Octave checks"
+msgstr ""
+
+#. @node in Documentation/user/pitches.itely
+#. @unnumberedsubsubsec in Documentation/user/pitches.itely
+#. @node in Documentation/fr/user/pitches.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/pitches.itely
+#. @node in Documentation/es/user/pitches.itely
+#. @unnumberedsubsubsec in Documentation/es/user/pitches.itely
+#. @node in Documentation/de/user/pitches.itely
+#. @unnumberedsubsubsec in Documentation/de/user/pitches.itely
+msgid "Transpose"
+msgstr ""
+
+#. @node in Documentation/user/pitches.itely
+#. @subsection in Documentation/user/pitches.itely
+#. @node in Documentation/fr/user/pitches.itely
+#. @subsection in Documentation/fr/user/pitches.itely
+#. @node in Documentation/es/user/pitches.itely
+#. @subsection in Documentation/es/user/pitches.itely
+#. @node in Documentation/de/user/pitches.itely
+#. @subsection in Documentation/de/user/pitches.itely
+msgid "Displaying pitches"
+msgstr ""
+
+#. @node in Documentation/user/pitches.itely
+#. @unnumberedsubsubsec in Documentation/user/pitches.itely
+#. @node in Documentation/fr/user/pitches.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/pitches.itely
+#. @node in Documentation/es/user/pitches.itely
+#. @unnumberedsubsubsec in Documentation/es/user/pitches.itely
+#. @node in Documentation/de/user/pitches.itely
+#. @unnumberedsubsubsec in Documentation/de/user/pitches.itely
+msgid "Key signature"
+msgstr ""
+
+#. @rglos in Documentation/user/pitches.itely
+#. @rglos in Documentation/es/user/pitches.itely
+#. @rglos in Documentation/de/user/pitches.itely
+msgid "church mode"
+msgstr ""
+
+#. @rglos in Documentation/user/pitches.itely
+#. @rglos in Documentation/es/user/pitches.itely
+#. @rglos in Documentation/de/user/pitches.itely
+msgid "scordatura"
+msgstr ""
+
+#. @node in Documentation/user/pitches.itely
+#. @unnumberedsubsubsec in Documentation/user/pitches.itely
+#. @node in Documentation/fr/user/pitches.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/pitches.itely
+#. @node in Documentation/es/user/pitches.itely
+#. @unnumberedsubsubsec in Documentation/es/user/pitches.itely
+#. @node in Documentation/de/user/pitches.itely
+#. @unnumberedsubsubsec in Documentation/de/user/pitches.itely
+msgid "Ottava brackets"
+msgstr ""
+
+#. @rglos in Documentation/user/pitches.itely
+#. @rglos in Documentation/es/user/pitches.itely
+#. @rglos in Documentation/de/user/pitches.itely
+msgid "octavation"
+msgstr ""
+
+#. @node in Documentation/user/pitches.itely
+#. @unnumberedsubsubsec in Documentation/user/pitches.itely
+#. @node in Documentation/fr/user/pitches.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/pitches.itely
+#. @node in Documentation/es/user/pitches.itely
+#. @unnumberedsubsubsec in Documentation/es/user/pitches.itely
+#. @node in Documentation/de/user/pitches.itely
+#. @unnumberedsubsubsec in Documentation/de/user/pitches.itely
+msgid "Instrument transpositions"
+msgstr ""
+
+#. @rglos in Documentation/user/pitches.itely
+#. @rglos in Documentation/es/user/pitches.itely
+#. @rglos in Documentation/de/user/pitches.itely
+msgid "concert pitch"
+msgstr ""
+
+#. @rglos in Documentation/user/pitches.itely
+#. @rglos in Documentation/es/user/pitches.itely
+#. @rglos in Documentation/de/user/pitches.itely
+msgid "transposing instrument"
+msgstr ""
+
+#. @node in Documentation/user/pitches.itely
+#. @unnumberedsubsubsec in Documentation/user/pitches.itely
+#. @node in Documentation/fr/user/pitches.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/pitches.itely
+#. @node in Documentation/es/user/pitches.itely
+#. @unnumberedsubsubsec in Documentation/es/user/pitches.itely
+#. @node in Documentation/de/user/pitches.itely
+#. @unnumberedsubsubsec in Documentation/de/user/pitches.itely
+msgid "Automatic accidentals"
+msgstr ""
+
+#. @node in Documentation/user/pitches.itely
+#. @unnumberedsubsubsec in Documentation/user/pitches.itely
+#. @node in Documentation/fr/user/pitches.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/pitches.itely
+#. @node in Documentation/es/user/pitches.itely
+#. @unnumberedsubsubsec in Documentation/es/user/pitches.itely
+#. @node in Documentation/de/user/pitches.itely
+#. @unnumberedsubsubsec in Documentation/de/user/pitches.itely
+msgid "Ambitus"
+msgstr ""
+
+#. @node in Documentation/user/pitches.itely
+#. @subsection in Documentation/user/pitches.itely
+#. @node in Documentation/fr/user/pitches.itely
+#. @subsection in Documentation/fr/user/pitches.itely
+#. @node in Documentation/es/user/pitches.itely
+#. @subsection in Documentation/es/user/pitches.itely
+#. @node in Documentation/de/user/pitches.itely
+#. @subsection in Documentation/de/user/pitches.itely
+msgid "Note heads"
+msgstr ""
+
+#. @node in Documentation/user/pitches.itely
+#. @unnumberedsubsubsec in Documentation/user/pitches.itely
+#. @node in Documentation/fr/user/pitches.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/pitches.itely
+#. @node in Documentation/es/user/pitches.itely
+#. @unnumberedsubsubsec in Documentation/es/user/pitches.itely
+#. @node in Documentation/de/user/pitches.itely
+#. @unnumberedsubsubsec in Documentation/de/user/pitches.itely
+msgid "Special note heads"
+msgstr ""
+
+#. @node in Documentation/user/pitches.itely
+#. @unnumberedsubsubsec in Documentation/user/pitches.itely
+#. @node in Documentation/fr/user/pitches.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/pitches.itely
+#. @node in Documentation/es/user/pitches.itely
+#. @unnumberedsubsubsec in Documentation/es/user/pitches.itely
+#. @node in Documentation/de/user/pitches.itely
+#. @unnumberedsubsubsec in Documentation/de/user/pitches.itely
+msgid "Easy notation note heads"
+msgstr ""
+
+#. @node in Documentation/user/pitches.itely
+#. @unnumberedsubsubsec in Documentation/user/pitches.itely
+#. @node in Documentation/fr/user/pitches.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/pitches.itely
+#. @node in Documentation/es/user/pitches.itely
+#. @unnumberedsubsubsec in Documentation/es/user/pitches.itely
+#. @node in Documentation/de/user/pitches.itely
+#. @unnumberedsubsubsec in Documentation/de/user/pitches.itely
+msgid "Shape note heads"
+msgstr ""
+
+#. @node in Documentation/user/pitches.itely
+#. @unnumberedsubsubsec in Documentation/user/pitches.itely
+#. @node in Documentation/fr/user/pitches.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/pitches.itely
+#. @node in Documentation/es/user/pitches.itely
+#. @unnumberedsubsubsec in Documentation/es/user/pitches.itely
+#. @node in Documentation/de/user/pitches.itely
+#. @unnumberedsubsubsec in Documentation/de/user/pitches.itely
+msgid "Improvisation"
+msgstr ""
+
+#. Documentation/user/rhythms.itely:303 (comment)
+msgid "Alter durations to triplets"
+msgstr ""
+
+#. Documentation/user/rhythms.itely:305 (comment)
+#. Documentation/user/rhythms.itely:332 (comment)
+msgid "Normal durations"
+msgstr ""
+
+#. Documentation/user/rhythms.itely:307 (comment)
+msgid "Double the duration of chord"
+msgstr ""
+
+#. Documentation/user/rhythms.itely:309 (comment)
+msgid "Duration of quarter, appears like sixteenth"
+msgstr ""
+
+#. Documentation/user/rhythms.itely:334 (comment)
+msgid "Scale music by *2/3"
+msgstr ""
+
+#. Documentation/user/rhythms.itely:338 (comment)
+msgid "Scale music by *2"
+msgstr ""
+
+#. Documentation/user/rhythms.itely:425 (comment)
+msgid "First alternative: following note is tied normally"
+msgstr ""
+
+#. Documentation/user/rhythms.itely:427 (comment)
+msgid "Second alternative: following note has a repeated tie"
+msgstr ""
+
+#. Documentation/user/rhythms.itely:559 (comment)
+msgid "These two lines are just to prettify this example"
+msgstr ""
+
+#. Documentation/user/rhythms.itely:562 (comment)
+msgid "Print a maxima rest, equal to four breves"
+msgstr ""
+
+#. Documentation/user/rhythms.itely:564 (comment)
+msgid "Print a longa rest, equal to two breves"
+msgstr ""
+
+#. Documentation/user/rhythms.itely:566 (comment)
+msgid "Print a breve rest"
+msgstr ""
+
+#. Documentation/user/rhythms.itely:675 (comment)
+msgid "This is valid input, but does nothing"
+msgstr ""
+
+#. Documentation/user/rhythms.itely:703 (comment)
+#. Documentation/user/rhythms.itely:758 (comment)
+msgid "Rest measures contracted to single measure"
+msgstr ""
+
+#. Documentation/user/rhythms.itely:754 (comment)
+#. input/lsr/avoiding-collisions-with-chord-fingerings.ly:24 (comment)
+msgid "Default behavior"
+msgstr ""
+
+#. Documentation/user/rhythms.itely:761 (comment)
+msgid "Rest measures expanded"
+msgstr ""
+
+#. Documentation/user/rhythms.itely:797 (comment)
+msgid "This fails, as the wrong object name is specified"
+msgstr ""
+
+#. Documentation/user/rhythms.itely:800 (comment)
+msgid "This is correct and works"
+msgstr ""
+
+#. Documentation/user/rhythms.itely:934 (comment)
+msgid "Default style"
+msgstr ""
+
+#. Documentation/user/rhythms.itely:937 (comment)
+msgid "Change to numeric style"
+msgstr ""
+
+#. Documentation/user/rhythms.itely:941 (comment)
+msgid "Revert to default style"
+msgstr ""
+
+#. Documentation/user/rhythms.itely:1087 (comment)
+msgid "Show all bar numbers"
+msgstr ""
+
+#. Documentation/user/rhythms.itely:1217 (comment)
+msgid "Now each staff has its own time signature."
+msgstr ""
+
+#. Documentation/user/rhythms.itely:1345 (context id)
+msgid "myRhythm"
+msgstr ""
+
+#. Documentation/user/rhythms.itely:1713 (comment)
+msgid "end 1/16 beams for all time signatures at the 1/16 moment"
+msgstr ""
+
+#. Documentation/user/rhythms.itely:1717 (comment)
+msgid "end 1/32 beams for all time signatures at the 1/16 moment"
+msgstr ""
+
+#. Documentation/user/rhythms.itely:1727 (comment)
+msgid "end beams of all durations in 5/8 time signature at the 2/8 moment"
+msgstr ""
+
+#. Documentation/user/rhythms.itely:1742 (comment)
+msgid "rhythm 3-1-1-2"
+msgstr ""
+
+#. Documentation/user/rhythms.itely:1743 (comment)
+msgid "Context not specified - does not work correctly"
+msgstr ""
+
+#. Documentation/user/rhythms.itely:1749 (comment)
+msgid "Works correctly with context specified"
+msgstr ""
+
+#. Documentation/user/rhythms.itely:1782 (comment)
+msgid "undo a rule ending 1/16 beams in 4/4 time at 1/4 moment"
+msgstr ""
+
+#. Documentation/user/rhythms.itely:1795 (comment)
+msgid "this won't revert it!"
+msgstr ""
+
+#. Documentation/user/rhythms.itely:1797 (comment)
+msgid "this will"
+msgstr ""
+
+#. Documentation/user/rhythms.itely:1942 (comment)
+msgid "revert to non-feathered beams"
+msgstr ""
+
+#. Documentation/user/rhythms.itely:2182 (comment)
+#. Documentation/user/rhythms.itely:2198 (comment)
+msgid "Permit first bar number to be printed"
+msgstr ""
+
+#. Documentation/user/rhythms.itely:2199 (comment)
+#. Documentation/user/rhythms.itely:2247 (comment)
+msgid "Print a bar number every second measure"
+msgstr ""
+
+#. Documentation/user/rhythms.itely:2215 (comment)
+msgid "Prevent bar numbers at the end of a line and permit them elsewhere"
+msgstr ""
+
+#. Documentation/user/rhythms.itely:2219 (comment)
+#. Documentation/user/rhythms.itely:2245 (comment)
+msgid "Increase the size of the bar number by 2"
+msgstr ""
+
+#. Documentation/user/rhythms.itely:2223 (comment)
+msgid "Draw a box round the following bar number(s)"
+msgstr ""
+
+#. Documentation/user/rhythms.itely:2228 (comment)
+msgid "Draw a circle round the following bar number(s)"
+msgstr ""
+
+#. Documentation/user/rhythms.itely:2250 (comment)
+msgid "Center-align bar numbers"
+msgstr ""
+
+#. Documentation/user/rhythms.itely:2253 (comment)
+msgid "Right-align bar numbers"
+msgstr ""
+
+#. Documentation/user/rhythms.itely:2347 (variable)
+msgid "pipeSymbol"
+msgstr ""
+
+#. Documentation/user/rhythms.itely:2752 (variable)
+msgid "MyCadenza"
+msgstr ""
+
+#. @node in Documentation/user/rhythms.itely
+#. @section in Documentation/user/rhythms.itely
+#. @node in Documentation/fr/user/rhythms.itely
+#. @section in Documentation/fr/user/rhythms.itely
+#. @node in Documentation/es/user/rhythms.itely
+#. @section in Documentation/es/user/rhythms.itely
+#. @node in Documentation/de/user/rhythms.itely
+#. @section in Documentation/de/user/rhythms.itely
+msgid "Rhythms"
+msgstr ""
+
+#. @node in Documentation/user/rhythms.itely
+#. @subsection in Documentation/user/rhythms.itely
+#. @node in Documentation/fr/user/rhythms.itely
+#. @subsection in Documentation/fr/user/rhythms.itely
+#. @node in Documentation/es/user/rhythms.itely
+#. @subsection in Documentation/es/user/rhythms.itely
+#. @node in Documentation/de/user/rhythms.itely
+#. @subsection in Documentation/de/user/rhythms.itely
+msgid "Writing rhythms"
+msgstr ""
+
+#. @node in Documentation/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/user/rhythms.itely
+#. @node in Documentation/fr/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/rhythms.itely
+#. @node in Documentation/es/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/es/user/rhythms.itely
+#. @node in Documentation/de/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/de/user/rhythms.itely
+msgid "Durations"
+msgstr ""
+
+#. @rglos in Documentation/user/rhythms.itely
+#. @rglos in Documentation/es/user/rhythms.itely
+#. @rglos in Documentation/de/user/rhythms.itely
+msgid "breve"
+msgstr ""
+
+#. @rglos in Documentation/user/rhythms.itely
+#. @rglos in Documentation/es/user/rhythms.itely
+#. @rglos in Documentation/de/user/rhythms.itely
+msgid "longa"
+msgstr ""
+
+#. @rglos in Documentation/user/rhythms.itely
+#. @rglos in Documentation/es/user/rhythms.itely
+#. @rglos in Documentation/de/user/rhythms.itely
+#, fuzzy
+msgid "maxima"
+msgstr "メリスマ"
+
+#. @rglos in Documentation/user/rhythms.itely
+#. @rglos in Documentation/es/user/rhythms.itely
+#. @rglos in Documentation/de/user/rhythms.itely
+msgid "Duration names notes and rests"
+msgstr ""
+
+#. @rglos in Documentation/user/rhythms.itely
+#. @rglos in Documentation/es/user/rhythms.itely
+#. @rglos in Documentation/de/user/rhythms.itely
+msgid "tuplet"
+msgstr ""
+
+#. @rglos in Documentation/user/rhythms.itely
+#. @rglos in Documentation/es/user/rhythms.itely
+#. @rglos in Documentation/de/user/rhythms.itely
+msgid "polymetric"
+msgstr ""
+
+#. @node in Documentation/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/user/rhythms.itely
+#. @node in Documentation/fr/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/rhythms.itely
+#. @node in Documentation/es/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/es/user/rhythms.itely
+#. @node in Documentation/de/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/de/user/rhythms.itely
+msgid "Scaling durations"
+msgstr ""
+
+#. @rglos in Documentation/user/rhythms.itely
+#. @rglos in Documentation/fr/user/rhythms.itely
+#. @rglos in Documentation/es/user/rhythms.itely
+#. @rglos in Documentation/de/user/rhythms.itely
+msgid "laissez vibrer"
+msgstr ""
+
+#. @node in Documentation/user/rhythms.itely
+#. @subsection in Documentation/user/rhythms.itely
+#. @node in Documentation/fr/user/rhythms.itely
+#. @subsection in Documentation/fr/user/rhythms.itely
+#. @node in Documentation/es/user/rhythms.itely
+#. @subsection in Documentation/es/user/rhythms.itely
+#. @node in Documentation/de/user/rhythms.itely
+#. @subsection in Documentation/de/user/rhythms.itely
+msgid "Writing rests"
+msgstr ""
+
+#. @node in Documentation/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/user/rhythms.itely
+#. @node in Documentation/fr/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/rhythms.itely
+#. @node in Documentation/es/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/es/user/rhythms.itely
+#. @node in Documentation/de/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/de/user/rhythms.itely
+msgid "Invisible rests"
+msgstr ""
+
+#. @node in Documentation/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/user/rhythms.itely
+#. @node in Documentation/fr/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/rhythms.itely
+#. @node in Documentation/es/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/es/user/rhythms.itely
+#. @node in Documentation/de/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/de/user/rhythms.itely
+msgid "Full measure rests"
+msgstr ""
+
+#. @rglos in Documentation/user/rhythms.itely
+#. @rglos in Documentation/es/user/rhythms.itely
+#. @rglos in Documentation/de/user/rhythms.itely
+msgid "multi-measure rest"
+msgstr ""
+
+#. @node in Documentation/user/rhythms.itely
+#. @subsection in Documentation/user/rhythms.itely
+#. @node in Documentation/fr/user/rhythms.itely
+#. @subsection in Documentation/fr/user/rhythms.itely
+#. @node in Documentation/es/user/rhythms.itely
+#. @subsection in Documentation/es/user/rhythms.itely
+#. @node in Documentation/de/user/rhythms.itely
+#. @subsection in Documentation/de/user/rhythms.itely
+msgid "Displaying rhythms"
+msgstr ""
+
+#. @node in Documentation/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/user/rhythms.itely
+#. @node in Documentation/fr/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/rhythms.itely
+#. @node in Documentation/es/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/es/user/rhythms.itely
+#. @node in Documentation/de/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/de/user/rhythms.itely
+msgid "Upbeats"
+msgstr ""
+
+#. @node in Documentation/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/user/rhythms.itely
+#. @node in Documentation/fr/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/rhythms.itely
+#. @node in Documentation/es/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/es/user/rhythms.itely
+#. @node in Documentation/de/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/de/user/rhythms.itely
+msgid "Unmetered music"
+msgstr ""
+
+#. @rglos in Documentation/user/rhythms.itely
+#. @rglos in Documentation/es/user/rhythms.itely
+#. @rglos in Documentation/de/user/rhythms.itely
+msgid "cadenza"
+msgstr ""
+
+#. @node in Documentation/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/user/rhythms.itely
+#. @node in Documentation/fr/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/rhythms.itely
+#. @node in Documentation/es/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/es/user/rhythms.itely
+#. @node in Documentation/de/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/de/user/rhythms.itely
+msgid "Polymetric notation"
+msgstr ""
+
+#. @rglos in Documentation/user/rhythms.itely
+#. @rglos in Documentation/es/user/rhythms.itely
+#. @rglos in Documentation/de/user/rhythms.itely
+msgid "polymetric time signature"
+msgstr ""
+
+#. @rglos in Documentation/user/rhythms.itely
+#. @rglos in Documentation/es/user/rhythms.itely
+#. @rglos in Documentation/de/user/rhythms.itely
+msgid "meter"
+msgstr ""
+
+#. @node in Documentation/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/user/rhythms.itely
+#. @node in Documentation/fr/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/rhythms.itely
+#. @node in Documentation/es/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/es/user/rhythms.itely
+#. @node in Documentation/de/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/de/user/rhythms.itely
+msgid "Automatic note splitting"
+msgstr ""
+
+#. @node in Documentation/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/user/rhythms.itely
+#. @node in Documentation/fr/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/rhythms.itely
+#. @node in Documentation/es/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/es/user/rhythms.itely
+#. @node in Documentation/de/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/de/user/rhythms.itely
+msgid "Showing melody rhythms"
+msgstr ""
+
+#. @node in Documentation/user/rhythms.itely
+#. @subsection in Documentation/user/rhythms.itely
+#. @node in Documentation/fr/user/rhythms.itely
+#. @subsection in Documentation/fr/user/rhythms.itely
+#. @node in Documentation/es/user/rhythms.itely
+#. @subsection in Documentation/es/user/rhythms.itely
+#. @node in Documentation/de/user/rhythms.itely
+#. @subsection in Documentation/de/user/rhythms.itely
+msgid "Beams"
+msgstr ""
+
+#. @node in Documentation/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/user/rhythms.itely
+#. @node in Documentation/fr/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/rhythms.itely
+#. @node in Documentation/es/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/es/user/rhythms.itely
+#. @node in Documentation/de/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/de/user/rhythms.itely
+msgid "Automatic beams"
+msgstr ""
+
+#. @node in Documentation/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/user/rhythms.itely
+#. @node in Documentation/fr/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/rhythms.itely
+#. @node in Documentation/es/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/es/user/rhythms.itely
+#. @node in Documentation/de/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/de/user/rhythms.itely
+msgid "Setting automatic beam behavior"
+msgstr ""
+
+#. @node in Documentation/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/user/rhythms.itely
+#. @node in Documentation/fr/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/rhythms.itely
+#. @node in Documentation/es/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/es/user/rhythms.itely
+#. @node in Documentation/de/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/de/user/rhythms.itely
+msgid "Manual beams"
+msgstr ""
+
+#. @node in Documentation/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/user/rhythms.itely
+#. @node in Documentation/fr/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/rhythms.itely
+#. @node in Documentation/es/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/es/user/rhythms.itely
+#. @node in Documentation/de/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/de/user/rhythms.itely
+msgid "Feathered beams"
+msgstr ""
+
+#. @node in Documentation/user/rhythms.itely
+#. @subsection in Documentation/user/rhythms.itely
+#. @node in Documentation/fr/user/rhythms.itely
+#. @subsection in Documentation/fr/user/rhythms.itely
+#. @node in Documentation/es/user/rhythms.itely
+#. @subsection in Documentation/es/user/rhythms.itely
+#. @node in Documentation/de/user/rhythms.itely
+#. @subsection in Documentation/de/user/rhythms.itely
+msgid "Bars"
+msgstr ""
+
+#. @node in Documentation/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/user/rhythms.itely
+#. @node in Documentation/fr/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/rhythms.itely
+#. @node in Documentation/es/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/es/user/rhythms.itely
+#. @node in Documentation/de/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/de/user/rhythms.itely
+msgid "Bar lines"
+msgstr ""
+
+#. @node in Documentation/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/user/rhythms.itely
+#. @node in Documentation/fr/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/rhythms.itely
+#. @node in Documentation/es/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/es/user/rhythms.itely
+#. @node in Documentation/de/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/de/user/rhythms.itely
+msgid "Bar numbers"
+msgstr ""
+
+#. @node in Documentation/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/user/rhythms.itely
+#. @node in Documentation/fr/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/rhythms.itely
+#. @node in Documentation/es/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/es/user/rhythms.itely
+#. @node in Documentation/de/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/de/user/rhythms.itely
+msgid "Bar and bar number checks"
+msgstr ""
+
+#. @node in Documentation/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/user/rhythms.itely
+#. @node in Documentation/fr/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/rhythms.itely
+#. @node in Documentation/es/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/es/user/rhythms.itely
+#. @node in Documentation/de/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/de/user/rhythms.itely
+msgid "Rehearsal marks"
+msgstr ""
+
+#. @node in Documentation/user/rhythms.itely
+#. @subsection in Documentation/user/rhythms.itely
+#. @node in Documentation/fr/user/rhythms.itely
+#. @subsection in Documentation/fr/user/rhythms.itely
+#. @node in Documentation/es/user/rhythms.itely
+#. @subsection in Documentation/es/user/rhythms.itely
+#. @node in Documentation/de/user/rhythms.itely
+#. @subsection in Documentation/de/user/rhythms.itely
+msgid "Special rhythmic concerns"
+msgstr ""
+
+#. @node in Documentation/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/user/rhythms.itely
+#. @node in Documentation/fr/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/rhythms.itely
+#. @node in Documentation/es/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/es/user/rhythms.itely
+#. @node in Documentation/de/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/de/user/rhythms.itely
+msgid "Aligning to cadenzas"
+msgstr ""
+
+#. @node in Documentation/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/user/rhythms.itely
+#. @node in Documentation/fr/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/rhythms.itely
+#. @node in Documentation/es/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/es/user/rhythms.itely
+#. @node in Documentation/de/user/rhythms.itely
+#. @unnumberedsubsubsec in Documentation/de/user/rhythms.itely
+msgid "Time administration"
+msgstr ""
+
+#. Documentation/user/expressive.itely:388 (variable)
+#. Documentation/user/expressive.itely:456 (variable)
+msgid "moltoF"
+msgstr ""
+
+#. Documentation/user/expressive.itely:409 (variable)
+#. Documentation/user/expressive.itely:439 (variable)
+msgid "roundF"
+msgstr ""
+
+#. Documentation/user/expressive.itely:411 (variable)
+#. Documentation/user/expressive.itely:443 (variable)
+msgid "boxF"
+msgstr ""
+
+#. Documentation/user/expressive.itely:426 (variable)
+msgid "sfzp"
+msgstr ""
+
+#. Documentation/user/expressive.itely:444 (variable)
+msgid "roundFdynamic"
+msgstr ""
+
+#. Documentation/user/expressive.itely:445 (variable)
+msgid "boxFdynamic"
+msgstr ""
+
+#. @node in Documentation/user/expressive.itely
+#. @section in Documentation/user/expressive.itely
+#. @node in Documentation/fr/user/expressive.itely
+#. @section in Documentation/fr/user/expressive.itely
+#. @node in Documentation/es/user/expressive.itely
+#. @section in Documentation/es/user/expressive.itely
+#. @node in Documentation/de/user/expressive.itely
+#. @section in Documentation/de/user/expressive.itely
+msgid "Expressive marks"
+msgstr ""
+
+#. @node in Documentation/user/expressive.itely
+#. @subsection in Documentation/user/expressive.itely
+#. @node in Documentation/fr/user/expressive.itely
+#. @subsection in Documentation/fr/user/expressive.itely
+#. @node in Documentation/es/user/expressive.itely
+#. @subsection in Documentation/es/user/expressive.itely
+#. @node in Documentation/de/user/expressive.itely
+#. @subsection in Documentation/de/user/expressive.itely
+msgid "Attached to notes"
+msgstr ""
+
+#. @node in Documentation/user/expressive.itely
+#. @unnumberedsubsubsec in Documentation/user/expressive.itely
+#. @node in Documentation/fr/user/expressive.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/expressive.itely
+#. @node in Documentation/es/user/expressive.itely
+#. @unnumberedsubsubsec in Documentation/es/user/expressive.itely
+#. @node in Documentation/de/user/expressive.itely
+#. @unnumberedsubsubsec in Documentation/de/user/expressive.itely
+msgid "Articulations and ornamentations"
+msgstr ""
+
+#. @rglos in Documentation/user/expressive.itely
+#. @rglos in Documentation/es/user/expressive.itely
+#. @rglos in Documentation/de/user/expressive.itely
+msgid "tenuto"
+msgstr ""
+
+#. @rglos in Documentation/user/expressive.itely
+#. @rglos in Documentation/es/user/expressive.itely
+#. @rglos in Documentation/de/user/expressive.itely
+msgid "accent"
+msgstr ""
+
+#. @rglos in Documentation/user/expressive.itely
+#. @rglos in Documentation/es/user/expressive.itely
+#. @rglos in Documentation/de/user/expressive.itely
+msgid "staccato"
+msgstr ""
+
+#. @rglos in Documentation/user/expressive.itely
+#. @rglos in Documentation/es/user/expressive.itely
+#. @rglos in Documentation/de/user/expressive.itely
+msgid "portato"
+msgstr ""
+
+#. @rglos in Documentation/user/expressive.itely
+#. @rglos in Documentation/es/user/expressive.itely
+#. @rglos in Documentation/de/user/expressive.itely
+msgid "al niente"
+msgstr ""
+
+#. @rglos in Documentation/user/expressive.itely
+#. @rglos in Documentation/es/user/expressive.itely
+#. @rglos in Documentation/de/user/expressive.itely
+msgid "hairpin"
+msgstr ""
+
+#. @node in Documentation/user/expressive.itely
+#. @unnumberedsubsubsec in Documentation/user/expressive.itely
+#. @node in Documentation/fr/user/expressive.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/expressive.itely
+#. @node in Documentation/es/user/expressive.itely
+#. @unnumberedsubsubsec in Documentation/es/user/expressive.itely
+#. @node in Documentation/de/user/expressive.itely
+#. @unnumberedsubsubsec in Documentation/de/user/expressive.itely
+msgid "New dynamic marks"
+msgstr ""
+
+#. @node in Documentation/user/expressive.itely
+#. @subsection in Documentation/user/expressive.itely
+#. @node in Documentation/fr/user/expressive.itely
+#. @subsection in Documentation/fr/user/expressive.itely
+#. @node in Documentation/es/user/expressive.itely
+#. @subsection in Documentation/es/user/expressive.itely
+#. @node in Documentation/de/user/expressive.itely
+#. @subsection in Documentation/de/user/expressive.itely
+msgid "Curves"
+msgstr ""
+
+#. @node in Documentation/user/expressive.itely
+#. @unnumberedsubsubsec in Documentation/user/expressive.itely
+#. @node in Documentation/fr/user/expressive.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/expressive.itely
+#. @node in Documentation/es/user/expressive.itely
+#. @unnumberedsubsubsec in Documentation/es/user/expressive.itely
+#. @node in Documentation/de/user/expressive.itely
+#. @unnumberedsubsubsec in Documentation/de/user/expressive.itely
+msgid "Breath marks"
+msgstr ""
+
+#. @rglos in Documentation/user/expressive.itely
+#. @rglos in Documentation/es/user/expressive.itely
+#. @rglos in Documentation/de/user/expressive.itely
+#. input/lsr/breathing-signs.ly:35 (comment)
+msgid "caesura"
+msgstr ""
+
+#. @node in Documentation/user/expressive.itely
+#. @unnumberedsubsubsec in Documentation/user/expressive.itely
+#. @node in Documentation/fr/user/expressive.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/expressive.itely
+#. @node in Documentation/es/user/expressive.itely
+#. @unnumberedsubsubsec in Documentation/es/user/expressive.itely
+#. @node in Documentation/de/user/expressive.itely
+#. @unnumberedsubsubsec in Documentation/de/user/expressive.itely
+msgid "Falls and doits"
+msgstr ""
+
+#. @rglos in Documentation/user/expressive.itely
+#. @rglos in Documentation/es/user/expressive.itely
+#. @rglos in Documentation/de/user/expressive.itely
+msgid "fall"
+msgstr ""
+
+#. @rglos in Documentation/user/expressive.itely
+#. @rglos in Documentation/es/user/expressive.itely
+#. @rglos in Documentation/de/user/expressive.itely
+msgid "doit"
+msgstr ""
+
+#. @node in Documentation/user/expressive.itely
+#. @subsection in Documentation/user/expressive.itely
+#. @node in Documentation/fr/user/expressive.itely
+#. @subsection in Documentation/fr/user/expressive.itely
+#. @node in Documentation/es/user/expressive.itely
+#. @subsection in Documentation/es/user/expressive.itely
+#. @node in Documentation/de/user/expressive.itely
+#. @subsection in Documentation/de/user/expressive.itely
+msgid "Lines"
+msgstr ""
+
+#. @node in Documentation/user/expressive.itely
+#. @unnumberedsubsubsec in Documentation/user/expressive.itely
+#. @node in Documentation/fr/user/expressive.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/expressive.itely
+#. @node in Documentation/es/user/expressive.itely
+#. @unnumberedsubsubsec in Documentation/es/user/expressive.itely
+#. @node in Documentation/de/user/expressive.itely
+#. @unnumberedsubsubsec in Documentation/de/user/expressive.itely
+msgid "Glissando"
+msgstr ""
+
+#. @rglos in Documentation/user/expressive.itely
+#. @rglos in Documentation/es/user/expressive.itely
+#. @rglos in Documentation/de/user/expressive.itely
+msgid "glissando"
+msgstr ""
+
+#. @node in Documentation/user/expressive.itely
+#. @unnumberedsubsubsec in Documentation/user/expressive.itely
+#. @node in Documentation/fr/user/expressive.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/expressive.itely
+#. @node in Documentation/es/user/expressive.itely
+#. @unnumberedsubsubsec in Documentation/es/user/expressive.itely
+#. @node in Documentation/de/user/expressive.itely
+#. @unnumberedsubsubsec in Documentation/de/user/expressive.itely
+msgid "Arpeggio"
+msgstr ""
+
+#. @rglos in Documentation/user/expressive.itely
+#. @rglos in Documentation/es/user/expressive.itely
+#. @rglos in Documentation/de/user/expressive.itely
+msgid "arpeggio"
+msgstr ""
+
+#. @node in Documentation/user/expressive.itely
+#. @unnumberedsubsubsec in Documentation/user/expressive.itely
+#. @node in Documentation/fr/user/expressive.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/expressive.itely
+#. @node in Documentation/es/user/expressive.itely
+#. @unnumberedsubsubsec in Documentation/es/user/expressive.itely
+#. @node in Documentation/de/user/expressive.itely
+#. @unnumberedsubsubsec in Documentation/de/user/expressive.itely
+msgid "Trills"
+msgstr ""
+
+#. @rglos in Documentation/user/expressive.itely
+#. @rglos in Documentation/es/user/expressive.itely
+#. @rglos in Documentation/de/user/expressive.itely
+msgid "trill"
+msgstr ""
+
+#. Documentation/user/repeats.itely:299 (variable)
+#. input/lsr/volta-text-markup-using-repeatcommands.ly:21 (variable)
+msgid "voltaAdLib"
+msgstr ""
+
+#. @node in Documentation/user/repeats.itely
+#. @section in Documentation/user/repeats.itely
+#. @node in Documentation/fr/user/repeats.itely
+#. @section in Documentation/fr/user/repeats.itely
+#. @node in Documentation/es/user/repeats.itely
+#. @section in Documentation/es/user/repeats.itely
+#. @node in Documentation/de/user/repeats.itely
+#. @section in Documentation/de/user/repeats.itely
+msgid "Repeats"
+msgstr ""
+
+#. @node in Documentation/user/repeats.itely
+#. @subsection in Documentation/user/repeats.itely
+#. @node in Documentation/fr/user/repeats.itely
+#. @subsection in Documentation/fr/user/repeats.itely
+#. @node in Documentation/es/user/repeats.itely
+#. @subsection in Documentation/es/user/repeats.itely
+#. @node in Documentation/de/user/repeats.itely
+#. @subsection in Documentation/de/user/repeats.itely
+msgid "Long repeats"
+msgstr ""
+
+#. @node in Documentation/user/repeats.itely
+#. @unnumberedsubsubsec in Documentation/user/repeats.itely
+#. @node in Documentation/es/user/repeats.itely
+#. @unnumberedsubsubsec in Documentation/es/user/repeats.itely
+#. @node in Documentation/de/user/repeats.itely
+#. @unnumberedsubsubsec in Documentation/de/user/repeats.itely
+msgid "Normal repeats"
+msgstr ""
+
+#. @rglos in Documentation/user/repeats.itely
+#. @rglos in Documentation/es/user/repeats.itely
+#. @rglos in Documentation/de/user/repeats.itely
+msgid "repeat"
+msgstr ""
+
+#. @rglos in Documentation/user/repeats.itely
+#. @rglos in Documentation/es/user/repeats.itely
+#. @rglos in Documentation/de/user/repeats.itely
+msgid "volta"
+msgstr ""
+
+#. @node in Documentation/user/repeats.itely
+#. @unnumberedsubsubsec in Documentation/user/repeats.itely
+#. @node in Documentation/es/user/repeats.itely
+#. @unnumberedsubsubsec in Documentation/es/user/repeats.itely
+#. @node in Documentation/de/user/repeats.itely
+#. @unnumberedsubsubsec in Documentation/de/user/repeats.itely
+msgid "Manual repeat marks"
+msgstr ""
+
+#. @node in Documentation/user/repeats.itely
+#. @unnumberedsubsubsec in Documentation/user/repeats.itely
+#. @node in Documentation/es/user/repeats.itely
+#. @unnumberedsubsubsec in Documentation/es/user/repeats.itely
+#. @node in Documentation/de/user/repeats.itely
+#. @unnumberedsubsubsec in Documentation/de/user/repeats.itely
+msgid "Written-out repeats"
+msgstr ""
+
+#. @node in Documentation/user/repeats.itely
+#. @subsection in Documentation/user/repeats.itely
+#. @node in Documentation/es/user/repeats.itely
+#. @subsection in Documentation/es/user/repeats.itely
+#. @node in Documentation/de/user/repeats.itely
+#. @subsection in Documentation/de/user/repeats.itely
+msgid "Short repeats"
+msgstr ""
+
+#. @node in Documentation/user/repeats.itely
+#. @unnumberedsubsubsec in Documentation/user/repeats.itely
+#. @node in Documentation/es/user/repeats.itely
+#. @unnumberedsubsubsec in Documentation/es/user/repeats.itely
+#. @node in Documentation/de/user/repeats.itely
+#. @unnumberedsubsubsec in Documentation/de/user/repeats.itely
+msgid "Percent repeats"
+msgstr ""
+
+#. @rglos in Documentation/user/repeats.itely
+#. @rglos in Documentation/es/user/repeats.itely
+#. @rglos in Documentation/de/user/repeats.itely
+msgid "percent repeat"
+msgstr ""
+
+#. @rglos in Documentation/user/repeats.itely
+#. @rglos in Documentation/es/user/repeats.itely
+#. @rglos in Documentation/de/user/repeats.itely
+msgid "simile"
+msgstr ""
+
+#. @node in Documentation/user/repeats.itely
+#. @unnumberedsubsubsec in Documentation/user/repeats.itely
+#. @node in Documentation/fr/user/repeats.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/repeats.itely
+#. @node in Documentation/es/user/repeats.itely
+#. @unnumberedsubsubsec in Documentation/es/user/repeats.itely
+#. @node in Documentation/de/user/repeats.itely
+#. @unnumberedsubsubsec in Documentation/de/user/repeats.itely
+msgid "Tremolo repeats"
+msgstr ""
+
+#. Documentation/user/simultaneous.itely:94 (comment)
+msgid "explicit single voice"
+msgstr ""
+
+#. Documentation/user/simultaneous.itely:100 (comment)
+msgid "single first note"
+msgstr ""
+
+#. Documentation/user/simultaneous.itely:112 (comment)
+msgid "no single first note"
+msgstr ""
+
+#. Documentation/user/simultaneous.itely:622 (variable)
+msgid "instrumentOne"
+msgstr ""
+
+#. Documentation/user/simultaneous.itely:630 (variable)
+msgid "instrumentTwo"
+msgstr ""
+
+#. Documentation/user/simultaneous.itely:807 (comment)
+msgid "Bar 3 ..."
+msgstr ""
+
+#. @node in Documentation/user/simultaneous.itely
+#. @section in Documentation/user/simultaneous.itely
+#. @node in Documentation/fr/user/simultaneous.itely
+#. @section in Documentation/fr/user/simultaneous.itely
+#. @node in Documentation/es/user/simultaneous.itely
+#. @section in Documentation/es/user/simultaneous.itely
+#. @node in Documentation/de/user/simultaneous.itely
+#. @section in Documentation/de/user/simultaneous.itely
+msgid "Simultaneous notes"
+msgstr ""
+
+#. @node in Documentation/user/simultaneous.itely
+#. @subsection in Documentation/user/simultaneous.itely
+#. @node in Documentation/fr/user/simultaneous.itely
+#. @subsection in Documentation/fr/user/simultaneous.itely
+#. @node in Documentation/es/user/simultaneous.itely
+#. @subsection in Documentation/es/user/simultaneous.itely
+#. @node in Documentation/de/user/simultaneous.itely
+#. @subsection in Documentation/de/user/simultaneous.itely
+msgid "Single voice"
+msgstr ""
+
+#. @node in Documentation/user/simultaneous.itely
+#. @unnumberedsubsubsec in Documentation/user/simultaneous.itely
+#. @node in Documentation/fr/user/simultaneous.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/simultaneous.itely
+#. @node in Documentation/es/user/simultaneous.itely
+#. @unnumberedsubsubsec in Documentation/es/user/simultaneous.itely
+#. @node in Documentation/de/user/simultaneous.itely
+#. @unnumberedsubsubsec in Documentation/de/user/simultaneous.itely
+msgid "Chorded notes"
+msgstr ""
+
+#. @node in Documentation/user/simultaneous.itely
+#. @unnumberedsubsubsec in Documentation/user/simultaneous.itely
+#. @node in Documentation/es/user/simultaneous.itely
+#. @unnumberedsubsubsec in Documentation/es/user/simultaneous.itely
+#. @node in Documentation/de/user/simultaneous.itely
+#. @unnumberedsubsubsec in Documentation/de/user/simultaneous.itely
+msgid "Simultaneous expressions"
+msgstr ""
+
+#. @node in Documentation/user/simultaneous.itely
+#. @unnumberedsubsubsec in Documentation/user/simultaneous.itely
+#. @node in Documentation/fr/user/simultaneous.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/simultaneous.itely
+#. @node in Documentation/es/user/simultaneous.itely
+#. @unnumberedsubsubsec in Documentation/es/user/simultaneous.itely
+#. @node in Documentation/de/user/simultaneous.itely
+#. @unnumberedsubsubsec in Documentation/de/user/simultaneous.itely
+msgid "Clusters"
+msgstr ""
+
+#. @rglos in Documentation/user/simultaneous.itely
+#. @rglos in Documentation/es/user/simultaneous.itely
+#. @rglos in Documentation/de/user/simultaneous.itely
+msgid "cluster"
+msgstr ""
+
+#. @node in Documentation/user/simultaneous.itely
+#. @subsection in Documentation/user/simultaneous.itely
+#. @node in Documentation/fr/user/simultaneous.itely
+#. @subsection in Documentation/fr/user/simultaneous.itely
+#. @node in Documentation/es/user/simultaneous.itely
+#. @subsection in Documentation/es/user/simultaneous.itely
+#. @node in Documentation/de/user/simultaneous.itely
+#. @subsection in Documentation/de/user/simultaneous.itely
+msgid "Multiple voices"
+msgstr ""
+
+#. @node in Documentation/user/simultaneous.itely
+#. @unnumberedsubsubsec in Documentation/user/simultaneous.itely
+#. @node in Documentation/es/user/simultaneous.itely
+#. @unnumberedsubsubsec in Documentation/es/user/simultaneous.itely
+#. @node in Documentation/de/user/simultaneous.itely
+#. @unnumberedsubsubsec in Documentation/de/user/simultaneous.itely
+msgid "Single-staff polyphony"
+msgstr ""
+
+#. @node in Documentation/user/simultaneous.itely
+#. @unnumberedsubsubsec in Documentation/user/simultaneous.itely
+#. @node in Documentation/es/user/simultaneous.itely
+#. @unnumberedsubsubsec in Documentation/es/user/simultaneous.itely
+#. @node in Documentation/de/user/simultaneous.itely
+#. @unnumberedsubsubsec in Documentation/de/user/simultaneous.itely
+msgid "Voice styles"
+msgstr ""
+
+#. @node in Documentation/user/simultaneous.itely
+#. @unnumberedsubsubsec in Documentation/user/simultaneous.itely
+#. @node in Documentation/fr/user/simultaneous.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/simultaneous.itely
+#. @node in Documentation/es/user/simultaneous.itely
+#. @unnumberedsubsubsec in Documentation/es/user/simultaneous.itely
+#. @node in Documentation/de/user/simultaneous.itely
+#. @unnumberedsubsubsec in Documentation/de/user/simultaneous.itely
+msgid "Collision resolution"
+msgstr ""
+
+#. @node in Documentation/user/simultaneous.itely
+#. @unnumberedsubsubsec in Documentation/user/simultaneous.itely
+#. @node in Documentation/fr/user/simultaneous.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/simultaneous.itely
+#. @node in Documentation/es/user/simultaneous.itely
+#. @unnumberedsubsubsec in Documentation/es/user/simultaneous.itely
+#. @node in Documentation/de/user/simultaneous.itely
+#. @unnumberedsubsubsec in Documentation/de/user/simultaneous.itely
+msgid "Automatic part combining"
+msgstr ""
+
+#. @rglos in Documentation/user/simultaneous.itely
+#. @rglos in Documentation/es/user/simultaneous.itely
+#. @rglos in Documentation/de/user/simultaneous.itely
+msgid "a due"
+msgstr ""
+
+#. @rglos in Documentation/user/simultaneous.itely
+#. @rglos in Documentation/es/user/simultaneous.itely
+#. @rglos in Documentation/de/user/simultaneous.itely
+#. input/lsr/flamenco-notation.ly:136 (variable)
+#. input/lsr/flamenco-notation.ly:233 (context id)
+msgid "part"
+msgstr ""
+
+#. @node in Documentation/user/simultaneous.itely
+#. @unnumberedsubsubsec in Documentation/user/simultaneous.itely
+#. @node in Documentation/fr/user/simultaneous.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/simultaneous.itely
+#. @node in Documentation/es/user/simultaneous.itely
+#. @unnumberedsubsubsec in Documentation/es/user/simultaneous.itely
+#. @node in Documentation/de/user/simultaneous.itely
+#. @unnumberedsubsubsec in Documentation/de/user/simultaneous.itely
+msgid "Writing music in parallel"
+msgstr ""
+
+#. Documentation/user/staff.itely:1085 (variable)
+#. Documentation/user/staff.itely:1100 (variable)
+#. Documentation/user/staff.itely:1265 (variable)
+msgid "flute"
+msgstr ""
+
+#. Documentation/user/staff.itely:1207 (variable)
+#. Documentation/user/staff.itely:1228 (variable)
+msgid "oboe"
+msgstr ""
+
+#. Documentation/user/staff.itely:1286 (variable)
+#. Documentation/user/staff.itely:1302 (context id)
+msgid "piccolo"
+msgstr ""
+
+#. Documentation/user/staff.itely:1294 (variable)
+#. Documentation/user/staff.itely:1303 (context id)
+msgid "cbassoon"
+msgstr ""
+
+#. @node in Documentation/user/staff.itely
+#. @section in Documentation/user/staff.itely
+#. @node in Documentation/fr/user/staff.itely
+#. @section in Documentation/fr/user/staff.itely
+#. @node in Documentation/es/user/staff.itely
+#. @section in Documentation/es/user/staff.itely
+#. @node in Documentation/de/user/staff.itely
+#. @section in Documentation/de/user/staff.itely
+msgid "Staff notation"
+msgstr ""
+
+#. @node in Documentation/user/staff.itely
+#. @subsection in Documentation/user/staff.itely
+#. @node in Documentation/fr/user/staff.itely
+#. @subsection in Documentation/fr/user/staff.itely
+#. @node in Documentation/es/user/staff.itely
+#. @subsection in Documentation/es/user/staff.itely
+#. @node in Documentation/de/user/staff.itely
+#. @subsection in Documentation/de/user/staff.itely
+msgid "Displaying staves"
+msgstr ""
+
+#. @node in Documentation/user/staff.itely
+#. @unnumberedsubsubsec in Documentation/user/staff.itely
+#. @node in Documentation/fr/user/staff.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/staff.itely
+#. @node in Documentation/es/user/staff.itely
+#. @unnumberedsubsubsec in Documentation/es/user/staff.itely
+#. @node in Documentation/de/user/staff.itely
+#. @unnumberedsubsubsec in Documentation/de/user/staff.itely
+msgid "Instantiating new staves"
+msgstr ""
+
+#. @rglos in Documentation/user/staff.itely
+#. @rglos in Documentation/es/user/staff.itely
+#. @rglos in Documentation/de/user/staff.itely
+msgid "staff"
+msgstr ""
+
+#. @rglos in Documentation/user/staff.itely
+#. @rglos in Documentation/es/user/staff.itely
+#. @rglos in Documentation/de/user/staff.itely
+msgid "staves"
+msgstr ""
+
+#. @node in Documentation/user/staff.itely
+#. @unnumberedsubsubsec in Documentation/user/staff.itely
+#. @node in Documentation/fr/user/staff.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/staff.itely
+#. @node in Documentation/es/user/staff.itely
+#. @unnumberedsubsubsec in Documentation/es/user/staff.itely
+#. @node in Documentation/de/user/staff.itely
+#. @unnumberedsubsubsec in Documentation/de/user/staff.itely
+msgid "Grouping staves"
+msgstr ""
+
+#. @rglos in Documentation/user/staff.itely
+#. @rglos in Documentation/es/user/staff.itely
+#. @rglos in Documentation/de/user/staff.itely
+msgid "bracket"
+msgstr ""
+
+#. @rglos in Documentation/user/staff.itely
+#. @rglos in Documentation/es/user/staff.itely
+#. @rglos in Documentation/de/user/staff.itely
+msgid "grand staff"
+msgstr ""
+
+#. @node in Documentation/user/staff.itely
+#. @unnumberedsubsubsec in Documentation/user/staff.itely
+#. @node in Documentation/fr/user/staff.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/staff.itely
+#. @node in Documentation/es/user/staff.itely
+#. @unnumberedsubsubsec in Documentation/es/user/staff.itely
+#. @node in Documentation/de/user/staff.itely
+#. @unnumberedsubsubsec in Documentation/de/user/staff.itely
+msgid "Nested staff groups"
+msgstr ""
+
+#. @node in Documentation/user/staff.itely
+#. @subsection in Documentation/user/staff.itely
+#. @node in Documentation/fr/user/staff.itely
+#. @subsection in Documentation/fr/user/staff.itely
+#. @node in Documentation/es/user/staff.itely
+#. @subsection in Documentation/es/user/staff.itely
+#. @node in Documentation/de/user/staff.itely
+#. @subsection in Documentation/de/user/staff.itely
+msgid "Modifying single staves"
+msgstr ""
+
+#. @node in Documentation/user/staff.itely
+#. @unnumberedsubsubsec in Documentation/user/staff.itely
+#. @node in Documentation/fr/user/staff.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/staff.itely
+#. @node in Documentation/es/user/staff.itely
+#. @unnumberedsubsubsec in Documentation/es/user/staff.itely
+#. @node in Documentation/de/user/staff.itely
+#. @unnumberedsubsubsec in Documentation/de/user/staff.itely
+msgid "Staff symbol"
+msgstr ""
+
+#. @rglos in Documentation/user/staff.itely
+#. @rglos in Documentation/es/user/staff.itely
+#. @rglos in Documentation/de/user/staff.itely
+msgid "line"
+msgstr ""
+
+#. @rglos in Documentation/user/staff.itely
+#. @rglos in Documentation/es/user/staff.itely
+#. @rglos in Documentation/de/user/staff.itely
+msgid "ledger line"
+msgstr ""
+
+#. @node in Documentation/user/staff.itely
+#. @unnumberedsubsubsec in Documentation/user/staff.itely
+#. @node in Documentation/fr/user/staff.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/staff.itely
+#. @node in Documentation/es/user/staff.itely
+#. @unnumberedsubsubsec in Documentation/es/user/staff.itely
+#. @node in Documentation/de/user/staff.itely
+#. @unnumberedsubsubsec in Documentation/de/user/staff.itely
+msgid "Ossia staves"
+msgstr ""
+
+#. @rglos in Documentation/user/staff.itely
+#. @rglos in Documentation/es/user/staff.itely
+#. @rglos in Documentation/de/user/staff.itely
+msgid "Frenched staff"
+msgstr ""
+
+#. @node in Documentation/user/staff.itely
+#. @unnumberedsubsubsec in Documentation/user/staff.itely
+#. @node in Documentation/fr/user/staff.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/staff.itely
+#. @node in Documentation/es/user/staff.itely
+#. @unnumberedsubsubsec in Documentation/es/user/staff.itely
+#. @node in Documentation/de/user/staff.itely
+#. @unnumberedsubsubsec in Documentation/de/user/staff.itely
+msgid "Hiding staves"
+msgstr ""
+
+#. @node in Documentation/user/staff.itely
+#. @subsection in Documentation/user/staff.itely
+#. @node in Documentation/fr/user/staff.itely
+#. @subsection in Documentation/fr/user/staff.itely
+#. @node in Documentation/es/user/staff.itely
+#. @subsection in Documentation/es/user/staff.itely
+#. @node in Documentation/de/user/staff.itely
+#. @subsection in Documentation/de/user/staff.itely
+msgid "Writing parts"
+msgstr ""
+
+#. @node in Documentation/user/staff.itely
+#. @unnumberedsubsubsec in Documentation/user/staff.itely
+#. @node in Documentation/fr/user/staff.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/staff.itely
+#. @node in Documentation/es/user/staff.itely
+#. @unnumberedsubsubsec in Documentation/es/user/staff.itely
+#. @node in Documentation/de/user/staff.itely
+#. @unnumberedsubsubsec in Documentation/de/user/staff.itely
+msgid "Metronome marks"
+msgstr ""
+
+#. @rglos in Documentation/user/staff.itely
+#. @rglos in Documentation/es/user/staff.itely
+#. @rglos in Documentation/de/user/staff.itely
+msgid "metronome"
+msgstr ""
+
+#. @rglos in Documentation/user/staff.itely
+#. @rglos in Documentation/es/user/staff.itely
+#. @rglos in Documentation/de/user/staff.itely
+msgid "metronomic indication"
+msgstr ""
+
+#. @rglos in Documentation/user/staff.itely
+#. @rglos in Documentation/es/user/staff.itely
+#. @rglos in Documentation/de/user/staff.itely
+msgid "tempo indication"
+msgstr ""
+
+#. @rglos in Documentation/user/staff.itely
+#. @rglos in Documentation/es/user/staff.itely
+#. @rglos in Documentation/de/user/staff.itely
+msgid "metronome mark"
+msgstr ""
+
+#. @node in Documentation/user/staff.itely
+#. @unnumberedsubsubsec in Documentation/user/staff.itely
+#. @unnumberedsubsubsec in Documentation/user/input.itely
+#. @node in Documentation/fr/user/staff.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/staff.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/input.itely
+#. @node in Documentation/es/user/staff.itely
+#. @unnumberedsubsubsec in Documentation/es/user/staff.itely
+#. @unnumberedsubsubsec in Documentation/es/user/input.itely
+#. @node in Documentation/de/user/staff.itely
+#. @unnumberedsubsubsec in Documentation/de/user/staff.itely
+#. @unnumberedsubsubsec in Documentation/de/user/input.itely
+msgid "Instrument names"
+msgstr ""
+
+#. @node in Documentation/user/staff.itely
+#. @unnumberedsubsubsec in Documentation/user/staff.itely
+#. @node in Documentation/fr/user/staff.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/staff.itely
+#. @node in Documentation/es/user/staff.itely
+#. @unnumberedsubsubsec in Documentation/es/user/staff.itely
+#. @node in Documentation/de/user/staff.itely
+#. @unnumberedsubsubsec in Documentation/de/user/staff.itely
+msgid "Quoting other voices"
+msgstr ""
+
+#. @node in Documentation/user/staff.itely
+#. @unnumberedsubsubsec in Documentation/user/staff.itely
+#. @node in Documentation/fr/user/staff.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/staff.itely
+#. @node in Documentation/es/user/staff.itely
+#. @unnumberedsubsubsec in Documentation/es/user/staff.itely
+#. @node in Documentation/de/user/staff.itely
+#. @unnumberedsubsubsec in Documentation/de/user/staff.itely
+msgid "Formatting cue notes"
+msgstr ""
+
+#. Documentation/user/editorial.itely:326 (comment)
+msgid "this is deliberate nonsense; note that the stems remain black"
+msgstr ""
+
+#. @node in Documentation/user/editorial.itely
+#. @section in Documentation/user/editorial.itely
+#. @node in Documentation/fr/user/editorial.itely
+#. @section in Documentation/fr/user/editorial.itely
+#. @node in Documentation/es/user/editorial.itely
+#. @section in Documentation/es/user/editorial.itely
+#. @node in Documentation/de/user/editorial.itely
+#. @section in Documentation/de/user/editorial.itely
+msgid "Editorial annotations"
+msgstr ""
+
+#. @node in Documentation/user/editorial.itely
+#. @subsection in Documentation/user/editorial.itely
+#. @node in Documentation/fr/user/editorial.itely
+#. @subsection in Documentation/fr/user/editorial.itely
+#. @node in Documentation/es/user/editorial.itely
+#. @subsection in Documentation/es/user/editorial.itely
+#. @node in Documentation/de/user/editorial.itely
+#. @subsection in Documentation/de/user/editorial.itely
+msgid "Inside the staff"
+msgstr ""
+
+#. @node in Documentation/user/editorial.itely
+#. @unnumberedsubsubsec in Documentation/user/editorial.itely
+#. @node in Documentation/fr/user/editorial.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/editorial.itely
+#. @node in Documentation/es/user/editorial.itely
+#. @unnumberedsubsubsec in Documentation/es/user/editorial.itely
+#. @node in Documentation/de/user/editorial.itely
+#. @unnumberedsubsubsec in Documentation/de/user/editorial.itely
+msgid "Selecting notation font size"
+msgstr ""
+
+#. @node in Documentation/user/editorial.itely
+#. @unnumberedsubsubsec in Documentation/user/editorial.itely
+#. @node in Documentation/fr/user/editorial.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/editorial.itely
+#. @node in Documentation/es/user/editorial.itely
+#. @unnumberedsubsubsec in Documentation/es/user/editorial.itely
+#. @node in Documentation/de/user/editorial.itely
+#. @unnumberedsubsubsec in Documentation/de/user/editorial.itely
+msgid "Fingering instructions"
+msgstr ""
+
+#. @node in Documentation/user/editorial.itely
+#. @unnumberedsubsubsec in Documentation/user/editorial.itely
+#. @node in Documentation/fr/user/editorial.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/editorial.itely
+#. @node in Documentation/es/user/editorial.itely
+#. @unnumberedsubsubsec in Documentation/es/user/editorial.itely
+#. @node in Documentation/de/user/editorial.itely
+#. @unnumberedsubsubsec in Documentation/de/user/editorial.itely
+msgid "Hidden notes"
+msgstr ""
+
+#. @node in Documentation/user/editorial.itely
+#. @unnumberedsubsubsec in Documentation/user/editorial.itely
+#. @node in Documentation/fr/user/editorial.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/editorial.itely
+#. @node in Documentation/es/user/editorial.itely
+#. @unnumberedsubsubsec in Documentation/es/user/editorial.itely
+#. @node in Documentation/de/user/editorial.itely
+#. @unnumberedsubsubsec in Documentation/de/user/editorial.itely
+msgid "Coloring objects"
+msgstr ""
+
+#. @node in Documentation/user/editorial.itely
+#. @unnumberedsubsubsec in Documentation/user/editorial.itely
+#. @node in Documentation/fr/user/editorial.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/editorial.itely
+#. @node in Documentation/es/user/editorial.itely
+#. @unnumberedsubsubsec in Documentation/es/user/editorial.itely
+#. @node in Documentation/de/user/editorial.itely
+#. @unnumberedsubsubsec in Documentation/de/user/editorial.itely
+msgid "Parentheses"
+msgstr ""
+
+#. @node in Documentation/user/editorial.itely
+#. @unnumberedsubsubsec in Documentation/user/editorial.itely
+#. @node in Documentation/fr/user/editorial.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/editorial.itely
+#. @node in Documentation/es/user/editorial.itely
+#. @unnumberedsubsubsec in Documentation/es/user/editorial.itely
+#. @node in Documentation/de/user/editorial.itely
+#. @unnumberedsubsubsec in Documentation/de/user/editorial.itely
+msgid "Stems"
+msgstr ""
+
+#. @node in Documentation/user/editorial.itely
+#. @subsection in Documentation/user/editorial.itely
+#. @node in Documentation/fr/user/editorial.itely
+#. @subsection in Documentation/fr/user/editorial.itely
+#. @node in Documentation/es/user/editorial.itely
+#. @subsection in Documentation/es/user/editorial.itely
+#. @node in Documentation/de/user/editorial.itely
+#. @subsection in Documentation/de/user/editorial.itely
+msgid "Outside the staff"
+msgstr ""
+
+#. @node in Documentation/user/editorial.itely
+#. @unnumberedsubsubsec in Documentation/user/editorial.itely
+#. @node in Documentation/fr/user/editorial.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/editorial.itely
+#. @node in Documentation/es/user/editorial.itely
+#. @unnumberedsubsubsec in Documentation/es/user/editorial.itely
+#. @node in Documentation/de/user/editorial.itely
+#. @unnumberedsubsubsec in Documentation/de/user/editorial.itely
+msgid "Balloon help"
+msgstr ""
+
+#. @node in Documentation/user/editorial.itely
+#. @unnumberedsubsubsec in Documentation/user/editorial.itely
+#. @node in Documentation/fr/user/editorial.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/editorial.itely
+#. @node in Documentation/es/user/editorial.itely
+#. @unnumberedsubsubsec in Documentation/es/user/editorial.itely
+#. @node in Documentation/de/user/editorial.itely
+#. @unnumberedsubsubsec in Documentation/de/user/editorial.itely
+msgid "Grid lines"
+msgstr ""
+
+#. @node in Documentation/user/editorial.itely
+#. @unnumberedsubsubsec in Documentation/user/editorial.itely
+#. @node in Documentation/fr/user/editorial.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/editorial.itely
+#. @node in Documentation/es/user/editorial.itely
+#. @unnumberedsubsubsec in Documentation/es/user/editorial.itely
+#. @node in Documentation/de/user/editorial.itely
+#. @unnumberedsubsubsec in Documentation/de/user/editorial.itely
+msgid "Analysis brackets"
+msgstr ""
+
+#. Documentation/user/text.itely:421 (variable)
+msgid "allegro"
+msgstr ""
+
+#. @node in Documentation/user/text.itely
+#. @section in Documentation/user/text.itely
+#. @node in Documentation/fr/user/text.itely
+#. @section in Documentation/fr/user/text.itely
+#. @node in Documentation/es/user/text.itely
+#. @section in Documentation/es/user/text.itely
+#. @node in Documentation/de/user/text.itely
+#. @section in Documentation/de/user/text.itely
+msgid "Text"
+msgstr ""
+
+#. @node in Documentation/user/text.itely
+#. @subsection in Documentation/user/text.itely
+#. @node in Documentation/fr/user/text.itely
+#. @subsection in Documentation/fr/user/text.itely
+#. @node in Documentation/es/user/text.itely
+#. @subsection in Documentation/es/user/text.itely
+#. @node in Documentation/de/user/text.itely
+#. @subsection in Documentation/de/user/text.itely
+msgid "Writing text"
+msgstr ""
+
+#. @node in Documentation/user/text.itely
+#. @unnumberedsubsubsec in Documentation/user/text.itely
+#. @node in Documentation/fr/user/text.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/text.itely
+#. @node in Documentation/es/user/text.itely
+#. @unnumberedsubsubsec in Documentation/es/user/text.itely
+#. @node in Documentation/de/user/text.itely
+#. @unnumberedsubsubsec in Documentation/de/user/text.itely
+msgid "Text scripts"
+msgstr ""
+
+#. @node in Documentation/user/text.itely
+#. @unnumberedsubsubsec in Documentation/user/text.itely
+#. @node in Documentation/fr/user/text.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/text.itely
+#. @node in Documentation/es/user/text.itely
+#. @unnumberedsubsubsec in Documentation/es/user/text.itely
+#. @node in Documentation/de/user/text.itely
+#. @unnumberedsubsubsec in Documentation/de/user/text.itely
+msgid "Text spanners"
+msgstr ""
+
+#. @node in Documentation/user/text.itely
+#. @unnumberedsubsubsec in Documentation/user/text.itely
+#. @node in Documentation/fr/user/text.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/text.itely
+#. @node in Documentation/es/user/text.itely
+#. @unnumberedsubsubsec in Documentation/es/user/text.itely
+#. @node in Documentation/de/user/text.itely
+#. @unnumberedsubsubsec in Documentation/de/user/text.itely
+msgid "Text marks"
+msgstr ""
+
+#. @node in Documentation/user/text.itely
+#. @unnumberedsubsubsec in Documentation/user/text.itely
+#. @node in Documentation/es/user/text.itely
+#. @unnumberedsubsubsec in Documentation/es/user/text.itely
+#. @node in Documentation/de/user/text.itely
+#. @unnumberedsubsubsec in Documentation/de/user/text.itely
+msgid "Separate text"
+msgstr ""
+
+#. @node in Documentation/user/text.itely
+#. @subsection in Documentation/user/text.itely
+#. @node in Documentation/fr/user/text.itely
+#. @subsection in Documentation/fr/user/text.itely
+#. @node in Documentation/es/user/text.itely
+#. @subsection in Documentation/es/user/text.itely
+#. @node in Documentation/de/user/text.itely
+#. @subsection in Documentation/de/user/text.itely
+msgid "Formatting text"
+msgstr ""
+
+#. @node in Documentation/user/text.itely
+#. @unnumberedsubsubsec in Documentation/user/text.itely
+#. @node in Documentation/fr/user/text.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/text.itely
+#. @node in Documentation/es/user/text.itely
+#. @unnumberedsubsubsec in Documentation/es/user/text.itely
+#. @node in Documentation/de/user/text.itely
+#. @unnumberedsubsubsec in Documentation/de/user/text.itely
+msgid "Text markup introduction"
+msgstr ""
+
+#. @node in Documentation/user/text.itely
+#. @unnumberedsubsubsec in Documentation/user/text.itely
+#. @node in Documentation/es/user/text.itely
+#. @unnumberedsubsubsec in Documentation/es/user/text.itely
+#. @node in Documentation/de/user/text.itely
+#. @unnumberedsubsubsec in Documentation/de/user/text.itely
+msgid "Selecting font and font size"
+msgstr ""
+
+#. @node in Documentation/user/text.itely
+#. @unnumberedsubsubsec in Documentation/user/text.itely
+#. @node in Documentation/es/user/text.itely
+#. @unnumberedsubsubsec in Documentation/es/user/text.itely
+#. @node in Documentation/de/user/text.itely
+#. @unnumberedsubsubsec in Documentation/de/user/text.itely
+msgid "Text alignment"
+msgstr ""
+
+#. @node in Documentation/user/text.itely
+#. @unnumberedsubsubsec in Documentation/user/text.itely
+#. @node in Documentation/es/user/text.itely
+#. @unnumberedsubsubsec in Documentation/es/user/text.itely
+#. @node in Documentation/de/user/text.itely
+#. @unnumberedsubsubsec in Documentation/de/user/text.itely
+msgid "Graphic notation inside markup"
+msgstr ""
+
+#. @node in Documentation/user/text.itely
+#. @unnumberedsubsubsec in Documentation/user/text.itely
+#. @node in Documentation/es/user/text.itely
+#. @unnumberedsubsubsec in Documentation/es/user/text.itely
+#. @node in Documentation/de/user/text.itely
+#. @unnumberedsubsubsec in Documentation/de/user/text.itely
+msgid "Music notation inside markup"
+msgstr ""
+
+#. @node in Documentation/user/text.itely
+#. @unnumberedsubsubsec in Documentation/user/text.itely
+#. @node in Documentation/es/user/text.itely
+#. @unnumberedsubsubsec in Documentation/es/user/text.itely
+#. @node in Documentation/de/user/text.itely
+#. @unnumberedsubsubsec in Documentation/de/user/text.itely
+msgid "Multi-page markup"
+msgstr ""
+
+#. @node in Documentation/user/text.itely
+#. @subsection in Documentation/user/text.itely
+#. @node in Documentation/fr/user/text.itely
+#. @subsection in Documentation/fr/user/text.itely
+#. @node in Documentation/es/user/text.itely
+#. @subsection in Documentation/es/user/text.itely
+#. @node in Documentation/de/user/text.itely
+#. @subsection in Documentation/de/user/text.itely
+msgid "Fonts"
+msgstr ""
+
+#. @node in Documentation/user/text.itely
+#. @unnumberedsubsubsec in Documentation/user/text.itely
+#. @node in Documentation/es/user/text.itely
+#. @unnumberedsubsubsec in Documentation/es/user/text.itely
+#. @node in Documentation/de/user/text.itely
+#. @unnumberedsubsubsec in Documentation/de/user/text.itely
+msgid "Fonts explained"
+msgstr ""
+
+#. @node in Documentation/user/text.itely
+#. @unnumberedsubsubsec in Documentation/user/text.itely
+#. @node in Documentation/es/user/text.itely
+#. @unnumberedsubsubsec in Documentation/es/user/text.itely
+#. @node in Documentation/de/user/text.itely
+#. @unnumberedsubsubsec in Documentation/de/user/text.itely
+msgid "Single entry fonts"
+msgstr ""
+
+#. @node in Documentation/user/text.itely
+#. @unnumberedsubsubsec in Documentation/user/text.itely
+#. @node in Documentation/es/user/text.itely
+#. @unnumberedsubsubsec in Documentation/es/user/text.itely
+#. @node in Documentation/de/user/text.itely
+#. @unnumberedsubsubsec in Documentation/de/user/text.itely
+msgid "Entire document fonts"
+msgstr ""
+
+#. @node in Documentation/user/specialist.itely
+#. @chapter in Documentation/user/specialist.itely
+#. @node in Documentation/fr/user/specialist.itely
+#. @chapter in Documentation/fr/user/specialist.itely
+#. @node in Documentation/es/user/specialist.itely
+#. @chapter in Documentation/es/user/specialist.itely
+#. @node in Documentation/de/user/specialist.itely
+#. @chapter in Documentation/de/user/specialist.itely
+msgid "Specialist notation"
+msgstr ""
+
+#. Documentation/user/vocal.itely:512 (comment)
+msgid "not recommended: left aligns syllables"
+msgstr ""
+
+#. Documentation/user/vocal.itely:515 (comment)
+msgid "wrong: durations needed"
+msgstr ""
+
+#. Documentation/user/vocal.itely:518 (comment)
+msgid "correct"
+msgstr ""
+
+#. Documentation/user/vocal.itely:667 (context id)
+msgid "lala"
+msgstr ""
+
+#. Documentation/user/vocal.itely:808 (context id)
+msgid "splitpart"
+msgstr ""
+
+#. Documentation/user/vocal.itely:853 (variable)
+msgid "voice"
+msgstr ""
+
+#. Documentation/user/vocal.itely:860 (variable)
+#. input/lsr/formatting-lyrics-syllables.ly:22 (variable)
+msgid "lyr"
+msgstr ""
+
+#. Documentation/user/vocal.itely:1059 (context id)
+msgid "tune"
+msgstr ""
+
+#. Documentation/user/vocal.itely:1101 (context id)
+msgid "lahlah"
+msgstr ""
+
+#. Documentation/user/vocal.itely:1284 (comment)
+msgid "moves the column off the left margin;"
+msgstr ""
+
+#. Documentation/user/vocal.itely:1285 (comment)
+msgid "can be removed if space on the page is tight"
+msgstr ""
+
+#. Documentation/user/vocal.itely:1293 (comment)
+#. Documentation/user/vocal.itely:1311 (comment)
+msgid "adds vertical spacing between verses"
+msgstr ""
+
+#. Documentation/user/vocal.itely:1301 (comment)
+msgid "adds horizontal spacing between columns;"
+msgstr ""
+
+#. Documentation/user/vocal.itely:1302 (comment)
+msgid "if they are still too close, add more \\\" \\\" pairs"
+msgstr ""
+
+#. Documentation/user/vocal.itely:1303 (comment)
+msgid "until the result looks good"
+msgstr ""
+
+#. Documentation/user/vocal.itely:1319 (comment)
+msgid "gives some extra space on the right margin;"
+msgstr ""
+
+#. Documentation/user/vocal.itely:1320 (comment)
+msgid "can be removed if page space is tight"
+msgstr ""
+
+#. @node in Documentation/user/vocal.itely
+#. @section in Documentation/user/vocal.itely
+#. @node in Documentation/fr/user/vocal.itely
+#. @section in Documentation/fr/user/vocal.itely
+#. @node in Documentation/es/user/vocal.itely
+#. @section in Documentation/es/user/vocal.itely
+#. @node in Documentation/de/user/vocal.itely
+#. @section in Documentation/de/user/vocal.itely
+msgid "Vocal music"
+msgstr ""
+
+#. @node in Documentation/user/vocal.itely
+#. @subsection in Documentation/user/vocal.itely
+#. @node in Documentation/fr/user/vocal.itely
+#. @subsection in Documentation/fr/user/vocal.itely
+#. @node in Documentation/es/user/vocal.itely
+#. @subsection in Documentation/es/user/vocal.itely
+#. @node in Documentation/de/user/vocal.itely
+#. @subsection in Documentation/de/user/vocal.itely
+msgid "Common notation for vocal music"
+msgstr ""
+
+#. @node in Documentation/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/user/vocal.itely
+#. @node in Documentation/fr/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/vocal.itely
+#. @node in Documentation/es/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/es/user/vocal.itely
+#. @node in Documentation/de/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/de/user/vocal.itely
+msgid "References for vocal music and lyrics"
+msgstr ""
+
+#. @node in Documentation/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/user/vocal.itely
+#. @node in Documentation/fr/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/vocal.itely
+#. @node in Documentation/es/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/es/user/vocal.itely
+#. @node in Documentation/de/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/de/user/vocal.itely
+msgid "Opera"
+msgstr ""
+
+#. @node in Documentation/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/user/vocal.itely
+#. @node in Documentation/fr/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/vocal.itely
+#. @node in Documentation/es/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/es/user/vocal.itely
+#. @node in Documentation/de/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/de/user/vocal.itely
+msgid "Song books"
+msgstr ""
+
+#. @node in Documentation/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/user/vocal.itely
+#. @node in Documentation/fr/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/vocal.itely
+#. @node in Documentation/es/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/es/user/vocal.itely
+#. @node in Documentation/de/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/de/user/vocal.itely
+msgid "Spoken music"
+msgstr ""
+
+#. @node in Documentation/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/user/vocal.itely
+#. @node in Documentation/fr/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/vocal.itely
+#. @node in Documentation/es/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/es/user/vocal.itely
+#. @node in Documentation/de/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/de/user/vocal.itely
+msgid "Chants"
+msgstr ""
+
+#. @node in Documentation/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/user/vocal.itely
+#. @node in Documentation/fr/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/vocal.itely
+#. @node in Documentation/es/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/es/user/vocal.itely
+#. @node in Documentation/de/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/de/user/vocal.itely
+msgid "Ancient vocal music"
+msgstr ""
+
+#. @node in Documentation/user/vocal.itely
+#. @subsection in Documentation/user/vocal.itely
+#. @node in Documentation/fr/user/vocal.itely
+#. @subsection in Documentation/fr/user/vocal.itely
+#. @node in Documentation/es/user/vocal.itely
+#. @subsection in Documentation/es/user/vocal.itely
+#. @node in Documentation/de/user/vocal.itely
+#. @subsection in Documentation/de/user/vocal.itely
+msgid "Entering lyrics"
+msgstr ""
+
+#. @node in Documentation/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/user/vocal.itely
+#. @node in Documentation/fr/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/vocal.itely
+#. @node in Documentation/es/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/es/user/vocal.itely
+#. @node in Documentation/de/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/de/user/vocal.itely
+msgid "Lyrics explained"
+msgstr ""
+
+#. @node in Documentation/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/user/vocal.itely
+#. @node in Documentation/fr/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/vocal.itely
+#. @node in Documentation/es/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/es/user/vocal.itely
+#. @node in Documentation/de/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/de/user/vocal.itely
+msgid "Working with lyrics and variables"
+msgstr ""
+
+#. @node in Documentation/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/user/vocal.itely
+#. @node in Documentation/fr/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/vocal.itely
+#. @node in Documentation/es/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/es/user/vocal.itely
+#. @node in Documentation/de/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/de/user/vocal.itely
+msgid "Automatic syllable durations"
+msgstr ""
+
+#. @node in Documentation/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/user/vocal.itely
+#. @node in Documentation/fr/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/vocal.itely
+#. @node in Documentation/es/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/es/user/vocal.itely
+#. @node in Documentation/de/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/de/user/vocal.itely
+msgid "Manual syllable durations"
+msgstr ""
+
+#. @node in Documentation/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/user/vocal.itely
+#. @node in Documentation/fr/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/vocal.itely
+#. @node in Documentation/es/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/es/user/vocal.itely
+#. @node in Documentation/de/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/de/user/vocal.itely
+msgid "Multiple syllables to one note"
+msgstr ""
+
+#. @node in Documentation/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/user/vocal.itely
+#. @node in Documentation/fr/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/vocal.itely
+#. @node in Documentation/es/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/es/user/vocal.itely
+#. @node in Documentation/de/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/de/user/vocal.itely
+msgid "Multiple notes to one syllable"
+msgstr ""
+
+#. @node in Documentation/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/user/vocal.itely
+#. @node in Documentation/fr/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/vocal.itely
+#. @node in Documentation/es/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/es/user/vocal.itely
+#. @node in Documentation/de/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/de/user/vocal.itely
+msgid "Skipping notes"
+msgstr ""
+
+#. @node in Documentation/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/user/vocal.itely
+#. @node in Documentation/fr/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/vocal.itely
+#. @node in Documentation/es/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/es/user/vocal.itely
+#. @node in Documentation/de/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/de/user/vocal.itely
+msgid "Extenders and hyphens"
+msgstr ""
+
+#. @node in Documentation/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/user/vocal.itely
+#. @node in Documentation/fr/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/vocal.itely
+#. @node in Documentation/es/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/es/user/vocal.itely
+#. @node in Documentation/de/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/de/user/vocal.itely
+msgid "Lyrics and repeats"
+msgstr ""
+
+#. @node in Documentation/user/vocal.itely
+#. @subsection in Documentation/user/vocal.itely
+#. @node in Documentation/fr/user/vocal.itely
+#. @subsection in Documentation/fr/user/vocal.itely
+#. @node in Documentation/es/user/vocal.itely
+#. @subsection in Documentation/es/user/vocal.itely
+#. @node in Documentation/de/user/vocal.itely
+#. @subsection in Documentation/de/user/vocal.itely
+msgid "Specific uses of lyrics"
+msgstr ""
+
+#. @node in Documentation/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/user/vocal.itely
+#. @node in Documentation/fr/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/vocal.itely
+#. @node in Documentation/es/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/es/user/vocal.itely
+#. @node in Documentation/de/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/de/user/vocal.itely
+msgid "Divisi lyrics"
+msgstr ""
+
+#. @node in Documentation/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/user/vocal.itely
+#. @node in Documentation/fr/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/vocal.itely
+#. @node in Documentation/es/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/es/user/vocal.itely
+#. @node in Documentation/de/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/de/user/vocal.itely
+msgid "Lyrics independent of notes"
+msgstr ""
+
+#. @node in Documentation/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/user/vocal.itely
+#. @node in Documentation/fr/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/vocal.itely
+#. @node in Documentation/es/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/es/user/vocal.itely
+#. @node in Documentation/de/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/de/user/vocal.itely
+msgid "Spacing out syllables"
+msgstr ""
+
+#. @node in Documentation/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/user/vocal.itely
+#. @node in Documentation/fr/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/vocal.itely
+#. @node in Documentation/es/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/es/user/vocal.itely
+#. @node in Documentation/de/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/de/user/vocal.itely
+msgid "Centering lyrics between staves"
+msgstr ""
+
+#. @node in Documentation/user/vocal.itely
+#. @subsection in Documentation/user/vocal.itely
+#. @node in Documentation/fr/user/vocal.itely
+#. @subsection in Documentation/fr/user/vocal.itely
+#. @node in Documentation/es/user/vocal.itely
+#. @subsection in Documentation/es/user/vocal.itely
+#. @node in Documentation/de/user/vocal.itely
+#. @subsection in Documentation/de/user/vocal.itely
+msgid "Stanzas"
+msgstr ""
+
+#. @node in Documentation/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/user/vocal.itely
+#. @node in Documentation/fr/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/vocal.itely
+#. @node in Documentation/es/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/es/user/vocal.itely
+#. @node in Documentation/de/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/de/user/vocal.itely
+msgid "Adding stanza numbers"
+msgstr ""
+
+#. @node in Documentation/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/user/vocal.itely
+#. @node in Documentation/fr/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/vocal.itely
+#. @node in Documentation/es/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/es/user/vocal.itely
+#. @node in Documentation/de/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/de/user/vocal.itely
+msgid "Adding dynamics marks to stanzas"
+msgstr ""
+
+#. @node in Documentation/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/user/vocal.itely
+#. @node in Documentation/fr/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/vocal.itely
+#. @node in Documentation/es/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/es/user/vocal.itely
+#. @node in Documentation/de/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/de/user/vocal.itely
+msgid "Adding singers' names to stanzas"
+msgstr ""
+
+#. @node in Documentation/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/user/vocal.itely
+#. @node in Documentation/fr/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/vocal.itely
+#. @node in Documentation/es/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/es/user/vocal.itely
+#. @node in Documentation/de/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/de/user/vocal.itely
+msgid "Stanzas with different rhythms"
+msgstr ""
+
+#. @subsubheading in Documentation/user/vocal.itely
+#. @subsubheading in Documentation/es/user/vocal.itely
+msgid "Ignoring melismata"
+msgstr ""
+
+#. @subsubheading in Documentation/user/vocal.itely
+#. @subsubheading in Documentation/es/user/vocal.itely
+#. @subsubheading in Documentation/de/user/vocal.itely
+msgid "Switching to an alternative melody"
+msgstr ""
+
+#. @node in Documentation/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/user/vocal.itely
+#. @node in Documentation/fr/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/vocal.itely
+#. @node in Documentation/es/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/es/user/vocal.itely
+#. @node in Documentation/de/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/de/user/vocal.itely
+msgid "Printing stanzas at the end"
+msgstr ""
+
+#. @node in Documentation/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/user/vocal.itely
+#. @node in Documentation/fr/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/vocal.itely
+#. @node in Documentation/es/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/es/user/vocal.itely
+#. @node in Documentation/de/user/vocal.itely
+#. @unnumberedsubsubsec in Documentation/de/user/vocal.itely
+msgid "Printing stanzas at the end in multiple columns"
+msgstr ""
+
+#. Documentation/user/keyboards.itely:187 (comment)
+msgid "keep staff alive"
+msgstr ""
+
+#. Documentation/user/keyboards.itely:275 (context id)
+msgid "melOne"
+msgstr ""
+
+#. Documentation/user/keyboards.itely:344 (context id)
+#. Documentation/user/fretted-strings.itely:247 (context id)
+#. input/lsr/adding-fingerings-to-tablatures.ly:24 (variable)
+#. input/lsr/jazz-combo-template.ly:205 (context id)
+#. input/lsr/jazz-combo-template.ly:214 (context id)
+msgid "two"
+msgstr ""
+
+#. Documentation/user/keyboards.itely:398 (comment)
+msgid "stems may overlap the other staff"
+msgstr ""
+
+#. Documentation/user/keyboards.itely:400 (comment)
+msgid "extend the stems to reach other other staff"
+msgstr ""
+
+#. Documentation/user/keyboards.itely:402 (comment)
+msgid "do not print extra flags"
+msgstr ""
+
+#. Documentation/user/keyboards.itely:404 (comment)
+msgid "prevent beaming as needed"
+msgstr ""
+
+#. @node in Documentation/user/keyboards.itely
+#. @section in Documentation/user/keyboards.itely
+#. @node in Documentation/fr/user/keyboards.itely
+#. @section in Documentation/fr/user/keyboards.itely
+#. @node in Documentation/es/user/keyboards.itely
+#. @section in Documentation/es/user/keyboards.itely
+#. @node in Documentation/de/user/keyboards.itely
+#. @section in Documentation/de/user/keyboards.itely
+msgid "Keyboard and other multi-staff instruments"
+msgstr ""
+
+#. @node in Documentation/user/keyboards.itely
+#. @subsection in Documentation/user/keyboards.itely
+#. @node in Documentation/fr/user/keyboards.itely
+#. @subsection in Documentation/fr/user/keyboards.itely
+#. @node in Documentation/es/user/keyboards.itely
+#. @subsection in Documentation/es/user/keyboards.itely
+#. @node in Documentation/de/user/keyboards.itely
+#. @subsection in Documentation/de/user/keyboards.itely
+msgid "Common notation for keyboards"
+msgstr ""
+
+#. @node in Documentation/user/keyboards.itely
+#. @unnumberedsubsubsec in Documentation/user/keyboards.itely
+#. @node in Documentation/fr/user/keyboards.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/keyboards.itely
+#. @node in Documentation/es/user/keyboards.itely
+#. @unnumberedsubsubsec in Documentation/es/user/keyboards.itely
+#. @node in Documentation/de/user/keyboards.itely
+#. @unnumberedsubsubsec in Documentation/de/user/keyboards.itely
+msgid "References for keyboards"
+msgstr ""
+
+#. @node in Documentation/user/keyboards.itely
+#. @unnumberedsubsubsec in Documentation/user/keyboards.itely
+#. @node in Documentation/fr/user/keyboards.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/keyboards.itely
+#. @node in Documentation/es/user/keyboards.itely
+#. @unnumberedsubsubsec in Documentation/es/user/keyboards.itely
+#. @node in Documentation/de/user/keyboards.itely
+#. @unnumberedsubsubsec in Documentation/de/user/keyboards.itely
+msgid "Changing staff manually"
+msgstr ""
+
+#. @node in Documentation/user/keyboards.itely
+#. @unnumberedsubsubsec in Documentation/user/keyboards.itely
+#. @node in Documentation/fr/user/keyboards.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/keyboards.itely
+#. @node in Documentation/es/user/keyboards.itely
+#. @unnumberedsubsubsec in Documentation/es/user/keyboards.itely
+#. @node in Documentation/de/user/keyboards.itely
+#. @unnumberedsubsubsec in Documentation/de/user/keyboards.itely
+msgid "Changing staff automatically"
+msgstr ""
+
+#. @node in Documentation/user/keyboards.itely
+#. @unnumberedsubsubsec in Documentation/user/keyboards.itely
+#. @node in Documentation/fr/user/keyboards.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/keyboards.itely
+#. @node in Documentation/es/user/keyboards.itely
+#. @unnumberedsubsubsec in Documentation/es/user/keyboards.itely
+#. @node in Documentation/de/user/keyboards.itely
+#. @unnumberedsubsubsec in Documentation/de/user/keyboards.itely
+msgid "Staff-change lines"
+msgstr ""
+
+#. @node in Documentation/user/keyboards.itely
+#. @unnumberedsubsubsec in Documentation/user/keyboards.itely
+#. @node in Documentation/fr/user/keyboards.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/keyboards.itely
+#. @node in Documentation/es/user/keyboards.itely
+#. @unnumberedsubsubsec in Documentation/es/user/keyboards.itely
+#. @node in Documentation/de/user/keyboards.itely
+#. @unnumberedsubsubsec in Documentation/de/user/keyboards.itely
+msgid "Cross-staff stems"
+msgstr ""
+
+#. @node in Documentation/user/keyboards.itely
+#. @subsection in Documentation/user/keyboards.itely
+#. @node in Documentation/fr/user/keyboards.itely
+#. @subsection in Documentation/fr/user/keyboards.itely
+#. @node in Documentation/es/user/keyboards.itely
+#. @subsection in Documentation/es/user/keyboards.itely
+#. @node in Documentation/de/user/keyboards.itely
+#. @subsection in Documentation/de/user/keyboards.itely
+msgid "Piano"
+msgstr ""
+
+#. @node in Documentation/user/keyboards.itely
+#. @unnumberedsubsubsec in Documentation/user/keyboards.itely
+#. @node in Documentation/fr/user/keyboards.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/keyboards.itely
+#. @node in Documentation/es/user/keyboards.itely
+#. @unnumberedsubsubsec in Documentation/es/user/keyboards.itely
+#. @node in Documentation/de/user/keyboards.itely
+#. @unnumberedsubsubsec in Documentation/de/user/keyboards.itely
+msgid "Piano pedals"
+msgstr ""
+
+#. @node in Documentation/user/keyboards.itely
+#. @subsection in Documentation/user/keyboards.itely
+#. @node in Documentation/fr/user/keyboards.itely
+#. @subsection in Documentation/fr/user/keyboards.itely
+#. @node in Documentation/es/user/keyboards.itely
+#. @subsection in Documentation/es/user/keyboards.itely
+#. @node in Documentation/de/user/keyboards.itely
+#. @subsection in Documentation/de/user/keyboards.itely
+msgid "Accordion"
+msgstr ""
+
+#. @node in Documentation/user/keyboards.itely
+#. @unnumberedsubsubsec in Documentation/user/keyboards.itely
+#. @node in Documentation/fr/user/keyboards.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/keyboards.itely
+#. @node in Documentation/es/user/keyboards.itely
+#. @unnumberedsubsubsec in Documentation/es/user/keyboards.itely
+#. @node in Documentation/de/user/keyboards.itely
+#. @unnumberedsubsubsec in Documentation/de/user/keyboards.itely
+msgid "Discant symbols"
+msgstr ""
+
+#. @node in Documentation/user/keyboards.itely
+#. @subsection in Documentation/user/keyboards.itely
+#. @node in Documentation/fr/user/keyboards.itely
+#. @subsection in Documentation/fr/user/keyboards.itely
+#. @node in Documentation/es/user/keyboards.itely
+#. @subsection in Documentation/es/user/keyboards.itely
+#. @node in Documentation/de/user/keyboards.itely
+#. @subsection in Documentation/de/user/keyboards.itely
+msgid "Harp"
+msgstr ""
+
+#. @node in Documentation/user/keyboards.itely
+#. @unnumberedsubsubsec in Documentation/user/keyboards.itely
+#. @node in Documentation/fr/user/keyboards.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/keyboards.itely
+#. @node in Documentation/es/user/keyboards.itely
+#. @unnumberedsubsubsec in Documentation/es/user/keyboards.itely
+#. @node in Documentation/de/user/keyboards.itely
+#. @unnumberedsubsubsec in Documentation/de/user/keyboards.itely
+msgid "References for harps"
+msgstr ""
+
+#. @node in Documentation/user/keyboards.itely
+#. @unnumberedsubsubsec in Documentation/user/keyboards.itely
+#. @node in Documentation/fr/user/keyboards.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/keyboards.itely
+#. @node in Documentation/es/user/keyboards.itely
+#. @unnumberedsubsubsec in Documentation/es/user/keyboards.itely
+#. @node in Documentation/de/user/keyboards.itely
+#. @unnumberedsubsubsec in Documentation/de/user/keyboards.itely
+msgid "Harp pedals"
+msgstr ""
+
+#. @node in Documentation/user/unfretted-strings.itely
+#. @section in Documentation/user/unfretted-strings.itely
+#. @node in Documentation/fr/user/unfretted-strings.itely
+#. @section in Documentation/fr/user/unfretted-strings.itely
+#. @node in Documentation/es/user/unfretted-strings.itely
+#. @section in Documentation/es/user/unfretted-strings.itely
+#. @node in Documentation/de/user/unfretted-strings.itely
+#. @section in Documentation/de/user/unfretted-strings.itely
+msgid "Unfretted string instruments"
+msgstr ""
+
+#. @node in Documentation/user/unfretted-strings.itely
+#. @subsection in Documentation/user/unfretted-strings.itely
+#. @node in Documentation/fr/user/unfretted-strings.itely
+#. @subsection in Documentation/fr/user/unfretted-strings.itely
+#. @node in Documentation/es/user/unfretted-strings.itely
+#. @subsection in Documentation/es/user/unfretted-strings.itely
+#. @node in Documentation/de/user/unfretted-strings.itely
+#. @subsection in Documentation/de/user/unfretted-strings.itely
+msgid "Common notation for unfretted strings"
+msgstr ""
+
+#. @node in Documentation/user/unfretted-strings.itely
+#. @unnumberedsubsubsec in Documentation/user/unfretted-strings.itely
+#. @node in Documentation/fr/user/unfretted-strings.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/unfretted-strings.itely
+#. @node in Documentation/es/user/unfretted-strings.itely
+#. @unnumberedsubsubsec in Documentation/es/user/unfretted-strings.itely
+#. @node in Documentation/de/user/unfretted-strings.itely
+#. @unnumberedsubsubsec in Documentation/de/user/unfretted-strings.itely
+msgid "References for unfretted strings"
+msgstr ""
+
+#. @node in Documentation/user/unfretted-strings.itely
+#. @unnumberedsubsubsec in Documentation/user/unfretted-strings.itely
+#. @node in Documentation/fr/user/unfretted-strings.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/unfretted-strings.itely
+#. @node in Documentation/es/user/unfretted-strings.itely
+#. @unnumberedsubsubsec in Documentation/es/user/unfretted-strings.itely
+#. @node in Documentation/de/user/unfretted-strings.itely
+#. @unnumberedsubsubsec in Documentation/de/user/unfretted-strings.itely
+msgid "Bowing indications"
+msgstr ""
+
+#. @node in Documentation/user/unfretted-strings.itely
+#. @unnumberedsubsubsec in Documentation/user/unfretted-strings.itely
+#. @node in Documentation/fr/user/unfretted-strings.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/unfretted-strings.itely
+#. @node in Documentation/es/user/unfretted-strings.itely
+#. @unnumberedsubsubsec in Documentation/es/user/unfretted-strings.itely
+#. @node in Documentation/de/user/unfretted-strings.itely
+#. @unnumberedsubsubsec in Documentation/de/user/unfretted-strings.itely
+msgid "Harmonics"
+msgstr ""
+
+#. @rglos in Documentation/user/unfretted-strings.itely
+#. @rglos in Documentation/es/user/unfretted-strings.itely
+#. @rglos in Documentation/de/user/unfretted-strings.itely
+msgid "harmonics"
+msgstr ""
+
+#. @node in Documentation/user/unfretted-strings.itely
+#. @node in Documentation/es/user/unfretted-strings.itely
+#. @node in Documentation/de/user/unfretted-strings.itely
+#. @unnumberedsubsubsec in Documentation/de/user/unfretted-strings.itely
+msgid "Snap (Bartok) pizzicato"
+msgstr ""
+
+#. @unnumberedsubsubsec in Documentation/user/unfretted-strings.itely
+#. @node in Documentation/fr/user/unfretted-strings.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/unfretted-strings.itely
+#. @unnumberedsubsubsec in Documentation/es/user/unfretted-strings.itely
+msgid "Snap (Bartók) pizzicato"
+msgstr ""
+
+#. Documentation/user/fretted-strings.itely:243 (variable)
+msgid "melodia"
+msgstr ""
+
+#. Documentation/user/fretted-strings.itely:248 (context id)
+msgid "shared"
+msgstr ""
+
+#. Documentation/user/fretted-strings.itely:249 (context id)
+msgid "solo"
+msgstr ""
+
+#. Documentation/user/fretted-strings.itely:326 (variable)
+msgid "mynotes"
+msgstr ""
+
+#. Documentation/user/fretted-strings.itely:453 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:29 (comment)
+msgid "A chord for ukelele"
+msgstr ""
+
+#. Documentation/user/fretted-strings.itely:785 (variable)
+#. Documentation/user/fretted-strings.itely:808 (variable)
+#. Documentation/user/fretted-strings.itely:837 (variable)
+#. Documentation/user/fretted-strings.itely:868 (variable)
+#. Documentation/user/fretted-strings.itely:892 (variable)
+#. Documentation/user/fretted-strings.itely:940 (variable)
+msgid "mychords"
+msgstr ""
+
+#. Documentation/user/fretted-strings.itely:812 (variable)
+msgid "mychordlist"
+msgstr ""
+
+#. Documentation/user/fretted-strings.itely:927 (comment)
+msgid "add a new chord shape"
+msgstr ""
+
+#. Documentation/user/fretted-strings.itely:931 (comment)
+msgid "add some new chords based on the power chord shape"
+msgstr ""
+
+#. @node in Documentation/user/fretted-strings.itely
+#. @section in Documentation/user/fretted-strings.itely
+#. @node in Documentation/fr/user/fretted-strings.itely
+#. @section in Documentation/fr/user/fretted-strings.itely
+#. @node in Documentation/es/user/fretted-strings.itely
+#. @section in Documentation/es/user/fretted-strings.itely
+#. @node in Documentation/de/user/fretted-strings.itely
+#. @section in Documentation/de/user/fretted-strings.itely
+msgid "Fretted string instruments"
+msgstr ""
+
+#. @node in Documentation/user/fretted-strings.itely
+#. @subsection in Documentation/user/fretted-strings.itely
+#. @node in Documentation/fr/user/fretted-strings.itely
+#. @subsection in Documentation/fr/user/fretted-strings.itely
+#. @node in Documentation/es/user/fretted-strings.itely
+#. @subsection in Documentation/es/user/fretted-strings.itely
+#. @node in Documentation/de/user/fretted-strings.itely
+#. @subsection in Documentation/de/user/fretted-strings.itely
+msgid "Common notation for fretted strings"
+msgstr ""
+
+#. @node in Documentation/user/fretted-strings.itely
+#. @unnumberedsubsubsec in Documentation/user/fretted-strings.itely
+#. @node in Documentation/fr/user/fretted-strings.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/fretted-strings.itely
+#. @node in Documentation/es/user/fretted-strings.itely
+#. @unnumberedsubsubsec in Documentation/es/user/fretted-strings.itely
+#. @node in Documentation/de/user/fretted-strings.itely
+#. @unnumberedsubsubsec in Documentation/de/user/fretted-strings.itely
+msgid "References for fretted strings"
+msgstr ""
+
+#. @node in Documentation/user/fretted-strings.itely
+#. @unnumberedsubsubsec in Documentation/user/fretted-strings.itely
+#. @node in Documentation/fr/user/fretted-strings.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/fretted-strings.itely
+#. @node in Documentation/es/user/fretted-strings.itely
+#. @unnumberedsubsubsec in Documentation/es/user/fretted-strings.itely
+#. @node in Documentation/de/user/fretted-strings.itely
+#. @unnumberedsubsubsec in Documentation/de/user/fretted-strings.itely
+msgid "String number indications"
+msgstr ""
+
+#. @node in Documentation/user/fretted-strings.itely
+#. @unnumberedsubsubsec in Documentation/user/fretted-strings.itely
+#. @node in Documentation/fr/user/fretted-strings.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/fretted-strings.itely
+#. @node in Documentation/es/user/fretted-strings.itely
+#. @unnumberedsubsubsec in Documentation/es/user/fretted-strings.itely
+#. @node in Documentation/de/user/fretted-strings.itely
+#. @unnumberedsubsubsec in Documentation/de/user/fretted-strings.itely
+msgid "Default tablatures"
+msgstr ""
+
+#. @node in Documentation/user/fretted-strings.itely
+#. @unnumberedsubsubsec in Documentation/user/fretted-strings.itely
+#. @node in Documentation/fr/user/fretted-strings.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/fretted-strings.itely
+#. @node in Documentation/es/user/fretted-strings.itely
+#. @unnumberedsubsubsec in Documentation/es/user/fretted-strings.itely
+#. @node in Documentation/de/user/fretted-strings.itely
+#. @unnumberedsubsubsec in Documentation/de/user/fretted-strings.itely
+msgid "Custom tablatures"
+msgstr ""
+
+#. @node in Documentation/user/fretted-strings.itely
+#. @unnumberedsubsubsec in Documentation/user/fretted-strings.itely
+#. @node in Documentation/fr/user/fretted-strings.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/fretted-strings.itely
+#. @node in Documentation/es/user/fretted-strings.itely
+#. @unnumberedsubsubsec in Documentation/es/user/fretted-strings.itely
+#. @node in Documentation/de/user/fretted-strings.itely
+#. @unnumberedsubsubsec in Documentation/de/user/fretted-strings.itely
+msgid "Fret diagram markups"
+msgstr ""
+
+#. @node in Documentation/user/fretted-strings.itely
+#. @unnumberedsubsubsec in Documentation/user/fretted-strings.itely
+#. @node in Documentation/fr/user/fretted-strings.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/fretted-strings.itely
+#. @node in Documentation/es/user/fretted-strings.itely
+#. @unnumberedsubsubsec in Documentation/es/user/fretted-strings.itely
+#. @node in Documentation/de/user/fretted-strings.itely
+#. @unnumberedsubsubsec in Documentation/de/user/fretted-strings.itely
+msgid "Predefined fret diagrams"
+msgstr ""
+
+#. @node in Documentation/user/fretted-strings.itely
+#. @unnumberedsubsubsec in Documentation/user/fretted-strings.itely
+#. @node in Documentation/fr/user/fretted-strings.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/fretted-strings.itely
+#. @node in Documentation/es/user/fretted-strings.itely
+#. @unnumberedsubsubsec in Documentation/es/user/fretted-strings.itely
+#. @node in Documentation/de/user/fretted-strings.itely
+#. @unnumberedsubsubsec in Documentation/de/user/fretted-strings.itely
+msgid "Automatic fret diagrams"
+msgstr ""
+
+#. @node in Documentation/user/fretted-strings.itely
+#. @unnumberedsubsubsec in Documentation/user/fretted-strings.itely
+#. @node in Documentation/fr/user/fretted-strings.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/fretted-strings.itely
+#. @node in Documentation/es/user/fretted-strings.itely
+#. @unnumberedsubsubsec in Documentation/es/user/fretted-strings.itely
+#. @node in Documentation/de/user/fretted-strings.itely
+#. @unnumberedsubsubsec in Documentation/de/user/fretted-strings.itely
+msgid "Right-hand fingerings"
+msgstr ""
+
+#. @node in Documentation/user/fretted-strings.itely
+#. @subsection in Documentation/user/fretted-strings.itely
+#. @node in Documentation/fr/user/fretted-strings.itely
+#. @subsection in Documentation/fr/user/fretted-strings.itely
+#. @node in Documentation/es/user/fretted-strings.itely
+#. @subsection in Documentation/es/user/fretted-strings.itely
+#. @node in Documentation/de/user/fretted-strings.itely
+#. @subsection in Documentation/de/user/fretted-strings.itely
+msgid "Guitar"
+msgstr ""
+
+#. @node in Documentation/user/fretted-strings.itely
+#. @unnumberedsubsubsec in Documentation/user/fretted-strings.itely
+#. @node in Documentation/fr/user/fretted-strings.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/fretted-strings.itely
+#. @node in Documentation/es/user/fretted-strings.itely
+#. @unnumberedsubsubsec in Documentation/es/user/fretted-strings.itely
+#. @node in Documentation/de/user/fretted-strings.itely
+#. @unnumberedsubsubsec in Documentation/de/user/fretted-strings.itely
+msgid "Indicating position and barring"
+msgstr ""
+
+#. @node in Documentation/user/fretted-strings.itely
+#. @unnumberedsubsubsec in Documentation/user/fretted-strings.itely
+#. @node in Documentation/fr/user/fretted-strings.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/fretted-strings.itely
+#. @node in Documentation/es/user/fretted-strings.itely
+#. @unnumberedsubsubsec in Documentation/es/user/fretted-strings.itely
+#. @node in Documentation/de/user/fretted-strings.itely
+#. @unnumberedsubsubsec in Documentation/de/user/fretted-strings.itely
+msgid "Indicating harmonics and dampened notes"
+msgstr ""
+
+#. @node in Documentation/user/fretted-strings.itely
+#. @subsection in Documentation/user/fretted-strings.itely
+#. @node in Documentation/fr/user/fretted-strings.itely
+#. @subsection in Documentation/fr/user/fretted-strings.itely
+#. @node in Documentation/es/user/fretted-strings.itely
+#. @subsection in Documentation/es/user/fretted-strings.itely
+#. @node in Documentation/de/user/fretted-strings.itely
+#. @subsection in Documentation/de/user/fretted-strings.itely
+msgid "Banjo"
+msgstr ""
+
+#. @node in Documentation/user/fretted-strings.itely
+#. @unnumberedsubsubsec in Documentation/user/fretted-strings.itely
+#. @node in Documentation/fr/user/fretted-strings.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/fretted-strings.itely
+#. @node in Documentation/es/user/fretted-strings.itely
+#. @unnumberedsubsubsec in Documentation/es/user/fretted-strings.itely
+#. @node in Documentation/de/user/fretted-strings.itely
+#. @unnumberedsubsubsec in Documentation/de/user/fretted-strings.itely
+msgid "Banjo tablatures"
+msgstr ""
+
+#. Documentation/user/percussion.itely:385 (comment)
+msgid "These lines define the position of the woodblocks in the stave;"
+msgstr ""
+
+#. Documentation/user/percussion.itely:386 (comment)
+msgid "if you like, you can change it or you can use special note heads"
+msgstr ""
+
+#. Documentation/user/percussion.itely:387 (comment)
+msgid "for the woodblocks."
+msgstr ""
+
+#. Documentation/user/percussion.itely:391 (variable)
+msgid "woodstaff"
+msgstr ""
+
+#. Documentation/user/percussion.itely:392 (comment)
+msgid "This defines a staff with only two lines."
+msgstr ""
+
+#. Documentation/user/percussion.itely:393 (comment)
+msgid "It also defines the positions of the two lines."
+msgstr ""
+
+#. Documentation/user/percussion.itely:396 (comment)
+msgid "This is neccessary; if not entered, the barline would be too short!"
+msgstr ""
+
+#. Documentation/user/percussion.itely:403 (comment)
+msgid "with this you load your new drum style table"
+msgstr ""
+
+#. Documentation/user/percussion.itely:425 (variable)
+msgid "tambustaff"
+msgstr ""
+
+#. Documentation/user/percussion.itely:439 (comment)
+msgid "the trick with the scaled duration and the shorter rest"
+msgstr ""
+
+#. Documentation/user/percussion.itely:440 (comment)
+msgid "is neccessary for the correct ending of the trill-span!"
+msgstr ""
+
+#. Documentation/user/percussion.itely:451 (variable)
+msgid "tamtamstaff"
+msgstr ""
+
+#. Documentation/user/percussion.itely:473 (variable)
+msgid "bellstaff"
+msgstr ""
+
+#. Documentation/user/percussion.itely:504 (variable)
+msgid "drumsA"
+msgstr ""
+
+#. Documentation/user/percussion.itely:519 (variable)
+msgid "drumsB"
+msgstr ""
+
+#. @node in Documentation/user/percussion.itely
+#. @section in Documentation/user/percussion.itely
+#. @node in Documentation/fr/user/percussion.itely
+#. @section in Documentation/fr/user/percussion.itely
+#. @node in Documentation/es/user/percussion.itely
+#. @section in Documentation/es/user/percussion.itely
+#. @node in Documentation/de/user/percussion.itely
+#. @section in Documentation/de/user/percussion.itely
+msgid "Percussion"
+msgstr ""
+
+#. @node in Documentation/user/percussion.itely
+#. @subsection in Documentation/user/percussion.itely
+#. @node in Documentation/fr/user/percussion.itely
+#. @subsection in Documentation/fr/user/percussion.itely
+#. @node in Documentation/es/user/percussion.itely
+#. @subsection in Documentation/es/user/percussion.itely
+#. @node in Documentation/de/user/percussion.itely
+#. @subsection in Documentation/de/user/percussion.itely
+msgid "Common notation for percussion"
+msgstr ""
+
+#. @node in Documentation/user/percussion.itely
+#. @unnumberedsubsubsec in Documentation/user/percussion.itely
+#. @node in Documentation/fr/user/percussion.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/percussion.itely
+#. @node in Documentation/es/user/percussion.itely
+#. @unnumberedsubsubsec in Documentation/es/user/percussion.itely
+#. @node in Documentation/de/user/percussion.itely
+#. @unnumberedsubsubsec in Documentation/de/user/percussion.itely
+msgid "References for percussion"
+msgstr ""
+
+#. @node in Documentation/user/percussion.itely
+#. @unnumberedsubsubsec in Documentation/user/percussion.itely
+#. @node in Documentation/fr/user/percussion.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/percussion.itely
+#. @node in Documentation/es/user/percussion.itely
+#. @unnumberedsubsubsec in Documentation/es/user/percussion.itely
+#. @node in Documentation/de/user/percussion.itely
+#. @unnumberedsubsubsec in Documentation/de/user/percussion.itely
+msgid "Basic percussion notation"
+msgstr ""
+
+#. @node in Documentation/user/percussion.itely
+#. @unnumberedsubsubsec in Documentation/user/percussion.itely
+#. @node in Documentation/es/user/percussion.itely
+#. @unnumberedsubsubsec in Documentation/es/user/percussion.itely
+#. @node in Documentation/de/user/percussion.itely
+#. @unnumberedsubsubsec in Documentation/de/user/percussion.itely
+msgid "Drum rolls"
+msgstr ""
+
+#. @node in Documentation/user/percussion.itely
+#. @unnumberedsubsubsec in Documentation/user/percussion.itely
+#. @node in Documentation/es/user/percussion.itely
+#. @unnumberedsubsubsec in Documentation/es/user/percussion.itely
+#. @node in Documentation/de/user/percussion.itely
+#. @unnumberedsubsubsec in Documentation/de/user/percussion.itely
+msgid "Pitched percussion"
+msgstr ""
+
+#. @node in Documentation/user/percussion.itely
+#. @unnumberedsubsubsec in Documentation/user/percussion.itely
+#. @node in Documentation/fr/user/percussion.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/percussion.itely
+#. @node in Documentation/es/user/percussion.itely
+#. @unnumberedsubsubsec in Documentation/es/user/percussion.itely
+#. @node in Documentation/de/user/percussion.itely
+#. @unnumberedsubsubsec in Documentation/de/user/percussion.itely
+msgid "Percussion staves"
+msgstr ""
+
+#. @node in Documentation/user/percussion.itely
+#. @unnumberedsubsubsec in Documentation/user/percussion.itely
+#. @node in Documentation/es/user/percussion.itely
+#. @unnumberedsubsubsec in Documentation/es/user/percussion.itely
+#. @node in Documentation/de/user/percussion.itely
+#. @unnumberedsubsubsec in Documentation/de/user/percussion.itely
+msgid "Custom percussion staves"
+msgstr ""
+
+#. @node in Documentation/user/percussion.itely
+#. @unnumberedsubsubsec in Documentation/user/percussion.itely
+#. @node in Documentation/fr/user/percussion.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/percussion.itely
+#. @node in Documentation/es/user/percussion.itely
+#. @unnumberedsubsubsec in Documentation/es/user/percussion.itely
+#. @node in Documentation/de/user/percussion.itely
+#. @unnumberedsubsubsec in Documentation/de/user/percussion.itely
+msgid "Ghost notes"
+msgstr ""
+
+#. @node in Documentation/user/wind.itely
+#. @section in Documentation/user/wind.itely
+#. @node in Documentation/fr/user/wind.itely
+#. @section in Documentation/fr/user/wind.itely
+#. @node in Documentation/es/user/wind.itely
+#. @section in Documentation/es/user/wind.itely
+#. @node in Documentation/de/user/wind.itely
+#. @section in Documentation/de/user/wind.itely
+msgid "Wind instruments"
+msgstr ""
+
+#. @node in Documentation/user/wind.itely
+#. @subsection in Documentation/user/wind.itely
+#. @node in Documentation/fr/user/wind.itely
+#. @subsection in Documentation/fr/user/wind.itely
+#. @node in Documentation/es/user/wind.itely
+#. @subsection in Documentation/es/user/wind.itely
+#. @node in Documentation/de/user/wind.itely
+#. @subsection in Documentation/de/user/wind.itely
+msgid "Common notation for wind instruments"
+msgstr ""
+
+#. @node in Documentation/user/wind.itely
+#. @unnumberedsubsubsec in Documentation/user/wind.itely
+#. @node in Documentation/fr/user/wind.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/wind.itely
+#. @node in Documentation/es/user/wind.itely
+#. @unnumberedsubsubsec in Documentation/es/user/wind.itely
+#. @node in Documentation/de/user/wind.itely
+#. @unnumberedsubsubsec in Documentation/de/user/wind.itely
+msgid "References for wind instruments"
+msgstr ""
+
+#. @node in Documentation/user/wind.itely
+#. @subsection in Documentation/user/wind.itely
+#. @node in Documentation/fr/user/wind.itely
+#. @subsection in Documentation/fr/user/wind.itely
+#. @node in Documentation/es/user/wind.itely
+#. @subsection in Documentation/es/user/wind.itely
+#. @node in Documentation/de/user/wind.itely
+#. @subsection in Documentation/de/user/wind.itely
+msgid "Bagpipes"
+msgstr ""
+
+#. @node in Documentation/user/wind.itely
+#. @unnumberedsubsubsec in Documentation/user/wind.itely
+#. @node in Documentation/fr/user/wind.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/wind.itely
+#. @node in Documentation/es/user/wind.itely
+#. @unnumberedsubsubsec in Documentation/es/user/wind.itely
+#. @node in Documentation/de/user/wind.itely
+#. @unnumberedsubsubsec in Documentation/de/user/wind.itely
+msgid "Bagpipe definitions"
+msgstr ""
+
+#. @node in Documentation/user/wind.itely
+#. @unnumberedsubsubsec in Documentation/user/wind.itely
+#. @node in Documentation/fr/user/wind.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/wind.itely
+#. @node in Documentation/es/user/wind.itely
+#. @unnumberedsubsubsec in Documentation/es/user/wind.itely
+#. @node in Documentation/de/user/wind.itely
+#. @unnumberedsubsubsec in Documentation/de/user/wind.itely
+msgid "Bagpipe example"
+msgstr ""
+
+#. Documentation/user/chords.itely:669 (variable)
+msgid "myChords"
+msgstr ""
+
+#. Documentation/user/chords.itely:999 (comment)
+#. Documentation/user/chords.itely:1020 (comment)
+msgid "Put notes on same Staff as figures"
+msgstr ""
+
+#. Documentation/user/chords.itely:1083 (comment)
+msgid "The extenders are correct here, with the same rhythm as the bass"
+msgstr ""
+
+#. Documentation/user/chords.itely:1095 (comment)
+msgid "The extenders are incorrect here, even though the timing is the same"
+msgstr ""
+
+#. @node in Documentation/user/chords.itely
+#. @section in Documentation/user/chords.itely
+#. @node in Documentation/fr/user/chords.itely
+#. @section in Documentation/fr/user/chords.itely
+#. @node in Documentation/es/user/chords.itely
+#. @section in Documentation/es/user/chords.itely
+#. @node in Documentation/de/user/chords.itely
+#. @section in Documentation/de/user/chords.itely
+msgid "Chord notation"
+msgstr ""
+
+#. @node in Documentation/user/chords.itely
+#. @subsection in Documentation/user/chords.itely
+#. @node in Documentation/fr/user/chords.itely
+#. @subsection in Documentation/fr/user/chords.itely
+#. @node in Documentation/es/user/chords.itely
+#. @subsection in Documentation/es/user/chords.itely
+#. @node in Documentation/de/user/chords.itely
+#. @subsection in Documentation/de/user/chords.itely
+msgid "Chord mode"
+msgstr ""
+
+#. @node in Documentation/user/chords.itely
+#. @unnumberedsubsubsec in Documentation/user/chords.itely
+#. @node in Documentation/fr/user/chords.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/chords.itely
+#. @node in Documentation/es/user/chords.itely
+#. @unnumberedsubsubsec in Documentation/es/user/chords.itely
+#. @node in Documentation/de/user/chords.itely
+#. @unnumberedsubsubsec in Documentation/de/user/chords.itely
+msgid "Chord mode overview"
+msgstr ""
+
+#. @node in Documentation/user/chords.itely
+#. @unnumberedsubsubsec in Documentation/user/chords.itely
+#. @node in Documentation/fr/user/chords.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/chords.itely
+#. @node in Documentation/es/user/chords.itely
+#. @unnumberedsubsubsec in Documentation/es/user/chords.itely
+#. @node in Documentation/de/user/chords.itely
+#. @unnumberedsubsubsec in Documentation/de/user/chords.itely
+msgid "Common chords"
+msgstr ""
+
+#. @node in Documentation/user/chords.itely
+#. @unnumberedsubsubsec in Documentation/user/chords.itely
+#. @node in Documentation/fr/user/chords.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/chords.itely
+#. @node in Documentation/es/user/chords.itely
+#. @unnumberedsubsubsec in Documentation/es/user/chords.itely
+#. @node in Documentation/de/user/chords.itely
+#. @unnumberedsubsubsec in Documentation/de/user/chords.itely
+msgid "Extended and altered chords"
+msgstr ""
+
+#. @node in Documentation/user/chords.itely
+#. @subsection in Documentation/user/chords.itely
+#. @node in Documentation/fr/user/chords.itely
+#. @subsection in Documentation/fr/user/chords.itely
+#. @node in Documentation/es/user/chords.itely
+#. @subsection in Documentation/es/user/chords.itely
+#. @node in Documentation/de/user/chords.itely
+#. @subsection in Documentation/de/user/chords.itely
+msgid "Displaying chords"
+msgstr ""
+
+#. @node in Documentation/user/chords.itely
+#. @unnumberedsubsubsec in Documentation/user/chords.itely
+#. @node in Documentation/fr/user/chords.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/chords.itely
+#. @node in Documentation/es/user/chords.itely
+#. @unnumberedsubsubsec in Documentation/es/user/chords.itely
+#. @node in Documentation/de/user/chords.itely
+#. @unnumberedsubsubsec in Documentation/de/user/chords.itely
+msgid "Printing chord names"
+msgstr ""
+
+#. @node in Documentation/user/chords.itely
+#. @unnumberedsubsubsec in Documentation/user/chords.itely
+#. @node in Documentation/fr/user/chords.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/chords.itely
+#. @node in Documentation/es/user/chords.itely
+#. @unnumberedsubsubsec in Documentation/es/user/chords.itely
+#. @node in Documentation/de/user/chords.itely
+#. @unnumberedsubsubsec in Documentation/de/user/chords.itely
+msgid "Customizing chord names"
+msgstr ""
+
+#. @node in Documentation/user/chords.itely
+#. @subsection in Documentation/user/chords.itely
+#. @node in Documentation/fr/user/chords.itely
+#. @subsection in Documentation/fr/user/chords.itely
+#. @node in Documentation/es/user/chords.itely
+#. @subsection in Documentation/es/user/chords.itely
+#. @node in Documentation/de/user/chords.itely
+#. @subsection in Documentation/de/user/chords.itely
+msgid "Figured bass"
+msgstr ""
+
+#. @node in Documentation/user/chords.itely
+#. @unnumberedsubsubsec in Documentation/user/chords.itely
+#. @node in Documentation/fr/user/chords.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/chords.itely
+#. @node in Documentation/es/user/chords.itely
+#. @unnumberedsubsubsec in Documentation/es/user/chords.itely
+#. @node in Documentation/de/user/chords.itely
+#. @unnumberedsubsubsec in Documentation/de/user/chords.itely
+msgid "Introduction to figured bass"
+msgstr ""
+
+#. @rglos in Documentation/user/chords.itely
+#. @rglos in Documentation/es/user/chords.itely
+#. @rglos in Documentation/de/user/chords.itely
+msgid "figured bass"
+msgstr ""
+
+#. @node in Documentation/user/chords.itely
+#. @unnumberedsubsubsec in Documentation/user/chords.itely
+#. @node in Documentation/fr/user/chords.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/chords.itely
+#. @node in Documentation/es/user/chords.itely
+#. @unnumberedsubsubsec in Documentation/es/user/chords.itely
+#. @node in Documentation/de/user/chords.itely
+#. @unnumberedsubsubsec in Documentation/de/user/chords.itely
+msgid "Entering figured bass"
+msgstr ""
+
+#. @node in Documentation/user/chords.itely
+#. @unnumberedsubsubsec in Documentation/user/chords.itely
+#. @node in Documentation/fr/user/chords.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/chords.itely
+#. @node in Documentation/es/user/chords.itely
+#. @unnumberedsubsubsec in Documentation/es/user/chords.itely
+#. @node in Documentation/de/user/chords.itely
+#. @unnumberedsubsubsec in Documentation/de/user/chords.itely
+msgid "Displaying figured bass"
+msgstr ""
+
+#. Documentation/user/ancient.itely:357 (context id)
+msgid "discantus"
+msgstr ""
+
+#. Documentation/user/ancient.itely:823 (variable)
+msgid "ficta"
+msgstr ""
+
+#. Documentation/user/ancient.itely:976 (context id)
+msgid "cantus"
+msgstr ""
+
+#. Documentation/user/ancient.itely:2399 (variable)
+#. Documentation/user/ancient.itely:2434 (variable)
+#. Documentation/user/ancient.itely:2502 (context id)
+#. input/lsr/ancient-notation-template----modern-transcription-of-gregorian-music.ly:37 (variable)
+msgid "chant"
+msgstr ""
+
+#. Documentation/user/ancient.itely:2405 (variable)
+#. Documentation/user/ancient.itely:2445 (variable)
+#. input/lsr/ancient-notation-template----modern-transcription-of-gregorian-music.ly:44 (variable)
+msgid "verba"
+msgstr ""
+
+#. Documentation/user/ancient.itely:2487 (variable)
+msgid "spiritus"
+msgstr ""
+
+#. Documentation/user/ancient.itely:2495 (variable)
+msgid "spirLyr"
+msgstr ""
+
+#. @node in Documentation/user/ancient.itely
+#. @section in Documentation/user/ancient.itely
+#. @node in Documentation/fr/user/ancient.itely
+#. @section in Documentation/fr/user/ancient.itely
+#. @node in Documentation/es/user/ancient.itely
+#. @section in Documentation/es/user/ancient.itely
+#. @node in Documentation/de/user/ancient.itely
+#. @section in Documentation/de/user/ancient.itely
+msgid "Ancient notation"
+msgstr ""
+
+#. @node in Documentation/user/ancient.itely
+#. @subsection in Documentation/user/ancient.itely
+#. @node in Documentation/es/user/ancient.itely
+#. @subsection in Documentation/es/user/ancient.itely
+msgid "Overview of the supported styles"
+msgstr ""
+
+#. @node in Documentation/user/ancient.itely
+#. @subsection in Documentation/user/ancient.itely
+#. @node in Documentation/es/user/ancient.itely
+#. @subsection in Documentation/es/user/ancient.itely
+msgid "Ancient notation---common features"
+msgstr ""
+
+#. @node in Documentation/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/user/ancient.itely
+#. @node in Documentation/fr/user/ancient.itely
+#. @subsection in Documentation/fr/user/ancient.itely
+#. @node in Documentation/es/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/es/user/ancient.itely
+#. @node in Documentation/de/user/ancient.itely
+#. @subsection in Documentation/de/user/ancient.itely
+msgid "Pre-defined contexts"
+msgstr ""
+
+#. @node in Documentation/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/user/ancient.itely
+#. @node in Documentation/fr/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/ancient.itely
+#. @node in Documentation/es/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/es/user/ancient.itely
+#. @node in Documentation/de/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/de/user/ancient.itely
+msgid "Ligatures"
+msgstr ""
+
+#. @node in Documentation/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/user/ancient.itely
+#. @node in Documentation/fr/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/ancient.itely
+#. @node in Documentation/es/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/es/user/ancient.itely
+#. @node in Documentation/de/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/de/user/ancient.itely
+msgid "Custodes"
+msgstr ""
+
+#. @node in Documentation/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/user/ancient.itely
+#. @node in Documentation/es/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/es/user/ancient.itely
+msgid "Figured bass support"
+msgstr ""
+
+#. @node in Documentation/user/ancient.itely
+#. @subsection in Documentation/user/ancient.itely
+#. @node in Documentation/es/user/ancient.itely
+#. @subsection in Documentation/es/user/ancient.itely
+msgid "Typesetting mensural music"
+msgstr ""
+
+#. @node in Documentation/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/user/ancient.itely
+#. @node in Documentation/fr/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/ancient.itely
+#. @node in Documentation/es/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/es/user/ancient.itely
+#. @node in Documentation/de/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/de/user/ancient.itely
+msgid "Mensural contexts"
+msgstr ""
+
+#. @node in Documentation/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/user/ancient.itely
+#. @node in Documentation/es/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/es/user/ancient.itely
+msgid "Mensural clefs"
+msgstr ""
+
+#. @node in Documentation/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/user/ancient.itely
+#. @node in Documentation/es/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/es/user/ancient.itely
+msgid "Mensural time signatures"
+msgstr ""
+
+#. @node in Documentation/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/user/ancient.itely
+#. @node in Documentation/es/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/es/user/ancient.itely
+msgid "Mensural note heads"
+msgstr ""
+
+#. @node in Documentation/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/user/ancient.itely
+#. @node in Documentation/es/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/es/user/ancient.itely
+msgid "Mensural flags"
+msgstr ""
+
+#. @node in Documentation/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/user/ancient.itely
+#. @node in Documentation/es/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/es/user/ancient.itely
+msgid "Mensural rests"
+msgstr ""
+
+#. @node in Documentation/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/user/ancient.itely
+#. @node in Documentation/es/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/es/user/ancient.itely
+msgid "Mensural accidentals and key signatures"
+msgstr ""
+
+#. @node in Documentation/user/ancient.itely
+#. @node in Documentation/es/user/ancient.itely
+msgid "Annotational accidentals (musica ficta)"
+msgstr ""
+
+#. @unnumberedsubsubsec in Documentation/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/es/user/ancient.itely
+msgid "Annotational accidentals (@emph{musica ficta})"
+msgstr ""
+
+#. @node in Documentation/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/user/ancient.itely
+#. @node in Documentation/fr/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/ancient.itely
+#. @node in Documentation/es/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/es/user/ancient.itely
+#. @node in Documentation/de/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/de/user/ancient.itely
+msgid "White mensural ligatures"
+msgstr ""
+
+#. @node in Documentation/user/ancient.itely
+#. @subsection in Documentation/user/ancient.itely
+#. @node in Documentation/es/user/ancient.itely
+#. @subsection in Documentation/es/user/ancient.itely
+msgid "Typesetting Gregorian chant"
+msgstr ""
+
+#. @node in Documentation/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/user/ancient.itely
+#. @node in Documentation/fr/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/ancient.itely
+#. @node in Documentation/es/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/es/user/ancient.itely
+#. @node in Documentation/de/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/de/user/ancient.itely
+msgid "Gregorian chant contexts"
+msgstr ""
+
+#. @node in Documentation/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/user/ancient.itely
+#. @node in Documentation/es/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/es/user/ancient.itely
+msgid "Gregorian clefs"
+msgstr ""
+
+#. @node in Documentation/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/user/ancient.itely
+#. @node in Documentation/es/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/es/user/ancient.itely
+msgid "Gregorian accidentals and key signatures"
+msgstr ""
+
+#. @node in Documentation/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/user/ancient.itely
+#. @node in Documentation/fr/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/ancient.itely
+#. @node in Documentation/es/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/es/user/ancient.itely
+#. @node in Documentation/de/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/de/user/ancient.itely
+msgid "Divisiones"
+msgstr ""
+
+#. @node in Documentation/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/user/ancient.itely
+#. @node in Documentation/es/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/es/user/ancient.itely
+msgid "Gregorian articulation signs"
+msgstr ""
+
+#. @node in Documentation/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/user/ancient.itely
+#. @node in Documentation/es/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/es/user/ancient.itely
+msgid "Augmentum dots (@emph{morae})"
+msgstr ""
+
+#. @node in Documentation/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/user/ancient.itely
+#. @node in Documentation/es/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/es/user/ancient.itely
+msgid "Gregorian square neume ligatures"
+msgstr ""
+
+#. @node in Documentation/user/ancient.itely
+#. @subsection in Documentation/user/ancient.itely
+#. @node in Documentation/es/user/ancient.itely
+#. @subsection in Documentation/es/user/ancient.itely
+msgid "Working with ancient music---scenarios and solutions"
+msgstr ""
+
+#. @node in Documentation/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/user/ancient.itely
+#. @node in Documentation/fr/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/ancient.itely
+#. @node in Documentation/es/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/es/user/ancient.itely
+#. @node in Documentation/de/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/de/user/ancient.itely
+msgid "Incipits"
+msgstr ""
+
+#. @node in Documentation/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/user/ancient.itely
+#. @node in Documentation/fr/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/ancient.itely
+#. @node in Documentation/es/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/es/user/ancient.itely
+#. @node in Documentation/de/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/de/user/ancient.itely
+msgid "Mensurstriche layout"
+msgstr ""
+
+#. @node in Documentation/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/user/ancient.itely
+#. @node in Documentation/fr/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/ancient.itely
+#. @node in Documentation/es/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/es/user/ancient.itely
+#. @node in Documentation/de/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/de/user/ancient.itely
+msgid "Transcribing Gregorian chant"
+msgstr ""
+
+#. @node in Documentation/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/user/ancient.itely
+#. @node in Documentation/fr/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/ancient.itely
+#. @node in Documentation/es/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/es/user/ancient.itely
+#. @node in Documentation/de/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/de/user/ancient.itely
+msgid "Ancient and modern from one source"
+msgstr ""
+
+#. @node in Documentation/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/user/ancient.itely
+#. @node in Documentation/fr/user/ancient.itely
+#. @subsection in Documentation/fr/user/ancient.itely
+#. @node in Documentation/es/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/es/user/ancient.itely
+#. @node in Documentation/de/user/ancient.itely
+#. @subsection in Documentation/de/user/ancient.itely
+msgid "Editorial markings"
+msgstr ""
+
+#. @node in Documentation/user/world.itely
+#. @section in Documentation/user/world.itely
+#. @node in Documentation/fr/user/world.itely
+#. @section in Documentation/fr/user/world.itely
+#. @node in Documentation/es/user/world.itely
+#. @section in Documentation/es/user/world.itely
+#. @node in Documentation/de/user/world.itely
+#. @section in Documentation/de/user/world.itely
+msgid "World music"
+msgstr ""
+
+#. @node in Documentation/user/world.itely
+#. @subsection in Documentation/user/world.itely
+#. @node in Documentation/fr/user/world.itely
+#. @subsection in Documentation/fr/user/world.itely
+#. @node in Documentation/es/user/world.itely
+#. @subsection in Documentation/es/user/world.itely
+#. @node in Documentation/de/user/world.itely
+#. @subsection in Documentation/de/user/world.itely
+msgid "Arabic music"
+msgstr ""
+
+#. @node in Documentation/user/world.itely
+#. @unnumberedsubsubsec in Documentation/user/world.itely
+#. @node in Documentation/fr/user/world.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/world.itely
+#. @node in Documentation/es/user/world.itely
+#. @unnumberedsubsubsec in Documentation/es/user/world.itely
+#. @node in Documentation/de/user/world.itely
+#. @unnumberedsubsubsec in Documentation/de/user/world.itely
+msgid "References for Arabic music"
+msgstr ""
+
+#. @node in Documentation/user/world.itely
+#. @unnumberedsubsubsec in Documentation/user/world.itely
+#. @node in Documentation/fr/user/world.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/world.itely
+#. @node in Documentation/es/user/world.itely
+#. @unnumberedsubsubsec in Documentation/es/user/world.itely
+#. @node in Documentation/de/user/world.itely
+#. @unnumberedsubsubsec in Documentation/de/user/world.itely
+msgid "Arabic note names"
+msgstr ""
+
+#. @node in Documentation/user/world.itely
+#. @unnumberedsubsubsec in Documentation/user/world.itely
+#. @node in Documentation/fr/user/world.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/world.itely
+#. @node in Documentation/es/user/world.itely
+#. @unnumberedsubsubsec in Documentation/es/user/world.itely
+#. @node in Documentation/de/user/world.itely
+#. @unnumberedsubsubsec in Documentation/de/user/world.itely
+msgid "Arabic key signatures"
+msgstr ""
+
+#. @node in Documentation/user/world.itely
+#. @unnumberedsubsubsec in Documentation/user/world.itely
+#. @node in Documentation/fr/user/world.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/world.itely
+#. @node in Documentation/es/user/world.itely
+#. @unnumberedsubsubsec in Documentation/es/user/world.itely
+#. @node in Documentation/de/user/world.itely
+#. @unnumberedsubsubsec in Documentation/de/user/world.itely
+msgid "Arabic time signatures"
+msgstr ""
+
+#. @node in Documentation/user/world.itely
+#. @unnumberedsubsubsec in Documentation/user/world.itely
+#. @node in Documentation/fr/user/world.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/world.itely
+#. @node in Documentation/es/user/world.itely
+#. @unnumberedsubsubsec in Documentation/es/user/world.itely
+#. @node in Documentation/de/user/world.itely
+#. @unnumberedsubsubsec in Documentation/de/user/world.itely
+msgid "Arabic music example"
+msgstr ""
+
+#. @node in Documentation/user/world.itely
+#. @unnumberedsubsubsec in Documentation/user/world.itely
+#. @node in Documentation/fr/user/world.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/world.itely
+#. @node in Documentation/es/user/world.itely
+#. @unnumberedsubsubsec in Documentation/es/user/world.itely
+#. @node in Documentation/de/user/world.itely
+#. @unnumberedsubsubsec in Documentation/de/user/world.itely
+msgid "Further reading"
+msgstr ""
+
+#. Documentation/user/input.itely:525 (comment)
+msgid "not printed"
+msgstr ""
+
+#. Documentation/user/input.itely:957 (variable)
+msgid "allLyrics"
+msgstr ""
+
+#. @node in Documentation/user/input.itely
+#. @chapter in Documentation/user/input.itely
+#. @node in Documentation/fr/user/input.itely
+#. @chapter in Documentation/fr/user/input.itely
+#. @node in Documentation/es/user/input.itely
+#. @chapter in Documentation/es/user/input.itely
+#. @node in Documentation/de/user/input.itely
+#. @chapter in Documentation/de/user/input.itely
+msgid "General input and output"
+msgstr ""
+
+#. @node in Documentation/user/input.itely
+#. @section in Documentation/user/input.itely
+#. @node in Documentation/fr/user/input.itely
+#. @section in Documentation/fr/user/input.itely
+#. @node in Documentation/es/user/input.itely
+#. @section in Documentation/es/user/input.itely
+#. @node in Documentation/de/user/input.itely
+#. @section in Documentation/de/user/input.itely
+msgid "Input structure"
+msgstr ""
+
+#. @node in Documentation/user/input.itely
+#. @subsection in Documentation/user/input.itely
+#. @node in Documentation/fr/user/input.itely
+#. @subsection in Documentation/fr/user/input.itely
+#. @node in Documentation/es/user/input.itely
+#. @subsection in Documentation/es/user/input.itely
+#. @node in Documentation/de/user/input.itely
+#. @subsection in Documentation/de/user/input.itely
+msgid "Structure of a score"
+msgstr ""
+
+#. @node in Documentation/user/input.itely
+#. @subsection in Documentation/user/input.itely
+#. @node in Documentation/fr/user/input.itely
+#. @subsection in Documentation/fr/user/input.itely
+#. @node in Documentation/es/user/input.itely
+#. @subsection in Documentation/es/user/input.itely
+#. @node in Documentation/de/user/input.itely
+#. @subsection in Documentation/de/user/input.itely
+msgid "Multiple scores in a book"
+msgstr ""
+
+#. @node in Documentation/user/input.itely
+#. @subsection in Documentation/user/input.itely
+#. @node in Documentation/fr/user/input.itely
+#. @subsection in Documentation/fr/user/input.itely
+#. @node in Documentation/es/user/input.itely
+#. @subsection in Documentation/es/user/input.itely
+#. @node in Documentation/de/user/input.itely
+#. @subsection in Documentation/de/user/input.itely
+msgid "File structure"
+msgstr ""
+
+#. @node in Documentation/user/input.itely
+#. @section in Documentation/user/input.itely
+#. @node in Documentation/fr/user/input.itely
+#. @section in Documentation/fr/user/input.itely
+#. @node in Documentation/es/user/input.itely
+#. @section in Documentation/es/user/input.itely
+#. @node in Documentation/de/user/input.itely
+#. @section in Documentation/de/user/input.itely
+msgid "Titles and headers"
+msgstr ""
+
+#. @node in Documentation/user/input.itely
+#. @subsection in Documentation/user/input.itely
+#. @node in Documentation/fr/user/input.itely
+#. @subsection in Documentation/fr/user/input.itely
+#. @node in Documentation/es/user/input.itely
+#. @subsection in Documentation/es/user/input.itely
+#. @node in Documentation/de/user/input.itely
+#. @subsection in Documentation/de/user/input.itely
+msgid "Creating titles"
+msgstr ""
+
+#. @node in Documentation/user/input.itely
+#. @subsection in Documentation/user/input.itely
+#. @node in Documentation/fr/user/input.itely
+#. @subsection in Documentation/fr/user/input.itely
+#. @node in Documentation/es/user/input.itely
+#. @subsection in Documentation/es/user/input.itely
+#. @node in Documentation/de/user/input.itely
+#. @subsection in Documentation/de/user/input.itely
+msgid "Custom titles"
+msgstr ""
+
+#. @node in Documentation/user/input.itely
+#. @subsection in Documentation/user/input.itely
+#. @node in Documentation/fr/user/input.itely
+#. @subsection in Documentation/fr/user/input.itely
+#. @node in Documentation/es/user/input.itely
+#. @subsection in Documentation/es/user/input.itely
+#. @node in Documentation/de/user/input.itely
+#. @subsection in Documentation/de/user/input.itely
+msgid "Reference to page numbers"
+msgstr ""
+
+#. @node in Documentation/user/input.itely
+#. @subsection in Documentation/user/input.itely
+#. @node in Documentation/fr/user/input.itely
+#. @subsection in Documentation/fr/user/input.itely
+#. @node in Documentation/es/user/input.itely
+#. @subsection in Documentation/es/user/input.itely
+#. @node in Documentation/de/user/input.itely
+#. @subsection in Documentation/de/user/input.itely
+msgid "Table of contents"
+msgstr "目次"
+
+#. @node in Documentation/user/input.itely
+#. @section in Documentation/user/input.itely
+#. @node in Documentation/fr/user/input.itely
+#. @section in Documentation/fr/user/input.itely
+#. @node in Documentation/es/user/input.itely
+#. @section in Documentation/es/user/input.itely
+#. @node in Documentation/de/user/input.itely
+#. @section in Documentation/de/user/input.itely
+msgid "Working with input files"
+msgstr ""
+
+#. @node in Documentation/user/input.itely
+#. @subsection in Documentation/user/input.itely
+#. @node in Documentation/fr/user/input.itely
+#. @subsection in Documentation/fr/user/input.itely
+#. @node in Documentation/es/user/input.itely
+#. @subsection in Documentation/es/user/input.itely
+#. @node in Documentation/de/user/input.itely
+#. @subsection in Documentation/de/user/input.itely
+msgid "Including LilyPond files"
+msgstr ""
+
+#. @node in Documentation/user/input.itely
+#. @subsection in Documentation/user/input.itely
+#. @node in Documentation/fr/user/input.itely
+#. @subsection in Documentation/fr/user/input.itely
+#. @node in Documentation/es/user/input.itely
+#. @subsection in Documentation/es/user/input.itely
+#. @node in Documentation/de/user/input.itely
+#. @subsection in Documentation/de/user/input.itely
+msgid "Different editions from one source"
+msgstr ""
+
+#. @node in Documentation/user/input.itely
+#. @unnumberedsubsubsec in Documentation/user/input.itely
+#. @node in Documentation/fr/user/input.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/input.itely
+#. @node in Documentation/es/user/input.itely
+#. @unnumberedsubsubsec in Documentation/es/user/input.itely
+#. @node in Documentation/de/user/input.itely
+#. @unnumberedsubsubsec in Documentation/de/user/input.itely
+msgid "Using variables"
+msgstr ""
+
+#. @node in Documentation/user/input.itely
+#. @unnumberedsubsubsec in Documentation/user/input.itely
+#. @node in Documentation/fr/user/input.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/input.itely
+#. @node in Documentation/es/user/input.itely
+#. @unnumberedsubsubsec in Documentation/es/user/input.itely
+#. @node in Documentation/de/user/input.itely
+#. @unnumberedsubsubsec in Documentation/de/user/input.itely
+msgid "Using tags"
+msgstr ""
+
+#. @node in Documentation/user/input.itely
+#. @subsection in Documentation/user/input.itely
+#. @node in Documentation/fr/user/input.itely
+#. @subsection in Documentation/fr/user/input.itely
+#. @node in Documentation/es/user/input.itely
+#. @subsection in Documentation/es/user/input.itely
+#. @node in Documentation/de/user/input.itely
+#. @subsection in Documentation/de/user/input.itely
+msgid "Text encoding"
+msgstr ""
+
+#. @node in Documentation/user/input.itely
+#. @subsection in Documentation/user/input.itely
+#. @node in Documentation/fr/user/input.itely
+#. @subsection in Documentation/fr/user/input.itely
+#. @node in Documentation/es/user/input.itely
+#. @subsection in Documentation/es/user/input.itely
+#. @node in Documentation/de/user/input.itely
+#. @subsection in Documentation/de/user/input.itely
+msgid "Displaying LilyPond notation"
+msgstr ""
+
+#. @node in Documentation/user/input.itely
+#. @section in Documentation/user/input.itely
+#. @node in Documentation/fr/user/input.itely
+#. @section in Documentation/fr/user/input.itely
+#. @node in Documentation/es/user/input.itely
+#. @section in Documentation/es/user/input.itely
+#. @node in Documentation/de/user/input.itely
+#. @section in Documentation/de/user/input.itely
+msgid "Controlling output"
+msgstr ""
+
+#. @node in Documentation/user/input.itely
+#. @subsection in Documentation/user/input.itely
+#. @node in Documentation/fr/user/input.itely
+#. @subsection in Documentation/fr/user/input.itely
+#. @node in Documentation/es/user/input.itely
+#. @subsection in Documentation/es/user/input.itely
+#. @node in Documentation/de/user/input.itely
+#. @subsection in Documentation/de/user/input.itely
+msgid "Extracting fragments of music"
+msgstr ""
+
+#. @node in Documentation/user/input.itely
+#. @subsection in Documentation/user/input.itely
+#. @node in Documentation/fr/user/input.itely
+#. @subsection in Documentation/fr/user/input.itely
+#. @node in Documentation/es/user/input.itely
+#. @subsection in Documentation/es/user/input.itely
+#. @node in Documentation/de/user/input.itely
+#. @subsection in Documentation/de/user/input.itely
+msgid "Skipping corrected music"
+msgstr ""
+
+#. @node in Documentation/user/input.itely
+#. @section in Documentation/user/input.itely
+#. @node in Documentation/fr/user/input.itely
+#. @section in Documentation/fr/user/input.itely
+#. @node in Documentation/es/user/input.itely
+#. @section in Documentation/es/user/input.itely
+#. @node in Documentation/de/user/input.itely
+#. @section in Documentation/de/user/input.itely
+msgid "MIDI output"
+msgstr ""
+
+#. @node in Documentation/user/input.itely
+#. @subsection in Documentation/user/input.itely
+#. @node in Documentation/fr/user/input.itely
+#. @subsection in Documentation/fr/user/input.itely
+#. @node in Documentation/es/user/input.itely
+#. @subsection in Documentation/es/user/input.itely
+#. @node in Documentation/de/user/input.itely
+#. @subsection in Documentation/de/user/input.itely
+msgid "Creating MIDI files"
+msgstr ""
+
+#. @node in Documentation/user/input.itely
+#. @subsection in Documentation/user/input.itely
+#. @node in Documentation/fr/user/input.itely
+#. @subsection in Documentation/fr/user/input.itely
+#. @node in Documentation/es/user/input.itely
+#. @subsection in Documentation/es/user/input.itely
+#. @node in Documentation/de/user/input.itely
+#. @subsection in Documentation/de/user/input.itely
+msgid "MIDI block"
+msgstr ""
+
+#. @node in Documentation/user/input.itely
+#. @subsection in Documentation/user/input.itely
+#. @node in Documentation/fr/user/input.itely
+#. @subsection in Documentation/fr/user/input.itely
+#. @node in Documentation/es/user/input.itely
+#. @subsection in Documentation/es/user/input.itely
+#. @node in Documentation/de/user/input.itely
+#. @subsection in Documentation/de/user/input.itely
+msgid "What goes into the MIDI output?"
+msgstr ""
+
+#. @unnumberedsubsubsec in Documentation/user/input.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/input.itely
+#. @unnumberedsubsubsec in Documentation/es/user/input.itely
+#. @unnumberedsubsubsec in Documentation/de/user/input.itely
+msgid "Supported in MIDI"
+msgstr ""
+
+#. @unnumberedsubsubsec in Documentation/user/input.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/input.itely
+#. @unnumberedsubsubsec in Documentation/es/user/input.itely
+#. @unnumberedsubsubsec in Documentation/de/user/input.itely
+msgid "Unsupported in MIDI"
+msgstr ""
+
+#. @node in Documentation/user/input.itely
+#. @subsection in Documentation/user/input.itely
+#. @node in Documentation/fr/user/input.itely
+#. @subsection in Documentation/fr/user/input.itely
+#. @node in Documentation/es/user/input.itely
+#. @subsection in Documentation/es/user/input.itely
+#. @node in Documentation/de/user/input.itely
+#. @subsection in Documentation/de/user/input.itely
+msgid "Repeats in MIDI"
+msgstr ""
+
+#. @node in Documentation/user/input.itely
+#. @subsection in Documentation/user/input.itely
+#. @node in Documentation/fr/user/input.itely
+#. @subsection in Documentation/fr/user/input.itely
+#. @node in Documentation/es/user/input.itely
+#. @subsection in Documentation/es/user/input.itely
+#. @node in Documentation/de/user/input.itely
+#. @subsection in Documentation/de/user/input.itely
+msgid "Controlling MIDI dynamics"
+msgstr ""
+
+#. @unnumberedsubsubsec in Documentation/user/input.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/input.itely
+#. @unnumberedsubsubsec in Documentation/es/user/input.itely
+#. @unnumberedsubsubsec in Documentation/de/user/input.itely
+msgid "Dynamic marks"
+msgstr ""
+
+#. @unnumberedsubsubsec in Documentation/user/input.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/input.itely
+#. @unnumberedsubsubsec in Documentation/es/user/input.itely
+#. @unnumberedsubsubsec in Documentation/de/user/input.itely
+msgid "Overall MIDI volume"
+msgstr ""
+
+#. @unnumberedsubsubsec in Documentation/user/input.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/input.itely
+#. @unnumberedsubsubsec in Documentation/es/user/input.itely
+#. @unnumberedsubsubsec in Documentation/de/user/input.itely
+msgid "Equalizing different instruments (i)"
+msgstr ""
+
+#. @unnumberedsubsubsec in Documentation/user/input.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/input.itely
+#. @unnumberedsubsubsec in Documentation/es/user/input.itely
+#. @unnumberedsubsubsec in Documentation/de/user/input.itely
+msgid "Equalizing different instruments (ii)"
+msgstr ""
+
+#. @node in Documentation/user/input.itely
+#. @subsection in Documentation/user/input.itely
+#. @node in Documentation/es/user/input.itely
+#. @subsection in Documentation/es/user/input.itely
+#. @node in Documentation/de/user/input.itely
+#. @subsection in Documentation/de/user/input.itely
+msgid "Percussion in MIDI"
+msgstr ""
+
+#. Documentation/user/spacing.itely:864 (comment)
+msgid "this does nothing"
+msgstr ""
+
+#. Documentation/user/spacing.itely:865 (comment)
+msgid "a break here would work"
+msgstr ""
+
+#. Documentation/user/spacing.itely:866 (comment)
+msgid "as does this break"
+msgstr ""
+
+#. Documentation/user/spacing.itely:878 (comment)
+msgid "now the break is allowed"
+msgstr ""
+
+#. Documentation/user/spacing.itely:1757 (comment)
+msgid "this time the text will be closer to the staff"
+msgstr ""
+
+#. Documentation/user/spacing.itely:1759 (comment)
+msgid "by setting outside-staff-priority to a non-number,"
+msgstr ""
+
+#. Documentation/user/spacing.itely:1760 (comment)
+msgid "we disable the automatic collision avoidance"
+msgstr ""
+
+#. Documentation/user/spacing.itely:1763 (comment)
+msgid "now they will collide"
+msgstr ""
+
+#. Documentation/user/spacing.itely:1789 (comment)
+msgid "the markup is too close to the following note"
+msgstr ""
+
+#. Documentation/user/spacing.itely:1793 (comment)
+msgid "setting outside-staff-horizontal-padding fixes this"
+msgstr ""
+
+#. @node in Documentation/user/spacing.itely
+#. @chapter in Documentation/user/spacing.itely
+#. @node in Documentation/fr/user/spacing.itely
+#. @chapter in Documentation/fr/user/spacing.itely
+#. @node in Documentation/es/user/spacing.itely
+#. @chapter in Documentation/es/user/spacing.itely
+#. @node in Documentation/de/user/spacing.itely
+#. @chapter in Documentation/de/user/spacing.itely
+msgid "Spacing issues"
+msgstr ""
+
+#. @node in Documentation/user/spacing.itely
+#. @section in Documentation/user/spacing.itely
+#. @node in Documentation/fr/user/spacing.itely
+#. @section in Documentation/fr/user/spacing.itely
+#. @node in Documentation/es/user/spacing.itely
+#. @section in Documentation/es/user/spacing.itely
+#. @node in Documentation/de/user/spacing.itely
+#. @section in Documentation/de/user/spacing.itely
+msgid "Paper and pages"
+msgstr ""
+
+#. @node in Documentation/user/spacing.itely
+#. @subsection in Documentation/user/spacing.itely
+#. @node in Documentation/fr/user/spacing.itely
+#. @subsection in Documentation/fr/user/spacing.itely
+#. @node in Documentation/es/user/spacing.itely
+#. @subsection in Documentation/es/user/spacing.itely
+#. @node in Documentation/de/user/spacing.itely
+#. @subsection in Documentation/de/user/spacing.itely
+msgid "Paper size"
+msgstr ""
+
+#. @node in Documentation/user/spacing.itely
+#. @subsection in Documentation/user/spacing.itely
+#. @node in Documentation/fr/user/spacing.itely
+#. @subsection in Documentation/fr/user/spacing.itely
+#. @node in Documentation/es/user/spacing.itely
+#. @subsection in Documentation/es/user/spacing.itely
+#. @node in Documentation/de/user/spacing.itely
+#. @subsection in Documentation/de/user/spacing.itely
+msgid "Page formatting"
+msgstr ""
+
+#. @node in Documentation/user/spacing.itely
+#. @unnumberedsubsubsec in Documentation/user/spacing.itely
+#. @node in Documentation/es/user/spacing.itely
+#. @unnumberedsubsubsec in Documentation/es/user/spacing.itely
+#. @node in Documentation/de/user/spacing.itely
+#. @unnumberedsubsubsec in Documentation/de/user/spacing.itely
+msgid "Vertical dimensions"
+msgstr ""
+
+#. @node in Documentation/user/spacing.itely
+#. @unnumberedsubsubsec in Documentation/user/spacing.itely
+#. @node in Documentation/es/user/spacing.itely
+#. @unnumberedsubsubsec in Documentation/es/user/spacing.itely
+#. @node in Documentation/de/user/spacing.itely
+#. @unnumberedsubsubsec in Documentation/de/user/spacing.itely
+msgid "Horizontal dimensions"
+msgstr ""
+
+#. @node in Documentation/user/spacing.itely
+#. @unnumberedsubsubsec in Documentation/user/spacing.itely
+#. @node in Documentation/es/user/spacing.itely
+#. @unnumberedsubsubsec in Documentation/es/user/spacing.itely
+#. @node in Documentation/de/user/spacing.itely
+#. @unnumberedsubsubsec in Documentation/de/user/spacing.itely
+msgid "Other layout variables"
+msgstr ""
+
+#. @node in Documentation/user/spacing.itely
+#. @section in Documentation/user/spacing.itely
+#. @node in Documentation/fr/user/spacing.itely
+#. @section in Documentation/fr/user/spacing.itely
+#. @node in Documentation/es/user/spacing.itely
+#. @section in Documentation/es/user/spacing.itely
+#. @node in Documentation/de/user/spacing.itely
+#. @section in Documentation/de/user/spacing.itely
+msgid "Music layout"
+msgstr ""
+
+#. @node in Documentation/user/spacing.itely
+#. @subsection in Documentation/user/spacing.itely
+#. @node in Documentation/fr/user/spacing.itely
+#. @subsection in Documentation/fr/user/spacing.itely
+#. @node in Documentation/es/user/spacing.itely
+#. @subsection in Documentation/es/user/spacing.itely
+#. @node in Documentation/de/user/spacing.itely
+#. @subsection in Documentation/de/user/spacing.itely
+msgid "Setting the staff size"
+msgstr ""
+
+#. @node in Documentation/user/spacing.itely
+#. @subsection in Documentation/user/spacing.itely
+#. @node in Documentation/fr/user/spacing.itely
+#. @subsection in Documentation/fr/user/spacing.itely
+#. @node in Documentation/es/user/spacing.itely
+#. @subsection in Documentation/es/user/spacing.itely
+#. @node in Documentation/de/user/spacing.itely
+#. @subsection in Documentation/de/user/spacing.itely
+msgid "Score layout"
+msgstr ""
+
+#. @node in Documentation/user/spacing.itely
+#. @section in Documentation/user/spacing.itely
+#. @node in Documentation/fr/user/spacing.itely
+#. @section in Documentation/fr/user/spacing.itely
+#. @node in Documentation/es/user/spacing.itely
+#. @section in Documentation/es/user/spacing.itely
+#. @node in Documentation/de/user/spacing.itely
+#. @section in Documentation/de/user/spacing.itely
+msgid "Breaks"
+msgstr ""
+
+#. @node in Documentation/user/spacing.itely
+#. @subsection in Documentation/user/spacing.itely
+#. @node in Documentation/fr/user/spacing.itely
+#. @subsection in Documentation/fr/user/spacing.itely
+#. @node in Documentation/es/user/spacing.itely
+#. @subsection in Documentation/es/user/spacing.itely
+#. @node in Documentation/de/user/spacing.itely
+#. @subsection in Documentation/de/user/spacing.itely
+msgid "Line breaking"
+msgstr ""
+
+#. @node in Documentation/user/spacing.itely
+#. @subsection in Documentation/user/spacing.itely
+#. @node in Documentation/fr/user/spacing.itely
+#. @subsection in Documentation/fr/user/spacing.itely
+#. @node in Documentation/es/user/spacing.itely
+#. @subsection in Documentation/es/user/spacing.itely
+#. @node in Documentation/de/user/spacing.itely
+#. @subsection in Documentation/de/user/spacing.itely
+msgid "Page breaking"
+msgstr ""
+
+#. @node in Documentation/user/spacing.itely
+#. @subsection in Documentation/user/spacing.itely
+#. @node in Documentation/fr/user/spacing.itely
+#. @subsection in Documentation/fr/user/spacing.itely
+#. @node in Documentation/es/user/spacing.itely
+#. @subsection in Documentation/es/user/spacing.itely
+#. @node in Documentation/de/user/spacing.itely
+#. @subsection in Documentation/de/user/spacing.itely
+msgid "Optimal page breaking"
+msgstr ""
+
+#. @node in Documentation/user/spacing.itely
+#. @subsection in Documentation/user/spacing.itely
+#. @node in Documentation/fr/user/spacing.itely
+#. @subsection in Documentation/fr/user/spacing.itely
+#. @node in Documentation/es/user/spacing.itely
+#. @subsection in Documentation/es/user/spacing.itely
+#. @node in Documentation/de/user/spacing.itely
+#. @subsection in Documentation/de/user/spacing.itely
+msgid "Optimal page turning"
+msgstr ""
+
+#. @node in Documentation/user/spacing.itely
+#. @subsection in Documentation/user/spacing.itely
+#. @node in Documentation/fr/user/spacing.itely
+#. @subsection in Documentation/fr/user/spacing.itely
+#. @node in Documentation/es/user/spacing.itely
+#. @subsection in Documentation/es/user/spacing.itely
+#. @node in Documentation/de/user/spacing.itely
+#. @subsection in Documentation/de/user/spacing.itely
+msgid "Minimal page breaking"
+msgstr ""
+
+#. @node in Documentation/user/spacing.itely
+#. @subsection in Documentation/user/spacing.itely
+#. @node in Documentation/fr/user/spacing.itely
+#. @subsection in Documentation/fr/user/spacing.itely
+#. @node in Documentation/es/user/spacing.itely
+#. @subsection in Documentation/es/user/spacing.itely
+#. @node in Documentation/de/user/spacing.itely
+#. @subsection in Documentation/de/user/spacing.itely
+msgid "Explicit breaks"
+msgstr ""
+
+#. @node in Documentation/user/spacing.itely
+#. @subsection in Documentation/user/spacing.itely
+#. @node in Documentation/fr/user/spacing.itely
+#. @subsection in Documentation/fr/user/spacing.itely
+#. @node in Documentation/es/user/spacing.itely
+#. @subsection in Documentation/es/user/spacing.itely
+#. @node in Documentation/de/user/spacing.itely
+#. @subsection in Documentation/de/user/spacing.itely
+msgid "Using an extra voice for breaks"
+msgstr ""
+
+#. @node in Documentation/user/spacing.itely
+#. @section in Documentation/user/spacing.itely
+#. @node in Documentation/fr/user/spacing.itely
+#. @section in Documentation/fr/user/spacing.itely
+#. @node in Documentation/es/user/spacing.itely
+#. @section in Documentation/es/user/spacing.itely
+#. @node in Documentation/de/user/spacing.itely
+#. @section in Documentation/de/user/spacing.itely
+msgid "Vertical spacing"
+msgstr ""
+
+#. @node in Documentation/user/spacing.itely
+#. @subsection in Documentation/user/spacing.itely
+#. @node in Documentation/fr/user/spacing.itely
+#. @subsection in Documentation/fr/user/spacing.itely
+#. @node in Documentation/es/user/spacing.itely
+#. @subsection in Documentation/es/user/spacing.itely
+#. @node in Documentation/de/user/spacing.itely
+#. @subsection in Documentation/de/user/spacing.itely
+msgid "Vertical spacing inside a system"
+msgstr ""
+
+#. @node in Documentation/user/spacing.itely
+#. @subsection in Documentation/user/spacing.itely
+#. @node in Documentation/fr/user/spacing.itely
+#. @subsection in Documentation/fr/user/spacing.itely
+#. @node in Documentation/es/user/spacing.itely
+#. @subsection in Documentation/es/user/spacing.itely
+#. @node in Documentation/de/user/spacing.itely
+#. @subsection in Documentation/de/user/spacing.itely
+msgid "Vertical spacing between systems"
+msgstr ""
+
+#. @node in Documentation/user/spacing.itely
+#. @subsection in Documentation/user/spacing.itely
+#. @node in Documentation/fr/user/spacing.itely
+#. @subsection in Documentation/fr/user/spacing.itely
+#. @node in Documentation/es/user/spacing.itely
+#. @subsection in Documentation/es/user/spacing.itely
+#. @node in Documentation/de/user/spacing.itely
+#. @subsection in Documentation/de/user/spacing.itely
+msgid "Explicit staff and system positioning"
+msgstr ""
+
+#. @node in Documentation/user/spacing.itely
+#. @subsection in Documentation/user/spacing.itely
+#. @node in Documentation/fr/user/spacing.itely
+#. @subsection in Documentation/fr/user/spacing.itely
+#. @node in Documentation/es/user/spacing.itely
+#. @subsection in Documentation/es/user/spacing.itely
+#. @node in Documentation/de/user/spacing.itely
+#. @subsection in Documentation/de/user/spacing.itely
+msgid "Two-pass vertical spacing"
+msgstr ""
+
+#. @node in Documentation/user/spacing.itely
+#. @subsection in Documentation/user/spacing.itely
+#. @node in Documentation/fr/user/spacing.itely
+#. @subsection in Documentation/fr/user/spacing.itely
+#. @node in Documentation/es/user/spacing.itely
+#. @subsection in Documentation/es/user/spacing.itely
+#. @node in Documentation/de/user/spacing.itely
+#. @subsection in Documentation/de/user/spacing.itely
+msgid "Vertical collision avoidance"
+msgstr ""
+
+#. @node in Documentation/user/spacing.itely
+#. @section in Documentation/user/spacing.itely
+#. @node in Documentation/fr/user/spacing.itely
+#. @node in Documentation/es/user/spacing.itely
+#. @section in Documentation/es/user/spacing.itely
+#. @node in Documentation/de/user/spacing.itely
+#. @section in Documentation/de/user/spacing.itely
+msgid "Horizontal spacing"
+msgstr ""
+
+#. @node in Documentation/user/spacing.itely
+#. @subsection in Documentation/user/spacing.itely
+#. @node in Documentation/fr/user/spacing.itely
+#. @subsection in Documentation/fr/user/spacing.itely
+#. @node in Documentation/es/user/spacing.itely
+#. @subsection in Documentation/es/user/spacing.itely
+#. @node in Documentation/de/user/spacing.itely
+#. @subsection in Documentation/de/user/spacing.itely
+msgid "Horizontal spacing overview"
+msgstr ""
+
+#. @node in Documentation/user/spacing.itely
+#. @subsection in Documentation/user/spacing.itely
+#. @node in Documentation/fr/user/spacing.itely
+#. @subsection in Documentation/fr/user/spacing.itely
+#. @node in Documentation/es/user/spacing.itely
+#. @subsection in Documentation/es/user/spacing.itely
+#. @node in Documentation/de/user/spacing.itely
+#. @subsection in Documentation/de/user/spacing.itely
+msgid "New spacing area"
+msgstr ""
+
+#. @node in Documentation/user/spacing.itely
+#. @subsection in Documentation/user/spacing.itely
+#. @node in Documentation/fr/user/spacing.itely
+#. @subsection in Documentation/fr/user/spacing.itely
+#. @node in Documentation/es/user/spacing.itely
+#. @subsection in Documentation/es/user/spacing.itely
+#. @node in Documentation/de/user/spacing.itely
+#. @subsection in Documentation/de/user/spacing.itely
+msgid "Changing horizontal spacing"
+msgstr ""
+
+#. @node in Documentation/user/spacing.itely
+#. @subsection in Documentation/user/spacing.itely
+#. @node in Documentation/fr/user/spacing.itely
+#. @subsection in Documentation/fr/user/spacing.itely
+#. @node in Documentation/es/user/spacing.itely
+#. @subsection in Documentation/es/user/spacing.itely
+#. @node in Documentation/de/user/spacing.itely
+#. @subsection in Documentation/de/user/spacing.itely
+msgid "Line length"
+msgstr ""
+
+#. @node in Documentation/user/spacing.itely
+#. @subsection in Documentation/user/spacing.itely
+#. @node in Documentation/fr/user/spacing.itely
+#. @subsection in Documentation/fr/user/spacing.itely
+#. @node in Documentation/es/user/spacing.itely
+#. @subsection in Documentation/es/user/spacing.itely
+#. @node in Documentation/de/user/spacing.itely
+#. @subsection in Documentation/de/user/spacing.itely
+msgid "Proportional notation"
+msgstr ""
+
+#. @node in Documentation/user/spacing.itely
+#. @section in Documentation/user/spacing.itely
+#. @node in Documentation/fr/user/spacing.itely
+#. @section in Documentation/fr/user/spacing.itely
+#. @node in Documentation/es/user/spacing.itely
+#. @section in Documentation/es/user/spacing.itely
+#. @node in Documentation/de/user/spacing.itely
+#. @section in Documentation/de/user/spacing.itely
+msgid "Fitting music onto fewer pages"
+msgstr ""
+
+#. @node in Documentation/user/spacing.itely
+#. @subsection in Documentation/user/spacing.itely
+#. @node in Documentation/fr/user/spacing.itely
+#. @subsection in Documentation/fr/user/spacing.itely
+#. @node in Documentation/es/user/spacing.itely
+#. @subsection in Documentation/es/user/spacing.itely
+#. @node in Documentation/de/user/spacing.itely
+#. @subsection in Documentation/de/user/spacing.itely
+msgid "Displaying spacing"
+msgstr ""
+
+#. @node in Documentation/user/spacing.itely
+#. @subsection in Documentation/user/spacing.itely
+#. @node in Documentation/fr/user/spacing.itely
+#. @subsection in Documentation/fr/user/spacing.itely
+#. @node in Documentation/es/user/spacing.itely
+#. @subsection in Documentation/es/user/spacing.itely
+#. @node in Documentation/de/user/spacing.itely
+#. @subsection in Documentation/de/user/spacing.itely
+msgid "Changing spacing"
+msgstr ""
+
+#. Documentation/user/changing-defaults.itely:1991 (comment)
+msgid "increase the length of the tie"
+msgstr ""
+
+#. Documentation/user/changing-defaults.itely:2000 (comment)
+msgid "increase the length of the rest bar"
+msgstr ""
+
+#. Documentation/user/changing-defaults.itely:2008 (comment)
+msgid "increase the length of the hairpin"
+msgstr ""
+
+#. Documentation/user/changing-defaults.itely:2036 (comment)
+msgid "default"
+msgstr ""
+
+#. Documentation/user/changing-defaults.itely:2039 (comment)
+#. Documentation/user/changing-defaults.itely:2052 (comment)
+msgid "not effective alone"
+msgstr ""
+
+#. Documentation/user/changing-defaults.itely:2043 (comment)
+#. Documentation/user/changing-defaults.itely:2056 (comment)
+msgid "effective only when both overrides are present"
+msgstr ""
+
+#. Documentation/user/changing-defaults.itely:2431 (comment)
+msgid "Remove bar line at the end of the current line"
+msgstr ""
+
+#. Documentation/user/changing-defaults.itely:2477 (comment)
+msgid "Try to remove all key signatures"
+msgstr ""
+
+#. Documentation/user/changing-defaults.itely:2897 (comment)
+msgid "move horizontally left"
+msgstr ""
+
+#. Documentation/user/changing-defaults.itely:2899 (comment)
+msgid "move vertically up"
+msgstr ""
+
+#. Documentation/user/changing-defaults.itely:2900 (comment)
+msgid "third finger"
+msgstr ""
+
+#. Documentation/user/changing-defaults.itely:2949 (comment)
+#. Documentation/user/changing-defaults.itely:2981 (comment)
+#. input/lsr/aligning-marks-with-various-notation-objects.ly:39 (comment)
+msgid "the RehearsalMark will be centered above the Clef"
+msgstr ""
+
+#. Documentation/user/changing-defaults.itely:2955 (comment)
+#. input/lsr/aligning-marks-with-various-notation-objects.ly:46 (comment)
+msgid "the RehearsalMark will be centered above the TimeSignature"
+msgstr ""
+
+#. Documentation/user/changing-defaults.itely:2975 (comment)
+msgid "the RehearsalMark will be centered above the Key Signature"
+msgstr ""
+
+#. Documentation/user/changing-defaults.itely:2995 (comment)
+msgid "The RehearsalMark will be centered above the KeySignature"
+msgstr ""
+
+#. Documentation/user/changing-defaults.itely:3002 (comment)
+#. Documentation/user/changing-defaults.itely:3018 (comment)
+#. Documentation/user/changing-defaults.itely:3025 (comment)
+msgid ""
+"The RehearsalMark will be aligned with the left edge of the KeySignature"
+msgstr ""
+
+#. Documentation/user/changing-defaults.itely:3007 (comment)
+msgid ""
+"The RehearsalMark will be aligned with the right edge of the KeySignature"
+msgstr ""
+
+#. Documentation/user/changing-defaults.itely:3019 (comment)
+msgid "and then shifted right by 3.5 staff-spaces"
+msgstr ""
+
+#. Documentation/user/changing-defaults.itely:3026 (comment)
+msgid "and then shifted left by 2 staff-spaces"
+msgstr ""
+
+#. Documentation/user/changing-defaults.itely:3074 (variable)
+msgid "XinO"
+msgstr ""
+
+#. @node in Documentation/user/changing-defaults.itely
+#. @chapter in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @chapter in Documentation/fr/user/changing-defaults.itely
+#. @node in Documentation/es/user/changing-defaults.itely
+#. @chapter in Documentation/es/user/changing-defaults.itely
+#. @node in Documentation/de/user/changing-defaults.itely
+#. @chapter in Documentation/de/user/changing-defaults.itely
+msgid "Changing defaults"
+msgstr ""
+
+#. @node in Documentation/user/changing-defaults.itely
+#. @section in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @section in Documentation/fr/user/changing-defaults.itely
+#. @node in Documentation/es/user/changing-defaults.itely
+#. @section in Documentation/es/user/changing-defaults.itely
+#. @node in Documentation/de/user/changing-defaults.itely
+#. @section in Documentation/de/user/changing-defaults.itely
+msgid "Interpretation contexts"
+msgstr ""
+
+#. @node in Documentation/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
+#. @node in Documentation/es/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
+#. @node in Documentation/de/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/de/user/changing-defaults.itely
+msgid "Score - the master of all contexts"
+msgstr ""
+
+#. @node in Documentation/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
+#. @node in Documentation/es/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
+#. @node in Documentation/de/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/de/user/changing-defaults.itely
+msgid "Top-level contexts - staff containers"
+msgstr ""
+
+#. @node in Documentation/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
+#. @node in Documentation/es/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
+#. @node in Documentation/de/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/de/user/changing-defaults.itely
+msgid "Intermediate-level contexts - staves"
+msgstr ""
+
+#. @node in Documentation/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
+#. @node in Documentation/es/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
+#. @node in Documentation/de/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/de/user/changing-defaults.itely
+msgid "Bottom-level contexts - voices"
+msgstr ""
+
+#. @node in Documentation/user/changing-defaults.itely
+#. @subsection in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
+#. @node in Documentation/es/user/changing-defaults.itely
+#. @subsection in Documentation/es/user/changing-defaults.itely
+#. @node in Documentation/de/user/changing-defaults.itely
+#. @subsection in Documentation/de/user/changing-defaults.itely
+msgid "Modifying context plug-ins"
+msgstr ""
+
+#. @node in Documentation/user/changing-defaults.itely
+#. @subsection in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
+#. @node in Documentation/es/user/changing-defaults.itely
+#. @subsection in Documentation/es/user/changing-defaults.itely
+#. @node in Documentation/de/user/changing-defaults.itely
+#. @subsection in Documentation/de/user/changing-defaults.itely
+msgid "Changing context default settings"
+msgstr ""
+
+#. @node in Documentation/user/changing-defaults.itely
+#. @subsection in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
+#. @node in Documentation/es/user/changing-defaults.itely
+#. @subsection in Documentation/es/user/changing-defaults.itely
+#. @node in Documentation/de/user/changing-defaults.itely
+#. @subsection in Documentation/de/user/changing-defaults.itely
+msgid "Defining new contexts"
+msgstr ""
+
+#. @node in Documentation/user/changing-defaults.itely
+#. @subsection in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
+#. @node in Documentation/es/user/changing-defaults.itely
+#. @subsection in Documentation/es/user/changing-defaults.itely
+#. @node in Documentation/de/user/changing-defaults.itely
+#. @subsection in Documentation/de/user/changing-defaults.itely
+msgid "Aligning contexts"
+msgstr ""
+
+#. @node in Documentation/user/changing-defaults.itely
+#. @section in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @section in Documentation/fr/user/changing-defaults.itely
+#. @node in Documentation/es/user/changing-defaults.itely
+#. @section in Documentation/es/user/changing-defaults.itely
+#. @node in Documentation/de/user/changing-defaults.itely
+#. @section in Documentation/de/user/changing-defaults.itely
+msgid "Explaining the Internals Reference"
+msgstr ""
+
+#. @node in Documentation/user/changing-defaults.itely
+#. @subsection in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
+#. @node in Documentation/es/user/changing-defaults.itely
+#. @subsection in Documentation/es/user/changing-defaults.itely
+#. @node in Documentation/de/user/changing-defaults.itely
+#. @subsection in Documentation/de/user/changing-defaults.itely
+msgid "Navigating the program reference"
+msgstr ""
+
+#. @node in Documentation/user/changing-defaults.itely
+#. @subsection in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
+#. @node in Documentation/es/user/changing-defaults.itely
+#. @subsection in Documentation/es/user/changing-defaults.itely
+#. @node in Documentation/de/user/changing-defaults.itely
+#. @subsection in Documentation/de/user/changing-defaults.itely
+msgid "Layout interfaces"
+msgstr ""
+
+#. @node in Documentation/user/changing-defaults.itely
+#. @subsection in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
+#. @node in Documentation/es/user/changing-defaults.itely
+#. @subsection in Documentation/es/user/changing-defaults.itely
+#. @node in Documentation/de/user/changing-defaults.itely
+#. @subsection in Documentation/de/user/changing-defaults.itely
+msgid "Determining the grob property"
+msgstr ""
+
+#. @node in Documentation/user/changing-defaults.itely
+#. @subsection in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
+#. @node in Documentation/es/user/changing-defaults.itely
+#. @subsection in Documentation/es/user/changing-defaults.itely
+#. @node in Documentation/de/user/changing-defaults.itely
+#. @subsection in Documentation/de/user/changing-defaults.itely
+msgid "Naming conventions"
+msgstr ""
+
+#. @node in Documentation/user/changing-defaults.itely
+#. @section in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @section in Documentation/fr/user/changing-defaults.itely
+#. @node in Documentation/es/user/changing-defaults.itely
+#. @section in Documentation/es/user/changing-defaults.itely
+#. @node in Documentation/de/user/changing-defaults.itely
+#. @section in Documentation/de/user/changing-defaults.itely
+msgid "Modifying properties"
+msgstr ""
+
+#. @node in Documentation/user/changing-defaults.itely
+#. @subsection in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
+#. @node in Documentation/es/user/changing-defaults.itely
+#. @subsection in Documentation/es/user/changing-defaults.itely
+#. @node in Documentation/de/user/changing-defaults.itely
+#. @subsection in Documentation/de/user/changing-defaults.itely
+msgid "Overview of modifying properties"
+msgstr ""
+
+#. @node in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @node in Documentation/es/user/changing-defaults.itely
+#. @node in Documentation/de/user/changing-defaults.itely
+msgid "The set command"
+msgstr ""
+
+#. @subsection in Documentation/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/es/user/changing-defaults.itely
+#. @subsection in Documentation/de/user/changing-defaults.itely
+msgid "The @code{\\set} command"
+msgstr ""
+
+#. @node in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @node in Documentation/es/user/changing-defaults.itely
+#. @node in Documentation/de/user/changing-defaults.itely
+msgid "The override command"
+msgstr ""
+
+#. @subsection in Documentation/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/es/user/changing-defaults.itely
+#. @subsection in Documentation/de/user/changing-defaults.itely
+msgid "The @code{\\override} command"
+msgstr ""
+
+#. @node in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @node in Documentation/es/user/changing-defaults.itely
+#. @node in Documentation/de/user/changing-defaults.itely
+msgid "The tweak command"
+msgstr ""
+
+#. @subsection in Documentation/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/es/user/changing-defaults.itely
+#. @subsection in Documentation/de/user/changing-defaults.itely
+msgid "The @code{\\tweak} command"
+msgstr ""
+
+#. @node in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @node in Documentation/es/user/changing-defaults.itely
+#. @node in Documentation/de/user/changing-defaults.itely
+msgid "set versus override"
+msgstr ""
+
+#. @subsection in Documentation/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/es/user/changing-defaults.itely
+#. @subsection in Documentation/de/user/changing-defaults.itely
+msgid "@code{\\set} vs. @code{\\override}"
+msgstr ""
+
+#. @node in Documentation/user/changing-defaults.itely
+#. @section in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @section in Documentation/fr/user/changing-defaults.itely
+#. @node in Documentation/es/user/changing-defaults.itely
+#. @section in Documentation/es/user/changing-defaults.itely
+#. @node in Documentation/de/user/changing-defaults.itely
+#. @section in Documentation/de/user/changing-defaults.itely
+msgid "Useful concepts and properties"
+msgstr ""
+
+#. @node in Documentation/user/changing-defaults.itely
+#. @subsection in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
+#. @node in Documentation/es/user/changing-defaults.itely
+#. @subsection in Documentation/es/user/changing-defaults.itely
+#. @node in Documentation/de/user/changing-defaults.itely
+#. @subsection in Documentation/de/user/changing-defaults.itely
+msgid "Input modes"
+msgstr ""
+
+#. @node in Documentation/user/changing-defaults.itely
+#. @subsection in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
+#. @node in Documentation/es/user/changing-defaults.itely
+#. @subsection in Documentation/es/user/changing-defaults.itely
+#. @node in Documentation/de/user/changing-defaults.itely
+#. @subsection in Documentation/de/user/changing-defaults.itely
+msgid "Direction and placement"
+msgstr ""
+
+#. @node in Documentation/user/changing-defaults.itely
+#. @subsection in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
+#. @node in Documentation/es/user/changing-defaults.itely
+#. @subsection in Documentation/es/user/changing-defaults.itely
+#. @node in Documentation/de/user/changing-defaults.itely
+#. @subsection in Documentation/de/user/changing-defaults.itely
+msgid "Distances and measurements"
+msgstr ""
+
+#. @node in Documentation/user/changing-defaults.itely
+#. @subsection in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
+#. @node in Documentation/es/user/changing-defaults.itely
+#. @subsection in Documentation/es/user/changing-defaults.itely
+#. @node in Documentation/de/user/changing-defaults.itely
+#. @subsection in Documentation/de/user/changing-defaults.itely
+msgid "Staff symbol properties"
+msgstr ""
+
+#. @node in Documentation/user/changing-defaults.itely
+#. @subsection in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
+#. @node in Documentation/es/user/changing-defaults.itely
+#. @subsection in Documentation/es/user/changing-defaults.itely
+#. @node in Documentation/de/user/changing-defaults.itely
+#. @subsection in Documentation/de/user/changing-defaults.itely
+msgid "Spanners"
+msgstr ""
+
+#. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/de/user/changing-defaults.itely
+msgid "Using the @code{spanner-interface}"
+msgstr ""
+
+#. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/de/user/changing-defaults.itely
+msgid "Using the @code{line-spanner-interface}"
+msgstr ""
+
+#. @node in Documentation/user/changing-defaults.itely
+#. @subsection in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
+#. @node in Documentation/es/user/changing-defaults.itely
+#. @subsection in Documentation/es/user/changing-defaults.itely
+#. @node in Documentation/de/user/changing-defaults.itely
+#. @subsection in Documentation/de/user/changing-defaults.itely
+msgid "Visibility of objects"
+msgstr ""
+
+#. @node in Documentation/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
+#. @node in Documentation/es/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
+#. @node in Documentation/de/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/de/user/changing-defaults.itely
+msgid "Removing the stencil"
+msgstr ""
+
+#. @node in Documentation/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
+#. @node in Documentation/es/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
+#. @node in Documentation/de/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/de/user/changing-defaults.itely
+msgid "Making objects transparent"
+msgstr ""
+
+#. @node in Documentation/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
+#. @node in Documentation/es/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
+#. @node in Documentation/de/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/de/user/changing-defaults.itely
+msgid "Painting objects white"
+msgstr ""
+
+#. @node in Documentation/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
+#. @node in Documentation/es/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
+#. @node in Documentation/de/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/de/user/changing-defaults.itely
+msgid "Using break-visibility"
+msgstr ""
+
+#. @node in Documentation/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
+#. @node in Documentation/es/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
+#. @node in Documentation/de/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/de/user/changing-defaults.itely
+msgid "Special considerations"
+msgstr ""
+
+#. @node in Documentation/user/changing-defaults.itely
+#. @subsection in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
+#. @node in Documentation/es/user/changing-defaults.itely
+#. @subsection in Documentation/es/user/changing-defaults.itely
+#. @node in Documentation/de/user/changing-defaults.itely
+#. @subsection in Documentation/de/user/changing-defaults.itely
+msgid "Line styles"
+msgstr ""
+
+#. @node in Documentation/user/changing-defaults.itely
+#. @subsection in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
+#. @node in Documentation/es/user/changing-defaults.itely
+#. @subsection in Documentation/es/user/changing-defaults.itely
+#. @node in Documentation/de/user/changing-defaults.itely
+#. @subsection in Documentation/de/user/changing-defaults.itely
+msgid "Rotating objects"
+msgstr ""
+
+#. @node in Documentation/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
+#. @node in Documentation/es/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
+#. @node in Documentation/de/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/de/user/changing-defaults.itely
+msgid "Rotating layout objects"
+msgstr ""
+
+#. @node in Documentation/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
+#. @node in Documentation/es/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
+#. @node in Documentation/de/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/de/user/changing-defaults.itely
+msgid "Rotating markup"
+msgstr ""
+
+#. @node in Documentation/user/changing-defaults.itely
+#. @section in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @section in Documentation/fr/user/changing-defaults.itely
+#. @node in Documentation/es/user/changing-defaults.itely
+#. @section in Documentation/es/user/changing-defaults.itely
+#. @node in Documentation/de/user/changing-defaults.itely
+#. @section in Documentation/de/user/changing-defaults.itely
+msgid "Advanced tweaks"
+msgstr ""
+
+#. @node in Documentation/user/changing-defaults.itely
+#. @subsection in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
+#. @node in Documentation/es/user/changing-defaults.itely
+#. @subsection in Documentation/es/user/changing-defaults.itely
+#. @node in Documentation/de/user/changing-defaults.itely
+#. @subsection in Documentation/de/user/changing-defaults.itely
+msgid "Aligning objects"
+msgstr ""
+
+#. @node in Documentation/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
+#. @node in Documentation/es/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
+#. @node in Documentation/de/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/de/user/changing-defaults.itely
+msgid "Setting @code{X-offset} and @code{Y-offset} directly"
+msgstr ""
+
+#. @node in Documentation/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
+#. @node in Documentation/es/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
+#. @node in Documentation/de/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/de/user/changing-defaults.itely
+msgid "Using the @code{side-position-interface}"
+msgstr ""
+
+#. @node in Documentation/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
+#. @node in Documentation/es/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
+#. @node in Documentation/de/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/de/user/changing-defaults.itely
+msgid "Using the @code{self-alignment-interface}"
+msgstr ""
+
+#. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/de/user/changing-defaults.itely
+msgid "Using the @code{aligned-on-parent} procedures"
+msgstr ""
+
+#. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/de/user/changing-defaults.itely
+msgid "Using the @code{centered-on-parent} procedures"
+msgstr ""
+
+#. @node in Documentation/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
+#. @node in Documentation/es/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
+msgid "Using the @code{break-alignable-interface}"
+msgstr ""
+
+#. @node in Documentation/user/changing-defaults.itely
+#. @subsection in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
+#. @node in Documentation/es/user/changing-defaults.itely
+#. @subsection in Documentation/es/user/changing-defaults.itely
+#. @node in Documentation/de/user/changing-defaults.itely
+#. @subsection in Documentation/de/user/changing-defaults.itely
+msgid "Vertical grouping of grobs"
+msgstr ""
+
+#. @node in Documentation/user/changing-defaults.itely
+#. @subsection in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
+#. @node in Documentation/es/user/changing-defaults.itely
+#. @subsection in Documentation/es/user/changing-defaults.itely
+#. @node in Documentation/de/user/changing-defaults.itely
+#. @subsection in Documentation/de/user/changing-defaults.itely
+msgid "Modifying stencils"
+msgstr ""
+
+#. @node in Documentation/user/changing-defaults.itely
+#. @subsection in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
+#. @node in Documentation/es/user/changing-defaults.itely
+#. @subsection in Documentation/es/user/changing-defaults.itely
+#. @node in Documentation/de/user/changing-defaults.itely
+#. @subsection in Documentation/de/user/changing-defaults.itely
+msgid "Modifying shapes"
+msgstr ""
+
+#. @node in Documentation/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
+#. @node in Documentation/es/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
+#. @node in Documentation/de/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/de/user/changing-defaults.itely
+msgid "Modifying ties and slurs"
+msgstr ""
+
+#. Documentation/user/programming-interface.itely:118 (variable)
+msgid "custosNote"
+msgstr ""
+
+#. Documentation/user/programming-interface.itely:178 (variable)
+msgid "manualBeam"
+msgstr ""
+
+#. Documentation/user/programming-interface.itely:198 (variable)
+msgid "AltOn"
+msgstr ""
+
+#. Documentation/user/programming-interface.itely:203 (variable)
+msgid "AltOff"
+msgstr ""
+
+#. Documentation/user/programming-interface.itely:216 (variable)
+msgid "withAlt"
+msgstr ""
+
+#. Documentation/user/programming-interface.itely:350 (variable)
+msgid "traLaLa"
+msgstr ""
+
+#. Documentation/user/programming-interface.itely:352 (comment)
+msgid "dummy action to deal with parser lookahead"
+msgstr ""
+
+#. @node in Documentation/user/programming-interface.itely
+#. @chapter in Documentation/user/programming-interface.itely
+#. @node in Documentation/fr/user/programming-interface.itely
+#. @chapter in Documentation/fr/user/programming-interface.itely
+#. @node in Documentation/es/user/programming-interface.itely
+#. @chapter in Documentation/es/user/programming-interface.itely
+#. @node in Documentation/de/user/programming-interface.itely
+#. @chapter in Documentation/de/user/programming-interface.itely
+msgid "Interfaces for programmers"
+msgstr ""
+
+#. @node in Documentation/user/programming-interface.itely
+#. @section in Documentation/user/programming-interface.itely
+#. @node in Documentation/fr/user/programming-interface.itely
+#. @section in Documentation/fr/user/programming-interface.itely
+#. @node in Documentation/es/user/programming-interface.itely
+#. @section in Documentation/es/user/programming-interface.itely
+#. @node in Documentation/de/user/programming-interface.itely
+#. @section in Documentation/de/user/programming-interface.itely
+msgid "Music functions"
+msgstr ""
+
+#. @node in Documentation/user/programming-interface.itely
+#. @subsection in Documentation/user/programming-interface.itely
+#. @node in Documentation/fr/user/programming-interface.itely
+#. @subsection in Documentation/fr/user/programming-interface.itely
+#. @node in Documentation/es/user/programming-interface.itely
+#. @subsection in Documentation/es/user/programming-interface.itely
+#. @node in Documentation/de/user/programming-interface.itely
+#. @subsection in Documentation/de/user/programming-interface.itely
+msgid "Overview of music functions"
+msgstr ""
+
+#. @node in Documentation/user/programming-interface.itely
+#. @subsection in Documentation/user/programming-interface.itely
+#. @node in Documentation/fr/user/programming-interface.itely
+#. @subsection in Documentation/fr/user/programming-interface.itely
+#. @node in Documentation/es/user/programming-interface.itely
+#. @subsection in Documentation/es/user/programming-interface.itely
+#. @node in Documentation/de/user/programming-interface.itely
+#. @subsection in Documentation/de/user/programming-interface.itely
+msgid "Simple substitution functions"
+msgstr ""
+
+#. @node in Documentation/user/programming-interface.itely
+#. @subsection in Documentation/user/programming-interface.itely
+#. @node in Documentation/fr/user/programming-interface.itely
+#. @subsection in Documentation/fr/user/programming-interface.itely
+#. @node in Documentation/es/user/programming-interface.itely
+#. @subsection in Documentation/es/user/programming-interface.itely
+#. @node in Documentation/de/user/programming-interface.itely
+#. @subsection in Documentation/de/user/programming-interface.itely
+msgid "Paired substitution functions"
+msgstr ""
+
+#. @node in Documentation/user/programming-interface.itely
+#. @subsection in Documentation/user/programming-interface.itely
+#. @node in Documentation/fr/user/programming-interface.itely
+#. @subsection in Documentation/fr/user/programming-interface.itely
+#. @node in Documentation/es/user/programming-interface.itely
+#. @subsection in Documentation/es/user/programming-interface.itely
+#. @node in Documentation/de/user/programming-interface.itely
+#. @subsection in Documentation/de/user/programming-interface.itely
+msgid "Mathematics in functions"
+msgstr ""
+
+#. @node in Documentation/user/programming-interface.itely
+#. @subsection in Documentation/user/programming-interface.itely
+#. @node in Documentation/fr/user/programming-interface.itely
+#. @subsection in Documentation/fr/user/programming-interface.itely
+#. @node in Documentation/es/user/programming-interface.itely
+#. @subsection in Documentation/es/user/programming-interface.itely
+#. @node in Documentation/de/user/programming-interface.itely
+#. @subsection in Documentation/de/user/programming-interface.itely
+msgid "Void functions"
+msgstr ""
+
+#. @node in Documentation/user/programming-interface.itely
+#. @subsection in Documentation/user/programming-interface.itely
+#. @node in Documentation/fr/user/programming-interface.itely
+#. @subsection in Documentation/fr/user/programming-interface.itely
+#. @node in Documentation/es/user/programming-interface.itely
+#. @subsection in Documentation/es/user/programming-interface.itely
+#. @node in Documentation/de/user/programming-interface.itely
+#. @subsection in Documentation/de/user/programming-interface.itely
+msgid "Functions without arguments"
+msgstr ""
+
+#. @node in Documentation/user/programming-interface.itely
+#. @subsection in Documentation/user/programming-interface.itely
+#. @node in Documentation/fr/user/programming-interface.itely
+#. @subsection in Documentation/fr/user/programming-interface.itely
+#. @node in Documentation/es/user/programming-interface.itely
+#. @subsection in Documentation/es/user/programming-interface.itely
+#. @node in Documentation/de/user/programming-interface.itely
+#. @subsection in Documentation/de/user/programming-interface.itely
+msgid "Overview of available music functions"
+msgstr ""
+
+#. @node in Documentation/user/programming-interface.itely
+#. @section in Documentation/user/programming-interface.itely
+#. @node in Documentation/fr/user/programming-interface.itely
+#. @section in Documentation/fr/user/programming-interface.itely
+#. @node in Documentation/es/user/programming-interface.itely
+#. @section in Documentation/es/user/programming-interface.itely
+#. @node in Documentation/de/user/programming-interface.itely
+#. @section in Documentation/de/user/programming-interface.itely
+msgid "Programmer interfaces"
+msgstr ""
+
+#. @node in Documentation/user/programming-interface.itely
+#. @subsection in Documentation/user/programming-interface.itely
+#. @node in Documentation/fr/user/programming-interface.itely
+#. @subsection in Documentation/fr/user/programming-interface.itely
+#. @node in Documentation/es/user/programming-interface.itely
+#. @subsection in Documentation/es/user/programming-interface.itely
+#. @node in Documentation/de/user/programming-interface.itely
+#. @subsection in Documentation/de/user/programming-interface.itely
+msgid "Input variables and Scheme"
+msgstr ""
+
+#. @node in Documentation/user/programming-interface.itely
+#. @subsection in Documentation/user/programming-interface.itely
+#. @node in Documentation/fr/user/programming-interface.itely
+#. @subsection in Documentation/fr/user/programming-interface.itely
+#. @node in Documentation/es/user/programming-interface.itely
+#. @subsection in Documentation/es/user/programming-interface.itely
+#. @node in Documentation/de/user/programming-interface.itely
+#. @subsection in Documentation/de/user/programming-interface.itely
+msgid "Internal music representation"
+msgstr ""
+
+#. @node in Documentation/user/programming-interface.itely
+#. @section in Documentation/user/programming-interface.itely
+#. @node in Documentation/fr/user/programming-interface.itely
+#. @section in Documentation/fr/user/programming-interface.itely
+#. @node in Documentation/es/user/programming-interface.itely
+#. @section in Documentation/es/user/programming-interface.itely
+#. @node in Documentation/de/user/programming-interface.itely
+#. @section in Documentation/de/user/programming-interface.itely
+msgid "Building complicated functions"
+msgstr ""
+
+#. @node in Documentation/user/programming-interface.itely
+#. @subsection in Documentation/user/programming-interface.itely
+#. @node in Documentation/fr/user/programming-interface.itely
+#. @subsection in Documentation/fr/user/programming-interface.itely
+#. @node in Documentation/es/user/programming-interface.itely
+#. @subsection in Documentation/es/user/programming-interface.itely
+#. @node in Documentation/de/user/programming-interface.itely
+#. @subsection in Documentation/de/user/programming-interface.itely
+msgid "Displaying music expressions"
+msgstr ""
+
+#. @node in Documentation/user/programming-interface.itely
+#. @subsection in Documentation/user/programming-interface.itely
+#. @node in Documentation/fr/user/programming-interface.itely
+#. @subsection in Documentation/fr/user/programming-interface.itely
+#. @node in Documentation/es/user/programming-interface.itely
+#. @subsection in Documentation/es/user/programming-interface.itely
+#. @node in Documentation/de/user/programming-interface.itely
+#. @subsection in Documentation/de/user/programming-interface.itely
+msgid "Music properties"
+msgstr ""
+
+#. @node in Documentation/user/programming-interface.itely
+#. @subsection in Documentation/user/programming-interface.itely
+#. @node in Documentation/fr/user/programming-interface.itely
+#. @subsection in Documentation/fr/user/programming-interface.itely
+#. @node in Documentation/es/user/programming-interface.itely
+#. @subsection in Documentation/es/user/programming-interface.itely
+#. @node in Documentation/de/user/programming-interface.itely
+#. @subsection in Documentation/de/user/programming-interface.itely
+msgid "Doubling a note with slurs (example)"
+msgstr ""
+
+#. @node in Documentation/user/programming-interface.itely
+#. @subsection in Documentation/user/programming-interface.itely
+#. @node in Documentation/fr/user/programming-interface.itely
+#. @subsection in Documentation/fr/user/programming-interface.itely
+#. @node in Documentation/es/user/programming-interface.itely
+#. @subsection in Documentation/es/user/programming-interface.itely
+#. @node in Documentation/de/user/programming-interface.itely
+#. @subsection in Documentation/de/user/programming-interface.itely
+msgid "Adding articulation to notes (example)"
+msgstr ""
+
+#. @node in Documentation/user/programming-interface.itely
+#. @section in Documentation/user/programming-interface.itely
+#. @node in Documentation/fr/user/programming-interface.itely
+#. @section in Documentation/fr/user/programming-interface.itely
+#. @node in Documentation/es/user/programming-interface.itely
+#. @section in Documentation/es/user/programming-interface.itely
+#. @node in Documentation/de/user/programming-interface.itely
+#. @section in Documentation/de/user/programming-interface.itely
+msgid "Markup programmer interface"
+msgstr ""
+
+#. @node in Documentation/user/programming-interface.itely
+#. @subsection in Documentation/user/programming-interface.itely
+#. @node in Documentation/fr/user/programming-interface.itely
+#. @subsection in Documentation/fr/user/programming-interface.itely
+#. @node in Documentation/es/user/programming-interface.itely
+#. @subsection in Documentation/es/user/programming-interface.itely
+#. @node in Documentation/de/user/programming-interface.itely
+#. @subsection in Documentation/de/user/programming-interface.itely
+msgid "Markup construction in Scheme"
+msgstr ""
+
+#. @node in Documentation/user/programming-interface.itely
+#. @subsection in Documentation/user/programming-interface.itely
+#. @node in Documentation/fr/user/programming-interface.itely
+#. @subsection in Documentation/fr/user/programming-interface.itely
+#. @node in Documentation/es/user/programming-interface.itely
+#. @subsection in Documentation/es/user/programming-interface.itely
+#. @node in Documentation/de/user/programming-interface.itely
+#. @subsection in Documentation/de/user/programming-interface.itely
+msgid "How markups work internally"
+msgstr ""
+
+#. @node in Documentation/user/programming-interface.itely
+#. @subsection in Documentation/user/programming-interface.itely
+#. @node in Documentation/fr/user/programming-interface.itely
+#. @subsection in Documentation/fr/user/programming-interface.itely
+#. @node in Documentation/es/user/programming-interface.itely
+#. @subsection in Documentation/es/user/programming-interface.itely
+#. @node in Documentation/de/user/programming-interface.itely
+#. @subsection in Documentation/de/user/programming-interface.itely
+msgid "New markup command definition"
+msgstr ""
+
+#. @node in Documentation/user/programming-interface.itely
+#. @subsection in Documentation/user/programming-interface.itely
+#. @node in Documentation/fr/user/programming-interface.itely
+#. @subsection in Documentation/fr/user/programming-interface.itely
+#. @node in Documentation/es/user/programming-interface.itely
+#. @subsection in Documentation/es/user/programming-interface.itely
+#. @node in Documentation/de/user/programming-interface.itely
+#. @subsection in Documentation/de/user/programming-interface.itely
+msgid "New markup list command definition"
+msgstr ""
+
+#. @node in Documentation/user/programming-interface.itely
+#. @section in Documentation/user/programming-interface.itely
+#. @node in Documentation/fr/user/programming-interface.itely
+#. @section in Documentation/fr/user/programming-interface.itely
+#. @node in Documentation/es/user/programming-interface.itely
+#. @section in Documentation/es/user/programming-interface.itely
+#. @node in Documentation/de/user/programming-interface.itely
+#. @section in Documentation/de/user/programming-interface.itely
+msgid "Contexts for programmers"
+msgstr ""
+
+#. @node in Documentation/user/programming-interface.itely
+#. @subsection in Documentation/user/programming-interface.itely
+#. @node in Documentation/fr/user/programming-interface.itely
+#. @subsection in Documentation/fr/user/programming-interface.itely
+#. @node in Documentation/es/user/programming-interface.itely
+#. @subsection in Documentation/es/user/programming-interface.itely
+#. @node in Documentation/de/user/programming-interface.itely
+#. @subsection in Documentation/de/user/programming-interface.itely
+msgid "Context evaluation"
+msgstr ""
+
+#. @node in Documentation/user/programming-interface.itely
+#. @subsection in Documentation/user/programming-interface.itely
+#. @node in Documentation/fr/user/programming-interface.itely
+#. @subsection in Documentation/fr/user/programming-interface.itely
+#. @node in Documentation/es/user/programming-interface.itely
+#. @subsection in Documentation/es/user/programming-interface.itely
+#. @node in Documentation/de/user/programming-interface.itely
+#. @subsection in Documentation/de/user/programming-interface.itely
+msgid "Running a function on all layout objects"
+msgstr ""
+
+#. @node in Documentation/user/programming-interface.itely
+#. @section in Documentation/user/programming-interface.itely
+#. @node in Documentation/fr/user/programming-interface.itely
+#. @section in Documentation/fr/user/programming-interface.itely
+#. @node in Documentation/es/user/programming-interface.itely
+#. @section in Documentation/es/user/programming-interface.itely
+#. @node in Documentation/de/user/programming-interface.itely
+#. @section in Documentation/de/user/programming-interface.itely
+msgid "Scheme procedures as properties"
+msgstr ""
+
+#. @node in Documentation/user/programming-interface.itely
+#. @node in Documentation/es/user/programming-interface.itely
+#. @node in Documentation/de/user/programming-interface.itely
+msgid "Using Scheme code instead of \\tweak"
+msgstr ""
+
+#. @section in Documentation/user/programming-interface.itely
+#. @section in Documentation/fr/user/programming-interface.itely
+#. @section in Documentation/es/user/programming-interface.itely
+#. @section in Documentation/de/user/programming-interface.itely
+msgid "Using Scheme code instead of @code{\\tweak}"
+msgstr ""
+
+#. @node in Documentation/user/programming-interface.itely
+#. @section in Documentation/user/programming-interface.itely
+#. @node in Documentation/fr/user/programming-interface.itely
+#. @section in Documentation/fr/user/programming-interface.itely
+#. @node in Documentation/es/user/programming-interface.itely
+#. @section in Documentation/es/user/programming-interface.itely
+#. @node in Documentation/de/user/programming-interface.itely
+#. @section in Documentation/de/user/programming-interface.itely
+msgid "Difficult tweaks"
+msgstr ""
+
+#. @node in Documentation/user/literature.itely
+#. @appendix in Documentation/user/literature.itely
+#. @node in Documentation/fr/user/literature.itely
+#. @appendix in Documentation/fr/user/literature.itely
+#. @node in Documentation/es/user/literature.itely
+#. @appendix in Documentation/es/user/literature.itely
+#. @node in Documentation/de/user/literature.itely
+#. @appendix in Documentation/de/user/literature.itely
+msgid "Literature list"
+msgstr ""
+
+#. @node in Documentation/user/notation-appendices.itely
+#. @appendix in Documentation/user/notation-appendices.itely
+#. @node in Documentation/fr/user/notation-appendices.itely
+#. @appendix in Documentation/fr/user/notation-appendices.itely
+#. @node in Documentation/es/user/notation-appendices.itely
+#. @appendix in Documentation/es/user/notation-appendices.itely
+#. @node in Documentation/de/user/notation-appendices.itely
+#. @appendix in Documentation/de/user/notation-appendices.itely
+msgid "Notation manual tables"
+msgstr ""
+
+#. @node in Documentation/user/notation-appendices.itely
+#. @appendixsec in Documentation/user/notation-appendices.itely
+#. @node in Documentation/fr/user/notation-appendices.itely
+#. @appendixsec in Documentation/fr/user/notation-appendices.itely
+#. @node in Documentation/es/user/notation-appendices.itely
+#. @appendixsec in Documentation/es/user/notation-appendices.itely
+#. @node in Documentation/de/user/notation-appendices.itely
+#. @appendixsec in Documentation/de/user/notation-appendices.itely
+msgid "Chord name chart"
+msgstr ""
+
+#. @node in Documentation/user/notation-appendices.itely
+#. @appendixsec in Documentation/user/notation-appendices.itely
+#. @node in Documentation/fr/user/notation-appendices.itely
+#. @appendixsec in Documentation/fr/user/notation-appendices.itely
+#. @node in Documentation/es/user/notation-appendices.itely
+#. @appendixsec in Documentation/es/user/notation-appendices.itely
+#. @node in Documentation/de/user/notation-appendices.itely
+#. @appendixsec in Documentation/de/user/notation-appendices.itely
+msgid "Common chord modifiers"
+msgstr ""
+
+#. @node in Documentation/user/notation-appendices.itely
+#. @appendixsec in Documentation/user/notation-appendices.itely
+#. @node in Documentation/fr/user/notation-appendices.itely
+#. @appendixsec in Documentation/fr/user/notation-appendices.itely
+#. @node in Documentation/es/user/notation-appendices.itely
+#. @appendixsec in Documentation/es/user/notation-appendices.itely
+#. @node in Documentation/de/user/notation-appendices.itely
+#. @appendixsec in Documentation/de/user/notation-appendices.itely
+msgid "Predefined fretboard diagrams"
+msgstr ""
+
+#. @node in Documentation/user/notation-appendices.itely
+#. @appendixsec in Documentation/user/notation-appendices.itely
+#. @node in Documentation/fr/user/notation-appendices.itely
+#. @appendixsec in Documentation/fr/user/notation-appendices.itely
+#. @node in Documentation/es/user/notation-appendices.itely
+#. @appendixsec in Documentation/es/user/notation-appendices.itely
+#. @node in Documentation/de/user/notation-appendices.itely
+#. @appendixsec in Documentation/de/user/notation-appendices.itely
+msgid "MIDI instruments"
+msgstr ""
+
+#. @node in Documentation/user/notation-appendices.itely
+#. @appendixsec in Documentation/user/notation-appendices.itely
+#. @node in Documentation/fr/user/notation-appendices.itely
+#. @appendixsec in Documentation/fr/user/notation-appendices.itely
+#. @node in Documentation/es/user/notation-appendices.itely
+#. @appendixsec in Documentation/es/user/notation-appendices.itely
+#. @node in Documentation/de/user/notation-appendices.itely
+#. @appendixsec in Documentation/de/user/notation-appendices.itely
+msgid "List of colors"
+msgstr ""
+
+#. @subsubheading in Documentation/user/notation-appendices.itely
+#. @subsubheading in Documentation/fr/user/notation-appendices.itely
+#. @subsubheading in Documentation/es/user/notation-appendices.itely
+#. @subsubheading in Documentation/de/user/notation-appendices.itely
+msgid "Normal colors"
+msgstr ""
+
+#. @subsubheading in Documentation/user/notation-appendices.itely
+#. @subsubheading in Documentation/fr/user/notation-appendices.itely
+#. @subsubheading in Documentation/es/user/notation-appendices.itely
+#. @subsubheading in Documentation/de/user/notation-appendices.itely
+msgid "X color names"
+msgstr ""
+
+#. @subsubheading in Documentation/user/notation-appendices.itely
+#. @subsubheading in Documentation/fr/user/notation-appendices.itely
+#. @subsubheading in Documentation/es/user/notation-appendices.itely
+#. @subsubheading in Documentation/de/user/notation-appendices.itely
+msgid "Color Names without a numerical suffix:"
+msgstr ""
+
+#. @subsubheading in Documentation/user/notation-appendices.itely
+#. @subsubheading in Documentation/fr/user/notation-appendices.itely
+#. @subsubheading in Documentation/es/user/notation-appendices.itely
+#. @subsubheading in Documentation/de/user/notation-appendices.itely
+msgid "Color names with a numerical suffix"
+msgstr ""
+
+#. @subsubheading in Documentation/user/notation-appendices.itely
+#. @subsubheading in Documentation/fr/user/notation-appendices.itely
+#. @subsubheading in Documentation/es/user/notation-appendices.itely
+#. @subsubheading in Documentation/de/user/notation-appendices.itely
+msgid "Grey Scale"
+msgstr ""
+
+#. @node in Documentation/user/notation-appendices.itely
+#. @appendixsec in Documentation/user/notation-appendices.itely
+#. @node in Documentation/fr/user/notation-appendices.itely
+#. @appendixsec in Documentation/fr/user/notation-appendices.itely
+#. @node in Documentation/es/user/notation-appendices.itely
+#. @appendixsec in Documentation/es/user/notation-appendices.itely
+#. @node in Documentation/de/user/notation-appendices.itely
+#. @appendixsec in Documentation/de/user/notation-appendices.itely
+msgid "The Feta font"
+msgstr ""
+
+#. @node in Documentation/user/notation-appendices.itely
+#. @appendixsec in Documentation/user/notation-appendices.itely
+#. @node in Documentation/fr/user/notation-appendices.itely
+#. @appendixsec in Documentation/fr/user/notation-appendices.itely
+#. @node in Documentation/es/user/notation-appendices.itely
+#. @appendixsec in Documentation/es/user/notation-appendices.itely
+#. @node in Documentation/de/user/notation-appendices.itely
+#. @appendixsec in Documentation/de/user/notation-appendices.itely
+msgid "Note head styles"
+msgstr ""
+
+#. @node in Documentation/user/notation-appendices.itely
+#. @appendixsec in Documentation/user/notation-appendices.itely
+#. @node in Documentation/fr/user/notation-appendices.itely
+#. @appendixsec in Documentation/fr/user/notation-appendices.itely
+#. @node in Documentation/es/user/notation-appendices.itely
+#. @appendixsec in Documentation/es/user/notation-appendices.itely
+#. @node in Documentation/de/user/notation-appendices.itely
+#. @appendixsec in Documentation/de/user/notation-appendices.itely
+msgid "List of articulations"
+msgstr ""
+
+#. @node in Documentation/user/notation-appendices.itely
+#. @appendixsec in Documentation/user/notation-appendices.itely
+#. @node in Documentation/fr/user/notation-appendices.itely
+#. @appendixsec in Documentation/fr/user/notation-appendices.itely
+#. @node in Documentation/es/user/notation-appendices.itely
+#. @appendixsec in Documentation/es/user/notation-appendices.itely
+#. @node in Documentation/de/user/notation-appendices.itely
+#. @appendixsec in Documentation/de/user/notation-appendices.itely
+msgid "Percussion notes"
+msgstr ""
+
+#. @node in Documentation/user/notation-appendices.itely
+#. @appendixsec in Documentation/user/notation-appendices.itely
+#. @node in Documentation/fr/user/notation-appendices.itely
+#. @appendixsec in Documentation/fr/user/notation-appendices.itely
+#. @node in Documentation/es/user/notation-appendices.itely
+#. @appendixsec in Documentation/es/user/notation-appendices.itely
+#. @node in Documentation/de/user/notation-appendices.itely
+#. @appendixsec in Documentation/de/user/notation-appendices.itely
+msgid "All context properties"
+msgstr ""
+
+#. @node in Documentation/user/notation-appendices.itely
+#. @appendixsec in Documentation/user/notation-appendices.itely
+#. @node in Documentation/fr/user/notation-appendices.itely
+#. @appendixsec in Documentation/fr/user/notation-appendices.itely
+#. @node in Documentation/es/user/notation-appendices.itely
+#. @appendixsec in Documentation/es/user/notation-appendices.itely
+#. @node in Documentation/de/user/notation-appendices.itely
+#. @appendixsec in Documentation/de/user/notation-appendices.itely
+msgid "Layout properties"
+msgstr ""
+
+#. @node in Documentation/user/notation-appendices.itely
+#. @appendixsec in Documentation/user/notation-appendices.itely
+#. @node in Documentation/fr/user/notation-appendices.itely
+#. @appendixsec in Documentation/fr/user/notation-appendices.itely
+#. @node in Documentation/es/user/notation-appendices.itely
+#. @appendixsec in Documentation/es/user/notation-appendices.itely
+#. @node in Documentation/de/user/notation-appendices.itely
+#. @appendixsec in Documentation/de/user/notation-appendices.itely
+msgid "Identifiers"
+msgstr ""
+
+#. @node in Documentation/user/notation-appendices.itely
+#. @appendixsec in Documentation/user/notation-appendices.itely
+#. @node in Documentation/fr/user/notation-appendices.itely
+#. @appendixsec in Documentation/fr/user/notation-appendices.itely
+#. @node in Documentation/es/user/notation-appendices.itely
+#. @appendixsec in Documentation/es/user/notation-appendices.itely
+#. @node in Documentation/de/user/notation-appendices.itely
+#. @appendixsec in Documentation/de/user/notation-appendices.itely
+msgid "Scheme functions"
+msgstr ""
+
+#. @node in Documentation/user/cheatsheet.itely
+#. @appendix in Documentation/user/cheatsheet.itely
+#. @node in Documentation/fr/user/cheatsheet.itely
+#. @appendix in Documentation/fr/user/cheatsheet.itely
+#. @node in Documentation/es/user/cheatsheet.itely
+#. @appendix in Documentation/es/user/cheatsheet.itely
+#. @node in Documentation/de/user/cheatsheet.itely
+#. @appendix in Documentation/de/user/cheatsheet.itely
+msgid "Cheat sheet"
+msgstr ""
+
+#. @top in Documentation/fr/user/lilypond-learning.tely
+#, fuzzy
+msgid "GNU LilyPond --- Manuel d'initiation"
+msgstr "GNU LilyPond --- アプリケーション使用方法"
+
+#. @subsubheading in Documentation/fr/user/macros.itexi
+#. @subsubheading in Documentation/de/user/macros.itexi
+msgid "Commonly tweaked properties"
+msgstr ""
+
+#. @subheading in Documentation/fr/user/tutorial.itely
+msgid "Hauteurs"
+msgstr ""
+
+#. @subheading in Documentation/fr/user/tutorial.itely
+msgid "Durées et rythme"
+msgstr ""
+
+#. @subheading in Documentation/fr/user/tutorial.itely
+msgid "Silences"
+msgstr ""
+
+#. @subheading in Documentation/fr/user/tutorial.itely
+msgid "Métrique"
+msgstr ""
+
+#. @subheading in Documentation/fr/user/tutorial.itely
+msgid "Tout ensemble"
+msgstr ""
+
+#. @subheading in Documentation/fr/user/tutorial.itely
+msgid "Exemples cliquables"
+msgstr ""
+
+#. @node in Documentation/fr/user/tweaks.itely
+#. @subsection in Documentation/fr/user/tweaks.itely
+msgid "Outside staff objects"
+msgstr ""
+
+#. @node in Documentation/fr/user/working.itely
+#. @subsection in Documentation/fr/user/working.itely
+#. @node in Documentation/es/user/working.itely
+#. @subsection in Documentation/es/user/working.itely
+#. @node in Documentation/de/user/working.itely
+#. @subsection in Documentation/de/user/working.itely
+msgid "Updating old files"
+msgstr ""
+
+#. @top in Documentation/fr/user/lilypond-program.tely
+#, fuzzy
+msgid "GNU LilyPond --- Utilisation des programmes"
+msgstr "GNU LilyPond --- アプリケーション使用方法"
+
+#. @section in Documentation/fr/user/running.itely
+#, fuzzy
+msgid "Updating with @command{convert-ly}"
+msgstr "@command{convert-ly} を使ってファイルを更新する"
+
+#. @top in Documentation/fr/user/lilypond.tely
+#, fuzzy
+msgid "GNU LilyPond --- Manuel de notation"
+msgstr "GNU LilyPond --- アプリケーション使用方法"
+
+#. @node in Documentation/fr/user/repeats.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/repeats.itely
+msgid "Repeat types"
+msgstr ""
+
+#. @node in Documentation/fr/user/repeats.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/repeats.itely
+msgid "Repeat syntax"
+msgstr ""
+
+#. @node in Documentation/fr/user/repeats.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/repeats.itely
+msgid "Manual repeat commands"
+msgstr ""
+
+#. @node in Documentation/fr/user/repeats.itely
+#. @subsection in Documentation/fr/user/repeats.itely
+msgid "Other repeats"
+msgstr ""
+
+#. @node in Documentation/fr/user/repeats.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/repeats.itely
+msgid "Tremolo subdivisions"
+msgstr ""
+
+#. @node in Documentation/fr/user/repeats.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/repeats.itely
+msgid "Measure repeats"
+msgstr ""
+
+#. @node in Documentation/fr/user/simultaneous.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/simultaneous.itely
+#, fuzzy
+msgid "Basic polyphony"
+msgstr "多声"
+
+#. @node in Documentation/fr/user/editorial.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/editorial.itely
+msgid "Blank music sheet"
+msgstr ""
+
+#. @node in Documentation/fr/user/text.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/text.itely
+msgid "Text and line spanners"
+msgstr ""
+
+#. @node in Documentation/fr/user/text.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/text.itely
+msgid "Nested scores"
+msgstr ""
+
+#. @node in Documentation/fr/user/text.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/text.itely
+msgid "Page wrapping text"
+msgstr ""
+
+#. @subsubheading in Documentation/fr/user/vocal.itely
+msgid "Mélismes dans certaines strophes seulement"
+msgstr ""
+
+#. @subsubheading in Documentation/fr/user/vocal.itely
+msgid "Basculer vers une mélodie alternative"
+msgstr ""
+
+#. @node in Documentation/fr/user/ancient.itely
+#. @subsection in Documentation/fr/user/ancient.itely
+#. @node in Documentation/de/user/ancient.itely
+#. @subsection in Documentation/de/user/ancient.itely
+msgid "Introduction to ancient notation"
+msgstr ""
+
+#. @node in Documentation/fr/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/ancient.itely
+#. @node in Documentation/de/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/de/user/ancient.itely
+msgid "Ancient notation supported"
+msgstr ""
+
+#. @node in Documentation/fr/user/ancient.itely
+#. @subsection in Documentation/fr/user/ancient.itely
+#. @node in Documentation/de/user/ancient.itely
+#. @subsection in Documentation/de/user/ancient.itely
+msgid "Alternative note signs"
+msgstr ""
+
+#. @node in Documentation/fr/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/ancient.itely
+#. @node in Documentation/de/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/de/user/ancient.itely
+msgid "Ancient note heads"
+msgstr ""
+
+#. @node in Documentation/fr/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/ancient.itely
+#. @node in Documentation/de/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/de/user/ancient.itely
+#, fuzzy
+msgid "Ancient accidentals"
+msgstr "臨時記号"
+
+#. @node in Documentation/fr/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/ancient.itely
+#. @node in Documentation/de/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/de/user/ancient.itely
+msgid "Ancient rests"
+msgstr ""
+
+#. @node in Documentation/fr/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/ancient.itely
+#. @node in Documentation/de/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/de/user/ancient.itely
+#, fuzzy
+msgid "Ancient clefs"
+msgstr "臨時記号"
+
+#. @node in Documentation/fr/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/ancient.itely
+#. @node in Documentation/de/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/de/user/ancient.itely
+#, fuzzy
+msgid "Ancient flags"
+msgstr "臨時記号"
+
+#. @node in Documentation/fr/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/ancient.itely
+#. @node in Documentation/de/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/de/user/ancient.itely
+#, fuzzy
+msgid "Ancient time signatures"
+msgstr "拍子記号"
+
+#. @node in Documentation/fr/user/ancient.itely
+#. @subsection in Documentation/fr/user/ancient.itely
+#. @node in Documentation/de/user/ancient.itely
+#. @subsection in Documentation/de/user/ancient.itely
+msgid "Additional note signs"
+msgstr ""
+
+#. @node in Documentation/fr/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/ancient.itely
+#. @node in Documentation/de/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/de/user/ancient.itely
+#, fuzzy
+msgid "Ancient articulations"
+msgstr "アーティキュレーション"
+
+#. @node in Documentation/fr/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/ancient.itely
+#. @node in Documentation/de/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/de/user/ancient.itely
+msgid "Gregorian square neumes ligatures"
+msgstr ""
+
+#. @node in Documentation/fr/user/ancient.itely
+#. @subsection in Documentation/fr/user/ancient.itely
+#. @node in Documentation/de/user/ancient.itely
+#. @subsection in Documentation/de/user/ancient.itely
+msgid "Transcribing ancient music"
+msgstr ""
+
+#. @node in Documentation/fr/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/ancient.itely
+#. @node in Documentation/de/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/de/user/ancient.itely
+#, fuzzy
+msgid "Annotational accidentals"
+msgstr "臨時記号"
+
+#. @node in Documentation/fr/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/ancient.itely
+#. @node in Documentation/de/user/ancient.itely
+#. @unnumberedsubsubsec in Documentation/de/user/ancient.itely
+msgid "Baroque rhythmic notation"
+msgstr ""
+
+#. @section in Documentation/fr/user/spacing.itely
+msgid "Horizontal Spacing"
+msgstr ""
+
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
+msgid "Layout tunings within contexts"
+msgstr ""
+
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
+msgid "Constructing a tweak"
+msgstr ""
+
+#. @node in Documentation/fr/user/programming-interface.itely
+msgid "Using Scheme code instead of tweak"
+msgstr ""
+
+#. @top in Documentation/es/user/lilypond-learning.tely
+msgid "GNU LilyPond: Manual de aprendizaje"
+msgstr ""
+
+#. @subsubheading in Documentation/es/user/macros.itexi
+msgid "Instrucciones predefinidas"
+msgstr ""
+
+#. @subsubheading in Documentation/es/user/macros.itexi
+msgid "Fragmentos de código seleccionados"
+msgstr ""
+
+#. @subsubheading in Documentation/es/user/macros.itexi
+msgid "Propiedades trucadas frecuentemente"
+msgstr ""
+
+#. @subsubheading in Documentation/es/user/macros.itexi
+msgid "Véase también"
+msgstr ""
+
+#. @subsubheading in Documentation/es/user/macros.itexi
+msgid "Advertencias y problemas conocidos"
+msgstr ""
+
+#. @node in Documentation/es/user/tweaks.itely
+#. @subsection in Documentation/es/user/tweaks.itely
+#, fuzzy
+msgid "Automatic behaviour"
+msgstr "自動譜刻"
+
+#. @node in Documentation/es/user/working.itely
+#. @section in Documentation/es/user/working.itely
+msgid "Suggestions for writing LilyPond files"
+msgstr ""
+
+#. @top in Documentation/es/user/lilypond-program.tely
+msgid "GNU LilyPond: Manual de utilización del programa"
+msgstr ""
+
+#. @top in Documentation/es/user/lilypond.tely
+msgid "GNU LilyPond: Manual de referencia de la notación"
+msgstr ""
+
+#. @chapheading in Documentation/es/user/lilypond.tely
+msgid "El tipografiador de música"
+msgstr ""
+
+#. @top in Documentation/de/user/lilypond-learning.tely
+#, fuzzy
+msgid "GNU LilyPond -- Handbuch zum Lernen"
+msgstr "GNU LilyPond --- 学習マニュアル"
+
+#. @node in Documentation/de/user/templates.itely
+#. @appendixsec in Documentation/de/user/templates.itely
+msgid "Lilypond-book templates"
+msgstr ""
+
+#. @top in Documentation/de/user/lilypond-program.tely
+#, fuzzy
+msgid "GNU LilyPond -- Programmbenutzung"
+msgstr "GNU LilyPond --- 学習マニュアル"
+
+#. @chapheading in Documentation/de/user/lilypond.tely
+msgid "Das Notensatzprogramm"
+msgstr ""
+
+#. @subsubheading in Documentation/de/user/vocal.itely
+msgid "Ignorieren von Melismen"
+msgstr ""
+
+#. @node in Documentation/de/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/de/user/changing-defaults.itely
+msgid "Using the @code{break-aligned-interface}"
+msgstr ""
+
+#. @top in Documentation/ja/user/lilypond-learning.tely
+msgid "GNU LilyPond --- 学習マニュアル"
+msgstr ""
+
+#. @top in Documentation/ja/user/lilypond-program.tely
+msgid "GNU LilyPond --- アプリケーション使用方法"
+msgstr ""
+
+#. input/lsr/accordion-discant-symbols.ly:34 (variable)
+msgid "discant"
+msgstr ""
+
+#. input/lsr/accordion-discant-symbols.ly:37 (variable)
+msgid "dot"
+msgstr ""
+
+#. input/lsr/accordion-discant-symbols.ly:43 (comment)
+msgid "16 voets register"
+msgstr ""
+
+#. input/lsr/accordion-discant-symbols.ly:44 (variable)
+msgid "accBasson"
+msgstr ""
+
+#. input/lsr/accordion-discant-symbols.ly:50 (comment)
+msgid "een korig 8 en 16 voets register"
+msgstr ""
+
+#. input/lsr/accordion-discant-symbols.ly:51 (variable)
+msgid "accBandon"
+msgstr ""
+
+#. input/lsr/accordion-discant-symbols.ly:59 (variable)
+msgid "accVCello"
+msgstr ""
+
+#. input/lsr/accordion-discant-symbols.ly:69 (comment)
+msgid "4-8-16 voets register"
+msgstr ""
+
+#. input/lsr/accordion-discant-symbols.ly:70 (variable)
+msgid "accHarmon"
+msgstr ""
+
+#. input/lsr/accordion-discant-symbols.ly:80 (variable)
+msgid "accTrombon"
+msgstr ""
+
+#. input/lsr/accordion-discant-symbols.ly:92 (comment)
+msgid "eenkorig 4 en 16 voets register"
+msgstr ""
+
+#. input/lsr/accordion-discant-symbols.ly:93 (variable)
+msgid "accOrgan"
+msgstr ""
+
+#. input/lsr/accordion-discant-symbols.ly:101 (variable)
+msgid "accMaster"
+msgstr ""
+
+#. input/lsr/accordion-discant-symbols.ly:115 (variable)
+msgid "accAccord"
+msgstr ""
+
+#. input/lsr/accordion-discant-symbols.ly:127 (variable)
+msgid "accMusette"
+msgstr ""
+
+#. input/lsr/accordion-discant-symbols.ly:137 (variable)
+msgid "accCeleste"
+msgstr ""
+
+#. input/lsr/accordion-discant-symbols.ly:145 (variable)
+msgid "accOboe"
+msgstr ""
+
+#. input/lsr/accordion-discant-symbols.ly:153 (variable)
+msgid "accClarin"
+msgstr ""
+
+#. input/lsr/accordion-discant-symbols.ly:159 (variable)
+msgid "accPiccolo"
+msgstr ""
+
+#. input/lsr/accordion-discant-symbols.ly:165 (variable)
+msgid "accViolin"
+msgstr ""
+
+#. input/lsr/adding-a-figured-bass-above-or-below-the-notes.ly:41 (variable)
+#. input/lsr/jazz-combo-template.ly:231 (variable)
+#. input/lsr/jazz-combo-template.ly:279 (context id)
+msgid "bass"
+msgstr ""
+
+#. input/lsr/adding-a-figured-bass-above-or-below-the-notes.ly:42 (variable)
+msgid "continuo"
+msgstr ""
+
+#. input/lsr/adding-a-figured-bass-above-or-below-the-notes.ly:53 (context id)
+#. input/lsr/adding-a-figured-bass-above-or-below-the-notes.ly:54 (context id)
+msgid "bassStaff"
+msgstr ""
+
+#. input/lsr/adding-an-extra-staff-at-a-line-break.ly:52 (comment)
+msgid "The next line is not needed in 2.11.x or later:"
+msgstr ""
+
+#. input/lsr/adding-drum-parts.ly:46 (variable)
+msgid "drh"
+msgstr ""
+
+#. input/lsr/adding-drum-parts.ly:47 (variable)
+msgid "drl"
+msgstr ""
+
+#. input/lsr/adding-drum-parts.ly:48 (variable)
+msgid "timb"
+msgstr ""
+
+#. input/lsr/adding-fingerings-to-tablatures.ly:25 (variable)
+msgid "threeTwo"
+msgstr ""
+
+#. input/lsr/adding-fingerings-to-tablatures.ly:32 (variable)
+msgid "threeFour"
+msgstr ""
+
+#. input/lsr/adding-the-current-date-to-a-score.ly:29 (comment)
+msgid "first, define a variable to hold the formatted date:"
+msgstr ""
+
+#. input/lsr/adding-the-current-date-to-a-score.ly:30 (variable)
+msgid "date"
+msgstr ""
+
+#. input/lsr/adding-the-current-date-to-a-score.ly:30 (comment)
+msgid "d-%m-%Y\\\" (localtime (current-time)))"
+msgstr ""
+
+#. input/lsr/adding-the-current-date-to-a-score.ly:32 (comment)
+msgid "use it in the title block:"
+msgstr ""
+
+#. input/lsr/adding-the-current-date-to-a-score.ly:43 (comment)
+msgid "and use it in a \\markup block:"
+msgstr ""
+
+#. input/lsr/additional-voices-to-avoid-collisions.ly:27 (variable)
+msgid "voiceFive"
+msgstr ""
+
+#. input/lsr/adjusting-lyrics-vertical-spacing.ly:30 (comment)
+msgid "Default layout:"
+msgstr ""
+
+#. input/lsr/adjusting-lyrics-vertical-spacing.ly:39 (comment)
+msgid "Reducing the minimum space below the staff and above the lyrics:"
+msgstr ""
+
+#. input/lsr/aligning-marks-with-various-notation-objects.ly:54 (comment)
+msgid "the RehearsalMark will be centered above the KeySignature"
+msgstr ""
+
+#. input/lsr/aligning-marks-with-various-notation-objects.ly:65 (comment)
+#. input/lsr/aligning-marks-with-various-notation-objects.ly:77 (comment)
+msgid ""
+"the RehearsalMark will be aligned with the left edge of the KeySignature"
+msgstr ""
+
+#. input/lsr/aligning-marks-with-various-notation-objects.ly:71 (comment)
+msgid ""
+"the RehearsalMark will be aligned with the right edge of the KeySignature"
+msgstr ""
+
+#. input/lsr/aligning-marks-with-various-notation-objects.ly:78 (comment)
+msgid "and then shifted right by one unit."
+msgstr ""
+
+#. input/lsr/ancient-fonts.ly:33 (variable)
+#. input/lsr/ancient-fonts.ly:33 (context id)
+msgid "upperStaff"
+msgstr ""
+
+#. input/lsr/ancient-fonts.ly:45 (comment)
+msgid "\\break % 1 (8*1)"
+msgstr ""
+
+#. input/lsr/ancient-fonts.ly:56 (comment)
+msgid "\\break %2 (8*1)"
+msgstr ""
+
+#. input/lsr/ancient-fonts.ly:68 (comment)
+msgid "\\break % 3 (8*1)"
+msgstr ""
+
+#. input/lsr/ancient-fonts.ly:83 (comment)
+msgid "\\break % 4 (8*1)"
+msgstr ""
+
+#. input/lsr/ancient-fonts.ly:92 (comment)
+#. input/lsr/ancient-fonts.ly:154 (comment)
+msgid "\\break % 5 (8*1)"
+msgstr ""
+
+#. input/lsr/ancient-fonts.ly:106 (comment)
+#. input/lsr/ancient-fonts.ly:169 (comment)
+msgid "\\break % 6 (8*1)"
+msgstr ""
+
+#. input/lsr/ancient-fonts.ly:115 (comment)
+#. input/lsr/ancient-fonts.ly:179 (comment)
+msgid "\\break % 7 (8*1)"
+msgstr ""
+
+#. input/lsr/ancient-fonts.ly:122 (comment)
+msgid "\\break % 8 (8*1)"
+msgstr ""
+
+#. input/lsr/ancient-fonts.ly:125 (comment)
+msgid "\\break % 12 (32*1)"
+msgstr ""
+
+#. input/lsr/ancient-fonts.ly:130 (variable)
+#. input/lsr/ancient-fonts.ly:130 (context id)
+msgid "lowerStaff"
+msgstr ""
+
+#. input/lsr/ancient-fonts.ly:140 (comment)
+msgid "\\break % 2 (16*1)"
+msgstr ""
+
+#. input/lsr/ancient-fonts.ly:145 (comment)
+msgid "\\break % 4 (16*1)"
+msgstr ""
+
+#. input/lsr/ancient-fonts.ly:184 (comment)
+msgid "\\break % 9 (16*1)"
+msgstr ""
+
+#. input/lsr/ancient-fonts.ly:186 (comment)
+msgid "lig"
+msgstr ""
+
+#. input/lsr/ancient-fonts.ly:190 (comment)
+msgid "\\break % 11 (16*1)"
+msgstr ""
+
+#. input/lsr/ancient-fonts.ly:201 (comment)
+msgid "\\break % 12 (8*1)"
+msgstr ""
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:62 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:109 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:128 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:145 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:164 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:179 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:200 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:213 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:232 (comment)
+#. input/lsr/incipit.ly:19 (variable)
+#. input/lsr/incipit.ly:189 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:212 (comment)
+msgid "incipit"
+msgstr ""
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:64 (comment)
+msgid "tight spacing"
+msgstr ""
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:71 (comment)
+msgid "turn off bar lines"
+msgstr ""
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:75 (comment)
+msgid "need this extra \\skip such that clef change comes"
+msgstr ""
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:76 (comment)
+msgid "after bar line"
+msgstr ""
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:80 (comment)
+msgid "CHECK: no effect?"
+msgstr ""
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:81 (comment)
+msgid "turn bar lines on again"
+msgstr ""
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:89 (comment)
+msgid "FIXME: setting printKeyCancellation back to #t must not"
+msgstr ""
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:90 (comment)
+msgid "occur in the first bar after the incipit.  Dto. for forceClef."
+msgstr ""
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:91 (comment)
+msgid "Therefore, we need an extra \\skip."
+msgstr ""
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:96 (comment)
+#. input/lsr/incipit.ly:62 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:37 (comment)
+msgid "the actual music"
+msgstr ""
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:98 (comment)
+#. input/lsr/incipit.ly:65 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:39 (comment)
+msgid "let finis bar go through all staves"
+msgstr ""
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:101 (comment)
+#. input/lsr/incipit.ly:68 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:42 (comment)
+msgid "finis bar"
+msgstr ""
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:105 (variable)
+#. input/lsr/incipit.ly:85 (variable)
+#. input/lsr/incipit.ly:220 (context id)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:47 (variable)
+msgid "discantusNotes"
+msgstr ""
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:111 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:148 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:154 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:168 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:182 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:184 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:193 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:204 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:216 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:73 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:83 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:96 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:103 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:138 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:163 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:187 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:189 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:214 (comment)
+msgid "two bars"
+msgstr ""
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:112 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:215 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:139 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:213 (comment)
+msgid "eight bars"
+msgstr ""
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:113 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:147 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:150 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:183 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:185 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:186 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:217 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:162 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:188 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:190 (comment)
+msgid "one bar"
+msgstr ""
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:127 (variable)
+#. input/lsr/incipit.ly:99 (variable)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:60 (variable)
+msgid "discantusLyrics"
+msgstr ""
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:141 (variable)
+#. input/lsr/incipit.ly:122 (variable)
+#. input/lsr/incipit.ly:227 (context id)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:70 (variable)
+msgid "altusNotes"
+msgstr ""
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:149 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:164 (comment)
+msgid "seven bars"
+msgstr ""
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:163 (variable)
+#. input/lsr/incipit.ly:136 (variable)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:82 (variable)
+msgid "altusLyrics"
+msgstr ""
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:175 (variable)
+#. input/lsr/incipit.ly:160 (variable)
+#. input/lsr/incipit.ly:234 (context id)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:90 (variable)
+msgid "tenorNotes"
+msgstr ""
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:181 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:186 (comment)
+msgid "four bars"
+msgstr ""
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:199 (variable)
+#. input/lsr/incipit.ly:175 (variable)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:102 (variable)
+msgid "tenorLyrics"
+msgstr ""
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:209 (variable)
+#. input/lsr/incipit.ly:197 (variable)
+#. input/lsr/incipit.ly:241 (context id)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:108 (variable)
+msgid "bassusNotes"
+msgstr ""
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:231 (variable)
+#. input/lsr/incipit.ly:211 (variable)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:121 (variable)
+msgid "bassusLyrics"
+msgstr ""
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:242 (context id)
+#. input/lsr/incipit.ly:219 (context id)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:229 (context id)
+msgid "choirStaff"
+msgstr ""
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:264 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:266 (comment)
+msgid "no bars in staves"
+msgstr ""
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:267 (comment)
+msgid "incipit should not start with a start delimiter"
+msgstr ""
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:273 (comment)
+#. input/lsr/incipit.ly:264 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:277 (comment)
+msgid "no slurs"
+msgstr ""
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:276 (comment)
+#. input/lsr/incipit.ly:266 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:280 (comment)
+msgid "Comment in the below \\\"\\remove\\\" command to allow line"
+msgstr ""
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:277 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:281 (comment)
+msgid "breaking also at those barlines where a note overlaps"
+msgstr ""
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:278 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:282 (comment)
+msgid "into the next bar.  The command is commented out in this"
+msgstr ""
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:279 (comment)
+#. input/lsr/incipit.ly:269 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:283 (comment)
+msgid "short example score, but especially for large scores, you"
+msgstr ""
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:280 (comment)
+#. input/lsr/incipit.ly:270 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:284 (comment)
+msgid "will typically yield better line breaking and thus improve"
+msgstr ""
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:281 (comment)
+#. input/lsr/incipit.ly:271 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:285 (comment)
+msgid "overall spacing if you comment in the following command."
+msgstr ""
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:282 (comment)
+#. input/lsr/incipit.ly:272 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:286 (comment)
+msgid "\\remove \\\"Forbid_line_break_engraver\\\""
+msgstr ""
+
+#. input/lsr/applying-note-head-styles-depending-on-the-step-of-the-scale.ly:73 (variable)
+#. input/lsr/clusters.ly:27 (variable)
+msgid "fragment"
+msgstr ""
+
+#. input/lsr/automatic-beams-two-per-two-in-4-4-or-2-2-time-signature.ly:41 (comment)
+msgid "Automatic beams two per two in 4/4 or 2/2 time signature"
+msgstr ""
+
+#. input/lsr/automatic-beams-two-per-two-in-4-4-or-2-2-time-signature.ly:42 (comment)
+msgid "_____"
+msgstr ""
+
+#. input/lsr/automatic-beams-two-per-two-in-4-4-or-2-2-time-signature.ly:43 (comment)
+msgid "Default     | | | |"
+msgstr ""
+
+#. input/lsr/automatic-beams-two-per-two-in-4-4-or-2-2-time-signature.ly:44 (comment)
+msgid "_   _"
+msgstr ""
+
+#. input/lsr/automatic-beams-two-per-two-in-4-4-or-2-2-time-signature.ly:45 (comment)
+msgid "Required    | | | |"
+msgstr ""
+
+#. input/lsr/automatic-beams-two-per-two-in-4-4-or-2-2-time-signature.ly:47 (comment)
+msgid "macro for beamed two per two in 2/2 and 4/4 time signature"
+msgstr ""
+
+#. input/lsr/automatic-beams-two-per-two-in-4-4-or-2-2-time-signature.ly:48 (variable)
+msgid "qBeam"
+msgstr ""
+
+#. input/lsr/automatic-beams-two-per-two-in-4-4-or-2-2-time-signature.ly:63 (comment)
+msgid "Use the macro"
+msgstr ""
+
+#. input/lsr/avoiding-collisions-with-chord-fingerings.ly:30 (comment)
+msgid "Corrected to avoid collisions"
+msgstr ""
+
+#. input/lsr/beam-endings-in-score-context.ly:28 (comment)
+msgid "Set default beaming for all staves"
+msgstr ""
+
+#. input/lsr/beam-endings-in-score-context.ly:36 (comment)
+msgid "Modify beaming for just this staff"
+msgstr ""
+
+#. input/lsr/beam-endings-in-score-context.ly:42 (comment)
+msgid "Inherit beaming from Score context"
+msgstr ""
+
+#. input/lsr/beam-endings-in-score-context.ly:48 (comment)
+msgid "Modify beaming for this voice only"
+msgstr ""
+
+#. input/lsr/beam-grouping-in-7-8-time.ly:40 (comment)
+msgid "rhythm 2-3-2"
+msgstr ""
+
+#. input/lsr/book-parts.ly:21 (comment)
+msgid "book paper, which is inherited by all children bookparts"
+msgstr ""
+
+#. input/lsr/book-parts.ly:24 (comment)
+msgid "Page footer: add a different part-tagline at part last page"
+msgstr ""
+
+#. input/lsr/book-parts.ly:28 (comment)
+msgid "Copyright header field only on book first page."
+msgstr ""
+
+#. input/lsr/book-parts.ly:32 (comment)
+msgid "Part tagline header field only on each part last page."
+msgstr ""
+
+#. input/lsr/book-parts.ly:36 (comment)
+msgid "Tagline header field only on book last page."
+msgstr ""
+
+#. input/lsr/book-parts.ly:43 (comment)
+msgid "book header, which is inherited by the first bookpart"
+msgstr ""
+
+#. input/lsr/book-parts.ly:52 (comment)
+msgid "a different page breaking function may be used on each part"
+msgstr ""
+
+#. input/lsr/breathing-signs.ly:19 (comment)
+msgid "this bar contains no \\breathe"
+msgstr ""
+
+#. input/lsr/breathing-signs.ly:21 (comment)
+msgid "Modern notation:"
+msgstr ""
+
+#. input/lsr/breathing-signs.ly:22 (comment)
+msgid "by default, \\breathe uses the rcomma, just as if saying:"
+msgstr ""
+
+#. input/lsr/breathing-signs.ly:23 (comment)
+msgid ""
+"\\override BreathingSign #'text = #(make-musicglyph-markup \\\"scripts.rcomma"
+"\\\")"
+msgstr ""
+
+#. input/lsr/breathing-signs.ly:26 (comment)
+msgid "rvarcomma and lvarcomma are variations of the default rcomma and lcomma"
+msgstr ""
+
+#. input/lsr/breathing-signs.ly:27 (comment)
+msgid "N.B.: must use Staff context here, since we start a Voice below"
+msgstr ""
+
+#. input/lsr/breathing-signs.ly:31 (comment)
+msgid "vee"
+msgstr ""
+
+#. input/lsr/caesura-railtracks-with-fermata.ly:28 (comment)
+msgid "construct the symbol"
+msgstr ""
+
+#. input/lsr/caesura-railtracks-with-fermata.ly:37 (comment)
+msgid "set the breathe mark back to normal"
+msgstr ""
+
+#. input/lsr/center-text-below-hairpin-dynamics.ly:27 (variable)
+msgid "hairpinWithCenteredText"
+msgstr ""
+
+#. input/lsr/center-text-below-hairpin-dynamics.ly:39 (variable)
+msgid "hairpinMolto"
+msgstr ""
+
+#. input/lsr/center-text-below-hairpin-dynamics.ly:40 (variable)
+msgid "hairpinMore"
+msgstr ""
+
+#. input/lsr/changing--flageolet-mark-size.ly:23 (variable)
+msgid "smallFlageolet"
+msgstr ""
+
+#. input/lsr/changing-the-chord-names-to-german-or-semi-german-notation.ly:34 (comment)
+msgid "The following is only here to print the names of the"
+msgstr ""
+
+#. input/lsr/changing-the-chord-names-to-german-or-semi-german-notation.ly:35 (comment)
+msgid "chords styles; it can be removed if you do not need to"
+msgstr ""
+
+#. input/lsr/changing-the-chord-names-to-german-or-semi-german-notation.ly:36 (comment)
+msgid "print them."
+msgstr ""
+
+#. input/lsr/changing-the-default-text-font-family.ly:17 (comment)
+msgid "change for other default global staff size. "
+msgstr ""
+
+#. input/lsr/changing-the-default-text-font-family.ly:19 (comment)
+#. input/lsr/engravers-one-by-one.ly:191 (comment)
+#. input/lsr/score-for-diatonic-accordion.ly:110 (comment)
+msgid "{"
+msgstr ""
+
+#. input/lsr/changing-the-default-text-font-family.ly:23 (comment)
+#. input/lsr/engravers-one-by-one.ly:194 (comment)
+#. input/lsr/score-for-diatonic-accordion.ly:111 (comment)
+#. input/lsr/score-for-diatonic-accordion.ly:233 (comment)
+#. input/lsr/string-quartet-template-with-separate-parts.ly:177 (comment)
+msgid "}"
+msgstr ""
+
+#. input/lsr/changing-the-time-signature-without-affecting-the-beaming.ly:35 (comment)
+msgid "Change time signature symbol but keep 3/4 beaming"
+msgstr ""
+
+#. input/lsr/changing-the-time-signature-without-affecting-the-beaming.ly:36 (comment)
+msgid "due to unchanged underlying time signature"
+msgstr ""
+
+#. input/lsr/changing-the-time-signature-without-affecting-the-beaming.ly:41 (comment)
+msgid "Lose 3/4 beaming now \\time has been changed"
+msgstr ""
+
+#. input/lsr/chant-or-psalms-notation.ly:23 (variable)
+msgid "stemOn"
+msgstr ""
+
+#. input/lsr/chant-or-psalms-notation.ly:24 (variable)
+msgid "stemOff"
+msgstr ""
+
+#. input/lsr/chord-name-exceptions.ly:24 (comment)
+msgid "modify maj9 and 6(add9)"
+msgstr ""
+
+#. input/lsr/chord-name-exceptions.ly:25 (comment)
+msgid "Exception music is chords with markups"
+msgstr ""
+
+#. input/lsr/chord-name-exceptions.ly:26 (variable)
+msgid "chExceptionMusic"
+msgstr ""
+
+#. input/lsr/chord-name-exceptions.ly:31 (comment)
+msgid "Convert music to list and prepend to existing exceptions."
+msgstr ""
+
+#. input/lsr/chord-name-exceptions.ly:32 (variable)
+msgid "chExceptions"
+msgstr ""
+
+#. input/lsr/chord-name-exceptions.ly:36 (variable)
+msgid "theMusic"
+msgstr ""
+
+#. input/lsr/clip-systems.ly:37 (variable)
+msgid "origScore"
+msgstr ""
+
+#. input/lsr/clip-systems.ly:55 (comment)
+msgid "Each clip-region is a (START . END) pair"
+msgstr ""
+
+#. input/lsr/clip-systems.ly:56 (comment)
+msgid "where both are rhythmic-locations."
+msgstr ""
+
+#. input/lsr/clip-systems.ly:58 (comment)
+msgid "(make-rhythmic-locations BAR-NUMBER NUM DEN)"
+msgstr ""
+
+#. input/lsr/clip-systems.ly:59 (comment)
+msgid "means NUM/DEN whole-notes into bar numbered BAR-NUMBER"
+msgstr ""
+
+#. input/lsr/coloring-notes-depending-on-their-pitch.ly:13 (comment)
+msgid "Association list of pitches to colors."
+msgstr ""
+
+#. input/lsr/coloring-notes-depending-on-their-pitch.ly:34 (comment)
+msgid "Compare pitch and alteration (not octave)."
+msgstr ""
+
+#. input/lsr/combining-dynamics-with-markup-texts.ly:24 (variable)
+msgid "piuF"
+msgstr ""
+
+#. input/lsr/combining-two-parts-on-the-same-staff.ly:51 (variable)
+msgid "musicUp"
+msgstr ""
+
+#. input/lsr/combining-two-parts-on-the-same-staff.ly:58 (variable)
+msgid "musicDown"
+msgstr ""
+
+#. input/lsr/creating-a-sequence-of-notes-on-various-pitches.ly:53 (variable)
+#. input/lsr/jazz-combo-template.ly:275 (context id)
+msgid "rhythm"
+msgstr ""
+
+#. input/lsr/creating-real-parenthesized-dynamics.ly:45 (variable)
+msgid "parenF"
+msgstr ""
+
+#. input/lsr/creating-simultaneous-rehearsal-marks.ly:40 (comment)
+msgid "the hidden measure and bar line"
+msgstr ""
+
+#. input/lsr/customizing-fretboard-fret-diagrams.ly:40 (comment)
+#. input/lsr/customizing-markup-fret-diagrams.ly:43 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:23 (comment)
+msgid "Set global properties of fret diagram"
+msgstr ""
+
+#. input/lsr/customizing-markup-fret-diagrams.ly:41 (context id)
+#. input/lsr/formatting-lyrics-syllables.ly:21 (variable)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:21 (context id)
+#. input/lsr/piano-template-with-melody-and-lyrics.ly:62 (context id)
+msgid "mel"
+msgstr ""
+
+#. input/lsr/customizing-markup-fret-diagrams.ly:50 (comment)
+msgid "C major for guitar, no barre, using defaults"
+msgstr ""
+
+#. input/lsr/customizing-markup-fret-diagrams.ly:51 (comment)
+#. input/lsr/customizing-markup-fret-diagrams.ly:101 (comment)
+msgid "terse style"
+msgstr ""
+
+#. input/lsr/customizing-markup-fret-diagrams.ly:54 (comment)
+#. input/lsr/customizing-markup-fret-diagrams.ly:76 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:52 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:73 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:152 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:173 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:251 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:272 (comment)
+msgid "C major for guitar, barred on third fret"
+msgstr ""
+
+#. input/lsr/customizing-markup-fret-diagrams.ly:55 (comment)
+#. input/lsr/customizing-markup-fret-diagrams.ly:77 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:53 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:75 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:102 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:153 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:175 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:202 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:252 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:274 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:301 (comment)
+msgid "verbose style"
+msgstr ""
+
+#. input/lsr/customizing-markup-fret-diagrams.ly:56 (comment)
+msgid "size 1.0"
+msgstr ""
+
+#. input/lsr/customizing-markup-fret-diagrams.ly:57 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:54 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:154 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:253 (comment)
+msgid "roman fret label, finger labels below string, straight barre"
+msgstr ""
+
+#. input/lsr/customizing-markup-fret-diagrams.ly:59 (comment)
+msgid "standard size"
+msgstr ""
+
+#. input/lsr/customizing-markup-fret-diagrams.ly:78 (comment)
+msgid "landscape orientation, arabic numbers, M for mute string"
+msgstr ""
+
+#. input/lsr/customizing-markup-fret-diagrams.ly:79 (comment)
+msgid "no barre, fret label down or left, small mute label font"
+msgstr ""
+
+#. input/lsr/customizing-markup-fret-diagrams.ly:100 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:124 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:224 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:323 (comment)
+msgid "simple D chord"
+msgstr ""
+
+#. input/lsr/customizing-markup-fret-diagrams.ly:102 (comment)
+msgid "larger dots, centered dots, fewer frets"
+msgstr ""
+
+#. input/lsr/customizing-markup-fret-diagrams.ly:103 (comment)
+msgid "label below string"
+msgstr ""
+
+#. input/lsr/defining-predefined-fretboards-for-other-instruments.ly:58 (comment)
+msgid "add FretBoards for the Cuatro"
+msgstr ""
+
+#. input/lsr/defining-predefined-fretboards-for-other-instruments.ly:59 (comment)
+msgid "Note: This section could be put into a separate file"
+msgstr ""
+
+#. input/lsr/defining-predefined-fretboards-for-other-instruments.ly:60 (comment)
+msgid "predefined-cuatro-fretboards.ly"
+msgstr ""
+
+#. input/lsr/defining-predefined-fretboards-for-other-instruments.ly:61 (comment)
+msgid "and \\included into each of your compositions"
+msgstr ""
+
+#. input/lsr/defining-predefined-fretboards-for-other-instruments.ly:63 (variable)
+msgid "cuatroTuning"
+msgstr ""
+
+#. input/lsr/defining-predefined-fretboards-for-other-instruments.ly:65 (variable)
+msgid "dSix"
+msgstr ""
+
+#. input/lsr/defining-predefined-fretboards-for-other-instruments.ly:66 (variable)
+msgid "dMajor"
+msgstr ""
+
+#. input/lsr/defining-predefined-fretboards-for-other-instruments.ly:67 (variable)
+msgid "aMajSeven"
+msgstr ""
+
+#. input/lsr/defining-predefined-fretboards-for-other-instruments.ly:68 (variable)
+msgid "dMajSeven"
+msgstr ""
+
+#. input/lsr/defining-predefined-fretboards-for-other-instruments.ly:69 (variable)
+msgid "gMajor"
+msgstr ""
+
+#. input/lsr/defining-predefined-fretboards-for-other-instruments.ly:87 (comment)
+msgid "end of potential include file /predefined-cuatro-fretboards.ly"
+msgstr ""
+
+#. input/lsr/defining-predefined-fretboards-for-other-instruments.ly:92 (variable)
+msgid "primerosNames"
+msgstr ""
+
+#. input/lsr/defining-predefined-fretboards-for-other-instruments.ly:96 (variable)
+msgid "primeros"
+msgstr ""
+
+#. input/lsr/demo-midiinstruments.ly:23 (variable)
+msgid "baseMelody"
+msgstr ""
+
+#. input/lsr/display-bracket-with-only-one-staff-in-a-system.ly:37 (comment)
+msgid "Must be lower than the actual number of staff lines"
+msgstr ""
+
+#. input/lsr/displaying-complex-chords.ly:16 (variable)
+msgid "fixA"
+msgstr ""
+
+#. input/lsr/displaying-complex-chords.ly:20 (variable)
+msgid "fixB"
+msgstr ""
+
+#. input/lsr/double-glissando.ly:20 (comment)
+msgid "new voice ( = \\voiceOne), hidden"
+msgstr ""
+
+#. input/lsr/double-glissando.ly:22 (comment)
+msgid "attach glissando to note heads"
+msgstr ""
+
+#. input/lsr/double-glissando.ly:27 (comment)
+msgid "original voice with chords rearranged so that"
+msgstr ""
+
+#. input/lsr/double-glissando.ly:28 (comment)
+msgid "glissando is attached to a & c"
+msgstr ""
+
+#. input/lsr/embedding-native-postscript-in-a--markup-block.ly:23 (comment)
+msgid "PostScript is a registered trademark of Adobe Systems Inc."
+msgstr ""
+
+#. input/lsr/engravers-one-by-one.ly:75 (comment)
+msgid "sample music"
+msgstr ""
+
+#. input/lsr/engravers-one-by-one.ly:76 (variable)
+msgid "topVoice"
+msgstr ""
+
+#. input/lsr/engravers-one-by-one.ly:84 (variable)
+msgid "botVoice"
+msgstr ""
+
+#. input/lsr/engravers-one-by-one.ly:92 (variable)
+msgid "hoom"
+msgstr ""
+
+#. input/lsr/engravers-one-by-one.ly:103 (variable)
+msgid "pah"
+msgstr ""
+
+#. input/lsr/engravers-one-by-one.ly:113 (comment)
+msgid "setup for Request->Element conversion. Guru-only"
+msgstr ""
+
+#. input/lsr/engravers-one-by-one.ly:116 (variable)
+#. input/lsr/engravers-one-by-one.ly:221 (variable)
+#. input/lsr/engravers-one-by-one.ly:234 (variable)
+#. input/lsr/engravers-one-by-one.ly:290 (variable)
+#. input/lsr/engravers-one-by-one.ly:304 (variable)
+msgid "MyStaff"
+msgstr ""
+
+#. input/lsr/engravers-one-by-one.ly:148 (comment)
+msgid "explicitly set instrument, so we don't get "
+msgstr ""
+
+#. input/lsr/engravers-one-by-one.ly:149 (comment)
+msgid "weird effects when doing instrument names for"
+msgstr ""
+
+#. input/lsr/engravers-one-by-one.ly:150 (comment)
+msgid "piano staves"
+msgstr ""
+
+#. input/lsr/engravers-one-by-one.ly:159 (variable)
+#. input/lsr/engravers-one-by-one.ly:248 (variable)
+#. input/lsr/engravers-one-by-one.ly:261 (variable)
+#. input/lsr/engravers-one-by-one.ly:274 (variable)
+msgid "MyVoice"
+msgstr ""
+
+#. input/lsr/engravers-one-by-one.ly:174 (comment)
+msgid "must come before all"
+msgstr ""
+
+#. input/lsr/engravers-one-by-one.ly:184 (comment)
+msgid "\\consists \\\"Rest_engraver\\\""
+msgstr ""
+
+#. input/lsr/flamenco-notation.ly:46 (comment)
+msgid "Cut here ----- Start 'flamenco.ly' "
+msgstr ""
+
+#. input/lsr/flamenco-notation.ly:48 (comment)
+msgid "Text indicators"
+msgstr ""
+
+#. input/lsr/flamenco-notation.ly:49 (variable)
+msgid "abanico"
+msgstr ""
+
+#. input/lsr/flamenco-notation.ly:50 (variable)
+msgid "rasgueaso"
+msgstr ""
+
+#. input/lsr/flamenco-notation.ly:51 (variable)
+msgid "alzapua"
+msgstr ""
+
+#. input/lsr/flamenco-notation.ly:53 (comment)
+msgid "Finger stroke symbols"
+msgstr ""
+
+#. input/lsr/flamenco-notation.ly:54 (variable)
+msgid "strokeUp"
+msgstr ""
+
+#. input/lsr/flamenco-notation.ly:64 (variable)
+msgid "strokeDown"
+msgstr ""
+
+#. input/lsr/flamenco-notation.ly:74 (comment)
+msgid "Golpe symbol"
+msgstr ""
+
+#. input/lsr/flamenco-notation.ly:75 (variable)
+msgid "golpe"
+msgstr ""
+
+#. input/lsr/flamenco-notation.ly:89 (variable)
+msgid "strokeUpGolpe"
+msgstr ""
+
+#. input/lsr/flamenco-notation.ly:90 (variable)
+msgid "iUpGolpe"
+msgstr ""
+
+#. input/lsr/flamenco-notation.ly:92 (comment)
+msgid "Strokes for all fingers"
+msgstr ""
+
+#. input/lsr/flamenco-notation.ly:93 (variable)
+msgid "pUp"
+msgstr ""
+
+#. input/lsr/flamenco-notation.ly:94 (variable)
+msgid "pDown"
+msgstr ""
+
+#. input/lsr/flamenco-notation.ly:95 (variable)
+msgid "iUp"
+msgstr ""
+
+#. input/lsr/flamenco-notation.ly:96 (variable)
+msgid "iDown"
+msgstr ""
+
+#. input/lsr/flamenco-notation.ly:97 (variable)
+msgid "mUp"
+msgstr ""
+
+#. input/lsr/flamenco-notation.ly:98 (variable)
+msgid "mDown"
+msgstr ""
+
+#. input/lsr/flamenco-notation.ly:99 (variable)
+msgid "aUp"
+msgstr ""
+
+#. input/lsr/flamenco-notation.ly:100 (variable)
+msgid "aDown"
+msgstr ""
+
+#. input/lsr/flamenco-notation.ly:101 (variable)
+msgid "xUp"
+msgstr ""
+
+#. input/lsr/flamenco-notation.ly:102 (variable)
+msgid "xDown"
+msgstr ""
+
+#. input/lsr/flamenco-notation.ly:105 (comment)
+msgid "Just handy :)"
+msgstr ""
+
+#. input/lsr/flamenco-notation.ly:106 (variable)
+msgid "tupletOff"
+msgstr ""
+
+#. input/lsr/flamenco-notation.ly:111 (variable)
+msgid "tupletsOff"
+msgstr ""
+
+#. input/lsr/flamenco-notation.ly:116 (variable)
+msgid "tupletsOn"
+msgstr ""
+
+#. input/lsr/flamenco-notation.ly:121 (variable)
+msgid "headsOff"
+msgstr ""
+
+#. input/lsr/flamenco-notation.ly:127 (variable)
+msgid "headsOn"
+msgstr ""
+
+#. input/lsr/flamenco-notation.ly:133 (comment)
+msgid "Cut here ----- End 'flamenco.ly' "
+msgstr ""
+
+#. input/lsr/flat-flags-and-beam-nibs.ly:109 (comment)
+msgid "Example 1"
+msgstr ""
+
+#. input/lsr/flat-flags-and-beam-nibs.ly:116 (comment)
+msgid "Example 2"
+msgstr ""
+
+#. input/lsr/flat-flags-and-beam-nibs.ly:123 (comment)
+msgid "Example 3"
+msgstr ""
+
+#. input/lsr/flat-flags-and-beam-nibs.ly:132 (comment)
+msgid "Example 4"
+msgstr ""
+
+#. input/lsr/flute-slap-notation.ly:18 (variable)
+msgid "slap"
+msgstr ""
+
+#. input/lsr/formatting-lyrics-syllables.ly:16 (comment)
+msgid ""
+"Tip taken from http://lists.gnu.org/archive/html/lilypond-user/2007-12/"
+"msg00215.html"
+msgstr ""
+
+#. input/lsr/fret-diagrams-explained-and-developed.ly:39 (comment)
+msgid "A chord for ukelele, with formatting defined in definition string"
+msgstr ""
+
+#. input/lsr/fret-diagrams-explained-and-developed.ly:40 (comment)
+msgid "1.2 * size, 4 strings, 4 frets, fingerings below string"
+msgstr ""
+
+#. input/lsr/fret-diagrams-explained-and-developed.ly:41 (comment)
+msgid "dot radius .35 of fret spacing, dot position 0.55 of fret spacing"
+msgstr ""
+
+#. input/lsr/fret-diagrams-explained-and-developed.ly:50 (comment)
+msgid "These chords will be in normal orientation"
+msgstr ""
+
+#. input/lsr/fret-diagrams-explained-and-developed.ly:56 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:77 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:104 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:156 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:177 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:204 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:255 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:276 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:303 (comment)
+#, python-format
+msgid "110% of default size"
+msgstr ""
+
+#. input/lsr/fret-diagrams-explained-and-developed.ly:74 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:174 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:273 (comment)
+msgid "Double barre used to test barre function"
+msgstr ""
+
+#. input/lsr/fret-diagrams-explained-and-developed.ly:101 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:201 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:300 (comment)
+msgid "C major for guitar, with capo on third fret"
+msgstr ""
+
+#. input/lsr/fret-diagrams-explained-and-developed.ly:136 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:235 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:334 (comment)
+msgid "simple D chord, large top fret thickness"
+msgstr ""
+
+#. input/lsr/fret-diagrams-explained-and-developed.ly:148 (comment)
+msgid "These chords will be in landscape orientation"
+msgstr ""
+
+#. input/lsr/fret-diagrams-explained-and-developed.ly:247 (comment)
+msgid "These chords will be in opposing-landscape orientation"
+msgstr ""
+
+#. input/lsr/grid-lines--changing-their-appearance.ly:33 (comment)
+msgid "this moves them up one staff space from the default position"
+msgstr ""
+
+#. input/lsr/grid-lines--changing-their-appearance.ly:51 (comment)
+msgid "set up grids"
+msgstr ""
+
+#. input/lsr/grid-lines--changing-their-appearance.ly:53 (comment)
+msgid "set the grid interval to one quarter note"
+msgstr ""
+
+#. input/lsr/grid-lines--changing-their-appearance.ly:59 (comment)
+msgid "this moves them to the right half a staff space"
+msgstr ""
+
+#. input/lsr/grid-lines--emphasizing-rhythms-and-notes-synchronization.ly:36 (comment)
+msgid "hides staff and notes so that only the grid lines are visible"
+msgstr ""
+
+#. input/lsr/grid-lines--emphasizing-rhythms-and-notes-synchronization.ly:43 (comment)
+msgid "dummy notes to force regular note spacing"
+msgstr ""
+
+#. input/lsr/grid-lines--emphasizing-rhythms-and-notes-synchronization.ly:59 (comment)
+msgid "center grid lines horizontally below note heads"
+msgstr ""
+
+#. input/lsr/grid-lines--emphasizing-rhythms-and-notes-synchronization.ly:66 (comment)
+msgid "set line length and positioning:"
+msgstr ""
+
+#. input/lsr/grid-lines--emphasizing-rhythms-and-notes-synchronization.ly:67 (comment)
+msgid "two staff spaces above center line on hidden staff"
+msgstr ""
+
+#. input/lsr/grid-lines--emphasizing-rhythms-and-notes-synchronization.ly:68 (comment)
+msgid "to four spaces below center line on visible staff"
+msgstr ""
+
+#. input/lsr/heavily-customized-polymetric-time-signatures.ly:51 (variable)
+msgid "drum"
+msgstr ""
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:54 (comment)
+msgid "Solution 1: Using a simple markup with a particular halign value"
+msgstr ""
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:55 (comment)
+msgid ""
+"Drawback: It's a markup, not a dynamic command, so \\dynamicDown etc. will "
+"have no effect"
+msgstr ""
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:56 (variable)
+msgid "semppMarkup"
+msgstr ""
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:58 (comment)
+msgid ""
+"Solution 2: Using a dynamic script and shifting with \\once\\override ... "
+"#'X-offset = .."
+msgstr ""
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:59 (comment)
+msgid "Drawback: \\once\\override needed for every invocation"
+msgstr ""
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:60 (variable)
+msgid "semppK"
+msgstr ""
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:62 (comment)
+msgid ""
+"Solution 3: Padding the dynamic script so the center-alignment puts it to "
+"the correct position"
+msgstr ""
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:63 (comment)
+msgid ""
+"Drawback: the padding really reserves the space, nothing else can be there"
+msgstr ""
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:64 (variable)
+msgid "semppT"
+msgstr ""
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:72 (comment)
+msgid "Solution 4: Dynamic, setting the dimensions of the additional text to 0"
+msgstr ""
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:73 (comment)
+msgid ""
+"Drawback: To lilypond \\\"sempre\\\" has no extent, so it might put other "
+"stuff there => collisions"
+msgstr ""
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:74 (comment)
+msgid ""
+"Drawback: Also, there seems to be some spacing, so it's not exactly the "
+msgstr ""
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:75 (comment)
+msgid "same alignment as without the additional text"
+msgstr ""
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:76 (variable)
+msgid "semppM"
+msgstr ""
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:78 (comment)
+msgid "Solution 5: Dynamic with explicit shifting inside the scheme function"
+msgstr ""
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:79 (variable)
+msgid "semppG"
+msgstr ""
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:85 (comment)
+msgid ""
+"Solution 6: Dynamic with explicit alignment. This has only effect, if one "
+"sets X-offset!"
+msgstr ""
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:86 (comment)
+msgid "Drawback: One needs to set DynamicText #'X-offset!"
+msgstr ""
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:87 (comment)
+msgid ""
+"Drawback: Aligned at the right edge of the additional text, not at the "
+"center of pp"
+msgstr ""
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:88 (variable)
+msgid "semppMII"
+msgstr ""
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:114 (comment)
+msgid "Setting to ##f (false) gives the same resul"
+msgstr ""
+
+#. input/lsr/how-to-change-fret-diagram-position.ly:28 (variable)
+#. input/lsr/score-for-diatonic-accordion.ly:61 (variable)
+#. input/lsr/showing-chords-at-changes.ly:23 (variable)
+#. input/lsr/single-staff-template-with-notes,-lyrics,-and-chords.ly:44 (variable)
+#. input/lsr/single-staff-template-with-notes-and-chords.ly:42 (variable)
+msgid "harmonies"
+msgstr ""
+
+#. input/lsr/how-to-change-fret-diagram-position.ly:31 (comment)
+msgid "THE FOLLOWING IS THE COMMAND TO MOVE THE CHORD NAME"
+msgstr ""
+
+#. input/lsr/how-to-change-fret-diagram-position.ly:34 (comment)
+msgid "THIS LINE IS THE SECOND METHOD"
+msgstr ""
+
+#. input/lsr/how-to-change-fret-diagram-position.ly:44 (comment)
+msgid "THE FOLLOWING IS THE COMMAND TO MOVE THE FRET DIAGRAM"
+msgstr ""
+
+#. input/lsr/how-to-change-fret-diagram-position.ly:47 (comment)
+msgid "HERE IS THE SECOND METHOD"
+msgstr ""
+
+#. input/lsr/incipit.ly:72 (variable)
+#. input/lsr/incipit.ly:73 (context id)
+msgid "discantusIncipit"
+msgstr ""
+
+#. input/lsr/incipit.ly:109 (variable)
+#. input/lsr/incipit.ly:110 (context id)
+msgid "altusIncipit"
+msgstr ""
+
+#. input/lsr/incipit.ly:125 (comment)
+#. input/lsr/incipit.ly:137 (comment)
+#. input/lsr/incipit.ly:167 (comment)
+#. input/lsr/incipit.ly:176 (comment)
+msgid "two measures"
+msgstr ""
+
+#. input/lsr/incipit.ly:145 (variable)
+#. input/lsr/incipit.ly:146 (context id)
+msgid "tenorIncipit"
+msgstr ""
+
+#. input/lsr/incipit.ly:182 (variable)
+#. input/lsr/incipit.ly:183 (context id)
+msgid "bassusIncipit"
+msgstr ""
+
+#. input/lsr/incipit.ly:253 (comment)
+msgid "no bar lines in staves or lyrics"
+msgstr ""
+
+#. input/lsr/incipit.ly:256 (comment)
+msgid "the next two instructions keep the lyrics between the bar lines"
+msgstr ""
+
+#. input/lsr/incipit.ly:267 (comment)
+msgid "breaking also at those bar lines where a note overlaps"
+msgstr ""
+
+#. input/lsr/incipit.ly:268 (comment)
+msgid "into the next measure.  The command is commented out in this"
+msgstr ""
+
+#. input/lsr/inserting-score-fragments-above-a-staff,-as-markups.ly:16 (variable)
+msgid "tuning"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:52 (comment)
+msgid "#(set-global-staff-size 16)"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:55 (comment)
+msgid "Some macros %%%%%%%%%%%%%%%%%%%"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:57 (variable)
+msgid "sl"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:61 (variable)
+msgid "nsl"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:65 (variable)
+msgid "crOn"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:66 (variable)
+msgid "crOff"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:68 (comment)
+msgid "insert chord name style stuff here."
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:70 (variable)
+msgid "jazzChords"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:72 (comment)
+msgid "Keys'n'thangs %%%%%%%%%%%%%%%%%"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:76 (variable)
+msgid "Key"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:78 (comment)
+msgid "############ Horns ############"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:80 (comment)
+msgid "------ Trumpet ------"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:81 (variable)
+msgid "trpt"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:85 (variable)
+msgid "trpHarmony"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:88 (variable)
+#. input/lsr/jazz-combo-template.ly:268 (context id)
+msgid "trumpet"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:97 (comment)
+msgid "------ Alto Saxophone ------"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:98 (variable)
+msgid "alto"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:102 (variable)
+msgid "altoHarmony"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:105 (variable)
+msgid "altoSax"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:114 (comment)
+msgid "------ Baritone Saxophone ------"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:115 (variable)
+msgid "bari"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:123 (variable)
+msgid "bariHarmony"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:126 (variable)
+msgid "bariSax"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:135 (comment)
+msgid "------ Trombone ------"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:136 (variable)
+msgid "tbone"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:140 (variable)
+msgid "tboneHarmony"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:143 (variable)
+#. input/lsr/jazz-combo-template.ly:272 (context id)
+msgid "trombone"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:152 (comment)
+msgid "############ Rhythm Section #############"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:154 (comment)
+msgid "------ Guitar ------"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:155 (variable)
+msgid "gtr"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:163 (variable)
+msgid "gtrHarmony"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:167 (variable)
+#. input/lsr/jazz-combo-template.ly:277 (context id)
+#. input/lsr/polyphony-in-tablature.ly:48 (context id)
+#. input/lsr/polyphony-in-tablature.ly:53 (context id)
+msgid "guitar"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:176 (comment)
+msgid "------ Piano ------"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:177 (variable)
+msgid "rhUpper"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:182 (variable)
+msgid "rhLower"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:188 (variable)
+msgid "lhUpper"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:193 (variable)
+msgid "lhLower"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:199 (variable)
+msgid "PianoRH"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:208 (variable)
+msgid "PianoLH"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:226 (comment)
+msgid "------ Bass Guitar ------"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:240 (comment)
+msgid "------ Drums ------"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:254 (variable)
+msgid "drumContents"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:263 (comment)
+#, python-format
+msgid "It All Goes Together Here %%%%%%%%%%%%%%%%%%%%%%"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:267 (context id)
+msgid "horns"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:269 (context id)
+msgid "altosax"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:270 (context id)
+msgid "barichords"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:271 (context id)
+msgid "barisax"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:276 (context id)
+msgid "chords"
+msgstr ""
+
+#. input/lsr/makam-example.ly:26 (comment)
+msgid "Initialize makam settings"
+msgstr ""
+
+#. input/lsr/manually-break-figured-bass-extenders-for-only-some-numbers.ly:19 (variable)
+msgid "bassfigures"
+msgstr ""
+
+#. input/lsr/manually-controlling-beam-positions.ly:21 (comment)
+msgid "from upper staff-line (position 2) to center (position 0)"
+msgstr ""
+
+#. input/lsr/manually-controlling-beam-positions.ly:24 (comment)
+msgid "from center to one above center (position 1)"
+msgstr ""
+
+#. input/lsr/marking-notes-of-spoken-parts-with-a-cross-on-the-stem.ly:17 (variable)
+msgid "speakOn"
+msgstr ""
+
+#. input/lsr/marking-notes-of-spoken-parts-with-a-cross-on-the-stem.ly:33 (variable)
+msgid "speakOff"
+msgstr ""
+
+#. input/lsr/markup-lines.ly:19 (comment)
+msgid "Candide, Voltaire"
+msgstr ""
+
+#. input/lsr/mensurstriche-layout-bar-lines-between-the-staves.ly:32 (comment)
+msgid "the final bar line is not interrupted"
+msgstr ""
+
+#. input/lsr/merging-multi-measure-rests-in-a-polyphonic-part.ly:17 (variable)
+msgid "normalPos"
+msgstr ""
+
+#. input/lsr/modern-tab-text-clef.ly:16 (variable)
+msgid "TAB"
+msgstr ""
+
+#. input/lsr/modifying-default-values-for-articulation-shorthand-notation.ly:51 (variable)
+msgid "dashPlus"
+msgstr ""
+
+#. input/lsr/modifying-tuplet-bracket-length.ly:23 (comment)
+msgid "Set tuplets to be extendable..."
+msgstr ""
+
+#. input/lsr/modifying-tuplet-bracket-length.ly:25 (comment)
+msgid "...to cover all items up to the next note"
+msgstr ""
+
+#. input/lsr/modifying-tuplet-bracket-length.ly:29 (comment)
+msgid "...or to cover just whitespace"
+msgstr ""
+
+#. input/lsr/percussion-beaters.ly:18 (variable)
+msgid "stick"
+msgstr ""
+
+#. input/lsr/permitting-line-breaks-within-beamed-tuplets.ly:39 (comment)
+msgid "Permit line breaks within tuplets"
+msgstr ""
+
+#. input/lsr/permitting-line-breaks-within-beamed-tuplets.ly:41 (comment)
+msgid "Allow beams to be broken at line breaks"
+msgstr ""
+
+#. input/lsr/permitting-line-breaks-within-beamed-tuplets.ly:48 (comment)
+msgid "Insert a manual line break within a tuplet"
+msgstr ""
+
+#. input/lsr/piano-template-with-centered-dynamics.ly:56 (variable)
+msgid "pedal"
+msgstr ""
+
+#. input/lsr/piano-template-with-centered-dynamics.ly:69 (comment)
+msgid "define Dynamics context"
+msgstr ""
+
+#. input/lsr/piano-template-with-centered-dynamics.ly:90 (comment)
+msgid "modify PianoStaff context to accept Dynamics context"
+msgstr ""
+
+#. input/lsr/polyphony-in-tablature.ly:47 (context id)
+msgid "tab"
+msgstr ""
+
+#. input/lsr/positioning-multi--measure-rests.ly:41 (comment)
+msgid "Multi-measure rests by default are set under the second line"
+msgstr ""
+
+#. input/lsr/positioning-multi--measure-rests.ly:43 (comment)
+msgid "They can be moved with an override"
+msgstr ""
+
+#. input/lsr/positioning-multi--measure-rests.ly:46 (comment)
+msgid "A value of 0 is the default position;"
+msgstr ""
+
+#. input/lsr/positioning-multi--measure-rests.ly:47 (comment)
+msgid "the following trick moves the rest to the center line"
+msgstr ""
+
+#. input/lsr/positioning-multi--measure-rests.ly:50 (comment)
+msgid "Multi-measure rests in odd-numbered voices are under the top line"
+msgstr ""
+
+#. input/lsr/positioning-multi--measure-rests.ly:52 (comment)
+msgid "Multi-measure rests in even-numbered voices are under the bottom line"
+msgstr ""
+
+#. input/lsr/positioning-multi--measure-rests.ly:54 (comment)
+msgid "They remain separated even in empty measures"
+msgstr ""
+
+#. input/lsr/positioning-multi--measure-rests.ly:56 (comment)
+msgid "This brings them together even though there are two voices"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:28 (comment)
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:49 (comment)
+msgid "Set segno sign as rehearsal mark and adjust size if needed"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:29 (comment)
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:51 (comment)
+msgid "\\once \\override Score.RehearsalMark #'font-size = #3"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:35 (comment)
+msgid "Set coda sign as rehearsal mark and adjust size if needed"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:42 (comment)
+msgid "Should Coda be on anew line?"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:43 (comment)
+msgid "Coda NOT on new line: use \\nobreak"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:44 (comment)
+msgid "Coda on new line: DON'T use \\nobreak"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:45 (comment)
+msgid "\\noBreak"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:54 (comment)
+msgid "Here begins the trickery! "
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:55 (comment)
+msgid ""
+"\\cadenzaOn will suppress the bar count and \\stopStaff removes the staff "
+"lines."
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:58 (comment)
+msgid "Some examples of possible text-displays "
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:60 (comment)
+msgid "text line-aligned"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:61 (comment)
+msgid "=================="
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:62 (comment)
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:68 (comment)
+msgid "Move text to the desired position"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:63 (comment)
+msgid "\\once \\override TextScript #'extra-offset = #'( 2 . -3.5 )"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:64 (comment)
+msgid "| s1*0^\\markup { D.S. al Coda } }"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:66 (comment)
+msgid "text center-aligned"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:67 (comment)
+msgid "===================="
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:69 (comment)
+msgid "\\once \\override TextScript #'extra-offset = #'( 6 . -5.0 )"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:70 (comment)
+msgid "| s1*0^\\markup { \\center-column { D.S. \\\"al Coda\\\" } }"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:72 (comment)
+msgid "text and symbols center-aligned"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:73 (comment)
+msgid "==============================="
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:74 (comment)
+msgid ""
+"Move text to the desired position and tweak spacing for optimum text "
+"alignment"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:75 (comment)
+msgid "\\once \\override TextScript #'extra-offset = #'( 8 . -5.5 )"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:81 (comment)
+msgid "Increasing the unfold counter will expand the staff-free space"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:86 (comment)
+msgid "Resume bar count and show staff lines again"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:90 (comment)
+msgid "Should Coda be on new line?"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:91 (comment)
+msgid "Coda NOT on new line: DON'T use \\break"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:92 (comment)
+msgid "Coda on new line: use \\break"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:95 (comment)
+msgid "Show up, you clef and key!"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:99 (comment)
+msgid "Set coda sign as rehearsal mark and adjust size and position"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:101 (comment)
+msgid ""
+"Put the coda sign ontop of the (treble-)clef dependend on coda's line-"
+"position"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:103 (comment)
+msgid "Coda NOT on new line, use this:"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:104 (comment)
+msgid "\\once \\override Score.RehearsalMark #'extra-offset = #'( -2 . 1.75 )"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:106 (comment)
+msgid "Coda on new line, use this:"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:112 (comment)
+msgid "The coda"
+msgstr ""
+
+#. input/lsr/printing-metronome-and-rehearsal-marks-below-the-staff.ly:31 (comment)
+msgid "Metronome marks below the staff "
+msgstr ""
+
+#. input/lsr/printing-metronome-and-rehearsal-marks-below-the-staff.ly:36 (comment)
+msgid "Rehearsal marks below the staff"
+msgstr ""
+
+#. input/lsr/printing-music-with-different-time-signatures.ly:50 (variable)
+msgid "Bassklarinette"
+msgstr ""
+
+#. input/lsr/printing-music-with-different-time-signatures.ly:90 (variable)
+msgid "Perkussion"
+msgstr ""
+
+#. input/lsr/quoting-another-voice-with-transposition.ly:37 (variable)
+msgid "quoteTest"
+msgstr ""
+
+#. input/lsr/quoting-another-voice-with-transposition.ly:38 (comment)
+msgid "french horn"
+msgstr ""
+
+#. input/lsr/quoting-another-voice.ly:27 (variable)
+msgid "quoteMe"
+msgstr ""
+
+#. input/lsr/quoting-another-voice.ly:32 (variable)
+msgid "original"
+msgstr ""
+
+#. input/lsr/removing-the-first-empty-line.ly:43 (comment)
+msgid "To use the setting globally, uncomment the following line:"
+msgstr ""
+
+#. input/lsr/removing-the-first-empty-line.ly:44 (comment)
+msgid "\\override VerticalAxisGroup #'remove-first = ##t"
+msgstr ""
+
+#. input/lsr/removing-the-first-empty-line.ly:53 (comment)
+msgid "To use the setting globally, comment this line,"
+msgstr ""
+
+#. input/lsr/removing-the-first-empty-line.ly:54 (comment)
+msgid "uncomment the line in the \\layout block above"
+msgstr ""
+
+#. input/lsr/reverting-default-beam-endings.ly:29 (comment)
+msgid "Default beaming"
+msgstr ""
+
+#. input/lsr/reverting-default-beam-endings.ly:32 (comment)
+msgid "Revert default values in scm/auto-beam.scm for 12/8 time"
+msgstr ""
+
+#. input/lsr/reverting-default-beam-endings.ly:38 (comment)
+msgid "Set new values for beam endings"
+msgstr ""
+
+#. input/lsr/rhythmic-slashes.ly:25 (comment)
+msgid "Macro to print single slash"
+msgstr ""
+
+#. input/lsr/rhythmic-slashes.ly:26 (variable)
+msgid "rs"
+msgstr ""
+
+#. input/lsr/rhythmic-slashes.ly:33 (comment)
+msgid "Function to print a specified number of slashes"
+msgstr ""
+
+#. input/lsr/rhythmic-slashes.ly:34 (variable)
+msgid "comp"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:69 (variable)
+msgid "NoStem"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:70 (variable)
+msgid "NoNoteHead"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:71 (variable)
+msgid "ZeroBeam"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:73 (variable)
+msgid "staffTabLine"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:78 (comment)
+msgid ""
+"Shows one horizontal line. The vertical line (simulating a bar-line) is "
+"simulated with a gridline"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:83 (comment)
+msgid ""
+"disable the following line to see the the noteheads while writing the song "
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:87 (comment)
+msgid "The beam between 8th-notes is used to draw the push-line"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:88 (comment)
+msgid "How to fast write the push-lines: "
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:89 (comment)
+msgid ""
+"1. write repeatedly 'c c c c c c c c |' for the whole length of the song "
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:90 (comment)
+msgid "2. uncomment the line \\NoNoteHead"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:91 (comment)
+msgid "3. compile"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:92 (comment)
+msgid "4. Mark the positions on which push/pull changes. "
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:93 (comment)
+msgid ""
+"In the score-picture click on the position the push- or pull-part starts "
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:94 (comment)
+msgid "(on the noteHead, the cursor will change to a hand-icon)."
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:95 (comment)
+msgid "The cursor in the source code will jump just at this position."
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:96 (comment)
+msgid "a) If a push-part starts there, replace the 'c' by an 'e['"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:97 (comment)
+msgid "b) If a pull-part starts there, replace the 'c' by an 's'"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:98 (comment)
+msgid "5. Switch into 'overwrite-mode' by pressing the 'ins' key. "
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:99 (comment)
+msgid "6. For the pull-parts overwrite the 'c' with 's' "
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:100 (comment)
+msgid "7. For every push-part replace the last 'c' with 'e]' "
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:101 (comment)
+msgid "8. Switch into 'insert-mode' again "
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:102 (comment)
+msgid ""
+"9. At last it should look lik e.g. (s s e[ c | c c c c c c c c | c c c c c c "
+"e] s s)"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:103 (comment)
+msgid "10. re-enable the line \\NoNoteHead"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:113 (comment)
+msgid "Accordion melody in tabulator score\t\t"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:114 (comment)
+msgid "1. Place a copy of the piano melody below"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:115 (comment)
+#. input/lsr/score-for-diatonic-accordion.ly:134 (comment)
+msgid ""
+"2. Separate piano melody into pull- and push-parts according to the "
+"staffTabLine you've already made      "
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:116 (comment)
+msgid ""
+"3. For each line: Double the line. Remark the 1st one (Keeps unchanged as "
+"reference) and then change the second line using the transformation paper"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:117 (comment)
+msgid "or the macros 'conv2diaton push.bsh' and 'conv2diaton pull.bsh' "
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:118 (comment)
+#. input/lsr/score-for-diatonic-accordion.ly:137 (comment)
+msgid "Tips:"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:119 (comment)
+#. input/lsr/score-for-diatonic-accordion.ly:138 (comment)
+msgid "- In jEdit Search & Replace mark the Option 'Keep Dialog'"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:121 (variable)
+msgid "AccordionTabTwoCBesDur"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:122 (comment)
+msgid "pull 1"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:123 (comment)
+msgid "<f' bes'>8 <f' a'>8 <d' bes'>8 | "
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:125 (comment)
+msgid "push 2"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:126 (comment)
+msgid "<g' c''>4 <f' d''> <g' ees''> <f' a'> | "
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:128 (comment)
+msgid "pull 3"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:129 (comment)
+msgid "<f' bes'>2 r8 }"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:133 (comment)
+msgid "1. Place a copy of the piano melody above"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:135 (comment)
+msgid ""
+"3. For each line: Double the line. Remark the 1st one (Keeps unchanged as "
+"reference) and then "
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:136 (comment)
+msgid "change the second line using the transformation paper"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:139 (comment)
+msgid "- "
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:150 (comment)
+msgid "4/4 - tact. How many beats per bar"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:152 (comment)
+msgid "The following line has to be adjusted O-F-T-E-N."
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:161 (variable)
+msgid "staffVoice"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:169 (context id)
+msgid "melodyVoi"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:175 (variable)
+msgid "staffAccordionMel"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:176 (comment)
+msgid "Set the accidentals (Vorzeichen) for each note, "
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:177 (comment)
+msgid "do not remember them for the rest of the measure.  "
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:196 (variable)
+msgid "BassRhytm"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:197 (variable)
+msgid "LyricBassRhythmI"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:199 (variable)
+msgid "staffBassRhytm"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:200 (comment)
+msgid ""
+"This is not a RhythmicStaff  because it must be possible to append lyrics."
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:202 (comment)
+msgid "x.y"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:204 (comment)
+msgid ""
+"Shows one horizontal line. The vertical line (simulating a bar-line) is "
+"simulated by a grid"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:205 (comment)
+msgid "Search for 'grid' in this page to find all related functions "
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:208 (context id)
+msgid "VoiceBassRhytm"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:221 (comment)
+msgid ""
+"The vertical line (simulating a bar-line) in the staffBassRhytm is a "
+"gridline "
+msgstr ""
+
+#. input/lsr/single-staff-template-with-notes,-lyrics,-chords-and-frets.ly:24 (comment)
+msgid "Define the fret diagrams to be used"
+msgstr ""
+
+#. input/lsr/single-staff-template-with-notes,-lyrics,-chords-and-frets.ly:25 (variable)
+msgid "cFretDiagram"
+msgstr ""
+
+#. input/lsr/single-staff-template-with-notes,-lyrics,-chords-and-frets.ly:29 (variable)
+msgid "gFretDiagram"
+msgstr ""
+
+#. input/lsr/single-staff-template-with-notes,-lyrics,-chords-and-frets.ly:33 (variable)
+msgid "verseI"
+msgstr ""
+
+#. input/lsr/single-staff-template-with-notes,-lyrics,-chords-and-frets.ly:38 (variable)
+msgid "verseII"
+msgstr ""
+
+#. input/lsr/single-staff-template-with-notes,-lyrics,-chords-and-frets.ly:43 (variable)
+msgid "theChords"
+msgstr ""
+
+#. input/lsr/single-staff-template-with-notes,-lyrics,-chords-and-frets.ly:45 (comment)
+msgid "insert the chords for chordnames here"
+msgstr ""
+
+#. input/lsr/single-staff-template-with-notes,-lyrics,-chords-and-frets.ly:50 (variable)
+msgid "staffMelody"
+msgstr ""
+
+#. input/lsr/single-staff-template-with-notes,-lyrics,-chords-and-frets.ly:51 (context id)
+msgid "voiceMelody"
+msgstr ""
+
+#. input/lsr/single-staff-template-with-notes,-lyrics,-chords-and-frets.ly:55 (comment)
+msgid "Type notes and fret diagram markups here"
+msgstr ""
+
+#. input/lsr/snap-pizzicato-markup-bartok-pizzicato.ly:54 (variable)
+msgid "snapPizzicato"
+msgstr ""
+
+#. input/lsr/snap-pizzicato-markup-bartok-pizzicato.ly:56 (comment)
+msgid "now it can be used as \\snappizzicato after the note/chord"
+msgstr ""
+
+#. input/lsr/snap-pizzicato-markup-bartok-pizzicato.ly:57 (comment)
+msgid "Note that a direction (-, ^ or _) is required."
+msgstr ""
+
+#. input/lsr/snap-pizzicato-markup-bartok-pizzicato.ly:60 (comment)
+msgid "This does NOT work:"
+msgstr ""
+
+#. input/lsr/snap-pizzicato-markup-bartok-pizzicato.ly:61 (comment)
+msgid "<c e g>\\snapPizzicato"
+msgstr ""
+
+#. input/lsr/stemlets.ly:35 (comment)
+msgid "N.B. use Score.Stem to set for the whole score."
+msgstr ""
+
+#. input/lsr/string-quartet-template-simple.ly:34 (variable)
+msgid "violinOne"
+msgstr ""
+
+#. input/lsr/string-quartet-template-simple.ly:43 (variable)
+msgid "violinTwo"
+msgstr ""
+
+#. input/lsr/string-quartet-template-simple.ly:52 (variable)
+msgid "viola"
+msgstr ""
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:77 (comment)
+msgid "piece.ly"
+msgstr ""
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:78 (comment)
+msgid "(This is the global definitions file)"
+msgstr ""
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:85 (variable)
+msgid "Violinone"
+msgstr ""
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:90 (comment)
+#. input/lsr/string-quartet-template-with-separate-parts.ly:96 (comment)
+#. input/lsr/string-quartet-template-with-separate-parts.ly:103 (comment)
+msgid "*********************************"
+msgstr ""
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:91 (variable)
+msgid "Violintwo"
+msgstr ""
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:97 (variable)
+msgid "Viola"
+msgstr ""
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:104 (variable)
+msgid "Cello"
+msgstr ""
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:110 (comment)
+msgid "**********************************"
+msgstr ""
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:121 (comment)
+msgid "These are the other files you need to save on your computer"
+msgstr ""
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:123 (comment)
+msgid "score.ly"
+msgstr ""
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:124 (comment)
+msgid "(This is the main file)"
+msgstr ""
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:127 (comment)
+#, python-format
+msgid ""
+"\\include \\\"piece.ly\\\"             %%% uncomment this line when using a "
+"separate file"
+msgstr ""
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:136 (comment)
+msgid "{ Uncomment this block when using separate files"
+msgstr ""
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:138 (comment)
+msgid "vn1.ly"
+msgstr ""
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:139 (comment)
+msgid "(This is the Violin 1 part file)"
+msgstr ""
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:148 (comment)
+msgid "vn2.ly"
+msgstr ""
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:149 (comment)
+msgid "(This is the Violin 2 part file)"
+msgstr ""
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:158 (comment)
+msgid "vla.ly"
+msgstr ""
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:159 (comment)
+msgid "(This is the Viola part file)"
+msgstr ""
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:168 (comment)
+msgid "vlc.ly"
+msgstr ""
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:169 (comment)
+msgid "(This is the Cello part file)"
+msgstr ""
+
+#. input/lsr/sub-dividing-beams.ly:50 (comment)
+msgid "Set beam sub-group length to an eighth note"
+msgstr ""
+
+#. input/lsr/sub-dividing-beams.ly:54 (comment)
+msgid "Set beam sub-group length to a sixteenth note"
+msgstr ""
+
+#. input/lsr/suppressing-warnings-for-clashing-note-columns.ly:19 (variable)
+msgid "ignore"
+msgstr ""
+
+#. input/lsr/three-sided-box.ly:16 (comment)
+msgid "New command to add a three sided box, with sides north, west and south"
+msgstr ""
+
+#. input/lsr/three-sided-box.ly:17 (comment)
+msgid "Based on the box-stencil command defined in scm/stencil.scm"
+msgstr ""
+
+#. input/lsr/three-sided-box.ly:18 (comment)
+msgid "Note that \\\";\\\" is used to comment a line in Scheme"
+msgstr ""
+
+#. input/lsr/three-sided-box.ly:32 (comment)
+msgid "The corresponding markup command, based on the \\box command defined "
+msgstr ""
+
+#. input/lsr/three-sided-box.ly:33 (comment)
+msgid "in scm/define-markup-commands.scm"
+msgstr ""
+
+#. input/lsr/three-sided-box.ly:45 (comment)
+msgid "Test it:"
+msgstr ""
+
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:35 (comment)
+msgid "make the staff lines invisible on staves"
+msgstr ""
+
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:127 (variable)
+msgid "incipitDiscantus"
+msgstr ""
+
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:151 (variable)
+msgid "incipitAltus"
+msgstr ""
+
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:176 (variable)
+msgid "incipitTenor"
+msgstr ""
+
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:202 (variable)
+msgid "incipitBassus"
+msgstr ""
+
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:226 (comment)
+msgid ""
+"StaffGroup is used instead of ChoirStaff to get bar lines between systems"
+msgstr ""
+
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:258 (comment)
+msgid "Keep the bass lyrics outside of the staff group to avoid bar lines"
+msgstr ""
+
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:259 (comment)
+msgid "between the lyrics."
+msgstr ""
+
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:269 (comment)
+msgid "the next three instructions keep the lyrics between the barlines"
+msgstr ""
+
+#. input/lsr/transposing-pitches-with-minimum-accidentals-smart-transpose.ly:132 (variable)
+msgid "naturalizeMusic"
+msgstr ""
+
+#. input/lsr/tweaking-clef-properties.ly:111 (comment)
+msgid "The default treble clef"
+msgstr ""
+
+#. input/lsr/tweaking-clef-properties.ly:113 (comment)
+msgid "The standard bass clef"
+msgstr ""
+
+#. input/lsr/tweaking-clef-properties.ly:118 (comment)
+msgid "The baritone clef"
+msgstr ""
+
+#. input/lsr/tweaking-clef-properties.ly:123 (comment)
+msgid "The standard choral tenor clef"
+msgstr ""
+
+#. input/lsr/tweaking-clef-properties.ly:129 (comment)
+msgid "A non-standard clef"
+msgstr ""
+
+#. input/lsr/tweaking-clef-properties.ly:135 (comment)
+msgid "The following clef changes do not preserve"
+msgstr ""
+
+#. input/lsr/tweaking-clef-properties.ly:136 (comment)
+msgid "the normal relationship between notes and clefs:"
+msgstr ""
+
+#. input/lsr/tweaking-clef-properties.ly:151 (comment)
+msgid "Return to the normal clef:"
+msgstr ""
+
+#. input/lsr/using-beatlength-and-beatgrouping.ly:34 (comment)
+msgid "The default in 3/4 time is to beam in three groups"
+msgstr ""
+
+#. input/lsr/using-beatlength-and-beatgrouping.ly:35 (comment)
+msgid "each of a quarter note length"
+msgstr ""
+
+#. input/lsr/using-beatlength-and-beatgrouping.ly:39 (comment)
+msgid "No auto-beaming is defined for 12/16"
+msgstr ""
+
+#. input/lsr/using-beatlength-and-beatgrouping.ly:43 (comment)
+msgid "Change time signature symbol, but retain underlying 3/4 beaming"
+msgstr ""
+
+#. input/lsr/using-beatlength-and-beatgrouping.ly:47 (comment)
+msgid "The 3/4 time default grouping of (1 1 1) and beatLength of 1/8"
+msgstr ""
+
+#. input/lsr/using-beatlength-and-beatgrouping.ly:48 (comment)
+msgid "are not consistent with a measureLength of 3/4, so the beams"
+msgstr ""
+
+#. input/lsr/using-beatlength-and-beatgrouping.ly:49 (comment)
+msgid "are grouped at beatLength intervals"
+msgstr ""
+
+#. input/lsr/using-beatlength-and-beatgrouping.ly:53 (comment)
+msgid "Specify beams in groups of (3 3 2 3) 1/16th notes"
+msgstr ""
+
+#. input/lsr/using-beatlength-and-beatgrouping.ly:54 (comment)
+msgid "3+3+2+3=11, and 11*1/16<>3/4, so beatGrouping does not apply,"
+msgstr ""
+
+#. input/lsr/using-beatlength-and-beatgrouping.ly:55 (comment)
+msgid "and beams are grouped at beatLength (1/16) intervals"
+msgstr ""
+
+#. input/lsr/using-beatlength-and-beatgrouping.ly:60 (comment)
+msgid "Specify beams in groups of (3 4 2 3) 1/16th notes"
+msgstr ""
+
+#. input/lsr/using-beatlength-and-beatgrouping.ly:61 (comment)
+msgid "3+4+2+3=12, and 12*1/16=3/4, so beatGrouping applies"
+msgstr ""
+
+#. input/lsr/using-postscript-to-generate-special-note-head-shapes.ly:26 (variable)
+msgid "parallelogram"
+msgstr ""
+
+#. input/lsr/using-postscript-to-generate-special-note-head-shapes.ly:41 (variable)
+msgid "myNoteHeads"
+msgstr ""
+
+#. input/lsr/using-postscript-to-generate-special-note-head-shapes.ly:42 (variable)
+msgid "normalNoteHeads"
+msgstr ""
+
+#. input/lsr/utf-8.ly:34 (comment)
+msgid "end verbatim - this comment is a hack to prevent texinfo.tex"
+msgstr ""
+
+#. input/lsr/utf-8.ly:35 (comment)
+msgid "from choking on non-European UTF-8 subsets"
+msgstr ""
+
+#. input/lsr/utf-8.ly:36 (comment)
+msgid "Cyrillic font"
+msgstr ""
+
+#. input/lsr/utf-8.ly:37 (variable)
+msgid "bulgarian"
+msgstr ""
+
+#. input/lsr/utf-8.ly:41 (variable)
+msgid "hebrew"
+msgstr ""
+
+#. input/lsr/utf-8.ly:45 (variable)
+msgid "japanese"
+msgstr ""
+
+#. input/lsr/utf-8.ly:52 (comment)
+msgid "\\\"a legal song to you\\\""
+msgstr ""
+
+#. input/lsr/utf-8.ly:53 (variable)
+msgid "portuguese"
+msgstr ""
+
+#. input/lsr/vertically-centered-common-lyrics.ly:19 (variable)
+msgid "leftbrace"
+msgstr ""
+
+#. input/lsr/vertically-centered-common-lyrics.ly:20 (variable)
+msgid "rightbrace"
+msgstr ""
+
+#. input/lsr/vertically-centered-common-lyrics.ly:22 (variable)
+msgid "dropLyrics"
+msgstr ""
+
+#. input/lsr/vertically-centered-common-lyrics.ly:29 (variable)
+msgid "raiseLyrics"
+msgstr ""
+
+#. input/lsr/vertically-centered-common-lyrics.ly:36 (variable)
+msgid "skipFour"
+msgstr ""
+
+#. input/lsr/vertically-centered-common-lyrics.ly:38 (variable)
+msgid "lyricsA"
+msgstr ""
+
+#. input/lsr/vertically-centered-common-lyrics.ly:40 (variable)
+msgid "lyricsB"
+msgstr ""
+
+#. input/lsr/vertically-centered-common-lyrics.ly:41 (variable)
+msgid "lyricsC"
+msgstr ""
+
+#. input/lsr/vertically-centered-common-lyrics.ly:42 (variable)
+msgid "lyricsD"
+msgstr ""
+
+#. input/lsr/vertically-centered-common-lyrics.ly:49 (context id)
+msgid "m"
+msgstr ""
+
+#. input/lsr/vocal-ensemble-template-with-automatic-piano-reduction.ly:51 (variable)
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:42 (variable)
+#. input/lsr/vocal-ensemble-template.ly:47 (variable)
+msgid "sopMusic"
+msgstr ""
+
+#. input/lsr/vocal-ensemble-template-with-automatic-piano-reduction.ly:54 (variable)
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:45 (variable)
+#. input/lsr/vocal-ensemble-template.ly:50 (variable)
+msgid "sopWords"
+msgstr ""
+
+#. input/lsr/vocal-ensemble-template-with-automatic-piano-reduction.ly:83 (context id)
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:72 (context id)
+#. input/lsr/vocal-ensemble-template.ly:78 (context id)
+msgid "women"
+msgstr ""
+
+#. input/lsr/vocal-ensemble-template-with-automatic-piano-reduction.ly:89 (context id)
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:82 (context id)
+#. input/lsr/vocal-ensemble-template.ly:90 (context id)
+msgid "men"
+msgstr ""
+
+#. input/lsr/vocal-ensemble-template-with-automatic-piano-reduction.ly:118 (comment)
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:94 (comment)
+#. input/lsr/vocal-ensemble-template.ly:108 (comment)
+msgid "a little smaller so lyrics"
+msgstr ""
+
+#. input/lsr/vocal-ensemble-template-with-automatic-piano-reduction.ly:119 (comment)
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:95 (comment)
+#. input/lsr/vocal-ensemble-template.ly:109 (comment)
+msgid "can be closer to the staff"
+msgstr ""
+
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:78 (comment)
+msgid "we could remove the line about this with the line below, since we want"
+msgstr ""
+
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:79 (comment)
+msgid "the alto lyrics to be below the alto Voice anyway."
+msgstr ""
+
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:80 (comment)
+msgid "\\new Lyrics \\lyricsto altos \\altoWords"
+msgstr ""
+
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:89 (comment)
+msgid "again, we could replace the line above this with the line below."
+msgstr ""
+
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:90 (comment)
+msgid "\\new Lyrics \\lyricsto basses \\bassWords"
+msgstr ""
+
+#. input/lsr/volta-multi-staff.ly:13 (variable)
+msgid "voltaMusic"
+msgstr ""
+
+msgid "Up:"
+msgstr "上へ:"
+
+msgid "Next:"
+msgstr "次へ:"
+
+msgid "Previous:"
+msgstr "前へ:"
+
+msgid "Appendix "
+msgstr "付録 "
+
+msgid "Footnotes"
+msgstr "脚注"
+
+msgid "Table of Contents"
+msgstr "目次"
+
+#~ msgid "Beginning of this chapter or previous chapte"
+#~ msgstr "この章の先頭または前の章"
+
+#~ msgid "Next chapter"
+#~ msgstr "次の章"
+
+#~ msgid "Previous section in reading order"
+#~ msgstr "前のセクション"
+
+#~ msgid "Next section in reading order"
+#~ msgstr "次のセクション"
+
+#~ msgid "Up section"
+#~ msgstr "上のセクション"
+
+#~ msgid "Cover (top) of document"
+#~ msgstr "ドキュメントのカバー (トップ) ページ"
+
+# msgid "Table of contents"
+# msgstr "目次"
+# msgid "Index"
+# msgstr "索引"
+#~ msgid "About (help)"
+#~ msgstr "このドキュメントについて (ヘルプ)"
+
+# Following messages are for "About Document" page.
+#~ msgid "The buttons in the navigation panels have the following meaning:"
+#~ msgstr ""
+#~ "ナビゲーション パネルの中にあるボタンには以下のような意味があります:"
+
+#~ msgid "About This Document"
+#~ msgstr "このドキュメントについて"
+
+# added by Sawada
+# msgid "Contents"
+# msgstr "目次"
+# added by Sawada
+# msgid "Index"
+# msgstr "インデックス"
+# added by Sawada
+# msgid "Up"
+# msgstr "上へ"
+# msgid "GNU LilyPond --- Learning"
+# msgstr "GNU LilyPond --- 学習マニュアル"
+# added by Sawada
+#~ msgid "Contents"
+#~ msgstr "目次"
+
+# added by Sawada
+#~ msgid "Index"
+#~ msgstr "インデックス"
index 5c4f3c734e9060e38581c50045324dcc6bb2b3b9..49bc5f2fb96f24ddc335d22320ed4989f4dd3bc0 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-10-27 12:40+0100\n"
+"POT-Creation-Date: 2009-02-14 02:23+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -39,11 +39,11 @@ msgstr ""
 msgid "About <A HREF=\"%s\">automatic language selection</A>."
 msgstr ""
 
-#: postprocess_html.py:315
+#: postprocess_html.py:316
 msgid "stable-branch"
 msgstr ""
 
-#: postprocess_html.py:317
+#: postprocess_html.py:318
 msgid "development-branch"
 msgstr ""
 
@@ -53,82 +53,82 @@ msgid ""
 "English."
 msgstr ""
 
-#: translations-status.py:52
+#: translations-status.py:59
 msgid "Section titles"
 msgstr ""
 
-#: translations-status.py:53
+#: translations-status.py:60
 #, python-format
 msgid " <p><i>Last updated %s</i></p>\n"
 msgstr ""
 
-#: translations-status.py:54
+#: translations-status.py:61
 msgid "Translators"
 msgstr ""
 
-#: translations-status.py:54
+#: translations-status.py:61
 msgid "Translation checkers"
 msgstr ""
 
-#: translations-status.py:55
+#: translations-status.py:62
 msgid "Translated"
 msgstr ""
 
-#: translations-status.py:55
+#: translations-status.py:62
 msgid "Up to date"
 msgstr ""
 
-#: translations-status.py:56
+#: translations-status.py:63
 msgid "Other info"
 msgstr ""
 
-#: translations-status.py:58
+#: translations-status.py:65
 msgid "no"
 msgstr ""
 
-#: translations-status.py:59
+#: translations-status.py:66
 msgid "not translated"
 msgstr ""
 
-#: translations-status.py:61
+#: translations-status.py:68
 #, python-format
 msgid "partially (%(p)d %%)"
 msgstr ""
 
-#: translations-status.py:63
+#: translations-status.py:70
 #, python-format
 msgid "partially translated (%(p)d %%)"
 msgstr ""
 
-#: translations-status.py:64 translations-status.py:66
+#: translations-status.py:71 translations-status.py:73
 msgid "yes"
 msgstr ""
 
-#: translations-status.py:65
+#: translations-status.py:72
 msgid "translated"
 msgstr ""
 
-#: translations-status.py:66 translations-status.py:67
+#: translations-status.py:73 translations-status.py:74
 msgid "up to date"
 msgstr ""
 
-#: translations-status.py:68
+#: translations-status.py:75
 msgid "partially"
 msgstr ""
 
-#: translations-status.py:69
+#: translations-status.py:76
 msgid "partially up to date"
 msgstr ""
 
-#: translations-status.py:70
+#: translations-status.py:77
 msgid "N/A"
 msgstr ""
 
-#: translations-status.py:71
+#: translations-status.py:78
 msgid "pre-GDP"
 msgstr ""
 
-#: translations-status.py:72
+#: translations-status.py:79
 msgid "post-GDP"
 msgstr ""
 
@@ -145,6 +145,8 @@ msgstr ""
 #. @node in Documentation/de/user/lilypond-learning.tely
 #. @node in Documentation/de/user/lilypond-program.tely
 #. @node in Documentation/de/user/lilypond.tely
+#. @node in Documentation/ja/user/lilypond-learning.tely
+#. @node in Documentation/ja/user/lilypond-program.tely
 msgid "Top"
 msgstr ""
 
@@ -176,30 +178,38 @@ msgstr ""
 #. @appendix in Documentation/de/user/lilypond-program.tely
 #. @node in Documentation/de/user/lilypond.tely
 #. @appendix in Documentation/de/user/lilypond.tely
+#. @node in Documentation/ja/user/lilypond-learning.tely
+#. @appendix in Documentation/ja/user/lilypond-learning.tely
+#. @node in Documentation/ja/user/lilypond-program.tely
+#. @appendix in Documentation/ja/user/lilypond-program.tely
 msgid "LilyPond index"
 msgstr ""
 
 #. @subsubheading in Documentation/user/macros.itexi
 #. @subsubheading in Documentation/fr/user/macros.itexi
 #. @subsubheading in Documentation/de/user/macros.itexi
+#. @subsubheading in Documentation/ja/user/macros.itexi
 msgid "Predefined commands"
 msgstr ""
 
 #. @subsubheading in Documentation/user/macros.itexi
 #. @subsubheading in Documentation/fr/user/macros.itexi
 #. @subsubheading in Documentation/de/user/macros.itexi
+#. @subsubheading in Documentation/ja/user/macros.itexi
 msgid "Selected Snippets"
 msgstr ""
 
 #. @subsubheading in Documentation/user/macros.itexi
 #. @subsubheading in Documentation/fr/user/macros.itexi
 #. @subsubheading in Documentation/de/user/macros.itexi
+#. @subsubheading in Documentation/ja/user/macros.itexi
 msgid "See also"
 msgstr ""
 
 #. @subsubheading in Documentation/user/macros.itexi
 #. @subsubheading in Documentation/fr/user/macros.itexi
 #. @subsubheading in Documentation/de/user/macros.itexi
+#. @subsubheading in Documentation/ja/user/macros.itexi
 msgid "Known issues and warnings"
 msgstr ""
 
@@ -211,6 +221,8 @@ msgstr ""
 #. @unnumbered in Documentation/es/user/preface.itely
 #. @node in Documentation/de/user/preface.itely
 #. @unnumbered in Documentation/de/user/preface.itely
+#. @node in Documentation/ja/user/preface.itely
+#. @unnumbered in Documentation/ja/user/preface.itely
 msgid "Preface"
 msgstr ""
 
@@ -222,6 +234,8 @@ msgstr ""
 #. @chapter in Documentation/es/user/introduction.itely
 #. @node in Documentation/de/user/introduction.itely
 #. @chapter in Documentation/de/user/introduction.itely
+#. @node in Documentation/ja/user/introduction.itely
+#. @chapter in Documentation/ja/user/introduction.itely
 msgid "Introduction"
 msgstr ""
 
@@ -233,6 +247,8 @@ msgstr ""
 #. @section in Documentation/es/user/introduction.itely
 #. @node in Documentation/de/user/introduction.itely
 #. @section in Documentation/de/user/introduction.itely
+#. @node in Documentation/ja/user/introduction.itely
+#. @section in Documentation/ja/user/introduction.itely
 msgid "Background"
 msgstr ""
 
@@ -244,6 +260,8 @@ msgstr ""
 #. @unnumberedsubsec in Documentation/es/user/introduction.itely
 #. @node in Documentation/de/user/introduction.itely
 #. @unnumberedsubsec in Documentation/de/user/introduction.itely
+#. @node in Documentation/ja/user/introduction.itely
+#. @unnumberedsubsec in Documentation/ja/user/introduction.itely
 msgid "Engraving"
 msgstr ""
 
@@ -255,6 +273,8 @@ msgstr ""
 #. @unnumberedsubsec in Documentation/es/user/introduction.itely
 #. @node in Documentation/de/user/introduction.itely
 #. @unnumberedsubsec in Documentation/de/user/introduction.itely
+#. @node in Documentation/ja/user/introduction.itely
+#. @unnumberedsubsec in Documentation/ja/user/introduction.itely
 msgid "Automated engraving"
 msgstr ""
 
@@ -266,6 +286,8 @@ msgstr ""
 #. @unnumberedsubsec in Documentation/es/user/introduction.itely
 #. @node in Documentation/de/user/introduction.itely
 #. @unnumberedsubsec in Documentation/de/user/introduction.itely
+#. @node in Documentation/ja/user/introduction.itely
+#. @unnumberedsubsec in Documentation/ja/user/introduction.itely
 msgid "What symbols to engrave?"
 msgstr ""
 
@@ -277,6 +299,8 @@ msgstr ""
 #. @unnumberedsubsec in Documentation/es/user/introduction.itely
 #. @node in Documentation/de/user/introduction.itely
 #. @unnumberedsubsec in Documentation/de/user/introduction.itely
+#. @node in Documentation/ja/user/introduction.itely
+#. @unnumberedsubsec in Documentation/ja/user/introduction.itely
 msgid "Music representation"
 msgstr ""
 
@@ -288,6 +312,8 @@ msgstr ""
 #. @unnumberedsubsec in Documentation/es/user/introduction.itely
 #. @node in Documentation/de/user/introduction.itely
 #. @unnumberedsubsec in Documentation/de/user/introduction.itely
+#. @node in Documentation/ja/user/introduction.itely
+#. @unnumberedsubsec in Documentation/ja/user/introduction.itely
 msgid "Example applications"
 msgstr ""
 
@@ -299,6 +325,8 @@ msgstr ""
 #. @section in Documentation/es/user/introduction.itely
 #. @node in Documentation/de/user/introduction.itely
 #. @section in Documentation/de/user/introduction.itely
+#. @node in Documentation/ja/user/introduction.itely
+#. @section in Documentation/ja/user/introduction.itely
 msgid "About the documentation"
 msgstr ""
 
@@ -310,6 +338,8 @@ msgstr ""
 #. @unnumberedsubsec in Documentation/es/user/introduction.itely
 #. @node in Documentation/de/user/introduction.itely
 #. @unnumberedsubsec in Documentation/de/user/introduction.itely
+#. @node in Documentation/ja/user/introduction.itely
+#. @unnumberedsubsec in Documentation/ja/user/introduction.itely
 msgid "About the Learning Manual"
 msgstr ""
 
@@ -321,6 +351,8 @@ msgstr ""
 #. @unnumberedsubsec in Documentation/es/user/introduction.itely
 #. @node in Documentation/de/user/introduction.itely
 #. @unnumberedsubsec in Documentation/de/user/introduction.itely
+#. @node in Documentation/ja/user/introduction.itely
+#. @unnumberedsubsec in Documentation/ja/user/introduction.itely
 msgid "About the Music Glossary"
 msgstr ""
 
@@ -332,6 +364,8 @@ msgstr ""
 #. @unnumberedsubsec in Documentation/es/user/introduction.itely
 #. @node in Documentation/de/user/introduction.itely
 #. @unnumberedsubsec in Documentation/de/user/introduction.itely
+#. @node in Documentation/ja/user/introduction.itely
+#. @unnumberedsubsec in Documentation/ja/user/introduction.itely
 msgid "About the Notation Reference"
 msgstr ""
 
@@ -343,6 +377,8 @@ msgstr ""
 #. @unnumberedsubsec in Documentation/es/user/introduction.itely
 #. @node in Documentation/de/user/introduction.itely
 #. @unnumberedsubsec in Documentation/de/user/introduction.itely
+#. @node in Documentation/ja/user/introduction.itely
+#. @unnumberedsubsec in Documentation/ja/user/introduction.itely
 msgid "About the Application Usage"
 msgstr ""
 
@@ -354,6 +390,8 @@ msgstr ""
 #. @unnumberedsubsec in Documentation/es/user/introduction.itely
 #. @node in Documentation/de/user/introduction.itely
 #. @unnumberedsubsec in Documentation/de/user/introduction.itely
+#. @node in Documentation/ja/user/introduction.itely
+#. @unnumberedsubsec in Documentation/ja/user/introduction.itely
 msgid "About the Snippet List"
 msgstr ""
 
@@ -365,6 +403,8 @@ msgstr ""
 #. @unnumberedsubsec in Documentation/es/user/introduction.itely
 #. @node in Documentation/de/user/introduction.itely
 #. @unnumberedsubsec in Documentation/de/user/introduction.itely
+#. @node in Documentation/ja/user/introduction.itely
+#. @unnumberedsubsec in Documentation/ja/user/introduction.itely
 msgid "About the Internals Reference"
 msgstr ""
 
@@ -376,6 +416,8 @@ msgstr ""
 #. @unnumberedsubsec in Documentation/es/user/introduction.itely
 #. @node in Documentation/de/user/introduction.itely
 #. @unnumberedsubsec in Documentation/de/user/introduction.itely
+#. @node in Documentation/ja/user/introduction.itely
+#. @unnumberedsubsec in Documentation/ja/user/introduction.itely
 msgid "Other documentation"
 msgstr ""
 
@@ -411,27 +453,32 @@ msgstr ""
 msgid "f is 4 up or 3 down, so is the f below"
 msgstr ""
 
-#. Documentation/user/tutorial.itely:1796 (variable)
-#. Documentation/user/working.itely:214 (variable)
-#. Documentation/user/working.itely:229 (variable)
+#. Documentation/user/tutorial.itely:1791 (variable)
+#. Documentation/user/working.itely:233 (variable)
+#. Documentation/user/working.itely:248 (variable)
+#. Documentation/user/pitches.itely:1078 (context id)
 msgid "violin"
 msgstr ""
 
-#. Documentation/user/tutorial.itely:1801 (variable)
+#. Documentation/user/tutorial.itely:1796 (variable)
+#. input/lsr/string-quartet-template-simple.ly:62 (variable)
 msgid "cello"
 msgstr ""
 
-#. Documentation/user/tutorial.itely:1826 (variable)
+#. Documentation/user/tutorial.itely:1821 (variable)
 msgid "tripletA"
 msgstr ""
 
-#. Documentation/user/tutorial.itely:1827 (variable)
+#. Documentation/user/tutorial.itely:1822 (variable)
 msgid "barA"
 msgstr ""
 
 #. @rglos in Documentation/user/tutorial.itely
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
+#. input/lsr/measure-counter.ly:25 (context id)
+#. input/lsr/measure-counter.ly:32 (context id)
 msgid "foo"
 msgstr ""
 
@@ -443,6 +490,8 @@ msgstr ""
 #. @chapter in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @chapter in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @chapter in Documentation/ja/user/tutorial.itely
 msgid "Tutorial"
 msgstr ""
 
@@ -454,6 +503,8 @@ msgstr ""
 #. @section in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @section in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @section in Documentation/ja/user/tutorial.itely
 msgid "First steps"
 msgstr ""
 
@@ -465,6 +516,8 @@ msgstr ""
 #. @subsection in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "Compiling a file"
 msgstr ""
 
@@ -472,6 +525,7 @@ msgstr ""
 #. @subheading in Documentation/fr/user/tutorial.itely
 #. @subheading in Documentation/es/user/tutorial.itely
 #. @subheading in Documentation/de/user/tutorial.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Entering music and viewing output"
 msgstr ""
 
@@ -479,6 +533,7 @@ msgstr ""
 #. @subsubheading in Documentation/fr/user/tutorial.itely
 #. @subsubheading in Documentation/es/user/tutorial.itely
 #. @subsubheading in Documentation/de/user/tutorial.itely
+#. @subsubheading in Documentation/ja/user/tutorial.itely
 msgid "MacOS X"
 msgstr ""
 
@@ -486,6 +541,7 @@ msgstr ""
 #. @subsubheading in Documentation/fr/user/tutorial.itely
 #. @subsubheading in Documentation/es/user/tutorial.itely
 #. @subsubheading in Documentation/de/user/tutorial.itely
+#. @subsubheading in Documentation/ja/user/tutorial.itely
 msgid "Windows"
 msgstr ""
 
@@ -493,6 +549,7 @@ msgstr ""
 #. @subsubheading in Documentation/fr/user/tutorial.itely
 #. @subsubheading in Documentation/es/user/tutorial.itely
 #. @subsubheading in Documentation/de/user/tutorial.itely
+#. @subsubheading in Documentation/ja/user/tutorial.itely
 msgid "UNIX"
 msgstr ""
 
@@ -504,6 +561,8 @@ msgstr ""
 #. @subsection in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "Simple notation"
 msgstr ""
 
@@ -518,6 +577,7 @@ msgstr ""
 #. @subheading in Documentation/de/user/tutorial.itely
 #. @node in Documentation/de/user/pitches.itely
 #. @section in Documentation/de/user/pitches.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Pitches"
 msgstr ""
 
@@ -525,6 +585,7 @@ msgstr ""
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "pitch"
 msgstr ""
 
@@ -535,6 +596,7 @@ msgstr ""
 #. @rglos in Documentation/es/user/pitches.itely
 #. @rglos in Documentation/de/user/tutorial.itely
 #. @rglos in Documentation/de/user/pitches.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "interval"
 msgstr ""
 
@@ -542,6 +604,7 @@ msgstr ""
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "scale"
 msgstr ""
 
@@ -549,6 +612,7 @@ msgstr ""
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "middle C"
 msgstr ""
 
@@ -556,6 +620,7 @@ msgstr ""
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "octave"
 msgstr ""
 
@@ -563,12 +628,14 @@ msgstr ""
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "accidental"
 msgstr ""
 
 #. @subheading in Documentation/user/tutorial.itely
 #. @subheading in Documentation/es/user/tutorial.itely
 #. @subheading in Documentation/de/user/tutorial.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Durations (rhythms)"
 msgstr ""
 
@@ -576,6 +643,7 @@ msgstr ""
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "beam"
 msgstr ""
 
@@ -583,6 +651,7 @@ msgstr ""
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "duration"
 msgstr ""
 
@@ -590,6 +659,7 @@ msgstr ""
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "whole note"
 msgstr ""
 
@@ -597,6 +667,7 @@ msgstr ""
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "half note"
 msgstr ""
 
@@ -604,6 +675,7 @@ msgstr ""
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "quarter note"
 msgstr ""
 
@@ -611,6 +683,7 @@ msgstr ""
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "dotted note"
 msgstr ""
 
@@ -625,12 +698,14 @@ msgstr ""
 #. @subheading in Documentation/de/user/tutorial.itely
 #. @node in Documentation/de/user/rhythms.itely
 #. @unnumberedsubsubsec in Documentation/de/user/rhythms.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Rests"
 msgstr ""
 
 #. @rglos in Documentation/user/tutorial.itely
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "rest"
 msgstr ""
 
@@ -645,6 +720,7 @@ msgstr ""
 #. @subheading in Documentation/de/user/tutorial.itely
 #. @node in Documentation/de/user/rhythms.itely
 #. @unnumberedsubsubsec in Documentation/de/user/rhythms.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Time signature"
 msgstr ""
 
@@ -654,6 +730,8 @@ msgstr ""
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/es/user/rhythms.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/de/user/rhythms.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "time signature"
 msgstr ""
 
@@ -669,18 +747,21 @@ msgstr ""
 #. @subheading in Documentation/de/user/tutorial.itely
 #. @node in Documentation/de/user/pitches.itely
 #. @unnumberedsubsubsec in Documentation/de/user/pitches.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Clef"
 msgstr ""
 
 #. @rglos in Documentation/user/tutorial.itely
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "clef"
 msgstr ""
 
 #. @subheading in Documentation/user/tutorial.itely
 #. @subheading in Documentation/es/user/tutorial.itely
 #. @subheading in Documentation/de/user/tutorial.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "All together"
 msgstr ""
 
@@ -692,6 +773,8 @@ msgstr ""
 #. @subsection in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "Working on input files"
 msgstr ""
 
@@ -703,12 +786,15 @@ msgstr ""
 #. @subsection in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "How to read the manual"
 msgstr ""
 
 #. @subheading in Documentation/user/tutorial.itely
 #. @subheading in Documentation/es/user/tutorial.itely
 #. @subheading in Documentation/de/user/tutorial.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Clickable examples"
 msgstr ""
 
@@ -720,6 +806,8 @@ msgstr ""
 #. @section in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @section in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @section in Documentation/ja/user/tutorial.itely
 msgid "Single staff notation"
 msgstr ""
 
@@ -731,6 +819,8 @@ msgstr ""
 #. @subsection in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "Accidentals and key signatures"
 msgstr ""
 
@@ -746,6 +836,7 @@ msgstr ""
 #. @subheading in Documentation/de/user/tutorial.itely
 #. @node in Documentation/de/user/pitches.itely
 #. @unnumberedsubsubsec in Documentation/de/user/pitches.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Accidentals"
 msgstr ""
 
@@ -756,6 +847,7 @@ msgstr ""
 #. @rglos in Documentation/es/user/pitches.itely
 #. @rglos in Documentation/de/user/tutorial.itely
 #. @rglos in Documentation/de/user/pitches.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "sharp"
 msgstr ""
 
@@ -766,6 +858,7 @@ msgstr ""
 #. @rglos in Documentation/es/user/pitches.itely
 #. @rglos in Documentation/de/user/tutorial.itely
 #. @rglos in Documentation/de/user/pitches.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "flat"
 msgstr ""
 
@@ -776,6 +869,7 @@ msgstr ""
 #. @rglos in Documentation/es/user/pitches.itely
 #. @rglos in Documentation/de/user/tutorial.itely
 #. @rglos in Documentation/de/user/pitches.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "double sharp"
 msgstr ""
 
@@ -786,6 +880,7 @@ msgstr ""
 #. @rglos in Documentation/es/user/pitches.itely
 #. @rglos in Documentation/de/user/tutorial.itely
 #. @rglos in Documentation/de/user/pitches.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "double flat"
 msgstr ""
 
@@ -793,6 +888,7 @@ msgstr ""
 #. @subheading in Documentation/fr/user/tutorial.itely
 #. @subheading in Documentation/es/user/tutorial.itely
 #. @subheading in Documentation/de/user/tutorial.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Key signatures"
 msgstr ""
 
@@ -800,6 +896,7 @@ msgstr ""
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "key signature"
 msgstr ""
 
@@ -807,6 +904,7 @@ msgstr ""
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "major"
 msgstr ""
 
@@ -814,6 +912,7 @@ msgstr ""
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "minor"
 msgstr ""
 
@@ -821,6 +920,7 @@ msgstr ""
 #. @subheading in Documentation/fr/user/tutorial.itely
 #. @subheading in Documentation/es/user/tutorial.itely
 #. @subheading in Documentation/de/user/tutorial.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Warning: key signatures and pitches"
 msgstr ""
 
@@ -828,6 +928,7 @@ msgstr ""
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "natural"
 msgstr ""
 
@@ -835,6 +936,7 @@ msgstr ""
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "transposition"
 msgstr ""
 
@@ -845,6 +947,7 @@ msgstr ""
 #. @rglos in Documentation/es/user/pitches.itely
 #. @rglos in Documentation/de/user/tutorial.itely
 #. @rglos in Documentation/de/user/pitches.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "Pitch names"
 msgstr ""
 
@@ -856,6 +959,8 @@ msgstr ""
 #. @subsection in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "Ties and slurs"
 msgstr ""
 
@@ -871,6 +976,7 @@ msgstr ""
 #. @subheading in Documentation/de/user/tutorial.itely
 #. @node in Documentation/de/user/rhythms.itely
 #. @unnumberedsubsubsec in Documentation/de/user/rhythms.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Ties"
 msgstr ""
 
@@ -881,6 +987,8 @@ msgstr ""
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/es/user/rhythms.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/de/user/rhythms.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "tie"
 msgstr ""
 
@@ -896,6 +1004,7 @@ msgstr ""
 #. @subheading in Documentation/de/user/tutorial.itely
 #. @node in Documentation/de/user/expressive.itely
 #. @unnumberedsubsubsec in Documentation/de/user/expressive.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Slurs"
 msgstr ""
 
@@ -906,6 +1015,7 @@ msgstr ""
 #. @rglos in Documentation/es/user/expressive.itely
 #. @rglos in Documentation/de/user/tutorial.itely
 #. @rglos in Documentation/de/user/expressive.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "slur"
 msgstr ""
 
@@ -921,6 +1031,7 @@ msgstr ""
 #. @subheading in Documentation/de/user/tutorial.itely
 #. @node in Documentation/de/user/expressive.itely
 #. @unnumberedsubsubsec in Documentation/de/user/expressive.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Phrasing slurs"
 msgstr ""
 
@@ -928,6 +1039,7 @@ msgstr ""
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "phrasing"
 msgstr ""
 
@@ -935,6 +1047,7 @@ msgstr ""
 #. @subheading in Documentation/fr/user/tutorial.itely
 #. @subheading in Documentation/es/user/tutorial.itely
 #. @subheading in Documentation/de/user/tutorial.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Warnings: slurs vs. ties"
 msgstr ""
 
@@ -942,6 +1055,7 @@ msgstr ""
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "articulation"
 msgstr ""
 
@@ -953,6 +1067,8 @@ msgstr ""
 #. @subsection in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "Articulation and dynamics"
 msgstr ""
 
@@ -960,6 +1076,7 @@ msgstr ""
 #. @subheading in Documentation/fr/user/tutorial.itely
 #. @subheading in Documentation/es/user/tutorial.itely
 #. @subheading in Documentation/de/user/tutorial.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Articulations"
 msgstr ""
 
@@ -975,6 +1092,7 @@ msgstr ""
 #. @subheading in Documentation/de/user/tutorial.itely
 #. @node in Documentation/de/user/wind.itely
 #. @unnumberedsubsubsec in Documentation/de/user/wind.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Fingerings"
 msgstr ""
 
@@ -982,6 +1100,7 @@ msgstr ""
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "fingering"
 msgstr ""
 
@@ -990,6 +1109,7 @@ msgstr ""
 #. @node in Documentation/user/expressive.itely
 #. @unnumberedsubsubsec in Documentation/user/expressive.itely
 #. @subheading in Documentation/fr/user/tutorial.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @node in Documentation/fr/user/expressive.itely
 #. @unnumberedsubsubsec in Documentation/fr/user/expressive.itely
 #. @subheading in Documentation/es/user/tutorial.itely
@@ -1000,6 +1120,8 @@ msgstr ""
 #. @subheading in Documentation/de/user/tweaks.itely
 #. @node in Documentation/de/user/expressive.itely
 #. @unnumberedsubsubsec in Documentation/de/user/expressive.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "Dynamics"
 msgstr ""
 
@@ -1007,6 +1129,8 @@ msgstr ""
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
+#. input/lsr/piano-template-with-centered-dynamics.ly:52 (variable)
 msgid "dynamics"
 msgstr ""
 
@@ -1017,6 +1141,7 @@ msgstr ""
 #. @rglos in Documentation/es/user/expressive.itely
 #. @rglos in Documentation/de/user/tutorial.itely
 #. @rglos in Documentation/de/user/expressive.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "crescendo"
 msgstr ""
 
@@ -1027,6 +1152,7 @@ msgstr ""
 #. @rglos in Documentation/es/user/expressive.itely
 #. @rglos in Documentation/de/user/tutorial.itely
 #. @rglos in Documentation/de/user/expressive.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "decrescendo"
 msgstr ""
 
@@ -1038,6 +1164,8 @@ msgstr ""
 #. @subsection in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "Adding text"
 msgstr ""
 
@@ -1049,6 +1177,8 @@ msgstr ""
 #. @subsection in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "Automatic and manual beams"
 msgstr ""
 
@@ -1060,6 +1190,8 @@ msgstr ""
 #. @subsection in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "Advanced rhythmic commands"
 msgstr ""
 
@@ -1067,6 +1199,7 @@ msgstr ""
 #. @subheading in Documentation/fr/user/tutorial.itely
 #. @subheading in Documentation/es/user/tutorial.itely
 #. @subheading in Documentation/de/user/tutorial.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Partial measure"
 msgstr ""
 
@@ -1075,6 +1208,8 @@ msgstr ""
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/es/user/rhythms.itely
+#. @rglos in Documentation/de/user/rhythms.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "anacrusis"
 msgstr ""
 
@@ -1090,6 +1225,7 @@ msgstr ""
 #. @subheading in Documentation/de/user/tutorial.itely
 #. @node in Documentation/de/user/rhythms.itely
 #. @unnumberedsubsubsec in Documentation/de/user/rhythms.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Tuplets"
 msgstr ""
 
@@ -1099,6 +1235,8 @@ msgstr ""
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/es/user/rhythms.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/de/user/rhythms.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "note value"
 msgstr ""
 
@@ -1108,6 +1246,8 @@ msgstr ""
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/es/user/rhythms.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/de/user/rhythms.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "triplet"
 msgstr ""
 
@@ -1123,6 +1263,7 @@ msgstr ""
 #. @subheading in Documentation/de/user/tutorial.itely
 #. @node in Documentation/de/user/rhythms.itely
 #. @unnumberedsubsubsec in Documentation/de/user/rhythms.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Grace notes"
 msgstr ""
 
@@ -1132,6 +1273,8 @@ msgstr ""
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/es/user/rhythms.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/de/user/rhythms.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "grace notes"
 msgstr ""
 
@@ -1141,6 +1284,8 @@ msgstr ""
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/es/user/rhythms.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/de/user/rhythms.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "acciaccatura"
 msgstr ""
 
@@ -1150,6 +1295,8 @@ msgstr ""
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/es/user/rhythms.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/de/user/rhythms.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "appoggiatura"
 msgstr ""
 
@@ -1161,6 +1308,8 @@ msgstr ""
 #. @section in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @section in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @section in Documentation/ja/user/tutorial.itely
 msgid "Multiple notes at once"
 msgstr ""
 
@@ -1172,6 +1321,8 @@ msgstr ""
 #. @subsection in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "Music expressions explained"
 msgstr ""
 
@@ -1179,6 +1330,7 @@ msgstr ""
 #. @subheading in Documentation/fr/user/tutorial.itely
 #. @subheading in Documentation/es/user/tutorial.itely
 #. @subheading in Documentation/de/user/tutorial.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Analogy: mathematical expressions"
 msgstr ""
 
@@ -1186,6 +1338,7 @@ msgstr ""
 #. @subheading in Documentation/fr/user/tutorial.itely
 #. @subheading in Documentation/es/user/tutorial.itely
 #. @subheading in Documentation/de/user/tutorial.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Simultaneous music expressions: multiple staves"
 msgstr ""
 
@@ -1196,6 +1349,7 @@ msgstr ""
 #. @rglos in Documentation/es/user/simultaneous.itely
 #. @rglos in Documentation/de/user/tutorial.itely
 #. @rglos in Documentation/de/user/simultaneous.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "polyphony"
 msgstr ""
 
@@ -1203,6 +1357,7 @@ msgstr ""
 #. @subheading in Documentation/fr/user/tutorial.itely
 #. @subheading in Documentation/es/user/tutorial.itely
 #. @subheading in Documentation/de/user/tutorial.itely
+#. @subheading in Documentation/ja/user/tutorial.itely
 msgid "Simultaneous music expressions: single staff"
 msgstr ""
 
@@ -1214,6 +1369,8 @@ msgstr ""
 #. @subsection in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "Multiple staves"
 msgstr ""
 
@@ -1225,6 +1382,8 @@ msgstr ""
 #. @subsection in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "Staff groups"
 msgstr ""
 
@@ -1234,6 +1393,8 @@ msgstr ""
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/es/user/staff.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/de/user/staff.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "brace"
 msgstr ""
 
@@ -1245,6 +1406,8 @@ msgstr ""
 #. @subsection in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "Combining notes into chords"
 msgstr ""
 
@@ -1257,6 +1420,8 @@ msgstr ""
 #. @rglos in Documentation/es/user/chords.itely
 #. @rglos in Documentation/de/user/tutorial.itely
 #. @rglos in Documentation/de/user/simultaneous.itely
+#. @rglos in Documentation/de/user/chords.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "chord"
 msgstr ""
 
@@ -1268,6 +1433,8 @@ msgstr ""
 #. @subsection in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "Single staff polyphony"
 msgstr ""
 
@@ -1279,6 +1446,8 @@ msgstr ""
 #. @section in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @section in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @section in Documentation/ja/user/tutorial.itely
 msgid "Songs"
 msgstr ""
 
@@ -1298,6 +1467,8 @@ msgstr ""
 #. @subsection in Documentation/de/user/tutorial.itely
 #. @node in Documentation/de/user/vocal.itely
 #. @unnumberedsubsubsec in Documentation/de/user/vocal.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "Setting simple songs"
 msgstr ""
 
@@ -1305,6 +1476,7 @@ msgstr ""
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "lyrics"
 msgstr ""
 
@@ -1324,6 +1496,8 @@ msgstr ""
 #. @subsection in Documentation/de/user/tutorial.itely
 #. @node in Documentation/de/user/vocal.itely
 #. @subsection in Documentation/de/user/vocal.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "Aligning lyrics to a melody"
 msgstr ""
 
@@ -1331,6 +1505,7 @@ msgstr ""
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "melisma"
 msgstr ""
 
@@ -1338,6 +1513,7 @@ msgstr ""
 #. @rglos in Documentation/fr/user/tutorial.itely
 #. @rglos in Documentation/es/user/tutorial.itely
 #. @rglos in Documentation/de/user/tutorial.itely
+#. @rglos in Documentation/ja/user/tutorial.itely
 msgid "extender line"
 msgstr ""
 
@@ -1349,6 +1525,8 @@ msgstr ""
 #. @subsection in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "Lyrics to multiple staves"
 msgstr ""
 
@@ -1360,6 +1538,8 @@ msgstr ""
 #. @section in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @section in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @section in Documentation/ja/user/tutorial.itely
 msgid "Final touches"
 msgstr ""
 
@@ -1371,6 +1551,8 @@ msgstr ""
 #. @subsection in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "Organizing pieces with variables"
 msgstr ""
 
@@ -1382,6 +1564,8 @@ msgstr ""
 #. @subsection in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "Version number"
 msgstr ""
 
@@ -1393,6 +1577,8 @@ msgstr ""
 #. @subsection in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "Adding titles"
 msgstr ""
 
@@ -1404,6 +1590,8 @@ msgstr ""
 #. @subsection in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "Absolute note names"
 msgstr ""
 
@@ -1415,32 +1603,119 @@ msgstr ""
 #. @subsection in Documentation/es/user/tutorial.itely
 #. @node in Documentation/de/user/tutorial.itely
 #. @subsection in Documentation/de/user/tutorial.itely
+#. @node in Documentation/ja/user/tutorial.itely
+#. @subsection in Documentation/ja/user/tutorial.itely
 msgid "After the tutorial"
 msgstr ""
 
-#. Documentation/user/fundamental.itely:361 (variable)
-#. Documentation/user/vocal.itely:1222 (variable)
-#. Documentation/user/vocal.itely:1264 (variable)
-msgid "melody"
+#. Documentation/user/fundamental.itely:324 (context id)
+#. Documentation/user/fundamental.itely:367 (context id)
+#. input/lsr/piano-template-with-centered-lyrics.ly:55 (context id)
+msgid "singer"
 msgstr ""
 
-#. Documentation/user/fundamental.itely:362 (variable)
-#. Documentation/user/vocal.itely:1045 (variable)
-#. Documentation/user/vocal.itely:1227 (variable)
-#. Documentation/user/vocal.itely:1268 (variable)
-msgid "text"
+#. Documentation/user/fundamental.itely:325 (context id)
+#. Documentation/user/fundamental.itely:368 (context id)
+msgid "vocal"
 msgstr ""
 
-#. Documentation/user/fundamental.itely:363 (variable)
+#. Documentation/user/fundamental.itely:328 (context id)
+#. Documentation/user/fundamental.itely:371 (context id)
+#. input/lsr/jazz-combo-template.ly:218 (variable)
+#. input/lsr/jazz-combo-template.ly:278 (context id)
+msgid "piano"
+msgstr ""
+
+#. Documentation/user/fundamental.itely:329 (context id)
+#. Documentation/user/fundamental.itely:362 (variable)
+#. Documentation/user/fundamental.itely:372 (context id)
 #. Documentation/user/fundamental.itely:2669 (variable)
+#. Documentation/user/fundamental.itely:2711 (context id)
+#. input/lsr/changing-the-number-of-lines-in-a-staff.ly:19 (variable)
+#. input/lsr/jazz-combo-template.ly:221 (context id)
+#. input/lsr/piano-template-simple.ly:32 (variable)
+#. input/lsr/piano-template-simple.ly:51 (context id)
+#. input/lsr/piano-template-with-centered-dynamics.ly:42 (variable)
+#. input/lsr/piano-template-with-centered-lyrics.ly:33 (variable)
+#. input/lsr/piano-template-with-centered-lyrics.ly:55 (context id)
+#. input/lsr/piano-template-with-melody-and-lyrics.ly:44 (variable)
+#. input/lsr/piano-template-with-melody-and-lyrics.ly:65 (context id)
+#. input/lsr/polyphony-in-tablature.ly:32 (variable)
+#. input/lsr/polyphony-in-tablature.ly:50 (context id)
+#. input/lsr/polyphony-in-tablature.ly:54 (context id)
 msgid "upper"
 msgstr ""
 
-#. Documentation/user/fundamental.itely:364 (variable)
+#. Documentation/user/fundamental.itely:330 (context id)
+#. Documentation/user/fundamental.itely:363 (variable)
+#. Documentation/user/fundamental.itely:373 (context id)
 #. Documentation/user/fundamental.itely:2676 (variable)
+#. Documentation/user/fundamental.itely:2712 (context id)
+#. input/lsr/changing-the-number-of-lines-in-a-staff.ly:23 (variable)
+#. input/lsr/jazz-combo-template.ly:222 (context id)
+#. input/lsr/piano-template-simple.ly:40 (variable)
+#. input/lsr/piano-template-simple.ly:52 (context id)
+#. input/lsr/piano-template-with-centered-dynamics.ly:47 (variable)
+#. input/lsr/piano-template-with-centered-lyrics.ly:41 (variable)
+#. input/lsr/piano-template-with-centered-lyrics.ly:57 (context id)
+#. input/lsr/piano-template-with-melody-and-lyrics.ly:52 (variable)
+#. input/lsr/piano-template-with-melody-and-lyrics.ly:66 (context id)
+#. input/lsr/polyphony-in-tablature.ly:39 (variable)
+#. input/lsr/polyphony-in-tablature.ly:51 (context id)
+#. input/lsr/polyphony-in-tablature.ly:55 (context id)
 msgid "lower"
 msgstr ""
 
+#. Documentation/user/fundamental.itely:360 (variable)
+#. Documentation/user/simultaneous.itely:241 (context id)
+#. Documentation/user/vocal.itely:571 (context id)
+#. Documentation/user/vocal.itely:803 (context id)
+#. Documentation/user/vocal.itely:824 (context id)
+#. Documentation/user/vocal.itely:1224 (variable)
+#. Documentation/user/vocal.itely:1266 (variable)
+#. Documentation/user/ancient.itely:2413 (context id)
+#. Documentation/user/ancient.itely:2452 (context id)
+#. input/lsr/adjusting-lyrics-vertical-spacing.ly:32 (context id)
+#. input/lsr/adjusting-lyrics-vertical-spacing.ly:43 (context id)
+#. input/lsr/ancient-notation-template----modern-transcription-of-gregorian-music.ly:50 (context id)
+#. input/lsr/demo-midiinstruments.ly:28 (variable)
+#. input/lsr/formatting-lyrics-syllables.ly:28 (context id)
+#. input/lsr/guitar-strum-rhythms.ly:53 (context id)
+#. input/lsr/heavily-customized-polymetric-time-signatures.ly:37 (variable)
+#. input/lsr/piano-template-with-melody-and-lyrics.ly:32 (variable)
+#. input/lsr/single-staff-template-with-notes,-lyrics,-and-chords.ly:32 (variable)
+#. input/lsr/single-staff-template-with-notes-and-chords.ly:33 (variable)
+#. input/lsr/single-staff-template-with-notes-and-lyrics.ly:45 (variable)
+#. input/lsr/single-staff-template-with-only-notes.ly:37 (variable)
+#. input/lsr/vertically-centered-common-lyrics.ly:44 (variable)
+msgid "melody"
+msgstr ""
+
+#. Documentation/user/fundamental.itely:361 (variable)
+#. Documentation/user/vocal.itely:1051 (variable)
+#. Documentation/user/vocal.itely:1229 (variable)
+#. Documentation/user/vocal.itely:1270 (variable)
+#. input/lsr/piano-template-with-centered-lyrics.ly:49 (variable)
+#. input/lsr/piano-template-with-melody-and-lyrics.ly:40 (variable)
+#. input/lsr/single-staff-template-with-notes,-lyrics,-and-chords.ly:40 (variable)
+#. input/lsr/single-staff-template-with-notes-and-lyrics.ly:53 (variable)
+msgid "text"
+msgstr ""
+
+#. Documentation/user/fundamental.itely:443 (context id)
+#. Documentation/user/staff.itely:531 (context id)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:79 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:115 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:131 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:152 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:167 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:188 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:203 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:219 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:235 (comment)
+msgid "main"
+msgstr ""
+
 #. Documentation/user/fundamental.itely:632 (comment)
 msgid "Voice \\\"1\\\"                  Voice \\\"2\\\""
 msgstr ""
@@ -1467,16 +1742,16 @@ msgid "Voice \\\"1\\\"     Voice \\\"2\\\"                 Voice \\\"3\\\""
 msgstr ""
 
 #. Documentation/user/fundamental.itely:711 (comment)
-#. Documentation/user/simultaneous.itely:737 (comment)
-#. Documentation/user/simultaneous.itely:762 (comment)
-#. Documentation/user/simultaneous.itely:789 (comment)
+#. Documentation/user/simultaneous.itely:743 (comment)
+#. Documentation/user/simultaneous.itely:768 (comment)
+#. Documentation/user/simultaneous.itely:795 (comment)
 msgid "Bar 1"
 msgstr ""
 
 #. Documentation/user/fundamental.itely:722 (comment)
-#. Documentation/user/simultaneous.itely:742 (comment)
-#. Documentation/user/simultaneous.itely:767 (comment)
-#. Documentation/user/simultaneous.itely:795 (comment)
+#. Documentation/user/simultaneous.itely:748 (comment)
+#. Documentation/user/simultaneous.itely:773 (comment)
+#. Documentation/user/simultaneous.itely:801 (comment)
 msgid "Bar 2"
 msgstr ""
 
@@ -1544,11 +1819,38 @@ msgstr ""
 msgid "Initiate first voice"
 msgstr ""
 
+#. Documentation/user/fundamental.itely:1199 (context id)
+#. Documentation/user/fundamental.itely:2441 (context id)
+#. Documentation/user/vocal.itely:506 (context id)
+#. Documentation/user/vocal.itely:1235 (context id)
+#. Documentation/user/vocal.itely:1276 (context id)
+#. Documentation/user/keyboards.itely:338 (context id)
+#. Documentation/user/fretted-strings.itely:246 (context id)
+#. input/lsr/adding-fingerings-to-tablatures.ly:23 (variable)
+#. input/lsr/jazz-combo-template.ly:204 (context id)
+#. input/lsr/jazz-combo-template.ly:213 (context id)
+#. input/lsr/single-staff-template-with-notes,-lyrics,-and-chords.ly:54 (context id)
+#. input/lsr/single-staff-template-with-notes-and-lyrics.ly:59 (context id)
+msgid "one"
+msgstr ""
+
 #. Documentation/user/fundamental.itely:1242 (variable)
 #. Documentation/user/fundamental.itely:2646 (variable)
-#. Documentation/user/tweaks.itely:3268 (variable)
-#. Documentation/user/simultaneous.itely:783 (variable)
+#. Documentation/user/tweaks.itely:3502 (variable)
+#. Documentation/user/simultaneous.itely:789 (variable)
 #. Documentation/user/percussion.itely:497 (variable)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:59 (variable)
+#. input/lsr/incipit.ly:57 (variable)
+#. input/lsr/jazz-combo-template.ly:74 (variable)
+#. input/lsr/mensurstriche-layout-bar-lines-between-the-staves.ly:29 (variable)
+#. input/lsr/piano-template-with-centered-dynamics.ly:37 (variable)
+#. input/lsr/printing-music-with-different-time-signatures.ly:25 (variable)
+#. input/lsr/string-quartet-template-simple.ly:29 (variable)
+#. input/lsr/string-quartet-template-with-separate-parts.ly:80 (variable)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:30 (variable)
+#. input/lsr/vocal-ensemble-template-with-automatic-piano-reduction.ly:46 (variable)
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:37 (variable)
+#. input/lsr/vocal-ensemble-template.ly:42 (variable)
 msgid "global"
 msgstr ""
 
@@ -1568,6 +1870,14 @@ msgstr ""
 msgid "SopTwoLyrics"
 msgstr ""
 
+#. Documentation/user/fundamental.itely:1255 (context id)
+msgid "SopOne"
+msgstr ""
+
+#. Documentation/user/fundamental.itely:1264 (context id)
+msgid "SopTwo"
+msgstr ""
+
 #. Documentation/user/fundamental.itely:1296 (variable)
 #. Documentation/user/fundamental.itely:2864 (variable)
 msgid "TimeKey"
@@ -1578,40 +1888,63 @@ msgid "SopMusic"
 msgstr ""
 
 #. Documentation/user/fundamental.itely:1298 (variable)
-#. Documentation/user/tweaks.itely:3270 (variable)
+#. Documentation/user/tweaks.itely:3504 (variable)
 msgid "AltoMusic"
 msgstr ""
 
 #. Documentation/user/fundamental.itely:1299 (variable)
-#. Documentation/user/tweaks.itely:3271 (variable)
+#. Documentation/user/tweaks.itely:3505 (variable)
 msgid "TenorMusic"
 msgstr ""
 
 #. Documentation/user/fundamental.itely:1300 (variable)
-#. Documentation/user/tweaks.itely:3272 (variable)
+#. Documentation/user/tweaks.itely:3506 (variable)
 msgid "BassMusic"
 msgstr ""
 
 #. Documentation/user/fundamental.itely:1301 (variable)
-#. Documentation/user/tweaks.itely:3273 (variable)
+#. Documentation/user/tweaks.itely:3507 (variable)
 msgid "VerseOne"
 msgstr ""
 
 #. Documentation/user/fundamental.itely:1303 (variable)
-#. Documentation/user/tweaks.itely:3274 (variable)
+#. Documentation/user/tweaks.itely:3508 (variable)
 msgid "VerseTwo"
 msgstr ""
 
 #. Documentation/user/fundamental.itely:1305 (variable)
-#. Documentation/user/tweaks.itely:3275 (variable)
+#. Documentation/user/tweaks.itely:3509 (variable)
 msgid "VerseThree"
 msgstr ""
 
 #. Documentation/user/fundamental.itely:1307 (variable)
-#. Documentation/user/tweaks.itely:3276 (variable)
+#. Documentation/user/tweaks.itely:3510 (variable)
 msgid "VerseFour"
 msgstr ""
 
+#. Documentation/user/fundamental.itely:1314 (context id)
+msgid "Sop"
+msgstr ""
+
+#. Documentation/user/fundamental.itely:1315 (context id)
+#. Documentation/user/tweaks.itely:3517 (context id)
+#. Documentation/user/input.itely:961 (context id)
+msgid "Alto"
+msgstr ""
+
+#. Documentation/user/fundamental.itely:1323 (context id)
+#. Documentation/user/tweaks.itely:3525 (context id)
+#. Documentation/user/input.itely:963 (context id)
+msgid "Tenor"
+msgstr ""
+
+#. Documentation/user/fundamental.itely:1324 (context id)
+#. Documentation/user/tweaks.itely:3526 (context id)
+#. Documentation/user/input.itely:968 (context id)
+#. input/lsr/jazz-combo-template.ly:227 (variable)
+msgid "Bass"
+msgstr ""
+
 #. Documentation/user/fundamental.itely:1350 (variable)
 #. Documentation/user/fundamental.itely:1402 (variable)
 #. Documentation/user/fundamental.itely:1464 (variable)
@@ -1624,6 +1957,14 @@ msgstr ""
 msgid "versewords"
 msgstr ""
 
+#. Documentation/user/fundamental.itely:1361 (context id)
+#. Documentation/user/fundamental.itely:1428 (context id)
+#. Documentation/user/fundamental.itely:1489 (context id)
+#. Documentation/user/vocal.itely:826 (context id)
+#. input/lsr/score-for-diatonic-accordion.ly:59 (variable)
+msgid "verse"
+msgstr ""
+
 #. Documentation/user/fundamental.itely:1407 (variable)
 #. Documentation/user/fundamental.itely:1469 (variable)
 msgid "refrainnotesA"
@@ -1644,6 +1985,15 @@ msgstr ""
 msgid "refrainwordsB"
 msgstr ""
 
+#. Documentation/user/fundamental.itely:1436 (context id)
+#. Documentation/user/fundamental.itely:1509 (context id)
+msgid "refrainB"
+msgstr ""
+
+#. Documentation/user/fundamental.itely:1501 (context id)
+msgid "refrainA"
+msgstr ""
+
 #. Documentation/user/fundamental.itely:1655 (comment)
 msgid "start of single compound music expression"
 msgstr ""
@@ -1745,7 +2095,7 @@ msgstr ""
 
 #. Documentation/user/fundamental.itely:2420 (variable)
 #. Documentation/user/fundamental.itely:2647 (variable)
-#. Documentation/user/input.itely:907 (variable)
+#. Documentation/user/input.itely:953 (variable)
 msgid "sopranoMusic"
 msgstr ""
 
@@ -1762,29 +2112,47 @@ msgid "sopranoWords"
 msgstr ""
 
 #. Documentation/user/fundamental.itely:2654 (variable)
-#. Documentation/user/input.itely:908 (variable)
+#. Documentation/user/input.itely:954 (variable)
+#. input/lsr/vocal-ensemble-template-with-automatic-piano-reduction.ly:58 (variable)
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:49 (variable)
+#. input/lsr/vocal-ensemble-template.ly:54 (variable)
 msgid "altoMusic"
 msgstr ""
 
 #. Documentation/user/fundamental.itely:2658 (variable)
+#. input/lsr/vocal-ensemble-template-with-automatic-piano-reduction.ly:61 (variable)
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:52 (variable)
+#. input/lsr/vocal-ensemble-template.ly:57 (variable)
 msgid "altoWords"
 msgstr ""
 
 #. Documentation/user/fundamental.itely:2659 (variable)
-#. Documentation/user/input.itely:909 (variable)
+#. Documentation/user/input.itely:955 (variable)
+#. input/lsr/vocal-ensemble-template-with-automatic-piano-reduction.ly:65 (variable)
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:56 (variable)
+#. input/lsr/vocal-ensemble-template.ly:61 (variable)
 msgid "tenorMusic"
 msgstr ""
 
 #. Documentation/user/fundamental.itely:2663 (variable)
+#. input/lsr/vocal-ensemble-template-with-automatic-piano-reduction.ly:68 (variable)
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:59 (variable)
+#. input/lsr/vocal-ensemble-template.ly:64 (variable)
 msgid "tenorWords"
 msgstr ""
 
 #. Documentation/user/fundamental.itely:2664 (variable)
-#. Documentation/user/input.itely:910 (variable)
+#. Documentation/user/input.itely:956 (variable)
+#. input/lsr/vocal-ensemble-template-with-automatic-piano-reduction.ly:72 (variable)
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:63 (variable)
+#. input/lsr/vocal-ensemble-template.ly:68 (variable)
 msgid "bassMusic"
 msgstr ""
 
 #. Documentation/user/fundamental.itely:2668 (variable)
+#. input/lsr/vocal-ensemble-template-with-automatic-piano-reduction.ly:75 (variable)
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:66 (variable)
+#. input/lsr/vocal-ensemble-template.ly:71 (variable)
 msgid "bassWords"
 msgstr ""
 
@@ -1792,6 +2160,38 @@ msgstr ""
 msgid "combine ChoirStaff and PianoStaff in parallel"
 msgstr ""
 
+#. Documentation/user/fundamental.itely:2687 (context id)
+#. Documentation/user/fundamental.itely:2689 (context id)
+#. input/lsr/vocal-ensemble-template-with-automatic-piano-reduction.ly:84 (context id)
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:73 (context id)
+#. input/lsr/vocal-ensemble-template.ly:79 (context id)
+msgid "sopranos"
+msgstr ""
+
+#. Documentation/user/fundamental.itely:2692 (context id)
+#. Documentation/user/fundamental.itely:2694 (context id)
+#. input/lsr/vocal-ensemble-template-with-automatic-piano-reduction.ly:85 (context id)
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:74 (context id)
+#. input/lsr/vocal-ensemble-template.ly:83 (context id)
+msgid "altos"
+msgstr ""
+
+#. Documentation/user/fundamental.itely:2697 (context id)
+#. Documentation/user/fundamental.itely:2699 (context id)
+#. input/lsr/vocal-ensemble-template-with-automatic-piano-reduction.ly:91 (context id)
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:84 (context id)
+#. input/lsr/vocal-ensemble-template.ly:92 (context id)
+msgid "tenors"
+msgstr ""
+
+#. Documentation/user/fundamental.itely:2702 (context id)
+#. Documentation/user/fundamental.itely:2704 (context id)
+#. input/lsr/vocal-ensemble-template-with-automatic-piano-reduction.ly:92 (context id)
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:85 (context id)
+#. input/lsr/vocal-ensemble-template.ly:96 (context id)
+msgid "basses"
+msgstr ""
+
 #. Documentation/user/fundamental.itely:2707 (comment)
 msgid "end ChoirStaff"
 msgstr ""
@@ -1816,6 +2216,10 @@ msgstr ""
 msgid "PianoStaff and Pedal Staff must be simultaneous"
 msgstr ""
 
+#. Documentation/user/fundamental.itely:2884 (context id)
+msgid "ManualOne"
+msgstr ""
+
 #. Documentation/user/fundamental.itely:2885 (comment)
 msgid "set time signature and key"
 msgstr ""
@@ -1824,6 +2228,10 @@ msgstr ""
 msgid "end ManualOne Staff context"
 msgstr ""
 
+#. Documentation/user/fundamental.itely:2890 (context id)
+msgid "ManualTwo"
+msgstr ""
+
 #. Documentation/user/fundamental.itely:2894 (comment)
 msgid "end ManualTwo Staff context"
 msgstr ""
@@ -1832,6 +2240,10 @@ msgstr ""
 msgid "end PianoStaff context"
 msgstr ""
 
+#. Documentation/user/fundamental.itely:2896 (context id)
+msgid "PedalOrgan"
+msgstr ""
+
 #. Documentation/user/fundamental.itely:2900 (comment)
 msgid "end PedalOrgan Staff context"
 msgstr ""
@@ -1848,6 +2260,8 @@ msgstr ""
 #. @chapter in Documentation/es/user/fundamental.itely
 #. @node in Documentation/de/user/fundamental.itely
 #. @chapter in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @chapter in Documentation/ja/user/fundamental.itely
 msgid "Fundamental concepts"
 msgstr ""
 
@@ -1857,6 +2271,10 @@ msgstr ""
 #. @section in Documentation/fr/user/fundamental.itely
 #. @node in Documentation/es/user/fundamental.itely
 #. @section in Documentation/es/user/fundamental.itely
+#. @node in Documentation/de/user/fundamental.itely
+#. @section in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @section in Documentation/ja/user/fundamental.itely
 msgid "How LilyPond input files work"
 msgstr ""
 
@@ -1868,6 +2286,8 @@ msgstr ""
 #. @subsection in Documentation/es/user/fundamental.itely
 #. @node in Documentation/de/user/fundamental.itely
 #. @subsection in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @subsection in Documentation/ja/user/fundamental.itely
 msgid "Introduction to the LilyPond file structure"
 msgstr ""
 
@@ -1879,6 +2299,8 @@ msgstr ""
 #. @subsection in Documentation/es/user/fundamental.itely
 #. @node in Documentation/de/user/fundamental.itely
 #. @subsection in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @subsection in Documentation/ja/user/fundamental.itely
 msgid "Score is a (single) compound musical expression"
 msgstr ""
 
@@ -1890,17 +2312,28 @@ msgstr ""
 #. @subsection in Documentation/es/user/fundamental.itely
 #. @node in Documentation/de/user/fundamental.itely
 #. @subsection in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @subsection in Documentation/ja/user/fundamental.itely
 msgid "Nesting music expressions"
 msgstr ""
 
 #. @rglos in Documentation/user/fundamental.itely
 #. @rglos in Documentation/user/tweaks.itely
+#. Documentation/user/staff.itely:560 (context id)
+#. Documentation/user/staff.itely:573 (context id)
+#. Documentation/user/staff.itely:581 (context id)
+#. Documentation/user/staff.itely:600 (context id)
+#. Documentation/user/staff.itely:613 (context id)
 #. @rglos in Documentation/user/staff.itely
 #. @rglos in Documentation/fr/user/fundamental.itely
+#. @rglos in Documentation/fr/user/tweaks.itely
 #. @rglos in Documentation/es/user/fundamental.itely
 #. @rglos in Documentation/es/user/tweaks.itely
 #. @rglos in Documentation/es/user/staff.itely
 #. @rglos in Documentation/de/user/tweaks.itely
+#. @rglos in Documentation/de/user/staff.itely
+#. @rglos in Documentation/ja/user/fundamental.itely
+#. @rglos in Documentation/ja/user/tweaks.itely
 msgid "ossia"
 msgstr ""
 
@@ -1912,6 +2345,8 @@ msgstr ""
 #. @subsection in Documentation/es/user/fundamental.itely
 #. @node in Documentation/de/user/fundamental.itely
 #. @subsection in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @subsection in Documentation/ja/user/fundamental.itely
 msgid "On the un-nestedness of brackets and ties"
 msgstr ""
 
@@ -1923,6 +2358,8 @@ msgstr ""
 #. @section in Documentation/es/user/fundamental.itely
 #. @node in Documentation/de/user/fundamental.itely
 #. @section in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @section in Documentation/ja/user/fundamental.itely
 msgid "Voices contain music"
 msgstr ""
 
@@ -1934,6 +2371,8 @@ msgstr ""
 #. @subsection in Documentation/es/user/fundamental.itely
 #. @node in Documentation/de/user/fundamental.itely
 #. @subsection in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @subsection in Documentation/ja/user/fundamental.itely
 msgid "I'm hearing Voices"
 msgstr ""
 
@@ -1945,6 +2384,8 @@ msgstr ""
 #. @subsection in Documentation/es/user/fundamental.itely
 #. @node in Documentation/de/user/fundamental.itely
 #. @subsection in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @subsection in Documentation/ja/user/fundamental.itely
 msgid "Explicitly instantiating voices"
 msgstr ""
 
@@ -1952,6 +2393,7 @@ msgstr ""
 #. @subsubheading in Documentation/fr/user/fundamental.itely
 #. @subsubheading in Documentation/es/user/fundamental.itely
 #. @subsubheading in Documentation/de/user/fundamental.itely
+#. @subsubheading in Documentation/ja/user/fundamental.itely
 msgid "Note columns"
 msgstr ""
 
@@ -1963,6 +2405,8 @@ msgstr ""
 #. @subsection in Documentation/es/user/fundamental.itely
 #. @node in Documentation/de/user/fundamental.itely
 #. @subsection in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @subsection in Documentation/ja/user/fundamental.itely
 msgid "Voices and vocals"
 msgstr ""
 
@@ -1974,6 +2418,8 @@ msgstr ""
 #. @section in Documentation/es/user/fundamental.itely
 #. @node in Documentation/de/user/fundamental.itely
 #. @section in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @section in Documentation/ja/user/fundamental.itely
 msgid "Contexts and engravers"
 msgstr ""
 
@@ -1993,6 +2439,8 @@ msgstr ""
 #. @subsection in Documentation/de/user/fundamental.itely
 #. @node in Documentation/de/user/changing-defaults.itely
 #. @subsection in Documentation/de/user/changing-defaults.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @subsection in Documentation/ja/user/fundamental.itely
 msgid "Contexts explained"
 msgstr ""
 
@@ -2002,6 +2450,8 @@ msgstr ""
 #. @subsection in Documentation/user/changing-defaults.itely
 #. @node in Documentation/fr/user/fundamental.itely
 #. @subsection in Documentation/fr/user/fundamental.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/fundamental.itely
 #. @subsection in Documentation/es/user/fundamental.itely
 #. @node in Documentation/es/user/changing-defaults.itely
@@ -2010,6 +2460,8 @@ msgstr ""
 #. @subsection in Documentation/de/user/fundamental.itely
 #. @node in Documentation/de/user/changing-defaults.itely
 #. @subsection in Documentation/de/user/changing-defaults.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @subsection in Documentation/ja/user/fundamental.itely
 msgid "Creating contexts"
 msgstr ""
 
@@ -2021,6 +2473,8 @@ msgstr ""
 #. @subsection in Documentation/es/user/fundamental.itely
 #. @node in Documentation/de/user/fundamental.itely
 #. @subsection in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @subsection in Documentation/ja/user/fundamental.itely
 msgid "Engravers explained"
 msgstr ""
 
@@ -2032,20 +2486,24 @@ msgstr ""
 #. @subsection in Documentation/es/user/fundamental.itely
 #. @node in Documentation/de/user/fundamental.itely
 #. @subsection in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @subsection in Documentation/ja/user/fundamental.itely
 msgid "Modifying context properties"
 msgstr ""
 
-#. @unnumberedsubsubsec in Documentation/user/fundamental.itely
+#. @subsubheading in Documentation/user/fundamental.itely
 #. @unnumberedsubsubsec in Documentation/fr/user/fundamental.itely
-#. @unnumberedsubsubsec in Documentation/es/user/fundamental.itely
-#. @unnumberedsubsubsec in Documentation/de/user/fundamental.itely
+#. @subsubheading in Documentation/es/user/fundamental.itely
+#. @subsubheading in Documentation/de/user/fundamental.itely
+#. @subsubheading in Documentation/ja/user/fundamental.itely
 msgid "Setting context properties with @code{\\with}"
 msgstr ""
 
-#. @unnumberedsubsubsec in Documentation/user/fundamental.itely
+#. @subsubheading in Documentation/user/fundamental.itely
 #. @unnumberedsubsubsec in Documentation/fr/user/fundamental.itely
-#. @unnumberedsubsubsec in Documentation/es/user/fundamental.itely
-#. @unnumberedsubsubsec in Documentation/de/user/fundamental.itely
+#. @subsubheading in Documentation/es/user/fundamental.itely
+#. @subsubheading in Documentation/de/user/fundamental.itely
+#. @subsubheading in Documentation/ja/user/fundamental.itely
 msgid "Setting context properties with @code{\\context}"
 msgstr ""
 
@@ -2057,6 +2515,8 @@ msgstr ""
 #. @subsection in Documentation/es/user/fundamental.itely
 #. @node in Documentation/de/user/fundamental.itely
 #. @subsection in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @subsection in Documentation/ja/user/fundamental.itely
 msgid "Adding and removing engravers"
 msgstr ""
 
@@ -2064,6 +2524,7 @@ msgstr ""
 #. @subsubheading in Documentation/fr/user/fundamental.itely
 #. @subsubheading in Documentation/es/user/fundamental.itely
 #. @subsubheading in Documentation/de/user/fundamental.itely
+#. @subsubheading in Documentation/ja/user/fundamental.itely
 msgid "Changing a single context"
 msgstr ""
 
@@ -2074,6 +2535,7 @@ msgstr ""
 #. @rglos in Documentation/es/user/pitches.itely
 #. @rglos in Documentation/de/user/fundamental.itely
 #. @rglos in Documentation/de/user/pitches.itely
+#. @rglos in Documentation/ja/user/fundamental.itely
 msgid "ambitus"
 msgstr ""
 
@@ -2081,6 +2543,7 @@ msgstr ""
 #. @subsubheading in Documentation/fr/user/fundamental.itely
 #. @subsubheading in Documentation/es/user/fundamental.itely
 #. @subsubheading in Documentation/de/user/fundamental.itely
+#. @subsubheading in Documentation/ja/user/fundamental.itely
 msgid "Changing all contexts of the same type"
 msgstr ""
 
@@ -2092,6 +2555,8 @@ msgstr ""
 #. @section in Documentation/es/user/fundamental.itely
 #. @node in Documentation/de/user/fundamental.itely
 #. @section in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @section in Documentation/ja/user/fundamental.itely
 msgid "Extending the templates"
 msgstr ""
 
@@ -2103,6 +2568,8 @@ msgstr ""
 #. @subsection in Documentation/es/user/fundamental.itely
 #. @node in Documentation/de/user/fundamental.itely
 #. @subsection in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @subsection in Documentation/ja/user/fundamental.itely
 msgid "Soprano and cello"
 msgstr ""
 
@@ -2114,6 +2581,8 @@ msgstr ""
 #. @subsection in Documentation/es/user/fundamental.itely
 #. @node in Documentation/de/user/fundamental.itely
 #. @subsection in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @subsection in Documentation/ja/user/fundamental.itely
 msgid "Four-part SATB vocal score"
 msgstr ""
 
@@ -2125,198 +2594,225 @@ msgstr ""
 #. @subsection in Documentation/es/user/fundamental.itely
 #. @node in Documentation/de/user/fundamental.itely
 #. @subsection in Documentation/de/user/fundamental.itely
+#. @node in Documentation/ja/user/fundamental.itely
+#. @subsection in Documentation/ja/user/fundamental.itely
 msgid "Building a score from scratch"
 msgstr ""
 
-#. Documentation/user/tweaks.itely:564 (comment)
-#. Documentation/user/tweaks.itely:690 (comment)
+#. Documentation/user/tweaks.itely:597 (comment)
+#. Documentation/user/tweaks.itely:732 (comment)
 msgid "Increase thickness of all following slurs from 1.2 to 5.0"
 msgstr ""
 
-#. Documentation/user/tweaks.itely:630 (comment)
 #. Documentation/user/tweaks.itely:666 (comment)
-#. Documentation/user/tweaks.itely:669 (comment)
+#. Documentation/user/tweaks.itely:705 (comment)
+#. Documentation/user/tweaks.itely:708 (comment)
 msgid "Increase thickness of immediately following slur only"
 msgstr ""
 
-#. Documentation/user/tweaks.itely:694 (comment)
+#. Documentation/user/tweaks.itely:736 (comment)
 msgid "Revert thickness of all following slurs to default of 1.2"
 msgstr ""
 
-#. Documentation/user/tweaks.itely:1302 (comment)
+#. Documentation/user/tweaks.itely:1396 (comment)
 msgid "Don't print clefs in this staff"
 msgstr ""
 
-#. Documentation/user/tweaks.itely:1304 (comment)
+#. Documentation/user/tweaks.itely:1398 (comment)
 msgid "Don't print time signatures in this staff"
 msgstr ""
 
-#. Documentation/user/tweaks.itely:1362 (comment)
+#. Documentation/user/tweaks.itely:1462 (comment)
 msgid "Reduce all font sizes by ~24%"
 msgstr ""
 
-#. Documentation/user/tweaks.itely:1418 (comment)
+#. Documentation/user/tweaks.itely:1528 (comment)
 msgid "Reduce stem length and line spacing to match"
 msgstr ""
 
-#. Documentation/user/tweaks.itely:1828 (comment)
-#. Documentation/user/tweaks.itely:1895 (comment)
+#. Documentation/user/tweaks.itely:1958 (comment)
+#. Documentation/user/tweaks.itely:2028 (comment)
 msgid "Set details for later Text Spanner"
 msgstr ""
 
-#. Documentation/user/tweaks.itely:1831 (comment)
-#. Documentation/user/tweaks.itely:1898 (comment)
+#. Documentation/user/tweaks.itely:1961 (comment)
+#. Documentation/user/tweaks.itely:2031 (comment)
 msgid "Place dynamics above staff"
 msgstr ""
 
-#. Documentation/user/tweaks.itely:1833 (comment)
-#. Documentation/user/tweaks.itely:1902 (comment)
+#. Documentation/user/tweaks.itely:1963 (comment)
+#. Documentation/user/tweaks.itely:2035 (comment)
 msgid "Start Ottava Bracket"
 msgstr ""
 
-#. Documentation/user/tweaks.itely:1836 (comment)
-#. Documentation/user/tweaks.itely:1843 (comment)
-#. Documentation/user/tweaks.itely:1905 (comment)
-#. Documentation/user/tweaks.itely:1912 (comment)
+#. Documentation/user/tweaks.itely:1966 (comment)
+#. Documentation/user/tweaks.itely:1973 (comment)
+#. Documentation/user/tweaks.itely:2038 (comment)
+#. Documentation/user/tweaks.itely:2045 (comment)
 msgid "Add Dynamic Text"
 msgstr ""
 
-#. Documentation/user/tweaks.itely:1838 (comment)
-#. Documentation/user/tweaks.itely:1907 (comment)
+#. Documentation/user/tweaks.itely:1968 (comment)
+#. Documentation/user/tweaks.itely:2040 (comment)
 msgid "Add Dynamic Line Spanner"
 msgstr ""
 
-#. Documentation/user/tweaks.itely:1840 (comment)
-#. Documentation/user/tweaks.itely:1909 (comment)
+#. Documentation/user/tweaks.itely:1970 (comment)
+#. Documentation/user/tweaks.itely:2042 (comment)
 msgid "Add Text Script"
 msgstr ""
 
-#. Documentation/user/tweaks.itely:1845 (comment)
-#. Documentation/user/tweaks.itely:1914 (comment)
+#. Documentation/user/tweaks.itely:1975 (comment)
+#. Documentation/user/tweaks.itely:2047 (comment)
 msgid "Stop Ottava Bracket"
 msgstr ""
 
-#. Documentation/user/tweaks.itely:1900 (comment)
+#. Documentation/user/tweaks.itely:2033 (comment)
 msgid "Place following Ottava Bracket below Text Spanners"
 msgstr ""
 
-#. Documentation/user/tweaks.itely:1959 (comment)
+#. Documentation/user/tweaks.itely:2122 (comment)
 msgid "Cause notes to space out to accommodate text"
 msgstr ""
 
-#. Documentation/user/tweaks.itely:1979 (comment)
+#. Documentation/user/tweaks.itely:2145 (comment)
 msgid "This markup is short enough to fit without collision"
 msgstr ""
 
-#. Documentation/user/tweaks.itely:1983 (comment)
+#. Documentation/user/tweaks.itely:2149 (comment)
 msgid "This is too long to fit, so it is displaced upwards"
 msgstr ""
 
-#. Documentation/user/tweaks.itely:1987 (comment)
-#. Documentation/user/tweaks.itely:1992 (comment)
+#. Documentation/user/tweaks.itely:2153 (comment)
+#. Documentation/user/tweaks.itely:2158 (comment)
 msgid "Turn off collision avoidance"
 msgstr ""
 
-#. Documentation/user/tweaks.itely:1994 (comment)
+#. Documentation/user/tweaks.itely:2160 (comment)
 msgid "and turn on textLengthOn"
 msgstr ""
 
-#. Documentation/user/tweaks.itely:1995 (comment)
+#. Documentation/user/tweaks.itely:2161 (comment)
 msgid "Spaces at end are honored"
 msgstr ""
 
-#. Documentation/user/tweaks.itely:2096 (comment)
+#. Documentation/user/tweaks.itely:2268 (comment)
 msgid "Extend width by 1 staff space"
 msgstr ""
 
-#. Documentation/user/tweaks.itely:2373 (comment)
+#. Documentation/user/tweaks.itely:2551 (comment)
 msgid "This will not work, see below:"
 msgstr ""
 
-#. Documentation/user/tweaks.itely:2377 (comment)
+#. Documentation/user/tweaks.itely:2555 (comment)
 msgid "This works:"
 msgstr ""
 
-#. Documentation/user/tweaks.itely:2422 (variable)
+#. Documentation/user/tweaks.itely:2606 (variable)
 msgid "naturalplusflat"
 msgstr ""
 
-#. Documentation/user/tweaks.itely:2458 (comment)
+#. Documentation/user/tweaks.itely:2647 (comment)
 msgid "Extend width by 1 unit"
 msgstr ""
 
-#. Documentation/user/tweaks.itely:2460 (comment)
+#. Documentation/user/tweaks.itely:2649 (comment)
 msgid "Align dynamics to a base line 2 units above staff"
 msgstr ""
 
-#. Documentation/user/tweaks.itely:2745 (variable)
-#. Documentation/user/tweaks.itely:2794 (variable)
-#. Documentation/user/tweaks.itely:2855 (variable)
-#. Documentation/user/tweaks.itely:2925 (variable)
-#. Documentation/user/tweaks.itely:2987 (variable)
-#. Documentation/user/tweaks.itely:3042 (variable)
+#. Documentation/user/tweaks.itely:2953 (variable)
+#. Documentation/user/tweaks.itely:3002 (variable)
+#. Documentation/user/tweaks.itely:3063 (variable)
+#. Documentation/user/tweaks.itely:3133 (variable)
+#. Documentation/user/tweaks.itely:3198 (variable)
+#. Documentation/user/tweaks.itely:3258 (variable)
 msgid "rhMusic"
 msgstr ""
 
-#. Documentation/user/tweaks.itely:2750 (comment)
-#. Documentation/user/tweaks.itely:2799 (comment)
-#. Documentation/user/tweaks.itely:2862 (comment)
-#. Documentation/user/tweaks.itely:2934 (comment)
-#. Documentation/user/tweaks.itely:2996 (comment)
+#. Documentation/user/tweaks.itely:2958 (comment)
+#. Documentation/user/tweaks.itely:3007 (comment)
+#. Documentation/user/tweaks.itely:3070 (comment)
+#. Documentation/user/tweaks.itely:3142 (comment)
+#. Documentation/user/tweaks.itely:3207 (comment)
 msgid "Start polyphonic section of four voices"
 msgstr ""
 
-#. Documentation/user/tweaks.itely:2763 (variable)
-#. Documentation/user/tweaks.itely:2812 (variable)
-#. Documentation/user/tweaks.itely:2875 (variable)
-#. Documentation/user/tweaks.itely:2949 (variable)
-#. Documentation/user/tweaks.itely:3013 (variable)
-#. Documentation/user/tweaks.itely:3070 (variable)
+#. Documentation/user/tweaks.itely:2971 (variable)
+#. Documentation/user/tweaks.itely:3020 (variable)
+#. Documentation/user/tweaks.itely:3083 (variable)
+#. Documentation/user/tweaks.itely:3157 (variable)
+#. Documentation/user/tweaks.itely:3224 (variable)
+#. Documentation/user/tweaks.itely:3286 (variable)
 msgid "lhMusic"
 msgstr ""
 
-#. Documentation/user/tweaks.itely:3000 (comment)
-#. Documentation/user/tweaks.itely:3057 (comment)
+#. Documentation/user/tweaks.itely:2980 (context id)
+#. Documentation/user/tweaks.itely:3029 (context id)
+#. Documentation/user/tweaks.itely:3092 (context id)
+#. Documentation/user/tweaks.itely:3166 (context id)
+#. Documentation/user/tweaks.itely:3233 (context id)
+#. Documentation/user/tweaks.itely:3295 (context id)
+#. Documentation/user/input.itely:974 (context id)
+msgid "RH"
+msgstr ""
+
+#. Documentation/user/tweaks.itely:2984 (context id)
+#. Documentation/user/tweaks.itely:3033 (context id)
+#. Documentation/user/tweaks.itely:3096 (context id)
+#. Documentation/user/tweaks.itely:3170 (context id)
+#. Documentation/user/tweaks.itely:3237 (context id)
+#. Documentation/user/tweaks.itely:3299 (context id)
+#. Documentation/user/input.itely:980 (context id)
+msgid "LH"
+msgstr ""
+
+#. Documentation/user/tweaks.itely:3211 (comment)
+#. Documentation/user/tweaks.itely:3273 (comment)
 msgid "Move the c2 out of the main note column so the merge will work"
 msgstr ""
 
-#. Documentation/user/tweaks.itely:3003 (comment)
-#. Documentation/user/tweaks.itely:3060 (comment)
+#. Documentation/user/tweaks.itely:3214 (comment)
+#. Documentation/user/tweaks.itely:3276 (comment)
 msgid "Stem on the d2 must be down to permit merging"
 msgstr ""
 
-#. Documentation/user/tweaks.itely:3055 (comment)
+#. Documentation/user/tweaks.itely:3271 (comment)
 msgid "Reposition the c2 to the right of the merged note"
 msgstr ""
 
-#. Documentation/user/tweaks.itely:3185 (comment)
-#. Documentation/user/tweaks.itely:3204 (comment)
+#. Documentation/user/tweaks.itely:3407 (comment)
+#. Documentation/user/tweaks.itely:3429 (comment)
 msgid "Visible tempo marking"
 msgstr ""
 
-#. Documentation/user/tweaks.itely:3189 (comment)
-#. Documentation/user/tweaks.itely:3208 (comment)
+#. Documentation/user/tweaks.itely:3411 (comment)
+#. Documentation/user/tweaks.itely:3433 (comment)
 msgid "Invisible tempo marking to lengthen fermata in MIDI"
 msgstr ""
 
-#. Documentation/user/tweaks.itely:3192 (comment)
-#. Documentation/user/tweaks.itely:3211 (comment)
+#. Documentation/user/tweaks.itely:3414 (comment)
+#. Documentation/user/tweaks.itely:3436 (comment)
 msgid "New tempo for next section"
 msgstr ""
 
-#. Documentation/user/tweaks.itely:3259 (variable)
+#. Documentation/user/tweaks.itely:3493 (variable)
 msgid "emphasize"
 msgstr ""
 
-#. Documentation/user/tweaks.itely:3263 (variable)
+#. Documentation/user/tweaks.itely:3497 (variable)
 msgid "normal"
 msgstr ""
 
-#. Documentation/user/tweaks.itely:3269 (variable)
+#. Documentation/user/tweaks.itely:3503 (variable)
 msgid "SopranoMusic"
 msgstr ""
 
-#. Documentation/user/tweaks.itely:3485 (comment)
+#. Documentation/user/tweaks.itely:3516 (context id)
+#. Documentation/user/input.itely:959 (context id)
+msgid "Soprano"
+msgstr ""
+
+#. Documentation/user/tweaks.itely:3725 (comment)
 msgid "Arrange to obtain color from color-notehead procedure"
 msgstr ""
 
@@ -2328,6 +2824,8 @@ msgstr ""
 #. @chapter in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @chapter in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @chapter in Documentation/ja/user/tweaks.itely
 msgid "Tweaking output"
 msgstr ""
 
@@ -2339,6 +2837,8 @@ msgstr ""
 #. @section in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @section in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @section in Documentation/ja/user/tweaks.itely
 msgid "Tweaking basics"
 msgstr ""
 
@@ -2350,6 +2850,8 @@ msgstr ""
 #. @subsection in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
 msgid "Introduction to tweaks"
 msgstr ""
 
@@ -2361,6 +2863,8 @@ msgstr ""
 #. @subsection in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
 msgid "Objects and interfaces"
 msgstr ""
 
@@ -2372,6 +2876,8 @@ msgstr ""
 #. @subsection in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
 msgid "Naming conventions of objects and properties"
 msgstr ""
 
@@ -2383,6 +2889,8 @@ msgstr ""
 #. @subsection in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
 msgid "Tweaking methods"
 msgstr ""
 
@@ -2394,6 +2902,8 @@ msgstr ""
 #. @section in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @section in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @section in Documentation/ja/user/tweaks.itely
 msgid "The Internals Reference manual"
 msgstr ""
 
@@ -2405,24 +2915,32 @@ msgstr ""
 #. @subsection in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
 msgid "Properties of layout objects"
 msgstr ""
 
 #. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @subheading in Documentation/es/user/tweaks.itely
 #. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "Finding the context"
 msgstr ""
 
 #. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @subheading in Documentation/es/user/tweaks.itely
 #. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "Overriding once only"
 msgstr ""
 
 #. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @subheading in Documentation/es/user/tweaks.itely
 #. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "Reverting"
 msgstr ""
 
@@ -2434,12 +2952,16 @@ msgstr ""
 #. @subsection in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
 msgid "Properties found in interfaces"
 msgstr ""
 
 #. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @subheading in Documentation/es/user/tweaks.itely
 #. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "Specifying the context in lyric mode"
 msgstr ""
 
@@ -2451,6 +2973,8 @@ msgstr ""
 #. @subsection in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
 msgid "Types of properties"
 msgstr ""
 
@@ -2462,6 +2986,8 @@ msgstr ""
 #. @section in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @section in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @section in Documentation/ja/user/tweaks.itely
 msgid "Appearance of objects"
 msgstr ""
 
@@ -2473,30 +2999,40 @@ msgstr ""
 #. @subsection in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
 msgid "Visibility and color of objects"
 msgstr ""
 
 #. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @subheading in Documentation/es/user/tweaks.itely
 #. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "stencil"
 msgstr ""
 
 #. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @subheading in Documentation/es/user/tweaks.itely
 #. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "break-visibility"
 msgstr ""
 
 #. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @subheading in Documentation/es/user/tweaks.itely
 #. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "transparent"
 msgstr ""
 
 #. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @subheading in Documentation/es/user/tweaks.itely
 #. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "color"
 msgstr ""
 
@@ -2508,6 +3044,8 @@ msgstr ""
 #. @subsection in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
 msgid "Size of objects"
 msgstr ""
 
@@ -2519,6 +3057,8 @@ msgstr ""
 #. @subsection in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
 msgid "Length and thickness of objects"
 msgstr ""
 
@@ -2530,6 +3070,8 @@ msgstr ""
 #. @section in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @section in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @section in Documentation/ja/user/tweaks.itely
 msgid "Placement of objects"
 msgstr ""
 
@@ -2539,6 +3081,8 @@ msgstr ""
 #. @subsection in Documentation/fr/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
 msgid "Automatic behavior"
 msgstr ""
 
@@ -2550,12 +3094,16 @@ msgstr ""
 #. @subsection in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
 msgid "Within-staff objects"
 msgstr ""
 
 #. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @subheading in Documentation/es/user/tweaks.itely
 #. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "Fingering"
 msgstr ""
 
@@ -2563,18 +3111,26 @@ msgstr ""
 #. @subsection in Documentation/user/tweaks.itely
 #. @node in Documentation/es/user/tweaks.itely
 #. @subsection in Documentation/es/user/tweaks.itely
+#. @node in Documentation/de/user/tweaks.itely
+#. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
 msgid "Outside-staff objects"
 msgstr ""
 
 #. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @subheading in Documentation/es/user/tweaks.itely
 #. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "\\textLengthOn"
 msgstr ""
 
 #. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @subheading in Documentation/es/user/tweaks.itely
 #. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "Grob sizing"
 msgstr ""
 
@@ -2586,6 +3142,8 @@ msgstr ""
 #. @section in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @section in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @section in Documentation/ja/user/tweaks.itely
 msgid "Collisions of objects"
 msgstr ""
 
@@ -2597,6 +3155,8 @@ msgstr ""
 #. @subsection in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
 msgid "Moving objects"
 msgstr ""
 
@@ -2608,54 +3168,72 @@ msgstr ""
 #. @subsection in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
 msgid "Fixing overlapping notation"
 msgstr ""
 
 #. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @subheading in Documentation/es/user/tweaks.itely
 #. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "padding property"
 msgstr ""
 
 #. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @subheading in Documentation/es/user/tweaks.itely
 #. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "left-padding and right-padding"
 msgstr ""
 
 #. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @subheading in Documentation/es/user/tweaks.itely
 #. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "staff-padding property"
 msgstr ""
 
 #. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @subheading in Documentation/es/user/tweaks.itely
 #. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "self-alignment-X property"
 msgstr ""
 
 #. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @subheading in Documentation/es/user/tweaks.itely
 #. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "staff-position property"
 msgstr ""
 
 #. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @subheading in Documentation/es/user/tweaks.itely
 #. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "extra-offset property"
 msgstr ""
 
 #. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @subheading in Documentation/es/user/tweaks.itely
 #. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "positions property"
 msgstr ""
 
 #. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @subheading in Documentation/es/user/tweaks.itely
 #. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "force-hshift property"
 msgstr ""
 
@@ -2667,6 +3245,8 @@ msgstr ""
 #. @subsection in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
 msgid "Real music example"
 msgstr ""
 
@@ -2678,6 +3258,8 @@ msgstr ""
 #. @section in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @section in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @section in Documentation/ja/user/tweaks.itely
 msgid "Further tweaking"
 msgstr ""
 
@@ -2689,18 +3271,24 @@ msgstr ""
 #. @subsection in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
 msgid "Other uses for tweaks"
 msgstr ""
 
 #. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @subheading in Documentation/es/user/tweaks.itely
 #. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "Tying notes across voices"
 msgstr ""
 
 #. @subheading in Documentation/user/tweaks.itely
+#. @subheading in Documentation/fr/user/tweaks.itely
 #. @subheading in Documentation/es/user/tweaks.itely
 #. @subheading in Documentation/de/user/tweaks.itely
+#. @subheading in Documentation/ja/user/tweaks.itely
 msgid "Simulating a fermata in MIDI"
 msgstr ""
 
@@ -2712,6 +3300,8 @@ msgstr ""
 #. @subsection in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
 msgid "Using variables for tweaks"
 msgstr ""
 
@@ -2723,6 +3313,8 @@ msgstr ""
 #. @subsection in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
 msgid "Other sources of information"
 msgstr ""
 
@@ -2734,6 +3326,8 @@ msgstr ""
 #. @subsection in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
 msgid "Avoiding tweaks with slower processing"
 msgstr ""
 
@@ -2745,41 +3339,43 @@ msgstr ""
 #. @subsection in Documentation/es/user/tweaks.itely
 #. @node in Documentation/de/user/tweaks.itely
 #. @subsection in Documentation/de/user/tweaks.itely
+#. @node in Documentation/ja/user/tweaks.itely
+#. @subsection in Documentation/ja/user/tweaks.itely
 msgid "Advanced tweaks with Scheme"
 msgstr ""
 
-#. Documentation/user/working.itely:201 (variable)
+#. Documentation/user/working.itely:220 (variable)
 msgid "hornNotes"
 msgstr ""
 
-#. Documentation/user/working.itely:212 (variable)
+#. Documentation/user/working.itely:231 (variable)
 msgid "fragmentA"
 msgstr ""
 
-#. Documentation/user/working.itely:213 (variable)
+#. Documentation/user/working.itely:232 (variable)
 msgid "fragmentB"
 msgstr ""
 
-#. Documentation/user/working.itely:226 (variable)
+#. Documentation/user/working.itely:245 (variable)
 msgid "dolce"
 msgstr ""
 
-#. Documentation/user/working.itely:227 (variable)
-#. Documentation/user/working.itely:276 (variable)
+#. Documentation/user/working.itely:246 (variable)
+#. Documentation/user/working.itely:295 (variable)
 #. Documentation/user/scheme-tutorial.itely:235 (variable)
 #. Documentation/user/programming-interface.itely:101 (variable)
 msgid "padText"
 msgstr ""
 
-#. Documentation/user/working.itely:228 (variable)
+#. Documentation/user/working.itely:247 (variable)
 msgid "fthenp"
 msgstr ""
 
-#. Documentation/user/working.itely:313 (variable)
+#. Documentation/user/working.itely:332 (variable)
 msgid "mpdolce"
 msgstr ""
 
-#. Documentation/user/working.itely:315 (variable)
+#. Documentation/user/working.itely:334 (variable)
 #. Documentation/user/scheme-tutorial.itely:256 (variable)
 #. Documentation/user/programming-interface.itely:135 (variable)
 msgid "tempoMark"
@@ -2793,6 +3389,8 @@ msgstr ""
 #. @chapter in Documentation/es/user/working.itely
 #. @node in Documentation/de/user/working.itely
 #. @chapter in Documentation/de/user/working.itely
+#. @node in Documentation/ja/user/working.itely
+#. @chapter in Documentation/ja/user/working.itely
 msgid "Working on LilyPond projects"
 msgstr ""
 
@@ -2802,6 +3400,8 @@ msgstr ""
 #. @section in Documentation/fr/user/working.itely
 #. @node in Documentation/de/user/working.itely
 #. @section in Documentation/de/user/working.itely
+#. @node in Documentation/ja/user/working.itely
+#. @section in Documentation/ja/user/working.itely
 msgid "Suggestions for writing LilyPond input files"
 msgstr ""
 
@@ -2813,6 +3413,8 @@ msgstr ""
 #. @subsection in Documentation/es/user/working.itely
 #. @node in Documentation/de/user/working.itely
 #. @subsection in Documentation/de/user/working.itely
+#. @node in Documentation/ja/user/working.itely
+#. @subsection in Documentation/ja/user/working.itely
 msgid "General suggestions"
 msgstr ""
 
@@ -2824,6 +3426,8 @@ msgstr ""
 #. @subsection in Documentation/es/user/working.itely
 #. @node in Documentation/de/user/working.itely
 #. @subsection in Documentation/de/user/working.itely
+#. @node in Documentation/ja/user/working.itely
+#. @subsection in Documentation/ja/user/working.itely
 msgid "Typesetting existing music"
 msgstr ""
 
@@ -2835,6 +3439,8 @@ msgstr ""
 #. @subsection in Documentation/es/user/working.itely
 #. @node in Documentation/de/user/working.itely
 #. @subsection in Documentation/de/user/working.itely
+#. @node in Documentation/ja/user/working.itely
+#. @subsection in Documentation/ja/user/working.itely
 msgid "Large projects"
 msgstr ""
 
@@ -2846,6 +3452,8 @@ msgstr ""
 #. @subsection in Documentation/es/user/working.itely
 #. @node in Documentation/de/user/working.itely
 #. @subsection in Documentation/de/user/working.itely
+#. @node in Documentation/ja/user/working.itely
+#. @subsection in Documentation/ja/user/working.itely
 msgid "Saving typing with variables and functions"
 msgstr ""
 
@@ -2857,6 +3465,8 @@ msgstr ""
 #. @subsection in Documentation/es/user/working.itely
 #. @node in Documentation/de/user/working.itely
 #. @subsection in Documentation/de/user/working.itely
+#. @node in Documentation/ja/user/working.itely
+#. @subsection in Documentation/ja/user/working.itely
 msgid "Style sheets"
 msgstr ""
 
@@ -2868,11 +3478,15 @@ msgstr ""
 #. @section in Documentation/es/user/working.itely
 #. @node in Documentation/de/user/working.itely
 #. @section in Documentation/de/user/working.itely
+#. @node in Documentation/ja/user/working.itely
+#. @section in Documentation/ja/user/working.itely
 msgid "When things don't work"
 msgstr ""
 
 #. @node in Documentation/user/working.itely
 #. @subsection in Documentation/user/working.itely
+#. @node in Documentation/ja/user/working.itely
+#. @subsection in Documentation/ja/user/working.itely
 msgid "Updating old input files"
 msgstr ""
 
@@ -2884,6 +3498,8 @@ msgstr ""
 #. @subsection in Documentation/es/user/working.itely
 #. @node in Documentation/de/user/working.itely
 #. @subsection in Documentation/de/user/working.itely
+#. @node in Documentation/ja/user/working.itely
+#. @subsection in Documentation/ja/user/working.itely
 msgid "Troubleshooting (taking it all apart)"
 msgstr ""
 
@@ -2895,6 +3511,8 @@ msgstr ""
 #. @subsection in Documentation/es/user/working.itely
 #. @node in Documentation/de/user/working.itely
 #. @subsection in Documentation/de/user/working.itely
+#. @node in Documentation/ja/user/working.itely
+#. @subsection in Documentation/ja/user/working.itely
 msgid "Minimal examples"
 msgstr ""
 
@@ -2906,6 +3524,8 @@ msgstr ""
 #. @section in Documentation/es/user/working.itely
 #. @node in Documentation/de/user/working.itely
 #. @section in Documentation/de/user/working.itely
+#. @node in Documentation/ja/user/working.itely
+#. @section in Documentation/ja/user/working.itely
 msgid "Scores and parts"
 msgstr ""
 
@@ -2917,6 +3537,8 @@ msgstr ""
 #. @appendix in Documentation/es/user/templates.itely
 #. @node in Documentation/de/user/templates.itely
 #. @appendix in Documentation/de/user/templates.itely
+#. @node in Documentation/ja/user/templates.itely
+#. @appendix in Documentation/ja/user/templates.itely
 msgid "Templates"
 msgstr ""
 
@@ -2928,6 +3550,8 @@ msgstr ""
 #. @appendixsec in Documentation/es/user/templates.itely
 #. @node in Documentation/de/user/templates.itely
 #. @appendixsec in Documentation/de/user/templates.itely
+#. @node in Documentation/ja/user/templates.itely
+#. @appendixsec in Documentation/ja/user/templates.itely
 msgid "Single staff"
 msgstr ""
 
@@ -2935,6 +3559,7 @@ msgstr ""
 #. @appendixsubsec in Documentation/fr/user/templates.itely
 #. @appendixsubsec in Documentation/es/user/templates.itely
 #. @appendixsubsec in Documentation/de/user/templates.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
 msgid "Notes only"
 msgstr ""
 
@@ -2942,6 +3567,7 @@ msgstr ""
 #. @appendixsubsec in Documentation/fr/user/templates.itely
 #. @appendixsubsec in Documentation/es/user/templates.itely
 #. @appendixsubsec in Documentation/de/user/templates.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
 msgid "Notes and lyrics"
 msgstr ""
 
@@ -2949,6 +3575,7 @@ msgstr ""
 #. @appendixsubsec in Documentation/fr/user/templates.itely
 #. @appendixsubsec in Documentation/es/user/templates.itely
 #. @appendixsubsec in Documentation/de/user/templates.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
 msgid "Notes and chords"
 msgstr ""
 
@@ -2956,6 +3583,7 @@ msgstr ""
 #. @appendixsubsec in Documentation/fr/user/templates.itely
 #. @appendixsubsec in Documentation/es/user/templates.itely
 #. @appendixsubsec in Documentation/de/user/templates.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
 msgid "Notes, lyrics, and chords."
 msgstr ""
 
@@ -2967,6 +3595,8 @@ msgstr ""
 #. @appendixsec in Documentation/es/user/templates.itely
 #. @node in Documentation/de/user/templates.itely
 #. @appendixsec in Documentation/de/user/templates.itely
+#. @node in Documentation/ja/user/templates.itely
+#. @appendixsec in Documentation/ja/user/templates.itely
 msgid "Piano templates"
 msgstr ""
 
@@ -2974,6 +3604,7 @@ msgstr ""
 #. @appendixsubsec in Documentation/fr/user/templates.itely
 #. @appendixsubsec in Documentation/es/user/templates.itely
 #. @appendixsubsec in Documentation/de/user/templates.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
 msgid "Solo piano"
 msgstr ""
 
@@ -2981,6 +3612,7 @@ msgstr ""
 #. @appendixsubsec in Documentation/fr/user/templates.itely
 #. @appendixsubsec in Documentation/es/user/templates.itely
 #. @appendixsubsec in Documentation/de/user/templates.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
 msgid "Piano and melody with lyrics"
 msgstr ""
 
@@ -2988,6 +3620,7 @@ msgstr ""
 #. @appendixsubsec in Documentation/fr/user/templates.itely
 #. @appendixsubsec in Documentation/es/user/templates.itely
 #. @appendixsubsec in Documentation/de/user/templates.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
 msgid "Piano centered lyrics"
 msgstr ""
 
@@ -2995,6 +3628,7 @@ msgstr ""
 #. @appendixsubsec in Documentation/fr/user/templates.itely
 #. @appendixsubsec in Documentation/es/user/templates.itely
 #. @appendixsubsec in Documentation/de/user/templates.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
 msgid "Piano centered dynamics"
 msgstr ""
 
@@ -3010,6 +3644,9 @@ msgstr ""
 #. @node in Documentation/de/user/templates.itely
 #. @appendixsec in Documentation/de/user/templates.itely
 #. @appendixsubsec in Documentation/de/user/templates.itely
+#. @node in Documentation/ja/user/templates.itely
+#. @appendixsec in Documentation/ja/user/templates.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
 msgid "String quartet"
 msgstr ""
 
@@ -3017,6 +3654,7 @@ msgstr ""
 #. @appendixsubsec in Documentation/fr/user/templates.itely
 #. @appendixsubsec in Documentation/es/user/templates.itely
 #. @appendixsubsec in Documentation/de/user/templates.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
 msgid "String quartet parts"
 msgstr ""
 
@@ -3028,6 +3666,8 @@ msgstr ""
 #. @appendixsec in Documentation/es/user/templates.itely
 #. @node in Documentation/de/user/templates.itely
 #. @appendixsec in Documentation/de/user/templates.itely
+#. @node in Documentation/ja/user/templates.itely
+#. @appendixsec in Documentation/ja/user/templates.itely
 msgid "Vocal ensembles"
 msgstr ""
 
@@ -3035,6 +3675,7 @@ msgstr ""
 #. @appendixsubsec in Documentation/fr/user/templates.itely
 #. @appendixsubsec in Documentation/es/user/templates.itely
 #. @appendixsubsec in Documentation/de/user/templates.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
 msgid "SATB vocal score"
 msgstr ""
 
@@ -3042,6 +3683,7 @@ msgstr ""
 #. @appendixsubsec in Documentation/fr/user/templates.itely
 #. @appendixsubsec in Documentation/es/user/templates.itely
 #. @appendixsubsec in Documentation/de/user/templates.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
 msgid "SATB vocal score and automatic piano reduction"
 msgstr ""
 
@@ -3049,6 +3691,7 @@ msgstr ""
 #. @appendixsubsec in Documentation/fr/user/templates.itely
 #. @appendixsubsec in Documentation/es/user/templates.itely
 #. @appendixsubsec in Documentation/de/user/templates.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
 msgid "SATB with aligned contexts"
 msgstr ""
 
@@ -3060,6 +3703,8 @@ msgstr ""
 #. @appendixsec in Documentation/es/user/templates.itely
 #. @node in Documentation/de/user/templates.itely
 #. @appendixsec in Documentation/de/user/templates.itely
+#. @node in Documentation/ja/user/templates.itely
+#. @appendixsec in Documentation/ja/user/templates.itely
 msgid "Ancient notation templates"
 msgstr ""
 
@@ -3067,6 +3712,7 @@ msgstr ""
 #. @appendixsubsec in Documentation/fr/user/templates.itely
 #. @appendixsubsec in Documentation/es/user/templates.itely
 #. @appendixsubsec in Documentation/de/user/templates.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
 msgid "Transcription of mensural music"
 msgstr ""
 
@@ -3074,6 +3720,7 @@ msgstr ""
 #. @appendixsubsec in Documentation/fr/user/templates.itely
 #. @appendixsubsec in Documentation/es/user/templates.itely
 #. @appendixsubsec in Documentation/de/user/templates.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
 msgid "Gregorian transcription template"
 msgstr ""
 
@@ -3085,6 +3732,8 @@ msgstr ""
 #. @appendixsec in Documentation/es/user/templates.itely
 #. @node in Documentation/de/user/templates.itely
 #. @appendixsec in Documentation/de/user/templates.itely
+#. @node in Documentation/ja/user/templates.itely
+#. @appendixsec in Documentation/ja/user/templates.itely
 msgid "Jazz combo"
 msgstr ""
 
@@ -3094,6 +3743,8 @@ msgstr ""
 #. @appendixsec in Documentation/fr/user/templates.itely
 #. @node in Documentation/es/user/templates.itely
 #. @appendixsec in Documentation/es/user/templates.itely
+#. @node in Documentation/ja/user/templates.itely
+#. @appendixsec in Documentation/ja/user/templates.itely
 msgid "lilypond-book templates"
 msgstr ""
 
@@ -3105,6 +3756,8 @@ msgstr ""
 #. @node in Documentation/es/user/lilypond-book.itely
 #. @appendixsubsec in Documentation/de/user/templates.itely
 #. @node in Documentation/de/user/lilypond-book.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
+#. @node in Documentation/ja/user/lilypond-book.itely
 msgid "LaTeX"
 msgstr ""
 
@@ -3124,6 +3777,10 @@ msgstr ""
 #. @node in Documentation/de/user/lilypond-book.itely
 #. @subsection in Documentation/de/user/lilypond-book.itely
 #. @subsubheading in Documentation/de/user/lilypond-book.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
+#. @node in Documentation/ja/user/lilypond-book.itely
+#. @subsection in Documentation/ja/user/lilypond-book.itely
+#. @subsubheading in Documentation/ja/user/lilypond-book.itely
 msgid "Texinfo"
 msgstr ""
 
@@ -3131,6 +3788,7 @@ msgstr ""
 #. @appendixsubsec in Documentation/fr/user/templates.itely
 #. @appendixsubsec in Documentation/es/user/templates.itely
 #. @appendixsubsec in Documentation/de/user/templates.itely
+#. @appendixsubsec in Documentation/ja/user/templates.itely
 msgid "xelatex"
 msgstr ""
 
@@ -3146,6 +3804,8 @@ msgstr ""
 #. @appendix in Documentation/es/user/scheme-tutorial.itely
 #. @node in Documentation/de/user/scheme-tutorial.itely
 #. @appendix in Documentation/de/user/scheme-tutorial.itely
+#. @node in Documentation/ja/user/scheme-tutorial.itely
+#. @appendix in Documentation/ja/user/scheme-tutorial.itely
 msgid "Scheme tutorial"
 msgstr ""
 
@@ -3157,6 +3817,8 @@ msgstr ""
 #. @appendixsec in Documentation/es/user/scheme-tutorial.itely
 #. @node in Documentation/de/user/scheme-tutorial.itely
 #. @appendixsec in Documentation/de/user/scheme-tutorial.itely
+#. @node in Documentation/ja/user/scheme-tutorial.itely
+#. @appendixsec in Documentation/ja/user/scheme-tutorial.itely
 msgid "Tweaking with Scheme"
 msgstr ""
 
@@ -3185,6 +3847,8 @@ msgstr ""
 #. @chapter in Documentation/es/user/install.itely
 #. @node in Documentation/de/user/install.itely
 #. @chapter in Documentation/de/user/install.itely
+#. @node in Documentation/ja/user/install.itely
+#. @chapter in Documentation/ja/user/install.itely
 msgid "Install"
 msgstr ""
 
@@ -3196,6 +3860,8 @@ msgstr ""
 #. @section in Documentation/es/user/install.itely
 #. @node in Documentation/de/user/install.itely
 #. @section in Documentation/de/user/install.itely
+#. @node in Documentation/ja/user/install.itely
+#. @section in Documentation/ja/user/install.itely
 msgid "Precompiled binaries"
 msgstr ""
 
@@ -3203,6 +3869,7 @@ msgstr ""
 #. @unnumberedsubsec in Documentation/fr/user/install.itely
 #. @unnumberedsubsec in Documentation/es/user/install.itely
 #. @unnumberedsubsec in Documentation/de/user/install.itely
+#. @unnumberedsubsec in Documentation/ja/user/install.itely
 msgid "Downloading"
 msgstr ""
 
@@ -3214,6 +3881,8 @@ msgstr ""
 #. @section in Documentation/es/user/install.itely
 #. @node in Documentation/de/user/install.itely
 #. @section in Documentation/de/user/install.itely
+#. @node in Documentation/ja/user/install.itely
+#. @section in Documentation/ja/user/install.itely
 msgid "Compiling from source"
 msgstr ""
 
@@ -3309,6 +3978,8 @@ msgstr ""
 #. @chapter in Documentation/es/user/setup.itely
 #. @node in Documentation/de/user/setup.itely
 #. @chapter in Documentation/de/user/setup.itely
+#. @node in Documentation/ja/user/setup.itely
+#. @chapter in Documentation/ja/user/setup.itely
 msgid "Setup"
 msgstr ""
 
@@ -3320,23 +3991,37 @@ msgstr ""
 #. @section in Documentation/es/user/setup.itely
 #. @node in Documentation/de/user/setup.itely
 #. @section in Documentation/de/user/setup.itely
+#. @node in Documentation/ja/user/setup.itely
+#. @section in Documentation/ja/user/setup.itely
 msgid "Setup for specific Operating Systems"
 msgstr ""
 
 #. @node in Documentation/user/setup.itely
 #. @subsection in Documentation/user/setup.itely
+#. @node in Documentation/fr/user/setup.itely
+#. @subsection in Documentation/fr/user/setup.itely
 #. @node in Documentation/es/user/setup.itely
 #. @subsection in Documentation/es/user/setup.itely
+#. @node in Documentation/de/user/setup.itely
+#. @subsection in Documentation/de/user/setup.itely
+#. @node in Documentation/ja/user/setup.itely
+#. @subsection in Documentation/ja/user/setup.itely
 msgid "Setup for MacOS X"
 msgstr ""
 
 #. @subsubheading in Documentation/user/setup.itely
+#. @subsubheading in Documentation/fr/user/setup.itely
 #. @subsubheading in Documentation/es/user/setup.itely
+#. @subsubheading in Documentation/de/user/setup.itely
+#. @subsubheading in Documentation/ja/user/setup.itely
 msgid "Using Python scripts on MacOS 10.3 or 10.4"
 msgstr ""
 
 #. @subsubheading in Documentation/user/setup.itely
+#. @subsubheading in Documentation/fr/user/setup.itely
 #. @subsubheading in Documentation/es/user/setup.itely
+#. @subsubheading in Documentation/de/user/setup.itely
+#. @subsubheading in Documentation/ja/user/setup.itely
 msgid "MacOS X on the command line"
 msgstr ""
 
@@ -3348,6 +4033,8 @@ msgstr ""
 #. @section in Documentation/es/user/setup.itely
 #. @node in Documentation/de/user/setup.itely
 #. @section in Documentation/de/user/setup.itely
+#. @node in Documentation/ja/user/setup.itely
+#. @section in Documentation/ja/user/setup.itely
 msgid "Text editor support"
 msgstr ""
 
@@ -3359,6 +4046,8 @@ msgstr ""
 #. @subsection in Documentation/es/user/setup.itely
 #. @node in Documentation/de/user/setup.itely
 #. @subsection in Documentation/de/user/setup.itely
+#. @node in Documentation/ja/user/setup.itely
+#. @subsection in Documentation/ja/user/setup.itely
 msgid "Emacs mode"
 msgstr ""
 
@@ -3370,6 +4059,8 @@ msgstr ""
 #. @subsection in Documentation/es/user/setup.itely
 #. @node in Documentation/de/user/setup.itely
 #. @subsection in Documentation/de/user/setup.itely
+#. @node in Documentation/ja/user/setup.itely
+#. @subsection in Documentation/ja/user/setup.itely
 msgid "Vim mode"
 msgstr ""
 
@@ -3381,6 +4072,8 @@ msgstr ""
 #. @subsection in Documentation/es/user/setup.itely
 #. @node in Documentation/de/user/setup.itely
 #. @subsection in Documentation/de/user/setup.itely
+#. @node in Documentation/ja/user/setup.itely
+#. @subsection in Documentation/ja/user/setup.itely
 msgid "jEdit"
 msgstr ""
 
@@ -3392,6 +4085,8 @@ msgstr ""
 #. @subsection in Documentation/es/user/setup.itely
 #. @node in Documentation/de/user/setup.itely
 #. @subsection in Documentation/de/user/setup.itely
+#. @node in Documentation/ja/user/setup.itely
+#. @subsection in Documentation/ja/user/setup.itely
 msgid "TexShop"
 msgstr ""
 
@@ -3403,6 +4098,8 @@ msgstr ""
 #. @subsection in Documentation/es/user/setup.itely
 #. @node in Documentation/de/user/setup.itely
 #. @subsection in Documentation/de/user/setup.itely
+#. @node in Documentation/ja/user/setup.itely
+#. @subsection in Documentation/ja/user/setup.itely
 msgid "TextMate"
 msgstr ""
 
@@ -3414,6 +4111,8 @@ msgstr ""
 #. @subsection in Documentation/es/user/setup.itely
 #. @node in Documentation/de/user/setup.itely
 #. @subsection in Documentation/de/user/setup.itely
+#. @node in Documentation/ja/user/setup.itely
+#. @subsection in Documentation/ja/user/setup.itely
 msgid "LilyKDE"
 msgstr ""
 
@@ -3425,6 +4124,8 @@ msgstr ""
 #. @section in Documentation/es/user/setup.itely
 #. @node in Documentation/de/user/setup.itely
 #. @section in Documentation/de/user/setup.itely
+#. @node in Documentation/ja/user/setup.itely
+#. @section in Documentation/ja/user/setup.itely
 msgid "Point and click"
 msgstr ""
 
@@ -3436,6 +4137,8 @@ msgstr ""
 #. @chapter in Documentation/es/user/running.itely
 #. @node in Documentation/de/user/running.itely
 #. @chapter in Documentation/de/user/running.itely
+#. @node in Documentation/ja/user/running.itely
+#. @chapter in Documentation/ja/user/running.itely
 msgid "Running LilyPond"
 msgstr ""
 
@@ -3447,6 +4150,8 @@ msgstr ""
 #. @section in Documentation/es/user/running.itely
 #. @node in Documentation/de/user/running.itely
 #. @section in Documentation/de/user/running.itely
+#. @node in Documentation/ja/user/running.itely
+#. @section in Documentation/ja/user/running.itely
 msgid "Normal usage"
 msgstr ""
 
@@ -3458,6 +4163,8 @@ msgstr ""
 #. @section in Documentation/es/user/running.itely
 #. @node in Documentation/de/user/running.itely
 #. @section in Documentation/de/user/running.itely
+#. @node in Documentation/ja/user/running.itely
+#. @section in Documentation/ja/user/running.itely
 msgid "Command-line usage"
 msgstr ""
 
@@ -3466,22 +4173,28 @@ msgstr ""
 #. @subsection in Documentation/fr/user/running.itely
 #. @node in Documentation/es/user/running.itely
 #. @node in Documentation/de/user/running.itely
-#. @subsection in Documentation/de/user/running.itely
+#. @node in Documentation/ja/user/running.itely
 msgid "Invoking lilypond"
 msgstr ""
 
 #. @subsection in Documentation/user/running.itely
 #. @subsection in Documentation/es/user/running.itely
+#. @subsection in Documentation/de/user/running.itely
+#. @subsection in Documentation/ja/user/running.itely
 msgid "Invoking @command{lilypond}"
 msgstr ""
 
 #. @node in Documentation/user/running.itely
 #. @node in Documentation/es/user/running.itely
+#. @node in Documentation/de/user/running.itely
+#. @node in Documentation/ja/user/running.itely
 msgid "Command line options for lilypond"
 msgstr ""
 
 #. @subsection in Documentation/user/running.itely
 #. @subsection in Documentation/es/user/running.itely
+#. @subsection in Documentation/de/user/running.itely
+#. @subsection in Documentation/ja/user/running.itely
 msgid "Command line options for @command{lilypond}"
 msgstr ""
 
@@ -3493,6 +4206,8 @@ msgstr ""
 #. @subsection in Documentation/es/user/running.itely
 #. @node in Documentation/de/user/running.itely
 #. @subsection in Documentation/de/user/running.itely
+#. @node in Documentation/ja/user/running.itely
+#. @subsection in Documentation/ja/user/running.itely
 msgid "Environment variables"
 msgstr ""
 
@@ -3504,6 +4219,8 @@ msgstr ""
 #. @section in Documentation/es/user/running.itely
 #. @node in Documentation/de/user/running.itely
 #. @section in Documentation/de/user/running.itely
+#. @node in Documentation/ja/user/running.itely
+#. @section in Documentation/ja/user/running.itely
 msgid "Error messages"
 msgstr ""
 
@@ -3511,21 +4228,28 @@ msgstr ""
 #. @node in Documentation/fr/user/running.itely
 #. @node in Documentation/es/user/running.itely
 #. @node in Documentation/de/user/running.itely
+#. @node in Documentation/ja/user/running.itely
 msgid "Updating files with convert-ly"
 msgstr ""
 
 #. @section in Documentation/user/running.itely
 #. @section in Documentation/es/user/running.itely
+#. @section in Documentation/de/user/running.itely
+#. @section in Documentation/ja/user/running.itely
 msgid "Updating files with @command{convert-ly}"
 msgstr ""
 
 #. @node in Documentation/user/running.itely
 #. @node in Documentation/es/user/running.itely
+#. @node in Documentation/de/user/running.itely
+#. @node in Documentation/ja/user/running.itely
 msgid "Command line options for convert-ly"
 msgstr ""
 
 #. @subsection in Documentation/user/running.itely
 #. @subsection in Documentation/es/user/running.itely
+#. @subsection in Documentation/de/user/running.itely
+#. @subsection in Documentation/ja/user/running.itely
 msgid "Command line options for @command{convert-ly}"
 msgstr ""
 
@@ -3533,6 +4257,7 @@ msgstr ""
 #. @node in Documentation/fr/user/running.itely
 #. @node in Documentation/es/user/running.itely
 #. @node in Documentation/de/user/running.itely
+#. @node in Documentation/ja/user/running.itely
 msgid "Problems with convert-ly"
 msgstr ""
 
@@ -3540,6 +4265,7 @@ msgstr ""
 #. @subsection in Documentation/fr/user/running.itely
 #. @subsection in Documentation/es/user/running.itely
 #. @subsection in Documentation/de/user/running.itely
+#. @subsection in Documentation/ja/user/running.itely
 msgid "Problems with @code{convert-ly}"
 msgstr ""
 
@@ -3551,6 +4277,8 @@ msgstr ""
 #. @section in Documentation/es/user/running.itely
 #. @node in Documentation/de/user/running.itely
 #. @section in Documentation/de/user/running.itely
+#. @node in Documentation/ja/user/running.itely
+#. @section in Documentation/ja/user/running.itely
 msgid "Reporting bugs"
 msgstr ""
 
@@ -3558,6 +4286,7 @@ msgstr ""
 #. @node in Documentation/fr/user/lilypond-book.itely
 #. @node in Documentation/es/user/lilypond-book.itely
 #. @node in Documentation/de/user/lilypond-book.itely
+#. @node in Documentation/ja/user/lilypond-book.itely
 msgid "LilyPond-book"
 msgstr ""
 
@@ -3565,6 +4294,7 @@ msgstr ""
 #. @chapter in Documentation/fr/user/lilypond-book.itely
 #. @chapter in Documentation/es/user/lilypond-book.itely
 #. @chapter in Documentation/de/user/lilypond-book.itely
+#. @chapter in Documentation/ja/user/lilypond-book.itely
 msgid "@command{lilypond-book}: Integrating text and music"
 msgstr ""
 
@@ -3576,6 +4306,8 @@ msgstr ""
 #. @section in Documentation/es/user/lilypond-book.itely
 #. @node in Documentation/de/user/lilypond-book.itely
 #. @section in Documentation/de/user/lilypond-book.itely
+#. @node in Documentation/ja/user/lilypond-book.itely
+#. @section in Documentation/ja/user/lilypond-book.itely
 msgid "An example of a musicological document"
 msgstr ""
 
@@ -3583,6 +4315,7 @@ msgstr ""
 #. @subheading in Documentation/fr/user/lilypond-book.itely
 #. @subheading in Documentation/es/user/lilypond-book.itely
 #. @subheading in Documentation/de/user/lilypond-book.itely
+#. @subheading in Documentation/ja/user/lilypond-book.itely
 msgid "Input"
 msgstr ""
 
@@ -3590,6 +4323,7 @@ msgstr ""
 #. @subheading in Documentation/fr/user/lilypond-book.itely
 #. @subheading in Documentation/es/user/lilypond-book.itely
 #. @subheading in Documentation/de/user/lilypond-book.itely
+#. @subheading in Documentation/ja/user/lilypond-book.itely
 msgid "Processing"
 msgstr ""
 
@@ -3597,6 +4331,7 @@ msgstr ""
 #. @subheading in Documentation/fr/user/lilypond-book.itely
 #. @subheading in Documentation/es/user/lilypond-book.itely
 #. @subheading in Documentation/de/user/lilypond-book.itely
+#. @subheading in Documentation/ja/user/lilypond-book.itely
 msgid "Output"
 msgstr ""
 
@@ -3608,6 +4343,8 @@ msgstr ""
 #. @section in Documentation/es/user/lilypond-book.itely
 #. @node in Documentation/de/user/lilypond-book.itely
 #. @section in Documentation/de/user/lilypond-book.itely
+#. @node in Documentation/ja/user/lilypond-book.itely
+#. @section in Documentation/ja/user/lilypond-book.itely
 msgid "Integrating music and text"
 msgstr ""
 
@@ -3619,6 +4356,8 @@ msgstr ""
 #. @subsubheading in Documentation/es/user/lilypond-book.itely
 #. @subsection in Documentation/de/user/lilypond-book.itely
 #. @subsubheading in Documentation/de/user/lilypond-book.itely
+#. @subsection in Documentation/ja/user/lilypond-book.itely
+#. @subsubheading in Documentation/ja/user/lilypond-book.itely
 msgid "@LaTeX{}"
 msgstr ""
 
@@ -3630,6 +4369,8 @@ msgstr ""
 #. @subsection in Documentation/es/user/lilypond-book.itely
 #. @node in Documentation/de/user/lilypond-book.itely
 #. @subsection in Documentation/de/user/lilypond-book.itely
+#. @node in Documentation/ja/user/lilypond-book.itely
+#. @subsection in Documentation/ja/user/lilypond-book.itely
 msgid "HTML"
 msgstr ""
 
@@ -3641,6 +4382,8 @@ msgstr ""
 #. @subsection in Documentation/es/user/lilypond-book.itely
 #. @node in Documentation/de/user/lilypond-book.itely
 #. @subsection in Documentation/de/user/lilypond-book.itely
+#. @node in Documentation/ja/user/lilypond-book.itely
+#. @subsection in Documentation/ja/user/lilypond-book.itely
 msgid "DocBook"
 msgstr ""
 
@@ -3648,6 +4391,7 @@ msgstr ""
 #. @subheading in Documentation/fr/user/lilypond-book.itely
 #. @subheading in Documentation/es/user/lilypond-book.itely
 #. @subheading in Documentation/de/user/lilypond-book.itely
+#. @subheading in Documentation/ja/user/lilypond-book.itely
 msgid "Common conventions"
 msgstr ""
 
@@ -3655,6 +4399,7 @@ msgstr ""
 #. @subheading in Documentation/fr/user/lilypond-book.itely
 #. @subheading in Documentation/es/user/lilypond-book.itely
 #. @subheading in Documentation/de/user/lilypond-book.itely
+#. @subheading in Documentation/ja/user/lilypond-book.itely
 msgid "Including a LilyPond file"
 msgstr ""
 
@@ -3662,6 +4407,7 @@ msgstr ""
 #. @subheading in Documentation/fr/user/lilypond-book.itely
 #. @subheading in Documentation/es/user/lilypond-book.itely
 #. @subheading in Documentation/de/user/lilypond-book.itely
+#. @subheading in Documentation/ja/user/lilypond-book.itely
 msgid "Including LilyPond code"
 msgstr ""
 
@@ -3669,6 +4415,7 @@ msgstr ""
 #. @subheading in Documentation/fr/user/lilypond-book.itely
 #. @subheading in Documentation/es/user/lilypond-book.itely
 #. @subheading in Documentation/de/user/lilypond-book.itely
+#. @subheading in Documentation/ja/user/lilypond-book.itely
 msgid "Processing the DocBook document"
 msgstr ""
 
@@ -3680,6 +4427,8 @@ msgstr ""
 #. @section in Documentation/es/user/lilypond-book.itely
 #. @node in Documentation/de/user/lilypond-book.itely
 #. @section in Documentation/de/user/lilypond-book.itely
+#. @node in Documentation/ja/user/lilypond-book.itely
+#. @section in Documentation/ja/user/lilypond-book.itely
 msgid "Music fragment options"
 msgstr ""
 
@@ -3687,6 +4436,7 @@ msgstr ""
 #. @node in Documentation/fr/user/lilypond-book.itely
 #. @node in Documentation/es/user/lilypond-book.itely
 #. @node in Documentation/de/user/lilypond-book.itely
+#. @node in Documentation/ja/user/lilypond-book.itely
 msgid "Invoking lilypond-book"
 msgstr ""
 
@@ -3694,6 +4444,7 @@ msgstr ""
 #. @section in Documentation/fr/user/lilypond-book.itely
 #. @section in Documentation/es/user/lilypond-book.itely
 #. @section in Documentation/de/user/lilypond-book.itely
+#. @section in Documentation/ja/user/lilypond-book.itely
 msgid "Invoking @command{lilypond-book}"
 msgstr ""
 
@@ -3701,6 +4452,7 @@ msgstr ""
 #. @subheading in Documentation/fr/user/lilypond-book.itely
 #. @subheading in Documentation/es/user/lilypond-book.itely
 #. @subheading in Documentation/de/user/lilypond-book.itely
+#. @subheading in Documentation/ja/user/lilypond-book.itely
 msgid "Format-specific instructions"
 msgstr ""
 
@@ -3709,9 +4461,8 @@ msgstr ""
 #. @subsection in Documentation/fr/user/running.itely
 #. @subheading in Documentation/fr/user/lilypond-book.itely
 #. @subheading in Documentation/es/user/lilypond-book.itely
-#. @node in Documentation/de/user/running.itely
-#. @subsection in Documentation/de/user/running.itely
 #. @subheading in Documentation/de/user/lilypond-book.itely
+#. @subheading in Documentation/ja/user/lilypond-book.itely
 msgid "Command line options"
 msgstr ""
 
@@ -3723,6 +4474,8 @@ msgstr ""
 #. @section in Documentation/es/user/lilypond-book.itely
 #. @node in Documentation/de/user/lilypond-book.itely
 #. @section in Documentation/de/user/lilypond-book.itely
+#. @node in Documentation/ja/user/lilypond-book.itely
+#. @section in Documentation/ja/user/lilypond-book.itely
 msgid "Filename extensions"
 msgstr ""
 
@@ -3730,6 +4483,7 @@ msgstr ""
 #. @node in Documentation/fr/user/lilypond-book.itely
 #. @node in Documentation/es/user/lilypond-book.itely
 #. @node in Documentation/de/user/lilypond-book.itely
+#. @node in Documentation/ja/user/lilypond-book.itely
 msgid "Alternate methods of mixing text and music"
 msgstr ""
 
@@ -3737,6 +4491,7 @@ msgstr ""
 #. @section in Documentation/fr/user/lilypond-book.itely
 #. @section in Documentation/es/user/lilypond-book.itely
 #. @section in Documentation/de/user/lilypond-book.itely
+#. @section in Documentation/ja/user/lilypond-book.itely
 msgid "Alternative methods of mixing text and music"
 msgstr ""
 
@@ -3748,6 +4503,8 @@ msgstr ""
 #. @unnumberedsubsec in Documentation/es/user/lilypond-book.itely
 #. @node in Documentation/de/user/lilypond-book.itely
 #. @subsection in Documentation/de/user/lilypond-book.itely
+#. @node in Documentation/ja/user/lilypond-book.itely
+#. @unnumberedsubsec in Documentation/ja/user/lilypond-book.itely
 msgid "Many quotes from a large score"
 msgstr ""
 
@@ -3759,6 +4516,8 @@ msgstr ""
 #. @unnumberedsubsec in Documentation/es/user/lilypond-book.itely
 #. @node in Documentation/de/user/lilypond-book.itely
 #. @subsection in Documentation/de/user/lilypond-book.itely
+#. @node in Documentation/ja/user/lilypond-book.itely
+#. @unnumberedsubsec in Documentation/ja/user/lilypond-book.itely
 msgid "Inserting LilyPond output into OpenOffice.org"
 msgstr ""
 
@@ -3770,6 +4529,8 @@ msgstr ""
 #. @unnumberedsubsec in Documentation/es/user/lilypond-book.itely
 #. @node in Documentation/de/user/lilypond-book.itely
 #. @subsection in Documentation/de/user/lilypond-book.itely
+#. @node in Documentation/ja/user/lilypond-book.itely
+#. @unnumberedsubsec in Documentation/ja/user/lilypond-book.itely
 msgid "Inserting LilyPond output into other programs"
 msgstr ""
 
@@ -3781,6 +4542,8 @@ msgstr ""
 #. @chapter in Documentation/es/user/converters.itely
 #. @node in Documentation/de/user/converters.itely
 #. @chapter in Documentation/de/user/converters.itely
+#. @node in Documentation/ja/user/converters.itely
+#. @chapter in Documentation/ja/user/converters.itely
 msgid "Converting from other formats"
 msgstr ""
 
@@ -3788,6 +4551,7 @@ msgstr ""
 #. @node in Documentation/fr/user/converters.itely
 #. @node in Documentation/es/user/converters.itely
 #. @node in Documentation/de/user/converters.itely
+#. @node in Documentation/ja/user/converters.itely
 msgid "Invoking midi2ly"
 msgstr ""
 
@@ -3795,6 +4559,7 @@ msgstr ""
 #. @section in Documentation/fr/user/converters.itely
 #. @section in Documentation/es/user/converters.itely
 #. @section in Documentation/de/user/converters.itely
+#. @section in Documentation/ja/user/converters.itely
 msgid "Invoking @command{midi2ly}"
 msgstr ""
 
@@ -3802,6 +4567,7 @@ msgstr ""
 #. @node in Documentation/fr/user/converters.itely
 #. @node in Documentation/es/user/converters.itely
 #. @node in Documentation/de/user/converters.itely
+#. @node in Documentation/ja/user/converters.itely
 msgid "Invoking musicxml2ly"
 msgstr ""
 
@@ -3809,6 +4575,7 @@ msgstr ""
 #. @section in Documentation/fr/user/converters.itely
 #. @section in Documentation/es/user/converters.itely
 #. @section in Documentation/de/user/converters.itely
+#. @section in Documentation/ja/user/converters.itely
 msgid "Invoking @code{musicxml2ly}"
 msgstr ""
 
@@ -3816,6 +4583,7 @@ msgstr ""
 #. @node in Documentation/fr/user/converters.itely
 #. @node in Documentation/es/user/converters.itely
 #. @node in Documentation/de/user/converters.itely
+#. @node in Documentation/ja/user/converters.itely
 msgid "Invoking abc2ly"
 msgstr ""
 
@@ -3823,6 +4591,7 @@ msgstr ""
 #. @section in Documentation/fr/user/converters.itely
 #. @section in Documentation/es/user/converters.itely
 #. @section in Documentation/de/user/converters.itely
+#. @section in Documentation/ja/user/converters.itely
 msgid "Invoking @code{abc2ly}"
 msgstr ""
 
@@ -3830,6 +4599,7 @@ msgstr ""
 #. @node in Documentation/fr/user/converters.itely
 #. @node in Documentation/es/user/converters.itely
 #. @node in Documentation/de/user/converters.itely
+#. @node in Documentation/ja/user/converters.itely
 msgid "Invoking etf2ly"
 msgstr ""
 
@@ -3837,6 +4607,7 @@ msgstr ""
 #. @section in Documentation/fr/user/converters.itely
 #. @section in Documentation/es/user/converters.itely
 #. @section in Documentation/de/user/converters.itely
+#. @section in Documentation/ja/user/converters.itely
 msgid "Invoking @command{etf2ly}"
 msgstr ""
 
@@ -3848,10 +4619,13 @@ msgstr ""
 #. @section in Documentation/es/user/converters.itely
 #. @node in Documentation/de/user/converters.itely
 #. @section in Documentation/de/user/converters.itely
+#. @node in Documentation/ja/user/converters.itely
+#. @section in Documentation/ja/user/converters.itely
 msgid "Generating LilyPond files"
 msgstr ""
 
 #. @top in Documentation/user/lilypond.tely
+#. @top in Documentation/de/user/lilypond.tely
 msgid "GNU LilyPond --- Notation Reference"
 msgstr ""
 
@@ -3881,26 +4655,55 @@ msgstr ""
 msgid "Musical notation"
 msgstr ""
 
-#. Documentation/user/pitches.itely:654 (variable)
-#. Documentation/user/input.itely:997 (variable)
-#. Documentation/user/input.itely:1016 (variable)
-#. Documentation/user/input.itely:1053 (variable)
-#. Documentation/user/input.itely:1068 (variable)
+#. Documentation/user/pitches.itely:688 (variable)
+#. Documentation/user/input.itely:1043 (variable)
+#. Documentation/user/input.itely:1062 (variable)
+#. Documentation/user/input.itely:1099 (variable)
+#. Documentation/user/input.itely:1114 (variable)
+#. input/lsr/changing-the-chord-names-to-german-or-semi-german-notation.ly:29 (variable)
+#. input/lsr/controlling-tuplet-bracket-visibility.ly:20 (variable)
+#. input/lsr/letter-tablature-formatting.ly:25 (variable)
+#. input/lsr/string-quartet-template-with-separate-parts.ly:112 (variable)
+#. input/lsr/transposing-pitches-with-minimum-accidentals-smart-transpose.ly:137 (variable)
+#. input/lsr/vertically-aligned-dynamics-and-textscripts.ly:50 (variable)
 msgid "music"
 msgstr ""
 
-#. Documentation/user/pitches.itely:1031 (comment)
+#. Documentation/user/pitches.itely:1082 (comment)
 msgid "not strictly necessary, but a good reminder"
 msgstr ""
 
-#. Documentation/user/pitches.itely:1123 (variable)
+#. Documentation/user/pitches.itely:1089 (context id)
+#. Documentation/user/staff.itely:1116 (variable)
+msgid "clarinet"
+msgstr ""
+
+#. Documentation/user/pitches.itely:1174 (variable)
 msgid "musicA"
 msgstr ""
 
-#. Documentation/user/pitches.itely:1137 (variable)
+#. Documentation/user/pitches.itely:1188 (variable)
 msgid "musicB"
 msgstr ""
 
+#. Documentation/user/pitches.itely:1207 (context id)
+#. Documentation/user/keyboards.itely:175 (context id)
+#. Documentation/user/keyboards.itely:274 (context id)
+#. Documentation/user/percussion.itely:175 (variable)
+#. Documentation/user/percussion.itely:365 (variable)
+#. input/lsr/jazz-combo-template.ly:241 (variable)
+msgid "up"
+msgstr ""
+
+#. Documentation/user/pitches.itely:1211 (context id)
+#. Documentation/user/keyboards.itely:185 (context id)
+#. Documentation/user/keyboards.itely:283 (context id)
+#. Documentation/user/percussion.itely:178 (variable)
+#. Documentation/user/percussion.itely:366 (variable)
+#. input/lsr/jazz-combo-template.ly:247 (variable)
+msgid "down"
+msgstr ""
+
 #. @node in Documentation/user/pitches.itely
 #. @subsection in Documentation/user/pitches.itely
 #. @node in Documentation/fr/user/pitches.itely
@@ -3941,6 +4744,7 @@ msgid "fifth"
 msgstr ""
 
 #. @rglos in Documentation/user/pitches.itely
+#. @rglos in Documentation/es/user/pitches.itely
 #. @rglos in Documentation/de/user/pitches.itely
 msgid "quarter tone"
 msgstr ""
@@ -4140,240 +4944,185 @@ msgstr ""
 msgid "Improvisation"
 msgstr ""
 
-#. Documentation/user/rhythms.itely:294 (comment)
+#. Documentation/user/rhythms.itely:303 (comment)
 msgid "Alter durations to triplets"
 msgstr ""
 
-#. Documentation/user/rhythms.itely:296 (comment)
-#. Documentation/user/rhythms.itely:321 (comment)
+#. Documentation/user/rhythms.itely:305 (comment)
+#. Documentation/user/rhythms.itely:332 (comment)
 msgid "Normal durations"
 msgstr ""
 
-#. Documentation/user/rhythms.itely:298 (comment)
+#. Documentation/user/rhythms.itely:307 (comment)
 msgid "Double the duration of chord"
 msgstr ""
 
-#. Documentation/user/rhythms.itely:300 (comment)
+#. Documentation/user/rhythms.itely:309 (comment)
 msgid "Duration of quarter, appears like sixteenth"
 msgstr ""
 
-#. Documentation/user/rhythms.itely:323 (comment)
+#. Documentation/user/rhythms.itely:334 (comment)
 msgid "Scale music by *2/3"
 msgstr ""
 
-#. Documentation/user/rhythms.itely:327 (comment)
+#. Documentation/user/rhythms.itely:338 (comment)
 msgid "Scale music by *2"
 msgstr ""
 
-#. Documentation/user/rhythms.itely:412 (comment)
+#. Documentation/user/rhythms.itely:425 (comment)
 msgid "First alternative: following note is tied normally"
 msgstr ""
 
-#. Documentation/user/rhythms.itely:414 (comment)
+#. Documentation/user/rhythms.itely:427 (comment)
 msgid "Second alternative: following note has a repeated tie"
 msgstr ""
 
-#. Documentation/user/rhythms.itely:531 (comment)
+#. Documentation/user/rhythms.itely:559 (comment)
 msgid "These two lines are just to prettify this example"
 msgstr ""
 
-#. Documentation/user/rhythms.itely:534 (comment)
+#. Documentation/user/rhythms.itely:562 (comment)
 msgid "Print a maxima rest, equal to four breves"
 msgstr ""
 
-#. Documentation/user/rhythms.itely:536 (comment)
+#. Documentation/user/rhythms.itely:564 (comment)
 msgid "Print a longa rest, equal to two breves"
 msgstr ""
 
-#. Documentation/user/rhythms.itely:538 (comment)
+#. Documentation/user/rhythms.itely:566 (comment)
 msgid "Print a breve rest"
 msgstr ""
 
-#. Documentation/user/rhythms.itely:640 (comment)
+#. Documentation/user/rhythms.itely:675 (comment)
 msgid "This is valid input, but does nothing"
 msgstr ""
 
-#. Documentation/user/rhythms.itely:666 (comment)
-#. Documentation/user/rhythms.itely:719 (comment)
+#. Documentation/user/rhythms.itely:703 (comment)
+#. Documentation/user/rhythms.itely:758 (comment)
 msgid "Rest measures contracted to single measure"
 msgstr ""
 
-#. Documentation/user/rhythms.itely:715 (comment)
+#. Documentation/user/rhythms.itely:754 (comment)
+#. input/lsr/avoiding-collisions-with-chord-fingerings.ly:24 (comment)
 msgid "Default behavior"
 msgstr ""
 
-#. Documentation/user/rhythms.itely:722 (comment)
+#. Documentation/user/rhythms.itely:761 (comment)
 msgid "Rest measures expanded"
 msgstr ""
 
-#. Documentation/user/rhythms.itely:755 (comment)
+#. Documentation/user/rhythms.itely:797 (comment)
 msgid "This fails, as the wrong object name is specified"
 msgstr ""
 
-#. Documentation/user/rhythms.itely:758 (comment)
+#. Documentation/user/rhythms.itely:800 (comment)
 msgid "This is correct and works"
 msgstr ""
 
-#. Documentation/user/rhythms.itely:880 (comment)
+#. Documentation/user/rhythms.itely:934 (comment)
 msgid "Default style"
 msgstr ""
 
-#. Documentation/user/rhythms.itely:883 (comment)
+#. Documentation/user/rhythms.itely:937 (comment)
 msgid "Change to numeric style"
 msgstr ""
 
-#. Documentation/user/rhythms.itely:887 (comment)
+#. Documentation/user/rhythms.itely:941 (comment)
 msgid "Revert to default style"
 msgstr ""
 
-#. Documentation/user/rhythms.itely:916 (comment)
-msgid "Change time signature but keep 3/4 beaming"
-msgstr ""
-
-#. Documentation/user/rhythms.itely:917 (comment)
-msgid "due to unchanged beatLength"
-msgstr ""
-
-#. Documentation/user/rhythms.itely:921 (comment)
-msgid "Lose 3/4 beaming now beatLength has changed to 16"
-msgstr ""
-
-#. Documentation/user/rhythms.itely:1044 (comment)
+#. Documentation/user/rhythms.itely:1087 (comment)
 msgid "Show all bar numbers"
 msgstr ""
 
-#. Documentation/user/rhythms.itely:1154 (comment)
+#. Documentation/user/rhythms.itely:1217 (comment)
 msgid "Now each staff has its own time signature."
 msgstr ""
 
-#. Documentation/user/rhythms.itely:1571 (comment)
-msgid "auto beam on 1/4 note groups"
+#. Documentation/user/rhythms.itely:1345 (context id)
+msgid "myRhythm"
 msgstr ""
 
-#. Documentation/user/rhythms.itely:1573 (comment)
-msgid "no defined auto-beaming for this time sig"
-msgstr ""
-
-#. Documentation/user/rhythms.itely:1577 (comment)
-msgid "keep 3/4 beaming"
-msgstr ""
-
-#. Documentation/user/rhythms.itely:1578 (comment)
-msgid "due to beatLength"
-msgstr ""
-
-#. Documentation/user/rhythms.itely:1580 (comment)
-msgid "beam on 1/8 notes"
-msgstr ""
-
-#. Documentation/user/rhythms.itely:1583 (comment)
-msgid "beam on 3/16, 7/16, 9/16, 12/16"
-msgstr ""
-
-#. Documentation/user/rhythms.itely:1612 (comment)
-msgid "Set beam sub-group length to an eighth note"
-msgstr ""
-
-#. Documentation/user/rhythms.itely:1615 (comment)
-msgid "Set beam sub-group length to a sixteenth note"
-msgstr ""
-
-#. Documentation/user/rhythms.itely:1730 (comment)
+#. Documentation/user/rhythms.itely:1713 (comment)
 msgid "end 1/16 beams for all time signatures at the 1/16 moment"
 msgstr ""
 
-#. Documentation/user/rhythms.itely:1734 (comment)
+#. Documentation/user/rhythms.itely:1717 (comment)
 msgid "end 1/32 beams for all time signatures at the 1/16 moment"
 msgstr ""
 
-#. Documentation/user/rhythms.itely:1744 (comment)
+#. Documentation/user/rhythms.itely:1727 (comment)
 msgid "end beams of all durations in 5/8 time signature at the 2/8 moment"
 msgstr ""
 
-#. Documentation/user/rhythms.itely:1759 (comment)
+#. Documentation/user/rhythms.itely:1742 (comment)
 msgid "rhythm 3-1-1-2"
 msgstr ""
 
-#. Documentation/user/rhythms.itely:1760 (comment)
+#. Documentation/user/rhythms.itely:1743 (comment)
 msgid "Context not specified - does not work correctly"
 msgstr ""
 
-#. Documentation/user/rhythms.itely:1766 (comment)
+#. Documentation/user/rhythms.itely:1749 (comment)
 msgid "Works correctly with context specified"
 msgstr ""
 
-#. Documentation/user/rhythms.itely:1802 (comment)
+#. Documentation/user/rhythms.itely:1782 (comment)
 msgid "undo a rule ending 1/16 beams in 4/4 time at 1/4 moment"
 msgstr ""
 
-#. Documentation/user/rhythms.itely:1815 (comment)
+#. Documentation/user/rhythms.itely:1795 (comment)
 msgid "this won't revert it!"
 msgstr ""
 
-#. Documentation/user/rhythms.itely:1817 (comment)
+#. Documentation/user/rhythms.itely:1797 (comment)
 msgid "this will"
 msgstr ""
 
-#. Documentation/user/rhythms.itely:1832 (comment)
-msgid "rhythm 2-3-2"
-msgstr ""
-
-#. Documentation/user/rhythms.itely:1871 (comment)
-msgid "Default beaming"
-msgstr ""
-
-#. Documentation/user/rhythms.itely:1874 (comment)
-msgid "Revert default values in scm/auto-beam.scm for 12/8 time"
-msgstr ""
-
-#. Documentation/user/rhythms.itely:1880 (comment)
-msgid "Set new values for beam endings"
-msgstr ""
-
-#. Documentation/user/rhythms.itely:2002 (comment)
+#. Documentation/user/rhythms.itely:1942 (comment)
 msgid "revert to non-feathered beams"
 msgstr ""
 
-#. Documentation/user/rhythms.itely:2225 (comment)
-#. Documentation/user/rhythms.itely:2241 (comment)
+#. Documentation/user/rhythms.itely:2182 (comment)
+#. Documentation/user/rhythms.itely:2198 (comment)
 msgid "Permit first bar number to be printed"
 msgstr ""
 
-#. Documentation/user/rhythms.itely:2242 (comment)
-#. Documentation/user/rhythms.itely:2290 (comment)
+#. Documentation/user/rhythms.itely:2199 (comment)
+#. Documentation/user/rhythms.itely:2247 (comment)
 msgid "Print a bar number every second measure"
 msgstr ""
 
-#. Documentation/user/rhythms.itely:2258 (comment)
+#. Documentation/user/rhythms.itely:2215 (comment)
 msgid "Prevent bar numbers at the end of a line and permit them elsewhere"
 msgstr ""
 
-#. Documentation/user/rhythms.itely:2262 (comment)
-#. Documentation/user/rhythms.itely:2288 (comment)
+#. Documentation/user/rhythms.itely:2219 (comment)
+#. Documentation/user/rhythms.itely:2245 (comment)
 msgid "Increase the size of the bar number by 2"
 msgstr ""
 
-#. Documentation/user/rhythms.itely:2266 (comment)
+#. Documentation/user/rhythms.itely:2223 (comment)
 msgid "Draw a box round the following bar number(s)"
 msgstr ""
 
-#. Documentation/user/rhythms.itely:2271 (comment)
+#. Documentation/user/rhythms.itely:2228 (comment)
 msgid "Draw a circle round the following bar number(s)"
 msgstr ""
 
-#. Documentation/user/rhythms.itely:2293 (comment)
+#. Documentation/user/rhythms.itely:2250 (comment)
 msgid "Center-align bar numbers"
 msgstr ""
 
-#. Documentation/user/rhythms.itely:2296 (comment)
+#. Documentation/user/rhythms.itely:2253 (comment)
 msgid "Right-align bar numbers"
 msgstr ""
 
-#. Documentation/user/rhythms.itely:2399 (variable)
+#. Documentation/user/rhythms.itely:2347 (variable)
 msgid "pipeSymbol"
 msgstr ""
 
-#. Documentation/user/rhythms.itely:2786 (variable)
+#. Documentation/user/rhythms.itely:2752 (variable)
 msgid "MyCadenza"
 msgstr ""
 
@@ -4412,26 +5161,37 @@ msgstr ""
 
 #. @rglos in Documentation/user/rhythms.itely
 #. @rglos in Documentation/es/user/rhythms.itely
+#. @rglos in Documentation/de/user/rhythms.itely
 msgid "breve"
 msgstr ""
 
 #. @rglos in Documentation/user/rhythms.itely
 #. @rglos in Documentation/es/user/rhythms.itely
+#. @rglos in Documentation/de/user/rhythms.itely
 msgid "longa"
 msgstr ""
 
 #. @rglos in Documentation/user/rhythms.itely
 #. @rglos in Documentation/es/user/rhythms.itely
+#. @rglos in Documentation/de/user/rhythms.itely
+msgid "maxima"
+msgstr ""
+
+#. @rglos in Documentation/user/rhythms.itely
+#. @rglos in Documentation/es/user/rhythms.itely
+#. @rglos in Documentation/de/user/rhythms.itely
 msgid "Duration names notes and rests"
 msgstr ""
 
 #. @rglos in Documentation/user/rhythms.itely
 #. @rglos in Documentation/es/user/rhythms.itely
+#. @rglos in Documentation/de/user/rhythms.itely
 msgid "tuplet"
 msgstr ""
 
 #. @rglos in Documentation/user/rhythms.itely
 #. @rglos in Documentation/es/user/rhythms.itely
+#. @rglos in Documentation/de/user/rhythms.itely
 msgid "polymetric"
 msgstr ""
 
@@ -4449,6 +5209,7 @@ msgstr ""
 #. @rglos in Documentation/user/rhythms.itely
 #. @rglos in Documentation/fr/user/rhythms.itely
 #. @rglos in Documentation/es/user/rhythms.itely
+#. @rglos in Documentation/de/user/rhythms.itely
 msgid "laissez vibrer"
 msgstr ""
 
@@ -4487,6 +5248,7 @@ msgstr ""
 
 #. @rglos in Documentation/user/rhythms.itely
 #. @rglos in Documentation/es/user/rhythms.itely
+#. @rglos in Documentation/de/user/rhythms.itely
 msgid "multi-measure rest"
 msgstr ""
 
@@ -4525,6 +5287,7 @@ msgstr ""
 
 #. @rglos in Documentation/user/rhythms.itely
 #. @rglos in Documentation/es/user/rhythms.itely
+#. @rglos in Documentation/de/user/rhythms.itely
 msgid "cadenza"
 msgstr ""
 
@@ -4541,11 +5304,13 @@ msgstr ""
 
 #. @rglos in Documentation/user/rhythms.itely
 #. @rglos in Documentation/es/user/rhythms.itely
+#. @rglos in Documentation/de/user/rhythms.itely
 msgid "polymetric time signature"
 msgstr ""
 
 #. @rglos in Documentation/user/rhythms.itely
 #. @rglos in Documentation/es/user/rhythms.itely
+#. @rglos in Documentation/de/user/rhythms.itely
 msgid "meter"
 msgstr ""
 
@@ -4846,6 +5611,7 @@ msgstr ""
 #. @rglos in Documentation/user/expressive.itely
 #. @rglos in Documentation/es/user/expressive.itely
 #. @rglos in Documentation/de/user/expressive.itely
+#. input/lsr/breathing-signs.ly:35 (comment)
 msgid "caesura"
 msgstr ""
 
@@ -4934,7 +5700,8 @@ msgstr ""
 msgid "trill"
 msgstr ""
 
-#. Documentation/user/repeats.itely:298 (variable)
+#. Documentation/user/repeats.itely:299 (variable)
+#. input/lsr/volta-text-markup-using-repeatcommands.ly:21 (variable)
 msgid "voltaAdLib"
 msgstr ""
 
@@ -5040,27 +5807,27 @@ msgstr ""
 msgid "Tremolo repeats"
 msgstr ""
 
-#. Documentation/user/simultaneous.itely:93 (comment)
+#. Documentation/user/simultaneous.itely:94 (comment)
 msgid "explicit single voice"
 msgstr ""
 
-#. Documentation/user/simultaneous.itely:99 (comment)
+#. Documentation/user/simultaneous.itely:100 (comment)
 msgid "single first note"
 msgstr ""
 
-#. Documentation/user/simultaneous.itely:111 (comment)
+#. Documentation/user/simultaneous.itely:112 (comment)
 msgid "no single first note"
 msgstr ""
 
-#. Documentation/user/simultaneous.itely:617 (variable)
+#. Documentation/user/simultaneous.itely:622 (variable)
 msgid "instrumentOne"
 msgstr ""
 
-#. Documentation/user/simultaneous.itely:625 (variable)
+#. Documentation/user/simultaneous.itely:630 (variable)
 msgid "instrumentTwo"
 msgstr ""
 
-#. Documentation/user/simultaneous.itely:801 (comment)
+#. Documentation/user/simultaneous.itely:807 (comment)
 msgid "Bar 3 ..."
 msgstr ""
 
@@ -5183,6 +5950,8 @@ msgstr ""
 #. @rglos in Documentation/user/simultaneous.itely
 #. @rglos in Documentation/es/user/simultaneous.itely
 #. @rglos in Documentation/de/user/simultaneous.itely
+#. input/lsr/flamenco-notation.ly:136 (variable)
+#. input/lsr/flamenco-notation.ly:233 (context id)
 msgid "part"
 msgstr ""
 
@@ -5197,26 +5966,24 @@ msgstr ""
 msgid "Writing music in parallel"
 msgstr ""
 
-#. Documentation/user/staff.itely:1069 (variable)
-#. Documentation/user/staff.itely:1084 (variable)
-#. Documentation/user/staff.itely:1238 (variable)
-msgid "flute"
-msgstr ""
-
+#. Documentation/user/staff.itely:1085 (variable)
 #. Documentation/user/staff.itely:1100 (variable)
-msgid "clarinet"
+#. Documentation/user/staff.itely:1265 (variable)
+msgid "flute"
 msgstr ""
 
-#. Documentation/user/staff.itely:1189 (variable)
-#. Documentation/user/staff.itely:1210 (variable)
+#. Documentation/user/staff.itely:1207 (variable)
+#. Documentation/user/staff.itely:1228 (variable)
 msgid "oboe"
 msgstr ""
 
-#. Documentation/user/staff.itely:1259 (variable)
+#. Documentation/user/staff.itely:1286 (variable)
+#. Documentation/user/staff.itely:1302 (context id)
 msgid "piccolo"
 msgstr ""
 
-#. Documentation/user/staff.itely:1267 (variable)
+#. Documentation/user/staff.itely:1294 (variable)
+#. Documentation/user/staff.itely:1303 (context id)
 msgid "cbassoon"
 msgstr ""
 
@@ -5248,16 +6015,20 @@ msgstr ""
 #. @unnumberedsubsubsec in Documentation/fr/user/staff.itely
 #. @node in Documentation/es/user/staff.itely
 #. @unnumberedsubsubsec in Documentation/es/user/staff.itely
+#. @node in Documentation/de/user/staff.itely
+#. @unnumberedsubsubsec in Documentation/de/user/staff.itely
 msgid "Instantiating new staves"
 msgstr ""
 
 #. @rglos in Documentation/user/staff.itely
 #. @rglos in Documentation/es/user/staff.itely
+#. @rglos in Documentation/de/user/staff.itely
 msgid "staff"
 msgstr ""
 
 #. @rglos in Documentation/user/staff.itely
 #. @rglos in Documentation/es/user/staff.itely
+#. @rglos in Documentation/de/user/staff.itely
 msgid "staves"
 msgstr ""
 
@@ -5267,16 +6038,20 @@ msgstr ""
 #. @unnumberedsubsubsec in Documentation/fr/user/staff.itely
 #. @node in Documentation/es/user/staff.itely
 #. @unnumberedsubsubsec in Documentation/es/user/staff.itely
+#. @node in Documentation/de/user/staff.itely
+#. @unnumberedsubsubsec in Documentation/de/user/staff.itely
 msgid "Grouping staves"
 msgstr ""
 
 #. @rglos in Documentation/user/staff.itely
 #. @rglos in Documentation/es/user/staff.itely
+#. @rglos in Documentation/de/user/staff.itely
 msgid "bracket"
 msgstr ""
 
 #. @rglos in Documentation/user/staff.itely
 #. @rglos in Documentation/es/user/staff.itely
+#. @rglos in Documentation/de/user/staff.itely
 msgid "grand staff"
 msgstr ""
 
@@ -5286,6 +6061,8 @@ msgstr ""
 #. @unnumberedsubsubsec in Documentation/fr/user/staff.itely
 #. @node in Documentation/es/user/staff.itely
 #. @unnumberedsubsubsec in Documentation/es/user/staff.itely
+#. @node in Documentation/de/user/staff.itely
+#. @unnumberedsubsubsec in Documentation/de/user/staff.itely
 msgid "Nested staff groups"
 msgstr ""
 
@@ -5295,6 +6072,8 @@ msgstr ""
 #. @subsection in Documentation/fr/user/staff.itely
 #. @node in Documentation/es/user/staff.itely
 #. @subsection in Documentation/es/user/staff.itely
+#. @node in Documentation/de/user/staff.itely
+#. @subsection in Documentation/de/user/staff.itely
 msgid "Modifying single staves"
 msgstr ""
 
@@ -5311,11 +6090,13 @@ msgstr ""
 
 #. @rglos in Documentation/user/staff.itely
 #. @rglos in Documentation/es/user/staff.itely
+#. @rglos in Documentation/de/user/staff.itely
 msgid "line"
 msgstr ""
 
 #. @rglos in Documentation/user/staff.itely
 #. @rglos in Documentation/es/user/staff.itely
+#. @rglos in Documentation/de/user/staff.itely
 msgid "ledger line"
 msgstr ""
 
@@ -5325,11 +6106,14 @@ msgstr ""
 #. @unnumberedsubsubsec in Documentation/fr/user/staff.itely
 #. @node in Documentation/es/user/staff.itely
 #. @unnumberedsubsubsec in Documentation/es/user/staff.itely
+#. @node in Documentation/de/user/staff.itely
+#. @unnumberedsubsubsec in Documentation/de/user/staff.itely
 msgid "Ossia staves"
 msgstr ""
 
 #. @rglos in Documentation/user/staff.itely
 #. @rglos in Documentation/es/user/staff.itely
+#. @rglos in Documentation/de/user/staff.itely
 msgid "Frenched staff"
 msgstr ""
 
@@ -5368,21 +6152,25 @@ msgstr ""
 
 #. @rglos in Documentation/user/staff.itely
 #. @rglos in Documentation/es/user/staff.itely
+#. @rglos in Documentation/de/user/staff.itely
 msgid "metronome"
 msgstr ""
 
 #. @rglos in Documentation/user/staff.itely
 #. @rglos in Documentation/es/user/staff.itely
+#. @rglos in Documentation/de/user/staff.itely
 msgid "metronomic indication"
 msgstr ""
 
 #. @rglos in Documentation/user/staff.itely
 #. @rglos in Documentation/es/user/staff.itely
+#. @rglos in Documentation/de/user/staff.itely
 msgid "tempo indication"
 msgstr ""
 
 #. @rglos in Documentation/user/staff.itely
 #. @rglos in Documentation/es/user/staff.itely
+#. @rglos in Documentation/de/user/staff.itely
 msgid "metronome mark"
 msgstr ""
 
@@ -5423,7 +6211,7 @@ msgstr ""
 msgid "Formatting cue notes"
 msgstr ""
 
-#. Documentation/user/editorial.itely:321 (comment)
+#. Documentation/user/editorial.itely:326 (comment)
 msgid "this is deliberate nonsense; note that the stems remain black"
 msgstr ""
 
@@ -5559,7 +6347,7 @@ msgstr ""
 msgid "Analysis brackets"
 msgstr ""
 
-#. Documentation/user/text.itely:418 (variable)
+#. Documentation/user/text.itely:421 (variable)
 msgid "allegro"
 msgstr ""
 
@@ -5709,6 +6497,8 @@ msgstr ""
 #. @unnumberedsubsubsec in Documentation/user/text.itely
 #. @node in Documentation/es/user/text.itely
 #. @unnumberedsubsubsec in Documentation/es/user/text.itely
+#. @node in Documentation/de/user/text.itely
+#. @unnumberedsubsubsec in Documentation/de/user/text.itely
 msgid "Fonts explained"
 msgstr ""
 
@@ -5741,60 +6531,73 @@ msgstr ""
 msgid "Specialist notation"
 msgstr ""
 
-#. Documentation/user/vocal.itely:509 (comment)
-msgid "not recommended: left aligns syllables "
+#. Documentation/user/vocal.itely:512 (comment)
+msgid "not recommended: left aligns syllables"
 msgstr ""
 
-#. Documentation/user/vocal.itely:512 (comment)
+#. Documentation/user/vocal.itely:515 (comment)
 msgid "wrong: durations needed"
 msgstr ""
 
-#. Documentation/user/vocal.itely:515 (comment)
+#. Documentation/user/vocal.itely:518 (comment)
 msgid "correct"
 msgstr ""
 
-#. Documentation/user/vocal.itely:847 (variable)
+#. Documentation/user/vocal.itely:667 (context id)
+msgid "lala"
+msgstr ""
+
+#. Documentation/user/vocal.itely:808 (context id)
+msgid "splitpart"
+msgstr ""
+
+#. Documentation/user/vocal.itely:853 (variable)
 msgid "voice"
 msgstr ""
 
-#. Documentation/user/vocal.itely:854 (variable)
+#. Documentation/user/vocal.itely:860 (variable)
+#. input/lsr/formatting-lyrics-syllables.ly:22 (variable)
 msgid "lyr"
 msgstr ""
 
-#. Documentation/user/vocal.itely:1112 (comment)
-msgid "applies to \\\"fas\\\""
+#. Documentation/user/vocal.itely:1059 (context id)
+msgid "tune"
+msgstr ""
+
+#. Documentation/user/vocal.itely:1101 (context id)
+msgid "lahlah"
 msgstr ""
 
-#. Documentation/user/vocal.itely:1282 (comment)
-msgid "moves the column off the left margin; "
+#. Documentation/user/vocal.itely:1284 (comment)
+msgid "moves the column off the left margin;"
 msgstr ""
 
-#. Documentation/user/vocal.itely:1283 (comment)
+#. Documentation/user/vocal.itely:1285 (comment)
 msgid "can be removed if space on the page is tight"
 msgstr ""
 
-#. Documentation/user/vocal.itely:1291 (comment)
-#. Documentation/user/vocal.itely:1309 (comment)
+#. Documentation/user/vocal.itely:1293 (comment)
+#. Documentation/user/vocal.itely:1311 (comment)
 msgid "adds vertical spacing between verses"
 msgstr ""
 
-#. Documentation/user/vocal.itely:1299 (comment)
-msgid "adds horizontal spacing between columns; "
+#. Documentation/user/vocal.itely:1301 (comment)
+msgid "adds horizontal spacing between columns;"
 msgstr ""
 
-#. Documentation/user/vocal.itely:1300 (comment)
-msgid "if they are still too close, add more \\\" \\\" pairs  "
+#. Documentation/user/vocal.itely:1302 (comment)
+msgid "if they are still too close, add more \\\" \\\" pairs"
 msgstr ""
 
-#. Documentation/user/vocal.itely:1301 (comment)
+#. Documentation/user/vocal.itely:1303 (comment)
 msgid "until the result looks good"
 msgstr ""
 
-#. Documentation/user/vocal.itely:1317 (comment)
-msgid "gives some extra space on the right margin; "
+#. Documentation/user/vocal.itely:1319 (comment)
+msgid "gives some extra space on the right margin;"
 msgstr ""
 
-#. Documentation/user/vocal.itely:1318 (comment)
+#. Documentation/user/vocal.itely:1320 (comment)
 msgid "can be removed if page space is tight"
 msgstr ""
 
@@ -6108,7 +6911,6 @@ msgstr ""
 
 #. @subsubheading in Documentation/user/vocal.itely
 #. @subsubheading in Documentation/es/user/vocal.itely
-#. @subsubheading in Documentation/de/user/vocal.itely
 msgid "Ignoring melismata"
 msgstr ""
 
@@ -6140,23 +6942,35 @@ msgstr ""
 msgid "Printing stanzas at the end in multiple columns"
 msgstr ""
 
-#. Documentation/user/keyboards.itely:182 (comment)
+#. Documentation/user/keyboards.itely:187 (comment)
 msgid "keep staff alive"
 msgstr ""
 
-#. Documentation/user/keyboards.itely:385 (comment)
+#. Documentation/user/keyboards.itely:275 (context id)
+msgid "melOne"
+msgstr ""
+
+#. Documentation/user/keyboards.itely:344 (context id)
+#. Documentation/user/fretted-strings.itely:247 (context id)
+#. input/lsr/adding-fingerings-to-tablatures.ly:24 (variable)
+#. input/lsr/jazz-combo-template.ly:205 (context id)
+#. input/lsr/jazz-combo-template.ly:214 (context id)
+msgid "two"
+msgstr ""
+
+#. Documentation/user/keyboards.itely:398 (comment)
 msgid "stems may overlap the other staff"
 msgstr ""
 
-#. Documentation/user/keyboards.itely:387 (comment)
+#. Documentation/user/keyboards.itely:400 (comment)
 msgid "extend the stems to reach other other staff"
 msgstr ""
 
-#. Documentation/user/keyboards.itely:389 (comment)
+#. Documentation/user/keyboards.itely:402 (comment)
 msgid "do not print extra flags"
 msgstr ""
 
-#. Documentation/user/keyboards.itely:391 (comment)
+#. Documentation/user/keyboards.itely:404 (comment)
 msgid "prevent beaming as needed"
 msgstr ""
 
@@ -6292,6 +7106,28 @@ msgstr ""
 msgid "Harp"
 msgstr ""
 
+#. @node in Documentation/user/keyboards.itely
+#. @unnumberedsubsubsec in Documentation/user/keyboards.itely
+#. @node in Documentation/fr/user/keyboards.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/keyboards.itely
+#. @node in Documentation/es/user/keyboards.itely
+#. @unnumberedsubsubsec in Documentation/es/user/keyboards.itely
+#. @node in Documentation/de/user/keyboards.itely
+#. @unnumberedsubsubsec in Documentation/de/user/keyboards.itely
+msgid "References for harps"
+msgstr ""
+
+#. @node in Documentation/user/keyboards.itely
+#. @unnumberedsubsubsec in Documentation/user/keyboards.itely
+#. @node in Documentation/fr/user/keyboards.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/keyboards.itely
+#. @node in Documentation/es/user/keyboards.itely
+#. @unnumberedsubsubsec in Documentation/es/user/keyboards.itely
+#. @node in Documentation/de/user/keyboards.itely
+#. @unnumberedsubsubsec in Documentation/de/user/keyboards.itely
+msgid "Harp pedals"
+msgstr ""
+
 #. @node in Documentation/user/unfretted-strings.itely
 #. @section in Documentation/user/unfretted-strings.itely
 #. @node in Documentation/fr/user/unfretted-strings.itely
@@ -6349,11 +7185,14 @@ msgstr ""
 
 #. @rglos in Documentation/user/unfretted-strings.itely
 #. @rglos in Documentation/es/user/unfretted-strings.itely
+#. @rglos in Documentation/de/user/unfretted-strings.itely
 msgid "harmonics"
 msgstr ""
 
 #. @node in Documentation/user/unfretted-strings.itely
 #. @node in Documentation/es/user/unfretted-strings.itely
+#. @node in Documentation/de/user/unfretted-strings.itely
+#. @unnumberedsubsubsec in Documentation/de/user/unfretted-strings.itely
 msgid "Snap (Bartok) pizzicato"
 msgstr ""
 
@@ -6361,41 +7200,48 @@ msgstr ""
 #. @node in Documentation/fr/user/unfretted-strings.itely
 #. @unnumberedsubsubsec in Documentation/fr/user/unfretted-strings.itely
 #. @unnumberedsubsubsec in Documentation/es/user/unfretted-strings.itely
-#. @node in Documentation/de/user/unfretted-strings.itely
-#. @unnumberedsubsubsec in Documentation/de/user/unfretted-strings.itely
 msgid "Snap (Bartók) pizzicato"
 msgstr ""
 
-#. Documentation/user/fretted-strings.itely:238 (variable)
+#. Documentation/user/fretted-strings.itely:243 (variable)
 msgid "melodia"
 msgstr ""
 
-#. Documentation/user/fretted-strings.itely:321 (variable)
+#. Documentation/user/fretted-strings.itely:248 (context id)
+msgid "shared"
+msgstr ""
+
+#. Documentation/user/fretted-strings.itely:249 (context id)
+msgid "solo"
+msgstr ""
+
+#. Documentation/user/fretted-strings.itely:326 (variable)
 msgid "mynotes"
 msgstr ""
 
-#. Documentation/user/fretted-strings.itely:448 (comment)
+#. Documentation/user/fretted-strings.itely:453 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:29 (comment)
 msgid "A chord for ukelele"
 msgstr ""
 
-#. Documentation/user/fretted-strings.itely:768 (variable)
-#. Documentation/user/fretted-strings.itely:791 (variable)
-#. Documentation/user/fretted-strings.itely:820 (variable)
-#. Documentation/user/fretted-strings.itely:849 (variable)
-#. Documentation/user/fretted-strings.itely:873 (variable)
-#. Documentation/user/fretted-strings.itely:917 (variable)
+#. Documentation/user/fretted-strings.itely:785 (variable)
+#. Documentation/user/fretted-strings.itely:808 (variable)
+#. Documentation/user/fretted-strings.itely:837 (variable)
+#. Documentation/user/fretted-strings.itely:868 (variable)
+#. Documentation/user/fretted-strings.itely:892 (variable)
+#. Documentation/user/fretted-strings.itely:940 (variable)
 msgid "mychords"
 msgstr ""
 
-#. Documentation/user/fretted-strings.itely:795 (variable)
+#. Documentation/user/fretted-strings.itely:812 (variable)
 msgid "mychordlist"
 msgstr ""
 
-#. Documentation/user/fretted-strings.itely:904 (comment)
+#. Documentation/user/fretted-strings.itely:927 (comment)
 msgid "add a new chord shape"
 msgstr ""
 
-#. Documentation/user/fretted-strings.itely:908 (comment)
+#. Documentation/user/fretted-strings.itely:931 (comment)
 msgid "add some new chords based on the power chord shape"
 msgstr ""
 
@@ -6478,15 +7324,23 @@ msgstr ""
 
 #. @node in Documentation/user/fretted-strings.itely
 #. @unnumberedsubsubsec in Documentation/user/fretted-strings.itely
+#. @node in Documentation/fr/user/fretted-strings.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/fretted-strings.itely
 #. @node in Documentation/es/user/fretted-strings.itely
 #. @unnumberedsubsubsec in Documentation/es/user/fretted-strings.itely
+#. @node in Documentation/de/user/fretted-strings.itely
+#. @unnumberedsubsubsec in Documentation/de/user/fretted-strings.itely
 msgid "Predefined fret diagrams"
 msgstr ""
 
 #. @node in Documentation/user/fretted-strings.itely
 #. @unnumberedsubsubsec in Documentation/user/fretted-strings.itely
+#. @node in Documentation/fr/user/fretted-strings.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/fretted-strings.itely
 #. @node in Documentation/es/user/fretted-strings.itely
 #. @unnumberedsubsubsec in Documentation/es/user/fretted-strings.itely
+#. @node in Documentation/de/user/fretted-strings.itely
+#. @unnumberedsubsubsec in Documentation/de/user/fretted-strings.itely
 msgid "Automatic fret diagrams"
 msgstr ""
 
@@ -6556,16 +7410,6 @@ msgstr ""
 msgid "Banjo tablatures"
 msgstr ""
 
-#. Documentation/user/percussion.itely:175 (variable)
-#. Documentation/user/percussion.itely:365 (variable)
-msgid "up"
-msgstr ""
-
-#. Documentation/user/percussion.itely:178 (variable)
-#. Documentation/user/percussion.itely:366 (variable)
-msgid "down"
-msgstr ""
-
 #. Documentation/user/percussion.itely:385 (comment)
 msgid "These lines define the position of the woodblocks in the stave;"
 msgstr ""
@@ -6674,6 +7518,8 @@ msgstr ""
 #. @unnumberedsubsubsec in Documentation/user/percussion.itely
 #. @node in Documentation/es/user/percussion.itely
 #. @unnumberedsubsubsec in Documentation/es/user/percussion.itely
+#. @node in Documentation/de/user/percussion.itely
+#. @unnumberedsubsubsec in Documentation/de/user/percussion.itely
 msgid "Drum rolls"
 msgstr ""
 
@@ -6681,6 +7527,8 @@ msgstr ""
 #. @unnumberedsubsubsec in Documentation/user/percussion.itely
 #. @node in Documentation/es/user/percussion.itely
 #. @unnumberedsubsubsec in Documentation/es/user/percussion.itely
+#. @node in Documentation/de/user/percussion.itely
+#. @unnumberedsubsubsec in Documentation/de/user/percussion.itely
 msgid "Pitched percussion"
 msgstr ""
 
@@ -6699,6 +7547,8 @@ msgstr ""
 #. @unnumberedsubsubsec in Documentation/user/percussion.itely
 #. @node in Documentation/es/user/percussion.itely
 #. @unnumberedsubsubsec in Documentation/es/user/percussion.itely
+#. @node in Documentation/de/user/percussion.itely
+#. @unnumberedsubsubsec in Documentation/de/user/percussion.itely
 msgid "Custom percussion staves"
 msgstr ""
 
@@ -6779,20 +7629,20 @@ msgstr ""
 msgid "Bagpipe example"
 msgstr ""
 
-#. Documentation/user/chords.itely:654 (variable)
+#. Documentation/user/chords.itely:669 (variable)
 msgid "myChords"
 msgstr ""
 
-#. Documentation/user/chords.itely:981 (comment)
-#. Documentation/user/chords.itely:1002 (comment)
+#. Documentation/user/chords.itely:999 (comment)
+#. Documentation/user/chords.itely:1020 (comment)
 msgid "Put notes on same Staff as figures"
 msgstr ""
 
-#. Documentation/user/chords.itely:1061 (comment)
+#. Documentation/user/chords.itely:1083 (comment)
 msgid "The extenders are correct here, with the same rhythm as the bass"
 msgstr ""
 
-#. Documentation/user/chords.itely:1073 (comment)
+#. Documentation/user/chords.itely:1095 (comment)
 msgid "The extenders are incorrect here, even though the timing is the same"
 msgstr ""
 
@@ -6908,6 +7758,7 @@ msgstr ""
 
 #. @rglos in Documentation/user/chords.itely
 #. @rglos in Documentation/es/user/chords.itely
+#. @rglos in Documentation/de/user/chords.itely
 msgid "figured bass"
 msgstr ""
 
@@ -6933,17 +7784,46 @@ msgstr ""
 msgid "Displaying figured bass"
 msgstr ""
 
-#. Documentation/user/ancient.itely:821 (variable)
+#. Documentation/user/ancient.itely:357 (context id)
+msgid "discantus"
+msgstr ""
+
+#. Documentation/user/ancient.itely:823 (variable)
 msgid "ficta"
 msgstr ""
 
-#. @node in Documentation/user/ancient.itely
-#. @section in Documentation/user/ancient.itely
-#. @node in Documentation/fr/user/ancient.itely
-#. @section in Documentation/fr/user/ancient.itely
-#. @node in Documentation/es/user/ancient.itely
-#. @section in Documentation/es/user/ancient.itely
-#. @node in Documentation/de/user/ancient.itely
+#. Documentation/user/ancient.itely:976 (context id)
+msgid "cantus"
+msgstr ""
+
+#. Documentation/user/ancient.itely:2399 (variable)
+#. Documentation/user/ancient.itely:2434 (variable)
+#. Documentation/user/ancient.itely:2502 (context id)
+#. input/lsr/ancient-notation-template----modern-transcription-of-gregorian-music.ly:37 (variable)
+msgid "chant"
+msgstr ""
+
+#. Documentation/user/ancient.itely:2405 (variable)
+#. Documentation/user/ancient.itely:2445 (variable)
+#. input/lsr/ancient-notation-template----modern-transcription-of-gregorian-music.ly:44 (variable)
+msgid "verba"
+msgstr ""
+
+#. Documentation/user/ancient.itely:2487 (variable)
+msgid "spiritus"
+msgstr ""
+
+#. Documentation/user/ancient.itely:2495 (variable)
+msgid "spirLyr"
+msgstr ""
+
+#. @node in Documentation/user/ancient.itely
+#. @section in Documentation/user/ancient.itely
+#. @node in Documentation/fr/user/ancient.itely
+#. @section in Documentation/fr/user/ancient.itely
+#. @node in Documentation/es/user/ancient.itely
+#. @section in Documentation/es/user/ancient.itely
+#. @node in Documentation/de/user/ancient.itely
 #. @section in Documentation/de/user/ancient.itely
 msgid "Ancient notation"
 msgstr ""
@@ -7297,11 +8177,11 @@ msgstr ""
 msgid "Further reading"
 msgstr ""
 
-#. Documentation/user/input.itely:494 (comment)
+#. Documentation/user/input.itely:525 (comment)
 msgid "not printed"
 msgstr ""
 
-#. Documentation/user/input.itely:911 (variable)
+#. Documentation/user/input.itely:957 (variable)
 msgid "allLyrics"
 msgstr ""
 
@@ -7637,46 +8517,48 @@ msgstr ""
 #. @subsection in Documentation/user/input.itely
 #. @node in Documentation/es/user/input.itely
 #. @subsection in Documentation/es/user/input.itely
+#. @node in Documentation/de/user/input.itely
+#. @subsection in Documentation/de/user/input.itely
 msgid "Percussion in MIDI"
 msgstr ""
 
-#. Documentation/user/spacing.itely:872 (comment)
+#. Documentation/user/spacing.itely:864 (comment)
 msgid "this does nothing"
 msgstr ""
 
-#. Documentation/user/spacing.itely:873 (comment)
+#. Documentation/user/spacing.itely:865 (comment)
 msgid "a break here would work"
 msgstr ""
 
-#. Documentation/user/spacing.itely:874 (comment)
+#. Documentation/user/spacing.itely:866 (comment)
 msgid "as does this break"
 msgstr ""
 
-#. Documentation/user/spacing.itely:886 (comment)
+#. Documentation/user/spacing.itely:878 (comment)
 msgid "now the break is allowed"
 msgstr ""
 
-#. Documentation/user/spacing.itely:1719 (comment)
+#. Documentation/user/spacing.itely:1757 (comment)
 msgid "this time the text will be closer to the staff"
 msgstr ""
 
-#. Documentation/user/spacing.itely:1721 (comment)
+#. Documentation/user/spacing.itely:1759 (comment)
 msgid "by setting outside-staff-priority to a non-number,"
 msgstr ""
 
-#. Documentation/user/spacing.itely:1722 (comment)
+#. Documentation/user/spacing.itely:1760 (comment)
 msgid "we disable the automatic collision avoidance"
 msgstr ""
 
-#. Documentation/user/spacing.itely:1725 (comment)
+#. Documentation/user/spacing.itely:1763 (comment)
 msgid "now they will collide"
 msgstr ""
 
-#. Documentation/user/spacing.itely:1750 (comment)
+#. Documentation/user/spacing.itely:1789 (comment)
 msgid "the markup is too close to the following note"
 msgstr ""
 
-#. Documentation/user/spacing.itely:1753 (comment)
+#. Documentation/user/spacing.itely:1793 (comment)
 msgid "setting outside-staff-horizontal-padding fixes this"
 msgstr ""
 
@@ -7728,6 +8610,8 @@ msgstr ""
 #. @unnumberedsubsubsec in Documentation/user/spacing.itely
 #. @node in Documentation/es/user/spacing.itely
 #. @unnumberedsubsubsec in Documentation/es/user/spacing.itely
+#. @node in Documentation/de/user/spacing.itely
+#. @unnumberedsubsubsec in Documentation/de/user/spacing.itely
 msgid "Vertical dimensions"
 msgstr ""
 
@@ -7735,6 +8619,8 @@ msgstr ""
 #. @unnumberedsubsubsec in Documentation/user/spacing.itely
 #. @node in Documentation/es/user/spacing.itely
 #. @unnumberedsubsubsec in Documentation/es/user/spacing.itely
+#. @node in Documentation/de/user/spacing.itely
+#. @unnumberedsubsubsec in Documentation/de/user/spacing.itely
 msgid "Horizontal dimensions"
 msgstr ""
 
@@ -7742,6 +8628,8 @@ msgstr ""
 #. @unnumberedsubsubsec in Documentation/user/spacing.itely
 #. @node in Documentation/es/user/spacing.itely
 #. @unnumberedsubsubsec in Documentation/es/user/spacing.itely
+#. @node in Documentation/de/user/spacing.itely
+#. @unnumberedsubsubsec in Documentation/de/user/spacing.itely
 msgid "Other layout variables"
 msgstr ""
 
@@ -7938,6 +8826,7 @@ msgstr ""
 #. @node in Documentation/es/user/spacing.itely
 #. @section in Documentation/es/user/spacing.itely
 #. @node in Documentation/de/user/spacing.itely
+#. @section in Documentation/de/user/spacing.itely
 msgid "Horizontal spacing"
 msgstr ""
 
@@ -8029,60 +8918,67 @@ msgstr ""
 msgid "Changing spacing"
 msgstr ""
 
-#. Documentation/user/changing-defaults.itely:2015 (comment)
+#. Documentation/user/changing-defaults.itely:1991 (comment)
 msgid "increase the length of the tie"
 msgstr ""
 
-#. Documentation/user/changing-defaults.itely:2024 (comment)
+#. Documentation/user/changing-defaults.itely:2000 (comment)
 msgid "increase the length of the rest bar"
 msgstr ""
 
-#. Documentation/user/changing-defaults.itely:2032 (comment)
+#. Documentation/user/changing-defaults.itely:2008 (comment)
 msgid "increase the length of the hairpin"
 msgstr ""
 
-#. Documentation/user/changing-defaults.itely:2060 (comment)
+#. Documentation/user/changing-defaults.itely:2036 (comment)
 msgid "default"
 msgstr ""
 
-#. Documentation/user/changing-defaults.itely:2063 (comment)
-#. Documentation/user/changing-defaults.itely:2076 (comment)
+#. Documentation/user/changing-defaults.itely:2039 (comment)
+#. Documentation/user/changing-defaults.itely:2052 (comment)
 msgid "not effective alone"
 msgstr ""
 
-#. Documentation/user/changing-defaults.itely:2067 (comment)
-#. Documentation/user/changing-defaults.itely:2080 (comment)
+#. Documentation/user/changing-defaults.itely:2043 (comment)
+#. Documentation/user/changing-defaults.itely:2056 (comment)
 msgid "effective only when both overrides are present"
 msgstr ""
 
-#. Documentation/user/changing-defaults.itely:2461 (comment)
+#. Documentation/user/changing-defaults.itely:2431 (comment)
 msgid "Remove bar line at the end of the current line"
 msgstr ""
 
-#. Documentation/user/changing-defaults.itely:2507 (comment)
+#. Documentation/user/changing-defaults.itely:2477 (comment)
 msgid "Try to remove all key signatures"
 msgstr ""
 
-#. Documentation/user/changing-defaults.itely:2926 (comment)
+#. Documentation/user/changing-defaults.itely:2897 (comment)
 msgid "move horizontally left"
 msgstr ""
 
-#. Documentation/user/changing-defaults.itely:2928 (comment)
+#. Documentation/user/changing-defaults.itely:2899 (comment)
 msgid "move vertically up"
 msgstr ""
 
-#. Documentation/user/changing-defaults.itely:2929 (comment)
+#. Documentation/user/changing-defaults.itely:2900 (comment)
 msgid "third finger"
 msgstr ""
 
-#. Documentation/user/changing-defaults.itely:2975 (comment)
+#. Documentation/user/changing-defaults.itely:2949 (comment)
+#. Documentation/user/changing-defaults.itely:2981 (comment)
+#. input/lsr/aligning-marks-with-various-notation-objects.ly:39 (comment)
 msgid "the RehearsalMark will be centered above the Clef"
 msgstr ""
 
-#. Documentation/user/changing-defaults.itely:2981 (comment)
+#. Documentation/user/changing-defaults.itely:2955 (comment)
+#. input/lsr/aligning-marks-with-various-notation-objects.ly:46 (comment)
 msgid "the RehearsalMark will be centered above the TimeSignature"
 msgstr ""
 
+#. Documentation/user/changing-defaults.itely:2975 (comment)
+msgid "the RehearsalMark will be centered above the Key Signature"
+msgstr ""
+
 #. Documentation/user/changing-defaults.itely:2995 (comment)
 msgid "The RehearsalMark will be centered above the KeySignature"
 msgstr ""
@@ -8107,7 +9003,7 @@ msgstr ""
 msgid "and then shifted left by 2 staff-spaces"
 msgstr ""
 
-#. Documentation/user/changing-defaults.itely:3075 (variable)
+#. Documentation/user/changing-defaults.itely:3074 (variable)
 msgid "XinO"
 msgstr ""
 
@@ -8135,6 +9031,8 @@ msgstr ""
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8144,6 +9042,8 @@ msgstr ""
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8153,6 +9053,8 @@ msgstr ""
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8162,6 +9064,8 @@ msgstr ""
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8215,6 +9119,8 @@ msgstr ""
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @section in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @section in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @section in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8257,6 +9163,8 @@ msgstr ""
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @subsection in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @subsection in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8266,6 +9174,8 @@ msgstr ""
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @section in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @section in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @section in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8275,6 +9185,8 @@ msgstr ""
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @subsection in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @subsection in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8304,7 +9216,7 @@ msgid "The override command"
 msgstr ""
 
 #. @subsection in Documentation/user/changing-defaults.itely
-#. @section in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
 #. @subsection in Documentation/es/user/changing-defaults.itely
 #. @subsection in Documentation/de/user/changing-defaults.itely
 msgid "The @code{\\override} command"
@@ -8340,6 +9252,8 @@ msgstr ""
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @section in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @section in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @section in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8349,6 +9263,8 @@ msgstr ""
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @subsection in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @subsection in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8358,6 +9274,8 @@ msgstr ""
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @subsection in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @subsection in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8367,6 +9285,8 @@ msgstr ""
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @subsection in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @subsection in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8376,13 +9296,19 @@ msgstr ""
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @subsection in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @subsection in Documentation/es/user/changing-defaults.itely
+#. @node in Documentation/de/user/changing-defaults.itely
+#. @subsection in Documentation/de/user/changing-defaults.itely
 msgid "Staff symbol properties"
 msgstr ""
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @subsection in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @subsection in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8391,24 +9317,34 @@ msgid "Spanners"
 msgstr ""
 
 #. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/de/user/changing-defaults.itely
 msgid "Using the @code{spanner-interface}"
 msgstr ""
 
 #. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/de/user/changing-defaults.itely
 msgid "Using the @code{line-spanner-interface}"
 msgstr ""
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @subsection in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @subsection in Documentation/es/user/changing-defaults.itely
+#. @node in Documentation/de/user/changing-defaults.itely
+#. @subsection in Documentation/de/user/changing-defaults.itely
 msgid "Visibility of objects"
 msgstr ""
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8418,6 +9354,8 @@ msgstr ""
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8427,6 +9365,8 @@ msgstr ""
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8436,6 +9376,8 @@ msgstr ""
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8445,6 +9387,8 @@ msgstr ""
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8454,6 +9398,8 @@ msgstr ""
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @subsection in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @subsection in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8463,6 +9409,8 @@ msgstr ""
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @subsection in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @subsection in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8472,20 +9420,30 @@ msgstr ""
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
+#. @node in Documentation/de/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/de/user/changing-defaults.itely
 msgid "Rotating layout objects"
 msgstr ""
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
+#. @node in Documentation/de/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/de/user/changing-defaults.itely
 msgid "Rotating markup"
 msgstr ""
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @section in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @section in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @section in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8495,6 +9453,8 @@ msgstr ""
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @subsection in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @subsection in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8504,40 +9464,58 @@ msgstr ""
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
+#. @node in Documentation/de/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/de/user/changing-defaults.itely
 msgid "Setting @code{X-offset} and @code{Y-offset} directly"
 msgstr ""
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
+#. @node in Documentation/de/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/de/user/changing-defaults.itely
 msgid "Using the @code{side-position-interface}"
 msgstr ""
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
+#. @node in Documentation/de/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/de/user/changing-defaults.itely
 msgid "Using the @code{self-alignment-interface}"
 msgstr ""
 
 #. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/de/user/changing-defaults.itely
 msgid "Using the @code{aligned-on-parent} procedures"
 msgstr ""
 
 #. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/de/user/changing-defaults.itely
 msgid "Using the @code{centered-on-parent} procedures"
 msgstr ""
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
-msgid "Using the @code{break-aligned-interface}"
+msgid "Using the @code{break-alignable-interface}"
 msgstr ""
 
 #. @node in Documentation/user/changing-defaults.itely
@@ -8553,6 +9531,8 @@ msgstr ""
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @subsection in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @subsection in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8562,6 +9542,8 @@ msgstr ""
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @subsection in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @subsection in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @subsection in Documentation/es/user/changing-defaults.itely
 #. @node in Documentation/de/user/changing-defaults.itely
@@ -8571,8 +9553,12 @@ msgstr ""
 
 #. @node in Documentation/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/user/changing-defaults.itely
+#. @node in Documentation/fr/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/fr/user/changing-defaults.itely
 #. @node in Documentation/es/user/changing-defaults.itely
 #. @unnumberedsubsubsec in Documentation/es/user/changing-defaults.itely
+#. @node in Documentation/de/user/changing-defaults.itely
+#. @unnumberedsubsubsec in Documentation/de/user/changing-defaults.itely
 msgid "Modifying ties and slurs"
 msgstr ""
 
@@ -8897,20 +9883,20 @@ msgid "Using Scheme code instead of \\tweak"
 msgstr ""
 
 #. @section in Documentation/user/programming-interface.itely
-#. @subsection in Documentation/fr/user/changing-defaults.itely
+#. @section in Documentation/fr/user/programming-interface.itely
 #. @section in Documentation/es/user/programming-interface.itely
-#. @subsection in Documentation/de/user/programming-interface.itely
+#. @section in Documentation/de/user/programming-interface.itely
 msgid "Using Scheme code instead of @code{\\tweak}"
 msgstr ""
 
 #. @node in Documentation/user/programming-interface.itely
 #. @section in Documentation/user/programming-interface.itely
-#. @node in Documentation/fr/user/changing-defaults.itely
-#. @subsection in Documentation/fr/user/changing-defaults.itely
+#. @node in Documentation/fr/user/programming-interface.itely
+#. @section in Documentation/fr/user/programming-interface.itely
 #. @node in Documentation/es/user/programming-interface.itely
 #. @section in Documentation/es/user/programming-interface.itely
 #. @node in Documentation/de/user/programming-interface.itely
-#. @subsection in Documentation/de/user/programming-interface.itely
+#. @section in Documentation/de/user/programming-interface.itely
 msgid "Difficult tweaks"
 msgstr ""
 
@@ -8949,15 +9935,23 @@ msgstr ""
 
 #. @node in Documentation/user/notation-appendices.itely
 #. @appendixsec in Documentation/user/notation-appendices.itely
+#. @node in Documentation/fr/user/notation-appendices.itely
+#. @appendixsec in Documentation/fr/user/notation-appendices.itely
 #. @node in Documentation/es/user/notation-appendices.itely
 #. @appendixsec in Documentation/es/user/notation-appendices.itely
+#. @node in Documentation/de/user/notation-appendices.itely
+#. @appendixsec in Documentation/de/user/notation-appendices.itely
 msgid "Common chord modifiers"
 msgstr ""
 
 #. @node in Documentation/user/notation-appendices.itely
 #. @appendixsec in Documentation/user/notation-appendices.itely
+#. @node in Documentation/fr/user/notation-appendices.itely
+#. @appendixsec in Documentation/fr/user/notation-appendices.itely
 #. @node in Documentation/es/user/notation-appendices.itely
 #. @appendixsec in Documentation/es/user/notation-appendices.itely
+#. @node in Documentation/de/user/notation-appendices.itely
+#. @appendixsec in Documentation/de/user/notation-appendices.itely
 msgid "Predefined fretboard diagrams"
 msgstr ""
 
@@ -9053,8 +10047,12 @@ msgstr ""
 
 #. @node in Documentation/user/notation-appendices.itely
 #. @appendixsec in Documentation/user/notation-appendices.itely
+#. @node in Documentation/fr/user/notation-appendices.itely
+#. @appendixsec in Documentation/fr/user/notation-appendices.itely
 #. @node in Documentation/es/user/notation-appendices.itely
 #. @appendixsec in Documentation/es/user/notation-appendices.itely
+#. @node in Documentation/de/user/notation-appendices.itely
+#. @appendixsec in Documentation/de/user/notation-appendices.itely
 msgid "Percussion notes"
 msgstr ""
 
@@ -9114,7 +10112,7 @@ msgid "Cheat sheet"
 msgstr ""
 
 #. @top in Documentation/fr/user/lilypond-learning.tely
-msgid "GNU LilyPond --- manuel d'initiation"
+msgid "GNU LilyPond --- Manuel d'initiation"
 msgstr ""
 
 #. @subsubheading in Documentation/fr/user/macros.itexi
@@ -9148,16 +10146,9 @@ msgstr ""
 
 #. @node in Documentation/fr/user/tweaks.itely
 #. @subsection in Documentation/fr/user/tweaks.itely
-#. @node in Documentation/de/user/tweaks.itely
-#. @subsection in Documentation/de/user/tweaks.itely
 msgid "Outside staff objects"
 msgstr ""
 
-#. @node in Documentation/fr/user/tweaks.itely
-#. @section in Documentation/fr/user/tweaks.itely
-msgid "Common tweaks"
-msgstr ""
-
 #. @node in Documentation/fr/user/working.itely
 #. @subsection in Documentation/fr/user/working.itely
 #. @node in Documentation/es/user/working.itely
@@ -9168,23 +10159,15 @@ msgid "Updating old files"
 msgstr ""
 
 #. @top in Documentation/fr/user/lilypond-program.tely
-msgid "GNU LilyPond --- utilisation des programmes"
-msgstr ""
-
-#. @node in Documentation/fr/user/setup.itely
-#. @subsection in Documentation/fr/user/setup.itely
-#. @node in Documentation/de/user/setup.itely
-#. @subsection in Documentation/de/user/setup.itely
-msgid "MacOS X on the command-line"
+msgid "GNU LilyPond --- Utilisation des programmes"
 msgstr ""
 
 #. @section in Documentation/fr/user/running.itely
-#. @section in Documentation/de/user/running.itely
 msgid "Updating with @command{convert-ly}"
 msgstr ""
 
 #. @top in Documentation/fr/user/lilypond.tely
-msgid "GNU LilyPond --- manuel de notation"
+msgid "GNU LilyPond --- Manuel de notation"
 msgstr ""
 
 #. @node in Documentation/fr/user/repeats.itely
@@ -9356,7 +10339,6 @@ msgid "Baroque rhythmic notation"
 msgstr ""
 
 #. @section in Documentation/fr/user/spacing.itely
-#. @section in Documentation/de/user/spacing.itely
 msgid "Horizontal Spacing"
 msgstr ""
 
@@ -9370,7 +10352,7 @@ msgstr ""
 msgid "Constructing a tweak"
 msgstr ""
 
-#. @node in Documentation/fr/user/changing-defaults.itely
+#. @node in Documentation/fr/user/programming-interface.itely
 msgid "Using Scheme code instead of tweak"
 msgstr ""
 
@@ -9408,10 +10390,6 @@ msgstr ""
 msgid "Suggestions for writing LilyPond files"
 msgstr ""
 
-#. @rglos in Documentation/es/user/working.itely
-msgid "baritone"
-msgstr ""
-
 #. @top in Documentation/es/user/lilypond-program.tely
 msgid "GNU LilyPond: Manual de utilización del programa"
 msgstr ""
@@ -9424,19 +10402,10 @@ msgstr ""
 msgid "El tipografiador de música"
 msgstr ""
 
-#. @rglos in Documentation/es/user/pitches.itely
-msgid "semitone"
-msgstr ""
-
 #. @top in Documentation/de/user/lilypond-learning.tely
 msgid "GNU LilyPond -- Handbuch zum Lernen"
 msgstr ""
 
-#. @node in Documentation/de/user/fundamental.itely
-#. @section in Documentation/de/user/fundamental.itely
-msgid "How LilyPond files work"
-msgstr ""
-
 #. @node in Documentation/de/user/templates.itely
 #. @appendixsec in Documentation/de/user/templates.itely
 msgid "Lilypond-book templates"
@@ -9446,43 +10415,2675 @@ msgstr ""
 msgid "GNU LilyPond -- Programmbenutzung"
 msgstr ""
 
-#. @top in Documentation/de/user/lilypond.tely
-msgid "GNU LilyPond -- Das Notationsprogramm"
+#. @chapheading in Documentation/de/user/lilypond.tely
+msgid "Das Notensatzprogramm"
 msgstr ""
 
-#. @node in Documentation/de/user/staff.itely
-#. @unnumberedsubsubsec in Documentation/de/user/staff.itely
-msgid "System start delimiters"
+#. @subsubheading in Documentation/de/user/vocal.itely
+msgid "Ignorieren von Melismen"
 msgstr ""
 
 #. @node in Documentation/de/user/changing-defaults.itely
-#. @section in Documentation/de/user/changing-defaults.itely
-msgid "Common properties"
+#. @unnumberedsubsubsec in Documentation/de/user/changing-defaults.itely
+msgid "Using the @code{break-aligned-interface}"
 msgstr ""
 
-#. @node in Documentation/de/user/changing-defaults.itely
-#. @subsection in Documentation/de/user/changing-defaults.itely
-msgid "Controlling visibility of objects"
+#. @top in Documentation/ja/user/lilypond-learning.tely
+msgid "GNU LilyPond --- 学習マニュアル"
 msgstr ""
 
-#. @node in Documentation/de/user/changing-defaults.itely
-#. @subsection in Documentation/de/user/changing-defaults.itely
-msgid "Modifying ends of spanners"
+#. @top in Documentation/ja/user/lilypond-program.tely
+msgid "GNU LilyPond --- アプリケーション使用方法"
 msgstr ""
 
-#. @node in Documentation/de/user/changing-defaults.itely
-#. @section in Documentation/de/user/changing-defaults.itely
-msgid "Discussion of specific tweaks"
+#. input/lsr/accordion-discant-symbols.ly:34 (variable)
+msgid "discant"
 msgstr ""
 
-#. @node in Documentation/de/user/changing-defaults.itely
-#. @subsection in Documentation/de/user/changing-defaults.itely
-msgid "old Contexts explained"
+#. input/lsr/accordion-discant-symbols.ly:37 (variable)
+msgid "dot"
 msgstr ""
 
-#. @node in Documentation/de/user/programming-interface.itely
-#. @section in Documentation/de/user/programming-interface.itely
-msgid "TODO moved into scheme"
+#. input/lsr/accordion-discant-symbols.ly:43 (comment)
+msgid "16 voets register"
+msgstr ""
+
+#. input/lsr/accordion-discant-symbols.ly:44 (variable)
+msgid "accBasson"
+msgstr ""
+
+#. input/lsr/accordion-discant-symbols.ly:50 (comment)
+msgid "een korig 8 en 16 voets register"
+msgstr ""
+
+#. input/lsr/accordion-discant-symbols.ly:51 (variable)
+msgid "accBandon"
+msgstr ""
+
+#. input/lsr/accordion-discant-symbols.ly:59 (variable)
+msgid "accVCello"
+msgstr ""
+
+#. input/lsr/accordion-discant-symbols.ly:69 (comment)
+msgid "4-8-16 voets register"
+msgstr ""
+
+#. input/lsr/accordion-discant-symbols.ly:70 (variable)
+msgid "accHarmon"
+msgstr ""
+
+#. input/lsr/accordion-discant-symbols.ly:80 (variable)
+msgid "accTrombon"
+msgstr ""
+
+#. input/lsr/accordion-discant-symbols.ly:92 (comment)
+msgid "eenkorig 4 en 16 voets register"
+msgstr ""
+
+#. input/lsr/accordion-discant-symbols.ly:93 (variable)
+msgid "accOrgan"
+msgstr ""
+
+#. input/lsr/accordion-discant-symbols.ly:101 (variable)
+msgid "accMaster"
+msgstr ""
+
+#. input/lsr/accordion-discant-symbols.ly:115 (variable)
+msgid "accAccord"
+msgstr ""
+
+#. input/lsr/accordion-discant-symbols.ly:127 (variable)
+msgid "accMusette"
+msgstr ""
+
+#. input/lsr/accordion-discant-symbols.ly:137 (variable)
+msgid "accCeleste"
+msgstr ""
+
+#. input/lsr/accordion-discant-symbols.ly:145 (variable)
+msgid "accOboe"
+msgstr ""
+
+#. input/lsr/accordion-discant-symbols.ly:153 (variable)
+msgid "accClarin"
+msgstr ""
+
+#. input/lsr/accordion-discant-symbols.ly:159 (variable)
+msgid "accPiccolo"
+msgstr ""
+
+#. input/lsr/accordion-discant-symbols.ly:165 (variable)
+msgid "accViolin"
+msgstr ""
+
+#. input/lsr/adding-a-figured-bass-above-or-below-the-notes.ly:41 (variable)
+#. input/lsr/jazz-combo-template.ly:231 (variable)
+#. input/lsr/jazz-combo-template.ly:279 (context id)
+msgid "bass"
+msgstr ""
+
+#. input/lsr/adding-a-figured-bass-above-or-below-the-notes.ly:42 (variable)
+msgid "continuo"
+msgstr ""
+
+#. input/lsr/adding-a-figured-bass-above-or-below-the-notes.ly:53 (context id)
+#. input/lsr/adding-a-figured-bass-above-or-below-the-notes.ly:54 (context id)
+msgid "bassStaff"
+msgstr ""
+
+#. input/lsr/adding-an-extra-staff-at-a-line-break.ly:52 (comment)
+msgid "The next line is not needed in 2.11.x or later:"
+msgstr ""
+
+#. input/lsr/adding-drum-parts.ly:46 (variable)
+msgid "drh"
+msgstr ""
+
+#. input/lsr/adding-drum-parts.ly:47 (variable)
+msgid "drl"
+msgstr ""
+
+#. input/lsr/adding-drum-parts.ly:48 (variable)
+msgid "timb"
+msgstr ""
+
+#. input/lsr/adding-fingerings-to-tablatures.ly:25 (variable)
+msgid "threeTwo"
+msgstr ""
+
+#. input/lsr/adding-fingerings-to-tablatures.ly:32 (variable)
+msgid "threeFour"
+msgstr ""
+
+#. input/lsr/adding-the-current-date-to-a-score.ly:29 (comment)
+msgid "first, define a variable to hold the formatted date:"
+msgstr ""
+
+#. input/lsr/adding-the-current-date-to-a-score.ly:30 (variable)
+msgid "date"
+msgstr ""
+
+#. input/lsr/adding-the-current-date-to-a-score.ly:30 (comment)
+msgid "d-%m-%Y\\\" (localtime (current-time)))"
+msgstr ""
+
+#. input/lsr/adding-the-current-date-to-a-score.ly:32 (comment)
+msgid "use it in the title block:"
+msgstr ""
+
+#. input/lsr/adding-the-current-date-to-a-score.ly:43 (comment)
+msgid "and use it in a \\markup block:"
+msgstr ""
+
+#. input/lsr/additional-voices-to-avoid-collisions.ly:27 (variable)
+msgid "voiceFive"
+msgstr ""
+
+#. input/lsr/adjusting-lyrics-vertical-spacing.ly:30 (comment)
+msgid "Default layout:"
+msgstr ""
+
+#. input/lsr/adjusting-lyrics-vertical-spacing.ly:39 (comment)
+msgid "Reducing the minimum space below the staff and above the lyrics:"
+msgstr ""
+
+#. input/lsr/aligning-marks-with-various-notation-objects.ly:54 (comment)
+msgid "the RehearsalMark will be centered above the KeySignature"
+msgstr ""
+
+#. input/lsr/aligning-marks-with-various-notation-objects.ly:65 (comment)
+#. input/lsr/aligning-marks-with-various-notation-objects.ly:77 (comment)
+msgid ""
+"the RehearsalMark will be aligned with the left edge of the KeySignature"
+msgstr ""
+
+#. input/lsr/aligning-marks-with-various-notation-objects.ly:71 (comment)
+msgid ""
+"the RehearsalMark will be aligned with the right edge of the KeySignature"
+msgstr ""
+
+#. input/lsr/aligning-marks-with-various-notation-objects.ly:78 (comment)
+msgid "and then shifted right by one unit."
+msgstr ""
+
+#. input/lsr/ancient-fonts.ly:33 (variable)
+#. input/lsr/ancient-fonts.ly:33 (context id)
+msgid "upperStaff"
+msgstr ""
+
+#. input/lsr/ancient-fonts.ly:45 (comment)
+msgid "\\break % 1 (8*1)"
+msgstr ""
+
+#. input/lsr/ancient-fonts.ly:56 (comment)
+msgid "\\break %2 (8*1)"
+msgstr ""
+
+#. input/lsr/ancient-fonts.ly:68 (comment)
+msgid "\\break % 3 (8*1)"
+msgstr ""
+
+#. input/lsr/ancient-fonts.ly:83 (comment)
+msgid "\\break % 4 (8*1)"
+msgstr ""
+
+#. input/lsr/ancient-fonts.ly:92 (comment)
+#. input/lsr/ancient-fonts.ly:154 (comment)
+msgid "\\break % 5 (8*1)"
+msgstr ""
+
+#. input/lsr/ancient-fonts.ly:106 (comment)
+#. input/lsr/ancient-fonts.ly:169 (comment)
+msgid "\\break % 6 (8*1)"
+msgstr ""
+
+#. input/lsr/ancient-fonts.ly:115 (comment)
+#. input/lsr/ancient-fonts.ly:179 (comment)
+msgid "\\break % 7 (8*1)"
+msgstr ""
+
+#. input/lsr/ancient-fonts.ly:122 (comment)
+msgid "\\break % 8 (8*1)"
+msgstr ""
+
+#. input/lsr/ancient-fonts.ly:125 (comment)
+msgid "\\break % 12 (32*1)"
+msgstr ""
+
+#. input/lsr/ancient-fonts.ly:130 (variable)
+#. input/lsr/ancient-fonts.ly:130 (context id)
+msgid "lowerStaff"
+msgstr ""
+
+#. input/lsr/ancient-fonts.ly:140 (comment)
+msgid "\\break % 2 (16*1)"
+msgstr ""
+
+#. input/lsr/ancient-fonts.ly:145 (comment)
+msgid "\\break % 4 (16*1)"
+msgstr ""
+
+#. input/lsr/ancient-fonts.ly:184 (comment)
+msgid "\\break % 9 (16*1)"
+msgstr ""
+
+#. input/lsr/ancient-fonts.ly:186 (comment)
+msgid "lig"
+msgstr ""
+
+#. input/lsr/ancient-fonts.ly:190 (comment)
+msgid "\\break % 11 (16*1)"
+msgstr ""
+
+#. input/lsr/ancient-fonts.ly:201 (comment)
+msgid "\\break % 12 (8*1)"
+msgstr ""
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:62 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:109 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:128 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:145 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:164 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:179 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:200 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:213 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:232 (comment)
+#. input/lsr/incipit.ly:19 (variable)
+#. input/lsr/incipit.ly:189 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:212 (comment)
+msgid "incipit"
+msgstr ""
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:64 (comment)
+msgid "tight spacing"
+msgstr ""
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:71 (comment)
+msgid "turn off bar lines"
+msgstr ""
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:75 (comment)
+msgid "need this extra \\skip such that clef change comes"
+msgstr ""
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:76 (comment)
+msgid "after bar line"
+msgstr ""
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:80 (comment)
+msgid "CHECK: no effect?"
+msgstr ""
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:81 (comment)
+msgid "turn bar lines on again"
+msgstr ""
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:89 (comment)
+msgid "FIXME: setting printKeyCancellation back to #t must not"
+msgstr ""
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:90 (comment)
+msgid "occur in the first bar after the incipit.  Dto. for forceClef."
+msgstr ""
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:91 (comment)
+msgid "Therefore, we need an extra \\skip."
+msgstr ""
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:96 (comment)
+#. input/lsr/incipit.ly:62 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:37 (comment)
+msgid "the actual music"
+msgstr ""
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:98 (comment)
+#. input/lsr/incipit.ly:65 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:39 (comment)
+msgid "let finis bar go through all staves"
+msgstr ""
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:101 (comment)
+#. input/lsr/incipit.ly:68 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:42 (comment)
+msgid "finis bar"
+msgstr ""
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:105 (variable)
+#. input/lsr/incipit.ly:85 (variable)
+#. input/lsr/incipit.ly:220 (context id)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:47 (variable)
+msgid "discantusNotes"
+msgstr ""
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:111 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:148 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:154 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:168 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:182 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:184 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:193 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:204 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:216 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:73 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:83 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:96 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:103 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:138 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:163 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:187 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:189 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:214 (comment)
+msgid "two bars"
+msgstr ""
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:112 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:215 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:139 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:213 (comment)
+msgid "eight bars"
+msgstr ""
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:113 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:147 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:150 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:183 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:185 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:186 (comment)
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:217 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:162 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:188 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:190 (comment)
+msgid "one bar"
+msgstr ""
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:127 (variable)
+#. input/lsr/incipit.ly:99 (variable)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:60 (variable)
+msgid "discantusLyrics"
+msgstr ""
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:141 (variable)
+#. input/lsr/incipit.ly:122 (variable)
+#. input/lsr/incipit.ly:227 (context id)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:70 (variable)
+msgid "altusNotes"
+msgstr ""
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:149 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:164 (comment)
+msgid "seven bars"
+msgstr ""
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:163 (variable)
+#. input/lsr/incipit.ly:136 (variable)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:82 (variable)
+msgid "altusLyrics"
+msgstr ""
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:175 (variable)
+#. input/lsr/incipit.ly:160 (variable)
+#. input/lsr/incipit.ly:234 (context id)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:90 (variable)
+msgid "tenorNotes"
+msgstr ""
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:181 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:186 (comment)
+msgid "four bars"
+msgstr ""
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:199 (variable)
+#. input/lsr/incipit.ly:175 (variable)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:102 (variable)
+msgid "tenorLyrics"
+msgstr ""
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:209 (variable)
+#. input/lsr/incipit.ly:197 (variable)
+#. input/lsr/incipit.ly:241 (context id)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:108 (variable)
+msgid "bassusNotes"
+msgstr ""
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:231 (variable)
+#. input/lsr/incipit.ly:211 (variable)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:121 (variable)
+msgid "bassusLyrics"
+msgstr ""
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:242 (context id)
+#. input/lsr/incipit.ly:219 (context id)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:229 (context id)
+msgid "choirStaff"
+msgstr ""
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:264 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:266 (comment)
+msgid "no bars in staves"
+msgstr ""
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:267 (comment)
+msgid "incipit should not start with a start delimiter"
+msgstr ""
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:273 (comment)
+#. input/lsr/incipit.ly:264 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:277 (comment)
+msgid "no slurs"
+msgstr ""
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:276 (comment)
+#. input/lsr/incipit.ly:266 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:280 (comment)
+msgid "Comment in the below \\\"\\remove\\\" command to allow line"
+msgstr ""
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:277 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:281 (comment)
+msgid "breaking also at those barlines where a note overlaps"
+msgstr ""
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:278 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:282 (comment)
+msgid "into the next bar.  The command is commented out in this"
+msgstr ""
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:279 (comment)
+#. input/lsr/incipit.ly:269 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:283 (comment)
+msgid "short example score, but especially for large scores, you"
+msgstr ""
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:280 (comment)
+#. input/lsr/incipit.ly:270 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:284 (comment)
+msgid "will typically yield better line breaking and thus improve"
+msgstr ""
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:281 (comment)
+#. input/lsr/incipit.ly:271 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:285 (comment)
+msgid "overall spacing if you comment in the following command."
+msgstr ""
+
+#. input/lsr/ancient-notation-template----modern-transcription-of-mensural-music.ly:282 (comment)
+#. input/lsr/incipit.ly:272 (comment)
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:286 (comment)
+msgid "\\remove \\\"Forbid_line_break_engraver\\\""
+msgstr ""
+
+#. input/lsr/applying-note-head-styles-depending-on-the-step-of-the-scale.ly:73 (variable)
+#. input/lsr/clusters.ly:27 (variable)
+msgid "fragment"
+msgstr ""
+
+#. input/lsr/automatic-beams-two-per-two-in-4-4-or-2-2-time-signature.ly:41 (comment)
+msgid "Automatic beams two per two in 4/4 or 2/2 time signature"
+msgstr ""
+
+#. input/lsr/automatic-beams-two-per-two-in-4-4-or-2-2-time-signature.ly:42 (comment)
+msgid "_____"
+msgstr ""
+
+#. input/lsr/automatic-beams-two-per-two-in-4-4-or-2-2-time-signature.ly:43 (comment)
+msgid "Default     | | | |"
+msgstr ""
+
+#. input/lsr/automatic-beams-two-per-two-in-4-4-or-2-2-time-signature.ly:44 (comment)
+msgid "_   _"
+msgstr ""
+
+#. input/lsr/automatic-beams-two-per-two-in-4-4-or-2-2-time-signature.ly:45 (comment)
+msgid "Required    | | | |"
+msgstr ""
+
+#. input/lsr/automatic-beams-two-per-two-in-4-4-or-2-2-time-signature.ly:47 (comment)
+msgid "macro for beamed two per two in 2/2 and 4/4 time signature"
+msgstr ""
+
+#. input/lsr/automatic-beams-two-per-two-in-4-4-or-2-2-time-signature.ly:48 (variable)
+msgid "qBeam"
+msgstr ""
+
+#. input/lsr/automatic-beams-two-per-two-in-4-4-or-2-2-time-signature.ly:63 (comment)
+msgid "Use the macro"
+msgstr ""
+
+#. input/lsr/avoiding-collisions-with-chord-fingerings.ly:30 (comment)
+msgid "Corrected to avoid collisions"
+msgstr ""
+
+#. input/lsr/beam-endings-in-score-context.ly:28 (comment)
+msgid "Set default beaming for all staves"
+msgstr ""
+
+#. input/lsr/beam-endings-in-score-context.ly:36 (comment)
+msgid "Modify beaming for just this staff"
+msgstr ""
+
+#. input/lsr/beam-endings-in-score-context.ly:42 (comment)
+msgid "Inherit beaming from Score context"
+msgstr ""
+
+#. input/lsr/beam-endings-in-score-context.ly:48 (comment)
+msgid "Modify beaming for this voice only"
+msgstr ""
+
+#. input/lsr/beam-grouping-in-7-8-time.ly:40 (comment)
+msgid "rhythm 2-3-2"
+msgstr ""
+
+#. input/lsr/book-parts.ly:21 (comment)
+msgid "book paper, which is inherited by all children bookparts"
+msgstr ""
+
+#. input/lsr/book-parts.ly:24 (comment)
+msgid "Page footer: add a different part-tagline at part last page"
+msgstr ""
+
+#. input/lsr/book-parts.ly:28 (comment)
+msgid "Copyright header field only on book first page."
+msgstr ""
+
+#. input/lsr/book-parts.ly:32 (comment)
+msgid "Part tagline header field only on each part last page."
+msgstr ""
+
+#. input/lsr/book-parts.ly:36 (comment)
+msgid "Tagline header field only on book last page."
+msgstr ""
+
+#. input/lsr/book-parts.ly:43 (comment)
+msgid "book header, which is inherited by the first bookpart"
+msgstr ""
+
+#. input/lsr/book-parts.ly:52 (comment)
+msgid "a different page breaking function may be used on each part"
+msgstr ""
+
+#. input/lsr/breathing-signs.ly:19 (comment)
+msgid "this bar contains no \\breathe"
+msgstr ""
+
+#. input/lsr/breathing-signs.ly:21 (comment)
+msgid "Modern notation:"
+msgstr ""
+
+#. input/lsr/breathing-signs.ly:22 (comment)
+msgid "by default, \\breathe uses the rcomma, just as if saying:"
+msgstr ""
+
+#. input/lsr/breathing-signs.ly:23 (comment)
+msgid ""
+"\\override BreathingSign #'text = #(make-musicglyph-markup \\\"scripts.rcomma"
+"\\\")"
+msgstr ""
+
+#. input/lsr/breathing-signs.ly:26 (comment)
+msgid "rvarcomma and lvarcomma are variations of the default rcomma and lcomma"
+msgstr ""
+
+#. input/lsr/breathing-signs.ly:27 (comment)
+msgid "N.B.: must use Staff context here, since we start a Voice below"
+msgstr ""
+
+#. input/lsr/breathing-signs.ly:31 (comment)
+msgid "vee"
+msgstr ""
+
+#. input/lsr/caesura-railtracks-with-fermata.ly:28 (comment)
+msgid "construct the symbol"
+msgstr ""
+
+#. input/lsr/caesura-railtracks-with-fermata.ly:37 (comment)
+msgid "set the breathe mark back to normal"
+msgstr ""
+
+#. input/lsr/center-text-below-hairpin-dynamics.ly:27 (variable)
+msgid "hairpinWithCenteredText"
+msgstr ""
+
+#. input/lsr/center-text-below-hairpin-dynamics.ly:39 (variable)
+msgid "hairpinMolto"
+msgstr ""
+
+#. input/lsr/center-text-below-hairpin-dynamics.ly:40 (variable)
+msgid "hairpinMore"
+msgstr ""
+
+#. input/lsr/changing--flageolet-mark-size.ly:23 (variable)
+msgid "smallFlageolet"
+msgstr ""
+
+#. input/lsr/changing-the-chord-names-to-german-or-semi-german-notation.ly:34 (comment)
+msgid "The following is only here to print the names of the"
+msgstr ""
+
+#. input/lsr/changing-the-chord-names-to-german-or-semi-german-notation.ly:35 (comment)
+msgid "chords styles; it can be removed if you do not need to"
+msgstr ""
+
+#. input/lsr/changing-the-chord-names-to-german-or-semi-german-notation.ly:36 (comment)
+msgid "print them."
+msgstr ""
+
+#. input/lsr/changing-the-default-text-font-family.ly:17 (comment)
+msgid "change for other default global staff size. "
+msgstr ""
+
+#. input/lsr/changing-the-default-text-font-family.ly:19 (comment)
+#. input/lsr/engravers-one-by-one.ly:191 (comment)
+#. input/lsr/score-for-diatonic-accordion.ly:110 (comment)
+msgid "{"
+msgstr ""
+
+#. input/lsr/changing-the-default-text-font-family.ly:23 (comment)
+#. input/lsr/engravers-one-by-one.ly:194 (comment)
+#. input/lsr/score-for-diatonic-accordion.ly:111 (comment)
+#. input/lsr/score-for-diatonic-accordion.ly:233 (comment)
+#. input/lsr/string-quartet-template-with-separate-parts.ly:177 (comment)
+msgid "}"
+msgstr ""
+
+#. input/lsr/changing-the-time-signature-without-affecting-the-beaming.ly:35 (comment)
+msgid "Change time signature symbol but keep 3/4 beaming"
+msgstr ""
+
+#. input/lsr/changing-the-time-signature-without-affecting-the-beaming.ly:36 (comment)
+msgid "due to unchanged underlying time signature"
+msgstr ""
+
+#. input/lsr/changing-the-time-signature-without-affecting-the-beaming.ly:41 (comment)
+msgid "Lose 3/4 beaming now \\time has been changed"
+msgstr ""
+
+#. input/lsr/chant-or-psalms-notation.ly:23 (variable)
+msgid "stemOn"
+msgstr ""
+
+#. input/lsr/chant-or-psalms-notation.ly:24 (variable)
+msgid "stemOff"
+msgstr ""
+
+#. input/lsr/chord-name-exceptions.ly:24 (comment)
+msgid "modify maj9 and 6(add9)"
+msgstr ""
+
+#. input/lsr/chord-name-exceptions.ly:25 (comment)
+msgid "Exception music is chords with markups"
+msgstr ""
+
+#. input/lsr/chord-name-exceptions.ly:26 (variable)
+msgid "chExceptionMusic"
+msgstr ""
+
+#. input/lsr/chord-name-exceptions.ly:31 (comment)
+msgid "Convert music to list and prepend to existing exceptions."
+msgstr ""
+
+#. input/lsr/chord-name-exceptions.ly:32 (variable)
+msgid "chExceptions"
+msgstr ""
+
+#. input/lsr/chord-name-exceptions.ly:36 (variable)
+msgid "theMusic"
+msgstr ""
+
+#. input/lsr/clip-systems.ly:37 (variable)
+msgid "origScore"
+msgstr ""
+
+#. input/lsr/clip-systems.ly:55 (comment)
+msgid "Each clip-region is a (START . END) pair"
+msgstr ""
+
+#. input/lsr/clip-systems.ly:56 (comment)
+msgid "where both are rhythmic-locations."
+msgstr ""
+
+#. input/lsr/clip-systems.ly:58 (comment)
+msgid "(make-rhythmic-locations BAR-NUMBER NUM DEN)"
+msgstr ""
+
+#. input/lsr/clip-systems.ly:59 (comment)
+msgid "means NUM/DEN whole-notes into bar numbered BAR-NUMBER"
+msgstr ""
+
+#. input/lsr/coloring-notes-depending-on-their-pitch.ly:13 (comment)
+msgid "Association list of pitches to colors."
+msgstr ""
+
+#. input/lsr/coloring-notes-depending-on-their-pitch.ly:34 (comment)
+msgid "Compare pitch and alteration (not octave)."
+msgstr ""
+
+#. input/lsr/combining-dynamics-with-markup-texts.ly:24 (variable)
+msgid "piuF"
+msgstr ""
+
+#. input/lsr/combining-two-parts-on-the-same-staff.ly:51 (variable)
+msgid "musicUp"
+msgstr ""
+
+#. input/lsr/combining-two-parts-on-the-same-staff.ly:58 (variable)
+msgid "musicDown"
+msgstr ""
+
+#. input/lsr/creating-a-sequence-of-notes-on-various-pitches.ly:53 (variable)
+#. input/lsr/jazz-combo-template.ly:275 (context id)
+msgid "rhythm"
+msgstr ""
+
+#. input/lsr/creating-real-parenthesized-dynamics.ly:45 (variable)
+msgid "parenF"
+msgstr ""
+
+#. input/lsr/creating-simultaneous-rehearsal-marks.ly:40 (comment)
+msgid "the hidden measure and bar line"
+msgstr ""
+
+#. input/lsr/customizing-fretboard-fret-diagrams.ly:40 (comment)
+#. input/lsr/customizing-markup-fret-diagrams.ly:43 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:23 (comment)
+msgid "Set global properties of fret diagram"
+msgstr ""
+
+#. input/lsr/customizing-markup-fret-diagrams.ly:41 (context id)
+#. input/lsr/formatting-lyrics-syllables.ly:21 (variable)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:21 (context id)
+#. input/lsr/piano-template-with-melody-and-lyrics.ly:62 (context id)
+msgid "mel"
+msgstr ""
+
+#. input/lsr/customizing-markup-fret-diagrams.ly:50 (comment)
+msgid "C major for guitar, no barre, using defaults"
+msgstr ""
+
+#. input/lsr/customizing-markup-fret-diagrams.ly:51 (comment)
+#. input/lsr/customizing-markup-fret-diagrams.ly:101 (comment)
+msgid "terse style"
+msgstr ""
+
+#. input/lsr/customizing-markup-fret-diagrams.ly:54 (comment)
+#. input/lsr/customizing-markup-fret-diagrams.ly:76 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:52 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:73 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:152 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:173 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:251 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:272 (comment)
+msgid "C major for guitar, barred on third fret"
+msgstr ""
+
+#. input/lsr/customizing-markup-fret-diagrams.ly:55 (comment)
+#. input/lsr/customizing-markup-fret-diagrams.ly:77 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:53 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:75 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:102 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:153 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:175 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:202 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:252 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:274 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:301 (comment)
+msgid "verbose style"
+msgstr ""
+
+#. input/lsr/customizing-markup-fret-diagrams.ly:56 (comment)
+msgid "size 1.0"
+msgstr ""
+
+#. input/lsr/customizing-markup-fret-diagrams.ly:57 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:54 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:154 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:253 (comment)
+msgid "roman fret label, finger labels below string, straight barre"
+msgstr ""
+
+#. input/lsr/customizing-markup-fret-diagrams.ly:59 (comment)
+msgid "standard size"
+msgstr ""
+
+#. input/lsr/customizing-markup-fret-diagrams.ly:78 (comment)
+msgid "landscape orientation, arabic numbers, M for mute string"
+msgstr ""
+
+#. input/lsr/customizing-markup-fret-diagrams.ly:79 (comment)
+msgid "no barre, fret label down or left, small mute label font"
+msgstr ""
+
+#. input/lsr/customizing-markup-fret-diagrams.ly:100 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:124 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:224 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:323 (comment)
+msgid "simple D chord"
+msgstr ""
+
+#. input/lsr/customizing-markup-fret-diagrams.ly:102 (comment)
+msgid "larger dots, centered dots, fewer frets"
+msgstr ""
+
+#. input/lsr/customizing-markup-fret-diagrams.ly:103 (comment)
+msgid "label below string"
+msgstr ""
+
+#. input/lsr/defining-predefined-fretboards-for-other-instruments.ly:58 (comment)
+msgid "add FretBoards for the Cuatro"
+msgstr ""
+
+#. input/lsr/defining-predefined-fretboards-for-other-instruments.ly:59 (comment)
+msgid "Note: This section could be put into a separate file"
+msgstr ""
+
+#. input/lsr/defining-predefined-fretboards-for-other-instruments.ly:60 (comment)
+msgid "predefined-cuatro-fretboards.ly"
+msgstr ""
+
+#. input/lsr/defining-predefined-fretboards-for-other-instruments.ly:61 (comment)
+msgid "and \\included into each of your compositions"
+msgstr ""
+
+#. input/lsr/defining-predefined-fretboards-for-other-instruments.ly:63 (variable)
+msgid "cuatroTuning"
+msgstr ""
+
+#. input/lsr/defining-predefined-fretboards-for-other-instruments.ly:65 (variable)
+msgid "dSix"
+msgstr ""
+
+#. input/lsr/defining-predefined-fretboards-for-other-instruments.ly:66 (variable)
+msgid "dMajor"
+msgstr ""
+
+#. input/lsr/defining-predefined-fretboards-for-other-instruments.ly:67 (variable)
+msgid "aMajSeven"
+msgstr ""
+
+#. input/lsr/defining-predefined-fretboards-for-other-instruments.ly:68 (variable)
+msgid "dMajSeven"
+msgstr ""
+
+#. input/lsr/defining-predefined-fretboards-for-other-instruments.ly:69 (variable)
+msgid "gMajor"
+msgstr ""
+
+#. input/lsr/defining-predefined-fretboards-for-other-instruments.ly:87 (comment)
+msgid "end of potential include file /predefined-cuatro-fretboards.ly"
+msgstr ""
+
+#. input/lsr/defining-predefined-fretboards-for-other-instruments.ly:92 (variable)
+msgid "primerosNames"
+msgstr ""
+
+#. input/lsr/defining-predefined-fretboards-for-other-instruments.ly:96 (variable)
+msgid "primeros"
+msgstr ""
+
+#. input/lsr/demo-midiinstruments.ly:23 (variable)
+msgid "baseMelody"
+msgstr ""
+
+#. input/lsr/display-bracket-with-only-one-staff-in-a-system.ly:37 (comment)
+msgid "Must be lower than the actual number of staff lines"
+msgstr ""
+
+#. input/lsr/displaying-complex-chords.ly:16 (variable)
+msgid "fixA"
+msgstr ""
+
+#. input/lsr/displaying-complex-chords.ly:20 (variable)
+msgid "fixB"
+msgstr ""
+
+#. input/lsr/double-glissando.ly:20 (comment)
+msgid "new voice ( = \\voiceOne), hidden"
+msgstr ""
+
+#. input/lsr/double-glissando.ly:22 (comment)
+msgid "attach glissando to note heads"
+msgstr ""
+
+#. input/lsr/double-glissando.ly:27 (comment)
+msgid "original voice with chords rearranged so that"
+msgstr ""
+
+#. input/lsr/double-glissando.ly:28 (comment)
+msgid "glissando is attached to a & c"
+msgstr ""
+
+#. input/lsr/embedding-native-postscript-in-a--markup-block.ly:23 (comment)
+msgid "PostScript is a registered trademark of Adobe Systems Inc."
+msgstr ""
+
+#. input/lsr/engravers-one-by-one.ly:75 (comment)
+msgid "sample music"
+msgstr ""
+
+#. input/lsr/engravers-one-by-one.ly:76 (variable)
+msgid "topVoice"
+msgstr ""
+
+#. input/lsr/engravers-one-by-one.ly:84 (variable)
+msgid "botVoice"
+msgstr ""
+
+#. input/lsr/engravers-one-by-one.ly:92 (variable)
+msgid "hoom"
+msgstr ""
+
+#. input/lsr/engravers-one-by-one.ly:103 (variable)
+msgid "pah"
+msgstr ""
+
+#. input/lsr/engravers-one-by-one.ly:113 (comment)
+msgid "setup for Request->Element conversion. Guru-only"
+msgstr ""
+
+#. input/lsr/engravers-one-by-one.ly:116 (variable)
+#. input/lsr/engravers-one-by-one.ly:221 (variable)
+#. input/lsr/engravers-one-by-one.ly:234 (variable)
+#. input/lsr/engravers-one-by-one.ly:290 (variable)
+#. input/lsr/engravers-one-by-one.ly:304 (variable)
+msgid "MyStaff"
+msgstr ""
+
+#. input/lsr/engravers-one-by-one.ly:148 (comment)
+msgid "explicitly set instrument, so we don't get "
+msgstr ""
+
+#. input/lsr/engravers-one-by-one.ly:149 (comment)
+msgid "weird effects when doing instrument names for"
+msgstr ""
+
+#. input/lsr/engravers-one-by-one.ly:150 (comment)
+msgid "piano staves"
+msgstr ""
+
+#. input/lsr/engravers-one-by-one.ly:159 (variable)
+#. input/lsr/engravers-one-by-one.ly:248 (variable)
+#. input/lsr/engravers-one-by-one.ly:261 (variable)
+#. input/lsr/engravers-one-by-one.ly:274 (variable)
+msgid "MyVoice"
+msgstr ""
+
+#. input/lsr/engravers-one-by-one.ly:174 (comment)
+msgid "must come before all"
+msgstr ""
+
+#. input/lsr/engravers-one-by-one.ly:184 (comment)
+msgid "\\consists \\\"Rest_engraver\\\""
+msgstr ""
+
+#. input/lsr/flamenco-notation.ly:46 (comment)
+msgid "Cut here ----- Start 'flamenco.ly' "
+msgstr ""
+
+#. input/lsr/flamenco-notation.ly:48 (comment)
+msgid "Text indicators"
+msgstr ""
+
+#. input/lsr/flamenco-notation.ly:49 (variable)
+msgid "abanico"
+msgstr ""
+
+#. input/lsr/flamenco-notation.ly:50 (variable)
+msgid "rasgueaso"
+msgstr ""
+
+#. input/lsr/flamenco-notation.ly:51 (variable)
+msgid "alzapua"
+msgstr ""
+
+#. input/lsr/flamenco-notation.ly:53 (comment)
+msgid "Finger stroke symbols"
+msgstr ""
+
+#. input/lsr/flamenco-notation.ly:54 (variable)
+msgid "strokeUp"
+msgstr ""
+
+#. input/lsr/flamenco-notation.ly:64 (variable)
+msgid "strokeDown"
+msgstr ""
+
+#. input/lsr/flamenco-notation.ly:74 (comment)
+msgid "Golpe symbol"
+msgstr ""
+
+#. input/lsr/flamenco-notation.ly:75 (variable)
+msgid "golpe"
+msgstr ""
+
+#. input/lsr/flamenco-notation.ly:89 (variable)
+msgid "strokeUpGolpe"
+msgstr ""
+
+#. input/lsr/flamenco-notation.ly:90 (variable)
+msgid "iUpGolpe"
+msgstr ""
+
+#. input/lsr/flamenco-notation.ly:92 (comment)
+msgid "Strokes for all fingers"
+msgstr ""
+
+#. input/lsr/flamenco-notation.ly:93 (variable)
+msgid "pUp"
+msgstr ""
+
+#. input/lsr/flamenco-notation.ly:94 (variable)
+msgid "pDown"
+msgstr ""
+
+#. input/lsr/flamenco-notation.ly:95 (variable)
+msgid "iUp"
+msgstr ""
+
+#. input/lsr/flamenco-notation.ly:96 (variable)
+msgid "iDown"
+msgstr ""
+
+#. input/lsr/flamenco-notation.ly:97 (variable)
+msgid "mUp"
+msgstr ""
+
+#. input/lsr/flamenco-notation.ly:98 (variable)
+msgid "mDown"
+msgstr ""
+
+#. input/lsr/flamenco-notation.ly:99 (variable)
+msgid "aUp"
+msgstr ""
+
+#. input/lsr/flamenco-notation.ly:100 (variable)
+msgid "aDown"
+msgstr ""
+
+#. input/lsr/flamenco-notation.ly:101 (variable)
+msgid "xUp"
+msgstr ""
+
+#. input/lsr/flamenco-notation.ly:102 (variable)
+msgid "xDown"
+msgstr ""
+
+#. input/lsr/flamenco-notation.ly:105 (comment)
+msgid "Just handy :)"
+msgstr ""
+
+#. input/lsr/flamenco-notation.ly:106 (variable)
+msgid "tupletOff"
+msgstr ""
+
+#. input/lsr/flamenco-notation.ly:111 (variable)
+msgid "tupletsOff"
+msgstr ""
+
+#. input/lsr/flamenco-notation.ly:116 (variable)
+msgid "tupletsOn"
+msgstr ""
+
+#. input/lsr/flamenco-notation.ly:121 (variable)
+msgid "headsOff"
+msgstr ""
+
+#. input/lsr/flamenco-notation.ly:127 (variable)
+msgid "headsOn"
+msgstr ""
+
+#. input/lsr/flamenco-notation.ly:133 (comment)
+msgid "Cut here ----- End 'flamenco.ly' "
+msgstr ""
+
+#. input/lsr/flat-flags-and-beam-nibs.ly:109 (comment)
+msgid "Example 1"
+msgstr ""
+
+#. input/lsr/flat-flags-and-beam-nibs.ly:116 (comment)
+msgid "Example 2"
+msgstr ""
+
+#. input/lsr/flat-flags-and-beam-nibs.ly:123 (comment)
+msgid "Example 3"
+msgstr ""
+
+#. input/lsr/flat-flags-and-beam-nibs.ly:132 (comment)
+msgid "Example 4"
+msgstr ""
+
+#. input/lsr/flute-slap-notation.ly:18 (variable)
+msgid "slap"
+msgstr ""
+
+#. input/lsr/formatting-lyrics-syllables.ly:16 (comment)
+msgid ""
+"Tip taken from http://lists.gnu.org/archive/html/lilypond-user/2007-12/"
+"msg00215.html"
+msgstr ""
+
+#. input/lsr/fret-diagrams-explained-and-developed.ly:39 (comment)
+msgid "A chord for ukelele, with formatting defined in definition string"
+msgstr ""
+
+#. input/lsr/fret-diagrams-explained-and-developed.ly:40 (comment)
+msgid "1.2 * size, 4 strings, 4 frets, fingerings below string"
+msgstr ""
+
+#. input/lsr/fret-diagrams-explained-and-developed.ly:41 (comment)
+msgid "dot radius .35 of fret spacing, dot position 0.55 of fret spacing"
+msgstr ""
+
+#. input/lsr/fret-diagrams-explained-and-developed.ly:50 (comment)
+msgid "These chords will be in normal orientation"
+msgstr ""
+
+#. input/lsr/fret-diagrams-explained-and-developed.ly:56 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:77 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:104 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:156 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:177 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:204 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:255 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:276 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:303 (comment)
+#, python-format
+msgid "110% of default size"
+msgstr ""
+
+#. input/lsr/fret-diagrams-explained-and-developed.ly:74 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:174 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:273 (comment)
+msgid "Double barre used to test barre function"
+msgstr ""
+
+#. input/lsr/fret-diagrams-explained-and-developed.ly:101 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:201 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:300 (comment)
+msgid "C major for guitar, with capo on third fret"
+msgstr ""
+
+#. input/lsr/fret-diagrams-explained-and-developed.ly:136 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:235 (comment)
+#. input/lsr/fret-diagrams-explained-and-developed.ly:334 (comment)
+msgid "simple D chord, large top fret thickness"
+msgstr ""
+
+#. input/lsr/fret-diagrams-explained-and-developed.ly:148 (comment)
+msgid "These chords will be in landscape orientation"
+msgstr ""
+
+#. input/lsr/fret-diagrams-explained-and-developed.ly:247 (comment)
+msgid "These chords will be in opposing-landscape orientation"
+msgstr ""
+
+#. input/lsr/grid-lines--changing-their-appearance.ly:33 (comment)
+msgid "this moves them up one staff space from the default position"
+msgstr ""
+
+#. input/lsr/grid-lines--changing-their-appearance.ly:51 (comment)
+msgid "set up grids"
+msgstr ""
+
+#. input/lsr/grid-lines--changing-their-appearance.ly:53 (comment)
+msgid "set the grid interval to one quarter note"
+msgstr ""
+
+#. input/lsr/grid-lines--changing-their-appearance.ly:59 (comment)
+msgid "this moves them to the right half a staff space"
+msgstr ""
+
+#. input/lsr/grid-lines--emphasizing-rhythms-and-notes-synchronization.ly:36 (comment)
+msgid "hides staff and notes so that only the grid lines are visible"
+msgstr ""
+
+#. input/lsr/grid-lines--emphasizing-rhythms-and-notes-synchronization.ly:43 (comment)
+msgid "dummy notes to force regular note spacing"
+msgstr ""
+
+#. input/lsr/grid-lines--emphasizing-rhythms-and-notes-synchronization.ly:59 (comment)
+msgid "center grid lines horizontally below note heads"
+msgstr ""
+
+#. input/lsr/grid-lines--emphasizing-rhythms-and-notes-synchronization.ly:66 (comment)
+msgid "set line length and positioning:"
+msgstr ""
+
+#. input/lsr/grid-lines--emphasizing-rhythms-and-notes-synchronization.ly:67 (comment)
+msgid "two staff spaces above center line on hidden staff"
+msgstr ""
+
+#. input/lsr/grid-lines--emphasizing-rhythms-and-notes-synchronization.ly:68 (comment)
+msgid "to four spaces below center line on visible staff"
+msgstr ""
+
+#. input/lsr/heavily-customized-polymetric-time-signatures.ly:51 (variable)
+msgid "drum"
+msgstr ""
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:54 (comment)
+msgid "Solution 1: Using a simple markup with a particular halign value"
+msgstr ""
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:55 (comment)
+msgid ""
+"Drawback: It's a markup, not a dynamic command, so \\dynamicDown etc. will "
+"have no effect"
+msgstr ""
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:56 (variable)
+msgid "semppMarkup"
+msgstr ""
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:58 (comment)
+msgid ""
+"Solution 2: Using a dynamic script and shifting with \\once\\override ... "
+"#'X-offset = .."
+msgstr ""
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:59 (comment)
+msgid "Drawback: \\once\\override needed for every invocation"
+msgstr ""
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:60 (variable)
+msgid "semppK"
+msgstr ""
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:62 (comment)
+msgid ""
+"Solution 3: Padding the dynamic script so the center-alignment puts it to "
+"the correct position"
+msgstr ""
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:63 (comment)
+msgid ""
+"Drawback: the padding really reserves the space, nothing else can be there"
+msgstr ""
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:64 (variable)
+msgid "semppT"
+msgstr ""
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:72 (comment)
+msgid "Solution 4: Dynamic, setting the dimensions of the additional text to 0"
+msgstr ""
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:73 (comment)
+msgid ""
+"Drawback: To lilypond \\\"sempre\\\" has no extent, so it might put other "
+"stuff there => collisions"
+msgstr ""
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:74 (comment)
+msgid ""
+"Drawback: Also, there seems to be some spacing, so it's not exactly the "
+msgstr ""
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:75 (comment)
+msgid "same alignment as without the additional text"
+msgstr ""
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:76 (variable)
+msgid "semppM"
+msgstr ""
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:78 (comment)
+msgid "Solution 5: Dynamic with explicit shifting inside the scheme function"
+msgstr ""
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:79 (variable)
+msgid "semppG"
+msgstr ""
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:85 (comment)
+msgid ""
+"Solution 6: Dynamic with explicit alignment. This has only effect, if one "
+"sets X-offset!"
+msgstr ""
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:86 (comment)
+msgid "Drawback: One needs to set DynamicText #'X-offset!"
+msgstr ""
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:87 (comment)
+msgid ""
+"Drawback: Aligned at the right edge of the additional text, not at the "
+"center of pp"
+msgstr ""
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:88 (variable)
+msgid "semppMII"
+msgstr ""
+
+#. input/lsr/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly:114 (comment)
+msgid "Setting to ##f (false) gives the same resul"
+msgstr ""
+
+#. input/lsr/how-to-change-fret-diagram-position.ly:28 (variable)
+#. input/lsr/score-for-diatonic-accordion.ly:61 (variable)
+#. input/lsr/showing-chords-at-changes.ly:23 (variable)
+#. input/lsr/single-staff-template-with-notes,-lyrics,-and-chords.ly:44 (variable)
+#. input/lsr/single-staff-template-with-notes-and-chords.ly:42 (variable)
+msgid "harmonies"
+msgstr ""
+
+#. input/lsr/how-to-change-fret-diagram-position.ly:31 (comment)
+msgid "THE FOLLOWING IS THE COMMAND TO MOVE THE CHORD NAME"
+msgstr ""
+
+#. input/lsr/how-to-change-fret-diagram-position.ly:34 (comment)
+msgid "THIS LINE IS THE SECOND METHOD"
+msgstr ""
+
+#. input/lsr/how-to-change-fret-diagram-position.ly:44 (comment)
+msgid "THE FOLLOWING IS THE COMMAND TO MOVE THE FRET DIAGRAM"
+msgstr ""
+
+#. input/lsr/how-to-change-fret-diagram-position.ly:47 (comment)
+msgid "HERE IS THE SECOND METHOD"
+msgstr ""
+
+#. input/lsr/incipit.ly:72 (variable)
+#. input/lsr/incipit.ly:73 (context id)
+msgid "discantusIncipit"
+msgstr ""
+
+#. input/lsr/incipit.ly:109 (variable)
+#. input/lsr/incipit.ly:110 (context id)
+msgid "altusIncipit"
+msgstr ""
+
+#. input/lsr/incipit.ly:125 (comment)
+#. input/lsr/incipit.ly:137 (comment)
+#. input/lsr/incipit.ly:167 (comment)
+#. input/lsr/incipit.ly:176 (comment)
+msgid "two measures"
+msgstr ""
+
+#. input/lsr/incipit.ly:145 (variable)
+#. input/lsr/incipit.ly:146 (context id)
+msgid "tenorIncipit"
+msgstr ""
+
+#. input/lsr/incipit.ly:182 (variable)
+#. input/lsr/incipit.ly:183 (context id)
+msgid "bassusIncipit"
+msgstr ""
+
+#. input/lsr/incipit.ly:253 (comment)
+msgid "no bar lines in staves or lyrics"
+msgstr ""
+
+#. input/lsr/incipit.ly:256 (comment)
+msgid "the next two instructions keep the lyrics between the bar lines"
+msgstr ""
+
+#. input/lsr/incipit.ly:267 (comment)
+msgid "breaking also at those bar lines where a note overlaps"
+msgstr ""
+
+#. input/lsr/incipit.ly:268 (comment)
+msgid "into the next measure.  The command is commented out in this"
+msgstr ""
+
+#. input/lsr/inserting-score-fragments-above-a-staff,-as-markups.ly:16 (variable)
+msgid "tuning"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:52 (comment)
+msgid "#(set-global-staff-size 16)"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:55 (comment)
+msgid "Some macros %%%%%%%%%%%%%%%%%%%"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:57 (variable)
+msgid "sl"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:61 (variable)
+msgid "nsl"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:65 (variable)
+msgid "crOn"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:66 (variable)
+msgid "crOff"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:68 (comment)
+msgid "insert chord name style stuff here."
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:70 (variable)
+msgid "jazzChords"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:72 (comment)
+msgid "Keys'n'thangs %%%%%%%%%%%%%%%%%"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:76 (variable)
+msgid "Key"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:78 (comment)
+msgid "############ Horns ############"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:80 (comment)
+msgid "------ Trumpet ------"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:81 (variable)
+msgid "trpt"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:85 (variable)
+msgid "trpHarmony"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:88 (variable)
+#. input/lsr/jazz-combo-template.ly:268 (context id)
+msgid "trumpet"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:97 (comment)
+msgid "------ Alto Saxophone ------"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:98 (variable)
+msgid "alto"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:102 (variable)
+msgid "altoHarmony"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:105 (variable)
+msgid "altoSax"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:114 (comment)
+msgid "------ Baritone Saxophone ------"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:115 (variable)
+msgid "bari"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:123 (variable)
+msgid "bariHarmony"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:126 (variable)
+msgid "bariSax"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:135 (comment)
+msgid "------ Trombone ------"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:136 (variable)
+msgid "tbone"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:140 (variable)
+msgid "tboneHarmony"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:143 (variable)
+#. input/lsr/jazz-combo-template.ly:272 (context id)
+msgid "trombone"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:152 (comment)
+msgid "############ Rhythm Section #############"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:154 (comment)
+msgid "------ Guitar ------"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:155 (variable)
+msgid "gtr"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:163 (variable)
+msgid "gtrHarmony"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:167 (variable)
+#. input/lsr/jazz-combo-template.ly:277 (context id)
+#. input/lsr/polyphony-in-tablature.ly:48 (context id)
+#. input/lsr/polyphony-in-tablature.ly:53 (context id)
+msgid "guitar"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:176 (comment)
+msgid "------ Piano ------"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:177 (variable)
+msgid "rhUpper"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:182 (variable)
+msgid "rhLower"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:188 (variable)
+msgid "lhUpper"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:193 (variable)
+msgid "lhLower"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:199 (variable)
+msgid "PianoRH"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:208 (variable)
+msgid "PianoLH"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:226 (comment)
+msgid "------ Bass Guitar ------"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:240 (comment)
+msgid "------ Drums ------"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:254 (variable)
+msgid "drumContents"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:263 (comment)
+#, python-format
+msgid "It All Goes Together Here %%%%%%%%%%%%%%%%%%%%%%"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:267 (context id)
+msgid "horns"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:269 (context id)
+msgid "altosax"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:270 (context id)
+msgid "barichords"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:271 (context id)
+msgid "barisax"
+msgstr ""
+
+#. input/lsr/jazz-combo-template.ly:276 (context id)
+msgid "chords"
+msgstr ""
+
+#. input/lsr/makam-example.ly:26 (comment)
+msgid "Initialize makam settings"
+msgstr ""
+
+#. input/lsr/manually-break-figured-bass-extenders-for-only-some-numbers.ly:19 (variable)
+msgid "bassfigures"
+msgstr ""
+
+#. input/lsr/manually-controlling-beam-positions.ly:21 (comment)
+msgid "from upper staff-line (position 2) to center (position 0)"
+msgstr ""
+
+#. input/lsr/manually-controlling-beam-positions.ly:24 (comment)
+msgid "from center to one above center (position 1)"
+msgstr ""
+
+#. input/lsr/marking-notes-of-spoken-parts-with-a-cross-on-the-stem.ly:17 (variable)
+msgid "speakOn"
+msgstr ""
+
+#. input/lsr/marking-notes-of-spoken-parts-with-a-cross-on-the-stem.ly:33 (variable)
+msgid "speakOff"
+msgstr ""
+
+#. input/lsr/markup-lines.ly:19 (comment)
+msgid "Candide, Voltaire"
+msgstr ""
+
+#. input/lsr/mensurstriche-layout-bar-lines-between-the-staves.ly:32 (comment)
+msgid "the final bar line is not interrupted"
+msgstr ""
+
+#. input/lsr/merging-multi-measure-rests-in-a-polyphonic-part.ly:17 (variable)
+msgid "normalPos"
+msgstr ""
+
+#. input/lsr/modern-tab-text-clef.ly:16 (variable)
+msgid "TAB"
+msgstr ""
+
+#. input/lsr/modifying-default-values-for-articulation-shorthand-notation.ly:51 (variable)
+msgid "dashPlus"
+msgstr ""
+
+#. input/lsr/modifying-tuplet-bracket-length.ly:23 (comment)
+msgid "Set tuplets to be extendable..."
+msgstr ""
+
+#. input/lsr/modifying-tuplet-bracket-length.ly:25 (comment)
+msgid "...to cover all items up to the next note"
+msgstr ""
+
+#. input/lsr/modifying-tuplet-bracket-length.ly:29 (comment)
+msgid "...or to cover just whitespace"
+msgstr ""
+
+#. input/lsr/percussion-beaters.ly:18 (variable)
+msgid "stick"
+msgstr ""
+
+#. input/lsr/permitting-line-breaks-within-beamed-tuplets.ly:39 (comment)
+msgid "Permit line breaks within tuplets"
+msgstr ""
+
+#. input/lsr/permitting-line-breaks-within-beamed-tuplets.ly:41 (comment)
+msgid "Allow beams to be broken at line breaks"
+msgstr ""
+
+#. input/lsr/permitting-line-breaks-within-beamed-tuplets.ly:48 (comment)
+msgid "Insert a manual line break within a tuplet"
+msgstr ""
+
+#. input/lsr/piano-template-with-centered-dynamics.ly:56 (variable)
+msgid "pedal"
+msgstr ""
+
+#. input/lsr/piano-template-with-centered-dynamics.ly:69 (comment)
+msgid "define Dynamics context"
+msgstr ""
+
+#. input/lsr/piano-template-with-centered-dynamics.ly:90 (comment)
+msgid "modify PianoStaff context to accept Dynamics context"
+msgstr ""
+
+#. input/lsr/polyphony-in-tablature.ly:47 (context id)
+msgid "tab"
+msgstr ""
+
+#. input/lsr/positioning-multi--measure-rests.ly:41 (comment)
+msgid "Multi-measure rests by default are set under the second line"
+msgstr ""
+
+#. input/lsr/positioning-multi--measure-rests.ly:43 (comment)
+msgid "They can be moved with an override"
+msgstr ""
+
+#. input/lsr/positioning-multi--measure-rests.ly:46 (comment)
+msgid "A value of 0 is the default position;"
+msgstr ""
+
+#. input/lsr/positioning-multi--measure-rests.ly:47 (comment)
+msgid "the following trick moves the rest to the center line"
+msgstr ""
+
+#. input/lsr/positioning-multi--measure-rests.ly:50 (comment)
+msgid "Multi-measure rests in odd-numbered voices are under the top line"
+msgstr ""
+
+#. input/lsr/positioning-multi--measure-rests.ly:52 (comment)
+msgid "Multi-measure rests in even-numbered voices are under the bottom line"
+msgstr ""
+
+#. input/lsr/positioning-multi--measure-rests.ly:54 (comment)
+msgid "They remain separated even in empty measures"
+msgstr ""
+
+#. input/lsr/positioning-multi--measure-rests.ly:56 (comment)
+msgid "This brings them together even though there are two voices"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:28 (comment)
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:49 (comment)
+msgid "Set segno sign as rehearsal mark and adjust size if needed"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:29 (comment)
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:51 (comment)
+msgid "\\once \\override Score.RehearsalMark #'font-size = #3"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:35 (comment)
+msgid "Set coda sign as rehearsal mark and adjust size if needed"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:42 (comment)
+msgid "Should Coda be on anew line?"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:43 (comment)
+msgid "Coda NOT on new line: use \\nobreak"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:44 (comment)
+msgid "Coda on new line: DON'T use \\nobreak"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:45 (comment)
+msgid "\\noBreak"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:54 (comment)
+msgid "Here begins the trickery! "
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:55 (comment)
+msgid ""
+"\\cadenzaOn will suppress the bar count and \\stopStaff removes the staff "
+"lines."
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:58 (comment)
+msgid "Some examples of possible text-displays "
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:60 (comment)
+msgid "text line-aligned"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:61 (comment)
+msgid "=================="
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:62 (comment)
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:68 (comment)
+msgid "Move text to the desired position"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:63 (comment)
+msgid "\\once \\override TextScript #'extra-offset = #'( 2 . -3.5 )"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:64 (comment)
+msgid "| s1*0^\\markup { D.S. al Coda } }"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:66 (comment)
+msgid "text center-aligned"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:67 (comment)
+msgid "===================="
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:69 (comment)
+msgid "\\once \\override TextScript #'extra-offset = #'( 6 . -5.0 )"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:70 (comment)
+msgid "| s1*0^\\markup { \\center-column { D.S. \\\"al Coda\\\" } }"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:72 (comment)
+msgid "text and symbols center-aligned"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:73 (comment)
+msgid "==============================="
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:74 (comment)
+msgid ""
+"Move text to the desired position and tweak spacing for optimum text "
+"alignment"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:75 (comment)
+msgid "\\once \\override TextScript #'extra-offset = #'( 8 . -5.5 )"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:81 (comment)
+msgid "Increasing the unfold counter will expand the staff-free space"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:86 (comment)
+msgid "Resume bar count and show staff lines again"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:90 (comment)
+msgid "Should Coda be on new line?"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:91 (comment)
+msgid "Coda NOT on new line: DON'T use \\break"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:92 (comment)
+msgid "Coda on new line: use \\break"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:95 (comment)
+msgid "Show up, you clef and key!"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:99 (comment)
+msgid "Set coda sign as rehearsal mark and adjust size and position"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:101 (comment)
+msgid ""
+"Put the coda sign ontop of the (treble-)clef dependend on coda's line-"
+"position"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:103 (comment)
+msgid "Coda NOT on new line, use this:"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:104 (comment)
+msgid "\\once \\override Score.RehearsalMark #'extra-offset = #'( -2 . 1.75 )"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:106 (comment)
+msgid "Coda on new line, use this:"
+msgstr ""
+
+#. input/lsr/positioning-segno-and-coda-with-line-break.ly:112 (comment)
+msgid "The coda"
+msgstr ""
+
+#. input/lsr/printing-metronome-and-rehearsal-marks-below-the-staff.ly:31 (comment)
+msgid "Metronome marks below the staff "
+msgstr ""
+
+#. input/lsr/printing-metronome-and-rehearsal-marks-below-the-staff.ly:36 (comment)
+msgid "Rehearsal marks below the staff"
+msgstr ""
+
+#. input/lsr/printing-music-with-different-time-signatures.ly:50 (variable)
+msgid "Bassklarinette"
+msgstr ""
+
+#. input/lsr/printing-music-with-different-time-signatures.ly:90 (variable)
+msgid "Perkussion"
+msgstr ""
+
+#. input/lsr/quoting-another-voice-with-transposition.ly:37 (variable)
+msgid "quoteTest"
+msgstr ""
+
+#. input/lsr/quoting-another-voice-with-transposition.ly:38 (comment)
+msgid "french horn"
+msgstr ""
+
+#. input/lsr/quoting-another-voice.ly:27 (variable)
+msgid "quoteMe"
+msgstr ""
+
+#. input/lsr/quoting-another-voice.ly:32 (variable)
+msgid "original"
+msgstr ""
+
+#. input/lsr/removing-the-first-empty-line.ly:43 (comment)
+msgid "To use the setting globally, uncomment the following line:"
+msgstr ""
+
+#. input/lsr/removing-the-first-empty-line.ly:44 (comment)
+msgid "\\override VerticalAxisGroup #'remove-first = ##t"
+msgstr ""
+
+#. input/lsr/removing-the-first-empty-line.ly:53 (comment)
+msgid "To use the setting globally, comment this line,"
+msgstr ""
+
+#. input/lsr/removing-the-first-empty-line.ly:54 (comment)
+msgid "uncomment the line in the \\layout block above"
+msgstr ""
+
+#. input/lsr/reverting-default-beam-endings.ly:29 (comment)
+msgid "Default beaming"
+msgstr ""
+
+#. input/lsr/reverting-default-beam-endings.ly:32 (comment)
+msgid "Revert default values in scm/auto-beam.scm for 12/8 time"
+msgstr ""
+
+#. input/lsr/reverting-default-beam-endings.ly:38 (comment)
+msgid "Set new values for beam endings"
+msgstr ""
+
+#. input/lsr/rhythmic-slashes.ly:25 (comment)
+msgid "Macro to print single slash"
+msgstr ""
+
+#. input/lsr/rhythmic-slashes.ly:26 (variable)
+msgid "rs"
+msgstr ""
+
+#. input/lsr/rhythmic-slashes.ly:33 (comment)
+msgid "Function to print a specified number of slashes"
+msgstr ""
+
+#. input/lsr/rhythmic-slashes.ly:34 (variable)
+msgid "comp"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:69 (variable)
+msgid "NoStem"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:70 (variable)
+msgid "NoNoteHead"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:71 (variable)
+msgid "ZeroBeam"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:73 (variable)
+msgid "staffTabLine"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:78 (comment)
+msgid ""
+"Shows one horizontal line. The vertical line (simulating a bar-line) is "
+"simulated with a gridline"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:83 (comment)
+msgid ""
+"disable the following line to see the the noteheads while writing the song "
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:87 (comment)
+msgid "The beam between 8th-notes is used to draw the push-line"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:88 (comment)
+msgid "How to fast write the push-lines: "
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:89 (comment)
+msgid ""
+"1. write repeatedly 'c c c c c c c c |' for the whole length of the song "
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:90 (comment)
+msgid "2. uncomment the line \\NoNoteHead"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:91 (comment)
+msgid "3. compile"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:92 (comment)
+msgid "4. Mark the positions on which push/pull changes. "
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:93 (comment)
+msgid ""
+"In the score-picture click on the position the push- or pull-part starts "
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:94 (comment)
+msgid "(on the noteHead, the cursor will change to a hand-icon)."
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:95 (comment)
+msgid "The cursor in the source code will jump just at this position."
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:96 (comment)
+msgid "a) If a push-part starts there, replace the 'c' by an 'e['"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:97 (comment)
+msgid "b) If a pull-part starts there, replace the 'c' by an 's'"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:98 (comment)
+msgid "5. Switch into 'overwrite-mode' by pressing the 'ins' key. "
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:99 (comment)
+msgid "6. For the pull-parts overwrite the 'c' with 's' "
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:100 (comment)
+msgid "7. For every push-part replace the last 'c' with 'e]' "
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:101 (comment)
+msgid "8. Switch into 'insert-mode' again "
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:102 (comment)
+msgid ""
+"9. At last it should look lik e.g. (s s e[ c | c c c c c c c c | c c c c c c "
+"e] s s)"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:103 (comment)
+msgid "10. re-enable the line \\NoNoteHead"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:113 (comment)
+msgid "Accordion melody in tabulator score\t\t"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:114 (comment)
+msgid "1. Place a copy of the piano melody below"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:115 (comment)
+#. input/lsr/score-for-diatonic-accordion.ly:134 (comment)
+msgid ""
+"2. Separate piano melody into pull- and push-parts according to the "
+"staffTabLine you've already made      "
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:116 (comment)
+msgid ""
+"3. For each line: Double the line. Remark the 1st one (Keeps unchanged as "
+"reference) and then change the second line using the transformation paper"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:117 (comment)
+msgid "or the macros 'conv2diaton push.bsh' and 'conv2diaton pull.bsh' "
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:118 (comment)
+#. input/lsr/score-for-diatonic-accordion.ly:137 (comment)
+msgid "Tips:"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:119 (comment)
+#. input/lsr/score-for-diatonic-accordion.ly:138 (comment)
+msgid "- In jEdit Search & Replace mark the Option 'Keep Dialog'"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:121 (variable)
+msgid "AccordionTabTwoCBesDur"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:122 (comment)
+msgid "pull 1"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:123 (comment)
+msgid "<f' bes'>8 <f' a'>8 <d' bes'>8 | "
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:125 (comment)
+msgid "push 2"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:126 (comment)
+msgid "<g' c''>4 <f' d''> <g' ees''> <f' a'> | "
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:128 (comment)
+msgid "pull 3"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:129 (comment)
+msgid "<f' bes'>2 r8 }"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:133 (comment)
+msgid "1. Place a copy of the piano melody above"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:135 (comment)
+msgid ""
+"3. For each line: Double the line. Remark the 1st one (Keeps unchanged as "
+"reference) and then "
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:136 (comment)
+msgid "change the second line using the transformation paper"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:139 (comment)
+msgid "- "
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:150 (comment)
+msgid "4/4 - tact. How many beats per bar"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:152 (comment)
+msgid "The following line has to be adjusted O-F-T-E-N."
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:161 (variable)
+msgid "staffVoice"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:169 (context id)
+msgid "melodyVoi"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:175 (variable)
+msgid "staffAccordionMel"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:176 (comment)
+msgid "Set the accidentals (Vorzeichen) for each note, "
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:177 (comment)
+msgid "do not remember them for the rest of the measure.  "
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:196 (variable)
+msgid "BassRhytm"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:197 (variable)
+msgid "LyricBassRhythmI"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:199 (variable)
+msgid "staffBassRhytm"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:200 (comment)
+msgid ""
+"This is not a RhythmicStaff  because it must be possible to append lyrics."
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:202 (comment)
+msgid "x.y"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:204 (comment)
+msgid ""
+"Shows one horizontal line. The vertical line (simulating a bar-line) is "
+"simulated by a grid"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:205 (comment)
+msgid "Search for 'grid' in this page to find all related functions "
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:208 (context id)
+msgid "VoiceBassRhytm"
+msgstr ""
+
+#. input/lsr/score-for-diatonic-accordion.ly:221 (comment)
+msgid ""
+"The vertical line (simulating a bar-line) in the staffBassRhytm is a "
+"gridline "
+msgstr ""
+
+#. input/lsr/single-staff-template-with-notes,-lyrics,-chords-and-frets.ly:24 (comment)
+msgid "Define the fret diagrams to be used"
+msgstr ""
+
+#. input/lsr/single-staff-template-with-notes,-lyrics,-chords-and-frets.ly:25 (variable)
+msgid "cFretDiagram"
+msgstr ""
+
+#. input/lsr/single-staff-template-with-notes,-lyrics,-chords-and-frets.ly:29 (variable)
+msgid "gFretDiagram"
+msgstr ""
+
+#. input/lsr/single-staff-template-with-notes,-lyrics,-chords-and-frets.ly:33 (variable)
+msgid "verseI"
+msgstr ""
+
+#. input/lsr/single-staff-template-with-notes,-lyrics,-chords-and-frets.ly:38 (variable)
+msgid "verseII"
+msgstr ""
+
+#. input/lsr/single-staff-template-with-notes,-lyrics,-chords-and-frets.ly:43 (variable)
+msgid "theChords"
+msgstr ""
+
+#. input/lsr/single-staff-template-with-notes,-lyrics,-chords-and-frets.ly:45 (comment)
+msgid "insert the chords for chordnames here"
+msgstr ""
+
+#. input/lsr/single-staff-template-with-notes,-lyrics,-chords-and-frets.ly:50 (variable)
+msgid "staffMelody"
+msgstr ""
+
+#. input/lsr/single-staff-template-with-notes,-lyrics,-chords-and-frets.ly:51 (context id)
+msgid "voiceMelody"
+msgstr ""
+
+#. input/lsr/single-staff-template-with-notes,-lyrics,-chords-and-frets.ly:55 (comment)
+msgid "Type notes and fret diagram markups here"
+msgstr ""
+
+#. input/lsr/snap-pizzicato-markup-bartok-pizzicato.ly:54 (variable)
+msgid "snapPizzicato"
+msgstr ""
+
+#. input/lsr/snap-pizzicato-markup-bartok-pizzicato.ly:56 (comment)
+msgid "now it can be used as \\snappizzicato after the note/chord"
+msgstr ""
+
+#. input/lsr/snap-pizzicato-markup-bartok-pizzicato.ly:57 (comment)
+msgid "Note that a direction (-, ^ or _) is required."
+msgstr ""
+
+#. input/lsr/snap-pizzicato-markup-bartok-pizzicato.ly:60 (comment)
+msgid "This does NOT work:"
+msgstr ""
+
+#. input/lsr/snap-pizzicato-markup-bartok-pizzicato.ly:61 (comment)
+msgid "<c e g>\\snapPizzicato"
+msgstr ""
+
+#. input/lsr/stemlets.ly:35 (comment)
+msgid "N.B. use Score.Stem to set for the whole score."
+msgstr ""
+
+#. input/lsr/string-quartet-template-simple.ly:34 (variable)
+msgid "violinOne"
+msgstr ""
+
+#. input/lsr/string-quartet-template-simple.ly:43 (variable)
+msgid "violinTwo"
+msgstr ""
+
+#. input/lsr/string-quartet-template-simple.ly:52 (variable)
+msgid "viola"
+msgstr ""
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:77 (comment)
+msgid "piece.ly"
+msgstr ""
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:78 (comment)
+msgid "(This is the global definitions file)"
+msgstr ""
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:85 (variable)
+msgid "Violinone"
+msgstr ""
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:90 (comment)
+#. input/lsr/string-quartet-template-with-separate-parts.ly:96 (comment)
+#. input/lsr/string-quartet-template-with-separate-parts.ly:103 (comment)
+msgid "*********************************"
+msgstr ""
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:91 (variable)
+msgid "Violintwo"
+msgstr ""
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:97 (variable)
+msgid "Viola"
+msgstr ""
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:104 (variable)
+msgid "Cello"
+msgstr ""
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:110 (comment)
+msgid "**********************************"
+msgstr ""
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:121 (comment)
+msgid "These are the other files you need to save on your computer"
+msgstr ""
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:123 (comment)
+msgid "score.ly"
+msgstr ""
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:124 (comment)
+msgid "(This is the main file)"
+msgstr ""
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:127 (comment)
+#, python-format
+msgid ""
+"\\include \\\"piece.ly\\\"             %%% uncomment this line when using a "
+"separate file"
+msgstr ""
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:136 (comment)
+msgid "{ Uncomment this block when using separate files"
+msgstr ""
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:138 (comment)
+msgid "vn1.ly"
+msgstr ""
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:139 (comment)
+msgid "(This is the Violin 1 part file)"
+msgstr ""
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:148 (comment)
+msgid "vn2.ly"
+msgstr ""
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:149 (comment)
+msgid "(This is the Violin 2 part file)"
+msgstr ""
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:158 (comment)
+msgid "vla.ly"
+msgstr ""
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:159 (comment)
+msgid "(This is the Viola part file)"
+msgstr ""
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:168 (comment)
+msgid "vlc.ly"
+msgstr ""
+
+#. input/lsr/string-quartet-template-with-separate-parts.ly:169 (comment)
+msgid "(This is the Cello part file)"
+msgstr ""
+
+#. input/lsr/sub-dividing-beams.ly:50 (comment)
+msgid "Set beam sub-group length to an eighth note"
+msgstr ""
+
+#. input/lsr/sub-dividing-beams.ly:54 (comment)
+msgid "Set beam sub-group length to a sixteenth note"
+msgstr ""
+
+#. input/lsr/suppressing-warnings-for-clashing-note-columns.ly:19 (variable)
+msgid "ignore"
+msgstr ""
+
+#. input/lsr/three-sided-box.ly:16 (comment)
+msgid "New command to add a three sided box, with sides north, west and south"
+msgstr ""
+
+#. input/lsr/three-sided-box.ly:17 (comment)
+msgid "Based on the box-stencil command defined in scm/stencil.scm"
+msgstr ""
+
+#. input/lsr/three-sided-box.ly:18 (comment)
+msgid "Note that \\\";\\\" is used to comment a line in Scheme"
+msgstr ""
+
+#. input/lsr/three-sided-box.ly:32 (comment)
+msgid "The corresponding markup command, based on the \\box command defined "
+msgstr ""
+
+#. input/lsr/three-sided-box.ly:33 (comment)
+msgid "in scm/define-markup-commands.scm"
+msgstr ""
+
+#. input/lsr/three-sided-box.ly:45 (comment)
+msgid "Test it:"
+msgstr ""
+
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:35 (comment)
+msgid "make the staff lines invisible on staves"
+msgstr ""
+
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:127 (variable)
+msgid "incipitDiscantus"
+msgstr ""
+
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:151 (variable)
+msgid "incipitAltus"
+msgstr ""
+
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:176 (variable)
+msgid "incipitTenor"
+msgstr ""
+
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:202 (variable)
+msgid "incipitBassus"
+msgstr ""
+
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:226 (comment)
+msgid ""
+"StaffGroup is used instead of ChoirStaff to get bar lines between systems"
+msgstr ""
+
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:258 (comment)
+msgid "Keep the bass lyrics outside of the staff group to avoid bar lines"
+msgstr ""
+
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:259 (comment)
+msgid "between the lyrics."
+msgstr ""
+
+#. input/lsr/transcription-of-ancient-music-with-incipit.ly:269 (comment)
+msgid "the next three instructions keep the lyrics between the barlines"
+msgstr ""
+
+#. input/lsr/transposing-pitches-with-minimum-accidentals-smart-transpose.ly:132 (variable)
+msgid "naturalizeMusic"
+msgstr ""
+
+#. input/lsr/tweaking-clef-properties.ly:111 (comment)
+msgid "The default treble clef"
+msgstr ""
+
+#. input/lsr/tweaking-clef-properties.ly:113 (comment)
+msgid "The standard bass clef"
+msgstr ""
+
+#. input/lsr/tweaking-clef-properties.ly:118 (comment)
+msgid "The baritone clef"
+msgstr ""
+
+#. input/lsr/tweaking-clef-properties.ly:123 (comment)
+msgid "The standard choral tenor clef"
+msgstr ""
+
+#. input/lsr/tweaking-clef-properties.ly:129 (comment)
+msgid "A non-standard clef"
+msgstr ""
+
+#. input/lsr/tweaking-clef-properties.ly:135 (comment)
+msgid "The following clef changes do not preserve"
+msgstr ""
+
+#. input/lsr/tweaking-clef-properties.ly:136 (comment)
+msgid "the normal relationship between notes and clefs:"
+msgstr ""
+
+#. input/lsr/tweaking-clef-properties.ly:151 (comment)
+msgid "Return to the normal clef:"
+msgstr ""
+
+#. input/lsr/using-beatlength-and-beatgrouping.ly:34 (comment)
+msgid "The default in 3/4 time is to beam in three groups"
+msgstr ""
+
+#. input/lsr/using-beatlength-and-beatgrouping.ly:35 (comment)
+msgid "each of a quarter note length"
+msgstr ""
+
+#. input/lsr/using-beatlength-and-beatgrouping.ly:39 (comment)
+msgid "No auto-beaming is defined for 12/16"
+msgstr ""
+
+#. input/lsr/using-beatlength-and-beatgrouping.ly:43 (comment)
+msgid "Change time signature symbol, but retain underlying 3/4 beaming"
+msgstr ""
+
+#. input/lsr/using-beatlength-and-beatgrouping.ly:47 (comment)
+msgid "The 3/4 time default grouping of (1 1 1) and beatLength of 1/8"
+msgstr ""
+
+#. input/lsr/using-beatlength-and-beatgrouping.ly:48 (comment)
+msgid "are not consistent with a measureLength of 3/4, so the beams"
+msgstr ""
+
+#. input/lsr/using-beatlength-and-beatgrouping.ly:49 (comment)
+msgid "are grouped at beatLength intervals"
+msgstr ""
+
+#. input/lsr/using-beatlength-and-beatgrouping.ly:53 (comment)
+msgid "Specify beams in groups of (3 3 2 3) 1/16th notes"
+msgstr ""
+
+#. input/lsr/using-beatlength-and-beatgrouping.ly:54 (comment)
+msgid "3+3+2+3=11, and 11*1/16<>3/4, so beatGrouping does not apply,"
+msgstr ""
+
+#. input/lsr/using-beatlength-and-beatgrouping.ly:55 (comment)
+msgid "and beams are grouped at beatLength (1/16) intervals"
+msgstr ""
+
+#. input/lsr/using-beatlength-and-beatgrouping.ly:60 (comment)
+msgid "Specify beams in groups of (3 4 2 3) 1/16th notes"
+msgstr ""
+
+#. input/lsr/using-beatlength-and-beatgrouping.ly:61 (comment)
+msgid "3+4+2+3=12, and 12*1/16=3/4, so beatGrouping applies"
+msgstr ""
+
+#. input/lsr/using-postscript-to-generate-special-note-head-shapes.ly:26 (variable)
+msgid "parallelogram"
+msgstr ""
+
+#. input/lsr/using-postscript-to-generate-special-note-head-shapes.ly:41 (variable)
+msgid "myNoteHeads"
+msgstr ""
+
+#. input/lsr/using-postscript-to-generate-special-note-head-shapes.ly:42 (variable)
+msgid "normalNoteHeads"
+msgstr ""
+
+#. input/lsr/utf-8.ly:34 (comment)
+msgid "end verbatim - this comment is a hack to prevent texinfo.tex"
+msgstr ""
+
+#. input/lsr/utf-8.ly:35 (comment)
+msgid "from choking on non-European UTF-8 subsets"
+msgstr ""
+
+#. input/lsr/utf-8.ly:36 (comment)
+msgid "Cyrillic font"
+msgstr ""
+
+#. input/lsr/utf-8.ly:37 (variable)
+msgid "bulgarian"
+msgstr ""
+
+#. input/lsr/utf-8.ly:41 (variable)
+msgid "hebrew"
+msgstr ""
+
+#. input/lsr/utf-8.ly:45 (variable)
+msgid "japanese"
+msgstr ""
+
+#. input/lsr/utf-8.ly:52 (comment)
+msgid "\\\"a legal song to you\\\""
+msgstr ""
+
+#. input/lsr/utf-8.ly:53 (variable)
+msgid "portuguese"
+msgstr ""
+
+#. input/lsr/vertically-centered-common-lyrics.ly:19 (variable)
+msgid "leftbrace"
+msgstr ""
+
+#. input/lsr/vertically-centered-common-lyrics.ly:20 (variable)
+msgid "rightbrace"
+msgstr ""
+
+#. input/lsr/vertically-centered-common-lyrics.ly:22 (variable)
+msgid "dropLyrics"
+msgstr ""
+
+#. input/lsr/vertically-centered-common-lyrics.ly:29 (variable)
+msgid "raiseLyrics"
+msgstr ""
+
+#. input/lsr/vertically-centered-common-lyrics.ly:36 (variable)
+msgid "skipFour"
+msgstr ""
+
+#. input/lsr/vertically-centered-common-lyrics.ly:38 (variable)
+msgid "lyricsA"
+msgstr ""
+
+#. input/lsr/vertically-centered-common-lyrics.ly:40 (variable)
+msgid "lyricsB"
+msgstr ""
+
+#. input/lsr/vertically-centered-common-lyrics.ly:41 (variable)
+msgid "lyricsC"
+msgstr ""
+
+#. input/lsr/vertically-centered-common-lyrics.ly:42 (variable)
+msgid "lyricsD"
+msgstr ""
+
+#. input/lsr/vertically-centered-common-lyrics.ly:49 (context id)
+msgid "m"
+msgstr ""
+
+#. input/lsr/vocal-ensemble-template-with-automatic-piano-reduction.ly:51 (variable)
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:42 (variable)
+#. input/lsr/vocal-ensemble-template.ly:47 (variable)
+msgid "sopMusic"
+msgstr ""
+
+#. input/lsr/vocal-ensemble-template-with-automatic-piano-reduction.ly:54 (variable)
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:45 (variable)
+#. input/lsr/vocal-ensemble-template.ly:50 (variable)
+msgid "sopWords"
+msgstr ""
+
+#. input/lsr/vocal-ensemble-template-with-automatic-piano-reduction.ly:83 (context id)
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:72 (context id)
+#. input/lsr/vocal-ensemble-template.ly:78 (context id)
+msgid "women"
+msgstr ""
+
+#. input/lsr/vocal-ensemble-template-with-automatic-piano-reduction.ly:89 (context id)
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:82 (context id)
+#. input/lsr/vocal-ensemble-template.ly:90 (context id)
+msgid "men"
+msgstr ""
+
+#. input/lsr/vocal-ensemble-template-with-automatic-piano-reduction.ly:118 (comment)
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:94 (comment)
+#. input/lsr/vocal-ensemble-template.ly:108 (comment)
+msgid "a little smaller so lyrics"
+msgstr ""
+
+#. input/lsr/vocal-ensemble-template-with-automatic-piano-reduction.ly:119 (comment)
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:95 (comment)
+#. input/lsr/vocal-ensemble-template.ly:109 (comment)
+msgid "can be closer to the staff"
+msgstr ""
+
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:78 (comment)
+msgid "we could remove the line about this with the line below, since we want"
+msgstr ""
+
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:79 (comment)
+msgid "the alto lyrics to be below the alto Voice anyway."
+msgstr ""
+
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:80 (comment)
+msgid "\\new Lyrics \\lyricsto altos \\altoWords"
+msgstr ""
+
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:89 (comment)
+msgid "again, we could replace the line above this with the line below."
+msgstr ""
+
+#. input/lsr/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly:90 (comment)
+msgid "\\new Lyrics \\lyricsto basses \\bassWords"
+msgstr ""
+
+#. input/lsr/volta-multi-staff.ly:13 (variable)
+msgid "voltaMusic"
 msgstr ""
 
 msgid "Up:"
index 305d2c951e977c4d53d504625566387bcd4bd22e..1157ae013decba5c10e1fc11c46da32e42890a06 100644 (file)
@@ -33,7 +33,8 @@ al-niente hairpins.
     Type42 code.
 @item @email{david.feuer@@gmail.com, David Feuer},
     PS output code refactoring.
-@item Bernard Hurley, X11 color.
+@item @email{bernard@@fong-hurley.org.uk, Bernard Hurley},
+    X11 color.
 @item @email{chris@@fluffhouse.org.uk, Chris Jackson},
     Piano pedals, directed arpeggios.
 @item @email{heikki.junes@@hut.fi, Heikki Junes},
@@ -56,7 +57,8 @@ al-niente hairpins.
 @item @email{janneke@@gnu.org, Jan Nieuwenhuizen}, 
     @uref{http://www.xs4all.nl/~jantien/},
     Main author.
-@item @uref{http://www.juergen-reuter.de/, Jürgen Reuter},
+@item @email{reuter_j@@web.de, Jürgen Reuter},
+    @uref{http://www.juergen-reuter.de},
     Ancient notation  support (mensural notation,
     Gregorian chant notation), ambitus, clusters.
 @item @email{nicolas.sceaux@@free.fr, Nicolas Sceaux},
@@ -72,9 +74,9 @@ Font
 
 @itemize @bullet
 
-@item @uref{http://www.juergen-reuter.de/, Jürgen Reuter},
+@item @email{reuter_j@@web.de, Jürgen Reuter},
+    @uref{http://www.juergen-reuter.de},
     Ancient notation font
-@item Werner Lemberg,
     Exact Type1 font outlines for feta, feta-alphabet.
 @item @email{chris@@fluffhouse.org.uk, Chris Jackson},
     Arpeggio arrow
@@ -88,7 +90,7 @@ Font
     Main author.
 @item @email{tca@@gnu.org, Tom Cato Amundsen},
     Accordion symbols.
-@item @email{arno@@arnowaschk.de, Arno Waschk },
+@item @email{arno@@arnowaschk.de, Arno Waschk},
     "espressivo" mark.
 @end itemize
 
index 537f761b0a8f847f578e16c0a8f99f12d664dad1..0f81c76f1136828424e8c93a5732f65cbe85a2be 100644 (file)
@@ -11,10 +11,6 @@ OUTTXT_FILES= $(outdir)/NEWS.txt
 
 include $(depth)/make/stepmake.make
 
-MAKEINFO_FLAGS += -I $(top-src-dir)/Documentation/user
-TEXI2HTML_FLAGS += -I $(top-src-dir)/Documentation/user
-
 local-WWW-1: $(OUT_TEXI_FILES)
 
 .SECONDARY:
-
index e6b2866b5d12500893c406c50242425dfa1a4c08..cc07cd31a4018dc9050b819e351bbbf0f9256247 100644 (file)
@@ -33,11 +33,11 @@ See user manual, \NAME\
 @finalout
 
 @node Top
-@top New features in 2.11 since 2.10
+@top New features in 2.13 since 2.12
 
 @ifhtml
-This document is also available in @uref{NEWS.pdf,PDF}. It's part of
-the @uref{../,LilyPond Documentation} .
+This document is also available in @uref{NEWS.pdf,PDF}. It is part of
+the @uref{../,LilyPond Documentation}.
 @end ifhtml
 
 
@@ -62,397 +62,52 @@ which scares away people.
 
 @end ignore
 
-@item
-In addition to the already existing @code{showLastLength} property,
-@code{showFirstLength} can now be set as well, rendering only the first
-measures of a piece.  Both properties may be set at the same time:
-@lilypond[]
-showFirstLength = R1*2
-showLastLength = R1*3
-\relative c' { c1 d e f g a b c }
-@end lilypond
-
-@item
-The file extension for MIDI can be set using the command-line
-program default @code{midi-extension}.  For Windows, the default
-extension has been changed to @code{.mid}.
-
-@item
-Two variations on the default double repeat bar line are now available.
-@lilypond[]
-{
-  \set Score.doubleRepeatType = #":|.:"
-  \repeat volta 2 {
-    c'1
-  }
-  \repeat volta 2 {
-    c'1
-  } 
-  \bar ":|.|:"
-  c'1
-}
-@end lilypond
-
-@item
-Four automatic accidentals rules have been added: @code{neo-modern},
-@code{neo-modern-cautionary}, @code{dodecaphonic} and @code{teaching}.
-The following example illustrates @code{neo-modern} rule.
-@lilypond[]
-notes = {
-  <<
-    \relative c' {
-      cis'8 fis, d'4 <a cis>8 f bis4 |
-      cis2. <c, fis>4 |
-    }
-    \\
-    \relative c' {
-      ais'2 cis, |
-      fis8 b a4 cis2 |
-    }
-  >>
-}
-
-\new Staff {
-  #(set-accidental-style 'neo-modern)
-  \notes
-}
-@end lilypond
-
-@item
-Flags can now be generated with Scheme-code using the @code{'flag}
-@code{Stem} grob property.  Existing scores will work without change.
-@lilypond[]
-testnotes = {
-  \autoBeamOff
-  c'8 d'16 c''8 d''16
-}
-
-#(define (inverted-flag stem-grob)
-  (let* ((dir (if (eqv? (ly:grob-property stem-grob 'direction) UP) "d" "u"))
-         (flag (retrieve-glyph-flag "" dir "" stem-grob))
-         (line-thickness (ly:staff-symbol-line-thickness stem-grob))
-         (stem-thickness (ly:grob-property stem-grob 'thickness))
-         (stem-width (* line-thickness stem-thickness))
-         (stroke-style (ly:grob-property stem-grob 'stroke-style))
-         (stencil (if (null? stroke-style) flag
-                         (add-stroke-glyph flag stem-grob dir stroke-style "")))
-                         (rotated-flag (ly:stencil-rotate-absolute stencil 180 0 0)))
-    (ly:stencil-translate rotated-flag (cons (- (/ stem-width 2))  0))))
-
-#(define-public (weight-flag stem-grob)
-  (let* ((log (- (ly:grob-property stem-grob 'duration-log) 2))
-         (is-up (eqv? (ly:grob-property stem-grob 'direction) UP))
-         (yext (if is-up (cons (* log -0.8) 0) (cons 0 (* log 0.8))))
-         (flag-stencil (make-filled-box-stencil '(-0.4 . 0.4) yext))
-         (stroke-style (ly:grob-property stem-grob 'stroke-style))
-         (stroke-stencil (if (equal? stroke-style "grace") (make-line-stencil 0.2 -0.9 -0.4 0.9 -0.4) empty-stencil)))
-    (ly:stencil-add flag-stencil stroke-stencil)))
-
-{
-  \time 3/8
-  \override Stem #'flag = #weight-flag
-  \testnotes
-
-  \override Stem #'flag = #inverted-flag
-  \testnotes
-}
-@end lilypond
-
-@item
-Harp pedalling diagrams were added:
-
-@lilypond[]
-\markup { \harp-pedal #"^v-|vv-o^" }
-@end lilypond
-
-@item
-Predefined, user-configurable, transposable fret diagrams
-are now available in the @code{FretBoards} context:
-@lilypond[]
-\include "predefined-guitar-fretboards.ly"
-<<
-  \new ChordNames {
-    \chordmode {
-      c1
-      \transpose c e { c }
-    }
-  }
-  \new FretBoards {
-    \chordmode {
-      c1
-      \transpose c e { c }
-    }
-  }
->>
-@end lilypond
-
-@item
-The following syntax changes were made, in chronological order. In
-addition, fret diagram properties have been moved to
-@code{fret-diagram-details}, and the @code{#'style} property is
-used to select solid/dashed lines instead of @code{#'dash-fraction}.
-
-@example
-'break-align-symbol -> 'break-align-symbols
-scripts.caesura -> scripts.caesura.curved
-\setEasyHeads -> \easyHeadsOn
-\easyHeadsOff (new command)
-\fatText -> \textLengthOn
-\emptyText -> \textLengthOff
-\set hairpinToBarline -> \override Hairpin #'to-barline
-\compressMusic -> \scaleDurations
-\octave -> \octaveCheck
-\arpeggioUp -> \arpeggioArrowUp
-\arpeggioDown -> \arpeggioArrowDown
-\arpeggioNeutral -> \arpeggioNormal
-\setTextCresc -> \crescTextCresc
-\setTextDecresc -> \dimTextDecresc
-\setTextDecr -> \dimTextDecr
-\setTextDim -> \dimTextDim
-\setHairpinCresc -> \crescHairpin
-\setHairpinDecresc -> \dimHairpin
-\sustainUp -> \sustainOff
-\sustainDown -> \sustainOn
-\sostenutoDown -> \sostenutoOn
-\sostenutoUp -> \sostenutoOff
-'infinite-spacing-height -> 'extra-spacing-height
-#(set-octavation oct) -> \ottava #oct
-\put-adjacent markup axis dir markup -> \put-adjacent axis dir markup markup
-\pointAndClickOn (new command)
-\pointAndClickOff (new command)
-\center-align -> \center-column
-\hcenter -> \center-align
-printallheaders -> print-all-headers
-\bigger -> \larger (already existing command)
-@end example
-
-@noindent
-Moreover, some files in the @code{ly/} directory have been renamed;
-the *-init.ly filenames are now only used for files that are automatically
-included, while such files as @code{makam-init.ly} or @code{gregorian-init.ly}
-have been renamed to @code{makam.ly} or @code{gregorian.ly}.
-
-@item
-Metronome marks can now also contain a textual description.  The
-duration and count (if given) are shown in parentheses after the text.
-
-@lilypond[]
-{
-  \tempo "Fast"
-  c'4 c' c' c'
-  c'4 c' c' c'
-  \tempo "Andante" 4 = 120
-  c'4 c' c' c'
-  c'4 c' c' c'
-  \tempo 4 = 100
-  c'4 c' c' c'
-  c'4 c' c' c'
-  \tempo "" 4 = 30
-  c'4 c' c' c'
-  c'4 c' c' c'
-}
-@end lilypond
-
-@item
-In figured bass you can now also use a backslash through a number to
-indicate a raised 6th step.
-
-@lilypond[]
-\new FiguredBass \figuremode { < 6\\ 5\\ > < 6/ > }
-@end lilypond
-
-@item
-Arpeggios may now use ``parenthesis'' style brackets:
-
-@lilypond[relative=1]
-\override Arpeggio #'stencil = #ly:arpeggio::brew-chord-slur
-
-% Note: does not work for cross-staff arpeggios.
-\override Arpeggio #'X-extent = #ly:grob::stencil-width
-<c g' c>2\arpeggio ~ c
-@end lilypond
-
-@item
-Single-system scores are now naturally spaced instead of being
-stretched to fill the line width.  This can be changed by setting
-@code{ragged-right = ##f}.
-
-@item
-Enclosing text within boxes with rounded corners is now possible,
-using the @code{\rounded-box} markup command.
-
-@item
-@command{lilypond-book} can run any program instead of @command{latex}
-to guess the line width, thanks to @code{--latex-program} command line
-option.
-
-@item
-Underlining is now possible with the @code{\underline} markup command.
-
-@item
-It is now possible to specify, using the @code{page-count} variable in
-the paper block, the number of pages that will be used.
-
-@item
-A new page breaking function, @code{ly:minimal-breaking}, is dedicated
-to books with many pages or a lot of text.
-
-@item
-A table of contents is included using @code{\markuplines \table-of-contents}.
-Elements are added to it using the @code{\tocItem} command.
-
-@item
-Text spreading over several pages is entered using the
-@code{\markuplines} keyword.  Builtin markup list commands, such as
-@code{\justified-lines} or @code{\wordwrap-lines} may be used, and new
-ones created using the @code{define-markup-list-command} Scheme macro.
-
-@item
-Particular points of a book may be marked with the @code{\label}
-command.  Then, the page where these points are placed can be
-referred to using the @code{\page-ref} markup command.
-
-@item
-Page breaking and page turning commands (@code{\pageBreak},
-@code{\noPageBreak}, etc.) can be used at top-level, between scores and
-top-level markups.
-
-@item
-The following options are now changed as a @code{-d} sub-option:
-@code{--backend}, @code{--safe}, @code{--preview} and
-@code{--no-pages} (which became @code{-dno-print-pages}).  The @code{-b}
-option does not exist any more.
-
-@item
-Improved testing procedures now catch changes in CPU and memory
-performance, page layout, MIDI results and warnings.  This helps to
-reduce the number of regression errors during development, resulting
-in more stable releases.
-
-See @uref{INSTALL.html#Testing-LilyPond} for more information.
-
-@item
-Nested properties, such as @code{'details} in @code{Slur}, can be
-reverted as well.  The syntax for this is
-
-@example
-\revert Slur #'(details closeness-factor)
-@end example
-
-@item
-All line spanners are more flexible now in the configuration of
-their end points.  This includes glissando, voice followers, text
-crescendos and other text spanners.  The old syntax for setting
-text on line spanners is no longer valid.
-
-@lilypond[]
+@item An eyeglasses markup was added, incidating strongly to look at the 
+conductor for instructions:
+@lilypond[quote]
 \relative c'' {
-  \override Glissando #'bound-details #'right #'text = \markup { \center-align \bold down }
-  \override Glissando #'bound-details #'right #'Y = #-4
-  \override Glissando #'bound-details #'right #'padding = #0.0
-  \override Glissando #'bound-details #'left #'arrow = ##t
-  \override Glissando #'bound-details #'left #'padding = #3.0
-  \override Glissando #'style = #'trill
-  \override Glissando #'springs-and-rods = #ly:spanner::set-spacing-rods
-  \override Glissando #'minimum-length = #12
-  
-  c1 \glissando c'
+  \mark \markup {\eyeglasses}
+  c4_\markup{\eyeglasses}
 }
 @end lilypond
 
-This feature was sponsored by Trevor Bača.
-
 @item
-The environment variable @code{LILYPONDPREFIX} has been renamed
-@code{LILYPOND_DATADIR}.
-
-@item
-Notes or rests, such as a typical end note, that fill an entire
-measure are preceded by some more space.
-
-@lilypond[]
-\relative c' {
-  \time 4/4
-  s1
-  c2. c4
-  \time 3/4
-  c2.
-}
-@end lilypond
-
-@item
-All @code{\score}s in a lilypond-book fragment are now inserted
-into the document.  Also, toplevel markups don't result in an entire
-page.
-
-@item
-Alterations (such as a sharp or flat) may now be arbitrary
-fractions.  This allows some forms of microtonal music.  For example,
-Turkish makam music uses 1/9th tone alterations.
-
-@lilypondfile{makam-example.ly}
-
-@item
-Tie directions may be set with @code{^~} and @code{_~}.
-
-@item
-Tablature now supports harmonics and slides:
-
-@lilypond[relative=1]
-\new TabVoice {
-  <c g'\harmonic>4 d\2\glissando e2\2
+A snap-pizzicato (also known as Bartok-pizzicato) articulation was added:
+@lilypond[quote]
+\relative c'' {
+  c\snappizzicato
 }
 @end lilypond
 
-This feature was sponsored by Mike Amundsen
-
 @item
-Horizontal spacing now follows object outlines more accurately.
-This allows tighter horizontal spacing.
-
-@lilypond[]
-{
-  \stemUp
-  c''4... ceses'! s16
+Tuplet number formatting functions are now available to print other fractions and to add notes to the number or fraction:
+@lilypond[quote]
+\relative c'' {
+  \once \override TupletNumber #'text = #(tuplet-number::non-default-tuplet-denominator-text 7)
+  \times 2/3  { c4. c4. c4. c4. } % begin verbatim
+
+  \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")
+  \times 2/3  { c4. c4. c4. c4. }
+
+  \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")
+  \times 2/3  { c8 c8 c8 c8 c8 c8 }
+
+  \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")
+  \times 2/3  { c4. c4. c4. c4. }
 }
 @end lilypond
 
 @item
-Objects that belong outside of the staff are now positioned
-automatically to avoid collisions.
-
-@lilypond[relative=1]
-c''4
-\once \override TextScript #'self-alignment-X = #CENTER
-a,4^"this doesn't collide with the c"
-b4^"this goes above the previous markup"
-a8_"this goes below the dynamic"
-a8\f
-@end lilypond
-
-@item
-Staves are spaced vertically using a skyline algorithm.  This helps
-prevent uneven vertical spacing.
-
-@lilypond[ragged-right]
+FretBoards now have a chordChanges property to keep repeated FretBoard objects
+from being typeset.
 
-%% todo: fix 'landscape PDF.
-#(set-default-paper-size "a6")
-\header {
-  tagline = ##f
-}
 
-\book {
-  \score {
-    {
-      a,,1
-      a'4 b' c'' d'' \break
-      \repeat unfold 2 { a'4 b' c'' d''}
-      b''''1
-    }
-  }
-}
-@end lilypond
 
 @end itemize
 
@@ -460,6 +115,7 @@ prevent uneven vertical spacing.
 
 @ifhtml
 For older news, go to
+@uref{http://lilypond.org/doc/v2.12/Documentation/topdocs/NEWS.html},
 @uref{http://lilypond.org/doc/v2.10/Documentation/topdocs/NEWS.html},
 or @uref{../,go back} to the Documentation index.
 
index 932734328ab4e99e05441a362fc9e8e8630c30a1..5fd731643cb28e86320aababb0cd5e7df78ddf5c 100644 (file)
@@ -32,7 +32,7 @@ For compiling and running LilyPond see the installation instructions.
 These instructions can be found when you unpack lilypond, as
 @file{lilypond-x.y.z/INSTALL.txt}. They are also available on the web
 at
-@uref{http://lilypond.org/doc/v2.10/Documentation/topdocs/INSTALL.html}.
+@uref{http://lilypond.org/doc/v2.12/Documentation/topdocs/INSTALL.html}.
 
 @section Documentation
 
diff --git a/Documentation/topdocs/SConscript b/Documentation/topdocs/SConscript
deleted file mode 100644 (file)
index 7ef165c..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-# -*-python-*-
-
-Import ('env', 'src_glob', 'install')
-
-tely = src_glob ('*.tely')
-texi = src_glob ('*.texi') + map (env.TEXI, tely)
-
-txt = map (env.TXT, texi)
-html = map (env.HTML, texi)
-
-env.Alias ('doc', txt)
-env.Alias ('doc', html)
-
-install (txt, env['sharedir_doc_package'])
index 09658ef972d7b7a07b18924a3934d702c9c6cdde..72a6131ab0e50cb077cde738a4e395e99d7980b1 100644 (file)
@@ -38,24 +38,43 @@ translations.template.html.in; DO NOT EDIT !-->
   is finished.
 </p>
 
- <p><i>Last updated Mon Oct 27 16:09:50 UTC 2008
+ <p><i>Last updated Sat Feb 28 05:50:27 UTC 2009
 </i></p>
+<table align="center" border="2">
+ <tr align="center">
+  <th>New features in 2.12 since 2.10</th>  <th>es</th>
+ </tr>
+ <tr align="left">
+  <td>Section titles<br>(1181)</td>
+  <td>Francisco Vila<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
+  </td>
+ </tr>
+</table>
+<p></p>
+
 <table align="center" border="2">
  <tr align="center">
   <th>GNU LilyPond --- Learning Manual</th>  <th>fr</th>
   <th>de</th>
+  <th>ja</th>
   <th>es</th>
  </tr>
  <tr align="left">
-  <td>Section titles<br>(415)</td>
+  <td>Section titles<br>(429)</td>
   <td>John Mandereau<br>
    Jean-Charles Malahieude<br>
    <span style="background-color: #1fff1f">translated</span><br>
-   <span style="background-color: #39ff22">partially up to date</span><br>
+   <span style="background-color: #47ff24">partially up to date</span><br>
   </td>
   <td>Till Rettig<br>
    <span style="background-color: #1fff1f">translated</span><br>
-   <span style="background-color: #39ff22">partially up to date</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
+  </td>
+  <td>Yoshiki Sawada<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #33ff21">partially up to date</span><br>
   </td>
   <td>Francisco Vila<br>
    <span style="background-color: #1fff1f">translated</span><br>
@@ -65,7 +84,8 @@ translations.template.html.in; DO NOT EDIT !-->
  <tr align="left">
   <td>Preface<br>(411)</td>
   <td>Valentin Villenave<br>
-   <small>Ludovic Sardain</small><br>
+   <small>Ludovic Sardain<br>
+   Damien Heurtebise</small><br>
    <span style="background-color: #1fff1f">translated</span><br>
    <span style="background-color: #1fff1f">up to date</span><br>
   </td>
@@ -73,6 +93,10 @@ translations.template.html.in; DO NOT EDIT !-->
    <span style="background-color: #1fff1f">translated</span><br>
    <span style="background-color: #1fff1f">up to date</span><br>
   </td>
+  <td>Yoshiki Sawada<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
+  </td>
   <td>Francisco Vila<br>
    <span style="background-color: #1fff1f">translated</span><br>
    <span style="background-color: #1fff1f">up to date</span><br>
@@ -83,14 +107,19 @@ translations.template.html.in; DO NOT EDIT !-->
   <td>Ludovic Sardain<br>
    John Mandereau<br>
    <small>Jean-Charles Malahieude<br>
-   Jean-Yves Baudais</small><br>
+   Jean-Yves Baudais<br>
+   Damien Heurtebise</small><br>
    <span style="background-color: #1fff1f">translated</span><br>
-   <span style="background-color: #25fe1f">partially up to date</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
   </td>
   <td>Till Rettig<br>
    Reinhold Kainhofer<br>
    <span style="background-color: #1fff1f">translated</span><br>
-   <span style="background-color: #25fe1f">partially up to date</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
+  </td>
+  <td>Yoshiki Sawada<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
   </td>
   <td>Francisco Vila<br>
    <span style="background-color: #1fff1f">translated</span><br>
@@ -106,11 +135,15 @@ translations.template.html.in; DO NOT EDIT !-->
    Valentin Villenave<br>
    John Mandereau</small><br>
    <span style="background-color: #1fff1f">translated</span><br>
-   <span style="background-color: #47ff24">partially up to date</span><br>
+   <span style="background-color: #25fe1f">partially up to date</span><br>
   </td>
   <td>Till Rettig<br>
    <span style="background-color: #1fff1f">translated</span><br>
-   <span style="background-color: #47ff24">partially up to date</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
+  </td>
+  <td>Yoshiki Sawada<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
   </td>
   <td>Francisco Vila<br>
    <span style="background-color: #1fff1f">translated</span><br>
@@ -123,12 +156,16 @@ translations.template.html.in; DO NOT EDIT !-->
    Jean-Charles Malahieude<br>
    <small>John Mandereau</small><br>
    <span style="background-color: #1fff1f">translated</span><br>
-   <span style="background-color: #47ff24">partially up to date</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
   </td>
   <td>Till Rettig<br>
    Reinhold Kainhofer<br>
    <span style="background-color: #1fff1f">translated</span><br>
-   <span style="background-color: #47ff24">partially up to date</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
+  </td>
+  <td>Yoshiki Sawada<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
   </td>
   <td>Francisco Vila<br>
    <span style="background-color: #1fff1f">translated</span><br>
@@ -136,17 +173,22 @@ translations.template.html.in; DO NOT EDIT !-->
   </td>
  </tr>
  <tr align="left">
-  <td>4 Tweaking output<br>(12705)</td>
+  <td>4 Tweaking output<br>(14775)</td>
   <td>Valentin Villenave<br>
    Nicolas Klutchnikoff<br>
+   Damien Heurtebise<br>
    <small>Jean-Charles Malahieude<br>
    John Mandereau</small><br>
-   <span style="background-color: #dfef77">partially translated (31 %)</span><br>
-   <span style="background-color: #ff6f57">partially up to date</span><br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #25fe1f">partially up to date</span><br>
   </td>
   <td>Till Rettig<br>
    <span style="background-color: #1fff1f">translated</span><br>
-   <span style="background-color: #91ff2e">partially up to date</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
+  </td>
+  <td>Yoshiki Sawada<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
   </td>
   <td>Francisco Vila<br>
    <span style="background-color: #1fff1f">translated</span><br>
@@ -154,31 +196,39 @@ translations.template.html.in; DO NOT EDIT !-->
   </td>
  </tr>
  <tr align="left">
-  <td>5 Working on LilyPond projects<br>(3007)</td>
+  <td>5 Working on LilyPond projects<br>(3144)</td>
   <td>Ludovic Sardain<br>
    <small>Jean-Yves Baudais<br>
    Valentin Villenave<br>
    John Mandereau<br>
    Jean-Charles Malahieude</small><br>
    <span style="background-color: #1fff1f">translated</span><br>
-   <span style="background-color: #b2fe32">partially up to date</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
   </td>
   <td>Till Rettig<br>
    <span style="background-color: #1fff1f">translated</span><br>
    <span style="background-color: #1fff1f">up to date</span><br>
   </td>
+  <td>Yoshiki Sawada<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #25fe1f">partially up to date</span><br>
+  </td>
   <td>Francisco Vila<br>
    <span style="background-color: #1fff1f">translated</span><br>
    <span style="background-color: #1fff1f">up to date</span><br>
   </td>
  </tr>
  <tr align="left">
-  <td>A Templates<br>(483)</td>
-  <td>   <span style="background-color: #dfef77">partially translated (11 %)</span><br>
+  <td>A Templates<br>(498)</td>
+  <td>   <span style="background-color: #dfef77">partially translated (12 %)</span><br>
   </td>
   <td>Till Rettig<br>
-   <span style="background-color: #1fff1f">translated</span><br>
-   <span style="background-color: #1fff1f">up to date</span><br>
+   <span style="background-color: #dfef77">partially translated (40 %)</span><br>
+   <span style="background-color: #25fe1f">partially up to date</span><br>
+  </td>
+  <td>Yoshiki Sawada<br>
+   <span style="background-color: #dfef77">partially translated (40 %)</span><br>
+   <span style="background-color: #25fe1f">partially up to date</span><br>
   </td>
   <td>Francisco Vila<br>
    <span style="background-color: #1fff1f">translated</span><br>
@@ -193,6 +243,8 @@ translations.template.html.in; DO NOT EDIT !-->
    <span style="background-color: #1fff1f">translated</span><br>
    <span style="background-color: #1fff1f">up to date</span><br>
   </td>
+  <td>   <span style="background-color: #d0f0f8">not translated</span><br>
+  </td>
   <td>Francisco Vila<br>
    <span style="background-color: #1fff1f">translated</span><br>
    <span style="background-color: #1fff1f">up to date</span><br>
@@ -205,10 +257,11 @@ translations.template.html.in; DO NOT EDIT !-->
  <tr align="center">
   <th>GNU LilyPond --- Application Usage</th>  <th>fr</th>
   <th>de</th>
+  <th>ja</th>
   <th>es</th>
  </tr>
  <tr align="left">
-  <td>Section titles<br>(393)</td>
+  <td>Section titles<br>(407)</td>
   <td>John Mandereau<br>
    Jean-Charles Malahieude<br>
    <span style="background-color: #1fff1f">translated</span><br>
@@ -216,7 +269,11 @@ translations.template.html.in; DO NOT EDIT !-->
   </td>
   <td>Till Rettig<br>
    <span style="background-color: #1fff1f">translated</span><br>
-   <span style="background-color: #47ff24">partially up to date</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
+  </td>
+  <td>Yoshiki Sawada<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #33ff21">partially up to date</span><br>
   </td>
   <td>Francisco Vila<br>
    <span style="background-color: #1fff1f">translated</span><br>
@@ -224,14 +281,19 @@ translations.template.html.in; DO NOT EDIT !-->
   </td>
  </tr>
  <tr align="left">
-  <td>1 Install<br>(1867)</td>
-  <td>@c   Please **do not** translate anything below this line.  Users<br>
+  <td>1 Install<br>(1901)</td>
+  <td>John Mandereau<br>
+   <small>Jean-Charles Malahieude</small><br>
    <span style="background-color: #dfef77">partially translated (11 %)</span><br>
-   <span style="background-color: #efff3a">partially up to date</span><br>
+   <span style="background-color: #2cff20">partially up to date</span><br>
   </td>
   <td>Till Rettig<br>
    Reinhold Kainhofer<br>
    <span style="background-color: #dfef77">partially translated (7 %)</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
+  </td>
+  <td>Yoshiki Sawada<br>
+   <span style="background-color: #dfef77">partially translated (11 %)</span><br>
    <span style="background-color: #33ff21">partially up to date</span><br>
   </td>
   <td>Francisco Vila<br>
@@ -241,12 +303,18 @@ translations.template.html.in; DO NOT EDIT !-->
  </tr>
  <tr align="left">
   <td>2 Setup<br>(1149)</td>
-  <td>   <span style="background-color: #d0f0f8">not translated</span><br>
+  <td>Jean-Charles Malahieude<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
   </td>
   <td>Till Rettig<br>
    Reinhold Kainhofer<br>
    <span style="background-color: #1fff1f">translated</span><br>
-   <span style="background-color: #4efe25">partially up to date</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
+  </td>
+  <td>Yoshiki Sawada<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
   </td>
   <td>Francisco Vila<br>
    <span style="background-color: #1fff1f">translated</span><br>
@@ -254,12 +322,17 @@ translations.template.html.in; DO NOT EDIT !-->
   </td>
  </tr>
  <tr align="left">
-  <td>3 Running LilyPond<br>(2896)</td>
+  <td>3 Running LilyPond<br>(2827)</td>
   <td>   <span style="background-color: #d0f0f8">not translated</span><br>
   </td>
   <td>Reinhold Kainhofer<br>
-   <span style="background-color: #dfef77">partially translated (84 %)</span><br>
-   <span style="background-color: #2cff20">partially up to date</span><br>
+   Till Rettig<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
+  </td>
+  <td>Yoshiki Sawada<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
   </td>
   <td>Francisco Vila<br>
    <span style="background-color: #1fff1f">translated</span><br>
@@ -267,12 +340,17 @@ translations.template.html.in; DO NOT EDIT !-->
   </td>
  </tr>
  <tr align="left">
-  <td>4 @command{lilypond-book}: Integrating text and music<br>(3194)</td>
+  <td>4 @command{lilypond-book}: Integrating text and music<br>(3248)</td>
   <td>   <span style="background-color: #d0f0f8">not translated</span><br>
   </td>
   <td>Reinhold Kainhofer<br>
+   <small>Till Rettig</small><br>
    <span style="background-color: #1fff1f">translated</span><br>
-   <span style="background-color: #25fe1f">partially up to date</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
+  </td>
+  <td>Yoshiki Sawada<br>
+   <span style="background-color: #d0f0f8">not translated</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
   </td>
   <td>Francisco Vila<br>
    <span style="background-color: #1fff1f">translated</span><br>
@@ -283,11 +361,16 @@ translations.template.html.in; DO NOT EDIT !-->
   <td>5 Converting from other formats<br>(1171)</td>
   <td>Jean-Charles Malahieude<br>
    <span style="background-color: #1fff1f">translated</span><br>
-   <span style="background-color: #a5ff31">partially up to date</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
   </td>
   <td>Reinhold Kainhofer<br>
+   <small>Till Rettig</small><br>
    <span style="background-color: #1fff1f">translated</span><br>
-   <span style="background-color: #33ff21">partially up to date</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
+  </td>
+  <td>Yoshiki Sawada<br>
+   <span style="background-color: #d0f0f8">not translated</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
   </td>
   <td>Francisco Vila<br>
    <span style="background-color: #1fff1f">translated</span><br>
@@ -304,15 +387,15 @@ translations.template.html.in; DO NOT EDIT !-->
   <th>es</th>
  </tr>
  <tr align="left">
-  <td>Section titles<br>(680)</td>
+  <td>Section titles<br>(695)</td>
   <td>John Mandereau<br>
    Jean-Charles Malahieude<br>
    <span style="background-color: #1fff1f">translated</span><br>
-   <span style="background-color: #68ff28">partially up to date</span><br>
+   <span style="background-color: #33ff21">partially up to date</span><br>
   </td>
   <td>Till Rettig<br>
    <span style="background-color: #1fff1f">translated</span><br>
-   <span style="background-color: #39ff22">partially up to date</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
   </td>
   <td>Francisco Vila<br>
    <span style="background-color: #1fff1f">translated</span><br>
@@ -336,12 +419,12 @@ translations.template.html.in; DO NOT EDIT !-->
   </td>
  </tr>
  <tr align="left">
-  <td>1.1 Pitches<br>(3147)</td>
+  <td>1.1 Pitches<br>(3123)</td>
   <td>Frédéric Chiasson<br>
    <small>Valentin Villenave<br>
    Jean-Charles Malahieude</small><br>
    <span style="background-color: #1fff1f">translated</span><br>
-   <span style="background-color: #ff6f57">partially up to date</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
   </td>
   <td>Till Rettig<br>
    <span style="background-color: #1fff1f">translated</span><br>
@@ -353,7 +436,7 @@ translations.template.html.in; DO NOT EDIT !-->
   </td>
  </tr>
  <tr align="left">
-  <td>1.2 Rhythms<br>(6527)</td>
+  <td>1.2 Rhythms<br>(5215)</td>
   <td>Frédéric Chiasson<br>
    <small>Valentin Villenave<br>
    Jean-Charles Malahieude</small><br>
@@ -361,8 +444,8 @@ translations.template.html.in; DO NOT EDIT !-->
    <span style="background-color: #ff6d58">partially up to date</span><br>
   </td>
   <td>Till Rettig<br>
-   <span style="background-color: #dfef77">partially translated (90 %)</span><br>
-   <span style="background-color: #ff6d58">partially up to date</span><br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
   </td>
   <td>Francisco Vila<br>
    <span style="background-color: #1fff1f">translated</span><br>
@@ -370,12 +453,12 @@ translations.template.html.in; DO NOT EDIT !-->
   </td>
  </tr>
  <tr align="left">
-  <td>1.3 Expressive marks<br>(1110)</td>
+  <td>1.3 Expressive marks<br>(1146)</td>
   <td>Valentin Villenave<br>
    <small>Jean-Charles Malahieude<br>
    John Mandereau</small><br>
    <span style="background-color: #1fff1f">translated</span><br>
-   <span style="background-color: #ff7257">partially up to date</span><br>
+   <span style="background-color: #ff6f57">partially up to date</span><br>
   </td>
   <td>Till Rettig<br>
    <span style="background-color: #1fff1f">translated</span><br>
@@ -387,7 +470,7 @@ translations.template.html.in; DO NOT EDIT !-->
   </td>
  </tr>
  <tr align="left">
-  <td>1.4 Repeats<br>(556)</td>
+  <td>1.4 Repeats<br>(555)</td>
   <td>Valentin Villenave<br>
    <small>Jean-Charles Malahieude<br>
    John Mandereau</small><br>
@@ -404,7 +487,7 @@ translations.template.html.in; DO NOT EDIT !-->
   </td>
  </tr>
  <tr align="left">
-  <td>1.5 Simultaneous notes<br>(1452)</td>
+  <td>1.5 Simultaneous notes<br>(1456)</td>
   <td>Frédéric Chiasson<br>
    Valentin Villenave<br>
    <small>Jean-Charles Malahieude<br>
@@ -422,7 +505,7 @@ translations.template.html.in; DO NOT EDIT !-->
   </td>
  </tr>
  <tr align="left">
-  <td>1.6 Staff notation<br>(1603)</td>
+  <td>1.6 Staff notation<br>(1701)</td>
   <td>Valentin Villenave<br>
    Jean-Charles Malahieude<br>
    <small>John Mandereau</small><br>
@@ -431,7 +514,7 @@ translations.template.html.in; DO NOT EDIT !-->
   </td>
   <td>Till Rettig<br>
    <span style="background-color: #1fff1f">translated</span><br>
-   <span style="background-color: #ff6f57">partially up to date</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
   </td>
   <td>Francisco Vila<br>
    <span style="background-color: #1fff1f">translated</span><br>
@@ -439,7 +522,7 @@ translations.template.html.in; DO NOT EDIT !-->
   </td>
  </tr>
  <tr align="left">
-  <td>1.7 Editorial annotations<br>(902)</td>
+  <td>1.7 Editorial annotations<br>(905)</td>
   <td>Jean-Charles Malahieude<br>
    <span style="background-color: #1fff1f">translated</span><br>
    <span style="background-color: #ff6f57">partially up to date</span><br>
@@ -454,14 +537,16 @@ translations.template.html.in; DO NOT EDIT !-->
   </td>
  </tr>
  <tr align="left">
-  <td>1.8 Text<br>(2410)</td>
+  <td>1.8 Text<br>(2376)</td>
   <td>Jean-Charles Malahieude<br>
    <small>Valentin Villenave<br>
    John Mandereau</small><br>
-   <span style="background-color: #dfef77">partially translated (84 %)</span><br>
+   <span style="background-color: #dfef77">partially translated (97 %)</span><br>
    <span style="background-color: #ff6f57">partially up to date</span><br>
   </td>
-  <td>   <span style="background-color: #d0f0f8">not translated</span><br>
+  <td>Till Rettig<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
   </td>
   <td>Francisco Vila<br>
    <span style="background-color: #1fff1f">translated</span><br>
@@ -473,11 +558,11 @@ translations.template.html.in; DO NOT EDIT !-->
   <td>John Mandereau<br>
    Jean-Charles Malahieude<br>
    <span style="background-color: #1fff1f">translated</span><br>
-   <span style="background-color: #47ff24">partially up to date</span><br>
+   <span style="background-color: #2cff20">partially up to date</span><br>
   </td>
   <td>Till Rettig<br>
    <span style="background-color: #1fff1f">translated</span><br>
-   <span style="background-color: #47ff24">partially up to date</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
   </td>
   <td>Francisco Vila<br>
    <span style="background-color: #1fff1f">translated</span><br>
@@ -485,13 +570,15 @@ translations.template.html.in; DO NOT EDIT !-->
   </td>
  </tr>
  <tr align="left">
-  <td>2.1 Vocal music<br>(2679)</td>
+  <td>2.1 Vocal music<br>(2725)</td>
   <td>Valentin Villenave<br>
    <small>Jean-Charles Malahieude</small><br>
-   <span style="background-color: #dfef77">partially translated (56 %)</span><br>
+   <span style="background-color: #dfef77">partially translated (55 %)</span><br>
    <span style="background-color: #ff6d58">partially up to date</span><br>
   </td>
-  <td>   <span style="background-color: #d0f0f8">not translated</span><br>
+  <td>Till Rettig<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
   </td>
   <td>Francisco Vila<br>
    <span style="background-color: #1fff1f">translated</span><br>
@@ -499,16 +586,17 @@ translations.template.html.in; DO NOT EDIT !-->
   </td>
  </tr>
  <tr align="left">
-  <td>2.2 Keyboard and other multi-staff instruments<br>(679)</td>
+  <td>2.2 Keyboard and other multi-staff instruments<br>(747)</td>
   <td>Valentin Villenave<br>
+   Jean-Charles Malahieude<br>
    <small>Jean-Charles Malahieude<br>
    John Mandereau</small><br>
-   <span style="background-color: #dfef77">partially translated (88 %)</span><br>
-   <span style="background-color: #ff6f57">partially up to date</span><br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
   </td>
   <td>Till Rettig<br>
    <span style="background-color: #1fff1f">translated</span><br>
-   <span style="background-color: #ff6f57">partially up to date</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
   </td>
   <td>Francisco Vila<br>
    <span style="background-color: #1fff1f">translated</span><br>
@@ -516,16 +604,17 @@ translations.template.html.in; DO NOT EDIT !-->
   </td>
  </tr>
  <tr align="left">
-  <td>2.3 Unfretted string instruments<br>(234)</td>
+  <td>2.3 Unfretted string instruments<br>(235)</td>
   <td>Valentin Villenave<br>
+   Matthieu Jacquot<br>
    <small>Jean-Charles Malahieude<br>
    John Mandereau</small><br>
-   <span style="background-color: #dfef77">partially translated (16 %)</span><br>
-   <span style="background-color: #ff6d58">partially up to date</span><br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
   </td>
   <td>Till Rettig<br>
-   <span style="background-color: #d0f0f8">not translated</span><br>
-   <span style="background-color: #ff6d58">partially up to date</span><br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
   </td>
   <td>Francisco Vila<br>
    <span style="background-color: #1fff1f">translated</span><br>
@@ -533,16 +622,15 @@ translations.template.html.in; DO NOT EDIT !-->
   </td>
  </tr>
  <tr align="left">
-  <td>2.4 Fretted string instruments<br>(1748)</td>
-  <td>Valentin Villenave<br>
-   <small>Jean-Charles Malahieude<br>
-   John Mandereau</small><br>
-   <span style="background-color: #dfef77">partially translated (16 %)</span><br>
-   <span style="background-color: #ff6d58">partially up to date</span><br>
+  <td>2.4 Fretted string instruments<br>(1850)</td>
+  <td>Matthieu Jacquot<br>
+   <small>Jean-Charles Malahieude</small><br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
   </td>
   <td>Till Rettig<br>
-   <span style="background-color: #dfef77">partially translated (16 %)</span><br>
-   <span style="background-color: #ff6d58">partially up to date</span><br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
   </td>
   <td>Francisco Vila<br>
    <span style="background-color: #1fff1f">translated</span><br>
@@ -558,8 +646,8 @@ translations.template.html.in; DO NOT EDIT !-->
    <span style="background-color: #ff6d58">partially up to date</span><br>
   </td>
   <td>Till Rettig<br>
-   <span style="background-color: #dfef77">partially translated (42 %)</span><br>
-   <span style="background-color: #ff6d58">partially up to date</span><br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
   </td>
   <td>Francisco Vila<br>
    <span style="background-color: #1fff1f">translated</span><br>
@@ -571,12 +659,12 @@ translations.template.html.in; DO NOT EDIT !-->
   <td>Valentin Villenave<br>
    <small>Jean-Charles Malahieude<br>
    John Mandereau</small><br>
-   <span style="background-color: #dfef77">partially translated (1 %)</span><br>
-   <span style="background-color: #ff6d58">partially up to date</span><br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
   </td>
   <td>Till Rettig<br>
-   <span style="background-color: #dfef77">partially translated (1 %)</span><br>
-   <span style="background-color: #ff6d58">partially up to date</span><br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
   </td>
   <td>Francisco Vila<br>
    <span style="background-color: #1fff1f">translated</span><br>
@@ -584,16 +672,16 @@ translations.template.html.in; DO NOT EDIT !-->
   </td>
  </tr>
  <tr align="left">
-  <td>2.7 Chord notation<br>(1326)</td>
+  <td>2.7 Chord notation<br>(1464)</td>
   <td>Valentin Villenave<br>
    <small>Jean-Charles Malahieude<br>
    John Mandereau</small><br>
-   <span style="background-color: #dfef77">partially translated (64 %)</span><br>
+   <span style="background-color: #dfef77">partially translated (61 %)</span><br>
    <span style="background-color: #ff6f57">partially up to date</span><br>
   </td>
   <td>Till Rettig<br>
-   <span style="background-color: #dfef77">partially translated (64 %)</span><br>
-   <span style="background-color: #ff6f57">partially up to date</span><br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
   </td>
   <td>Francisco Vila<br>
    <span style="background-color: #1fff1f">translated</span><br>
@@ -601,15 +689,15 @@ translations.template.html.in; DO NOT EDIT !-->
   </td>
  </tr>
  <tr align="left">
-  <td>2.8 Ancient notation<br>(4240)</td>
+  <td>2.8 Ancient notation<br>(4487)</td>
   <td>John Mandereau<br>
    Jean-Charles Malahieude<br>
    <span style="background-color: #dfef77">partially translated (82 %)</span><br>
    <span style="background-color: #ff6d58">partially up to date</span><br>
   </td>
   <td>Till Rettig<br>
-   <span style="background-color: #dfef77">partially translated (82 %)</span><br>
-   <span style="background-color: #ff6d58">partially up to date</span><br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
   </td>
   <td>Francisco Vila<br>
    <span style="background-color: #1fff1f">translated</span><br>
@@ -620,7 +708,9 @@ translations.template.html.in; DO NOT EDIT !-->
   <td>2.9 World music<br>(1115)</td>
   <td>   <span style="background-color: #d0f0f8">not translated</span><br>
   </td>
-  <td>   <span style="background-color: #d0f0f8">not translated</span><br>
+  <td>Till Rettig<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
   </td>
   <td>Francisco Vila<br>
    <span style="background-color: #1fff1f">translated</span><br>
@@ -628,15 +718,15 @@ translations.template.html.in; DO NOT EDIT !-->
   </td>
  </tr>
  <tr align="left">
-  <td>3 General input and output<br>(5689)</td>
+  <td>3 General input and output<br>(5873)</td>
   <td>Jean-Charles Malahieude<br>
    Valentin Villenave<br>
-   <span style="background-color: #dfef77">partially translated (6 %)</span><br>
+   <span style="background-color: #dfef77">partially translated (5 %)</span><br>
    <span style="background-color: #ff8353">partially up to date</span><br>
   </td>
   <td>Till Rettig<br>
-   <span style="background-color: #dfef77">partially translated (6 %)</span><br>
-   <span style="background-color: #ff8353">partially up to date</span><br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
   </td>
   <td>Francisco Vila<br>
    <span style="background-color: #1fff1f">translated</span><br>
@@ -644,15 +734,15 @@ translations.template.html.in; DO NOT EDIT !-->
   </td>
  </tr>
  <tr align="left">
-  <td>4 Spacing issues<br>(8297)</td>
+  <td>4 Spacing issues<br>(8569)</td>
   <td>Frédéric Chiasson<br>
    Jean-Charles Malahieude<br>
-   <span style="background-color: #dfef77">partially translated (19 %)</span><br>
-   <span style="background-color: #f6fe3b">partially up to date</span><br>
+   <span style="background-color: #dfef77">partially translated (18 %)</span><br>
+   <span style="background-color: #fff53e">partially up to date</span><br>
   </td>
   <td>Till Rettig<br>
-   <span style="background-color: #dfef77">partially translated (14 %)</span><br>
-   <span style="background-color: #f6fe3b">partially up to date</span><br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
   </td>
   <td>Francisco Vila<br>
    <span style="background-color: #1fff1f">translated</span><br>
@@ -660,11 +750,11 @@ translations.template.html.in; DO NOT EDIT !-->
   </td>
  </tr>
  <tr align="left">
-  <td>5 Changing defaults<br>(11307)</td>
+  <td>5 Changing defaults<br>(11747)</td>
   <td>Valentin Villenave<br>
    <small>Gilles Thibault</small><br>
-   <span style="background-color: #dfef77">partially translated (33 %)</span><br>
-   <span style="background-color: #ff974f">partially up to date</span><br>
+   <span style="background-color: #dfef77">partially translated (45 %)</span><br>
+   <span style="background-color: #ff954f">partially up to date</span><br>
   </td>
   <td>   <span style="background-color: #d0f0f8">not translated</span><br>
   </td>
@@ -675,7 +765,10 @@ translations.template.html.in; DO NOT EDIT !-->
  </tr>
  <tr align="left">
   <td>6 Interfaces for programmers<br>(5202)</td>
-  <td>   <span style="background-color: #d0f0f8">not translated</span><br>
+  <td>Valentin Villenave<br>
+   <small>Gilles Thibault</small><br>
+   <span style="background-color: #dfef77">partially translated (9 %)</span><br>
+   <span style="background-color: #76fe2a">partially up to date</span><br>
   </td>
   <td>   <span style="background-color: #d0f0f8">not translated</span><br>
   </td>
@@ -698,15 +791,15 @@ translations.template.html.in; DO NOT EDIT !-->
   </td>
  </tr>
  <tr align="left">
-  <td>B Notation manual tables<br>(1155)</td>
+  <td>B Notation manual tables<br>(1190)</td>
   <td>Frédéric Chiasson<br>
    Jean-Charles Malahieude<br>
-   <span style="background-color: #dfef77">partially translated (7 %)</span><br>
-   <span style="background-color: #e1ff39">partially up to date</span><br>
+   <span style="background-color: #dfef77">partially translated (6 %)</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
   </td>
   <td>Till Rettig<br>
-   <span style="background-color: #dfef77">partially translated (98 %)</span><br>
-   <span style="background-color: #e1ff39">partially up to date</span><br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
   </td>
   <td>Francisco Vila<br>
    <span style="background-color: #1fff1f">translated</span><br>
@@ -717,7 +810,7 @@ translations.template.html.in; DO NOT EDIT !-->
   <td>C Cheat sheet<br>(250)</td>
   <td>Valentin Villenave<br>
    <span style="background-color: #1fff1f">translated</span><br>
-   <span style="background-color: #1fff1f">up to date</span><br>
+   <span style="background-color: #33ff21">partially up to date</span><br>
   </td>
   <td>Till Rettig<br>
    <span style="background-color: #1fff1f">translated</span><br>
index eacbf70f241df48627a285b1a31a702d309b514c..6e0dbe3a56aa830af3f47bd78af35f1b9af1cbda 100644 (file)
@@ -14,12 +14,10 @@ OUT_PDF_IMAGES=$(IMAGES:%.png=$(outdir)/%.pdf) $(addprefix $(outdir)/,$(PDF_ILLU
 
 OUT_PNG_IMAGES=$(OUT_PDF_IMAGES:%.pdf=%.png)
 
+OUT_MASTER_TEXI_FILES = $(outdir)/lilypond-internals.texi
 OUT_TEXI_FILES=$(ITEXI_FILES:%.itexi=$(outdir)/%.texi)\
  $(ITELY_FILES:%.itely=$(outdir)/%.texi)
 
-MASTER_TEXI_FILES = $(TELY_FILES:%.tely=$(outdir)/%.texi)\
- $(outdir)/lilypond-internals.texi
-
 HTML_FILES = $(TELY_FILES:%.tely=$(outdir)/%-big-page.html)\
  $(outdir)/lilypond-internals-big-page.html
 
@@ -31,6 +29,11 @@ MAIN_INFO_DOC = lilypond
 INFO_DOCS = lilypond lilypond-internals music-glossary lilypond-program lilypond-learning
 INFO_FILES = $(INFO_DOCS:%=$(outdir)/%.info)
 
+TEXI2PDF_FLAGS = \
+  -I $(outdir) \
+  -I $(top-src-dir)/Documentation/user \
+  -I $(top-build-dir)/Documentation/user/$(outconfbase)
+
 ifeq ($(out),www)
 INFO_IMAGES_DIR = lilypond
 DEST_INFO_IMAGES_SUBDIR = Documentation/user
@@ -63,8 +66,6 @@ extra-local-help:
   xml        update Docbook xml documentation\n\
 "
 
-$(outdir)/lilypond.texi: $(outdir)/lilypond-internals.texi
-
 #
 # Split manuals in HTML
 #
@@ -80,11 +81,11 @@ $(outdir)/lilypond-learning-big-page.html: $(OUT_PNG_IMAGES)
 
 $(outdir)/lilypond.xml: $(outdir)/lilypond.texi
        mkdir -p $(dir $@)
-       $(MAKEINFO) -I$(outdir) --output=$@ --docbook $<
+       $(MAKEINFO) -I$(src-dir) -I$(outdir) --output=$@ --docbook $<
 
 $(outdir)/lilypond-internals/lilypond-internals.xml: $(outdir)/lilypond-internals.texi
        mkdir -p $(dir $@)
-       $(MAKEINFO) --output=$(outdir)/lilypond-internals --docbook $<
+       $(MAKEINFO) -I$(src-dir) -I$(outdir) --output=$(outdir)/lilypond-internals --docbook $<
 
 $(outdir)/lilypond.pdf $(outdir)/lilypond-learning.pdf: $(OUT_PDF_IMAGES)
 
index 85cae0eed8aae4329529174a6f3beac3afa6dda6..cb344d3afa91bb8a81701336c5b2479da9e8b2c3 100644 (file)
@@ -10,6 +10,6 @@ General policy: policy.txt
 %%%%% UPDATING DOCS
 cd into Documentation and run
 
-find -name '*.itely' | xargs convert-ly -e
+find -name '*.itely' | xargs convert-ly -e
 
 (This also updates translated docs.)
diff --git a/Documentation/user/SConscript b/Documentation/user/SConscript
deleted file mode 100644 (file)
index 5ef1efd..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-# -*-python-*-
-
-import os
-import string
-
-Import ('env', 'base_glob', 'src_glob')
-tely = base_glob ('*.tely')
-png = src_glob ('*.png') + map (env.EPS2PNG, base_glob ('*.eps'))
-
-# We need lily and mf to build these.
-env.Depends ('lilypond.texi', ['#/lily', '#/mf', '#/python'])
-env.Depends ('music-glossary.texi', ['#/lily', '#/mf', '#/python'])
-
-env.Depends ('lilypond.texi', 'lilypond-internals.texi')
-
-eps = src_glob ('*.eps') + map (env.PNG2EPS, base_glob ('*.png'))
-env.Depends ('lilypond.texi', eps + png)
-
-lilypond_book_flags = '''--format=$LILYPOND_BOOK_FORMAT --process="lilypond -I$srcdir/input/manual/ $__verbose --backend=eps --formats=ps,png --header=texidoc -dcheck-internal-types -ddump-signatures -danti-alias-factor=2 -dgs-load-fonts" '''
-e = env.Copy (
-#      LILYPOND_BOOK_FLAGS = '''--process="lilypond --backend=eps --formats=ps,png --header=texidoc -I#/input/manual -e '(ly:set-option (quote internal-type-checking) \#t)'"''',
-       LILYPOND_BOOK_FLAGS = lilypond_book_flags,
-       __verbose = ' --verbose',
-       GENERATE_DOCUMENTATION = '$srcdir/ly/generate-documentation',
-       ## TEXI2DVI_FLAGS = ['-I#Documentation/user'],
-       )
-
-e.Command ('lilypond-internals.texi', ['#/lily', '#/mf', '#/python'],
-          'cd ${TARGET.dir} && $LILYPOND $GENERATE_DOCUMENTATION')
-
-## FIXME: implicit steps from [TE]LY -> PDF
-texi = map (env.TEXI, tely)
-dvi = map (env.TEXIDVI, tely)
-ps = map (env.DVIPS, tely) ###map (lambda x: x + '.dvi', tely))
-dvipdf = map (env.DVIPDF, tely)
-pdf = map (env.PSPDF, dvipdf)
-
-# FIXME: install
-info = map (env.INFO, tely)
-
-def file_subst (file_name, find, subst):
-       s = open (file_name).read ()
-       t = string.replace (s, find, subst)
-       if s != t:
-               os.rename (file_name, file_name + '~')
-               h = open (file_name, "w")
-               h.write (t)
-               h.close ()
-
-e['usersrc'] = Dir ('.').srcnode ().abspath
-e['userout'] = Dir ('.').abspath
-
-a = ['$MAKEINFO -I$usersrc -I${SOURCE.dir} --html \
-     --css-include=$srcdir/Documentation/texinfo.css $__verbose \
-     --output=${TARGET.dir} $SOURCE',
-     'ln -f ${SOURCE.dir}/*.png ${SOURCE.dir}/*.ly ${TARGET.dir}/',]
-
-e.Command ('lilypond/index.html', 'lilypond.texi', a)
-e.Command ('lilypond-internals/index.html', 'lilypond-internals.texi', a)
-e.Command ('music-glossary/index.html', 'music-glossary.texi', a)
-
-a = ['$MAKEINFO -I$usersrc -I${SOURCE.dir} --html \
-     --no-split --no-headers \
-     --css-include=$srcdir/Documentation/texinfo.css $__verbose \
-     --output=$TARGET $SOURCE']
-
-e.Command ('lilypond.html', 'lilypond.texi', a)
-e.Command ('lilypond-internals.html', 'lilypond-internals.texi', a)
-e.Command ('music-glossary.html', 'music-glossary.texi', a)
-
-#Hmm -- why not just mv ./Documentation/{*,*/*} ./doc :-)
-env.Alias ('doc', texi)
-env.Alias ('doc', dvi)
-env.Alias ('doc', ps)
-env.Alias ('doc', pdf)
-
-env.Alias ('doc', 'lilypond/index.html')
-env.Alias ('doc', 'lilypond-internals/index.html')
-env.Alias ('doc', 'lilypond.html')
-env.Alias ('doc', 'lilypond-internals.html')
-
-# install ('lilypond/*', env['sharedir_doc_package'] + '/html')
-# install ('lilypond-user/*', env['sharedir_doc_package'] + '/html')
index 4929daf38e4dcb5148fa3f6b156ba0ad06a3ab43..493d3123fe8c9343618975ebe564e08c10dea739 100644 (file)
@@ -7,7 +7,7 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @node Ancient notation
 @section Ancient notation
@@ -39,7 +39,7 @@ contexts for mensural or Gregorian notation.
 Many graphical objects, such as note heads and flags, accidentals,
 time signatures, and rests, provide a @code{style} property, which
 can be changed to emulate several different styles of ancient
-notation. See
+notation.  See
 
 @itemize
 @item @ref{Mensural note heads},
@@ -160,7 +160,7 @@ satisfied with these defaults, one can proceed directly with note
 entry without worrying about the details on how to customize a
 context.  See one of the  pre-defined contexts
 @code{VaticanaVoice}, @code{VaticanaStaff}, @code{MensuralVoice},
-and @code{MensuralStaff}. See further
+and @code{MensuralStaff}.  See further
 
 @itemize
 @item @ref{Gregorian chant contexts},
@@ -183,9 +183,9 @@ of Gregorian chant notation to denote ascending or descending
 sequences of notes on the same syllable.  They are also used in
 mensural notation.
 
-Ligatures are entered by enclosing them in @code{\[} and @code{\]}.
-Some ligature styles may need additional input syntax specific for
-this particular type of ligature.  By default, the
+Ligatures are entered by @emph{enclosing} them in @code{\[} and
+@code{\]}.  Some ligature styles may need additional input syntax
+specific for this particular type of ligature.  By default, the
 @rinternals{LigatureBracket} engraver just puts a square bracket
 above the ligature.
 
@@ -206,10 +206,11 @@ specialized ligature engravers in the @rinternals{Voice} context,
 as explained in @ref{White mensural ligatures} and @ref{Gregorian
 square neume ligatures}.
 
-@seealso
 
+@seealso
 @c TODO: nothing here yet ...
 
+
 @knownissues
 
 Ligatures need special spacing that has not yet been implemented.  As
@@ -303,13 +304,14 @@ supported are @code{vaticana}, @code{medicaea}, @code{hufnagel}, and
 }
 @end lilypond
 
-@seealso
 
+@seealso
 Internals Reference: @rinternals{Custos}.
 
 Examples:
 @rlsr{Ancient notation}.
 
+
 @c {{{2 Figured bass support
 @node Figured bass support
 @unnumberedsubsubsec Figured bass support
@@ -369,8 +371,8 @@ entering the chant, as the following excerpt demonstrates:
 }
 @end lilypond
 
-@seealso
 
+@seealso
 TODO: nothing here yet ...
 
 
@@ -482,10 +484,11 @@ petrucci style G clef
 @end lilypond
 @end multitable
 
-@seealso
 
+@seealso
 Notation Reference: see @ref{Clef}.
 
+
 @knownissues
 
 The mensural g clef is mapped to the Petrucci g clef.
@@ -579,11 +582,12 @@ differences in style:
 }
 @end lilypond
 
-@seealso
 
+@seealso
 Notation Reference: @ref{Time signature}, gives a general introduction to
 the use of time signatures.
 
+
 @knownissues
 
 Ratios of note durations do not change with the time signature.  For
@@ -644,8 +648,8 @@ a'\maxima a'\longa a'\breve a'1 a'2 a'4 a'8 a'16 a'
 
 @end lilypond
 
-@seealso
 
+@seealso
 @ref{Note head styles} gives an overview of all available note head styles.
 
 
@@ -677,10 +681,11 @@ There is no particular flag style for neo-mensural or Petrucci notation.
 @c music, the default flag style should be used.
 There are no flags in Gregorian chant notation.
 
-@seealso
 
+@seealso
 TODO: nothing here yet ...
 
+
 @knownissues
 
 The attachment of ancient flags to stems is slightly off.
@@ -723,13 +728,9 @@ There are no 32th and 64th rests specifically for the mensural or
 neo-mensural style.  Instead, the rests from the default style will be
 taken.
 
-See @rlsr{Pitches,rests} for a chart of all rests.
-
-There are no rests in Gregorian chant notation; instead, it uses
-@ref{Divisiones}.
+See @rlsr{Ancient notation} for a chart of all rests.
 
 @seealso
-
 Notation Reference: @ref{Rests}, gives a general introduction into the use of
 rests.
 
@@ -742,7 +743,7 @@ rests.
 @cindex key signature
 
 The @code{mensural} style provides a sharp and a flat sign
-different from the default style. If called for, the natural sign
+different from the default style.  If called for, the natural sign
 will be taken from the @code{vaticana} style.
 
 @lilypond[quote,ragged-right,staffsize=26]
@@ -778,8 +779,8 @@ The style for accidentals and key signatures is controlled by the
 @code{\override Staff.Accidental #'glyph-name-alist =
 #alteration-mensural-glyph-name-alist}
 
-@seealso
 
+@seealso
 Notation Reference: @ref{Pitches}, @ref{Accidentals}, and
 @ref{Automatic accidentals} give a general introduction of the use of
 accidentals.  @ref{Key signature} gives a general introduction of
@@ -787,6 +788,7 @@ the use of key signatures.
 
 Internals Reference: @rinternals{KeySignature}.
 
+
 @c {{{2 Annotational accidentals (musica ficta)
 @node Annotational accidentals (musica ficta)
 @unnumberedsubsubsec Annotational accidentals (@emph{musica ficta})
@@ -827,8 +829,8 @@ ficta = { \once \set suggestAccidentals = ##t }
 }
 @end lilypond
 
-@seealso
 
+@seealso
 Internals Reference: @rinternals{Accidental_engraver} engraver and
 the @rinternals{AccidentalSuggestion} object.
 
@@ -919,13 +921,14 @@ to the following
 }
 @end lilypond
 
-@seealso
 
+@seealso
 TODO: nothing here yet ...
 
+
 @knownissues
 
-Horizontal spacing is poor.
+Horizontal spacing of ligatures is poor.
 
 
 @c {{{1 Typesetting Gregorian chant
@@ -966,7 +969,7 @@ initialize all relevant context properties and grob properties to
 proper values, so you can immediately go ahead entering the chant, as
 the following excerpt demonstrates:
 
-@lilypond[quote,ragged-right,packed,verbatim]
+@lilypond[quote,ragged-right,verbatim]
 \include "gregorian.ly"
 \score {
   <<
@@ -986,10 +989,11 @@ the following excerpt demonstrates:
 }
 @end lilypond
 
-@seealso
 
+@seealso
 TODO: nothing here yet ...
 
+
 @c {{{2 Gregorian clefs
 @node Gregorian clefs
 @unnumberedsubsubsec Gregorian clefs
@@ -1122,10 +1126,11 @@ hufnagel style combined do/fa clef
 @end lilypond
 @end multitable
 
-@seealso
 
+@seealso
 Notation Reference: see @ref{Clef}.
 
+
 @c {{{2 Gregorian accidentals and key signatures
 @node Gregorian accidentals and key signatures
 @unnumberedsubsubsec Gregorian accidentals and key signatures
@@ -1183,8 +1188,8 @@ The style for accidentals and key signatures is controlled by the
 @code{\override Staff.Accidental #'glyph-name-alist =
 #alteration-mensural-glyph-name-alist}
 
-@seealso
 
+@seealso
 Notation Reference: @ref{Pitches}, @ref{Accidentals}, and
 @ref{Automatic accidentals} give a general introduction of the use of
 accidentals.  @ref{Key signature} gives a general introduction of
@@ -1192,6 +1197,7 @@ the use of key signatures.
 
 Internals Reference: @rinternals{KeySignature}.
 
+
 @c {{{2Divisiones
 @node Divisiones
 @unnumberedsubsubsec Divisiones
@@ -1200,6 +1206,9 @@ Internals Reference: @rinternals{KeySignature}.
 @cindex divisiones
 @cindex finalis
 
+There are no rests in Gregorian chant notation; instead, it uses
+@ref{Divisiones}.
+
 A @emph{divisio} (plural: @emph{divisiones}; Latin word for
 @q{division}) is a staff context symbol that is used to indicate
 the phrase and section structure of Gregorian music.  The musical meaning of
@@ -1209,18 +1218,18 @@ the breathmarks from @ref{Breath marks}.  The @emph{finalis} sign not
 only marks the end of a chant, but is also frequently used within a
 single antiphonal/responsorial chant to mark the end of each section.
 
-To use divisiones, include the file @file{gregorian@/-init@/.ly}.  It
+To use divisiones, include the file @file{gregorian@/.ly}.  It
 contains definitions that you can apply by just inserting
 @code{\divisioMinima}, @code{\divisioMaior}, @code{\divisioMaxima},
 and @code{\finalis} at proper places in the input.  Some editions use
 @emph{virgula} or @emph{caesura} instead of divisio minima.
-Therefore, @file{gregorian@/-init@/.ly} also defines @code{\virgula} and
+Therefore, @file{gregorian@/.ly} also defines @code{\virgula} and
 @code{\caesura}
 
 @lilypondfile[quote,ragged-right]{divisiones.ly}
 
-@predefined
 
+@predefined
 @funindex \virgula
 @code{\virgula},
 @funindex \caesura
@@ -1233,6 +1242,7 @@ Therefore, @file{gregorian@/-init@/.ly} also defines @code{\virgula} and
 @code{\divisioMaxima},
 @funindex \finalis
 @code{\finalis}.
+@endpredefined
 
 
 @c {{{2Gregorian articulations
@@ -1262,10 +1272,11 @@ Vaticana} style are provided.
 }
 @end lilypond
 
-@seealso
 
+@seealso
 TODO: nothing here yet ...
 
+
 @knownissues
 
 Some articulations are vertically placed too closely to the
@@ -1300,7 +1311,6 @@ note that you can say @code{\augmentum @{a g@}} as a shortcut for
 
 
 @seealso
-
 Notation Reference: @ref{Breath marks}.
 
 Internals Reference: @rinternals{BreathingSign}.
@@ -1308,7 +1318,6 @@ Internals Reference: @rinternals{BreathingSign}.
 Examples: @rlsr{Ancient notation}.
 
 
-
 @c {{{2Gregorian square neumes ligatures
 @node Gregorian square neume ligatures
 @unnumberedsubsubsec Gregorian square neume ligatures
@@ -1323,7 +1332,7 @@ still lacking, such as (among others) horizontal alignment of multiple
 ligatures, lyrics alignment, and proper handling of accidentals.
 
 The support for Gregorian neumes is enabled by @code{\include}ing
-"gregorian.ly" at the beginning of the file. This makes available
+"gregorian.ly" at the beginning of the file.  This makes available
 a number of extra commands to produce the neume symbols used in
 plainchant notation.
 
@@ -1359,8 +1368,8 @@ with any of the following commands:
 @code{\linea}.
 
 @item Ligatures, properly speaking (i.e. notes joined together), are
-produced by placing one of the joining commands @code{pes} or
-@code{flexa}, for upwards and downwards movement, respectively,
+produced by placing one of the joining commands @code{\pes} or
+@code{\flexa}, for upwards and downwards movement, respectively,
 @emph{between} the notes to be joined.
 @end itemize
 
@@ -1385,7 +1394,7 @@ regular @emph{punctum} can be modified with @code{\cavum}, which
 produces a hollow note, and @code{\linea}, which draws vertical
 lines on either side of the note.
 
-@item The @emph{virga} has a descending stem on the right side. It is
+@item The @emph{virga} has a descending stem on the right side.  It is
 produced by the modifier @code{\virga}.
 @end itemize
 
@@ -1395,7 +1404,7 @@ Ligatures
 Unlike most other neumes notation systems, the typographical
 appearance of ligatures is not directly dictated by the input
 commands, but follows certain conventions dependent on musical
-meaning. For example, a three-note ligature with the musical shape
+meaning.  For example, a three-note ligature with the musical shape
 low-high-low, such as @code{\[ a \pes b \flexa g \]}, produces a
 Torculus consisting of three Punctum heads, while the shape
 high-low-high, such as @code{\[ a \flexa g \pes b \]}, produces a
@@ -1411,7 +1420,7 @@ the same music in a different style of Gregorian chant notation.
 Liquescent neumes
 
 Another main category of notes in Gregorian chant is the so-called
-liquescent neumes. They are used under certain circumstances at
+liquescent neumes.  They are used under certain circumstances at
 the end of a syllable which ends in a @q{liquescent} letter, i.e.
 the sounding consonants that can hold a tone (the nasals, l, r, v,
 j, and their diphtong equivalents).  Thus, the liquescent neumes
@@ -1420,12 +1429,12 @@ they always fall at the end of a ligature.
 
 Liquescent neumes are represented graphically in two different,
 more or less interchangeable ways: with a smaller note or by
-@q{twisting} the main note upwards or downwards. The first is
+@q{twisting} the main note upwards or downwards.  The first is
 produced by making a regular @code{pes} or @code{flexa} and
 modifying the shape of the second note: @code{\[ a \pes \deminutum
 b \] }, the second by modifying the shape of a single-note neume
-with @code{\auctus} and one of the direction markers
-@code{\descendens} or @code{\ascendens}, e.g. @code{ \[ \auctus
+with @code{\auctum} and one of the direction markers
+@code{\descendens} or @code{\ascendens}, e.g. @code{ \[ \auctum
 \descendens a \] }.
 
 @noindent
@@ -1434,7 +1443,7 @@ Special signs
 A third category of signs is made up of a small number of signs
 with a special meaning (which, incidentally, in most cases is only
 vaguely known): the @emph{quilisma}, the @emph{oriscus}, and the
-@emph{strophicus}. These are all produced by prefixing a note name
+@emph{strophicus}.  These are all produced by prefixing a note name
 with the corresponding modifier, @code{\quilisma},
 @code{\oriscus}, or @code{\stropha}.
 
@@ -1450,14 +1459,22 @@ Note that the use of these signs in the music itself follows
 certain rules, which are not checked by Lilypond.  E.g., the
 @emph{quilisma} is always the middle note of an ascending
 ligature, and usually falls on a half-tone step, but it is
-perfectly possible to make a single-note quilisma.
+perfectly possible, although incorrect, to make a single-note
+quilisma.
+
+In addition to the note signs, gregorian.ly also defines the
+commands @code{\versus}, @code{\responsum}, @code{\ij},
+@code{\iij}, @code{\IJ}, and @code{\IIJ}, that will produce the
+corresponding characters, e.g. for use in lyrics, as section
+markers, etc.  These commands use special unicode characters and
+will only work if a font is used which supports them.
 
 
 @c neume table
 
 The following table shows a limited, but still representative pool
 of Gregorian ligatures, together with the code fragments that
-produce the ligatures. The table is based on the extended neumes
+produce the ligatures.  The table is based on the extended neumes
 table of the 2nd volume of the Antiphonale Romanum (@emph{Liber
 Hymnarius}), published 1983 by the monks of Solesmes.  The first
 column gives the name of the ligature, with the main form in
@@ -2201,10 +2218,9 @@ code}
 
 @end multitable
 
-@predefined
-
-The following head prefixes are supported
 
+@predefined
+The following head prefixes are supported:
 @funindex \virga
 @code{\virga},
 @funindex \stropha
@@ -2227,6 +2243,7 @@ The following head prefixes are supported
 @code{\cavum},
 @funindex \linea
 @code{\linea}.
+@endpredefined
 
 Head prefixes can be accumulated, though restrictions apply.  For
 example, either @code{\descendens} or @code{\ascendens} can be applied
@@ -2241,10 +2258,11 @@ respectively.
 @funindex \augmentum
 Use the unary music function @code{\augmentum} to add augmentum dots.
 
-@seealso
 
+@seealso
 TODO: nothing here yet ...
 
+
 @knownissues
 
 When an @code{\augmentum} dot appears at the end of the last staff
@@ -2272,7 +2290,7 @@ with head prefixes in arbitrary order.
 
 Working with ancient music frequently involves particular tasks
 which differ considerably from the modern notation for which
-Lilypond is designed. In the rest of this section, a number of
+Lilypond is designed.  In the rest of this section, a number of
 typical scenarios are outlined, with suggestions of solutions.
 These involve:
 
@@ -2296,17 +2314,18 @@ same source.
 @c use snippet Transcription-of-ancient-music-with-incipit
 TBC
 
-@seealso
 
+@seealso
 @c ... and reference to other sections ...
 
+
 @c {{{2Mensurstriche layout
 @node Mensurstriche layout
 @unnumberedsubsubsec Mensurstriche layout
 
 @emph{Mensurstriche} (@q{mensuration lines}) is the accepted term
 for bar lines that are drawn between the staves of a system but
-not through the staves themselves. It is a common way to preserve
+not through the staves themselves.  It is a common way to preserve
 the rhythmic appearance of the original, i.e. not having to break
 syncopated notes at bar lines, while still providing the
 orientation aids that bar lines give.
@@ -2319,10 +2338,10 @@ orientation aids that bar lines give.
 @c TODO Add text about lyrics to the lowest line, to be placed
 @c outside the StaffGroup.
 @c from lsr and -user
-TBC
+@c TBC
 
-@seealso
 
+@seealso
 @c ... and reference to other sections ...
 
 
@@ -2330,15 +2349,178 @@ TBC
 @node Transcribing Gregorian chant
 @unnumberedsubsubsec Transcribing Gregorian chant
 
-@c TODO Add text
+Gregorian chant can be transcribed into modern notation with a
+number of simple tweaks.
+
+@b{Stems}.  Stems can be left out altogether by @code{\remove}-ing
+the @code{Stem_engraver} from the Voice context:
+
+@example
+\layout @{
+  ...
+  \context @{
+    \Voice
+      \remove "Stem_engraver"
+  @}
+@}
+@end example
+
+However, in some transcription styles, stems are used
+occasionally, for example to indicate the transition from a
+single-tone recitative to a fixed melodic gesture.  In these cases,
+one can use either @code{\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).
+
+@b{Timing.} For unmetered chant, there are several alternatives.
+
+The Time_signature_engraver can be removed from the Staff context
+without any negative side effects.  The alternative, to make it
+transparent, will leave an empty space in the score, since the
+invisible signature will still take up space.
+
+In many cases, @code{\set Score.timing = ##f} will give good
+results.  Another alternative is to use \@code{\CadenzaOn} and
+@code{\CadenzaOff}.
+
+To remove the barlines, 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
+occasional barline is wanted.
+
+A common type of transcription is recitativic chant where the
+repeated notes are indicated with a single breve.  The text to
+the recitation tone can  be dealt with in two different ways:
+either set as a single, left-aligned syllable:
+
+@lilypond[verbatim,ragged-right]
+\include "gregorian.ly"
+chant = \relative c' {
+  \clef "G_8"
+  c\breve c4 b4 a c2 c4  \divisioMaior
+  c\breve c4 c f, f \finalis
+}
+
+verba = \lyricmode {
+  \once \override LyricText #'self-alignment-X = #-1
+  "Noctem quietam et" fi -- nem per -- fec -- tum
+  \once \override LyricText #'self-alignment-X = #-1
+  "concedat nobis Dominus" om -- ni -- po -- tens.
+}
+\score {
+  \new Staff <<
+  \new Voice = "melody" \chant
+  \new Lyrics = "one" \lyricsto melody \verba
+  >>
+  \layout {
+    \context {
+      \Staff
+      \remove "Time_signature_engraver"
+      \remove "Bar_engraver"
+      \override Stem #'transparent = ##t
+    }
+  }
+}
+@end lilypond
+
+This works fine, as long as the text doesn't span a line break.  If
+that is the case, an alternative is to add hidden notes to the
+score, here in combination with changing stem visibility:
+
+
+@lilypond[verbatim,ragged-right]
+\include "gregorian.ly"
+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 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 {
+  No -- ctem qui -- e -- tam et fi -- nem per -- fec -- tum
+  con -- ce -- dat no -- bis Do -- mi -- nus om -- ni -- po -- tens.
+}
+
+\score {
+  \new Staff <<
+    \new Voice = "melody" \chant
+    \new Lyrics \lyricsto "melody" \verba
+  >>
+  \layout {
+    \context {
+      \Staff
+      \remove "Time_signature_engraver"
+      \override BarLine #'transparent = ##t
+      \override Stem #'transparent = ##t
+    }
+  }
+}
+@end lilypond
+
+Another common situation is transcription of neumatic or
+melismatic chants, i.e. chants with a varying number of notes
+to each syllable.  In this case, one would want to set the
+syllable groups clearly apart, usually also the subdivisions of a
+longer melisma.  One way to achieve this is to use a fixed
+@code{\time}, e.g. 1/4, and let each syllable or note group fill
+one of these measures, with the help of tuplets or shorter
+durations.  If the barlines and all other rhythmical indications
+are made transparent, and the space around the barlines is
+increased, this will give a fairly good representation in modern
+notation of the original.
+
+To avoid that syllables of different width (such as @qq{-ri} and
+@qq{-rum}) spread the syllable note groups unevenly apart, the
+@code{#'X-extent} property of the @code{LyricText} object may be
+set to a fixed value.  Another, more cumbersome way would be to
+add the syllables as @code{\markup} elements.  If further
+adjustments are necessary, this can be easily done with
+@code{s} @q{notes}.
+
+@lilypond[verbatim,quote]
+spiritus = \relative c' {
+  \time 1/4
+  \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
+}
+
+spirLyr = \lyricmode {
+  Spi -- ri -- _ _ tus  _ Do -- mi -- ni  _ re -- ple -- _ vit _
+  or -- _ bem _  ter -- ra -- _ rum, al -- _ _ le -- _ lu
+  -- _ ia.
+}
+\score {
+  \new Staff <<
+    \new Voice = "chant" \spiritus
+    \new Lyrics = "one" \lyricsto "chant" \spirLyr
+  >>
+  \layout {
+    \context {
+      \Staff
+      \remove "Time_signature_engraver"
+      \override BarLine #'X-extent = #'(-1 . 1)
+      \override Stem #'transparent = ##t
+      \override Beam #'transparent = ##t
+      \override BarLine #'transparent = ##t
+      \override TupletNumber #'transparent = ##t
+    }
+  }
+}
+@end lilypond
+
 @c extract from 1.6.1.1
-TBC
 
 @seealso
-
 @c ... and reference to other sections ...
 
-
 @c {{{2Ancient and modern from one source
 @node Ancient and modern from one source
 @unnumberedsubsubsec Ancient and modern from one source
@@ -2348,10 +2530,8 @@ TBC
 TBC
 
 @seealso
-
 @c ... and reference to other sections ...
 
-
 @c {{{2Editorial markings
 @node Editorial markings
 @unnumberedsubsubsec Editorial markings
@@ -2376,7 +2556,7 @@ TBC
 
 TBC
 
-@seealso
 
+@seealso
 @c ... and reference to other sections ...
 
index 3e57280c0fedccc4a75be5f83508c0cf70a32472..c0bc7b61b2f86b00e190ef5f63a76f76c9b032ce 100644 (file)
@@ -7,7 +7,7 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @node Changing defaults
 @chapter Changing defaults
@@ -57,14 +57,15 @@ This section describes what contexts are, and how to modify them.
 @menu
 * Contexts explained::
 * Creating contexts::
+* Keeping contexts alive::
 * Modifying context plug-ins::
 * Changing context default settings::
 * Defining new contexts::
 * Aligning contexts::
 @end menu
 
-@seealso
 
+@seealso
 Learning Manual:
 @rlearning{Contexts and engravers}.
 
@@ -108,7 +109,7 @@ further explanation and with links to the IR.
 
 @c TODO Describe propagation of property values -td
 
-Contexts are arranged heirarchically:
+Contexts are arranged hierarchically:
 
 @menu
 * Score - the master of all contexts::
@@ -138,67 +139,55 @@ executed.
 
 Groups staves while adding a bracket on the left side, grouping
 the staves together. The bar lines of the contained staves are
-connected vertically. StaffGroup only consists of a collection
+connected vertically.  @code{StaffGroup} only consists of a collection
 of staves, with a bracket in front and spanning bar lines.
 
 @strong{@emph{ChoirStaff}}
 
-Identical to StaffGroup except that the bar lines of the contained
-staves are not connected vertically.
+Identical to @code{StaffGroup} except that the bar lines of the
+contained staves are not connected vertically.
 
 @strong{@emph{GrandStaff}}
 
-A group of staves, with a brace on the left side, grouping
-the staves together. The bar lines of the contained staves are
+A group of staves, with a brace on the left side, grouping the
+staves together.  The bar lines of the contained staves are
 connected vertically.
 
 @strong{@emph{PianoStaff}}
 
-@c TODO No longer correct?  Check.  -td
-Just like GrandStaff but with a forced distance between the
-staves, so cross staff beaming and slurring can be used.
-
-@ignore
-@strong{@emph{InnerStaffGroup}}
-
-TODO  -td
-
-@strong{@emph{InnerChoirStaff}}
-
-TODO  -td
-
-@end ignore
+Just like @code{GrandStaff}, but with support for instrument names
+to the left of each system.
 
 @node Intermediate-level contexts - staves
 @unnumberedsubsubsec Intermediate-level contexts - staves
 
 @strong{@emph{Staff}}
 
-Handles clefs, bar lines, keys, accidentals. It can contain
-Voice contexts.
+Handles clefs, bar lines, keys, accidentals.  It can contain
+@code{Voice} contexts.
 
 @strong{@emph{RhythmicStaff}}
 
-Like Staff but for printing rhythms. Pitches are ignored;
+Like @code{Staff} but for printing rhythms.  Pitches are ignored;
 the notes are printed on one line.
 
 @strong{@emph{TabStaff}}
 
-Context for generating tablature. By default lays the music
+Context for generating tablature.  By default lays the music
 expression out as a guitar tablature, printed on six lines.
 
 @strong{@emph{DrumStaff}}
 
-Handles typesetting for percussion. Can contain DrumVoice
+Handles typesetting for percussion.  Can contain @code{DrumVoice}
 
 @strong{@emph{VaticanaStaff}}
 
-Same as Staff, except that it is designed for typesetting
+Same as @code{Staff}, except that it is designed for typesetting
 a piece in gregorian style.
 
 @strong{@emph{MensuralStaff}}
 
-Same as Staff, except that it is designed for typesetting
+Same as @code{Staff}, except that it is designed for typesetting
 a piece in mensural style.
 
 @node Bottom-level contexts - voices
@@ -210,24 +199,24 @@ contain other contexts.
 
 @strong{@emph{Voice}}
 
-Corresponds to a voice on a staff. This context handles the
+Corresponds to a voice on a staff.  This context handles the
 conversion of dynamic signs, stems, beams, super- and sub-scripts,
 slurs, ties, and rests.  You have to instantiate this explicitly
 if you require multiple voices on the same staff.
 
 @strong{@emph{VaticanaVoice}}
 
-Same as Voice, except that it is designed for typesetting a piece
-in gregorian style.
+Same as @code{Voice}, except that it is designed for typesetting
+a piece in gregorian style.
 
 @strong{@emph{MensuralVoice}}
 
-Same as Voice, with modifications for typesetting a piece in
+Same as @code{Voice}, with modifications for typesetting a piece in
 mensural style.
 
 @strong{@emph{Lyrics}}
 
-Corresponds to a voice with lyrics. Handles the printing of a
+Corresponds to a voice with lyrics.  Handles the printing of a
 single line of lyrics.
 
 @strong{@emph{DrumVoice}}
@@ -236,13 +225,13 @@ The voice context used in a percussion staff.
 
 @strong{@emph{FiguredBass}}
 
-The context in which BassFigure objects are created from
+The context in which @code{BassFigure} objects are created from
 input entered in @code{\figuremode} mode.
 
 @strong{@emph{TabVoice}}
 
-The voice context used within a TabStaff context.  Usually left to
-be created implicitly.
+The voice context used within a @code{TabStaff} context.  Usually
+left to be created implicitly.
 
 @strong{@emph{ChordNames}}
 
@@ -414,6 +403,156 @@ these forms
 
 @end itemize
 
+@node Keeping contexts alive
+@subsection Keeping contexts alive
+
+@cindex contexts, keeping alive
+@cindex contexts, lifetime
+
+Contexts are usually terminated at the first musical moment in
+which they have nothing to do.  So @code{Voice} contexts die as
+soon as they contain no events; @code{Staff} contexts die as soon
+as all the @code{Voice} contexts within them contain no events; etc.
+This can cause difficulties if earlier contexts which have died
+have to be referenced, for example, when changing staves with
+@code{\change} commands, associating lyrics with a voice with
+@code{\lyricsto} commands, or when adding further musical events to
+an earlier context.
+
+There is an exception to this general rule: just one of the
+@code{Voice} contexts in a @code{Staff} context or in a
+@code{<<...>>} construct will always persist to the end of the
+enclosing @code{Staff} context or @code{<<...>>} construct, even
+though there may be periods when it has nothing to do.  The context
+to persist in this way will be the first one encountered in the
+first enclosed @code{@{...@}} construct, ignoring any in enclosed
+@code{<<...>>} constructs.
+
+Any context can be kept alive by ensuring it has something to do at
+every musical moment.  @code{Staff} contexts are kept alive by
+ensuring one of their voices is kept alive.  One way of doing this
+is to add spacer rests to a voice in parallel with the real music.
+These need to be added to every @code{Voice} context which needs to
+be kept alive.  If several voices are to be used sporadically it is
+safest to keep them all alive rather than attempting to rely on the
+exceptions mentioned above.
+
+In the following example, both voice A and voice B are kept alive
+in this way for the duration of the piece:
+
+@lilypond[quote,verbatim]
+musicA = \relative c'' { d4 d d d }
+musicB = \relative c'' { g4 g g g }
+keepVoicesAlive = {
+  <<
+    \new Voice = "A" { s1*5 }  % Keep Voice "A" alive for 5 bars
+    \new Voice = "B" { s1*5 }  % Keep Voice "B" alive for 5 bars
+  >>
+}
+
+music = {
+  \context Voice = "A" {
+    \voiceOneStyle
+    \musicA
+  }
+  \context Voice = "B" {
+    \voiceTwoStyle
+    \musicB
+  }
+  \context Voice = "A" { \musicA }
+  \context Voice = "B" { \musicB }
+  \context Voice = "A" { \musicA }
+}
+
+\score {
+  \new Staff <<
+    \keepVoicesAlive
+    \music
+  >>
+}
+@end lilypond
+
+@cindex lyrics, aligning with sporadic melody
+
+The following example shows how a sporadic melody line with lyrics
+might be written using this approach.  In a real situation the
+melody and accompaniment would consist of several different
+sections, of course.
+
+@lilypond[quote,verbatim]
+melody = \relative c'' { a4 a a a }
+accompaniment = \relative c' { d4 d d d }
+words = \lyricmode { These words fol -- low the mel -- o -- dy }
+\score {
+  <<
+    \new Staff = "music" {
+      <<
+        \new Voice = "melody" {
+          \voiceOne
+          s1*4  % Keep Voice "melody" alive for 4 bars
+        }
+        {
+          \new Voice = "accompaniment" {
+            \voiceTwo
+            \accompaniment
+          }
+          <<
+            \context Voice = "melody" { \melody }
+            \context Voice = "accompaniment" { \accompaniment }
+          >>
+          \context Voice = "accompaniment" { \accompaniment }
+          <<
+            \context Voice = "melody" { \melody }
+            \context Voice = "accompaniment" { \accompaniment }
+          >>
+        }
+      >>
+    }
+    \new Lyrics \with { alignAboveContext = #"music" }
+    \lyricsto "melody" { \words }
+  >>
+}
+@end lilypond
+
+An alternative way, which may be better in many circumstances, is
+to keep the melody line alive by simply including spacer notes to
+line it up correctly with the accompaniment:
+
+@lilypond[quote,verbatim]
+melody = \relative c'' {
+  s1  % skip a bar
+  a4 a a a
+  s1  % skip a bar
+  a4 a a a
+}
+accompaniment = \relative c' {
+  d4 d d d
+  d4 d d d
+  d4 d d d
+  d4 d d d
+}
+words = \lyricmode { These words fol -- low the mel -- o -- dy }
+
+\score {
+  <<
+    \new Staff = "music" {
+      <<
+        \new Voice = "melody" {
+          \voiceOne
+          \melody
+        }
+        \new Voice = "accompaniment" {
+          \voiceTwo
+          \accompaniment
+        }
+      >>
+    }
+    \new Lyrics \with { alignAboveContext = #"music" }
+    \lyricsto "melody" { \words }
+  >>
+}
+@end lilypond
+
 
 @node Modifying context plug-ins
 @subsection Modifying context plug-ins
@@ -614,6 +753,7 @@ to indicate improvisation in jazz pieces,
   \name ImproVoice
   \type "Engraver_group"
   \consists "Note_heads_engraver"
+  \consists "Rhythmic_column_engraver"
   \consists "Text_engraver"
   \consists Pitch_squash_engraver
   squashedPosition = #0
@@ -778,7 +918,7 @@ ossia = { f4 f f f }
   \relative c' \new Staff = "main" {
     c4 c c c
     <<
-      \new Staff \with {alignAboveContext=main} \ossia
+      \new Staff \with { alignAboveContext = #"main" } \ossia
       { d8 f d f d f d f }
     >>
   }
@@ -1267,12 +1407,11 @@ 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
 
 
 @seealso
-
 Internals: @rinternals{OverrideProperty}, @rinternals{RevertProperty},
 @rinternals{PropertySet}, @rinternals{Backend}, and
 @rinternals{All layout objects}.
@@ -1434,7 +1573,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
@@ -1569,14 +1708,15 @@ including any automatically inserted elements, may be examined,
 see @ref{Displaying music expressions}.  This may be helpful in
 determining what may be modified by a @code{\tweak} command.
 
-@seealso
 
+@seealso
 Learning Manual:
 @rlearning{Tweaking methods}.
 
 Notation Reference:
 @ref{Displaying music expressions}.
 
+
 @knownissues
 
 @cindex tweaks in a variable
@@ -1898,8 +2038,8 @@ convert from a font size change to the equivalent change in
 @code{staff-space}.  For an explanation and an example of its use,
 see @rlearning{Length and thickness of objects}.
 
-@seealso
 
+@seealso
 Learning Manual:
 @rlearning{Length and thickness of objects}.
 
@@ -2114,8 +2254,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
 
@@ -2134,7 +2274,7 @@ sub-lists of @code{bound-details}.  For example:
 
 @lilypond[relative=2,ragged-right,verbatim,fragment]
 \override Glissando #'breakable = ##t
-\override Glissando #'bound-details #'right-broken #'Y = #-3
+\override Glissando #'(bound-details right-broken Y) = #-3
 c1 \glissando \break
 f1
 @end lilypond
@@ -2174,7 +2314,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,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
@@ -2188,15 +2328,15 @@ or @code{stencil-offset} will move the symbol at the edge vertically
 relative to the end point of the line:
 
 @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
 
@@ -2235,9 +2375,7 @@ When using @code{\endSpanners} it is not necessary to close
 hairpins with @code{\!}.
 
 
-
 @seealso
-
 Internals Reference: @rinternals{TextSpanner},
 @rinternals{Glissando}, @rinternals{VoiceFollower},
 @rinternals{TrillSpanner},
@@ -2264,11 +2402,11 @@ certain layout objects.  These are covered under Special
 considerations.
 
 @menu
-* Removing the stencil::        
-* Making objects transparent::  
-* Painting objects white::      
-* Using break-visibility::      
-* Special considerations::      
+* Removing the stencil::
+* Making objects transparent::
+* Painting objects white::
+* Using break-visibility::
+* Special considerations::
 @end menu
 
 
@@ -2620,7 +2758,7 @@ override these:
 @c FIXME Complete
 @lilypond[relative=2,ragged-right,verbatim,fragment]
 e2 \glissando f
-\once \override Glissando #'bound-details #'right #'Y = #-2
+\once \override Glissando #'(bound-details right Y) = #-2
 e2 \glissando f
 @end lilypond
 
@@ -2709,8 +2847,8 @@ appearance of the printed score.
 * Modifying shapes::
 @end menu
 
-@seealso
 
+@seealso
 Learning Manual:
 @rlearning{Tweaking output},
 @rlearning{Other sources of information}.
@@ -2729,6 +2867,7 @@ Snippets:
 Internals Reference:
 @rinternals{All layout objects}.
 
+
 @node Aligning objects
 @subsection Aligning objects
 
@@ -2774,7 +2913,7 @@ marks on such objects.
 * Setting @code{X-offset} and @code{Y-offset} directly::
 * Using the @code{side-position-interface}::
 * Using the @code{self-alignment-interface}::
-* Using the @code{break-aligned-interface}::
+* Using the @code{break-alignable-interface}::
 @end menu
 
 @node Setting @code{X-offset} and @code{Y-offset} directly
@@ -2941,17 +3080,20 @@ example shows the difference:
 
 @c TODO The align-interface, BassFigureAlignment and VerticalAlignment
 
-@node Using the @code{break-aligned-interface}
-@unnumberedsubsubsec Using the @code{break-aligned-interface}
+@node Using the @code{break-alignable-interface}
+@unnumberedsubsubsec Using the @code{break-alignable-interface}
+
+@cindex align to objects
+@cindex break-align-symbols
 
-Rehearsal marks may be aligned with notation objects other
-than bar lines.  These objects include @code{ambitus},
+Rehearsal marks and bar numbers may be aligned with notation
+objects other than bar lines.  These objects include @code{ambitus},
 @code{breathing-sign}, @code{clef}, @code{custos}, @code{staff-bar},
 @code{left-edge}, @code{key-cancellation}, @code{key-signature}, and
 @code{time-signature}.
 
-By default, rehearsal marks will be horizontally centered above the
-object:
+By default, rehearsal marks and bar numbers will be horizontally
+centered above the object:
 
 @lilypond[verbatim,quote,relative=1]
 e1
@@ -2970,6 +3112,32 @@ e
 e2.
 @end lilypond
 
+A list of possible target alignment objects may be specified.  If
+some of the objects are invisible at that point due to the setting
+of @code{break-visibility} or the explicit visibility settings for
+keys and clefs, the rehearsal mark or bar number is aligned to the
+first object in the list which is visible.  If no objects in the
+list are visible the object is aligned to the bar line.  If the bar
+line is invisible the object is aligned to the place where the bar
+line would be.
+
+@lilypond[verbatim,quote,relative=1]
+e1
+% the RehearsalMark will be centered above the Key Signature
+\override Score.RehearsalMark #'break-align-symbols = #'(key-signature clef)
+\key a \major
+\clef treble
+\mark "↓"
+e
+% the RehearsalMark will be centered above the Clef
+\set Staff.explicitKeySignatureVisibility = #all-invisible
+\override Score.RehearsalMark #'break-align-symbols = #'(key-signature clef)
+\key a \minor
+\clef bass
+\mark "↓"
+e,
+@end lilypond
+
 The alignment of the rehearsal mark relative to the notation object
 can be changed, as shown in the following example.  In a score with
 multiple staves, this setting should be done for all the staves.
@@ -3014,7 +3182,6 @@ e
 @end lilypond
 
 
-
 @node Vertical grouping of grobs
 @subsection Vertical grouping of grobs
 
@@ -3075,8 +3242,8 @@ Any of the glyphs in the feta Font can be supplied to the
 
 @c TODO Add inserting Postscript or ref to later
 
-@seealso
 
+@seealso
 Notation Reference:
 @ref{Graphic notation inside markup},
 @ref{Formatting text},
index 5495c4607daf0f2069fe8db799625f1d84a5c89c..87d48f9621f567148594f73c2d5944994f515d50 100644 (file)
@@ -7,7 +7,7 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 
 @c TODO: add tablature.
@@ -23,7 +23,7 @@
 @tab @b{Example}
 
 @item @code{1 2 8 16}
-@tab durations 
+@tab durations
 @tab
 @lilypond[fragment,relative=2,notime]
 \set Staff.autoBeaming = ##f
@@ -36,18 +36,18 @@ c1 c2 c8 c16
 @tab
 @lilypond[fragment,relative=2,notime]
 \override Staff.Clef #'break-visibility = #all-invisible
-c4. c4..  
+c4. c4..
 @end lilypond
 
 @item @code{c d e f g a b }
-@tab scale 
+@tab scale
 @tab
 @lilypond[fragment,relative=1,notime]
 c d e f g a b
 @end lilypond
 
 @item @code{fis bes}
-@tab alteration 
+@tab alteration
 @tab
 @lilypond[fragment,relative=1,notime]
 fis bes
@@ -67,7 +67,7 @@ s4_" "
 @tab time signature
 @tab
 @lilypond[fragment]
-\override Staff.Clef #'transparent = ##t 
+\override Staff.Clef #'transparent = ##t
 \time 3/4
 s4_" "
 \time 4/4
@@ -76,7 +76,7 @@ s16_" "
 
 
 @item @code{r4 r8}
-@tab rest 
+@tab rest
 @tab
 @lilypond[relative=2,notime,fragment]
 \override Staff.Clef #'break-visibility = #all-invisible
@@ -98,7 +98,7 @@ d ~ d
 @lilypond[notime,fragment]
 \clef treble
 \key es \major
-s4 
+s4
 @end lilypond
 
 @item @var{note}@code{'}
@@ -167,7 +167,7 @@ a8-[ b-]
    } >>
 @end lilypond
 
-  
+
 @item @code{c-> c-.}
 @tab articulations
 @tab
@@ -212,7 +212,7 @@ a\> a a\!
 @tab
 @lilypond[fragment,relative=2]
 \set Staff.implicitTimeSignatureVisibility = #all-invisible
-<c e> 
+<c e>
 @end lilypond
 
 
@@ -256,18 +256,18 @@ twinkle
 @end lilypond
 
 @item @code{twin -- kle}
-@tab lyric hyphen 
+@tab lyric hyphen
 @tab
 @lilypond[fragment,relative=2]
 \set Staff.implicitTimeSignatureVisibility = #all-invisible
 <<
    { g'1 g }
   \new Lyrics \lyricsto "" { twin -- kle }
->> 
+>>
 @end lilypond
 
 @item @code{\chordmode @{ c:dim f:maj7 @}}
-@tab chords 
+@tab chords
 @tab
 @lilypond[fragment,relative=2]
 \set Staff.implicitTimeSignatureVisibility = #all-invisible
@@ -275,7 +275,7 @@ twinkle
 @end lilypond
 
 @item @code{\context ChordNames}
-@tab printing chord names 
+@tab printing chord names
 @tab
 @lilypond[fragment,relative=2]
 \chords { c:dim f:maj7 }
index 3382c43d2f7f73b0cb3ab48b5d1551edb1b7a427..5b5422b6f6f582ac236d1180100fa37ea1538879 100644 (file)
@@ -6,7 +6,7 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 
 @node Chord notation
@@ -73,7 +73,6 @@ Chord mode and note mode can be mixed in sequential music:
 
 
 @seealso
-
 Music Glossary:
 @rglos{chord}.
 
@@ -84,6 +83,7 @@ Notation Reference:
 Snippets:
 @rlsr{Chords}
 
+
 @knownissues
 
 When chord mode and note mode are mixed in sequential music, and
@@ -139,7 +139,10 @@ Seventh chords can be created:
 @funindex m
 
 The table belows shows the actions of the quality modifiers on
-triads and seventh chords.  A more complete table of modifier usage
+triads and seventh chords.  The default seventh step added to
+chords is a minor or flatted seventh, which makes the dominant
+seventh the basic seventh chord.  All alterations are relative to 
+the dominant seventh.  A more complete table of modifier usage
 is found at @ref{Common chord modifiers}.
 
 @c @table @code
@@ -164,11 +167,10 @@ The default action; produces a major triad.
 }
 @end lilypond
 
-@item 
+@item
 m, m7
 @tab
-The minor chord.  This modifier lowers the 3rd and (if present) the
-7th step.
+The minor chord.  This modifier lowers the 3rd.
 @tab
 @lilypond[line-width=4\cm, noragged-right]
 \chordmode {
@@ -178,7 +180,7 @@ The minor chord.  This modifier lowers the 3rd and (if present) the
 @end lilypond
 
 
-@item 
+@item
 dim, dim7
 @tab
 The diminished chord.  This modifier lowers the 3rd, 5th and (if
@@ -191,7 +193,7 @@ present) the 7th step.
 }
 @end lilypond
 
-@item 
+@item
 aug
 @tab
 The augmented chord.  This modifier raises the 5th step.
@@ -203,7 +205,7 @@ The augmented chord.  This modifier raises the 5th step.
 }
 @end lilypond
 
-@item 
+@item
 maj, maj7
 @tab
 The major 7th chord.  This modifier adds a raised 7th step.  The
@@ -221,13 +223,22 @@ to create a major triad.
 
 
 @seealso
-
 Notation Reference:
-@ref{Common chord modifiers}.
+@ref{Common chord modifiers},
+@ref{Extended and altered chords}.
 
 Snippets:
 @rlsr{Chords}.
 
+@knownissues
+Only one quality modifier should be used per chord, typically on the 
+highest step present in the chord.  Chords with more than quality
+modifier will be parsed without an error or warning, but the results
+are unpredictable.  Chords that cannot be achieved with a single
+quality modifier should be altered by individual pitches, as described
+in @ref{Extended and altered chords}.
+
+
 @node Extended and altered chords
 @unnumberedsubsubsec Extended and altered chords
 
@@ -242,6 +253,8 @@ or create an inversion.
 The first number following the @code{:} is taken to be the extent
 of the chord.  The chord is constructed by sequentially adding
 thirds to the root until the specified number has been reached.
+Note that the seventh step added as part of an extended chord will be the
+minor or flatted seventh, not the major seventh.
 If the extent is not a third (e.g., 6), thirds are added up to the
 highest third below the extent, and then the step of the extent is
 added.  The largest possible value for the extent is 13.  Any
@@ -272,7 +285,9 @@ is added explicitly).
 @cindex additions, in chords
 
 Individual steps can be added to a chord.  Additions follow the
-extent and are prefixed by a dot (@code{.}).
+extent and are prefixed by a dot (@code{.}).  The basic seventh
+step added to a chord is the minor or flatted seventh, rather than
+the major seventh.
 
 @lilypond[quote,verbatim,fragment,relative=1]
 \chordmode {
@@ -304,11 +319,11 @@ as part of the basic chord structure, add it as an altered step.
 
 @funindex ^
 
-Following any steps to be added, a series of steps to be removed 
-is introduced in a modifier string with a prefix of @code{^}.  
+Following any steps to be added, a series of steps to be removed
+is introduced in a modifier string with a prefix of @code{^}.
 If more than one step is to be removed, the steps to be
 removed are separated by @code{.} following the
-initial @code{^}. 
+initial @code{^}.
 
 @lilypond[quote,verbatim,fragment,relative=1]
 \chordmode {
@@ -356,17 +371,18 @@ moved as part of an inversion, by using @code{/+}@var{pitch}.
 @end lilypond
 
 Chord modifiers that can be used to produce a variety of
-standard chords are shown in 
+standard chords are shown in
 @ref{Common chord modifiers}.
 
-@seealso
 
+@seealso
 Notation Reference:
 @ref{Common chord modifiers}.
 
 Snippets:
 @rlsr{Chords}
 
+
 @knownissues
 
 Each step can only be present in a chord once.  The following
@@ -470,15 +486,12 @@ of the mode of entry, unless there are inversions or added bass notes:
 
 
 @seealso
-
 Music Glossary:
 @rglos{chord}.
 
-
 Notation Reference:
 @ref{Writing music in parallel}.
 
-
 Snippets:
 @rlsr{Chords}.
 
@@ -489,6 +502,7 @@ Internals Reference:
 @rinternals{Volta_engraver},
 @rinternals{Bar_engraver}.
 
+
 @knownissues
 
 Chords containing inversions or altered bass notes are not named
@@ -590,8 +604,8 @@ The spacer is not used when the root is altered.
 
 @end table
 
-@predefined
 
+@predefined
 @funindex major seven symbols
 @code{\whiteTriangleMarkup},
 @code{\blackTriangleMarkup},
@@ -603,6 +617,7 @@ The spacer is not used when the root is altered.
 @code{\italianChords},
 @funindex \frenchChords
 @code{\frenchChords}.
+@endpredefined
 
 
 @snippets
@@ -626,7 +641,6 @@ The spacer is not used when the root is altered.
 
 
 @seealso
-
 Notation Reference:
 @ref{Chord name chart},
 @ref{Common chord modifiers}.
@@ -642,6 +656,7 @@ Snippets:
 @c Internals Reference:
 @c @r internals{}.
 
+
 @knownissues
 
 Chord names are determined from both the pitches that are present
@@ -726,8 +741,8 @@ example, the vertical spacing of the figures may be set with
 @code{baseline-skip}.
 @end ignore
 
-@seealso
 
+@seealso
 Music Glossary:
 @rglos{figured bass}.
 
@@ -899,33 +914,34 @@ End of continuation line
 @end multitable
 
 
-
 @predefined
 @cindex figured bass extender lines
 @code{\bassFigureExtendersOn},
 @code{\bassFigureExtendersOff}.
+@endpredefined
 
 
 @snippets
 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
 {changing-the-positions-of-figured-bass-alterations.ly}
 
+
 @seealso
 @c Music Glossary:
 @c @rglos{}.
-
+@c
 @c Learning Manual:
 @c @rlearning{}.
-
+@c
 @c Notation Reference:
 @c @ref{}.
-
+@c
 @c Application Usage:
 @c @rprogram{}.
-
+@c
 @c Installed Files:
 @c @file{}.
-
+@c
 Snippets:
 @rlsr{Chords}.
 
@@ -937,8 +953,10 @@ Internals Reference:
 @rinternals{BassFigureContinuation},
 @rinternals{FiguredBass}.
 
+
 @c @knownissues
 
+
 @node Displaying figured bass
 @unnumberedsubsubsec Displaying figured bass
 
@@ -1014,25 +1032,28 @@ or below the staff.
 @code{\bassFigureStaffAlignmentDown},
 @code{\bassFigureStaffAlignmentUp},
 @code{\bassFigureStaffAlignmentNeutral}.
+@endpredefined
+
 
 @c @snippets
 
+
 @seealso
 @c Music Glossary:
 @c @rglos{}.
-
+@c
 @c Learning Manual:
 @c @rlearning{}.
-
+@c
 @c Notation Reference:
 @c @ref{}.
-
+@c
 @c Application Usage:
 @c @rprogram{}.
-
+@c
 @c Installed Files:
 @c @file{}.
-
+@c
 Snippets:
 @rlsr{Chords}.
 
@@ -1044,6 +1065,7 @@ Internals Reference:
 @rinternals{BassFigureContinuation},
 @rinternals{FiguredBass}.
 
+
 @knownissues
 
 To ensure that continuation lines work properly, it is
index aeb9966059645588f35e2d2f69a9b58038b09b9a..5c7a6f618751970fb84117f233e86ac873424010 100644 (file)
@@ -7,7 +7,7 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @node Converting from other formats
 @chapter Converting from other formats
@@ -33,7 +33,7 @@ bug reports will almost certainly not be resolved.
 @menu
 * Invoking midi2ly::            Importing MIDI.
 * Invoking musicxml2ly::        Importing MusicXML.
-* Invoking abc2ly::             Importing ABC.      
+* Invoking abc2ly::             Importing ABC.
 * Invoking etf2ly::             Importing Finale.
 * Generating LilyPond files::   GUIs, transcribers, and algorithmic composition programs.
 @end menu
@@ -149,7 +149,7 @@ Note that by @q{command-line}, we mean the command line of the
 operating system.  See @ref{Converting from other formats}, for
 more information about this.
 
-If the given filename is @file{-}, @command{musicxml2ly} reads input 
+If the given filename is @file{-}, @command{musicxml2ly} reads input
 from the command line.
 
 The following options are supported by @command{musicxml2ly}:
@@ -173,7 +173,7 @@ do not convert directions (@code{^}, @code{_} or @code{-}) for
 articulations, dynamics, etc.
 
 @item --no-beaming
-do not convert beaming information, use LilyPond's automatic 
+do not convert beaming information, use LilyPond's automatic
 beaming instead.
 
 @item -o,--output=@var{file}
@@ -330,7 +330,7 @@ which imports @uref{http://@/www@/.musicxml@/.com/xml@/.html,MusicXML}
 which imports MIDI
 @item
 @uref{http://@/common-lisp@/.net/project/fomus/,FOMUS},
-a LISP library to generate music notation 
+a LISP library to generate music notation
 @item
 @uref{http://vsr.informatik.tu-chemnitz.de/staff/jan/nted/nted.xhtml},
 has experimental export for LilyPond.
index 0199244ff15dcb225b476c353ac4e868ae09be67..cc0b4598e587d56eaa7539de698b4632cc698512 100644 (file)
@@ -7,7 +7,7 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @quotation
 We want to dedicate this program to all the friends that we
index d8e8c9f6918b3001ee6d5332c5964531d7027bc0..556db2dc66bfefb0509d60192719ad8d3560e048 100644 (file)
@@ -6,35 +6,35 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @node Editorial annotations
 @section Editorial annotations
 
 @lilypondfile[quote]{editorial-headword.ly}
 
-This section discusses the various ways to change the appearance of 
+This section discusses the various ways to change the appearance of
 notes and add analysis or educational emphasis.
 
 @menu
-* Inside the staff::            
-* Outside the staff::           
+* Inside the staff::
+* Outside the staff::
 @end menu
 
 
 @node Inside the staff
 @subsection Inside the staff
 
-This section discusses how to add emphasis to elements that are 
+This section discusses how to add emphasis to elements that are
 inside the staff.
 
 @menu
-* Selecting notation font size::  
-* Fingering instructions::      
-* Hidden notes::                
-* Coloring objects::            
-* Parentheses::                 
-* Stems::                       
+* Selecting notation font size::
+* Fingering instructions::
+* Hidden notes::
+* Coloring objects::
+* Parentheses::
+* Stems::
 @end menu
 
 @node Selecting notation font size
@@ -45,6 +45,7 @@ inside the staff.
 @cindex selecting font size (notation)
 @cindex notation font size
 @cindex note heads
+
 @funindex fontSize
 @funindex font-size
 @funindex magstep
@@ -105,6 +106,7 @@ c4.-> d8---3
 
 @cindex standard font size (notation)
 @cindex font size (notation), standard
+
 @funindex font-interface
 @funindex font-size
 
@@ -117,23 +119,18 @@ The @code{font-size} property can only be set on layout objects
 that use fonts.  These are the ones supporting the
 @code{font-interface} layout interface.
 
-@predefined
 
-@funindex \teeny
+@predefined
 @code{\teeny},
-@funindex \tiny
 @code{\tiny},
-@funindex \small
 @code{\small},
-@funindex \normalsize
 @code{\normalsize},
-@funindex \large
 @code{\large},
-@funindex \huge
 @code{\huge}.
+@endpredefined
 
-@seealso
 
+@seealso
 Snippets:
 @rlsr{Editorial annotations}.
 
@@ -146,6 +143,7 @@ Internals Reference:
 
 @cindex fingering
 @cindex finger change
+
 @funindex \finger
 @funindex finger
 
@@ -156,18 +154,19 @@ Fingering instructions can be entered using
 c4-1 d-2 f-4 e-3
 @end lilypond
 
-Markup texts may be used for finger changes. 
+Markup texts may be used for finger changes.
 
 @lilypond[verbatim,quote,relative=2]
 c4-1 d-2 f-4 c^\markup { \finger "2 - 3" }
 @end lilypond
 
 @cindex thumb-script
+
 @funindex \thumb
 @funindex thumb
 
 A thumb-script can be added (e.g., in cello music) to indicate
-that a note should be played with the thumb. 
+that a note should be played with the thumb.
 
 @lilypond[verbatim,quote,relative=2]
 <a_\thumb a'-3>2 <b_\thumb b'-3>
@@ -195,9 +194,11 @@ staff, see @ref{Direction and placement}.
 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
 {allowing-fingerings-to-be-printed-inside-the-staff.ly}
 
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{avoiding-collisions-with-chord-fingerings.ly}
+
 
 @seealso
-
 Notation Reference:
 @ref{Direction and placement}
 
@@ -221,6 +222,7 @@ Internals Reference:
 @cindex notes, hidden
 @cindex notes, invisible
 @cindex notes, transparent
+
 @funindex \hideNotes
 @funindex hideNotes
 @funindex \unHideNotes
@@ -235,7 +237,7 @@ c4 d
 e4 f
 \unHideNotes
 g a
-\hideNotes 
+\hideNotes
 b
 \unHideNotes
 c
@@ -252,11 +254,12 @@ e4(\p f)--
 
 
 @predefined
+@code{\hideNotes},
+@code{\unHideNotes}.
+@endpredefined
 
-@code{\hideNotes}, @code{\unHideNotes}
 
 @seealso
-
 Snippets:
 @rlsr{Editorial annotations}.
 
@@ -269,6 +272,7 @@ Internals Reference:
 @unnumberedsubsubsec Coloring objects
 
 @cindex colored objects
+@cindex objects, colored
 @cindex colors
 @cindex coloring objects
 @cindex colored notes
@@ -277,6 +281,7 @@ Internals Reference:
 @cindex x11 color
 @cindex x11-color
 @cindex with-color
+
 @funindex color
 @funindex \with-color
 @funindex with-color
@@ -303,7 +308,7 @@ write and is more efficient.  However, using the second form it is
 possible to access X11 colors by the multi-word form of its name.
 
 If @code{x11-color} cannot make sense of the parameter then the
-color returned defaults to black. 
+color returned defaults to black.
 
 @lilypond[verbatim,quote,relative=2]
 \override Staff.StaffSymbol #'color = #(x11-color 'SlateBlue2)
@@ -326,6 +331,7 @@ b2 cis
 @cindex rgb-color
 @cindex color, rgb
 @cindex rgb color
+
 @funindex rgb-color
 
 Exact RGB colors can be specified using the Scheme function
@@ -336,17 +342,17 @@ Exact RGB colors can be specified using the Scheme function
 \set Staff.instrumentName = \markup {
   \with-color #(x11-color 'navy) "Clarinet"
 }
-  
+
 \override Stem #'color = #(rgb-color 0 0 0)
 gis8 a
 \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
 
-@seealso
 
+@seealso
 Notation Reference:
 @ref{List of colors}, @ref{The
 tweak command}.
@@ -354,15 +360,17 @@ tweak command}.
 Snippets:
 @rlsr{Editorial annotations}.
 
+
 @cindex x11 color
 @cindex colored notes in chords
 @cindex notes, colored in chords
 @cindex color in chords
+
 @funindex x11-color
 
 @knownissues
 An X11 color is not necessarily exactly the same shade as a
-similarly named normal color.  
+similarly named normal color.
 
 Not all X11 colors are distinguishable in a web browser, i.e.,
 a web browser might not display a difference between @code{'LimeGreen}
@@ -381,6 +389,7 @@ Notes in a chord cannot be colored with @code{\override}; use
 @cindex notes, ghost
 @cindex notes, parenthesized
 @cindex parentheses
+
 @funindex \parenthesize
 @funindex parenthesize
 
@@ -394,15 +403,16 @@ c2 \parenthesize <c e g>
 c2 <c \parenthesize e g>
 @end lilypond
 
-Non-note objects may be parenthesized as well.
+Non-note objects may be parenthesized as well. For articulations, 
+a hyphen is needed before the @code{\parenthesize} command.
 
 @lilypond[verbatim,quote,relative=2]
 c2-\parenthesize -. d
 c2 \parenthesize r
 @end lilypond
 
-@seealso
 
+@seealso
 Snippets:
 @rlsr{Editorial annotations}.
 
@@ -411,6 +421,7 @@ Internals Reference:
 @rinternals{ParenthesesItem},
 @rinternals{parentheses-interface}.
 
+
 @knownissues
 
 Parenthesizing a chord prints parentheses around each individual
@@ -425,30 +436,35 @@ chord.
 @cindex stem, invisible
 @cindex invisible stem
 
+@funindex \stemUp
+@funindex stemUp
+@funindex \stemDown
+@funindex stemDown
+@funindex \stemNeutral
+@funindex stemNeutral
+@cindex stem, direction
+@cindex stem, up
+@cindex stem, down
+@cindex stem, neutral
+
 Whenever a note is found, a @code{Stem} object is created
 automatically.  For whole notes and rests, they are also created but
 made invisible.
 
-@predefined
 
-@funindex \stemUp
+@predefined
 @code{\stemUp},
-@funindex \stemDown
 @code{\stemDown},
-@funindex \stemNeutral
 @code{\stemNeutral}.
+@endpredefined
 
 
 @snippets
 
-@cindex stem, direction
-@cindex stem, up
-@cindex stem, down
-@cindex stem, neutral
-
 @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
 {default-direction-of-stems-on-the-center-line-of-the-staff.ly}
 
+
 @seealso
 Notation Reference:
 @ref{Direction and placement}.
@@ -465,13 +481,13 @@ Internals Reference:
 @node Outside the staff
 @subsection Outside the staff
 
-This section discusses how to add emphasis to elements in the staff 
-from outside of the staff. 
+This section discusses how to add emphasis to elements in the staff
+from outside of the staff.
 
 @menu
-* Balloon help::                
-* Grid lines::                  
-* Analysis brackets::           
+* Balloon help::
+* Grid lines::
+* Analysis brackets::
 @end menu
 
 @node Balloon help
@@ -481,11 +497,16 @@ from outside of the staff.
 @cindex notation, explaining
 @cindex balloon help
 @cindex help, balloon
+
 @funindex \balloonGrobText
 @funindex \balloonText
 @funindex Balloon_engraver
 @funindex balloonGrobText
 @funindex balloonText
+@funindex \balloonLengthOn
+@funindex balloonLengthOn
+@funindex \balloonLengthOff
+@funindex balloonLengthOff
 
 Elements of notation can be marked and named with the help of a
 square balloon.  The primary purpose of this feature is to explain
@@ -495,10 +516,10 @@ notation.
 \new Voice \with { \consists "Balloon_engraver" }
 {
   \balloonGrobText #'Stem #'(3 . 4) \markup { "I'm a Stem" }
-  a8 
+  a8
   \balloonGrobText #'Rest #'(-4 . -4) \markup { "I'm a rest" }
   r
-  <c, g'-\balloonText #'(-2 . -2) \markup { "I'm a note head" } c>2. 
+  <c, g'-\balloonText #'(-2 . -2) \markup { "I'm a note head" } c>2.
 }
 @end lilypond
 
@@ -517,26 +538,22 @@ altered:
 {
   \balloonLengthOff
   \balloonGrobText #'Stem #'(3 . 4) \markup { "I'm a Stem" }
-  a8 
+  a8
   \balloonGrobText #'Rest #'(-4 . -4) \markup { "I'm a rest" }
   r
   \balloonLengthOn
-  <c, g'-\balloonText #'(-2 . -2) \markup { "I'm a note head" } c>2. 
+  <c, g'-\balloonText #'(-2 . -2) \markup { "I'm a note head" } c>2.
 }
 @end lilypond
 
 
 @predefined
+@code{\balloonLengthOn},
+@code{\balloonLengthOff}.
+@endpredefined
 
-@funindex balloonLengthOn
-@funindex balloonLengthOff
-@funindex \balloonLengthOn
-@funindex \balloonLengthOff
-
-@code{\balloonLengthOn}, @code{\balloonLengthOff}
 
 @seealso
-
 Snippets:
 @rlsr{Editorial annotations}.
 
@@ -553,6 +570,7 @@ Internals Reference:
 @cindex lines, grid
 @cindex vertical lines between staves
 @cindex lines, vertical between staves
+
 @funindex Grid_point_engraver
 @funindex Grid_line_span_engraver
 @funindex gridInterval
@@ -572,7 +590,7 @@ lines.
 \layout {
   \context {
     \Staff
-    \consists "Grid_point_engraver" 
+    \consists "Grid_point_engraver"
     gridInterval = #(ly:make-moment 1 4)
   }
   \context {
@@ -603,7 +621,6 @@ lines.
 
 
 @seealso
-
 Snippets:
 @rlsr{Editorial annotations}.
 
@@ -623,9 +640,11 @@ Internals Reference:
 @cindex bracket, phrasing
 @cindex phrasing bracket
 @cindex musicological analysis
+@cindex analysis, musicological
 @cindex note grouping bracket
 @cindex horizontal bracket
 @cindex bracket, horizontal
+
 @funindex Horizontal_bracket_engraver
 @funindex \startGroup
 @funindex startGroup
@@ -665,8 +684,8 @@ Analysis brackets may be nested.
 }
 @end lilypond
 
-@seealso
 
+@seealso
 Snippets:
 @rlsr{Editorial annotations}.
 
index 65e197b242aa91151223e57abb549d794d9742ff..e0003fc452866dbd7a4c957083ff0cdf0448d11c 100644 (file)
@@ -6,7 +6,7 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @node Expressive marks
 @section Expressive marks
@@ -119,9 +119,10 @@ may be manually placed above or below the staff, see
 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
 {controlling-the-vertical-ordering-of-scripts.ly}
 
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{creating-a-delayed-turn.ly}
 
 @seealso
-
 Music Glossary:
 @rglos{tenuto},
 @rglos{accent},
@@ -313,7 +314,6 @@ Vertical positioning of dynamics is handled by
 
 
 @predefined
-
 @code{\dynamicUp},
 @code{\dynamicDown},
 @code{\dynamicNeutral},
@@ -323,6 +323,7 @@ Vertical positioning of dynamics is handled by
 @code{\dimTextDecresc},
 @code{\crescHairpin},
 @code{\dimHairpin}.
+@endpredefined
 
 
 @snippets
@@ -350,7 +351,6 @@ Vertical positioning of dynamics is handled by
 
 
 @seealso
-
 Music Glossary:
 @rglos{al niente},
 @rglos{crescendo},
@@ -467,7 +467,6 @@ Font settings in markup mode are described in
 
 
 @seealso
-
 Notation Reference:
 @ref{Formatting text},
 @ref{Selecting font and font size},
@@ -487,10 +486,10 @@ are curved: normal slurs, phrasing slurs, breath marks, falls, and
 doits.
 
 @menu
-* Slurs::                       
-* Phrasing slurs::              
-* Breath marks::                
-* Falls and doits::             
+* Slurs::
+* Phrasing slurs::
+* Breath marks::
+* Falls and doits::
 @end menu
 
 @node Slurs
@@ -570,14 +569,15 @@ g4( e c2)
 @funindex \slurUp
 @funindex slurUp
 
-@predefined
 
+@predefined
 @code{\slurUp},
 @code{\slurDown},
 @code{\slurNeutral},
 @code{\slurDashed},
 @code{\slurDotted},
 @code{\slurSolid}.
+@endpredefined
 
 
 @snippets
@@ -585,9 +585,10 @@ g4( e c2)
 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
 {using-double-slurs-for-legato-chords.ly}
 
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{positioning-text-markups-inside-slurs.ly}
 
 @seealso
-
 Music Glossary:
 @rglos{slur}.
 
@@ -630,6 +631,12 @@ e2) d\)
 @funindex phrasingSlurDown
 @funindex \phrasingSlurNeutral
 @funindex phrasingSlurNeutral
+@funindex phrasingSlurDashed
+@funindex \phrasingSlurDashed
+@funindex \phrasingSlurDotted
+@funindex phrasingSlurDotted
+@funindex \phrasingSlurSolid
+@funindex phrasingSlurSolid
 
 Typographically, a phrasing slur behaves almost exactly like a
 normal slur.  However, they are treated as different objects; a
@@ -652,16 +659,31 @@ c4\( g' c,( b) | c1\)
 
 Simultaneous or overlapping phrasing slurs are not permitted.
 
+Phrasing slurs can be solid, dotted, or dashed.  Solid is the default
+style for phrasing slurs:
 
-@predefined
+@lilypond[verbatim,quote,relative=1]
+c4\( e g2\)
+\phrasingSlurDashed
+g4\( e c2\)
+\phrasingSlurDotted
+c4\( e g2\)
+\phrasingSlurSolid
+g4\( e c2\)
+@end lilypond
 
+
+@predefined
 @code{\phrasingSlurUp},
 @code{\phrasingSlurDown},
-@code{\phrasingSlurNeutral}.
+@code{\phrasingSlurNeutral},
+@code{\phrasingSlurDashed},
+@code{\phrasingSlurDotted},
+@code{\phrasingSlurSolid}.
+@endpredefined
 
 
 @seealso
-
 Learning Manual:
 @rlearning{On the un-nestedness of brackets and ties}.
 
@@ -706,8 +728,7 @@ divisiones, are supported.  For details, see @ref{Divisiones}.
 
 
 @seealso
-
-Music Glossary: 
+Music Glossary:
 @rglos{caesura}.
 
 Notation Reference:
@@ -752,7 +773,6 @@ command is @emph{required} when writing falls and doits.
 
 
 @seealso
-
 Music Glossary:
 @rglos{fall},
 @rglos{doit}.
@@ -798,7 +818,6 @@ Different styles of glissandi can be created.  For details, see
 
 
 @seealso
-
 Music Glossary:
 @rglos{glissando}.
 
@@ -877,14 +896,15 @@ Special @emph{bracketed} arpeggio symbols can be created:
 Arpeggios can be explicitly written out with ties.  For more
 information, see @ref{Ties}.
 
-@predefined
 
+@predefined
 @code{\arpeggio},
 @code{\arpeggioArrowUp},
 @code{\arpeggioArrowDown},
 @code{\arpeggioNormal},
 @code{\arpeggioBracket},
 @code{\arpeggioParenthesis}.
+@endpredefined
 
 
 @snippets
@@ -900,7 +920,6 @@ information, see @ref{Ties}.
 
 
 @seealso
-
 Music Glossary:
 @rglos{arpeggio}.
 
@@ -1000,13 +1019,12 @@ g\stopTrillSpan
 
 
 @predefined
-
 @code{\startTrillSpan},
 @code{\stopTrillSpan}.
+@endpredefined
 
 
 @seealso
-
 Music Glossary:
 @rglos{trill}.
 
index 2ba52055393326bc6e1b3082b86631c016b081de..614c0c15def4bcf08d859f72f683a3b66561b6a1 100644 (file)
@@ -6,7 +6,7 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @node Fretted string instruments
 @section Fretted string instruments
@@ -23,9 +23,9 @@ to fretted string instruments.
 @cindex banjo tablature
 
 @menu
-* Common notation for fretted strings::  
-* Guitar::                      
-* Banjo::                       
+* Common notation for fretted strings::
+* Guitar::
+* Banjo::
 @end menu
 
 @node Common notation for fretted strings
@@ -35,14 +35,14 @@ This section discusses common notation that is unique
 to fretted string instruments.
 
 @menu
-* References for fretted strings::  
-* String number indications::   
-* Default tablatures::          
-* Custom tablatures::           
+* References for fretted strings::
+* String number indications::
+* Default tablatures::
+* Custom tablatures::
 * Fret diagram markups::
 * Predefined fret diagrams::
-* Automatic fret diagrams::               
-* Right-hand fingerings::       
+* Automatic fret diagrams::
+* Right-hand fingerings::
 @end menu
 
 @node References for fretted strings
@@ -53,25 +53,28 @@ a single staff, either in traditional music notation or in
 tablature.  Sometimes the two types are combined, and it is
 especially common in popular music to use chord diagrams above
 a staff of traditional notation.  The guitar and the banjo are
-transposing instruments, sounding an octave lower than written. 
-Scores for these instruments should use the @code{"treble_8"} clef. 
-Some other elements pertinent to fretted string instruments 
+transposing instruments, sounding an octave lower than written.
+Scores for these instruments should use the @code{"treble_8"} clef.
+Some other elements pertinent to fretted string instruments
 are covered elsewhere:
 
 @itemize
-@item Fingerings are indicated with @ref{Fingering instructions}.
+@item Fingerings are indicated as shown in @ref{Fingering instructions}.
 
 @item Instructions for @notation{Laissez vibrer} ties
-as well as ties on arpeggios and tremolos is described in
+as well as ties on arpeggios and tremolos can be found in
 @ref{Ties}.
 
-@item Instructions on handling multiple voices is described 
-in @ref{Collision resolution}. 
+@item Instructions for handling multiple voices can be found
+in @ref{Collision resolution}.
+
+@item Instructions for indicating harmonics can be found in
+@ref{Harmonics}.
 
 @end itemize
 
-@seealso
 
+@seealso
 Notation Reference:
 @ref{Fingering instructions},
 @ref{Ties},
@@ -82,6 +85,7 @@ Notation Reference:
 @ref{List of articulations},
 @ref{Clef}.
 
+
 @node String number indications
 @unnumberedsubsubsec String number indications
 
@@ -120,8 +124,8 @@ in the code:
 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
 {allowing-fingerings-to-be-printed-inside-the-staff.ly}
 
-@seealso
 
+@seealso
 Notation Reference:
 @ref{Fingering instructions}.
 
@@ -144,12 +148,12 @@ Internals Reference:
 
 Tablature notation is used for notating music for plucked string
 instruments.  Pitches are not denoted with note heads, but by
-numbers indicating on which string and fret a note must be played.  
+numbers indicating on which string and fret a note must be played.
 LilyPond offers limited support for tablature.
 
 The string number associated with a note is given as a backslash
-followed by a number.  By default, string 1 is the highest, 
-and the tuning defaults to the standard guitar tuning (with 6 strings).  
+followed by a number.  By default, string 1 is the highest,
+and the tuning defaults to the standard guitar tuning (with 6 strings).
 The notes are printed as tablature, by using @code{TabStaff} and
 @code{TabVoice} contexts
 
@@ -211,20 +215,21 @@ notation.
 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
 {polyphony-in-tablature.ly}
 
-@seealso
 
+@seealso
 Notation Reference:
 @ref{Stems}.
 
 Snippets:
 @rlsr{Fretted strings}.
 
-Internals Reference: 
+Internals Reference:
 @rinternals{TabNoteHead},
 @rinternals{TabStaff},
 @rinternals{TabVoice},
 @rinternals{Beam}.
 
+
 @knownissues
 
 Chords are not handled in a special way, and hence the automatic
@@ -262,14 +267,14 @@ Guitar special effects are limited to harmonics and slides.
 
 @funindex StringTunings
 
-LilyPond tabulature automatically calculates the fret for 
+LilyPond tabulature automatically calculates the fret for
 a note based on the string to which the note is assigned.
 In order to do this, the tuning of the strings must be
 specified.  The tuning of the strings is given in the
 @code{StringTunings} property.
 
 LilyPond comes with predefined string tunings for banjo, mandolin,
-guitar and bass guitar.  Lilypond automatically sets the correct 
+guitar and bass guitar.  Lilypond automatically sets the correct
 transposition for predefined tunings.  The following example is
 for bass guitar, which sounds an octave lower than written.
 
@@ -293,20 +298,20 @@ for bass guitar, which sounds an octave lower than written.
 The default string tuning is @code{guitar-tuning}, which
 is the standard EADGBE tuning.  Some other predefined tunings are
 @code{guitar-open-g-tuning}, @code{mandolin-tuning} and
-@code{banjo-open-g-tuning}.  The predefined string tunings 
+@code{banjo-open-g-tuning}.  The predefined string tunings
 are found in @code{scm/output-lib.scm}.
 
-A string tuning is a Scheme list of string pitches, 
+A string tuning is a Scheme list of string pitches,
 one for each string, ordered by string number from 1 to N,
 where string 1 is at the top of the tablature staff and
-string N is at the bottom.  This ordinarily results in ordering 
-from highest pitch to lowest pitch, but some instruments 
+string N is at the bottom.  This ordinarily results in ordering
+from highest pitch to lowest pitch, but some instruments
 (e.g. ukulele) do not have strings ordered by pitch.
 
-A string pitch in a string tuning list is the pitch difference  
-of the open string from middle C measured in semitones.  The 
-string pitch must be an integer.  Lilypond calculates the actual 
-pitch of the string by adding the string tuning pitch to the 
+A string pitch in a string tuning list is the pitch difference
+of the open string from middle C measured in semitones.  The
+string pitch must be an integer.  Lilypond calculates the actual
+pitch of the string by adding the string tuning pitch to the
 actual pitch for middle C.
 
 LilyPond automatically calculates the number of strings in the
@@ -335,15 +340,15 @@ mynotes = {
 >>
 @end lilypond
 
-@seealso
 
+@seealso
 Installed Files:
 @file{scm/output-lib.scm}.
 
 Snippets:
 @rlsr{Fretted strings}.
 
-Internals Reference: 
+Internals Reference:
 @rinternals{Tab_note_heads_engraver}.
 
 
@@ -372,17 +377,17 @@ In addition, open and unplayed (muted) strings can be indicated.
 @lilypond[quote, verbatim]
 <<
   \context ChordNames {
-     \chordmode { 
-       c1 d:m          
+     \chordmode {
+       c1 d:m
      }
   }
   \context Staff {
     \clef "treble_8"
-    < c e g c' e' > 1 ^\markup 
+    < c e g c' e' > 1 ^\markup
       \fret-diagram #"6-x;5-3;4-2;3-o;2-1;1-o;"
     < d a d' f'> ^\markup
       \fret-diagram #"6-x;5-x;4-o;3-2;2-3;1-1;"
-  }  
+  }
 >>
 @end lilypond
 
@@ -457,17 +462,17 @@ can be controlled by the fret-diagram markup string.
 @lilypond[quote, verbatim]
 <<
   \context ChordNames {
-     \chordmode { 
-       c1 d:m          
+     \chordmode {
+       c1 d:m
      }
   }
   \context Staff {
     \clef "treble_8"
-    < c e g c' e' > 1 ^\markup 
+    < c e g c' e' > 1 ^\markup
       \fret-diagram #"f:1;6-x;5-3-3;4-2-2;3-o;2-1-1;1-o;"
     < d a d' f'> ^\markup
       \fret-diagram #"f:2;6-x;5-x;4-o;3-2-2;2-3-3;1-1-1;"
-  }  
+  }
 >>
 @end lilypond
 
@@ -477,17 +482,17 @@ markup string.
 @lilypond[quote, verbatim]
 <<
   \context ChordNames {
-     \chordmode { 
-       c1 d:m          
+     \chordmode {
+       c1 d:m
      }
   }
   \context Staff {
     \clef "treble_8"
-    < c e g c' e' > 1 ^\markup 
+    < c e g c' e' > 1 ^\markup
       \fret-diagram #"d:0.35;6-x;5-3;4-2;3-o;2-1;1-o;"
     < d a d' f'> ^\markup
       \fret-diagram #"p:0.2;6-x;5-x;4-o;3-2;2-3;1-1;"
-  }  
+  }
 >>
 @end lilypond
 
@@ -497,7 +502,7 @@ markup string.
 @funindex \fret-diagram-terse
 
 The fret-diagram-terse markup string omits string numbers; the string
-number is implied by the presence of semicolons.  There is one semicolon 
+number is implied by the presence of semicolons.  There is one semicolon
 for each string in the diagram.  The first semicolon corresponds to the
 highest string number and the last semicolon corresponds to the first string.
 Mute strings, open strings, and fret numbers can be indicated.
@@ -536,21 +541,21 @@ Barre indicators can be included in the fret-diagram-terse markup string.
       \fret-diagram-terse #"3-(;5;5;4;3;3-);"
   }
 >>
-@end lilypond      
+@end lilypond
 
 Fingering indications can be included in the fret-diagram-terse markup string.
 
 @c Need to use override to enable fingerings to show this -- can we do so?
 @lilypond[quote, verbatim]
-<<    
+<<
   \context ChordNames {
      \chordmode {
        c1 d:m
      }
   }
   \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;"
@@ -601,21 +606,25 @@ element of the list indicates an item to be placed on the fret diagram.
 >>
 @end lilypond
 
-Fingering indications and barres can be included in a 
-fret-diagram-verbose markup string.
+Fingering indications and barres can be included in a
+fret-diagram-verbose markup string.  Unique to the 
+fret-diagram-verbose interface is a capo indication that 
+can be placed on the fret diagram.  The capo indication is
+a thick bar that covers all strings.  The fret with the
+capo will be the lowest fret in the fret diagram.
 
 @c \override is necessary to make fingering visible
 @lilypond[quote, verbatim]
 <<
   \context ChordNames {
      \chordmode {
-       f1 g
+       f1 g c
      }
   }
   \context Staff {
     \clef "treble_8"
     \override Voice.TextScript
-      #'fret-diagram-details #'finger-code = #'below-string
+      #'(fret-diagram-details finger-code) = #'below-string
 
     < f, c f a c' f'>1 ^\markup
       \fret-diagram-verbose #'(
@@ -636,11 +645,19 @@ fret-diagram-verbose markup string.
         (open 2)
         (place-fret 1 3 3)
       )
-  }
+    < c e g c' e'> ^\markup
+      \fret-diagram-verbose #'(
+        (capo 3)
+        (mute 6)
+        (place-fret 4 5 1)
+        (place-fret 3 5 2)
+        (place-fret 2 5 3)
+      )
+   }
 >>
 @end lilypond
 
-All other fret diagram properties must be adjusted using @code{\override} 
+All other fret diagram properties must be adjusted using @code{\override}
 when using the fret-diagram-verbose markup.
 
 @ignore
@@ -659,9 +676,9 @@ and color of dots.
   fis^\markup \override #'(size . 0.75) {
     \override #'(finger-code . below-string) {
       \fret-diagram-verbose #'((place-fret 6 2 1) (barre 6 1 2)
-                               (place-fret 5 4 3) 
+                               (place-fret 5 4 3)
                                (place-fret 4 4 4)
-                               (place-fret 3 3 2) 
+                               (place-fret 3 3 2)
                                (place-fret 2 2 1)
                                (place-fret 1 2 1))
     }
@@ -697,7 +714,6 @@ markup, the interface properties belong to @code{Voice.TextScript}.
 
 
 @seealso
-
 Notation Reference:
 @ref{Text markup commands}.
 
@@ -707,6 +723,7 @@ Snippets:
 Internals Reference:
 @rinternals{fret-diagram-interface}.
 
+
 @node Predefined fret diagrams
 @unnumberedsubsubsec Predefined fret diagrams
 
@@ -731,14 +748,14 @@ are stored in a lookup table:
 @end lilypond
 
 The default predefined fret diagrams are contained in the file
-@code{predefined-guitar-fretboards.ly}.  Fret diagrams are 
+@code{predefined-guitar-fretboards.ly}.  Fret diagrams are
 stored based on the pitches of a chord and the value of
-@code{stringTunings} that is currently in use.  
-@code{predefined-guitar-fretboards.ly} contains predefined 
+@code{stringTunings} that is currently in use.
+@code{predefined-guitar-fretboards.ly} contains predefined
 fret diagrams only for @code{guitar-tuning}.  Predefined fret
 diagrams can be added for other instruments or other tunings
-by following the examples found in 
-@code{predefined-guitar-fretboards.ly}.  
+by following the examples found in
+@code{predefined-guitar-fretboards.ly}.
 
 Chord pitches can be entered
 either as simultaneous music or using chord mode (see
@@ -836,13 +853,15 @@ mychords = \chordmode{
 @cindex adding custom fret diagrams
 
 Fret diagrams can be added to the fret diagram table.  To add a diagram,
-you must specify the chord for the diagram, the tuning to be used, and the
-fret-diagram-terse definition string for the diagram.
+you must specify the chord for the diagram, the tuning to be used, and 
+a definition for the diagram.  The diagram definition can be either a
+fret-diagram-terse definition string or a fret-diagram-verbose
+marking list.
 
 @lilypond[verbatim, ragged-right, quote]
 \include "predefined-guitar-fretboards.ly"
 
-\storePredefinedDiagram \chordmode {c:9} 
+\storePredefinedDiagram \chordmode {c:9}
                         #guitar-tuning
                         #"x;3-2;2-1;3-3;3-4;x;"
 
@@ -866,9 +885,9 @@ octaves of pitches.
 @lilypond[verbatim, ragged-right, quote]
 \include "predefined-guitar-fretboards.ly"
 
-\storePredefinedDiagram \chordmode {c'} 
+\storePredefinedDiagram \chordmode {c'}
                         #guitar-tuning
-                        #(offset-fret 2 (chord-shape 'bes))
+                        #(offset-fret 2 (chord-shape 'bes guitar-tuning))
 
 mychords = \chordmode{
   c1 c'
@@ -896,26 +915,30 @@ In addition to fret diagrams, LilyPond stores an internal list of chord
 shapes.  The chord shapes are fret diagrams that can be shifted along
 the neck to different posistions to provide different chords.  Chord
 shapes can be added to the internal list and then used to define
-predefined fret diagrams.
+predefined fret diagrams.  Because they can be moved to various
+positions on the neck, chord shapes will normally not contain
+any open strings.  Like fret diagrams, chord shapes can be
+entered as either fret-diagram-terse strings or fret-diagram-verbose
+marking lists.
 
 @lilypond[verbatim, ragged-right, quote]
 \include "predefined-guitar-fretboards.ly"
 
 % add a new chord shape
 
-\addChordShape #'powerf #"1-1;3-3;3-4;x;x;x;"
+\addChordShape #'powerf #guitar-tuning #"1-1;3-3;3-4;x;x;x;"
 
 % add some new chords based on the power chord shape
 
-\storePredefinedDiagram \chordmode {f'} 
-                        #guitar-tuning 
-                        #(chord-shape 'powerf)
-\storePredefinedDiagram \chordmode {g'} 
+\storePredefinedDiagram \chordmode {f'}
+                        #guitar-tuning
+                        #(chord-shape 'powerf guitar-tuning) 
+\storePredefinedDiagram \chordmode {g'}
                         #guitar-tuning
-                        #(offset-fret 2 (chord-shape 'powerf))
+                        #(offset-fret 2 (chord-shape 'powerf guitar-tuning))
 
 mychords = \chordmode{
-  f1 f' g g' 
+  f1 f' g g'
 }
 
 <<
@@ -930,8 +953,8 @@ mychords = \chordmode{
 
 The graphical layout of a fret diagram can be customized according to
 user preference through the properties of the @code{fret-diagram-interface}.
-Details are found at @rinternals{fret-diagram-interface}.  For a 
-predefined fret diagram, the interface properties belong to 
+Details are found at @rinternals{fret-diagram-interface}.  For a
+predefined fret diagram, the interface properties belong to
 @code{FretBoards.FretBoard}.
 
 @snippets
@@ -942,8 +965,10 @@ predefined fret diagram, the interface properties belong to
 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
 {defining-predefined-fretboards-for-other-instruments.ly}
 
-@seealso
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{fretboard-chordchanges.ly}
 
+@seealso
 Notation Reference:
 @ref{Custom tablatures},
 @ref{Automatic fret diagrams},
@@ -969,7 +994,7 @@ Internals Reference:
 @cindex automatic fret diagrams
 @cindex automatic chord diagrams
 
-Fret diagrams can be automatically created from entered notes using the 
+Fret diagrams can be automatically created from entered notes using the
 @code{FretBoards} context.  If no predefined diagram is available for
 the entered notes in the active @code{stringTunings}, this context
 calculates strings and frets that can be used to play the notes.
@@ -977,8 +1002,8 @@ calculates strings and frets that can be used to play the notes.
 @lilypond[quote,ragged-right,verbatim]
 <<
   \context ChordNames {
-     \chordmode { 
-       f1 g  
+     \chordmode {
+       f1 g
      }
   }
   \context FretBoards {
@@ -989,7 +1014,7 @@ calculates strings and frets that can be used to play the notes.
     \clef "treble_8"
     < f, c f a c' f'>1
     < g, b, d g b' g'>
-  }  
+  }
 >>
 @end lilypond
 
@@ -998,7 +1023,7 @@ calculates strings and frets that can be used to play the notes.
 @funindex predefinedFretboardsOn
 @funindex \predefinedFretboardsOn
 
-As no predefined diagrams are loaded by default, automatic calculation 
+As no predefined diagrams are loaded by default, automatic calculation
 of fret diagrams is the default behavior.  Once default diagrams are
 loaded, automatic calculation can be enabled and disabled with predefined
 commands:
@@ -1010,8 +1035,8 @@ commands:
                         #"x;3-1-(;5-2;5-3;5-4;3-1-1);"
 <<
   \context ChordNames {
-     \chordmode { 
-       c1 c c 
+     \chordmode {
+       c1 c c
      }
   }
   \context FretBoards {
@@ -1026,16 +1051,16 @@ commands:
     <c e g c' e'>1
     <c e g c' e'>
     <c e g c' e'>
-  }  
+  }
 >>
 @end lilypond
 
-  
+
 
 Sometimes the fretboard calculator will be unable to find
 an accceptable diagram.  This can often be remedied by
 manually assigning a note to a string.  In many cases, only one
-note need be manually placed on a string; the rest of 
+note need be manually placed on a string; the rest of
 the notes will then be placed appropriately by the @code{FretBoards}
 context.
 
@@ -1047,8 +1072,8 @@ Fingerings can be added to FretBoard fret diagrams.
 @lilypond[quote, verbatim]
 <<
   \context ChordNames {
-     \chordmode { 
-       c1 d:m          
+     \chordmode {
+       c1 d:m
      }
   }
   \context FretBoards {
@@ -1059,7 +1084,7 @@ Fingerings can be added to FretBoard fret diagrams.
     \clef "treble_8"
     < c e g c' e' > 1
     < d a d' f'>
-  }  
+  }
 >>
 @end lilypond
 
@@ -1089,21 +1114,23 @@ property.
 
 The strings and frets for the @code{FretBoards} context depend
 on the @code{stringTunings} property, which has the same meaning
-as in the TabStaff context.  See @ref{Custom tablatures} for 
-information on the @code{stringTunings} property. 
+as in the TabStaff context.  See @ref{Custom tablatures} for
+information on the @code{stringTunings} property.
 
 The graphical layout of a fret diagram can be customized according to
 user preference through the properties of the @code{fret-diagram-interface}.
-Details are found at @rinternals{fret-diagram-interface}.  For a 
-@code{FretBoards} fret diagram, the interface properties belong to 
+Details are found at @rinternals{fret-diagram-interface}.  For a
+@code{FretBoards} fret diagram, the interface properties belong to
 @code{FretBoards.FretBoard}.
 
+
 @predefined
 @code{\predefinedFretboardsOff},
 @code{\predefinedFretboardsOn}.
+@endpredefined
 
-@seealso
 
+@seealso
 Notation Reference:
 @ref{Custom tablatures}.
 
@@ -1124,18 +1151,18 @@ Internals Reference:
 @funindex rightHandFinger
 @funindex \rightHandFinger
 
-Right-hand fingerings @var{p-i-m-a} must be entered within a  
-chord construct @code{<>} for them to be printed in the score, 
-even when applied to a single note. 
+Right-hand fingerings @var{p-i-m-a} must be entered within a
+chord construct @code{<>} for them to be printed in the score,
+even when applied to a single note.
 
-@warning{There @strong{must} be a hyphen after the note and a space 
+@warning{There @strong{must} be a hyphen after the note and a space
 before the closing @code{>}.}
 
 @lilypond[quote,verbatim,relative=0]
 \clef "treble_8"
-<c-\rightHandFinger #1 >4 
-<e-\rightHandFinger #2 > 
-<g-\rightHandFinger #3 > 
+<c-\rightHandFinger #1 >4
+<e-\rightHandFinger #2 >
+<g-\rightHandFinger #3 >
 <c-\rightHandFinger #4 >
 <c,-\rightHandFinger #1 e-\rightHandFinger #2
   g-\rightHandFinger #3 c-\rightHandFinger #4 >1
@@ -1157,12 +1184,12 @@ short, for example @code{RH},
 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
 {fingerings,-string-indications,-and-right-hand-fingerings.ly}
 
-@seealso
 
+@seealso
 Snippets:
 @rlsr{Fretted strings}.
 
-Internals Reference: 
+Internals Reference:
 @rinternals{StrokeFinger}.
 
 
@@ -1171,16 +1198,16 @@ Internals Reference:
 
 Most of the notational issues associated with guitar music are
 covered sufficiently in the general fretted strings section, but there
-are a few more worth covering here.  Occasionally users want to 
+are a few more worth covering here.  Occasionally users want to
 create songbook-type documents having only lyrics with chord
 indications above them.  Since Lilypond is a music typesetter,
 it is not recommended for documents that have no music notation
-in them.  A better alternative is a word processor, text editor, 
+in them.  A better alternative is a word processor, text editor,
 or, for experienced users, a typesetter like GuitarTeX.
 
 @menu
-* Indicating position and barring::  
-* Indicating harmonics and dampened notes::  
+* Indicating position and barring::
+* Indicating harmonics and dampened notes::
 @end menu
 
 @node Indicating position and barring
@@ -1196,14 +1223,14 @@ 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
 @end lilypond
 
-@seealso
 
+@seealso
 Notation Reference:
 @ref{Text spanners}.
 
@@ -1211,6 +1238,7 @@ Snippets:
 @rlsr{Fretted strings},
 @rlsr{Expressive marks}.
 
+
 @node Indicating harmonics and dampened notes
 @unnumberedsubsubsec Indicating harmonics and dampened notes
 
@@ -1219,8 +1247,8 @@ Snippets:
 @cindex dampened notes on fretted instruments
 @cindex harmonics on fretted instruments
 
-Special note heads can be used to indicate dampened notes or 
-harmonics.  Harmonics are normally further explained with a 
+Special note heads can be used to indicate dampened notes or
+harmonics.  Harmonics are normally further explained with a
 text markup.
 
 @lilypond[quote,ragged-right,fragment,verbatim]
@@ -1233,8 +1261,8 @@ text markup.
 }
 @end lilypond
 
-@seealso
 
+@seealso
 Snippets:
 @rlsr{Fretted strings}.
 
@@ -1242,11 +1270,12 @@ Notation Reference:
 @ref{Special note heads},
 @ref{Note head styles}.
 
+
 @node Banjo
 @subsection Banjo
 
 @menu
-* Banjo tablatures::            
+* Banjo tablatures::
 @end menu
 
 @node Banjo tablatures
@@ -1295,14 +1324,9 @@ These tunings may be converted to four-string banjo tunings using the
 \set TabStaff.stringTunings = #(four-string-banjo banjo-c-tuning)
 @end example
 
-@seealso
 
+@seealso
 Snippets:
 @rlsr{Fretted strings}.
 
 The file @file{scm/@/output@/-lib@/.scm} contains predefined banjo tunings.
-
-
-
-
-
index b82feb29077f67a1a374cbf88de328ffbd3bfa10..4c58135bae6a5a463b6116ae44c7a64d8f9c35d6 100644 (file)
@@ -7,7 +7,7 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @node Fundamental concepts
 @chapter Fundamental concepts
@@ -113,7 +113,7 @@ commands, leaving them to be created implicitly.  For simple
 examples this works well, but for more complex examples, especially
 when additional commands are used, the implicit creation of contexts
 can give surprising results, maybe creating extra unwanted staves.
-The way to create contexts explicitly is explained in 
+The way to create contexts explicitly is explained in
 @ref{Contexts and engravers}.
 
 @warning{When entering more than a few lines of music it is
@@ -129,7 +129,7 @@ note to a huge compound expression like
 
 @example
 @{
-  \new GrandStaff <<
+  \new StaffGroup <<
     @var{...insert the whole score of a Wagner opera in here...}
   >>
 @}
@@ -242,12 +242,11 @@ limitations on variable names are detailed in
 @ruser{File structure}.
 
 
-
 @seealso
-
 For a complete definition of the input format, see
 @ruser{File structure}.
 
+
 @node Score is a (single) compound musical expression
 @subsection Score is a (single) compound musical expression
 
@@ -282,7 +281,7 @@ music expression and work our way down.
 @example
 \score @{
   @{ % this brace begins the overall compound music expression
-    \new GrandStaff <<
+    \new StaffGroup <<
       @var{...insert the whole score of a Wagner opera in here...}
     >>
   @} % this brace ends the overall compound music expression
@@ -292,8 +291,8 @@ music expression and work our way down.
 
 A whole Wagner opera would easily double the length of this
 manual, so let's just add a singer and piano.  We don't need a
-@code{GrandStaff} for this ensemble, which simply groups a number
-of staves together with a brace at the left, so we shall remove
+@code{StaffGroup} for this ensemble, which simply groups a number
+of staves together with a bracket at the left, so we shall remove
 it.  We @emph{do} need a singer and a piano, though.
 
 @example
@@ -395,10 +394,11 @@ each smaller level.  It also really helps to be strict with
 indentation -- make sure that each item on the same level starts
 on the same horizontal position in your text editor.
 
-@seealso
 
+@seealso
 Notation Reference: @ruser{Structure of a score}.
 
+
 @node Nesting music expressions
 @subsection Nesting music expressions
 
@@ -447,7 +447,7 @@ as follows:
     <<
       { f c c }
       \new Staff \with {
-        alignAboveContext = "main" }
+        alignAboveContext = #"main" }
       { f8 f c }
     >>
     r4 |
@@ -461,8 +461,8 @@ of a single Staff.  Here it says that the new staff should be
 placed above the staff called @qq{main} instead of the default
 position which is below.
 
-@seealso
 
+@seealso
 Ossia are often written without clef and without
 time signature and are usually in a smaller font.
 These require further commands which
@@ -747,7 +747,7 @@ note head, so that the voices may be easily distinguished.
 Voice one is set to red diamonds, voice two to blue triangles,
 voice three to green crossed circles, and voice four (not used
 here) to magenta crosses;  @code{\voiceNeutralStyle} (also not
-used here) reverts the style back to the default.  
+used here) reverts the style back to the default.
 We shall see later how commands like these may be created by the
 user.
 See @ref{Visibility and color of objects} and
@@ -924,8 +924,8 @@ to see how to correct this, so we shall leave this problem until a
 later section --- see the @code{force-hshift} property in @ref{Fixing
 overlapping notation}.
 
-@seealso
 
+@seealso
 Notation Reference: @ruser{Multiple voices}.
 
 
@@ -1168,8 +1168,8 @@ same direction are placed at the same position and both voices
 have no shift or the same shift specified, the error message
 @qq{Too many clashing note columns} will be produced.
 
-@seealso
 
+@seealso
 Notation Reference: @ruser{Multiple voices}.
 
 
@@ -1356,7 +1356,7 @@ versewords = \lyricmode {
   One two three four five six
 }
 \score {
-  \new Choirstaff {
+  \new ChoirStaff {
     \new Staff <<
       \new Voice = "verse" {
         \versenotes \break
@@ -1517,8 +1517,8 @@ refrainwordsB = \lyricmode {
 }
 @end lilypond
 
-@seealso
 
+@seealso
 Notation Reference: @ruser{Vocal music}.
 
 
@@ -1609,8 +1609,8 @@ words, each word being capitalized and joined immediately to the
 preceding word with no hyphen or underscore, e.g.,
 @code{GregorianTranscriptionStaff}.
 
-@seealso
 
+@seealso
 Notation Reference: @ruser{Contexts explained}.
 
 
@@ -1712,16 +1712,16 @@ context to distinguish it from other contexts of the same type,
 
 Note the distinction between the name of the context type,
 @code{Staff}, @code{Voice}, etc, and the identifying name of a
-particular instance of that type, which can be any sequence of letters 
-invented by the user.  Digits and spaces can also be used in the 
+particular instance of that type, which can be any sequence of letters
+invented by the user.  Digits and spaces can also be used in the
 identifying name, but then it has to be placed in quotes,
 i.e. @code{\new Staff = "MyStaff 1" @var{music-expression}}.
 The identifying name is used to
 refer back to that particular instance of a context.  We saw this in
 use in the section on lyrics, see @ref{Voices and vocals}.
 
-@seealso
 
+@seealso
 Notation Reference: @ruser{Creating contexts}.
 
 
@@ -1805,8 +1805,8 @@ from the name, or vice versa.
 We shall see later how the output of LilyPond can be changed
 by modifying the action of Engravers.
 
-@seealso
 
+@seealso
 Internals reference: @rinternals{Engravers and Performers}.
 
 
@@ -2008,7 +2008,7 @@ should be enclosed in double quotation signs, as above, although we
 shall see later that text can actually be specified in a much more
 general way by using the very powerful @code{markup} command.
 
-@unnumberedsubsubsec Setting context properties with @code{\with}
+@subsubheading Setting context properties with @code{\with}
 
 @funindex \with
 @funindex with
@@ -2054,7 +2054,7 @@ value of the font size.  If it is later changed with @code{\set},
 this new default value may be restored with the
 @code{\unset fontSize} command.
 
-@unnumberedsubsubsec Setting context properties with @code{\context}
+@subsubheading Setting context properties with @code{\context}
 
 @cindex context properties, setting with \context
 @funindex \context
@@ -2064,7 +2064,7 @@ The values of context properties may be set in @emph{all} contexts
 of a particular type, such as all @code{Staff} contexts, with a single
 command.  The context type is identified by using its
 type name, like @code{Staff}, prefixed by a back-slash: @code{\Staff}.
-The statement which sets the property value is the same as that in a 
+The statement which sets the property value is the same as that in a
 @code{\with} block, introduced above.  It is placed in a
 @code{\context} block within a @code{\layout} block.  Each
 @code{\context} block will affect all contexts of the type specified
@@ -2092,8 +2092,8 @@ Context properties set in this way may be overridden for particular
 instances of contexts by statements in a @code{\with} block, and by
 @code{\set} commands embedded in music statements.
 
-@seealso
 
+@seealso
 Notation Reference:
 @ruser{Changing context default settings}.
 @c FIXME
@@ -2250,8 +2250,8 @@ for all contexts of a particular type by including the
 @code{\set} command in a @code{\context} block in the
 same way.
 
-@seealso
 
+@seealso
 Notation Reference: @ruser{Modifying context plug-ins},
 @ruser{Changing context default settings}.
 
@@ -2451,8 +2451,8 @@ celloMusic = \relative c {
 }
 @end lilypond
 
-@seealso
 
+@seealso
 The starting templates can be found in the @q{Templates} appendix,
 see @ref{Single staff}.
 
@@ -2514,29 +2514,29 @@ lower = \relative c, {
   <<  % combine ChoirStaff and PianoStaff in parallel
     \new ChoirStaff <<
       \new Staff = "sopranos" <<
-        \set Staff.instrumentName = "Soprano"
+        \set Staff.instrumentName = #"Soprano"
         \new Voice = "sopranos" { \global \sopranoMusic }
       >>
       \new Lyrics \lyricsto "sopranos" { \sopranoWords }
       \new Staff = "altos" <<
-        \set Staff.instrumentName = "Alto"
+        \set Staff.instrumentName = #"Alto"
         \new Voice = "altos" { \global \altoMusic }
       >>
       \new Lyrics \lyricsto "altos" { \altoWords }
       \new Staff = "tenors" <<
-        \set Staff.instrumentName = "Tenor"
+        \set Staff.instrumentName = #"Tenor"
         \new Voice = "tenors" { \global \tenorMusic }
       >>
       \new Lyrics \lyricsto "tenors" { \tenorWords }
       \new Staff = "basses" <<
-        \set Staff.instrumentName = "Bass"
+        \set Staff.instrumentName = #"Bass"
         \new Voice = "basses" { \global \bassMusic }
       >>
       \new Lyrics \lyricsto "basses" { \bassWords }
     >>  % end ChoirStaff
 
     \new PianoStaff <<
-      \set PianoStaff.instrumentName = "Piano"
+      \set PianoStaff.instrumentName = #"Piano"
       \new Staff = "upper" \upper
       \new Staff = "lower" \lower
     >>
@@ -2567,22 +2567,22 @@ Doing this gives for our ChoirStaff:
 @example
     \new ChoirStaff <<
       \new Staff = "sopranos" <<
-        \set Staff.instrumentName = "Soprano"
+        \set Staff.instrumentName = #"Soprano"
         \new Voice = "sopranos" @{ \global \sopranoMusic @}
       >>
       \new Lyrics \lyricsto "sopranos" @{ \sopranoWords @}
       \new Staff = "altos" <<
-        \set Staff.instrumentName = "Alto"
+        \set Staff.instrumentName = #"Alto"
         \new Voice = "altos" @{ \global \altoMusic @}
       >>
       \new Lyrics \lyricsto "altos" @{ \altoWords @}
       \new Staff = "tenors" <<
-        \set Staff.instrumentName = "Tenor"
+        \set Staff.instrumentName = #"Tenor"
         \new Voice = "tenors" @{ \global \tenorMusic @}
       >>
       \new Lyrics \lyricsto "tenors" @{ \tenorWords @}
       \new Staff = "basses" <<
-        \set Staff.instrumentName = "Bass"
+        \set Staff.instrumentName = #"Bass"
         \new Voice = "basses" @{ \global \bassMusic @}
       >>
       \new Lyrics \lyricsto "basses" @{ \bassWords @}
@@ -2595,7 +2595,7 @@ easy - we just pull out the piano part from the
 
 @example
 \new PianoStaff <<
-  \set PianoStaff.instrumentName = "Piano  "
+  \set PianoStaff.instrumentName = #"Piano  "
   \new Staff = "upper" \upper
   \new Staff = "lower" \lower
 >>
@@ -2632,7 +2632,7 @@ stacked one above the other:
   >>  % end ChoirStaff
 
   \new PianoStaff <<
-    \set PianoStaff.instrumentName = "Piano"
+    \set PianoStaff.instrumentName = #"Piano"
     \new Staff = "upper" \upper
     \new Staff = "lower" \lower
   >>
@@ -2685,29 +2685,29 @@ lower = \relative c, {
   <<  % combine ChoirStaff and PianoStaff in parallel
     \new ChoirStaff <<
       \new Staff = "sopranos" <<
-        \set Staff.instrumentName = "Soprano"
+        \set Staff.instrumentName = #"Soprano"
         \new Voice = "sopranos" { \global \sopranoMusic }
       >>
       \new Lyrics \lyricsto "sopranos" { \sopranoWords }
       \new Staff = "altos" <<
-        \set Staff.instrumentName = "Alto"
+        \set Staff.instrumentName = #"Alto"
         \new Voice = "altos" { \global \altoMusic }
       >>
       \new Lyrics \lyricsto "altos" { \altoWords }
       \new Staff = "tenors" <<
-        \set Staff.instrumentName = "Tenor"
+        \set Staff.instrumentName = #"Tenor"
         \new Voice = "tenors" { \global \tenorMusic }
       >>
       \new Lyrics \lyricsto "tenors" { \tenorWords }
       \new Staff = "basses" <<
-        \set Staff.instrumentName = "Bass"
+        \set Staff.instrumentName = #"Bass"
         \new Voice = "basses" { \global \bassMusic }
       >>
       \new Lyrics \lyricsto "basses" { \bassWords }
     >>  % end ChoirStaff
 
     \new PianoStaff <<
-      \set PianoStaff.instrumentName = "Piano  "
+      \set PianoStaff.instrumentName = #"Piano  "
       \new Staff = "upper" \upper
       \new Staff = "lower" \lower
     >>
index 867370d88d9d56965b9e9a1d1068a2e0236e8b01..f290a3370ea920edaf490c524d935f1a0e6ec64c 100644 (file)
@@ -7,7 +7,7 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @node General input and output
 @chapter General input and output
@@ -16,11 +16,11 @@ This section deals with general LilyPond input and output issues,
 rather than specific notation.
 
 @menu
-* Input structure::             
-* Titles and headers::          
-* Working with input files::    
-* Controlling output::          
-* MIDI output::                 
+* Input structure::
+* Titles and headers::
+* Working with input files::
+* Controlling output::
+* MIDI output::
 @end menu
 
 
@@ -31,9 +31,9 @@ The main format of input for LilyPond are text files.  By convention,
 these files end with @code{.ly}.
 
 @menu
-* Structure of a score::        
-* Multiple scores in a book::   
-* File structure::              
+* Structure of a score::
+* Multiple scores in a book::
+* File structure::
 @end menu
 
 
@@ -99,10 +99,9 @@ input file.  They may be placed inside or outside a @code{\score}
 block, and inside or outside the single music expression within a
 @code{\score} block.
 
-@seealso
 
+@seealso
 Learning Manual:
-
 @rlearning{Working on input files},
 @rlearning{Music expressions explained},
 @rlearning{Score is a (single) compound musical expression}.
@@ -185,6 +184,30 @@ the top of the file is inserted.
 @}
 @end example
 
+@funindex \bookpart
+
+Pieces of music may be grouped into book parts using @code{\bookpart}
+blocks.  Book parts are separated by a page break, and can start with a
+title, like the book itself, by specifying a @code{\header} block.
+
+@example
+\bookpart @{
+  \header @{
+    title = "Book title"
+    subtitle = "First part"
+  @}
+  \score @{ @dots{} @}
+  @dots{}
+@}
+\bookpart @{
+  \header @{
+    subtitle = "Second part"
+  @}
+  \score @{ @dots{} @}
+  @dots{}
+@}
+@end example
+
 @node File structure
 @subsection File structure
 
@@ -194,6 +217,7 @@ the top of the file is inserted.
 @funindex \header
 @funindex \score
 @funindex \book
+@funindex \bookpart
 
 A @code{.ly} file may contain any number of toplevel expressions, where a
 toplevel expression is one of the following:
@@ -238,6 +262,11 @@ changed by setting the variable @code{toplevel-book-handler} at
 toplevel.  The default handler is defined in the init file
 @file{../scm/@/lily@/.scm}.
 
+@item
+A @code{\bookpart} block.  A book may be divided into several parts,
+using @code{\bookpart} blocks, in order to ease the page breaking,
+or to use different @code{\paper} settings in different parts. 
+
 @item
 A compound music expression, such as
 @example
@@ -325,11 +354,12 @@ A multi-line comment delimited by @code{%@{ .. %@}}.
 
 @end itemize
 
-@seealso
 
+@seealso
 Learning Manual:
 @rlearning{How LilyPond input files work}.
 
+
 @node Titles and headers
 @section Titles and headers
 
@@ -337,10 +367,10 @@ Almost all printed music includes a title and the composer's name;
 some pieces include a lot more information.
 
 @menu
-* Creating titles::             
-* Custom titles::               
-* Reference to page numbers::   
-* Table of contents::           
+* Creating titles::
+* Custom titles::
+* Reference to page numbers::
+* Table of contents::
 @end menu
 
 
@@ -348,7 +378,8 @@ some pieces include a lot more information.
 @subsection Creating titles
 
 Titles are created for each @code{\score} block, as well as for the full
-input file (or @code{\book} block).
+input file (or @code{\book} block) and book parts (created by
+@code{\bookpart} blocks).
 
 The contents of the titles are taken from the @code{\header} blocks.
 The header block for a book supports the following
@@ -635,12 +666,14 @@ the markup have to be known before, so a gauge is used to decide these
 dimensions.  If the book has between 10 and 99 pages, it may be "00",
 ie. a two digit number.
 
-@predefined
 
+@predefined
 @funindex \label
-@code{\label}
+@code{\label},
 @funindex \page-ref
-@code{\page-ref}
+@code{\page-ref}.
+@endpredefined
+
 
 @node Table of contents
 @subsection Table of contents
@@ -744,26 +777,27 @@ tocAct =
 }
 @end lilypond
 
-@seealso
 
+@seealso
 Init files: @file{../ly/@/toc@/-init@/.ly}.
 
-@predefined
 
+@predefined
 @funindex \table-of-contents
-@code{\table-of-contents}
+@code{\table-of-contents},
 @funindex \tocItem
-@code{\tocItem}
+@code{\tocItem}.
+@endpredefined
 
 
 @node Working with input files
 @section Working with input files
 
 @menu
-* Including LilyPond files::    
-* Different editions from one source::  
-* Text encoding::               
-* Displaying LilyPond notation::  
+* Including LilyPond files::
+* Different editions from one source::
+* Text encoding::
+* Displaying LilyPond notation::
 @end menu
 
 
@@ -815,11 +849,19 @@ subdirectory called @file{parts} within the current directory, use
 @end example
 
 Files which are to be included can also contain @code{\include}
-statements of their own.  These second-level
+statements of their own.  By default, these second-level
 @code{\include} statements are not interpreted until they have
 been brought into the main file, so the file names they specify
 must all be relative to the directory containing the main file,
-not the directory containing the included file.
+not the directory containing the included file. However,
+this behavior can be changed by passing the option
+@code{-drelative-includes} option at the command line
+(or by adding @code{#(ly:set-option 'relative-includes #t)}
+at the top of the main input file). With @code{relative-includes}
+set, the path for each @code{\include} command will be taken
+relative to the file containing that command. This behavior is
+recommended and it will become the default behavior in a future
+version of lilypond.
 
 Files can also be included from a directory in a search path
 specified as an option when invoking LilyPond from the command
@@ -842,28 +884,32 @@ and in main.ly write
 
 Files which are to be included in many scores may be placed in
 the LilyPond directory @file{../ly}.  (The location of this
-directory is installation-dependent - see @rlearning{Other sources
-of information}).  These files can then be included simply by
-naming them on an @code{\include} statement.  This is how the
-language-dependent files like @file{english.ly} are included.
+directory is installation-dependent - see
+@rlearning{Other sources of information}).  These files can then
+be included simply by naming them on an @code{\include} statement.
+This is how the language-dependent files like @file{english.ly} are
+included.
 
 LilyPond includes a number of files by default when you start
 the program.  These includes are not apparent to the user, but the
 files may be identified by running @code{lilypond --verbose} from
 the command line.  This will display a list of paths and files that
 LilyPond uses, along with much other information.  Alternatively,
-the more important of these files are discussed in @rlearning{Other
-sources of information}.  These files may be edited, but changes to
-them will be lost on installing a new version of LilyPond.
+the more important of these files are discussed in
+@rlearning{Other sources of information}.  These files may be
+edited, but changes to them will be lost on installing a new
+version of LilyPond.
 
 Some simple examples of using @code{\include} are shown in
 @rlearning{Scores and parts}.
 
+
 @seealso
 Learning Manual:
 @rlearning{Other sources of information},
 @rlearning{Scores and parts}.
 
+
 @knownissues
 
 If an included file is given a name which is the same as one in
@@ -885,8 +931,8 @@ the structure of the score will make it easier to change the
 structure while leaving the notation untouched.
 
 @menu
-* Using variables::             
-* Using tags::                  
+* Using variables::
+* Using tags::
 @end menu
 
 @node Using variables
@@ -1083,8 +1129,8 @@ expression will cause @emph{all} tagged sections to be removed, as
 the first filter will remove all tagged sections except the one
 named, and the second filter will remove even that tagged section.
 
-@seealso
 
+@seealso
 Learning Manual:
 @rlearning{Organizing pieces with variables}.
 
@@ -1092,6 +1138,7 @@ Notation Reference:
 @ref{Automatic part combining},
 @ref{Including LilyPond files}.
 
+
 @ignore
 @c This warning is more general than this placement implies.
 @c Rests are not merged whether or not they come from tagged sections.
@@ -1193,7 +1240,7 @@ and as stand-alone text below the score:
   }
   \addlyrics { O \markup { \concat{ Ph \char ##x0153 be! } } }
 }
-\markup { "Copyright 2008" \char ##x00A9 }
+\markup { "Copyright 2008--2009" \char ##x00A9 }
 @end lilypond
 
 To enter the copyright sign in the copyright notice use:
@@ -1240,8 +1287,8 @@ lilypond file.ly >display.txt
 @section Controlling output
 
 @menu
-* Extracting fragments of music::  
-* Skipping corrected music::    
+* Extracting fragments of music::
+* Skipping corrected music::
 @end menu
 
 @node Extracting fragments of music
@@ -1351,12 +1398,12 @@ settings.  Therefore the midi file should not have more than 15 staves
 (or 14 if you do not use drums).  Other staves will remain silent.
 
 @menu
-* Creating MIDI files::         
-* MIDI block::                  
-* What goes into the MIDI output?::  
-* Repeats in MIDI::             
-* Controlling MIDI dynamics::   
-* Percussion in MIDI::          
+* Creating MIDI files::
+* MIDI block::
+* What goes into the MIDI output?::
+* Repeats in MIDI::
+* Controlling MIDI dynamics::
+* Percussion in MIDI::
 @end menu
 
 @node Creating MIDI files
@@ -1412,13 +1459,13 @@ The name should be chosen from the list in @ref{MIDI instruments}.
 
 @example
 \new Staff @{
-  \set Staff.midiInstrument = "glockenspiel"
+  \set Staff.midiInstrument = #"glockenspiel"
   @var{...notes...}
 @}
 @end example
 
 @example
-\new Staff \with @{midiInstrument = "cello"@} @{
+\new Staff \with @{midiInstrument = #"cello"@} @{
   @var{...notes...}
 @}
 @end example
@@ -1557,7 +1604,7 @@ The following items of notation are reflected in the MIDI output:
 
 @itemize
 @item Pitches
-@item Quarter tones (See @ref{Accidentals}. Rendering needs a
+@item Microtones (See @ref{Accidentals}. Rendering needs a
 player that supports pitch bend.)
 @item Chords entered as chord names
 @item Rhythms entered as note durations, including tuplets
@@ -1583,6 +1630,7 @@ The following items of notation have no effect on the MIDI output:
 @item Crescendi, decrescendi over a single note
 @item Tremolos entered with @q{@code{:}[@var{number}]}
 @item Figured bass
+@item Microtonal chords
 @end itemize
 
 
@@ -1664,7 +1712,7 @@ found, or calls the default function otherwise.
 
 \score {
   \new Staff {
-    \set Staff.midiInstrument = "cello"
+    \set Staff.midiInstrument = #"cello"
     \set Score.dynamicAbsoluteVolumeFunction = #myDynamics
     \new Voice {
        \relative c'' {
index e203291674081bfc183cb2239b5b3810c238eab4..525e865279073545314579afc24c91807742b158 100644 (file)
@@ -7,7 +7,7 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @ifclear INSTALL
 @node Install
@@ -24,8 +24,8 @@ Building LilyPond is a very involved process, so we @strong{highly}
 recommend using the precompiled binaries.
 
 @menu
-* Precompiled binaries::        
-* Compiling from source::       
+* Precompiled binaries::
+* Compiling from source::
 @end menu
 
 
@@ -86,12 +86,12 @@ the @uref{Compiling-from-source.html,documentation in English}.
 @c and remove all stuff (menu, nodes, contents) below this line.
 
 @menu
-* Downloading source code::     
-* Requirements::                
-* Building LilyPond::           
-* Building documentation::      
-* Testing LilyPond::            
-* Problems::                    
+* Downloading source code::
+* Requirements::
+* Building LilyPond::
+* Building documentation::
+* Testing LilyPond::
+* Problems::
 @end menu
 
 @node Downloading source code
@@ -104,7 +104,7 @@ Download source
 @uref{http://lilypond.org/download/} by HTTP.
 @item tarballs from
 @uref{http://download.linuxaudio.org/lilypond/} by HTTP.
-@item 
+@item
 GIT from @uref{http://git.sv.gnu.org/gitweb/?p=lilypond.git;a=summary,git.sv.gnu.org}
 
 @example
@@ -136,7 +136,7 @@ FOO-devel, libFOO-dev or FOO-dev package too.
 
 @item @uref{http://fontforge.sf.net/,FontForge} 20060125 or newer.
 
-@item @uref{http://metafont.tutorial.free.fr/,MetaFont} (mf-nowin, mf, mfw or 
+@item @uref{http://metafont.tutorial.free.fr/,MetaFont} (mf-nowin, mf, mfw or
 mfont binaries) and @uref{http://cm.bell-labs.com/who/hobby/MetaPost.html,MetaPost}
 (mpost binary), usually packaged with a @LaTeX{} distribution like
 tetex or texlive.
@@ -161,7 +161,8 @@ newer.  4.x is strongly recommended).
 
 @item @uref{ftp://ftp.gnu.org/gnu/make/,GNU Make} (version 3.78 or newer).
 
-@item @uref{http://www.gnu.org/software/gettext/gettext.html,gettext}.
+@item @uref{http://www.gnu.org/software/gettext/gettext.html,gettext}
+(version 0.17 or newer).
 
 @item @uref{http://www.gnu.org/software/flex/,Flex}.
 
@@ -182,14 +183,14 @@ Running LilyPond requires proper installation of the following software
 @itemize
 
 @item @uref{http://www.freetype.org/,Freetype} (version 2.1.10 or newer).
-@item @uref{http://www.freetype.org/,FontConfig} (version 2.2).
+@item @uref{http://fontconfig.org/,FontConfig} (version 2.2 or newer).
 @item @uref{http://www.pango.org/,Pango} (version 1.12 or newer).
 @item @uref{http://www.gnu.org/software/guile/guile.html,GUILE}
 (version 1.8.2 or newer), or patch 1.8.1 with
 @uref{http://lilypond.org/vc/gub.darcs/patches/guile-1.8-rational.patch}.
 @item @uref{http://www.python.org,Python} (version 2.4 or newer).
 @item @uref{http://www.ghostscript.com,Ghostscript} (version 8.15 or
-newer. 8.50 recommended)
+newer. 8.60 recommended)
 @item Dejaview.  (This is normally installed by default)
 @end itemize
 
@@ -209,16 +210,12 @@ additional tools and packages:
 @item ImageMagick
 @item International fonts (see input/regression/utf-8.ly for hints
 about which font packages are necessary for your platform)
-@item Ghostscript, 8.50 with the patch from
+@item Ghostscript 8.60 or newer, or 8.50 with the patch from
 @uref{http://bugs.ghostscript.com/show_bug.cgi?id=688154}
 and the patch from
-@uref{http://bugs.ghostscript.com/show_bug.cgi?id=688017}, or use
-a release of Ghostscript which includes these patches, for example
-8.60 or newer.
-@item @uref{http://www.nongnu.org/texi2html/,Texi2HTML} 1.79 or newer
-is strongly recommended to build documentation in HTML; support for
-building HTML documentation using @command{makeinfo} from GNU Texinfo
-is deprecated.
+@uref{http://bugs.ghostscript.com/show_bug.cgi?id=688017}.
+@item @uref{http://www.nongnu.org/texi2html/,Texi2HTML} 1.80 or newer
+@item rsync
 @end itemize
 
 
@@ -359,17 +356,25 @@ less verbose build output, just like for building the programs.
 
 @knownissues
 
-@code{-j} command-line option of @command{make} is unsupported for
-building the documentation.  As the most time consuming task is
-running LilyPond to build images of music, the makefile variable
-@code{CPU_COUNT} may be set in @file{local.make} or on the command line
-to the number of @code{.ly} files that LilyPond should process
-simultaneously, e.g. on a bi-processor or dual core machine
+The most time consuming task for building the documentation is running
+LilyPond to build images of music, and there cannot be several
+simultaneously running @command{lilypond-book} instances, so @code{-j}
+@command{make} option does not significantly speed up the build process.
+To help speed it up, the makefile variable @var{CPU_COUNT} may be set
+in @file{local.make} or on the command line to the number of
+@code{.ly} files that LilyPond should process simultaneously, e.g. on
+a bi-processor or dual core machine
 
 @example
-make CPU_COUNT=2 web
+make -j3 CPU_COUNT=3 web
 @end example
 
+@noindent
+The recommended value of @var{CPU_COUNT} is one plus the number of
+cores or processors, but it is advisable to set it to a smaller value
+if your system has not enough RAM to run that many simultaneous
+LilyPond instances.
+
 If source files have changed since last documentation build, output
 files that need to be rebuilt are normally rebuilt, even if you do not
 run @code{make web-clean} first.  However, building dependencies in the
@@ -427,7 +432,7 @@ On MacOS@tie{}X, I use this:
 
 @verbatim
 export DYLD_LIBRARY_PATH=/sw/lib
-exec /sw/bin/pngtopnm "$@" 
+exec /sw/bin/pngtopnm "$@"
 @end verbatim
 
 
@@ -470,11 +475,11 @@ CVS; especially the following patch:
 For checking the coverage of the test suite, do the following
 
 @example
-./buildscripts/build-coverage.sh
+./scripts/auxiliar/build-coverage.sh
 @emph{# uncovered files, least covered first}
-python ./buildscripts/coverage.py  --summary out-cov/*.cc
-@emph{# consecutive uncovered lines, longest first} 
-python ./buildscripts/coverage.py  --uncovered out-cov/*.cc
+./scripts/auxiliar/coverage.py  --summary out-cov/*.cc
+@emph{# consecutive uncovered lines, longest first}
+./scripts/auxiliar/coverage.py  --uncovered out-cov/*.cc
 @end example
 
 
@@ -551,12 +556,12 @@ hints, though:
 Red Hat Fedora
 
     taipeifonts fonts-xorg-truetype ttfonts-ja fonts-arabic \
-         ttfonts-zh_CN fonts-ja fonts-hebrew 
+         ttfonts-zh_CN fonts-ja fonts-hebrew
 
 Debian GNU/Linux
 
    apt-get install emacs-intl-fonts xfonts-intl-.* \
         ttf-kochi-gothic ttf-kochi-mincho \
-        xfonts-bolkhov-75dpi xfonts-cronyx-100dpi xfonts-cronyx-75dpi 
+        xfonts-bolkhov-75dpi xfonts-cronyx-100dpi xfonts-cronyx-75dpi
 @end verbatim
 
index ee08dacf7c5bcf9d4bd6acce5e75ef1d6f76f684..a27db04c1015b40c4f191221812928c382a1aa1d 100644 (file)
@@ -7,7 +7,7 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @node Introduction
 @chapter Introduction
@@ -16,8 +16,8 @@ This chapter introduces readers to LilyPond and the
 documentation.
 
 @menu
-* Background::                  
-* About the documentation::     
+* Background::
+* About the documentation::
 @end menu
 
 
@@ -28,11 +28,11 @@ This section covers the overall goals and architecture of
 LilyPond.
 
 @menu
-* Engraving::                   
-* Automated engraving::         
-* What symbols to engrave?::    
-* Music representation::        
-* Example applications::        
+* Engraving::
+* Automated engraving::
+* What symbols to engrave?::
+* Music representation::
+* Example applications::
 @end menu
 
 
@@ -361,34 +361,33 @@ changed during the music fragment.
          (pos (ly:grob-property grob 'staff-position)))
     (if (memq 'note-head-interface interfaces)
         (begin
-          (ly:grob-set-property! grob 'stencil ly:text-interface::print)
-          (ly:grob-set-property! grob 'font-family 'roman)
-          (ly:grob-set-property! grob 'text
-            (make-raise-markup -0.5
-              (case pos
-                ((-5) (make-simple-markup "m"))
-                ((-3) (make-simple-markup "c "))
-                ((-2) (make-smaller-markup (make-bold-markup "2")))
-                (else (make-simple-markup "bla")))))))))
+          (ly:grob-set-property! grob 'stencil
+            (grob-interpret-markup grob
+              (make-lower-markup 0.5
+                (case pos
+                  ((-5) "m")
+                  ((-3) "c ")
+                  ((-2) (make-smaller-markup (make-bold-markup "2")))
+                  (else "bla")))))))))
 
 \new Voice \relative c' {
-   \stemUp
-   \set autoBeaming = ##f
-   \time 2/4
-   <d f g>4
-   \once \override NoteHead #'stencil = #ly: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>
-   \once \override NoteHead #'style = #'cross
-   <d f g>
-   \applyOutput #'Voice #mc-squared
-   <d f g>
-   <<
-      { d8[ es-( fis^^ g] fis2-) }
-      \repeat unfold 5 { \applyOutput #'Voice #mc-squared s8 }
-   >>
+  \stemUp
+  \set autoBeaming = ##f
+  \time 2/4
+  <d f g>4
+  \once \override NoteHead #'stencil = #ly: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
+  <d f g>4
+  \applyOutput #'Voice #mc-squared
+  <d f g>4
+  <<
+    { d8[ es-( fis^^ g] fis2-) }
+    \repeat unfold 5 { \applyOutput #'Voice #mc-squared s8 }
+  >>
 }
 @end lilypond
 
@@ -578,10 +577,11 @@ context contains more than one Voice context.  Similarly, multiple
 Staff contexts can be put into a single Score context.  The Score
 context is the top level notation context.
 
-@seealso
 
+@seealso
 Internals Reference: @rinternals{Contexts}.
 
+
 @lilypond[quote,ragged-right]
 \include "engraver-example.ily"
 \score {
@@ -743,7 +743,7 @@ following example combines some more exotic constructs.
       << {
         \revert Stem #'direction
         \change Staff = down
-        \set subdivideBeams = ##t           
+        \set subdivideBeams = ##t
         g16.[
           \change Staff = up
           c'''32
@@ -774,7 +774,7 @@ following example combines some more exotic constructs.
       \override Beam  #'thickness = #0.3
       \override Stem  #'thickness = #4.0
       g'16[ b16 fis16 g16]
-      << \makeClusters { 
+      << \makeClusters {
         as16 <as b>
         <g b>
         <g cis>
index e475f41b19fedc831db4bb9d4f3ed8f4cc37049a..c0513c61ac8ba60f4db54a2f47159c0af57c6576 100644 (file)
@@ -6,7 +6,7 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @node Keyboard and other multi-staff instruments
 @section Keyboard and other multi-staff instruments
@@ -31,7 +31,7 @@ keyboard.
 @subsection Common notation for keyboards
 
 This section discusses notation issues that may arise for most
-many-stringed instruments.
+keyboard instruments.
 
 @menu
 * References for keyboards::
@@ -99,8 +99,12 @@ as shown in @rlearning{Other uses for tweaks}.
 
 @end itemize
 
-@seealso
+@c @snippets
+@c @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+@c {forcing-visibility-of-systems-with-multi-bar-rests-when-using-\RemoveEmptyStaffContext.ly}
+@c http://lsr.dsi.unimi.it/LSR/Item?u=1&id=312
 
+@seealso
 Learning Manual:
 @rlearning{Real music example},
 @rlearning{Other uses for tweaks}.
@@ -123,6 +127,7 @@ Internals Reference:
 Snippets:
 @rlsr{Keyboards}.
 
+
 @knownissues
 
 @cindex keyboard music, centering dynamics
@@ -163,6 +168,10 @@ the current voice from its current staff to the staff called
 @var{staffname}.  Typical values for @var{staffname} are
 @code{"up"} and @code{"down"}, or @code{"RH"} and @code{"LH"}.
 
+The staff to which the voice is being switched must exist at the
+time of the switch.  If necessary, staves should be @qq{kept alive},
+see @ref{Keeping contexts alive}.
+
 Cross-staff notes are beamed automatically:
 
 @lilypond[verbatim,quote]
@@ -191,14 +200,15 @@ center of the staff that is closest to the beam.  For a simple
 example of beam tweaking, see @rlearning{Fixing overlapping
 notation}.
 
-@seealso
 
+@seealso
 Learning Manual:
 @rlearning{Fixing overlapping notation}.
 
 Notation Reference:
 @ref{Stems},
-@ref{Automatic beams}.
+@ref{Automatic beams},
+@ref{Keeping contexts alive}.
 
 Snippets:
 @rlsr{Keyboards}.
@@ -256,8 +266,13 @@ has no effect on the pitches of the music, so if necessary, put
 If additional control is needed over the individual staves, they
 can be created manually with the names @code{"up"} and
 @code{"down"}.  The @code{\autochange} command will then switch
-its voice between the existing staves.  For example, this is
-necessary to place a key signature in the lower staff:
+its voice between the existing staves.  
+
+@warning{If staves are created manually, they @emph{must} be named
+@code{"up"} and @code{"down"}.}
+
+For example, staves must be created manually in order to place a
+key signature in the lower staff:
 
 @lilypond[quote,verbatim]
 \new PianoStaff <<
@@ -277,8 +292,8 @@ necessary to place a key signature in the lower staff:
 >>
 @end lilypond
 
-@seealso
 
+@seealso
 Notation Reference:
 @ref{Changing staff manually}.
 
@@ -288,6 +303,7 @@ Snippets:
 Internals Reference:
 @rinternals{AutoChangeMusic}.
 
+
 @knownissues
 
 @cindex chords, splitting across staves with \autochange
@@ -337,12 +353,14 @@ notes can be printed automatically:
 >>
 @end lilypond
 
+
 @predefined
+@code{\showStaffSwitch},
+@code{\hideStaffSwitch}.
+@endpredefined
 
-@code{\showStaffSwitch}, @code{\hideStaffSwitch}.
 
 @seealso
-
 Snippets:
 @rlsr{Keyboards}.
 
@@ -404,14 +422,15 @@ Chords that cross staves may be produced:
 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
 {indicating-cross-staff-chords-with-arpeggio-bracket.ly}
 
-@seealso
 
+@seealso
 Snippets:
 @rlsr{Keyboards}.
 
 Internals Reference:
 @rinternals{Stem}.
 
+
 @node Piano
 @subsection Piano
 
@@ -494,8 +513,8 @@ The placement of the pedal commands matches the physical movement of the
 sustain pedal during piano performance.  Pedalling to the final bar line
 is indicated by omitting the final pedal up command.
 
-@seealso
 
+@seealso
 Notation Reference:
 @ref{Ties}.
 
@@ -515,6 +534,7 @@ Internals Reference:
 @rinternals{PianoPedalBracket},
 @rinternals{Piano_pedal_engraver}.
 
+
 @node Accordion
 @subsection Accordion
 
@@ -546,8 +566,8 @@ come into use to simplify the performance instructions.
 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
 {accordion-discant-symbols.ly}
 
-@seealso
 
+@seealso
 Snippets:
 @rlsr{Keyboards}.
 
@@ -555,22 +575,77 @@ Snippets:
 @node Harp
 @subsection Harp
 
-TBC
+This section discusses notation issues that are unique to the harp.
 
-@ignore
-Some possibilities:
-- glissandi
-- tremolo (for bisbigliando)
-- natural harmonics
-- directional arpeggio and non-arpeggio
-- workaroung for keeping both staves visible in an orchestral
-  score,
-http://lists.gnu.org/archive/html/lilypond-user/2007-08/msg00386.html
-and http://lsr.dsi.unimi.it/LSR/Item?u=1&id=312
-
-An LSR snippet could be used to demonstrate the main items; in the
-case of glissandi, it would be desirable to have a demonstration
-of different styles.
+@menu
+* References for harps::
+* Harp pedals::
+@end menu
 
-@end ignore
+@node References for harps
+@unnumberedsubsubsec References for harps
+@cindex harps
+@cindex bisbiglando
+
+Some common characteristics of harp music are covered elsewhere:
+
+@itemize
+
+@item The glissando is the most characterisic harp technique,
+@ref{Glissando}.
+
+@item A @notation{bisbigliando} is written as a tremelo @ref{Tremolo
+repeats}
 
+@item Natural harmonics are covered under @ref{Harmonics}.
+
+@item For directional arpeggios and non-arpeggios, see @ref{Arpeggio}.
+
+@end itemize
+
+@seealso
+Notation Reference:
+@ref{Tremolo repeats}
+@ref{Glissando}
+@ref{Arpeggio}
+@ref{Harmonics}
+
+@node Harp pedals
+@unnumberedsubsubsec Harp pedals
+
+@cindex harp pedals
+@cindex harp pedal diagrams
+@cindex pedals, harp
+@cindex pedal diagrams, harp
+
+Harps have seven strings per octave that may be sounded at the natural,
+flattened, or sharpened pitch. In lever harps, each string is adjusted
+individually, but in pedal harps every string with the same pitch name
+is controlled by a single pedal. From the player's left to right, the
+pedals are D, C, and B on the left and E, F, G, and A on the right.
+The position of the pedals may be indicated with text marks:
+
+@lilypond[quote,verbatim,relative=2]
+\textLengthOn
+cis1_\markup \concat \vcenter { [D \flat C \sharp B|E \sharp F \sharp G A \flat] }
+c!1_\markup \concat \vcenter {[ C \natural ]}
+@end lilypond
+
+or pedal diagrams:
+
+@lilypond[quote,verbatim,relative=2]
+\textLengthOn
+cis1_\markup { \harp-pedal #"^v-|vv-^" }
+c!1_\markup { \harp-pedal #"^o--|vv-^" }
+@end lilypond
+
+The @code{\harp-pedal} command accepts a string of characters, where
+@code{^} is the highest pedal position (flattened pitch), @code{-} is
+the middle pedal postion (natural pitch), @code{v} is the lowest pedal
+position (sharpened pitch), and @code{|} is the divider. A prefixed
+@code{o} will circle the following pedal symbol.
+
+@seealso
+Notation Reference:
+@ref{Text scripts}
+@ref{Instrument Specific Markup}
index 7fc46d3f1500d25410de85ab8abf1a3f37eea469..64d635307e3c9454ee6d0d3b818d9edbcfbb93cb 100644 (file)
@@ -7,7 +7,7 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @c Note: keep this node named so that `info lilypond-book' brings you here.
 @node LilyPond-book
@@ -45,12 +45,12 @@ documents.
 @cindex @LaTeX{}, music in
 
 @menu
-* An example of a musicological document::  
-* Integrating music and text::  
-* Music fragment options::      
-* Invoking lilypond-book::      
-* Filename extensions::         
-* Alternate methods of mixing text and music::  
+* An example of a musicological document::
+* Integrating music and text::
+* Music fragment options::
+* Invoking lilypond-book::
+* Filename extensions::
+* Alternate methods of mixing text and music::
 @end menu
 
 
@@ -165,10 +165,10 @@ Larger examples can be put into a separate file, and introduced with
 Here we explain how to integrate LilyPond with various output formats.
 
 @menu
-* LaTeX::                       
-* Texinfo::                     
-* HTML::                        
-* DocBook::                     
+* LaTeX::
+* Texinfo::
+* HTML::
+* DocBook::
 @end menu
 
 @node LaTeX
@@ -205,8 +205,10 @@ or
 \lilypond@{ YOUR LILYPOND CODE @}
 @end example
 
+Additionally, @code{\lilypondversion} displays the current version
+of lilypond.
 Running @command{lilypond-book} yields a file that can be further
-processed with @LaTeX{}.
+processed with @LaTeX{}. 
 
 We show some examples here.  The @code{lilypond} environment
 
@@ -253,7 +255,7 @@ use the @code{line-width} music fragment option.
 Each snippet will call the following macros if they have been defined by
 the user:
 
-@itemize bullet
+@itemize @bullet
 @item @code{\preLilyPondExample} called before the music,
 
 @item @code{\postLilyPondExample} called after the music,
@@ -357,6 +359,7 @@ and then saying only how many systems you want before each fragment,
 \begin@{lilypond@}...\end@{lilypond@}
 @end example
 
+
 @seealso
 There are specific @command{lilypond-book} command line options and
 other details to know when processing @LaTeX{} documents, see
@@ -392,6 +395,9 @@ or
 @@lilypondfile[options,go,here]@{@var{filename}@}
 @end example
 
+Additionally, @code{@@lilypondversion} displays the current version
+of lilypond.
+
 When @command{lilypond-book} is run on it, this results in a Texinfo
 file (with extension @file{.texi}) containing @code{@@image} tags for
 HTML, Info and printed output.  @command{lilypond-book} generates images
@@ -438,7 +444,6 @@ Music is entered using
 \key c \minor c4 es g2
 </lilypond>
 @end example
-
 @noindent
 @command{lilypond-book} then produces an HTML file with appropriate image
 tags for the music fragments:
@@ -454,12 +459,17 @@ are separated by a colon from the music, for example
 Some music in <lilypond relative=2: a b c/> a line of text.
 @end example
 
+
 To include separate files, say
 
 @example
 <lilypondfile @var{option1} @var{option2} ...>@var{filename}</lilypondfile>
 @end example
 
+Additionally, @code{<lilypondversion/>} displays the current version
+of lilypond.
+
+
 @cindex titling in HTML
 @cindex preview image
 @cindex thumbnail
@@ -496,7 +506,7 @@ the following structure:
 </mediaobject>
 @end example
 
-Note that you can use @code{mediaobject} or @code{inlinemediaobject} 
+Note that you can use @code{mediaobject} or @code{inlinemediaobject}
 as the outermost element as you wish.
 
 @subheading Including LilyPond code
@@ -511,7 +521,7 @@ structure:
     <programlisting language="lilypond" role="fragment verbatim staffsize=16 ragged-right relative=2">
 \context Staff \with @{
   \remove Time_signature_engraver
-  \remove Clef_engraver@} 
+  \remove Clef_engraver@}
   @{ c4( fis) @}
     </programlisting>
   </textobject>
@@ -564,11 +574,6 @@ For single-line snippets, allow the staff length to be stretched to
 equal that of the line width, i.e., @code{ragged-right = ##f} is
 added to the LilyPond snippet.
 
-@c does this option still exist in lilypond? -jm
-@item packed
-Produce lines with packed spacing, i.e., @code{packed = ##t} is added
-to the LilyPond snippet.
-
 @item line-width
 @itemx line-width=@var{size}\@var{unit}
 Set line width to @var{size}, using @var{unit} as units.  @var{unit} is
@@ -650,7 +655,7 @@ source file contain a comment containing @samp{begin verbatim} (without
 quotes), quoting the source in the verbatim block will start after the
 last occurrence of such a comment; similarly, quoting the source verbatim
 will stop just before the first occurrence of a comment containing
-@samp{end verbatim}, it there is any.  In the following source file
+@samp{end verbatim}, if there is any.  In the following source file
 example, the music will be interpreted in relative mode, but the
 verbatim quote will not show the @code{relative} block, i.e.
 
@@ -669,6 +674,13 @@ will be printed with a verbatim block like
   f2 e
 @end example
 
+@noindent
+If you would like to translate comments and variable names in verbatim
+output but not in the sources, you may set the environment variable
+@code{LYDOC_LOCALEDIR} to a directory path; the directory should
+contain a tree of @file{.mo} message catalogs with @code{lilypond-doc}
+as a domain.
+
 @item addversion
 (Only for Texinfo output.)  Prepend line @code{\version
 @@w@{"@@version@{@}"@}} to @code{verbatim} output.
@@ -701,8 +713,8 @@ and we have this in our Texinfo document @file{test.texinfo}
 the following command line gives the expected result
 
 @example
-lilypond-book --process="lilypond --format=tex --tex \
-              --header=texidoc test.texinfo
+lilypond-book --pdf --process="lilypond \
+  -dbackend=eps --header=texidoc" test.texinfo
 @end example
 
 Most LilyPond test documents (in the @file{input} directory of the
@@ -735,6 +747,10 @@ Texinfo document as @code{@@lydoctitle @var{text}}.
 The same remark about @code{texidoc} processing with localized
 languages also applies to @code{doctitle}.
 
+@item nogettext
+(Only for Texinfo output.) Do not translate comments and variable
+names in the snippet quoted verbatim.
+
 @item printfilename
 If a LilyPond input file is included with @code{\lilypondfile}, print
 the file name right before the music snippet.  For HTML output, this
@@ -901,7 +917,7 @@ music stick out of the right margin.
 
 The width of a tightly clipped system can vary, due to notation
 elements that stick into the left margin, such as bar numbers and
-instrument names.  This option will shorten each line and move each 
+instrument names.  This option will shorten each line and move each
 line to the right by the same amount.
 
 
@@ -962,7 +978,7 @@ If you use the same filename extension for the input file than the
 extension @command{lilypond-book} uses for the output file, and if the
 input file is in the same directory as @command{lilypond-book} working
 directory, you must use @code{--output} option to make
-@command{lilypond-book} running, otherwise the will exit with an error
+@command{lilypond-book} running, otherwise it will exit with an error
 message like @qq{Output would overwrite input file}.
 
 
@@ -973,9 +989,9 @@ This section shows methods to integrate text and music, different than
 the automated method with @command{lilypond-book}.
 
 @menu
-* Many quotes from a large score::  
-* Inserting LilyPond output into OpenOffice.org::  
-* Inserting LilyPond output into other programs::  
+* Many quotes from a large score::
+* Inserting LilyPond output into OpenOffice.org::
+* Inserting LilyPond output into other programs::
 @end menu
 
 @node Many quotes from a large score
index 6bdff0541ca92953565c0eba23bf77a253f00ad3..cb0c89f1fccba85d76b04cc8998d4ddb239ff7a7 100644 (file)
 
 @include macros.itexi
 
-@iftex
 @afourpaper
-@c don't replace quotes with directed quotes
-@tex
-\gdef\SETtxicodequoteundirected{Foo}
-\gdef\SETtxicodequotebacktick{Bla}
-@end tex
-@end iftex
 
 
 @c don't remove this comment.
 
 
 @ifhtml
+@ifclear bigpage
 This document is also available as a
 @uref{source/Documentation/user/lilypond-learning.pdf,PDF} and as
 @uref{source/Documentation/user/lilypond-learning-big-page.html,one big page}.
+@end ifclear
+@ifset bigpage
+This document is also available as a
+@uref{source/Documentation/user/lilypond-learning.pdf,PDF} and as
+@uref{source/Documentation/user/lilypond-learning/index.html,HTML indexed multiple pages}.
+@end ifset
 @end ifhtml
 
 
@@ -58,7 +58,7 @@ This document is also available as a
 @author The LilyPond development team
 
 
-Copyright @copyright{} 1999--2008 by the authors
+Copyright @copyright{} 1999--2009 by the authors
 
 @quotation
 Permission is granted to copy, distribute and/or modify this document
@@ -75,7 +75,7 @@ For LilyPond version @version{}
 @end titlepage
 
 @copying
-Copyright @copyright{} 1999--2008 by the authors
+Copyright @copyright{} 1999--2009 by the authors
 
 @quotation
 Permission is granted to copy, distribute and/or modify this document
@@ -90,7 +90,7 @@ Free Documentation License''.
 @ifnottex
 This file documents GNU LilyPond for beginners.
 
-Copyright 1999--2008 by the authors
+Copyright 1999--2009 by the authors
 
 @quotation
 Permission is granted to copy, distribute and/or modify this document
index 5f6c3cf351cd916711336232f5686969624a59a7..ba1722c39f5422485b26b95e1d3b04256fdf8564 100644 (file)
 
 @include macros.itexi
 
-@iftex
 @afourpaper
-@c don't replace quotes with directed quotes
-@tex
-\gdef\SETtxicodequoteundirected{Foo}
-\gdef\SETtxicodequotebacktick{Bla}
-@end tex
-@end iftex
 
 
 @c don't remove this comment.
 @c HJJ: Info needs `@top', which is a synonym for `@unnumbered' in TeX.
 @end ifnottex
 
+
 @ifhtml
+@ifclear bigpage
 This document is also available as a
 @uref{source/Documentation/user/lilypond-program.pdf,PDF} and as
 @uref{source/Documentation/user/lilypond-program-big-page.html,one big page}.
+@end ifclear
+@ifset bigpage
+This document is also available as a
+@uref{source/Documentation/user/lilypond-program.pdf,PDF} and as
+@uref{source/Documentation/user/lilypond-program/index.html,HTML indexed multiple pages}.
+@end ifset
 @end ifhtml
 
 
@@ -59,7 +60,7 @@ This document is also available as a
 @author The LilyPond development team
 
 
-Copyright @copyright{} 1999--2008 by the authors
+Copyright @copyright{} 1999--2009 by the authors
 
 @quotation
 Permission is granted to copy, distribute and/or modify this document
@@ -76,7 +77,7 @@ For LilyPond version @version{}
 @end titlepage
 
 @copying
-Copyright @copyright{} 1999--2008 by the authors
+Copyright @copyright{} 1999--2009 by the authors
 
 @quotation
 Permission is granted to copy, distribute and/or modify this document
@@ -91,7 +92,7 @@ Free Documentation License''.
 @ifnottex
 This file documents GNU LilyPond program usage.
 
-Copyright 1999--2008 by the authors
+Copyright 1999--2009 by the authors
 
 @quotation
 Permission is granted to copy, distribute and/or modify this document
index e5680ee7d5fbb0acba6fff2431164659d185bc9a..b0fd4ff3364f641346c860053546f9ab71b9f4b4 100644 (file)
 
 @include macros.itexi
 
-@iftex
 @afourpaper
-@c don't replace quotes with directed quotes
-@tex
-\gdef\SETtxicodequoteundirected{Foo}
-\gdef\SETtxicodequotebacktick{Bla}
-@end tex
-@end iftex
 
 @c  Keep this here, since it pertains to the direntry below.
 @ignore
@@ -75,9 +68,16 @@ Distributions will want to install lilypond.info in postinstall, doing:
 
 
 @ifhtml
+@ifclear bigpage
 This document is also available as a
 @uref{source/Documentation/user/lilypond.pdf,PDF} and as
 @uref{source/Documentation/user/lilypond-big-page.html,one big page}.
+@end ifclear
+@ifset bigpage
+This document is also available as a
+@uref{source/Documentation/user/lilypond.pdf,PDF} and as a
+@uref{source/Documentation/user/lilypond/index.html,HTML indexed multiple pages}.
+@end ifset
 @end ifhtml
 
 
@@ -94,7 +94,7 @@ This document is also available as a
 @titlefont{Notation Reference}
 @author The LilyPond development team
 
-Copyright @copyright{} 1999--2008 by the authors
+Copyright @copyright{} 1999--2009 by the authors
 
 @quotation
 Permission is granted to copy, distribute and/or modify this document
@@ -111,7 +111,7 @@ For LilyPond version @version{}
 @end titlepage
 
 @copying
-Copyright @copyright{} 1999--2008 by the authors
+Copyright @copyright{} 1999--2009 by the authors
 
 @quotation
 Permission is granted to copy, distribute and/or modify this document
@@ -126,7 +126,7 @@ Free Documentation License''.
 @ifnottex
 This file documents GNU LilyPond.
 
-Copyright 1999--2008 by the authors
+Copyright 1999--2009 by the authors
 
 @quotation
 Permission is granted to copy, distribute and/or modify this document
index 5d7b1a4126c74ad0dfed42b87a3704fe8613e155..cf05679e6451e22ccd5f011450cb1a4bb6bc40c2 100644 (file)
@@ -7,7 +7,7 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @node Literature list
 @appendix Literature list
index a00f9c07ffb9f0760351871c17a90b4c36852798..9dbf8a8ff3fb2406a08b446ec1ade52799f17a87 100644 (file)
@@ -6,17 +6,29 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
+
 @include version.itexi
 
+
+@c Don't replace quotes with directed quotes.
+
+@set txicodequoteundirected
+@set txicodequotebacktick
+
+
+
 @c   ***** Displaying text *****
 
-@c we need this since @q{\} doesn't work with makeinfo 4.11 --
-@c say @q{@bs{}} instead
+@c We need this since @q{\} doesn't work with makeinfo 4.11 --
+@c say @q{@bs{}} instead.
+
 @macro bs
 \\
 @end macro
 
-@c to get decent quotes in `foo' and ``foo''
+
+@c To get decent quotes in `foo' and ``foo''.
+
 @macro q{TEXT}
 @quoteleft{}\TEXT\@quoteright{}
 @end macro
 @quotedblleft{}\TEXT\@quotedblright{}
 @end macro
 
+
 @ifhtml
+
 @macro warning{TEXT}
 @cartouche
 @b{Note:} \TEXT\
 @end cartouche
 @end macro
+
 @end ifhtml
 
 @ifnothtml
+
 @macro warning{TEXT}
 @quotation
 @quotation
 @end quotation
 @end quotation
 @end macro
+
 @end ifnothtml
 
+
 @ifnotinfo
+
 @macro notation{TEXT}
 @var{\TEXT\}
 @end macro
+
 @end ifnotinfo
 
 @ifinfo
+
 @macro notation{TEXT}
 \TEXT\
 @end macro
+
 @end ifinfo
 
+
 @macro smallspace
 @sp 1
 @end macro
 
 
-@c   **** Displaying images not generated by lilypond-book
 
-@c current installation setup of Info docs requires that all images are
-@c expected to be found in lilypond/ subdirectory.  lilypond-book already
-@c generates proper @image commands for images of music; these macros
-@c definitions do the same for other images.
+@c   ***** Displaying images not generated by lilypond-book *****
+
+@c Current installation setup of Info docs requires that all images are
+@c expected to be found in the `lilypond/' subdirectory.  `lilypond-book'
+@c already generates proper @image commands for images of music; these
+@c macro definitions do the same for other images.
 
 @ifnotinfo
+
 @macro sourceimage{FILENAME,WIDTH,HEIGHT,ALTTEXT}
 @image{\FILENAME\,\WIDTH\,\HEIGHT\,\ALTTEXT\}
 @end macro
+
 @end ifnotinfo
 
 @ifinfo
+
 @macro sourceimage{FILENAME,WIDTH,HEIGHT,ALTTEXT}
 @image{lilypond/\FILENAME\,\WIDTH\,\HEIGHT\,\ALTTEXT\}
 @end macro
+
 @end ifinfo
 
 
-@c   **** Headings in a doc subsection ****
+
+@c   ***** Headings in a doc subsection *****
+
+@c Don't insert an empty line after @predefined!  Right now
+@c it doesn't matter, but a future implementation will probably
+@c add some code which needs this restriction.
 
 @macro predefined
 @noindent
 @subsubheading Predefined commands
+@end macro
 
+@c The next macro is a dummy currently since texinfo doesn't
+@c provide a real ragged-right environment yet.
+@c
+@c Due to a bug in texi2html (texi2html.pl CVS versions <= 1.245)
+@c the macro must not be empty.
+
+@macro endpredefined
+@c
 @end macro
 
+
 @macro snippets
 @noindent
 @subsubheading Selected Snippets
-
 @end macro
 
+
+@c Don't insert an empty line after @seealso!  Otherwise we get
+@c unwanted extra vertical space in the PDF output.
+
 @macro seealso
 @noindent
 @subsubheading See also
-
 @indent
 @end macro
 
+
 @macro knownissues
 @noindent
 @subsubheading Known issues and warnings
-
 @end macro
 
+
 @macro lydoctitle {TEXT}
 @emph{\TEXT\}
-
 @end macro
 
+
+@c Don't remove the `@c' within the macro definition!  See section 19.3,
+@c `Macro Details and Caveats', in the texinfo info file for explanation.
+
 @macro funindex {TEXT}
 @findex \TEXT\
 @kindex \TEXT\
+@c
 @end macro
 
 
 
-@c   **** Links and references ****
+@c   ***** Links and references *****
 
 @c  Definitions for references:
+@c
 @c     @rglos
 @c     @rlearning
 @c     @ruser
 @c     @rprogram
 @c     @rlsr
 @c     @rinternals
-@c  all these also have a @...named version, which allows to specify the
-@c  displayed text for the reference as second argument
+@c
+@c  All these also have a @...named version which allows to specify the
+@c  displayed text for the reference as second argument.
+@c
+@c ***** HTML + bigpage is a special case (other manual names); all other
+@c formats are treated similarly.
 
-@c ***** HTML + bigpage is a special case (other manual names), all other
-@c formats are treated similarly
+
+@c *** not TeX ***
 
 @ifnottex
 
+@c ** bigpage **
+
 @ifset bigpage
 
 @macro rglos{TEXT}
 @end ifset
 
 
+@c ** not bigpage **
+
 @ifclear bigpage
 
 @macro rglos{TEXT}
 @end ifnottex
 
 
+@c *** TeX ***
 
-@c **** TEX ****
 @iftex
 
+@c All commands below should work in the middle of the line;
+@c we thus must not use @vindex directly since it works only if placed
+@c on a line of its own.  To overcome this problem, we define a
+@c replacement macro using the internal definition of @vindex which
+@c delimits arguments in the standard way (i.e., with braces).
+
+@tex
+\gdef\lilyvindex#1{\doind{vr}{\code #1}\ignorespaces}
+@end tex
+
 @macro rglos{TEXT}
-@vindex \TEXT\
+@lilyvindex{\TEXT\}
 @ref{\TEXT\,,,music-glossary,Music Glossary}
 @end macro
 
 @macro rglosnamed{TEXT,DISPLAY}
-@vindex \TEXT\
+@lilyvindex{\TEXT\}
 @ref{\TEXT\,,\DISPLAY\,music-glossary,Music Glossary}
 @end macro
 
 @macro rlearning{TEXT}
+@lilyvindex{\TEXT\}
 @ref{\TEXT\,,,lilypond-learning,Learning Manual}
 @end macro
 
 @macro rlearningnamed{TEXT,DISPLAY}
+@lilyvindex{\TEXT\}
 @ref{\TEXT\,,\DISPLAY\,lilypond-learning,Learning Manual}
 @end macro
 
 @macro ruser{TEXT}
+@lilyvindex{\TEXT\}
 @ref{\TEXT\,,,lilypond,Notation Reference}
 @end macro
 
 @macro rusernamed{TEXT,DISPLAY}
+@lilyvindex{\TEXT\}
 @ref{\TEXT\,,\DISPLAY\,lilypond,Notation Reference}
 @end macro
 
 @macro rprogram{TEXT}
+@lilyvindex{\TEXT\}
 @ref{\TEXT\,,,lilypond-program,Application Usage}
 @end macro
 
 @macro rprogramnamed{TEXT,DISPLAY}
+@lilyvindex{\TEXT\}
 @ref{\TEXT\,,\DISPLAY\,lilypond-program,Application Usage}
 @end macro
 
 @macro rlsr{TEXT}
+@lilyvindex{\TEXT\}
 @ref{\TEXT\,,,lilypond-snippets,Snippets}
 @end macro
 
 @macro rlsrnamed{TEXT,DISPLAY}
+@lilyvindex{\TEXT\}
 @ref{\TEXT\,,\DISPLAY\,lilypond-snippets,Snippets}
 @end macro
 
 @macro rinternals{TEXT}
-@vindex \TEXT\
+@lilyvindex{\TEXT\}
 @ref{\TEXT\,,,lilypond-internals,Internals Reference}
 @end macro
 
 @macro rinternalsnamed{TEXT,DISPLAY}
-@vindex \TEXT\
+@lilyvindex{\TEXT\}
 @ref{\TEXT\,,\DISPLAY\,lilypond-internals,Internals Reference}
 @end macro
 
index 9475f27d76633168da7c188eabbd768e2edde5fd..0ae60c04ea0b9d9a80a3d82ebf283c791c2d57db 100644 (file)
 * Glossary: (lilypond/music-glossary).  Glossary of music terms.
 @end direntry
 
-@ifhtml
-This document is also available in
-@uref{source/Documentation/user/music-glossary.pdf,PDF}
-and as @uref{source/Documentation/user/music-glossary-big-page.html,one big page}.
-@end ifhtml
-
 @titlepage
 @title Music Glossary
 @author Christian Mondrup   @c Original author of LilyPond glossary
@@ -39,7 +33,7 @@ and as @uref{source/Documentation/user/music-glossary-big-page.html,one big page
 @c Fixes by Jean-Pierre Coulon and `Dirk', alphabetized by last name, KK, 10/07
 @c Updates to the German translation by Till Rettig, 12/07
 
-Copyright @copyright{} 1999--2008 by the authors
+Copyright @copyright{} 1999--2009 by the authors
 
   Permission is granted to copy, distribute and/or modify this document
   under the terms of the GNU Free Documentation License, Version 1.1
@@ -66,6 +60,19 @@ Copyright @copyright{} 1999--2008 by the authors
 
 @ifnottex
 
+@ifhtml
+@ifclear bigpage
+This document is also available as a
+@uref{source/Documentation/user/music-glossary.pdf,PDF} and as
+@uref{source/Documentation/user/music-glossary-big-page.html,one big page}.
+@end ifclear
+@ifset bigpage
+This document is also available as a
+@uref{source/Documentation/user/music-glossary.pdf,PDF} and as a
+@uref{source/Documentation/user/music-glossary/index.html,HTML indexed multiple pages}.
+@end ifset
+@end ifhtml
+
 This glossary was brought you by:
 
 @itemize
@@ -156,7 +163,7 @@ The list is rather long ...
 @end ignore
 
 @*
-Copyright 1999--2008 by the authors
+Copyright 1999--2009 by the authors
 
   Permission is granted to copy, distribute and/or modify this document
   under the terms of the GNU Free Documentation License, Version 1.1
@@ -220,6 +227,7 @@ Languages in this order.
 * accidental::
 * adagio::
 * al niente::
+* alla breve::
 * allegro::
 * alteration::
 * alto::
@@ -283,6 +291,7 @@ Languages in this order.
 * crescendo::
 * cue-notes::
 * custos::
+* cut time::
 * D::
 * da capo::
 * dal niente::
@@ -387,6 +396,7 @@ Languages in this order.
 * lyrics::
 * major::
 * major interval::
+* maxima::
 * meantone temperament::
 * measure::
 * measure repeat::
@@ -395,6 +405,7 @@ Languages in this order.
 * melisma line::
 * melodic cadence::
 * mensural notation::
+* mensuration sign::
 * meter::
 * metronome::
 * metronome mark::
@@ -465,6 +476,7 @@ Languages in this order.
 * scordatura::
 * score::
 * second::
+* semibreve::
 * semitone::
 * seventh::
 * sextolet::
@@ -555,7 +567,6 @@ Languages in this order.
 @end itemize
 
 @seealso
-
 @ref{Pitch names}.
 
 
@@ -571,13 +582,13 @@ DK: ?,
 S: ?,
 FI: kahdelle.
 
-Abbreviated @notation{a2} or @notation{a 2}.
+Abbreviated @notation{a2} or @notation{a 2}.  In orchestral scores, @notation{a
+due} indicates that:
 
 @enumerate
 
-@item An indication in orchestral scores that a single part notated on a single
-staff that normally carries parts for two players (e.g. first and second oboes)
-is to be played by both players.
+@item A single part notated on a single staff that normally carries parts for
+two players (e.g. first and second oboes) is to be played by both players.
 
 @item Or conversely, that two pitches or parts notated on a staff that normally
 carries a single part (e.g. first violin) are to be played by different players,
@@ -586,8 +597,7 @@ or groups of players (@q{desks}).
 @end enumerate
 
 @seealso
-
-None yet.
+No cross-references.
 
 
 @node accelerando
@@ -602,13 +612,12 @@ DK: accelerando,
 S: accelerando,
 FI: accelerando, kiihdyttäen.
 
-[Italian: @q{speed up, accelerate}.]
+[Italian: @q{speed up, accelerate}]
 
 Increase tempo
 
 @seealso
-
-None yet.
+No cross-references.
 
 
 @node accent
@@ -626,28 +635,34 @@ FI: aksentti, korostus.
 The stress of one tone over others.
 
 @seealso
-
-None yet.
+No cross-references.
 
 
 @node accessory
 @section accessory
 
 @seealso
-
 @ref{ornament}.
 
 
 @node acciaccatura
 @section acciaccatura
 
+ES: ?,
+I: acciaccatura,
+F: acciaccatura, appoggiature brève,
+D: ?,
+NL: ?,
+DK: ?,
+S: ?,
+FI: ?.
+
 A grace note which takes its time from the rest or note preceding the
 principal note to which it is attached. The acciaccatura is drawn as a
 small eighth note (quaver) with a line drawn through the flag and
 stem.
 
 @seealso
-
 @ref{appoggiatura}, @ref{grace notes}, @ref{ornament}.
 
 
@@ -669,35 +684,49 @@ An accidental alters a note by:
 
 @item Raising its pitch:
 @itemize
-@item A @notation{double sharp}, by two semitones (a whole tone)
-@item A @notation{sharp}, by one semitone
+@item By two semitones (a whole tone)—@notation{double sharp}
+@item By one semitone—@notation{sharp}
 @end itemize
 
 @item Lowering its pitch:
 @itemize
-@item A @notation{flat}, by one semitone
-@item A @notation{double flat}, by two semitones (a whole tone)
+@item By one semitone—@notation{flat}
+@item By two semitones (a whole tone)—@notation{double flat}
 @end itemize
 
-@item Canceling the effects of the key signature or previous accidentals.
+@item Or canceling the effects of the key signature or previous accidentals.
 @end itemize
 
-@lilypond[fragment,notime,line-width=13.0\cm]
-\set Score.automaticBars = ##f
-<< 
-  \context Staff \relative c'' {
-    \set Staff.extraNatural = ##f
-    gisis1 gis g! ges geses
+@lilypond[quote,notime]
+\score {
+  \new Staff {
+    \relative c'' {
+      \set Staff.extraNatural = ##f
+      gisis1 gis g! ges geses
+    }
   }
-  \lyrics {
-    \override Lyrics .LyricText #'self-alignment-X = #-1
-    "db. sharp" sharp natural flat "db. flat"
+  \addlyrics {
+    \markup {
+      \center-column { double sharp }
+    }
+    sharp
+    natural
+    flat
+    \markup {
+      \center-column { double flat }
+    }
   }
->>
+  \layout {
+    \context {
+      \Score
+      \override SpacingSpanner
+        #'base-shortest-duration = #(ly:make-moment 1 32)
+    }
+  }
+}
 @end lilypond
 
 @seealso
-
 @ref{alteration}, @ref{semitone}, @ref{whole tone}.
 
 
@@ -713,7 +742,7 @@ DK: adagio,
 S: adagio,
 FI: adagio, hitaasti.
 
-[Italian: @q{comfortable, easy}.]
+[Italian: @q{comfortable, easy}]
 
 @itemize
 
@@ -726,7 +755,6 @@ of sonatas, symphonies, etc.
 @end itemize
 
 @seealso
-
 @ref{andante}, @ref{largo}, @ref{sonata}.
 
 
@@ -735,37 +763,34 @@ of sonatas, symphonies, etc.
 
 ES: ?,
 I: al niente,
-F: ?,
+F: al niente, en mourant,
 D: ?,
 NL: ?,
 DK: ?,
 S: ?,
 FI: häviten olemattomiin.
 
-[Italian: @q{to nothing}.]  Used with @notation{decrescendo} to indicate
+[Italian: @q{to nothing}]  Used with @notation{decrescendo} to indicate
 that the sound should fade away to nothing.
 
 @notation{Al niente} is indicated by circling the tip of the hairpin:
 
-@lilypond[fragment,ragged-right]
-\relative c'' {
-  \override Hairpin #'circled-tip = ##t
-  c1\<
-  c2\> c\<
-  c1\!
-}
+@lilypond[quote,relative=2]
+\override Hairpin #'circled-tip = ##t
+c1\<
+c2\> c\<
+c1\!
 @end lilypond
 
-or with the actual phrase @notation{al niente}.  This may be easier with
-text markup, rather than as part of the @notation{decrescendo} text:
+or with the actual phrase @notation{al niente}:
 
-@lilypond[fragment,ragged-right]
-\relative c'' {
-  \dimTextDecresc
-  c1~\>
-  c~
-  c\!-\markup { \italic "al niente" }
-}
+@lilypond[quote,relative=2]
+\dimTextDecresc
+\override DynamicTextSpanner #'(bound-details right text) =
+  \markup { \italic { al niente } }
+c1\> ~
+c1 ~
+c1\!
 @end lilypond
 
 Since one does not crescendo @emph{to} nothing, it is not correct to use
@@ -773,8 +798,36 @@ Since one does not crescendo @emph{to} nothing, it is not correct to use
 @emph{dal niente} (@notation{@b{from} nothing}).
 
 @seealso
+@ref{crescendo}, @ref{dal niente}, @ref{decrescendo}, @ref{hairpin}.
+
+
+@node alla breve
+@section alla breve
+
+ES: ?,
+I: ?,
+F: alla breve,à la brève,
+D: ?,
+NL: ?,
+DK: ?,
+S: ?,
+FI: ?.
+
+[Italian: @q{on the breve}]  Twice as fast as the notation indicates.
 
-@ref{crescendo}, @ref{decrescendo}, @ref{hairpin}.
+Also called @notation{in cut-time}.  The name derives from mensural notation,
+where the @notation{tactus} (or beat) is counted on the semibreve (the modern
+whole note).  Counting @q{on the breve} shifts the tactus to the next longest
+note value, which (in modern usage) effectively halves all note values.
+
+(In mensural notation, breves and semibreves can have a ternary relationship, in
+which case @notation{alla breve} means thrice (not twice) as fast.  In practice,
+this complication may not have mattered, since Gaffurius's system of multiplex
+proportions makes it easy to explicitly state which proportion is needed.)
+
+@seealso
+@ref{breve}, @ref{hemiola}, @ref{mensural notation}, @ref{note value},
+@ref{proportion}, @ref{whole note}.
 
 
 @node allegro
@@ -782,18 +835,17 @@ Since one does not crescendo @emph{to} nothing, it is not correct to use
 
 ES: allegro,
 I: allegro,
-F: allegro,
+F: allegro, gaiement,
 D: Allegro, Schnell, Fröhlich, Lustig,
 NL: allegro,
 DK: allegro,
 S: allegro,
 FI: allegro, nopeasti.
 
-[Italian: @q{cheerful}.]  Quick tempo.  Also used as a title for pieces in a quick
-tempo, especially the first and last movements of a sonata.
+[Italian: @q{cheerful}]  Quick tempo.  Also used as a title for pieces in a
+quick tempo, especially the first and last movements of a sonata.
 
 @seealso
-
 @ref{sonata}.
 
 
@@ -812,8 +864,9 @@ FI: muunnettu.
 An alteration is the modification, raising or lowering, of a note's
 pitch.  It is established by an accidental.
 
-@seealso
+@c TODO: add second meaning from mensural notation
 
+@seealso
 @ref{accidental}.
 
 
@@ -835,7 +888,6 @@ reached the height of the female voice.  This type of voice is also
 known as countertenor.
 
 @seealso
-
 @ref{countertenor}.
 
 
@@ -854,7 +906,6 @@ FI: alttoavain.
 C clef setting middle C on the middle line of the staff.
 
 @seealso
-
 @ref{C clef}.
 
 
@@ -863,7 +914,7 @@ C clef setting middle C on the middle line of the staff.
 
 ES: ámbito,
 I: ambitus,
-F: ambitus,
+F: ambitus, tessiture,
 D: Ambitus,
 NL: ambitus,
 DK: ambitus,
@@ -876,8 +927,7 @@ also denote the pitch range that a musical instrument is capable of playing.
 Sometimes anglicized to @emph{ambit} (pl. @emph{ambits}).
 
 @seealso
-
-None yet.
+No cross-references.
 
 
 @node anacrusis
@@ -896,16 +946,17 @@ An anacrusis (also known as pickup or upbeat) is an incomplete measure
 of music before a section of music. It also refers to the initial
 note(s) of a melody occurring in that incomplete measure.
 
-@lilypond[fragment,line-width=13.0\cm]
+@lilypond[quote,relative=1]
 \key f \major
 \time 4/4
-\relative c' {
-  \partial 4 f4 | bes4. a8 bes4 c |
-  bes( a) g f | bes4. a8 bes4 c | f,2. \bar "||" }
+\partial 4 f4
+bes4. a8 bes4 c
+bes4( a) g f
+bes4. a8 bes4 c
+f,2. \bar "||"
 @end lilypond
 
 @seealso
-
 @ref{measure}, @ref{meter}.
 
 
@@ -923,14 +974,12 @@ FI: luonnollinen molliasteikko.
 
 Also called @q{natural minor scale}.
 
-@lilypond[fragment,notime,line-width=13.0\cm]
-\set Score.automaticBars = ##f
-\relative c'' {
-  a1 b c d e f g a }
+@lilypond[quote,notime,relative=2]
+a1 b c d e f g a
 @end lilypond
 
-@seealso
 
+@seealso
 @ref{diatonic scale}.
 
 
@@ -939,20 +988,19 @@ Also called @q{natural minor scale}.
 
 ES: andante,
 I: andante,
-F: andante,
+F: andante, allant,
 D: Andante, Gehend,
 NL: andante,
 DK: andante,
 S: andante,
 FI: andante, käyden.
 
-[Italian: present participle of @emph{andare}, @q{to walk}.]
+[Italian: present participle of @emph{andare}, @q{to walk}]
 
 Walking tempo/character.
 
 @seealso
-
-None yet.
+No cross-references.
 
 
 @node appoggiatura
@@ -974,50 +1022,47 @@ before the beat.  While the short appoggiatura is performed as a short
 note regardless of the duration of the main note the duration of the
 long appoggiatura is proportional to that of the main note.
 
-@lilypond[line-width=13.0\cm]
-\context Voice \relative c'' {
-  \key d \major
-  \time 4/4
-
-%\override Score.TextScript #'font-style = #'large
-  <d a fis>4_"notation" r
-  { \override Stem #'flag-style = #'()
-    \grace g16
-    \revert Stem #'flag-style
-  }
-  fis8 e16 fis
-  { \override Stem #'flag-style = #'()
-    \grace a16
-    \revert Stem #'flag-style
-  }
-  g8 fis16 g |
-  \cadenzaOn a4 \bar "||" \cadenzaOff
-
-  <d, a fis>4_"performance" r g16 ( fis) e fis a ( g) fis g |
-  \cadenzaOn a4 \bar "||" \cadenzaOff
-}
+@lilypond[quote,relative=2]
+\key d \major
+\time 4/4
+<d a fis>4_"notation" r
+\grace g16
+fis8 e16 fis
+\grace a16
+g8 fis16 g |
+a4 \bar "||"
+
+\set Score.measurePosition = #ZERO-MOMENT
+<d, a fis>4_"performance" r
+g16( fis) e fis
+a16 ( g) fis g |
+a4 \bar "||"
 @end lilypond
 
 An appoggiatura may have more notes preceding the main note.
 
-@lilypond[line-width=13.0\cm]
-\relative c'' {
-  \key as \major
-  \time 2/4
-%  \override Score.TextScript #'font-style = #'large
-  \grace { bes16 } as8_"notation" as16 bes as8 g |
-  \grace { as16[( bes] } < c as >4-)
-  \grace { as16[( bes] } < c as >4-) \bar "||"
-  \grace { bes16 } as8_"performance" as16 bes as8 g |
-  << \context Voice = va { \stemUp\tieUp as32 bes c8. as32 bes c8. }
-    \context Voice = vb { \stemDown\tieDown as16 ~ as8. as16 ~ as8. } >>
-  \bar "||"
-}
+@lilypond[quote,relative=2]
+\key as \major
+\time 2/4
+\grace bes16 as8-"notation" as16 bes as8 g |
+\grace { as16[( bes] } <c as>4)
+\grace { as16[( bes] } <c as>4) \bar "||"
+
+\grace bes16 as8-"performance" as16 bes as8 g |
+<<
+  {
+    \voiceOne
+    as32 bes c8. as32 bes c8.
+  }
+  \new Voice {
+    \voiceTwo
+    as16 ~ as8. as16 ~ as8.
+  }
+>>
 @end lilypond
 
 @seealso
-
-None yet.
+No cross-references.
 
 
 @node arpeggio
@@ -1032,31 +1077,41 @@ DK: arpeggio, akkordbrydning,
 S: arpeggio,
 FI: arpeggio, murtosointu.
 
-[Italian: @q{harp-like, played like a harp}.]
+[Italian: @q{harp-like, played like a harp}]
 
-@lilypond[fragment,line-width=13.0\cm]
- \context PianoStaff <<
-  \context Staff = SA \relative c'' {
-    \time 4/4
-    \clef treble
-    r8 g16 c e g, c e r8 g,16 c e g, c e |
-    r8 a,16 d f a, d f r8 a,16 d f a, d f \bar "||" }
-  \context Staff = SB \relative c' {
-    \clef bass
-    << \context Voice = va {
-        \stemUp
-        r16 e8. ( e4) r16 e8. ( e4) |
-        r16 d8. ( d4) r16 d8. ( d4) }
-      \context Voice = vb {
-        \stemDown
-        c2 c | c c } >>
+@lilypond[quote,line-width=13\cm]
+\new PianoStaff <<
+  \context Staff = "SA" {
+    \relative c'' {
+      \clef treble
+      \time 4/4
+      r8 g16 c e g, c e r8 g,16 c e g, c e
+      r8 a,16 d f a, d f r8 a,16 d f a, d f
+      \bar "||"
+    }
+  }
+  \context Staff = "SB" {
+    \relative c' {
+      \clef bass
+      <<
+        {
+          \voiceOne
+          r16 e8. ( e4) r16 e8. ( e4)
+          r16 d8. ( d4) r16 d8. ( d4)
+        }
+        \new Voice {
+          \voiceTwo
+          c2 c
+          c2 c
+        }
+      >>
+    }
   }
 >>
 @end lilypond
 
 @seealso
-
-None yet.
+No cross-references.
 
 
 @node articulation
@@ -1076,8 +1131,7 @@ should be played.  Slurs, accents, staccato, and legato are all
 examples of articulation.
 
 @seealso
-
-None yet.
+No cross-references.
 
 
 @node ascending interval
@@ -1095,8 +1149,7 @@ FI: nouseva intervalli.
 A distance between a starting lower note and a higher ending note.
 
 @seealso
-
-None yet.
+No cross-references.
 
 
 @node augmented interval
@@ -1112,7 +1165,6 @@ S: överstigande intervall,
 FI: ylinouseva intervalli.
 
 @seealso
-
 @ref{interval}.
 
 
@@ -1121,7 +1173,7 @@ FI: ylinouseva intervalli.
 
 ES: ?,
 I: ?,
-F: ?,
+F: augmentation,
 D: ?,
 NL: ?,
 DK: ?,
@@ -1133,7 +1185,6 @@ FI: aika-arvojen pidentäminen.
 This is a placeholder for augmentation (wrt mensural notation).
 
 @seealso
-
 @ref{diminution}, @ref{mensural notation}.
 
 
@@ -1160,8 +1211,7 @@ emulate engraving. This required more skill than did engraving.
 @end itemize
 
 @seealso
-
-None yet.
+No cross-references.
 
 
 @node B
@@ -1179,7 +1229,6 @@ None yet.
 @end itemize
 
 @seealso
-
 @ref{H}, @ref{Pitch names}
 
 
@@ -1187,7 +1236,6 @@ None yet.
 @section backfall
 
 @seealso
-
 @ref{appoggiatura}.
 
 
@@ -1195,7 +1243,6 @@ None yet.
 @section bar
 
 @seealso
-
 @ref{measure}.
 
 
@@ -1217,7 +1264,6 @@ in secular music, or in sacred music to indicate congruences between parts
 in otherwise-unmetered music).
 
 @seealso
-
 @ref{measure}.
 
 
@@ -1238,7 +1284,6 @@ The male voice intermediate in pitch between the bass and the tenor.
 @c F: clef de troisième ligne dropped
 
 @seealso
-
 @ref{bass}, @ref{tenor}.
 
 
@@ -1247,7 +1292,7 @@ The male voice intermediate in pitch between the bass and the tenor.
 
 ES: clave de fa en tercera,
 I: chiave di baritono,
-F: clef d' Ut cinquième ligne, clef de Fa troisième,
+F: clef d'ut cinquième ligne, clef de fa troisième,
 D: Baritonschlüssel,
 NL: baritonsleutel,
 DK: barytonnøgle,
@@ -1257,7 +1302,6 @@ FI: baritoniavain.
 C or F clef setting middle C on the upper staff line.
 
 @seealso
-
 @ref{C clef}, @ref{F clef}.
 
 
@@ -1283,7 +1327,6 @@ double bass.
 @end itemize
 
 @seealso
-
 @ref{strings}.
 
 
@@ -1302,7 +1345,6 @@ FI: bassoavain.
 A clef setting with middle C on the first top ledger line.
 
 @seealso
-
 @ref{F clef}.
 
 
@@ -1311,7 +1353,7 @@ A clef setting with middle C on the first top ledger line.
 
 ES: barra
 I: coda,
-F: barre,
+F: ligature, barre (de croches),
 D: Balken,
 NL: waardestreep,
 DK: bjælke,
@@ -1321,18 +1363,14 @@ FI: palkki.
 Line connecting a series of notes (shorter than a quarter note). The
 number of beams determines the note value of the connected notes.
 
-@lilypond[fragment,notime,line-width=13.0\cm]
-\set Score.automaticBars = ##f
-%\override TextScript #'font-style = #'large
-\relative c'' {
-  g8_"1/8"[ g g g] s16
-  g16_"1/16"[ g g g] s16
-  g32_"1/32"[ s32 g32 s32 g32 s32 g32] s16
-  g64_"1/64"[ s32 g64 s32 g64 s32 g64] s32 }
+@lilypond[quote,notime,relative=2,line-width=13\cm]
+g8-"1/8"[ g g g] s16
+g16-"1/16"[ g g g] s
+g32-"1/32"[ s g s g s g] s16
+g64-"1/64"[ s32 g64 s32 g64 s32 g64] s32
 @end lilypond
 
 @seealso
-
 @ref{feathered beam}.
 
 
@@ -1352,16 +1390,15 @@ Note value used for counting, most often half-, fourth-, and eighth notes.
 The base counting value and the number of them in each measure is indicated
 at the start of the music by the @notation{time signature}.
 
-@lilypond[fragment,line-width=13.0\cm]
+@lilypond[quote,relative=2]
 \key g \major
 \time 4/4
-\relative c'' { g4 c b a | g1 \bar "||"}
+g4 c b a | g1 \bar "||"
 \time 3/8
-\relative c'' { g8 d' c | b c a | g4. \bar "||"}
+g8 d' c | b c a | g4. \bar "||"
 @end lilypond
 
 @seealso
-
 @ref{time signature}.
 
 
@@ -1369,7 +1406,6 @@ at the start of the music by the @notation{time signature}.
 @section beat repeat
 
 @seealso
-
 @ref{percent repeat}.
 
 
@@ -1377,7 +1413,6 @@ at the start of the music by the @notation{time signature}.
 @section bind
 
 @seealso
-
 @ref{tie}.
 
 
@@ -1399,24 +1434,46 @@ Curly braces are used for connecting piano staves, and sometimes for connecting
 the staves of like instruments in an orchestral score when written on different
 staves (e.g. first and second flutes):
 
-@lilypond[fragment,ragged-right]
-\context GrandStaff <<
-  \relative c''\context Staff = SA { \clef treble g4 e c2 }
-  \relative c \context Staff = SB { \clef bass c1 \bar "|." } >>
+@lilypond[quote]
+\new GrandStaff <<
+  \context Staff = "SA" {
+    \relative c'' {
+      \clef treble
+      g4 e c2
+    }
+  }
+  \context Staff = "SB" {
+    \relative c {
+      \clef bass
+      c1
+      \bar "|."
+    }
+  }
+>>
 @end lilypond
 
 Angular brackets for connecting parts in an orchestral or choral score:
 
-@lilypond[fragment,ragged-right]
-\context StaffGroup <<
-%  \set StaffGroup.minVerticalAlign = #12
-  \relative c'' \context Staff = SA { \clef treble g4 e c2 }
-  \relative c \context Staff = SB { \clef bass c1 \bar "|." } >>
+@lilypond[quote]
+\new StaffGroup <<
+  \context Staff = "SA" {
+    \relative c'' {
+      \clef treble
+      g4 e c2
+    }
+  }
+  \context Staff = "SB" {
+    \relative c {
+      \clef bass
+      c1
+      \bar "|."
+    }
+  }
+>>
 @end lilypond
 
 @seealso
-
-None yet.
+No cross-references.
 
 
 @node bracket
@@ -1424,7 +1481,7 @@ None yet.
 
 ES: corchete,
 I: ?,
-F: ?,
+F: crochet,
 D: ?,
 NL: ?,
 DK: ?,
@@ -1432,7 +1489,6 @@ S: ?,
 FI: sulkumerkki.
 
 @seealso
-
 @ref{brace}
 
 
@@ -1450,11 +1506,10 @@ FI: vaskisoitin.
 
 A family of blown musical instruments made of brass, all using a cup
 formed mouth piece.  The brass instruments commonly used in a symphony
-orchestra are trumpet, trombone, french horn, and tube.
+orchestra are trumpet, trombone, french horn, and tuba.
 
 @seealso
-
-None yet.
+No cross-references.
 
 
 @node breath mark
@@ -1472,7 +1527,6 @@ FI: hengitysmerkki.
 Indication of where to breathe in vocal and wind instrument parts.
 
 @seealso
-
 @ref{caesura}.
 
 
@@ -1480,29 +1534,29 @@ Indication of where to breathe in vocal and wind instrument parts.
 @section breve
 
 @itemize
-@item US: breve, double-whole note,
-@item ES: cuadrada, breve,
-@item I: breve,
-@item F: brève,
-@item D: Brevis,
-@item NL: brevis,
-@item DK: brevis,
-@item S: brevis,
-@item FI: brevis, kaksoiskokonuotti.
+@item US: breve, double-whole note
+@item ES: cuadrada, breve
+@item I: breve
+@item F: brève
+@item D: Brevis
+@item NL: brevis
+@item DK: brevis
+@item S: brevis
+@item FI: brevis, kaksoiskokonuotti
 @end itemize
 
-Note value twice as long as a whole note.  Mainly used in pre-1650 music. 
-The shortest note value generally used in white mensural notation, hence the
-name, which originally meant @q{of short duration}.
+Note value: twice the length of a @notation{whole note} (@notation{semibreve}).
 
-@lilypond[fragment,notime,ragged-right]
-\set Score.automaticBars = ##f
-\relative c'' { g\breve }
+Mainly used in music from before 1650.  In mensural notation, it was a note
+of fairly short duration—hence the name, which is Latin for @q{short} or
+@q{of short duration}.
+
+@lilypond[quote,notime,relative=2]
+g\breve
 @end lilypond
 
 @seealso
-
-@ref{mensural notation}, @ref{note value}.
+@ref{mensural notation}, @ref{note value}, @ref{semibreve}.
 
 
 @node C
@@ -1511,7 +1565,7 @@ name, which originally meant @q{of short duration}.
 @itemize
 @item ES: do
 @item I: do
-@item F: ut
+@item F: ut, do
 @item D: C, c
 @item NL: c
 @item DK: c
@@ -1520,7 +1574,6 @@ name, which originally meant @q{of short duration}.
 @end itemize
 
 @seealso
-
 @ref{Pitch names}.
 
 
@@ -1539,27 +1592,23 @@ FI: C-avain.
 Clef symbol indicating the position of the middle C.  Used on all note
 lines.
 
-@lilypond[fragment,notime,line-width=13.0\cm]
-\set Score.automaticBars = ##f
-\override Score.Clef #'full-size-change = ##t
-<<
-  \context Staff \relative c' {
-    \clef soprano c1 
-    \clef mezzosoprano c 
-    \clef alto c 
-    \clef tenor c 
-    \clef baritone c 
-  }
-  \context Lyrics \lyrics {
-    \override Lyrics .LyricText #'self-alignment-X = #-1
-    "Soprano  " "Mezzosoprano  " "Alto  " "Tenor  " Baritone
-  }
->>
+@lilypond[quote,notime,relative=1,line-width=13.0\cm]
+\new Staff {
+  \override Staff.Clef #'full-size-change = ##t
+  \clef soprano c1
+  \clef mezzosoprano c1
+  \clef alto c1
+  \clef tenor c1
+  \clef baritone c1
+}
+\addlyrics {
+  \override Lyrics . LyricText #'self-alignment-X = #LEFT
+  "Soprano  " "Mezzosoprano  " "Alto  " "Tenor  " Baritone
+}
 @end lilypond
 
 @seealso
-
-None yet.
+No cross-references.
 
 
 @node cadence
@@ -1575,7 +1624,6 @@ S: kadens,
 FI: kadenssi, lopuke.
 
 @seealso
-
 @ref{harmonic cadence}, @ref{functional harmony}.
 
 
@@ -1598,8 +1646,7 @@ ability to improvise.  Since the middle of the 19th century, however,
 most cadenzas have been written down by the composer.
 
 @seealso
-
-None yet.
+No cross-references.
 
 
 @node caesura
@@ -1607,20 +1654,19 @@ None yet.
 
 ES: cesura,
 I: cesura,
-F: césura,
+F: césure,
 D: Zäsur,
 NL: ?,
 DK: ?,
 S: ?,
 FI: välimerkki.
 
-[Latin: from the supine of @emph{caedere} @q{to cut down}.]
+[Latin: from the supine of @emph{caedere} @q{to cut down}]
 
 The break between two musical phrases, sometimes (but not always) marked by a
 rest or a breath mark.
 
 @seealso
-
 @ref{breath mark}.
 
 
@@ -1637,7 +1683,6 @@ S: kanon,
 FI: kaanon, tarkka jäljittely.
 
 @seealso
-
 @ref{counterpoint}.
 
 
@@ -1658,7 +1703,6 @@ Logarithmic unit of measurement.  1@tie{}cent is 1/1200 of an octave
 (1/100 of an equally tempered semitone).
 
 @seealso
-
 @ref{equal temperament}, @ref{semitone}.
 
 
@@ -1666,7 +1710,6 @@ Logarithmic unit of measurement.  1@tie{}cent is 1/1200 of an octave
 @section central C
 
 @seealso
-
 @ref{middle C}.
 
 
@@ -1692,32 +1735,31 @@ define their mood are a special case called @q{open chords}.  The lack of
 the middle third means their quality is ambivalent -- neither major nor
 minor.
 
-@lilypond[fragment,notime,line-width=13.0\cm]
-\set Score.automaticBars = ##f
-%\override TextScript #'font-style = #'large
+@lilypond[quote,notime,line-width=13.0\cm]
 <<
-\context Staff \relative c'' {
-  \set Staff.extraNatural = ##f
-  <g b d>1 
-  <g bes d>
-  <g bes des>
-  <g b dis> 
-  <g b d f> 
-  <g b d f a> 
-}
-\lyrics{
-  "major  "
-  "minor  "
-  "diminished  "
-  "augmented  "
-  "seventh-chord  "
-  ninth-chord
-}
+  \new Staff {
+    \relative c'' {
+      \set Staff.extraNatural = ##f
+      <g b d>1
+      <g bes d>
+      <g bes des>
+      <g b dis>
+      <g b d f>
+      <g b d f a>
+    }
+  }
+  \lyrics {
+    "major  "
+    "minor  "
+    "diminished  "
+    "augmented  "
+    "seventh-chord  "
+    ninth-chord
+  }
 >>
 @end lilypond
 
 @seealso
-
 @ref{functional harmony}, @ref{interval}, @ref{inversion}, @ref{quality},
 @ref{third}.
 
@@ -1736,13 +1778,11 @@ FI: kromaattinen asteikko.
 
 A scale consisting of all 12 semitones.
 
-@lilypond[fragment,notime,line-width=13.0\cm]
-\set Score.automaticBars = ##f
-\relative c' { c1 cis d dis e f fis g gis a ais b c }
+@lilypond[quote,notime,relative=1,line-width=13.0\cm]
+c1 cis d dis e f fis g gis a ais b c
 @end lilypond
 
 @seealso
-
 @ref{semitone}.
 
 
@@ -1761,7 +1801,6 @@ FI: kromatiikka.
 Using tones extraneous to a diatonic scale (minor, major).
 
 @seealso
-
 @ref{diatonic scale}.
 
 
@@ -1770,7 +1809,7 @@ Using tones extraneous to a diatonic scale (minor, major).
 
 ES: modo eclesiástico,
 I: modo ecclesiastico,
-F: mode ecclésiastique,
+F: mode ecclésiastique, mode d'église,
 D: Kirchentonart,
 NL: kerktoonladder,
 DK: kirketoneart,
@@ -1778,7 +1817,6 @@ S: kyrkotonart,
 FI: moodi, kirkkosävellaji.
 
 @seealso
-
 @ref{diatonic scale}.
 
 
@@ -1797,12 +1835,22 @@ FI: avain, nuottiavain.
 The clef indicates which lines of the staff correspond to which
 pitches.  The three clef symbols in common use are:
 
-@lilypond[ragged-right,quote]
+@lilypond[quote]
 \markup {
- \column {
-  \line { "The Treble or G clef:   " \musicglyph #"clefs.G" }
-  \line { "The Bass or F clef:     " \musicglyph #"clefs.F" }
-  \line { "The Alto or C clef:     " \musicglyph #"clefs.C" }
+  \left-column {
+    \line { The Treble or G clef: }
+    \strut
+    \line { The Bass or F clef: }
+    \strut
+    \line { The Alto or C clef: }
+  }
+  \hspace #0.5
+  \left-column {
+    \musicglyph #"clefs.G"
+    \strut
+    \musicglyph #"clefs.F"
+    \strut
+    \musicglyph #"clefs.C"
  }
 }
 @end lilypond
@@ -1811,72 +1859,59 @@ Imagine a large staff of 11 lines centered on middle C, sometimes
 called a @q{grand staff}, with the bottom line representing low G and
 the top line high F:
 
-@lilypond[ragged-right,quote]
+@lilypond[quote]
 \score {
- <<
-%-- Treble Staff --%
-  \new Staff = "G" {
-% Allow this staff to be placed close to the others
-   \override Staff.VerticalAxisGroup #'minimum-Y-extent = #'(-2 . 2)
-% Allow the treble clef to overlap the lower staves:
-%   \override Staff.Clef #'Y-extent = #'(0 . 0)
-   \override Staff.Clef #'stencil = ##f          % No clef required
-   \clef "G"
-   s1^\markup { "g," \transparent "g" }
-   s^ \markup { "b," \transparent "g" }
-   s^ \markup { "d"  \transparent "g" }
-   s^ \markup { "f"  \transparent "g" }
-   s^ \markup { "a"  \transparent "g" }
-   s^ \markup { \with-color #red c' \transparent "g"}
-   e'^\markup { "e'" \transparent "g" }
-   g'^\markup { "g'" \transparent "g" }
-   b'^\markup { "b'" \transparent "g" }
-   d''^\markup { "d''" \transparent "g" }
-   f''^\markup { "f ''" \transparent "g" }
-   s
-  }
-%-- Alto Staff reduced to a single line on middle C --%
-  \new Staff = "C" {
-   \override Staff.StaffSymbol #'line-count = 1  % One line only
-   \override Staff.StaffSymbol #'color = #red    % Coloured red
-   \override Staff.Clef #'stencil = ##f          % No clef required
-   \clef "C"
-
-% Allow this staff to be placed close to the others
-   \override Staff.VerticalAxisGroup #'minimum-Y-extent = #'(0 . 0)
-% Specify height to give correct spacing between treble and bass staves
-   \override Staff.VerticalAxisGroup #'Y-extent = #'(-1 . 1)
-
-   s1 s s s s  % Space along to align horizonatally
-   \override NoteHead #'color = #red
-    c'1 % A middle C
-    s1 s s s s s % Keep staff (ie the red line) showing
-  }
-%-- Bass Staff --%
-  \new Staff = "F" {
-% Allow this staff to be placed close to the others
-   \override Staff.VerticalAxisGroup #'minimum-Y-extent = #'(-3 . 2)
-   \override Staff.Clef #'stencil = ##f          % No clef required
-   \clef "F"
-   g,1 b, d f a
-   s s s s s s s % Keep staff showing
-  }
- >>
- \layout {
-% Reduce horizontal spacing so semibreves can be used without exceeding 1 line
-  \context { \Score \override SpacingSpanner #'base-shortest-duration = #(ly:make-moment 1 1)
-  }
-% Reduce apparent vertical size of note heads to permit them to overlap other grobs vertically
-  \context { \Score \override NoteHead #'Y-extent = #'(0 . 0)
-  }
-% Remove all barlines
-  \context { \Score \override BarLine #'stencil = ##f
-  }
-% Remove time signature from all staves
-  \context { \Staff \remove Time_signature_engraver
+  <<
+    %-- Note names above treble staff --%
+    \new NoteNames {
+      \set printOctaveNames = ##t
+      g,1 b, d f a
+      \once \override NoteName #'color = #red
+      c'1
+      e'1 g' b' d'' f''
+    }
+    %-- Treble Staff --%
+    \new Staff = "G" {
+      \override Staff.Clef #'stencil = ##f
+      \clef "G"
+      s1 s s s s s
+      e'1 g' b' d'' f''
+      s1
+    }
+    %-- Alto Staff reduced to a single line on middle C --%
+    \new Staff = "C" {
+      \override Staff.StaffSymbol #'line-count = #1
+      \override Staff.StaffSymbol #'color = #red
+      \override Staff.Clef #'stencil = ##f
+      \clef "C"
+      s1 s s s s
+      \override NoteHead #'color = #red
+      c'1
+      s1 s s s s s
+    }
+    %-- Bass Staff --%
+    \new Staff = "F" {
+      \override Staff.Clef #'stencil = ##f
+      \clef "F"
+      g,1 b, d f a
+      s1 s s s s s s
+    }
+  >>
+  \layout {
+    \context {
+      \Score
+      \override SpacingSpanner
+        #'base-shortest-duration = #(ly:make-moment 1 1)
+      \override  NonMusicalPaperColumn
+        #'line-break-system-details = #'((alignment-offsets . (3 0 -3 -6)))
+      \override BarLine #'stencil = ##f
+    }
+    \context {
+      \Staff
+      \remove "Time_signature_engraver"
+    }
   }
- }  % End layout
-}  % End score
+}
 @end lilypond
 
 Staves of five lines are usually used, and the clef superimposed on
@@ -1884,83 +1919,60 @@ them indicates which five lines have been selected from this
 @samp{grand staff}. For example, the treble or G clef indicates that
 the top five lines have been selected:
 
-@lilypond[ragged-right,quote]
+@lilypond[quote]
 \score {
- <<
-%-- Treble Staff --%
-  \new Staff = "G" {
-% Allow this staff to be placed close to the others
-   \override Staff.VerticalAxisGroup 
-    #'minimum-Y-extent = #'(0 . 0)
-% Allow the treble clef to overlap the lower staves:
-%   \override Staff.Clef #'Y-extent = #'(0 . 0)
-   \override Staff.Clef #'stencil = ##f  % No clef required here
-   \clef "G"
-   s1^\markup { "g," \transparent "g" }
-   s^ \markup { "b," \transparent "g" }
-   s^ \markup { "d"  \transparent "g" }
-   s^ \markup { "f"  \transparent "g" }
-   s^ \markup { "a"  \transparent "g" }
-   s^ \markup { \with-color #red c' \transparent "g"}
-   \stopStaff \startStaff
-   \clef "C"  % Dummy to force next clef to be printed
-   s  % Need at least one note for \clef to take effect
-   \override Staff.Clef #'stencil = ##t  % Clef now required
-   \override Staff.Clef #'Y-extent = #'(0 . 0)  % Permit overlap
-   \clef "G"
-   e'^\markup { "e'" \transparent "g" }
-   g'^\markup { "g'" \transparent "g" }
-   b'^\markup { "b'" \transparent "g" }
-   d''^\markup { "d''" \transparent "g" }
-   f''^\markup { "f ''" \transparent "g" }
-  }  % End staff G
-%-- Alto Staff reduced to a single line on middle C --%
-  \new Staff = "C" {
-   \override Staff.StaffSymbol #'line-count = 1  % One line only
-   \override Staff.StaffSymbol #'color = #red    % Coloured red
-   \override Staff.Clef #'stencil = ##f      % No clef required
-   \clef "C"
-
-% Allow this staff to be placed close to the others
-   \override Staff.VerticalAxisGroup 
-    #'minimum-Y-extent = #'(0 . 0)
-% Specify height to give correct spacing between the staves
-   \override Staff.VerticalAxisGroup #'Y-extent = #'(-1 . 1)
-
-   s1 s s s s  % Space along to align horizonatally
-   \override NoteHead #'color = #red
-    c'1 % A middle C
-%    s1 s s s s  % Keep staff (ie the red line) showing
-  }  % End staff C
-%-- Bass Staff --%
-  \new Staff = "F" {
-% Allow this staff to be placed close to the others
-   \override Staff.VerticalAxisGroup 
-    #'minimum-Y-extent = #'(0 . 0)
-   \override Staff.Clef #'stencil = ##f     % No clef required
-   \clef "F"
-   g,1_" " b, d f a
-%   s s s s s s  % Keep staff showing
-  }  % End staff F
- >>
- \layout {
-% Reduce horizontal spacing so semibreves can be used 
-% without exceeding 1 line
-  \context { \Score \override SpacingSpanner 
-   #'base-shortest-duration = #(ly:make-moment 1 1)
-  }
-% Reduce apparent vertical size of note heads to 
-% permit them to overlap other grobs vertically
-  \context { \Score \override NoteHead #'Y-extent = #'(0 . 0)
-  }
-% Remove all barlines
-  \context { \Score \override BarLine #'stencil = ##f
-  }
-% Remove time signature from all staves
-  \context { \Staff \remove Time_signature_engraver
+  <<
+    %-- Note names above treble staff --%
+    \new NoteNames {
+      \set printOctaveNames = ##t
+      g,1 b, d f a
+      \once \override NoteName #'color = #red
+      c'1
+      s1
+      e'1 g' b' d'' f''
+    }
+    %-- Treble Staff --%
+    \new Staff = "G" {
+      \once \override Staff.Clef #'stencil = ##f
+      \clef "G"
+      s1 s s s s s s
+      \override Staff.Clef #'full-size-change = ##t
+      \set Staff.forceClef = ##t
+      \clef "G"
+      e'1 g' b' d'' f''
+    }
+    %-- Alto Staff reduced to a single line on middle C --%
+    \new Staff = "C" {
+      \override Staff.StaffSymbol #'line-count = #1
+      \override Staff.StaffSymbol #'color = #red
+      \override Staff.Clef #'stencil = ##f
+      \clef "C"
+      s1 s s s s
+      \override NoteHead #'color = #red
+      c'1
+    }
+    %-- Bass Staff --%
+    \new Staff = "F" {
+      \override Staff.Clef #'stencil = ##f
+      \clef "F"
+      g,1 b, d f a
+    }
+  >>
+  \layout {
+    \context {
+      \Score
+      \override SpacingSpanner
+        #'base-shortest-duration = #(ly:make-moment 2 1)
+      \override  NonMusicalPaperColumn
+        #'line-break-system-details = #'((alignment-offsets . (3 0 -3 -6)))
+      \override BarLine #'stencil = ##f
+    }
+    \context {
+      \Staff
+      \remove "Time_signature_engraver"
+    }
   }
- }  % End layout
-}  % End score
+}
 @end lilypond
 
 The @q{curl} of the G clef is centered on the line that represents the
@@ -1972,83 +1984,62 @@ C clef indicates the middle five lines have been selected.  This
 relationship is shown below, where the notes show an arpeggio on a C
 major chord.
 
-@lilypond[ragged-right,quote]
+@lilypond[quote]
 \score {
-<<
-%-- Treble Staff --%
- \new Staff = "G" \with {
-  \remove Time_signature_engraver
- }
- {
-% The following two overrides are required to make the two middle C's overlap
-  \override Staff.VerticalAxisGroup #'minimum-Y-extent = #'(0 . 0)
-  \override Staff.VerticalAxisGroup #'Y-extent = #'(-2 . 2)
-
-  \override Staff.Clef #'Y-extent = #'(0 . 0)
-  \clef "G"
-  s1 s s s s e' g' c''
- }
-%-- Alto Staff --%
- \new Staff = "C" \with {
-  \remove Time_signature_engraver
- }
- {
-  \override Staff.StaffSymbol #'line-count = 1
-  \override Staff.StaffSymbol #'stencil = ##f
-  \once \override Staff.Clef #'stencil = ##f
-  \clef "G"  % A frig. This clef is invisible; use G to force the later C clef to be shown
-  \override Score.BarLine #'stencil = ##f
-
-  % The following two overrides are required to align the C staff to the G and F staves
-  \override Staff.VerticalAxisGroup #'minimum-Y-extent = #'(0 . 0)
-  \override Staff.VerticalAxisGroup #'Y-extent = #'(-1 . 1)
-
-  s1 s s s
-  \stopStaff \startStaff
-  \override Staff.VerticalAxisGroup #'Y-extent = #'(-1 . 1)
-  \revert Staff.StaffSymbol #'stencil
-  \override Staff.StaffSymbol #'color = #red
-   b'1 % A frig.  This really shows as a middle C in the score
-   s1 s s s
-  \stopStaff \startStaff
-  \override Staff.StaffSymbol #'line-count = 5
-  \override Staff.StaffSymbol #'Y-extent = #'(0 . 0)
-  \override Staff.Clef #'Y-extent = #'(0 . 0)
-  \revert Staff.StaffSymbol #'color
-  \stopStaff \startStaff
-  \clef "C"
-  s1 s s c e g c' e' g' c''
- }
-%-- Bass Staff --%
- \new Staff = "F" \with {
-  \remove Time_signature_engraver
- }
- {
-  \override Staff.Clef #'Y-extent = #'(0 . 0)
-% The following two overrides are required to make the two middle C's overlap
-  \override Staff.VerticalAxisGroup #'minimum-Y-extent = #'(0 . 0)
-  \override Staff.VerticalAxisGroup #'Y-extent = #'(-2 . 2)
-
-  \clef "F"
-  c1 e g s s s s s
- }
->>
-\layout {
- \context {
-  \Score \override SpacingSpanner #'base-shortest-duration = #(ly:make-moment 2 1)
-  }
- \context {
-  \Score \override NoteHead #'Y-extent = #'(0 . 0)
+  <<
+    %-- Treble Staff --%
+    \new Staff = "G" {
+      \clef "G"
+      s1 s s s
+      e'1 g' c'' s
+    }
+    %-- Alto Staff --%
+    \new Staff = "C" {
+      \override Staff.StaffSymbol #'line-count = #1
+      \once \override Staff.Clef #'stencil = ##f
+      \stopStaff
+      \clef "C"
+      s1 s s
+      \startStaff
+      \revert Staff.StaffSymbol #'stencil
+      \override Staff.StaffSymbol #'color = #red
+      c'1
+      s1 s s s s
+      \stopStaff \startStaff
+      \revert Staff.StaffSymbol #'line-count
+      \revert Staff.StaffSymbol #'color
+      \stopStaff \startStaff
+      \override Staff.Clef #'full-size-change = ##t
+      \set Staff.forceClef = ##t
+      \clef "C"
+      s1 s
+      c1 e g c' e' g' c''
+    }
+    %-- Bass Staff --%
+    \new Staff = "F" {
+      \clef "F"
+      c1 e g
+      s1 s s s s
+    }
+  >>
+  \layout {
+    \context {
+      \Score
+      \override SpacingSpanner #'base-shortest-duration =
+        #(ly:make-moment 2 1)
+      \override  NonMusicalPaperColumn
+        #'line-break-system-details = #'((alignment-offsets . (0 -3 -6)))
+      \override BarLine #'stencil = ##f
+    }
+    \context {
+      \Staff
+      \remove "Time_signature_engraver"
+    }
   }
- \context {
-  \Score \override NoteHead #'minimum-Y-extent = #'(0 . 0)
- }
-}
 }
 @end lilypond
 
 @seealso
-
 @ref{C clef}, @ref{F clef}, @ref{G clef}.
 
 
@@ -2057,7 +2048,7 @@ major chord.
 
 ES: racimo,
 I: ?,
-F: ?,
+F: cluster,
 D: Cluster,
 NL: ?,
 DK: ?,
@@ -2086,13 +2077,12 @@ geometrically describes the development of a range of pitches
 geometrical shape of a cluster covers the area in which any single
 pitch contained in the cluster would be notated as an ordinary note.
 
-@lilypond[fragment,relative=2,ragged-right]
-\makeClusters { <c e> <b f'> <b g'> <c g> <f e> }
+@lilypond[quote,relative=2]
+\makeClusters { <c e>4 <b f'> <b g'> <c g>8 <f e> }
 @end lilypond
 
 @seealso
-
-None yet.
+No cross-references.
 
 
 @node comma
@@ -2111,7 +2101,6 @@ Difference in pitch between a note derived from pure tuning and the
 same note derived from some other tuning method.
 
 @seealso
-
 @ref{didymic comma}, @ref{Pythagorean comma}, @ref{syntonic comma},
 @ref{temperament}.
 
@@ -2122,7 +2111,6 @@ same note derived from some other tuning method.
 Another name for @ref{common time}.
 
 @seealso
-
 @ref{common time}, @ref{meter}.
 
 
@@ -2131,7 +2119,7 @@ Another name for @ref{common time}.
 
 ES: compasillo,
 I: ?,
-F: ?,
+F: mesure à 4/4,
 D: ?,
 NL: ?,
 DK: ?,
@@ -2142,7 +2130,6 @@ FI: C-merkintä.
 mensural notation.
 
 @seealso
-
 @ref{mensural notation}, @ref{meter}.
 
 
@@ -2159,7 +2146,6 @@ S: komplementärintervall (?),
 FI: täydentävä intervalli.
 
 @seealso
-
 @ref{inverted interval}.
 
 
@@ -2178,7 +2164,6 @@ FI: oktaavia laajempi intervalli.
 Intervals larger than an octave.
 
 @seealso
-
 @ref{interval}.
 
 
@@ -2187,7 +2172,7 @@ Intervals larger than an octave.
 
 ES: compás compuesto, compás de subdivisión ternaria,
 I: ?,
-F: ?,
+F: mesure composée,
 D: ?,
 NL: ?,
 DK: ?,
@@ -2198,7 +2183,6 @@ A meter that includes a triplet subdivision within the beat, such as
 6/8, 9/8, 12/8.
 
 @seealso
-
 @ref{meter}, @ref{simple meter}.
 
 
@@ -2207,7 +2191,7 @@ A meter that includes a triplet subdivision within the beat, such as
 
 ES: compás compuesto, compás de amalgama (def. 2),
 I: ?,
-F: ?,
+F: temps composé,
 D: ?,
 NL: ?,
 DK: ?,
@@ -2224,8 +2208,10 @@ A meter that includes a triplet subdivision within the beat: see
 A time signature that additively combines two or more unequal meters, e.g.,
 "3/8 + 2/8" instead of "5/8".  Sometimes called additive time signatures.
 
-@lilypond[fragment,line-width=13.0\cm]
-#(define (compound-time grob one two three num)
+@end enumerate
+
+@lilypond[quote,line-width=13.0\cm]
+#(define ((compound-time one two three num) grob)
   (grob-interpret-markup grob
     (markup
       #:override '(baseline-skip . 0)
@@ -2240,8 +2226,8 @@ A time signature that additively combines two or more unequal meters, e.g.,
 \relative c' {
   \key f \major
   #(set-time-signature 8 8 '(3 2 3))
-  \override Staff.TimeSignature #'stencil = #(lambda (grob)
-    (compound-time grob "3" "2" "3" "8"))
+  \override Staff.TimeSignature #'stencil =
+    #(compound-time "3" "2" "3" "8")
   #(override-auto-beam-setting '(end 1 8 8 8) 3 8)
   #(override-auto-beam-setting '(end 1 8 8 8) 5 8)
   
@@ -2251,10 +2237,7 @@ A time signature that additively combines two or more unequal meters, e.g.,
 }
 @end lilypond
 
-@end enumerate
-
 @seealso
-
 @ref{compound meter}, @ref{meter}, @ref{polymetric time signature}.
 
 
@@ -2263,7 +2246,7 @@ A time signature that additively combines two or more unequal meters, e.g.,
 
 ES: en Do, afinación de concierto,
 I: ?,
-F: ?,
+F: tonalité de concert, en ut,
 D: ?,
 NL: ?,
 DK: ?,
@@ -2299,7 +2282,7 @@ all) instruments that play in concert pitch:
 @itemize
 @item violin
 @item viola
-@item violincello
+@item violoncello
 @end itemize
 
 @end multitable
@@ -2318,12 +2301,11 @@ are, technically speaking, @emph{transposing instruments}:
 
 @item piccolo (plays an octave higher)
 @item celesta (plays an octave higher)
-@item double-bass (plays an octave lower)
+@item double bass (plays an octave lower)
 
 @end itemize
 
 @seealso
-
 @ref{transposing instrument}.
 
 
@@ -2342,13 +2324,13 @@ FI: asteittainen liike.
 Progressing melodically by intervals of a second, as contrasted with
 @emph{disjunct movement}.
 
-@lilypond[fragment,line-width=13.0\cm]
-\key g \major \time 4/4
-\relative c'' { g4 g g a | b2 a | g4 b a a | g1 \bar "||" }
+@lilypond[quote,relative=2,line-width=13.0\cm]
+\key g \major
+\time 4/4
+g4 g g a | b2 a | g4 b a a | g1 \bar "||"
 @end lilypond
 
 @seealso
-
 @ref{disjunct movement}.
 
 
@@ -2365,7 +2347,6 @@ S: konsonans,
 FI: konsonanssi, sopusointi.
 
 @seealso
-
 @ref{harmony}.
 
 
@@ -2382,7 +2363,6 @@ S: alt,
 FI: kontra-altto.
 
 @seealso
-
 @ref{alto}.
 
 
@@ -2398,8 +2378,7 @@ music typesetters.
 @c Copying music required more skill than engraving.  Flagged for NPOV
 
 @seealso
-
-None yet.
+No cross-references.
 
 
 @node counterpoint
@@ -2419,14 +2398,12 @@ combination into a single musical fabric of lines or parts which have
 distinct melodic significance.  A frequently used polyphonic technique
 is imitation, in its strictest form found in the canon needing only
 one part to be written down while the other parts are performed with a
-given displacement.  Imitation is also the contrapunctal technique
+given displacement.  Imitation is also the contrapuntal technique
 used in the @emph{fugue} which, since the music of the baroque era,
 has been one of the most popular polyphonic composition methods.
 
-@lilypond[fragment,staffsize=12,line-width=13.0\cm]
-\set Score.implicitTimeSignatureVisibility = #all-invisible
-\override Score.TimeSignature #'break-visibility = #all-invisible
-\context PianoStaff <<
+@lilypond[quote,staffsize=12,line-width=13.0\cm]
+\new PianoStaff <<
   \context Staff = SA \relative c' {
     \key bes \major
     \time 4/4
@@ -2461,8 +2438,7 @@ has been one of the most popular polyphonic composition methods.
 @end lilypond
 
 @seealso
-
-None yet.
+No cross-references.
 
 
 @node countertenor
@@ -2478,7 +2454,6 @@ S: kontratenor, counter tenor,
 FI: kontratenori.
 
 @seealso
-
 @ref{contralto}.
 
 
@@ -2497,13 +2472,13 @@ FI: cresendo, voimistuen.
 Increasing volume.  Indicated by a rightwards opening horizontal wedge
 (hairpin) or the abbreviation @notation{cresc.}.
 
-@lilypond[fragment,ragged-right]
-\key g \major \time 4/4
-\relative c'' { g4 \< a b c | d1\! \bar "|." }
+@lilypond[quote,relative=2]
+\key g \major
+\time 4/4
+g4\< a b c | d1\! \bar "|."
 @end lilypond
 
 @seealso
-
 @ref{decrescendo}, @ref{hairpin}.
 
 
@@ -2512,7 +2487,7 @@ Increasing volume.  Indicated by a rightwards opening horizontal wedge
 
 ES: notas guía,
 I: notine,
-F: petites notes précédent l'entrée d'un instrument, réplique,
+F: petites notes précédant l'entrée d'un instrument, réplique, "à défaut",
 D: Stichnoten,
 NL: stichnoten,
 DK: stiknoder,
@@ -2523,8 +2498,7 @@ In a separate part notes belonging to another part with the purpose of
 hinting when to start playing.  Usually printed in a smaller type.
 
 @seealso
-
-None yet.
+No cross-references.
 
 
 @node custos
@@ -2550,29 +2524,32 @@ There were different appearences for different notation styles.  Nowadays,
 they have survived only in special forms of musical notation such as the
 @emph{Editio Vaticana}, dating from the beginning of the 20th century
 
-@lilypond
+@lilypond[quote,ragged-right]
 \score {
-  {
-%   \override Staff.Custos #'neutral-position = #4
-    \override Staff.Custos #'neutral-direction = #down
+  \new Staff {
+    \override Staff.Custos #'neutral-direction = #DOWN
     \override Staff.Custos #'style = #'hufnagel
     c'1 \break
     <d' a' f''>1
   }
-
   \layout {
     \context {
       \Staff
-      \consists Custos_engraver
+      \consists "Custos_engraver"
     }
-    ragged-right = ##t
   }
 }
 @end lilypond
 
 @seealso
+No cross-references.
+
+
+@node cut time
+@section cut time
 
-None yet.
+@seealso
+@ref{alla breve}.
 
 
 @node D
@@ -2590,7 +2567,6 @@ None yet.
 @end itemize
 
 @seealso
-
 @ref{Pitch names}
 
 
@@ -2610,8 +2586,7 @@ Abbreviated @notation{D.C.}.  Indicates that the piece is to be repeated from
 the beginning to the end or to a certain place marked @emph{fine}.
 
 @seealso
-
-None yet.
+No cross-references.
 
 
 @node dal niente
@@ -2619,18 +2594,17 @@ None yet.
 
 ES: ?,
 I: dal niente,
-F: ?,
+F: partant de rien,
 D: ?,
 NL: ?,
 DK: ?,
 S: ?,
 FI: tyhjästä ilmaantuen.
 
-[Italian: @q{from nothing}.]  Used with @notation{crescendo} to indicate
+[Italian: @q{from nothing}]  Used with @notation{crescendo} to indicate
 that the sound should gradually increase from nothing.
 
 @seealso
-
 @ref{al niente}.
 
 
@@ -2650,22 +2624,21 @@ Abbreviated @notation{D.S.}.  Repetition, not from the beginning, but from
 another place frequently near the beginning marked by a sign
 (@notation{segno}):
 
-@lilypond[fragment,ragged-right]
-%\override TextScript #'font-style = #'large
-\override TextScript #'font-shape = #'italic
-\key g \major \time 4/4
-\relative c'' {
-  d1 |
-  g,4^\segno a b c |
-  b a g2_\markup{
-    \line { "D.S. " \tiny \raise #1 \musicglyph #"scripts.segno" } }
-  \bar "|."
+@lilypond[quote,relative=2]
+\key g \major
+\time 4/4
+d1
+g,4^\segno a b c
+b4 a g2-\markup {
+  \italic "D.S. "
+  \tiny \raise #1
+  \musicglyph #"scripts.segno"
 }
+\bar "|."
 @end lilypond
 
 @seealso
-
-None yet.
+No cross-references.
 
 
 @node decrescendo
@@ -2682,15 +2655,13 @@ FI: decresendo, hiljentyen.
 Decreasing tone volume.  Indicated by a leftwards opening horizontal
 wedge (hairpin) or the abbreviation @notation{decresc.}.
 
-@lilypond[fragment,ragged-right]
-\relative c'' {
-  \key g \major \time 4/4
-  d4 \> c b a | g1 \! \bar "|."
-}
+@lilypond[quote,relative=2]
+\key g \major
+\time 4/4
+d4\> c b a | g1 \! \bar "|."
 @end lilypond
 
 @seealso
-
 @ref{crescendo}, @ref{diminuendo}, @ref{hairpin}.
 
 
@@ -2709,8 +2680,7 @@ FI: laskeva intervalli.
 A distance between a starting higher note and a lower ending note.
 
 @seealso
-
-None yet.
+No cross-references.
 
 
 @node diatonic scale
@@ -2732,28 +2702,22 @@ are sometimes called, somewhat inaccurately, @q{church modes}).
 These @emph{modes} are used in Gregorian chant and in pre-baroque early music
 but also to some extent in newer jazz music.
 
-@lilypond[fragment,notime,ragged-right]
-\set Score.automaticBars = ##f
-%\override Score.LyricText #'font-style = #'large
-%\override Score.TextScript #'font-style = #'large
+@lilypond[quote,notime,relative=1]
 <<
-  \context Staff \relative c' {
+  {
     c1 d
-    \override TextScript #'padding = #-4
     e^"~~ S" f g a b^"~~ S" c
   }
-  \context Lyrics \lyrics {
+  \lyrics {
     Ionian
   }
 >>
 @end lilypond
 
-@lilypond[fragment,notime,ragged-right]
-\set Score.automaticBars = ##f
+@lilypond[quote,notime,relative=1]
 <<
-  \context Staff \relative c' {
+  {
     d1
-    \override TextScript #'padding = #-4
     e^"~~ S" f g a b^"~~ S" c d
   }
   \lyrics {
@@ -2762,11 +2726,9 @@ but also to some extent in newer jazz music.
 >>
 @end lilypond
 
-@lilypond[fragment,notime,ragged-right]
-\set Score.automaticBars = ##f
+@lilypond[quote,notime,relative=1]
 <<
-  \relative c' {
-    \override TextScript #'padding = #-4
+  {
     e1^"~~ S" f g a b^"~~ S" c d e
   }
   \lyrics {
@@ -2775,12 +2737,10 @@ but also to some extent in newer jazz music.
 >>
 @end lilypond
 
-@lilypond[fragment,notime,ragged-right]
-\set Score.automaticBars = ##f
+@lilypond[quote,notime,relative=1]
 <<
-  \relative c' {
+  {
     f1 g a
-    \override TextScript #'padding = #-4
     b^"~~ S" c d e^"~~ S" f
   }
   \lyrics {
@@ -2789,27 +2749,22 @@ but also to some extent in newer jazz music.
 >>
 @end lilypond
 
-@lilypond[fragment,notime,ragged-right]
-\set Score.automaticBars = ##f
+@lilypond[quote,notime,relative=2]
 <<
-  \relative c'' {
+  {
     g1 a
-    \override TextScript #'padding = #-4
-    b^"~~ S" c d e^"~~ S" f g }
+    b^"~~ S" c d e^"~~ S" f g
+  }
   \lyrics {
     Mixolydian
   }
 >>
 @end lilypond
 
-@lilypond[fragment,notime,ragged-right]
-\set Score.automaticBars = ##f
-%\override Score.LyricText #'font-style = #'large
-%\override Score.TextScript #'font-style = #'large
+@lilypond[quote,notime,relative=2]
 <<
-  \relative c'' {
+  {
     a1
-    \override TextScript #'padding = #-4
     b^"~~ S" c d e^"~~ S" f g a
   }
   \lyrics {
@@ -2818,13 +2773,9 @@ but also to some extent in newer jazz music.
 >>
 @end lilypond
 
-@lilypond[fragment,notime,ragged-right]
-\set Score.automaticBars = ##f
-%\override Score.LyricText #'font-style = #'large
-%\override Score.TextScript #'font-style = #'large
+@lilypond[quote,notime,relative=2]
 <<
-  \relative c'' {
-    \override TextScript #'padding = #-4
+  {
     b1^"~~ S" c d e^"~~ S" f g a b
   }
   \lyrics {
@@ -2838,12 +2789,10 @@ compositional music are primarily the major and the minor scales.  In
 the harmonic minor scale type an augmented second (A) occurs between
 the 6th and 7th tone.
 
-@lilypond[fragment,notime,ragged-right]
-\set Score.automaticBars = ##f
+@lilypond[quote,notime,relative=1]
 <<
-  \relative c' {
+  {
     c1 d
-    \override TextScript #'padding = #-4
     e^"~~ S" f g a b^"~~ S" c
   }
  \lyrics {
@@ -2852,12 +2801,10 @@ the 6th and 7th tone.
 >>
 @end lilypond
 
-@lilypond[fragment,notime,ragged-right]
-\set Score.automaticBars = ##f
+@lilypond[quote,notime,relative=2]
 <<
-  \relative c'' {
+  {
     a1
-    \override TextScript #'padding = #-4
     b^"~~ S" c d e^"~~ S" f g a
   }
  \lyrics {
@@ -2866,28 +2813,22 @@ the 6th and 7th tone.
 >>
 @end lilypond
 
-@lilypond[fragment,notime,ragged-right]
-\set Score.automaticBars = ##f
+@lilypond[quote,notime,relative=2]
 <<
-  \relative c'' {
+  {
     a1
-    \override TextScript #'padding = #-4
     b^"~~ S" c d e^"~~ S" f!^"~~ A" gis^"~~ S" a
   }
-  \context Lyrics \lyrics {
+  \lyrics {
     "Harmonic minor"
   }
 >>
 @end lilypond
 
-@lilypond[fragment,notime,line-width=13.0\cm]
-\set Score.automaticBars = ##f
-%\override Score.LyricText #'font-style = #'large
-%\override Score.TextScript #'font-style = #'large
+@lilypond[quote,notime,relative=2]
 <<
-  \relative c'' {
+  {
     a1
-    \override TextScript #'padding = #-4
     b^"~~ S" c d e fis gis^"~~ S" a
   }
    \lyrics {
@@ -2896,15 +2837,11 @@ the 6th and 7th tone.
 >>
 @end lilypond
 
-@lilypond[fragment,notime,line-width=13.0\cm]
-\set Score.automaticBars = ##f
-%\override Score.LyricText #'font-style = #'large
-%\override Score.TextScript #'font-style = #'large
+@lilypond[quote,notime,relative=3]
 <<
-  \relative c'' {
-    a'1
-    \override TextScript #'padding = #-4
-    a g! f!^"~~ S" e d c^"~~ S" b a
+  {
+    a1
+    g! f!^"~~ S" e d c^"~~ S" b a
   }
    \lyrics {
     "Melodic minor descending"
@@ -2913,7 +2850,6 @@ the 6th and 7th tone.
 @end lilypond
 
 @seealso
-
 @ref{semitone}, @ref{whole tone}.
 
 
@@ -2921,7 +2857,6 @@ the 6th and 7th tone.
 @section didymic comma
 
 @seealso
-
 @ref{syntonic comma}.
 
 
@@ -2938,7 +2873,6 @@ S: förminskat intervall,
 FI: vähennetty intervalli.
 
 @seealso
-
 @ref{interval}.
 
 
@@ -2947,7 +2881,7 @@ FI: vähennetty intervalli.
 
 ES: diminuendo,
 I: diminuendo,
-F: diminuendo,
+F: diminuendo, en diminuant,
 D: diminuendo,
 NL: diminuendo,
 DK: diminuendo,
@@ -2955,7 +2889,6 @@ S: diminuendo,
 FI: diminuendo, hiljentyen.
 
 @seealso
-
 @ref{decrescendo}.
 
 
@@ -2964,7 +2897,7 @@ FI: diminuendo, hiljentyen.
 
 ES: ?,
 I: ?,
-F: ?,
+F: diminution,
 D: ?,
 NL: ?,
 DK: ?,
@@ -2974,7 +2907,6 @@ FI: aika-arvojen tihennys.
 This is a stub for diminution (@emph{wrt} mensural notation).
 
 @seealso
-
 @ref{augmentation}, @ref{mensural notation}.
 
 
@@ -2991,7 +2923,6 @@ S: ?,
 FI: suora.
 
 @seealso
-
 @ref{custos}.
 
 
@@ -3010,17 +2941,16 @@ FI: melodian hyppivä liike.
 Progressing melodically by intervals larger than a major second, as contrasted
 with conjunct movement.
 
-@lilypond[fragment,ragged-right]
+@lilypond[quote,relative=1]
 \key a \major
-\time 4/4
-\relative c' {
+\time 4/4 {
   \partial 8 e8 |
   a4. gis8 b a e cis |
-  fis2 d4. \bar "||" }
+  fis2 d4.
+  \bar "||" }
 @end lilypond
 
 @seealso
-
 @ref{conjunct movement}.
 
 
@@ -3030,7 +2960,6 @@ with conjunct movement.
 Another name for @ref{dissonant interval}.
 
 @seealso
-
 @ref{dissonant interval}, @ref{harmony}.
 
 
@@ -3039,7 +2968,7 @@ Another name for @ref{dissonant interval}.
 
 ES: intervalo disonante, disonancia,
 I: intervallo dissonante, dissonanza,
-F: dissonance,
+F: intervalle dissonant, dissonance,
 D: Dissonanz,
 NL: dissonant interval, dissonant,
 DK: dissonerende interval, dissonans,
@@ -3047,7 +2976,6 @@ S: dissonans,
 FI: dissonanssi, dissonoiva intervalli, riitasointi.
 
 @seealso
-
 @ref{harmony}.
 
 
@@ -3083,8 +3011,7 @@ section in a long antiphonal or responsorial chant.
 TODO: musical example here?
 
 @seealso
-
-None yet.
+No cross-references.
 
 
 @node doit
@@ -3092,7 +3019,7 @@ None yet.
 
 ES: ?,
 I: ?,
-F: ?,
+F: saut,
 D: ?,
 NL: ?,
 DK: ?,
@@ -3103,7 +3030,6 @@ Indicator for a indeterminately rising pitch bend.  Compare with
 @emph{glissando}, which has determinate starting and ending pitches.
 
 @seealso
-
 @ref{fall}, @ref{glissando}.
 
 
@@ -3122,7 +3048,6 @@ FI: dominantti, huippusointu.
 The fifth @emph{scale degree} in @emph{functional harmony}.
 
 @seealso
-
 @ref{functional harmony}, @ref{scale degree}.
 
 
@@ -3131,7 +3056,7 @@ The fifth @emph{scale degree} in @emph{functional harmony}.
 
 ES: acorde de novena de dominante,
 I: accordo di nona di dominante,
-F: accord de neuvième dominante,
+F: accord de neuvième de dominante,
 D: Domi@-nant@-nonen@-akkord,
 NL: dominant noon akkoord,
 DK: dominantnoneakkord,
@@ -3139,7 +3064,6 @@ S: dominantnonackord,
 FI: dominanttinoonisointu.
 
 @seealso
-
 @ref{chord}, @ref{functional harmony}.
 
 
@@ -3148,7 +3072,7 @@ FI: dominanttinoonisointu.
 
 ES: acorde de séptima de dominante,
 I: accordo di settima di dominante,
-F: accord de septième dominante,
+F: accord de septième de dominante,
 D: Dominantseptakkord,
 NL: dominant septiem akkoord,
 DK: dominantseptimakkord,
@@ -3156,7 +3080,6 @@ S: dominantseptimackord,
 FI: dominanttiseptimisointu.
 
 @seealso
-
 @ref{chord}, @ref{functional harmony}.
 
 
@@ -3173,7 +3096,6 @@ S: dorisk tonart,
 FI: doorinen moodi.
 
 @seealso
-
 @ref{diatonic scale}.
 
 
@@ -3190,7 +3112,6 @@ S: punkt,
 FI: piste.
 
 @seealso
-
 @ref{dotted note}, @ref{note value}.
 
 
@@ -3207,7 +3128,6 @@ S: punkterad not,
 FI: pisteellinen nuotti.
 
 @seealso
-
 @ref{note value}.
 
 
@@ -3224,7 +3144,6 @@ S: dubbelslag,
 FI: kaksoisappogiatura, kaksoisetuhele.
 
 @seealso
-
 @ref{appoggiatura}.
 
 
@@ -3243,8 +3162,7 @@ FI: kaksoistahtiviiva.
 Indicates the end of a section within a movement.
 
 @seealso
-
-None yet.
+No cross-references.
 
 
 @node double dotted note
@@ -3260,7 +3178,6 @@ S: dub@-bel@-punk@-te@-rad not,
 FI: kaksoispisteellinen nuotti.
 
 @seealso
-
 @ref{note value}.
 
 
@@ -3277,7 +3194,6 @@ S: dubbelbe,
 FI: kaksoisalennusmerkki.
 
 @seealso
-
 @ref{accidental}.
 
 
@@ -3294,7 +3210,6 @@ S: dubbelkors,
 FI: kaksoisylennysmerkki.
 
 @seealso
-
 @ref{accidental}.
 
 
@@ -3311,7 +3226,6 @@ S: ?,
 FI: kaksois-aika-arvomerkintä.
 
 @seealso
-
 @ref{polymetric time signature}.
 
 
@@ -3330,8 +3244,7 @@ FI: kaksoistrilli.
 A simultaneous trill on two notes, usually in the distance of a third.
 
 @seealso
-
-None yet.
+No cross-references.
 
 
 @node duple meter
@@ -3339,7 +3252,7 @@ None yet.
 
 ES: tiempo binario,
 I: tempo binario,
-F: temps binaire,
+F: métrique binaire,
 D: in zwei, grader Takt,
 NL: tweedelige maatsoort,
 DK: todelt takt,
@@ -3347,7 +3260,6 @@ S: tvåtakt,
 FI: kaksoistempo.
 
 @seealso
-
 @ref{meter}.
 
 
@@ -3364,7 +3276,6 @@ S: duol,
 FI: duoli.
 
 @seealso
-
 @ref{note value}.
 
 
@@ -3381,7 +3292,6 @@ S: tonlängd,
 FI: kesto, aika-arvo.
 
 @seealso
-
 @ref{note value}.
 
 
@@ -3402,7 +3312,6 @@ one degree to another.  The terms, abbreviations, and symbols used to
 indicate this information are called dynamic marks.
 
 @seealso
-
 @ref{piano}, @ref{forte}, @ref{crescendo}, @ref{decrescendo},
 @ref{diminuendo}.
 
@@ -3422,7 +3331,6 @@ indicate this information are called dynamic marks.
 @end itemize
 
 @seealso
-
 @ref{Pitch names}
 
 
@@ -3430,7 +3338,6 @@ indicate this information are called dynamic marks.
 @section ecclesiastical mode
 
 @seealso
-
 @ref{church mode}, @ref{diatonic scale}.
 
 
@@ -3450,7 +3357,6 @@ indicate this information are called dynamic marks.
 @end itemize
 
 @seealso
-
 @ref{note value}.
 
 
@@ -3470,7 +3376,6 @@ indicate this information are called dynamic marks.
 @end itemize
 
 @seealso
-
 @ref{note value}.
 
 
@@ -3481,7 +3386,7 @@ indicate this information are called dynamic marks.
 
 ES: sinalefa,
 I: ?,
-F: ?,
+F: élision,
 D: ?,
 NL: ?,
 DK: ?,
@@ -3496,7 +3401,6 @@ by a lyric tie, which looks like (and serves the same function) as a musical
 tie.
 
 @seealso
-
 @ref{lyric tie}.
 
 
@@ -3504,7 +3408,6 @@ tie.
 @section embellishment
 
 @seealso
-
 @ref{ornament}.
 
 
@@ -3528,8 +3431,7 @@ The traditional process of music printing is done through cutting in a
 plate of metal.  Now also the term for the art of music typesetting.
 
 @seealso
-
-None yet.
+No cross-references.
 
 
 @node enharmonic
@@ -3547,22 +3449,21 @@ FI: enharmoninen.
 Two notes, intervals, or scales are enharmonic if they have different
 names but equal pitch.
 
-@lilypond[fragment,notime,line-width=13.0\cm]
-\set Score.automaticBars = ##f
+@lilypond[quote,notime,line-width=13.0\cm]
 <<
-\context Staff \relative c'' {
-  gis1  as <des g,!>  <cis g!> 
-}
-\context Lyrics \lyrics {
-  \override Lyrics .LyricText #'self-alignment-X = #-1
-  "g sharp  " "a flat  " "dim fifth  " "augm fourth"
-}
+  \new Staff {
+    \relative c'' {
+      gis1 as <des g,!> <cis g!>
+    }
+  }
+  \lyrics {
+    "g sharp  " "a flat  " "dim fifth  " "augm fourth"
+  }
 >>
 @end lilypond
 
 @seealso
-
-None yet.
+No cross-references.
 
 
 @node equal temperament
@@ -3581,7 +3482,6 @@ A tuning system that divides the octave into 12 equal semitones (each of
 which is precisely equal to 100 cents).
 
 @seealso
-
 @ref{cent}, @ref{semitone}, @ref{temperament}.
 
 
@@ -3609,7 +3509,6 @@ Performance indications concerning:
 @end itemize
 
 @seealso
-
 @ref{allegro}, @ref{andante}, @ref{crescendo}, @ref{forte}.
 
 
@@ -3664,7 +3563,6 @@ by the given number of octaves.
 @end itemize
 
 @seealso
-
 @ref{melisma}, @ref{sul G}, @ref{thorough bass}, @ref{octave mark},
 @ref{octave marking}.
 
@@ -3684,7 +3582,6 @@ by the given number of octaves.
 @end itemize
 
 @seealso
-
 @ref{Pitch names}
 
 
@@ -3707,34 +3604,32 @@ played an octave higher (for example, bass recorder) while 8@w{ }below
 the clef symbol indicates playing an octave lower (for example, on the
 Double Bass).
 
-@lilypond[fragment,notime,line-width=13.0\cm]
-\set Score.automaticBars = ##f
-\override Staff.Clef #'full-size-change = ##t
+@lilypond[quote,notime,line-width=13.0\cm]
 <<
-\relative c {
-  \clef varbaritone
-  f1
-  \clef bass
-  f1
-  \clef subbass
-  f1
-  \clef "F^8"
-  f1
-  \clef "F_8"
-  f1
-}
- \lyrics {
-  "varbaritone  "
-  "bass  "
-  "sub-bass  "
-  "octave up  "
-  "octave down"
-}
+  \relative c {
+    \override Staff.Clef #'full-size-change = ##t
+    \clef varbaritone
+    f1
+    \clef bass
+    f1
+    \clef subbass
+    f1
+    \clef "F^8"
+    f1
+    \clef "F_8"
+    f1
+  }
+  \lyrics {
+    "varbaritone  "
+    "bass  "
+    "sub-bass  "
+    "octave up  "
+    "octave down"
+  }
 >>
 @end lilypond
 
 @seealso
-
 @ref{baritone clef}, @ref{strings}.
 
 
@@ -3743,7 +3638,7 @@ Double Bass).
 
 ES: ?,
 I: ?,
-F: ?,
+F: chute,
 D: ?,
 NL: ?,
 DK: ?,
@@ -3754,7 +3649,6 @@ Indicator for a indeterminately falling pitch bend.  Compare with
 @emph{glissando}, which has determinate starting and ending pitches.
 
 @seealso
-
 @ref{doit}, @ref{glissando}.
 
 
@@ -3763,7 +3657,7 @@ Indicator for a indeterminately falling pitch bend.  Compare with
 
 ES: barra punteada,
 I: ?,
-F: liens de croches en soufflet,
+F: ligature en soufflet, lien de croches en soufflet,
 D: gespreizter Balken,
 NL: ?,
 DK: ?,
@@ -3776,7 +3670,6 @@ direction of @q{feathering} -- but without changing the overall tempo
 of the piece.
 
 @seealso
-
 Internals Reference: @ruser{Manual beams}
 
 
@@ -3796,16 +3689,14 @@ FI: fermaatti, pidäke.
 
 Prolonged note or rest of indefinite duration.
 
-@lilypond[fragment,ragged-right]
+@lilypond[quote,relative=2]
 \time 4/4
-\relative c'' {
-  a4 b c2^\fermata \bar "|."
-}
+a4 b c2^\fermata
+\bar "|."
 @end lilypond
 
 @seealso
-
-None yet.
+No cross-references.
 
 
 @node fifth
@@ -3821,7 +3712,6 @@ S: kvint,
 FI: kvintti.
 
 @seealso
-
 @ref{interval}.
 
 
@@ -3843,35 +3733,41 @@ A method of indicating an accompaniment part by the bass notes only,
 together with figures designating the chief intervals and chords to be
 played above the bass notes.
 
-TODO: Make the upper clef smaller, since it's usually "realized" in performance.
-
-@lilypond[fragment,line-width=13.0\cm]
-\context GrandStaff <<
-  \context Staff = lh \relative c'' {
-    \time 4/4
-    \key es \major
+@lilypond[quote,line-width=13.0\cm]
+\new GrandStaff <<
+  \new Staff = "rh" \with {
+    fontSize = #-3
+    \override StaffSymbol #'staff-space = #(magstep -3)
+  } \relative c'' {
     \clef treble
-    << \context Voice = rha {
-        \stemUp
-        es4 d c bes | bes }
-      \context Voice = rhb {
-        \stemDown
-        < bes g >8 as < as f > g < g es > f < d f > es | < g es >4 }
+    \key es \major
+    \time 4/4
+    <<
+      \context Voice = "rha" {
+        \voiceOne
+        es4 d c bes
+        bes4
+      }
+      \context Voice = "rhb" {
+        \voiceTwo
+        <bes g>8 as <as f> g <g es> f <d f> es
+        <g es>4
+      }
     >>
   }
-  <<
-    \context Staff = rh \relative c' {
+  \new Staff = "lh" \relative c' {
     \clef bass
     \key es \major
-    es8 c d bes c as bes16 as g f | es4
-    }
-    \figures { s8 <6> s <4 2> s <6> s16 s <6> <4 2>  }
-  >>
+    es8 c d bes c as bes16 as g f
+    es4
+  }
+  \figures {
+    s8 <6> s <4 2> s <6> s16 s <6> <4 2>
+  }
 >>
 @end lilypond
 
 @seealso
-
 @ref{chord}, @ref{interval}.
 
 
@@ -3891,8 +3787,7 @@ Figures to the side or above the note that methodically indicate which
 fingers to use while playing a passage.
 
 @seealso
-
-None yet.
+No cross-references.
 
 
 @node flag
@@ -3910,19 +3805,14 @@ FI: lippu, viiri.
 Ornament at the end of the stem of a note used for notes with values less
 than a quarter note.  The number of flags determines the note value.
 
-@lilypond[fragment,notime,ragged-right]
-\set Score.automaticBars = ##f
-%\override Score.TextScript #'font-style = #'large
-\relative c'' {
-  g8_"8th" s8
-  g16_"16th" s8
-  g32_"32nd" s8
-  g64_"64th" s8
-}
+@lilypond[quote,notime,relative=2]
+g8-"8th" s8
+g16-"16th" s8
+g32-"32nd" s8
+g64-"64th" s8
 @end lilypond
 
 @seealso
-
 @ref{note value}.
 
 
@@ -3931,7 +3821,7 @@ than a quarter note.  The number of flags determines the note value.
 
 ES: ?,
 I: ?,
-F: ?,
+F: flageolet,
 D: ?,
 NL: ?,
 DK: ?,
@@ -3952,7 +3842,6 @@ Also:
 @end itemize
 
 @seealso
-
 @ref{articulation}, @ref{harmonics}.
 
 
@@ -3969,7 +3858,6 @@ S: beförtecken,
 FI: alennusmerkki.
 
 @seealso
-
 @ref{accidental}.
 
 
@@ -3977,7 +3865,6 @@ FI: alennusmerkki.
 @section forefall
 
 @seealso
-
 @ref{appoggiatura}.
 
 
@@ -3993,7 +3880,7 @@ DK: forte,
 S: forte,
 FI: forte, voimakkaasti.
 
-[Italian: @q{loud}.]
+[Italian: @q{loud}]
 
 Abbreviated @notation{@b{f}}.  Variants include:
 
@@ -4003,8 +3890,7 @@ Abbreviated @notation{@b{f}}.  Variants include:
 @end itemize
 
 @seealso
-
-None yet.
+No cross-references.
 
 
 @node fourth
@@ -4020,7 +3906,6 @@ S: kvart,
 FI: kvartti.
 
 @seealso
-
 @ref{interval}.
 
 
@@ -4046,7 +3931,6 @@ If you are producing scores for eventual publication by a commercial publisher,
 you may wish to procure a copy of their style manual.
 
 @seealso
-
 @ref{Frenched staff}.
 
 
@@ -4067,7 +3951,6 @@ Frenched staff has unneeded measures or sections removed.  This is useful
 for producing, for example, an @emph{ossia} staff.
 
 @seealso
-
 @ref{ossia}.
 
 
@@ -4090,7 +3973,6 @@ S: fuga,
 FI: fuuga.
 
 @seealso
-
 @ref{counterpoint}.
 
 
@@ -4116,20 +3998,21 @@ chords.
 
 TODO: what does the @q{p} mean in Sp, Dp, Tp?
 
-@lilypond[fragment,notime,line-width=13.0\cm]
-\set Score.automaticBars = ##f
+@lilypond[quote,notime,relative=2,line-width=13.0\cm]
 <<
-\context Voice \relative c'' {
-  <g e c >1 < a f d > < b g e >
-  <c a f > < d b g > < e c a > < f d b > }
-\context Lyrics \lyrics {
-  T Sp Dp S D Tp \markup{ D\translate #(cons -2 0) {"|"}  } }
+  {
+    <g e c>1 <a f d> <b g e>
+    <c a f> <d b g> <e c a> <f d b>
+  }
+  \lyrics {
+    T Sp Dp S D Tp
+    \markup { D \translate #'(-2 . 0) | }
+  }
 >>
 @end lilypond
 
 @seealso
-
-None yet.
+No cross-references.
 
 
 @node G
@@ -4147,7 +4030,6 @@ None yet.
 @end itemize
 
 @seealso
-
 @ref{Pitch names}
 
 
@@ -4169,35 +4051,29 @@ must be played an octave higher while 8 below the clef symbol indicates
 playing or singing an octave lower (used most frequently to notate the tenor
 part in modern choral scores).
 
-@lilypond[fragment,notime,ragged-right]
-<<
-  \set Score.automaticBars = ##f
+@lilypond[quote,notime]
+\relative c'' {
   \override Staff.Clef #'full-size-change = ##t
-
-  \relative c'' {
     \set Score.proportionalNotationDuration = #(ly:make-moment 1 8)
     \clef french
     g1
     \clef treble
-    g
+    g1
     \clef "G^8"
-    g
+    g1
     \clef "G_8"
-    g
-  }
-  \context Lyrics \lyrics {
-    \override Lyrics . LyricText #'X-offset = #-5
+    g1
+}
+\addlyrics {
     "french violin clef"
     "violin clef"
     "octave up"
     "octave down"
   }
->>
 @end lilypond
 
 @seealso
-
-None yet.
+No cross-references.
 
 
 @node glissando
@@ -4215,8 +4091,7 @@ FI: glissando, liukuen.
 Letting the pitch slide fluently from one note to the other.
 
 @seealso
-
-None yet.
+No cross-references.
 
 
 @node grace notes
@@ -4224,7 +4099,7 @@ None yet.
 
 ES: notas de adorno,
 I: abbellimenti,
-F: fioriture,
+F: ornement, fioriture,
 D: Verzierungen, Vorschläge, Vor@-schlags@-noten,
 NL: versieringen,
 DK: forsiringer,
@@ -4235,7 +4110,6 @@ Notes printed in small types to indicate that their time values are not
 counted in the rhythm of the bar.
 
 @seealso
-
 @ref{acciaccatura}, @ref{appoggiatura}, @ref{grace notes},
 @ref{ornament}.
 
@@ -4245,7 +4119,7 @@ counted in the rhythm of the bar.
 
 ES: sistema de piano,
 I: accolatura,
-F: accolade,
+F: système [de portées], accolade,
 D: Akkolade, Klaviersystem,
 NL: piano systeem,
 DK: klaversystem,
@@ -4255,7 +4129,6 @@ FI: kaksoisnuottiviivasto.
 A combination of two staves with a brace.  Usually used for piano music.
 
 @seealso
-
 @ref{brace}.
 
 
@@ -4264,7 +4137,7 @@ A combination of two staves with a brace.  Usually used for piano music.
 
 ES: grave,
 I: grave,
-F: grave,
+F: grave, lent,
 D: Grave, Langsam,
 NL: grave, ernstig,
 DK: grave,
@@ -4274,15 +4147,13 @@ FI: grave, raskaasti.
 [Italian] Slow, solemn.
 
 @seealso
-
-None yet.
+No cross-references.
 
 
 @node gruppetto
 @section gruppetto
 
 @seealso
-
 @ref{turn}.
 
 
@@ -4305,7 +4176,6 @@ usage.  In the standard usage of these countries, @notation{B} means
 @notation{B flat}.
 
 @seealso
-
 @ref{Pitch names}, @ref{B}.
 
 
@@ -4315,16 +4185,13 @@ usage.  In the standard usage of these countries, @notation{B} means
 Graphical version of the @notation{crescendo} and @notation{decrescendo}
 dynamic marks.
 
-@lilypond[fragment,ragged-right]
-\relative c'' {
-  c1\<
-  c2\> c\<
-  c1\!
-}
+@lilypond[quote,relative=2]
+c1\<
+c2\> c\<
+c1\!
 @end lilypond
 
 @seealso
-
 @ref{crescendo}, @ref{decrescendo}.
 
 
@@ -4344,7 +4211,6 @@ dynamic marks.
 @end itemize
 
 @seealso
-
 @ref{note value}.
 
 
@@ -4364,7 +4230,6 @@ dynamic marks.
 @end itemize
 
 @seealso
-
 @ref{note value}.
 
 
@@ -4382,17 +4247,16 @@ FI: harmoninen kadenssi.
 
 A sequence of chords that terminates a musical phrase or section.
 
-@lilypond[fragment,ragged-right]
-\context PianoStaff <<
-  \context Staff = SA \relative c'' {
-    \time 4/4
+@lilypond[quote]
+\new PianoStaff <<
+  \context Staff = "SA" \relative c'' {
     \clef treble
-    \context Voice
-    \partial 4 < c g e >4 |
-    < c a f > < b g d > < c g e >2
+    \time 4/4
+    \partial 4 <c g e>4 |
+    <c a f> <b g d> <c g e>2
   }
   <<
-    \context Staff = SB \relative c {
+    \context Staff = "SB" \relative c {
       \clef bass
       \partial 4 c4 | f, g c2
       \bar "|."
@@ -4402,11 +4266,10 @@ A sequence of chords that terminates a musical phrase or section.
     }
   >>
 >>
-
 @end lilypond
 
-@seealso
 
+@seealso
 @ref{functional harmony}.
 
 
@@ -4435,8 +4298,7 @@ natural harmonics, which are those played on the open string; and
 artificial harmonics, which are produced on stopped strings.
 
 @seealso
-
-None yet.
+No cross-references.
 
 
 @node harmony
@@ -4456,10 +4318,7 @@ categories @emph{consonances} and @emph{dissonances}.
 
 Consonances:
 
-@lilypond[fragment,notime,line-width=13.0\cm]
-\set Score.automaticBars = ##f
-%\override Score.TextScript #'font-style = #'large
-\context Voice \relative c'' {
+@lilypond[quote,notime,relative=2,line-width=13.0\cm]
   <g g>1_"unison  " s
   <g b>_"third  " s
   <g c>_"fourth  " s
@@ -4467,25 +4326,19 @@ Consonances:
   <g e'>_"sixth  " s
   <g g'>_"octave  " s
   <g b'>_"tenth" s s
-}
 @end lilypond
 
 Dissonances:
 
-@lilypond[fragment,notime,line-width=13.0\cm]
-\set Score.automaticBars = ##f
-%\override Score.TextScript #'font-style = #'large
-\context Voice \relative c'' {
+@lilypond[quote,notime,relative=2,line-width=13.0\cm]
   <g a>1_"second  " s s
   <g f'>_"seventh  " s s
   <g a'>_"ninth" s s
-}
 @end lilypond
 
 For harmony that uses three or more notes, see @ref{chord}.
 
 @seealso
-
 @ref{chord}.
 
 
@@ -4494,7 +4347,7 @@ For harmony that uses three or more notes, see @ref{chord}.
 
 ES: hemiolia,
 I: ?,
-F: ?,
+F: hémiole,
 D: ?,
 NL: ?,
 DK: ?,
@@ -4511,26 +4364,27 @@ as a special effect (or @emph{affect}) at cadences.
 
 For example, this phrase in 6/4 time
 
-@lilypond[fragment,line-width=13.0\cm]
+@lilypond[quote,relative=1,line-width=13.0\cm]
 \key c \major
 \time 6/4
-\relative c' {
-  c2. e | d2 c d | c1. \bar "||" }
+c2. e | d2 c d | c1. \bar "||"
 @end lilypond
 
 may be thought of having alternating time signatures
 
-@lilypond[fragment,line-width=13.0\cm]
+@lilypond[quote,relative=1,line-width=13.0\cm]
 \key c \major
 \time 6/4
-\relative c' {
-  c2. e | \time 3/2 d2 c d | \time 6/4 c1. \bar "||" }
+c2. e
+\time 3/2
+d2 c d
+\time 6/4
+c1. \bar "||"
 @end lilypond
 
 and is therefore a polymeter (second definition) of considerable antiquity.
 
 @seealso
-
 @ref{mensural notation}, @ref{meter}, @ref{polymeter}, @ref{proportion}.
 
 
@@ -4550,9 +4404,9 @@ Music in which one voice leads melodically supported by the other voices in
 the same rhythm (more or less).  In contrast to @emph{polyphony}.
 
 @seealso
-
 @ref{polyphony}.
 
+
 @node hymn meter
 @section hymn meter
 
@@ -4591,8 +4445,7 @@ easier reading, a hymn with a meter of 87.87.87.87 is usually written
 @end itemize
 
 @seealso
-
-None yet.
+No cross-references.
 
 
 @node interval
@@ -4607,74 +4460,65 @@ DK: interval,
 S: intervall,
 FI: intervalli, kahden sävelen korkeusero.
 
-Difference in pitch between two notes.  Intervals may be perfect, minor,
-major, diminished, or augmented.  The augmented fourth and the diminished
-fifth are identical (or @emph{enharmonic}) and are called @emph{tritonus}
-because they consist of three whole tones.  The addition of such two
-intervals forms an octave.
+Difference in pitch between two notes.  Intervals may be diminished, minor,
+perfect, major, or augmented.  The augmented fourth and the diminished fifth are
+identical (or @emph{enharmonic}) and are called @emph{tritonus} because they
+consist of three whole tones.  The addition of such two intervals forms an
+octave.
 
-@lilypond[fragment,notime,line-width=13.0\cm]
-\set Score.automaticBars = ##f
+@lilypond[quote,notime,line-width=13.0\cm]
 <<
 \context Voice \relative c'' {
+% Prime or unison
   < g g >1 
-  < g as >^"minor" 
-  < g a! > 
-  < g ais >^"augm" 
-  < gis bes >^"dimin" 
-  < g! bes >^"minor" 
-  < g b! >^"major" 
-  < g bis >^"augm" 
-}
-\context Lyrics \lyrics {
-  "unison " "second " "second " "second "
-  "third  " "third " "third " "third"
-}
->>
-@end lilypond
-
-@lilypond[fragment,notime,line-width=13.0\cm]
-\set Score.automaticBars = ##f
-<<
-\context Staff \relative c'' {
-  < g c >1^"perfect" 
+  < g gis >^"aug"
+% Second
+  < gis as >^"dim"
+  < g! as >^"min" 
+  < g a! >^"maj"
+  < g ais >^"aug" 
+% Third
+  < gis bes >^"dim" 
+  < g! bes >^"min" 
+  < g b! >^"maj" 
+  < g bis >^"aug" 
+% Fourth
+  < g ces >^"dim" 
+  < g c! >^"per" 
   < g cis >^"aug" 
-  < g d' >^"perfect" 
-  < g des' > ^"dim" 
-  < gis es' >^"dim" 
-  < g! es' >^"minor" 
-  < g e'! >^"major" 
-  < g eis' >^"aug" 
-}
- \lyrics {
-  "fourth  " "fourth  " "fifth  " "fifth  "
-  "sixth  " "sixth  " "sixth  " "sixth"
-}
->>
-@end lilypond
-
-@lilypond[fragment,notime,line-width=13.0\cm]
-\set Score.automaticBars = ##f
-<<
-\context Staff \relative c'' {
-  < gis f'! >1^"dimin" 
-  < g! f'! >^"minor" 
-  < g fis' >^"major" 
-  < g g' > 
-  < g as' >^"minor" 
-  < g a'! >^"major" 
-  < g bes' >^"minor" 
-  < g b'! >^"major" 
+% Fifth
+  < g des' >^"dim"
+  < g d' >^"per"
+  < g dis >^"aug"
+% Sixth
+  < gis es' >^"dim"
+  < g! es' >^"min"
+  < g e'! >^"maj"
+  < g eis' >^"aug"
+% Seventh
+  < gis f'! >^"dim" 
+  < g! f'! >^"min" 
+  < g fis' >^"maj" 
+  < g fisis' >^"aug"
+% Octave
+  < g ges' >^"dim"
+  < g g' >^"per"
+  < g gis' >^"aug"
 }
 \context Lyrics \lyrics {
-  "seventh " "seventh " "seventh " "octave "
-  "ninth " "ninth " "tenth " "tenth"
+  "unison " "unison "
+  "second " "second " "second " "second "
+  "third  " "third  " "third  " "third  "
+  "fourth " "fourth " "fourth "
+  "fifth  " "fifth  " "fifth  "
+  "sixth  " "sixth  " "sixth  " "sixth  "
+  "seventh" "seventh" "seventh" "seventh"
+  "octave " "octave " "octave "
 }
 >>
 @end lilypond
 
 @seealso
-
 @ref{enharmonic}, @ref{whole tone}.
 
 
@@ -4683,7 +4527,7 @@ intervals forms an octave.
 
 ES: ?,
 I: ?,
-F: inversion,
+F: renversement,
 D: ?,
 NL: ?,
 DK: ?,
@@ -4717,8 +4561,7 @@ unstable chord position.
 @end table
 
 @seealso
-
-None yet.
+No cross-references.
 
 
 @node inverted interval
@@ -4726,7 +4569,7 @@ None yet.
 
 ES: intervalo invertido,
 I: intervallo rivolto,
-F: intervalle reversé,
+F: intervalle renversé,
 D: umgekehrtes Intervall,
 NL: interval inversie,
 DK: omvendingsinterval,
@@ -4735,19 +4578,14 @@ FI: käänteisintervalli.
 
 The difference between an interval and an octave.
 
-@lilypond[fragment,notime,line-width=13.0\cm]
-\set Score.automaticBars = ##f
-%\override Score.TextScript #'font-style = #'large
-\context Staff \relative c'' {
-  < g a >1_"second " s s < g' a, >_"seventh " s s \bar "||"
-  < g, b >_"third  " s s < g' b, >_"sixth  " s s \bar "||"
-  < g, c >_"fourth  " s s < g' c, >_"fifth  " s s \bar "||"
-}
+@lilypond[quote,notime,relative=2,line-width=13.0\cm]
+<g a>1_"second " s s <g' a,>_"seventh " s s \bar "||"
+<g, b>_"third  " s s <g' b,>_"sixth  " s s \bar "||"
+<g, c>_"fourth  " s s <g' c,>_"fifth  " s s \bar "||"
 @end lilypond
 
 @seealso
-
-None yet.
+No cross-references.
 
 
 @node just intonation
@@ -4766,7 +4604,6 @@ Tuning system in which the notes are obtained by adding and subtracting
 natural fifths and thirds.
 
 @seealso
-
 @ref{temperament}.
 
 
@@ -4786,7 +4623,6 @@ According to the 12@w{ }tones of the @emph{chromatic scale} there are
 12@w{ }keys, one on@w{ }c, one on c-sharp, etc.
 
 @seealso
-
 @ref{chromatic scale}, @ref{key signature}.
 
 
@@ -4806,7 +4642,6 @@ The sharps or flats appearing at the beginning of each staff indicating the
 key of the music.
 
 @seealso
-
 @ref{accidental}.
 
 
@@ -4822,12 +4657,11 @@ DK: ?,
 S: ?,
 FI: antaa väristä.
 
-[French: @q{Let vibrate}.]  Most frequently associated with harp
+[French: @q{Let vibrate}]  Most frequently associated with harp
 parts. Marked @notation{l.v.} in the score.
 
 @seealso
-
-None yet.
+No cross-references.
 
 
 @node largo
@@ -4835,7 +4669,7 @@ None yet.
 
 ES: largo,
 I: largo,
-F: largo,
+F: largo, large, ample,
 D: Largo, Langsam, Breit,
 NL: largo,
 DK: largo,
@@ -4851,7 +4685,7 @@ expressiveness. @emph{Larghetto} is less slow than largo.
 
 ES: sensible,
 I: sensibile,
-F: note sensible,
+F: (note) sensible,
 D: Leitton,
 NL: leidtoon,
 DK: ledetone,
@@ -4863,7 +4697,6 @@ called because of its strong tendency to @q{lead up} (resolve upwards)
 to the tonic scale degree.
 
 @seealso
-
 @ref{scale degree}, @ref{semitone}.
 
 
@@ -4881,14 +4714,14 @@ FI: apuviiva.
 
 A ledger line is an extension of the staff.
 
-@lilypond[fragment,notime,ragged-right]
-\set Score.automaticBars = ##f
-\relative c'' { a,1 s c'' }
+@lilypond[quote,notime,relative=2]
+a,1
+s1
+c''1
 @end lilypond
 
 @seealso
-
-None yet.
+No cross-references.
 
 
 @node legato
@@ -4907,8 +4740,7 @@ To be performed (a) without any perceptible interruption between the
 notes, unlike (b) @notation{leggiero} or @notation{non-legato}, (c)
 @notation{portato}, or (d) @notation{staccato}.
 
-@lilypond[fragment,notime,line-width=13.0\cm]
-\set Score.automaticBars = ##f
+@lilypond[quote,notime,line-width=13.0\cm]
 <<
   \context Staff \relative c'' {
     c4-( d e-) \bar "||"
@@ -4926,7 +4758,6 @@ notes, unlike (b) @notation{leggiero} or @notation{non-legato}, (c)
 @end lilypond
 
 @seealso
-
 @ref{staccato}.
 
 
@@ -4934,7 +4765,6 @@ notes, unlike (b) @notation{leggiero} or @notation{non-legato}, (c)
 @section legato curve
 
 @seealso
-
 @ref{slur}, @ref{legato}.
 
 
@@ -4942,7 +4772,6 @@ notes, unlike (b) @notation{leggiero} or @notation{non-legato}, (c)
 @section leger line
 
 @seealso
-
 @ref{ledger line}.
 
 
@@ -4968,7 +4797,6 @@ system of the white mensural notation, the need for ligatures to denote such
 patterns disappeared.
 
 @seealso
-
 @ref{mensural notation}.
 
 
@@ -4990,8 +4818,7 @@ A pond with lilies floating in it.
 Also, the name of a music typesetting program.
 
 @seealso
-
-None yet.
+No cross-references.
 
 
 @node line
@@ -5007,7 +4834,6 @@ S: notlinje,
 FI: viiva, nuottiviiva.
 
 @seealso
-
 @ref{staff}.
 
 
@@ -5023,11 +4849,10 @@ DK: ?,
 S: ?,
 FI: kirjoitetussa äänenkorkeudessa.
 
-[Italian: @q{place}.]  Instruction to play the following passage at the
+[Italian: @q{place}]  Instruction to play the following passage at the
 written pitch.  Cancels octave mark (q.v.).
 
 @seealso
-
 @ref{octave mark}, @ref{octave marking}.
 
 
@@ -5044,7 +4869,6 @@ S: långt förslag,
 FI: pitkä appoggiatura, pitkä etuhele.
 
 @seealso
-
 @ref{appoggiatura}.
 
 
@@ -5055,7 +4879,7 @@ FI: pitkä appoggiatura, pitkä etuhele.
 @item US: long, longa, 
 @item ES: longa,
 @item I: longa,
-@item F: longa,
+@item F: longa, longue,
 @item D: Longa,
 @item NL: longa,
 @item DK: longa,
@@ -5063,18 +4887,14 @@ FI: pitkä appoggiatura, pitkä etuhele.
 @item FI: longa.
 @end itemize
 
-Note value: double length of @notation{breve}.
+Note value: twice the length of a @notation{breve}.
 
-@lilypond[fragment,notime,ragged-right]
-\set Score.automaticBars = ##f
-\relative c'' {
-  \override NoteHead #'style = #'mensural
-  g\longa g\breve
-}
+@lilypond[quote,notime,relative=2]
+\override NoteHead #'style = #'mensural
+g\longa g\breve
 @end lilypond
 
 @seealso
-
 @ref{breve}, @ref{note value}.
 
 
@@ -5083,7 +4903,7 @@ Note value: double length of @notation{breve}.
 
 ES: ligadura de letra,
 I: ?,
-F: ?,
+F: ligature de mots,
 D: Textbindung,
 NL: ?,
 DK: ?,
@@ -5093,7 +4913,6 @@ FI: sidonta sanoituksessa.
 @c TODO: add languages
 
 @seealso
-
 @ref{elision}.
 
 
@@ -5112,8 +4931,7 @@ FI: sanoitus.
 @c Definition?
 
 @seealso
-
-None yet.
+No cross-references.
 
 
 @node major
@@ -5129,7 +4947,6 @@ S: dur,
 FI: duuri.
 
 @seealso
-
 @ref{diatonic scale}.
 
 
@@ -5146,10 +4963,33 @@ S: stort intervall,
 FI: suuri intervalli.
 
 @seealso
-
 @ref{interval}.
 
 
+@node maxima
+@section maxima
+
+ES: ?,
+I: ?,
+F: maxima, maxime,
+D: ?,
+NL: ?,
+DK: ?,
+S: ?,
+FI: ?.
+
+Note value: twice the length of a @notation{longa}.
+
+The maxima is the largest duration in use during the 15th and 16th centuries.
+Like the longa, the maxima can be either two or three times as long as the
+@notation{longa} (called @notation{binary} and @notation{ternary},
+respectively).  By the late 15th century, most composers used the smaller
+proportion by default.
+
+@seealso
+@ref{Duration names notes and rests}, @ref{longa}, @ref{note value}.
+
+
 @node meantone temperament
 @section meantone temperament
 
@@ -5168,7 +5008,6 @@ temperament only a limited set of keys are playable.  Used for tuning
 keyboard instruments for performance of pre-1650 music.
 
 @seealso
-
 @ref{cent}, @ref{temperament}.
 
 
@@ -5189,7 +5028,6 @@ Such groups in numbers of two or more recur consistently throughout the
 composition and are separated from each other by bar lines.
 
 @seealso
-
 @ref{bar line}, @ref{beat}, @ref{meter}.
 
 
@@ -5197,7 +5035,6 @@ composition and are separated from each other by bar lines.
 @section measure repeat
 
 @seealso
-
 @ref{percent repeat}.
 
 
@@ -5224,7 +5061,6 @@ mediant (variant tonic).
 @end itemize
 
 @seealso
-
 @ref{chord}, @ref{functional harmony}, @ref{relative key}.
 
 
@@ -5233,7 +5069,7 @@ mediant (variant tonic).
 
 ES: melisma,
 I: ?,
-F: mélisme,
+F: mélisme, tenue,
 D: Melisma,
 NL: melisma,
 DK: ?,
@@ -5244,8 +5080,7 @@ A melisma (Greek: plural @emph{melismata}) is a group of notes or tones sung
 on one syllable, especially as applied to liturgical chant.
 
 @seealso
-
-None yet.
+No cross-references.
 
 
 @node melisma line
@@ -5255,7 +5090,7 @@ None yet.
 
 ES: línea de melisma,
 I: ?,
-F: ?,
+F: trait de mélisme, trait de tenue,
 D: ?,
 NL: ?,
 DK: ?,
@@ -5263,7 +5098,6 @@ S: ?,
 FI: melismaviiva.
 
 @seealso
-
 @ref{extender line}.
 
 
@@ -5271,7 +5105,6 @@ FI: melismaviiva.
 @section melodic cadence
 
 @seealso
-
 @ref{cadenza}.
 
 
@@ -5282,7 +5115,7 @@ FI: melismaviiva.
 
 ES: notación mensural,
 I: ?,
-F: ?,
+F: notation mensurale,
 D: ?,
 NL: ?,
 DK: ?,
@@ -5318,11 +5151,125 @@ colored) notes in the earlier notation.  ...
 TODO: add to definition (including summary info on proportional notation)
 
 @seealso
-
 @ref{augmentation}, @ref{diminution}, @ref{ligature}, @ref{proportion}.
 @c TODO: more cross-references?
 
 
+@node mensuration sign
+@section mensuration sign
+
+@c TODO: add languages
+
+ES: ?,
+I: ?,
+F: signe de mensuration,
+D: ?,
+NL: ?,
+DK: ?,
+S: ?,
+FI: ?.
+
+The ancestor of the time signature, mensuration signs were used to indicate the
+relationship between two sets of note durations—specifically, the ratio of
+breves to semibreves (called @notation{tempus}), and of semibreves to minims
+(called @notation{prolatio}).
+
+Each ratio was represented with a single single sign, and was either
+three-to-one (ternary) or two-to-one (binary), as in modern music notation.
+Unlike modern music notation, the @emph{ternary} ratio was the preferred
+one—applied to the @emph{tempus}, it was called @emph{perfect}, and was
+represented by a complete circle; applied to the @emph{prolatio}, it was called
+@emph{major} and was represented by a dot in the middle of the sign.  The binary
+ratio applied to the @emph{tempus} was called @emph{imperfect}, and was
+represented by an incomplete circle; applied to @emph{prolatio}, it was called
+@emph{minor} and was represented by the lack of an internal dot.  There are four
+possible combinations, which can be represented in modern time signatures with
+and without reduction of note values.  (These signs are hard-coded in LilyPond
+with reduction.)
+
+@table @dfn
+@item perfect @emph{tempus} with major @emph{prolatio}
+Indicated by a complete circle with an internal dot.  In modern time signatures,
+this equals:
+@itemize
+@item 9/4, with reduction or
+@item 9/2, without reduction
+@end itemize
+
+@item perfect @emph{tempus} and minor @emph{prolatio}
+Indicated by a complete circle without an internal dot.  In modern time
+signatures, this equals:
+@itemize
+@item 3/2, with reduction or
+@item 3/1, without reduction
+@end itemize
+
+@item imperfect @emph{tempus} and major @emph{prolatio}
+Indicated by an incomplete circle with an internal dot.  In modern time
+signatures, this equals:
+@itemize
+@item 6/4, with reduction or
+@item 6/2, without reduction
+@end itemize
+
+@item imperfect @emph{tempus} and minor @emph{prolatio}
+Indicated by an incomplete circle without an internal dot.  In modern time
+signatures, this equals:
+@itemize
+@item 4/4, with reduction or
+@item 2/1, without reduction
+@end itemize
+@end table
+
+The last mensuration sign @emph{looks} like common-time because it @emph{is},
+with note values reduced from the original semibreve to a modern quarter note.
+Being doubly imperfect, this sign represented the (theoretically)
+least-preferred mensuration, but it was actually used fairly often.
+
+This system extended to the ratio of longer note values to each other:
+
+@itemize
+
+  @item maxima to longa, called:
+
+    @itemize
+
+      @item @notation{modus maximorum},
+      @item @notation{modus major}, or
+      @item @notation{maximodus})
+
+    @end itemize
+
+  @item longa to breve, called:
+
+    @itemize
+
+      @item @notation{modus longarum},
+      @item @notation{modus minor}, or
+      @item @notation{modus}
+
+    @end itemize
+
+@end itemize
+
+In the absence of any other indication, these modes were assumed to be
+binary.  The mensuration signs only indicated tempus and prolatio, so
+composers needed another way to indicate these longer ratios (called modes.
+Around the middle of the 15th century started to use groups of rests at the
+beginning of the staff, preceding the mensuration sign.
+
+
+Two mensuration signs have survived to the present day: the C-shaped sign,
+which originally designated @notation{tempus imperfectum} and
+@notation{prolatio minor} now stands for @notation{common time}; and the
+slashed C, which designated the same with @notation{diminution} now stands
+for @notation{cut-time} (essentially, it has not lost its original meaning).
+
+@seealso
+@ref{diminution}, @ref{proportion}, @ref{time signature}.
+@c TODO: more cross-references?
+
+
 @node meter
 @section meter
 
@@ -5398,7 +5345,7 @@ beat on each quarter note is conventionally written with a time signature of
 
 Simple duple meter (F.J. Haydn, 1732-1809; or a Croatian folk tune):
 
-@lilypond[fragment,line-width=13.0\cm]
+@lilypond[quote,line-width=13.0\cm]
 \relative c'' {
   \time 2/4
   \key g \major
@@ -5407,7 +5354,7 @@ Simple duple meter (F.J. Haydn, 1732-1809; or a Croatian folk tune):
 
 Simple triple meter:
 
-@lilypond[fragment,line-width=13.0\cm]
+@lilypond[quote,line-width=13.0\cm]
 \relative c'' {
   \time 3/4
   \key c \minor
@@ -5416,7 +5363,7 @@ Simple triple meter:
 
 Simple quadruple meter (French folk tune, @emph{Au clair de la lune}):
 
-@lilypond[fragment,line-width=13.0\cm]
+@lilypond[quote,line-width=13.0\cm]
 \relative c'' {
   \time 4/4
   \key g \major
@@ -5425,7 +5372,7 @@ Simple quadruple meter (French folk tune, @emph{Au clair de la lune}):
 
 Simple quintuple meter (B. Marcello, 1686-1739):
 
-@lilypond[fragment,line-width=13.0\cm]
+@lilypond[quote,line-width=13.0\cm]
 \relative c'' {
   \time 5/4
   \key c \major
@@ -5437,10 +5384,9 @@ Simple quintuple meter (B. Marcello, 1686-1739):
 the source, with sharps in the accompaniment where the voice has flats and
 @emph{vice versa}.)
 
-
 Compound duple meter (unknown):
 
-@lilypond[fragment,line-width=13.0\cm]
+@lilypond[quote,line-width=13.0\cm]
 \relative c' {
   \time 6/8
   \key f \major
@@ -5451,7 +5397,7 @@ Compound duple meter (unknown):
 
 Compound triple meter (J.S. Bach, 1685-1750):
 
-@lilypond[fragment,line-width=13.0\cm]
+@lilypond[quote,line-width=13.0\cm]
 \relative c' {
   \time 9/8
   \key g \major
@@ -5462,7 +5408,7 @@ Compound triple meter (J.S. Bach, 1685-1750):
 
 Compound quadruple meter (P. Yon, 1886-1943):
 
-@lilypond[fragment,line-width=13.0\cm]
+@lilypond[quote,line-width=13.0\cm]
 \relative c' {
   \time 12/8
   \key e \major
@@ -5476,7 +5422,6 @@ Compound quadruple meter (P. Yon, 1886-1943):
 TODO: add information from discussion on lilypond-user related to polymeter.
 
 @seealso
-
 @ref{accent}, @ref{hemiola}, @ref{note value}, @ref{time signature}
 
 
@@ -5501,7 +5446,6 @@ followed acknowledged Winkler as the creator, but by then Mälzel had already
 sold many of them, and people had taken to calling it a Mälzel Metronome.
 
 @seealso
-
 @ref{metronome mark}.
 
 
@@ -5522,7 +5466,6 @@ Exact tempo indication (in beats per minute).  Abbreviated @notation{M.M.} or
 @emph{anglice}).
 
 @seealso
-
 @ref{metronome}
 
 
@@ -5530,7 +5473,6 @@ Exact tempo indication (in beats per minute).  Abbreviated @notation{M.M.} or
 @section metronomic indication
 
 @seealso
-
 @ref{metronome mark}
 
 
@@ -5539,14 +5481,14 @@ Exact tempo indication (in beats per minute).  Abbreviated @notation{M.M.} or
 
 ES: ?,
 I: mezzo,
-F: ?,
+F: mezzo,
 D: ?,
 NL: ?,
 DK: ?,
 S: ?,
 FI: kohtalaisen, melko.
 
-[Italian: @q{medium}.]
+[Italian: @q{medium}]
 
 Used to qualify other indications, such as:
 
@@ -5569,8 +5511,7 @@ Used to qualify other indications, such as:
 @end itemize
 
 @seealso
-
-None yet.
+No cross-references.
 
 
 @node mezzo-soprano
@@ -5588,7 +5529,6 @@ FI: mezzosopraano.
 The female voice between soprano and contralto.
 
 @seealso
-
 @ref{soprano}, @ref{contralto}.
 
 
@@ -5597,7 +5537,7 @@ The female voice between soprano and contralto.
 
 ES: do central,
 I: do centrale,
-F: do central,
+F: do central, do 3
 D: eingestrichenes@w{ }c,
 NL: centrale@w{ }c,
 DK: enstreget@w{ }c,
@@ -5606,19 +5546,15 @@ FI: keski-C.
 
 First C below the 440 Hz A.
 
-@lilypond[fragment,notime,ragged-right]
-\set Score.automaticBars = ##f
+@lilypond[quote,notime,relative=1]
 \override Staff.Clef #'full-size-change = ##t
-\relative c' {
   \clef bass c1 s
   \clef alto c s
   \clef treble c s
-}
 @end lilypond
 
 @seealso
-
-None yet.
+No cross-references.
 
 
 @node minor
@@ -5626,7 +5562,7 @@ None yet.
 
 ES: menor,
 I: minore,
-F: mode mineur,
+F: (mode) mineur,
 D: Moll,
 NL: mineur,
 DK: mol,
@@ -5634,7 +5570,6 @@ S: moll,
 FI: molli.
 
 @seealso
-
 @ref{diatonic scale}.
 
 
@@ -5651,7 +5586,6 @@ S: litet intervall,
 FI: pieni intervalli.
 
 @seealso
-
 @ref{interval}.
 
 
@@ -5659,7 +5593,6 @@ FI: pieni intervalli.
 @section mixolydian mode
 
 @seealso
-
 @ref{diatonic scale}.
 
 
@@ -5676,7 +5609,6 @@ S: modus, skala,
 FI: moodi, kirkkosävelasteikko.
 
 @seealso
-
 @ref{church mode}, @ref{diatonic scale}.
 
 
@@ -5697,8 +5629,7 @@ of a @ref{sonata form} movement modulates to the dominant key if the
 key is major and to the @ref{relative key} if the key is minor.
 
 @seealso
-
-None yet.
+No cross-references.
 
 
 @node mordent
@@ -5713,7 +5644,6 @@ S: mordent,
 FI: mordent, korukuvio.
 
 @seealso
-
 @ref{ornament}.
 
 
@@ -5721,7 +5651,6 @@ FI: mordent, korukuvio.
 @section motif
 
 @seealso
-
 @ref{motive}.
 
 
@@ -5730,7 +5659,7 @@ FI: mordent, korukuvio.
 
 ES: motivo,
 I: inciso,
-F: incise,
+F: motif, incise,
 D: Motiv,
 NL: motief,
 DK: motiv,
@@ -5740,7 +5669,7 @@ FI: teema, sävelaihe.
 The briefest intelligible and self-contained fragment of a musical
 theme or subject.
 
-@lilypond[line-width=13.0\cm]
+@lilypond[quote,line-width=13.0\cm]
 \score{
 \relative c'' {
   \set Score.implicitTimeSignatureVisibility = #all-invisible
@@ -5759,8 +5688,7 @@ theme or subject.
 @end lilypond
 
 @seealso
-
-None yet.
+No cross-references.
 
 
 @node movement
@@ -5775,13 +5703,11 @@ DK: sats,
 S: sats,
 FI: osa.
 
-Greater musical works like @ref{symphony} and @ref{sonata} most often
-consist of several -- more or less -- independant pieces called
-movements.
+Greater musical works like @ref{symphony} and @ref{sonata} most often consist of
+several -- more or less -- independent pieces called movements.
 
 @seealso
-
-None yet.
+No cross-references.
 
 
 @node multi-measure rest
@@ -5789,7 +5715,7 @@ None yet.
 
 ES: compases de espera,
 I: pausa multipla,
-F: pause multiple,
+F: pause multiple, mesure à compter,
 NL: meermaats rust,
 D: mehrtaktige Pause, Kirchenpause,
 DK: flertaktspause,
@@ -5802,18 +5728,17 @@ longer spans of rest, with a number above to indicate the duration (in
 measures) of the rest. The former style is called @q{Kirchenpausen} in
 German, as a reminiscence of its use in Renaissance vocal polyphony.
 
-@lilypond[fragment,ragged-right]
-\relative c'' {
-  a1
-  \set Score.skipBars = ##t R1*3
-  a1
-  \set Score.skipBars = ##t R1*122
-  a1
-}
+@lilypond[quote,relative=2]
+a1
+\set Score.skipBars = ##t
+R1*3
+a1
+\set Score.skipBars = ##t
+R1*122
+a1
 @end lilypond
 
 @seealso
-
 @ref{longa}, @ref{breve}.
 
 
@@ -5830,15 +5755,24 @@ S: återställningstecken,
 FI: palautusmerkki.
 
 @seealso
-
 @ref{accidental}.
 
 
 @node neighbor tones
 @section neighbor tones
 
-@seealso
+@c TODO: add definition.
+ES: ?,
+I: ?,
+F: tons voisins,
+D: ?,
+NL: ?,
+DK: ?,
+S: ?,
+FI: ?.
 
+@seealso
 @ref{acciaccatura}, @ref{appoggiatura}, @ref{grace notes},
 @ref{ornament}.
 
@@ -5856,7 +5790,6 @@ S: nona,
 FI: nooni.
 
 @seealso
-
 @ref{interval}.
 
 
@@ -5864,7 +5797,6 @@ FI: nooni.
 @section non-legato
 
 @seealso
-
 @ref{legato}.
 
 
@@ -5887,8 +5819,7 @@ and @ref{note} is strongly recommended.  Briefly, one sees a note,
 and hears a tone.
 
 @seealso
-
-None yet.
+No cross-references.
 
 
 @node note head
@@ -5896,7 +5827,7 @@ None yet.
 
 ES: cabeza,
 I: testa, testina, capocchia,
-F: tête de la note,
+F: tête de note,
 D: Notenkopf,
 NL: nootballetje,
 DK: nodehovede,
@@ -5910,7 +5841,6 @@ For percussion instruments (often having no defined pitch) the note head may
 indicate the instrument.
 
 @seealso
-
 @ref{clef}, @ref{flag}, @ref{staff}, @ref{stem}.
 
 
@@ -5918,7 +5848,6 @@ indicate the instrument.
 @section note names
 
 @seealso
-
 @ref{Pitch names}
 
 
@@ -5934,17 +5863,21 @@ DK nodeværdi,
 S: notvärde,
 FI: nuotin aika-arvo.
 
-Note values (durations) are measured as fractions -- normally half -- of the
-next higher note value.  The longest duration in current use is the
-@emph{breve}, but sometimes (especially music from the Baroque or earlier) the
-double-length note value @emph{longa} or the quadruple-length note value
-@emph{maxima} are used.
+Note values (durations) are measured as fractions—in modern usage, one-half—of
+the next higher note value.  The longest duration in current use is the
+@notation{breve} (equal to two whole notes), but sometimes (especially in music
+dating from the Baroque era or earlier) the @notation{longa} (four whole notes)
+or @notation{maxima} (eight whole notes) may be found.
+
+As used in mensural notation, this fraction was more flexible: it could also
+be one-third the higher note value.  Composers indicated which proportions
+to use with various signs—two of which survive to the present day: the
+C-shaped sign for @notation{common time}, and the slashed C for
+@notation{alla breve} or @notation{cut-time}.
 
 @c TODO -- add maxima to this example, in a way that doesn't break it.
 
-@lilypond[fragment,notime,line-width=13.0\cm]
-%\override Score.TextScript #'font-style = #'large
-\set Score.automaticBars = ##f
+@lilypond[quote,notime,line-width=13.0\cm]
 \relative c'' {
   \override NoteHead #'style = #'mensural
   a\longa_"longa" a\breve_"breve"
@@ -5955,20 +5888,19 @@ double-length note value @emph{longa} or the quadruple-length note value
 
 @c TODO -- add maxima rest to this example
 
-@lilypond[fragment,notime,line-width=13.0\cm]
-%\override Score.TextScript #'font-style = #'large
-\set Score.automaticBars = ##f
+@lilypond[quote,notime,line-width=13.0\cm]
 \relative c'' {
   r\longa_"longa" r\breve_"breve"
   r1_"1/1" r2_"1/2" r4_"1/4" s16 r8_"1/8" s16
   r16_"1/16" s16 r32_"1/32" s16 r64_"1/64" s32 }
 @end lilypond
 
-An augmentation dot after a note multiplies the duration by one and a
-half.  Another dot adds yet a fourth of the duration.
+An augmentation dot after a note increases its duration by half; a second dot
+increases it by half of the first addition (that is, by a fourth of the original
+duration).  More dots can be used to add further halved fractions of the
+original note value (1/8, 1/16, etc.), but they are not frequently encountered.
 
-@lilypond[fragment,line-width=13.0\cm]
-%\override Score.TextScript #'font-style = #'large
+@lilypond[quote,line-width=13.0\cm]
 \relative c'' {
   \time 4/4
   g4._"pointed" g8 g2 | g4 ~ g8 g g2 \bar "||"
@@ -5980,8 +5912,7 @@ subdivision by@w{ }3 (@emph{triplets}) and@w{ }5 (@emph{quintuplets}).
 Subdivisions by@w{ }2 (@emph{duplets}) or@w{ }4 (@emph{quadruplets}) of
 dotted notes are also frequently used.
 
-@lilypond[fragment,line-width=13.0\cm]
-%\override Score.TextScript #'font-style = #'large
+@lilypond[quote,line-width=13.0\cm]
 \relative c'' {
   \time 4/4
   \times 2/3 {g8_"triplets" g g} g4 g8 g g4 \bar "||"
@@ -5989,7 +5920,7 @@ dotted notes are also frequently used.
 }
 @end lilypond
 
-@lilypond[fragment,line-width=13.0\cm]
+@lilypond[quote,line-width=13.0\cm]
 \relative c'' {
   \time 3/4
   \times 3/2 {g4_"duplets" g} |
@@ -6000,15 +5931,13 @@ dotted notes are also frequently used.
 @end lilypond
 
 @seealso
-
-None yet.
+@ref{common time}.
 
 
 @node octavation
 @section octavation
 
 @seealso
-
 @ref{octave marking}.
 
 
@@ -6030,7 +5959,6 @@ For uses like @notation{all'ottava} or @notation{8va} with an extender line or
 bracket, or @notation{loco} see octave marking.
 
 @seealso
-
 @ref{interval}, @ref{octave marking}.
 
 
@@ -6039,7 +5967,7 @@ bracket, or @notation{loco} see octave marking.
 
 ES: indicación de octava,
 I: ?,
-F: ?,
+F: indication d'octave,
 D: ?,
 NL: ?,
 DK: ?,
@@ -6081,13 +6009,12 @@ To parallel the list above:
 In the phrases above, @notation{quindicesima} is sometimes replaced with
 @notation{quindecima}, which is Latin.
 
-Finally, the music on an entire staff can be marked to be played in a
-different octave by putting a small 8 or 15 above or below the clef at the
-beginning.  This octave mark can be applied to any clef, but it is most
-frequently used with the G and F clefs.
+The music on an entire staff can be marked to be played in a different octave by
+putting a small 8 or 15 above or below the clef at the beginning.  This octave
+mark can be applied to any clef, but it is most frequently used with the G and F
+clefs.
 
 @seealso
-
 @ref{F clef}, @ref{G clef}, @ref{loco}, @ref{octave marking}.
 
 
@@ -6111,7 +6038,6 @@ octave.
 For a list of the specific marks used, see @ref{octave mark}.
 
 @seealso
-
 @ref{interval}, @ref{loco}, @ref{octave}, @ref{octave mark}.
 
 
@@ -6119,7 +6045,6 @@ For a list of the specific marks used, see @ref{octave mark}.
 @section octave sign
 
 @seealso
-
 @ref{octave mark}.
 
 
@@ -6141,10 +6066,9 @@ middle of the 19th century and onwards the trill is performed with the main
 note first while in the music from the preceding baroque and classic periods
 the upper note is played first.
 
-@lilypond[fragment,line-width=13.0\cm]
+@lilypond[quote,line-width=13.0\cm]
 <<
   \context Staff = sa {
-% \override Score.TextScript #'font-style = #'large
     \relative c'' {
       c2._"pre-1850" b4\trill | c1 \bar "||"
       c2._"post-1850" b4\trill | c1 \bar "||"
@@ -6161,10 +6085,9 @@ Other frequently used ornaments are the @emph{turn}, the @emph{mordent}, and
 the
 @emph{prall} (inverted mordent).
 
-@lilypond[fragment,line-width=13.0\cm]
+@lilypond[quote,line-width=13.0\cm]
 <<
   \context Staff = sa {
-% \override Score.TextScript #'font-style = #'large
     \relative c'' {
       a4_"turn" b\turn c2 \bar "||"
       g4_"mordent" a b\mordent a \bar "||"
@@ -6180,7 +6103,6 @@ the
 @end lilypond
 
 @seealso
-
 @ref{acciaccatura}, @ref{appoggiatura}, @ref{grace notes}.
 
 
@@ -6189,7 +6111,7 @@ the
 
 ES: ossia,
 I: ossia,
-F: ossia,
+F: ossia, alternative,
 D: Ossia,
 NL: alternatief,
 DK: ossia,
@@ -6201,8 +6123,7 @@ score, usually only a few measures long, which presents another version
 of the music, for example for small hands.
 
 @seealso
-
-None yet.
+No cross-references.
 
 
 @node part
@@ -6228,7 +6149,6 @@ web.
 @end itemize
 
 @seealso
-
 @ref{counterpoint}
 
 
@@ -6236,7 +6156,6 @@ web.
 @section pause
 
 @seealso
-
 @ref{fermata}.
 
 
@@ -6244,7 +6163,6 @@ web.
 @section pennant
 
 @seealso
-
 @ref{flag}.
 
 
@@ -6265,17 +6183,14 @@ pattern to one or more measures.  There are other names for this symbol:
 
 @end itemize
 
-@lilypond[fragment,line-width=13.0\cm]
+@lilypond[quote,relative=2,line-width=13.0\cm]
 \time 4/4
-\relative c' {
   \repeat percent 4 { c4_"Beat (or slash) repeat" }
   \repeat percent 2 { c4 e g b_"Measure repeat" }
   \repeat percent 2 { c,2 es | f4 fis g c_"Multi-measure repeat" | }
-}
 @end lilypond
 
 @seealso
-
 @ref{repeat},
 @uref{http://www.music.vt.edu/musicdictionary/textr/Repeat.html,University of
 Vermont Music Dictionary}.
@@ -6300,8 +6215,7 @@ tambourine, cymbals, chinese gong (tam-tam), triangle, celesta, glockenspiel,
 and xylophone.
 
 @seealso
-
-None yet.
+No cross-references.
 
 
 @node perfect interval
@@ -6317,7 +6231,6 @@ S: rent intervall,
 FI: puhdas intervalli.
 
 @seealso
-
 @ref{interval}.
 
 
@@ -6336,7 +6249,6 @@ FI: fraasi, lause.
 A natural division of the melodic line, comparable to a sentence of speech.
 
 @seealso
-
 @ref{caesura}.
 
 
@@ -6356,7 +6268,6 @@ The clear rendering in musical performance of the @notation{phrases} of the
 melody.  Phrasing may be indicated by a @notation{slur}.
 
 @seealso
-
 @ref{phrase}, @ref{slur}.
 
 
@@ -6376,8 +6287,7 @@ FI, piano, hiljaa.
 @emph{mezzo piano} (@b{mp}) medium soft.
 
 @seealso
-
-None yet.
+No cross-references.
 
 
 @node pickup
@@ -6393,7 +6303,6 @@ S: upptakt,
 FI: kohotahti.
 
 @seealso
-
 @ref{anacrusis}.
 
 
@@ -6423,7 +6332,6 @@ association of a particular frequency with a particular pitch name, e.g., c' =
 @end enumerate
 
 @seealso
-
 @ref{Pitch names}.
 
 
@@ -6443,8 +6351,7 @@ A technique for stringed instruments, abbr. @emph{pizz}.  To play by plucking
 the strings.
 
 @seealso
-
-None yet.
+No cross-references.
 
 
 @node polymeter
@@ -6452,7 +6359,7 @@ None yet.
 
 ES: compás polimétrico,
 I: ?,
-F: ?,
+F: polymétrie,
 D: ?,
 NL: ?,
 DK: ?,
@@ -6469,7 +6376,6 @@ parts.
 @end itemize 
 
 @seealso
-
 @ref{polymetric} (adj.)
 
 
@@ -6478,7 +6384,7 @@ parts.
 
 ES: polimétrico,
 I: ?,
-F: ?,
+F: polymétrique,
 D: ?,
 NL: ?,
 DK: ?,
@@ -6489,7 +6395,6 @@ Characterized by @emph{polymeter}: using two or more metric frameworks
 simultaneously or in alternation.
 
 @seealso
-
 @ref{polymeter} (noun)
 
 
@@ -6508,7 +6413,6 @@ FI: vaihtelevan tahtiosoitusmerkintä.
 A time signature that indicates regularly alternating polymetric time.
 
 @seealso
-
 @ref{polymetric}.
 
 
@@ -6528,7 +6432,6 @@ Music written in a combination of several simultaneous voices (parts)
 of a more or less pronounced individuality.
 
 @seealso
-
 @ref{counterpoint}.
 
 
@@ -6542,7 +6445,6 @@ without changing the bow's direction. It is used for passages of a
 @notation{cantabile} character.
 
 @seealso
-
 @ref{legato}.
 
 
@@ -6551,7 +6453,7 @@ without changing the bow's direction. It is used for passages of a
 
 ES: presto,
 I: presto,
-F: presto,
+F: presto, très rapide, enlevé,
 D: Presto, Sehr schnell,
 NL: presto, Sehr schnell,
 DK: presto,
@@ -6564,8 +6466,7 @@ Very quick, i.e., quicker than @ref{allegro}; @emph{prestissimo}
 denotes the highest possible degree of speed.
 
 @seealso
-
-None yet.
+No cross-references.
 
 
 @node proportion
@@ -6580,7 +6481,7 @@ DK: ?,
 S: ?,
 FI: suhde.
 
-[Latin: @emph{proportio}.] Described in great detail by Gaffurius, in
+[Latin: @emph{proportio}] Described in great detail by Gaffurius, in
 @emph{Practica musicae} (published in Milan in 1496).  In mensural notation,
 proportion is:
 
@@ -6599,8 +6500,8 @@ The most common proportions are:
 
 @itemize
 @item 2:1 (or simply 2), expressed by a vertical line through the
-mensuration sign (the origin of the @q{cut-time} time signature), or by
-turning the sign backwards
+mensuration sign (the origin of the @notation{alla breve} time signature),
+or by turning the sign backwards
 @item 3:1 (or simply 3)
 @item 3:2 (@emph{sesquialtera})
 @end itemize
@@ -6668,7 +6569,6 @@ another question:
 @c TODO: add an example or two.  O => 4/3, and its modern equivalent
 
 @seealso
-
 @ref{mensural notation}.
 
 
@@ -6694,7 +6594,6 @@ than the C obtained by adding 7 octaves.  The difference between those two
 pitches is the Pythagorean comma.
 
 @seealso
-
 @ref{cent}, @ref{temperament}.
 
 
@@ -6711,7 +6610,6 @@ S: kvartol,
 FI: kvartoli.
 
 @seealso
-
 @ref{note value}.
 
 
@@ -6761,7 +6659,6 @@ and D^m7 are all identical). The last three chords are not commonly used
 except in jazz.
 
 @seealso
-
 @ref{chord}.
 
 
@@ -6781,7 +6678,6 @@ except in jazz.
 @end itemize
 
 @seealso
-
 @ref{note value}.
 
 
@@ -6801,7 +6697,6 @@ except in jazz.
 @end itemize
 
 @seealso
-
 @ref{note value}.
 
 
@@ -6820,7 +6715,6 @@ FI: neljännessävelaskel.
 An interval equal to half a semitone.
 
 @seealso
-
 @ref{interval}
 
 
@@ -6837,7 +6731,6 @@ S: kvintol,
 FI: kvintoli.
 
 @seealso
-
 @ref{note value}.
 
 
@@ -6846,7 +6739,7 @@ FI: kvintoli.
 
 ES: rallentando,
 I: rallentando,
-F: rallentando,
+F: rallentando, en ralentissant,
 D: rallentando, langsamer werden,
 NL: rallentando,
 DK: rallentando,
@@ -6856,7 +6749,6 @@ FI: rallerdando, hidastuen.
 [Italian] A performance indication, abbreviated "rall.".
 
 @seealso
-
 @ref{ritardando}.
 
 
@@ -6874,27 +6766,19 @@ FI: rinnakkaissävellaji.
 
 Major and minor keys that have the same key signature.
 
-@lilypond[fragment,notime,line-width=13.0\cm]
-\set Score.automaticBars = ##f
-%\override Score.TextScript #'font-style = #'large
-\relative c' {
-  \key es \major
-  es1_"e flat major" f g as bes c d es
-  \bar "||"
-}
+@lilypond[quote,notime,relative=1,line-width=13.0\cm]
+\key es \major
+es1_"e flat major" f g as bes c d es
+\bar "||"
 @end lilypond
 
-@lilypond[fragment,notime,line-width=13.0\cm]
-\set Score.automaticBars = ##f
-%\override Score.TextScript #'font-style = #'large
-\relative c' {
-  \key c \minor
-  c1_"c minor" d es f g a! b! c \bar "||"
-}
+@lilypond[quote,notime,relative=1,line-width=13.0\cm]
+\key c \minor
+c1_"c minor" d es f g a! b! c
+\bar "||"
 @end lilypond
 
 @seealso
-
 @ref{key}, @ref{key signature}, @ref{major}, @ref{minor}.
 
 
@@ -6910,17 +6794,19 @@ DK: gen@-ta@-gel@-se,
 S: repris,
 FI: toisto.
 
-@lilypond[fragment,line-width=13.0\cm]
+@lilypond[quote,relative=2,line-width=13.0\cm]
 \key g \major
 \time 4/4
-\relative c'' {
-  \repeat volta 2 {g4 g d' d | e e d2 | c4 c b b | a a g2 }
+\repeat volta 2 {
+  g4 g d' d
+  e4 e d2
+  c4 c b b
+  a a g2
 }
 @end lilypond
 
 @seealso
-
-None yet.
+No cross-references.
 
 
 @node rest
@@ -6939,7 +6825,6 @@ FI: tauko.
 @c     specify the rest's value.
 
 @seealso
-
 @ref{note value}.
 
 
@@ -6972,8 +6857,7 @@ metrical unit (beat).
 @end itemize
 
 @seealso
-
-None yet.
+No cross-references.
 
 
 @node ritardando
@@ -6981,7 +6865,7 @@ None yet.
 
 ES: ritardando,
 I: ritardando,
-F: ritardando,
+F: ritardando, en ralentissant,
 D: ritardando, langsamer werden,
 NL: ritardando,
 DK: ritardando,
@@ -6991,8 +6875,7 @@ FI: ritardando, hidastuen,
 Gradually slackening in speed.  Mostly abbreviated to rit.@: or ritard.
 
 @seealso
-
-None yet.
+No cross-references.
 
 
 @node ritenuto
@@ -7000,7 +6883,7 @@ None yet.
 
 ES: ritenuto,
 I: ritenuto,
-F: ritenuto,
+F: ritenuto, en retenant,
 D: ritenuto,
 NL: ritenuto,
 DK: ritenuto,
@@ -7010,8 +6893,7 @@ FI: ritenuto, hidastaen.
 Immediate reduction of speed.
 
 @seealso
-
-None yet.
+No cross-references.
 
 
 @node scale
@@ -7027,7 +6909,6 @@ S: skala,
 FI: asteikko, sävelasteikko.
 
 @seealso
-
 @ref{diatonic scale}.
 
 
@@ -7047,10 +6928,9 @@ Names and symbols used in harmonic analysis to denote tones of the
 scale as roots of chords.  The most important are degrees I = tonic
 (T), IV = sub@-do@-mi@-nant (S) and V = dominant (D).
 
-@lilypond[fragment,notime,line-width=13.0\cm]
-\set Score.automaticBars = ##f
+@lilypond[quote,notime,line-width=13.0\cm]
 <<
-\context Staff \relative c' {
+\new Staff \relative c' {
   c1 d e f g a b c
 }
  \lyrics {
@@ -7061,7 +6941,6 @@ scale as roots of chords.  The most important are degrees I = tonic
 @end lilypond
 
 @seealso
-
 @ref{functional harmony}.
 
 
@@ -7077,7 +6956,7 @@ DK: ?,
 S: ?,
 FI: epätavallinen viritys.
 
-[Italian: @emph{scordare}, @q{to mistune}.]  Unconventional
+[Italian: @emph{scordare}, @q{to mistune}]  Unconventional
 tuning of stringed instruments, particularly lutes or violins.  Used
 to:
 
@@ -7102,8 +6981,7 @@ Tunings that could be called @var{scordatura} first appeared early in
 the 16th Century and became commonplace in the 17th.
 
 @seealso
-
-None yet.
+No cross-references.
 
 
 @node score
@@ -7111,7 +6989,7 @@ None yet.
 
 ES: partitura,
 I: partitura,
-F: partition,
+F: partition, conducteur (full score),
 D: Partitur (full score), Klavierauszug (vocal score),
 NL: partituur,
 DK: partitur,
@@ -7123,8 +7001,7 @@ instrument is to play, each voice to sing, having each part arranged
 one underneath the other on different staves @ref{staff}.
 
 @seealso
-
-None yet.
+No cross-references.
 
 
 @node second
@@ -7139,14 +7016,36 @@ DK: sekund,
 S: sekund,
 FI: sekunti.
 
-The @ref{interval} between two neigbouring tones of a scale.  A
-@ref{diatonic scale} consists of alternating @ref{semitone}s and
-@ref{whole tone}s, hence the size of a se@-cond depends on the scale
-degrees in question.
+The interval between two neighboring tones of a scale.  A diatonic scale
+consists of alternating semitones and whole tones, hence the size of a
+second depends on the scale degrees in question.
 
 @seealso
+@ref{diatonic scale}, @ref{interval}, @ref{semitone}, @ref{whole tone}.
+
+
+@node semibreve
+@section semibreve
+
+@itemize
+@item US: whole note,
+@item ES: redonda,
+@item I: semibreve,
+@item F: ronde,
+@item D: Ganze, ganze Note,
+@item NL: hele noot,
+@item DK: helnode,
+@item S: helnot,
+@item FI: kokonuotti.
+@end itemize
+
+Note value: called @notation{whole note} in the US.
 
-None yet.
+The semibreve is the basis for the @notation{tactus} in mensural notation
+(i.e. music written before ca. 1600).
+
+@seealso
+@ref{mensural notation}, @ref{note value}.
 
 
 @node semitone
@@ -7162,17 +7061,15 @@ S: halvton,
 FI: puolisävel.
 
 The interval of a minor second.  The (usually) smallest interval in European
-composed music.  The interval between two neighbouring tones on the piano
+composed music.  The interval between two neighboring tones on the piano
 keyboard -- including black and white keys -- is a semitone.  An octave may
 be divided into 12@w{ }semitones.
 
-@lilypond[fragment,notime,line-width=13.0\cm]
-\set Score.automaticBars = ##f
-\relative c'' { g1 gis s a bes s b! c }
+@lilypond[quote,notime,relative=2,line-width=13.0\cm]
+g1 gis s a bes s b! c
 @end lilypond
 
 @seealso
-
 @ref{interval}, @ref{chromatic scale}.
 
 
@@ -7189,7 +7086,6 @@ S: septim,
 FI: septimi.
 
 @seealso
-
 @ref{interval}.
 
 
@@ -7197,7 +7093,6 @@ FI: septimi.
 @section sextolet
 
 @seealso
-
 @ref{sextuplet}, @ref{note value}.
 
 
@@ -7214,7 +7109,6 @@ S: sextol,
 FI: sekstoli.
 
 @seealso
-
 @ref{note value}.
 
 
@@ -7222,7 +7116,6 @@ FI: sekstoli.
 @section shake
 
 @seealso
-
 @ref{trill}.
 
 
@@ -7239,7 +7132,6 @@ S: kors@-förtecken,
 FI: korotusmerkki.
 
 @seealso
-
 @ref{accidental}.
 
 
@@ -7248,19 +7140,18 @@ FI: korotusmerkki.
 
 ES: simile,
 I: simile,
-F: ?,
+F: simile,
 D: ?,
 NL: ?,
 DK: ?,
 S: ?,
 FI: samoin.
 
-[Italian: @q{in the same manner}.] Performance direction: the music thus marked
+[Italian: @q{in the same manner}] Performance direction: the music thus marked
 is to be played in the same manner (i.e. with the same articulations, dynamics,
 etc.) as the music that precedes it.
 
 @seealso
-
 TODO: Where else could I refer the reader?
 
 
@@ -7269,7 +7160,7 @@ TODO: Where else could I refer the reader?
 
 ES: compás simple, compás de subdivisión binaria,
 I: ?,
-F: ?,
+F: mesure binaire,
 D: ?,
 NL: ?,
 DK: ?,
@@ -7280,7 +7171,6 @@ A meter in which the basic beat is subdivided in two: that is, a meter
 that does not include triplet subdivision of the beat.
 
 @seealso
-
 @ref{compound meter}, @ref{meter}.
 
 
@@ -7300,7 +7190,6 @@ that does not include triplet subdivision of the beat.
 @end itemize
 
 @seealso
-
 @ref{note value}.
 
 
@@ -7320,7 +7209,6 @@ that does not include triplet subdivision of the beat.
 @end itemize
 
 @seealso
-
 @ref{note value}.
 
 
@@ -7337,7 +7225,6 @@ S: sext,
 FI: seksti.
 
 @seealso
-
 @ref{interval}.
 
 
@@ -7357,7 +7244,6 @@ FI: seksti.
 @end itemize
 
 @seealso
-
 @ref{note value}.
 
 
@@ -7377,7 +7263,6 @@ FI: seksti.
 @end itemize
 
 @seealso
-
 @ref{note value}.
 
 
@@ -7385,7 +7270,6 @@ FI: seksti.
 @section slash repeat
 
 @seealso
-
 @ref{percent repeat}.
 
 
@@ -7406,8 +7290,7 @@ played @ref{legato}, e.g., with one stroke of the violin bow or with
 one breath in singing.
 
 @seealso
-
-None yet.
+No cross-references.
 
 
 @node solmization
@@ -7428,7 +7311,6 @@ General term for systems of designating the degrees of the
 (@emph{ti})).
 
 @seealso
-
 @ref{scale}, @ref{scale degree}.
 
 
@@ -7450,8 +7332,7 @@ accompaniment, which consists of three or four independant pieces,
 called movements.
 
 @seealso
-
-None yet.
+No cross-references.
 
 
 @node sonata form
@@ -7480,7 +7361,6 @@ of these two.  The second theme is in another key, normally in the key of the
 @notation{relative key} if the tonic is @notation{minor}.
 
 @seealso
-
 @ref{dominant}, @ref{major}, @ref{minor}, @ref{relative key}, @ref{sonata},
 @ref{symphony}, @ref{tonic}.
 
@@ -7489,7 +7369,6 @@ of these two.  The second theme is in another key, normally in the key of the
 @section song texts
 
 @seealso
-
 @ref{lyrics}.
 
 
@@ -7508,8 +7387,7 @@ FI: sopraano, korkea naisääni.
 The highest female voice.
 
 @seealso
-
-None yet.
+No cross-references.
 
 
 @node staccato
@@ -7527,24 +7405,23 @@ FI: staccato, lyhyesti, terävästi.
 Playing the note(s) short.  Staccato is indicated by a dot above or
 below the note head.
 
-@lilypond[fragment,ragged-right]
+@lilypond[quote,relative=2]
 \key d \major
 \time 4/4
-\relative c'' {
   \partial 8 a8 |
   d4-\staccato cis-\staccato b-\staccato cis-\staccato |
-  d2. \bar "||"
-}
+  d2.
+  \bar "||"
 @end lilypond
 
 @seealso
-
-None yet.
+No cross-references.
 
 
 @node staff
 @section staff
 
+UK: stave,
 ES: pentagrama,
 I: pentagramma, rigo (musicale),
 F: portée,
@@ -7560,15 +7437,13 @@ indicating (in connection with a @ref{clef}) their pitch.  Staves for
 @ref{percussion} instruments may have fewer lines.
 
 @seealso
-
-None yet.
+No cross-references.
 
 
 @node staves
 @section staves
 
 @seealso
-
 @ref{staff}.
 
 
@@ -7577,7 +7452,7 @@ None yet.
 
 ES: plica,
 I: gamba,
-F: queue,
+F: hampe,
 D: Hals, Notenhals, Stiel,
 NL: stok,
 DK: hals,
@@ -7587,23 +7462,16 @@ FI: nuottipalkki.
 Vertical line above or below a @ref{note head} shorter than a
 whole note.
 
-@ref{beam}.
-
-@lilypond[fragment,notime,line-width=13.0\cm]
+@lilypond[quote,notime,relative=2]
 \set Score.autoBeaming = ##f
-\set Score.automaticBars = ##f
-%\override Score.TextScript #'font-style = #'large
-\relative c'' {
   g2_"1/2" g' s16
   g,4_"1/4" g' s16
   g,8_"1/8" g' s16
   g,16_"1/16" g' s16
-}
 @end lilypond
 
 @seealso
-
-None yet.
+@ref{beam}.
 
 
 @node stringendo
@@ -7611,18 +7479,17 @@ None yet.
 
 ES: ?,
 I: stringendo,
-F: ?,
+F: stringendo, en accélérant,
 D: ?,
 NL: ?,
 DK: ?,
 S: ?,
 FI: kiihdyttäen, nopeuttaen.
 
-[Italian: @q{pressing}.]  Pressing, urging, or hastening the time, as to a
+[Italian: @q{pressing}]  Pressing, urging, or hastening the time, as to a
 climax.
 
 @seealso
-
 @ref{accelerando}.
 
 
@@ -7643,8 +7510,7 @@ commonly used in a symphony orchestra are violin, viola, violoncello,
 and double bass.
 
 @seealso
-
-None yet.
+No cross-references.
 
 
 @node strong beat
@@ -7660,7 +7526,6 @@ S: betonat taktslag,
 FI: tahdin vahva isku.
 
 @seealso
-
 @ref{beat}, @ref{accent}, @ref{measure}, @ref{rhythm}.
 
 
@@ -7679,7 +7544,6 @@ FI: subdominantti, alidominantti.
 The fourth @notation{scale degree}.
 
 @seealso
-
 @ref{functional harmony}, @ref{scale degree}.
 
 
@@ -7698,7 +7562,6 @@ FI: alikeskisävel.
 The sixth @notation{scale degree}.
 
 @seealso
-
 @ref{functional harmony}, @ref{scale degree}, @ref{superdominant}.
 
 
@@ -7717,7 +7580,6 @@ FI: subtoonika, alitoonika.
 The seventh @ref{scale degree}.
 
 @seealso
-
 @ref{functional harmony}, @ref{scale degree}.
 
 
@@ -7737,8 +7599,7 @@ Indicates that the indicated passage (or note) should be played on the
 G string.
 
 @seealso
-
-None yet.
+No cross-references.
 
 
 @node superdominant
@@ -7756,7 +7617,6 @@ FI: ylidominantti.
 The sixth @ref{scale degree}.
 
 @seealso
-
 @ref{functional harmony}, @ref{scale degree}, @ref{submediant}.
 
 
@@ -7775,7 +7635,6 @@ FI: ylitoonika.
 The second @ref{scale degree}.
 
 @seealso
-
 @ref{functional harmony}, @ref{scale degree}.
 
 
@@ -7794,7 +7653,6 @@ FI: sinfonia.
 A symphony may be defined as a @emph{sonata} for orchestra.
 
 @seealso
-
 @ref{sonata}.
 
 
@@ -7819,18 +7677,15 @@ group.  Any deviation from this scheme is felt as a disturbance or
 contradiction between the underlaying (normal) pulse and the actual
 (abnormal) rhythm.
 
-@lilypond[fragment,ragged-right]
-\time 4/4
-\relative c' {
-  \partial 4
-  d8 dis |
-  e c'4 e,8 c'4 e,8 c' ( | c2)
-}
+@lilypond[quote,relative=1]
+\time 2/4
+\partial 8 d16 dis
+e16 c'8 e,16 c'8 e,16 c' ~
+c4
 @end lilypond
 
 @seealso
-
-None yet.
+No cross-references.
 
 
 @node syntonic comma
@@ -7856,7 +7711,6 @@ the sum of two octaves plus a major third.  (3:2)^4 - (2:1)^2 + (5:4)
 This comma is also known as the comma of Didymus, or didymic comma.
 
 @seealso
-
 @ref{Pythagorean comma}
 
 
@@ -7876,7 +7730,6 @@ The collection of staves (@notation{staff}), two or more, as used for writing
 down of keyboard, chamber, choral, or orchestral music.
 
 @seealso
-
 @ref{staff}.
 
 
@@ -7896,7 +7749,6 @@ Systems of tuning in which the intervals deviate from the acoustically
 pure intervals.
 
 @seealso
-
 @ref{meantone temperament}, @ref{equal temperament}.
 
 
@@ -7918,7 +7770,6 @@ slowest to the quickest, as is indicated by tempo marks as @notation{largo},
 @notation{presto}.
 
 @seealso
-
 @ref{adagio}, @ref{allegro}, @ref{andante}, @ref{largo}, @ref{presto}.
 
 
@@ -7938,7 +7789,6 @@ FI: tenori, korkea miesääni.
 The highest @q{natural} male voice (apart from @notation{countertenor}).
 
 @seealso
-
 @ref{countertenor}.
 
 
@@ -7955,7 +7805,6 @@ S: decima,
 FI: desimi.
 
 @seealso
-
 @ref{note value}.
 
 
@@ -7975,8 +7824,7 @@ An indication that a particular note should be held for the whole
 length, although this can vary depending on the composer and era.
 
 @seealso
-
-None yet.
+No cross-references.
 
 
 @node third
@@ -7992,7 +7840,6 @@ S: ters,
 FI: terssi.
 
 @seealso
-
 @ref{interval}.
 
 
@@ -8012,7 +7859,6 @@ FI: terssi.
 @end itemize
 
 @seealso
-
 @ref{note value}.
 
 
@@ -8032,7 +7878,6 @@ FI: terssi.
 @end itemize
 
 @seealso
-
 @ref{note value}.
 
 
@@ -8040,7 +7885,6 @@ FI: terssi.
 @section thorough bass
 
 @seealso
-
 @ref{figured bass}.
 
 
@@ -8049,7 +7893,7 @@ FI: terssi.
 
 ES: ligadura de prolongación, ligadura de unión,
 I: legatura (di valore),
-F: liaison,
+F: liaison (de tenue),
 D: Haltebogen, Bindebogen,
 NL: overbinding, bindingsboog,
 DK: bindebue,
@@ -8061,9 +7905,8 @@ connects two succesive notes of the same pitch, and which has the
 function of uniting them into a single sound (tone) equal to the
 combined durations.
 
-@lilypond[fragment,notime,ragged-right]
-\set Score.automaticBars = ##f
-\relative c'' { g2 ~ g4. }
+@lilypond[quote,notime,relative=2]
+g2 ~ g4. r8
 @end lilypond
 
 
@@ -8071,7 +7914,6 @@ combined durations.
 @section time
 
 @seealso
-
 @ref{meter}.
 
 
@@ -8080,7 +7922,7 @@ combined durations.
 
 ES: indicación de compás,
 I: segni di tempo,
-F: chiffrage (chiffres indicateurs), signe de valeur, indication de mesure,
+F: métrique, chiffrage (chiffres indicateurs), indication de mesure,
 D: Taktangabe, Angabe der Taktart,
 NL: maatsoort,
 DK: taktangivelse,
@@ -8092,8 +7934,7 @@ meter.  It most often takes the form of a fraction, but a few signs
 derived from mensural notation and proportions are also employed.
 
 @seealso
-
-@ref{mensural notation}, @ref{meter}.
+@ref{mensural notation}, @ref{mensuration sign}, @ref{meter}.
 
 
 @node tone
@@ -8101,7 +7942,7 @@ derived from mensural notation and proportions are also employed.
 
 ES: tono,
 I: suono,
-F: ton,
+F: ton, son,
 D: Ton,
 NL: toon,
 DK: tone,
@@ -8114,8 +7955,7 @@ Tone is a primary building material of music.
 @c Music from the 20th century may be based on atonal sounds. Meh, not so much
 
 @seealso
-
-None yet.
+No cross-references.
 
 
 @node tonic
@@ -8133,7 +7973,6 @@ FI: toonika.
 The first @notation{scale degree}.
 
 @seealso
-
 @ref{functional harmony}, @ref{scale degree}.
 
 
@@ -8142,7 +7981,7 @@ The first @notation{scale degree}.
 
 ES: instrumento transpositor,
 I: ?,
-F: ?,
+F: instrument transpositeur,
 D: ?,
 NL: ?,
 DK: ?,
@@ -8171,7 +8010,6 @@ Not all transposing instruments include the pitch class in their name:
 @end itemize
 
 @seealso
-
 @ref{concert pitch}.
 
 
@@ -8190,7 +8028,7 @@ FI: transponointi.
 Shifting a melody up or down in pitch, while keeping the same
 relative pitches.
 
-@lilypond[fragment,line-width=13.0\cm]
+@lilypond[quote,line-width=13.0\cm]
 \context Staff {
   \time 3/4
   \relative c'' {
@@ -8200,7 +8038,7 @@ relative pitches.
 }
 @end lilypond
 
-@lilypond[fragment,line-width=13.0\cm]
+@lilypond[quote,line-width=13.0\cm]
 \context Staff {
   \time 3/4
   \transpose c bes \relative c'' {
@@ -8211,8 +8049,7 @@ relative pitches.
 @end lilypond
 
 @seealso
-
-None yet.
+No cross-references.
 
 
 @node treble clef
@@ -8228,7 +8065,6 @@ S: diskantklav,
 FI: diskanttiavain.
 
 @seealso
-
 @ref{G clef}.
 
 
@@ -8256,18 +8092,13 @@ in the distance of a third (@ref{interval}).
 
 @end enumerate
 
-@lilypond[fragment,notime,ragged-right]
-\set Score.automaticBars = ##f
-%\override Score.TextScript #'font-style = #'large
-\relative c' {
+@lilypond[quote,notime,relative=1]
   e2:32_"a"
   f:32 [ e8:16 f:16 g:16 a:16 ] s4
   \repeat tremolo 8 { e32_"b" g }
-}
 @end lilypond
 
 @seealso
-
 @ref{strings}
 
 
@@ -8284,7 +8115,6 @@ S: treklang,
 FI: kolmisointu.
 
 @seealso
-
 @ref{chord}.
 
 
@@ -8301,7 +8131,6 @@ S: drill,
 FI: trilli.
 
 @seealso
-
 @ref{ornament}.
 
 
@@ -8318,7 +8147,6 @@ S: tretakt,
 FI: kolmijakoinen.
 
 @seealso
-
 @ref{meter}.
 
 
@@ -8335,7 +8163,6 @@ S: triol,
 FI: trioli.
 
 @seealso
-
 @ref{note value}.
 
 
@@ -8352,7 +8179,6 @@ S: tritonus,
 FI: tritonus.
 
 @seealso
-
 @ref{interval}.
 
 
@@ -8373,7 +8199,6 @@ A two-pronged piece of steel used to indicate an absolute pitch, usually for
 standard.  Tuning forks for other pitches are available.
 
 @seealso
-
 @ref{middle C}.
 
 
@@ -8385,7 +8210,6 @@ indicated with a bracket and a number indicating the number of
 subdivisions.
 
 @seealso
-
 @ref{triplet}, @ref{note value}.
 
 
@@ -8402,7 +8226,6 @@ S: dubbelslag,
 FI: korukuvio.
 
 @seealso
-
 @ref{ornament}.
 
 
@@ -8423,8 +8246,7 @@ Playing of the same notes or the same melody by various instruments
 pitch or in a different octave.
 
 @seealso
-
-None yet.
+No cross-references.
 
 
 @node upbeat
@@ -8440,7 +8262,6 @@ S: upptakt,
 FI: kohotahti.
 
 @seealso
-
 @ref{anacrusis}
 
 
@@ -8474,8 +8295,7 @@ FI: ääni, lauluääni.
 @end itemize
 
 @seealso
-
-None yet.
+No cross-references.
 
 
 @node volta
@@ -8483,20 +8303,19 @@ None yet.
 
 ES: vez, primera y segunda vez,
 I: volta,
-F: ?,
+F: volta, fois,
 D: ?,
 NL: ?,
 DK: ?,
 S: ?,
 FI: yksi kertauksen maaleista.
 
-[Italian: @q{time} (instance, not duration).]  An ending, such as a first
+[Italian: @q{time} (instance, not duration)]  An ending, such as a first
 or second ending.  LilyPond extends this idea to any number, and allows any text
 (not just a number) -- to serve as the @notation{volta} text.
 
 @seealso
-
-None yet.
+No cross-references.
 
 
 @node weak beat
@@ -8512,7 +8331,6 @@ S: obetonat taktslag,
 FI: tahdin heikko isku.
 
 @seealso
-
 @ref{beat}, @ref{measure}, @ref{rhythm}.
 
 
@@ -8532,7 +8350,6 @@ FI: tahdin heikko isku.
 @end itemize
 
 @seealso
-
 @ref{note value}.
 
 
@@ -8552,7 +8369,6 @@ FI: tahdin heikko isku.
 @end itemize
 
 @seealso
-
 @ref{note value}.
 
 
@@ -8573,7 +8389,6 @@ on the piano keyboard with exactly one key between them -- including
 black and white keys -- is a whole tone.
 
 @seealso
-
 @ref{interval}.
 
 
@@ -8595,8 +8410,7 @@ commonly used in a symphony orchestra are flute, oboe, clarinet,
 saxophone, and bassoon.
 
 @seealso
-
-None yet.
+No cross-references.
 
 
 @node Duration names notes and rests
@@ -8959,7 +8773,6 @@ the lilypond-user discussion list.
 @end multitable
 
 @seealso
-
 @ref{mensural notation}
 
 
index 8c6bc0618f57d1c58302b3ad18da9fff9670ba59..94ece246e61edee5351735a9a537d0d4036c27b9 100644 (file)
@@ -7,7 +7,7 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @node Notation manual tables
 @appendix Notation manual tables
@@ -31,21 +31,21 @@ and just before
 @end ignore
 
 @menu
-* Chord name chart::            
-* Common chord modifiers::      
-* Predefined fretboard diagrams::  
-* MIDI instruments::            
-* List of colors::              
-* The Feta font::               
-* Note head styles::            
-* Text markup commands::        
+* Chord name chart::
+* Common chord modifiers::
+* Predefined fretboard diagrams::
+* MIDI instruments::
+* List of colors::
+* The Feta font::
+* Note head styles::
+* Text markup commands::
 * Text markup list commands::
-* List of articulations::       
-* Percussion notes::            
-* All context properties::      
-* Layout properties::           
-* Identifiers::                 
-* Scheme functions::            
+* List of articulations::
+* Percussion notes::
+* All context properties::
+* Layout properties::
+* Identifiers::
+* Scheme functions::
 @end menu
 
 
@@ -198,11 +198,11 @@ Half-diminished seventh
 @tab
 Diminished triad, minor seventh
 @tab
-@code{dim5m7}
+@code{m7.5-}
 @tab
 @lilypond[line-width=3\cm,noragged-right, notime]
 \chordmode {
-  c1:dim5m7
+  c1:m7.5-
 }
 @end lilypond
 
@@ -211,11 +211,11 @@ Minor-major seventh
 @tab
 Minor triad, major seventh
 @tab
-@code{7m5}
+@code{maj7.5-}
 @tab
 @lilypond[line-width=3\cm,noragged-right, notime]
 \chordmode {
-  c1:7m5
+  c1:maj7.5-
 }
 @end lilypond
 
@@ -261,7 +261,7 @@ Dominant seventh, major ninth
 @item
 Major ninth
 @tab
-TODO
+Major seventh, major ninth
 @tab
 @code{maj9}
 @tab
@@ -274,7 +274,7 @@ TODO
 @item
 Minor ninth
 @tab
-TODO
+Minor seventh, major ninth
 @tab
 @code{m9}
 @tab
@@ -300,7 +300,7 @@ Dominant ninth, perfect eleventh
 @item
 Major eleventh
 @tab
-TODO
+Major ninth, perfect eleventh
 @tab
 @code{maj11}
 @tab
@@ -313,7 +313,7 @@ TODO
 @item
 Minor eleventh
 @tab
-TODO
+Minor ninth, perfect eleventh
 @tab
 @code{m11}
 @tab
@@ -323,6 +323,19 @@ TODO
 }
 @end lilypond
 
+@item
+Dominant thirteenth
+@tab
+Dominant ninth, major thirteenth
+@tab
+@code{13}
+@tab
+@lilypond[line-width=3\cm,noragged-right, notime]
+\chordmode {
+  c1:13
+}
+@end lilypond
+
 @item
 Dominant thirteenth
 @tab
@@ -339,7 +352,7 @@ Dominant eleventh, major thirteenth
 @item
 Major thirteenth
 @tab
-TODO
+Major eleventh, major thirteenth
 @tab
 @code{maj13.11}
 @tab
@@ -352,7 +365,7 @@ TODO
 @item
 Minor thirteenth
 @tab
-TODO
+Minor eleventh, major thirteenth
 @tab
 @code{m13.11}
 @tab
@@ -365,7 +378,7 @@ TODO
 @item
 Suspended second
 @tab
-TODO
+Major second, perfect fifth
 @tab
 @code{sus2}
 @tab
@@ -378,7 +391,7 @@ TODO
 @item
 Suspended fourth
 @tab
-TODO
+Perfect fourth, perfect fifth
 @tab
 @code{sus4}
 @tab
@@ -408,7 +421,7 @@ The following is a list of names that can be used for the
 acoustic grand            contrabass           lead 7 (fifths)
 bright acoustic           tremolo strings      lead 8 (bass+lead)
 electric grand            pizzicato strings    pad 1 (new age)
-honky-tonk                orchestral strings   pad 2 (warm)
+honky-tonk                orchestral harp      pad 2 (warm)
 electric piano 1          timpani              pad 3 (polysynth)
 electric piano 2          string ensemble 1    pad 4 (choir)
 harpsichord               string ensemble 2    pad 5 (bowed)
index 2e497e9acbce401ada90fc7bb96378e0a850ef7e..57afdc00fd39a01168cb638bc765a8e9dc6fe494 100644 (file)
@@ -6,7 +6,7 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @node Musical notation
 @chapter Musical notation
index 5cbedb61b35dc6dea7e4ee9b570d64544c157c3a..f182b78a9ac80c0f0ee332199fe05bd8e16dda39 100644 (file)
@@ -6,7 +6,7 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.62"
+@c \version "2.12.0"
 
 @node Percussion
 @section Percussion
@@ -47,8 +47,8 @@ discussed in @ref{Showing melody rhythms}, and
 
 @end itemize
 
-@seealso
 
+@seealso
 Notation Reference:
 @ref{Showing melody rhythms},
 @ref{Instantiating new staves}.
@@ -96,8 +96,8 @@ contex, but other clefs may also be used.
 There are a few issues concerning MIDI support for percussion
 instruments; for details please see @ref{Percussion in MIDI}.
 
-@seealso
 
+@seealso
 Notation Reference: @ref{Percussion in MIDI}, @ref{Percussion notes}.
 
 File: @file{ly/@/drumpitch@/-init@/.ly}
@@ -138,8 +138,8 @@ overridden to achieve a pleasing baseline.
 }
 @end lilypond
 
-@seealso
 
+@seealso
 Snippets: @rlsr{Percussion}.
 
 
@@ -150,8 +150,8 @@ Certain pitched percussion instruments (e.g. xylophone,
 vibraphone, and timpani) are written using normal staves.
 This is covered in other sections of the manual.
 
-@seealso
 
+@seealso
 @c TODO: possibly link to an alternate section of NR 3.5, if
 @c "percussion in MIDI" gets a separate subsubsection for
 @c pitched percussion sounds.  -gp
@@ -425,7 +425,7 @@ A tambourine, entered with @q{tamb}:
 tambustaff = {
   \override Staff.StaffSymbol #'line-positions = #'( 0 )
   \override Staff.BarLine #'bar-size = #3
-  \set DrumStaff.instrumentName = "Tambourine"
+  \set DrumStaff.instrumentName = #"Tambourine"
 }
 
 \new DrumStaff {
@@ -451,7 +451,7 @@ Music for Tam-Tam (entered with @q{tt}):
 tamtamstaff = {
   \override Staff.StaffSymbol #'line-positions = #'( 0 )
   \override Staff.BarLine #'bar-size = #3
-  \set DrumStaff.instrumentName = "Tamtam"
+  \set DrumStaff.instrumentName = #"Tamtam"
 }
 
 \new DrumStaff {
@@ -474,7 +474,7 @@ bellstaff = {
   \override DrumStaff.StaffSymbol #'line-positions = #'(-2 3)
   \set DrumStaff.drumStyleTable = #(alist->hash-table mydrums)
   \override Staff.BarLine #'bar-size = #3
-  \set DrumStaff.instrumentName = "Different Bells"
+  \set DrumStaff.instrumentName = #"Different Bells"
 }
 
 \new DrumStaff {
@@ -541,21 +541,20 @@ drumsB = {
     }
 
    \new DrumStaff {
-     \set DrumStaff.instrumentName = "Grosse Caisse"
+     \set DrumStaff.instrumentName = #"Grosse Caisse"
      \set DrumStaff.drumStyleTable = #(alist->hash-table mydrums)
      \drumsB }
   >>
 }
 @end lilypond
 
-@seealso
 
+@seealso
 Snippets: @rlsr{Percussion}.
 
 Internals Reference: @rinternals{DrumStaff}, @rinternals{DrumVoice}.
 
 
-
 @c TODO: check name -gp
 @node Ghost notes
 @unnumberedsubsubsec Ghost notes
@@ -591,6 +590,6 @@ However, the default @code{\drummode} does not include the
 Also note that you must add chords (@code{< >} brackets)
 around each @code{\parenthesize} statement.
 
-@seealso
 
+@seealso
 Snippets: @rlsr{Percussion}.
index ce600154f08bb28c3b23d91efa5cde75e82fbf8d..1b7c2c8e1d7499ab4e08170e1322b927d366ad60 100644 (file)
@@ -6,7 +6,7 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 
 @node Pitches
@@ -47,7 +47,9 @@ mode.  In most cases, relative mode will be more convenient.
 @cindex pitches
 @cindex absolute
 @cindex absolute octave specification
+@cindex octave specification, absolute
 @cindex absolute octave entry
+@cindex octave entry, absolute
 
 A pitch name is specified using lowercase letters@tie{}@code{a}
 through@tie{}@code{g}.  The note names @code{c} to @code{b} are
@@ -62,6 +64,7 @@ d e f g
 @end lilypond
 
 @cindex octave changing mark
+
 @funindex '
 @funindex ,
 
@@ -79,8 +82,8 @@ c, c,, e, g
 d,, d, d c
 @end lilypond
 
-@seealso
 
+@seealso
 Music Glossary:
 @rglos{Pitch names}.
 
@@ -93,7 +96,11 @@ Snippets:
 
 @cindex relative
 @cindex relative octave entry
+@cindex octave entry, relative
 @cindex relative octave specification
+@cindex ocatve specification, relative
+
+@funindex relative
 @funindex \relative
 
 When octaves are specified in absolute mode it is easy to
@@ -168,6 +175,9 @@ large intervals:
 }
 @end lilypond
 
+@cindex chords and relative octave entry
+@cindex relative octave entry and chords
+
 If the preceding item is a chord, the first note of the chord is
 used as the reference point for the octave placement of a
 following note or chord.  Inside chords, the next note is always
@@ -202,7 +212,6 @@ that each interval contains.
 
 
 @seealso
-
 Music Glossary:
 @rglos{fifth},
 @rglos{interval},
@@ -220,9 +229,14 @@ Internals Reference:
 
 @cindex relative octave entry and transposition
 @cindex transposition and relative octave entry
+
 @funindex \transpose
+@funindex transpose
 @funindex \chordmode
+@funindex chordmode
 @funindex \relative
+@funindex relative
+
 
 @knownissues
 
@@ -256,6 +270,7 @@ see @rlearning{Accidentals and key signatures}.}
 
 @cindex note names, Dutch
 @cindex note names, default
+@cindex default note names
 @cindex sharp
 @cindex flat
 @cindex double sharp
@@ -286,7 +301,8 @@ a4 aes a2
 @end lilypond
 
 @cindex quarter tones
-@cindex semi-flats, semi-sharps
+@cindex semi-flats
+@cindex semi-sharps
 
 Quarter tones may be added; the following is a series of Cs with
 increasing pitches:
@@ -301,11 +317,13 @@ ceseh1 ces ceh c cih cis cisih
 @cindex accidental, cautionary
 @cindex accidental, parenthesized
 @cindex reminder accidental
-@funindex ?
 @cindex cautionary accidental
 @cindex parenthesized accidental
+
+@funindex ?
 @funindex !
 
+
 Normally accidentals are printed automatically, but you may also
 print them manually.  A reminder accidental can be forced by
 adding an exclamation mark@tie{}@code{!} after the pitch.  A
@@ -339,8 +357,8 @@ cis
 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
 {makam-example.ly}
 
-@seealso
 
+@seealso
 Music Glossary:
 @rglos{sharp},
 @rglos{flat},
@@ -388,8 +406,13 @@ any standard.
 
 There are predefined sets of note and accidental names for various
 other languages.  To use them, include the language-specific init
-file listed below.  For example, to use English notes names, add
-@code{@w{\include "english.ly"}} to the top of the input file.
+file listed below.  For example, to use English note names, add
+@code{@w{\include "english.ly"}} to the input file.
+
+@warning{Because some other include files (such as @code{@w{predefined-fretboards.ly}})
+use default (Nederlands) note names, the @code{@bs{}include}
+command for the language file should be placed after all other
+LilyPond distribution files.}
 
 The available language files and the note names they define are:
 
@@ -507,7 +530,6 @@ languages, no special names have been defined yet.
 
 
 @seealso
-
 Music Glossary:
 @rglos{Pitch names}.
 
@@ -531,8 +553,10 @@ This section discusses how to modify pitches.
 @cindex octave correction
 @cindex octave check
 @cindex control pitch
+
 @funindex =
 @funindex \octaveCheck
+@funindex octaveCheck
 @funindex controlpitch
 
 In relative mode, it is easy to forget an octave changing mark.
@@ -589,7 +613,6 @@ checks fail, but the second one does not fail.
 
 
 @seealso
-
 Snippets:
 @rlsr{Pitches}.
 
@@ -607,7 +630,9 @@ Internals Reference:
 @cindex transposition of notes
 @cindex pitches, transposition of
 @cindex notes, transposition of
+
 @funindex \transpose
+@funindex transpose
 
 A music expression can be transposed with @code{\transpose}.  The
 syntax is
@@ -672,8 +697,6 @@ music = \relative c' { c d e f }
 }
 @end lilypond
 
-@cindex transposing instruments
-@cindex instruments, transposing
 
 @code{\transpose} may also be used in a different way, to input
 written notes for a transposing instrument.  The previous examples
@@ -710,7 +733,6 @@ see @ref{Instrument transpositions}.
 
 
 @seealso
-
 Notation Reference:
 @ref{Instrument transpositions}.
 
@@ -720,9 +742,13 @@ Snippets:
 Internals Reference:
 @rinternals{TransposedMusic}.
 
+
 @funindex \transpose
+@funindex transpose
 @funindex \chordmode
+@funindex chordmode
 @funindex \relative
+@funindex relative
 
 @knownissues
 
@@ -750,7 +776,6 @@ This section discusses how to alter the output of pitches.
 @node Clef
 @unnumberedsubsubsec Clef
 
-@funindex \clef
 @cindex G clef
 @cindex C clef
 @cindex F clef
@@ -783,6 +808,9 @@ This section discusses how to alter the output of pitches.
 @cindex clef, varbaritone
 @cindex subbass clef, subbass
 
+@funindex \clef
+@funindex clef
+
 The clef may be altered.  Middle C is shown in every example.
 
 @lilypond[verbatim,quote,relative=1]
@@ -827,6 +855,7 @@ and @ref{Gregorian clefs}.
 @cindex clef, transposing
 @cindex octave transposition
 @cindex choral tenor clef
+@cindex tenor clef, choral
 
 By adding@tie{}@code{_8} or@tie{}@code{^8} to the clef name, the
 clef is transposed one octave down or up, respectively,
@@ -851,7 +880,6 @@ c2 c
 
 
 @seealso
-
 Notation Reference:
 @ref{Mensural clefs}, @ref{Gregorian clefs}.
 
@@ -869,7 +897,9 @@ Internals Reference:
 @unnumberedsubsubsec Key signature
 
 @cindex key signature
+
 @funindex \key
+@funindex key
 
 @c duplicated in Key signature and Accidentals
 @warning{New users are sometimes confused about accidentals and
@@ -888,14 +918,24 @@ at the start of the staff.  The key signature may be altered:
 @end example
 
 @funindex \major
+@funindex major
 @funindex \minor
+@funindex minor
 @funindex \ionian
+@funindex ionian
 @funindex \locrian
+@funindex locrian
 @funindex \aeolian
+@funindex aeolian
 @funindex \mixolydian
+@funindex mixolydian
 @funindex \lydian
+@funindex lydian
 @funindex \phrygian
+@funindex phrygian
 @funindex \dorian
+@funindex dorian
+
 @cindex church modes
 @cindex modes
 @cindex major
@@ -933,7 +973,6 @@ fis
 
 
 @seealso
-
 Music Glossary:
 @rglos{church mode},
 @rglos{scordatura}.
@@ -962,7 +1001,10 @@ Internals Reference:
 @cindex 8va
 @cindex 8ve
 @cindex octavation
+
 @funindex set-octavation
+@funindex \ottava
+@funindex ottava
 
 @notation{Ottava brackets} introduce an extra transposition of an
 octave for the staff:
@@ -986,7 +1028,6 @@ The @code{ottava} function also takes -1 (for 8va bassa),
 
 
 @seealso
-
 Music Glossary:
 @rglos{octavation}.
 
@@ -999,7 +1040,6 @@ Internals Reference:
 @rinternals{ottava-bracket-interface}.
 
 
-
 @node Instrument transpositions
 @unnumberedsubsubsec Instrument transpositions
 
@@ -1008,7 +1048,9 @@ Internals Reference:
 @cindex transposing instrument
 @cindex MIDI
 @cindex MIDI transposition
+
 @funindex \transposition
+@funindex transposition
 
 When typesetting scores that involve transposing instruments, some
 parts can be typeset in a different pitch than the
@@ -1040,8 +1082,8 @@ playing in unison.
 \new GrandStaff <<
   \new Staff = "violin" {
     \relative c'' {
-      \set Staff.instrumentName = "Vln"
-      \set Staff.midiInstrument = "violin"
+      \set Staff.instrumentName = #"Vln"
+      \set Staff.midiInstrument = #"violin"
       % not strictly necessary, but a good reminder
       \transposition c'
 
@@ -1052,7 +1094,7 @@ playing in unison.
   \new Staff = "clarinet" {
     \relative c'' {
       \set Staff.instrumentName = \markup { Cl (B\flat) }
-      \set Staff.midiInstrument = "clarinet"
+      \set Staff.midiInstrument = #"clarinet"
       \transposition bes
 
       \key d \major
@@ -1067,7 +1109,7 @@ example, a clarinetist may switch from an A clarinet to a B-flat
 clarinet.
 
 @lilypond[verbatim,quote,relative=2]
-\set Staff.instrumentName = "Cl (A)"
+\set Staff.instrumentName = #"Cl (A)"
 \key a \major
 \transposition a
 c d e f
@@ -1082,7 +1124,6 @@ c2 g
 
 
 @seealso
-
 Music Glossary:
 @rglos{concert pitch},
 @rglos{transposing instrument}.
@@ -1103,8 +1144,10 @@ Snippets:
 @cindex accidentals, automatic
 @cindex automatic accidentals
 @cindex default accidental style
+
 @funindex set-accidental-style
 @funindex voice
+@funindex default
 
 There are many different conventions on how to typeset
 accidentals.  LilyPond provides a function to specify which
@@ -1131,7 +1174,6 @@ style in all staves of the current @code{StaffGroup}, use:
 The following accidental styles are supported.  To demonstrate
 each style, we use the following example:
 
-@funindex default
 
 @lilypond[verbatim,quote]
 musicA = {
@@ -1205,6 +1247,7 @@ both staves.
 
 @cindex default accidental style
 @cindex accidental style, default
+
 @funindex default
 
 This is the default typesetting behavior.  It corresponds to
@@ -1268,6 +1311,7 @@ musicB = {
 @cindex modern accidental style
 @cindex accidental style, modern-cautionary
 @cindex modern-cautionary accidental style
+
 @funindex voice
 
 The normal behavior is to remember the accidentals at
@@ -1335,6 +1379,7 @@ musicB = {
 
 @cindex accidentals, modern style
 @cindex modern style accidentals
+
 @funindex modern
 
 This rule corresponds to the common practice in the twentieth
@@ -1399,6 +1444,7 @@ musicB = {
 @cindex modern cautionary accidental style
 @cindex modern style accidentals
 @cindex modern style cautionary accidentals
+
 @funindex modern-cautionary
 
 This rule is similar to @code{modern}, but the @q{extra}
@@ -1462,6 +1508,7 @@ musicB = {
 @cindex modern accidental style
 @cindex modern accidentals
 @cindex multivoice accidentals
+
 @funindex modern-voice
 
 This rule is used for multivoice accidentals to be read both by
@@ -1522,6 +1569,7 @@ musicB = {
 @cindex accidental style, cautionary, modern voice
 @cindex accidental style, modern voice cautionary
 @cindex accidental style, voice, modern cautionary
+
 @funindex modern-voice-cautionary
 
 @item modern-voice-cautionary
@@ -1584,6 +1632,7 @@ musicB = {
 @cindex accidentals, piano
 @cindex piano accidental style
 @cindex piano accidentals
+
 @funindex piano
 
 This rule reflects twentieth-century practice for piano notation.
@@ -1642,7 +1691,6 @@ musicB = {
 
 @item piano-cautionary
 
-@funindex piano-cautionary
 @cindex accidentals, piano cautionary
 @cindex cautionary accidentals, piano
 @cindex piano cautionary accidentals
@@ -1650,6 +1698,8 @@ musicB = {
 @cindex cautionary accidental style, piano
 @cindex piano cautionary accidental style
 
+@funindex piano-cautionary
+
 This is the same as @code{piano} but with the extra accidentals
 typeset as cautionaries.
 
@@ -1701,10 +1751,11 @@ musicB = {
 
 @item neo-modern
 
-@funindex neo-modern
 @cindex neo-modern accidental style
 @cindex accidental style, neo-modern
 
+@funindex neo-modern
+
 This rule reproduces a common practice in contemporary music:
 accidentals are printed like with @code{modern}, but they are printed
 again if the same note appears later in the same measure -- except
@@ -1758,10 +1809,11 @@ musicB = {
 
 @item neo-modern-cautionary
 
-@funindex neo-modern-cautionary
 @cindex neo-modern-cautionary accidental style
 @cindex accidental style, neo-modern-cautionary
 
+@funindex neo-modern-cautionary
+
 This rule is similar to @code{neo-modern}, but the extra
 accidentals are printed as cautionary accidentals.
 
@@ -1814,10 +1866,11 @@ musicB = {
 
 @item dodecaphonic
 
-@funindex dodecaphonic
 @cindex dodecaphonic accidental style
 @cindex dodecaphonic style, neo-modern
 
+@funindex dodecaphonic
+
 This rule reflects a practice introduced by composers at
 the beginning of the 20th century, in an attempt to
 abolish the hierarchy between natural and non-natural notes.
@@ -1873,10 +1926,11 @@ musicB = {
 
 @item teaching
 
-@funindex teaching
 @cindex teaching accidental style
 @cindex accidental style, teaching
 
+@funindex teaching
+
 This rule is intended for students, and makes it easy to create
 scale sheets with automagically created cautionary accidentals.
 Accidentals are printed like with @code{modern}, but cautionary
@@ -1935,10 +1989,11 @@ musicB = {
 
 @item no-reset
 
-@funindex no-reset
 @cindex accidental style, no reset
 @cindex no reset accidental style
 
+@funindex no-reset
+
 This is the same as @code{default} but with accidentals lasting
 @q{forever} and not only within the same measure:
 
@@ -1990,10 +2045,11 @@ musicB = {
 
 @item forget
 
-@funindex forget
 @cindex forget accidental style
 @cindex accidental style, forget
 
+@funindex forget
+
 This is the opposite of @code{no-reset}: Accidentals are not
 remembered at all -- and hence all accidentals are typeset
 relative to the key signature, regardless of what came before in
@@ -2054,7 +2110,6 @@ musicB = {
 
 
 @seealso
-
 Snippets:
 @rlsr{Pitches}.
 
@@ -2129,7 +2184,6 @@ printed if they are not part of the key signature.
 
 
 @seealso
-
 Music Glossary:
 @rglos{ambitus}.
 
@@ -2182,6 +2236,7 @@ This section suggests ways of altering note heads.
 @cindex guitar note heads
 @cindex note head styles
 @cindex styles, note heads
+
 @funindex cross
 
 Note heads may be altered:
@@ -2204,8 +2259,8 @@ inside chords:
 @noindent
 To see all note head styles, see @ref{Note head styles}.
 
-@seealso
 
+@seealso
 Snippets:
 @rlsr{Pitches}.
 
@@ -2236,6 +2291,11 @@ Internals Reference:
 @cindex easy play note heads
 @cindex note heads, easy play
 
+@funindex \easyHeadsOn
+@funindex easyHeadsOn
+@funindex \easyHeadsOff
+@funindex easyHeadsOff
+
 The @q{easy play} note head includes a note name inside the head.
 It is used in music for beginners.  To make the letters readable,
 it should be printed in a large font size.  To print with a larger
@@ -2252,14 +2312,14 @@ font, see @ref{Setting the staff size}.
 }
 @end lilypond
 
+
 @predefined
+@code{\easyHeadsOn},
+@code{\easyHeadsOff}.
+@endpredefined
 
-@funindex \easyHeadsOn
-@funindex \easyHeadsOff
-@code{\easyHeadsOn}, @code{\easyHeadsOff}
 
 @seealso
-
 Notation Reference:
 @ref{Setting the staff size}.
 
@@ -2282,9 +2342,13 @@ Internals Reference:
 @cindex shape notes
 @cindex Aiken shape note heads
 @cindex sacred harp note heads
+
 @funindex \key
+@funindex key
 @funindex \aikenHeads
+@funindex aikenHeads
 @funindex \sacredHarpHeads
+@funindex sacredHarpHeads
 
 In shape note head notation, the shape of the note head
 corresponds to the harmonic function of a note in the scale.  This
@@ -2301,11 +2365,12 @@ c, d e f g a b c
 Shapes are typeset according to the step in the scale, where the
 base of the scale is determined by the @code{\key} command.
 
+
 @predefined
+@code{\aikenHeads},
+@code{\sacredHarpHeads}.
+@endpredefined
 
-@funindex \aikenHeads
-@funindex \sacredHarpHeads
-@code{\aikenHeads}, @code{\sacredHarpHeads}
 
 @snippets
 
@@ -2315,8 +2380,8 @@ base of the scale is determined by the @code{\key} command.
 @noindent
 To see all note head styles, see @ref{Note head styles}.
 
-@seealso
 
+@seealso
 Snippets:
 @rlsr{Pitches}.
 
@@ -2338,6 +2403,11 @@ Internals Reference:
 @cindex note heads, improvisation
 @cindex note heads, slashed
 
+@funindex \improvisationOn
+@funindex improvisationOn
+@funindex \improvisationOff
+@funindex improvisationOff
+
 Improvisation is sometimes denoted with slashed note heads, where
 the performer may choose any pitch but should play the specified
 rhythm.  Such note heads can be created:
@@ -2358,14 +2428,12 @@ rhythm.  Such note heads can be created:
 
 
 @predefined
+@code{\improvisationOn},
+@code{\improvisationOff}.
+@endpredefined
 
-@funindex \improvisationOn
-@funindex \improvisationOff
-
-@code{\improvisationOn}, @code{\improvisationOff}
 
 @seealso
-
 Snippets:
 @rlsr{Pitches}.
 
index b4436a9085837cbb2c6a948fd9415b62165dcff0..0460e7ad3b4bff11187deb9b2a64481f05b678b1 100644 (file)
@@ -81,6 +81,7 @@ The order of headings inside documentation sections should be:
 
 main docs
 @predefined
+@endpredefined
 @snippets
 @seealso
 @knownissues
@@ -126,10 +127,14 @@ main docs
   Any new concepts or links which require an explanation should go
   as a full sentence(s) in the main text.
 
+  Don't insert an empty line between @seealso and the first entry!
+  Otherwise there is excessive vertical space in the PDF output.
+
 * To create links, use @ref{} if the link is within the same
   manual.
 
-* @predefined  is for commands in ly/*-init.ly  FIXME?
+* @predefined ... @endpredefined is for commands in ly/*-init.ly
+  FIXME?
 
 * Do not include any real info in second-level sections (ie 1.1
   Pitches).  A first-level section may have introductory material,
index 2f8414cfb0b5dc71b5f247b5b551d13e4001776a..d82632e77f55985fd26339759a26318fe4cdb1f5 100644 (file)
@@ -7,7 +7,7 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @node Preface
 @unnumbered Preface
index 6327a5e19c6ef26abeee420e2e424b1d8d8fd883..91019af07bc0d977893e83c12a5dbe40310e0d2b 100644 (file)
@@ -7,7 +7,7 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @node Interfaces for programmers
 @chapter Interfaces for programmers
@@ -17,13 +17,13 @@ not familiar with Scheme, you may wish to read our
 @rlearning{Scheme tutorial}.
 
 @menu
-* Music functions::             
-* Programmer interfaces::       
-* Building complicated functions::  
-* Markup programmer interface::  
-* Contexts for programmers::    
+* Music functions::
+* Programmer interfaces::
+* Building complicated functions::
+* Markup programmer interface::
+* Contexts for programmers::
 * Scheme procedures as properties::
-* Using Scheme code instead of \tweak::  
+* Using Scheme code instead of \tweak::
 * Difficult tweaks::
 @end menu
 
@@ -34,13 +34,13 @@ not familiar with Scheme, you may wish to read our
 This section discusses how to create music functions within LilyPond.
 
 @menu
-* Overview of music functions::  
-* Simple substitution functions::  
-* Paired substitution functions::  
-* Mathematics in functions::    
-* Void functions::              
-* Functions without arguments::  
-* Overview of available music functions::  
+* Overview of music functions::
+* Simple substitution functions::
+* Paired substitution functions::
+* Mathematics in functions::
+* Void functions::
+* Functions without arguments::
+* Overview of available music functions::
 @end menu
 
 @node Overview of music functions
@@ -297,8 +297,8 @@ This section contains information about mixing LilyPond
 and Scheme.
 
 @menu
-* Input variables and Scheme::  
-* Internal music representation::  
+* Input variables and Scheme::
+* Internal music representation::
 @end menu
 
 
@@ -850,10 +850,10 @@ Markups are implemented as special Scheme functions which produce a
 Stencil object given a number of arguments.
 
 @menu
-* Markup construction in Scheme::  
-* How markups work internally::  
-* New markup command definition::  
-* New markup list command definition::  
+* Markup construction in Scheme::
+* How markups work internally::
+* New markup command definition::
+* New markup list command definition::
 @end menu
 
 
@@ -1182,7 +1182,7 @@ indented.  The indent width is taken from the @code{props} argument.
 @example
 #(define-markup-list-command (paragraph layout props args) (markup-list?)
    (let ((indent (chain-assoc-get 'par-indent props 2)))
-     (interpret-markup-list layout props 
+     (interpret-markup-list layout props
        (make-justified-lines-markup-list (cons (make-hspace-markup indent)
                                                args)))))
 @end example
@@ -1223,8 +1223,8 @@ This new markup list command can be used as follows:
 @section Contexts for programmers
 
 @menu
-* Context evaluation::          
-* Running a function on all layout objects::  
+* Context evaluation::
+* Running a function on all layout objects::
 @end menu
 
 @node Context evaluation
@@ -1322,7 +1322,7 @@ In this case, the procedure is executed as soon as the value of the
 property is requested during the formatting process.
 
 Most of the typesetting engine is driven by such callbacks.
-Properties that typically use callbacks include  
+Properties that typically use callbacks include
 
 @table @code
 @item stencil
@@ -1499,7 +1499,7 @@ and @code{PaperColumn}.  They can be changed with the
 @end example
 
 Note, however, that @code{\override}, applied to
-@code{NoteMusicalPaperColumn} and @code{PaperColumn}, still works as
+@code{NonMusicalPaperColumn} and @code{PaperColumn}, still works as
 expected within @code{\context} blocks.
 
 @end itemize
index d2d7c053e76486cc601b5ad9c839e06a0ad0dc98..689fd36009ae18c245af1c601b8498d24734e62d 100644 (file)
@@ -6,7 +6,7 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @node Repeats
 @section Repeats
@@ -29,7 +29,7 @@ notation for repeats with alternatives.
 @item unfold
 The repeated music is fully written out, as many times as
 specified by @var{repeatcount}.  This is useful when
-entering repetitious music. 
+entering repetitious music.
 
 @item percent
 These are beat or measure repeats.  They look like single slashes or
@@ -42,8 +42,8 @@ This is used to write tremolo beams.
 
 
 @menu
-* Long repeats::                
-* Short repeats::               
+* Long repeats::
+* Short repeats::
 @end menu
 
 @node Long repeats
@@ -55,9 +55,9 @@ repeat signs; or written out repeats, used to input repetitious music.
 Repeat signs can also be controlled manually.
 
 @menu
-* Normal repeats::              
-* Manual repeat marks::         
-* Written-out repeats::  
+* Normal repeats::
+* Manual repeat marks::
+* Written-out repeats::
 @end menu
 
 @cindex volta
@@ -132,7 +132,7 @@ e |
 or
 
 @lilypond[verbatim,quote,relative=2]
-\partial 4 
+\partial 4
 \repeat volta 4 { e4 | c2 d | e2 f | }
 \alternative {
   { \partial 4*3 g4 g g }
@@ -168,7 +168,6 @@ c1
 
 
 @seealso
-
 Music Glossary: @rglos{repeat}, @rglos{volta}.
 
 Notation Reference: @ref{Bar lines}, @ref{Modifying context plug-ins}.
@@ -179,6 +178,7 @@ Internals Reference: @rinternals{VoltaBracket},
 @rinternals{RepeatedMusic}, @rinternals{VoltaRepeatedMusic},
 @rinternals{UnfoldedRepeatedMusic}.
 
+
 @knownissues
 
 @cindex repeat, ambiguous
@@ -284,6 +284,7 @@ g4 a g a
 c1
 \set Score.repeatCommands = #'((volta #f) (volta "95") end-repeat)
 b1
+\set Score.repeatCommands = #'((volta #f))
 @end lilypond
 
 @cindex volta bracket with text
@@ -292,7 +293,7 @@ b1
 Text can be included with the volta bracket.  The text can be a
 number or numbers or markup text, see @ref{Formatting text}.  The
 simplest way to use markup text is to define the markup first,
-then include the the markup in a Scheme list.
+then include the markup in a Scheme list.
 
 @lilypond[verbatim,quote]
 voltaAdLib = \markup { 1. 2. 3... \text \italic { ad lib. } }
@@ -312,8 +313,8 @@ voltaAdLib = \markup { 1. 2. 3... \text \italic { ad lib. } }
 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
 {printing-a-repeat-sign-at-the-beginning-of-a-piece.ly}
 
-@seealso
 
+@seealso
 Notation Reference:
 @ref{Bar lines},
 @ref{Formatting text}.
@@ -371,13 +372,14 @@ c1
 c1
 @end lilypond
 
-@seealso
 
+@seealso
 Snippets: @rlsr{Repeats}.
 
 Internals Reference: @rinternals{RepeatedMusic},
 @rinternals{UnfoldedRepeatedMusic}.
 
+
 @node Short repeats
 @subsection Short repeats
 
@@ -386,8 +388,8 @@ take two basic forms: repeats of a single note to two measures,
 represented by slashes or percent signs; and tremolos.
 
 @menu
-* Percent repeats::             
-* Tremolo repeats::             
+* Percent repeats::
+* Tremolo repeats::
 @end menu
 
 @node Percent repeats
@@ -410,7 +412,7 @@ one or two measures are replaced by percent-like signs.  The syntax is
 @code{\repeat percent @var{number} @var{musicexpr}}
 @end example
 
-where @var{musicexpr} is a music expression. 
+where @var{musicexpr} is a music expression.
 
 @lilypond[verbatim,quote,relative=2]
 \repeat percent 4 { c4 }
@@ -423,11 +425,14 @@ where @var{musicexpr} is a music expression.
 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
 {percent-repeat-counter.ly}
 
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{percent-repeat-count-visibility.ly}
+
 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
 {isolated-percent-repeats.ly}
 
-@seealso
 
+@seealso
 Music Glossary: @rglos{percent repeat}, @rglos{simile}.
 
 Snippets: @rlsr{Repeats}.
@@ -437,6 +442,7 @@ Internals Reference: @rinternals{RepeatSlash},
 @rinternals{DoublePercentRepeatCounter},
 @rinternals{PercentRepeatCounter}, @rinternals{PercentRepeatedMusic}.
 
+
 @knownissues
 
 Only three kinds of percent repeats are supported: a single slash
@@ -483,7 +489,7 @@ note, but @code{\repeat tremolo 9} is not.
 The duration of the tremolo equals the duration of the
 braced expression multiplied by the number of repeats:
 @code{\repeat tremolo 8 @{ c16 d16 @}} gives a whole note tremolo,
-notated as two whole notes joined by tremolo beams. 
+notated as two whole notes joined by tremolo beams.
 
 There are two ways to put tremolo marks on a single note.  The
 @code{\repeat tremolo} syntax is also used here, in which case
@@ -509,8 +515,8 @@ c2:8 c:32
 c: c:
 @end lilypond
 
-@seealso
 
+@seealso
 Snippets: @rlsr{Repeats}.
 
 @cindex tremolo, cross-staff
index c64ea779a6f6d78ee9d9b4dc75e6de5e114ea940..e02d14258e5d01a72fe4637a4fe1763beb90422c 100644 (file)
@@ -6,7 +6,7 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @node Rhythms
 @section Rhythms
@@ -40,19 +40,23 @@ This section discusses rhythms, rests, durations, beaming and bars.
 
 @cindex durations, of notes
 @cindex note durations
+@cindex length of notes
+@cindex note lengths
 
 @funindex \longa
+@funindex longa
 @funindex \breve
+@funindex breve
 @funindex \maxima
+@funindex maxima
 
-Durations are designated by numbers and dots.
-Durations are entered as their reciprocal values.  For example, a
-quarter note is entered using a @code{4} (since it is a 1/4 note),
-and a half note is entered using a @code{2} (since it is a 1/2
-note).  For notes longer than a whole you must use the
-@code{\longa} (a double breve) and @code{\breve} commands.
-Durations as short as 64th notes may be specified.  Shorter values
-are possible, but only as beamed notes.
+Durations are designated by numbers and dots.  Durations are entered
+as their reciprocal values.  For example, a quarter note is entered
+using a @code{4} (since it is a 1/4 note), and a half note is entered
+using a @code{2} (since it is a 1/2 note).  For notes longer than a
+whole you must use the @code{\longa} (a double breve) and
+@code{\breve} commands.  Durations as short as 128th notes may be
+specified.  Shorter values are possible, but only as beamed notes.
 
 @c Two 64th notes are needed to obtain beams
 @lilypond[quote,verbatim,relative=2]
@@ -87,6 +91,8 @@ a a a2 a a4 a a1 a
 
 @cindex notes, dotted
 @cindex dotted notes
+@cindex notes, double-dotted
+@cindex double-dotted notes
 
 @funindex .
 
@@ -110,33 +116,38 @@ duration.  For details of this and other settings which control
 proportional notation, see @ref{Proportional notation}.
 
 @funindex \dotsUp
+@funindex dotsUp
 @funindex \dotsDown
+@funindex dotsDown
 @funindex \dotsNeutral
+@funindex dotsNeutral
 
 Dots are normally moved up to avoid staff lines, except in
 polyphonic situations.  Predefined commands are available to
 force a particular direction manually, for details
 see @ref{Direction and placement}.
 
-@predefined
 
+@predefined
 @code{\autoBeamOff},
 @code{\dotsUp},
 @code{\dotsDown},
 @code{\dotsNeutral}.
+@endpredefined
 
 
 @seealso
-
 Music Glossary:
 @rglos{breve},
 @rglos{longa},
+@rglos{maxima},
 @rglos{note value},
 @rglos{Duration names notes and rests}.
 
 Notation Reference:
 @ref{Automatic beams},
 @ref{Ties},
+@ref{Stems},
 @ref{Writing rhythms},
 @ref{Writing rests},
 @ref{Vocal music},
@@ -164,7 +175,9 @@ rests from 128th to maxima (8 x whole) may be printed.
 
 @cindex tuplets
 @cindex triplets
+
 @funindex \times
+@funindex times
 
 Tuplets are made from a music expression by multiplying all the
 durations with a fraction:
@@ -186,8 +199,11 @@ c4 c \times 2/3 { b4 a g }
 @end lilypond
 
 @funindex \tupletUp
+@funindex tupletUp
 @funindex \tupletDown
+@funindex tupletDown
 @funindex \tupletNeutral
+@funindex tupletNeutral
 
 The automatic placement of the tuplet bracket above or below the
 notes may be overridden manually with predefined commands, for
@@ -206,11 +222,12 @@ must be done with @code{\tweak}.
 To modify the duration of notes without printing a tuplet bracket,
 see @ref{Scaling durations}.
 
-@predefined
 
+@predefined
 @code{\tupletUp},
 @code{\tupletDown},
 @code{\tupletNeutral}.
+@endpredefined
 
 
 @snippets
@@ -229,11 +246,14 @@ see @ref{Scaling durations}.
 @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
 {changing-the-tuplet-number.ly}
 
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{non-default-tuplet-numbers.ly}
+
 @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
 {permitting-line-breaks-within-beamed-tuplets.ly}
 
-@seealso
 
+@seealso
 Music Glossary:
 @rglos{triplet},
 @rglos{tuplet},
@@ -255,6 +275,7 @@ Internals Reference:
 @rinternals{TupletNumber},
 @rinternals{TimeScaledMusic}.
 
+
 @knownissues
 @cindex grace notes within tuplet brackets
 When the first note on a staff is a grace note followed by a
@@ -270,12 +291,12 @@ placed within tuplet brackets.
 @cindex durations, scaling
 
 You can alter the duration of single notes, rests or chords by a
-fraction @code{N/M} by appending @code{*N/M} (or @code{*N} if
-@code{M} is 1) to the duration.
-This will not affect the appearance of the notes or rests
-produced, but the altered duration will be used in calculating the
-position within the measure and setting the duration in the MIDI
-output.  Multiplying factors may be combined such as @code{*L*M/N}.
+fraction @code{N/M} by appending @code{*N/M} (or @code{*N} if @code{M}
+is 1) to the duration.  This will not affect the appearance of the
+notes or rests produced, but the altered duration will be used in
+calculating the position within the measure and setting the duration
+in the MIDI output.  Multiplying factors may be combined such as
+@code{*L*M/N}.
 
 In the following example, the first three notes take up exactly
 two beats, but no triplet bracket is printed.
@@ -297,7 +318,9 @@ a multiplier.  This is useful for skipping many measures, e.g.,
 @code{s1*23}.
 
 @cindex compressing music
+
 @funindex \scaleDurations
+@funindex scaleDurations
 
 Longer stretches of music may be compressed by a fraction in the
 same way, as if every note, chord or rest had the fraction as a
@@ -327,7 +350,6 @@ notation, see @ref{Polymetric notation}.
 
 
 @seealso
-
 Notation Reference:
 @ref{Tuplets},
 @ref{Invisible rests},
@@ -341,6 +363,7 @@ Snippets:
 @unnumberedsubsubsec Ties
 
 @cindex tie
+
 @funindex ~
 
 A tie connects two adjacent note heads of the same pitch.  The tie
@@ -388,12 +411,14 @@ the chord.
 <c~ e g~ b> <c e g b>
 @end lilypond
 
-@funindex \repeatTie
 @cindex repeating ties
 @cindex ties, repeating
 @cindex volta brackets and ties
 @cindex ties and volta brackets
 
+@funindex \repeatTie
+@funindex repeatTie
+
 When a second alternative of a repeat starts with a tied note, you
 have to specify the repeated tie as follows:
 
@@ -408,7 +433,9 @@ have to specify the repeated tie as follows:
 
 @cindex laissez vibrer
 @cindex ties, laissez vibrer
+
 @funindex \laissezVibrer
+@funindex laissezVibrer
 
 @notation{L.v.} ties (@notation{laissez vibrer}) indicate that
 notes must not be damped at the end.  It is used in notation for
@@ -420,31 +447,43 @@ be entered as follows:
 @end lilypond
 
 @cindex ties, placement
+
 @funindex \tieUp
+@funindex tieUp
 @funindex \tieDown
+@funindex tieDown
 @funindex \tieNeutral
+@funindex tieNeutral
 
 The vertical placement of ties may be controlled, see
 Predefined commands, or for details, see
 @ref{Direction and placement}.
 
 @cindex ties, appearance
+@cindex ties, dotted
+@cindex ties, dashed
+@cindex dashed ties
+@cindex dotted ties
+
 @funindex \tieDotted
+@funindex tieDotted
 @funindex \tieDashed
+@funindex tieDashed
 @funindex \tieSolid
+@funindex tieSolid
 
 Solid, dotted or dashed ties may be specified, see Predefined
 commands.
 
 
 @predefined
-
 @code{\tieUp},
 @code{\tieDown},
 @code{\tieNeutral},
 @code{\tieDotted},
 @code{\tieDashed},
 @code{\tieSolid}.
+@endpredefined
 
 
 @snippets
@@ -457,7 +496,6 @@ commands.
 
 
 @seealso
-
 Music Glossary:
 @rglos{tie},
 @rglos{laissez vibrer}.
@@ -484,8 +522,6 @@ well-defined.  In these cases, a slur may be preferable.
 
 
 
-
-
 @node Writing rests
 @subsection Writing rests
 
@@ -501,15 +537,19 @@ Rests are entered as part of the music in music expressions.
 @unnumberedsubsubsec Rests
 @cindex rest
 @cindex rest, entering durations
-@cindex maxima
-@cindex longa
-@cindex breve
+@cindex maxima rest
+@cindex longa rest
+@cindex breve rest
 
 @funindex \rest
+@funindex rest
 @funindex r
 @funindex \maxima
+@funindex maxima
 @funindex \longa
+@funindex longa
 @funindex \breve
+@funindex breve
 
 Rests are entered like notes with the note name @code{r}.
 Durations longer than a whole rest use the predefined
@@ -559,6 +599,10 @@ a4\rest d4\rest
 
 
 @seealso
+Music Glossary:
+@rglos{breve},
+@rglos{longa},
+@rglos{maxima}.
 
 Notation Reference:
 @ref{Full measure rests}.
@@ -585,8 +629,11 @@ are rests from 128th to maxima (8 x whole).
 @cindex invisible rest
 @cindex rest, invisible
 @cindex spacer note
+@cindex spacer rest
+
 @funindex s
 @funindex \skip
+@funindex skip
 
 An invisible rest (also called a @q{spacer rest}) can be entered
 like a note with the note name@tie{}@code{s}:
@@ -632,8 +679,8 @@ any kind.
 \skip 1 \skip1 \skip 1
 @end lilypond
 
-@seealso
 
+@seealso
 Snippets:
 @rlsr{Rhythms}.
 
@@ -648,6 +695,8 @@ Internals Reference: @rinternals{SkipMusic}
 @cindex rest, multi-measure
 @cindex rest, full-measure
 @cindex whole rest for a full measure
+@cindex rest, whole for a full measure
+
 @funindex R
 
 Rests for one or more full measures are entered like notes with
@@ -662,10 +711,10 @@ R1*4
 b2^"Tutti" b4 a4
 @end lilypond
 
-The duration of full-measure rests is identical to the duration notation
-used for notes.  The duration in a multi-measure rest must always be an
-integral number of measure-lengths, so augmentation
-dots or fractions must often be used:
+The duration of full-measure rests is identical to the duration
+notation used for notes.  The duration in a multi-measure rest must
+always be an integral number of measure-lengths, so augmentation dots
+or fractions must often be used:
 
 @lilypond[quote,fragment,verbatim]
 \compressFullBarRests
@@ -679,9 +728,8 @@ R1*13/8 | R1*13/8*12 |
 R4*5*4 |
 @end lilypond
 
-A full-measure rest is printed as either a whole
-or breve rest, centered in the measure, depending on the time
-signature.
+A full-measure rest is printed as either a whole or breve rest,
+centered in the measure, depending on the time signature.
 
 @lilypond[quote,verbatim,fragment]
 \time 4/4
@@ -691,16 +739,19 @@ R1*3/2 |
 \time 8/4
 R1*2 |
 @end lilypond
-@funindex \expandFullBarRests
-@funindex \compressFullBarRests
+
 @cindex multi-measure rest, expanding
 @cindex multi-measure rest, contracting
 
-By default a multi-measure rest is expanded in the printed score
-to show all the rest measures explicitly.
-Alternatively, a mult-measure rest can be shown as a single measure
-containing a multi-measure rest symbol, with the number of measures of rest
-printed above the measure:
+@funindex \expandFullBarRests
+@funindex expandFullBarRests
+@funindex \compressFullBarRests
+@funindex compressFullBarRests
+
+By default a multi-measure rest is expanded in the printed score to
+show all the rest measures explicitly.  Alternatively, a multi-measure
+rest can be shown as a single measure containing a multi-measure rest
+symbol, with the number of measures of rest printed above the measure:
 
 @lilypond[quote,fragment,verbatim]
 % Default behavior
@@ -724,6 +775,9 @@ R2.*2 |
 @cindex fermata on multi-measure rest
 @cindex multi-measure rest, attaching fermata
 
+@funindex \fermataMarkup
+@funindex fermataMarkup
+
 Markups can be added to multi-measure rests.
 The predefined command @code{\fermataMarkup}
 is provided for adding fermatas.
@@ -754,12 +808,15 @@ R1^"right"
 When a multi-measure rest immediately follows a @code{\partial}
 setting, resulting bar-check warnings may not be displayed.
 
+
 @predefined
 @code{\textLengthOn},
 @code{\textLengthOff},
 @code{\fermataMarkup},
 @code{\compressFullBarRests},
 @code{\expandFullBarRests}.
+@endpredefined
+
 
 @snippets
 
@@ -779,8 +836,8 @@ setting, resulting bar-check warnings may not be displayed.
 @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
 {multi--measure-rest-markup.ly}
 
-@seealso
 
+@seealso
 Music Glossary:
 @rglos{multi-measure rest}.
 
@@ -799,6 +856,9 @@ Internals Reference:
 @rinternals{MultiMeasureRestText}.
 
 
+@cindex fingerings and multi-measure rests
+@cindex multi-measure rests and fingerings
+
 @knownissues
 
 If an attempt is made to use fingerings (e.g.,
@@ -833,7 +893,9 @@ Multi-measure rests do not take part in rest collisions.
 
 @cindex time signature
 @cindex meter
+
 @funindex \time
+@funindex time
 
 The time signature is set as follows:
 
@@ -842,7 +904,7 @@ The time signature is set as follows:
 \time 3/4 c2.
 @end lilypond
 
-@cindex Time signature, visibility of
+@cindex time signature, visibility of
 
 Time signatures are printed at the beginning of a piece
 and whenever the time signature changes.  If a change takes place
@@ -860,9 +922,13 @@ c c
 c c c c
 @end lilypond
 
+@cindex time signature style
+@cindex meter style
+
 @funindex \numericTimeSignature
+@funindex numericTimeSignature
 @funindex \defaultTimeSignature
-@cindex time signature style
+@funindex defaultTimeSignature
 
 The time signature symbol that is used in 2/2 and 4/4 time can be
 changed to a numeric style:
@@ -885,10 +951,12 @@ changed to a numeric style:
 Mensural time signatures are covered in
 @ref{Mensural time signatures}.
 
-@predefined
 
+@predefined
 @code{\numericTimeSignature},
 @code{\defaultTimeSignature}.
+@endpredefined
+
 
 @snippets
 
@@ -903,7 +971,6 @@ Mensural time signatures are covered in
 
 
 @seealso
-
 Music Glossary:
 @rglos{time signature}
 
@@ -929,7 +996,9 @@ Internals Reference:
 @cindex pickup measure
 @cindex measure, change length
 @cindex measurePosition
+
 @funindex \partial
+@funindex partial
 
 Partial or pick-up measures, such as an anacrusis or upbeat, are
 entered using the @code{\partial} command, with the syntax
@@ -965,8 +1034,8 @@ that this is set to a negative number by the @code{\partial}
 command: i.e., @code{\partial 4} is internally translated to
 @code{-4}, meaning @qq{there is a quarter note left in the measure.}
 
-@seealso
 
+@seealso
 Music Glossary:
 @rglos{anacrusis}.
 
@@ -979,6 +1048,7 @@ Snippets:
 Internal Reference:
 @rinternals{Timing_translator}.
 
+
 @knownissues
 
 The @code{\partial} command is intended to be used only at the
@@ -988,13 +1058,16 @@ odd warnings may occur.
 @node Unmetered music
 @unnumberedsubsubsec Unmetered music
 
-@funindex \cadenzaOn
-@funindex \cadenzaOff
 @cindex bar lines, turning off
 @cindex bar numbering, turning off
 @cindex cadenza
 @cindex unmetered music
 
+@funindex \cadenzaOn
+@funindex cadenzaOn
+@funindex \cadenzaOff
+@funindex cadenzaOff
+
 Bar lines and bar numbers are calculated automatically.  For
 unmetered music (some cadenzas, for example), this is not desirable.
 To turn off automatic calculation of bar lines and bar numbers,
@@ -1024,22 +1097,24 @@ c4 c d8 d d f4 g4.
 d4 e d c
 @end lilypond
 
-@predefined
 
+@predefined
 @code{\cadenzaOn},
 @code{\cadenzaOff}.
+@endpredefined
 
-@seealso
 
+@seealso
 Music Glossary:
 @rglos{cadenza}.
 
 Notation Reference:
-@c ref{Controlling visibility of objects}.
+@ref{Visibility of objects}.
 
 Snippets:
 @rlsr{Rhythms}.
 
+
 @knownissues
 
 LilyPond will insert line breaks and page breaks only at a
@@ -1062,9 +1137,17 @@ to indicate where breaks can occur.
 
 @cindex double time signatures
 @cindex signatures, polymetric
+@cindex time signatures, polymetric
+@cindex time signatures, double
 @cindex polymetric signatures
 @cindex meter, polymetric
 
+@funindex timeSignatureFraction
+@funindex \scaleDurations
+@funindex scaleDurations
+@funindex \times
+@funindex times
+
 Polymetric notation is supported, either explicitly or by modifying
 the visible time signature symbol and scaling the note durations.
 
@@ -1079,6 +1162,9 @@ signature; see @ref{Time signature}.  The scaling is done with
 @code{\times}, but does not create a tuplet bracket; see
 @ref{Scaling durations}.
 
+@cindex beaming in polymetric music
+@cindex beaming in polymetric meter
+
 In this example, music with the time signatures of 3/4, 9/8, and
 10/8 are used in parallel.  In the second staff, shown durations
 are multiplied by 2/3, as 2/3 * 9/8 = 3/4, and in the third
@@ -1162,7 +1248,6 @@ moving the @code{Timing_translator} and the
 
 
 @seealso
-
 Music Glossary:
 @rglos{polymetric},
 @rglos{polymetric time signature},
@@ -1181,6 +1266,7 @@ Internals Reference:
 @rinternals{Default_bar_line_engraver},
 @rinternals{Staff}.
 
+
 @knownissues
 
 When using different time signatures in parallel, notes
@@ -1196,6 +1282,9 @@ time signatures.
 @cindex notes, splitting
 @cindex splitting notes
 
+@funindex Note_heads_engraver
+@funindex Completion_heads_engraver
+
 Long notes which overrun bar lines can be converted automatically
 to tied notes.  This is done by replacing the
 @code{Note_heads_engraver} with the
@@ -1216,8 +1305,8 @@ inserts ties.  One of its uses is to debug complex scores: if the
 measures are not entirely filled, then the ties show exactly how
 much each measure is off.
 
-@seealso
 
+@seealso
 Music Glossary: @rglos{tie}
 
 Learning Manual:
@@ -1246,6 +1335,9 @@ split rests.
 @node Showing melody rhythms
 @unnumberedsubsubsec Showing melody rhythms
 
+@cindex melody rhythms, showing
+@cindex rhythms, showing melody
+
 Sometimes you might want to show only the rhythm of a melody.  This
 can be done with the rhythmic staff.  All pitches of notes on such a
 staff are squashed, and the staff itself has a single line
@@ -1269,6 +1361,16 @@ staff are squashed, and the staff itself has a single line
 >>
 @end lilypond
 
+@cindex guitar chord charts
+@cindex strumming rhythms, showing
+@cindex guitar strumming rhythms, showing
+
+@funindex Pitch_squash_engraver
+@funindex \improvisationOn
+@funindex improvisationOn
+@funindex \improvisationOff
+@funindex improvisationOff
+
 Guitar chord charts often show the strumming rhythms.  This can
 be done with the @code{Pitch_squash_engraver} and
 @code{\improvisationOn}.
@@ -1294,17 +1396,20 @@ be done with the @code{Pitch_squash_engraver} and
 >>
 @end lilypond
 
+
 @predefined
 @code{\improvisationOn},
 @code{\improvisationOff}.
+@endpredefined
+
 
 @snippets
 
 @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
 {guitar-strum-rhythms.ly}
 
-@seealso
 
+@seealso
 Snippets:
 @rlsr{Rhythms}.
 
@@ -1312,6 +1417,7 @@ Internals Reference:
 @rinternals{RhythmicStaff},
 @rinternals{Pitch_squash_engraver}.
 
+
 @node Beams
 @subsection Beams
 
@@ -1329,6 +1435,16 @@ By default, beams are inserted automatically:
 
 @cindex beams, manual
 @cindex manual beams
+@cindex beams, setting rules for
+@cindex beams, custom rules for
+
+@funindex measureLength
+@funindex beatLength
+@funindex beatGrouping
+@funindex \autoBeamOn
+@funindex autoBeamOn
+@funindex \autoBeamOff
+@funindex autoBeamOff
 
 @lilypond[quote,verbatim,relative=2]
 \time 2/4 c8 c c c
@@ -1336,7 +1452,11 @@ By default, beams are inserted automatically:
 @end lilypond
 
 If these automatic decisions are not satisfactory, beaming can be
-entered explicitly; see @ref{Manual beams}.  It is also possible
+entered explicitly; see @ref{Manual beams}.  Beams must also be
+entered manually in the same way if beams are to be extended over
+rests.
+
+It is possible
 to define beaming patterns that differ from the defaults.  The
 default beaming rules for most common time signatures are defined
 in @file{scm/@/auto@/-beam@/.scm}.  If there are no beaming rules
@@ -1346,8 +1466,6 @@ properties, @code{measureLength}, @code{beatLength} and
 @code{beatGrouping}.  Both the beaming rules and the context
 properties can be overridden, see @ref{Setting automatic beam behavior}.
 
-@cindex autoBeamOn
-@cindex autoBeamOff
 
 @warning{If beams are used to indicate melismata in songs, then automatic
 beaming should be switched off with @code{\autoBeamOff} and the beams
@@ -1366,15 +1484,19 @@ c4 c8 c8. c16 c8.
 c16 c8
 @end lilypond
 
+
 @predefined
 @code{\autoBeamOff},
 @code{\autoBeamOn}.
+@endpredefined
+
 
 @snippets
 
+@cindex line breaks and beams
+@cindex beams and line breaks
+
 @funindex breakable
-@cindex break, line
-@cindex line breaks
 
 @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
 {beams-across-line-breaks.ly}
@@ -1382,8 +1504,8 @@ c16 c8
 @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
 {changing-beam-knee-gap.ly}
 
-@seealso
 
+@seealso
 Notation Reference:
 @ref{Manual beams},
 @ref{Setting automatic beam behavior}.
@@ -1408,10 +1530,6 @@ Beams can collide with note heads and accidentals in other voices
 @node Setting automatic beam behavior
 @unnumberedsubsubsec Setting automatic beam behavior
 
-@funindex autoBeaming
-@funindex autoBeamSettings
-@funindex (end * * * *)
-@funindex (begin * * * *)
 
 @cindex automatic beams, tuning
 @cindex tuning automatic beaming
@@ -1419,6 +1537,17 @@ Beams can collide with note heads and accidentals in other voices
 @cindex autobeam
 @cindex lyrics and beaming
 
+@funindex autoBeaming
+@funindex autoBeamSettings
+@funindex (end * * * *)
+@funindex (begin * * * *)
+@funindex measureLength
+@funindex beatLength
+@funindex beatGrouping
+@funindex \time
+@funindex time
+@funindex \set
+@funindex set
 
 The placement of automatic beams is determined by the rules
 described in @ref{Automatic beams}.  There are two mutually
@@ -1440,7 +1569,9 @@ particular beam in the time signature in use, its beaming is
 controlled by three context properties:
 @code{measureLength}, @code{beatLength} and @code{beatGrouping}.
 These properties may be set in the @code{Score}, @code{Staff} or
-@code{Voice} contexts to delimit their scope.
+@code{Voice} contexts to delimit their scope.  The default values
+are set while processing @code{\time} commands, so the @code{\set}
+commands must be placed after all @code{\time} commands.
 
 These determine the beaming as follows:
 
@@ -1678,42 +1809,22 @@ a a a a
 @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
 {reverting-default-beam-endings.ly}
 
-@c TODO Convert to snippet called "Beam endings in Score context"
-@c Submitted to LSR 3 Nov 08
-
-Beam-ending rules specified in the Score context apply to all
-staves, but can be modified at both Staff and Voice levels:
-
-@lilypond[quote,verbatim,relative=2]
-  \time 5/4
-  % Set default beaming for all staves
-  #(override-auto-beam-setting '(end * * 5 4) 3 8 'Score)
-  #(override-auto-beam-setting '(end * * 5 4) 7 8 'Score)
-  <<
-    \new Staff {
-      c8 c c c c c c c c c
-    }
-    \new Staff {
-      % Modify beaming for just this staff
-      #(override-auto-beam-setting '(end * * 5 4) 6 8 'Staff)
-      #(revert-auto-beam-setting '(end * * 5 4) 7 8 'Staff)
-      c8 c c c c c c c c c
-    }
-    \new Staff {
-      % Inherit beaming from Score context
-      c8 c c c c c c c c c
-    }
-  >>
-@end lilypond
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{beam-endings-in-score-context.ly}
 
+@funindex \autoBeamOff
+@funindex autoBeamOff
+@funindex \autoBeamOn
+@funindex autoBeamOn
 
 @predefined
-
-@funindex \autoBeamOff
 @code{\autoBeamOff},
-@funindex \autoBeamOn
 @code{\autoBeamOn}.
+@endpredefined
+
 
+@cindex beam, last in score
+@cindex beam, last in polyphonic voice
 
 @knownissues
 
@@ -1723,8 +1834,8 @@ The same holds for polyphonic voices, entered with @code{<<
 @dots{} \\ @dots{} >>}.  If a polyphonic voice ends while an
 automatic beam is still accepting notes, it is not typeset.
 
-@seealso
 
+@seealso
 Snippets:
 @rlsr{Rhythms}.
 
@@ -1733,6 +1844,8 @@ Snippets:
 @unnumberedsubsubsec Manual beams
 
 @cindex beams, manual
+@cindex manual beams
+
 @funindex ]
 @funindex [
 
@@ -1750,6 +1863,9 @@ marking the begin and end point with @code{[} and @code{]}
 @end lilypond
 
 
+@funindex \noBeam
+@funindex noBeam
+
 Individual notes may be marked with @code{\noBeam} to prevent them
 from being beamed:
 
@@ -1789,7 +1905,10 @@ g a]
 @unnumberedsubsubsec Feathered beams
 
 @cindex beams, feathered
+
 @funindex \featherDurations
+@funindex featherDurations
+@funindex grow-direction
 
 Feathered beams are used to indicate that a small group of notes
 should be played at an increasing (or decreasing) tempo, without
@@ -1805,11 +1924,10 @@ music expression delimited by braces and preceded by a
 @code{featheredDurations} command which specifies the ratio
 between the durations of the first and last notes in the group.
 
-The square brackets
-show the extent of the beam and the braces show
-which notes are to have their durations modified.  Normally
-these would delimit the same group of notes, but this is not
-required: the two commands are independent.
+The square brackets show the extent of the beam and the braces show
+which notes are to have their durations modified.  Normally these
+would delimit the same group of notes, but this is not required: the
+two commands are independent.
 
 In the following example the eight 16th notes occupy exactly the
 same time as a half note, but the first note is one half as long
@@ -1838,13 +1956,12 @@ note durations only approximately, but the MIDI output is exact.
 The @code{\featherDurations} command only works with very short
 music snippets, and when numbers in the fraction are small.
 
-@seealso
 
+@seealso
 Snippets:
 @rlsr{Rhythms}.
 
 
-
 @node Bars
 @subsection Bars
 
@@ -1860,10 +1977,12 @@ Snippets:
 @unnumberedsubsubsec Bar lines
 
 @cindex bar lines
-@funindex \bar
 @cindex measure lines
 @cindex repeat bars
 
+@funindex \bar
+@funindex bar
+
 Bar lines delimit measures, and are also used to indicate
 repeats.  Normally, simple bar lines are automatically inserted
 into the printed output at places based on the current time
@@ -1907,19 +2026,24 @@ force) a line break to occur at this point.  The bar number
 counter is not increased.  To force a line break see
 @ref{Line breaking}.
 
+@cindex manual bar lines
+@cindex manual measure lines
+@cindex bar lines, manual
+@cindex measure lines, manual
+
 This and other special bar lines may be inserted manually at any
-point.  When they coincide with the end of a measure they replace
-the simple bar line which would have been inserted there
-automatically.  When they do not coincide
-with the end of a measure the specified bar line is inserted at that
-point in the printed output.  Such insertions do not affect
-the calculation and placement of subsequent automatic bar lines.
-
-The simple bar line and five types of double bar line are available
+point.  When they coincide with the end of a measure they replace the
+simple bar line which would have been inserted there automatically.
+When they do not coincide with the end of a measure the specified bar
+line is inserted at that point in the printed output.  Such insertions
+do not affect the calculation and placement of subsequent automatic
+bar lines.
+
+Two types of simple bar lines and five types of double bar lines are available
 for manual insertion:
 
 @lilypond[quote,relative=1,verbatim]
-f1 \bar "|" g \bar "||" a \bar ".|" b \bar ".|." c \bar "|.|" d \bar "|." e
+f1 \bar "|" f \bar "." g \bar "||" a \bar ".|" b \bar ".|." c \bar "|.|" d \bar "|." e
 @end lilypond
 
 @noindent
@@ -1936,6 +2060,15 @@ and five types of repeat bar line:
 f1 \bar "|:" g \bar ":|:" a \bar ":|.|:" b \bar ":|.:" c \bar ":|" d
 @end lilypond
 
+Additionally, a bar line can be printed as a simple tick:
+@lilypond[quote,relative=1,verbatim]
+f1 \bar "'"
+@end lilypond
+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.
+
+
 @cindex repeats
 
 Although the bar line types signifying repeats may be inserted
@@ -1961,7 +2094,7 @@ c c c c
 In scores with many staves, a @code{\bar} command in one staff is
 automatically applied to all staves.  The resulting bar lines are
 connected between different staves of a @code{StaffGroup},
-@code{InnerStaffGroup}, @code{PianoStaff}, or @code{GrandStaff}.
+@code{PianoStaff}, or @code{GrandStaff}.
 
 @lilypond[quote,fragment,verbatim]
 <<
@@ -1982,6 +2115,9 @@ connected between different staves of a @code{StaffGroup},
 
 @funindex whichBar
 @funindex defaultBarType
+@funindex \bar
+@funindex bar
+@funindex bartype
 
 The command @code{\bar }@var{bartype} is a shortcut for
 @code{\set Timing.whichBar = }@var{bartype}.  A bar line is
@@ -1992,8 +2128,8 @@ The default bar type used for automatically inserted bar lines is
 @code{"|"}.  This may be changed at any time
 with @code{\set Timing.defaultBarType = }@var{bartype}.
 
-@seealso
 
+@seealso
 Notation Reference:
 @ref{Line breaking},
 @ref{Repeats},
@@ -2013,6 +2149,9 @@ properties).
 
 @cindex bar numbers
 @cindex measure numbers
+@cindex numbers, bar
+@cindex numbers, measure
+
 @funindex currentBarNumber
 
 Bar numbers are typeset by default at the start of every line except
@@ -2030,9 +2169,14 @@ c1 c c c
 
 @snippets
 
-@funindex barNumberVisibility
 @cindex bar numbers, regular spacing
 
+@funindex barNumberVisibility
+
+@c Uncomment this after next LSR update.
+@c @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+@c {printing-the-bar-number-for-the-first-measure.ly}
+
 Bar numbers can be typeset at regular intervals instead of just at
 the beginning of every line.  To do this the default behavior
 must be overridden to permit bar numbers to be printed at places
@@ -2141,13 +2285,15 @@ Bar numbers can be removed entirely by removing the
 
 
 @seealso
-
 Snippets:
 @rlsr{Rhythms}.
 
 Internals Reference: @rinternals{BarNumber}.
 
 
+@cindex bar number collision
+@cindex collision, bar number
+
 @knownissues
 
 Bar numbers may collide with the top of the
@@ -2155,36 +2301,25 @@ Bar numbers may collide with the top of the
 this, the @code{padding} property of @rinternals{BarNumber} can
 be used to position the number correctly.
 
-Bar numbers may only be printed at bar lines; to print a bar
-number at the beginning of a piece, an empty bar line must be
-inserted there, and a value other than @code{1} must be placed
-in @code{currentBarNumber}:
-
-@lilypond[verbatim,quote,relative=1]
-\set Score.currentBarNumber = #50
-\bar ""
-c1 c c c
-c1 c c c
-\break
-@end lilypond
-
 
 
 @node Bar and bar number checks
 @unnumberedsubsubsec Bar and bar number checks
 
 @cindex bar check
+@cindex bar number check
+@cindex measure check
+@cindex measure number check
+
 @funindex barCheckSynchronize
 @funindex |
 
-Bar checks help detect errors in the entered durations.
-A bar check may be entered using the bar symbol, @code{|},
-at any place where a bar line is expected to fall.
-If bar check lines are encountered at other places,
-a list of warnings is printed in the log file,
-showing the line numbers and lines
-in which the bar checks failed.  In the next
-example, the second bar check will signal an error.
+Bar checks help detect errors in the entered durations.  A bar check
+may be entered using the bar symbol, @code{|}, at any place where a
+bar line is expected to fall.  If bar check lines are encountered at
+other places, a list of warnings is printed in the log file, showing
+the line numbers and lines in which the bar checks failed.  In the
+next example, the second bar check will signal an error.
 
 @example
 \time 3/4 c2 e4 | g2 |
@@ -2230,6 +2365,9 @@ pipeSymbol = \bar "||"
 }
 @end lilypond
 
+@funindex \barNumberCheck
+@funindex barNumberCheck
+
 When copying large pieces of music, it can be helpful to check
 that the LilyPond bar number corresponds to the original that you
 are entering from.  This can be checked with
@@ -2243,8 +2381,8 @@ are entering from.  This can be checked with
 will print a warning if the @code{currentBarNumber} is not 123
 when it is processed.
 
-@seealso
 
+@seealso
 Snippets:
 @rlsr{Rhythms}.
 
@@ -2254,7 +2392,9 @@ Snippets:
 
 @cindex rehearsal marks
 @cindex mark, rehearsal
+
 @funindex \mark
+@funindex mark
 
 To print a rehearsal mark, use the @code{\mark} command
 
@@ -2285,6 +2425,9 @@ mark manually.  The value to use is stored in the property
 @cindex format, rehearsal mark
 @cindex mark, rehearsal, style
 @cindex mark, rehearsal, format
+@cindex rehearsal mark, manual
+@cindex mark, rehearsal, manual
+@cindex custom rehearsal mark
 
 The style is defined by the property @code{markFormatter}.  It is
 a function taking the current mark (an integer) and the current
@@ -2334,6 +2477,12 @@ string.
 @cindex segno
 @cindex coda
 @cindex D.S al Fine
+@cindex fermata
+@cindex music glyphs
+@cindex glyphs, music
+
+@funindex \musicglyph
+@funindex musicglyph
 
 Music glyphs (such as the segno sign) may be printed inside a
 @code{\mark}
@@ -2352,8 +2501,8 @@ printed with @code{\musicglyph}.
 For common tweaks to the positioning of rehearsal marks, see
 @ref{Formatting text}.
 
-@seealso
 
+@seealso
 Notation Reference:
 @ref{The Feta font},
 @ref{Formatting text}.
@@ -2369,6 +2518,7 @@ Snippets:
 
 Internals Reference: @rinternals{RehearsalMark}.
 
+
 @node Special rhythmic concerns
 @subsection Special rhythmic concerns
 
@@ -2382,12 +2532,14 @@ Internals Reference: @rinternals{RehearsalMark}.
 @node Grace notes
 @unnumberedsubsubsec Grace notes
 
-@funindex \grace
 @cindex ornaments
 @cindex grace notes
 @cindex appoggiatura
 @cindex acciaccatura
 
+@funindex \grace
+@funindex grace
+
 Grace notes are ornaments that are written out. Grace notes
 are printed in a smaller font and take up no logical time
 in a measure.
@@ -2419,10 +2571,11 @@ notes for every eighth grace note
    \new Staff { c2 \grace { g8[ b] } c2 } >>
 @end lilypond
 
-@funindex \afterGrace
-
 @cindex grace notes, following
 
+@funindex \afterGrace
+@funindex afterGrace
+
 If you want to end a note with a grace, use the @code{\afterGrace}
 command.  It takes two arguments: the main note, and the grace
 notes following the main note.
@@ -2547,7 +2700,6 @@ in other staves:
 
 
 @seealso
-
 Music Glossary:
 @rglos{grace notes},
 @rglos{acciaccatura},
@@ -2628,8 +2780,8 @@ MyCadenza = \relative c' {
 >>
 @end lilypond
 
-@seealso
 
+@seealso
 Music Glossary:
 @rglos{cadenza}.
 
@@ -2710,7 +2862,6 @@ notes.
 
 
 @seealso
-
 This manual: @ref{Bar numbers}, @ref{Unmetered music}
 
 Snippets:
index 0bbd4d14bb75befa94fc4b698639a762658b2e33..ecae5f9e82f381a727e245e1193064fd049b7ed0 100644 (file)
@@ -7,7 +7,7 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 
 @node Running LilyPond
@@ -89,9 +89,9 @@ number.  An input file containing
 
 @example
 #(define output-suffix "violin")
-\book @{ @dots{} @}
+\score @{ @dots{} @}
 #(define output-suffix "cello")
-\book @{ @dots{} @}
+\score @{ @dots{} @}
 @end example
 
 @noindent
@@ -130,7 +130,7 @@ at the top of the @code{.ly} file.
 
 @item -f,--format=@var{format}
 which formats should be written.  Choices for @code{format} are
-@code{svg}, @code{ps}, @code{pdf}, @code{png}, @code{tex}, @code{dvi}.
+@code{svg}, @code{ps}, @code{pdf}, and @code{png}.
 
 Example: @code{lilypond -fpng @var{filename}.ly}
 
@@ -208,20 +208,13 @@ The safe mode will prevent many useful LilyPond snippets from being
 compiled.  The @code{--jail} is a more secure alternative, but
 requires more work to set up.
 
+@cindex output format, setting
 @item backend
 the output format to use for the back-end.  Choices for @code{format} are
 @table @code
-@item tex
-for @TeX{} output, to be processed with La@TeX{}.  If present, the file
-@file{file.textmetrics} is read to determine text extents.
-@item texstr
-dump text strings to @file{.texstr} file, which can be run through
-(La)@TeX{}, resulting in a @code{.textmetrics} file, which contains the
-extents of strings of text.  @strong{Warning:} this functionality is
-currently missing due to heavy restructuring of the source code.
 @item ps
- for PostScript.
 @cindex PostScript output
+ for PostScript.
 
   Postscript files include TTF, Type1 and OTF fonts.  No subsetting of
   these fonts is done.  When using oriental character sets, this can
@@ -235,23 +228,24 @@ all pages (systems) including fonts.
 This mode is used by default by @command{lilypond-book}.
 
 @item svg
+@cindex SVG (Scalable Vector Graphics)
  for SVG (Scalable Vector Graphics).  This dumps every page as a separate
 @file{SVG} file, with embedded fonts.
-@cindex SVG (Scalable Vector Graphics)
   You need a SVG viewer which supports embedded fonts, or a SVG
   viewer which is able to replace the embedded fonts with OTF fonts.
   Under UNIX, you may use @uref{http://www.inkscape.org,Inkscape}
   (version 0.42 or later), after copying the OTF fonts from the LilyPond directory
   (typically @file{/usr/share/lilypond/VERSION/fonts/otf/}) to @file{~/.fonts/}.
 @item scm
- for a dump of the raw, internal Scheme-based drawing commands.
 @cindex Scheme dump
+ for a dump of the raw, internal Scheme-based drawing commands.
+
+@item null
+ do not output a printed score; has the same effect as @code{-dno-print-pages}.
 @end table
 
 Example: @code{lilypond -dbackend=svg @var{filename}.ly}
 
-@cindex output format, setting
-
 @item preview
 Generate an output file containing the titles and the first system
 
@@ -279,16 +273,11 @@ Set init file to @var{file} (default: @file{init.ly}).
 
 @item -o,--output=@var{FILE}
 Set the default output file to @var{FILE}.  The appropriate
-suffix will be added (i.e. @code{.pdf} for pdf, @code{.tex}
-for tex, etc).
+suffix will be added (e.g. @code{.pdf} for pdf)
 
 @item --ps
 Generate PostScript.
 
-@item --dvi
-Generate DVI files.  In this case, the @TeX{} backend should be
-specified, i.e., @code{-dbackend=tex}.
-
 @item --png
 Generate pictures of each page, in PNG format.  This implies
 @code{--ps}.  The resolution in DPI of the image may be set with
index 403180d9bc72e5f1f1965c63822e2591265d9d83..6d8f33e0f8f285083a8a0ac152fd2ee6d222931f 100644 (file)
@@ -7,7 +7,7 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @node Scheme tutorial
 @appendix Scheme tutorial
@@ -211,7 +211,7 @@ respectively,
 
 
 @menu
-* Tweaking with Scheme::        
+* Tweaking with Scheme::
 @end menu
 
 @node Tweaking with Scheme
index 796db8dc4047d71975a3cd57bd60b9d7c6eb98ef..d91d35cbcd51167c9d2dedc973424403e544fca3 100644 (file)
@@ -7,7 +7,7 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @node Setup
 @chapter Setup
@@ -17,9 +17,9 @@ LilyPond and various other programs.  This chapter may be safely treated
 as a reference: only read a section if it applies to you.
 
 @menu
-* Setup for specific Operating Systems::  
-* Text editor support::         
-* Point and click::             
+* Setup for specific Operating Systems::
+* Text editor support::
+* Point and click::
 @end menu
 
 
@@ -30,7 +30,7 @@ This section explains how to perform additional setup for specific
 operating systems.
 
 @menu
-* Setup for MacOS X::  
+* Setup for MacOS X::
 @end menu
 
 @node Setup for MacOS X
@@ -124,12 +124,12 @@ Note that @var{path/to} will generally be @code{/Applications/}.
 There is support from different text editors for LilyPond.
 
 @menu
-* Emacs mode::                  
-* Vim mode::                    
-* jEdit::                       
-* TexShop::                     
-* TextMate::                    
-* LilyKDE::                     
+* Emacs mode::
+* Vim mode::
+* jEdit::
+* TexShop::
+* TextMate::
+* LilyKDE::
 @end menu
 
 @node Emacs mode
@@ -206,7 +206,7 @@ installation instructions, visit
 
 The @uref{http://@/www@/.uoregon@/.edu/~koch/texshop/index@/.html,TexShop}
 editor for MacOS@tie{}X can be extended to run LilyPond, lilypond-book and
-convert-ly from within the editor, using the extensions available at 
+convert-ly from within the editor, using the extensions available at
 @uref{http://@/www@/.dimi@/.uniud@/.it/vitacolo/freesoftware@/.html}.
 
 
index f224fa479ec01e2559aa1b1b94ffc47be099d927..01e2c8d07dc0c4ab0289d60471170951d823fc5c 100644 (file)
@@ -6,7 +6,7 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 
 @node Simultaneous notes
@@ -63,8 +63,8 @@ pitch is the @emph{first} pitch of the preceding chord.
 
 For more information about chords, see @ref{Chord notation}.
 
-@seealso
 
+@seealso
 Music Glossary:
 @rglos{chord}.
 
@@ -77,6 +77,7 @@ Notation Reference:
 Snippets:
 @rlsr{Simultaneous notes}.
 
+
 @node Simultaneous expressions
 @unnumberedsubsubsec Simultaneous expressions
 
@@ -137,8 +138,8 @@ Ordinary notes and clusters can be put together in the same staff,
 even simultaneously.  In such a case no attempt is made to
 automatically avoid collisions between ordinary notes and clusters.
 
-@seealso
 
+@seealso
 Music Glossary:
 @rglos{cluster}.
 
@@ -150,6 +151,7 @@ Internals Reference:
 @rinternals{ClusterSpannerBeacon},
 @rinternals{Cluster_spanner_engraver}.
 
+
 @knownissues
 
 Clusters look good only if they span at least two chords; otherwise
@@ -322,23 +324,25 @@ them in a simple simultaneous music construct within an explicit voice:
 This method leads to strange beamings and warnings if the pieces of
 music do not have the same rhythm.
 
-@predefined
 
+@predefined
 @code{\voiceOne},
 @code{\voiceTwo},
 @code{\voiceThree},
 @code{\voiceFour},
 @code{\oneVoice}.
+@endpredefined
 
-@seealso
 
+@seealso
 Learning Manual:
 @rlearning{Voices contain music},
 @rlearning{Explicitly instantiating voices}.
 
 Notation Reference:
 @ref{Percussion staves},
-@ref{Invisible rests}.
+@ref{Invisible rests},
+@ref{Stems}.
 
 Snippets:
 @rlsr{Simultaneous notes}.
@@ -374,18 +378,17 @@ easily identified:
 The @code{\voiceNeutralstyle} command is used to revert to the
 standard presentation.
 
-@predefined
-
 
+@predefined
 @code{\voiceOneStyle},
-
 @code{\voiceTwoStyle},
 @code{\voiceThreeStyle},
 @code{\voiceFourStyle},
 @code{\voiceNeutralStyle}.
+@endpredefined
 
-@seealso
 
+@seealso
 Learning Manual:
 @rlearning{I'm hearing Voices},
 @rlearning{Other sources of information}.
@@ -528,7 +531,6 @@ Notes are only merged if they have opposing stem directions (e.g. in
 
 
 @predefined
-
 @code{\mergeDifferentlyDottedOn},
 @code{\mergeDifferentlyDottedOff},
 @code{\mergeDifferentlyHeadedOn},
@@ -538,6 +540,8 @@ Notes are only merged if they have opposing stem directions (e.g. in
 @code{\shiftOnn},
 @code{\shiftOnnn},
 @code{\shiftOff}.
+@endpredefined
+
 
 @snippets
 
@@ -547,8 +551,8 @@ Notes are only merged if they have opposing stem directions (e.g. in
 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
 {forcing-horizontal-shift-of-notes.ly}
 
-@seealso
 
+@seealso
 Music Glossary:
 @rglos{polyphony}.
 
@@ -565,6 +569,7 @@ Internals Reference:
 @rinternals{NoteCollision},
 @rinternals{RestCollision}.
 
+
 @knownissues
 
 When using @code{\mergeDifferentlyHeadedOn} with an upstem eighth
@@ -671,8 +676,8 @@ has no effect on the pitches of @var{musicexpr1} and
 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
 {changing-partcombine-texts.ly}
 
-@seealso
 
+@seealso
 Music Glossary:
 @rglos{a due},
 @rglos{part}.
@@ -687,9 +692,10 @@ Internals Reference:
 @rinternals{PartCombineMusic},
 @rinternals{Voice}.
 
+
 @knownissues
 
-@code{\partcombine} can only accept two voices. 
+@code{\partcombine} can only accept two voices.
 
 When @code{printPartCombineTexts} is set, if the two voices play
 the same notes on and off, the part combiner may typeset @code{a2}
@@ -823,8 +829,8 @@ global = {
 }
 @end lilypond
 
-@seealso
 
+@seealso
 Learning Manual:
 @rlearning{Organizing pieces with variables}.
 
index c4e303010e86d4fbbe976b90a19c2b8ea260739e..9f5be80e2d0844ce281b1690c0f59657f70ffc5a 100644 (file)
@@ -7,7 +7,7 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @ignore
 GDP TODO list
@@ -162,7 +162,6 @@ the variables.
 
 
 @seealso
-
 Installed Files:
 @file{scm/@/paper@/.scm}.
 
@@ -350,7 +349,6 @@ page given the system to put on it.
 
 
 @seealso
-
 Notation Reference:
 @ref{Vertical spacing between systems}.
 
@@ -414,7 +412,6 @@ first system.  Default: @code{0}, as determined by
 
 
 @seealso
-
 Snippets:
 @rlsr{Spacing}.
 
@@ -552,6 +549,9 @@ page.  Default: @code{##t}.
 Pieces that amply fill two pages or more should have this set to
 true.
 
+It also affects the last page of book parts, ie parts of a book created
+with @code{\bookpart} blocks.
+
 @item ragged-right
 @funindex ragged-right
 
@@ -561,8 +561,8 @@ systems end at their natural horizontal length.  Default:
 
 If the score has only one system, the default value is @code{##t}.
 
-@item systemSeparatorMarkup
-@funindex systemSeparatorMarkup
+@item system-separator-markup
+@funindex system-separator-markup
 
 A markup object that is inserted between systems.  This is often
 used for orchestral scores.  Default: unset.
@@ -577,7 +577,7 @@ default,  for example
     \relative { c1 \break c1 }
   }
   \paper {
-    systemSeparatorMarkup = \slashSeparator
+    system-separator-markup = \slashSeparator
   }
 }
 @end lilypond
@@ -592,7 +592,6 @@ Default: unset.
 
 
 @seealso
-
 Snippets:
 @rlsr{Spacing}.
 
@@ -709,13 +708,8 @@ These fonts are available in any sizes.  The context property
 @rinternals{StaffSymbol}) can be used to tune the size for individual
 staves.  The sizes of individual staves are relative to the global size.
 
-@example
-
-@end example
-
 
 @seealso
-
 Notation Reference:
 @ref{Selecting notation font size}.
 
@@ -753,7 +747,6 @@ layout.
 
 
 @seealso
-
 Notation Reference:
 @ref{Changing context default settings}.
 
@@ -847,15 +840,14 @@ complicated.  More details are available in
 
 
 @predefined
-
 @funindex \break
 @code{\break},
 @funindex \noBreak
 @code{\noBreak}.
+@endpredefined
 
 
 @seealso
-
 Internals Reference:
 @rinternals{LineBreakEvent}.
 
@@ -931,17 +923,49 @@ The old page breaking algorithm is called
 @code{optimal-page-breaks}.  If you are having trouble with the new page
 breakers, you can enable the old one as a workaround.
 
+@funindex \bookpart
 
-@predefined
+When a book has many scores and pages, the page breaking problem may be
+difficult to solve, requiring large processing time and memory.  To ease
+the page breaking process, @code{\bookpart} blocks are used to divide
+the book into several parts: the page breaking occurs separately on each
+part.  Different page breaking functions may also be used in different
+book parts.
 
+@example
+\bookpart @{
+  \header @{
+    subtitle = "Preface"
+  @}
+  \paper @{
+     %% In a part consisting mostly of text,
+     %% ly:minimal-breaking may be prefered
+     #(define page-breaking ly:minimal-breaking)
+  @}
+  \markup @{ @dots{} @}
+  @dots{}
+@}
+\bookpart @{
+  %% In this part, consisting of music, the default optimal
+  %% page breaking function is used.
+  \header @{
+    subtitle = "First movement"
+  @}
+  \score @{ @dots{} @}
+  @dots{}
+@}
+@end example
+
+
+@predefined
 @funindex \pageBreak
 @code{\pageBreak},
 @funindex \noPageBreak
 @code{\noPageBreak}.
+@endpredefined
 
 
 @seealso
-
 Snippets:
 @rlsr{Spacing}.
 
@@ -958,7 +982,6 @@ cramping and stretching, both horizontally and vertically.  Unlike
 
 
 @seealso
-
 Snippets:
 @rlsr{Spacing}.
 
@@ -1030,17 +1053,16 @@ top-level markups.
 
 
 @predefined
-
 @funindex \pageTurn
 @code{\pageTurn},
 @funindex \noPageTurn
 @code{\noPageTurn},
 @funindex \allowPageTurn
 @code{\allowPageTurn}.
+@endpredefined
 
 
 @seealso
-
 Snippets:
 @rlsr{Spacing}.
 
@@ -1070,7 +1092,6 @@ too slow or memory demanding, or a lot of texts.  It is enabled using:
 
 
 @seealso
-
 Snippets:
 @rlsr{Spacing}.
 
@@ -1119,7 +1140,6 @@ page breaks at explicit @code{\pageBreak} commands and nowhere else.
 
 
 @seealso
-
 Snippets:
 @rlsr{Spacing}.
 
@@ -1203,7 +1223,6 @@ This pattern becomes especially helpful when overriding
 
 
 @seealso
-
 Notation Reference:
 @ref{Vertical spacing}.
 
@@ -1335,7 +1354,6 @@ the @code{Axis_group_engraver}.
 
 
 @seealso
-
 Snippets:
 @rlsr{Spacing}.
 
@@ -1400,7 +1418,6 @@ the last one.
 
 
 @seealso
-
 Snippets:
 @rlsr{Spacing}.
 
@@ -1468,20 +1485,29 @@ example @code{NonMusicalPaperColumn} overrides with the special
 To understand how each of these different settings work, we begin
 by looking at an example that includes no overrides at all.
 
-@lilypond[quote,ragged-right]
-\new Score <<
-  \new Staff <<
-    \new Voice {
-      s1 * 6 \break
-      s1 * 6 \break
-      s1 * 6 \break
-    }
-    \new Voice { \repeat unfold 18 { c'4 c'4 c'4 c'4 } }
-  >>
-  \new Staff {
-    \repeat unfold 18 { d'4 d'4 d'4 d'4 }
+@c \book { } is required in these examples to ensure the spacing
+@c overrides can be seen between systems. -np
+
+@lilypond[quote]
+\header { tagline = ##f }
+\paper { left-margin = 0\mm }
+\book {
+  \score {
+    <<
+      \new Staff <<
+        \new Voice {
+          s1*5 \break
+          s1*5 \break
+          s1*5 \break
+        }
+        \new Voice { \repeat unfold 15 { c'4 c' c' c' } }
+      >>
+      \new Staff {
+        \repeat unfold 15 { d'4 d' d' d' }
+      }
+    >>
   }
->>
+}
 @end lilypond
 
 This score isolates line- and page-breaking information in a dedicated
@@ -1495,26 +1521,32 @@ the vertical startpoint of each system explicitly, we can set
 the @code{Y-offset} pair in the @code{line-break-system-details}
 attribute of the @code{NonMusicalPaperColumn} grob:
 
-@lilypond[quote,ragged-right]
-\new Score <<
-  \new Staff <<
-    \new Voice {
-      \overrideProperty #"Score.NonMusicalPaperColumn"
-        #'line-break-system-details #'((Y-offset . 0))
-      s1 * 6 \break
-      \overrideProperty #"Score.NonMusicalPaperColumn"
-        #'line-break-system-details #'((Y-offset . 40))
-      s1 * 6 \break
-      \overrideProperty #"Score.NonMusicalPaperColumn"
-        #'line-break-system-details #'((Y-offset . 80))
-      s1 * 6 \break
-    }
-    \new Voice { \repeat unfold 18 { c'4 c'4 c'4 c'4 } }
-  >>
-  \new Staff {
-    \repeat unfold 18 { d'4 d'4 d'4 d'4 }
+@lilypond[quote]
+\header { tagline = ##f }
+\paper { left-margin = 0\mm }
+\book {
+  \score {
+    <<
+      \new Staff <<
+        \new Voice {
+          \overrideProperty #"Score.NonMusicalPaperColumn"
+            #'line-break-system-details #'((Y-offset . 0))
+          s1*5 \break
+          \overrideProperty #"Score.NonMusicalPaperColumn"
+            #'line-break-system-details #'((Y-offset . 40))
+          s1*5 \break
+          \overrideProperty #"Score.NonMusicalPaperColumn"
+            #'line-break-system-details #'((Y-offset . 80))
+          s1*5 \break
+        }
+        \new Voice { \repeat unfold 15 { c'4 c' c' c' } }
+      >>
+      \new Staff {
+        \repeat unfold 15 { d'4 d' d' d' }
+      }
+    >>
   }
->>
+}
 @end lilypond
 
 Note that @code{line-break-system-details} takes an associative list of
@@ -1527,29 +1559,35 @@ explicitly, we can also set the vertical startpoint of each staff
 within each system manually.  We do this using the @code{alignment-offsets}
 subproperty of @code{line-break-system-details}.
 
-@lilypond[quote,ragged-right]
-\new Score <<
-  \new Staff <<
-    \new Voice {
-      \overrideProperty #"Score.NonMusicalPaperColumn"
-        #'line-break-system-details #'((Y-offset . 20)
-          (alignment-offsets . (0 -15)))
-      s1 * 6 \break
-      \overrideProperty #"Score.NonMusicalPaperColumn"
-        #'line-break-system-details #'((Y-offset . 60)
-          (alignment-offsets . (0 -15)))
-      s1 * 6 \break
-      \overrideProperty #"Score.NonMusicalPaperColumn"
-        #'line-break-system-details #'((Y-offset . 100)
-          (alignment-offsets . (0 -15)))
-      s1 * 6 \break
-    }
-    \new Voice { \repeat unfold 18 { c'4 c'4 c'4 c'4 } }
-  >>
-  \new Staff {
-    \repeat unfold 18 { d'4 d'4 d'4 d'4 }
+@lilypond[quote]
+\header { tagline = ##f }
+\paper { left-margin = 0\mm }
+\book {
+  \score {
+    <<
+      \new Staff <<
+        \new Voice {
+          \overrideProperty #"Score.NonMusicalPaperColumn"
+            #'line-break-system-details #'((Y-offset . 20)
+                                           (alignment-offsets . (0 -15)))
+          s1*5 \break
+          \overrideProperty #"Score.NonMusicalPaperColumn"
+            #'line-break-system-details #'((Y-offset . 60)
+                                           (alignment-offsets . (0 -15)))
+          s1*5 \break
+          \overrideProperty #"Score.NonMusicalPaperColumn"
+            #'line-break-system-details #'((Y-offset . 100)
+                                           (alignment-offsets . (0 -15)))
+          s1*5 \break
+        }
+        \new Voice { \repeat unfold 15 { c'4 c' c' c' } }
+      >>
+      \new Staff {
+        \repeat unfold 15 { d'4 d' d' d' }
+      }
+    >>
   }
->>
+}
 @end lilypond
 
 Note that here we assign two different values to the
@@ -1562,34 +1600,36 @@ additional spacing parameters (including, for example, a corresponding
 every system and every staff.  Finally, note that @code{alignment-offsets}
 specifies the vertical positioning of staves but not of staff groups.
 
-@lilypond[quote,ragged-right]
-\new Score <<
-  \new Staff <<
-    \new Voice {
-      \overrideProperty #"Score.NonMusicalPaperColumn"
-      #'line-break-system-details #'((Y-offset . 0)
-        (alignment-offsets . (0 -30 -40)))
-      s1 * 6 \break
-      \overrideProperty #"Score.NonMusicalPaperColumn"
-      #'line-break-system-details #'((Y-offset . 60)
-        (alignment-offsets . (0 -10 -20)))
-      s1 * 6 \break
-      \overrideProperty #"Score.NonMusicalPaperColumn"
-      #'line-break-system-details #'((Y-offset . 100)
-        (alignment-offsets . (0 -10, -40)))
-      s1 * 6 \break
-    }
-    \new Voice { \repeat unfold 18 { c'4 c'4 c'4 c'4 } }
-  >>
-  \new StaffGroup <<
-    \new Staff {
-      \repeat unfold 18 { d'4 d'4 d'4 d'4 }
-    }
-    \new Staff {
-      \repeat unfold 18 { e'4 e'4 e'4 e'4 }
-    }
-  >>
->>
+@lilypond[quote]
+\header { tagline = ##f }
+\paper { left-margin = 0\mm }
+\book {
+  \score {
+    <<
+      \new Staff <<
+        \new Voice {
+          \overrideProperty #"Score.NonMusicalPaperColumn"
+            #'line-break-system-details #'((Y-offset . 0)
+                                           (alignment-offsets . (0 -30 -40)))
+          s1*5 \break
+          \overrideProperty #"Score.NonMusicalPaperColumn"
+            #'line-break-system-details #'((Y-offset . 60)
+                                           (alignment-offsets . (0 -10 -20)))
+          s1*5 \break
+          \overrideProperty #"Score.NonMusicalPaperColumn"
+            #'line-break-system-details #'((Y-offset . 100)
+                                           (alignment-offsets . (0 -10 -40)))
+          s1*5 \break
+        }
+        \new Voice { \repeat unfold 15 { c'4 c' c' c' } }
+      >>
+      \new StaffGroup <<
+        \new Staff { \repeat unfold 15 { d'4 d' d' d' } }
+        \new Staff { \repeat unfold 15 { e'4 e' e' e' } }
+      >>
+    >>
+  }
+}
 @end lilypond
 
 Some points to consider:
@@ -1611,7 +1651,6 @@ passed to these different settings will avoid this.
 
 
 @seealso
-
 Snippets:
 @rlsr{Spacing}.
 
@@ -1676,7 +1715,6 @@ lilypond <file>.ly
 
 
 @seealso
-
 Snippets:
 @rlsr{Spacing}.
 
@@ -1737,29 +1775,31 @@ c^"This text is padded away from the previous text"
 c^"This text is placed close to the previous text"
 @end lilypond
 
-TODO: this example doesn't work any more ?
 
-By default, outside-staff objects are placed without regard to
-their horizontal distance from the previously-positioned grobs.  This
+By default, outside-staff objects are placed only to avoid
+a horizontal collision with previously-positioned grobs.  This
 can lead to situations in which objects are placed very close to each
-other horizontally.  Setting @code{outside-staff-horizontal-padding}
+other horizontally.  The vertical spacing between staffs can
+also be set so that outside staff objects are interleaved.
+Setting @code{outside-staff-horizontal-padding}
 causes an object to be offset vertically so that such a situation
 doesn't occur.
 
 @lilypond[quote,ragged-right,relative=2,fragment,verbatim]
 % the markup is too close to the following note
-c2^"Text"
+c4^"Text"
+c4
 c''2
 % setting outside-staff-horizontal-padding fixes this
 R1
 \once \override TextScript #'outside-staff-horizontal-padding = #1
-c,,2^"Text"
+c,,4^"Text"
+c4
 c''2
 @end lilypond
 
 
 @seealso
-
 Snippets:
 @rlsr{Spacing}.
 
@@ -1868,7 +1908,6 @@ Proportional notation is supported; see @ref{Proportional notation}.
 
 
 @seealso
-
 Snippets:
 @rlsr{Spacing}.
 
@@ -1876,15 +1915,16 @@ Internals Reference:
 @rinternals{SpacingSpanner},
 @rinternals{NoteSpacing},
 @rinternals{StaffSpacing},
-@rinternals{SeparationItem}.
+@rinternals{NonMusicalPaperColumn}.
 
 
 @knownissues
 
 There is no convenient mechanism to manually override spacing.  The
-following work-around may be used to insert extra space into a score.
+following work-around may be used to insert extra space into a score,
+adjusting the padding value as necessary.
 @example
- \once \override Score.SeparationItem #'padding = #1
+ \override Score.NonMusicalPaperColumn #'padding = #10
 @end example
 
 No work-around exists for decreasing the amount of space.
@@ -1915,7 +1955,6 @@ may be used in that location.
 
 
 @seealso
-
 Snippets:
 @rlsr{Spacing}.
 
@@ -2002,7 +2041,6 @@ regard for clefs, bar lines, and grace notes,
 
 
 @seealso
-
 Snippets:
 @rlsr{Spacing}.
 
@@ -2055,7 +2093,6 @@ paragraph, the last line simply takes its natural horizontal length.
 
 
 @seealso
-
 Snippets:
 @rlsr{Spacing}.
 
@@ -2404,7 +2441,6 @@ for these related settings.
 
 
 @seealso
-
 Notation Reference:
 @ref{New spacing area}.
 
@@ -2450,19 +2486,37 @@ that may be altered for page formatting, set
 }
 @end lilypond
 
+
 @noindent
-All layout dimensions are displayed in staff spaces, regardless of
-the units specified in the @code{\paper} or @code{\layout} block.
-For example, @code{paper-height} has a value of 59.75 staff
-spaces, using the default staff size of 20 points, which is
-equivalent to 148 millimeters, the height of @code{a6} paper in
-landscape orientation.  The pairs (@var{a},@var{b}) are intervals,
-where @var{a} is the lower edge and @var{b} the upper edge of the
-interval.
+All layout dimensions are displayed in staff-spaces, regardless
+of the units specified in the @code{\paper} or @code{\layout} block.
+In the above example, @code{paper-height} has a value of 59.75
+@code{staff-spaces}, and the @code{staff-size} is 20 points (the
+default value). Note that:
 
+@multitable {1 staff-space} {staff-size)/4 * (25.4/72.27) mm}
 
-@seealso
+@item 1 point
+@tab = (25.4/72.27) mm
+
+@item 1 staff-space
+@tab = (@code{staff-size})/4 pts
+@item
+@tab = (@code{staff-size})/4 * (25.4/72.27) mm
+
+@end multitable
+
+@noindent
+In this case, one @code{staff-space} is approximately equal to
+1.757mm. Thus the @code{paper-height} measurement of 59.75
+@code{staff-spaces} is equivalent to 105 millimeters, the height
+of @code{a6} paper in landscape orientation.  The pairs
+(@var{a},@var{b}) are intervals, where @var{a} is the lower
+edge and @var{b} the upper edge of the interval.
 
+
+@seealso
+@ref{Setting the staff size}
 Snippets:
 @rlsr{Spacing}.
 
@@ -2492,9 +2546,14 @@ there is no blank space at the bottom of the page.
 @end example
 
 @item
-Force the number of systems.  For example, if the default layout
-has 11 systems, the following assignment will force a layout with
-10 systems.
+Force the number of systems.  This can help in two ways.  Just
+setting a value, even the same value as the number of systems
+being typeset by default, will sometimes cause more systems to
+be fitted onto each page, as an estimation step is then bypassed,
+giving a more accurate fit to each page.  Also, forcing an actual
+reduction in the number of systems may save a further page. For
+example, if the default layout has 11 systems, the following
+assignment will force a layout with 10 systems.
 
 @example
 \paper @{
@@ -2567,7 +2626,6 @@ block so that it applies to the whole score.
 
 
 @seealso
-
 Notation Reference:
 @ref{Page formatting},
 @ref{Changing horizontal spacing}.
index 50fc395b59f17282180e3b0b80ab96446899c2e6..98b7595821d35396b36425cf49e357c560cd259d 100644 (file)
@@ -6,7 +6,7 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @node Specialist notation
 @chapter Specialist notation
index f567b559e9d3282db251382bb6f26b8a743567ee..34f90a32e76c326920c8ccb94829e4d10843f93f 100644 (file)
@@ -6,16 +6,16 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @node Staff notation
 @section Staff notation
 
 @lilypondfile[quote]{staff-headword.ly}
 
-This section explains how to influence the staff appearance, print
-scores with more than one staff, and how to apply specific
-performance marks to single staves.
+This section explains how to influence the appearance of staves,
+how to print scores with more than one staff, and how to add tempo
+indications and cue notes to staves.
 
 @menu
 * Displaying staves::
@@ -45,6 +45,8 @@ grouping staves.
 @cindex staff instantiation
 @cindex staff, new
 @cindex staff, single
+@cindex staff, drum
+@cindex staff, percussion
 @cindex drum staff
 @cindex percussion staff
 @cindex Gregorian transcription staff
@@ -52,6 +54,9 @@ grouping staves.
 @cindex tabstaff
 @cindex tablature
 
+@funindex \drummode
+@funindex drummode
+
 @notation{Staves} (singular: @notation{staff}) are created with
 the @code{\new} or @code{\context} commands.  For details, see
 @ref{Creating contexts}.
@@ -62,9 +67,10 @@ The basic staff context is @code{Staff}:
 \new Staff { c4 d e f }
 @end lilypond
 
-@code{DrumStaff} creates a five-line staff set up for a
-typical drum set.  It uses different names for each instrument.
-The instrument names are set using the @code{\drummode} command.
+The @code{DrumStaff} context creates a five-line staff set up for
+a typical drum set.  Each instrument is shown with a different
+symbol.  The instruments are entered in drum mode following a
+@code{\drummode} command, with each instrument specified by name.
 For details, see @ref{Percussion staves}.
 
 @lilypond[verbatim,quote]
@@ -73,14 +79,6 @@ For details, see @ref{Percussion staves}.
 }
 @end lilypond
 
-@c FIXME: remove when mentioned in NR 2.8
-@code{GregorianTranscriptionStaff} creates a staff to notate
-modern Gregorian chant.  It does not show bar lines.
-
-@lilypond[verbatim,quote,relative=2]
-\new GregorianTranscriptionStaff { c4 d e f e d }
-@end lilypond
-
 @code{RhythmicStaff} creates a single-line staff that only
 displays the rhythmic values of the input.  Real durations are
 preserved. For details, see @ref{Showing melody rhythms}.
@@ -100,12 +98,18 @@ There are two staff contexts specific for the notation of ancient
 music: @code{MensuralStaff} and @code{VaticanaStaff}.  They are
 described in @ref{Pre-defined contexts}.
 
+The @code{GregorianTranscriptionStaff} context creates a staff to
+notate modern Gregorian chant.  It does not show bar lines.
+
+@lilypond[verbatim,quote,relative=2]
+\new GregorianTranscriptionStaff { c4 d e f e d }
+@end lilypond
+
 New single staff contexts may be defined.  For details, see
 @ref{Defining new contexts}.
 
 
 @seealso
-
 Music Glossary:
 @rglos{staff},
 @rglos{staves}.
@@ -150,6 +154,7 @@ Internals Reference:
 @cindex staff group
 @cindex staff, choir
 @cindex staff, piano
+@cindex staff, grand
 @cindex system
 
 Various contexts exist to group single staves together in order to
@@ -203,7 +208,7 @@ details, see @ref{Instrument names}.
 
 @lilypond[verbatim,quote,relative=2]
 \new PianoStaff <<
-  \set PianoStaff.instrumentName = "Piano"
+  \set PianoStaff.instrumentName = #"Piano"
   \new Staff { c1 c }
   \new Staff { c1 c }
 >>
@@ -235,11 +240,9 @@ New staff group contexts may be defined.  For details, see
 
 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
 {mensurstriche-layout-bar-lines-between-the-staves.ly}
-@c FIXME: move to NR 2.8.x when sectioning is ready
 
 
 @seealso
-
 Music Glossary:
 @rglos{brace},
 @rglos{bracket},
@@ -274,40 +277,24 @@ Internals Reference:
 @cindex nested staff brackets
 @cindex brackets, nesting of
 @cindex braces, nesting of
-@cindex inner staff group
-@cindex inner choir staff group
-
-Two additional staff-group contexts are available that can be
-nested within a @code{StaffGroup} or @code{ChoirStaff} context:
-@code{InnerStaffGroup} and @code{InnerChoirStaff}.  These contexts
-create a new bracket adjacent to the bracket of their parent staff
-group.
 
-An @code{InnerStaffGroup} is treated similarly to a
-@code{StaffGroup}; bar lines are connected between each staff
-within the context:
+Staff-group contexts can be nested to arbitrary depths.  In this
+case, each child context creates a new bracket adjacent to the
+bracket of its parent group.
 
 @lilypond[verbatim,quote,relative=2]
 \new StaffGroup <<
   \new Staff { c2 c | c2 c }
-  \new InnerStaffGroup <<
+  \new StaffGroup <<
     \new Staff { g2 g | g2 g }
-    \new Staff { e2 e | e2 e }
-  >>
->>
-@end lilypond
-
-Bar lines are @emph{not} connected between staves of an
-@code{InnerChoirStaff}, just like a @code{ChoirStaff}:
-
-@lilypond[verbatim,quote,relative=2]
-\new ChoirStaff <<
-  \new Staff { c2 c | c2 c }
-  \new InnerChoirStaff <<
-    \new Staff { g2 g | g2 g }
-    \new Staff { e2 e | e2 e }
+    \new StaffGroup \with {
+      systemStartDelimiter = #'SystemStartSquare
+    }
+    <<
+      \new Staff { e2 e | e2 e }
+      \new Staff { c2 c | c2 c }
+    >>
   >>
-  \new Staff { c1 | c1 }
 >>
 @end lilypond
 
@@ -322,7 +309,6 @@ New nested staff group contexts can be defined.  For details, see
 
 
 @seealso
-
 Notation Reference:
 @ref{Grouping staves},
 @ref{Instrument names},
@@ -332,9 +318,7 @@ Snippets:
 @rlsr{Staff notation}.
 
 Internals Reference:
-@rinternals{InnerStaffGroup},
 @rinternals{StaffGroup},
-@rinternals{InnerChoirStaff},
 @rinternals{ChoirStaff},
 @rinternals{SystemStartBar},
 @rinternals{SystemStartBrace},
@@ -363,6 +347,7 @@ sections are also described.
 @cindex adjusting staff symbol
 @cindex drawing staff symbol
 @cindex staff symbol, setting of
+@cindex staff symbol, drawing
 @cindex stop staff lines
 @cindex start staff lines
 @cindex staff lines, amount of
@@ -404,7 +389,9 @@ thickness.
 @end lilypond
 
 Ledger line thickness can be set independently of staff line
-thickness.
+thickness.  In the example the two numbers are factors multiplying
+the staff line thickness and the staff line spacing.  The two
+contributions are added to give the ledger line thickness.
 
 @lilypond[verbatim,quote,relative=1]
 \new Staff \with {
@@ -426,8 +413,15 @@ affects the spacing of ledger lines as well.
 Further details about the properties of @code{StaffSymbol} can be
 found in @rinternals{staff-symbol-interface}.
 
+@cindex stopping a staff
+@cindex starting a staff
+@cindex staff, starting
+@cindex staff, stopping
+
 @funindex \startStaff
+@funindex startStaff
 @funindex \stopStaff
+@funindex stopStaff
 
 Modifications to staff properties in the middle of a score can be
 placed between @code{\stopStaff} and @code{\startStaff}:
@@ -444,8 +438,6 @@ b2 b
 a2 a
 @end lilypond
 
-@cindex stopping a staff
-
 @noindent
 In general, @code{\startStaff} and @code{\stopStaff} can be used
 to stop or start a staff in the middle of a score.
@@ -460,9 +452,9 @@ e4 d c2
 
 
 @predefined
-
 @code{\startStaff},
 @code{\stopStaff}.
+@endpredefined
 
 
 @snippets
@@ -472,7 +464,6 @@ e4 d c2
 
 
 @seealso
-
 Music Glossary:
 @rglos{line},
 @rglos{ledger line},
@@ -505,6 +496,11 @@ outermost bar lines in either direction must be equal.
 @cindex staff, resizing of
 @cindex resizing of staves
 
+@funindex \startStaff
+@funindex startStaff
+@funindex \stopStaff
+@funindex stopStaff
+
 @notation{Ossia} staves can be set by creating a new simultaneous
 staff in the appropriate location:
 
@@ -520,7 +516,7 @@ staff in the appropriate location:
 @end lilypond
 
 @noindent
-However, the above example is usually not the desired result.  To
+However, the above example is not what is usually desired.  To
 create ossia staves that are above the original staff, have no
 time signature or clef, and have a smaller font size, tweaks must
 be used.  The Learning Manual describes a specific technique to
@@ -639,7 +635,6 @@ more information about @code{\RemoveEmptyStaffContext}, see
 
 
 @seealso
-
 Music Glossary:
 @rglos{ossia},
 @rglos{staff},
@@ -670,6 +665,10 @@ Internals Reference:
 @cindex hiding of staves
 @cindex empty staves
 
+@funindex \RemoveEmptyStaffContext
+@funindex RemoveEmptyStaffContext
+
+
 Staff lines can be hidden by removing the
 @code{Staff_symbol_engraver} from the @code{Staff} context.  As an
 alternative, @code{\stopStaff} may be used.
@@ -681,7 +680,6 @@ alternative, @code{\stopStaff} may be used.
 \relative c''' { a8 f e16 d c b a2 }
 @end lilypond
 
-@funindex \RemoveEmptyStaffContext
 
 Empty staves can be hidden by setting the
 @code{\RemoveEmptyStaffContext} command in the @code{\layout}
@@ -689,8 +687,9 @@ block.  In orchestral scores, this style is known as @q{Frenched
 Score}.  By default, this command hides and removes all empty
 staves in a score except for those in the first system.
 
-@warning{An empty staff may only include multi-measure rests,
-skips, spacer rests, or a combination of these elements.}
+@warning{A staff is considered empty when it contains only
+multi-measure rests, skips, spacer rests, or a combination of these
+elements.}
 
 @lilypond[verbatim,quote,ragged-right]
 \layout {
@@ -721,8 +720,13 @@ sections for a staff.  For details, see @ref{Ossia staves}.
 
 @cindex hiding ancient staves
 @cindex hiding rhythmic staves
+
+@funindex \RemoveEmptyStaffContext
+@funindex RemoveEmptyStaffContext
 @funindex \AncientRemoveEmptyStaffContext
+@funindex AncientRemoveEmptyStaffContext
 @funindex \RemoveEmptyRhythmicStaffContext
+@funindex RemoveEmptyRhythmicStaffContext
 
 The @code{\AncientRemoveEmptyStaffContext} command may be used to
 hide empty staves in ancient music contexts.  Similarly,
@@ -731,10 +735,10 @@ hide empty staves in ancient music contexts.  Similarly,
 
 
 @predefined
-
 @code{\RemoveEmptyStaffContext},
 @code{\AncientRemoveEmptyStaffContext},
 @code{\RemoveEmptyRhythmicStaffContext}.
+@endpredefined
 
 
 @snippets
@@ -744,7 +748,6 @@ hide empty staves in ancient music contexts.  Similarly,
 
 
 @seealso
-
 Music Glossary:
 @rglos{Frenched staff}.
 
@@ -799,7 +802,9 @@ format cue notes are also described.
 @cindex beats per minute
 @cindex metronome marking
 @cindex metronome marking with text
+
 @funindex \tempo
+@funindex tempo
 
 A basic metronome mark is simple to write:
 
@@ -859,7 +864,6 @@ For more details, see @ref{Formatting text}.
 
 
 @seealso
-
 Music Glossary:
 @rglos{metronome},
 @rglos{metronomic indication},
@@ -889,8 +893,8 @@ Instrument names can be printed on the left side of staves in the
 of @code{shortInstrumentName} is used for all succeeding staves.
 
 @lilypond[verbatim,quote,ragged-right,relative=1]
-\set Staff.instrumentName = "Violin "
-\set Staff.shortInstrumentName = "Vln "
+\set Staff.instrumentName = #"Violin "
+\set Staff.shortInstrumentName = #"Vln "
 c4.. g'16 c4.. g'16
 \break
 c1
@@ -916,7 +920,7 @@ default.  To center multi-line instrument names,
 @lilypond[verbatim,quote,indent=1.5\cm,relative=2]
 <<
   \new Staff {
-    \set Staff.instrumentName = "Flute"
+    \set Staff.instrumentName = #"Flute"
     f2 g4 f
   }
   \new Staff {
@@ -929,8 +933,8 @@ default.  To center multi-line instrument names,
 >>
 @end lilypond
 
-@cindex indent
-@cindex short-indent
+@funindex indent
+@funindex short-indent
 
 However, if the instrument names are longer, the instrument names
 in a staff group may not be centered unless the @code{indent} and
@@ -945,14 +949,14 @@ these settings, see @ref{Horizontal dimensions}.
 
 \relative c'' <<
   \new Staff {
-    \set Staff.instrumentName = "Alto Flute in G"
-    \set Staff.shortInstrumentName = "Fl."
+    \set Staff.instrumentName = #"Alto Flute in G"
+    \set Staff.shortInstrumentName = #"Fl."
     f2 g4 f \break
     g4 f g2
   }
   \new Staff {
-    \set Staff.instrumentName = "Clarinet"
-    \set Staff.shortInstrumentName = "Clar."
+    \set Staff.instrumentName = #"Clarinet"
+    \set Staff.shortInstrumentName = #"Clar."
     c,4 b c2 \break
     c2 b4 c
   }
@@ -965,16 +969,17 @@ To add instrument names to other contexts (such as
 For details, see @ref{Modifying context plug-ins}.
 
 @cindex instrument names, changing
+@cindex changing instrument names
 
 Instrument names may be changed in the middle of a piece:
 
 @lilypond[verbatim,quote,ragged-right,relative=1]
-\set Staff.instrumentName = "First"
-\set Staff.shortInstrumentName = "one"
+\set Staff.instrumentName = #"First"
+\set Staff.shortInstrumentName = #"one"
 c1 c c c \break
 c1 c c c \break
-\set Staff.instrumentName = "Second"
-\set Staff.shortInstrumentName = "two"
+\set Staff.instrumentName = #"Second"
+\set Staff.shortInstrumentName = #"two"
 c1 c c c \break
 c1 c c c \break
 @end lilypond
@@ -982,6 +987,11 @@ c1 c c c \break
 @cindex instrument switch
 @cindex switching instruments
 
+@funindex \addInstrumentDefinition
+@funindex addInstrumentDefinition
+@funindex \instrumentSwitch
+@funindex instrumentSwitch
+
 If an instrument @emph{switch} is needed,
 @code{\addInstrumentDefinition} may be used in combination with
 @code{\instrumentSwitch} to create a detailed list of the
@@ -1003,7 +1013,7 @@ expression to declare the instrument switch:
      (midiInstrument . "bassoon"))
 
 \new Staff \with {
-  instrumentName = "Bassoon"
+  instrumentName = #"Bassoon"
 }
 \relative c' {
   \clef tenor
@@ -1018,7 +1028,6 @@ expression to declare the instrument switch:
 
 
 @seealso
-
 Notation Reference:
 @ref{Horizontal dimensions},
 @ref{Modifying context plug-ins}.
@@ -1040,16 +1049,23 @@ Internals Reference:
 @cindex fragments
 @cindex cue notes
 
-It is very common for one voice to double the some of the music from                     
-another voice.  For example, the first and second violins may play the                    
-same notes during a passage of music.  In LilyPond this is accomplished                   
+@funindex \addQuote
+@funindex addQuote
+@funindex \quoteDuring
+@funindex quoteDuring
+@funindex \transposition
+@funindex transposition
+
+It is very common for one voice to double some of the music from
+another voice.  For example, the first and second violins may play the
+same notes during a passage of music.  In LilyPond this is accomplished
 by letting one voice @emph{quote} the other voice without having to
 re-enter it.
-                                                                       
-Before a part can be quoted, the @code{\addQuote} command must be used                   
-to initialize the quoted fragment.  This command must be used in the                      
-toplevel scope.  The first argument is an identifying string, and the                     
-second is a music expression: 
+
+Before a part can be quoted, the @code{\addQuote} command must be used
+to initialize the quoted fragment.  This command must be used in the
+toplevel scope.  The first argument is an identifying string, and the
+second is a music expression:
 
 @example
 flute = \relative c'' @{
@@ -1129,7 +1145,6 @@ see @ref{Using tags}.
 
 
 @seealso
-
 Notation Reference:
 @ref{Instrument transpositions},
 @ref{Using tags}.
@@ -1168,6 +1183,9 @@ written entirely in lower-case letters: @code{\addquote}.
 @cindex quoting other voices
 @cindex cues, formatting
 
+@funindex \cueDuring
+@funindex cueDuring
+
 The previous section explains how to create quotations.  The
 @code{\cueDuring} command is a more specialized form of
 @code{\quoteDuring}, being particularly useful for inserting cue
@@ -1223,6 +1241,15 @@ oboe = \relative c''' {
 >>
 @end lilypond
 
+@cindex removing cues
+@cindex removing cue notes
+@cindex cue notes, removing
+
+@funindex \killCues
+@funindex killCues
+@funindex \transposedCueDuring
+@funindex transposedCueDuring
+
 In addition to printing the name of the cued instrument, when cue
 notes end, the name of the original instrument should be printed,
 and any other changes introduced by the cued part should be
@@ -1283,7 +1310,6 @@ see @ref{Using tags}.
 
 
 @seealso
-
 Notation Reference:
 @ref{Instrument transpositions},
 @ref{Instrument names},
index b9fb828ebe3803ab8ef26a54de7975105fe34b4e..e947971af5bb8e0581ae8c002138c86fe1ff5d77 100644 (file)
@@ -7,7 +7,7 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @node Templates
 @appendix Templates
@@ -18,13 +18,14 @@ beautiful printed scores!
 
 @c bad node name for ancient notation to avoid conflict
 @menu
-* Single staff::                
-* Piano templates::             
-* String quartet::              
-* Vocal ensembles::             
-* Ancient notation templates::  
-* Jazz combo::                  
-* lilypond-book templates::     
+* Single staff::
+* Piano templates::
+* String quartet::
+* Vocal ensembles::
+* Orchestral templates::
+* Ancient notation templates::
+* Jazz combo::
+* lilypond-book templates::
 @end menu
 
 
@@ -110,6 +111,14 @@ beautiful printed scores!
 {vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly}
 
 
+@node Orchestral templates
+@appendixsec Orchestral templates
+
+@appendixsubsec Orchestra, choir and piano
+@lilypondfile[verbatim,lilyquote,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
@@ -152,7 +161,7 @@ violin concerto as TchaikovskyPI, whereas perhaps you wish to print
 
 @ The `line-width' is for \header.
 @li lypond[quote,verbatim,ragged-right,line-width]
-\version "2.11.61"
+\version "2.12.0"
 \header {
   dedication = "dedication"
   title = "Title"
@@ -301,7 +310,7 @@ In normal text you can easily use LilyPond commands, like this:
 and so on.
 
 The fonts of snippets set with LilyPond will have to be set from
-inside 
+inside
 of the snippet. For this you should read the AU on how to use
 lilypond-book.
 
index 2e6e32a569832911f4893160b9a6259f5993ec47..b235dfda0896cd7f9d36a80376b41c133ba9e1d3 100644 (file)
@@ -6,7 +6,7 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @node Text
 @section Text
@@ -21,27 +21,27 @@ Some text elements that are not dealt with here are discussed in other
 specific sections: @ref{Vocal music}, @ref{Titles and headers}.
 
 @menu
-* Writing text::                
-* Formatting text::             
-* Fonts::                       
+* Writing text::
+* Formatting text::
+* Fonts::
 @end menu
 
+@node Writing text
+@subsection Writing text
+
+This section introduces different ways of adding text to a score.
+
 @cindex Text, other languages
 @warning{To write accented and special text (such as characters
 from other languages), simply insert the characters directly into
 the LilyPond file.  The file must be saved as UTF-8.  For more
 information, see @ref{Text encoding}.}
 
-@node Writing text
-@subsection Writing text
-
-This section introduces different ways of adding text to a score.
-
 @menu
-* Text scripts::                
-* Text spanners::               
-* Text marks::                  
-* Separate text::               
+* Text scripts::
+* Text spanners::
+* Text marks::
+* Separate text::
 @end menu
 
 
@@ -60,40 +60,40 @@ above or below the staff, using the
 syntax described in @ref{Direction and
 placement}.
 
-@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
-d8^"pizz." e f g a4-"scherz." f
+@lilypond[quote,verbatim,relative=2]
+a8^"pizz." g f e a4-"scherz." f
 @end lilypond
 
 This syntax is actually a shorthand; more complex text
 formatting may be added to a note by explicitly using a
 @code{\markup} block, as described in @ref{Formatting text}.
 
-@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
-d8^\markup { \italic pizz. } e f g 
+@lilypond[quote,verbatim,relative=2]
+a8^\markup { \italic pizz. } g f e
 a4_\markup { \tiny scherz. \bold molto } f
 @end lilypond
 
 By default, text indications do not influence the note spacing.
 However, their widths can be taken into account:
-in the following example, the first text string does not affect 
+in the following example, the first text string does not affect
 spacing, whereas the second one does.
 
-@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
-d8^"pizz." e f g
+@lilypond[quote,verbatim,relative=2]
+a8^"pizz." g f e
 \textLengthOn
 a4_"scherzando" f
 @end lilypond
 
-@predefined
 
+@predefined
 @funindex \textLengthOn
 @code{\textLengthOn},
 @funindex \textLengthOff
-@code{\textLengthOff}
+@code{\textLengthOff}.
+@endpredefined
 
 
 @seealso
-
 Notation Reference:
 @ref{Formatting text},
 @ref{Direction and placement}.
@@ -104,6 +104,7 @@ Snippets:
 Internals Reference:
 @rinternals{TextScript}.
 
+
 @knownissues
 
 Checking to make sure that text scripts and lyrics are within the
@@ -127,9 +128,9 @@ multiple notes with dotted lines.
 Such objects, called @qq{spanners}, may be created
 from one note to another using the following syntax:
 
-@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
-\override TextSpanner #'bound-details #'left #'text = "rit." 
-b1\startTextSpan 
+@lilypond[verbatim,quote,relative=2]
+\override TextSpanner #'(bound-details left text) = "rit."
+b1\startTextSpan
 e,\stopTextSpan
 @end lilypond
 
@@ -139,9 +140,9 @@ object properties.  By default it is printed in italic characters,
 but different formatting can be obtained using
 @code{\markup} blocks, as described in @ref{Formatting text}.
 
-@lilypond[quote,ragged-right,fragment,relative=2,verbatim]
-\override TextSpanner #'bound-details #'left #'text =
-  \markup { \upright "rit." } 
+@lilypond[quote,relative=2,verbatim]
+\override TextSpanner #'(bound-details left text) =
+  \markup { \upright "rit." }
 b1\startTextSpan c
 e,\stopTextSpan
 @end lilypond
@@ -149,17 +150,18 @@ e,\stopTextSpan
 The line style, as well as the text string, can be defined as an
 object property.  This syntax is described in @ref{Line styles}.
 
-@predefined
 
+@predefined
 @funindex textSpannerUp
 @code{\textSpannerUp},
 @funindex textSpannerDown
 @code{\textSpannerDown},
 @funindex textSpannerNeutral
-@code{\textSpannerNeutral}
+@code{\textSpannerNeutral}.
+@endpredefined
 
-@seealso
 
+@seealso
 Notation Reference:
 @ref{Line styles},
 @ref{Dynamics}.
@@ -186,7 +188,7 @@ the syntax described in @ref{Rehearsal marks}:
 @c \mark needs to be placed on a separate line (it's not
 @c attached to an object like \markup is). -vv
 
-@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
+@lilypond[verbatim,quote,relative=2]
 c4
 \mark "Allegro"
 c c c
@@ -196,7 +198,7 @@ This syntax makes it possible to put any text on a bar line;
 more complex text formatting may be added using a @code{\markup}
 block, as described in @ref{Formatting text}:
 
-@lilypond[fragment,quote,ragged-right,verbatim,relative=1]
+@lilypond[quote,verbatim,relative=1]
 <c e>1
 \mark \markup { \italic { colla parte } }
 <d f>2 <e g>
@@ -208,19 +210,19 @@ This syntax also allows to print special signs, like coda, segno
 or fermata, by specifying the appropriate symbol name as explained in
 @ref{Music notation inside markup}:
 
-@lilypond[fragment,quote,ragged-right,verbatim,relative=1]
-<f bes>2 <d aes'>
+@lilypond[quote,verbatim,relative=2]
+<bes f>2 <aes d>
 \mark \markup { \musicglyph #"scripts.ufermata" }
 <e g>1
 @end lilypond
 
 @noindent
 Such objects are only typeset above the top staff of the score; depending on
-whether they are specified at the end or the middle of a bar, they 
+whether they are specified at the end or the middle of a bar, they
 can be placed above the bar line or between notes.  When specified at a
 line break, the mark will be printed at the beginning of the next line.
 
-@lilypond[fragment,quote,ragged-right,verbatim,relative=2]
+@lilypond[quote,verbatim,relative=2]
 \mark "Allegro"
 c1 c
 \mark "assai" \break
@@ -239,8 +241,8 @@ c  c
 @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
 {printing-marks-on-every-staff.ly}
 
-@seealso
 
+@seealso
 Notation Reference:
 @ref{Rehearsal marks},
 @ref{Formatting text},
@@ -253,6 +255,7 @@ Snippets:
 Internals Reference:
 @rinternals{RehearsalMark}.
 
+
 @knownissues
 @c  To be removed when Issue 69 in the tracker gets fixed. -vv
 
@@ -281,12 +284,12 @@ expression}.  This syntax is described in @ref{File structure}.
 
 @noindent
 This allows printing text separately
-from the music, which is particularly 
+from the music, which is particularly
 useful when the input file contains
 several music pieces, as described in
 @ref{Multiple scores in a book}.
 
-@lilypond[quote,ragged-right,verbatim]
+@lilypond[quote,verbatim]
 \score {
   c'1
 }
@@ -303,22 +306,22 @@ making it possible to print text documents or books entirely
 within LilyPond.  This feature, and the specific syntax it
 requires, are described in @ref{Multi-page markup}.
 
-@predefined
 
-@code{\markup},
+@predefined
 @funindex \markuplines
-@code{\markuplines}
+@code{\markup},
+@code{\markuplines}.
+@endpredefined
+
 
-@ignore
 @snippets
 
-TODO: add convenient snippets in input/new -vv
-@end ignore
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{stand-alone-two-column-markup.ly}
 
 @seealso
-
 Notation Reference: @ref{Formatting text},
-@ref{File structure}, 
+@ref{File structure},
 @ref{Multiple scores in a book},
 @ref{Multi-page markup}.
 
@@ -335,12 +338,12 @@ This section presents basic and advanced text formatting,
 using the @code{\markup} mode specific syntax.
 
 @menu
-* Text markup introduction::    
-* Selecting font and font size::      
-* Text alignment::              
-* Graphic notation inside markup::  
-* Music notation inside markup::  
-* Multi-page markup::          
+* Text markup introduction::
+* Selecting font and font size::
+* Text alignment::
+* Graphic notation inside markup::
+* Music notation inside markup::
+* Multi-page markup::
 @end menu
 
 @node Text markup introduction
@@ -368,12 +371,12 @@ may contain nested expressions or markup commands,
 entered using the backslash @code{\} character.
 Such commands only affect the first following expression.
 
-@lilypond[quote,verbatim,fragment,relative=1]
-e1-\markup intenso
+@lilypond[quote,verbatim,relative=2]
+a1-\markup intenso
 a2^\markup { poco \italic più forte  }
 c e1
 d2_\markup { \italic "string. assai" }
-e 
+e
 b1^\markup { \bold { molto \italic  agitato } }
 c
 @end lilypond
@@ -391,10 +394,10 @@ therefore any markup command or special character (such as
 the formatting of the text.  Double quotation marks themselves
 may be printed by preceding them with backslashes.
 
-@lilypond[quote,verbatim,fragment,relative=1]
-d1^"\italic markup..."
-d_\markup { \italic "... prints \"italic\" letters!" }
-d d
+@lilypond[quote,verbatim,relative=2]
+a1^"\italic markup..."
+a_\markup { \italic "... prints \"italic\" letters!" }
+a a
 @end lilypond
 
 To be treated as a distinct expression, a list of words needs
@@ -404,7 +407,7 @@ expressions will be stacked, centered and aligned; in the
 following example, the second @code{\markup} expression is
 treated the same as the first one:
 
-@lilypond[quote,verbatim,fragment,relative=1]
+@lilypond[quote,verbatim,relative=2]
 c1^\markup { \center-column { a bbb c } }
 c1^\markup { \center-column { a { bbb c } } }
 c1^\markup { \center-column { a \line { bbb c } } }
@@ -430,7 +433,6 @@ An exhaustive list of @code{\markup}-specific commands can be found in
 
 
 @seealso
-
 Notation Reference:
 @ref{Text markup commands}.
 
@@ -457,9 +459,9 @@ Syntax errors for markup mode can be confusing.
 Basic font switching is supported in markup mode:
 
 @lilypond[quote,verbatim,relative=2]
-d1^\markup { 
-  \bold { Più mosso } 
-  \italic { non troppo \underline Vivo } 
+d1^\markup {
+  \bold { Più mosso }
+  \italic { non troppo \underline Vivo }
 }
 r2 r4 r8
 d,_\markup { \italic quasi \smallCaps Tromba }
@@ -499,7 +501,7 @@ a^\markup {
   \fontsize #2 da
   \fontsize #3 camera
 }
-bes^\markup { (con 
+bes^\markup { (con
   \larger grande
   \smaller emozione
   \magnify #0.6 { e sentimento } )
@@ -519,7 +521,7 @@ these are printed in a smaller size, but a normal size can be used as well:
 \markup {
   \column {
     \line { 1 \super st movement }
-    \line { 1 \normal-size-super st movement 
+    \line { 1 \normal-size-super st movement
       \sub { (part two) }  }
   }
 }
@@ -578,24 +580,26 @@ commands can be found in @ref{Font}.
 Defining custom font sets is also possible, as explained in
 @ref{Fonts}.
 
-@predefined
 
+@predefined
 @funindex \teeny
-@funindex \tiny
-@funindex \small
-@funindex \normalsize
-@funindex \large
-@funindex \huge
-@funindex \smaller
-@funindex \larger
 @code{\teeny},
+@funindex \tiny
 @code{\tiny},
+@funindex \small
 @code{\small},
+@funindex \normalsize
 @code{\normalsize},
+@funindex \large
 @code{\large},
+@funindex \huge
 @code{\huge},
+@funindex \smaller
 @code{\smaller},
+@funindex \larger
 @code{\larger}.
+@endpredefined
+
 
 @seealso
 Notation Reference:
@@ -638,7 +642,7 @@ a text indication is aligned on its left edge: in the following
 example, there is no difference
 between the first and the second markup.
 
-@lilypond[quote,verbatim,fragment,relative=1]
+@lilypond[quote,verbatim,relative=2]
 d1-\markup { poco }
 f
 d-\markup { \left-align poco }
@@ -653,7 +657,7 @@ d-\markup { \right-align poco }
 Horizontal alignment may be fine-tuned
 using a numeric value:
 
-@lilypond[quote,verbatim,fragment,relative=1]
+@lilypond[quote,verbatim,relative=2]
 a1-\markup { \halign #-1 poco }
 e'
 a,-\markup { \halign #0 poco }
@@ -683,8 +687,8 @@ or an invisible object.  The following example demonstrates these
 two possibilities; the last markup in this example has no anchor
 point, and therefore is not moved.
 
-@lilypond[quote,verbatim,fragment,relative=1]
-d2^\markup { 
+@lilypond[quote,verbatim,relative=1]
+d2^\markup {
   Acte I
   \raise #2 { Scène 1 }
 }
@@ -709,7 +713,7 @@ alignment of text objects in markup mode.  Any object
 affected by these commands must be preceded with an
 anchor point:
 
-@lilypond[quote,verbatim,fragment,relative=1]
+@lilypond[quote,verbatim,relative=1]
 d2^\markup {
   Acte I
   \translate #'(-1 . 2) "Scène 1"
@@ -777,7 +781,7 @@ or any other markup expression:
   }
 }
 \markup {
-  \fill-line { 1885 } 
+  \fill-line { 1885 }
 }
 @end lilypond
 
@@ -802,7 +806,7 @@ the following example.
       gitanos en el Albaicín de Granada. Al fondo una
       puerta por la que se ve el negro interior de
       una Fragua, iluminado por los rojos resplandores
-      del fuego.) 
+      del fuego.)
     }
     \hspace #0
 
@@ -821,6 +825,7 @@ the following example.
 An exhaustive list of text alignment commands
 can be found in @ref{Align}.
 
+
 @seealso
 Learning Manual:
 @rlearning{Moving objects}.
@@ -956,7 +961,7 @@ using native PostScript code.  In such a case, it
 may be useful to explicitely specify the size of the
 drawing, as demonstrated below:
 
-@lilypond[quote,verbatim,fragment,relative=1]
+@lilypond[quote,verbatim,relative=1]
 c1^\markup {
   \combine
     \epsfile #X #10 #"./context-example.eps"
@@ -979,6 +984,7 @@ c
 An exhaustive list of graphics-specific commands
 can be found in @ref{Graphic}.
 
+
 @seealso
 Notation Reference:
 @ref{Graphic},
@@ -993,6 +999,7 @@ Installed files:
 @file{scm/@/define@/-markup@/-commands@/.scm},
 @file{scm/@/stencil@/.scm}.
 
+
 @node Music notation inside markup
 @unnumberedsubsubsec Music notation inside markup
 
@@ -1002,7 +1009,7 @@ to a score, inside a markup object.
 Notes and accidentals can be entered using markup
 commands:
 
-@lilypond[quote,verbatim,fragment,relative=2]
+@lilypond[quote,verbatim,relative=2]
 a2 a^\markup {
   \note #"4" #1
   =
@@ -1023,7 +1030,7 @@ a1_\markup {
 Other notation objects may also be printed
 in markup mode:
 
-@lilypond[quote,verbatim,fragment,relative=1]
+@lilypond[quote,verbatim,relative=1]
 g1 bes
 ees-\markup {
   \finger 4
@@ -1039,14 +1046,14 @@ d-\markup {
   \markalphabet #8
   \markletter #8
 }
-@end lilypond 
+@end lilypond
 
 More generally, any available musical symbol may be
 included separately in a markup object, as demonstrated
 below; an exhaustive list of these symbols and their
 names can be found in @ref{The Feta font}.
 
-@lilypond[quote,verbatim,fragment,relative=2]
+@lilypond[quote,verbatim,relative=2]
 c2
 c'^\markup { \musicglyph #"eight" }
 c,4
@@ -1054,16 +1061,16 @@ c,8._\markup { \musicglyph #"clefs.G_change" }
 c16
 c2^\markup { \musicglyph #"timesig.neomensural94" }
 @end lilypond
-@c TODO: add \lookup here? -vv
 
 @noindent
-Another way of printing non-text glyphs is described
-in @ref{Fonts explained}.
+Another way of printing non-text glyphs is described in
+@ref{Fonts explained}.  This is useful for printing braces of
+various sizes.
 
 The markup mode also supports diagrams for specific
 instruments:
 
-@lilypond[quote,verbatim,fragment,relative=2]
+@lilypond[quote,verbatim,relative=2]
 c1^\markup {
   \fret-diagram-terse #"x;x;o;2;3;2;"
 }
@@ -1089,10 +1096,10 @@ A whole score can even be nested inside a markup object.
 In such a case, the nested @code{\score} block must
 contain a @code{\layout} block, as demonstrated here:
 
-@lilypond[quote,verbatim,fragment,relative=1]
+@lilypond[quote,verbatim,relative=1]
 c4 d^\markup {
   \score {
-    \relative { c4 d e f }
+    \relative c' { c4 d e f }
     \layout { }
   }
 }
@@ -1103,6 +1110,7 @@ c d e f
 An exhaustive list of music notation related commands can be
 found in @ref{Music}.
 
+
 @seealso
 Notation Reference:
 @ref{Music},
@@ -1119,6 +1127,7 @@ Installed files:
 @file{scm/@/fret@/-diagrams@/.scm},
 @file{scm/@/harp@/-pedals@/.scm}.
 
+
 @node Multi-page markup
 @unnumberedsubsubsec Multi-page markup
 
@@ -1133,7 +1142,7 @@ spread over multiple pages:
     ...
   }
   \wordwrap-lines {
-    An other very long paragraph.
+    Another very long paragraph.
     ...
   }
   ...
@@ -1153,6 +1162,7 @@ a list of markup lists.
 An exhaustive list of markup list commands can be found in
 @ref{Text markup list commands}.
 
+
 @seealso
 Notation Reference:
 @ref{Text markup list commands},
@@ -1166,9 +1176,11 @@ Internals Reference: @rinternals{TextScript}.
 Installed files:
 @file{scm/@/define@/-markup@/-commands@/.scm}.
 
+
 @predefined
 @funindex \markuplines
-@code{\markuplines}
+@code{\markuplines}.
+@endpredefined
 
 
 @node Fonts
@@ -1188,6 +1200,7 @@ and how they may be changed in scores.
 
 @cindex Pango
 @cindex fonts, explained
+@cindex braces, various sizes
 @funindex font-interface
 
 Fonts are handled through several libraries.
@@ -1196,10 +1209,10 @@ the selected fonts are rendered using Pango.
 
 Music notation fonts can be described as a set of
 specific glyphs, ordered in several families.
-The following syntax allows to directly use various
-LilyPond @code{feta} non-text fonts in markup mode:
+The following syntax allows various LilyPond @code{feta} non-text
+fonts to be used directly in markup mode:
 
-@lilypond[quote,verbatim,fragment,relative=2]
+@lilypond[quote,verbatim,relative=2]
 a1^\markup {
   \vcenter {
     \override #'(font-encoding . fetaBraces)
@@ -1215,8 +1228,17 @@ a1^\markup {
 @end lilypond
 
 @noindent
-A simpler, but more limited syntax is also described in
-@ref{Music notation inside markup}.
+However, all these glyphs except the braces of various sizes
+contained in @code{fetaBraces} are available using the
+simpler syntax described in @ref{Music notation inside markup}.
+
+When using the glyphs contained in @code{fetaBraces}, the size of
+the brace is specified by the numerical part of the glyph name, in
+arbitrary units.  Any integer from @code{0} to @code{575} inclusive
+may be specified, @code{0} giving the smallest brace.  The optimum
+value must be determined by trial and error.  These glyphs are all
+left braces; right braces may be obtained by rotation, see
+@ref{Rotating objects}.
 
 Three families of text fonts are made available: the
 @emph{roman} (serif) font, that defaults to New Century
@@ -1226,16 +1248,18 @@ determined by the Pango installation.
 
 Each family may include different shapes and series.
 The following example demonstrates the ability to select
-alternate families, shapes, series and sizes:
-
-@lilypond[quote,verbatim,fragment,relative=2]
-  \override Score.RehearsalMark #'font-family = #'typewriter
-  \mark \markup "Ouverture"
-  \key d \major
-  \override  Voice.TextScript #'font-shape = #'italic
-  \override  Voice.TextScript #'font-series = #'bold
-  d'2.^\markup "Allegro"
-  r4
+alternate families, shapes, 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
+\mark \markup "Ouverture"
+\override Voice.TextScript #'font-shape = #'italic
+\override Voice.TextScript #'font-series = #'bold
+d2.^\markup "Allegro"
+\override Voice.TextScript #'font-size = #-3
+c4^smaller
 @end lilypond
 
 @noindent
@@ -1265,19 +1289,12 @@ it is preferable to use the simpler syntax explained in
 }
 @end lilypond
 
-@ignore
-@c FIXME: This needs an example -vv
-
-The size of the font may be set with the @code{font-size}
-property.  The resulting size is taken relative to the
-@code{text-font-size} as defined in the @code{\paper} block.
-@end ignore
-
 Although it is easy to switch between preconfigured fonts,
 it is also possible to use other fonts, as explained in the
 following sections: @ref{Single entry fonts} and
 @ref{Entire document fonts}.
 
+
 @seealso
 Notation Reference:
 @ref{The Feta font},
@@ -1285,18 +1302,19 @@ Notation Reference:
 @ref{Selecting font and font size},
 @ref{Font}.
 
+
 @node Single entry fonts
 @unnumberedsubsubsec Single entry fonts
 
 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,fragment,relative=1]
+@lilypond[quote,verbatim,relative=2]
 \override Staff.TimeSignature #'font-name = #"Charter"
 \override Staff.TimeSignature #'font-size = #2
 \time 3/4
 
-c1_\markup {
+a1_\markup {
   \override #'(font-name . "Vera Bold")
     { Vera Bold }
 }
@@ -1315,6 +1333,7 @@ lilypond -dshow-available-fonts x
 The last argument of the command can be anything, but has to be
 present.
 
+
 @seealso
 Notation Reference:
 @ref{Fonts explained},
@@ -1326,15 +1345,14 @@ Snippets:
 Installed files:
 @file{lily/@/font@/-config@/-scheme@/.cc}.
 
+
 @node Entire document fonts
 @unnumberedsubsubsec Entire document fonts
 
-
-It is possible to change the default font families for the
-entire document.  In such a case, the following syntax has
-to be used, by providing three font families that will be
-respectively used as @emph{roman}, @emph{sans} and @emph{typewriter}
-fonts, as explained in @ref{Fonts explained}.
+It is possible to change the fonts to be used as the default fonts in
+the @emph{roman}, @emph{sans} and @emph{typewriter} font families by
+specifying them, in that order, as shown in the example below.  For an
+explanation of fonts, see @ref{Fonts explained}.
 
 @cindex font families, setting
 @funindex make-pango-font-tree
@@ -1360,6 +1378,7 @@ fonts, as explained in @ref{Fonts explained}.
 @c we don't do Helvetica / Courier, since GS incorrectly loads
 @c Apple TTF fonts
 
+
 @seealso
 Notation Reference:
 @ref{Fonts explained},
index 22b54ebae421a04fe3a7ba79ad7766e8de1c3653..f51d9c1da5845a29b188d7f154a0037057c3e50c 100644 (file)
@@ -7,7 +7,7 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @ignore
 Tutorial guidelines:  (different from policy.txt!)
@@ -33,15 +33,15 @@ Tutorial guidelines:  (different from policy.txt!)
 
 This tutorial starts with an introduction to the LilyPond music
 language and explains how to produce printed music.  After this first
-contact we will explain how to create beautiful printed music 
+contact we will explain how to create beautiful printed music
 containing common musical notation.
 
 @menu
-* First steps::                 
-* Single staff notation::       
-* Multiple notes at once::      
-* Songs::                       
-* Final touches::               
+* First steps::
+* Single staff notation::
+* Multiple notes at once::
+* Songs::
+* Final touches::
 @end menu
 
 
@@ -51,8 +51,8 @@ containing common musical notation.
 This section gives a basic introduction to working with LilyPond.
 
 @menu
-* Compiling a file::            
-* Simple notation::             
+* Compiling a file::
+* Simple notation::
 * Working on input files::
 * How to read the manual::
 @end menu
@@ -460,7 +460,6 @@ Here is a small example showing all these elements together:
 
 
 @seealso
-
 Notation Reference: @ruser{Writing pitches},
 @ruser{Writing rhythms}, @ruser{Writing rests},
 @ruser{Time signature}, @ruser{Clef}.
@@ -634,14 +633,13 @@ you have a starting template for experiments.  To see exactly the
 same output (line-width and all), copy everything from @qq{Start
 cut-&-pastable section} to the bottom of the file.
 
-@seealso
 
+@seealso
 There are more tips for constructing input files in
 @ref{Suggestions for writing LilyPond input files}.  But it might be
 best to read through the rest of the tutorial first.
 
 
-
 @node Single staff notation
 @section Single staff notation
 
@@ -649,12 +647,12 @@ This section introduces common notation that is used for one voice
 on one staff.
 
 @menu
-* Accidentals and key signatures::  
-* Ties and slurs::              
-* Articulation and dynamics::   
-* Adding text::                 
-* Automatic and manual beams::  
-* Advanced rhythmic commands::  
+* Accidentals and key signatures::
+* Ties and slurs::
+* Articulation and dynamics::
+* Adding text::
+* Automatic and manual beams::
+* Advanced rhythmic commands::
 @end menu
 
 
@@ -758,14 +756,14 @@ d cis fis
 No note has a printed accidental, but you must still add
 @code{is} and type @code{cis} and @code{fis} in the input file.
 
-The code @code{e} does not mean @qq{print a black dot just on
-the first line of the staff.}  Rather, it means @qq{there is a
-note with pitch E-natural.}  In the key of A-flat major, it
+The code @code{b} does not mean @qq{print a black dot just on
+the middle line of the staff.}  Rather, it means @qq{there is a
+note with pitch B-natural.}  In the key of A-flat major, it
 @emph{does} get an accidental:
 
 @lilypond[verbatim,quote,relative=2]
 \key aes \major
-e
+b
 @end lilypond
 
 Adding all alterations explicitly might require a little more
@@ -775,8 +773,8 @@ according to different conventions.  For some examples how
 accidentals can be printed according to different rules, see
 @ruser{Automatic accidentals}.
 
-@seealso
 
+@seealso
 Notation Reference: @ruser{Note names in other languages},
 @ruser{Accidentals}, @ruser{Automatic accidentals},
 @ruser{Key signature}.
@@ -852,8 +850,8 @@ larger groups of notes.  Slurs and ties can be nested.
 c2~( c8 fis fis4 ~ fis2 g2)
 @end lilypond
 
-@seealso
 
+@seealso
 Notation Reference: @ruser{Ties}, @ruser{Slurs},
 @ruser{Phrasing slurs}.
 
@@ -942,8 +940,8 @@ example @code{\f}, will end the (de)crescendo, or the command
 c2\< c2\ff\> c2 c2\!
 @end lilypond
 
-@seealso
 
+@seealso
 Notation Reference: @ruser{Articulations and ornamentations},
 @ruser{Fingering instructions}, @ruser{Dynamics}.
 
@@ -975,7 +973,6 @@ a1_\markup{
 
 
 @seealso
-
 Notation Reference: @ruser{Writing text}.
 
 
@@ -1025,8 +1022,8 @@ a8 c b4 d8. c16 b4
 a8 c b4 d8. c16 b4
 @end lilypond
 
-@seealso
 
+@seealso
 Notation Reference: @ruser{Automatic beams}, @ruser{Manual beams}.
 
 
@@ -1102,8 +1099,8 @@ c2 \appoggiatura b16 c2
 c2 \acciaccatura b16 c2
 @end lilypond
 
-@seealso
 
+@seealso
 Notation Reference: @ruser{Grace notes}, @ruser{Tuplets},
 @ruser{Upbeats}.
 
@@ -1366,8 +1363,8 @@ suitable for vocal scores.  These staff groups each form another
 type of context, one that generates the brace at the left end of
 every system and also controls the extent of bar lines.
 
-@seealso
 
+@seealso
 Notation Reference: @ruser{Keyboard and other multi-staff
 instruments},
 @ruser{Displaying staves}.
@@ -1469,8 +1466,8 @@ Again, these expressions can be nested arbitrarily.
 >>
 @end lilypond
 
-@seealso
 
+@seealso
 Notation Reference: @ruser{Simultaneous notes}.
 
 
@@ -1628,7 +1625,7 @@ If a syllable extends over several notes or a single very long
 note an @notation{extender line} is usually drawn from the
 syllable extending under all the notes for that syllable.  It is
 entered as two underscores @code{__}.  Here is an example from the
-first three bars of @notation{Dido's Lament}, from Purcell's 
+first three bars of @notation{Dido's Lament}, from Purcell's
 @notation{Dido and Æneas}:
 
 @lilypond[verbatim,quote]
@@ -1697,7 +1694,6 @@ Here's an example from Rossini's @notation{Figaro}, where
 
 
 @seealso
-
 Notation Reference: @ruser{Vocal music}.
 
 
@@ -1739,12 +1735,11 @@ produced by separating out the score structure from the notes and
 lyrics with variables.  These are discussed in @ref{Organizing
 pieces with variables}.
 
-@seealso
 
+@seealso
 Notation Reference: @ruser{Vocal music}.
 
 
-
 @node Final touches
 @section Final touches
 
@@ -2029,6 +2024,6 @@ cross-references for further reading.
 If you have not done so already, @emph{please} read @ref{About the
 documentation}.  There is a lot of information about LilyPond, so
 newcomers often do not know where they should look for help.  If
-you spend five minutes reading that section carefully, you might 
+you spend five minutes reading that section carefully, you might
 save yourself hours of frustration looking in the wrong places!
 
index 045a9ec2cd92fb1dd0972bb4b3238c06e6e8ec2f..dd38806ad60c0391b370663f8b2c20debcf52853 100644 (file)
@@ -7,7 +7,7 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @node Tweaking output
 @chapter Tweaking output
@@ -17,22 +17,22 @@ 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::            
+* 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::            
+* Introduction to tweaks::
+* Objects and interfaces::
+* Naming conventions of objects and properties::
+* Tweaking methods::
 @end menu
 
 @node Introduction to tweaks
@@ -40,16 +40,16 @@ configurable; virtually every fragment of output may be changed.
 
 @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 
+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 
+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
@@ -72,7 +72,7 @@ and constructing Tweaks.
 
 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 
+which are used to describe those internal operations and
 structures.
 
 The term @q{Object} is a generic term used to refer to the
@@ -117,7 +117,7 @@ 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 
+These, then, are the main terms relating to objects which we
 shall use in this chapter.
 
 @node Naming conventions of objects and properties
@@ -128,17 +128,17 @@ shall use in this chapter.
 @cindex objects, naming conventions
 @cindex properties, naming conventions
 
-We met some object naming conventions previously, in 
+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 
+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. 
+verbatim.
 
 @multitable @columnfractions .33 .33 .33
-@headitem Object/property type           
+@headitem Object/property type
   @tab Naming convention
   @tab Examples
 @item Contexts
@@ -152,7 +152,7 @@ verbatim.
   @tab Clef_engraver, Note_heads_engraver
 @item Interfaces
   @tab aaa-aaa-interface
-  @tab grob-interface, break-aligned-interface 
+  @tab grob-interface, break-aligned-interface
 @item Context Properties
   @tab aaa or aaaAaaaAaaa
   @tab alignAboveContext, skipBars
@@ -161,7 +161,7 @@ verbatim.
   @tab direction, beam-thickness
 @end multitable
 
-As we shall see shortly, the properties of different types of 
+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 type of object from the names of its
 properties.
@@ -225,6 +225,9 @@ 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]
 c d
 \override NoteHead #'color = #red
@@ -256,6 +259,9 @@ Again, just like @var{Context} in the @code{\override} command,
 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]
 c d
 \override NoteHead #'color = #red
@@ -278,6 +284,9 @@ during the current musical moment before the property reverts
 back to its default value.  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]
 c d
 \once \override NoteHead #'color = #red
@@ -317,6 +326,9 @@ 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
@@ -345,6 +357,9 @@ note.
 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
@@ -354,16 +369,20 @@ Note that the syntax of @code{\tweak} is different from that
 of the @code{\override} command.  Neither the context nor the
 layout object should be specified; in fact, it would generate
 an error to do so.  These are both implied by the following
-item in the input stream.  So the general syntax of the
+item in the input stream.  Note also that an equals sign should
+not be present.  So the general syntax of the
 @code{\tweak} command is simply
 
 @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
 a series of articulations, as shown here:
 
+@cindex color property, example
+@cindex @code{\tweak}, example
+
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 a ^Black
   -\tweak #'color #red ^Red
@@ -377,13 +396,14 @@ articulation mark as if it were an articulation itself.
 @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 
+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
@@ -393,6 +413,10 @@ 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 {
@@ -407,6 +431,11 @@ 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]
@@ -422,8 +451,8 @@ appearance may be modified in the usual way with
 }
 @end lilypond
 
-@seealso
 
+@seealso
 Notation Reference:
 @ruser{The tweak command}.
 
@@ -434,9 +463,9 @@ Notation Reference:
 @cindex Internals Reference
 
 @menu
-* Properties of layout objects::  
-* Properties found in interfaces::  
-* Types of properties::         
+* Properties of layout objects::
+* Properties found in interfaces::
+* Types of properties::
 @end menu
 
 @node Properties of layout objects
@@ -454,7 +483,7 @@ 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 
+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.
@@ -470,6 +499,7 @@ 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:
@@ -486,7 +516,7 @@ music:
     The man who feels love's sweet e -- mo -- tion
   }
 }
-@end lilypond 
+@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
@@ -504,7 +534,7 @@ 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 
+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
@@ -535,28 +565,31 @@ 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 
+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 
+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 
+@end example
 
 Don't forget the @code{#'} preceding the
-property name and and @code{#} preceding the new value!
+property name and a @code{#} preceding the new value!
 
 The final question is, @q{Where should this command be
-placed?}  While you are unsure and learning, the best 
+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]
 {
   \time 6/8
@@ -571,7 +604,7 @@ close to it.}  Let's do that:
     The man who feels love's sweet e -- mo -- tion
   }
 }
-@end lilypond 
+@end lilypond
 
 @noindent
 and we see that the slur is indeed heavier.
@@ -588,7 +621,7 @@ which follow.
 @cindex context, finding
 @cindex context, identifying correct
 
-But first, what if we had needed to specify the Context?  
+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
@@ -600,8 +633,8 @@ the @code{Slur_engraver} is in.  Follow the link to the
 us that @code{Slur_engraver} is part of five 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 
+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
@@ -622,6 +655,9 @@ 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]
 {
   \time 6/8
@@ -637,7 +673,7 @@ repositioned as follows:
     The man who feels love's sweet e -- mo -- tion
   }
 }
-@end lilypond 
+@end lilypond
 
 @noindent
 Now only the first slur is made heavier.
@@ -658,6 +694,9 @@ 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]
 {
   \time 6/8
@@ -675,13 +714,16 @@ the slurs begin:
     The man who feels love's sweet e -- mo -- tion
   }
 }
-@end lilypond 
+@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]
 {
   \time 6/8
@@ -710,9 +752,9 @@ 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 
+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. 
+contain progressively fewer words of guidance and explanation.
 
 
 @node Properties found in interfaces
@@ -788,6 +830,11 @@ in italics should be
 and this should be placed just in front of and close to the
 lyrics which it should affect, like this:
 
+@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]
 {
   \time 6/8
@@ -811,10 +858,10 @@ and the lyrics are all printed in italics.
 @cindex context, specifying in lyric mode
 @cindex lyric mode, specifying context
 
-In the case of lyrics, if you try specifying the context in the 
+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 
+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,
@@ -833,8 +880,8 @@ 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
 
+@seealso
 Learning Manual: @ref{Scheme tutorial}.
 
 
@@ -847,14 +894,14 @@ 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 
+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 
+to the front of these values when they are entered in the
 @code{\override} command.
 
 @multitable @columnfractions .2 .45 .35
-@headitem Property type           
+@headitem Property type
   @tab Rules
   @tab Examples
 @item Boolean
@@ -880,7 +927,7 @@ and preceded by an apostrophe
   @tab Any valid markup
   @tab @code{\markup @{ \italic "cresc." @}}
 @item Moment
-  @tab A fraction of a whole note constructed with the 
+  @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)}
@@ -905,8 +952,8 @@ by apostrophe-hash, @code{'#}.
   @tab @code{'#(#t #t #f)}
 @end multitable
 
-@seealso
 
+@seealso
 Learning Manual: @ref{Scheme tutorial}.
 
 
@@ -914,13 +961,13 @@ Learning Manual: @ref{Scheme tutorial}.
 @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 
+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::  
+* Visibility and color of objects::
+* Size of objects::
+* Length and thickness of objects::
 @end menu
 
 @node Visibility and color of objects
@@ -929,7 +976,7 @@ appearance of the printed music.
 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 
+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?
 
@@ -962,10 +1009,13 @@ these in turn.
 
 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 
+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
@@ -988,6 +1038,9 @@ wrongly, 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
@@ -1016,6 +1069,9 @@ as part of the value to introduce a vector, and the first @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
@@ -1045,6 +1101,9 @@ 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
@@ -1063,6 +1122,9 @@ 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
@@ -1101,6 +1163,9 @@ 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
@@ -1132,6 +1197,9 @@ 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
@@ -1159,6 +1227,9 @@ 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
@@ -1175,6 +1246,15 @@ 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
@@ -1197,8 +1277,8 @@ 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.  
+IR it tells you in which context the engraver will normally be
+found.
 
 
 @node Size of objects
@@ -1209,10 +1289,13 @@ found.
 @cindex objects, size of
 @cindex objects, changing size of
 
-Let us begin by looking again at the earlier example 
+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' {
@@ -1221,7 +1304,7 @@ how to introduce a new temporary staff, as in an @rglos{ossia}.
          <<
            { f c c }
            \new Staff \with {
-             alignAboveContext = "main" }
+             alignAboveContext = #"main" }
            { f8 f c }
          >>
          r4 |
@@ -1234,6 +1317,12 @@ 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' {
@@ -1242,7 +1331,7 @@ we simply set the stencil of each to @code{#f}, as follows:
     <<
       { f c c }
       \new Staff \with {
-        alignAboveContext = "main"
+        alignAboveContext = #"main"
       }
       {
         \override Staff.Clef #'stencil = ##f
@@ -1260,9 +1349,9 @@ 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 
+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 \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
@@ -1270,7 +1359,7 @@ values for the duration of that context, whereas
 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 
+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.
 
@@ -1290,6 +1379,11 @@ 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' {
@@ -1298,7 +1392,7 @@ So we could replace the example above with
     <<
       { f c c }
       \new Staff \with {
-        alignAboveContext = "main"
+        alignAboveContext = #"main"
         % Don't print clefs in this staff
         \override Clef #'stencil = ##f
         % Don't print time signatures in this staff
@@ -1348,6 +1442,12 @@ 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' {
@@ -1356,7 +1456,7 @@ Let's try it in our ossia example:
     <<
       { f c c }
       \new Staff \with {
-        alignAboveContext = "main"
+        alignAboveContext = #"main"
         \override Clef #'stencil = ##f
         \override TimeSignature #'stencil = ##f
         % Reduce all font sizes by ~24%
@@ -1369,7 +1469,7 @@ Let's try it in our ossia example:
 }
 @end lilypond
 
-This is still not quite right.  The note heads and flags are 
+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
@@ -1403,6 +1503,16 @@ 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' {
@@ -1411,7 +1521,7 @@ objects in proportion.  It is used like this:
     <<
       { f c c }
       \new Staff \with {
-        alignAboveContext = "main"
+        alignAboveContext = #"main"
         \override Clef #'stencil = ##f
         \override TimeSignature #'stencil = ##f
         fontSize = #-2
@@ -1441,22 +1551,22 @@ 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 
+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. 
+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::       
+* Automatic behavior::
+* Within-staff objects::
+* Outside-staff objects::
 @end menu
 
 
@@ -1469,14 +1579,14 @@ from a font) may be changed in the same way.
 @cindex objects, outside-staff
 
 There are some objects in musical notation that belong to
-the staff and there are other objects that should be 
+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 
+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
@@ -1492,22 +1602,24 @@ collide with any other object.  LilyPond uses the
 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 
+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 
+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 
+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"
 c^"Text2"
@@ -1531,14 +1643,14 @@ this @q{nestling} of the notes on adjacent staves:
     \relative c'''' { c a, }
   }
 >>
-@end lilypond 
+@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 
+the direction of slurs, ties, fingering and
 everything else which depends on the direction of the stems.
 These commands are essential when writing polyphonic music to
 permit interweaving melodic lines to be distinguished.
@@ -1550,7 +1662,7 @@ 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 
+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.
@@ -1566,6 +1678,9 @@ 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
@@ -1634,7 +1749,7 @@ 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 
+followed after the affected note by the corresponding
 @code{\xxxNeutral} command.
 
 @subheading Fingering
@@ -1654,6 +1769,9 @@ 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]
 c-5 a-3 f-1 c'-5
 \override Fingering #'direction = #DOWN
@@ -1668,6 +1786,8 @@ 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]
 c-5 a-3 f-1 c'-5
 c_5 a_3 f_1 c'_5
@@ -1679,6 +1799,8 @@ 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>
 <c-5 g-3 e-2>
@@ -1689,6 +1811,8 @@ notes of a chord, as shown:
 but this may be overriden 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>
 <c^5 g_3 e_2 c_1>
@@ -1726,6 +1850,10 @@ 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>
@@ -1786,8 +1914,8 @@ outside-staff objects which are, by default, placed in the
 @code{Staff} or @code{Voice} contexts.
 
 @multitable @columnfractions .3 .3 .3
-@headitem Layout Object           
-  @tab Priority     
+@headitem Layout Object
+  @tab Priority
   @tab Controls position of:
 @item @code{MultiMeasureRestText}
   @tab @code{450}
@@ -1823,10 +1951,12 @@ these.
 @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
+\override TextSpanner #'(bound-details left text)
     = \markup { \small \bold Slower }
 % Place dynamics above staff
 \dynamicUp
@@ -1891,9 +2021,12 @@ 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
+\override TextSpanner #'(bound-details left text)
     = \markup { \small \bold Slower }
 % Place dynamics above staff
 \dynamicUp
@@ -1916,6 +2049,33 @@ c\ff c \stopTextSpan
 c, c c c
 @end lilypond
 
+@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
+c^\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
@@ -1925,6 +2085,9 @@ 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"
 c^"Text2"
@@ -1961,9 +2124,9 @@ c2^"Text1"
 c^"Text2"
 c^"Text3"
 c^"Text4"
-@end lilypond  
+@end lilypond
 
-The command to revert to the default behavior is 
+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}.
@@ -1975,6 +2138,9 @@ 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"
@@ -2021,7 +2187,7 @@ ees,2.~\)\mf ees4 r8 |
 
 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 
+by displacing later dynamic markings further away, but this may
 not be the optimum placement, as this rather artificial example
 shows:
 
@@ -2044,7 +2210,7 @@ shall have to work out how to do this using @code{\override} commands.
 @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 
+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.
@@ -2052,15 +2218,15 @@ 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 
+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 
+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
@@ -2074,6 +2240,9 @@ the command to do this for dynamic text:
 @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)
@@ -2091,6 +2260,9 @@ 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
@@ -2109,9 +2281,9 @@ down with the notes.  The property to do this is
 @section Collisions of objects
 
 @menu
-* Moving objects::              
-* Fixing overlapping notation::  
-* Real music example::          
+* Moving objects::
+* Fixing overlapping notation::
+* Real music example::
 @end menu
 
 @node Moving objects
@@ -2216,13 +2388,13 @@ objects, this value is set by default to be around 1.0 or less
 @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 
+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 
-@code{-1} and @code{+1} may be specified, where @code{-1} is 
-left-aligned, @code{+1} is right-aligned, and numbers in between 
+or @code{CENTER}.  Alternatively, a numerical value between
+@code{-1} and @code{+1} may be specified, where @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 @code{-1} to
@@ -2363,12 +2535,18 @@ 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
@@ -2418,6 +2596,12 @@ One way of achieving this is to override the accidental stencil
 with a markup containing the natural and flat symbols in the
 order we would like, 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]
 naturalplusflat = \markup { \natural \flat }
 \relative c'' {
@@ -2433,8 +2617,8 @@ naturalplusflat = \markup { \natural \flat }
 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 natural 
-sign followed by a flat sign.  These are then moved further away 
+property of @code{Accidental}, which itself is set to be a natural
+sign followed by a flat sign.  These are then moved further away
 from the note head by overriding @code{right-padding}.
 
 @noindent
@@ -2453,6 +2637,11 @@ 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
@@ -2469,6 +2658,9 @@ 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 >
@@ -2498,6 +2690,9 @@ 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 @code{-8}.
 
+@cindex MultiMeasureRest, example of overriding
+@cindex staff-position property, example
+
 @lilypond[quote,verbatim,fragment,ragged-right, relative=1]
 <<
   {c c c c}
@@ -2523,6 +2718,9 @@ 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
 f-5
@@ -2566,6 +2764,9 @@ 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)
@@ -2590,6 +2791,9 @@ This can be resolved by manually moving both ends of the beam
 up from their position at 2 staff-spaces above the center line to,
 say, 3:
 
+@cindex Beam, example of overriding
+@cindex positions property, example
+
 @lilypond[quote,verbatim,fragment,ragged-right]
 {
   \clef "bass"
@@ -2644,6 +2848,9 @@ the higher notes.
 
 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
@@ -2678,6 +2885,7 @@ 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
 @lilypond[quote,ragged-right]
 rhMusic = \relative c'' {
   r2
@@ -2983,6 +3191,9 @@ 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
+
 @lilypond[quote,verbatim,ragged-right]
 rhMusic = \relative c'' {
   r2 c4.\( g8 |
@@ -3038,6 +3249,11 @@ 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
+
 @lilypond[quote,verbatim,ragged-right]
 rhMusic = \relative c'' {
   r2
@@ -3098,7 +3314,7 @@ lhMusic = \relative c' {
 * Using variables for tweaks::
 * Other sources of information::
 * Avoiding tweaks with slower processing::
-* Advanced tweaks with Scheme::  
+* Advanced tweaks with Scheme::
 @end menu
 
 @node Other uses for tweaks
@@ -3131,6 +3347,9 @@ with the tied notes in one of them
 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]
 <<
   {
@@ -3179,6 +3398,9 @@ 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'' {
@@ -3198,6 +3420,9 @@ We show here the effect of the two methods:
 }
 @end lilypond
 
+@cindex MetronomeMark, example of overriding
+@cindex stencil property, example
+
 @lilypond[quote,verbatim,ragged-right]
 \score {
   \relative c'' {
@@ -3219,7 +3444,7 @@ We show here the effect of the two methods:
 
 @noindent
 Both methods remove the metronome mark which lengthens the fermata
-from the printed output, and both affect the MIDI timing as 
+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.
@@ -3234,12 +3459,14 @@ second (with the stencil removed) does not.
 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 also embedded in
-@code{\markup}, which makes them tedious to enter, so as an
-alternative can we instead use the @code{\override} and 
-@code{\revert} commands?
+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}
@@ -3250,19 +3477,26 @@ alternative can we instead use the @code{\override} and
 @end example
 
 These would also be extremely tedious to enter if there were many
-words requiring emphasis.  So instead we define these as two
-variables, and use them as follows, although normally we would
-perhaps choose shorter names for the variables to make them
-quicker to type:
+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
+  \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 = { \time 4/4 \partial 4 \key c \major}
@@ -3308,7 +3542,7 @@ 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 Linux, or installed under fink or cygwin) or
-compiled it from source, and (b) on which operating system it is 
+compiled it from source, and (b) on which operating system it is
 being used:
 
 @strong{Downloaded from lilypond.org}
@@ -3466,6 +3700,10 @@ 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."
@@ -3486,9 +3724,9 @@ the staff.
 \relative c' {
   % Arrange to obtain color from color-notehead procedure
   \override NoteHead #'color = #color-notehead
-  c2 c' | 
-  b4 g8 a b4 c | 
-  c,2 a' | 
+  c2 c' |
+  b4 g8 a b4 c |
+  c,2 a' |
   g1 |
 }
 \addlyrics {
index cf563d0ee274c9906bc98266afab97334dca404d..5b1a35c9a4ded332b8d86eef220175e7df848845 100644 (file)
@@ -6,7 +6,7 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @node Unfretted string instruments
 @section Unfretted string instruments
@@ -15,6 +15,7 @@
 {unfretted-headword.ly}
 
 @cindex orchestral strings
+@cindex strings, orchestral
 @cindex strings, writing for
 
 This section provides information and references which are helpful
@@ -48,7 +49,7 @@ and other bowed instruments is covered elsewhere:
 
 @itemize
 
-@item Texual indications such as @qq{pizz.} and @qq{arco} are
+@item Textual indications such as @qq{pizz.} and @qq{arco} are
 added as simple text -- see @ref{Text scripts}.
 
 @item Fingerings, including the thumb indication, are described
@@ -63,6 +64,7 @@ added, see @ref{Arpeggio}.
 
 @end itemize
 
+
 @seealso
 Learning Manual:
 @rlearning{String quartet}.
@@ -76,6 +78,7 @@ Notation Reference:
 Snippets:
 @rlsr{Unfretted strings}.
 
+
 @node Bowing indications
 @unnumberedsubsubsec Bowing indications
 
@@ -104,22 +107,25 @@ and the following example shows three ways in which an open A
 string on a violin might be indicated:
 
 @lilypond[verbatim,quote,relative=2]
-a4 \open 
-a^\markup { \teeny "II" } 
+a4 \open
+a^\markup { \teeny "II" }
 a2^\markup { \small "sul A" }
 @end lilypond
 
+
 @predefined
 @code{\downbow},
 @code{\upbow},
 @code{\open}.
+@endpredefined
 
-@seealso
 
+@seealso
 Notation Reference:
 @ref{Articulations and ornamentations},
 @ref{Slurs}.
 
+
 @node Harmonics
 @unnumberedsubsubsec Harmonics
 
@@ -172,6 +178,7 @@ diamond note head to indicate the harmonic position.
 <e a\harmonic>2  <c g'\harmonic>
 @end lilypond
 
+
 @seealso
 Music Glossary:
 @rglos{harmonics}.
@@ -180,6 +187,7 @@ Notation Reference:
 @ref{Special note heads},
 @ref{References for unfretted strings}.
 
+
 @node Snap (Bartok) pizzicato
 @unnumberedsubsubsec Snap (Bartók) pizzicato
 
index d9fedf2c5538036a9edfd2abdc66c238bb72384a..08817cb519e9e0807e8c64ebd6de18c2feec6ceb 100644 (file)
@@ -6,7 +6,7 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @node Vocal music
 @section Vocal music
@@ -35,8 +35,8 @@ to some particular styles of vocal music.
 * References for vocal music and lyrics::
 * Opera::
 * Song books::
-* Chants::
 * Spoken music::
+* Chants::
 * Ancient vocal music::
 @end menu
 
@@ -93,10 +93,12 @@ TBC
 @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
 {simple-lead-sheet.ly}
 
+
 @seealso
 Notation Reference:
 @ref{Chord notation}.
 
+
 @node Spoken music
 @unnumberedsubsubsec Spoken music
 @cindex parlato
@@ -126,6 +128,7 @@ TBC
 @c Add "Printing both the ancient and the modern clef in vocal music" snippet,
 @c and "Transcription of Ancient music with incipit" snippet. -vv
 
+
 @seealso
 Notation Reference:
 @ref{Ancient notation}.
@@ -154,7 +157,7 @@ Notation Reference:
 
 @c FIXME: this section is to be rewritten.
 Since LilyPond input files are text, there is at least one
-issue to consider when working with vocal music: 
+issue to consider when working with vocal music:
 song texts must be interpreted as text, not notes.  For example, the
 input@tie{}@code{d} should be interpreted as a one letter syllable,
 not the note@tie{}D.
@@ -289,7 +292,6 @@ verseOne = \lyricmode @{ Joy to the world the Lord is come @}
 
 
 @seealso
-
 Notation Reference:
 @ref{Fonts}.
 
@@ -297,6 +299,7 @@ Internals Reference:
 @rinternals{LyricText},
 @rinternals{LyricSpace}.
 
+
 @c FIXME: this title has to be changed (possible confusion with LM) -vv
 @node Setting simple songs
 @unnumberedsubsubsec Setting simple songs
@@ -422,8 +425,8 @@ remains empty.
 
 @end ignore
 
-@seealso
 
+@seealso
 @c TODO: document \new Staff << Voice \lyricsto >> bug
 Internals Reference:
 @rinternals{LyricCombineMusic},
@@ -465,6 +468,13 @@ or by specifying the duration of each syllable
 explicitly, using @code{\lyricmode}
 @end itemize
 
+The @code{Voice} context containing the melody to which the lyrics
+are being aligned must not have @qq{died}, or the lyrics after that
+point will be lost.  This can happen if there are periods when that
+voice has nothing to do.  For methods of keeping contexts alive, see
+@ref{Keeping contexts alive}.
+
+
 @menu
 * Automatic syllable durations::
 * Manual syllable durations::
@@ -506,7 +516,7 @@ The following example uses different commands for entering lyrics.
     c4 b8. a16 g4. f8 e4 d c2
   }
 
-% not recommended: left aligns syllables 
+% not recommended: left aligns syllables
   \new Lyrics \lyricmode { Joy4 to8. the16 world!4. the8 Lord4 is come.2 }
 
 % wrong: durations needed
@@ -575,7 +585,10 @@ Here is an example demonstrating manual lyric durations,
  } >>
 @end lilypond
 
+
 @seealso
+Notation Reference:
+@ref{Keeping contexts alive}.
 
 Internals Reference:
 @rinternals{Lyrics}.
@@ -604,8 +617,8 @@ glyph.}.
 \addlyrics { pu- ro~y~ho- nes- to }
 @end lilypond
 
-@seealso
 
+@seealso
 Internals Reference:
 @rinternals{LyricCombineMusic}.
 
@@ -627,7 +640,7 @@ single syllable; such vocalises are called melismas, or melismata.
 @c it might be better to present it first - vv
 
 You can define melismata entirely in the lyrics, by entering @code{_}
-for every extra note that has to be added to the the melisma.
+for every extra note that has to be added to the melisma.
 
 @c FIXME: clarify: __ is used to crate a lyric extender,
 @c _ is used to add a note to a melisma, so both __ and _ are needed.
@@ -689,15 +702,17 @@ A complete example of a SATB score setup is in section
 
 
 @predefined
-
-@code{\melisma}, @code{\melismaEnd}
-@funindex \melismaEnd
 @funindex \melisma
+@code{\melisma},
+@funindex \melismaEnd
+@code{\melismaEnd}.
+@endpredefined
 
-@seealso
 
+@seealso
 @c @lsr{vocal,lyric@/-combine.ly}.
 
+
 @knownissues
 
 Melismata are not detected automatically, and extender lines must be
@@ -707,7 +722,7 @@ inserted by hand.
 @unnumberedsubsubsec Skipping notes
 
 Making a lyric line run slower than the melody can be achieved by
-inserting @code{\skip}s into the lyrics.  For every @code{\skip}, 
+inserting @code{\skip}s into the lyrics.  For every @code{\skip},
 the text will be delayed another note.  The @code{\skip} command
 must be followed by a valid duration, but this is ignored when
 @code{\skip} is used in lyrics.
@@ -755,12 +770,13 @@ happens can be controlled with the @code{minimum-distance} (minimum
 distance between two syllables) and the @code{minimum-length}
 (threshold below which hyphens are removed).
 
-@seealso
 
+@seealso
 Internals Reference:
 @rinternals{LyricExtender},
 @rinternals{LyricHyphen}
 
+
 @node Lyrics and repeats
 @unnumberedsubsubsec Lyrics and repeats
 
@@ -968,12 +984,12 @@ TBC
 @subsection Stanzas
 
 @menu
-* Adding stanza numbers ::
+* Adding stanza numbers::
 * Adding dynamics marks to stanzas::
 * Adding singers' names to stanzas::
 * Stanzas with different rhythms::
-* Printing stanzas at the end ::
-* Printing stanzas at the end in multiple columns ::
+* Printing stanzas at the end::
+* Printing stanzas at the end in multiple columns::
 @end menu
 
 
@@ -988,10 +1004,10 @@ Stanza numbers can be added by setting @code{stanza}, e.g.,
 \new Voice {
   \time 3/4 g2 e4 a2 f4 g2.
 } \addlyrics {
-  \set stanza = "1. "
+  \set stanza = #"1. "
   Hi, my name is Bert.
 } \addlyrics {
-  \set stanza = "2. "
+  \set stanza = #"2. "
   Oh, ché -- ri, je t'aime
 }
 @end lilypond
@@ -1001,7 +1017,7 @@ Stanza numbers can be added by setting @code{stanza}, e.g.,
 These numbers are put just before the start of the first syllable.
 
 @c TODO Create and add snippet to show how two lines of a
-@c stanza can be grouped together, along these lines: 
+@c stanza can be grouped together, along these lines:
 @c (might need improving a bit) -td
 
 @ignore
@@ -1025,8 +1041,8 @@ stanzaOneThree =  {
 }
 
 \new Voice {
-  \repeat volta 2 { c'8 c' c' c' c' c' c'4 
-                    c'8 c' c' c' c' c' c'4   } 
+  \repeat volta 2 { c'8 c' c' c' c' c' c'4
+                    c'8 c' c' c' c' c' c'4   }
 }  \addlyrics { \stanzaOneOne }
    \addlyrics { \stanzaOneThree }
 
@@ -1072,10 +1088,10 @@ the line, just like instrument names.  They are created by setting
 \new Voice {
   \time 3/4 g2 e4 a2 f4 g2.
 } \addlyrics {
-  \set vocalName = "Bert "
+  \set vocalName = #"Bert "
   Hi, my name is Bert.
 } \addlyrics {
-  \set vocalName = "Ernie "
+  \set vocalName = #"Ernie "
   Oh, ché -- ri, je t'aime
 }
 @end lilypond
@@ -1090,12 +1106,6 @@ multiple syllables in another one.  One solution is to make the faster
 voice ignore the melisma.  This is done by setting
 @code{ignoreMelismata} in the Lyrics context.
 
-There is one tricky aspect: the setting for @code{ignoreMelismata}
-must be set one syllable @emph{before} the non-melismatic syllable
-in the text, as shown here,
-
-@c  TODO: breaks compile
-@c seems to be fixed, does not break compile anymore --FV
 @lilypond[verbatim,ragged-right,quote]
 <<
   \relative c' \new Voice = "lahlah" {
@@ -1109,18 +1119,20 @@ in the text, as shown here,
     more slow -- ly
   }
   \new Lyrics \lyricsto "lahlah" {
-    \set ignoreMelismata = ##t % applies to "fas"
-    go fas -- ter
+    go
+    \set ignoreMelismata = ##t
+    fas -- ter
     \unset ignoreMelismata
     still
   }
 >>
 @end lilypond
 
-
-The @code{ignoreMelismata} applies to the syllable @q{fas}, so it
-should be entered before @q{go}.
-
+@knownissues
+Unlike most @code{\set} commands, @code{\set ignoreMelismata} does
+not work if prefixed with @code{\once}.  It is necessary to use
+@code{\set} and @code{\unset} to bracket the lyrics where melismata
+are to be ignored.
 
 @subsubheading Switching to an alternative melody
 
@@ -1225,7 +1237,7 @@ d d e d | c1 |
 }
 
 text = \lyricmode {
-\set stanza = "1." Ma- ry had a lit- tle lamb,
+\set stanza = #"1." Ma- ry had a lit- tle lamb,
 its fleece was white as snow.
 }
 
@@ -1264,9 +1276,9 @@ output in LilyPond.
 melody = \relative c' {
   c c c c | d d d d
 }
+
 text = \lyricmode {
-  \set stanza = "1." This is verse one.
+  \set stanza = #"1." This is verse one.
   It has two lines.
 }
 
@@ -1279,7 +1291,7 @@ text = \lyricmode {
 
 \markup {
   \fill-line {
-    \hspace #0.1 % moves the column off the left margin; 
+    \hspace #0.1 % moves the column off the left margin;
         % can be removed if space on the page is tight
      \column {
       \line { \bold "2."
@@ -1296,8 +1308,8 @@ text = \lyricmode {
         }
       }
     }
-    \hspace #0.1  % adds horizontal spacing between columns; 
-        % if they are still too close, add more " " pairs  
+    \hspace #0.1  % adds horizontal spacing between columns;
+        % if they are still too close, add more " " pairs
         % until the result looks good
      \column {
       \line { \bold "4."
@@ -1314,7 +1326,7 @@ text = \lyricmode {
         }
       }
     }
-  \hspace #0.1 % gives some extra space on the right margin; 
+  \hspace #0.1 % gives some extra space on the right margin;
       % can be removed if page space is tight
   }
 }
@@ -1322,7 +1334,6 @@ text = \lyricmode {
 
 
 @seealso
-
 Internals Reference:
 @rinternals{LyricText},
 @rinternals{StanzaNumber}.
index 772e29129727226df5134c8ad4149eaa575cc395..65071975540e0fb5a6ca9abe98c100a5462ed4df 100644 (file)
@@ -6,7 +6,7 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @node Wind instruments
 @section Wind instruments
@@ -80,8 +80,8 @@ See @ref{Articulations and ornamentations}.
 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
 {changing--flageolet-mark-size.ly}
 
-@seealso
 
+@seealso
 Notation Reference:
 @ref{Breath marks},
 @ref{Slurs},
@@ -167,9 +167,11 @@ This can be indicated by @code{cflat} or @code{fflat}.  Similarly, the
 piobaireachd high g can be written @code{gflat} when it occurs in light
 music.
 
+
 @seealso
 @rlsr{Winds}
 
+
 @node Bagpipe example
 @unnumberedsubsubsec Bagpipe example
 
@@ -216,5 +218,6 @@ notation.
 }
 @end lilypond
 
+
 @seealso
 @rlsr{Winds}
index c912e5999c85bcff1972978254ad6ce797814986..84acc5f6f4cda16e3afb2d909b029a3f7fa4006e 100644 (file)
@@ -7,7 +7,7 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @node Working on LilyPond projects
 @chapter Working on LilyPond projects
@@ -19,16 +19,16 @@ this chapter.
 
 
 @menu
-* Suggestions for writing LilyPond input files::  
-* When things don't work::      
-* Scores and parts::            
+* Suggestions for writing LilyPond input files::
+* When things don't work::
+* Scores and parts::
 @end menu
 
 
 @node Suggestions for writing LilyPond input files
 @section Suggestions for writing LilyPond input files
 
-Now you're ready to begin writing larger LilyPond input files -- 
+Now you're ready to begin writing larger LilyPond input files --
 not just the little examples in the tutorial, but whole pieces.
 But how should you go about doing it?
 
@@ -53,14 +53,15 @@ occasionally as LilyPond improves.  Most changes can be
 done automatically with @code{convert-ly}, but some changes
 might require manual assistance.  LilyPond input files can be
 structured in order to be easier (or harder) to update.
+
 @end itemize
 
 @menu
-* General suggestions::         
-* Typesetting existing music::  
-* Large projects::              
-* Saving typing with variables and functions::  
-* Style sheets::                
+* General suggestions::
+* Typesetting existing music::
+* Large projects::
+* Saving typing with variables and functions::
+* Style sheets::
 @end menu
 
 
@@ -92,7 +93,7 @@ itself or in the output you desire, it's often good to write only one bar
 per line.  Saving screen space by cramming eight bars per line just isn't
 worth it if you have to @q{debug} your input files.
 
-@item @strong{Comment your input files}.  Use either bar numbers 
+@item @strong{Comment your input files}.  Use either bar numbers
 (every so often) or
 references to musical themes (@q{second theme in violins,} @q{fourth
 variation,} etc.).  You may not need comments when you're writing the piece
@@ -140,6 +141,24 @@ define @code{mBreak = @{ @}} to remove all those line breaks.  This
 will allow LilyPond to place line breaks wherever it feels are
 best.
 
+@item When entering a part for a transposing instrument into a
+variable, it is recommended that the notes are wrapped in
+
+@example
+\transpose c natural-pitch @{...@}
+@end example
+(where @code{natural-pitch} is the open pitch of the instrument) so
+that the music in the variable is effectively in C. You can transpose
+it back again when the variable is used, if required, but you might
+not want to (e.g., when printing a score in concert pitch,
+converting a trombone part from treble to bass clef, etc.)
+Mistakes in transpositions are less likely if all the music in
+variables is at a consistent pitch.
+
+Also, only ever transpose to/from C. That means that the only other
+keys you will use are the natural pitches of the instruments - bes
+for a B-flat trumpet, aes for an A-flat clarinet, etc.
+
 @end itemize
 
 
@@ -555,9 +574,9 @@ file with @code{\include "../global.ly"}, which contains
 @section When things don't work
 
 @menu
-* Updating old input files::          
-* Troubleshooting (taking it all apart)::  
-* Minimal examples::            
+* Updating old input files::
+* Troubleshooting (taking it all apart)::
+* Minimal examples::
 @end menu
 
 @node Updating old input files
index b1e387a80658a82ea2a2b7084353630f0749a0de..8550f4b291b70aaa2b783b69362a31a7dcb4556a 100644 (file)
@@ -6,16 +6,16 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.61"
+@c \version "2.12.0"
 
 @node World music
 @section World music
 
 The purpose of this section is to highlight musical notation issues
-that are relevant to traditions outside the Western tradition. 
+that are relevant to traditions outside the Western tradition.
 
 @menu
-* Arabic music::                
+* Arabic music::
 @end menu
 
 @node Arabic music
@@ -25,28 +25,28 @@ This section highlights issues that are relevant to notating Arabic
 music.
 
 @menu
-* References for Arabic music::  
-* Arabic note names ::          
-* Arabic key signatures::       
-* Arabic time signatures::      
-* Arabic music example::        
-* Further reading::             
+* References for Arabic music::
+* Arabic note names ::
+* Arabic key signatures::
+* Arabic time signatures::
+* Arabic music example::
+* Further reading::
 @end menu
 
+
 @node References for Arabic music
-@unnumberedsubsubsec References for Arabic music 
+@unnumberedsubsubsec References for Arabic music
 
 @cindex Arabic music
-@cindex medium intervals  
-@cindex maqam 
+@cindex medium intervals
+@cindex maqam
 @cindex maqams
 
 Arabic music so far has been mainly an oral tradition.  When music
 is transcribed, it is usually in a sketch format, on which
 performers are expected to improvise significantly.  Increasingly,
 Western notation, with a few variations, is adopted in order to
-communicate and preserve Arabic music. 
+communicate and preserve Arabic music.
 
 Some elements of Western musical notation such as the
 transcription of chords or independent parts, are not required to
@@ -56,12 +56,12 @@ intervals that are somewhere between a semi-tone and a tone, in
 addition to the minor and major intervals that are used in Western
 music.  There is also the need to group and indicate a large
 number of different maqams (modes) that are part of Arabic music.
-  
+
 In general, Arabic music notation does not attempt to precisely
 indicate microtonal elements that are present in musical practice.
 
-Several issues that are relevant to Arabic music are covered 
-elsewhere: 
+Several issues that are relevant to Arabic music are covered
+elsewhere:
 
 @itemize
 @item Note names and accidentals (including quarter tones) can be
@@ -71,50 +71,50 @@ tailored as discussed in @ref{Note names in other languages}.
 in @ref{Key signature}.
 
 @item Complex time signatures may require that notes be grouped
-manually as described in @ref{Manual beams}. 
+manually as described in @ref{Manual beams}.
 
-@item @notation{Takasim} which are rhythmically free 
-improvisations may be written down omitting bar lines as 
-described in @ref{Unmetered music}. 
+@item @notation{Takasim} which are rhythmically free
+improvisations may be written down omitting bar lines as
+described in @ref{Unmetered music}.
 
-@end itemize 
+@end itemize
 
-@seealso
 
+@seealso
 Notation Reference:
-@ref{Note names in other languages},     
+@ref{Note names in other languages},
 @ref{Key signature},
 @ref{Manual beams}.
 
 Snippets:
 @rlsr{World music}.
 
-@node Arabic note names 
-@unnumberedsubsubsec Arabic note names 
+
+@node Arabic note names
+@unnumberedsubsubsec Arabic note names
 
 
-@cindex Arabic note names 
+@cindex Arabic note names
 
 The more traditional Arabic note names can be quite long and are
 not suitable for the purpose of music writing, so they are not
 used.  English note names are not very familiar in Arabic music
 education, so Italian or Solfege note names (@code{do, re, mi, fa,
 sol, la, si}) are used instead.  Modifiers (accidentals) can also
-be used, as discussed in @ref{Note names in other languages}. 
+be used, as discussed in @ref{Note names in other languages}.
 
 For example, this is how the Arabic @notation{rast} scale can be
 notated:
 
-@lilypond[quote,verbatim]    
+@lilypond[quote,verbatim]
 \include "arabic.ly"
-\relative do' { 
-  do re misb fa sol la sisb do sisb la sol fa misb re do 
+\relative do' {
+  do re misb fa sol la sisb do sisb la sol fa misb re do
 }
 @end lilypond
 
 
-@cindex Arabic semi-flat symbol 
+@cindex Arabic semi-flat symbol
 @cindex Semi-flat symbol appearance
 
 The symbol for semi-flat does not match the symbol which is used
@@ -122,21 +122,20 @@ in Arabic notation.  The @code{\dwn} symbol defined in
 @code{arabic.ly} may be used preceding a flat symbol as a work
 around if it is important to use the specific Arabic semi-flat
 symbol.  The appearance of the semi-flat symbol in the key
-signature cannot be altered by using this method. 
+signature cannot be altered by using this method.
 
 
-@lilypond[quote,verbatim]    
+@lilypond[quote,verbatim]
 \include "arabic.ly"
-\relative do' { 
-  \set Staff.extraNatural = ##f 
+\relative do' {
+  \set Staff.extraNatural = ##f
   dod dob dosd \dwn dob dobsb dodsd do do
 }
 @end lilypond
 
 
-@seealso 
-
-Notation Reference:     
+@seealso
+Notation Reference:
 @ref{Note names in other languages}.
 
 Snippets:
@@ -144,7 +143,7 @@ Snippets:
 
 
 @node Arabic key signatures
-@unnumberedsubsubsec Arabic key signatures 
+@unnumberedsubsubsec Arabic key signatures
 
 @cindex Arabic key signatures
 
@@ -153,20 +152,20 @@ key signatures are defined in @code{arabic.ly}: @notation{bayati},
 @notation{rast}, @notation{sikah}, @notation{iraq}, and
 @notation{kurd}.  These key signatures define a small number of
 maqam groups rather than the large number of maqams that are in
-common use. 
+common use.
 
-In general, a maqam uses the key signature of its group, or a 
-neighbouring group, and varying accidentals are marked throughout 
+In general, a maqam uses the key signature of its group, or a
+neighbouring group, and varying accidentals are marked throughout
 the music.
 
-For example to indicate the key signature of a maqam muhayer piece:  
+For example to indicate the key signature of a maqam muhayer piece:
 
 @example
-\key re \bayati 
+\key re \bayati
 @end example
 
 Here @var{re} is the default pitch of the muhayer maqam, and
-@var{bayati} is the name of the base maqam in the group. 
+@var{bayati} is the name of the base maqam in the group.
 
 While the key signature indicates the group, it is common for the
 title to indicate the more specific maqam, so in this example, the
@@ -177,13 +176,13 @@ Other maqams in the same bayati group, as shown in the table below:
 way.  These are all variations of the base and most common maqam
 in the group, which is bayati.  They usually differ from the base
 maqam in their upper tetrachords, or certain flow details that
-don't change their fundamental nature, as siblings. 
+don't change their fundamental nature, as siblings.
 
 The other maqam in the same group (Nawa) is related to bayati by
 modulation which is indicated in the table in parenthesis for
 those maqams that are modulations of their base maqam.  Arabic
 maqams admit of only limited modulations, due to the nature of
-Arabic musical instruments.  Nawa can be indicated as follows: 
+Arabic musical instruments.  Nawa can be indicated as follows:
 
 @example
 \key sol \bayati
@@ -192,64 +191,64 @@ Arabic musical instruments.  Nawa can be indicated as follows:
 In Arabic music, the same term such as bayati that is used to
 indicate a maqam group, is also a maqam which is usually the most
 important in the group, and can also be thought of as a base
-maqam. 
+maqam.
 
 Here is one suggested grouping that maps the more common maqams to
-key signatures: 
+key signatures:
 
 @multitable @columnfractions 0.1 0.1 0.1 0.6
-@headitem maqam group 
-  @tab key 
-  @tab finalis 
-  @tab Other maqmas in group (finalis)  
-@item ajam 
-  @tab major 
-  @tab sib 
+@headitem maqam group
+  @tab key
+  @tab finalis
+  @tab Other maqmas in group (finalis)
+@item ajam
+  @tab major
+  @tab sib
   @tab jaharka (fa)
-@item bayati 
+@item bayati
   @tab bayati
   @tab re
-  @tab hussaini, muhayer, saba, ushaq, nawa (sol) 
-@item hijaz 
+  @tab hussaini, muhayer, saba, ushaq, nawa (sol)
+@item hijaz
   @tab kurd
-  @tab re 
+  @tab re
   @tab shahnaz, shad arban (sol), hijazkar (do)
-@item iraq 
+@item iraq
   @tab iraq
   @tab sisb
-  @tab - 
-@item kurd 
+  @tab -
+@item kurd
   @tab kurd
   @tab re
-  @tab hijazkar kurd (do) 
-@item nahawand 
+  @tab hijazkar kurd (do)
+@item nahawand
   @tab minor
-  @tab do 
+  @tab do
   @tab busalik (re), farah faza (sol)
-@item nakriz 
+@item nakriz
   @tab minor
-  @tab do 
+  @tab do
   @tab nawa athar, hisar (re)
-@item rast 
+@item rast
   @tab rast
   @tab do
   @tab mahur, yakah (sol)
-@item sikah 
+@item sikah
   @tab sikah
   @tab misb
-  @tab huzam 
-@end multitable          
+  @tab huzam
+@end multitable
 
 @snippets
 
 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
 {non-traditional-key-signatures.ly}
 
-@seealso
 
-Notation Reference:     
+@seealso
+Notation Reference:
 @ref{Key signature}.
+
 Learning Manual:
 @rlearning{Accidentals and key signatures}.
 
@@ -257,16 +256,16 @@ Internals Reference:
 @rinternals{KeySignature}.
 
 Snippets:
-@rlsr{World music}, 
+@rlsr{World music},
 @rlsr{Pitches}.
 
 
 @node Arabic time signatures
-@unnumberedsubsubsec Arabic time signatures 
+@unnumberedsubsubsec Arabic time signatures
 
 @cindex Arabic time signatures
-@cindex Semai form 
-@cindex taqasim 
+@cindex Semai form
+@cindex taqasim
 
 Some Arabic and Turkish music classical forms such as
 @notation{Semai} use unusual time signatures such as 10/8.  This
@@ -286,45 +285,45 @@ adjust the beaming behaviour and/or use compound time signatures.
 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
 {arabic-improvisation.ly}
 
-@seealso 
 
+@seealso
 Notation Reference:
 @ref{Manual beams},
 @ref{Automatic beams},
-@ref{Unmetered music}, 
-@ref{Automatic accidentals}, 
-@ref{Setting automatic beam behavior}, 
-@ref{Time signature}. 
+@ref{Unmetered music},
+@ref{Automatic accidentals},
+@ref{Setting automatic beam behavior},
+@ref{Time signature}.
 
 Snippets:
 @rlsr{World music}.
 
 
 @node Arabic music example
-@unnumberedsubsubsec Arabic music example 
+@unnumberedsubsubsec Arabic music example
 
-@cindex Arabic music example 
+@cindex Arabic music example
 @cindex Arabic music template
-@cindex Template Arabic music 
+@cindex Template Arabic music
 
 Here is a template that also uses the start of a Turkish Semai
 that is familiar in Arabic music education in order to illustrate
 some of the peculiarities of Arabic music notation, such as medium
-intervals and unusual modes that are discussed in this section. 
+intervals and unusual modes that are discussed in this section.
 
-@lilypond[quote,verbatim]  
+@lilypond[quote,verbatim]
 \include "arabic.ly"
 \score {
   \relative re' {
     \set Staff.extraNatural = ##f
     \set Staff.autoBeaming = ##f
-    \key re \bayati 
+    \key re \bayati
     \time 10/8
-          
-    re4 re'8 re16 [misb re do] sisb [la sisb do] re4 r8                
-    re16 [misb do re] sisb [do] la [sisb sol8] la [sisb] do [re] misb 
-    fa4 fa16 [misb] misb8. [re16] re8 [misb] re  [do] sisb             
-    do4 sisb8 misb16 [re do sisb] la [do sisb la] la4 r8                
+
+    re4 re'8 re16 [misb re do] sisb [la sisb do] re4 r8
+    re16 [misb do re] sisb [do] la [sisb sol8] la [sisb] do [re] misb
+    fa4 fa16 [misb] misb8. [re16] re8 [misb] re  [do] sisb
+    do4 sisb8 misb16 [re do sisb] la [do sisb la] la4 r8
   }
   \header {
     title = "Semai Muhayer"
@@ -333,11 +332,10 @@ intervals and unusual modes that are discussed in this section.
 }
 @end lilypond
 
-@seealso
 
+@seealso
 Snippets:
-@rlsr{World music} 
-
+@rlsr{World music}
 
 
 @node Further reading
@@ -345,40 +343,40 @@ Snippets:
 
 @enumerate
 
-@item 
-The music of the Arabs by Habib Hassan Touma [Amadeus Press, 1996], 
+@item
+The music of the Arabs by Habib Hassan Touma [Amadeus Press, 1996],
 contains a discussion of maqams and their method of groupings.
 
-There are also various web sites that explain maqams and some 
+There are also various web sites that explain maqams and some
 provide audio examples such as :
 
-@itemize @bullet 
-@item 
+@itemize @bullet
+@item
 @uref{http://www.maqamworld.com/}
-@item 
+@item
 @uref{http://www.turath.org/}
-@end itemize  
+@end itemize
 
-There are some variations in the details of how maqams are grouped, 
-despite agreement on the criteria of grouping maqams that are 
-related through common lower tetra chords, or through modulation.  
+There are some variations in the details of how maqams are grouped,
+despite agreement on the criteria of grouping maqams that are
+related through common lower tetra chords, or through modulation.
 
-@item 
-There is not a complete consistency, sometimes even in the same 
-text on how key signatures for particular maqams should be 
-specified. It is common, however, to use a key signature per 
-group, rather than a different key signature for each different 
+@item
+There is not a complete consistency, sometimes even in the same
+text on how key signatures for particular maqams should be
+specified. It is common, however, to use a key signature per
+group, rather than a different key signature for each different
 maqam.
-  
-Oud methods by the following authors, contain examples of 
-mainly Turkish and Arabic compositions. 
+
+Oud methods by the following authors, contain examples of
+mainly Turkish and Arabic compositions.
 
 @itemize @bullet
-@item 
+@item
 Charbel Rouhana
-@item 
+@item
 George Farah
-@item 
+@item
 Ibrahim Ali Darwish Al-masri
 @end itemize
 @end enumerate
index 69962c9b3273387f0f9b449de660e1ef6d681b9e..012a9e82f7f7d7cfc852730d43bec47d135fe2c3 100644 (file)
@@ -2,7 +2,7 @@
 
 depth = .
 
-SUBDIRS = buildscripts python scripts \
+SUBDIRS = python scripts \
        flower lily \
        mf ly \
        tex ps scm \
@@ -22,7 +22,7 @@ TOPDOC_FILES = AUTHORS INSTALL README NEWS
 TOPDOC_TXT_FILES = $(addprefix $(top-build-dir)/Documentation/topdocs/$(outdir)/,$(addsuffix .txt,$(TOPDOC_FILES)))
 IN_FILES := $(call src-wildcard,*.in)
 
-EXTRA_DIST_FILES = VERSION .gitignore SConstruct lilypond-texi2html.init \
+EXTRA_DIST_FILES = VERSION .gitignore lilypond-texi2html.init \
   $(README_FILES) $(SCRIPTS) $(IN_FILES) 
 INSTALLATION_DIR=$(local_lilypond_datadir)
 INSTALLATION_FILES=$(config_make) VERSION
@@ -43,7 +43,20 @@ $(outdir)/VERSION: $(config_make) VERSION
        -mkdir -p $(outdir)
        echo $(TOPLEVEL_VERSION) > $@
 
-dist-toplevel-txt-files:
+ChangeLog: $(outdir)/VERSION
+       @echo 'See http://git.savannah.gnu.org/gitweb/?p=lilypond.git;a=log;h=refs/tags/release/$(TOPLEVEL_VERSION)-1' > ChangeLog
+
+python-modules:
+       $(MAKE) -C python
+
+do-top-doc: python-modules
+
+local-clean: local-clean-ChangeLog
+
+local-clean-ChangeLog:
+       rm -f ChangeLog
+
+dist-toplevel-txt-files: do-top-doc
        -mkdir -p $(distdir)
        ln $(TOPDOC_TXT_FILES) $(distdir)/
        ln $(top-src-dir)/stepmake/aclocal.m4 $(distdir)/
@@ -59,12 +72,17 @@ install-help2man:
 # installed in non-recursing target from TOP-SRC-DIR
 install-WWW:
        -$(INSTALL) -m 755 -d $(DESTDIR)$(webdir)
-       rsync -rl $(outdir)/offline-root/ $(DESTDIR)$(webdir)
+       rsync -rl --exclude='*.signature' $(outdir)/offline-root/ $(DESTDIR)$(webdir)
+
+install-info-WWW:
        $(MAKE) -C Documentation/user install-info
        $(MAKE) -C input/lsr install-info
+       (cd $(DESTDIR)$(infodir) && rm -f lilypond && ln -sf $$($(PYTHON) $(buildscript-dir)/relative $(DESTDIR)$(webdir)/Documentation/user) lilypond)
+       (cd $(DESTDIR)$(infodir) && rm -f lilypond-snippets && ln -sf $$($(PYTHON) $(buildscript-dir)/relative $(DESTDIR)$(webdir)/input/lsr) lilypond-snippets)
 
 web-install:
        $(MAKE) out=www install-WWW
+       $(MAKE) out=www install-info-WWW
 
 uninstall-WWW:
        rm -rf $(DESTDIR)$(webdir)
@@ -87,11 +105,11 @@ final-install:
 WEB_TARGETS = offline
 
 WWW-post:
-# need UTF8 setting in case this is hosted on a website. 
+# need UTF8 setting in case this is hosted on a website.
        echo -e 'AddDefaultCharset utf-8\nAddCharset utf-8 .html\nAddCharset utf-8 .en\nAddCharset utf-8 .nl\nAddCharset utf-8 .txt\n' > $(top-build-dir)/.htaccess
-       $(PYTHON) $(buildscript-dir)/mutopia-index.py -o $(outdir)/examples.html input/
+       $(buildscript-dir)/mutopia-index -o $(outdir)/examples.html input/
        find $(outdir) -name '*-root' | xargs rm -rf
-       $(PYTHON) $(buildscript-dir)/www_post.py $(PACKAGE_NAME) $(TOPLEVEL_VERSION) $(outdir) "$(WEB_TARGETS)"
+       $(buildscript-dir)/www_post $(PACKAGE_NAME) $(TOPLEVEL_VERSION) $(outdir) "$(WEB_TARGETS)"
        find $(outdir)/offline-root -type l -delete
 
 
@@ -199,6 +217,9 @@ $(config_h): config.hh.in
        @echo
        @false
 
+grand-replace:
+       $(MAKE) -C scripts/build
+       PATH=$(buildscript-dir):$(PATH) $(buildscript-dir)/grand-replace
 
 ################################################################
 # testing
@@ -227,7 +248,7 @@ test-baseline:
 local-check: test
        rm -rf $(RESULT_DIR)
        mkdir -p $(RESULT_DIR)
-       $(PYTHON) $(buildscript-dir)/output-distance.py --create-images --output-dir $(RESULT_DIR) input/regression/out-test-baseline input/regression/out-test/
+       $(buildscript-dir)/output-distance --create-images --output-dir $(RESULT_DIR) input/regression/out-test-baseline input/regression/out-test/
        @find input ly -name '*.ly' -print |grep -v 'out.*/' | xargs grep '\\version' -L | grep -v "standard input" |sed 's/^/**** Missing version: /g' 
 
 
diff --git a/ROADMAP b/ROADMAP
index 59a4fbecbd2c0b2d612a2665a4c133b7b3da226d..c027bec55e2bcd89c9761289fa46f54dd1d5fbe3 100644 (file)
--- a/ROADMAP
+++ b/ROADMAP
@@ -9,42 +9,44 @@ LilyPond development is hosted at:
 Here is a simple explanation of the directory layout for LilyPond's
 source files.
 
-   .                   Toplevel READMEs, ChangeLog, build bootstrapping,
-                       patches for third party programs
+   .                    Toplevel READMEs, ChangeLog, build bootstrapping,
+                          patches for third party programs
    Documentation/
-       bibliography/   .bib files with references to books and articles
-       misc/           Old announcements, ChangeLogs and NEWS
-       pictures/       The logo
-       topdocs/                Sources for the toplevel READMEs
-                       (README.txt, INSTALL.txt, NEWS.txt etc.)
-       user/           User manuals
-       po/              translated manual node names
-       fr/ es/ de/      docs translated to French, Spanish, German resp.
-   buildscripts/       Scripts for the build process
-   elisp/              Emacs LilyPond mode and syntax coloring
-   flower/             A simple c++ library
-       include/
-   input/              Music input examples
-       lsr/         Snippets from the LilyPond Snippet Repository
-                    (auto-generated, do not modify!)
-       manual/      Examples from the manual
-       mutopia/                Real music, more at www.mutopiaproject.org
-       new/         Snippets which are too new for LSR
-       regression/     Testing of features, one test per file
-       texidocs/    Translations of texidoc and doctitle fields
-                    (for input/lsr)
-       tutorial/       Examples from the tutorial 
-   lily/               C++ sources for LilyPond (lilypond-bin)
-     include/
-   ly/                 System music include files
-   make/               Specific make subroutines and packaging for
-                       Red Hat-like distributions (.spec files)
-   mf/                 MetaFont sources for the feta font
-   po/                 Translations
-   ps/                 PostScript library files
-   python/             Python modules, MIDI module
-   scm/                        Scheme sources for LilyPond and subroutine files
-   scripts/            End-user scripts
-   stepmake/           Generic make subroutine files
-   tex/                        TeX library files
-   vim/                        Vi(M) LilyPond mode and syntax coloring
+       bibliography/    .bib files with references to books and articles
+       misc/            Old announcements, ChangeLogs and NEWS
+       pictures/        The logo
+       topdocs/         Sources for the toplevel READMEs
+                          (README.txt, INSTALL.txt, NEWS.txt etc.)
+       user/            User manuals
+       po/              Translated manual node names
+       fr/ es/ de/      Docs translated to French, Spanish, German, resp.
+   elisp/               Emacs LilyPond mode and syntax coloring
+   flower/              A simple C++ library
+   input/               Music input examples
+       lsr/             Snippets from the LilyPond Snippet Repository
+                          (auto-generated, do not modify!)
+       manual/          Examples from the manual
+       mutopia/         Real music, more at www.mutopiaproject.org
+       new/             Snippets which are too new for LSR
+       regression/      Testing of features, one test per file
+       texidocs/        Translations of texidoc and doctitle fields
+                          (for input/lsr)
+       tutorial/        Examples from the tutorial 
+   lily/                C++ sources for the LilyPond binary
+   ly/                  System music include files
+   make/                Specific make subroutines and packaging for
+                          Red Hat-like distributions (.spec files)
+   mf/                  MetaFont sources for the Emmentaler and Aybabtu fonts
+   po/                  Translations for binaries and end-user scripts
+   ps/                  PostScript library files
+   python/              Python modules, MIDI module
+       auxiliar/        Python modules used by maintenance scripts
+                          or in the build process
+   scm/                 Scheme sources for LilyPond and subroutine files
+   scripts/             End-user scripts
+       auxiliar/        Scripts for maintaining the sources and scripts
+                          for the build process that need not be built
+       build/           Scripts for the build process that must be built
+   stepmake/            Generic make subroutine files
+   tex/                 TeX and texinfo library files
+   vim/                 Vi(M) LilyPond mode and syntax coloring
diff --git a/SConstruct b/SConstruct
deleted file mode 100644 (file)
index 6ec14e2..0000000
+++ /dev/null
@@ -1,967 +0,0 @@
-# -*-python-*-
-
-'''
-Experimental scons (www.scons.org) building.
-
-Usage
-
-    scons TARGET
-
-build from source directory ./TARGET (not recursive)
-
-Configure, build
-
-    scons [config]         # configure
-    scons              # build all
-
-Run from build tree
-
-    run=$(pwd)/out-scons/usr
-    export LOCALE=$run/share/locale
-    export TEXMF='{'$run/share/lilypond,$(kpsexpand '$TEXMF')'}'
-    PATH=$run/bin:$PATH
-
-    #optionally, if you do not use custom.py below
-    #export LILYPOND_DATADIR=$run/share/lilypond/<VERSION>
-
-    lilypond input/simple
-
-Other targets
-    scons mf-essential     # build minimal mf stuff
-
-    scons doc          # build web doc
-    scons config           # reconfigure
-    scons install          # install
-    scons -c           # clean
-    scons -h           # help
-
-    scons /            # build *everything* (including installation)
-
-Options  (see scons -h)
-    scons build=DIR        # clean srcdir build, output below DIR
-    scons out=DIR          # write output for alterative config to DIR
-
-Debugging
-    scons --debug=dtree
-    scons --debug=explain
-    scons verbose=1
-
-Optional custom.py
-
-import os
-out='out-scons'
-optimising=0
-debugging=1
-gui=1
-os.path.join (os.getcwd (), '=install')
-prefix=os.path.join (os.environ['HOME'], 'usr', 'pkg', 'lilypond')
-
-'''
-
-
-# TODO:
-
-#  * reality check:
-#     - too many stages in Environments setup
-#       (see also buildscripts/builders.py)
-#     - Home-brew scons.cach configuration caching
-#     - Home-brew source tarball generating -- [why] isn't that in SCons?
-
-#  * usability and documentation for "./configure; make" users
-
-#  * too much cruft in toplevel SConstruct
-
-#  * (optional) operation without CVS directories, from tarball
-
-#  * more program configure tests, actually use full executable name
-
-#  * install doc
-
-#  * split doc target: doc input examples mutopia?
-
-#  * grep FIXME $(find . -name 'S*t')
-
-#  * drop "fast"
-
-import re
-import glob
-import os
-import string
-import sys
-import stat
-import shutil
-
-# duh, we need 0.95.1
-EnsureSConsVersion (0, 96, 92)
-
-usage = r'''Usage:
-[ENVVAR=VALUE]... scons [OPTION=VALUE]... [TARGET|DIR]...
-
-TARGETS: clean, config, doc, dist, install, mf-essential, po-update,
-     realclean, release, sconsclean, tar, TAGS
-
-ENVVARS: BASH, CCFLAGS, CC, CXX, LIBS, PYTHON, SH...
-     (see SConstruct:config_vars)
-
-OPTIONS:
-'''
-      
-
-config_cache = 'scons.cache'
-if os.path.exists (config_cache) and 'config' in COMMAND_LINE_TARGETS:
-    os.unlink (config_cache)
-
-# All config_vars can be set as ENVVAR, eg:
-#
-#    CXX=g++-4.0 GS=~/usr/pkg/gs/bin/gs scons config
-#
-# append test_program variables automagically?
-config_vars = [
-    'BASH',
-    'BYTEORDER',
-    'CC',
-    'CCFLAGS',
-    'CPPPATH',
-    'CPPDEFINES',
-    'CXX',
-    'CXXFLAGS',
-    'DEFINES',
-    'DVIPS',
-    'FONTFORGE',
-    'GCC',
-    'GXX',
-    'GS',
-    'LIBS',
-    'LINKFLAGS',
-    'MF',
-    'PERL',
-    'PYTHON',
-    'SH',
-    ]
-
-# Put your favourite stuff in custom.py
-opts = Options ([config_cache, 'custom.py'], ARGUMENTS)
-opts.Add ('prefix', 'Install prefix', '/usr/')
-opts.Add ('out', 'Output directory', 'out-scons')
-opts.Add ('build', 'Build directory', '.')
-opts.Add ('DESTDIR', 'DESTDIR prepended to prefix', '')
-opts.AddOptions (
-    BoolOption ('warnings', 'compile with -Wall and similiar',
-           1),
-    BoolOption ('debugging', 'compile with debugging symbols',
-            0),
-    BoolOption ('optimising', 'compile with optimising',
-            1),
-    BoolOption ('shared', 'build shared libraries',
-            0),
-    BoolOption ('static', 'build static libraries',
-            1),
-    BoolOption ('gui', 'build with GNOME backend (EXPERIMENTAL)',
-            0),
-    BoolOption ('verbose', 'run commands with verbose flag',
-            0),
-    BoolOption ('checksums', 'use checksums instead of timestamps',
-            0),
-    BoolOption ('fast', 'use timestamps, implicit cache, prune CPPPATH',
-            0),
-    )
-
-srcdir = Dir ('.').srcnode ().abspath
-#ugh
-sys.path.append (os.path.join (srcdir, 'stepmake', 'bin'))
-
-try:
-    import packagepython
-    packagepython.Package (srcdir)
-    packagepython.version_tuple_to_str (package.version)
-except:
-    print '*** FIXME: no packagepython.  setting version to 1.0'
-    class Package:
-        name = 'lilypond'
-        release_dir = '.'
-    package = Package
-    version = '1.0'
-
-ENV = { 'PYTHONPATH': '' }
-for key in ['GUILE_LOAD_PATH', 'LD_LIBRARY_PATH', 'PATH', 'PKG_CONFIG_PATH',
-            'PYTHONPATH', 'TEXMF']:
-    if os.environ.has_key (key):
-        ENV[key] = os.environ[key]
-
-ENV['PYTHONPATH'] = os.path.join (srcdir, 'python') + ':' + ENV['PYTHONPATH']
-
-env = Environment (
-    ENV = ENV,
-    BYTEORDER = sys.byteorder.upper (),
-    CC = '$GCC',
-    CXX = '$GXX',
-    CPPDEFINES = '-DHAVE_CONFIG_H',
-    MAKEINFO = 'LANG= makeinfo',
-    MF_TO_TABLE_PY = srcdir + '/buildscripts/mf-to-table.py',
-    
-    PKG_CONFIG_PATH = [os.path.join (os.environ['HOME'],
-                     'usr/pkg/gnome/lib'),
-               os.path.join (os.environ['HOME'],
-                     'usr/pkg/pango/lib')],
-    GZIP='-9v',
-    MFMODE = 'ljfour',
-    TOPLEVEL_VERSION = version,
-    )
-
-Help (usage + opts.GenerateHelpText (env))
-
-# Add all config_vars to opts, so that they will be read and saved
-# together with the other configure options.
-map (lambda x: opts.AddOptions ((x,)), config_vars)
-opts.Update (env)
-
-for key in config_vars:
-    if os.environ.has_key (key):
-        env[key] = os.environ[key]
-
-if env['fast']:
-    # Usability switch (Anthony Roach).
-    # See http://www.scons.org/cgi-bin/wiki/GoFastButton
-    # First do: scons realclean .
-    env['checksums'] = 0
-    SetOption ('max_drift', 1)
-    SetOption ('implicit_cache', 1)
-elif env['checksums']:
-    # Always use checksums (makes more sense than timestamps).
-    SetOption ('max_drift', 0)
-    # Using *content* checksums prevents rebuilds after
-    # [re]configure if config.hh has not changed.  Too bad that it
-    # is unusably slow.
-    TargetSignatures ('content')
-
-absbuild = Dir (env['build']).abspath
-outdir = os.path.join (Dir (env['build']).abspath, env['out'])
-run_prefix = os.path.join (absbuild, os.path.join (env['out'], 'usr'))
-
-
-config_hh = os.path.join (outdir, 'config.hh')
-version_hh = os.path.join (outdir, 'version.hh')
-
-env.Alias ('config', config_cache)
-
-cachedir = os.path.join (outdir, 'build-cache')
-
-if not os.path.exists (cachedir):
-    os.makedirs (cachedir)
-
-CacheDir (cachedir)
-
-# No need to set $LILYPOND_DATADIR to run lily, but cannot install...
-if env['debugging'] and not 'install' in COMMAND_LINE_TARGETS:
-    env['prefix'] = run_prefix
-
-prefix = env['prefix']
-bindir = os.path.join (prefix, 'bin')
-sharedir = os.path.join (prefix, 'share')
-libdir = os.path.join (prefix, 'lib')
-libdir_package = os.path.join (libdir, package.name)
-libdir_package_version = os.path.join (libdir_package, version)
-localedir = os.path.join (sharedir, 'locale')
-sharedir_doc_package = os.path.join (sharedir, 'doc', package.name)
-sharedir_package = os.path.join (sharedir, package.name)
-sharedir_package_version = os.path.join (sharedir_package, version)
-lilypondprefix = sharedir_package_version
-
-# junkme
-env.Append (
-    absbuild = absbuild,
-    srcdir = srcdir,
-    )
-
-
-
-def symlink_tree (target, source, env):
-    def mkdirs (dir):
-        def mkdir (dir):
-            if not dir:
-                os.chdir (os.sep)
-                return
-            if not os.path.isdir (dir):
-                if os.path.exists (dir):
-                    os.unlink (dir)
-                os.mkdir (dir)
-            os.chdir (dir)
-        map (mkdir, string.split (dir, os.sep))
-    def symlink (src, dst):
-        os.chdir (absbuild)
-        dir = os.path.dirname (dst)
-        mkdirs (dir)
-        if src[0] == '#':
-            frm = os.path.join (srcdir, src[1:])
-        else:
-            depth = len (string.split (dir, '/'))
-            if src.find ('@') > -1:
-                frm = os.path.join ('../' * depth,
-                            string.replace (src, '@',
-                                    env['out']))
-            else:
-                frm = os.path.join ('../' * depth, src,
-                            env['out'])
-        if src[-1] == '/':
-            frm = os.path.join (frm, os.path.basename (dst))
-        if env['verbose']:
-            print 'ln -s %s -> %s' % (frm, os.path.basename (dst))
-        os.symlink (frm, os.path.basename (dst))
-    shutil.rmtree (run_prefix)
-    prefix = os.path.join (env['out'], 'usr')
-    map (lambda x: symlink (x[0], os.path.join (prefix,
-                            x[1] % {'ver' : version})),
-         # ^# := source dir
-         # @  := out
-         # /$ := add dst file_name
-         (('python',     'lib/lilypond/python'),
-          # ugh
-          ('python',     'share/lilypond/%(ver)s/python'),
-          ('lily/',      'bin/lilypond'),
-          ('scripts/',   'bin/convert-ly'),
-          ('scripts/',   'bin/lilypond-book'),
-          ('scripts/',   'bin/ps2png'),
-          ('mf',     'share/lilypond/%(ver)s/dvips/mf-out'),
-          ('#ps/music-drawing-routines.ps',
-           'share/lilypond/%(ver)s/tex/music-drawing-routines.ps'),
-          ('mf',     'share/lilypond/%(ver)s/otf'),
-          ('mf',     'share/lilypond/%(ver)s/tfm'),
-          ('tex',    'share/lilypond/%(ver)s/tex/enc'),
-          ('#mf',    'share/lilypond/%(ver)s/fonts/mf'),
-          ('mf',     'share/lilypond/%(ver)s/fonts/map'),
-          ('mf',     'share/lilypond/%(ver)s/fonts/otf'),
-          ('mf',     'share/lilypond/%(ver)s/fonts/tfm'),
-          ('mf',     'share/lilypond/%(ver)s/fonts/type1'),
-          ('#tex',       'share/lilypond/%(ver)s/tex/source'),
-          ('tex',    'share/lilypond/%(ver)s/tex/tex-out'),
-          ('mf',     'share/lilypond/%(ver)s/tex/mf-out'),
-          ('#ly',    'share/lilypond/%(ver)s/ly'),
-          ('#scm',       'share/lilypond/%(ver)s/scm'),
-          ('#scripts',   'share/lilypond/%(ver)s/scripts'),
-          ('#ps',    'share/lilypond/%(ver)s/ps'),
-          ('po/@/nl.mo', 'share/locale/nl/LC_MESSAGES/lilypond.mo'),
-          ('elisp',      'share/lilypond/%(ver)s/elisp')))
-
-    print "FIXME: BARF BARF BARF"
-    os.chdir (absbuild)
-    out = env['out']
-    ver = version
-    prefix = os.path.join (env['out'], 'usr/share/lilypond/%(ver)s/fonts'
-                   % vars ())
-    for ext in ('enc', 'map', 'otf', 'svg', 'tfm', 'pfa'):
-        dir = os.path.join (absbuild, prefix, ext)
-        os.system ('rm -f ' + dir)
-        mkdirs (dir)
-        os.chdir (dir)
-        os.system ('ln -s ../../../../../../../mf/%(out)s/*.%(ext)s .'
-               % vars ())
-    os.chdir (srcdir)
-
-def configure (target, source, env):
-    dre = re.compile ('\n(200[0-9]{5})')
-    vre = re.compile ('.*?\n[^-.0-9]*([0-9][0-9]*\.[0-9]([.0-9]*[0-9])*)',
-              re.DOTALL)
-    def get_version (program):
-        command = '(pkg-config --modversion %(program)s || %(program)s --version || %(program)s -V) 2>&1' % vars ()
-        pipe = os.popen (command)
-        output = pipe.read ()
-        if pipe.close ():
-            return None
-        splits = re.sub ('^|\s', '\n', output)
-        date_hack = re.sub (dre, '\n0.0.\\1', splits)
-        m = re.match (vre, date_hack)
-        v = m.group (1)
-        if v[-1] == '\n':
-            v = v[:-1]
-        return string.split (v, '.')
-
-    def test_version (lst, full_name, minimal, description, package):
-        program = os.path.basename (full_name)
-        sys.stdout.write ('Checking %s version... ' % program)
-        actual = get_version (program)
-        if not actual:
-            print 'not found'
-            lst.append ((description, package, minimal, program,
-                     'not installed'))
-            return 0
-        print string.join (actual, '.')
-        if map (string.atoi, actual) \
-           < map (string.atoi, string.split (minimal, '.')):
-            lst.append ((description, package, minimal, program,
-                     string.join (actual, '.')))
-            return 0
-        return 1
-
-    def test_program (lst, program, minimal, description, package):
-        key = program.upper ()
-        if key.find ('+-'):
-            key = re.sub ('\+', 'X', key)
-            key = re.sub ('-', '_', key)
-        sys.stdout.write ('Checking for %s ... ' % program)
-        if env.has_key (key):
-            f = env[key]
-            sys.stdout.write ('(cached) ')
-        else:
-            f = WhereIs (program)
-            env[key] = f
-        if not f:
-            print 'not found'
-            lst.append ((description, package, minimal, program,
-                     'not installed'))
-            return 0
-        print f
-        return test_version (lst, program, minimal, description, package)
-
-    def test_lib (lst, program, minimal, description, package):
-        # FIXME: test for Debian or RPM (or -foo?) based dists
-        # to guess (or get correct!: apt-cache search?)
-        # package name.
-        #if os.system ('pkg-config --atleast-version=0 freetype2'):
-        # barf
-        if test_version (lst, program, minimal, description,
-                 'lib%(package)s-dev or %(package)s-devel'
-                 % vars ()):
-            env.ParseConfig ('pkg-config --cflags --libs %(program)s'
-                     % vars ())
-            return 1
-        return 0
-
-    required = []
-    test_program (required, 'bash', '2.0', 'Bash', 'bash')
-    test_program (required, 'gcc', '4.0', 'GNU C compiler', 'gcc')
-    test_program (required, 'g++', '4.0.5', 'GNU C++ compiler', 'g++')
-    test_program (required, 'guile-config', '1.8', 'GUILE development',
-            'libguile-dev or guile-devel')
-    test_program (required, 'mf', '0.0', 'Metafont', 'tetex-bin')
-    test_program (required, 'python', '2.1', 'Python (www.python.org)',
-              'python')
-    # Silly, and breaks with /bin/sh == dash
-    #test_program (required, 'sh', '0.0', 'Bourne shell', 'sh')
-
-    optional = []
-    # Do not use bison 1.50 and 1.75.
-    #test_program (optional, 'foo', '2.0', 'Foomatic tester', 'bar')
-    test_program (optional, 'bison', '1.25', 'Bison -- parser generator',
-            'bison')
-    test_program (optional, 'fontforge', '0.0.20050624', 'FontForge',
-              'fontforge')
-    test_program (optional, 'flex', '0.0', 'Flex -- lexer generator',
-              'flex')
-    test_program (optional, 'guile', '1.8', 'GUILE scheme', 'guile')
-    test_program (optional, 'gs', '8.15',
-              'Ghostscript PostScript interpreter',
-              'gs or gs-afpl or gs-esp or gs-gpl')
-    test_program (optional, 'makeinfo', '4.8', 'Makeinfo tool', 'texinfo')
-    test_program (optional, 'perl', '4.0',
-              'Perl practical efficient readonly language', 'perl')
-
-    def CheckYYCurrentBuffer (context):
-        context.Message ('Checking for yy_current_buffer... ')
-        ret = conf.TryCompile ("""using namespace std;
-        #include <FlexLexer.h>
-        class yy_flex_lexer: public yyFlexLexer
-        {
-        public:
-        yy_flex_lexer ()
-        {
-        yy_current_buffer = 0;
-        }
-        };""", '.cc')
-        context.Result (ret)
-        return ret
-
-    conf = Configure (env, custom_tests = { 'CheckYYCurrentBuffer'
-                        : CheckYYCurrentBuffer })
-
-    defines = {
-       'DIRSEP' : "'%s'" % os.sep,
-       'PATHSEP' : "'%s'" % os.pathsep,
-       'PACKAGE': '"%s"' % package.name,
-       'DATADIR' : '"%s"' % sharedir,
-       'PACKAGE_DATADIR' : '"%s"' % sharedir_package,
-       'LOCALEDIR' : '"%s"' %localedir,
-    }
-    conf.env.Append (DEFINES = defines)
-
-    command = r"""python -c 'import sys; sys.stdout.write ("%s/include/python%s" % (sys.prefix, sys.version[:3]))'""" #"
-    PYTHON_INCLUDE = os.popen (command).read ()#[:-1]
-    if env['fast']:
-        env.Append (CCFLAGS = ['-I%s' % PYTHON_INCLUDE])
-    else:
-        env.Append (CPPPATH = [PYTHON_INCLUDE])
-
-    headers = ('assert.h', 'grp.h', 'libio.h', 'pwd.h',
-           'sys/stat.h', 'utf8/wchar.h', 'wchar.h', 'Python.h')
-    for i in headers:
-        if conf.CheckCHeader (i):
-            key = re.sub ('[./]', '_', 'HAVE_' + string.upper (i))
-            conf.env['DEFINES'][key] = 1
-
-    ccheaders = ('sstream',)
-    for i in ccheaders:
-        if conf.CheckCXXHeader (i):
-            key = re.sub ('[./]', '_', 'HAVE_' + string.upper (i))
-            conf.env['DEFINES'][key] = 1
-
-    functions = ('chroot', 'fopencookie', 'funopen',
-             'gettext', 'isinf',
-             'mbrtowc', 'memmem', 'snprintf', 'vsnprintf', 'wcrtomb')
-    for i in functions:
-        if 0 or conf.CheckFunc (i):
-            key = re.sub ('[./]', '_', 'HAVE_' + string.upper (i))
-            conf.env['DEFINES'][key] = 1
-
-    if conf.CheckYYCurrentBuffer ():
-        conf.env['DEFINES']['HAVE_FLEXLEXER_YY_CURRENT_BUFFER'] = 1
-
-    if conf.CheckLib ('dl'):
-        pass
-
-    if env['fast']:
-        cpppath = []
-        if env.has_key ('CPPPATH'):
-            cpppath = env['CPPPATH']
-
-    ## FIXME: linkage, check for libguile.h and scm_boot_guile
-    #this could happen after flower...
-    env.ParseConfig ('guile-config compile')
-
-    test_program (required, 'pkg-config', '0.9.0',
-              'pkg-config library compile manager', 'pkg-config')
-    if test_lib (required, 'freetype2', '0.0',
-             'Development files for FreeType 2 font engine',
-             'freetype6'):
-        conf.env['DEFINES']['HAVE_FREETYPE2'] = '1'
-        
-    if test_lib (required, 'pangoft2', '1.6.0',
-             'Development files for pango, with FreeType2',
-             'pango1.0'):
-        conf.env['DEFINES']['HAVE_PANGO_FT2'] = '1'
-
-    if test_lib (optional, 'fontconfig', '2.2.0',
-             'Development files for fontconfig', 'fontconfig1'):
-        conf.env['DEFINES']['HAVE_FONTCONFIG'] = '1'
-    
-    #this could happen only for compiling pango-*
-    if env['gui']:
-        test_lib (required, 'gtk+-2.0', '2.4.0',
-              'Development files for GTK+', 'gtk2.0')
-            
-    if env['fast']:
-        # Using CCFLAGS = -I<system-dir> rather than CPPPATH = [
-        # <system-dir>] speeds up SCons
-        env['CCFLAGS'] += map (lambda x: '-I' + x,
-                       env['CPPPATH'][len (cpppath):])
-        env['CPPPATH'] = cpppath
-
-    if required:
-        print
-        print '********************************'
-        print 'Please install required packages'
-        for i in required:
-            print '%s:      %s-%s or newer (found: %s %s)' % i
-        Exit (1)
-
-    if optional:
-        print
-        print '*************************************'
-        print 'Consider installing optional packages'
-        for i in optional:
-            print '%s:      %s-%s or newer (found: %s %s)' % i
-
-    return conf.Finish ()
-
-def config_header (target, source, env):
-    config = open (str (target[0]), 'w')
-    for i in sorted (env['DEFINES'].keys ()):
-        config.write ('#define %s %s\n' % (i, env['DEFINES'][i]))
-    config.close ()
-env.Command (config_hh, config_cache, config_header)
-
-# hmm?
-def xuniquify (lst):
-    n = []
-    for i in lst:
-        if not i in n:
-            n.append (i)
-    lst = n
-    return lst
-
-def uniquify (lst):
-    d = {}
-    n = len (lst)
-    i = 0
-    while i < n:
-        if not d.has_key (lst[i]):
-            d[lst[i]] = 1
-            i += 1
-        else:
-            del lst[i]
-            n -= 1
-    return lst
-
-def uniquify_config_vars (env):
-    for i in config_vars:
-        if env.has_key (i) and type (env[i]) == type ([]):
-            env[i] = uniquify (env[i])
-
-def save_config_cache (env):
-    ## FIXME: Is this smart, using option cache for saving
-    ## config.cache?  I cannot seem to find the official method.
-    uniquify_config_vars (env)
-    opts.Save (config_cache, env)
-
-    if 'config' in COMMAND_LINE_TARGETS:
-        sys.stdout.write ('\n')
-        sys.stdout.write ('LilyPond configured')
-        sys.stdout.write ('\n')
-        sys.stdout.write ('Now run')
-        sys.stdout.write ('\n')
-        sys.stdout.write ('    scons [TARGET|DIR]...')
-        sys.stdout.write ('\n')
-        sys.stdout.write ('\n')
-        sys.stdout.write ('Examples:')
-        sys.stdout.write ('\n')
-        sys.stdout.write ('    scons lily    # build lilypond')
-        sys.stdout.write ('\n')
-        sys.stdout.write ('    scons all     # build everything')
-        sys.stdout.write ('\n')
-        sys.stdout.write ('    scons doc     # build documentation')
-        sys.stdout.write ('\n')
-        ## TODO
-        ## sys.stdout.write ('    scons prefix=/usr DESTDIR=/tmp/pkg all install')
-        ## sys.stdout.write ('\n')
-        Exit (0)
-    elif not env['checksums']:
-        # When using timestams, config.hh is NEW.  The next
-        # build triggers recompilation of everything.  Exiting
-        # here makes SCons use the actual timestamp for config.hh
-        # and prevents recompiling everything the next run.
-        command = sys.argv[0] + ' ' + string.join (COMMAND_LINE_TARGETS)
-        sys.stdout.write ('Running %s ... ' % command)
-        sys.stdout.write ('\n')
-        s = os.system (command)
-        Exit (s)
-
-# WTF?
-# scons: *** Calling Configure from Builders is not supported.
-# env.Command (config_cache, None, configure)
-if not os.path.exists (config_cache) \
-   or (os.stat ('SConstruct')[stat.ST_MTIME]
-       > os.stat (config_cache)[stat.ST_MTIME]):
-    env = configure (None, None, env)
-    save_config_cache (env)
-elif env['checksums']:
-    # just save everything
-    save_config_cache (env)
-
-#urg how does #/ subst work?
-Export ('env')
-SConscript ('buildscripts/builder.py')
-
-env.PrependENVPath ('PATH',
-            os.path.join (env['absbuild'], env['out'], 'usr/bin'))
-
-LILYPOND_DATADIR = os.path.join (run_prefix, 'share/lilypond/', version)
-
-if not os.path.exists (LILYPOND_DATADIR):
-    os.makedirs (LILYPOND_DATADIR)
-
-env.Command (LILYPOND_DATADIR, ['#/SConstruct', '#/VERSION'], symlink_tree)
-env.Depends ('lily', LILYPOND_DATADIR)
-
-env.Append (ENV = {
-    'LILYPOND_DATADIR' : LILYPOND_DATADIR,
-    'TEXMF' : '{$LILYPOND_DATADIR,'
-    + os.popen ('kpsexpand \$TEXMF').read ()[:-1] + '}',
-    })
-
-BUILD_ABC2LY = '${set__x}$PYTHON $srcdir/scripts/abc2ly.py'
-BUILD_LILYPOND = '$absbuild/lily/$out/lilypond ${__verbose}'
-BUILD_LILYPOND_BOOK = '$PYTHON $srcdir/scripts/lilypond-book.py ${__verbose}'
-
-if env['verbose'] and env['verbose'] != '0':
-    env['__verbose'] = ' --verbose'
-    env['set__x'] = 'set -x;'
-
-# post-option environment-update
-env.Append (
-    bindir = bindir,
-    sharedir = sharedir,
-    lilypond_datadir = sharedir_package,
-    localedir = localedir,
-    local_lilypond_datadir = sharedir_package_version,
-    lilypondprefix = lilypondprefix,
-    sharedir_package = sharedir_package,
-    sharedir_doc_package = sharedir_doc_package,
-    sharedir_package_version = sharedir_package_version,
-    libdir_package = libdir_package,
-    libdir_package_version = libdir_package_version,
-
-    LILYPOND = BUILD_LILYPOND,
-    ABC2LY = BUILD_ABC2LY,
-    LILYPOND_BOOK = BUILD_LILYPOND_BOOK,
-    LILYPOND_BOOK_FORMAT = 'texi-html',
-    MAKEINFO_FLAGS = '--css-include=$srcdir/Documentation/texinfo.css',
-    )
-
-env.Append (CCFLAGS = ['-pipe', '-Wno-pmf-conversions'])
-if env['debugging']:
-    env.Append (CCFLAGS = ['-g'])
-if env['optimising']:
-    env.Append (CCFLAGS = '-O2')
-if env['warnings']:
-    env.Append (CCFLAGS = ['-W', '-Wall'])
-    env.Append (CXXFLAGS = ['-Wconversion'])
-
-# ugr,huh?
-env.Append (LINKFLAGS = ['-Wl,--export-dynamic'])
-# FIXME: ParseConfig ignores -L flag?
-env.Append (LINKFLAGS = ['-L/usr/X11R6/lib'])
-
-## Explicit target and dependencies
-
-if 'clean' in COMMAND_LINE_TARGETS:
-    # ugh: prevent reconfigure instead of clean
-    os.system ('touch %s' % config_cache)
-    
-    command = sys.argv[0] + ' -c .'
-    sys.stdout.write ('Running %s ... ' % command)
-    sys.stdout.write ('\n')
-    s = os.system (command)
-    if os.path.exists (config_cache):
-        os.unlink (config_cache)
-    Exit (s)
-
-if 'sconsclean' in COMMAND_LINE_TARGETS:
-    command = 'rm -rf scons.cache $(find . -name ".scon*")'
-    s = os.system (command)
-    if os.path.exists (config_cache):
-        os.unlink (config_cache)
-    Exit (s)
-    
-if 'realclean' in COMMAND_LINE_TARGETS:
-    command = 'rm -rf $(find . -name "out-scons" -o -name ".scon*")'
-    sys.stdout.write ('Running %s ... ' % command)
-    sys.stdout.write ('\n')
-    s = os.system (command)
-    if os.path.exists (config_cache):
-        os.unlink (config_cache)
-    Exit (s)
-
-# Declare SConscript phonies 
-env.Alias ('minimal', config_cache)
-
-if 0:
-    env.Alias ('mf-essential', config_cache)
-    env.Alias ('minimal', ['python', 'lily', 'mf-essential'])
-    env.Alias ('all', ['minimal', 'mf', '.'])
-
-else:
-    env.Alias ('minimal', ['python', 'lily', 'mf'])
-    env.Alias ('all', ['minimal', '.'])
-
-
-# Do we want the doc/web separation?
-env.Alias ('doc',
-       ['minimal',
-        'Documentation',
-        'Documentation/user',
-        'Documentation/topdocs',
-        'Documentation/bibliography',
-        'input'])
-
-# Without target arguments, do minimal build
-if not COMMAND_LINE_TARGETS:
-    env.Default (['minimal'])
-
-# GNU Make rerouting compat:
-env.Alias ('web', 'doc')
-
-
-env.Command (version_hh, '#/VERSION',
-         '$PYTHON ./stepmake/bin/make-version.py VERSION > $TARGET')
-
-# post-config environment update
-env.Append (
-    run_prefix = run_prefix,
-    LILYPOND_DATADIR = LILYPOND_DATADIR,
-
-    # FIXME: move to lily/SConscript?
-    LIBPATH = [os.path.join (absbuild, 'flower', env['out'])],
-    CPPPATH = [outdir, ],
-    LILYPOND_PATH = ['.',
-             '$srcdir/input',
-             '$srcdir/input/regression',
-             '$srcdir/input/test',
-             '$srcdir/input/tutorial',
-             '$srcdir/Documentation/user',
-             '$absbuild/mf/$out',
-#            os.path.join (absbuild, 'Documentation',
-#                      env['out']),
-#            os.path.join (absbuild, 'Documentation/user',
-#                      env['out']),
-             ],
-    MAKEINFO_PATH = ['.', '$srcdir/Documentation/user',
-             '$absbuild/Documentation/user/$out'],
-    )
-
-#### dist, tar
-def plus (a, b):
-    a + b
-
-def cvs_entry_is_dir (line):
-    return line[0] == 'D' and line[-2] == '/'
-
-def cvs_entry_is_file (line):
-    return line[0] == '/' and line[-2] == '/'
-
-def cvs_dirs (dir):
-    entries = os.path.join (dir, 'CVS/Entries')
-    if not os.path.exists (entries):
-        return []
-    entries = open (entries).readlines ()
-    dir_entries = filter (cvs_entry_is_dir, entries)
-    dirs = map (lambda x: os.path.join (dir, x[2:x[2:].index ('/')+3]),
-            dir_entries)
-    return dirs + map (cvs_dirs, dirs)
-
-def cvs_files (dir):
-    entries = os.path.join (dir, 'CVS/Entries')
-    if not os.path.exists (entries):
-        return []
-    entries = open (entries).readlines ()
-    file_entries = filter (cvs_entry_is_file, entries)
-    files = map (lambda x: x[1:x[1:].index ('/')+1], file_entries)
-    return map (lambda x: os.path.join (dir, x), files)
-
-def flatten (tree, lst):
-    if type (tree) == type ([]):
-        for i in tree:
-            if type (i) == type ([]):
-                flatten (i, lst)
-            else:
-                lst.append (i)
-    return lst
-
-if os.path.isdir ('%(srcdir)s/CVS' % vars ()):
-    subdirs = flatten (cvs_dirs ('.'), [])
-else:
-    # ugh
-    command = 'cd %(srcdir)s \
-    && find . -name SConscript | sed s@/SConscript@@' % vars ()
-    subdirs = string.split (os.popen (command).read ())
-
-if env['fast']\
-   and 'all' not in COMMAND_LINE_TARGETS\
-   and 'doc' not in COMMAND_LINE_TARGETS\
-   and 'web' not in COMMAND_LINE_TARGETS\
-   and 'install' not in COMMAND_LINE_TARGETS\
-   and 'clean' not in COMMAND_LINE_TARGETS:
-    subdirs = [ 'python',
-            'lily',
-           'flower',
-           'mf',
-           ]
-
-if os.path.isdir ('%(srcdir)s/CVS' % vars ()):
-    src_files = reduce (lambda x, y: x + y, map (cvs_files, subdirs))
-else:
-    src_files = ['foobar']
-
-readme_files = ['AUTHORS', 'README', 'INSTALL', 'NEWS']
-txt_files = map (lambda x: x + '.txt', readme_files)
-
-
-#
-# speeds up build by +- 5% 
-# 
-if not env['fast']:
-    foo = map (lambda x: env.TXT (x + '.txt',
-                      os.path.join ('Documentation/topdocs', x)),
-           readme_files)
-    tar_base = package.name + '-' + version
-    tar_name = tar_base + '.tar.gz'
-    ball_prefix = os.path.join (outdir, tar_base)
-    tar_ball = os.path.join (outdir, tar_name)
-
-    dist_files = src_files + txt_files
-    ball_files = map (lambda x: os.path.join (ball_prefix, x), dist_files)
-    map (lambda x: env.Depends (tar_ball, x), ball_files)
-    map (lambda x: env.Command (os.path.join (ball_prefix, x), x,
-                    'ln $SOURCE $TARGET'), dist_files)
-    tar = env.Command (tar_ball, src_files,
-               ['rm -f $$(find $TARGET.dir -name .sconsign)',
-                'tar czf $TARGET -C $TARGET.dir %s' % tar_base,])
-    env.Alias ('tar', tar)
-
-    dist_ball = os.path.join (package.release_dir, tar_name)
-    env.Command (dist_ball, tar_ball,
-             'if [ -e $SOURCE -a -e $TARGET ]; then rm $TARGET; fi;' \
-             + 'ln $SOURCE $TARGET')
-    env.Depends ('dist', dist_ball)
-    patch_name = os.path.join (outdir, tar_base + '.diff.gz')
-    patch = env.PATCH (patch_name, tar_ball)
-    env.Depends (patch_name, dist_ball)
-    env.Alias ('release', patch)
-
-#### web
-if not env['fast']:
-    web_base = os.path.join (outdir, 'web')
-    web_ball = web_base + '.tar.gz'
-    env['footify'] = 'MAILADDRESS=bug-lilypond@gnu.org $PYTHON stepmake/bin/add-html-footer.py --name=lilypond --version=$TOPLEVEL_VERSION'
-    web_ext = ['.html', '.ly', '.midi', '.pdf', '.png', '.ps.gz', '.txt',]
-    web_path = '-path "*/$out/*"' + string.join (web_ext, ' -or -path "*/$out/*"') + '-or -type l'
-    env['web_path'] = web_path
-    web_list = os.path.join (outdir, 'weblist')
-    # compatible make heritits
-    # fixme: generate in $outdir is cwd/builddir
-    env.Command (web_list,
-             ## Adding 'doc' dependency is correct, but takes
-             ## > 5min extra if you have a peder :-)
-             #'doc',
-             
-             '#/VERSION',
-             ['$PYTHON buildscripts/mutopia-index.py -o examples.html ./',
-              'cd $absbuild && $footify $$(find . -name "*.html" -print)',
-              'cd $absbuild && rm -f $$(find . -name "*.html~" -print)',
-              'cd $absbuild && find Documentation input $web_path \
-              > $TARGET',
-              '''echo '<META HTTP-EQUIV="refresh" content="0;URL=Documentation/out-www/index.html">' > $absbuild/index.html''',
-              '''echo '<html><body>Redirecting to the documentation index...</body></html>' >> $absbuild/index.html''',
-              'cd $absbuild && ls *.html >> $TARGET',])
-    env.Command (web_ball, web_list,
-             ['cat $SOURCE | tar -C $absbuild -czf $TARGET -T -',])
-    #env.Alias ('web', web_ball)
-    www_base = os.path.join (outdir, 'www')
-    www_ball = www_base + '.tar.gz'
-    env.Command (www_ball, web_ball,
-             ['rm -rf $out/tmp',
-              'mkdir -p $absbuild/$out/tmp',
-              'tar -C $absbuild/$out/tmp -xzf $SOURCE',
-              'cd $absbuild/$out/tmp && for i in $$(find . -name "$out"); '
-              + ' do mv $$i $$(dirname $$i)/out-www; done',
-              'tar -C $absbuild/$out/tmp -czf $TARGET .'])
-    env.Alias ('web', www_ball)
-
-#### tags
-env.Append (
-    ETAGSFLAGS = """--regex='{c++}/^LY_DEFINE *(\([^,]+\)/\\1/' \
-    --regex='{c++}/^LY_DEFINE *([^"]*"\([^"]+\)"/\\1/'""")
-code_ext = ['.cc', '.hh', '.scm', '.tcc',]
-env.Command ('TAGS', filter (lambda x: os.path.splitext (x)[1] in code_ext,
-                 src_files),
-         'etags $ETAGSFLAGS $SOURCES')
-
-# Note: SConscripts are only needed in directories where something needs
-# to be done, building or installing
-for d in subdirs:
-    if os.path.exists (os.path.join (d, 'SConscript')):
-        b = os.path.join (env['build'], d, env['out'])
-        # Support clean sourcetree build (--srcdir build)
-        # and ./out build.
-        if os.path.abspath (b) != os.path.abspath (d):
-            env.BuildDir (b, d, duplicate = 0)
-        SConscript (os.path.join (b, 'SConscript'))
-
-env.Command ('tree', ['#/VERSION', '#/SConstruct'], symlink_tree)
diff --git a/THANKS b/THANKS
index 941ffbd92e5a3a2697dab93047a2d23676a4c6a3..5132608f4765f0942e3c5ddb356ab4a90d3a1143 100644 (file)
--- a/THANKS
+++ b/THANKS
@@ -1,4 +1,4 @@
-Release 2.11
+Release 2.12
 ************
 
 
@@ -28,7 +28,7 @@ GRAND DOCUMENTATION PROJECT
 
 Trevor Daniels     - Assistant Documentation Editor
 Andrew Hawryluk    - NR work
-Carl Sorenseon     - NR work
+Carl Sorense     - NR work
 Eyolf Østrem       - NR work
 Francisco Vila     - NR work
 Jay Hamilton       - NR work
@@ -36,11 +36,11 @@ Jonathan Kulp      - NR work
 Joseph Harfouch    - NR work
 Patrick McCarty    - NR work
 Ralph Palmer       - NR work
-Till Retting       - NR work
+Till Retti       - NR work
 Kurt Kroon         - Glossary Updates, NR work
 Alard de Boer      - Formatting
 Michael Rasmussen  - Formatting
-Trevor Baca        - Inspirational Headwords
+Trevor Bača        - Inspirational Headwords
 Reinhold Kainhofer - Technical Aid
 Neil Puttock       - Snippet Editor, Technical Aid
 
@@ -48,10 +48,12 @@ 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
@@ -78,6 +80,7 @@ Christian Hitz
 Christian Herzberg
 David Bobroff
 David Griffel
+Daniel Hulme
 Daniel Johnson
 Dominic Neumann
 Eduardo Vieira
@@ -85,7 +88,7 @@ Frédéric Chiasson
 Georg Dummer
 Georg Romstorfer
 Gilles Thibault
-Hernán J. González 
+Hernán J. González
 Hu Haipeng
 Jay Anderson
 James Kilfinger
@@ -94,11 +97,13 @@ Jean-Yves Baudais
 Jesús Guillermo Andrade
 Jonathan Henkelman
 Kazuhiro Suzuki
+Kevin Dalley
 Laura Conrad
 Luc Wehli
-Maarten Hijzelendoorn 
+Maarten Hijzelendoorn
 Marc Lanoiselée
 Mark Polesky
+Matthieu Jacquot
 Matthijs Frankeno
 Martijn Vromans
 Marnen Laibow-Koser
diff --git a/VERSION b/VERSION
index 3f462b7ccbb6449e4dc99d98c0e9c08abb0db1d1..92a890c56e0e0506445531077e632cac2ced7302 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1,6 +1,6 @@
 PACKAGE_NAME=LilyPond
 MAJOR_VERSION=2
-MINOR_VERSION=11
-PATCH_LEVEL=64
+MINOR_VERSION=13
+PATCH_LEVEL=0
 MY_PATCH_LEVEL=
 
diff --git a/buildscripts/GNUmakefile b/buildscripts/GNUmakefile
deleted file mode 100644 (file)
index 3a40aa0..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-depth = ..
-
-STEPMAKE_TEMPLATES=script install po
-EXTRA_DIST_FILES=pfx2ttf.fontforge
-
-include $(depth)/make/stepmake.make
-
-# Should we install these? This should be handled by sysadmin or
-# packager but if she forgets...
-#INSTALLATION_OUT_SUFFIXES=1
-#INSTALLATION_OUT_DIR1=$(local_lilypond_datadir)/scripts
-#INSTALLATION_OUT_FILES1=$(outdir)/lilypond-login $(outdir)/lilypond-profile
-
-all: $(INSTALLATION_FILES)
-
diff --git a/buildscripts/SConscript b/buildscripts/SConscript
deleted file mode 100644 (file)
index 98d254f..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-# -*-python-*-
-
-Import ('env')
-sources = ['lilypond-profile.sh', 'lilypond-login.sh']
-gens = map (env.AT_COPY, sources)
diff --git a/buildscripts/bib2html.py b/buildscripts/bib2html.py
deleted file mode 100644 (file)
index c16f21c..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-#!@PYTHON@
-import os
-import sys
-import getopt
-import tempfile
-
-# usage:
-def usage ():
-    print 'usage: %s [-s style] [-o <outfile>] BIBFILES...'
-
-(options, files) = getopt.getopt (sys.argv[1:], 's:o:', [])
-
-output = 'bib.html'
-style = 'long'
-
-for (o,a) in options:
-    if o == '-h' or o == '--help':
-        usage ()
-        sys.exit (0)
-    elif o == '-s' or o == '--style':
-        style = a
-    elif o == '-o' or o == '--output':
-        output = a
-    else:
-        raise Exception ('unknown option: %s' % o)
-
-
-if style not in ['alpha','index','long','longp','long-pario','short','short-pario','split']:
-    sys.stderr.write ("Unknown style \`%s'\n" % style)
-
-tempfile = tempfile.mktemp ('bib2html')
-
-if not files:
-   usage ()
-   sys.exit (2)
-
-
-def strip_extension (f, ext):
-    (p, e) = os.path.splitext (f)
-    if e == ext:
-        e = ''
-    return p + e
-
-nf = []
-for f in files:
-    nf.append (strip_extension (f, '.bib'))
-
-files = ','.join (nf)
-
-open (tempfile + '.aux', 'w').write (r'''
-\relax 
-\citation{*}
-\bibstyle{html-%(style)s}
-\bibdata{%(files)s}''' % vars ()) 
-
-cmd = "bibtex %s" % tempfile
-
-sys.stdout.write ("Invoking `%s'\n" % cmd)
-stat = os.system (cmd)
-if stat <> 0:
-    sys.exit(1)
-
-
-#TODO: do tex -> html on output 
-
-bbl = open (tempfile + '.bbl').read ()
-
-open (output, 'w').write  (bbl)
-
-
-def cleanup (tempfile):
-    for a in ['aux','bbl', 'blg']:
-        os.unlink (tempfile + '.' + a)
-
-cleanup (tempfile)
-
diff --git a/buildscripts/build-coverage.sh b/buildscripts/build-coverage.sh
deleted file mode 100755 (executable)
index b86ebaa..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-#!/bin/sh
-
-if test "$1" == "--fresh"; then
-  fresh=yes
-fi
-
-if test ! -f config-cov.make; then
-  fresh=yes
-fi
-
-if test "$fresh" = "yes";
-then
-  ./configure --enable-config=cov --disable-optimising \
-   &&   make conf=cov -j2 clean \
-   &&   perl -i~ -pe 's/-pipe /-fprofile-arcs -ftest-coverage -pipe /g' config-cov.make \
-   &&   perl -i~ -pe 's/ -ldl / -lgcov -ldl /g' config-cov.make
-else
-  find -name '*.gcda' -exec rm  '{}' ';'
-fi
-
-mkdir -p scripts/out-cov/
-touch scripts/out-cov/midi2ly scripts/out-cov/midi2ly.1
-make conf=cov -j2 &&  \
-  make conf=cov test-clean OUT_TEST=testcov LILYPOND_JOBS= && \
-  make conf=cov test OUT_TEST=testcov LILYPOND_JOBS='-dtrace-scheme-coverage '
-
-if test "$?" != "0"; then
-  tail -100 out-cov/test-run.log
-  exit 1
-fi
-
-depth=../..
-resultdir=out/coverage-results
-
-rm -rf $resultdir
-mkdir $resultdir
-cd $resultdir
-
-ln $depth/lily/* .
-ln $depth/scm/*.scm .
-mv $depth/input/regression/out-testcov/*.scm.cov .
-ln $depth/ly/*.ly .
-ln $depth/lily/out-cov/*[ch] .
-mkdir include
-ln $depth/lily/include/* include/
-ln $depth/flower/include/* include/
-for a in *[cl] *.yy
-do
-   gcov -o $depth/lily/out-cov/  -p $a > $a.gcov-summary
-done 
-
-python $depth/buildscripts/coverage.py --uncovered *.cc > uncovered.txt
-python $depth/buildscripts/coverage.py --hotspots *.cc > hotspots.txt
-python $depth/buildscripts/coverage.py --summary *.cc > summary.txt
-python $depth/buildscripts/coverage.py --uncovered *.scm > uncovered-scheme.txt
-
-head -20 summary.txt
-
-cat <<EOF
-results in
-
-  out/coverage-results/summary.txt
-  out/coverage-results/uncovered.txt
-  out/coverage-results/uncovered-scheme.txt
-  out/coverage-results/hotspots.txt
-
-EOF
diff --git a/buildscripts/build-profile.sh b/buildscripts/build-profile.sh
deleted file mode 100755 (executable)
index 072cf64..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-#!/bin/sh
-
-if test "$1" == "--fresh"; then
-  fresh=yes
-fi
-
-if test ! -f config-prof.make; then
-  fresh=yes
-fi
-
-if test "$fresh" = "yes";
-then
-  ./configure --enable-config=prof --enable-optimising \
-   &&   perl -i~ -pe 's/-pipe /-pg -pipe /g' config-prof.make \
-   &&   perl -i~ -pe 's/ -ldl / -pg -ldl /g' config-prof.make
-fi
-
-make conf=prof -j2
-
-if test "$?" != "0"; then
-  exit 2
-fi
-
-depth=../..
-resultdir=out/profile-results
-
-rm -rf $resultdir
-mkdir $resultdir
-cd $resultdir
-
-
-cat > long-score.ly << EOF
-\version "2.10.0"
-foo = \new Staff \new Voice \repeat unfold 50 \relative { c4 d8[ d16( e]~ e16[ e e) f] g8  }
-\score { 
-  \new ChoirStaff << 
-    \foo \foo \foo \foo 
-    \foo \foo \foo \foo 
-
-  >>
-  \midi {}
-  \layout {}
-}
-EOF
-
-rm gmon.sum
-
-exe=$depth/out-prof/bin/lilypond
-
-## todo: figure out representative sample.
-files="wtk1-fugue2 wtk1-fugue2 wtk1-fugue2 wtk1-fugue2 mozart-hrn-3  mozart-hrn-3  long-score"
-
-
-
-$exe -ddump-profile --formats=ps -I $depth/input/ -I  $depth/input/mutopia/J.S.Bach/ \
-    -I $depth/input/mutopia/W.A.Mozart/ \
-    $files
-
-
-for a in *.profile; do
-  echo $a
-  cat $a
-done
-
-echo 'running gprof' 
-gprof $exe > profile
-
-exit 0
-
-
-## gprof -s takes forever.
-for a in seq 1 3; do
-  for f in $files ; do
-    $exe -ddump-profile --formats=ps -I $depth/input/ -I  $depth/input/mutopia/J.S.Bach/ \
-       -I $depth/input/mutopia/W.A.Mozart/ \
-       $f
-
-    echo 'running gprof' 
-    if test -f gmon.sum ; then
-      gprof -s $exe gmon.out gmon.sum
-    else
-      mv gmon.out gmon.sum
-    fi
-  done
-done
-
-gprof $exe gmon.sum > profile
diff --git a/buildscripts/builder.py b/buildscripts/builder.py
deleted file mode 100644 (file)
index 06f9f41..0000000
+++ /dev/null
@@ -1,345 +0,0 @@
-# -*-python-*-
-
-import glob
-import os
-import string
-
-Import ('env')
-
-# utility
-
-def add_suffixes (target, source, env, target_suffixes, src_suffixes):
-    base = os.path.splitext (str (target[0]))[0]
-    return (target + map (lambda x: base + x, target_suffixes),
-        source + map (lambda x: base + x, src_suffixes))
-
-# junkme; see _concat
-def join_path (path, infix=os.pathsep, prefix = ''):
-    def dir (x):
-        if x and x[0] == '#':
-            return env['srcdir'] + x[1:]
-        return x
-    return string.join (map (lambda x: prefix + dir (x), path), infix)
-
-
-def src_glob (s):
-    here = os.getcwd ()
-    os.chdir (env.Dir ('.').srcnode ().abspath)
-    result = glob.glob (s)
-    os.chdir (here)
-    return result
-
-Export ('src_glob')
-
-def base_glob (s):
-    return map (lambda x: os.path.splitext (x)[0], src_glob (s))
-
-Export ('base_glob')
-
-def install (target, dir):
-    dest = env['DESTDIR'] + dir
-    if type (target) == type ([]):
-        map (lambda x: env.Install (dir, x), target)
-    else:
-        env.Install (dir, target)
-    env.Alias ('install', dir)
-
-Export ('install')
-
-def _fixme (s):
-    x = string.replace (s, '#', env['srcdir'])
-    x = string.replace (x, '@', env['absbuild'])
-    return x
-
-# Clean separation between generic action + flags and actual
-# configuration and flags in environment for this build.
-
-# Generic builders could/should be part of SCons.
-
-
-HH = Builder (action = 'bison -d -o ${TARGET.base}.cc $SOURCE',
-       suffix = '.hh', src_suffix = '.yy')
-env.Append (BUILDERS = {'HH' : HH})
-
-
-# Setup LilyPond environment.  For the LilyPond build, we override
-# some of these commands in the ENVironment.
-
-lilypond_book_flags = '''--format=$LILYPOND_BOOK_FORMAT --process="lilypond -I$srcdir -I$srcdir/input/test $__verbose --backend=eps --formats=ps,png --header=texidoc -dinternal-type-checking -ddump-signatures -danti-alias-factor=2 -dgs-font-load" '''
-
-env.Append (
-    BSTINPUTS = '${SOURCE.dir}:${TARGET.dir}:',
-    BIB2HTML = '$PYTHON $srcdir/buildscripts/bib2html.py',
-    LILYOND_BOOK = 'lilypond-book',
-    LILYPOND_BOOK_FORMAT = '',
-    LILYPOND_BOOK_FLAGS = lilypond_book_flags,
-    LILYPOND_PATH = [],
-    # The SCons way around FOO_PATH:
-    LILYPOND_INCFLAGS = '$( ${_concat(INCPREFIX, LILYPOND_PATH, INCSUFFIX, __env__)} $)',
-
-    MAKEINFO_PATH = [],
-    MAKEINFO_FLAGS = [],
-    MAKEINFO_INCFLAGS = '$( ${_concat(INCPREFIX, MAKEINFO_PATH, INCSUFFIX, __env__, RDirs)} $)',
-    #TEXI2DVI_FLAGS = [],
-    _TEXI2DVI_FLAGS = '$( ${_concat(" ", TEXI2DVI_FLAGS,)} $)',
-    )
-
-TXT =\
-  Builder (action = '$MAKEINFO --output=$TARGET $MAKEINFO_INCFLAGS\
-  --no-split --no-headers $SOURCE',
-       suffix = '.txt', src_suffix = '.texi')
-env.Append (BUILDERS = {'TXT': TXT})
-
-INFO =\
-  Builder (action = '$MAKEINFO --output=$TARGET $MAKEINFO_INCFLAGS $SOURCE',
-       suffix = '.info', src_suffix = '.texi')
-env.Append (BUILDERS = {'INFO': INFO})
-
-HTML =\
-  Builder (action = '$MAKEINFO --output=$TARGET $MAKEINFO_INCLUDES\
-  --html --no-split --no-headers $MAKEINFO_FLAGS $SOURCE',
-suffix = '.html', src_suffix = '.texi')
-env.Append (BUILDERS = {'HTML': HTML})
-
-TEXI =\
-  Builder (action =
-       '$LILYPOND_BOOK --output=${TARGET.dir} \
-       --include=${TARGET.dir} $LILYPOND_INCFLAGS \
-       --process="$LILYPOND $LILYPOND_INCFLAGS" \
-       $LILYPOND_BOOK_FLAGS \
-       $SOURCE',
-       suffix = '.texi', src_suffix = '.tely')
-env.Append (BUILDERS = {'TEXI': TEXI})
-
-TEXIDVI =\
-    Builder (action = 'cd ${TARGET.dir} && \
-    texi2dvi --batch -I $srcdir/Documentation/user $_TEXI2DVI_FLAGS ${SOURCE.file}',
-        suffix = '.dvi', src_suffix = '.texi')
-env.Append (BUILDERS = {'TEXIDVI': TEXIDVI})
-
-DVIPS =\
-   Builder (action = 'TEXINPUTS=${TARGET.dir}:$$TEXINPUTS $DVIPS -o $TARGET $DVIPS_FLAGS $SOURCE',
-       suffix = '.ps', src_suffix = '.dvi')
-env.Append (BUILDERS = {'DVIPS': DVIPS})
-
-DVIPDF =\
-   Builder (action = 'TEXINPUTS=${TARGET.dir}:$$TEXINPUTS $DVIPS -o $TARGET -Ppdf $DVIPS_FLAGS $SOURCE',
-       suffix = '.pdfps', src_suffix = '.dvi')
-env.Append (BUILDERS = {'DVIPDF': DVIPDF})
-
-PSPDF =\
-   Builder (action = 'ps2pdf $PSPDF_FLAGS $SOURCE $TARGET',
-       suffix = '.pdf', src_suffix = '.pdfps')
-env.Append (BUILDERS = {'PSPDF': PSPDF})
-
-PNG2EPS =\
-    Builder (action = 'convert $SOURCE $TARGET',
-        suffix = '.eps', src_suffix = '.png')
-env.Append (BUILDERS = {'PNG2EPS': PNG2EPS})
-
-EPS2PNG =\
-    Builder (action = 'convert $SOURCE $TARGET',
-        suffix = '.png', src_suffix = '.eps')
-env.Append (BUILDERS = {'EPS2PNG': EPS2PNG})
-
-def add_ps_target (target, source, env):
-    base = os.path.splitext (str (target[0]))[0]
-    return (target + [base + '.ps'], source)
-
-lilypond =\
-    Builder (action = '$LILYPOND --output=${TARGET.base} --include=${TARGET.dir} $SOURCE',
-         suffix = '.pdf', src_suffix = '.ly')
-##                    emitter = add_ps_target)
-env.Append (BUILDERS = {'LilyPond': lilypond})
-
-ABC = Builder (action = '$ABC2LY --output=${TARGET} --strict $SOURCE',
-       suffix = '.ly', src_suffix = '.abc')
-env.Append (BUILDERS = {'ABC': ABC})
-
-def add_log_target (target, source, env):
-    base = os.path.splitext (str (target[0]))[0]
-    return (target + [base + '.log'], source)
-
-def add_tfm_target (target, source, env):
-    base = os.path.splitext (str (target[0]))[0]
-    return (target + [base + '.tfm'], source)
-
-def add_lisp_enc_target (target, source, env):
-    base = os.path.splitext (str (target[0]))[0]
-    return (target + [base + '.lisp', base + '.enc'],
-        source)
-
-def add_cff_cffps_svg (target, source, env):
-    base = os.path.splitext (str (target[0]))[0]
-    return (target + [base + '.cff', base + '.cff.ps', base + '.svg'],
-        source)
-
-a = 'cd ${TARGET.dir} \
-&& MFINPUTS=.:${SOURCE.dir}:$srcdir/${SOURCE.dir}: \
-$MF "\\mode:=$MFMODE; nonstopmode; input ${SOURCE.filebase};" \
-| grep -v "@\|>>\|w:\|h:";'
-tfm = Builder (action = a, suffix = '.tfm', src_suffix = '.mf',
-#               emitter = lambda t, s, e: add_suffixes (t, s, e, ['.log'], []))
-       emitter = add_log_target)
-env.Append (BUILDERS = {'TFM': tfm})
-
-a = '$PYTHON $MF_TO_TABLE_PY \
---outdir=${TARGET.dir} \
---global-lisp=${TARGET.base}.otf-gtable \
---lisp=${TARGET.base}.lisp \
---enc=${TARGET.base}.enc \
-${TARGET.base}.log'
-gtable = Builder (action = a, suffix = '.otf-gtable', src_suffix = '.log',
-         emitter = add_lisp_enc_target)
-env.Append (BUILDERS = {'GTABLE': gtable})
-
-def add_enc_src (target, source, env):
-    base = os.path.splitext (str (target[0]))[0]
-    #return (target, source + [base + '.enc'])
-    return (target + [base + '.pfb', base + '.svg'], source + [base + '.enc'])
-
-def add_svg (target, source, env):
-    base = os.path.splitext (str (target[0]))[0]
-    return (target + [base + '.svg'], source)
-
-# FIXME UGH, should fix --output option for mftrace
-a = 'cd ${TARGET.dir} && \
-if test -e ${SOURCE.filebase}.enc; then encoding="--encoding=${SOURCE.filebase}.enc"; fi; \
-MFINPUTS=$srcdir/mf:.: \
-$MFTRACE --formats=pfa,pfb,svg --simplify --keep-trying --no-afm \
-$$encoding $__verbose \
---include=${TARGET.dir} \
-${SOURCE.file}'
-
-pfa = Builder (action = a,
-       suffix = '.pfa',
-       src_suffix = '.mf',
-       emitter = add_enc_src)
-env.Append (BUILDERS = {'PFA': pfa})
-
-a = ['(cd ${TARGET.dir} && $FONTFORGE -script ${SOURCE.file})',
-#     '$PYTHON $srcdir/buildscripts/ps-embed-cff.py ${SOURCE.base}.cff $$(cat ${SOURCE.base}.fontname) ${SOURCE.base}.cff.ps',
-  'rm -f ${TARGET.dir}/*.scale.pfa']
-otf = Builder (action = a,
-       suffix = '.otf',
-       src_suffix = '.pe',
-#               emitter = add_cff_cffps_svg
-               emitter = add_svg
-       )
-env.Append (BUILDERS = {'OTF': otf})
-
-
-# Specific builders
-
-env['DIFF_PY'] = '$srcdir/stepmake/bin/package-diff.py'
-a = '$PYTHON $DIFF_PY $NO__verbose --outdir=${TARGET.dir}'
-patch = Builder (action = a, suffix = '.diff', src_suffix = '.tar.gz')
-env.Append (BUILDERS = {'PATCH': patch})
-
-atvars = [
-'BASH',
-'DATE',
-'sharedstatedir',
-'GUILE',
-'bindir',
-'date',
-'datadir',
-'lilypond_datadir',
-'lilypond_libdir',
-'local_lilypond_datadir',
-'local_lilypond_libdir',
-'localedir',
-'PACKAGE',
-'package',
-'PATHSEP',
-'PERL',
-'prefix',
-'program_prefix',
-'program_suffix',
-'PYTHON',
-'SHELL',
-'TOPLEVEL_VERSION',
-'step-bindir',
-]
-
-def at_copy (target, source, env):
-  n = str (source[0])
-  s = open (n).read ()
-  for i in atvars:
-      if env.has_key (i):
-          s = string.replace (s, '@%s@'% i, env[i])
-  t = str (target[0])
-  open (t, 'w').write (s)
-  # wugh
-  if os.path.basename (os.path.dirname (str (target[0]))) == 'bin':
-      os.chmod (t, 0755)
-
-AT_COPY = Builder (action = at_copy, src_suffix = ['.in', '.py', '.sh',])
-env.Append (BUILDERS = {'AT_COPY': AT_COPY})
-
-MO = Builder (action = 'msgfmt -o $TARGET $SOURCE',
-       suffix = '.mo', src_suffix = '.po')
-env.Append (BUILDERS = {'MO': MO})
-
-ugh =  'ln -f po/lilypond.pot ${TARGET.dir}/lilypond.po ; '
-a = ugh + 'xgettext --default-domain=lilypond --join \
---output-dir=${TARGET.dir} --add-comments \
---keyword=_ --keyword=_f --keyword=_i $SOURCES'
-PO = Builder (action = a, suffix = '.pot',
-       src_suffix = ['.cc', '.hh', '.py'], multi = 1)
-env['potarget'] = os.path.join (env['absbuild'], 'po', env['out'],
-                'lilypond.pot')
-env['pocommand'] = a
-
-ugh = '; mv ${TARGET} ${SOURCE}'
-a = 'msgmerge ${SOURCE} ${SOURCE.dir}/lilypond.pot -o ${TARGET}' + ugh
-POMERGE = Builder (action = a, suffix = '.pom', src_suffix = '.po')
-env.Append (BUILDERS = {'POMERGE': POMERGE})
-
-a = 'BSTINPUTS=$BSTINPUTS $BIB2HTML -o $TARGET $SOURCE'
-BIB2HTML = Builder (action = a, suffix = '.html', src_suffix = '.bib')
-env.Append (BUILDERS = {'BIB2HTML': BIB2HTML})
-
-a = '$PYTHON $srcdir/buildscripts/lys-to-tely.py \
---name=${TARGET.base} --title="$TITLE" $SOURCES'
-LYS2TELY = Builder (action = a, suffix = '.tely', src_suffix = '.ly')
-env.Append (BUILDERS = {'LYS2TELY': LYS2TELY})
-
-
-def mutopia (ly=None, abc=None):
-    e = env.Copy (
-        LILYPOND_BOOK_FLAGS = lilypond_book_flags,
-        )
-    
-    if not abc:
-        abc = base_glob ('*.abc')
-    if not ly:
-        ly = base_glob ('*.ly') + map (e.ABC, abc)
-    pdf = map (e.LilyPond, ly)
-    env.Depends (pdf, ['#/lily', '#/mf'])
-    env.Alias ('doc', pdf)
-
-Export ('mutopia')
-
-def collate (title = 'collated files'):
-    ly = base_glob ('*.ly')
-    
-    e = env.Copy (
-        TITLE = title,
-        LILYPOND_BOOK_FLAGS = lilypond_book_flags,
-        # __verbose = ' --verbose',
-        )
-    tely = e.LYS2TELY ('collated-files', ly)
-    texi = e.TEXI (tely)
-    env.Depends (texi, ['#/lily', '#/mf'])
-    dvi = e.TEXIDVI (texi)
-    pspdf = e.DVIPDF (dvi)
-    pdf = e.PSPDF (pspdf)
-    html = e.HTML (texi)
-
-    env.Alias ('doc', pdf)
-    env.Alias ('doc', html)
-
-Export ('collate')
-
-Export ('env')
diff --git a/buildscripts/buildlib.py b/buildscripts/buildlib.py
deleted file mode 100644 (file)
index 11dbf96..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-#!@PYTHON@
-
-import subprocess
-import re
-
-verbose = False
-
-def read_pipe (command):
-    child = subprocess.Popen (command,
-                              stdout = subprocess.PIPE,
-                              stderr = subprocess.PIPE,
-                              shell = True)
-    (output, error) = child.communicate ()
-    code = str (child.wait ())
-    if not child.stdout or child.stdout.close ():
-        print "pipe failed: %(command)s" % locals ()
-    if code != '0':
-        error = code + ' ' + error
-    return (output, error)
-
-revision_re = re.compile ('GIT [Cc]ommittish: ([a-f0-9]+)')
-vc_diff_cmd = 'git diff %(color_flag)s %(revision)s HEAD -- %(original)s | cat'
-
-def check_translated_doc (original, translated_contents, color=False):
-    m = revision_re.search (translated_contents)
-    if not m:
-        sys.stderr.write ('error: ' + translated + \
-                          ": no 'GIT committish: <hash>' found.\nPlease check " + \
-                          'the whole file against the original in English, then ' + \
-                          'fill in HEAD committish in the header.\n')
-        sys.exit (1)
-    revision = m.group (1)
-
-    if color:
-        color_flag = '--color'
-    else:
-        color_flag = '--no-color'
-    c = vc_diff_cmd % vars ()
-    if verbose:
-        sys.stderr.write ('running: ' + c)
-    return read_pipe (c)
diff --git a/buildscripts/catmidi.py b/buildscripts/catmidi.py
deleted file mode 100644 (file)
index c90d602..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-#!@PYTHON@
-
-import sys
-import midi
-
-(h,tracks) = midi.parse (open (sys.argv[1]).read ())
-
-tracks = tracks[1:]
-
-for t in tracks:
-    for e in t:
-        print e
diff --git a/buildscripts/check_texi_refs.py b/buildscripts/check_texi_refs.py
deleted file mode 100755 (executable)
index dff7e33..0000000
+++ /dev/null
@@ -1,521 +0,0 @@
-#!/usr/bin/env python
-
-"""
-check_texi_refs.py
-Interactive Texinfo cross-references checking and fixing tool
-
-"""
-
-
-import sys
-import re
-import os
-import optparse
-import imp
-
-outdir = 'out-www'
-
-log = sys.stderr
-stdout = sys.stdout
-
-file_not_found = 'file not found in include path'
-
-warn_not_fixed = '*** Warning: this broken x-ref has not been fixed!\n'
-
-opt_parser = optparse.OptionParser (usage='check_texi_refs.py [OPTION]... FILE',
-                                    description='''Check and fix \
-cross-references in a collection of Texinfo
-documents heavily cross-referenced each other.
-''')
-
-opt_parser.add_option ('-a', '--auto-fix',
-                       help="Automatically fix cross-references whenever \
-it is possible",
-                       action='store_true',
-                       dest='auto_fix',
-                       default=False)
-
-opt_parser.add_option ('-b', '--batch',
-                       help="Do not run interactively",
-                       action='store_false',
-                       dest='interactive',
-                       default=True)
-
-opt_parser.add_option ('-c', '--check-comments',
-                       help="Also check commented out x-refs",
-                       action='store_true',
-                       dest='check_comments',
-                       default=False)
-
-opt_parser.add_option ('-p', '--check-punctuation',
-                       help="Check punctuation after x-refs",
-                       action='store_true',
-                       dest='check_punctuation',
-                       default=False)
-
-opt_parser.add_option ("-I", '--include', help="add DIR to include path",
-                       metavar="DIR",
-                       action='append', dest='include_path',
-                       default=[os.path.abspath (os.getcwd ())])
-
-(options, files) = opt_parser.parse_args ()
-
-class InteractionError (Exception):
-    pass
-
-
-manuals_defs = imp.load_source ('manuals_defs', files[0])
-manuals = {}
-
-def find_file (name, prior_directory='.'):
-    p = os.path.join (prior_directory, name)
-    out_p = os.path.join (prior_directory, outdir, name)
-    if os.path.isfile (p):
-        return p
-    elif os.path.isfile (out_p):
-        return out_p
-
-    # looking for file in include_path
-    for d in options.include_path:
-        p = os.path.join (d, name)
-        if os.path.isfile (p):
-            return p
-
-    # file not found in include_path: looking in `outdir' subdirs
-    for d in options.include_path:
-        p = os.path.join (d, outdir, name)
-        if os.path.isfile (p):
-            return p
-
-    raise EnvironmentError (1, file_not_found, name)
-
-
-exit_code = 0
-
-def set_exit_code (n):
-    global exit_code
-    exit_code = max (exit_code, n)
-
-
-if options.interactive:
-    try:
-        import readline
-    except:
-        pass
-
-    def yes_prompt (question, default=False, retries=3):
-        d = {True: 'y', False: 'n'}.get (default, False)
-        while retries:
-            a = raw_input ('%s [default: %s]' % (question, d) + '\n')
-            if a.lower ().startswith ('y'):
-                return True
-            if a.lower ().startswith ('n'):
-                return False
-            if a == '' or retries < 0:
-                return default
-            stdout.write ("Please answer yes or no.\n")
-            retries -= 1
-
-    def search_prompt ():
-        """Prompt user for a substring to look for in node names.
-
-If user input is empty or matches no node name, return None,
-otherwise return a list of (manual, node name, file) tuples.
-
-"""
-        substring = raw_input ("Enter a substring to search in node names \
-(press Enter to skip this x-ref):\n")
-        if not substring:
-            return None
-        substring = substring.lower ()
-        matches = []
-        for k in manuals:
-            matches += [(k, node, manuals[k]['nodes'][node][0])
-                        for node in manuals[k]['nodes']
-                        if substring in node.lower ()]
-        return matches
-
-else:
-    def yes_prompt (question, default=False, retries=3):
-        return default
-
-    def search_prompt ():
-        return None
-
-
-ref_re = re.compile \
-    ('@(ref|ruser|rlearning|rprogram|rglos)(?:\\{(?P<ref>[^,\\\\\\}]+?)|\
-named\\{(?P<refname>[^,\\\\]+?),(?P<display>[^,\\\\\\}]+?))\\}(?P<last>.)',
-     re.DOTALL)
-node_include_re = re.compile (r'(?m)^@(node|include)\s+(.+?)$')
-
-whitespace_re = re.compile (r'\s+')
-line_start_re = re.compile ('(?m)^')
-
-def which_line (index, newline_indices):
-    """Calculate line number of a given string index
-
-Return line number of string index index, where
-newline_indices is an ordered iterable of all newline indices.
-"""
-    inf = 0
-    sup = len (newline_indices) - 1
-    n = len (newline_indices)
-    while inf + 1 != sup:
-        m = (inf + sup) / 2
-        if index >= newline_indices [m]:
-            inf = m
-        else:
-            sup = m
-    return inf + 1
-
-
-comments_re = re.compile ('(?<!@)(@c(?:omment)? \
-.*?\\n|^@ignore\\n.*?\\n@end ignore\\n)', re.M | re.S)
-
-def calc_comments_boundaries (texinfo_doc):
-    return [(m.start (), m.end ()) for m in comments_re.finditer (texinfo_doc)]
-
-
-def is_commented_out (start, end, comments_boundaries):
-    for k in range (len (comments_boundaries)):
-        if (start > comments_boundaries[k][0]
-            and end <= comments_boundaries[k][1]):
-            return True
-        elif end <= comments_boundaries[k][0]:
-            return False
-    return False
-
-
-def read_file (f, d):
-    s = open (f).read ()
-    base = os.path.basename (f)
-    dir = os.path.dirname (f)
-
-    d['contents'][f] = s
-
-    d['newline_indices'][f] = [m.end () for m in line_start_re.finditer (s)]
-    if options.check_comments:
-        d['comments_boundaries'][f] = []
-    else:
-        d['comments_boundaries'][f] = calc_comments_boundaries (s)
-
-    for m in node_include_re.finditer (s):
-        if m.group (1) == 'node':
-            line = which_line (m.start (), d['newline_indices'][f])
-            d['nodes'][m.group (2)] = (f, line)
-
-        elif m.group (1) == 'include':
-            try:
-                p = find_file (m.group (2), dir)
-            except EnvironmentError, (errno, strerror):
-                if strerror == file_not_found:
-                    continue
-                else:
-                    raise
-            read_file (p, d)
-
-
-def read_manual (name):
-    """Look for all node names and cross-references in a Texinfo document
-
-Return a (manual, dictionary) tuple where manual is the cross-reference
-macro name defined by references_dict[name], and dictionary
-has the following keys:
-
-  'nodes' is a dictionary of `node name':(file name, line number),
-
-  'contents' is a dictionary of file:`full file contents',
-
-  'newline_indices' is a dictionary of
-file:[list of beginning-of-line string indices],
-
-  'comments_boundaries' is a list of (start, end) tuples,
-which contain string indices of start and end of each comment.
-
-Included files that can be found in the include path are processed too.
-
-"""
-    d = {}
-    d['nodes'] = {}
-    d['contents'] = {}
-    d['newline_indices'] = {}
-    d['comments_boundaries'] = {}
-    manual = manuals_defs.references_dict.get (name, '')
-    try:
-        f = find_file (name + '.tely')
-    except EnvironmentError, (errno, strerror):
-        if not strerror == file_not_found:
-            raise
-        else:
-            try:
-                f = find_file (name + '.texi')
-            except EnvironmentError, (errno, strerror):
-                if strerror == file_not_found:
-                    sys.stderr.write (name + '.{texi,tely}: ' +
-                                      file_not_found + '\n')
-                    return (manual, d)
-                else:
-                    raise
-
-    log.write ("Processing manual %s (%s)\n" % (f, manual))
-    read_file (f, d)
-    return (manual, d)
-
-
-log.write ("Reading files...\n")
-
-manuals = dict ([read_manual (name)
-                 for name in manuals_defs.references_dict.keys ()])
-
-ref_fixes = set ()
-bad_refs_count = 0
-fixes_count = 0
-
-def add_fix (old_type, old_ref, new_type, new_ref):
-    ref_fixes.add ((old_type, old_ref, new_type, new_ref))
-
-
-def lookup_fix (r):
-    found = []
-    for (old_type, old_ref, new_type, new_ref) in ref_fixes:
-        if r == old_ref:
-            found.append ((new_type, new_ref))
-    return found
-
-
-def preserve_linebreak (text, linebroken):
-    if linebroken:
-        if ' ' in text:
-            text = text.replace (' ', '\n', 1)
-            n = ''
-        else:
-            n = '\n'
-    else:
-        n = ''
-    return (text, n)
-
-
-def choose_in_numbered_list (message, string_list, sep=' ', retries=3):
-    S = set (string_list)
-    S.discard ('')
-    string_list = list (S)
-    numbered_list = sep.join ([str (j + 1) + '. ' + string_list[j]
-                               for j in range (len (string_list))]) + '\n'
-    t = retries
-    while t > 0:
-        value = ''
-        stdout.write (message +
-                      "(press Enter to discard and start a new search)\n")
-        input = raw_input (numbered_list)
-        if not input:
-            return ''
-        try:
-            value = string_list[int (input) - 1]
-        except IndexError:
-            stdout.write ("Error: index number out of range\n")
-        except ValueError:
-            matches = [input in v for v in string_list]
-            n = matches.count (True)
-            if n == 0:
-                stdout.write ("Error: input matches no item in the list\n")
-            elif n > 1:
-                stdout.write ("Error: ambiguous input (matches several items \
-in the list)\n")
-            else:
-                value = string_list[matches.index (True)]
-        if value:
-            return value
-        t -= 1
-    raise InteractionError ("%d retries limit exceeded" % retries)
-
-refs_count = 0
-
-def check_ref (manual, file, m):
-    global fixes_count, bad_refs_count, refs_count
-    refs_count += 1
-    bad_ref = False
-    fixed = True
-    type = m.group (1)
-    original_name = m.group ('ref') or m.group ('refname')
-    name = whitespace_re.sub (' ', original_name). strip ()
-    newline_indices = manuals[manual]['newline_indices'][file]
-    line = which_line (m.start (), newline_indices)
-    linebroken = '\n' in original_name
-    original_display_name = m.group ('display')
-    next_char = m.group ('last')
-    if original_display_name: # the xref has an explicit display name
-        display_linebroken = '\n' in original_display_name
-        display_name = whitespace_re.sub (' ', original_display_name). strip ()
-    commented_out = is_commented_out \
-        (m.start (), m.end (), manuals[manual]['comments_boundaries'][file])
-    useful_fix = not outdir in file
-
-    # check puncuation after x-ref
-    if options.check_punctuation and not next_char in '.,;:!?':
-        stdout.write ("Warning: %s: %d: `%s': x-ref \
-not followed by punctuation\n" % (file, line, name))
-
-    # validate xref
-    explicit_type = type
-    new_name = name
-
-    if type != 'ref' and type == manual and not commented_out:
-        if useful_fix:
-            fixed = False
-            bad_ref = True
-            stdout.write ("\n%s: %d: `%s': external %s x-ref should be internal\n"
-                          % (file, line, name, type))
-            if options.auto_fix or yes_prompt ("Fix this?"):
-                type = 'ref'
-
-    if type == 'ref':
-        explicit_type = manual
-
-    if not name in manuals[explicit_type]['nodes'] and not commented_out:
-        bad_ref = True
-        fixed = False
-        stdout.write ('\n')
-        if type == 'ref':
-            stdout.write ("\e[1;31m%s: %d: `%s': wrong internal x-ref\e[0m\n"
-                          % (file, line, name))
-        else:
-            stdout.write ("\e[1;31m%s: %d: `%s': wrong external `%s' x-ref\e[0m\n"
-                          % (file, line, name, type))
-        # print context
-        stdout.write ('--\n' + manuals[manual]['contents'][file]
-                      [newline_indices[max (0, line - 2)]:
-                       newline_indices[min (line + 3,
-                                            len (newline_indices) - 1)]] +
-                      '--\n')
-
-        # try to find the reference in other manuals
-        found = []
-        for k in [k for k in manuals if k != explicit_type]:
-            if name in manuals[k]['nodes']:
-                if k == manual:
-                    found = ['ref']
-                    stdout.write ("\e[1;32m  found as internal x-ref\e[0m\n")
-                    break
-                else:
-                    found.append (k)
-                    stdout.write ("\e[1;32m  found as `%s' x-ref\e[0m\n" % k)
-
-        if (len (found) == 1
-            and (options.auto_fix or yes_prompt ("Fix this x-ref?"))):
-            add_fix (type, name, found[0], name)
-            type = found[0]
-            fixed = True
-
-        elif len (found) > 1 and useful_fix:
-            if options.interactive or options.auto_fix:
-                stdout.write ("* Several manuals contain this node name, \
-cannot determine manual automatically.\n")
-            if options.interactive:
-                t = choose_in_numbered_list ("Choose manual for this x-ref by \
-index number or beginning of name:\n", found)
-                if t:
-                    add_fix (type, name, t, name)
-                    type = t
-                    fixed = True
-
-        if not fixed:
-            # try to find a fix already made
-            found = lookup_fix (name)
-
-            if len (found) == 1:
-                stdout.write ("Found one previous fix: %s `%s'\n" % found[0])
-                if options.auto_fix or yes_prompt ("Apply this fix?"):
-                    type, new_name = found[0]
-                    fixed = True
-
-            elif len (found) > 1:
-                if options.interactive or options.auto_fix:
-                    stdout.write ("* Several previous fixes match \
-this node name, cannot fix automatically.\n")
-                if options.interactive:
-                    concatened = choose_in_numbered_list ("Choose new manual \
-and x-ref by index number or beginning of name:\n", [''.join ([i[0], ' ', i[1]])
-                                                     for i in found],
-                                                    sep='\n')
-                    if concatened:
-                        type, new_name = concatenated.split (' ', 1)
-                        fixed = True
-
-        if not fixed:
-            # all previous automatic fixing attempts failed,
-            # ask user for substring to look in node names
-            while True:
-                node_list = search_prompt ()
-                if node_list == None:
-                    if options.interactive:
-                        stdout.write (warn_not_fixed)
-                    break
-                elif not node_list:
-                    stdout.write ("No matched node names.\n")
-                else:
-                    concatenated = choose_in_numbered_list ("Choose \
-node name and manual for this x-ref by index number or beginning of name:\n", \
-                            [' '.join ([i[0], i[1], '(in %s)' % i[2]])
-                             for i in node_list],
-                                                            sep='\n')
-                    if concatenated:
-                        t, z = concatenated.split (' ', 1)
-                        new_name = z.split (' (in ', 1)[0]
-                        add_fix (type, name, t, new_name)
-                        type = t
-                        fixed = True
-                        break
-
-    if fixed and type == manual:
-        type = 'ref'
-    bad_refs_count += int (bad_ref)
-    if bad_ref and not useful_fix:
-        stdout.write ("*** Warning: this file is automatically generated, \
-please fix the code source instead of generated documentation.\n")
-
-    # compute returned string
-    if new_name == name:
-        if bad_ref and (options.interactive or options.auto_fix):
-            # only the type of the ref was fixed
-            fixes_count += int (fixed)
-        if original_display_name:
-            return ('@%snamed{%s,%s}' % (type, original_name, original_display_name)) + next_char
-        else:
-            return ('@%s{%s}' % (type, original_name)) + next_char
-    else:
-        fixes_count += int (fixed)
-        (ref, n) = preserve_linebreak (new_name, linebroken)
-        if original_display_name:
-            if bad_ref:
-                stdout.write ("Current display name is `%s'\n")
-                display_name = raw_input \
-                    ("Enter a new display name or press enter to keep the existing name:\n") \
-                    or display_name
-                (display_name, n) = preserve_linebreak (display_name, display_linebroken)
-            else:
-                display_name = original_display_name
-            return ('@%snamed{%s,%s}' % (type, ref, display_name)) + \
-                next_char + n
-        else:
-            return ('@%s{%s}' % (type, ref)) + next_char + n
-
-
-log.write ("Checking cross-references...\n")
-
-try:
-    for key in manuals:
-        for file in manuals[key]['contents']:
-            s = ref_re.sub (lambda m: check_ref (key, file, m),
-                            manuals[key]['contents'][file])
-            if s != manuals[key]['contents'][file]:
-                open (file, 'w').write (s)
-except KeyboardInterrupt:
-    log.write ("Operation interrupted, exiting.\n")
-    sys.exit (2)
-except InteractionError, instance:
-    log.write ("Operation refused by user: %s\nExiting.\n" % instance)
-    sys.exit (3)
-
-log.write ("\e[1;36mDone: %d x-refs found, %d bad x-refs found, fixed %d.\e[0m\n" %
-           (refs_count, bad_refs_count, fixes_count))
diff --git a/buildscripts/check_translation.py b/buildscripts/check_translation.py
deleted file mode 100755 (executable)
index 4f6ef6a..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-#!/usr/bin/env python
-
-import __main__
-import optparse
-import os
-import sys
-
-import langdefs
-import buildlib
-
-verbose = 0
-use_colors = False
-lang = 'C'
-C = lang
-
-def dir_lang (file, lang, lang_dir_index):
-    path_components = file.split ('/')
-    path_components[lang_dir_index] = lang
-    return os.path.join (*path_components)
-
-def do_file (file_name, lang_codes, buildlib):
-    if verbose:
-        sys.stderr.write ('%s...\n' % file_name)
-    split_file_name = file_name.split ('/')
-    d1, d2 = split_file_name[0:2]
-    if d1 in lang_codes:
-        check_lang = d1
-        lang_dir_index = 0
-    elif d2 in lang_codes:
-        check_lang = d2
-        lang_dir_index = 1
-    else:
-        check_lang = lang
-    if check_lang == C:
-        raise Exception ('cannot determine language for ' + file_name)
-    
-    original = dir_lang (file_name, '', lang_dir_index)
-    translated_contents = open (file_name).read ()
-    (diff_string, error) = buildlib.check_translated_doc (original, translated_contents, color=use_colors and not update_mode)
-
-    if error:
-        sys.stderr.write ('warning: %s: %s' % (file_name, error))
-
-    if update_mode:
-        if error or len (diff_string) >= os.path.getsize (original):
-            buildlib.read_pipe (text_editor + ' ' + file_name + ' ' + original)
-        elif diff_string:
-            diff_file = original + '.diff'
-            f = open (diff_file, 'w')
-            f.write (diff_string)
-            f.close ()
-            buildlib.read_pipe (text_editor + ' ' + file_name + ' ' + diff_file)
-            os.remove (diff_file)
-    else:
-        sys.stdout.write (diff_string)
-
-def usage ():
-    sys.stdout.write (r'''
-Usage:
-check-translation [--language=LANG] [--verbose] [--update] FILE...
-
-This script is licensed under the GNU GPL.
-''')
-
-def do_options ():
-    global lang, verbose, update_mode, use_colors
-
-    p = optparse.OptionParser (usage="check-translation [--language=LANG] [--verbose] FILE...",
-                               description="This script is licensed under the GNU GPL.")
-    p.add_option ("--language",
-                  action='store',
-                  default='site',
-                  dest="language")
-    p.add_option ("--no-color",
-                  action='store_false',
-                  default=True,
-                  dest="color",
-                  help="do not print ANSI-cooured output")
-    p.add_option ("--verbose",
-                  action='store_true',
-                  default=False,
-                  dest="verbose",
-                  help="print details, including executed shell commands")
-    p.add_option ('-u', "--update",
-                  action='store_true',
-                  default=False,
-                  dest='update_mode',
-                  help='call $EDITOR to update the translation')
-    
-    (options, files) = p.parse_args ()
-    verbose = options.verbose
-    lang = options.language
-    use_colors = options.color
-    update_mode = options.update_mode
-    
-    return files
-
-def main ():
-    global update_mode, text_editor
-
-    files = do_options ()
-    if 'EDITOR' in os.environ:
-        text_editor = os.environ['EDITOR']
-    else:
-        update_mode = False
-    
-    buildlib.verbose = verbose
-
-    for i in files:
-        do_file (i, langdefs.LANGDICT.keys (), buildlib)
-
-if __name__ == '__main__':
-    main ()
diff --git a/buildscripts/coverage.py b/buildscripts/coverage.py
deleted file mode 100644 (file)
index d44f81f..0000000
+++ /dev/null
@@ -1,248 +0,0 @@
-#!/usr/bin/python
-
-import os
-import glob
-import re
-import sys
-import optparse
-
-#File 'accidental-engraver.cc'
-#Lines executed:87.70% of 252
-
-def summary (args):
-    results = []
-    for f in args:
-        str = open (f).read ()
-        m = re.search ("File '([^']+.cc)'\s*Lines executed:([0-9.]+)% of ([0-9]+)", str)
-
-        if m and '/usr/lib' in m.group (1):
-            continue
-
-        if m:
-            cov = float (m.group (2))
-            lines = int (m.group (3))
-            pain = lines * (100.0 - cov)
-            file = m.group (1)
-            tup = (pain, locals ().copy())
-
-            results.append(tup)
-
-    results.sort ()
-    results.reverse()
-
-    print 'files sorted by number of untested lines (decreasing)'
-    print
-    print '%5s (%6s): %s' % ('cov %', 'lines', 'file')
-    print '----------------------------------------------'
-
-    for (pain, d) in results:
-        print '%(cov)5.2f (%(lines)6d): %(file)s' % d
-
-class Chunk:
-    def __init__ (self, range, coverage_count, all_lines, file):
-        assert coverage_count >= 0
-        assert type (range) == type (())
-        
-        self.coverage_count = coverage_count
-        self.range = range
-        self.all_lines = all_lines
-        self.file = file
-
-    def length (self):
-        return self.range[1] - self.range[0]
-
-    def text (self):
-        return ''.join ([l[2] for l in self.lines()])
-        
-    def lines (self):
-        return self.all_lines[self.range[0]:
-                              self.range[1]]
-    def widen (self):
-        self.range = (min (self.range[0] -1, 0),
-                      self.range[0] +1)
-    def write (self):
-        print 'chunk in', self.file
-        for (c, n, l) in self.lines ():
-            cov = '%d' % c
-            if c == 0:
-                cov = '#######'
-            elif c < 0:
-                cov = ''
-            sys.stdout.write ('%8s:%8d:%s' % (cov, n, l))
-            
-    def uncovered_score (self):
-        return self.length ()
-    
-class SchemeChunk (Chunk):
-    def uncovered_score (self):
-        text = self.text ()
-        if (text.startswith  ('(define ')
-            and not text.startswith ('(define (')):
-            return 0
-
-        if text.startswith  ('(use-modules '):
-            return 0
-
-        if (text.startswith  ('(define-public ')
-            and not text.startswith ('(define-public (')):
-            return 0
-
-        return len ([l for (c,n,l) in self.lines() if (c == 0)]) 
-
-def read_gcov (f):
-    ls = []
-
-    in_lines = [l for l in open (f).readlines ()]
-    (count_len, line_num_len) = tuple (map (len, in_lines[0].split (':')[:2]))
-    
-    for l in in_lines:
-        c = l[:count_len].strip ()
-        l = l[count_len+1:]
-        n = int (l[:line_num_len].strip ())
-
-        if n == 0:
-            continue
-
-        if '#' in c:
-            c = 0
-        elif c == '-':
-            c = -1
-        else:
-            c = int (c)
-        
-        l = l[line_num_len+1:]
-
-        ls.append ((c,n,l))
-        
-    return ls
-
-def get_c_chunks (ls, file):
-    chunks = []
-    chunk = []
-
-    last_c = -1
-    for (c, n, l) in ls:
-        if not (c == last_c or c < 0 and l != '}\n'):
-            if chunk and last_c >= 0:
-                nums = [n-1 for (n, l) in chunk]
-                chunks.append (Chunk ((min (nums), max (nums)+1),
-                                      last_c, ls, file))
-                chunk = []
-
-        chunk.append ((n,l))
-        if c >= 0:
-            last_c = c
-            
-    return chunks
-
-def get_scm_chunks (ls, file):
-    chunks = []
-    chunk = []
-
-    def new_chunk ():
-        if chunk:
-            nums = [n-1 for (n, l) in chunk]
-            chunks.append (SchemeChunk ((min (nums), max (nums)+1),
-                                        max (last_c, 0), ls, file))
-            chunk[:] = []
-        
-    last_c = -1
-    for (cov_count, line_number, line) in ls:
-        if line.startswith ('('):
-            new_chunk ()
-            last_c = -1
-        
-        chunk.append ((line_number, line))
-        if cov_count >= 0:
-            last_c = cov_count
-
-    return chunks
-
-def widen_chunk (ch, ls):
-    a -= 1
-    b += 1
-
-    return [(n, l)  for (c, n, l) in ls[a:b]]
-    
-
-def extract_chunks (file):
-    try:
-        ls = read_gcov (file)
-    except IOError, s :
-        print s
-        return []
-        
-    cs = []
-    if 'scm' in file:
-        cs = get_scm_chunks (ls, file)
-    else:
-        cs = get_c_chunks (ls, file)
-    return cs
-
-
-def filter_uncovered (chunks):
-    def interesting (c):
-        if c.coverage_count > 0:
-            return False
-        
-        t = c.text()
-        for stat in  ('warning', 'error', 'print', 'scm_gc_mark'):
-            if stat in t:
-                return False
-        return True
-   
-    return [c for c in chunks if interesting (c)]
-    
-
-def main ():
-    p = optparse.OptionParser (usage="usage coverage.py [options] files",
-                               description="")
-    p.add_option ("--summary",
-                  action='store_true',
-                  default=False,
-                  dest="summary")
-    
-    p.add_option ("--hotspots",
-                  default=False,
-                  action='store_true',
-                  dest="hotspots")
-    
-    p.add_option ("--uncovered",
-                  default=False,
-                  action='store_true',
-                  dest="uncovered")
-
-    
-    (options, args) = p.parse_args ()
-    
-
-    if options.summary:
-        summary (['%s.gcov-summary' % s for s in args])
-
-    if options.uncovered or options.hotspots:
-        chunks = []
-        for a in args:
-            name = a
-            if name.endswith ('scm'):
-                name += '.cov'
-            else:
-                name += '.gcov'
-            
-            chunks += extract_chunks  (name)
-
-        if options.uncovered:
-            chunks = filter_uncovered (chunks)
-            chunks = [(c.uncovered_score (), c) for c in chunks if c.uncovered_score() > 0]
-        elif options.hotspots:
-            chunks = [((c.coverage_count, -c.length()), c) for c in chunks]
-            
-            
-        chunks.sort ()
-        chunks.reverse ()
-        for (score, c) in chunks:
-            c.write ()
-
-            
-        
-if __name__ == '__main__':
-    main ()
diff --git a/buildscripts/extract_texi_filenames.py b/buildscripts/extract_texi_filenames.py
deleted file mode 100755 (executable)
index 5798d5d..0000000
+++ /dev/null
@@ -1,170 +0,0 @@
-#!@PYTHON@
-# -*- coding: utf-8 -*-
-# extract_texi_filenames.py
-
-# USAGE:  extract_texi_filenames.py [-o OUTDIR] FILES
-#
-# -o OUTDIR specifies that output files should rather be written in OUTDIR
-#
-# Description:
-# This script parses the .texi file given and creates a file with the
-# nodename <=> filename/anchor map.
-# The idea behind: Unnumbered subsections go into the same file as the
-# previous numbered section, @translationof gives the original node name,
-# which is then used for the filename/anchor.
-#
-# If this script is run on a file texifile.texi, it produces a file
-# texifile[.LANG].xref-map with tab-separated entries of the form
-#        NODE\tFILENAME\tANCHOR
-# LANG is the document language in case it's not 'en'
-# Note: The filename does not have any extension appended!
-# This file can then be used by our texi2html init script to determine
-# the correct file name and anchor for external refs
-
-import sys
-import re
-import os
-import getopt
-
-optlist, args = getopt.getopt (sys.argv[1:],'o:')
-files = args
-
-outdir = '.'
-for x in optlist:
-    if x[0] == '-o':
-        outdir = x[1]
-
-if not os.path.isdir (outdir):
-    if os.path.exists (outdir):
-        os.unlink (outdir)
-    os.makedirs (outdir)
-
-include_re = re.compile (r'@include ((?!../lily-).*?)\.texi$', re.M)
-whitespaces = re.compile (r'\s+')
-section_translation_re = re.compile ('^@(node|(?:unnumbered|appendix)\
-(?:(?:sub){0,2}sec)?|top|chapter|(?:sub){0,2}section|\
-(?:major|chap|(?:sub){0,2})heading|translationof) (.*?)\\s*$', re.MULTILINE)
-
-def expand_includes (m, filename):
-    filepath = os.path.join (os.path.dirname (filename), m.group(1)) + '.texi'
-    if os.path.exists (filepath):
-        return extract_sections (filepath)[1]
-    else:
-        print "Unable to locate include file " + filepath
-        return ''
-
-lang_re = re.compile (r'^@documentlanguage (.+)', re.M)
-
-def extract_sections (filename):
-    result = ''
-    f = open (filename, 'r')
-    page = f.read ()
-    f.close()
-    # Search document language
-    m = lang_re.search (page)
-    if m and m.group (1) != 'en':
-        lang_suffix = '.' + m.group (1)
-    else:
-        lang_suffix = ''
-    # Replace all includes by their list of sections and extract all sections
-    page = include_re.sub (lambda m: expand_includes (m, filename), page)
-    sections = section_translation_re.findall (page)
-    for sec in sections:
-        result += "@" + sec[0] + " " + sec[1] + "\n"
-    return (lang_suffix, result)
-
-# Convert a given node name to its proper file name (normalization as explained
-# in the texinfo manual:
-# http://www.gnu.org/software/texinfo/manual/texinfo/html_node/HTML-Xref-Node-Name-Expansion.html
-def texinfo_file_name(title):
-    # exception: The top node is always mapped to index.html
-    if title == "Top":
-        return "index"
-    # File name normalization by texinfo (described in the texinfo manual):
-    # 1/2: letters and numbers are left unchanged
-    # 3/4: multiple, leading and trailing whitespace is removed
-    title = title.strip ();
-    title = whitespaces.sub (' ', title)
-    # 5:   all remaining spaces are converted to '-'
-    # 6:   all other 7- or 8-bit chars are replaced by _xxxx (xxxx=ascii character code)
-    result = ''
-    for index in range(len(title)):
-        char = title[index]
-        if char == ' ': # space -> '-'
-            result += '-'
-        elif ( ('0' <= char and char <= '9' ) or
-               ('A' <= char and char <= 'Z' ) or
-               ('a' <= char and char <= 'z' ) ):  # number or letter
-            result += char
-        else:
-            ccode = ord(char)
-            if ccode <= 0xFFFF:
-                result += "_%04x" % ccode
-            else:
-                result += "__%06x" % ccode
-    # 7: if name begins with number, prepend 't_g' (so it starts with a letter)
-    if (result != '') and (ord(result[0]) in range (ord('0'), ord('9'))):
-        result = 't_g' + result
-    return result
-
-texinfo_re = re.compile (r'@.*{(.*)}')
-def remove_texinfo (title):
-    return texinfo_re.sub (r'\1', title)
-
-def create_texinfo_anchor (title):
-    return texinfo_file_name (remove_texinfo (title))
-
-unnumbered_re = re.compile (r'unnumbered.*')
-def process_sections (filename, lang_suffix, page):
-    sections = section_translation_re.findall (page)
-    basename = os.path.splitext (os.path.basename (filename))[0]
-    p = os.path.join (outdir, basename) + lang_suffix + '.xref-map'
-    f = open (p, 'w')
-
-    this_title = ''
-    this_filename = 'index'
-    this_anchor = ''
-    this_unnumbered = False
-    had_section = False
-    for sec in sections:
-        if sec[0] == "node":
-            # Write out the cached values to the file and start a new section:
-            if this_title != '' and this_title != 'Top':
-                    f.write (this_title + "\t" + this_filename + "\t" + this_anchor + "\n")
-            had_section = False
-            this_title = remove_texinfo (sec[1])
-            this_anchor = create_texinfo_anchor (sec[1])
-        elif sec[0] == "translationof":
-            anchor = create_texinfo_anchor (sec[1])
-            # If @translationof is used, it gives the original node name, which
-            # we use for the anchor and the file name (if it is a numbered node)
-            this_anchor = anchor
-            if not this_unnumbered:
-                this_filename = anchor
-        else:
-            # Some pages might not use a node for every section, so treat this
-            # case here, too: If we already had a section and encounter enother
-            # one before the next @node, we write out the old one and start
-            # with the new values
-            if had_section and this_title != '':
-                f.write (this_title + "\t" + this_filename + "\t" + this_anchor + "\n")
-                this_title = remove_texinfo (sec[1])
-                this_anchor = create_texinfo_anchor (sec[1])
-            had_section = True
-
-            # unnumbered nodes use the previously used file name, only numbered
-            # nodes get their own filename! However, top-level @unnumbered
-            # still get their own file.
-            this_unnumbered = unnumbered_re.match (sec[0])
-            if not this_unnumbered or sec[0] == "unnumbered":
-                this_filename = this_anchor
-
-    if this_title != '' and this_title != 'Top':
-        f.write (this_title + "\t" + this_filename + "\t" + this_anchor + "\n")
-    f.close ()
-
-
-for filename in files:
-    print "extract_texi_filenames.py: Processing %s" % filename
-    (lang_suffix, sections) = extract_sections (filename)
-    process_sections (filename, lang_suffix, sections)
diff --git a/buildscripts/find-superfluous-includes.py b/buildscripts/find-superfluous-includes.py
deleted file mode 100644 (file)
index ded1087..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-#!/usr/bin/python
-import sys
-import re
-import os
-
-
-full_paths = {}
-incs = {}
-inc_re = re.compile ('^#include "([^"]+)"')
-def parse_file (fn):
-    lst = []
-
-    lc = 0
-    for l in open (fn).readlines():
-        lc += 1
-        m = inc_re.search (l)
-        if m:
-            lst.append ((lc, m.group (1)))
-
-    base = os.path.split (fn)[1]
-    full_paths[base] = fn
-    incs[base] = lst
-    
-
-def has_include (f, name):
-    try:
-        return name in [b for (a,b) in incs[f]]
-    except KeyError:
-        return False
-
-for a in sys.argv:
-    parse_file (a)
-
-print '-*-compilation-*-'
-for (f, lst) in incs.items ():
-    for (n, inc) in lst:
-        for (n2, inc2) in lst:
-            if has_include (inc2, inc):
-                print "%s:%d: already have %s from %s" % (full_paths[f], n,
-                                                          inc, inc2)
-                break
-
-        
-    
diff --git a/buildscripts/fixcc.py b/buildscripts/fixcc.py
deleted file mode 100644 (file)
index a3bd855..0000000
+++ /dev/null
@@ -1,625 +0,0 @@
-#!/usr/bin/python
-
-# fixcc -- nitpick lily's c++ code
-
-# TODO
-#  * maintainable rules: regexp's using whitespace (?x) and match names
-#    <identifier>)
-#  * trailing `*' vs. function definition
-#  * do not break/change indentation of fixcc-clean files
-#  * check lexer, parser
-#  * rewrite in elisp, add to cc-mode
-#  * using regexes is broken by design
-#  * ?
-#  * profit
-
-import __main__
-import getopt
-import os
-import re
-import string
-import sys
-import time
-
-COMMENT = 'COMMENT'
-STRING = 'STRING'
-GLOBAL_CXX = 'GC++'
-CXX = 'C++'
-verbose_p = 0
-indent_p = 0
-
-rules = {
-    GLOBAL_CXX:
-    [
-    # delete gratuitous block
-    ('''\n(    |\t)\s*{\n\s*(.*?)(?![{}]|\b(do|for|else|if|switch|while)\b);\n\s*}''',
-    '\n\\2;'),
-    ],
-    CXX:
-    [
-    # space before parenthesis open
-    ('([^\( \]])[ \t]*\(', '\\1 ('),
-    # space after comma
-    ("\([^'],\)[ \t]*", '\1 '),
-    # delete gratuitous block
-    ('''\n(    |\t)\s*{\n\s*(.*?)(?![{}]|\b(do|for|else|if|switch|while)\b);\n\s*}''',
-    '\n\\2;'),
-    # delete inline tabs
-    ('(\w)\t+', '\\1 '),
-    # delete inline double spaces
-    ('   *', ' '),
-    # delete space after parenthesis open
-    ('\([ \t]*', '('),
-    # delete space before parenthesis close
-    ('[ \t]*\)', ')'),
-    # delete spaces after prefix
-    ('(--|\+\+)[ \t]*([\w\)])', '\\1\\2'),
-    # delete spaces before postfix
-    ('([\w\)\]])[ \t]*(--|\+\+)', '\\1\\2'),
-    # delete space after parenthesis close
-    #('\)[ \t]*([^\w])', ')\\1'),
-    # delete space around operator
-    # ('([\w\(\)\]])([ \t]*)(::|\.)([ \t]*)([\w\(\)])', '\\1\\3\\5'),
-    ('([\w\(\)\]])([ \t]*)(\.|->)([ \t]*)([\w\(\)])', '\\1\\3\\5'),
-    # delete space after operator
-    ('(::)([ \t]*)([\w\(\)])', '\\1\\3'),
-    # delete superflous space around operator
-    ('([\w\(\)\]])([ \t]+)(&&|\|\||<=|>=|!=|\|=|==|\+=|-=|\*=|/=|\?|<|>|\+|-|=|/|:|&|\||\*)([ \t]+)([\w\(\)])', '\\1 \\3 \\5'),
-    # space around operator1
-    ('([\w\)\]]) *(&&|\|\||<=|>=|!=|\|=|==|\+=|-=|\*=|/=|\?|<|>|=|/|:|&|\||\*) *([\w\(])', '\\1 \\2 \\3'),
-    # space around operator2
-    ('([\w\)\]]) *(&&|\|\||<=|>=|!=|\|=|==|\+=|-=|\*=|/=|\?|<|>|=|/|:|&|\||\*) ([^\w\s])', '\\1 \\2 \\3'),
-    # space around operator3
-    ('([^\w\s]) (&&|\|\||<=|>=|!=|\|=|==|\+=|-=|\*=|/=|\?|<|[^-]>|=|/|:|&|\||\*) *([\w\(])', '\\1 \\2 \\3'),
-    # space around operator4
-    ('([\w\(\)\]]) (\*|/|\+|-) *([-:])', '\\1 \\2 \\3'),
-    # space around +/-; exponent
-    ('([\w\)\]])(\+|-)([_A-Za-z\(])', '\\1 \\2 \\3'),
-    ('([_\dA-Za-df-z\)\]])(\+|-)([\w\(])', '\\1 \\2 \\3'),
-    # trailing operator
-    (' (::|&&|\|\||<=|>=|!=|\|=|==|\+=|-=|\*=|/=|\?|<|>|\+|-|=|/|:|&XXX|\||\*XXX)[ \t]*\n([ \t]*)',         '\n\\2\\1 '),
-    # pointer
-    ##('(bool|char|const|delete|int|stream|unsigned|void|size_t|struct \w+|[A-Z]\w*|,|;|&&|<|[^-]>|\|\||-|\+)[ \t]*(\*|&)[ \t]*', '\\1 \\2'),
-    ('(bool|char|const|delete|int|stream|unsigned|void|size_t|struct \w+|[A-Z]\w*|,|;|:|=|\?\)|&&|<|[^-]>|\|\||-|\+)[ \t]*(\*|&)[ \t]*', '\\1 \\2'),
-    #to#('(bool|char|const|delete|int|stream|unsigned|void|([A-Z]\w*)|[,])[ \n\t]*(\*|&)[ \t]*', '\\1 \\3'),
-    # pointer with template
-    ('(( *((bool|char|const|delete|int|stream|unsigned|void|size_t|class[ \t]+\w*|[A-Z]\w*|\w+::\w+|[,])[ \*&],*)+)>) *(\*|&) *', '\\1 \\5'),
-    #to#('(( *((bool|char|delete|int|stream|unsigned|void|(class[ \t]+\w*)|([A-Z]\w*)|[,])[ \*&],*)+)>)[ \t\n]*(\*|&) *', '\\1 \\7'),
-    # unary pointer, minus, not
-    ('(return|=) (\*|&|-|!) ([\w\(])', '\\1 \\2\\3'),
-    # space after `operator'
-    ('(\Woperator) *([^\w\s])', '\\1 \\2'),
-    # dangling brace close
-    ('\n[ \t]*(\n[ \t]*})', '\\1'),
-    # dangling newline
-    ('\n[ \t]*\n[ \t]*\n', '\n\n'),
-    # dangling parenthesis open
-    #('[ \t]*\n[ \t]*\([ \t]*\n', '('),
-    ('\([ \t]*\n', '('),
-    # dangling parenthesis close
-    ('\n[ \t]*\)', ')'),
-    # dangling comma
-    ('\n[ \t]*,', ','),
-    # dangling semicolon
-    ('\n[ \t]*;', ';'),
-    # brace open
-    ('(\w)[ \t]*([^\s]*){([ \t]*\n)', '\\1\\2\n{\n'),
-    # brace open backslash
-    ('(\w[^\n]*){[ \t]*\\\\\n', '\\1\\\n{\\\n'),
-    # brace close
-    ("}[ \t]*([^'\n]*\w[^\n\\\]*)\n", '}\n\\1\n'),
-    # brace close backslash
-    ("}[ \t]*([^'\n]*\w[^\n\\\]*)", '\n}\n\\1'),
-    # delete space after `operator'
-    #('(\Woperator) (\W)', '\\1\\2'),
-    # delete space after case, label
-    ('(\W(case|label) ([\w]+)) :', '\\1:'),
-    # delete space before comma
-    ('[ \t]*,', ','),
-    # delete space before semicolon
-    ('[ \t]*;', ';'),
-    # delete space before eol-backslash
-    ('[ \t]*\\\\\n', '\\\n'),
-    # delete trailing whitespace
-    ('[ \t]*\n', '\n'),
-
-    ## Deuglify code that also gets ugly by rules above.
-    # delete newline after typedef struct
-    ('(typedef struct\s+([\w]*\s){([^}]|{[^}]*})*})\s*\n\s*(\w[\w\d]*;)', '\\1 \\4'),
-    # delete spaces around template brackets
-    #('(dynamic_cast|template|([A-Z]\w*))[ \t]*<[ \t]*(( *(bool|char|int|unsigned|void|(class[ \t]+\w*)|([A-Z]\w*)),?)+)[ \t]?(| [\*&])[ \t]*>', '\\1<\\3\\8>'),
-    ('(dynamic_cast|template|typedef|\w+::\w+|[A-Z]\w*)[ \t]*<[ \t]*(( *(bool|char|const|int|unsigned|void|size_t|class[ \t]+\w*|[A-Z]\w*)( *[\*&]?,|[\*&])*)+)[ \t]?(| [\*&])[ \t]*>', '\\1<\\2\\6>'),
-    ('(\w+::\w+|[A-Z]\w*) < ((\w+::\w+|[A-Z]\w*)<[A-Z]\w*>) >', '\\1<\\2 >'),
-    ('((if|while)\s+\(([^\)]|\([^\)]*\))*\))\s*;', '\\1\n;'),
-    ('(for\s+\(([^;]*;[^;]*;([^\)]|\([^\)]*\))*)\))\s*;', '\\1\n;'),
-    # do {..} while
-    ('(}\s*while\s*)(\(([^\)]|\([^\)]*\))*\))\s*;', '\\1\\2;'),
-
-    ## Fix code that gets broken by rules above.
-    ##('->\s+\*', '->*'),
-    # delete space before #define x()
-    ('#[ \t]*define (\w*)[ \t]*\(', '#define \\1('),
-    # add space in #define x ()
-    ('#[ \t]*define (\w*)(\(([^\(\)]|\([^\(\)]*\))*\)\\n)',
-    '#define \\1 \\2'),
-    # delete space in #include <>
-    ('#[ \t]*include[ \t]*<[ \t]*([^ \t>]*)[ \t]*(/?)[ \t]*([^ \t>]*)[ \t]*>',
-    '#include <\\1\\2\\3>'),
-    # delete backslash before empty line (emacs' indent region is broken)
-    ('\\\\\n\n', '\n\n'),
-    ],
-
-    COMMENT:
-    [
-    # delete trailing whitespace
-    ('[ \t]*\n', '\n'),
-    # delete empty first lines
-    ('(/\*\n)\n*', '\\1'),
-    # delete empty last lines
-    ('\n*(\n\*/)', '\\1'),
-    ## delete newline after start?
-    #('/(\*)\n', '\\1'),
-    ## delete newline before end?
-    #('\n(\*/)', '\\1'),
-    ],
-    }
-
-# Recognize special sequences in the input.
-#
-#   (?P<name>regex) -- Assign result of REGEX to NAME.
-#   *? -- Match non-greedily.
-#   (?m) -- Multiline regex: Make ^ and $ match at each line.
-#   (?s) -- Make the dot match all characters including newline.
-#   (?x) -- Ignore whitespace in patterns.
-no_match = 'a\ba'
-snippet_res = {
-    CXX: {
-    'multiline_comment':
-    r'''(?sx)
-    (?P<match>
-    (?P<code>
-    [ \t]*/\*.*?\*/))''',
-    
-    'singleline_comment':
-    r'''(?mx)
-    ^.*
-    (?P<match>
-    (?P<code>
-    [ \t]*//([ \t][^\n]*|)\n))''',
-
-    'string':
-    r'''(?x)
-    (?P<match>
-    (?P<code>
-    "([^\"\n](\")*)*"))''',
-    
-    'char':
-    r'''(?x)
-    (?P<match>
-    (?P<code>
-    '([^']+|\')))''',
-     
-     'include':
-     r'''(?x)
-     (?P<match>
-     (?P<code>
-     "#[ \t]*include[ \t]*<[^>]*>''',
-     },
-     }
-
-class Chunk:
-    def replacement_text (self):
-        return ''
-
-    def filter_text (self):
-        return self.replacement_text ()
-
-class Substring (Chunk):
-    def __init__ (self, source, start, end):
-        self.source = source
-        self.start = start
-        self.end = end
-
-    def replacement_text (self):
-        s = self.source[self.start:self.end]
-        if verbose_p:
-            sys.stderr.write ('CXX Rules')
-        for i in rules[CXX]:
-            if verbose_p:
-                sys.stderr.write ('.')
-                #sys.stderr.write ('\n\n***********\n')
-                #sys.stderr.write (i[0])
-                #sys.stderr.write ('\n***********\n')
-                #sys.stderr.write ('\n=========>>\n')
-                #sys.stderr.write (s)
-                #sys.stderr.write ('\n<<=========\n')
-            s = re.sub (i[0], i[1], s)
-        if verbose_p:
-            sys.stderr.write ('done\n')
-        return s
-        
-
-class Snippet (Chunk):
-    def __init__ (self, type, match, format):
-        self.type = type
-        self.match = match
-        self.hash = 0
-        self.options = []
-        self.format = format
-
-    def replacement_text (self):
-        return self.match.group ('match')
-
-    def substring (self, s):
-        return self.match.group (s)
-
-    def __repr__ (self):
-        return `self.__class__` + ' type = ' + self.type
-
-class Multiline_comment (Snippet):
-    def __init__ (self, source, match, format):
-        self.type = type
-        self.match = match
-        self.hash = 0
-        self.options = []
-        self.format = format
-
-    def replacement_text (self):
-        s = self.match.group ('match')
-        if verbose_p:
-            sys.stderr.write ('COMMENT Rules')
-        for i in rules[COMMENT]:
-            if verbose_p:
-                sys.stderr.write ('.')
-            s = re.sub (i[0], i[1], s)
-        return s
-
-snippet_type_to_class = {
-    'multiline_comment': Multiline_comment,
-#        'string': Multiline_comment,
-#        'include': Include_snippet,
-}
-
-def find_toplevel_snippets (s, types):
-    if verbose_p:
-        sys.stderr.write ('Dissecting')
-
-    res = {}
-    for i in types:
-        res[i] = re.compile (snippet_res[format][i])
-
-    snippets = []
-    index = 0
-    ## found = dict (map (lambda x: (x, None),
-    ##                      types))
-    ## urg python2.1
-    found = {}
-    map (lambda x, f = found: f.setdefault (x, None),
-      types)
-
-    # We want to search for multiple regexes, without searching
-    # the string multiple times for one regex.
-    # Hence, we use earlier results to limit the string portion
-    # where we search.
-    # Since every part of the string is traversed at most once for
-    # every type of snippet, this is linear.
-
-    while 1:
-        if verbose_p:
-            sys.stderr.write ('.')
-        first = None
-        endex = 1 << 30
-        for type in types:
-            if not found[type] or found[type][0] < index:
-                found[type] = None
-                m = res[type].search (s[index:endex])
-                if not m:
-                    continue
-
-                cl = Snippet
-                if snippet_type_to_class.has_key (type):
-                    cl = snippet_type_to_class[type]
-                snip = cl (type, m, format)
-                start = index + m.start ('match')
-                found[type] = (start, snip)
-
-            if found[type] \
-             and (not first \
-                or found[type][0] < found[first][0]):
-                first = type
-
-                # FIXME.
-
-                # Limiting the search space is a cute
-                # idea, but this *requires* to search
-                # for possible containing blocks
-                # first, at least as long as we do not
-                # search for the start of blocks, but
-                # always/directly for the entire
-                # @block ... @end block.
-
-                endex = found[first][0]
-
-        if not first:
-            snippets.append (Substring (s, index, len (s)))
-            break
-
-        (start, snip) = found[first]
-        snippets.append (Substring (s, index, start))
-        snippets.append (snip)
-        found[first] = None
-        index = start + len (snip.match.group ('match'))
-
-    return snippets
-
-def nitpick_file (outdir, file):
-    s = open (file).read ()
-
-    for i in rules[GLOBAL_CXX]:
-        s = re.sub (i[0], i[1], s)
-
-    # FIXME: Containing blocks must be first, see
-    #        find_toplevel_snippets.
-    #        We leave simple strings be part of the code
-    snippet_types = (
-        'multiline_comment',
-        'singleline_comment',
-        'string',
-#                'char',
-        )
-
-    chunks = find_toplevel_snippets (s, snippet_types)
-    #code = filter (lambda x: is_derived_class (x.__class__, Substring),
-    #               chunks)
-
-    t = string.join (map (lambda x: x.filter_text (), chunks), '')
-    fixt = file
-    if s != t:
-        if not outdir:
-            os.system ('mv %s %s~' % (file, file))
-        else: 
-            fixt = os.path.join (outdir,
-                      os.path.basename (file))
-        h = open (fixt, "w")
-        h.write (t)
-        h.close ()
-    if s != t or indent_p:
-        indent_file (fixt)
-
-def indent_file (file):
-    emacs = '''emacs\
-    --no-window-system\
-    --batch\
-    --no-site-file\
-    --no-init-file\
-    %(file)s\
-    --eval '(let ((error nil)
-           (version-control nil))
-        (load-library "cc-mode")
-        (c++-mode)
-        (indent-region (point-min) (point-max))
-        (if (buffer-modified-p (current-buffer))
-         (save-buffer)))' ''' % vars ()
-    emacsclient = '''emacsclient\
-    --socket-name=%(socketdir)s/%(socketname)s\
-    --no-wait\
-    --eval '(let ((error nil)
-           (version-control nil))
-        (load-library "cc-mode")
-        (find-file "%(file)s")
-        (c++-mode)
-        (indent-region (point-min) (point-max))
-        (if (buffer-modified-p (current-buffer))
-         (save-buffer)))' ''' \
-         % { 'file': file,
-           'socketdir' : socketdir,
-           'socketname' : socketname, }
-    if verbose_p:
-        sys.stderr.write (emacs)
-        sys.stderr.write ('\n')
-    os.system (emacs)
-
-
-def usage ():
-    sys.stdout.write (r'''
-Usage:
-fixcc [OPTION]... FILE...
-
-Options:
- --help
- --indent   reindent, even if no changes
- --verbose
- --test
-
-Typical use with LilyPond:
-
- fixcc $(find flower kpath-guile lily -name '*cc' -o -name '*hh' | grep -v /out)
-
-This script is licensed under the GNU GPL
-''')
-
-def do_options ():
-    global indent_p, outdir, verbose_p
-    (options, files) = getopt.getopt (sys.argv[1:], '',
-                     ['help', 'indent', 'outdir=',
-                     'test', 'verbose'])
-    for (o, a) in options:
-        if o == '--help':
-            usage ()
-            sys.exit (0)
-        elif o == '--indent':
-            indent_p = 1
-        elif o == '--outdir':
-            outdir = a
-        elif o == '--verbose':
-            verbose_p = 1
-        elif o == '--test':
-            test ()
-            sys.exit (0)
-        else:
-            assert unimplemented
-    if not files:
-        usage ()
-        sys.exit (2)
-    return files
-
-
-outdir = 0
-format = CXX
-socketdir = '/tmp/fixcc'
-socketname = 'fixcc%d' % os.getpid ()
-
-def setup_client ():
-    #--no-window-system\
-    #--batch\
-    os.unlink (os.path.join (socketdir, socketname))
-    os.mkdir (socketdir, 0700)
-    emacs='''emacs\
-        --no-site-file\
-        --no-init-file\
-        --eval '(let ((error nil)
-               (version-control nil))
-            (load-library "server")
-            (setq server-socket-dir "%(socketdir)s")
-            (setq server-name "%(socketname)s")
-            (server-start)
-            (while t) (sleep 1000))' ''' \
-            % { 'socketdir' : socketdir,
-              'socketname' : socketname, }
-              
-    if not os.fork ():
-        os.system (emacs)
-        sys.exit (0)
-    while not os.path.exists (os.path.join (socketdir, socketname)):
-        time.sleep (1)
-
-def main ():
-    #emacsclient should be faster, but this does not work yet
-    #setup_client ()
-    files = do_options ()
-    if outdir and not os.path.isdir (outdir):
-        os.makedirs (outdir)
-    for i in files:
-        sys.stderr.write ('%s...\n' % i)
-        nitpick_file (outdir, i)
-
-
-## TODO: make this compilable and check with g++
-TEST = '''
-#include <libio.h>
-#include <map>
-class
-ostream ;
-
-class Foo {
-public: static char* foo ();
-std::map<char*,int>* bar (char, char) { return 0; }
-};
-typedef struct
-{
- Foo **bar;
-} String;
-
-ostream &
-operator << (ostream & os, String d);
-
-typedef struct _t_ligature
-{
- char *succ, *lig;
- struct _t_ligature * next;
-}  AFM_Ligature;
-typedef std::map < AFM_Ligature const *, int > Bar;
-
- /**
- (c) 1997--2007 Han-Wen Nienhuys <hanwen@cs.uu.nl>
- */
-/*      ||
-*      vv
-* !OK  OK
-*/
-/*     ||
-   vv
- !OK  OK
-*/
-char *
-Foo:: foo ()
-{
-int
-i
-;
- char* a= &++ i ;
- a [*++ a] = (char*) foe (*i, &bar) *
- 2;
- int operator double ();
- std::map<char*,int> y =*bar(-*a ,*b);
- Interval_t<T> & operator*= (T r);
- Foo<T>*c;
- int compare (Pqueue_ent < K, T > const& e1, Pqueue_ent < K,T> *e2);
- delete *p;
- if (abs (f)*2 > abs (d) *FUDGE)
-  ;
- while (0);
- for (; i<x foo(); foo>bar);
- for (; *p && > y;
-   foo > bar)
-;
- do {
- ;;;
- }
- while (foe);
-
- squiggle. extent;
- 1 && * unsmob_moment (lf);
- line_spanner_ = make_spanner ("DynamicLineSpanner", rq ? rq->*self_scm
-(): SCM_EOL);
- case foo: k;
-
- if (0) {a=b;} else {
- c=d;
- }
-
- cookie_io_functions_t Memory_out_stream::functions_ = {
-  Memory_out_stream::reader,
-  ...
- };
-
- int compare (Array < Pitch> *, Array < Pitch> *);
- original_ = (Grob *) & s;
- Drul_array< Link_array<Grob> > o;
-}
-
- header_.char_info_pos = (6 + header_length) * 4;
- return ly_bool2scm (*ma < * mb);
-
- 1 *::sign(2);
-
- (shift) *-d;
-
- a = 0 ? *x : *y;
-
-a = "foo() 2,2,4";
-{
- if (!span_)
-  {
-   span_ = make_spanner ("StaffSymbol", SCM_EOL);
-  }
-}
-{
- if (!span_)
-  {
-   span_ = make_spanner (StaffSymbol, SCM_EOL);
-  }
-}
-'''
-
-def test ():
-    test_file = 'fixcc.cc'
-    open (test_file, 'w').write (TEST)
-    nitpick_file (outdir, test_file)
-    sys.stdout.write (open (test_file).read ())
-
-if __name__ == '__main__':
-    main ()
-
diff --git a/buildscripts/gen-emmentaler-scripts.py b/buildscripts/gen-emmentaler-scripts.py
deleted file mode 100644 (file)
index 3da8840..0000000
+++ /dev/null
@@ -1,104 +0,0 @@
-#!@PYTHON@
-import sys
-import getopt
-import re 
-import os
-
-(options, files) = \
- getopt.getopt (sys.argv[1:],
-        '',
-        ['dir='])
-
-
-outdir = ''
-for opt in options:
-    o = opt[0]
-    a = opt[1]
-    if o == '--dir':
-        outdir = a
-    else:
-        print o
-        raise getopt.error
-
-# Ugh
-for design_size in [11,13,14,16,18,20,23,26]:
-    name = 'Emmentaler' 
-    filename = name.lower ()
-    script = '''#!@FONTFORGE@
-
-New();
-
-# Separate Feta versioning?
-#         *  using 20 as Weight works for gnome-font-select widget: gfs
-
-notice = "";
-notice += "This font is distributed under the GNU General Public License. ";
-notice += "As a special exception, if you create a document which uses ";
-notice += "this font, and embed this font or unaltered portions of this ";
-notice += "font into the document, this font does not by itself cause the ";
-notice += "resulting document to be covered by the GNU General Public License.";;
-
-SetFontNames("%(name)s-%(design_size)d", "%(name)s", "%(name)s %(design_size)d", "%(design_size)d", notice, "@TOPLEVEL_VERSION@");
-
-MergeFonts("feta%(design_size)d.pfb");
-MergeFonts("parmesan%(design_size)d.pfb");
-
-# load nummer/din after setting PUA.
-i = 0;
-while (i < CharCnt())
- Select(i);
-# crashes fontforge, use PUA for now -- jcn
-# SetUnicodeValue(i + 0xF0000, 0);
-/*
-PRIVATE AREA
-   In the BMP, the range 0xe000 to 0xf8ff will never be  assigned  to  any
-   characters  by  the standard and is reserved for private usage. For the
-   Linux community, this private area has been subdivided further into the
-   range  0xe000  to 0xefff which can be used individually by any end-user
-   and the Linux zone in the range 0xf000 to 0xf8ff where  extensions  are
-   coordinated  among  all  Linux  users.  The  registry of the characters
-   assigned to the Linux zone is currently maintained by  H.  Peter  Anvin
-   <Peter.Anvin@linux.org>.
-*/
- SetUnicodeValue(i + 0xE000, 0);
- ++i;
-endloop
-
-
-MergeFonts("feta-alphabet%(design_size)d.pfb");
-MergeKern("feta-alphabet%(design_size)d.tfm");
-
-LoadTableFromFile("LILF", "%(filename)s-%(design_size)d.subfonts");
-LoadTableFromFile("LILC", "feta%(design_size)d.otf-table");
-LoadTableFromFile("LILY", "feta%(design_size)d.otf-gtable");
-
-Generate("%(filename)s-%(design_size)d.otf");
-Generate("%(filename)s-%(design_size)d.svg");
-''' % vars()
-
-    basename = '%s-%d' % (filename, design_size)
-    path = os.path.join (outdir, basename + '.pe')
-    open (path, 'w').write (script)
-
-    subfonts = ['feta%(design_size)d',
-          'parmesan%(design_size)d',
-          'feta-alphabet%(design_size)d']
-
-    ns = []
-    for s in subfonts:
-        ns.append ('%s' % (s % vars()))
-        
-    subfonts_str = ' '.join (ns)
-    
-    open (os.path.join (outdir, '%(filename)s-%(design_size)d.subfonts' % vars()), 'w').write (subfonts_str)
-
-    path = os.path.join (outdir, '%s-%d.dep' % (filename, design_size))
-
-    deps = r'''%(filename)s-%(design_size)d.otf: $(outdir)/feta%(design_size)d.pfa \
- $(outdir)/parmesan%(design_size)d.pfa  \
- $(outdir)/feta-alphabet%(design_size)d.pfa feta%(design_size)d.otf-table \
- $(outdir)/feta-alphabet%(design_size)d.pfa feta%(design_size)d.otf-gtable
-''' % vars()
-    open (path, 'w').write (deps)
-
-    open (os.path.join (outdir, basename + '.fontname'), 'w').write ("%s-%d" % (name, design_size))
diff --git a/buildscripts/genicon.py b/buildscripts/genicon.py
deleted file mode 100644 (file)
index 5437352..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-#!@PYTHON@
-import os
-import sys
-import tempfile
-
-base = os.path.splitext (os.path.split (sys.argv[1])[1])[0]
-input = os.path.abspath (sys.argv[1])
-output = os.path.abspath (sys.argv[2])
-program_name= os.path.split (sys.argv[0])[1]
-
-dir = tempfile.mktemp (program_name)
-os.mkdir (dir, 0777)
-os.chdir(dir)
-
-def system (c):
-    print c
-    if os.system (c):
-        raise 'barf'
-
-outputs = []
-for sz in [48,32,16] :
-    
-    for depth in [24,8]:
-        out = '%(base)s-%(sz)d-%(depth)d.png' % locals()
-        system ('convert -depth %(depth)d -sample %(sz)d %(input)s %(out)s' %
-            locals ())
-        outputs.append (out)
-        
-system('icotool --output %s --create %s' % (output, ' '.join (outputs)))
-system('rm -rf %(dir)s' % locals())                 
-
diff --git a/buildscripts/git-update-changelog.py b/buildscripts/git-update-changelog.py
deleted file mode 100644 (file)
index 09f0d16..0000000
+++ /dev/null
@@ -1,311 +0,0 @@
-#!/usr/bin/python
-
-import sys
-import time
-import os
-import re
-import optparse
-
-def read_pipe (x):
-    print 'pipe', x
-    return os.popen (x).read ()
-
-def system (x):
-    print x
-    return os.system (x)
-    
-class PatchFailed(Exception):
-    pass
-
-def sign (x):
-    if x < 0:
-        return -1
-    if x > 0:
-        return 1
-
-    return 0
-    
-
-class Commit:
-    def __init__ (self, dict):
-        for v in ('message',
-                  'date',
-                  'author',
-                  'committish'):
-            self.__dict__[v] = dict[v]
-        
-        self.date = ' '.join  (self.date.split (' ')[:-1])
-        self.date = time.strptime (self.date, '%a %b %d %H:%M:%S %Y')
-        
-        m = re.search ('(.*)<(.*)>', self.author)
-        self.email = m.group (2).strip ()
-        self.name = m.group (1).strip ()
-        self.diff = read_pipe ('git show %s' % self.committish)
-    def compare (self, other):
-        return sign (time.mktime (self.date) - time.mktime (other.date))
-
-
-    def check_diff_chunk (self, filename, chunk):
-        removals = []
-        def note_removal (m):
-            removals.append (m.group (1))
-            
-        re.sub ('\n-([^\n]+)', note_removal, chunk)
-
-        if removals == []:
-            return True
-        if not os.path.exists (filename):
-            return False
-
-        contents = open (filename).read ()
-        for r in removals:
-            if r not in contents:
-                return False
-
-        return True
-
-    def check_diff (self):
-        chunks = re.split ('\ndiff --git ', self.diff)
-
-        ok = True
-        for c in chunks:
-            m = re.search ('^a/([^ ]+)', c)
-            if not m:
-                continue
-            
-            file = m.group (1)
-            
-            c = re.sub('\n--- [^\n]+', '', c)
-            ok = ok and self.check_diff_chunk (file, c)
-            if not ok:
-                break
-
-        return ok
-        
-    def touched_files (self):
-        files = []
-        def note_file (x):
-            files.append (x.group (1))
-            return ''
-
-        re.sub ('\n--- a/([^\n]+)\n',
-                note_file, self.diff)
-        re.sub('\n--- /dev/null\n\\+\\+\\+ b/([^\n]+)',
-               note_file, self.diff)
-
-        return files
-
-    def has_patch (self):
-        return self.touched_files () <> []
-    
-    def apply (self, add_del_files):
-        def note_add_file (x):
-            add_del_files.append (('add', x.group (1)))
-            return ''
-        
-        def note_del_file (x):
-            add_del_files.append (('del', x.group (1)))
-            return ''
-        
-        re.sub('\n--- /dev/null\n\\+\\+\\+ b/([^\n]+)',
-               note_add_file, self.diff)
-        
-        re.sub('\n--- a/([^\n]+)\n\\+\\+\\+ /dev/null',
-               note_del_file, self.diff)
-
-        p = os.popen ('patch -f -p1 ', 'w')
-        p.write (self.diff)
-
-        if p.close ():
-            raise PatchFailed, self.committish
-        
-    
-def parse_commit_log (log):
-    committish = re.search ('^([^\n]+)', log).group (1)
-    author = re.search ('\nAuthor:\s+([^\n]+)', log).group (1)
-    date_match = re.search ('\nDate:\s+([^\n]+)', log)
-    date = date_match.group (1)
-    log = log[date_match.end (1):]
-
-    message = re.sub ("\n *", '', log)
-    message = message.strip ()
-
-    c = Commit (locals ())
-    return c
-
-def parse_add_changes (from_commit, max_count=0):
-    opt = ''
-    rest = '..'
-    if max_count:
-
-        # fixme.
-        assert max_count == 1
-        opt = '--max-count=%d' % max_count 
-        rest = ''
-        
-    log = read_pipe ('git log %(opt)s %(from_commit)s%(rest)s' % locals ())
-
-    log = log[len ('commit '):]
-    log = log.strip ()
-
-    if not log:
-        return []
-        
-    commits = map (parse_commit_log, re.split ('\ncommit ', log))
-    commits.reverse ()
-    
-    return commits
-
-
-def header (commit):
-    return '%d-%02d-%02d  %s  <%s>\n' % (commit.date[:3] + (commit.name, commit.email))
-
-def changelog_body (commit):
-    s = ''
-    s += ''.join ('\n* %s: ' % f for f in commit.touched_files())
-    s += '\n' + commit.message
-    
-    s = s.replace ('\n', '\n\t')
-    s += '\n'
-    return s
-
-def main ():
-    p = optparse.OptionParser (usage="usage git-update-changelog.py [options] [commits]",
-                               description="""
-Apply GIT patches and update change log.
-
-Run this file from the CVS directory, with commits from the repository in --git-dir.
-
-""")
-    p.add_option ("--start",
-                  action='store',
-                  default='',
-                  metavar="FIRST",
-                  dest="start",
-                  help="all commits starting with FIRST (exclusive).")
-    
-    p.add_option ("--git-dir",
-                  action='store',
-                  default='',
-                  dest="gitdir",
-                  help="the GIT directory to merge.")
-
-    (options, args) = p.parse_args ()
-    
-    log = open ('ChangeLog').read ()
-
-    if options.gitdir:
-        os.environ['GIT_DIR'] = options.gitdir
-
-
-    if not args:
-        if not options.start:
-            print 'Must set start committish.'  
-            sys.exit (1)
-
-        commits = parse_add_changes (options.start)
-    else:
-        commits = [] 
-        for a in args:
-            commits += parse_add_changes (a, max_count=1)
-
-    if not commits:
-        return
-    
-    new_log = ''
-    last_commit = None
-
-    first = header (commits[0]) + '\n'
-    if first == log[:len (first)]:
-        log = log[len (first):]
-
-    try:
-        previously_done = dict((c, 1) for c in open ('.git-commits-done').read ().split ('\n'))
-    except IOError:
-        previously_done = {}
-
-    commits = [c for c in commits if not previously_done.has_key (c.committish)]
-    commits = sorted (commits, cmp=Commit.compare)
-
-    system ('cvs up')
-    
-    file_adddel = []
-    collated_log = ''
-    collated_message = ''
-    commits_done = []
-    while commits:
-        c = commits[0]
-        
-        if not c.has_patch ():
-            print 'patchless commit (merge?)'
-            continue
-
-        ok = c.check_diff ()
-
-        if not ok:
-            print "Patch doesn't seem to apply"
-            print 'skipping', c.committish
-            print 'message:', c.message
-
-            break
-
-
-        commits = commits[1:]
-        commits_done.append (c) 
-            
-        print 'patch ', c.committish
-        try:
-            c.apply (file_adddel)
-        except PatchFailed:
-            break
-        
-        if c.touched_files () == ['ChangeLog']:
-            continue
-        
-        if (last_commit
-            and c.author != last_commit.author
-            and c.date[:3] != last_commit.date[:3]):
-
-            new_log += header (last_commit)
-
-        collated_log = changelog_body (c)  + collated_log
-        last_commit = c
-
-        collated_message += c.message + '\n'
-        
-
-
-    for (op, f) in file_adddel:
-        if op == 'del':
-            system ('cvs remove %(f)s' % locals ())
-        if op == 'add':
-            system ('cvs add %(f)s' % locals ())
-
-    if last_commit: 
-        collated_log = header (last_commit) + collated_log + '\n'
-
-    log = collated_log + log
-
-    try:
-        os.unlink ('ChangeLog~')
-    except OSError:
-        pass
-    
-    os.rename ('ChangeLog', 'ChangeLog~')
-    open ('ChangeLog', 'w').write (log)
-
-    open ('.msg','w').write (collated_message)
-    print '\nCommit message\n**\n%s\n**\n' % collated_message
-    print '\nRun:\n\n\tcvs commit -F .msg\n\n'
-    print '\n\techo %s >> .git-commits-done\n\n' % ' '.join ([c.committish
-                                                              for c in commits_done]) 
-
-
-    if commits:
-        print 'Commits left to do:'
-        print ' '.join ([c.committish for c in commits])
-    
-main ()
-    
-    
-    
diff --git a/buildscripts/grand-replace.sh b/buildscripts/grand-replace.sh
deleted file mode 100644 (file)
index 1eec448..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-#! @BASH@
-# note: dash does not work
-
-pytt '(Copyright|\(c\)|\(C\)|@copyright\{\})\s*2006' '\1 2006--2007' $(find . -mindepth 2 -type f | grep -Ev 'out/|out-scons|out-www/|.git/|.scon|#|~|' | grep -iv 'change')
-pytt '(Copyright|\(c\)|\(C\)|@copyright\{\})\s*([^-]*--)(200[0-6])' '\1 \2\062007' $(find . -mindepth 2 -type f | grep -Ev 'out/|out-scons|out-www/|.git/|.scon|#|~' | grep -iv 'change')
diff --git a/buildscripts/help2man.pl b/buildscripts/help2man.pl
deleted file mode 100644 (file)
index 9cb09c4..0000000
+++ /dev/null
@@ -1,559 +0,0 @@
-#!@PERL@ -w
-
-# Generate a short man page from --help and --version output.
-# Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Free Software
-# Foundation, Inc.
-
-# This program 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-# Written by Brendan O'Dea <bod@debian.org>
-# Available from ftp://ftp.gnu.org/gnu/help2man/
-
-use 5.005;
-use strict;
-use Getopt::Long;
-use Text::Tabs qw(expand);
-use POSIX qw(strftime setlocale LC_TIME);
-
-my $this_program = 'help2man';
-my $this_version = '1.28';
-my $version_info = <<EOT;
-GNU $this_program $this_version
-
-Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 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.
-
-Written by Brendan O'Dea <bod\@debian.org>
-EOT
-
-my $help_info = <<EOT;
-`$this_program' generates a man page out of `--help' and `--version' output.
-
-Usage: $this_program [OPTIONS]... EXECUTABLE
-
- -n, --name=STRING       description for the NAME paragraph
- -s, --section=SECTION   section number for manual page (1, 6, 8)
- -m, --manual=TEXT       name of manual (User Commands, ...)
- -S, --source=TEXT       source of program (FSF, Debian, ...)
- -i, --include=FILE      include material from `FILE'
- -I, --opt-include=FILE  include material from `FILE' if it exists
- -o, --output=FILE       send output to `FILE'
- -p, --info-page=TEXT    name of Texinfo manual
- -N, --no-info           suppress pointer to Texinfo manual
-     --help              print this help, then exit
-     --version           print version number, then exit
-
-EXECUTABLE should accept `--help' and `--version' options although
-alternatives may be specified using:
-
- -h, --help-option=STRING     help option string
- -v, --version-option=STRING  version option string
-
-Report bugs to <bug-help2man\@gnu.org>.
-EOT
-
-my $section = 1;
-my $manual = '';
-my $source = '';
-my $help_option = '--help';
-my $version_option = '--version';
-my ($opt_name, @opt_include, $opt_output, $opt_info, $opt_no_info);
-
-my %opt_def = (
-    'n|name=s'          => \$opt_name,
-    's|section=s'       => \$section,
-    'm|manual=s'        => \$manual,
-    'S|source=s'        => \$source,
-    'i|include=s'       => sub { push @opt_include, [ pop, 1 ] },
-    'I|opt-include=s'   => sub { push @opt_include, [ pop, 0 ] },
-    'o|output=s'        => \$opt_output,
-    'p|info-page=s'     => \$opt_info,
-    'N|no-info'                 => \$opt_no_info,
-    'h|help-option=s'   => \$help_option,
-    'v|version-option=s' => \$version_option,
-);
-
-# Parse options.
-Getopt::Long::config('bundling');
-GetOptions (%opt_def,
-    help    => sub { print $help_info; exit },
-    version => sub { print $version_info; exit },
-) or die $help_info;
-
-die $help_info unless @ARGV == 1;
-
-my %include = ();
-my %append = ();
-my @include = (); # retain order given in include file
-
-# Process include file (if given).  Format is:
-#
-#   [section name]
-#   verbatim text
-#
-# or
-#
-#   /pattern/
-#   verbatim text
-#
-
-while (@opt_include)
-{
-    my ($inc, $required) = @{shift @opt_include};
-
-    next unless -f $inc or $required;
-    die "$this_program: can't open `$inc' ($!)\n"
-       unless open INC, $inc;
-
-    my $key;
-    my $hash = \%include;
-
-    while (<INC>)
-    {
-       # [section]
-       if (/^\[([^]]+)\]/)
-       {
-           $key = uc $1;
-           $key =~ s/^\s+//;
-           $key =~ s/\s+$//;
-           $hash = \%include;
-           push @include, $key unless $include{$key};
-           next;
-       }
-
-       # /pattern/
-       if (m!^/(.*)/([ims]*)!)
-       {
-           my $pat = $2 ? "(?$2)$1" : $1;
-
-           # Check pattern.
-           eval { $key = qr($pat) };
-           if ($@)
-           {
-               $@ =~ s/ at .*? line \d.*//;
-               die "$inc:$.:$@";
-           }
-
-           $hash = \%append;
-           next;
-       }
-
-       # Check for options before the first section--anything else is
-       # silently ignored, allowing the first for comments and
-       # revision info.
-       unless ($key)
-       {
-           # handle options
-           if (/^-/)
-           {
-               local @ARGV = split;
-               GetOptions %opt_def;
-           }
-
-           next;
-       }
-
-       $hash->{$key} ||= '';
-       $hash->{$key} .= $_;
-    }
-
-    close INC;
-
-    die "$this_program: no valid information found in `$inc'\n"
-       unless $key;
-}
-
-# Compress trailing blank lines.
-for my $hash (\(%include, %append))
-{
-    for (keys %$hash) { $hash->{$_} =~ s/\n+$/\n/ }
-}
-
-# Turn off localisation of executable's output.
-@ENV{qw(LANGUAGE LANG LC_ALL)} = ('C') x 3;
-
-# Turn off localisation of date (for strftime).
-setlocale LC_TIME, 'C';
-
-# Grab help and version info from executable.
-my ($help_text, $version_text) = map {
-    join '', map { s/ +$//; expand $_ } `$ARGV[0] $_ 2>/dev/null`
-       or die "$this_program: can't get `$_' info from $ARGV[0]\n"
-} $help_option, $version_option;
-
-my $date = strftime "%B %Y", localtime;
-(my $program = $ARGV[0]) =~ s!.*/!!;
-my $package = $program;
-my $version;
-
-if ($opt_output)
-{
-    unlink $opt_output
-       or die "$this_program: can't unlink $opt_output ($!)\n"
-       if -e $opt_output;
-
-    open STDOUT, ">$opt_output"
-       or die "$this_program: can't create $opt_output ($!)\n";
-}
-
-# The first line of the --version information is assumed to be in one
-# of the following formats:
-#
-#   <version>
-#   <program> <version>
-#   {GNU,Free} <program> <version>
-#   <program> ({GNU,Free} <package>) <version>
-#   <program> - {GNU,Free} <package> <version>
-#
-# and seperated from any copyright/author details by a blank line.
-
-($_, $version_text) = split /\n+/, $version_text, 2;
-
-if (/^(\S+) +\(((?:GNU|Free) +[^)]+)\) +(.*)/ or
-    /^(\S+) +- *((?:GNU|Free) +\S+) +(.*)/)
-{
-    $program = $1;
-    $package = $2;
-    $version = $3;
-}
-elsif (/^((?:GNU|Free) +)?(\S+) +(.*)/)
-{
-    $program = $2;
-    $package = $1 ? "$1$2" : $2;
-    $version = $3;
-}
-else
-{
-    $version = $_;
-}
-
-$program =~ s!.*/!!;
-
-# No info for `info' itself.
-$opt_no_info = 1 if $program eq 'info';
-
-# --name overrides --include contents.
-$include{NAME} = "$program \\- $opt_name\n" if $opt_name;
-
-# Default (useless) NAME paragraph.
-$include{NAME} ||= "$program \\- manual page for $program $version\n";
-
-# Man pages traditionally have the page title in caps.
-my $PROGRAM = uc $program;
-
-# Set default page head/footers
-$source ||= "$program $version";
-unless ($manual)
-{
-    for ($section)
-    {
-       if (/^(1[Mm]|8)/) { $manual = 'System Administration Utilities' }
-       elsif (/^6/)      { $manual = 'Games' }
-       else              { $manual = 'User Commands' }
-    }
-}
-
-# Extract usage clause(s) [if any] for SYNOPSIS.
-if ($help_text =~ s/^Usage:( +(\S+))(.*)((?:\n(?: {6}\1| *or: +\S).*)*)//m)
-{
-    my @syn = $2 . $3;
-
-    if ($_ = $4)
-    {
-       s/^\n//;
-       for (split /\n/) { s/^ *(or: +)?//; push @syn, $_ }
-    }
-
-    my $synopsis = '';
-    for (@syn)
-    {
-       $synopsis .= ".br\n" if $synopsis;
-       s!^\S*/!!;
-       s/^(\S+) *//;
-       $synopsis .= ".B $1\n";
-       s/\s+$//;
-       s/(([][]|\.\.+)+)/\\fR$1\\fI/g;
-       s/^/\\fI/ unless s/^\\fR//;
-       $_ .= '\fR';
-       s/(\\fI)( *)/$2$1/g;
-       s/\\fI\\fR//g;
-       s/^\\fR//;
-       s/\\fI$//;
-       s/^\./\\&./;
-
-       $synopsis .= "$_\n";
-    }
-
-    $include{SYNOPSIS} ||= $synopsis;
-}
-
-# Process text, initial section is DESCRIPTION.
-my $sect = 'DESCRIPTION';
-$_ = "$help_text\n\n$version_text";
-
-# Normalise paragraph breaks.
-s/^\n+//;
-s/\n*$/\n/;
-s/\n\n+/\n\n/g;
-
-# Temporarily exchange leading dots, apostrophes and backslashes for
-# tokens.
-s/^\./\x80/mg;
-s/^'/\x81/mg;
-s/\\/\x82/g;
-
-# Start a new paragraph (if required) for these.
-s/([^\n])\n(Report +bugs|Email +bug +reports +to|Written +by)/$1\n\n$2/g;
-
-sub convert_option;
-
-while (length)
-{
-    # Convert some standard paragraph names.
-    if (s/^(Options|Examples): *\n//)
-    {
-       $sect = uc $1;
-       next;
-    }
-
-    # Copyright section
-    if (/^Copyright +[(\xa9]/)
-    {
-       $sect = 'COPYRIGHT';
-       $include{$sect} ||= '';
-       $include{$sect} .= ".PP\n" if $include{$sect};
-
-       my $copy;
-       ($copy, $_) = split /\n\n/, $_, 2;
-
-       for ($copy)
-       {
-           # Add back newline
-           s/\n*$/\n/;
-
-           # Convert iso9959-1 copyright symbol or (c) to nroff
-           # character.
-           s/^Copyright +(?:\xa9|\([Cc]\))/Copyright \\(co/mg;
-
-           # Insert line breaks before additional copyright messages
-           # and the disclaimer.
-           s/(.)\n(Copyright |This +is +free +software)/$1\n.br\n$2/g;
-
-           # Join hyphenated lines.
-           s/([A-Za-z])-\n */$1/g;
-       }
-
-       $include{$sect} .= $copy;
-       $_ ||= '';
-       next;
-    }
-
-    # Catch bug report text.
-    if (/^(Report +bugs|Email +bug +reports +to) /)
-    {
-       $sect = 'REPORTING BUGS';
-    }
-
-    # Author section.
-    elsif (/^Written +by/)
-    {
-       $sect = 'AUTHOR';
-    }
-
-    # Examples, indicated by an indented leading $, % or > are
-    # rendered in a constant width font.
-    if (/^( +)([\$\%>] )\S/)
-    {
-       my $indent = $1;
-       my $prefix = $2;
-       my $break = '.IP';
-       $include{$sect} ||= '';
-       while (s/^$indent\Q$prefix\E(\S.*)\n*//)
-       {
-           $include{$sect} .= "$break\n\\f(CW$prefix$1\\fR\n";
-           $break = '.br';
-       }
-
-       next;
-    }
-
-    my $matched = '';
-    $include{$sect} ||= '';
-
-    # Sub-sections have a trailing colon and the second line indented.
-    if (s/^(\S.*:) *\n / /)
-    {
-       $matched .= $& if %append;
-       $include{$sect} .= qq(.SS "$1"\n);
-    }
-
-    my $indent = 0;
-    my $content = '';
-
-    # Option with description.
-    if (s/^( {1,10}([+-]\S.*?))(?:(  +(?!-))|\n( {20,}))(\S.*)\n//)
-    {
-       $matched .= $& if %append;
-       $indent = length ($4 || "$1$3");
-       $content = ".TP\n\x83$2\n\x83$5\n";
-       unless ($4)
-       {
-           # Indent may be different on second line.
-           $indent = length $& if /^ {20,}/;
-       }
-    }
-
-    # Option without description.
-    elsif (s/^ {1,10}([+-]\S.*)\n//)
-    {
-       $matched .= $& if %append;
-       $content = ".HP\n\x83$1\n";
-       $indent = 80; # not continued
-    }
-
-    # Indented paragraph with tag.
-    elsif (s/^( +(\S.*?)  +)(\S.*)\n//)
-    {
-       $matched .= $& if %append;
-       $indent = length $1;
-       $content = ".TP\n\x83$2\n\x83$3\n";
-    }
-
-    # Indented paragraph.
-    elsif (s/^( +)(\S.*)\n//)
-    {
-       $matched .= $& if %append;
-       $indent = length $1;
-       $content = ".IP\n\x83$2\n";
-    }
-
-    # Left justified paragraph.
-    else
-    {
-       s/(.*)\n//;
-       $matched .= $& if %append;
-       $content = ".PP\n" if $include{$sect};
-       $content .= "$1\n";
-    }
-
-    # Append continuations.
-    while (s/^ {$indent}(\S.*)\n//)
-    {
-       $matched .= $& if %append;
-       $content .= "\x83$1\n"
-    }
-
-    # Move to next paragraph.
-    s/^\n+//;
-
-    for ($content)
-    {
-       # Leading dot and apostrophe protection.
-       s/\x83\./\x80/g;
-       s/\x83'/\x81/g;
-       s/\x83//g;
-
-       # Convert options.
-       s/(^| )(-[][\w=-]+)/$1 . convert_option $2/mge;
-    }
-
-    # Check if matched paragraph contains /pat/.
-    if (%append)
-    {
-       for my $pat (keys %append)
-       {
-           if ($matched =~ $pat)
-           {
-               $content .= ".PP\n" unless $append{$pat} =~ /^\./;
-               $content .= $append{$pat};
-           }
-       }
-    }
-
-    $include{$sect} .= $content;
-}
-
-# Refer to the real documentation.
-unless ($opt_no_info)
-{
-    my $info_page = $opt_info || $program;
-
-    $sect = 'SEE ALSO';
-    $include{$sect} ||= '';
-    $include{$sect} .= ".PP\n" if $include{$sect};
-    $include{$sect} .= <<EOT;
-The full documentation for
-.B $program
-is maintained as a Texinfo manual.  If the
-.B info
-and
-.B $program
-programs are properly installed at your site, the command
-.IP
-.B info $info_page
-.PP
-should give you access to the complete manual.
-EOT
-}
-
-# Output header.
-print <<EOT;
-.\\" DO NOT MODIFY THIS FILE!  It was generated by $this_program $this_version.
-.TH $PROGRAM "$section" "$date" "$source" "$manual"
-EOT
-
-# Section ordering.
-my @pre = qw(NAME SYNOPSIS DESCRIPTION OPTIONS EXAMPLES);
-my @post = ('AUTHOR', 'REPORTING BUGS', 'COPYRIGHT', 'SEE ALSO');
-my $filter = join '|', @pre, @post;
-
-# Output content.
-for (@pre, (grep ! /^($filter)$/o, @include), @post)
-{
-    if ($include{$_})
-    {
-       my $quote = /\W/ ? '"' : '';
-       print ".SH $quote$_$quote\n";
-       
-       for ($include{$_})
-       {
-           # Replace leading dot, apostrophe and backslash tokens.
-           s/\x80/\\&./g;
-           s/\x81/\\&'/g;
-           s/\x82/\\e/g;
-           print;
-       }
-    }
-}
-
-exit;
-
-# Convert option dashes to \- to stop nroff from hyphenating 'em, and
-# embolden.  Option arguments get italicised.
-sub convert_option
-{
-    local $_ = '\fB' . shift;
-
-    s/-/\\-/g;
-    unless (s/\[=(.*)\]$/\\fR[=\\fI$1\\fR]/)
-    {
-       s/=(.)/\\fR=\\fI$1/;
-       s/ (.)/ \\fI$1/;
-       $_ .= '\fR';
-    }
-
-    $_;
-}
diff --git a/buildscripts/html-gettext.py b/buildscripts/html-gettext.py
deleted file mode 100644 (file)
index aaa8888..0000000
+++ /dev/null
@@ -1,119 +0,0 @@
-#!@PYTHON@
-# html-gettext.py
-
-# USAGE:  html-gettext.py [-o OUTDIR] LANG FILES
-#
-# -o OUTDIR specifies that output files should be written in OUTDIR
-#    rather than be overwritten
-#
-
-import sys
-import re
-import os
-import getopt
-
-import langdefs
-
-optlist, args = getopt.getopt(sys.argv[1:],'o:')
-lang = args[0]
-files = args [1:]
-
-outdir = '.'
-for x in optlist:
-    if x[0] == '-o':
-        outdir = x[1]
-
-double_punct_char_separator = langdefs.LANGDICT[lang].double_punct_char_sep
-my_gettext = langdefs.translation[lang]
-
-html_codes = ((' -- ', ' &ndash; '),
-              (' --- ', ' &mdash; '),
-              ("'", '&rsquo;'))
-html2texi = {'command':
-                 (re.compile (r'<samp><span class="command">(.*?)</span></samp>'),
-                  r'@command{\1}'),
-             'code':
-                 (re.compile (r'<code>(.*?)</code>'),
-                  r'@code{\1}')
-             }
-texi2html = {'command':
-                 (re.compile (r'@command{(.*?)}'),
-                  r'<samp><span class="command">\1</span></samp>'),
-             'code':
-                 (re.compile (r'@code{(.*?)}'),
-                  r'<code>\1</code>')
-             }
-whitespaces = re.compile (r'\s+')
-
-
-def _ (s):
-    if not s:
-        return ''
-    s = whitespaces.sub (' ', s)
-    for c in html_codes:
-        s = s.replace (c[1], c[0])
-    for u in html2texi.values():
-        s = u[0].sub (u[1], s)
-    s = my_gettext (s)
-    for u in texi2html.values():
-        s = u[0].sub (u[1], s)
-    for c in html_codes:
-        s = s.replace (c[0], c[1])
-    return s
-
-link_re =  re.compile (r'<link rel="(up|prev|next)" (.*?) title="([^"]*?)">')
-
-def link_gettext (m):
-    return '<link rel="' + m.group (1) + '" ' + m.group (2) \
-        + ' title="' + _ (m.group (3)) + '">'
-
-makeinfo_title_re = re.compile (r'<title>([^<]*?) - ([^<]*?)</title>')
-
-def makeinfo_title_gettext (m):
-    return '<title>' + _ (m.group (1)) + ' - ' + m.group (2) + '</title>'
-
-texi2html_title_re = re.compile (r'<title>(.+?): ([A-Z\d.]+ |)(.+?)</title>')
-
-def texi2html_title_gettext (m):
-    return '<title>' + _ (m.group (1)) + double_punct_char_separator + ': ' \
-        + m.group (2) + _ (m.group (3)) + '</title>'
-
-a_href_re = re.compile ('(?s)<a ([^>]*?href="[\\w.#-_]+"[^>]*>(?:<code>|))\
-(Appendix |)([A-Z0-9.]+ | (?:&lt;){1,2} |&nbsp;[^:<]+?:&nbsp;|&nbsp;|)\
-(.+?)(</code>| (?:&gt;){1,2} |&nbsp;|)</a>:?')
-
-def a_href_gettext (m):
-    s = ''
-    if m.group(0)[-1] == ':':
-        s = double_punct_char_separator + ':'
-    t = ''
-    if m.group (2):
-        t = _ (m.group (2))
-    return '<a ' + m.group (1) + t + m.group (3) + _ (m.group (4)) + \
-        m.group (5) + '</a>' + s
-
-h_re = re.compile (r'<h(\d)( class="\w+"|)>\s*(Appendix |)([A-Z\d.]+ |)?([^<]+)\s*</h\1>')
-
-def h_gettext (m):
-    if m.group (3):
-        s = _ (m.group (3))
-    else:
-        s= ''
-    return '<h' + m.group (1) + m.group (2) + '>' + s +\
-           m.group (4) + _ (m.group (5)) + '</h' + m.group (1) + '>'
-
-for filename in files:
-    f = open (filename, 'r')
-    page = f.read ()
-    f.close ()
-    page = link_re.sub (link_gettext, page)
-    page = makeinfo_title_re.sub (makeinfo_title_gettext, page)
-    page = texi2html_title_re.sub (texi2html_title_gettext, page)
-    page = a_href_re.sub (a_href_gettext, page)
-    page = h_re.sub (h_gettext, page)
-    for w in ('Next:', 'Previous:', 'Up:'):
-        page = page.replace (w, _ (w))
-    page = langdefs.LANGDICT[lang].html_filter (page)
-    f = open (os.path.join (outdir, filename), 'w')
-    f.write (page)
-    f.close ()
diff --git a/buildscripts/install-info-html.sh b/buildscripts/install-info-html.sh
deleted file mode 100644 (file)
index a116cd9..0000000
+++ /dev/null
@@ -1,157 +0,0 @@
-#!@BASH@
-
-name=install-info-html
-version=1.0
-
-all=
-index_dir=.
-
-#
-# debugging
-#
-debug_echo=:
-
-
-#
-# print usage
-#
-help ()
-{
-       cat << EOF
-$name $version
-Install HTML info document.
-
-Usage: $name [OPTIONS]... [DOCUMENT-DIR]...
-
-Options:
-  -a, --all            assume all subdirectories of index to be DOCUMENT-DIRs
-  -d, --dir=DIR        set index directory to DIR (default=.)
-  -D, --debug          print debugging info
-  -h, --help           show this help text
-  -v, --version        show version
-EOF
-}
-
-cleanup ()
-{
-       $debug_echo "cleaning ($?)..."
-}
-
-trap cleanup 0 9 15
-
-#
-# Find command line options and switches
-#
-
-# "x:" x takes argument
-#
-options="adhvW:"
-#
-# ugh, "\-" is a hack to support long options
-# must be in double quotes for bash-2.0
-
-while getopts "\-:$options" O
-do
-       $debug_echo "O: \`$O'"
-       $debug_echo "arg: \`$OPTARG'"
-       case $O in
-               a)
-                       all=yes
-                       ;;
-               D)
-                       [ "$debug_echo" = "echo" ] && set -x
-                       debug_echo=echo
-                       ;;
-               h)
-                       help;
-                       exit 0
-                       ;;
-               v)
-                       echo $name $version
-                       exit 0
-                       ;;
-               d)
-                       index_dir=$OPTARG
-                       ;;
-       # a long option!
-       -)
-               case "$OPTARG" in
-                       a*|-a*)
-                               all=yes
-                               ;;
-                       de*|-de*)
-                               [ "$debug_echo" = "echo" ] && set -x
-                               debug_echo=echo
-                               ;;
-                       h*|-h*)
-                               help;
-                               exit 0
-                               ;;
-                       di*|-di*)
-                               index_dir="`expr \"$OPTARG\" ':' '[^=]*=\(.*\)'`"
-                               ;;
-                       version|-version)
-                               echo $name $version
-                               exit 0
-                               ;;
-                       *|-*)
-                               echo "$0: invalid option -- \"$OPTARG\""
-                               help;
-                               exit -1
-                               ;;
-               esac
-       esac
-done
-shift `expr $OPTIND - 1`
-
-#
-# Input file name
-#
-if [ -z "$all" -a -z "$1" ]; then
-       help
-       echo "$name: No HTML documents given"
-       exit 2
-fi
-
-if [ -n "$all" -a -n "$1" ]; then
-       echo "$name: --all specified, ignoring DIRECTORY-DIRs"
-fi
-
-if [ -n "$all" ]; then
-       document_dirs=`/bin/ls -d1 $index_dir`
-else
-       document_dirs=$*
-fi
-
-index_file=$index_dir/index.html
-rm -f $index_file
-echo -n "$name: Writing index: $index_file..."
-
-# head
-cat >> $index_file <<EOF
-<html> 
-<title>Info documentation index</title>
-<body>
-<h1>Info documentation index</h1>
-<p>
-This is the directory file \`index.html' a.k.a. \`DIR', which contains the
-topmost node of the HTML Info hierarchy.
-</p>
-<ul>
-EOF
-
-#list
-for i in $document_dirs; do
-    cat <<EOF
-<li> <a href="$i/index.html">$i</a> (<a href="$i.html">$i as one big page</a>)</li>
-EOF
-done >> $index_file
-
-# foot
-cat >> $index_file <<EOF
-</ul>
-</body>
-</html>
-EOF
-echo
diff --git a/buildscripts/lilypond-words.py b/buildscripts/lilypond-words.py
deleted file mode 100755 (executable)
index e9851f6..0000000
+++ /dev/null
@@ -1,149 +0,0 @@
-#!@PYTHON@
-
-# Created 01 September 2003 by Heikki Junes.
-# Rewritten by John Mandereau
-
-# Generates lilypond-words.el for (X)Emacs and lilypond-words[.vim] for Vim.
-
-import re
-import sys
-import os
-import getopt
-
-keywords = []
-reserved_words = []
-note_names = []
-
-# keywords not otherwise found
-keywords += ['include', 'maininput', 'version']
-
-# the main keywords
-s = open ('lily/lily-lexer.cc', 'r').read ()
-keywords += [w for w in re.findall (r"\s*{\"(.+)\",\s*.*},\s*\n", s)]
-
-s = open ('scm/markup.scm', 'r').read ()
-keywords += [w for w in re.findall (r"(?m)^\s*\(cons\s*([a-z-]+)-markup", s)]
-
-# identifiers and keywords
-for name in ['ly/chord-modifiers-init.ly',
-             'ly/dynamic-scripts-init.ly',
-             'ly/engraver-init.ly',
-             'ly/grace-init.ly',
-             'ly/gregorian.ly',
-             'ly/music-functions-init.ly',
-             'ly/performer-init.ly',
-             'ly/property-init.ly',
-             'ly/scale-definitions-init.ly',
-             'ly/script-init.ly',
-             'ly/spanners-init.ly',
-             'ly/declarations-init.ly',
-             'ly/params-init.ly']:
-    s = open (name, 'r').read ()
-    keywords += [w for w in re.findall (r"(?m)^\s*\"?([a-zA-Z]+)\"?\s*=", s)]
-
-# note names
-for name in ['ly/catalan.ly',
-             'ly/deutsch.ly',
-             'ly/drumpitch-init.ly',
-             'ly/english.ly',
-             'ly/espanol.ly',
-             'ly/italiano.ly',
-             'ly/nederlands.ly',
-             'ly/norsk.ly',
-             'ly/portugues.ly',
-             'ly/suomi.ly',
-             'ly/svenska.ly',
-             'ly/vlaams.ly']:
-    s = open (name, 'r').read ()
-    note_names += [n for n in re.findall (r"(?m)^\s*\(([a-z]+)[^l]+ly:make-pitch", s)]
-
-# reserved words
-for name in ['ly/engraver-init.ly',
-             'ly/performer-init.ly']:
-    s = open (name, 'r').read ()
-    for pattern in [r"(?m)^\s*.consists\s+\"([a-zA-Z_]+)\"",
-                    r"[\\]name\s+[\"]?([a-zA-Z_]+)[\"]?",
-                    r"\s+([a-zA-Z_]+)\s*\\(?:set|override)"]:
-        reserved_words += [w for w in re.findall (pattern, s)]
-
-keywords = list (set (keywords))
-keywords.sort (reverse=True)
-
-reserved_words = list (set (reserved_words))
-reserved_words.sort (reverse=True)
-
-note_names = list (set (note_names))
-note_names.sort (reverse=True)
-
-
-# output
-outdir = ''
-out_words = False
-out_el = False
-out_vim = False
-
-options = getopt.getopt (sys.argv[1:],
-  '', ['words', 'el', 'vim', 'dir='])[0]
-
-for (o, a) in options:
-    if o == '--words':
-        out_words = True
-    elif o == '--el':
-        out_el = True
-    elif o == '--vim':
-        out_vim = True
-    elif o == '--dir':
-        outdir = a
-
-if out_words or out_el:
-    outstring = ''.join (['\\\\' + w + '\n' for w in keywords])
-    outstring += ''.join ([w + '\n' for w in reserved_words])
-    outstring += ''.join ([w + '\n' for w in note_names])
-
-if out_words:
-    f = open (os.path.join (outdir, 'lilypond-words'), 'w')
-    f.write (outstring)
-
-if out_el:
-    f = open (os.path.join (outdir, 'lilypond-words.el'), 'w')
-    f.write (outstring)
-
-    # the menu in lilypond-mode.el
-    # for easier typing of this list, replace '/' with '\' below
-    # when writing to file
-    elisp_menu = ['/( - _ /) -',
-                  '/[ - _ /] -',
-                  '< - _ > -',
-                  '<< - _ >> -',
-                  '///( - _ ///) -',
-                  '///[ - _ ///] -',
-                  '///< - _ ///! -',
-                  '///> - _ ///! -',
-                  '//center - / << _ >> -',
-                  '//column - / << _ >> -',
-                  '//context/ Staff/ = - % { _ } -',
-                  '//context/ Voice/ = - % { _ } -',
-                  '//markup - { _ } -',
-                  '//notes - { _ } -',
-                  '//relative - % { _ } -',
-                  '//score - { //n /? //simultaneous { //n _ //n } /! //n //paper {  } //n /? //midi {  } //n /! } //n -',
-                  '//simultaneous - { _ } -',
-                  '//sustainDown - _ //sustainUp -',
-                  '//times - % { _ } -',
-                  '//transpose - % { _ } -',
-                  '']
-    f.write ('\n'.join ([line.replace ('/', '\\') for line in elisp_menu]))
-
-if out_vim:
-    f = open (os.path.join (outdir, 'lilypond-words.vim'), 'w')
-    f.write ('syn match lilyKeyword \"[-_^]\\?\\\\\\(')
-    f.write (''.join ([w + '\\|' for w in keywords]))
-    f.write ('n\\)\\(\\A\\|\\n\\)\"me=e-1\n')
-
-    f.write ('syn match lilyReservedWord \"\\(\\A\\|\\n\\)\\(')
-    f.write (''.join ([w + '\\|' for w in reserved_words]))
-    f.write ('Score\\)\\(\\A\\|\\n\\)\"ms=s+1,me=e-1\n')
-
-    f.write ('syn match lilyNote \"\\<\\(\\(\\(')
-    f.write (''.join ([w + '\\|' for w in note_names]))
-    f.write ('a\\)\\([,\']\\)\\{,4}\\([?!]\\)\\?\\)\\|s\\|r\\)\\(\\(128\\|64\\|32\\|16\\|8\\|4\\|2\\|1\\|\\\\breve\\|\\\\longa\\|\\\\maxima\\)[.]\\{,8}\\)\\?\\(\\A\\|\\n\\)\"me=e-1\n')
diff --git a/buildscripts/lys-to-tely.py b/buildscripts/lys-to-tely.py
deleted file mode 100755 (executable)
index e74c714..0000000
+++ /dev/null
@@ -1,118 +0,0 @@
-#!@PYTHON@
-
-
-'''
-TODO:
-
- * Add @nodes, split at sections?
-
-'''
-
-
-import sys
-import os
-import getopt
-
-program_name = 'lys-to-tely'
-
-include_snippets = '@lysnippets'
-fragment_options = 'printfilename,texidoc'
-help_text = r"""Usage: %(program_name)s [OPTIONS]... LY-FILE...
-Construct tely doc from LY-FILEs.
-
-Options:
- -h, --help                     print this help
- -f, --fragment-options=OPTIONS use OPTIONS as lilypond-book fragment
-   options
- -o, --output=NAME              write tely doc to NAME
- -t, --title=TITLE              set tely doc title TITLE
-     --template=TEMPLATE        use TEMPLATE as Texinfo template file,
-   instead of standard template; TEMPLATE should contain a command
-   '%(include_snippets)s' to tell where to insert LY-FILEs.  When this
-   option is used, NAME and TITLE are ignored.
-"""
-
-def help (text):
-    sys.stdout.write ( text)
-    sys.exit (0)
-
-(options, files) = getopt.getopt (sys.argv[1:], 'f:hn:t:',
-                     ['fragment-options=', 'help', 'name=', 'title=', 'template='])
-
-name = "ly-doc"
-title = "Ly Doc"
-template = '''\input texinfo
-@setfilename %%(name)s.info
-@settitle %%(title)s
-
-@documentencoding utf-8
-@iftex
-@afourpaper
-@end iftex
-
-@finalout @c we do not want black boxes.
-
-@c fool ls-latex
-@ignore
-@author Han-Wen Nienhuys and Jan Nieuwenhuizen
-@title %%(title)s
-@end ignore
-
-@node Top, , , (dir)
-@top %%(title)s
-
-%s
-
-@bye
-''' % include_snippets
-
-for opt in options:
-    o = opt[0]
-    a = opt[1]
-    if o == '-h' or o == '--help':
-        # We can't use vars () inside a function, as that only contains all 
-        # local variables and none of the global variables! Thus we have to 
-        # generate the help text here and pass it to the function...
-        help (help_text % vars ())
-    elif o == '-n' or o == '--name':
-        name = a
-    elif o == '-t' or o == '--title':
-        title = a
-    elif o == '-f' or o == '--fragment-options':
-        fragment_options = a
-    elif o == '--template':
-        template = open (a, 'r').read ()
-    else:
-        raise Exception ('unknown option: ' + o)
-
-def name2line (n):
-    s = r"""
-@ifhtml
-@html
-<a name="%s"></a>
-@end html
-@end ifhtml
-
-@lilypondfile[%s]{%s}
-""" % (os.path.basename (n), fragment_options, n)
-    return s
-
-if files:
-    dir = os.path.dirname (name) or "."
-# don't strip .tely extension, input/lsr uses .itely
-    name = os.path.basename (name)
-    template = template % vars ()
-
-    files.sort ()
-    s = "\n".join (map (name2line, files))
-    s = template.replace (include_snippets, s, 1)
-    f = "%s/%s" % (dir, name)
-    sys.stderr.write ("%s: writing %s..." % (program_name, f))
-    h = open (f, "w")
-    h.write (s)
-    h.close ()
-    sys.stderr.write ('\n')
-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")
diff --git a/buildscripts/makelsr.py b/buildscripts/makelsr.py
deleted file mode 100755 (executable)
index 86323d2..0000000
+++ /dev/null
@@ -1,176 +0,0 @@
-#!/usr/bin/env python
-
-import sys
-import os
-import glob
-import re
-
-USAGE = '''  Usage: makelsr.py LSR_SNIPPETS_DIR
-This script must be run from top of the source tree;
-it updates snippets input/lsr with snippets in input/new or LSR_SNIPPETS_DIR.
-'''
-
-LY_HEADER_LSR = '''%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
-%% This file is in the public domain.
-'''
-
-LY_HEADER_NEW = '''%% Do not edit this file; it is auto-generated from input/new
-%% This file is in the public domain.
-'''
-
-DEST = os.path.join ('input', 'lsr')
-NEW_LYS = os.path.join ('input', 'new')
-TEXIDOCS = os.path.join ('input', 'texidocs')
-
-TAGS = []
-# NR 1
-TAGS.extend (['pitches', 'rhythms', 'expressive-marks',
-'repeats', 'simultaneous-notes', 'staff-notation',
-'editorial-annotations', 'text'])
-# NR 2
-TAGS.extend (['vocal-music', 'chords', 'keyboards',
-'percussion', 'fretted-strings', 'unfretted-strings',
-'ancient-notation', 'winds', 'world-music'
-])
-
-# other
-TAGS.extend (['contexts-and-engravers', 'tweaks-and-overrides',
-'paper-and-layout', 'breaks', 'spacing', 'midi', 'titles', 'template'])
-
-def exit_with_usage (n=0):
-       sys.stderr.write (USAGE)
-       sys.exit (n)
-
-try:
-       in_dir = sys.argv[1]
-except:
-       exit_with_usage (2)
-
-if not (os.path.isdir (DEST) and os.path.isdir (NEW_LYS)):
-       exit_with_usage (3)
-
-unsafe = []
-unconverted = []
-notags_files = []
-
-# mark the section that will be printed verbatim by lilypond-book
-end_header_re = re.compile ('(\\header {.+?doctitle = ".+?})\n', re.M | re.S)
-
-def mark_verbatim_section (ly_code):
-       return end_header_re.sub ('\\1 % begin verbatim\n\n', ly_code, 1)
-
-# '% LSR' comments are to be stripped
-lsr_comment_re = re.compile (r'\s*%+\s*LSR.*')
-
-begin_header_re = re.compile (r'\\header\s*{', re.M)
-
-# add tags to ly files from LSR
-def add_tags (ly_code, tags):
-       return begin_header_re.sub ('\\g<0>\n  lsrtags = "' + tags + '"\n', ly_code, 1)
-
-def copy_ly (srcdir, name, tags):
-       global unsafe
-       global unconverted
-       dest = os.path.join (DEST, name)
-       tags = ', '.join (tags)
-       s = open (os.path.join (srcdir, name)).read ()
-
-       texidoc_translations_path = os.path.join (TEXIDOCS,
-                                                 os.path.splitext (name)[0] + '.texidoc')
-       if os.path.exists (texidoc_translations_path):
-               texidoc_translations = open (texidoc_translations_path).read ()
-               # Since we want to insert the translations verbatim using a 
-               # regexp, \\ is understood as ONE escaped backslash. So we have
-               # to escape those backslashes once more...
-               texidoc_translations = texidoc_translations.replace ('\\', '\\\\')
-               s = begin_header_re.sub ('\\g<0>\n' + texidoc_translations, s, 1)
-
-       if in_dir in srcdir:
-               s = LY_HEADER_LSR + add_tags (s, tags)
-       else:
-               s = LY_HEADER_NEW + s
-
-       s = mark_verbatim_section (s)
-       s = lsr_comment_re.sub ('', s)
-       open (dest, 'w').write (s)
-
-       e = os.system ("convert-ly -e '%s'" % dest)
-       if e:
-               unconverted.append (dest)
-       if os.path.exists (dest + '~'):
-               os.remove (dest + '~')
-       # -V seems to make unsafe snippets fail nicer/sooner
-       e = os.system ("lilypond -V -dno-print-pages -dsafe -o /tmp/lsrtest '%s'" % dest)
-       if e:
-               unsafe.append (dest)
-
-def read_source_with_dirs (src):
-       s = {}
-       l = {}
-       for tag in TAGS:
-               srcdir = os.path.join (src, tag)
-               l[tag] = set (map (os.path.basename, glob.glob (os.path.join (srcdir, '*.ly'))))
-               for f in l[tag]:
-                       if f in s:
-                               s[f][1].append (tag)
-                       else:
-                               s[f] = (srcdir, [tag])
-       return s, l
-
-
-tags_re = re.compile ('lsrtags\\s*=\\s*"(.+?)"')
-
-def read_source (src):
-       s = {}
-       l = dict ([(tag, set()) for tag in TAGS])
-       for f in glob.glob (os.path.join (src, '*.ly')):
-               basename = os.path.basename (f)
-               m = tags_re.search (open (f, 'r').read ())
-               if m:
-                       file_tags = [tag.strip() for tag in m.group (1). split(',')]
-                       s[basename] = (src, file_tags)
-                       [l[tag].add (basename) for tag in file_tags if tag in TAGS]
-               else:
-                       notags_files.append (f)
-       return s, l
-
-
-def dump_file_list (file, list):
-       f = open (file, 'w')
-       f.write ('\n'.join (list) + '\n')
-
-## clean out existing lys and generated files
-map (os.remove, glob.glob (os.path.join (DEST, '*.ly')) +
-     glob.glob (os.path.join (DEST, '*.snippet-list')))
-
-# read LSR source where tags are defined by subdirs
-snippets, tag_lists = read_source_with_dirs (in_dir)
-# read input/new where tags are directly
-s, l = read_source (NEW_LYS)
-snippets.update (s)
-for t in TAGS:
-       tag_lists[t].update (l[t])
-
-for (name, (srcdir, tags)) in snippets.items ():
-       copy_ly (srcdir, name, tags)
-
-for (tag, file_set) in tag_lists.items ():
-       dump_file_list (os.path.join (DEST, tag + '.snippet-list'), file_set)
-
-if unconverted:
-       sys.stderr.write ('These files could not be converted successfully by convert-ly:\n')
-       sys.stderr.write ('\n'.join (unconverted) + '\n\n')
-
-if notags_files:
-       sys.stderr.write ('No tags could be found in these files:\n')
-       sys.stderr.write ('\n'.join (notags_files) + '\n\n')
-
-dump_file_list ('lsr-unsafe.txt', unsafe)
-sys.stderr.write ('''
-
-Unsafe files printed in lsr-unsafe.txt: CHECK MANUALLY!
-  git add input/lsr/*.ly
-  xargs git-diff HEAD < lsr-unsafe.txt
-
-''')
-
diff --git a/buildscripts/manuals_definitions.py b/buildscripts/manuals_definitions.py
deleted file mode 100644 (file)
index e8e6d50..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/usr/bin/python
-
-# This module is imported by check_texi_refs.py
-
-references_dict = {
-    'lilypond': 'ruser',
-    'lilypond-learning': 'rlearning',
-    'lilypond-program': 'rprogram',
-    'lilypond-snippets': 'rlsr',
-    'music-glossary': 'rglos',
-    'lilypond-internals': 'rinternals' }
diff --git a/buildscripts/mass-link.py b/buildscripts/mass-link.py
deleted file mode 100644 (file)
index 17412e5..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-#!@PYTHON@
-# mass-link.py
-
-# USAGE:  mass-link.py  [--prepend-suffix SUFFIX]   symbolic | hard   SOURCEDIR DESTDIR FILES
-#
-# 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.
-
-import sys
-import os
-import glob
-import getopt
-
-print "mass-link.py"
-
-optlist, args = getopt.getopt (sys.argv[1:], '', ['prepend-suffix='])
-link_type, source_dir, dest_dir = args[0:3]
-files = args[3:]
-
-source_dir = os.path.normpath (source_dir)
-dest_dir = os.path.normpath (dest_dir)
-
-prepended_suffix = ''
-for x in optlist:
-    if x[0] == '--prepend-suffix':
-        prepended_suffix = x[1]
-
-if prepended_suffix:
-    def insert_suffix (p):
-        l = p.split ('.')
-        if len (l) >= 2:
-            l[-2] += prepended_suffix
-            return '.'.join (l)
-        return p + prepended_suffix
-else:
-    insert_suffix = lambda p: p
-
-if link_type == 'symbolic':
-    link = os.symlink
-elif link_type == 'hard':
-    link = os.link
-else:
-    sys.stderr.write(sys.argv[0] + ': ' + link_type + ": wrong argument, expected 'symbolic' or 'hard'\n")
-    sys.exit (1)
-
-sourcefiles = []
-for pattern in files:
-    sourcefiles += (glob.glob (os.path.join (source_dir, pattern)))
-
-def relative_path (f):
-    if source_dir == '.':
-        return f
-    return f[len (source_dir) + 1:]
-
-destfiles = [os.path.join (dest_dir, insert_suffix (relative_path (f))) for f in sourcefiles]
-
-destdirs = set ([os.path.dirname (dest) for dest in destfiles])
-[os.makedirs (d) for d in destdirs if not os.path.exists (d)]
-
-def force_link (src,dest):
-    if os.path.exists (dest):
-        os.system ('rm -f ' + dest)
-    link (src, dest)
-
-map (force_link, sourcefiles, destfiles)
diff --git a/buildscripts/mf-to-table.py b/buildscripts/mf-to-table.py
deleted file mode 100644 (file)
index 3a07516..0000000
+++ /dev/null
@@ -1,244 +0,0 @@
-#!@PYTHON@
-
-# mf-to-table.py -- convert spacing info in MF logs . 
-#
-# source file of the GNU LilyPond music typesetter
-#
-# (c) 1997--2007 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-
-import os
-import sys
-import getopt
-import re
-import time
-
-def read_log_file (fn):
-    str = open (fn).read ()
-    str = re.sub ('\n', '', str)
-    str = re.sub ('[\t ]+', ' ', str)
-
-    deps = []
-    autolines = []
-    def include_func (match, d = deps):
-        d.append (match.group (1))
-        return ''
-
-    def auto_func (match, a = autolines):
-        a.append (match.group (1))
-        return ''
-
-    str = re.sub ('\\(([/a-z.A-Z_0-9-]+\\.mf)', include_func, str)
-    str = re.sub ('@{(.*?)@}', auto_func, str)
-
-    return (autolines, deps)
-
-
-class Char_metric:
-    def __init__ (self):
-        pass
-
-font_family = 'feta'
-
-def parse_logfile (fn):
-    autolines, deps = read_log_file (fn)
-    charmetrics = []
-    
-    global_info = {
-        'filename' : os.path.splitext (os.path.basename (fn))[0]
-        }
-    group = ''
-
-    for l in autolines:
-        tags = l.split ('@:')
-        if tags[0] == 'group':
-            group = tags[1]
-        elif tags[0] == 'puorg':
-            group = ''
-        elif tags[0] == 'char':
-            name = tags[9]
-
-            if group:
-                name = group + '.' + name
-            m = {
-                'description': tags[1],
-                'name': name,
-                'code': int (tags[2]),
-                'breapth': float (tags[3]),
-                'width': float (tags[4]),
-                'depth': float (tags[5]),
-                'height': float (tags[6]),
-                'wx': float (tags[7]),
-                'wy': float (tags[8]),
-            }
-            charmetrics.append (m)
-        elif tags[0] == 'font':
-            global font_family
-            font_family = (tags[3])
-            # To omit 'GNU' (foundry) from font name proper:
-            # name = tags[2:]
-            #urg
-            if 0: # testing
-                tags.append ('Regular')
-
-            encoding = re.sub (' ','-', tags[5])
-            tags = tags[:-1]
-            name = tags[1:]
-            global_info['design_size'] = float (tags[4])
-            global_info['FontName'] = '-'.join (name)
-            global_info['FullName'] = ' '.join (name)
-            global_info['FamilyName'] = '-'.join (name[1:-1])
-            if 1:
-                global_info['Weight'] = tags[4]
-            else: # testing
-                global_info['Weight'] = tags[-1]
-
-            global_info['FontBBox'] = '0 0 1000 1000'
-            global_info['Ascender'] = '0'
-            global_info['Descender'] = '0'
-            global_info['EncodingScheme'] = encoding
-
-        elif tags[0] == 'parameter':
-            global_info[tags[1]] = tags[2];
-            
-    return (global_info, charmetrics, deps)
-
-
-
-def character_lisp_table (global_info, charmetrics):
-
-    def conv_char_metric (charmetric):
-        f = 1.0
-        s = """(%s .
-((bbox . (%f %f %f %f))
-(subfont . "%s")
-(subfont-index . %d)
-(attachment . (%f . %f))))
-""" %(charmetric['name'],
-   -charmetric['breapth'] * f,
-   -charmetric['depth'] * f,
-   charmetric['width'] * f,
-   charmetric['height'] * f,
-   global_info['filename'],
-   charmetric['code'],
-   charmetric['wx'],
-   charmetric['wy'])
-
-        return s
-
-    s = ''
-    for c in charmetrics:
-        s += conv_char_metric (c)
-
-    return s
-
-
-def global_lisp_table (global_info):
-    str = ''
-
-    keys = ['staffsize', 'stafflinethickness', 'staff_space',
-        'linethickness', 'black_notehead_width', 'ledgerlinethickness',
-        'design_size', 
-        'blot_diameter'
-        ]
-    for k in keys:
-        if global_info.has_key (k):
-            str = str + "(%s . %s)\n" % (k,global_info[k])
-
-    return str
-
-    
-def ps_encoding (name, global_info, charmetrics):
-    encs = ['.notdef'] * 256
-    for m in charmetrics:
-        encs[m['code']] = m['name']
-
-
-    s =  ('/%s [\n' % name)
-    for m in range (0, 256):
-        s += ('  /%s %% %d\n' % (encs[m], m))
-    s +=  ('] def\n')
-    return s
-
-def get_deps (deps, targets):
-    s = ''
-    for t in targets:
-        t = re.sub ( '^\\./', '', t)
-        s += ('%s '% t)
-    s += (": ")
-    for d in deps:
-        s += ('%s ' % d)
-    s += ('\n')
-    return s
-
-def help ():
-    sys.stdout.write(r"""Usage: mf-to-table [OPTIONS] LOGFILEs
-
-Generate feta metrics table from preparated feta log.
-
-Options:
- -d, --dep=FILE         print dependency info to FILE
- -h, --help             print this help
- -l, --ly=FILE          name output table
- -o, --outdir=DIR       prefix for dependency info
- -p, --package=DIR      specify package
-
- """)
-    sys.exit (0)
-
-
-(options, files) = \
- getopt.getopt (sys.argv[1:],
-        'a:d:ho:p:t:',
-        ['enc=',  'outdir=', 'dep=', 'lisp=',
-         'global-lisp=',
-         'debug', 'help', 'package='])
-
-global_lisp_nm = ''
-char_lisp_nm = ''
-enc_nm = ''
-depfile_nm = ''
-lyfile_nm = ''
-outdir_prefix = '.'
-
-for opt in options:
-    o = opt[0]
-    a = opt[1]
-    if o == '--dep' or o == '-d':
-        depfile_nm = a
-    elif o == '--outdir' or o == '-o':
-        outdir_prefix = a
-    elif o == '--lisp': 
-        char_lisp_nm = a
-    elif o == '--global-lisp': 
-        global_lisp_nm = a
-    elif o == '--enc':
-        enc_nm = a
-    elif o== '--help' or o == '-h':
-        help()
-    elif o == '--debug':
-        debug_b = 1
-    else:
-        print o
-        raise getopt.error
-
-base = os.path.splitext (lyfile_nm)[0]
-
-for filenm in files:
-    (g, m, deps) = parse_logfile (filenm)
-
-    enc_name = 'FetaEncoding'
-    if re.search ('parmesan', filenm):
-        enc_name = 'ParmesanEncoding'
-    elif re.search ('feta-brace', filenm):
-        enc_name = 'FetaBraceEncoding'
-    elif re.search ('feta-alphabet', filenm):
-        enc_name = 'FetaAlphabetEncoding';
-
-    open (enc_nm, 'w').write (ps_encoding (enc_name, g, m))
-    open (char_lisp_nm, 'w').write (character_lisp_table (g, m))
-    open (global_lisp_nm, 'w').write (global_lisp_table (g))
-    if depfile_nm:
-        open (depfile_nm, 'wb').write (get_deps (deps,
-                                                 [base + '.log', base + '.dvi', base + '.pfa',
-                                                  depfile_nm,
-                                                  base + '.pfb']))
diff --git a/buildscripts/mf2pt1.pl b/buildscripts/mf2pt1.pl
deleted file mode 100644 (file)
index 804fc1f..0000000
+++ /dev/null
@@ -1,1090 +0,0 @@
-#! /usr/bin/perl
-
-##################################################
-# Convert stylized Metafont to PostScript Type 1 #
-# By Scott Pakin <scott+mf@pakin.org>            #
-##################################################
-
-########################################################################
-# mf2pt1                                                               #
-# Copyright (C) 2008 Scott Pakin                                       #
-#                                                                      #
-# This program may be distributed and/or modified under the conditions #
-# of the LaTeX Project Public License, either version 1.3c of this     #
-# license or (at your option) any later version.                       #
-#                                                                      #
-# The latest version of this license is in:                            #
-#                                                                      #
-#    http://www.latex-project.org/lppl.txt                             #
-#                                                                      #
-# and version 1.3c or later is part of all distributions of LaTeX      #
-# version 2006/05/20 or later.                                         #
-########################################################################
-
-our $VERSION = "2.4.4";   # mf2pt1 version number
-require 5.6.1;            # I haven't tested mf2pt1 with older Perl versions
-
-use File::Basename;
-use File::Spec;
-use Getopt::Long;
-use Pod::Usage;
-use Math::Trig;
-use warnings;
-use strict;
-
-# Define some common encoding vectors.
-my @standardencoding =
-    ((map {"_a$_"} (0..31)),
-     qw (space exclam quotedbl numbersign dollar percent ampersand
-         quoteright parenleft parenright asterisk plus comma hyphen
-         period slash zero one two three four five six seven eight
-         nine colon semicolon less equal greater question at A B C D E
-         F G H I J K L M N O P Q R S T U V W X Y Z bracketleft
-         backslash bracketright asciicircum underscore quoteleft a b c
-         d e f g h i j k l m n o p q r s t u v w x y z braceleft bar
-         braceright asciitilde),
-     (map {"_a$_"} (127..160)),
-     qw (exclamdown cent sterling fraction yen florin section currency
-         quotesingle quotedblleft guillemotleft guilsinglleft
-         guilsinglright fi fl _a176 endash dagger daggerdbl
-         periodcentered _a181 paragraph bullet quotesinglbase
-         quotedblbase quotedblright guillemotright ellipsis
-         perthousand _a190 questiondown _a192 grave acute circumflex
-         tilde macron breve dotaccent dieresis _a201 ring cedilla
-         _a204 hungarumlaut ogonek caron emdash),
-     (map {"_a$_"} (209..224)),
-     qw (AE _a226 ordfeminine _a228 _a229 _a230 _a231 Lslash Oslash OE
-         ordmasculine _a236 _a237 _a238 _a239 _a240 ae _a242 _a243
-         _a244 dotlessi _a246 _a247 lslash oslash oe germandbls _a252
-         _a253 _a254 _a255));
-my @isolatin1encoding =
-    ((map {"_a$_"} (0..31)),
-     qw (space exclam quotedbl numbersign dollar percent ampersand
-         quoteright parenleft parenright asterisk plus comma minus
-         period slash zero one two three four five six seven eight
-         nine colon semicolon less equal greater question at A B C D E
-         F G H I J K L M N O P Q R S T U V W X Y Z bracketleft
-         backslash bracketright asciicircum underscore quoteleft a b c
-         d e f g h i j k l m n o p q r s t u v w x y z braceleft bar
-         braceright asciitilde),
-     (map {"_a$_"} (128..143)),
-     qw (dotlessi grave acute circumflex tilde macron breve dotaccent
-         dieresis _a153 ring cedilla _a156 hungarumlaut ogonek
-         caron space exclamdown cent sterling currency yen brokenbar
-         section dieresis copyright ordfeminine guillemotleft
-         logicalnot hyphen registered macron degree plusminus
-         twosuperior threesuperior acute mu paragraph periodcentered
-         cedilla onesuperior ordmasculine guillemotright onequarter
-         onehalf threequarters questiondown Agrave Aacute Acircumflex
-         Atilde Adieresis Aring AE Ccedilla Egrave Eacute Ecircumflex
-         Edieresis Igrave Iacute Icircumflex Idieresis Eth Ntilde
-         Ograve Oacute Ocircumflex Otilde Odieresis multiply Oslash
-         Ugrave Uacute Ucircumflex Udieresis Yacute Thorn germandbls
-         agrave aacute acircumflex atilde adieresis aring ae ccedilla
-         egrave eacute ecircumflex edieresis igrave iacute icircumflex
-         idieresis eth ntilde ograve oacute ocircumflex otilde
-         odieresis divide oslash ugrave uacute ucircumflex udieresis
-         yacute thorn ydieresis));
-my @ot1encoding =
-    qw (Gamma Delta Theta Lambda Xi Pi Sigma Upsilon Phi
-        Psi Omega ff fi fl ffi ffl dotlessi dotlessj grave acute caron
-        breve macron ring cedilla germandbls ae oe oslash AE OE Oslash
-        suppress exclam quotedblright numbersign dollar percent
-        ampersand quoteright parenleft parenright asterisk plus comma
-        hyphen period slash zero one two three four five six seven
-        eight nine colon semicolon exclamdown equal questiondown
-        question at A B C D E F G H I J K L M N O P Q R S T U V W X Y
-        Z bracketleft quotedblleft bracketright circumflex dotaccent
-        quoteleft a b c d e f g h i j k l m n o p q r s t u v w x y z
-        endash emdash hungarumlaut tilde dieresis);
-my @t1encoding =
-    qw (grave acute circumflex tilde dieresis hungarumlaut ring caron
-        breve macron dotaccent cedilla ogonek quotesinglbase
-        guilsinglleft guilsinglright quotedblleft quotedblright
-        quotedblbase guillemotleft guillemotright endash emdash cwm
-        perthousand dotlessi dotlessj ff fi fl ffi ffl space exclam
-        quotedbl numbersign dollar percent ampersand quoteright
-        parenleft parenright asterisk plus comma hyphen period slash
-        zero one two three four five six seven eight nine colon
-        semicolon less equal greater question at A B C D E F G H I J K L
-        M N O P Q R S T U V W X Y Z bracketleft backslash bracketright
-        asciicircum underscore quoteleft a b c d e f g h i j k l m n o p
-        q r s t u v w x y z braceleft bar braceright asciitilde
-        sfthyphen Abreve Aogonek Cacute Ccaron Dcaron Ecaron Eogonek
-        Gbreve Lacute Lcaron Lslash Nacute Ncaron Eng Ohungarumlaut
-        Racute Rcaron Sacute Scaron Scedilla Tcaron Tcedilla
-        Uhungarumlaut Uring Ydieresis Zacute Zcaron Zdotaccent IJ
-        Idotaccent dcroat section abreve aogonek cacute ccaron dcaron
-        ecaron eogonek gbreve lacute lcaron lslash nacute ncaron eng
-        ohungarumlaut racute rcaron sacute scaron scedilla tcaron
-        tcedilla uhungarumlaut uring ydieresis zacute zcaron zdotaccent
-        ij exclamdown questiondown sterling Agrave Aacute Acircumflex
-        Atilde Adieresis Aring AE Ccedilla Egrave Eacute Ecircumflex
-        Edieresis Igrave Iacute Icircumflex Idieresis Eth Ntilde Ograve
-        Oacute Ocircumflex Otilde Odieresis OE Oslash Ugrave Uacute
-        Ucircumflex Udieresis Yacute Thorn SS agrave aacute acircumflex
-        atilde adieresis aring ae ccedilla egrave eacute ecircumflex
-        edieresis igrave iacute icircumflex idieresis eth ntilde ograve
-        oacute ocircumflex otilde odieresis oe oslash ugrave uacute
-        ucircumflex udieresis yacute thorn germandbls);
-
-# Define font parameters that the user can override.
-my $fontversion;
-my $creationdate;
-my $comment;
-my $familyname;
-my $weight;
-my $fullname;
-my $fixedpitch;
-my $italicangle;
-my $underlinepos;
-my $underlinethick;
-my $fontname;
-my $uniqueID;
-my $designsize;
-my ($mffile, $pt1file, $pfbfile, $ffscript);
-my $encoding;
-my $rounding;
-my $bpppix;
-
-# Define all of our other global variables.
-my $progname = basename $0, ".pl";
-my $mag;
-my @fontbbox;
-my @charbbox;
-my @charwd;
-my @glyphname;
-my @charfiles;
-my $filebase;
-my $filedir;
-my $filenoext;
-my $versionmsg = "mf2pt1 version $VERSION
-
-Copyright (C) 2008 Scott Pakin
-
-This program may be distributed and/or modified under the conditions
-of the LaTeX Project Public License, either version 1.3c of this
-license or (at your option) any later version.
-
-The latest version of this license is in:
-
-   http://www.latex-project.org/lppl.txt
-
-and version 1.3c or later is part of all distributions of LaTeX
-version 2006/05/20 or later.
-";
-
-
-######################################################################
-
-# The routines to compute the fractional approximation of a real number
-# are heavily based on code posted by Ben Tilly
-# <http://www.perlmonks.org/?node_id=26179> on Nov 16th, 2000, to the
-# PerlMonks list.  See <http://www.perlmonks.org/index.pl?node_id=41961>.
-
-
-# Takes numerator/denominator pairs.
-# Returns a PS fraction string representation (with a trailing space).
-sub frac_string (@)
-{
-    my $res = "";
-
-    while (@_) {
-        my $n = shift;
-        my $d = shift;
-        $res .= $n . " ";
-        $res .= $d . " div " if $d > 1;
-    }
-
-    return $res;
-}
-
-
-# Takes a number.
-# Returns a numerator and denominator with the smallest denominator
-# so that the difference of the resulting fraction to the number is
-# smaller or equal to $rounding.
-sub frac_approx ($)
-{
-    my $num = shift;
-    my $f = ret_frac_iter ($num);
-
-    while (1) {
-        my ($n, $m) = $f->();
-        my $approx = $n / $m;
-        my $delta = abs ($num - $approx);
-        return ($n, $m) if ($delta <= $rounding);
-    }
-}
-
-
-# Takes a number, returns the best integer approximation and (in list
-# context) the error.
-sub best_int ($)
-{
-    my $x = shift;
-    my $approx = sprintf '%.0f', $x;
-    if (wantarray) {
-        return ($approx, $x - $approx);
-    }
-    else {
-        return $approx;
-    }
-}
-
-
-# Takes a numerator and denominator, in scalar context returns
-# the best fraction describing them, in list the numerator and
-# denominator.
-sub frac_standard ($$)
-{
-    my $n = best_int(shift);
-    my $m = best_int(shift);
-    my $k = gcd($n, $m);
-    $n /= $k;
-    $m /= $k;
-    if ($m < 0) {
-        $n *= -1;
-        $m *= -1;
-    }
-    if (wantarray) {
-        return ($n, $m);
-    }
-    else {
-        return "$n/$m";
-    }
-}
-
-
-# Euclidean algorithm for calculating a GCD.
-# Takes two integers, returns the greatest common divisor.
-sub gcd ($$)
-{
-    my ($n, $m) = @_;
-    while ($m) {
-        my $k = $n % $m;
-        ($n, $m) = ($m, $k);
-    }
-    return $n;
-}
-
-
-# Takes a list of terms in a continued fraction, and converts it
-# into a fraction.
-sub ints_to_frac (@)
-{
-    my ($n, $m) = (0, 1);     # Start with 0
-    while (@_) {
-        my $k = pop;
-        if ($n) {
-            # Want frac for $k + 1/($n/$m)
-            ($n, $m) = frac_standard($k*$n + $m, $n);
-        }
-        else {
-            # Want $k
-            ($n, $m) = frac_standard($k, 1);
-        }
-    }
-    return frac_standard($n, $m);
-}
-
-
-# Takes a number, returns an anon sub which iterates through a set of
-# fractional approximations that converges very quickly to the number.
-sub ret_frac_iter ($)
-{
-    my $x = shift;
-    my $term_iter = ret_next_term_iter($x);
-    my @ints;
-    return sub {
-        push @ints, $term_iter->();
-        return ints_to_frac(@ints);
-    }
-}
-
-
-# Terms of a continued fraction converging on that number.
-sub ret_next_term_iter ($)
-{
-    my $x = shift;
-    return sub {
-        (my $n, $x) = best_int($x);
-        if (0 != $x) {
-            $x = 1/$x;
-        }
-        return $n;
-    }
-}
-
-######################################################################
-
-# Round a number to the nearest integer.
-sub round ($)
-{
-    return int($_[0] + 0.5*($_[0] <=> 0));
-}
-
-
-# Round a number to a given precision.
-sub prec ($)
-{
-  return round ($_[0] / $rounding) * $rounding;
-}
-
-
-# Set a variable's value to the first defined value in the given list.
-# If the variable was not previously defined and no value in the list
-# is defined, do nothing.
-sub assign_default (\$@)
-{
-    my $varptr = shift;        # Pointer to variable to define
-    return if defined $$varptr && $$varptr ne "UNSPECIFIED";
-    foreach my $val (@_) {
-        next if !defined $val;
-        $$varptr = $val;
-        return;
-    }
-}
-
-
-# Print and execute a shell command.  An environment variable with the
-# same name as the command overrides the command name.  Return 1 on
-# success, 0 on failure.  Optionally abort if the command fails, based
-# on the first argument to execute_command.
-sub execute_command ($@)
-{
-    my $abort_on_failure = shift;
-    my @command = @_;
-    $command[0] = $ENV{uc $command[0]} || $command[0];
-    my $prettyargs = join (" ", map {/[\\ ]/ ? "'$_'" : $_} @command);
-    print "Invoking \"$prettyargs\"...\n";
-    my $result = system @command;
-    die "${progname}: \"$prettyargs\" failed ($!)\n" if $result && $abort_on_failure;
-    return !$result;
-}
-
-
-# Output the font header.
-sub output_header ()
-{
-    # Show the initial boilerplate.
-    print OUTFILE <<"ENDHEADER";
-%!FontType1-1.0: $fontname $fontversion
-%%CreationDate: $creationdate
-% Font converted to Type 1 by mf2pt1, written by Scott Pakin.
-11 dict begin
-/FontInfo 11 dict dup begin
-/version ($fontversion) readonly def
-/Notice ($comment) readonly def
-/FullName ($fullname) readonly def
-/FamilyName ($familyname) readonly def
-/Weight ($weight) readonly def
-/ItalicAngle $italicangle def
-/isFixedPitch $fixedpitch def
-/UnderlinePosition $underlinepos def
-/UnderlineThickness $underlinethick def
-end readonly def
-/FontName /$fontname def
-ENDHEADER
-
-    # If we're not using an encoding that PostScript knows about, then
-    # create an encoding vector.
-    if ($encoding==\@standardencoding) {
-        print OUTFILE "/Encoding StandardEncoding def\n";
-    }
-    else {
-        print OUTFILE "/Encoding 256 array\n";
-        print OUTFILE "0 1 255 {1 index exch /.notdef put} for\n";
-        foreach my $charnum (0 .. $#{$encoding}) {
-            if ($encoding->[$charnum] && $encoding->[$charnum]!~/^_a\d+$/) {
-                print OUTFILE "dup $charnum /$encoding->[$charnum] put\n";
-            }
-        }
-        print OUTFILE "readonly def\n";
-    }
-
-    # Show the final boilerplate.
-    print OUTFILE <<"ENDHEADER";
-/PaintType 0 def
-/FontType 1 def
-/FontMatrix [0.001 0 0 0.001 0 0] readonly def
-/UniqueID $uniqueID def
-/FontBBox{@fontbbox}readonly def
-currentdict end
-currentfile eexec
-dup /Private 5 dict dup begin
-/RD{string currentfile exch readstring pop}executeonly def
-/ND{noaccess def}executeonly def
-/NP{noaccess put}executeonly def
-ENDHEADER
-}
-
-
-# Use MetaPost to generate one PostScript file per character.  We
-# calculate the font bounding box from these characters and store them
-# in @fontbbox.  If the input parameter is 1, set other font
-# parameters, too.
-sub get_bboxes ($)
-{
-    execute_command 1, ("mpost", "-mem=mf2pt1", "-progname=mpost",
-                        "\\mode:=localfont; mag:=$mag; bpppix $bpppix; input $mffile");
-    opendir (CURDIR, ".") || die "${progname}: $! ($filedir)\n";
-    @charfiles = sort
-                   { ($a=~ /\.(\d+)$/)[0] <=> ($b=~ /\.(\d+)$/)[0] }
-                   grep /^$filebase.*\.\d+$/, readdir(CURDIR);
-    close CURDIR;
-    @fontbbox = (1000000, 1000000, -1000000, -1000000);
-    foreach my $psfile (@charfiles) {
-        # Read the character number from the output file's extension.
-        $psfile =~ /\.(\d+)$/;
-        my $charnum = $1;
-
-        # Process in turn each line of the current PostScript file.
-        my $havebbox = 0;
-        open (PSFILE, "<$psfile") || die "${progname}: $! ($psfile)\n";
-        while (<PSFILE>) {
-            my @tokens = split " ";
-            if ($tokens[0] eq "%%BoundingBox:") {
-                # Store the MetaPost-produced bounding box, just in case
-                # the given font doesn't use beginchar.
-                @tokens = ("%", "MF2PT1:", "glyph_dimensions", @tokens[1..4]);
-                $havebbox--;
-            }
-            next if $#tokens<1 || $tokens[1] ne "MF2PT1:";
-
-            # Process a "special" inserted into the generated PostScript.
-          MF2PT1_CMD:
-            {
-                # glyph_dimensions llx lly urx ury -- specified glyph dimensions
-                $tokens[2] eq "glyph_dimensions" && do {
-                    my @bbox = @tokens[3..6];
-                    $fontbbox[0]=$bbox[0] if $bbox[0]<$fontbbox[0];
-                    $fontbbox[1]=$bbox[1] if $bbox[1]<$fontbbox[1];
-                    $fontbbox[2]=$bbox[2] if $bbox[2]>$fontbbox[2];
-                    $fontbbox[3]=$bbox[3] if $bbox[3]>$fontbbox[3];
-                    $charbbox[$charnum] = \@bbox;
-                    $havebbox++;
-                    last MF2PT1_CMD;
-                };
-
-                # If all we want is the bounding box, exit the loop now.
-                last MF2PT1_CMD if !$_[0];
-
-                # glyph_name name -- glyph name
-                $tokens[2] eq "glyph_name" && do {
-                    $glyphname[$charnum] = $tokens[3];
-                    last MF2PT1_CMD;
-                };
-
-                # charwd wd -- character width as in TFM
-                $tokens[2] eq "charwd" && do {
-                    $charwd[$charnum] = $tokens[3];
-                    last MF2PT1_CMD;
-                };
-
-                # font_identifier name -- full font name
-                $tokens[2] eq "font_identifier" && do {
-                    $fullname = $tokens[3];
-                    last MF2PT1_CMD;
-                };
-
-                # font_size number -- font design size (pt, not bp)
-                $tokens[2] eq "font_size" && $tokens[3] && do {
-                    $designsize = $tokens[3] * 72 / 72.27;
-                    last MF2PT1_CMD;
-                };
-
-                # font_slant number -- italic amount
-                $tokens[2] eq "font_slant" && do {
-                    $italicangle = 0 + rad2deg (atan(-$tokens[3]));
-                    last MF2PT1_CMD;
-                };
-
-                # font_coding_scheme string -- font encoding
-                $tokens[2] eq "font_coding_scheme" && do {
-                    $encoding = $tokens[3];
-                    last MF2PT1_CMD;
-                };
-
-                # font_version string -- font version number (xxx.yyy)
-                $tokens[2] eq "font_version" && do {
-                    $fontversion = $tokens[3];
-                    last MF2PT1_CMD;
-                };
-
-                # font_comment string -- font comment notice
-                $tokens[2] eq "font_comment" && do {
-                    $comment = join (" ", @tokens[3..$#tokens]);
-                    last MF2PT1_CMD;
-                };
-
-                # font_family string -- font family name
-                $tokens[2] eq "font_family" && do {
-                    $familyname = $tokens[3];
-                    last MF2PT1_CMD;
-                };
-
-                # font_weight string -- font weight (e.g., "Book" or "Heavy")
-                $tokens[2] eq "font_weight" && do {
-                    $weight = $tokens[3];
-                    last MF2PT1_CMD;
-                };
-
-                # font_fixed_pitch number -- fixed width font (0=false, 1=true)
-                $tokens[2] eq "font_fixed_pitch" && do {
-                    $fixedpitch = $tokens[3];
-                    last MF2PT1_CMD;
-                };
-
-                # font_underline_position number -- vertical underline position
-                $tokens[2] eq "font_underline_position" && do {
-                    # We store $underlinepos in points and later
-                    # scale it by 1000/$designsize.
-                    $underlinepos = $tokens[3];
-                    last MF2PT1_CMD;
-                };
-
-                # font_underline_thickness number -- thickness of underline
-                $tokens[2] eq "font_underline_thickness" && do {
-                    # We store $underlinethick in points and later
-                    # scale it by 1000/$designsize.
-                    $underlinethick = $tokens[3];
-                    last MF2PT1_CMD;
-                };
-
-                # font_name string -- font name
-                $tokens[2] eq "font_name" && do {
-                    $fontname = $tokens[3];
-                    last MF2PT1_CMD;
-                };
-
-                # font_unique_id number (as string) -- globally unique font ID
-                $tokens[2] eq "font_unique_id" && do {
-                    $uniqueID = 0+$tokens[3];
-                    last MF2PT1_CMD;
-                };
-            }
-        }
-        close PSFILE;
-        if (!$havebbox) {
-            warn "${progname}: No beginchar in character $charnum; glyph dimensions are probably incorrect\n";
-        }
-    }
-}
-
-
-# Convert ordinary, MetaPost-produced PostScript files into Type 1
-# font programs.
-sub output_font_programs ()
-{
-    # Iterate over all the characters.  We convert each one, line by
-    # line and token by token.
-    print "Converting PostScript graphics to Type 1 font programs...\n";
-    foreach my $psfile (@charfiles) {
-        # Initialize the font program.
-        $psfile =~ /\.(\d+)$/;
-        my $charnum = $1;
-        my $gname = $glyphname[$charnum] || $encoding->[$charnum];
-        my @fontprog;
-        push @fontprog, ("/$gname {",
-                         frac_string (frac_approx ($charbbox[$charnum]->[0]),
-                                      frac_approx ($charwd[$charnum] * $mag))
-                         . "hsbw");
-        my ($cpx, $cpy) =
-            ($charbbox[$charnum]->[0], 0);  # Current point (PostScript)
-
-        # Iterate over every line in the current file.
-        open (PSFILE, "<$psfile") || die "${progname}: $! ($psfile)\n";
-        while (my $oneline=<PSFILE>) {
-            next if $oneline=~/^\%/;
-            next if $oneline=~/set/;   # Fortunately, "set" never occurs on "good" lines.
-            my @arglist;   # Arguments to current PostScript function
-
-            # Iterate over every token in the current line.
-          TOKENLOOP:
-            foreach my $token (split " ", $oneline) {
-                # Number: Round and push on the argument list.
-                $token =~ /^[-.\d]+$/ && do {
-                    push @arglist, prec ($&);
-                    next TOKENLOOP;
-                };
-
-                # curveto: Convert to vhcurveto, hvcurveto, or rrcurveto.
-                $token eq "curveto" && do {
-                    my ($dx1, $dy1) = ($arglist[0] - $cpx,
-                                       $arglist[1] - $cpy);
-                    my ($dx1n, $dx1d) = frac_approx ($dx1);
-                    my ($dy1n, $dy1d) = frac_approx ($dy1);
-                    $cpx += $dx1n / $dx1d;
-                    $cpy += $dy1n / $dy1d;
-
-                    my ($dx2, $dy2) = ($arglist[2] - $cpx,
-                                       $arglist[3] - $cpy);
-                    my ($dx2n, $dx2d) = frac_approx ($dx2);
-                    my ($dy2n, $dy2d) = frac_approx ($dy2);
-                    $cpx += $dx2n / $dx2d;
-                    $cpy += $dy2n / $dy2d;
-
-                    my ($dx3, $dy3) = ($arglist[4] - $cpx,
-                                       $arglist[5] - $cpy);
-                    my ($dx3n, $dx3d) = frac_approx ($dx3);
-                    my ($dy3n, $dy3d) = frac_approx ($dy3);
-                    $cpx += $dx3n / $dx3d;
-                    $cpy += $dy3n / $dy3d;
-
-                    if (!$dx1n && !$dy3n) {
-                        push @fontprog, frac_string ($dy1n, $dy1d,
-                                                     $dx2n, $dx2d,
-                                                     $dy2n, $dy2d,
-                                                     $dx3n, $dx3d)
-                                        . "vhcurveto";
-                    }
-                    elsif (!$dy1n && !$dx3n) {
-                        push @fontprog, frac_string ($dx1n, $dx1d,
-                                                     $dx2n, $dx2d,
-                                                     $dy2n, $dy2d,
-                                                     $dy3n, $dy3d)
-                                        . "hvcurveto";
-                    }
-                    else {
-                        push @fontprog, frac_string ($dx1n, $dx1d,
-                                                     $dy1n, $dy1d,
-                                                     $dx2n, $dx2d,
-                                                     $dy2n, $dy2d,
-                                                     $dx3n, $dx3d,
-                                                     $dy3n, $dy3d)
-                                        . "rrcurveto";
-                    }
-                    next TOKENLOOP;
-                };
-
-                # lineto: Convert to vlineto, hlineto, or rlineto.
-                $token eq "lineto" && do {
-                    my ($dx, $dy) = ($arglist[0] - $cpx,
-                                     $arglist[1] - $cpy);
-                    my ($dxn, $dxd) = frac_approx ($dx);
-                    my ($dyn, $dyd) = frac_approx ($dy);
-                    $cpx += $dxn / $dxd;
-                    $cpy += $dyn / $dyd;
-
-                    if (!$dxn) {
-                        push @fontprog, frac_string ($dyn, $dyd)
-                                        . "vlineto" if $dyn;
-                    }
-                    elsif (!$dyn) {
-                        push @fontprog, frac_string ($dxn, $dxd)
-                                        . "hlineto";
-                    }
-                    else {
-                        push @fontprog, frac_string ($dxn, $dxd, $dyn, $dyd)
-                                        . "rlineto";
-                    }
-                    next TOKENLOOP;
-                };
-
-                # moveto: Convert to vmoveto, hmoveto, or rmoveto.
-                $token eq "moveto" && do {
-                    my ($dx, $dy) = ($arglist[0] - $cpx,
-                                     $arglist[1] - $cpy);
-                    my ($dxn, $dxd) = frac_approx ($dx);
-                    my ($dyn, $dyd) = frac_approx ($dy);
-                    $cpx += $dxn / $dxd;
-                    $cpy += $dyn / $dyd;
-
-                    if (!$dxn) {
-                        push @fontprog, frac_string ($dyn, $dyd)
-                                        . "vmoveto";
-                    }
-                    elsif (!$dyn) {
-                        push @fontprog, frac_string ($dxn, $dxd)
-                                        . "hmoveto";
-                    }
-                    else {
-                        push @fontprog, frac_string ($dxn, $dxd, $dyn, $dyd)
-                                        . "rmoveto";
-                    }
-                    next TOKENLOOP;
-                };
-
-                # closepath: Output as is.
-                $token eq "closepath" && do {
-                    push @fontprog, $token;
-                    next TOKENLOOP;
-                };
-            }
-        }
-        close PSFILE;
-        push @fontprog, ("endchar",
-                         "} ND");
-        print OUTFILE join ("\n\t", @fontprog), "\n";
-    }
-}
-
-
-# Output the final set of code for the Type 1 font.
-sub output_trailer ()
-{
-    print OUTFILE <<"ENDTRAILER";
-/.notdef {
-        0 @{[$fontbbox[2]-$fontbbox[0]]} hsbw
-        endchar
-        } ND
-end
-end
-readonly put
-noaccess put
-dup/FontName get exch definefont pop
-mark currentfile closefile
-cleartomark
-ENDTRAILER
-}
-
-######################################################################
-
-# Parse the command line.  Asterisks in the following represents
-# commands also defined by Plain Metafont.
-my %opthash = ();
-GetOptions (\%opthash,
-            "fontversion=s",       # font_version
-            "comment=s",           # font_comment
-            "family=s",            # font_family
-            "weight=s",            # font_weight
-            "fullname=s",          # font_identifier (*)
-            "fixedpitch!",         # font_fixed_pitch
-            "italicangle=f",       # font_slant (*)
-            "underpos=f",          # font_underline_position
-            "underthick=f",        # font_underline_thickness
-            "name=s",              # font_name
-            "uniqueid=i",          # font_unique_id
-            "designsize=f",        # font_size (*)
-            "encoding=s",          # font_coding_scheme (*)
-            "rounding=f",
-            "bpppix=f",
-            "ffscript=s",
-            "h|help",
-            "V|version") || pod2usage(2);
-if (defined $opthash{"h"}) {
-    pod2usage(-verbose => 1,
-              -output  => \*STDOUT,    # Bug workaround for Pod::Usage
-              -exitval => "NOEXIT");
-    print "Please e-mail bug reports to scott+mf\@pakin.org.\n";
-    exit 1;
-}
-do {print $versionmsg; exit 1} if defined $opthash{"V"};
-pod2usage(2) if $#ARGV != 0;
-
-# Extract the filename from the command line.
-$mffile = $ARGV[0];
-my @fileparts = fileparse $mffile, ".mf";
-$filebase = $fileparts[0];
-$filedir = $fileparts[1];
-$filenoext = File::Spec->catfile ($filedir, $filebase);
-$pt1file = $filebase . ".pt1";
-$pfbfile = $filebase . ".pfb";
-
-assign_default $bpppix, $opthash{bpppix}, 0.02;
-
-# Make our first pass through the input, to set values for various options.
-$mag = 100;           # Get a more precise bounding box.
-get_bboxes(1);        # This might set $designsize.
-
-# Sanity-check the specified precision.
-assign_default $rounding, $opthash{rounding}, 1;
-if ($rounding<=0.0 || $rounding>1.0) {
-    die sprintf "%s: Invalid rounding amount \"%g\"; value must be a positive number no greater than 1.0\n", $progname, $rounding;
-}
-
-# Ensure that every user-definable parameter is assigned a value.
-assign_default $fontversion, $opthash{fontversion}, "001.000";
-assign_default $creationdate, scalar localtime;
-assign_default $comment, $opthash{comment}, "Font converted to Type 1 by mf2pt1, written by Scott Pakin.";
-assign_default $weight, $opthash{weight}, "Medium";
-assign_default $fixedpitch, $opthash{fixedpitch}, 0;
-assign_default $uniqueID, $opthash{uniqueid}, int(rand(1000000)) + 4000000;
-assign_default $designsize, $opthash{designsize};
-die "${progname}: a design size must be specified in $mffile or on the command line\n" if !defined $designsize;
-die "${progname}: the design size must be a positive number\n" if $designsize<=0.0;
-assign_default $underlinepos, $opthash{underpos}, -1;
-$underlinepos = round(1000*$underlinepos/$designsize);
-assign_default $underlinethick, $opthash{underthick}, 0.5;
-$underlinethick = round(1000*$underlinethick/$designsize);
-assign_default $fullname, $opthash{fullname}, $filebase;
-assign_default $familyname, $opthash{family}, $fullname;
-assign_default $italicangle, $opthash{italicangle}, 0;
-assign_default $fontname, $opthash{name}, "$familyname-$weight";
-$fontname =~ s/\s//g;
-assign_default $encoding, $opthash{encoding}, "standard";
-my $encoding_name = $encoding;
-ENCODING:
-{
-    if (-e $encoding) {
-        # Filenames take precedence over built-in encodings.
-        my @enc_array;
-        open (ENCFILE, "<$encoding") || die "${progname}: $! ($encoding)\n";
-        while (my $oneline = <ENCFILE>) {
-            $oneline =~ s/\%.*$//;
-            foreach my $word (split " ", $oneline) {
-                push @enc_array, substr($word, 1) if substr($word, 0, 1) eq "/";
-            }
-        }
-        close ENCFILE;
-        $encoding_name = substr (shift @enc_array, 1);
-        $encoding = \@enc_array;
-        last ENCODING;
-    }
-    $encoding=\@standardencoding,  last ENCODING  if $encoding eq "standard";
-    $encoding=\@isolatin1encoding, last ENCODING  if $encoding eq "isolatin1";
-    $encoding=\@ot1encoding,       last ENCODING  if $encoding eq "ot1";
-    $encoding=\@t1encoding,        last ENCODING  if $encoding eq "t1";
-    $encoding=\@glyphname,         last ENCODING  if $encoding eq "asis";
-    warn "${progname}: Unknown encoding \"$encoding\"; using standard Adobe encoding\n";
-    $encoding=\@standardencoding;     # Default to standard encoding
-}
-assign_default $fixedpitch, $opthash{fixedpitch}, 0;
-$fixedpitch = $fixedpitch ? "true" : "false";
-assign_default $ffscript, $opthash{ffscript};
-
-# Output the final values of all of our parameters.
-print "\n";
-print <<"PARAMVALUES";
-mf2pt1 is using the following font parameters:
-    font_version:              $fontversion
-    font_comment:              $comment
-    font_family:               $familyname
-    font_weight:               $weight
-    font_identifier:           $fullname
-    font_fixed_pitch:          $fixedpitch
-    font_slant:                $italicangle
-    font_underline_position:   $underlinepos
-    font_underline_thickness:  $underlinethick
-    font_name:                 $fontname
-    font_unique_id:            $uniqueID
-    font_size:                 $designsize (bp)
-    font_coding_scheme:        $encoding_name
-PARAMVALUES
-    ;
-print "\n";
-
-# Scale by a factor of 1000/design size.
-$mag = 1000.0 / $designsize;
-get_bboxes(0);
-print "\n";
-
-# Output the font in disassembled format.
-open (OUTFILE, ">$pt1file") || die "${progname}: $! ($pt1file)\n";
-output_header();
-printf OUTFILE "2 index /CharStrings %d dict dup begin\n",
-               1+scalar(grep {defined($_)} @charbbox);
-output_font_programs();
-output_trailer();
-close OUTFILE;
-unlink @charfiles;
-print "\n";
-
-# Convert from the disassembled font format to Type 1 binary format.
-if (!execute_command 0, ("t1asm", $pt1file, $pfbfile)) {
-    die "${progname}: You'll need either to install t1utils and rerun $progname or find another way to convert $pt1file to $pfbfile\n";
-    exit 1;
-}
-print "\n";
-unlink $pt1file;
-
-# Use FontForge to autohint the result.
-my $user_script = 0;   # 1=script file was provided by the user; 0=created here
-if (defined $ffscript) {
-    # The user provided his own script.
-    $user_script = 1;
-}
-else {
-    # Create a FontForge script file.
-    $ffscript = $filebase . ".pe";
-    open (FFSCRIPT, ">$ffscript") || die "${progname}: $! ($ffscript)\n";
-    print FFSCRIPT <<'AUTOHINT';
-Open($1);
-SelectAll();
-RemoveOverlap();
-AddExtrema();
-Simplify(0, 2);
-CorrectDirection();
-Simplify(0, 2);
-RoundToInt();
-AutoHint();
-Generate($1);
-Quit(0);
-AUTOHINT
-    ;
-    close FFSCRIPT;
-}
-if (!execute_command 0, ("fontforge", "-script", $ffscript, $pfbfile)) {
-    warn "${progname}: You'll need to install FontForge if you want $pfbfile autohinted (not required, but strongly recommended)\n";
-}
-unlink $ffscript if !$user_script;
-print "\n";
-
-# Finish up.
-print "*** Successfully generated $pfbfile! ***\n";
-exit 0;
-
-######################################################################
-
-__END__
-
-=head1 NAME
-
-mf2pt1 - produce a PostScript Type 1 font program from a Metafont source
-
-
-=head1 SYNOPSIS
-
-mf2pt1
-[B<--help>]
-[B<--version>]
-[B<--comment>=I<string>]
-[B<--designsize>=I<number>]
-[B<--encoding>=I<encoding>]
-[B<--family>=I<name>]
-[B<-->[B<no>]B<fixedpitch>]
-[B<--fontversion>=I<MMM.mmm>]
-[B<--fullname>=I<name>]
-[B<--italicangle>=I<number>]
-[B<--name>=I<name>]
-[B<--underpos>=I<number>]
-[B<--underthick>=I<number>]
-[B<--uniqueid>=I<number>]
-[B<--weight>=I<weight>]
-[B<--rounding>=I<number>]
-[B<--bpppix>=I<number>]
-[B<--ffscript>=I<file.pe>]
-I<infile>.mf
-
-
-=head1 WARNING
-
-The B<mf2pt1> Info file is the main source of documentation for
-B<mf2pt1>.  This man page is merely a brief summary.
-
-
-=head1 DESCRIPTION
-
-B<mf2pt1> facilitates producing PostScript Type 1 fonts from a
-Metafont source file.  It is I<not>, as the name may imply, an
-automatic converter of arbitrary Metafont fonts to Type 1 format.
-B<mf2pt1> imposes a number of restrictions on the Metafont input.  If
-these restrictions are met, B<mf2pt1> will produce valid Type 1
-output.  (Actually, it produces "disassembled" Type 1; the B<t1asm>
-program from the B<t1utils> suite will convert this to a true Type 1
-font.)
-
-=head2 Usage
-
-    mf2pt1 myfont.mf
-
-=head1 OPTIONS
-
-Font parameters are best specified within a Metafont program.  If
-necessary, though, command-line options can override any of these
-parameters.  The B<mf2pt1> Info page, the primary source of B<mf2pt1>
-documentation, describes the following in greater detail.
-
-=over 4
-
-=item B<--help>
-
-Provide help on B<mf2pt1>'s command-line options.
-
-=item B<--version>
-
-Output the B<mf2pt1> version number, copyright, and license.
-
-=item B<--comment>=I<string>
-
-Include a font comment, usually a copyright notice.
-
-=item B<--designsize>=I<number>
-
-Specify the font design size in points.
-
-=item B<--encoding>=I<encoding>
-
-Designate the font encoding, either the name of a---typically
-F<.enc>---file which contains a PostScript font-encoding vector or one
-of C<standard> (the default), C<ot1>, C<t1>, or C<isolatin1>.
-
-=item B<--family>=I<name>
-
-Specify the font family.
-
-=item B<--fixedpitch>, B<--nofixedpitch>
-
-Assert that the font uses either monospaced (B<--fixedpitch>) or
-proportional (B<--nofixedpitch>) character widths.
-
-=item B<--fontversion>=I<MMM.mmm>
-
-Specify the font's major and minor version number.
-
-=item B<--fullname>=I<name>
-
-Designate the full font name (family plus modifiers).
-
-=item B<--italicangle>=I<number>
-
-Designate the italic angle in degrees counterclockwise from vertical.
-
-=item B<--name>=I<name>
-
-Provide the font name.
-
-=item B<--underpos>=I<number>
-
-Specify the vertical position of the underline in thousandths of the
-font height.
-
-=item B<--underthick>=I<number>
-
-Specify the thickness of the underline in thousandths of the font
-height.
-
-=item B<--uniqueid>=I<number>
-
-Specify a globally unique font identifier.
-
-=item B<--weight>=I<weight>
-
-Provide a description of the font weight (e.g., ``Heavy'').
-
-=item B<--rounding>=I<number>
-
-Specify the fraction of a font unit (0.0 < I<number> <= 1.0) to which
-to round coordinate values [default: 1.0].
-
-=item B<--bpppix>=I<number>
-
-Redefine the number of big points per pixel from 0.02 to I<number>.
-
-=item B<--ffscript>=I<file.pe>
-
-Name a script to pass to FontForge.
-
-=back
-
-
-=head1 FILES
-
-F<mf2pt1.mem> (which is generated from F<mf2pt1.mp> and F<mfplain.mp>)
-
-
-=head1 NOTES
-
-As stated in L</"WARNING">, the complete source of documentation for
-B<mf2pt1> is the Info page, not this man page.
-
-
-=head1 SEE ALSO
-
-mf(1), mpost(1), t1asm(1), fontforge(1)
-
-
-=head1 AUTHOR
-
-Scott Pakin, I<scott+mf@pakin.org>
diff --git a/buildscripts/mirrortree.py b/buildscripts/mirrortree.py
deleted file mode 100644 (file)
index 0aa0bc8..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-#!@PYTHON@
-
-import re
-import os
-
-def new_link_path (link, dir, r):
-    l = link.split ('/')
-    d = dir.split ('/')
-    i = 0
-    while i < len(d) and i < len(l) and l[i] == '..':
-        if r.match (d[i]):
-            del l[i]
-        else:
-            i += 1
-    return '/'.join ([x for x in l if not r.match (x)])
-
-def walk_tree (tree_roots = [],
-               process_dirs = '.*',
-               exclude_dirs = '',
-               find_files = '.*',
-               exclude_files = ''):
-    """Walk directory trees and.returns (dirs, symlinks, files, extra_files) tuple.
-
-    Arguments:
-     tree_roots=DIRLIST      use DIRLIST as tree roots list
-     process_dir=PATTERN      only process files in directories named PATTERN
-     exclude_dir=PATTERN      don't recurse into directories named PATTERN
-     find_files=PATTERN    filters files which are hardlinked
-     exclude_files=PATTERN    exclude files named PATTERN
-    """
-    find_files_re = re.compile (find_files)
-    exclude_dirs_re = re.compile (exclude_dirs)
-    exclude_files_re = re.compile (exclude_files)
-    process_dirs_re = re.compile (process_dirs)
-
-    dirs_paths = []
-    symlinks_paths = []
-    files_paths = []
-
-    for d in tree_roots:
-        for current_dir, dirs, files in os.walk(d):
-            i = 0
-            while i < len(dirs):
-                if exclude_dirs_re.search (os.path.join (current_dir, dirs[i])):
-                    del dirs[i]
-                else:
-                    p = os.path.join (current_dir, dirs[i])
-                    if os.path.islink (p):
-                        symlinks_paths.append (p)
-                    i += 1
-            if not process_dirs_re.search (current_dir):
-                continue
-            dirs_paths.append (current_dir)
-            for f in files:
-                if exclude_files_re.match (f):
-                    continue
-                p = os.path.join (current_dir, f)
-                if os.path.islink (p):
-                    symlinks_paths.append (p)
-                elif find_files_re.match (f):
-                    files_paths.append (p)
-    return (dirs_paths, symlinks_paths, files_paths)
diff --git a/buildscripts/musicxml_generate_intervals.py b/buildscripts/musicxml_generate_intervals.py
deleted file mode 100755 (executable)
index 3c00715..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-#!/usr/bin/env python
-
-notes = "CDEFGAB"
-alterations = [-1, 0, 1]
-
-def print_note (octave, note, alteration):
-    print "      <note>\n        <pitch>\n          <step>%s</step>" % notes[note]
-    if alteration <> 0:
-        print "          <alter>%s</alter>" % alteration
-    print "          <octave>%s</octave>\n        </pitch>\n        <duration>1</duration>\n        <voice>1</voice>\n        <type>quarter</type>\n      </note>" % octave
-
-
-print """<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
-                                "http://www.musicxml.org/dtds/partwise.dtd">
-<score-partwise>
-  <movement-title>Various piches and interval sizes</movement-title>
-  <part-list>
-    <score-part id="P1">
-      <part-name>MusicXML Part</part-name>
-    </score-part>
-  </part-list>
-  <!--=========================================================-->
-  <part id="P1">
-    <measure number="1">
-      <attributes>
-        <divisions>1</divisions>
-        <key>
-          <fifths>0</fifths>
-          <mode>major</mode>
-        </key>
-        <time symbol="common">
-          <beats>2</beats>
-          <beat-type>4</beat-type>
-        </time>
-        <clef>
-          <sign>G</sign>
-          <line>2</line>
-        </clef>
-      </attributes>
-"""
-
-start_octave = 5
-
-for octave in (start_octave, start_octave+1):
-    for note in (0,1,2,3,4,5,6):
-        for alteration in alterations:
-            if octave == start_octave and note == 0 and alteration == -1:
-                continue
-            print_note (octave, note, alteration)
-#             if octave == start_octave and note == 0 and alteration == 0:
-#                 continue
-            print_note (start_octave-(octave-start_octave)-(1-(7-note)/7), (7-note)%7, -alteration)
-
-print """    </measure>
-  </part>
-</score-partwise>
-"""
diff --git a/buildscripts/musicxml_generate_keys.py b/buildscripts/musicxml_generate_keys.py
deleted file mode 100755 (executable)
index d82b168..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-#!/usr/bin/env python
-
-notes = "CDEFGAB"
-alterations = [-1, 0, 1]
-
-def print_measure (nr, fifth, mode, atts = "", final = ""):
-    print """    <measure number="%s">
-      <attributes>
-        <key>
-          <fifths>%s</fifths>
-          <mode>%s</mode>
-        </key>
-%s      </attributes>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>half</type>
-      </note>
-%s    </measure>""" % (nr, fifth, mode, atts, final)
-
-first_atts = """        <divisions>1</divisions>
-        <time symbol="common">
-          <beats>2</beats>
-          <beat-type>4</beat-type>
-        </time>
-        <clef>
-          <sign>G</sign>
-          <line>2</line>
-        </clef>
-"""
-
-final_barline = """      <barline location="right">
-        <bar-style>light-heavy</bar-style>
-      </barline>
-"""
-
-print """<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
-                                "http://www.musicxml.org/dtds/partwise.dtd">
-<score-partwise>
-  <movement-title>Different Key signatures</movement-title>
-  <part-list>
-    <score-part id="P1">
-      <part-name>MusicXML Part</part-name>
-    </score-part>
-  </part-list>
-  <!--=========================================================-->
-  <part id="P1">
-"""
-
-max_range = 11
-measure = 0
-for fifth in range(-max_range, max_range+1):
-    measure += 1
-    if fifth == -max_range:
-        print_measure (measure, fifth, "major", first_atts)
-    else:
-        print_measure (measure, fifth, "major")
-    measure += 1
-    if fifth == max_range:
-        print_measure (measure, fifth, "minor", "", final_barline)
-    else:
-        print_measure (measure, fifth, "minor")
-    
-
-print """  </part>
-</score-partwise>
-"""
diff --git a/buildscripts/musicxml_generate_timesignatures.py b/buildscripts/musicxml_generate_timesignatures.py
deleted file mode 100755 (executable)
index 20e34cb..0000000
+++ /dev/null
@@ -1,96 +0,0 @@
-#!/usr/bin/env python
-
-notes = "CDEFGAB"
-alterations = [-1, 0, 1]
-
-def print_measure (nr, beats, type, params = "", attr = "", barline = ""):
-    print """    <measure number="%s">
-      <attributes>
-%s        <time %s>
-          <beats>%s</beats>
-          <beat-type>%s</beat-type>
-        </time>
-      </attributes>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-%s    </measure>""" % (nr, attr, params, beats, type, barline)
-
-first_atts = """        <divisions>1</divisions>
-        <key>
-          <fifths>0</fifths>
-          <mode>major</mode>
-        </key>
-        <time symbol="common">
-          <beats>2</beats>
-          <beat-type>4</beat-type>
-        </time>
-        <clef>
-          <sign>G</sign>
-          <line>2</line>
-        </clef>
-"""
-
-final_barline = """      <barline location="right">
-        <bar-style>light-heavy</bar-style>
-      </barline>
-"""
-
-print """<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
-                                "http://www.musicxml.org/dtds/partwise.dtd">
-<score-partwise>
-  <movement-title>Different time signatures</movement-title>
-  <part-list>
-    <score-part id="P1">
-      <part-name>MusicXML Part</part-name>
-    </score-part>
-  </part-list>
-  <!--=========================================================-->
-  <part id="P1">
-"""
-
-measure = 1
-
-print_measure (measure, 2, 2, " symbol=\"common\"", first_atts)
-measure += 1
-
-print_measure (measure, 4, 4, " symbol=\"common\"")
-measure += 1
-
-print_measure (measure, 2, 2)
-measure += 1
-
-print_measure (measure, 3, 2)
-measure += 1
-
-print_measure (measure, 2, 4)
-measure += 1
-
-print_measure (measure, 3, 4)
-measure += 1
-
-print_measure (measure, 4, 4)
-measure += 1
-
-print_measure (measure, 5, 4)
-measure += 1
-
-print_measure (measure, 3, 8)
-measure += 1
-
-print_measure (measure, 6, 8)
-measure += 1
-
-print_measure (measure, 12, 8, "", "", final_barline)
-measure += 1
-
-print """  </part>
-</score-partwise>
-"""
diff --git a/buildscripts/mutopia-index.py b/buildscripts/mutopia-index.py
deleted file mode 100644 (file)
index 50e4ebb..0000000
+++ /dev/null
@@ -1,197 +0,0 @@
-#!/usr/bin/env python
-# mutopia-index.py
-
-import fnmatch
-import getopt
-import os
-import re
-import stat
-import sys
-
-def find (pat, dir):
-    f = os.popen ('find %s -name "%s"'% (dir, pat))
-    lst = []
-    for a in f.readlines():
-        a = a[:-1]
-        lst.append (a)
-    return lst
-
-
-junk_prefix = 'out-www/'
-
-headertext= r"""
-
-<h1>LilyPond samples</h1>
-
-
-<p>You are looking at a page with some LilyPond samples.  These files
-are also included in the distribution. The output is completely
-generated from the source file, without any further touch up.
-
-<p>
-
-The pictures are 90 dpi anti-aliased snapshots of the printed output.
-For a good impression of the quality print out the PDF file.
-"""
-
-headertext_nopics= r"""
-<p>No examples were found in this directory. 
-"""
-
-#
-# FIXME breaks on multiple strings.
-#
-def read_lilypond_header (fn):
-    s = open (fn).read ()
-    s = re.sub ('%.*$', '', s)
-    s = re.sub ('\n', ' ', s)                
-
-    dict = {}
-    m = re.search (r"""\\header\s*{([^}]*)}""", s)
-
-    if m:
-            s = m.group (1)
-    else:
-            return dict
-
-    while s:
-        m = re.search (r'''\s*(\S+)\s*=\s*"([^"]+)"''', s)
-        if m == None:
-            s = ''
-        else:
-            s = s[m.end (0):]
-            left  = m.group         (1)
-            right = m.group (2)
-
-            left = re.sub ('"', '', left)
-            right = re.sub ('"', '', right)
-            dict[left] = right
-
-    return dict
-
-def help ():
-    sys.stdout.write (r'''Usage: mutopia-index [OPTIONS] INFILE OUTFILE
-Generate index for mutopia.
-
-Options:
- -h, --help                 print this help
- -o, --output=FILE          write output to file
- -s, --subdirs=DIR             add subdir
-   --suffix=SUF             specify suffix
-   
-''')
-    sys.exit (0)
-
-# ugh.
-def gen_list (inputs, file_name):
-    sys.stderr.write ("generating HTML list %s" % file_name)
-    sys.stderr.write ('\n')
-    if file_name:
-        list = open (file_name, 'w')
-    else:
-        list = sys.stdout
-    list.write ('''<html><head><title>Rendered Examples</title>
-<style type="text/css">
-hr { border:0; height:1; color: #000000; background-color: #000000; }\n
-</style>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-</head>''')
-
-    list.write ('<body bgcolor=white>\n')
-    
-    if inputs:
-        list.write (headertext)
-    else:
-        list.write (headertext_nopics)
-
-    for ex in inputs:
-        print ex
-        
-        (base, ext) = os.path.splitext (ex)
-        (base, ext2) = os.path.splitext (base)                
-        ext = ext2 + ext
-        
-        header = read_lilypond_header (ex)
-        head = header.get ('title', os.path.basename (base))
-        composer = header.get ('composer', '')
-        desc = header.get ('description', '')
-        list.write ('<hr>\n')
-        list.write ('<h1>%s</h1>\n' % head);
-        if composer:
-            list.write ('<h2>%s</h2>\n' % composer)
-        if desc:
-            list.write ('%s<p>' % desc)
-        list.write ('<ul>\n')
-
-        def list_item (file_name, desc, type, lst = list):
-            if os.path.isfile (file_name):
-                lst.write ('<li><a href="%s">%s</a>'
-                     % (re.sub (junk_prefix, '', file_name), desc))
-
-                # FIXME: include warning if it uses \include
-                # files.
-                
-                size = os.stat (file_name)[stat.ST_SIZE]
-                kB = (size + 512) / 1024
-                if kB:
-                    lst.write (' (%s %d kB)' % (type, kB))
-                else:
-                    lst.write (' (%s %d characters)'
-                         % (type, size))
-                pictures = ['jpeg', 'png', 'xpm']
-                lst.write ('\n')
-            else:
-                print "cannot find" , `file_name`
-
-        list_item (base + ext, 'The input', 'ASCII')
-
-        pages_found = 0
-        for page in range (1, 100):
-            f = base + '-page%d.png' % page
-            
-            if not os.path.isfile (f):
-                break
-            pages_found += 1
-            list_item (f, 'See a picture of page %d' % page, 'png')
-
-        if pages_found == 0 and os.path.exists (base + '.png'):
-            list_item (base + ".png",
-                 'See a picture', 'png')
-
-            
-        list_item (base + '.pdf', 'Print', 'PDF')
-        list_item (base + '.midi', 'Listen', 'MIDI')
-        list.write ('</ul>\n');
-
-    list.write ('</body></html>\n');
-    list.close ()
-
-(options, files) = getopt.getopt (sys.argv[1:],
- 'ho:', ['help', 'output='])
-outfile = 'examples.html'
-
-subdirs = []
-for (o, a) in options:
-    if o == '--help' or o == '-h':
-        help ()
-    elif o == '--output' or o == '-o':
-        outfile = a
-
-dirs  = []
-for f in files:
-    dirs += find ('out-www', f)
-
-if not dirs:
-    dirs = ['.']
-
-allfiles = []
-
-for d in dirs:
-    allfiles += find ('*.ly', d)
-
-allfiles = [f for f in allfiles
-            if not f.endswith ('snippet-map.ly')
-            and not re.search ('lily-[0-9a-f]+', f)
-            and 'musicxml' not in f]
-
-gen_list (allfiles, outfile)
diff --git a/buildscripts/output-distance.py b/buildscripts/output-distance.py
deleted file mode 100644 (file)
index 8586d24..0000000
+++ /dev/null
@@ -1,1262 +0,0 @@
-#!@TARGET_PYTHON@
-import sys
-import optparse
-import os
-import math
-
-## so we can call directly as buildscripts/output-distance.py
-me_path = os.path.abspath (os.path.split (sys.argv[0])[0])
-sys.path.insert (0, me_path + '/../python/')
-sys.path.insert (0, me_path + '/../python/out/')
-
-
-X_AXIS = 0
-Y_AXIS = 1
-INFTY = 1e6
-
-OUTPUT_EXPRESSION_PENALTY = 1
-ORPHAN_GROB_PENALTY = 1
-options = None
-
-################################################################
-# system interface.
-temp_dir = None
-class TempDirectory:
-    def __init__ (self):
-        import tempfile
-        self.dir = tempfile.mkdtemp ()
-        print 'dir is', self.dir
-    def __del__ (self):
-        print 'rm -rf %s' % self.dir 
-        os.system ('rm -rf %s' % self.dir)
-    def __call__ (self):
-        return self.dir
-
-
-def get_temp_dir  ():
-    global temp_dir
-    if not temp_dir:
-        temp_dir = TempDirectory ()
-    return temp_dir ()
-
-def read_pipe (c):
-    print 'pipe' , c
-    return os.popen (c).read ()
-
-def system (c):
-    print 'system' , c
-    s = os.system (c)
-    if s :
-        raise Exception ("failed")
-    return
-
-def shorten_string (s):
-    threshold = 15 
-    if len (s) > 2*threshold:
-        s = s[:threshold] + '..' + s[-threshold:]
-    return s
-
-def max_distance (x1, x2):
-    dist = 0.0
-
-    for (p,q) in zip (x1, x2):
-        dist = max (abs (p-q), dist)
-        
-    return dist
-
-
-def compare_png_images (old, new, dest_dir):
-    def png_dims (f):
-        m = re.search ('([0-9]+) x ([0-9]+)', read_pipe ('file %s' % f))
-        
-        return tuple (map (int, m.groups ()))
-
-    dest = os.path.join (dest_dir, new.replace ('.png', '.compare.jpeg'))
-    try:
-        dims1 = png_dims (old)
-        dims2 = png_dims (new)
-    except AttributeError:
-        ## hmmm. what to do?
-        system ('touch %(dest)s' % locals ())
-        return
-    
-    dims = (min (dims1[0], dims2[0]),
-            min (dims1[1], dims2[1]))
-
-    dir = get_temp_dir ()
-    system ('convert -depth 8 -crop %dx%d+0+0 %s %s/crop1.png' % (dims + (old, dir)))
-    system ('convert -depth 8 -crop %dx%d+0+0 %s %s/crop2.png' % (dims + (new, dir)))
-
-    system ('compare -depth 8 %(dir)s/crop1.png %(dir)s/crop2.png %(dir)s/diff.png' % locals ())
-
-    system ("convert  -depth 8 %(dir)s/diff.png -blur 0x3 -negate -channel alpha,blue -type TrueColorMatte -fx 'intensity'    %(dir)s/matte.png" % locals ())
-
-    system ("composite -compose atop -quality 65 %(dir)s/matte.png %(new)s %(dest)s" % locals ())
-
-
-################################################################
-# interval/bbox arithmetic.
-
-empty_interval = (INFTY, -INFTY)
-empty_bbox = (empty_interval, empty_interval)
-
-def interval_is_empty (i):
-    return i[0] > i[1]
-
-def interval_length (i):
-    return max (i[1]-i[0], 0) 
-    
-def interval_union (i1, i2):
-    return (min (i1[0], i2[0]),
-            max (i1[1], i2[1]))
-
-def interval_intersect (i1, i2):
-    return (max (i1[0], i2[0]),
-            min (i1[1], i2[1]))
-
-def bbox_is_empty (b):
-    return (interval_is_empty (b[0])
-            or interval_is_empty (b[1]))
-
-def bbox_union (b1, b2):
-    return (interval_union (b1[X_AXIS], b2[X_AXIS]),
-            interval_union (b2[Y_AXIS], b2[Y_AXIS]))
-            
-def bbox_intersection (b1, b2):
-    return (interval_intersect (b1[X_AXIS], b2[X_AXIS]),
-            interval_intersect (b2[Y_AXIS], b2[Y_AXIS]))
-
-def bbox_area (b):
-    return interval_length (b[X_AXIS]) * interval_length (b[Y_AXIS])
-
-def bbox_diameter (b):
-    return max (interval_length (b[X_AXIS]),
-                interval_length (b[Y_AXIS]))
-                
-
-def difference_area (a, b):
-    return bbox_area (a) - bbox_area (bbox_intersection (a,b))
-
-class GrobSignature:
-    def __init__ (self, exp_list):
-        (self.name, self.origin, bbox_x,
-         bbox_y, self.output_expression) = tuple (exp_list)
-        
-        self.bbox = (bbox_x, bbox_y)
-        self.centroid = (bbox_x[0] + bbox_x[1], bbox_y[0] + bbox_y[1])
-
-    def __repr__ (self):
-        return '%s: (%.2f,%.2f), (%.2f,%.2f)\n' % (self.name,
-                                                   self.bbox[0][0],
-                                                   self.bbox[0][1],
-                                                   self.bbox[1][0],
-                                                   self.bbox[1][1])
-                                                 
-    def axis_centroid (self, axis):
-        return apply (sum, self.bbox[axis])  / 2 
-    
-    def centroid_distance (self, other, scale):
-        return max_distance (self.centroid, other.centroid) / scale 
-        
-    def bbox_distance (self, other):
-        divisor = bbox_area (self.bbox) + bbox_area (other.bbox)
-
-        if divisor:
-            return (difference_area (self.bbox, other.bbox) +
-                    difference_area (other.bbox, self.bbox)) / divisor
-        else:
-            return 0.0
-        
-    def expression_distance (self, other):
-        if self.output_expression == other.output_expression:
-            return 0
-        else:
-            return 1
-
-################################################################
-# single System.
-
-class SystemSignature:
-    def __init__ (self, grob_sigs):
-        d = {}
-        for g in grob_sigs:
-            val = d.setdefault (g.name, [])
-            val += [g]
-
-        self.grob_dict = d
-        self.set_all_bbox (grob_sigs)
-
-    def set_all_bbox (self, grobs):
-        self.bbox = empty_bbox
-        for g in grobs:
-            self.bbox = bbox_union (g.bbox, self.bbox)
-
-    def closest (self, grob_name, centroid):
-        min_d = INFTY
-        min_g = None
-        try:
-            grobs = self.grob_dict[grob_name]
-
-            for g in grobs:
-                d = max_distance (g.centroid, centroid)
-                if d < min_d:
-                    min_d = d
-                    min_g = g
-
-
-            return min_g
-
-        except KeyError:
-            return None
-    def grobs (self):
-        return reduce (lambda x,y: x+y, self.grob_dict.values(), [])
-
-################################################################
-## comparison of systems.
-
-class SystemLink:
-    def __init__ (self, system1, system2):
-        self.system1 = system1
-        self.system2 = system2
-        
-        self.link_list_dict = {}
-        self.back_link_dict = {}
-
-
-        ## pairs
-        self.orphans = []
-
-        ## pair -> distance
-        self.geo_distances = {}
-
-        ## pairs
-        self.expression_changed = []
-
-        self._geometric_distance = None
-        self._expression_change_count = None
-        self._orphan_count = None
-        
-        for g in system1.grobs ():
-
-            ## skip empty bboxes.
-            if bbox_is_empty (g.bbox):
-                continue
-            
-            closest = system2.closest (g.name, g.centroid)
-            
-            self.link_list_dict.setdefault (closest, [])
-            self.link_list_dict[closest].append (g)
-            self.back_link_dict[g] = closest
-
-
-    def calc_geometric_distance (self):
-        total = 0.0
-        for (g1,g2) in self.back_link_dict.items ():
-            if g2:
-                d = g1.bbox_distance (g2)
-                if d:
-                    self.geo_distances[(g1,g2)] = d
-
-                total += d
-
-        self._geometric_distance = total
-    
-    def calc_orphan_count (self):
-        count = 0
-        for (g1, g2) in self.back_link_dict.items ():
-            if g2 == None:
-                self.orphans.append ((g1, None))
-                
-                count += 1
-
-        self._orphan_count = count
-    
-    def calc_output_exp_distance (self):
-        d = 0
-        for (g1,g2) in self.back_link_dict.items ():
-            if g2:
-                d += g1.expression_distance (g2)
-
-        self._expression_change_count = d
-
-    def output_expression_details_string (self):
-        return ', '.join ([g1.name for g1 in self.expression_changed])
-    
-    def geo_details_string (self):
-        results = [(d, g1,g2) for ((g1, g2), d) in self.geo_distances.items()]
-        results.sort ()
-        results.reverse ()
-        
-        return ', '.join (['%s: %f' % (g1.name, d) for (d, g1, g2) in results])
-
-    def orphan_details_string (self):
-        return ', '.join (['%s-None' % g1.name for (g1,g2) in self.orphans if g2==None])
-
-    def geometric_distance (self):
-        if self._geometric_distance == None:
-            self.calc_geometric_distance ()
-        return self._geometric_distance
-    
-    def orphan_count (self):
-        if self._orphan_count == None:
-            self.calc_orphan_count ()
-            
-        return self._orphan_count
-    
-    def output_expression_change_count (self):
-        if self._expression_change_count == None:
-            self.calc_output_exp_distance ()
-        return self._expression_change_count
-        
-    def distance (self):
-        return (self.output_expression_change_count (),
-                self.orphan_count (),
-                self.geometric_distance ())
-    
-def read_signature_file (name):
-    print 'reading', name
-    
-    entries = open (name).read ().split ('\n')
-    def string_to_tup (s):
-        return tuple (map (float, s.split (' '))) 
-
-    def string_to_entry (s):
-        fields = s.split('@')
-        fields[2] = string_to_tup (fields[2])
-        fields[3] = string_to_tup (fields[3])
-
-        return tuple (fields)
-    
-    entries = [string_to_entry (e) for e in entries
-               if e and not e.startswith ('#')]
-
-    grob_sigs = [GrobSignature (e) for e in entries]
-    sig = SystemSignature (grob_sigs)
-    return sig
-
-
-################################################################
-# different systems of a .ly file.
-
-hash_to_original_name = {}
-
-class FileLink:
-    def __init__ (self, f1, f2):
-        self._distance = None
-        self.file_names = (f1, f2)
-        
-    def text_record_string (self):
-        return '%-30f %-20s\n' % (self.distance (),
-                                  self.name ()
-                                  + os.path.splitext (self.file_names[1])[1]
-                                  )
-    
-    def calc_distance (self):
-        return 0.0
-
-    def distance (self):
-        if self._distance == None:
-           self._distance = self.calc_distance ()
-
-        return self._distance
-    
-    def source_file (self):
-        for ext in ('.ly', '.ly.txt'):
-            base = os.path.splitext (self.file_names[1])[0]
-            f = base + ext
-            if os.path.exists (f):
-                return f
-            
-        return ''
-        
-    def name (self):
-        base = os.path.basename (self.file_names[1])
-        base = os.path.splitext (base)[0]
-        base = hash_to_original_name.get (base, base)
-        base = os.path.splitext (base)[0]
-        return base
-    
-    def extension (self):
-        return os.path.splitext (self.file_names[1])[1]
-
-    def link_files_for_html (self, dest_dir):
-        for f in self.file_names:
-            link_file (f, os.path.join (dest_dir, f))
-
-    def get_distance_details (self):
-        return ''
-
-    def get_cell (self, oldnew):
-        return ''
-    
-    def get_file (self, oldnew):
-        return self.file_names[oldnew]
-    
-    def html_record_string (self, dest_dir):
-        dist = self.distance()
-        
-        details = self.get_distance_details ()
-        if details:
-            details_base = os.path.splitext (self.file_names[1])[0]
-            details_base += '.details.html'
-            fn = dest_dir + '/'  + details_base
-            open_write_file (fn).write (details)
-
-            details = '<br>(<a href="%(details_base)s">details</a>)' % locals ()
-
-        cell1 = self.get_cell (0)
-        cell2 = self.get_cell (1)
-
-        name = self.name () + self.extension ()
-        file1 = self.get_file (0)
-        file2 = self.get_file (1)
-        
-        return '''<tr>
-<td>
-%(dist)f
-%(details)s
-</td>
-<td>%(cell1)s<br><font size=-2><a href="%(file1)s"><tt>%(name)s</tt></font></td>
-<td>%(cell2)s<br><font size=-2><a href="%(file2)s"><tt>%(name)s</tt></font></td>
-</tr>''' % locals ()
-
-
-class FileCompareLink (FileLink):
-    def __init__ (self, f1, f2):
-        FileLink.__init__ (self, f1, f2)
-        self.contents = (self.get_content (self.file_names[0]),
-                         self.get_content (self.file_names[1]))
-        
-
-    def calc_distance (self):
-        ## todo: could use import MIDI to pinpoint
-        ## what & where changed.
-
-        if self.contents[0] == self.contents[1]:
-            return 0.0
-        else:
-            return 100.0;
-        
-    def get_content (self, f):
-        print 'reading', f
-        s = open (f).read ()
-        return s
-
-
-class GitFileCompareLink (FileCompareLink):
-    def get_cell (self, oldnew):
-        str = self.contents[oldnew]
-
-        # truncate long lines
-        str = '\n'.join ([l[:80] for l in str.split ('\n')])
-
-        
-        str = '<font size="-2"><pre>%s</pre></font>' % str
-        return str
-    
-    def calc_distance (self):
-        if self.contents[0] == self.contents[1]:
-            d = 0.0
-        else:
-            d = 1.0001 *options.threshold
-
-        return d
-
-        
-class TextFileCompareLink (FileCompareLink):
-    def calc_distance (self):
-        import difflib
-        diff = difflib.unified_diff (self.contents[0].strip().split ('\n'),
-                                     self.contents[1].strip().split ('\n'),
-                                     fromfiledate = self.file_names[0],
-                                     tofiledate = self.file_names[1]
-                                     )
-        
-        self.diff_lines =  [l for l in diff]
-        self.diff_lines = self.diff_lines[2:]
-        
-        return math.sqrt (float (len ([l for l in self.diff_lines if l[0] in '-+'])))
-        
-    def get_cell (self, oldnew):
-        str = ''
-        if oldnew == 1:
-            str = '\n'.join ([d.replace ('\n','') for d in self.diff_lines])
-        str = '<font size="-2"><pre>%s</pre></font>' % str
-        return str
-
-class LogFileCompareLink (TextFileCompareLink):
-  def get_content (self, f):
-      c = TextFileCompareLink.get_content (self, f)
-      c = re.sub ("\nProcessing `[^\n]+'\n", '', c)
-      return c
-        
-class ProfileFileLink (FileCompareLink):
-    def __init__ (self, f1, f2):
-        FileCompareLink.__init__ (self, f1, f2)
-        self.results = [{}, {}]
-    
-    def get_cell (self, oldnew):
-        str = ''
-        for k in ('time', 'cells'):
-            if oldnew==0:
-                str += '%-8s: %d\n' %  (k, int (self.results[oldnew][k]))
-            else:
-                str += '%-8s: %8d (%5.3f)\n' % (k, int (self.results[oldnew][k]),
-                                                self.get_ratio (k))
-
-        return '<pre>%s</pre>' % str
-            
-    def get_ratio (self, key):
-        (v1,v2) = (self.results[0].get (key, -1),
-                   self.results[1].get (key, -1))
-
-        if v1 <= 0 or v2 <= 0:
-            return 0.0
-
-        return (v1 - v2) / float (v1+v2)
-    
-    def calc_distance (self):
-        for oldnew in (0,1):
-            def note_info (m):
-                self.results[oldnew][m.group(1)] = float (m.group (2))
-            
-            re.sub ('([a-z]+): ([-0-9.]+)\n',
-                    note_info, self.contents[oldnew])
-
-        dist = 0.0
-        factor = {
-            'time': 0.1,
-            'cells': 5.0,
-            }
-        
-        for k in ('time', 'cells'):
-            real_val = math.tan (self.get_ratio (k) * 0.5 * math.pi)
-            dist += math.exp (math.fabs (real_val) * factor[k])  - 1
-
-        dist = min (dist, 100)
-        return dist
-
-    
-class MidiFileLink (TextFileCompareLink):
-    def get_content (self, oldnew):
-        import midi
-        
-        data = FileCompareLink.get_content (self, oldnew)
-        midi = midi.parse (data)
-        tracks = midi[1]
-
-        str = ''
-        j = 0
-        for t in tracks:
-            str += 'track %d' % j
-            j += 1
-
-            for e in t:
-                ev_str = repr (e)
-                if re.search ('LilyPond [0-9.]+', ev_str):
-                    continue
-                
-                str += '  ev %s\n' % `e`
-        return str
-    
-
-
-class SignatureFileLink (FileLink):
-    def __init__ (self, f1, f2 ):
-        FileLink.__init__ (self, f1, f2)
-        self.system_links = {}
-
-    def add_system_link (self, link, number):
-        self.system_links[number] = link
-
-    def calc_distance (self):
-        d = 0.0
-
-        orphan_distance = 0.0
-        for l in self.system_links.values ():
-            d = max (d, l.geometric_distance ())
-            orphan_distance += l.orphan_count ()
-            
-        return d + orphan_distance
-
-    def add_file_compare (self, f1, f2):
-        system_index = [] 
-
-        def note_system_index (m):
-            system_index.append (int (m.group (1)))
-            return ''
-        
-        base1 = re.sub ("-([0-9]+).signature", note_system_index, f1)
-        base2 = re.sub ("-([0-9]+).signature", note_system_index, f2)
-
-        self.base_names = (os.path.normpath (base1),
-                           os.path.normpath (base2))
-
-        s1 = read_signature_file (f1)
-        s2 = read_signature_file (f2)
-
-        link = SystemLink (s1, s2)
-
-        self.add_system_link (link, system_index[0])
-
-    
-    def create_images (self, dest_dir):
-
-        files_created = [[], []]
-        for oldnew in (0, 1):
-            pat = self.base_names[oldnew] + '.eps'
-
-            for f in glob.glob (pat):
-                infile = f
-                outfile = (dest_dir + '/' + f).replace ('.eps', '.png')
-                data_option = ''
-                if options.local_data_dir:
-                    data_option = ('-slilypond-datadir=%s/../share/lilypond/current '
-                                   % os.path.dirname(infile))
-                
-                mkdir (os.path.split (outfile)[0])
-                cmd = ('gs -sDEVICE=png16m -dGraphicsAlphaBits=4 -dTextAlphaBits=4 '
-                       ' %(data_option)s '
-                       ' -r101 '
-                       ' -sOutputFile=%(outfile)s -dNOSAFER -dEPSCrop -q -dNOPAUSE '
-                       ' %(infile)s  -c quit ') % locals ()
-
-                files_created[oldnew].append (outfile)
-                system (cmd)
-
-        return files_created
-    
-    def link_files_for_html (self, dest_dir):
-        FileLink.link_files_for_html (self, dest_dir)
-        to_compare = [[], []]
-
-        exts = []
-        if options.create_images:
-            to_compare = self.create_images (dest_dir)
-        else:
-            exts += ['.png', '-page*png']
-        
-        for ext in exts:            
-            for oldnew in (0,1):
-                for f in glob.glob (self.base_names[oldnew] + ext):
-                    dst = dest_dir + '/' + f
-                    link_file (f, dst)
-
-                    if f.endswith ('.png'):
-                        to_compare[oldnew].append (f)
-                        
-        if options.compare_images:                
-            for (old, new) in zip (to_compare[0], to_compare[1]):
-                compare_png_images (old, new, dest_dir)
-
-
-    def get_cell (self, oldnew):
-        def img_cell (ly, img, name):
-            if not name:
-                name = 'source'
-            else:
-                name = '<tt>%s</tt>' % name
-                
-            return '''
-<a href="%(img)s">
-<img src="%(img)s" style="border-style: none; max-width: 500px;">
-</a><br>
-''' % locals ()
-        def multi_img_cell (ly, imgs, name):
-            if not name:
-                name = 'source'
-            else:
-                name = '<tt>%s</tt>' % name
-
-            imgs_str = '\n'.join (['''<a href="%s">
-<img src="%s" style="border-style: none; max-width: 500px;">
-</a><br>''' % (img, img) 
-                                  for img in imgs])
-
-
-            return '''
-%(imgs_str)s
-''' % locals ()
-
-
-
-        def cell (base, name):
-            pat = base + '-page*.png'
-            pages = glob.glob (pat)
-
-            if pages:
-                return multi_img_cell (base + '.ly', sorted (pages), name)
-            else:
-                return img_cell (base + '.ly', base + '.png', name)
-
-
-
-        str = cell (os.path.splitext (self.file_names[oldnew])[0], self.name ())  
-        if options.compare_images and oldnew == 1:
-            str = str.replace ('.png', '.compare.jpeg')
-            
-        return str
-
-
-    def get_distance_details (self):
-        systems = self.system_links.items ()
-        systems.sort ()
-
-        html = ""
-        for (c, link) in systems:
-            e = '<td>%d</td>' % c
-            for d in link.distance ():
-                e += '<td>%f</td>' % d
-            
-            e = '<tr>%s</tr>' % e
-
-            html += e
-
-            e = '<td>%d</td>' % c
-            for s in (link.output_expression_details_string (),
-                      link.orphan_details_string (),
-                      link.geo_details_string ()):
-                e += "<td>%s</td>" % s
-
-            
-            e = '<tr>%s</tr>' % e
-            html += e
-            
-        original = self.name ()
-        html = '''<html>
-<head>
-<title>comparison details for %(original)s</title>
-</head>
-<body>
-<table border=1>
-<tr>
-<th>system</th>
-<th>output</th>
-<th>orphan</th>
-<th>geo</th>
-</tr>
-
-%(html)s
-</table>
-
-</body>
-</html>
-''' % locals ()
-        return html
-
-
-################################################################
-# Files/directories
-
-import glob
-import re
-
-def compare_signature_files (f1, f2):
-    s1 = read_signature_file (f1)
-    s2 = read_signature_file (f2)
-    
-    return SystemLink (s1, s2).distance ()
-
-def paired_files (dir1, dir2, pattern):
-    """
-    Search DIR1 and DIR2 for PATTERN.
-
-    Return (PAIRED, MISSING-FROM-2, MISSING-FROM-1)
-
-    """
-
-    files = []
-    for d in (dir1,dir2):
-        found = [os.path.split (f)[1] for f in glob.glob (d + '/' + pattern)]
-        found = dict ((f, 1) for f in found)
-        files.append (found)
-        
-    pairs = []
-    missing = []
-    for f in files[0]:
-        try:
-            files[1].pop (f)
-            pairs.append (f)
-        except KeyError:
-            missing.append (f)
-
-    return (pairs, files[1].keys (), missing)
-    
-class ComparisonData:
-    def __init__ (self):
-        self.result_dict = {}
-        self.missing = []
-        self.added = []
-        self.file_links = {}
-
-    def read_sources (self):
-
-        ## ugh: drop the .ly.txt
-        for (key, val) in self.file_links.items ():
-            
-            def note_original (match, ln=val):
-                key = ln.name ()
-                hash_to_original_name[key] = match.group (1)
-                return ''
-
-            sf = val.source_file ()
-            if sf:
-                re.sub (r'\\sourcefilename "([^"]+)"',
-                        note_original, open (sf).read ())
-            else:
-                print 'no source for', val
-        
-    def compare_trees (self, dir1, dir2):
-        self.compare_directories (dir1, dir2)
-        
-        (root, dirs, files) = os.walk (dir1).next ()
-        for d in dirs:
-            d1 = os.path.join (dir1, d)
-            d2 = os.path.join (dir2, d)
-
-            if os.path.islink (d1) or os.path.islink (d2):
-                continue
-            
-            if os.path.isdir (d2):
-                self.compare_trees (d1, d2)
-    
-    def compare_directories (self, dir1, dir2):
-        for ext in ['signature',
-                    'midi',
-                    'log',
-                    'profile',
-                    'gittxt']:
-            (paired, m1, m2) = paired_files (dir1, dir2, '*.' + ext)
-
-            self.missing += [(dir1, m) for m in m1] 
-            self.added += [(dir2, m) for m in m2] 
-
-            for p in paired:
-                if (options.max_count
-                    and len (self.file_links) > options.max_count):
-                    continue
-                
-                f2 = dir2 +  '/' + p
-                f1 = dir1 +  '/' + p
-                self.compare_files (f1, f2)
-
-    def compare_files (self, f1, f2):
-        if f1.endswith ('signature'):
-            self.compare_signature_files (f1, f2)
-        else:
-            ext = os.path.splitext (f1)[1]
-            klasses = {
-                '.midi': MidiFileLink,
-                '.log' : LogFileCompareLink,
-                '.profile': ProfileFileLink,
-                '.gittxt': GitFileCompareLink, 
-                }
-            
-            if klasses.has_key (ext):
-                self.compare_general_files (klasses[ext], f1, f2)
-
-    def compare_general_files (self, klass, f1, f2):
-        name = os.path.split (f1)[1]
-
-        file_link = klass (f1, f2)
-        self.file_links[name] = file_link
-        
-    def compare_signature_files (self, f1, f2):
-        name = os.path.split (f1)[1]
-        name = re.sub ('-[0-9]+.signature', '', name)
-        
-        file_link = None
-        try:
-            file_link = self.file_links[name]
-        except KeyError:
-            generic_f1 = re.sub ('-[0-9]+.signature', '.ly', f1)
-            generic_f2 = re.sub ('-[0-9]+.signature', '.ly', f2)
-            file_link = SignatureFileLink (generic_f1, generic_f2)
-            self.file_links[name] = file_link
-
-        file_link.add_file_compare (f1, f2)
-
-    def write_changed (self, dest_dir, threshold):
-        (changed, below, unchanged) = self.thresholded_results (threshold)
-
-        str = '\n'.join ([os.path.splitext (link.file_names[1])[0]
-                        for link in changed])
-        fn = dest_dir + '/changed.txt'
-        
-        open_write_file (fn).write (str)
-                
-    def thresholded_results (self, threshold):
-        ## todo: support more scores.
-        results = [(link.distance(), link)
-                   for link in self.file_links.values ()]
-        results.sort ()
-        results.reverse ()
-
-        unchanged = [r for (d,r) in results if d == 0.0]
-        below = [r for (d,r) in results if threshold >= d > 0.0]
-        changed = [r for (d,r) in results if d > threshold]
-
-        return (changed, below, unchanged)
-                
-    def write_text_result_page (self, filename, threshold):
-        out = None
-        if filename == '':
-            out = sys.stdout
-        else:
-            print 'writing "%s"' % filename
-            out = open_write_file (filename)
-
-        (changed, below, unchanged) = self.thresholded_results (threshold)
-
-        
-        for link in changed:
-            out.write (link.text_record_string ())
-
-        out.write ('\n\n')
-        out.write ('%d below threshold\n' % len (below))
-        out.write ('%d unchanged\n' % len (unchanged))
-        
-    def create_text_result_page (self, dir1, dir2, dest_dir, threshold):
-        self.write_text_result_page (dest_dir + '/index.txt', threshold)
-        
-    def create_html_result_page (self, dir1, dir2, dest_dir, threshold):
-        dir1 = dir1.replace ('//', '/')
-        dir2 = dir2.replace ('//', '/')
-
-        (changed, below, unchanged) = self.thresholded_results (threshold)
-
-
-        html = ''
-        old_prefix = os.path.split (dir1)[1]
-        for link in changed:
-            html += link.html_record_string (dest_dir)
-
-
-        short_dir1 = shorten_string (dir1)
-        short_dir2 = shorten_string (dir2)
-        html = '''<html>
-<table rules="rows" border bordercolor="blue">
-<tr>
-<th>distance</th>
-<th>%(short_dir1)s</th>
-<th>%(short_dir2)s</th>
-</tr>
-%(html)s
-</table>
-</html>''' % locals()
-
-        html += ('<p>')
-        below_count = len (below)
-
-        if below_count:
-            html += ('<p>%d below threshold</p>' % below_count)
-            
-        html += ('<p>%d unchanged</p>' % len (unchanged))
-
-        dest_file = dest_dir + '/index.html'
-        open_write_file (dest_file).write (html)
-
-
-        for link in changed:
-            link.link_files_for_html (dest_dir)
-        
-
-    def print_results (self, threshold):
-        self.write_text_result_page ('', threshold)
-
-def compare_trees (dir1, dir2, dest_dir, threshold):
-    data = ComparisonData ()
-    data.compare_trees (dir1, dir2)
-    data.read_sources ()
-
-    
-    data.print_results (threshold)
-
-    if os.path.isdir (dest_dir):
-        system ('rm -rf %s '% dest_dir)
-
-    data.write_changed (dest_dir, threshold)
-    data.create_html_result_page (dir1, dir2, dest_dir, threshold)
-    data.create_text_result_page (dir1, dir2, dest_dir, threshold)
-    
-################################################################
-# TESTING
-
-def mkdir (x):
-    if not os.path.isdir (x):
-        print 'mkdir', x
-        os.makedirs (x)
-
-def link_file (x, y):
-    mkdir (os.path.split (y)[0])
-    try:
-        print x, '->', y
-        os.link (x, y)
-    except OSError, z:
-        print 'OSError', x, y, z
-        raise OSError
-    
-def open_write_file (x):
-    d = os.path.split (x)[0]
-    mkdir (d)
-    return open (x, 'w')
-
-
-def system (x):
-    
-    print 'invoking', x
-    stat = os.system (x)
-    assert stat == 0
-
-
-def test_paired_files ():
-    print paired_files (os.environ["HOME"] + "/src/lilypond/scripts/",
-                        os.environ["HOME"] + "/src/lilypond-stable/buildscripts/", '*.py')
-                  
-    
-def test_compare_trees ():
-    system ('rm -rf dir1 dir2')
-    system ('mkdir dir1 dir2')
-    system ('cp 20{-*.signature,.ly,.png,.eps,.log,.profile} dir1')
-    system ('cp 20{-*.signature,.ly,.png,.eps,.log,.profile} dir2')
-    system ('cp 20expr{-*.signature,.ly,.png,.eps,.log,.profile} dir1')
-    system ('cp 19{-*.signature,.ly,.png,.eps,.log,.profile} dir2/')
-    system ('cp 19{-*.signature,.ly,.png,.eps,.log,.profile} dir1/')
-    system ('cp 19-1.signature 19.sub-1.signature')
-    system ('cp 19.ly 19.sub.ly')
-    system ('cp 19.profile 19.sub.profile')
-    system ('cp 19.log 19.sub.log')
-    system ('cp 19.png 19.sub.png')
-    system ('cp 19.eps 19.sub.eps')
-
-    system ('cp 20multipage* dir1')
-    system ('cp 20multipage* dir2')
-    system ('cp 19multipage-1.signature dir2/20multipage-1.signature')
-
-    
-    system ('mkdir -p dir1/subdir/ dir2/subdir/')
-    system ('cp 19.sub{-*.signature,.ly,.png,.eps,.log,.profile} dir1/subdir/')
-    system ('cp 19.sub{-*.signature,.ly,.png,.eps,.log,.profile} dir2/subdir/')
-    system ('cp 20grob{-*.signature,.ly,.png,.eps,.log,.profile} dir2/')
-    system ('cp 20grob{-*.signature,.ly,.png,.eps,.log,.profile} dir1/')
-    system ('echo HEAD is 1 > dir1/tree.gittxt')
-    system ('echo HEAD is 2 > dir2/tree.gittxt')
-
-    ## introduce differences
-    system ('cp 19-1.signature dir2/20-1.signature')
-    system ('cp 19.profile dir2/20.profile')
-    system ('cp 19.png dir2/20.png')
-    system ('cp 19multipage-page1.png dir2/20multipage-page1.png')
-    system ('cp 20-1.signature dir2/subdir/19.sub-1.signature')
-    system ('cp 20.png dir2/subdir/19.sub.png')
-    system ("sed 's/: /: 1/g'  20.profile > dir2/subdir/19.sub.profile")
-
-    ## radical diffs.
-    system ('cp 19-1.signature dir2/20grob-1.signature')
-    system ('cp 19-1.signature dir2/20grob-2.signature')
-    system ('cp 19multipage.midi dir1/midi-differ.midi')
-    system ('cp 20multipage.midi dir2/midi-differ.midi')
-    system ('cp 19multipage.log dir1/log-differ.log')
-    system ('cp 19multipage.log dir2/log-differ.log &&  echo different >> dir2/log-differ.log &&  echo different >> dir2/log-differ.log')
-
-    compare_trees ('dir1', 'dir2', 'compare-dir1dir2', options.threshold)
-
-
-def test_basic_compare ():
-    ly_template = r"""
-
-\version "2.10.0"
-#(define default-toplevel-book-handler
-  print-book-with-defaults-as-systems )
-
-#(ly:set-option (quote no-point-and-click))
-
-\sourcefilename "my-source.ly"
-%(papermod)s
-\header { tagline = ##f }
-\score {
-<<
-\new Staff \relative c {
-  c4^"%(userstring)s" %(extragrob)s
-  }
-\new Staff \relative c {
-  c4^"%(userstring)s" %(extragrob)s
-  }
->>
-\layout{}
-}
-
-"""
-
-    dicts = [{ 'papermod' : '',
-               'name' : '20',
-               'extragrob': '',
-               'userstring': 'test' },
-             { 'papermod' : '#(set-global-staff-size 19.5)',
-               'name' : '19',
-               'extragrob': '',
-               'userstring': 'test' },
-             { 'papermod' : '',
-               'name' : '20expr',
-               'extragrob': '',
-               'userstring': 'blabla' },
-             { 'papermod' : '',
-               'name' : '20grob',
-               'extragrob': 'r2. \\break c1',
-               'userstring': 'test' },
-             ]
-
-    for d in dicts:
-        open (d['name'] + '.ly','w').write (ly_template % d)
-        
-    names = [d['name'] for d in dicts]
-
-    system ('lilypond -ddump-profile -dseparate-log-files -ddump-signatures --png -dbackend=eps ' + ' '.join (names))
-    
-
-    multipage_str = r'''
-    #(set-default-paper-size "a6")
-    \score {
-      \relative {c1 \pageBreak c1 }
-      \layout {}
-      \midi {}
-    }
-    '''
-
-    open ('20multipage.ly', 'w').write (multipage_str.replace ('c1', 'd1'))
-    open ('19multipage.ly', 'w').write ('#(set-global-staff-size 19.5)\n' + multipage_str)
-    system ('lilypond -dseparate-log-files -ddump-signatures --png 19multipage 20multipage ')
-    test_compare_signatures (names)
-    
-def test_compare_signatures (names, timing=False):
-    import time
-
-    times = 1
-    if timing:
-        times = 100
-
-    t0 = time.clock ()
-
-    count = 0
-    for t in range (0, times):
-        sigs = dict ((n, read_signature_file ('%s-1.signature' % n)) for n in names)
-        count += 1
-
-    if timing:
-        print 'elapsed', (time.clock() - t0)/count
-
-
-    t0 = time.clock ()
-    count = 0
-    combinations = {}
-    for (n1, s1) in sigs.items():
-        for (n2, s2) in sigs.items():
-            combinations['%s-%s' % (n1, n2)] = SystemLink (s1,s2).distance ()
-            count += 1
-
-    if timing:
-        print 'elapsed', (time.clock() - t0)/count
-
-    results = combinations.items ()
-    results.sort ()
-    for k,v in results:
-        print '%-20s' % k, v
-
-    assert combinations['20-20'] == (0.0,0.0,0.0)
-    assert combinations['20-20expr'][0] > 0.0
-    assert combinations['20-19'][2] < 10.0
-    assert combinations['20-19'][2] > 0.0
-
-
-def run_tests ():
-    dir = 'test-output-distance'
-
-    do_clean = not os.path.exists (dir)
-
-    print 'test results in ', dir
-    if do_clean:
-        system ('rm -rf ' + dir)
-        system ('mkdir ' + dir)
-        
-    os.chdir (dir)
-    if do_clean:
-        test_basic_compare ()
-        
-    test_compare_trees ()
-    
-################################################################
-#
-
-def main ():
-    p = optparse.OptionParser ("output-distance - compare LilyPond formatting runs")
-    p.usage = 'output-distance.py [options] tree1 tree2'
-    
-    p.add_option ('', '--test-self',
-                  dest="run_test",
-                  action="store_true",
-                  help='run test method')
-    
-    p.add_option ('--max-count',
-                  dest="max_count",
-                  metavar="COUNT",
-                  type="int",
-                  default=0, 
-                  action="store",
-                  help='only analyze COUNT signature pairs')
-
-    p.add_option ('', '--threshold',
-                  dest="threshold",
-                  default=0.3,
-                  action="store",
-                  type="float",
-                  help='threshold for geometric distance')
-
-    p.add_option ('--no-compare-images',
-                  dest="compare_images",
-                  default=True,
-                  action="store_false",
-                  help="Don't run graphical comparisons")
-
-    p.add_option ('--create-images',
-                  dest="create_images",
-                  default=False,
-                  action="store_true",
-                  help="Create PNGs from EPSes")
-
-
-    p.add_option ('--local-datadir',
-                  dest="local_data_dir",
-                  default=False,
-                  action="store_true",
-                  help='whether to use the share/lilypond/ directory in the test directory')
-
-    p.add_option ('-o', '--output-dir',
-                  dest="output_dir",
-                  default=None,
-                  action="store",
-                  type="string",
-                  help='where to put the test results [tree2/compare-tree1tree2]')
-
-    global options
-    (options, args) = p.parse_args ()
-
-    if options.run_test:
-        run_tests ()
-        sys.exit (0)
-
-    if len (args) != 2:
-        p.print_usage()
-        sys.exit (2)
-
-    name = options.output_dir
-    if not name:
-        name = args[0].replace ('/', '')
-        name = os.path.join (args[1], 'compare-' + shorten_string (name))
-    
-    compare_trees (args[0], args[1], name, options.threshold)
-
-if __name__ == '__main__':
-    main()
-
diff --git a/buildscripts/pfx2ttf.fontforge b/buildscripts/pfx2ttf.fontforge
deleted file mode 100644 (file)
index 6428c7c..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-#!@FONTFORGE@
-
-Open($1);
-MergeKern($2)
-
-
-# The AFM files of `New Century Schoolbook' family as distributed within the
-# urw-fonts-1.0.7pre41.tar.bz2 archive contain a bunch of ligatures which
-# shouldn't be active by default:
-#
-#   T + M -> trademark
-#   N + o -> afii61352
-#   i + j -> ij
-#   I + J -> IJ
-#
-# This font bundle is shipped by Fedora Core 6 and other GNU/Linux
-# distributions; we simply remove those ligatures.
-
-SelectIf("trademark", "trademark", \
-         "afii61352", "afii61352", \
-         "ij", "ij", \
-         "IJ", "IJ");
-if (Strtol($version) < 20070501)
-  RemoveATT("Ligature", "*", "*");
-else
-  RemovePosSub("*");
-endif
-
-Generate($3 + $fontname + ".otf");
-
-# EOF
diff --git a/buildscripts/postprocess_html.py b/buildscripts/postprocess_html.py
deleted file mode 100644 (file)
index e94da79..0000000
+++ /dev/null
@@ -1,361 +0,0 @@
-#!@PYTHON@
-
-"""
-Postprocess HTML files:
-add footer, tweak links, add language selection menu.
-"""
-import re
-import os
-import time
-import operator
-
-import langdefs
-
-# This is to try to make the docball not too big with almost duplicate files
-# see process_links()
-non_copied_pages = ['Documentation/user/out-www/lilypond-big-page',
-                    'Documentation/user/out-www/lilypond-internals-big-page',
-                    'Documentation/user/out-www/lilypond-learning-big-page',
-                    'Documentation/user/out-www/lilypond-program-big-page',
-                    'Documentation/user/out-www/music-glossary-big-page',
-                    'out-www/examples',
-                    'Documentation/topdocs',
-                    'Documentation/bibliography',
-                    'Documentation/out-www/THANKS',
-                    'Documentation/out-www/DEDICATION',
-                    'Documentation/out-www/devel',
-                    'input/']
-
-def _doc (s):
-    return s
-
-header = r"""
-"""
-
-footer = '''
-<div class="footer">
-<p class="footer_version">
-%(footer_name_version)s
-</p>
-<p class="footer_report">
-%(footer_report_links)s
-</p>
-</div>
-'''
-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
-footer_report_links = _doc ('Your <a href="%(suggest_Docs_url)s">suggestions for the documentation</a> are welcome, please report errors to our <a href="%(mail_address_url)s">bug list</a>.')
-
-
-mail_address = 'http://post.gmane.org/post.php?group=gmane.comp.gnu.lilypond.bugs'
-suggest_Docs_url = 'http://lilypond.org/web/devel/participating/documentation-adding'
-
-header_tag = '<!-- header_tag -->'
-header_tag_re = re.compile (header_tag)
-
-footer_tag = '<!-- footer_tag -->'
-footer_tag_re = re.compile (footer_tag)
-
-lang_available = _doc ("Other languages: %s.")
-browser_lang = _doc ('About <A HREF="%s">automatic language selection</A>.')
-browser_language_url = "/web/about/browser-language"
-
-LANGUAGES_TEMPLATE = '''
-<p id="languages">
- %(language_available)s
- <br/>
- %(browser_language)s
-</p>
-'''
-
-
-html_re = re.compile ('(.*?)(?:[.]([^/.]*))?[.]html$')
-pages_dict = {}
-
-def build_pages_dict (filelist):
-    """Build dictionary of available translations of each page"""
-    global pages_dict
-    for f in filelist:
-        m = html_re.match (f)
-        if m:
-            g = m.groups()
-            if len (g) <= 1 or g[1] == None:
-                e = ''
-            else:
-                e = g[1]
-            if not g[0] in pages_dict:
-                pages_dict[g[0]] = [e]
-            else:
-                pages_dict[g[0]].append (e)
-
-def source_links_replace (m, source_val):
-    return 'href="' + os.path.join (source_val, m.group (1)) + '"'
-
-splitted_docs_re = re.compile ('(input/lsr/out-www/lilypond-snippets|\
-Documentation/user/out-www/(lilypond|music-glossary|lilypond-program|\
-lilypond-learning))/')
-
-snippets_ref_re = re.compile (r'href="(\.\./)?lilypond-snippets')
-user_ref_re = re.compile ('href="(?:\.\./)?lilypond\
-(-internals|-learning|-program|(?!-snippets))')
-
-docindex_link_re = re.compile (r'href="index.html"')
-
-
-## Windows does not support symlinks.
-# This function avoids creating symlinks for splitted HTML manuals
-# Get rid of symlinks in GNUmakefile.in (local-WWW-post)
-# this also fixes missing PNGs only present in translated docs
-def hack_urls (s, prefix):
-    if splitted_docs_re.match (prefix):
-        s = re.sub ('(href|src)="(../lily-.*?|.*?[.]png)"', '\\1="../\\2"', s)
-
-    # fix xrefs between documents in different directories ad hoc
-    if 'user/out-www/lilypond' in prefix:
-        s = snippets_ref_re.sub ('href="source/input/lsr/lilypond-snippets', s)
-    elif 'input/lsr' in prefix:
-        s = user_ref_re.sub ('href="source/Documentation/user/lilypond\\1', s)
-    
-    # we also need to replace in the lsr, which is already processed above!
-    if 'input/' in prefix or 'Documentation/topdocs' in prefix:
-        # fix the link from the regtest, lsr and topdoc pages to the doc index 
-        # (rewrite prefix to obtain the relative path of the doc index page)
-        rel_link = re.sub (r'out-www/.*$', '', prefix)
-        rel_link = re.sub (r'[^/]*/', '../', rel_link)
-        if 'input/regression' in prefix:
-            indexfile = "Documentation/devel"
-        else:
-            indexfile = "index"
-        s = docindex_link_re.sub ('href="' + rel_link + indexfile + '.html\"', s)
-
-    source_path = os.path.join (os.path.dirname (prefix), 'source')
-    if not os.path.islink (source_path):
-        return s
-    source_val = os.readlink (source_path)
-    return re.sub ('href="source/(.*?)"', lambda m: source_links_replace (m, source_val), s)
-
-body_tag_re = re.compile ('(?i)<body([^>]*)>')
-html_tag_re = re.compile ('(?i)<html>')
-doctype_re = re.compile ('(?i)<!DOCTYPE')
-doctype = '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">\n'
-css_re = re.compile ('(?i)<link rel="stylesheet" type="text/css" ([^>]*)href="[^">]*?lilypond.*\.css"([^>]*)>')
-end_head_tag_re = re.compile ('(?i)</head>')
-css_link = """    <link rel="stylesheet" type="text/css" title="Patrick McCarty's design" href="%(rel)sDocumentation/lilypond-mccarty.css">
-    <link rel="alternate stylesheet" type="text/css" href="%(rel)sDocumentation/lilypond.css" title="Andrew Hawryluk's design">
-    <link rel="alternate stylesheet" type="text/css" href="%(rel)sDocumentation/lilypond-blue.css" title="Kurt Kroon's blue design">
-    <!--[if lte IE 7]>
-    <link href="%(rel)sDocumentation/lilypond-ie-fixes.css" rel="stylesheet" type="text/css">
-    <![endif]-->
-"""
-
-
-def add_header (s, prefix):
-    """Add header (<body>, doctype and CSS)"""
-    if header_tag_re.search (s) == None:
-        body = '<body\\1>'
-        (s, n) = body_tag_re.subn (body + header, s, 1)
-        if not n:
-            (s, n) = html_tag_re.subn ('<html>' + header, s, 1)
-            if not n:
-                s = header + s
-
-        s = header_tag + '\n' + s
-
-        if doctype_re.search (s) == None:
-            s = doctype + s
-
-        if css_re.search (s) == None:
-            depth = (prefix.count ('/') - 1) * '../'
-            s = end_head_tag_re.sub ((css_link % {'rel': depth}) + '</head>', s)
-    return s
-
-title_tag_re = re.compile ('.*?<title>(.*?)</title>', re.DOTALL)
-AT_web_title_re = re.compile ('@WEB-TITLE@')
-
-def add_title (s):
-    # urg
-    # maybe find first node?
-    fallback_web_title = '-- --'
-    m = title_tag_re.match (s)
-    if m:
-        fallback_web_title = m.group (1)
-    s = AT_web_title_re.sub (fallback_web_title, s)
-    return s
-
-footer_insert_re = re.compile ('<!--\s*FOOTER\s*-->')
-end_body_re = re.compile ('(?i)</body>')
-end_html_re = re.compile ('(?i)</html>')
-
-def add_footer (s, footer_text):
-    """add footer"""
-    (s, n) = footer_insert_re.subn (footer_text + '\n' + '<!-- FOOTER -->', s, 1)
-    if not n:
-        (s, n) = end_body_re.subn (footer_text + '\n' + '</body>', s, 1)
-    if not n:
-        (s, n) = end_html_re.subn (footer_text + '\n' + '</html>', s, 1)
-    if not n:
-        s += footer_text + '\n'
-    return s
-
-def find_translations (prefix, lang_ext):
-    """find available translations of a page"""
-    available = []
-    missing = []
-    for l in langdefs.LANGUAGES:
-        e = l.webext
-        if lang_ext != e:
-            if e in pages_dict[prefix]:
-                available.append (l)
-            elif lang_ext == '' and l.enabled and reduce (operator.and_,
-                                                          [not prefix.startswith (s)
-                                                           for s in non_copied_pages]):
-                # English version of missing translated pages will be written
-                missing.append (e)
-    return available, missing
-
-online_links_re = re.compile ('''(href|src)=['"]\
-((?!Compiling-from-source.html")[^/][.]*[^.:'"]*)\
-([.]html)(#[^"']*|)['"]''')
-offline_links_re = re.compile ('href=[\'"]\
-((?!Compiling-from-source.html")[^/][.]*[^.:\'"]*)([.]html)(#[^"\']*|)[\'"]')
-big_page_name_re = re.compile ('''(.+?)-big-page''')
-
-def process_i18n_big_page_links (match, prefix, lang_ext):
-    big_page_name = big_page_name_re.match (match.group (1))
-    if big_page_name:
-        destination_path = os.path.normpath (os.path.join (os.path.dirname (prefix),
-                                                           big_page_name.group (0)))
-        if not lang_ext in pages_dict[destination_path]:
-            return match.group (0)
-    return 'href="' + match.group (1) + '.' + lang_ext \
-        + match.group (2) + match.group (3) + '"'
-
-def process_links (s, prefix, lang_ext, file_name, missing, target):
-    page_flavors = {}
-    if target == 'online':
-        # Strip .html, suffix for auto language selection (content
-        # negotiation).  The menu must keep the full extension, so do
-        # this before adding the menu.
-        page_flavors[file_name] = \
-            [lang_ext, online_links_re.sub ('\\1="\\2\\4"', s)]
-    elif target == 'offline':
-        # in LANG doc index: don't rewrite .html suffixes
-        # as not all .LANG.html pages exist;
-        # the doc index should be translated and contain links with the right suffixes
-        if prefix == 'Documentation/out-www/index':
-            page_flavors[file_name] = [lang_ext, s]
-        elif lang_ext == '':
-            page_flavors[file_name] = [lang_ext, s]
-            for e in missing:
-                page_flavors[langdefs.lang_file_name (prefix, e, '.html')] = \
-                    [e, offline_links_re.sub ('href="\\1.' + e + '\\2\\3"', s)]
-        else:
-            # For saving bandwidth and disk space, we don't duplicate big pages
-            # in English, so we must process translated big pages links differently.
-            if 'big-page' in prefix:
-                page_flavors[file_name] = \
-                    [lang_ext,
-                     offline_links_re.sub \
-                         (lambda match: process_i18n_big_page_links (match, prefix, lang_ext),
-                          s)]
-            else:
-                page_flavors[file_name] = \
-                    [lang_ext,
-                     offline_links_re.sub ('href="\\1.' + lang_ext + '\\2\\3"', s)]
-    return page_flavors
-
-def add_menu (page_flavors, prefix, available, target, translation):
-    for k in page_flavors:
-        language_menu = ''
-        languages = ''
-        if page_flavors[k][0] != '':
-            t = translation[page_flavors[k][0]]
-        else:
-            t = _doc
-        for lang in available:
-            lang_file = lang.file_name (os.path.basename (prefix), '.html')
-            if language_menu != '':
-                language_menu += ', '
-            language_menu += '<a href="%s">%s</a>' % (lang_file, t (lang.name))
-        if target == 'offline':
-            browser_language = ''
-        elif target == 'online':
-            browser_language = t (browser_lang) % browser_language_url
-        if language_menu:
-            language_available = t (lang_available) % language_menu
-            languages = LANGUAGES_TEMPLATE % vars ()
-        page_flavors[k][1] = add_footer (page_flavors[k][1], languages)
-    return page_flavors
-
-
-def process_html_files (package_name = '',
-                        package_version = '',
-                        target = 'offline',
-                        name_filter = lambda s: s):
-    """Add header, footer and tweak links to a number of HTML files
-
-    Arguments:
-     package_name=NAME         set package_name to NAME
-     package_version=VERSION   set package version to VERSION
-     targets=offline|online    set page processing depending on the target
-          offline is for reading HTML pages locally
-          online is for hosting the HTML pages on a website with content
-            negotiation
-     name_filter               a HTML file name filter
-    """
-    translation = langdefs.translation
-    localtime = time.strftime ('%c %Z', time.localtime (time.time ()))
-
-    if "http://" in mail_address:
-        mail_address_url = mail_address
-    else:
-        mail_address_url= 'mailto:' + mail_address
-
-    versiontup = package_version.split ('.')
-    branch_str = _doc ('stable-branch')
-    if int (versiontup[1]) %  2:
-        branch_str = _doc ('development-branch')
-
-    # Initialize dictionaries for string formatting
-    subst = {}
-    subst[''] = dict ([i for i in globals ().items() if type (i[1]) is str])
-    subst[''].update (dict ([i for i in locals ().items() if type (i[1]) is str]))
-    for l in translation:
-        e = langdefs.LANGDICT[l].webext
-        if e:
-            subst[e] = {}
-            for name in subst['']:
-                subst[e][name] = translation[l] (subst[''][name])
-    # Do deeper string formatting as early as possible,
-    # so only one '%' formatting pass is needed later
-    for e in subst:
-        subst[e]['footer_name_version'] = subst[e]['footer_name_version'] % subst[e]
-        subst[e]['footer_report_links'] = subst[e]['footer_report_links'] % subst[e]
-
-    for prefix, ext_list in pages_dict.items ():
-        for lang_ext in ext_list:
-            file_name = langdefs.lang_file_name (prefix, lang_ext, '.html')
-            in_f = open (file_name)
-            s = in_f.read()
-            in_f.close()
-
-            s = s.replace ('%', '%%')
-            s = hack_urls (s, prefix)
-            s = add_header (s, prefix)
-
-            ### add footer
-            if footer_tag_re.search (s) == None:
-                s = add_footer (s, footer_tag + footer)
-
-                available, missing = find_translations (prefix, lang_ext)
-                page_flavors = process_links (s, prefix, lang_ext, file_name, missing, target)
-                # Add menu after stripping: must not have autoselection for language menu.
-                page_flavors = add_menu (page_flavors, prefix, available, target, translation)
-            for k in page_flavors:
-                page_flavors[k][1] = page_flavors[k][1] % subst[page_flavors[k][0]]
-                out_f = open (name_filter (k), 'w')
-                out_f.write (page_flavors[k][1])
-                out_f.close()
-        # if the page is translated, a .en.html symlink is necessary for content negotiation
-        if target == 'online' and ext_list != ['']:
-            os.symlink (os.path.basename (prefix) + '.html', name_filter (prefix + '.en.html'))
diff --git a/buildscripts/readlink.py b/buildscripts/readlink.py
deleted file mode 100644 (file)
index 70267ff..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/usr/bin/env python
-import os
-import sys
-
-for i in sys.argv[1:]:
-    print os.path.realpath (i)
diff --git a/buildscripts/tely-gettext.py b/buildscripts/tely-gettext.py
deleted file mode 100755 (executable)
index b4e5660..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-# tely-gettext.py
-
-# Temporary script that helps translated docs sources conversion
-# for texi2html processing
-
-# USAGE:  tely-gettext.py BUILDSCRIPT-DIR LOCALEDIR LANG FILES
-
-print "tely_gettext.py"
-
-import sys
-import re
-import os
-import gettext
-
-if len (sys.argv) > 3:
-    buildscript_dir, localedir, lang = sys.argv[1:4]
-else:
-    print """USAGE:  tely-gettext.py BUILDSCRIPT-DIR LOCALEDIR LANG FILES
-  For example buildscripts/tely-gettext.py buildscripts Documentation/po/out-www de Documentation/de/user/*.tely"""
-    sys.exit (1)
-
-sys.path.append (buildscript_dir)
-import langdefs
-
-double_punct_char_separator = langdefs.LANGDICT[lang].double_punct_char_sep
-t = gettext.translation('lilypond-doc', localedir, [lang])
-_doc = t.gettext
-
-include_re = re.compile (r'@include (.*?)$', re.M)
-whitespaces = re.compile (r'\s+')
-ref_re = re.compile (r'(?ms)@(ruser|rprogram|ref|rlearning)\{(.*?)\}')
-node_section_re = re.compile (r'@node (.*?)\n@((?:unnumbered|appendix)(?:(?:sub){0,2}sec)?|top|chapter|(?:sub){0,2}section|(?:major|chap|(?:sub){0,2})heading) (.*?)\n')
-menu_entry_re = re.compile (r'\* (.*?)::')
-
-def ref_gettext (m):
-    r = whitespaces.sub (' ', m.group (2))
-    return '@' + m.group (1) + '{' + _doc (r) + '}'
-
-def node_gettext (m):
-    return '@node ' + _doc (m.group (1)) + '\n@' + \
-        m.group (2) + ' ' + _doc (m.group (3)) + \
-       '\n@translationof ' + m.group (1) + '\n'
-
-def menu_entry_gettext (m):
-    return '* ' + _doc (m.group (1)) + '::'
-
-def process_file (filename):
-    print "Processing %s" % filename
-    f = open (filename, 'r')
-    page = f.read ()
-    f.close()
-    page = node_section_re.sub (node_gettext, page)
-    page = ref_re.sub (ref_gettext, page)
-    page = menu_entry_re.sub (menu_entry_gettext, page)
-    page = page.replace ("""-- SKELETON FILE --
-When you actually translate this file, please remove these lines as
-well as all `UNTRANSLATED NODE: IGNORE ME' lines.""", """@c -- SKELETON FILE --""")
-    page = page.replace ('UNTRANSLATED NODE: IGNORE ME', "@c UNTRANSLATED NODE: IGNORE ME")
-    includes = [whitespaces.sub ('', f) for f in include_re.findall (page)]
-    f = open (filename, 'w')
-    f.write (page)
-    f.close ()
-    dir = os.path.dirname (filename)
-    for file in includes:
-        p = os.path.join (dir, file)
-        if os.path.exists (p):
-            process_file (p)
-
-for filename in sys.argv[4:]:
-    process_file (filename)
diff --git a/buildscripts/texi-gettext.py b/buildscripts/texi-gettext.py
deleted file mode 100644 (file)
index 546819b..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-#!@PYTHON@
-# -*- coding: utf-8 -*-
-# texi-gettext.py
-
-# USAGE:  texi-gettext.py [-o OUTDIR] LANG FILES
-#
-# -o OUTDIR specifies that output files should rather be written in OUTDIR
-#
-
-print "texi_gettext.py"
-
-import sys
-import re
-import os
-import getopt
-
-import langdefs
-
-optlist, args = getopt.getopt (sys.argv[1:],'o:')
-lang = args[0]
-files = args[1:]
-
-outdir = '.'
-for x in optlist:
-    if x[0] == '-o':
-        outdir = x[1]
-
-double_punct_char_separator = langdefs.LANGDICT[lang].double_punct_char_sep
-_doc = langdefs.translation[lang]
-
-include_re = re.compile (r'@include ((?!../lily-).*?)\.texi$', re.M)
-whitespaces = re.compile (r'\s+')
-ref_re = re.compile (r'(?ms)@(rglos|ruser|rprogram|ref)(\{)(.*?)(\})')
-node_section_re = re.compile (r'@(node|(?:unnumbered|appendix)(?:(?:sub){0,2}sec)?|top|chapter|(?:sub){0,2}section|(?:major|chap|(?:sub){0,2})heading)( )(.*?)(\n)')
-menu_entry_re = re.compile (r'\* (.*?)::')
-
-def title_gettext (m):
-    if m.group (2) == '{':
-        r = whitespaces.sub (' ', m.group (3))
-    else:
-        r = m.group (3)
-    return '@' + m.group (1) + m.group (2) + _doc (r) + m.group (4)
-
-def menu_entry_gettext (m):
-    return '* ' + _doc (m.group (1)) + '::'
-
-def include_replace (m, filename):
-    if os.path.exists (os.path.join (os.path.dirname (filename), m.group(1)) + '.texi'):
-        return '@include ' + m.group(1) + '.pdftexi'
-    return m.group(0)
-
-def process_file (filename):
-    print "Processing %s" % filename
-    f = open (filename, 'r')
-    page = f.read ()
-    f.close()
-    page = node_section_re.sub (title_gettext, page)
-    page = ref_re.sub (title_gettext, page)
-    page = menu_entry_re.sub (menu_entry_gettext, page)
-    page = page.replace ("""-- SKELETON FILE --
-When you actually translate this file, please remove these lines as
-well as all `UNTRANSLATED NODE: IGNORE ME' lines.""", '')
-    page = page.replace ('UNTRANSLATED NODE: IGNORE ME', _doc ("This section has not been translated yet; please refer to the manual in English."))
-    includes = include_re.findall (page)
-    page = include_re.sub (lambda m: include_replace (m, filename), page)
-    p = os.path.join (outdir, filename) [:-4] + 'pdftexi'
-    f = open (p, 'w')
-    f.write (page)
-    f.close ()
-    dir = os.path.dirname (filename)
-    for file in includes:
-        p = os.path.join (dir, file) + '.texi'
-        if os.path.exists (p):
-            process_file (p)
-
-for filename in files:
-    process_file (filename)
diff --git a/buildscripts/texi-langutils.py b/buildscripts/texi-langutils.py
deleted file mode 100644 (file)
index 7486ebe..0000000
+++ /dev/null
@@ -1,167 +0,0 @@
-#!@PYTHON@
-# texi-langutils.py
-
-# WARNING: this script can't find files included in a different directory
-
-import sys
-import re
-import getopt
-import os
-
-import langdefs
-
-def read_pipe (command):
-    print command
-    pipe = os.popen (command)
-    output = pipe.read ()
-    if pipe.close ():
-        print "pipe failed: %(command)s" % locals ()
-    return output
-
-
-optlist, texi_files = getopt.getopt(sys.argv[1:],'no:d:b:i:l:',['skeleton', 'gettext'])
-process_includes = not ('-n', '') in optlist # -n   don't process @include's in texinfo files
-
-make_gettext = ('--gettext', '') in optlist   # --gettext    generate a node list from a Texinfo source
-make_skeleton = ('--skeleton', '') in optlist # --skeleton   extract the node tree from a Texinfo source
-
-output_file = 'doc.pot'
-
-# @untranslated should be defined as a macro in Texinfo source
-node_blurb = '''@untranslated
-'''
-doclang = ''
-head_committish = read_pipe ('git-rev-parse HEAD')
-intro_blurb = '''@c -*- coding: utf-8; mode: texinfo%(doclang)s -*-
-@c This file is part of %(topfile)s
-@ignore
-    Translation of GIT committish: %(head_committish)s
-    When revising a translation, copy the HEAD committish of the
-    version that you are working on.  See TRANSLATION for details.
-@end ignore
-'''
-
-end_blurb = """
-@c -- SKELETON FILE --
-"""
-
-for x in optlist:
-    if x[0] == '-o': # -o NAME   set PO output file name to NAME
-        output_file = x[1]
-    elif x[0] == '-d': # -d DIR    set working directory to DIR
-        os.chdir (x[1])
-    elif x[0] == '-b': # -b BLURB  set blurb written at each node to BLURB
-        node_blurb = x[1]
-    elif x[0] == '-i': # -i BLURB  set blurb written at beginning of each file to BLURB
-        intro_blurb = x[1]
-    elif x[0] == '-l': # -l ISOLANG  set documentlanguage to ISOLANG
-        doclang = '; documentlanguage: ' + x[1]
-
-texinfo_with_menus_re = re.compile (r"^(\*) +([^:\n]+)::.*?$|^@(include|menu|end menu|node|(?:unnumbered|appendix)(?:(?:sub){0,2}sec)?|top|chapter|(?:sub){0,2}section|(?:major|chap|(?:sub){0,2})heading) *(.*?)$|@(rglos){(.+?)}", re.M)
-
-texinfo_re = re.compile (r"^@(include|node|(?:unnumbered|appendix)(?:(?:sub){0,2}sec)?|top|chapter|(?:sub){0,2}section|(?:major|chap|(?:sub){0,2})heading) *(.+?)$|@(rglos){(.+?)}", re.M)
-
-ly_string_re = re.compile (r'^([a-zA-Z]+)[\t ]*=|%+[\t ]*(.*)$')
-verbatim_ly_re = re.compile (r'@lilypond\[.*?verbatim')
-
-def process_texi (texifilename, i_blurb, n_blurb, write_skeleton, topfile, output_file=None, scan_ly=False):
-    try:
-        f = open (texifilename, 'r')
-        texifile = f.read ()
-        f.close ()
-        printedfilename = texifilename.replace ('../','')
-        includes = []
-
-        # process ly var names and comments
-        if output_file and scan_ly:
-            lines = texifile.splitlines ()
-            i = 0
-            in_verb_ly_block = False
-            for i in range (len (lines)):
-                if verbatim_ly_re.match (lines[i]):
-                    in_verb_ly_block = True
-                elif lines[i].startswith ('@end lilypond'):
-                    in_verb_ly_block = False
-                elif in_verb_ly_block:
-                    for (var, comment) in ly_string_re.findall (lines[i]):
-                        if var:
-                            output_file.write ('# ' + printedfilename + ':' + \
-                                               str (i + 1) + ' (variable)\n_(r"' + var + '")\n')
-                        elif comment:
-                            output_file.write ('# ' + printedfilename + ':' + \
-                                               str (i + 1) + ' (comment)\n_(r"' + \
-                                               comment.replace ('"', '\\"') + '")\n')
-
-        # process Texinfo node names and section titles
-        if write_skeleton:
-            g = open (os.path.basename (texifilename), 'w')
-            subst = globals ()
-            subst.update (locals ())
-            g.write (i_blurb % subst)
-            tutu = texinfo_with_menus_re.findall (texifile)
-            node_trigger = False
-            for item in tutu:
-                if item[0] == '*':
-                    g.write ('* ' + item[1] + '::\n')
-                elif output_file and item[4] == 'rglos':
-                    output_file.write ('_(r"' + item[5] + '") # @rglos in ' + printedfilename + '\n')
-                elif item[2] == 'menu':
-                    g.write ('@menu\n')
-                elif item[2] == 'end menu':
-                    g.write ('@end menu\n\n')
-                else:
-                    g.write ('@' + item[2] + ' ' + item[3] + '\n')
-                    if node_trigger:
-                        g.write (n_blurb)
-                        node_trigger = False
-                    elif item[2] == 'include':
-                        includes.append (item[3])
-                    else:
-                        if output_file:
-                            output_file.write ('# @' + item[2] + ' in ' + \
-                                printedfilename + '\n_(r"' + item[3].strip () + '")\n')
-                        if item[2] == 'node':
-                            node_trigger = True
-            g.write (end_blurb)
-            g.close ()
-
-        elif output_file:
-            toto = texinfo_re.findall (texifile)
-            for item in toto:
-                if item[0] == 'include':
-                    includes.append(item[1])
-                elif item[2] == 'rglos':
-                    output_file.write ('# @rglos in ' + printedfilename + '\n_(r"' + item[3] + '")\n')
-                else:
-                    output_file.write ('# @' + item[0] + ' in ' + printedfilename + '\n_(r"' + item[1].strip () + '")\n')
-
-        if process_includes:
-            dir = os.path.dirname (texifilename)
-            for item in includes:
-                process_texi (os.path.join (dir, item.strip ()), i_blurb, n_blurb, write_skeleton, topfile, output_file, scan_ly)
-    except IOError, (errno, strerror):
-        sys.stderr.write ("I/O error(%s): %s: %s\n" % (errno, texifilename, strerror))
-
-
-if intro_blurb != '':
-    intro_blurb += '\n\n'
-if node_blurb != '':
-    node_blurb = '\n' + node_blurb + '\n\n'
-if make_gettext:
-    node_list_filename = 'node_list'
-    node_list = open (node_list_filename, 'w')
-    node_list.write ('# -*- coding: utf-8 -*-\n')
-    for texi_file in texi_files:
-        # Urgly: scan ly comments and variable names only in English doco
-        is_english_doc = 'Documentation/user' in texi_file
-        process_texi (texi_file, intro_blurb, node_blurb, make_skeleton,
-                      os.path.basename (texi_file), node_list,
-                      scan_ly=is_english_doc)
-    for word in ('Up:', 'Next:', 'Previous:', 'Appendix ', 'Footnotes', 'Table of Contents'):
-        node_list.write ('_(r"' + word + '")\n')
-    node_list.close ()
-    os.system ('xgettext -c -L Python --no-location -o ' + output_file + ' ' + node_list_filename)
-else:
-    for texi_file in texi_files:
-        process_texi (texi_file, intro_blurb, node_blurb, make_skeleton,
-                      os.path.basename (texi_file))
diff --git a/buildscripts/texi-skeleton-update.py b/buildscripts/texi-skeleton-update.py
deleted file mode 100644 (file)
index f761408..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-#!@PYTHON@
-# texi-skeleton-update.py
-
-import sys
-import glob
-import os
-import shutil
-
-sys.stderr.write ('texi-skeleton-update.py\n')
-
-orig_skeletons = set ([os.path.basename (f) for f in glob.glob (sys.argv[1] + '/*.ite??')])
-new_skeletons = set ([os.path.basename (f) for f in glob.glob (sys.argv[2] + '/*.ite??')])
-
-for f in new_skeletons:
-    if f in orig_skeletons:
-        g = open (os.path.join (sys.argv[1], f), 'r').read ()
-        if '-- SKELETON FILE --' in g:
-            sys.stderr.write ("Updating %s...\n" % f)
-            shutil.copy (os.path.join (sys.argv[2], f), sys.argv[1])
-    elif f != 'fdl.itexi':
-        sys.stderr.write ("Copying new file %s...\n" % f)
-        shutil.copy (os.path.join (sys.argv[2], f), sys.argv[1])
-
-for f in orig_skeletons.difference (new_skeletons):
-    sys.stderr.write ("Warning: outdated skeleton file %s\n" % f)
diff --git a/buildscripts/texi2omf.py b/buildscripts/texi2omf.py
deleted file mode 100644 (file)
index cc2603f..0000000
+++ /dev/null
@@ -1,154 +0,0 @@
-#!@PYTHON@
-
-import getopt
-import os
-import re
-import sys
-import time
-
-def usage ():
-    sys.stderr.write ('''
-texi2omf [options] FILE.texi > FILE.omf
-
-Options:
-
---format=FORM         set format FORM  (HTML, PS, PDF, [XML]).
---location=FILE       file name as installed on disk.
---version=VERSION
-
-Use the following commands (enclose in @ignore)
-
-@omfsubject . .
-@omfdescription . .
-@omftype . . 
-
-etc.
-
-
-''')
-    
-(options, files) = getopt.getopt (sys.argv[1:], '',
-                 ['format=', 'location=', 'version='])
-
-license = 'FDL'
-location = ''
-version = ''
-email = os.getenv ('MAILADDRESS')
-name = os.getenv ('USERNAME')
-format = 'xml'
-
-for (o, a) in options:
-    if o == '--format':
-        format = a
-    elif o == '--location':
-        location = 'file:%s' % a
-    elif o == '--version':
-        version = a
-    else:
-        assert 0
-
-        
-if not files:
-    usage ()
-    sys.exit (2)
-
-
-formats = {
-    'html' : 'text/html',
-    'pdf' : 'application/pdf',
-    'ps.gz' : 'application/postscript',
-    'ps' : 'application/postscript',
-    'xml' : 'text/xml',
-    }
-
-if not formats.has_key (format):
-    sys.stderr.write ("Format `%s' unknown\n" % format)
-    sys.exit (1)
-
-
-infile = files[0]
-
-today = time.localtime ()
-
-texi = open (infile).read ()
-
-if not location:
-    location = 'file:/%s' % re.sub (r'\..*', '.' + format, infile)
-
-omf_vars = {
-    'date': '%d-%d-%d' %  today[:3],
-    'mimeformat': formats[format],
-    'maintainer':  "%s (%s)" % (name, email),
-    'version' : version,
-    'location' : location,
-    'language' : 'C',
-    }
-
-omf_caterories = ['subject', 'creator', 'maintainer', 'contributor',
-         'title', 'subtitle', 'version', 'category', 'type',
-         'description', 'license', 'language',]
-    
-for a in omf_caterories:
-    m = re.search ('@omf%s (.*)\n'% a, texi)
-    if m:
-        omf_vars[a] = m.group (1)
-    elif not omf_vars.has_key (a):
-        omf_vars[a] = ''
-        
-if not omf_vars['title']:
-    title = ''
-    m = re.search ('@title (.*)\n', texi)
-    if m:
-        title = m.group (1)
-
-    subtitle = ''
-    m = re.search ('@subtitle (.*)\n', texi)
-    if m:
-        subtitle = m.group (1)
-
-    if subtitle:
-        title  = '%s -- %s' % (title, subtitle)
-
-    omf_vars['title'] = title
-    
-if not omf_vars['creator']:
-    m = re.search ('@author (.*)\n', texi)
-    if m:
-        omf_vars['creator'] = m.group (1)
-
-
-
-print r'''<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE omf PUBLIC "-//OMF//DTD Scrollkeeper OMF Variant V1.0//EN" "http://scrollkeeper.sourceforge.net/dtds/scrollkeeper-omf-1.0/scrollkeeper-omf.dtd">
-<omf>
- <resource>
-  <creator>
-   %(creator)s
-  </creator>
-  <maintainer>
-   %(maintainer)s
-  </maintainer>
-  <title>
-   %(title)s
-  </title>
-  <date>
-   %(date)s
-  </date>
-  <version identifier="%(version)s" date="%(date)s" />
-  <subject category="%(category)s"/>
-  <description>
-  %(description)s
-  </description>
-  <type>
-  %(type)s
-  </type>
-  <format mime="%(mimeformat)s" />
-  <identifier url="%(location)s"/>
-  <language code="%(language)s"/>
-  <rights type="%(license)s" />
- </resource>
-</omf>
-
-''' % omf_vars
-
-
diff --git a/buildscripts/translations-status.py b/buildscripts/translations-status.py
deleted file mode 100755 (executable)
index 4180ea8..0000000
+++ /dev/null
@@ -1,578 +0,0 @@
-#!/usr/bin/env python
-
-"""
-USAGE: translations-status.py BUILDSCRIPT-DIR LOCALEDIR
-
-  This script must be run from Documentation/
-
-  Reads template files translations.template.html.in
-and for each LANG in LANGUAGES LANG/translations.template.html.in
-  Writes translations.html.in and for each LANG in LANGUAGES
-translations.LANG.html.in
-  Writes out/translations-status.txt
-  Updates word counts in TRANSLATION
-"""
-
-import sys
-import re
-import string
-import os
-
-import langdefs
-import buildlib
-
-def progress (str):
-    sys.stderr.write (str + '\n')
-
-progress ("translations-status.py")
-
-_doc = lambda s: s
-
-# load gettext messages catalogs
-translation = langdefs.translation
-
-
-language_re = re.compile (r'^@documentlanguage (.+)', re.M)
-comments_re = re.compile (r'^@ignore\n(.|\n)*?\n@end ignore$|@c .*?$', re.M)
-space_re = re.compile (r'\s+', re.M)
-lilypond_re = re.compile (r'@lilypond({.*?}|(.|\n)*?\n@end lilypond$)', re.M)
-node_re = re.compile ('^@node .*?$', re.M)
-title_re = re.compile ('^@(top|chapter|(?:sub){0,2}section|' + \
-'(?:unnumbered|appendix)(?:(?:sub){0,2}sec)?) (.*?)$', re.M)
-include_re = re.compile ('^@include (.*?)$', re.M)
-
-translators_re = re.compile (r'^@c\s+Translators\s*:\s*(.*?)$', re.M | re.I)
-checkers_re = re.compile (r'^@c\s+Translation\s*checkers\s*:\s*(.*?)$',
-                          re.M | re.I)
-status_re = re.compile (r'^@c\s+Translation\s*status\s*:\s*(.*?)$', re.M | re.I)
-post_gdp_re = re.compile ('post.GDP', re.I)
-untranslated_node_str = '@untranslated'
-skeleton_str = '-- SKELETON FILE --'
-
-section_titles_string = _doc ('Section titles')
-last_updated_string = _doc (' <p><i>Last updated %s</i></p>\n')
-detailed_status_heads = [_doc ('Translators'), _doc ('Translation checkers'),
-                         _doc ('Translated'), _doc ('Up to date'),
-                         _doc ('Other info')]
-format_table = {
-    'not translated': {'color':'d0f0f8', 'short':_doc ('no'), 'abbr':'NT',
-                       'long':_doc ('not translated')},
-    'partially translated': {'color':'dfef77',
-                             'short':_doc ('partially (%(p)d %%)'),
-                             'abbr':'%(p)d%%',
-                             'long':_doc ('partially translated (%(p)d %%)')},
-    'fully translated': {'color':'1fff1f', 'short':_doc ('yes'), 'abbr':'FT',
-                         'long': _doc ('translated')},
-    'up to date': {'short':_doc ('yes'), 'long':_doc ('up to date'),
-                   'abbr':'100%%', 'vague':_doc ('up to date')},
-    'outdated': {'short':_doc ('partially'), 'abbr':'%(p)d%%',
-                 'vague':_doc ('partially up to date')},
-    'N/A': {'short':_doc ('N/A'), 'abbr':'N/A', 'color':'d587ff', 'vague':''},
-    'pre-GDP':_doc ('pre-GDP'),
-    'post-GDP':_doc ('post-GDP')
-}
-
-texi_level = {
-# (Unumbered/Numbered/Lettered, level)
-    'top': ('u', 0),
-    'unnumbered': ('u', 1),
-    'unnumberedsec': ('u', 2),
-    'unnumberedsubsec': ('u', 3),
-    'chapter': ('n', 1),
-    'section': ('n', 2),
-    'subsection': ('n', 3),
-    'appendix': ('l', 1)
-}
-
-appendix_number_trans = string.maketrans ('@ABCDEFGHIJKLMNOPQRSTUVWXY',
-                                          'ABCDEFGHIJKLMNOPQRSTUVWXYZ')
-
-class SectionNumber (object):
-    def __init__ (self):
-        self.__data = [[0,'u']]
-
-    def __increase_last_index (self):
-        type = self.__data[-1][1]
-        if type == 'l':
-            self.__data[-1][0] = \
-                self.__data[-1][0].translate (appendix_number_trans)
-        elif type == 'n':
-            self.__data[-1][0] += 1
-
-    def format (self):
-        if self.__data[-1][1] == 'u':
-            return ''
-        return '.'.join ([str (i[0]) for i in self.__data if i[1] != 'u']) + ' '
-
-    def increase (self, (type, level)):
-        if level == 0:
-            self.__data = [[0,'u']]
-        while level + 1 < len (self.__data):
-            del self.__data[-1]
-        if level + 1 > len (self.__data):
-            self.__data.append ([0, type])
-            if type == 'l':
-                self.__data[-1][0] = '@'
-        if type == self.__data[-1][1]:
-            self.__increase_last_index ()
-        else:
-            self.__data[-1] = ([0, type])
-            if type == 'l':
-                self.__data[-1][0] = 'A'
-            elif type == 'n':
-                self.__data[-1][0] = 1
-        return self.format ()
-
-
-def percentage_color (percent):
-    p = percent / 100.0
-    if p < 0.33:
-        c = [hex (int (3 * p * b + (1 - 3 * p) * a))[2:]
-             for (a, b) in [(0xff, 0xff), (0x5c, 0xa6), (0x5c, 0x4c)]]
-    elif p < 0.67:
-        c = [hex (int ((3 * p - 1) * b + (2 - 3 * p) * a))[2:]
-             for (a, b) in [(0xff, 0xff), (0xa6, 0xff), (0x4c, 0x3d)]]
-    else:
-        c = [hex (int ((3 * p - 2) * b + 3 * (1 - p) * a))[2:]
-             for (a, b) in [(0xff, 0x1f), (0xff, 0xff), (0x3d, 0x1f)]]
-    return ''.join (c)
-
-
-def update_word_count (text, filename, word_count):
-    return re.sub (r'(?m)^(\d+) *' + filename,
-                   str (word_count).ljust (6) + filename,
-                   text)
-
-po_msgid_re = re.compile (r'^msgid "(.*?)"(?:\n"(.*?)")*', re.M)
-
-def po_word_count (po_content):
-    s = ' '.join ([''.join (t) for t in po_msgid_re.findall (po_content)])
-    return len (space_re.split (s))
-
-sgml_tag_re = re.compile (r'<.*?>', re.S)
-
-def sgml_word_count (sgml_doc):
-    s = sgml_tag_re.sub ('', sgml_doc)
-    return len (space_re.split (s))
-
-def tely_word_count (tely_doc):
-    '''
-    Calculate word count of a Texinfo document node by node.
-
-    Take string tely_doc as an argument.
-    Return a list of integers.
-
-    Texinfo comments and @lilypond blocks are not included in word counts.
-    '''
-    tely_doc = comments_re.sub ('', tely_doc)
-    tely_doc = lilypond_re.sub ('', tely_doc)
-    nodes = node_re.split (tely_doc)
-    return [len (space_re.split (n)) for n in nodes]
-
-
-class TelyDocument (object):
-    def __init__ (self, filename):
-        self.filename = filename
-        self.contents = open (filename).read ()
-
-        ## record title and sectionning level of first Texinfo section
-        m = title_re.search (self.contents)
-        if m:
-            self.title = m.group (2)
-            self.level = texi_level [m.group (1)]
-        else:
-            self.title = 'Untitled'
-            self.level = ('u', 1)
-
-        m = language_re.search (self.contents)
-        if m:
-            self.language = m.group (1)
-
-        included_files = [os.path.join (os.path.dirname (filename), t)
-                          for t in include_re.findall (self.contents)]
-        self.included_files = [p for p in included_files if os.path.exists (p)]
-
-    def print_title (self, section_number):
-        return section_number.increase (self.level) + self.title
-
-
-class TranslatedTelyDocument (TelyDocument):
-    def __init__ (self, filename, masterdocument, parent_translation=None):
-        TelyDocument.__init__ (self, filename)
-
-        self.masterdocument = masterdocument
-        if not hasattr (self, 'language') \
-                and hasattr (parent_translation, 'language'):
-            self.language = parent_translation.language
-        if hasattr (self, 'language'):
-            self.translation = translation[self.language]
-        else:
-            self.translation = lambda x: x
-        self.title = self.translation (self.title)
-
-        ## record authoring information
-        m = translators_re.search (self.contents)
-        if m:
-            self.translators = [n.strip () for n in m.group (1).split (',')]
-        else:
-            self.translators = parent_translation.translators
-        m = checkers_re.search (self.contents)
-        if m:
-            self.checkers = [n.strip () for n in m.group (1).split (',')]
-        elif isinstance (parent_translation, TranslatedTelyDocument):
-            self.checkers = parent_translation.checkers
-        else:
-            self.checkers = []
-
-        ## check whether translation is pre- or post-GDP
-        m = status_re.search (self.contents)
-        if m:
-            self.post_gdp = bool (post_gdp_re.search (m.group (1)))
-        else:
-            self.post_gdp = False
-
-        ## record which parts (nodes) of the file are actually translated
-        self.partially_translated = not skeleton_str in self.contents
-        nodes = node_re.split (self.contents)
-        self.translated_nodes = [not untranslated_node_str in n for n in nodes]
-
-        ## calculate translation percentage
-        master_total_word_count = sum (masterdocument.word_count)
-        translation_word_count = \
-            sum ([masterdocument.word_count[k] * self.translated_nodes[k]
-                  for k in range (min (len (masterdocument.word_count),
-                                       len (self.translated_nodes)))])
-        self.translation_percentage = \
-            100 * translation_word_count / master_total_word_count
-
-        ## calculate how much the file is outdated
-        (diff_string, error) = \
-            buildlib.check_translated_doc (masterdocument.filename, self.contents)
-        if error:
-            sys.stderr.write ('warning: %s: %s' % (self.filename, error))
-            self.uptodate_percentage = None
-        else:
-            diff = diff_string.splitlines ()
-            insertions = sum ([len (l) - 1 for l in diff
-                               if l.startswith ('+')
-                               and not l.startswith ('+++')])
-            deletions = sum ([len (l) - 1 for l in diff
-                              if l.startswith ('-')
-                              and not l.startswith ('---')])
-            outdateness_percentage = 50.0 * (deletions + insertions) / \
-                (masterdocument.size + 0.5 * (deletions - insertions))
-            self.uptodate_percentage = 100 - int (outdateness_percentage)
-            if self.uptodate_percentage > 100:
-                alternative = 50
-                progress ("%s: strange uptodateness percentage %d %%, \
-setting to %d %%" % (self.filename, self.uptodate_percentage, alternative))
-                self.uptodate_percentage = alternative
-            elif self.uptodate_percentage < 1:
-                alternative = 1
-                progress ("%s: strange uptodateness percentage %d %%, \
-setting to %d %%" % (self.filename, self.uptodate_percentage, alternative))
-                self.uptodate_percentage = alternative
-
-    def completeness (self, formats=['long'], translated=False):
-        if translated:
-            translation = self.translation
-        else:
-            translation = lambda x: x
-
-        if isinstance (formats, str):
-            formats = [formats]
-        p = self.translation_percentage
-        if p == 0:
-            status = 'not translated'
-        elif p == 100:
-            status = 'fully translated'
-        else:
-            status = 'partially translated'
-        return dict ([(f, translation (format_table[status][f]) % locals())
-                      for f in formats])
-
-    def uptodateness (self, formats=['long'], translated=False):
-        if translated:
-            translation = self.translation
-        else:
-            translation = lambda x: x
-
-        if isinstance (formats, str):
-            formats = [formats]
-        p = self.uptodate_percentage
-        if p == None:
-            status = 'N/A'
-        elif p == 100:
-            status = 'up to date'
-        else:
-            status = 'outdated'
-        l = {}
-        for f in formats:
-            if f == 'color' and p != None:
-                l['color'] = percentage_color (p)
-            else:
-                l[f] = translation (format_table[status][f]) % locals ()
-        return l
-
-    def gdp_status (self):
-        if self.post_gdp:
-            return self.translation (format_table['post-GDP'])
-        else:
-            return self.translation (format_table['pre-GDP'])
-
-    def short_html_status (self):
-        s = '  <td>'
-        if self.partially_translated:
-            s += '<br>\n   '.join (self.translators) + '<br>\n'
-            if self.checkers:
-                s += '   <small>' + \
-                    '<br>\n   '.join (self.checkers) + '</small><br>\n'
-
-        c = self.completeness (['color', 'long'])
-        s += '   <span style="background-color: #%(color)s">\
-%(long)s</span><br>\n' % c
-
-        if self.partially_translated:
-            u = self.uptodateness (['vague', 'color'])
-            s += '   <span style="background-color: #%(color)s">\
-%(vague)s</span><br>\n' % u
-
-        s += '  </td>\n'
-        return s
-
-    def text_status (self):
-        s = self.completeness ('abbr')['abbr'] + ' '
-
-        if self.partially_translated:
-            s += self.uptodateness ('abbr')['abbr'] + ' '
-        return s
-
-    def html_status (self, numbering=SectionNumber ()):
-        if self.title == 'Untitled':
-            return ''
-
-        if self.level[1] == 0: # if self is a master document
-            s = '''<table align="center" border="2">
- <tr align="center">
-  <th>%s</th>''' % self.print_title (numbering)
-            s += ''.join (['  <th>%s</th>\n' % self.translation (h)
-                           for h in detailed_status_heads])
-            s += ' </tr>\n'
-            s += ' <tr align="left">\n  <td>%s<br>(%d)</td>\n' \
-                % (self.translation (section_titles_string),
-                   sum (self.masterdocument.word_count))
-
-        else:
-            s = ' <tr align="left">\n  <td>%s<br>(%d)</td>\n' \
-                % (self.print_title (numbering),
-                   sum (self.masterdocument.word_count))
-
-        if self.partially_translated:
-            s += '  <td>' + '<br>\n   '.join (self.translators) + '</td>\n'
-            s += '  <td>' + '<br>\n   '.join (self.checkers) + '</td>\n'
-        else:
-            s += '  <td></td>\n' * 2
-
-        c = self.completeness (['color', 'short'], translated=True)
-        s += '  <td><span style="background-color: #%(color)s">\
-%(short)s</span></td>\n' % {'color': c['color'],
-                           'short': c['short']}
-
-        if self.partially_translated:
-            u = self.uptodateness (['short', 'color'], translated=True)
-            s += '  <td><span style="background-color: #%(color)s">\
-%(short)s</span></td>\n' % {'color': u['color'],
-                           'short': u['short']}
-        else:
-            s += '  <td></td>\n'
-
-        s += '  <td>' + self.gdp_status () + '</td>\n </tr>\n'
-        s += ''.join ([i.translations[self.language].html_status (numbering)
-                       for i in self.masterdocument.includes
-                       if self.language in i.translations])
-
-        if self.level[1] == 0:  # if self is a master document
-            s += '</table>\n<p></p>\n'
-        return s
-
-class MasterTelyDocument (TelyDocument):
-    def __init__ (self,
-                  filename,
-                  parent_translations=dict ([(lang, None)
-                                             for lang in langdefs.LANGDICT])):
-        TelyDocument.__init__ (self, filename)
-        self.size = len (self.contents)
-        self.word_count = tely_word_count (self.contents)
-        translations = dict ([(lang, os.path.join (lang, filename))
-                              for lang in langdefs.LANGDICT])
-        self.translations = \
-            dict ([(lang,
-                    TranslatedTelyDocument (translations[lang],
-                                            self, parent_translations.get (lang)))
-                   for lang in langdefs.LANGDICT
-                   if os.path.exists (translations[lang])])
-        if self.translations:
-            self.includes = [MasterTelyDocument (f, self.translations)
-                             for f in self.included_files]
-        else:
-            self.includes = []
-
-    def update_word_counts (self, s):
-        s = update_word_count (s, self.filename, sum (self.word_count))
-        for i in self.includes:
-            s = i.update_word_counts (s)
-        return s
-
-    def html_status (self, numbering=SectionNumber ()):
-        if self.title == 'Untitled' or not self.translations:
-            return ''
-        if self.level[1] == 0: # if self is a master document
-            s = '''<table align="center" border="2">
- <tr align="center">
-  <th>%s</th>''' % self.print_title (numbering)
-            s += ''.join (['  <th>%s</th>\n' % l for l in self.translations])
-            s += ' </tr>\n'
-            s += ' <tr align="left">\n  <td>Section titles<br>(%d)</td>\n' \
-                % sum (self.word_count)
-
-        else:  # if self is an included file
-            s = ' <tr align="left">\n  <td>%s<br>(%d)</td>\n' \
-                % (self.print_title (numbering), sum (self.word_count))
-
-        s += ''.join ([t.short_html_status ()
-                       for t in self.translations.values ()])
-        s += ' </tr>\n'
-        s += ''.join ([i.html_status (numbering) for i in self.includes])
-
-        if self.level[1] == 0:  # if self is a master document
-            s += '</table>\n<p></p>\n'
-        return s
-
-    def text_status (self, numbering=SectionNumber (), colspec=[48,12]):
-        if self.title == 'Untitled' or not self.translations:
-            return ''
-
-        s = ''
-        if self.level[1] == 0: # if self is a master document
-            s += (self.print_title (numbering) + ' ').ljust (colspec[0])
-            s += ''.join (['%s'.ljust (colspec[1]) % l
-                           for l in self.translations])
-            s += '\n'
-            s += ('Section titles (%d)' % \
-                      sum (self.word_count)).ljust (colspec[0])
-
-        else:
-            s = '%s (%d) ' \
-                % (self.print_title (numbering), sum (self.word_count))
-            s = s.ljust (colspec[0])
-
-        s += ''.join ([t.text_status ().ljust(colspec[1])
-                       for t in self.translations.values ()])
-        s += '\n\n'
-        s += ''.join ([i.text_status (numbering) for i in self.includes])
-
-        if self.level[1] == 0:
-            s += '\n'
-        return s
-
-
-update_category_word_counts_re = re.compile (r'(?ms)^-(\d+)-(.*?\n)\d+ *total')
-
-counts_re = re.compile (r'(?m)^(\d+) ')
-
-def update_category_word_counts_sub (m):
-    return '-' + m.group (1) + '-' + m.group (2) + \
-        str (sum ([int (c)
-                   for c in counts_re.findall (m.group (2))])).ljust (6) + \
-        'total'
-
-
-progress ("Reading documents...")
-
-tely_files = \
-    buildlib.read_pipe ("find -maxdepth 2 -name '*.tely'")[0].splitlines ()
-tely_files.sort ()
-master_docs = [MasterTelyDocument (os.path.normpath (filename))
-               for filename in tely_files]
-master_docs = [doc for doc in master_docs if doc.translations]
-
-main_status_page = open ('translations.template.html.in').read ()
-
-enabled_languages = [l for l in langdefs.LANGDICT
-                     if langdefs.LANGDICT[l].enabled
-                     and l != 'en']
-lang_status_pages = \
-    dict ([(l, open (os.path.join (l, 'translations.template.html.in')). read ())
-           for l in enabled_languages])
-
-progress ("Generating status pages...")
-
-date_time = buildlib.read_pipe ('LANG= date -u')[0]
-
-main_status_html = last_updated_string % date_time
-main_status_html += '\n'.join ([doc.html_status () for doc in master_docs])
-
-html_re = re.compile ('<html>', re.I)
-end_body_re = re.compile ('</body>', re.I)
-
-html_header = '''<html>
-<!-- This page is automatically generated by translation-status.py from
-translations.template.html.in; DO NOT EDIT !-->'''
-
-main_status_page = html_re.sub (html_header, main_status_page)
-
-main_status_page = end_body_re.sub (main_status_html + '\n</body>',
-                                    main_status_page)
-
-open ('translations.html.in', 'w').write (main_status_page)
-
-for l in enabled_languages:
-    date_time = buildlib.read_pipe ('LANG=%s date -u' % l)[0]
-    lang_status_pages[l] = translation[l] (last_updated_string) % date_time + lang_status_pages[l]
-    lang_status_page = html_re.sub (html_header, lang_status_pages[l])
-    html_status = '\n'.join ([doc.translations[l].html_status ()
-                              for doc in master_docs
-                              if l in doc.translations])
-    lang_status_page = end_body_re.sub (html_status + '\n</body>',
-                                        lang_status_page)
-    open (os.path.join (l, 'translations.html.in'), 'w').write (lang_status_page)
-
-main_status_txt = '''Documentation translations status
-Generated %s
-NT = not translated
-FT = fully translated
-
-''' % date_time
-
-main_status_txt += '\n'.join ([doc.text_status () for doc in master_docs])
-
-status_txt_file = 'out/translations-status.txt'
-progress ("Writing %s..." % status_txt_file)
-open (status_txt_file, 'w').write (main_status_txt)
-
-translation_instructions_file = 'TRANSLATION'
-progress ("Updating %s..." % translation_instructions_file)
-translation_instructions = open (translation_instructions_file).read ()
-
-for doc in master_docs:
-    translation_instructions = doc.update_word_counts (translation_instructions)
-
-for html_file in re.findall (r'(?m)^\d+ *(\S+?\.html\S*?)(?: |$)',
-                             translation_instructions):
-    word_count = sgml_word_count (open (html_file).read ())
-    translation_instructions = update_word_count (translation_instructions,
-                                                  html_file,
-                                                  word_count)
-
-for po_file in re.findall (r'(?m)^\d+ *(\S+?\.po\S*?)(?: |$)',
-                           translation_instructions):
-    word_count = po_word_count (open (po_file).read ())
-    translation_instructions = update_word_count (translation_instructions,
-                                                  po_file,
-                                                  word_count)
-
-translation_instructions = \
-    update_category_word_counts_re.sub (update_category_word_counts_sub,
-                                        translation_instructions)
-
-open (translation_instructions_file, 'w').write (translation_instructions)
diff --git a/buildscripts/update-snippets.py b/buildscripts/update-snippets.py
deleted file mode 100644 (file)
index 6b70c79..0000000
+++ /dev/null
@@ -1,102 +0,0 @@
-#!@PYTHON@
-# update-snippets.py
-
-# USAGE:  update-snippets.py REFERENCE-DIR TARGET-DIR FILES
-#
-# update ly snippets in TARGET-DIR/FILES with snippets from REFERENCE-DIR/FILES
-#
-# More precisely, each existing FILE in TARGET-DIR is matched to the FILE in
-# REFERENCE-DIR (it the latter does not exist, a warning is given).
-#
-# Shell wildcards expansion is performed on FILES.
-# This script currently supports Texinfo format.
-# Ly snippets preceded with a line containing '@c KEEP LY' in TARGET-DIR/FILES
-# will not be updated.
-# An error occurs if REFERENCE-DIR/FILE and TARGET-DIR/FILE do not have the
-# same snippets count.
-
-import sys
-import os
-import glob
-import re
-
-print "update-snippets.py"
-
-comment_re = re.compile (r'(?<!@)(@c(?:omment)? .*?\n|^@ignore\n.*?\n@end ignore\n)', re.M | re.S)
-snippet_re = re.compile (r'^(@lilypond(?:file)?(?:\[.*?\])?\s*\{.+?\}|@lilypond(?:\[.*?\])?(?:.|\n)+?@end lilypond)', re.M)
-
-
-def snippet_split (l):
-    r = []
-    for s in [s for s in l if s]:
-        if s.startswith ('@c ') or s.startswith ('@ignore\n') or s.startswith ('@comment '):
-            r.append(s)
-        else:
-            r += [t for t in snippet_re.split (s) if t]
-    return r
-
-def count_snippet (l):
-    k = 0
-    for s in l:
-        if s.startswith ('@lilypond'):
-            k += 1
-    return k
-
-def find_next_snippet (l, k):
-    while not l[k].startswith ('@lilypond'):
-        k += 1
-    return k
-
-exit_code = 0
-
-def update_exit_code (code):
-    global exit_code
-    exit_code = max (code, exit_code)
-
-ref_dir, target_dir = sys.argv [1:3]
-file_patterns = sys.argv[3:]
-
-total_snippet_count = 0
-changed_snippets_count = 0
-
-for pattern in file_patterns:
-    files = glob.glob (os.path.join (target_dir, pattern))
-    for file in files:
-        ref_file = os.path.join (ref_dir, os.path.basename (file))
-        if not os.path.isfile (ref_file):
-            sys.stderr.write ("Warning: %s: no such file.\nReference file for %s not found.\n" % (ref_file, file))
-            continue
-        f = open (file, 'r')
-        target_source = comment_re.split (f.read ())
-        f.close ()
-        if reduce (lambda x, y: x or y, ['-- SKELETON FILE --' in s for s in target_source]):
-            sys.stderr.write ("Skipping skeleton file %s\n" % file)
-            continue
-        g = open (ref_file, 'r')
-        ref_source = comment_re.split (g.read ())
-        target_source = snippet_split (target_source)
-        ref_source = snippet_split (ref_source)
-        if '' in target_source or '' in ref_source:
-            raise "AAAAARGH: unuseful empty string"
-        snippet_count = count_snippet (target_source)
-        if not snippet_count == count_snippet (ref_source):
-            update_exit_code (1)
-            sys.stderr.write ("Error: %s and %s have different snippet counts.\n\
-Update translation by at least adding a @lilypond block where necessary, then rerun this script.\n" % (ref_file, file))
-            continue
-        total_snippet_count += snippet_count
-        c = 0
-        k = -1
-        for j in range (len (target_source)):
-            if target_source[j].startswith ('@lilypond'):
-                k = find_next_snippet (ref_source, k+1)
-                if j > 0 and (not target_source[j-1].startswith ('@c KEEP LY')) and target_source[j] != ref_source[k]:
-                    target_source[j] = ref_source[k]
-                    c += 1
-                    changed_snippets_count += 1
-        f = open (file, 'w')
-        f.write (''.join (target_source))
-        sys.stderr.write ('%s: %d/%d snippets updated\n' % (file, c, snippet_count))
-
-sys.stderr.write ('\nTotal: %d snippets, %d updated snippets.\n' % (total_snippet_count, changed_snippets_count))
-sys.exit (exit_code)
diff --git a/buildscripts/www_post.py b/buildscripts/www_post.py
deleted file mode 100644 (file)
index 29f80cf..0000000
+++ /dev/null
@@ -1,100 +0,0 @@
-#!@PYTHON@
-
-## This is www_post.py. This script is the main stage
-## of toplevel GNUmakefile local-WWW-post target.
-
-# USAGE: www_post PACKAGE_NAME TOPLEVEL_VERSION OUTDIR TARGETS
-# please call me from top of the source directory
-
-import sys
-import os
-import re
-
-import langdefs
-
-import mirrortree
-import postprocess_html
-
-package_name, package_version, outdir, targets = sys.argv[1:]
-targets = targets.split (' ')
-outdir = os.path.normpath (outdir)
-doc_dirs = ['input', 'Documentation', outdir]
-target_pattern = os.path.join (outdir, '%s-root')
-
-# these redirection pages allow to go back to the documentation index
-# from HTML manuals/snippets page
-static_files = {
-    os.path.join (outdir, 'index.html'):
-        '''<META HTTP-EQUIV="refresh" content="0;URL=Documentation/index.html">
-<html><body>Redirecting to the documentation index...</body></html>\n''',
-    os.path.join (outdir, 'VERSION'):
-        package_version + '\n',
-    os.path.join ('input', 'lsr', outdir, 'index.html'):
-        '''<META HTTP-EQUIV="refresh" content="0;URL=../../index.html">
-<html><body>Redirecting to the documentation index...</body></html>\n'''
-    }
-
-for l in langdefs.LANGUAGES:
-    static_files[os.path.join ('Documentation', 'user', outdir, l.file_name ('index', '.html'))] = \
-                                  '<META HTTP-EQUIV="refresh" content="0;URL=../' + l.file_name ('index', '.html') + \
-                                  '">\n<html><body>Redirecting to the documentation index...</body></html>\n'
-
-for f, contents in static_files.items ():
-    open (f, 'w').write (contents)
-
-sys.stderr.write ("Mirrorring...\n")
-dirs, symlinks, files = mirrortree.walk_tree (
-    tree_roots = doc_dirs,
-    process_dirs = outdir,
-    exclude_dirs = '(^|/)(' + r'|po|out|out-test|.*?[.]t2d|\w*?-root)(/|$)|Documentation/(' + '|'.join ([l.code for l in langdefs.LANGUAGES]) + ')',
-    find_files = r'.*?\.(?:midi|html|pdf|png|txt|i?ly|signature|css)$|VERSION',
-    exclude_files = r'lily-[0-9a-f]+.*\.(pdf|txt)')
-
-# actual mirrorring stuff
-html_files = []
-hardlinked_files = []
-for f in files:
-    if f.endswith ('.html'):
-        html_files.append (f)
-    else:
-        hardlinked_files.append (f)
-dirs = [re.sub ('/' + outdir, '', d) for d in dirs]
-while outdir in dirs:
-    dirs.remove (outdir)
-dirs = list (set (dirs))
-dirs.sort ()
-
-strip_file_name = {}
-strip_re = re.compile (outdir + '/')
-for t in targets:
-    out_root = target_pattern % t
-    strip_file_name[t] = lambda s: os.path.join (target_pattern % t, (strip_re.sub ('', s)))
-    os.mkdir (out_root)
-    map (os.mkdir, [os.path.join (out_root, d) for d in dirs])
-    for f in hardlinked_files:
-        os.link (f, strip_file_name[t] (f))
-    for l in symlinks:
-        p = mirrortree.new_link_path (os.path.normpath (os.readlink (l)), os.path.dirname (l), strip_re)
-        dest = strip_file_name[t] (l)
-        if not os.path.exists (dest):
-            os.symlink (p, dest)
-
-    ## ad-hoc renaming to make xrefs between PDFs work
-    os.rename (os.path.join (out_root, 'input/lsr/lilypond-snippets.pdf'),
-               os.path.join (out_root, 'Documentation/user/lilypond-snippets.pdf'))
-
-# need this for content negotiation with documentation index
-if 'online' in targets:
-    f = open (os.path.join (target_pattern % 'online', 'Documentation/.htaccess'), 'w')
-    f.write ('#.htaccess\nDirectoryIndex index\n')
-    f.close ()
-
-postprocess_html.build_pages_dict (html_files)
-for t in targets:
-    sys.stderr.write ("Processing HTML pages for %s target...\n" % t)
-    postprocess_html.process_html_files (
-        package_name = package_name,
-        package_version = package_version,
-        target = t,
-        name_filter = strip_file_name[t])
-
index da0123311f405c6f5d2a378eadd52a50398de12f..71530a30c0cfd9c2da9049b9470bdd9812eb4192 100644 (file)
@@ -120,7 +120,6 @@ GUILE_LDFLAGS = @GUILE_LDFLAGS@
 ICFLAGS = @ICFLAGS@
 ILDFLAGS = @ILDFLAGS@
 INIMETAFONT = @INIMETAFONT@
-KPATHSEA_LIBS = @KPATHSEA_LIBS@
 LD = @LD@
 LINK_GXX_STATICALLY = @LINK_GXX_STATICALLY@
 LN = @LN@
index f9f5c622eaf8a8554bbff42f7ab9f267b54c4797..d8f1199f23311d847de6c213b59771d0f8a78a5c 100644 (file)
@@ -76,7 +76,7 @@ else
       NCSB_FILE=`$FCMATCH --verbose "Century Schoolbook L:style=$style" | grep 'file:' | grep -v "\.ttf"`
 
       NCSB_FILE=`echo $NCSB_FILE | sed 's/^.*"\(.*\)".*$/\1/g'`
-      NCSB_FILE=`$PYTHON "$srcdir/buildscripts/readlink.py" $NCSB_FILE`
+      NCSB_FILE=`$PYTHON "$srcdir/scripts/auxiliar/readlink.py" $NCSB_FILE`
       NCSB_SOURCE_FILES="$NCSB_FILE $NCSB_SOURCE_FILES"
     done
   else
@@ -189,7 +189,7 @@ STEPMAKE_GUILE(OPTIONAL)
 STEPMAKE_PERL(OPTIONAL)
 
 STEPMAKE_PROGS(MAKEINFO, makeinfo, REQUIRED, 4.11)
-STEPMAKE_PROGS(TEXI2HTML, texi2html, OPTIONAL, 1.79)
+STEPMAKE_PROGS(TEXI2HTML, texi2html, OPTIONAL, 1.80)
 
 AC_DEFINE_UNQUOTED(FLOWER_VERSION, "${FULL_FLOWER_VERSION}")
 
index 0eab184cd0d74f0012dfce2808441b71831154a2..9dcdf1ce6ed158339f0473176400d5a64078f3e5 100644 (file)
@@ -16,11 +16,14 @@ include $(depth)/make/stepmake.make
 LILYPOND_WORDS = $(outdir)/lilypond-words.el
 LILYPOND_WORDS_DEPENDS =\
   $(top-src-dir)/lily/lily-lexer.cc \
-  $(buildscript-dir)/lilypond-words.py \
+  $(buildscript-dir)/lilypond-words \
   $(top-src-dir)/scm/markup.scm \
   $(top-src-dir)/ly/engraver-init.ly
 
+$(buildscript-dir)/lilypond-words:
+       make -C $(depth)/scripts/build
+
 $(LILYPOND_WORDS):
-       cd $(top-src-dir) && $(PYTHON) buildscripts/lilypond-words.py --el --dir=$(top-build-dir)/elisp/$(outconfbase)
+       cd $(top-src-dir) && $(buildscript-dir)/lilypond-words --el --dir=$(top-build-dir)/elisp/$(outconfbase)
 
 all: $(LILYPOND_WORDS)
diff --git a/elisp/SConscript b/elisp/SConscript
deleted file mode 100644 (file)
index 380490c..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*-python-*-
-
-Import ('env', 'install', 'src_glob')
-sources = src_glob ('*.el') + ['lilypond-words.el']
-
-e = env.Copy ()
-a = '$PYTHON $srcdir/buildscripts/lilypond-words.py --el --dir=${TARGET.dir}'
-e.Command ('lilypond-words.el',
-          ['#/lily/lily-lexer.cc',
-           '#/buildscripts/lilypond-words.py',
-           '#/scm/markup.scm',
-           '#/ly/engraver-init.ly',],
-          a)
-
-install (sources, env['sharedir_package_version'] + '/elisp')
index de988f9ff5acfc9a66505d2ee4a6a9dce9b4aef4..bc04ed5a387dba3db8fb44c9d11f6aa3718db04c 100644 (file)
@@ -68,7 +68,7 @@ Compares with other text in same context."
   :group 'LilyPond
   :type 'boolean)
 
-(defcustom LilyPond-comment-region "%%$"
+(defcustom LilyPond-comment-region "%%%"
   "*String inserted by \\[LilyPond-comment-region]\
  at start of each line in region."
   :group 'LilyPond
index 30309e39bc4054acb535bbafaa16dba4de8e27be..97778dc460352650fa20ef0621a7426c2f7e0c54 100644 (file)
@@ -3,7 +3,7 @@
 ;;;;
 ;;;; source file of the GNU LilyPond music typesetter
 ;;;;  
-;;;; (c) 1999--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+;;;; (c) 1999--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 ;;;; 
 ;;;; Changed 2001--2003 Heikki Junes <heikki.junes@hut.fi>
 ;;;;    * Add PS-compilation, PS-viewing and MIDI-play (29th Aug 2001)
@@ -766,7 +766,7 @@ command."
   (define-key LilyPond-mode-map "|" 'LilyPond-electric-bar)
   (if (string-match "XEmacs\\|Lucid" emacs-version)
       (define-key LilyPond-mode-map [iso-left-tab] 'LilyPond-autocompletion)
-    (define-key LilyPond-mode-map [iso-lefttab] 'LilyPond-autocompletion))
+    (define-key LilyPond-mode-map [(shift iso-lefttab)] 'LilyPond-autocompletion))
   (define-key LilyPond-mode-map "\C-c\t" 'LilyPond-info-index-search)
   )
 
diff --git a/flower/SConscript b/flower/SConscript
deleted file mode 100644 (file)
index c7e0abd..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-# -*-python-*-
-
-name = 'flower'
-outdir = Dir ('.').path
-
-Import ('env', 'src_glob')
-sources = src_glob ('*.cc')
-
-e = env.Copy ()
-e.Append (CPPPATH = ['#/flower/include', outdir,])
-includes = src_glob ('include/*.hh')
-
-if 1: # ut
-       def test_source (x):
-               x.startswith ('test')
-       test_sources = filter (lambda x: x.startswith ('test'), sources)
-       sources = filter (lambda x: not x.startswith ('test'), sources)
-       ee = e.Copy ()
-       ee.Append (LIBS = [name, 'boost_unit_test_framework'])
-       test = ee.Program ('test' + name, test_sources)
-
-if env['static']:
-       e.Library (name, sources) 
-if not env['static'] or env['shared']:
-       e.SharedLibrary (name, sources)
-
-po = env.Command ('lilypond.po', sources + includes, env['pocommand'])
-env.Alias ('po-update', po)
index 37f735ffe9a24a245126494c25ae256420e805b2..9a2fcc4c733dd6ac0971164763bb0ac8e9bdeb41 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the Flower Library
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "cpu-timer.hh"
index 49b5518f362264b6740476336b55ca6036a2eba3..bedb100a00b26b4ac246e7948dd4c3166795f8f2 100644 (file)
@@ -15,12 +15,10 @@ extern "C" {
   }
 
   void *
-  lily_fopencookie (void *cookie, char const *modes,
-                   lily_cookie_io_functions_t io_funcs)
+  lily_fopencookie (void *cookie,
+                   char const * /* modes */,
+                   lily_cookie_io_functions_t /* io_funcs */)
   {
-    (void) cookie;
-    (void) modes;
-    (void) io_funcs;
     assert (is_memory_stream (cookie));
     return (FILE *) cookie;
   }
index 1eff46be5245226db967269c945aa8e0a92c96bf..2d9f1454fbe6dfc0952e31287ecd4b39fd1e1268 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the Flower Library
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
   Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
index 175357d88962d232328d70f796732ee22ce0b7de..513a146ad609823e2266f02a0ec1ab8c72f429d9 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the Flower Library
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
   Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
index 37a964219dbecc5929968e497d7c5297b8dcafbe..5d8b4259f308e6b32cf02daa8a8667dcca7005ed 100644 (file)
@@ -1,7 +1,7 @@
 /*
   process command line, GNU style.
 
-  this is Copyleft (c) 1996--2007 Han-Wen Nienhuys, <hanwen@xs4all.nl>
+  this is Copyleft (c) 1996--2009 Han-Wen Nienhuys, <hanwen@xs4all.nl>
 */
 
 #include "getopt-long.hh"
index 3e5238b7b46ed0ab4922d302513e6e1247a0fb12..f626aac7498010b6000d2894aacb5bbecb1edc22 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the Flower Library
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef ARITHMETIC_OPERATOR_HH
index 741ce181b685e296a11d5b650c0ecb9216c81465..46b159b14fd109f62a756d6cbf3e83358cc23cf1 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef AXES_HH
index f2cff8a80f11ee4a1a03f0b9c68e60e5045321da..febadd3d551d3537951efa25de7bcbd62c9b0915 100644 (file)
@@ -1,7 +1,7 @@
 /*
   flowerlib
 
-  (c) 1996--2007 Han-Wen Nienhuys
+  (c) 1996--2009 Han-Wen Nienhuys
 */
 #ifndef COMPARE_HH
 #define COMPARE_HH
index 01383b5edb85cc04f11563e187bb0a7ae485cfc0..ff7d5bb0d79371df51302d0782e4343b1b640d5a 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the Flower Library
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef CPU_TIMER_HH
index 5400a5220d727e635f6647e429af6aec725eb761..fab90f19d58affa6a8f786310de0ca2952326d94 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef DIRECTION_HH
index 47c4847c4048825f0d65904a0431a2e861779410..b895dc9c640d626a65040110297bac7d8836731f 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef DRUL_ARRAY_HH
index bd699e0b3151cdf12a207fb39cf6d8795d5a03be..a840aea74f494f6bd9609dc74519316d2a2adcef 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the Flower Library
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef FILE_NAME_HH
index 9a35388c4c08a33686efb39007f5381b3833e768..ee62d94b156b7acc7248818f610f99a3e3983515 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the Flower Library
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef FILE_PATH_HH
index 794ab1ad20a32d6389e87c93620f70e22e186ea7..34e56961a11f874029b02fb202419364b092182c 100644 (file)
@@ -1,7 +1,7 @@
 /*
   flower-proto.hh -- typenames in flowerlib
 
-  (c) 1996--2007 Han-Wen Nienhuys
+  (c) 1996--2009 Han-Wen Nienhuys
 */
 
 #ifndef FLOWER_PROTO_HH
index 3fe85ab9f6a2aeb5dd4ae3f08af1948a5500ad5e..c40e3b3b35c0ecb6010cc3b93ccb09cafd2c409f 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2004--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2004--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef GUILE_COMPATIBILITY_HH
index 8cfcfb637caab1fa09a120ad8f0138415bdfa2b4..f4216736a282d31bc079243b09644921d9e5b1cb 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 1997--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
 #ifndef INTERNATIONAL_HH
index 045b10389e7df10655d5ac88b702d0ef540759d2..a38c14b0fcf3fde52850e3a006f5485130444ffc 100644 (file)
@@ -1,7 +1,7 @@
 /*
   interval.hh -- part of flowerlib
 
-  (c) 1996--2007 Han-Wen Nienhuys
+  (c) 1996--2009 Han-Wen Nienhuys
 */
 
 #ifndef INTERVAL_HH
index 3f5abc8b47945de2d3063b7e3dfbbb9700b9993e..faf9f3db028fc4643b1c38903cbb8a417a597f35 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the Flower Library
 
-  (c) 1996--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1996--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef INTERVAL_TCC
index 9191d6476a2ecb29e1192e74e5c59abe9fe477f4..4378a11aca2c4f83a29e7dd37abe42875fa5f80c 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the flowerlib
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef LIBC_EXTENSION_HH
index d9b32c2ee47569e9c09470e271707c68f06e438d..6706c58878a2f9d94660c93accf514d2be931eea 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the Flower Library
 
-  (c) 2006--2007 Joe Neeman <joeneeman@gmail.com>
+  (c) 2006--2009 Joe Neeman <joeneeman@gmail.com>
 */
 
 #ifndef MATRIX_HH
index 699dea851490f5600558f01e4cf8d6e45f18076c..438463dc09ce613f01df52a17e72790a970e1445 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef MEMORY_STREAM_HH
index 80053a51b6546f71a0172d86580fcb475dd78e4c..9be837ea7465e6ccf9d245e6c10cb8a447a97c9a 100644 (file)
@@ -1,7 +1,7 @@
 /*
   offset.hh -- part of GNU LilyPond
 
-  (c) 1996--2007 Han-Wen Nienhuys
+  (c) 1996--2009 Han-Wen Nienhuys
 */
 
 #ifndef OFFSET_HH
index 820d9214b3e04e0e3af4546559446de16da89a22..bef32612f007d2dcf5de344a11540cac20d4ed11 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the Flower Library
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef PARRAY_HH
index 297bd6c8c15a1d57b7e72f0bb8575b41560e7ce5..54c38a8dbea13b84c308a589cb26d9ab691fbde5 100644 (file)
@@ -2,7 +2,7 @@
 /*
  * poly.h -- routines for manipulation of polynomials in one var
  *
- * (c) 1993--2007 Han-Wen Nienhuys
+ * (c) 1993--2009 Han-Wen Nienhuys
  */
 
 #ifndef POLY_H
index cb21c8d49cb9cfdb017a5248941cd1db5db1b152..6ee7e3a74af232e5ffc919ae97ee419e847b9ab4 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the Flower Library
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef PQUEUE_HH
index fdc3b68fabd2a8847c23f0aa436d067019d7d4b6..ff149008058e7a77e235c104a3cafb274bc0b367 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the Flower Library
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef RATIONAL_HH
index 9186b44d3641358e5b1f987515f68ff9b33a4575..eba8a50b8e75468cf39a7c85089ff382a8107062 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the Flower Library
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef REAL_HH
index 4cff4e2e6045e7708a763a2005499deb4af74c39..4cf82d33fd4f8105fffab208456723deadc039ed 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2006--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 2006--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
 #ifndef STD_STRING_HH
index 3940c938ad807bc51422bad9a114c64c482da06d..1b7ae238561f86b9615205ffb07b9bda9a774bc7 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2006--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 2006--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
 #ifndef STD_VECTOR_HH
index 5f2705b8fab12501a9f615114eb7a32cb7b27e09..1b47e14914910a9cef98f6365029104cb0648148 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2006--2007 Han-Wen Nienhuys <hanwen@lilypond.org>
+  (c) 2006--2009 Han-Wen Nienhuys <hanwen@lilypond.org>
 
 */
 
index 7c97716e4229f573836e28140e6dd1811d363df4..b3b9cf008ec084c74d3a00e2b6d9767e2ea76ab4 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the Flower Library
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef VIRTUAL_METHODS_HH
index d2b1722adcac8b4a32eb663bb49c0561c96ba7fc..eafdccaeca2138c43855fecd88dedcbda092cf92 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef WARN_HH
index 78dc3ddb3c363e5fc7caa6bf176fad280f2d707b..7c27dde6cc38d39fee172dfb288a479a444b39ce 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 1997--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
 #include "config.hh"
index ed45c665620eb42349595f90e5d2aab081cb816b..64f431f4f5589df47505e47652d20d3909265a14 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the Flower Library
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "interval.hh"
index 31c280abe704b388d51d316d38e8cd69582136bc..cca8771e7348b92d0bdd614f2fdcd7d860622546 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the flowerlib
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
   Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
index 863f4bd4def2de6fb785178de84d495ed70e9937..29917e79b0d7a4f0d663fbe428cec31760286aff 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include <cassert>
@@ -102,23 +102,19 @@ Memory_out_stream::writer (void *cookie,
 }
 
 ssize_t
-Memory_out_stream::reader (void *cookie,
-                          char *buffer,
-                          size_t size)
+Memory_out_stream::reader (void * /* cookie */,
+                          char * /* buffer */,
+                          size_t /* size */)
 {
-  (void) cookie;
-  (void) buffer;
-  (void) size;
-
   assert (false);
   return 0;
 }
 
 int
-Memory_out_stream::seeker (void *, off64_t *, int whence)
+Memory_out_stream::seeker (void *,
+                          off64_t *,
+                          int)
 {
-  (void) whence;
-
   assert (false);
   return 0;
 }
index 91ff41be10bf962cab4a524f2be2ea28670c231a..4693c113ef05b488d7cae97ea3f8da09e7852a28 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "offset.hh"
index d9784c277069e363866077b3302c1d5b7887a425..b34700b2d0d77dadf92a32d66074926708499e30 100644 (file)
@@ -1,7 +1,7 @@
 /*
   poly.cc -- routines for manipulation of polynomials in one var
 
-  (c) 1993--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1993--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "polynomial.hh"
index ff32704f85eb0bd7167ae1b83327fb8ea07bca7f..f1d661a736fc8aac67e07c367e7442698e20c63e 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the Flower Library
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "rational.hh"
index 92946a63f8aa950d3b2fa1f8f6239c1a72dbc380..285c51883c5d1fc0a7727816a3e99ab0e5da2e03 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2006--2007  Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 2006--2009  Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
 #include "std-string.hh"
index 52631a866592661850c77c0c19053d1e35fd1c3e..8529477cde86f7f1c2efecd1f2b2dc14c5184ceb 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the Flower Library
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "warn.hh"
diff --git a/input/SConscript b/input/SConscript
deleted file mode 100644 (file)
index 361c902..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-# -*-python-*-
-
-Import ('env', 'mutopia')
-mutopia ()
index 9e5b9dbe4bb9776175d0d3446e85cd730437cd18..25c6a2ba570a0bc1423a870bc422e4e4673384f0 100644 (file)
@@ -14,7 +14,7 @@
 
 I = \once \override NoteColumn #'ignore-collision = ##t
 
-\version "2.11.61"
+\version "2.12.0"
 
 staffPiano = \new PianoStaff {
   \set Score.timing = ##f
index 04655ddbb36862d62ee1a1d1a2dc82c1b8bb6c72..740a025086fa395377590bbfa370a68b62684b35 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.61"
+\version "2.12.0"
 
 \layout {
   indent = #0
index 8dfcae424c686625f4f447fa969db9d570e31dd6..d385da139e491e2fe2460c0d14e72af6285e5357 100644 (file)
@@ -21,7 +21,7 @@
 % Copyright 2006 for the entire score;
 % All rights reserved by the composer.
 
-\version "2.11.61"
+\version "2.12.0"
 
 \include "english.ly"
 \include "cary-layout.ly"
                                \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 #'(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 #'(bound-details left padding) = #0.5
+                               \override TextSpanner #'(bound-details right padding) = #0.5
                                \override TextSpanner #'staff-padding = #4
                        } {
                                
index a4ea980eee860780cea644ce562cba7fa854c98f..517be6e0bc2cdaf2455275f2f1cb9506d38b2790 100644 (file)
@@ -18,4 +18,4 @@ also included in the user-manual.
 %}
 
 %% Optional version number
-\version "2.11.61"
+\version "2.12.0"
index 6deaa3d0a2a6daef74e07b9a3bf876e86d6aab91..64282ab3c236147b28ad66a0580e3314e8201b21 100644 (file)
@@ -17,5 +17,5 @@ also included in the user-manual.
 %}
 
 %% Optional version number
-\version "2.11.61"
+\version "2.12.0"
 
index c2827edb881565519bc6786c0eb7544ec271b9c8..34291864c993aae00b8e6a8428184a437370373c 100644 (file)
@@ -33,4 +33,4 @@ also included in the user-manual.
 %}
 
 %% Optional version number
-\version "2.11.61"
+\version "2.12.0"
index 7a420afbd3327a0424f2416ad6a3cbef1166bcf2..3d88381fc5a039ee1601667cf03bdb76a7f11d97 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.61"
+\version "2.12.0"
 
 \header {
     composer = "ARTHUR GRAY"
index f91dacd38d76370acdd7c6f70adcbacb75f3ffbc..e479c09c0eebc7d26f615b4a816641c434e20639 100644 (file)
@@ -22,7 +22,7 @@ IN_ITELY_FILES = $(call src-wildcard,*-intro.itely)
 GENERATED_ITELY_FILES = $(IN_ITELY_FILES:%-intro.itely=$(outdir)/%.itely)
 
 $(outdir)/%.itely: %-intro.itely %.snippet-list
-       xargs $(PYTHON) $(buildscript-dir)/lys-to-tely.py -f doctitle,texidoc,verbatim --name=$@ --template=$< < $(filter %.snippet-list, $^)
+       xargs $(LYS_TO_TELY) -f doctitle,texidoc,verbatim --name=$@ --template=$< < $(filter %.snippet-list, $^)
 
 $(outdir)/lilypond-snippets.texi: $(GENERATED_ITELY_FILES) $(LY_FILES)
 
index 1906148776d36dab7a81cd11795bb77bcd3170bc..8c8683f2165a67672b45fe5b3e1297df84b73667 100644 (file)
@@ -3,7 +3,7 @@ http://lsr.dsi.unimi.it/
 
 To update this directory, do at top of the source tree
 
-buildscripts/makelsr.py DIR
+scripts/auxiliar/makelsr.py DIR
 
 where DIR is the directory unpacked from lsr-snippets-doc-DATE tarball
 available on http://lsr.dsi.unimi.it/download.
diff --git a/input/lsr/SConscript b/input/lsr/SConscript
deleted file mode 100644 (file)
index c534e35..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-# -*-python-*-
-
-Import ('env', 'collate')
-collate (title = 'LilyPond Examples')
index 7b836a29251efa673100c45c9297bd1ab596d52e..c5c6a4f2a0c9dc271aaea4fededd13498c23fcbf 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "keyboards"
index 2e2a8a22cffe0f340ff7f817431cfd55938baf2e..9a601066e155e1440c828cc4653bb7452f000467 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "chords, ancient-notation, contexts-and-engravers"
@@ -15,11 +15,13 @@ dentro de un contexto @code{Staff}). Se puede elegir entre
 centrado) y @code{#DOWN} (o @code{#-1}, abajo).
 
 Como podemos ver, esta propiedad se puede cambiar tantas veces
-como queramos. Utilice @code{\\once \\override} si no quiere que el
+como queramos.  Utilice @code{\\once \\override} si no quiere que el
 truco se aplique a toda la partitura.
 
 "
   doctitlees = "Añadir un bajo cifrado encima o debajo de las notas"
+  
+  doctitlefr = "Ajout d'une basse chiffrée au-dessus ou au-dessous des notes"
 
   texidoc = "
 When writing a figured bass, here's a way to specify if you want your
index 10e277199e4bc91444b588d662e5025bc8d7808e..e03a735968fb4e6279bb6861b84449efd012c11e 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "pitches, staff-notation, vocal-music"
index cf7fe1cdc71382581264a9cc0f624f7bb37b7228..8968befed7a917ad2478492d9a123b708b1ef725 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "staff-notation, contexts-and-engravers, breaks"
index 12aabcf1637b2a8844b5a70b144f939f0a356f18..a62e7153bf38b57ed75b7b5aed720850770741da 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "staff-notation, contexts-and-engravers"
index 838f6beca4ace7e159f222f513cc54b33ff7efc3..9987f83c5f2385659e221948a46655a4c9594143 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "chords"
@@ -13,6 +13,14 @@ los nombres de acorde @code{ChordNames}, incluya el grabador
 "
   doctitlees = "Añadir barras de compás al contexto de nombres de acorde (ChordNames)"
 
+%% Translation of GIT committish :33f623301a41fcc53efadf96bca1c72834763415
+  texidocde = "
+Um Taktstriche in einem @code{ChordNames}-Kontext anzeigen zu lassen, muss der
+@code{Bar_engraver} hinzugefügt werden.
+
+"
+  doctitlede = "Tatkstriche in einen ChordNames-Kontext hinzufügen"
+
   texidoc = "
 To add bar line indications in the @code{ChordNames} context, add the
 @code{Bar_engraver}.
index 177c78385586d57a9f53b2828ceb1c92b6802803..3424637ffa8ed7c6ce47c7a212641bebdafec0cd 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "rhythms, expressive-marks"
@@ -39,7 +39,7 @@ sections (enclosed within curly braces).
 {
   r16[ g16 \times 2/3 { r16 e'8] }
   g16( a \times 2/3 { b d e') }
-  g8[( a \times 2/3 { b d') e']~ }
+  g8[( a \times 2/3 { b d') e'] ~ }
   \time 2/4
   \times 4/5 { e'32\( a b d' e' } a'4.\)
 }
index 84d2d34d144e32a9c2ae3b364dafd4518d0f74f1..0a8d41a6f3a5c7533097e17fc564c023aa78a525 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "rhythms, percussion"
@@ -17,6 +17,20 @@ de líneas.
 "
   doctitlees = "Escritura de partes de percusión"
 
+  texidocfr = "
+Grâce à la puissance des outils préconfigurés tels que la fonction
+@code{\\drummode} et le contexte @code{DrumStaff}, la saisie de 
+parties pour percussions est extrêmement simplifiée : chaque composant
+d'une batterie trouve sa place sur une portée dédiée (avec une clef 
+spécifique) et les têtes de note sont spécifiques à chaque élément.  
+Il est également possible d'affecter un symbole particulier à chaque 
+élément, tout comme de restreindre le nombre de lignes de la portée.
+
+"
+
+  doctitlefr = "Ajout de parties de batterie"
+
+
   texidoc = "
 Using the powerful pre-configured tools such as the @code{\\drummode}
 function and the @code{DrumStaff} context, inputting drum parts is
index f0c627e3e1f3dcab1b9f05a6d6a9dd67d4b16fc3..1d1f1ca953c573112870efaa62ff725f44a62120 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "editorial-annotations, fretted-strings"
index 885e9f09305346c2d16275d9a990dd52c6e8be84..26ec5121f0ff061e0a395d1b21abd9db350ab633 100644 (file)
@@ -1,10 +1,17 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "fretted-strings"
 
+  texidocfr = "Ajout de doigtés à des tablatures"
+
+  doctitlefr = "
+L'ajout de doigtés à des tablatures s'obtient en conjuguant des
+@code{\\markup} et des @code{\\finger}.
+"
+
   texidoc = "
 To add fingerings to tablatures, use a combination of @code{\\markup}
 and @code{\\finger}. 
index c8a370e57d34163b1f6c0aa0a6d7b16c1c4dc721..1ae68ab0674bccb74d0bf6fa606e6ae7a7a22d88 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "expressive-marks"
@@ -26,6 +26,6 @@ objects in parentheses.  The associated grob is
   c2-\parenthesize ->
   \override ParenthesesItem #'padding = #0.1
   \override ParenthesesItem #'font-size = #-4
-  <d \parenthesize fis a>2 
+  <d \parenthesize f a>2 
 }
 
index 1afd80eb5414864cadef37a32be8fbe0e728a319..9b8edee9b94a01e83b1c6e967eb61d3d85b4ef8b 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "titles"
@@ -8,9 +8,15 @@
   texidoces = "
 Con algo de código de Scheme, se puede añadir fácilmente la fecha
 actual a una partitura.
-
 "
   doctitlees = "Añadir la fecha actual a una partitura"
+  
+  texidocfr = "
+Avec un peu de code Scheme, voici comment ajouter facilement
+la date du jour à votre partition.
+"
+  
+  doctitlefr = "Ajout de la date du jour à une partition"
 
   texidoc = "
 With a little Scheme code, the current date can easily be added to a
index 816c195e7a411dcc88265f16b9382746e6425712..310e2a7ab7876a411086d04668d64f8cb9e10846 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "repeats"
@@ -16,6 +16,17 @@ también el fragmento de código \"Volta multi staff\".
 "
   doctitlees = "Añadir corchetes de primera y segunda vez a más pentagramas"
 
+%% Translation of GIT committish :<0364058d18eb91836302a567c18289209d6e9706>
+  texidocde = "
+Der @code{Volta_engraver} befindet sich im @code{Score}-Kontext und Klammern
+werden deshalb nur auf dem obersten System dargestellt.  Das kann umgangen
+werden, indem man den @code{Volta_engraver} zu dem @code{Staff}-Kontext
+hinzufügt, in dem die Klammern zusätzlichen vorkommen sollen.  Siehe auch
+das \"Volta multi staff\"-Schnipsel.
+
+"
+  doctitlede = "Volta-Klammern zu zusätzlichen Systemen hinzufügen"
+
   texidoc = "
 The @code{Volta_engraver} by default resides in the @code{Score}
 context, and brackets for the repeat are thus normally only printed
index 25eabeb6f208c636277c30b12220100269da041b..c4b614c2cd1b0557f2043cd961a83e240d2107ab 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "simultaneous-notes"
@@ -14,6 +14,17 @@ context-spec-music.
 
 "
 
+%% Translation of GIT committish :<0364058d18eb91836302a567c18289209d6e9706>
+  texidocde = "
+Ein einigen Fällen von sehr komplexer polyphoner Musik sind zusätzliche
+Stimmen notwendig, um Zusammestöße zwischen den Noten zu vermeiden.
+Wenn mehr als vier parallele Stimmen benötigt werden, können zusätzliche
+Stimmen definiert werden, indem eine Variable mit der Funktion
+@code{context-spec-music} definiert wird.
+
+"
+  doctitlede = "Zusätzliche Stimmen, um Zusammenstöße zu vermeiden"
+
   texidoc = "
 In some instances of complex polyphonic music, additional voices are
 necessary to prevent collisions between notes.  If more than four
index 57c93e78fbf83fc23cfce6f7f665858607bb4e66..a5040cc205f294c0957f9ec74a34f84e5a8febf6 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "text, vocal-music, spacing"
@@ -12,6 +12,14 @@ letra más cerca del pentagrama.
 "
   doctitlees = "Ajuste del especiado vertical de la letra"
 
+  texidocfr = "
+Cet extrait illustre la manière de rapprocher la ligne de paroles 
+de la portée.
+
+"
+  doctitlefr = "Ajustement de l'espacement vertical des paroles"
+
+
   texidoc = "
 This snippet shows how to bring the lyrics line closer to the staff.
 
index fd0d2be34fc352640b9aac5161b795d97713c596..5cec75bc2bf2b88dd50baa1cea57f12145de0605 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "expressive-marks"
@@ -12,6 +12,14 @@ caídas y subidas de tono («falls» y «doits»).
 
 "
   doctitlees = "Ajustar la forma de las subidas y caídas de tono"
+  
+%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a>
+texidocde = "
+Die @code{shortest-duration-space}-Eigenschaft kann verändert werden, um
+das Aussehen von unbestimmten Glissandi anzupassen.
+
+"
+  doctitlede = "Das Aussehen von unbestimmten Glissandi anpassen"
 
   texidoc = "
 The @code{shortest-duration-space} property may have to be tweaked to
index 5860d8b62e2621e1dbb79e96635f1c68fc46c682..3ca55f8f16607ae35fe905c34ce10853d70c43a8 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from input/new
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   texidoces = "
index ac7575270d49634d92c14aee08587fca6d182fea..2ea272d9fd2e68c4bce9f50fc395c37a5ecc3392 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from input/new
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   texidoces = "
@@ -18,6 +18,23 @@ debe hacer este ajuste para todos los pentagramas).
 "
   doctitlees = "Alinear marcas con varios objetos de notación"
 
+%% Translation of GIT committish :0364058d18eb91836302a567c18289209d6e9706
+  texidocde = "
+Wenn angegeben, können Textzeichen auch an anderen Objekten als Taktstrichen
+ausgerichtet werden.  Zu diesen Objekten gehören @code{ambitus},
+@code{breathing-sign}, @code{clef}, @code{custos}, @code{staff-bar},
+@code{left-edge}, @code{key-cancellation}, @code{key-signature} und
+@code{time-signature}.
+
+In diesem Fall werden die Zeichen horizontal über dem Objekt zentriert.
+Diese Ausrichtung kann auch geändert werden, wie die zweite Zeile
+des Beispiels zeigt.  In einer Partitur mit vielen Systemen sollte
+diese Einstellung für alle Systeme gemacht werden.
+
+"
+
+  doctitlede = "Zeichen an verschiedenen Notationsobjekten ausrichten"
+
   lsrtags = "text"
   texidoc = "If specified, text marks may be aligned with notation
 objects other than bar lines.  These objects include @code{ambitus},
diff --git a/input/lsr/aligning-objects-created-with-the--mark-command.ly b/input/lsr/aligning-objects-created-with-the--mark-command.ly
new file mode 100644 (file)
index 0000000..6075e5f
--- /dev/null
@@ -0,0 +1,27 @@
+%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
+%% This file is in the public domain.
+\version "2.13.0"
+
+\header {
+  lsrtags = "text"
+
+  texidoc = "
+By default the @code{\\mark} command centers objects over a bar line. 
+This behavior can be modified to align at right or left.  
+
+"
+  doctitle = "Aligning objects created with the \\mark command"
+} % begin verbatim
+
+\relative c' {
+  c1 \mark "(Center)"
+  c1
+  \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
+  \mark "(Right)"
+  c1
+}
+
index 50b0bb98d999c909812a9da02490afd5455f1917..a8d1a7a44e1267d1d52dabb7d5393091ff05aac2 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "editorial-annotations, fretted-strings, spacing"
@@ -13,6 +13,21 @@ cancelar.
 "
   doctitlees = "Permitir que las digitaciones se impriman dentro del pentagrama"
 
+%% Translation of GIT committish: 3f880f886831b8c72c9e944b3872458c30c6c839
+  texidocfr = "
+L'empilement des indications de doigté se fait par défaut à l'extérieur de la portée.  Néanmoins, il est possible d'annuler ce comportement.
+
+"
+  doctitlefr = "Impression des doigtés à l'intérieur de la portée"
+
+%% Translation of GIT committish :0364058d18eb91836302a567c18289209d6e9706
+  texidocde = "
+Normalerweise werden vertikal orientierte Fingersatzzahlen außerhalb des Systems
+gesetzt.  Das kann aber verändert werden.
+
+"
+  doctitlede = "Fingersatz auch innerhalb des Systems setzen"
+
   texidoc = "
 By default, vertically oriented fingerings are positioned outside the
 staff.  However, this behavior can be canceled.
index fc9ec9b03a9ac4b4475657efd41a5a875b51616f..ceec2e10d9e2dcfbee0b4c61b504802b79d95e34 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "pitches, vocal-music"
index 0ff66ec3adc8174c4c7e4a3089110debe0a5e831..0bc198df6de2cc24930fd0a0323fb18fea4ec34f 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "pitches, vocal-music"
@@ -17,22 +17,24 @@ Accidentals only show up if they are not part of the key signature.
 } % begin verbatim
 
 \layout {
-  ragged-right = ##t
   \context {
     \Voice
     \consists "Ambitus_engraver"
   }
 }
 
-\relative
 <<
   \new Staff {
-    \time  2/4 c4 f' 
+    \relative c' {
+      \time 2/4
+      c4 f'
+    }
   }
-  \new Staff \relative {
-    \time  2/4
-    \key d \major
-    cis as'
+  \new Staff {
+    \relative c' {
+      \time  2/4
+      \key d \major
+      cis4 as'
+    }
   }
 >>
-
index fc0947b14edf7e0648355e398b433758b9d7bebc..c14001f318dd15df7cce86c6f2468f9b30c97c4b 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "editorial-annotations, tweaks-and-overrides"
index f94d4b924334f05058d4d2fe73b523062b7ce7a8..0aeb03d10b6f734faac1f0944e00c2b48564d09c 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "ancient-notation"
@@ -13,6 +13,13 @@ antigua.
 
   doctitlees = "Tipografía de música antigua"
 
+  texidocfr ="
+Voici comment graver la plupart, sinon tous les symboles que
+LilyPond prend en charge en matière de musique ancienne.
+
+"
+  doctitlefr = "Gravure de musique ancienne"
+
   texidoc = "
 Shown here are many (all?) of the symbols that are included in
 LilyPond's support for ancient notation.
index fc795997494d94bb3e46ef4a822d199f94e27454..7d51d8c79f570c67e621005898346cc4b9301738 100644 (file)
@@ -1,19 +1,19 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "ancient-notation, template"
 
   texidoces = "
-Este ejemplo muestra cómo hacer una transcripción moderna de Canto
-Gregoriano. El Canto Gregoriano no tiene compás ni plicas; utiliza
+Este ejemplo muestra cómo hacer una transcripción moderna de canto
+gregoriano. El canto gregoriano no tiene compás ni plicas; utiliza
 solamente cabezas de nota de blanca y de negra, y unas marcas
 especiales que indican silencios de distintas longitudes.
 
 "
 
-  doctitlees = "Plantilla para notación de música antigua (transcripción moderna de Canto Gregoriano)"
+  doctitlees = "Plantilla para notación de música antigua (transcripción moderna de canto gregoriano)"
   
   texidocde = "
 Dieses Beispiel zeigt eine moderne Transkription des Gregorianischen 
index 0033965e2b329ab52b149daff98bb949f5dc909e..22867fb312c6606d692c3c21acb2cd6e4a1271e1 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "ancient-notation, template"
@@ -30,6 +30,19 @@ ein Kompromiss werden die Notenlinien nicht auf dem System, sondern
 zwischen den Systemen geschrieben.
 "
 
+  texidocfr = "
+Lorsque l'on transcrit de la musique mensurale, il est d'usage 
+d'indiquer en début de partition,  par un « incipit », les tonalité 
+et tempo originaux.  De nos jours, les musiciens ont l'habitude de 
+voir des barres de mesure qui les aide à appréhender la structure 
+rythmique.  Ces barres n'existaient pas du temps où ces œuvres ont 
+été écrites ; en fait, la métrique évoluait au fil de la pièce.  Un 
+compromis consiste à imprimer des barres de mesure entre les portées 
+plutôt que sur la portée elle-même.
+
+"
+  doctitle = "Exemples de notation ancienne -- transcription moderne de musique mensurale"
+
   texidoc = "
 When transcribing mensural music, an incipit at the beginning of the
 piece is useful to indicate the original key and tempo. While today
index 87c0c5ba9c3ec4edbe8d83942da21631ea355bfe..8dabc7f59be88d06b87774725f4ce49c453eeaa8 100644 (file)
@@ -1,11 +1,11 @@
-transcription-of-ancient-music-with-incipit.ly
-mensurstriche-layout-bar-lines-between-the-staves.ly
 adding-a-figured-bass-above-or-below-the-notes.ly
-incipit.ly
-chant-or-psalms-notation.ly
-ancient-notation-template----modern-transcription-of-mensural-music.ly
 ancient-fonts.ly
+ancient-notation-template----modern-transcription-of-gregorian-music.ly
+ancient-notation-template----modern-transcription-of-mensural-music.ly
 ancient-time-signatures.ly
+chant-or-psalms-notation.ly
 custodes.ly
-ancient-notation-template----modern-transcription-of-gregorian-music.ly
+incipit.ly
+mensurstriche-layout-bar-lines-between-the-staves.ly
 rest-styles.ly
+transcription-of-ancient-music-with-incipit.ly
index 090f7023c0a9af16916e2145597566567c2b7b4d..74c61301ec887c9802bfcb46dc3cc7e92a7a99f0 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "ancient-notation"
index 9529df41dc3248aed7788f252e6ab96e4d3f33f1..92e111ca8d29738b1e2d6760e598a88245917836 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "pitches, editorial-annotations"
@@ -70,8 +70,6 @@ correspondence between harmonic functions and note head styles.
   doctitle = "Applying note head styles depending on the step of the scale"
 } % begin verbatim
 
-\layout { ragged-right = ##t }
-
 fragment = {
   \key c \major
   c2 d
@@ -97,4 +95,5 @@ fragment = {
       \fragment
     }
   }
+  \layout { ragged-right = ##t }
 }
index 5cf13b86c1ef34d6698f32baa78de60d39bbd2d7..ad51435aa895fc6e23db8ed0f7e388b5b3fbedb8 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from input/new
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   texidoces = "
@@ -14,6 +14,19 @@ cómo podría ser el comienzo de una improvisación @emph{hijaz}:
 "
 doctitlees = "Improvisación de música árabe"
 
+%% Translation of GIT committish :33f623301a41fcc53efadf96bca1c72834763415
+  texidocde = "
+Bei Improvisation oder @emph{taqasim}, die zeitlich frei gespielt
+werden, kann die Taktart ausgelassen werden und @code{\cadenzaOn}
+kann eingesetzt werden.  Es kann nötig sein, den Versetzungszeichenstil
+anzupassen, weil sonst die Versetzungszeichen nur einmal ausgegeben
+werden, da keine Taktlinien gesetzt sind.  Hier ein Beispiel, wie
+der Begin einer @emph{hijaz}-Improvisation aussehen könnte:
+
+"
+
+  doctitlede = "Arabische Improvisation"
+
   lsrtags = "world-music"
   texidoc = "For improvisations or @emph{taqasim} which are
 temporarily free, the time signature can be omitted and
index 3a566710d88557bac411481a5a9c701c92ff9896..0156278c8f00ee762fd8a46ef11e0fd9dc3864cb 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "rhythms"
@@ -22,22 +22,25 @@ specified in @code{beatLength}).
   doctitle = "Automatic beam subdivisions"
 } % begin verbatim
 
-\score {
-  \new Staff \relative c'' {
-    << {
-      \voiceOne
-      \set subdivideBeams = ##t
-      b32[ a g f c' b a g b^"subdivide beams" a g f c' b a g]
-      \oneVoice
-    }
-    \new Voice {
-      \voiceTwo
-      b32_"default"[ a g f c' b a g b a g f c' b a g]
-    } >>
+\new Staff {
+  \relative c'' {
+    <<
+      {
+        \voiceOne
+        \set subdivideBeams = ##t
+        b32[ a g f c' b a g
+        b32^"subdivide beams" a g f c' b a g]
+      }
+      \new Voice {
+        \voiceTwo
+        b32_"default"[ a g f c' b a g
+        b32 a g f c' b a g]
+      }
+    >>
+    \oneVoice
     \set beatLength = #(ly:make-moment 1 8)
     b32^"beatLength 1 8"[ a g f c' b a g]
     \set beatLength = #(ly:make-moment 1 16)
     b32^"beatLength 1 16"[ a g f c' b a g]
   }
 }
-
index 96f477ba7f501ae17f5c31512db99a6b15f1af18..2782d7aa42ccf3bee57d5b1f907a37f6af807911 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "rhythms"
@@ -15,6 +15,18 @@ barrado, este fragmento de código cambia el barrado a pulsos de negra.
 "
   doctitlees = "Barras automáticas de dos en dos en los compases de 4/4 o de 2/2"
 
+%% Translation of GIT committish: 1154b407d42f303a024598296ad36ab6c93e2b5a
+  texidocfr = "
+Dans une métrique simple comme 4/4 ou 2/2, les croches sont ligaturées
+par défaut en deux groupes de quatre.
+
+En utilisant une macro qui modifie le comportement des ligatures 
+automatiques, voici comment obtenir des ligatures basées sur la valeur 
+d'une noire.
+
+"
+  doctitlefr = "Ligature automatique deux par deux, aussi bien en 4/4 qu'en 2/2"
+
   texidoc = "
 In a simple time signature of 2/2 or 4/4, 8th notes are beamed by
 default as two sets of four.
@@ -41,17 +53,21 @@ qBeam = {
 
 \score {
   <<
-    \new Staff \relative c'' {
-      \time 4/4
-      g8^\markup { without the macro } g g g g g g g
-      g8 g g g4 g8 g g
+    \new Staff {
+      \relative c'' {
+        \time 4/4
+        g8-"without the macro" g g g g g g g
+        g8 g g g4 g8 g g
+      }
     }
     %Use the macro
-    \new Staff \relative c'' {
-      \time 4/4
-      \qBeam
-      g8^\markup { with the macro } g g g g g g g
-      g8 g g g4 g8 g g
+    \new Staff {
+      \relative c'' {
+        \time 4/4
+        \qBeam
+        g8-"with the macro" g g g g g g g
+        g8 g g g4 g8 g g
+      }
     }
   >>
   \layout {
diff --git a/input/lsr/avoiding-collisions-with-chord-fingerings.ly b/input/lsr/avoiding-collisions-with-chord-fingerings.ly
new file mode 100644 (file)
index 0000000..fc0a29c
--- /dev/null
@@ -0,0 +1,38 @@
+%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
+%% This file is in the public domain.
+\version "2.13.0"
+
+\header {
+  lsrtags = "rhythms, editorial-annotations, chords, tweaks-and-overrides"
+
+  texidoc = "
+Fingerings and string numbers applied to individual notes will
+automatically avoid beams and stems, but this is not true by default
+for fingerings and string numbers applied to the individual notes of
+chords.  The following example shows how this default behavior can be
+overridden.
+
+"
+  doctitle = "Avoiding collisions with chord fingerings"
+} % begin verbatim
+
+\relative c' {
+  \set fingeringOrientations = #'(up)
+  \set stringNumberOrientations = #'(up)
+  \set strokeFingerOrientations = #'(up)
+  
+  % Default behavior
+  r8
+  <f c'-5>8
+  <f c'\5>8
+  <f c'-\rightHandFinger #2 >8
+  
+  % Corrected to avoid collisions
+  r8
+  \override Fingering #'add-stem-support = ##t
+  <f c'-5>8
+  \override StringNumber #'add-stem-support = ##t
+  <f c'\5>8
+  \override StrokeFinger #'add-stem-support = ##t
+  <f c'-\rightHandFinger #2 >8
+}
diff --git a/input/lsr/beam-endings-in-score-context.ly b/input/lsr/beam-endings-in-score-context.ly
new file mode 100644 (file)
index 0000000..bd0c390
--- /dev/null
@@ -0,0 +1,67 @@
+%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
+%% This file is in the public domain.
+\version "2.13.0"
+
+\header {
+  lsrtags = "rhythms"
+
+  texidoces = "
+Las reglas de final de barra especificadas en el contexto
+@code{Score} se aplican a todos los pentagramas, pero se pueden
+modificar tanto en los niveles de @code{Staff} como de
+@code{Voice}:
+
+"
+  doctitlees = "Finales de barra en el contexto Score"
+
+%% Translation of GIT committish :<0364058d18eb91836302a567c18289209d6e9706>  
+  texidocde = "
+Balkenenderegeln, die im @code{Score}-Kontext definiert werden, wirken
+sich auf alle Systeme aus, können aber auf @code{Staff}- und 
+@code{Voice}-Ebene neu verändert werden:
+
+"
+  doctitlede = "Balkenenden auf Score-Ebene"
+
+  texidoc = "
+Beam-ending rules specified in the @code{Score} context apply to all
+staves, but can be modified at both @code{Staff} and @code{Voice}
+levels: 
+
+"
+  doctitle = "Beam endings in Score context"
+} % begin verbatim
+
+\relative c'' {
+  \time 5/4
+  % Set default beaming for all staves
+  #(score-override-auto-beam-setting '(end * * 5 4) 3 8)
+  #(score-override-auto-beam-setting '(end * * 5 4) 7 8)
+  <<
+    \new Staff {
+      c8 c c c c c c c c c
+    }
+    \new Staff {
+      % Modify beaming for just this staff
+      #(override-auto-beam-setting '(end * * 5 4) 6 8 'Staff)
+      #(revert-auto-beam-setting '(end * * 5 4) 7 8 'Staff)
+      c8 c c c c c c c c c
+    }
+    \new Staff {
+      % Inherit beaming from Score context
+      <<
+        {
+          \voiceOne
+          c8 c c c c c c c c c
+        }
+        % Modify beaming for this voice only
+        \new Voice {
+          \voiceTwo
+          #(override-auto-beam-setting '(end * * 5 4) 6 8)
+          #(revert-auto-beam-setting '(end * * 5 4) 7 8)
+          a8 a a a a a a a a a
+        }
+      >>
+    }
+  >>
+}
index 98fa4b685876c8bfd1969859443a7f63d3873656..c10e69cb4f0b5b047f998760caf90f2e7aceeec9 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "rhythms"
@@ -14,6 +14,16 @@ compás de 7/8, especificamos los finales de barra en 2/8 y 5/8:
 
 "
   doctitlees = "Agrupamiento de las barras en el compás de 7/8"
+  
+%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a>
+texidocde = "
+Es gibt keine automatischen Balkengruppen für 7/8-Takte.  Wenn diese
+Taktart benötigt wird, müssen die Gruppierungen definiert werden.  Um
+beispielsweise alle Noten in 2/8-3/8-2/8 aufzuteilen, müssen Balkenenden
+für 2/8 und 5/8 definiert werden:
+
+"
+  doctitlede = "Balkengruppen für 7/8-Takte"
 
   texidoc = "
 There are no default automatic beam groupings specified for 7/8 time,
index da954b11f23827a13ca864f068f5e7380922501b..5a193f1fe0ab46660bc6a497e65c2f6406ba587f 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "rhythms"
@@ -12,6 +12,15 @@ comportamiento como se muestra aquí:
 
 "
   doctitle = "Barras que atraviesan saltos de línea"
+  
+%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a>
+  
+texidocde = "
+Zeilenumbrüche sind normalerweise während Balken verboten.  Das kann geändert
+werden.
+
+"
+  doctitlede = "Balken über Zeilenumbrüche"
 
   texidoc = "
 Line breaks are normally forbidden when beams cross bar lines. This
index 7695a35d2f2d8e48f2ceec90d426908c3f0b2d75..59d473e183a1eafebbf5d002b79b92310e1419ea 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "editorial-annotations, text"
diff --git a/input/lsr/book-parts.ly b/input/lsr/book-parts.ly
new file mode 100644 (file)
index 0000000..535d59b
--- /dev/null
@@ -0,0 +1,67 @@
+%% Do not edit this file; it is auto-generated from input/new
+%% This file is in the public domain.
+\version "2.13.0"
+
+\header {
+  lsrtags = "paper-and-layout"
+  texidoc = "@code{\\bookpart} can be used to split a book into
+several parts.
+Each part last page can be affected by @code{ragged-bottom-last}.
+Header and footer markups can detect a part last page, and make the
+difference with the book last page.
+"
+  doctitle = "Book parts"
+} % begin verbatim
+
+
+#(set-default-paper-size "a6")
+
+\book {
+
+  %% book paper, which is inherited by all children bookparts
+  \paper {
+    ragged-last-bottom = ##t
+    %% Page footer: add a different part-tagline at part last page
+    oddFooterMarkup = \markup {
+      \column {
+        \fill-line {
+          %% Copyright header field only on book first page.
+          \on-the-fly #first-page \fromproperty #'header:copyright
+        }
+        \fill-line {
+          %% Part tagline header field only on each part last page.
+          \on-the-fly #part-last-page \fromproperty #'header:parttagline
+        }
+        \fill-line {
+          %% Tagline header field only on book last page.
+          \on-the-fly #last-page \fromproperty #'header:tagline
+        }
+      }
+    }
+  }
+
+  %% book header, which is inherited by the first bookpart
+  \header {
+    title = "Book title"
+    copyright = "Copyright line on book first page"
+    parttagline = "Part tagline"
+    tagline = "Book tagline"
+  }
+  
+  \bookpart {
+    %% a different page breaking function may be used on each part
+    \paper { #(define page-breaking optimal-page-breaks) }
+    \header { subtitle = "First part" }
+    \markup { The first book part }
+    \markup { a page break }
+    \pageBreak
+    \markup { first part last page }
+    \markup \wordwrap { with ragged-last-bottom (see the space below this text) }
+  }
+
+  \bookpart {
+    \header { subtitle = "Second part" }
+    { c' }
+  }
+
+}
index d5b54b397987b7fea1a0ff7f07f2deb82378e6ad..0dd9ee20d61c0cf536c898f1470f499a9c358837 100644 (file)
@@ -1,3 +1,3 @@
-removing-the-first-empty-line.ly
-positioning-segno-and-coda-with-line-break.ly
 adding-an-extra-staff-at-a-line-break.ly
+positioning-segno-and-coda-with-line-break.ly
+removing-the-first-empty-line.ly
index 0423e77cea873721ddf677451d441cf06c644668..95ee4ae7497f8e0f08c030fdbf3f633ce61c2b33 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "expressive-marks"
index 8189e8f9e8acf35936753a43358e3d66ed6f2814..472b4704f9a57bf15351609b648955cd594a503e 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from input/new
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   texidoces = "
index ae018eb9835073f78962bcb0581273914e2635c3..089bc53c5f17a320255742017e0a5aedca297fb4 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "expressive-marks, tweaks-and-overrides"
index 454b72eaff1ad26df4029568af07ff1426423e55..d06af548a5622e83e3e222cafa7b8dd9e75a3b60 100644 (file)
@@ -1,10 +1,8 @@
-%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
+%% Do not edit this file; it is auto-generated from input/new
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
-  lsrtags = "expressive-marks, text"
-
   texidoces = "
 Este ejemplo proporciona una función para tipografiar un regulador
 con texto por debajo, como \"molto\" o \"poco\". El ejemplo
@@ -14,26 +12,28 @@ normalmente un objeto, utilizando código de Scheme.
 "
   doctitlees = "Centrar texto debajo de un regulador"
 
+  lsrtags = "expressive-marks, text"
+
   texidoc = "
 This example provides a function to typeset a hairpin (de)crescendo
 with some additional text below it, such as \"molto\" or \"poco\". The
 example also illustrates how to modify the way an object is normally
-printed, using some Scheme code.  
-
+printed, using some Scheme code.
 "
   doctitle = "Center text below hairpin dynamics"
 } % begin verbatim
 
-hairpinWithCenteredText = #(define-music-function (parser location text) (markup?)
+
+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 (ly:text-interface::print grob) X CENTER))
-   X LEFT))
-  \override Voice.Hairpin #'text = $text
+    (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))
 #})
 
 hairpinMolto = \hairpinWithCenteredText \markup { \italic molto }
index 580dc97ec76214e14da0ce789e81226cb48df7cc..1632bc0639dc2f7493e02986dd1933a6cbad9f59 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "expressive-marks, unfretted-strings"
@@ -12,6 +12,23 @@ utilice la siguiente función de Scheme.
 "
   doctitlees = "Cambiar el tamaño de la marca de \\flageolet"
 
+%% Translation of GIT committish: 0099693675b95c7ec6664d7277f22411a14e9c1b
+
+  texidocfr = "
+Il est possible de rapetisser le cercle d'un @code{\\flageolet} grâce 
+à une fonction Scheme. 
+
+"
+  doctitlefr = "Modifier la taille d'un \\flageolet"
+
+%% Translation of GIT committish :33f623301a41fcc53efadf96bca1c72834763415
+  texidocde = "
+Um den @code{\\flageolet}-Kreis kleiner zu machen, kann diese
+Scheme-Funktion eingesetzt werden.
+
+"
+  doctitlede = "\\flageolet-Zeichen verkleinern"
+
   texidoc = "
 To make the @code{\\flageolet} circle smaller use the following Scheme
 function. 
@@ -20,12 +37,13 @@ function.
   doctitle = "Changing \\flageolet mark size"
 } % begin verbatim
 
-smallFlageolet = #(let ((m (make-music 'ArticulationEvent
-                          'articulation-type "flageolet")))
-       (set! (ly:music-property m 'tweaks)
-             (acons 'font-size -3
-                    (ly:music-property m 'tweaks)))
-       m)
+smallFlageolet =
+#(let ((m (make-music 'ArticulationEvent
+                      'articulation-type "flageolet")))
+   (ly:music-set-property! m 'tweaks
+     (acons 'font-size -3
+       (ly:music-property m 'tweaks)))
+  m)
 
 \layout { ragged-right = ##f }
 
index bb04d39c730d8855c93c5421b37cb4a3c3ec2b7f..21c07441923f976689f6fc0391bac607c8523187 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "simultaneous-notes, editorial-annotations, tweaks-and-overrides"
index ca72dc89954c6b14ae9f50c444ec4aca9459a83b..3730051f8478fa29a802606f0a53f735645a3a07 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "rhythms"
@@ -17,6 +17,19 @@ establecido a 5.5 espacios de pentagrama.
 
 "
   doctitlees = "Cambiar el salto de las barras en ángulo"
+  
+%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a>
+texidocde = "
+Balken mit Hälsen in unterschiedliche Richtungen werden automatisch
+erstellt, wenn ein großer Sprung zwischen Tonhöhen gefunden wird.  Dieses
+Verhalten kann durch die @code{auto-knee-gap}-Eigenschaft beeinflusst
+werden.  Ein derartiger Knie-Balken wird erstellt, wenn der Abstand größer
+ist als der Wert von @code{auto-knee-gap} plus der Dicke des Balkens
+(was von der Notendauer und der Neigung des Balkens abhängt).  Der
+Standardwert von @code{auto-knee-gap} ist 5.5 Notensystemabstände.
+
+"
+  doctitlede = "Balken für weit auseinander liegende Noten ändern"
 
   texidoc = "
 Kneed beams are inserted automatically when a large gap is detected
index 46fefc20c71620b62848d23a7df15657f449df5a..7566bd7ed8f8353a6e6580340951f1301270c713 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "chords"
@@ -12,6 +12,14 @@ nombre de un acorde para que sea cualquier elemento de marcado.
 "
   doctitlees = "Modificación del separador de acordes"
 
+%% Translation of GIT committish :33f623301a41fcc53efadf96bca1c72834763415
+  texidocde = "
+Der Trenner zwischen unterschiedlichen Teilen eines Akkordsymbols kann
+beliebeiger Text sein.
+
+"
+  doctitlede = "Akkordsymboltrenner verändern"
+
   texidoc = "
 The separator between different parts of a chord name can be set to any
 markup.
index e2f66c384c904a57ccad8d2e585feed34f95a8e2..e5079576bee5513c7000efc0d4aac4cd533ca40f 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from input/new
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 \header {
  doctitlees = "Cambiar la forma de los silencios multicompás"
  texidoces = "
@@ -11,6 +11,16 @@ muestra una barra normal.  Este número predeterminado de diez se
 puede cambiar sobreescribiendo la propiedad @code{expand-limit}:
 
 "
+
+texidocde = "
+Wenn zehn oder weniger Pausentakte vorkommen, wird eine Reihe von Longa-
+und Brevispausen (auch Kirchenpausen genannt) gesetzt, bei mehr Takten
+wird eine Line mit der Taktanzahl ausgegeben.  Der vorgegebene Wert von
+zehn kann geändert werden, indem man die @code{expand-limit}-Eigenschaft
+setzt:
+"
+  doctitlede = "Die Erscheinung von Pausentakten ändern"
+
   lsrtags = "rhythms,tweaks-and-overrides"
   texidoc = "
 If there are ten or fewer measures of rests, a series of longa
index 2a995ef67b016cadcbcb50b0ff0cd3dc47acd05e..e2b6e1216f7b71c76c601d654d73708a714a57ae 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "contexts-and-engravers, midi"
index 4282b01c028dd19ba06de83f5bb39da00f327c15..602edaa28af160a5771e3f92c00555eb58361da0 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "simultaneous-notes"
@@ -13,6 +13,14 @@ y de unísono:
 "
   doctitlees = "Cambiar los textos de partcombine"
 
+%% Translation of GIT committish :<0364058d18eb91836302a567c18289209d6e9706>
+  texidocde = "
+Wenn Stimmen automatisch kombiniert werden, kann der Text, der für
+Solo- und Unisono-Stellen ausgegeben wird, geändert werden:
+
+"
+  doctitlede = "Partcombine-Text ändern"
+
   texidoc = "
 When using the automatic part combining feature, the printed text for
 the solo and unison sections may be changed:
index 5d64151b02211a7f94779e6e2df44aebe53cdc92..d3d1afef32a969971c839710bfd91d33a1b0899b 100644 (file)
@@ -1,42 +1,37 @@
-%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
+%% Do not edit this file; it is auto-generated from input/new
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "tweaks-and-overrides"
 
   texidoc = "
 The @code{\\applyOutput} command allows the tuning of any layout
-object, in any context. It requires a Scheme function with three
-arguments.
+object, in any context.  It requires a Scheme function with three
+arguments."
 
-"
   doctitle = "Changing properties for individual grobs"
 } % begin verbatim
 
-\layout {
-  ragged-right = ##t
-}
 
 #(define (mc-squared grob grob-origin context)
   (let*
-   (
-     (ifs (ly:grob-interfaces grob))
-     (sp (ly:grob-property grob 'staff-position))
-   )
-   (if (memq 'note-head-interface ifs)
-    (begin
-     (ly:grob-set-property! grob 'stencil ly:text-interface::print)
-     (ly:grob-set-property! grob 'font-family 'roman)
-     (ly:grob-set-property! grob 'text
-      (make-raise-markup -0.5
-       (case sp
-       ((-5) (make-simple-markup "m"))
-       ((-3) (make-simple-markup "c "))
-       ((-2) (make-smaller-markup (make-bold-markup "2")))
-       (else (make-simple-markup "bla"))
-      ))))
-  )))
+    (
+      (ifs (ly:grob-interfaces grob))
+      (sp (ly:grob-property grob 'staff-position))
+    )
+    (if (memq 'note-head-interface ifs)
+      (begin
+        (ly:grob-set-property! grob 'stencil
+          (grob-interpret-markup grob
+            (make-lower-markup 0.5
+              (case sp
+                ((-5) "m")
+                ((-3) "c ")
+                ((-2) (make-smaller-markup (make-bold-markup "2")))
+                (else "bla")
+                ))))
+        ))))
 
 \relative c' {
   <d f g b>2
index 61a6d4e49494e9fe854cc89c5d9aefd8a6bf3e0d..d12e672710d40bdc3ec62253c1e978f526239707 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "vocal-music"
index f8fe762258ad1a5d806fe18284da363a22a455dc..ed818dccfded6c942827718ac0bb3b39240a9e8a 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from input/new
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 \header {
   texidoces = "
 Se puede modificar el texto empleado para los crescendos y
@@ -15,6 +15,18 @@ valores posibles se encuentran @code{'line} (línea),
 
 "
   doctitlees = "Cambiar el texto y los estilos de objeto de extensión para las indicaciones dinámicas textuales"
+  
+%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a>
+texidocde = "
+Der Text, der für Crescendo und Decrescendo gestzt wird, kann geändert
+werden, indem man die Eigenschaften @code{crescendoText} und
+@code{decrescendoText} verändert.  Der Stil des Streckers kann auch
+geändert werden, indem die @code{'style}-Eigenschaft des
+@code{DynamicTextSpanner} beeinflusst wird.  Der Standardwert ist
+@code{'hairpin}, ander Möglichkeiten sind @code{'line}, @code{'dashed-line}
+und @code{'dotted-line}:
+"
+  doctitlede = "Text und Strecker-Stile für Dynamik-Texte ändern"
 
   lsrtags = "rhythms,tweaks-and-overrides"
   texidoc = "
index 984de0eaf4cbdfe9656efdc8c6eb2cc53e6afe20..aacc7cf4aebe3fe0c6843f663039491a3f766bbb 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "expressive-marks, editorial-annotations"
index efb54b8966923179d3cc1a97a0932fce9e053edf..d7b11f374ff9fdfe22a3e4c9534fd48a1ef49829 100644 (file)
@@ -1,17 +1,26 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "expressive-marks"
 
   texidoces = "
 El glifo de la marca de respiración se puede ajustar
-sobreescribiendo la proopiedad de texto del objeto de presentación
+sobreescribiendo la propiedad de texto del objeto de presentación
 @code{BreathingSign}, con cualquier otro texto de marcado.
 
 "
   doctitlees = "Cambiar el símbolo de la marca de respiración"
+  
+%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a>
+  texidocde = "
+Das Schriftzeichen für das Atemzeichen kann verändert werden, indem
+die Text-Eigenschaft des @code{BreathingSign}-Layoutobjekts mit einer
+beliebigen Textbeschriftung definiert wird.
+
+"
+  doctitlede = "Das Atemzeichen-Symbol verändern"
 
   texidoc = "
 The glyph of the breath mark can be tuned by overriding the text
index 859304d8fc94ef4914f34efad9558b9f6216ea81..f7e82a72ca8a4eae76c06479d897fc3960d8f42f 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "chords"
index 08466951dba98220487dde3965f242458c553691..e10ddc67e37876e264f42eaee5df773834527db5 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "text, tweaks-and-overrides"
index a2a04196b1a46ed28823bc6a5609317e329a26d5..bcb97f164049630c99732fbca6069b01d8bd719f 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "staff-notation"
index 07cc60bb5d8353cb32c0a06797e2329d90be6a17..9f29211ef2d928f5f3d91bed02c55bc0557bb714 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "chords"
@@ -14,6 +14,15 @@ después de los números, según el valor de las propiedades
 "
   doctitlees = "Cambiar las posiciones de las alteraciones del bajo cifrado"
 
+%% Translation of GIT committish: 33f623301a41fcc53efadf96bca1c72834763415
+  texidocde = "
+Versetzungszeichen und Pluszeichen können vor oder nach den Ziffern erscheinen,
+je nach den Einstellungen der @code{figuredBassAlterationDirection} und
+@code{figuredBassPlusDirection}-Eigenschaften.
+
+"
+  doctitlede = "Positionen von Generalbass-Alterationszeichen verändern"
+
   texidoc = "
 Accidentals and plus signs can appear before or after the numbers,
 depending on the @code{figuredBassAlterationDirection} and
index c1e7d475bc642d5175dea1e1e632df85e85a4fb9..699e64568bd9183d9914898dddcfa5352189a2c5 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "staff-notation, tweaks-and-overrides, paper-and-layout"
index ff09a60b9fc1a0c3b8fb5d4ab9ac31f167485905..ecc5f0c77d209b2de16991cb53292f2e91057b2c 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from input/new
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   texidoces = "
@@ -11,6 +11,15 @@ imprimir nada, hacemos invisible la indicación metronómica:
 
   doctitlees = "Cambiar el tempo sin indicación metronómica"
 
+%% Translation of GIT committish :<0364058d18eb91836302a567c18289209d6e9706>
+  texidocde = "
+Um das Tempo für die MIDI-Ausgabe zu ändern, ohne eine Tempoangabe in den
+Noten auszugeben, kann die Metronombezeichnung unsichtbar gemacht werden:
+
+"
+
+  doctitlede = "Das Tempo ohne Metronom-Angabe verändern"
+
   lsrtags = "staff-notation"
   texidoc = "To change the tempo in MIDI output without printing
 anything, make the metronome mark invisible:"
index 48931a5d558b86bfcf507bd8c9242007303ee9c3..1272bfebb63f767fb2fb70a9b8ac414a4fa5cc08 100644 (file)
@@ -1,10 +1,35 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "rhythms"
 
+  texidoces = "
+La instrucción @code{\time} establece las propiedades
+@code{timeSignatureFraction}, @code{beatLength}, @code{beatGrouping} y
+@code{measureLength} en el contexto @code{Timing}, que normalmente
+tiene el alias @code{Score}.  La modificación del valor de
+@code{timeSignatureFraction} hace que se imprima la nueva indicación
+de compás sin que cambie ninguna de las demás propiedades:
+
+"
+  doctitlees = "Cambio de compás sin afectar al barrado"
+
+
+%% Translation of GIT committish :<0364058d18eb91836302a567c18289209d6e9706>  
+  texidocde = "
+Der @code{\\time}-Befehl verändert die Eigenschaften
+@code{timeSignatureFraction}, @code{beatLength}, @code{beatGrouping}
+und @code{measureLength} im @code{Timing}-Kontext, welcher normalerweise
+gleichbedeutend mit @code{Score} ist.  Wenn der Wert von
+@code{timeSignatureFraction} verändert wird, wird die neue
+Taktart ausgegeben, ohne die anderen Eigenschaften zu beeinflussen:
+
+"
+  doctitlede = "Die Taktart verändern ohne die Bebalkung zu beeinflussen"
+
+
   texidoc = "
 The @code{\\time} command sets the properties
 @code{timeSignatureFraction}, @code{beatLength}, @code{beatGrouping}
index 6638f500a6ac70b333b77a7cf4c4a02fc331ce9c..b1d3e529d207fe0ef0daa480b1715323931a372b 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "rhythms"
@@ -16,6 +16,7 @@ del grupo, o eliminar el número.
 
 "
 
+%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a>
 texidocde = "
 Standardmäßig wird nur der Zähler des N-tolen-Bruchs über der Klammer
 dargestellt, wie er dem @code{\\times}-Befehl übergeben wird.
@@ -36,7 +37,8 @@ be printed, or the tuplet number may be suppressed altogether.
 } % begin verbatim
 
 \relative c'' {
-  \times 2/3 { c8 c c } \times 2/3 { c8 c c }
+  \times 2/3 { c8 c c }
+  \times 2/3 { c8 c c }
   \override TupletNumber #'text = #tuplet-number::calc-fraction-text
   \times 2/3 { c8 c c }
   \override TupletNumber #'stencil = ##f
index a305baaef5c4a3d6f23bd29929731af8d79361f3..7bfe7ef4772516bdeb89025473559e243d43ceb9 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from input/new
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 \header {
   texidoces = "
 La propiedad @code{measureLength}, junto con
index 85bb00971a9705d4e49dbbe7737bbe1187dc7775..383729faff47dda40c04faef30b4a448ee2924c7 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "rhythms, vocal-music, ancient-notation, contexts-and-engravers"
@@ -20,7 +20,7 @@ aren't always the same length.
   doctitle = "Chant or psalms notation"
 } % begin verbatim
 
-stemOn = { \override Staff.Stem #'transparent = ##f }
+stemOn = { \revert Staff.Stem #'transparent }
 stemOff = { \override Staff.Stem #'transparent = ##t }
 
 \score {
index dc66fb768ba79a8692bfa6f3a91de8333d60ae8b..1158df5ee74101583d50d9cdab7dea0ea6b82455 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "chords"
@@ -13,6 +13,14 @@ específicos.
 "
   doctitlees = "Excepciones para los nombres de acorde"
 
+%% Translation of GIT committish: 33f623301a41fcc53efadf96bca1c72834763415
+  texidocde = "
+Die Eigenschaft @code{chordNameExceptions} kann benutzt werden, um eine
+Liste an besonderen Notationen für bestimmte Akkorde zu speichern.
+
+"
+  doctitlede = "Akkordsymbolausnahmen"
+
   texidoc = "
 The property @code{chordNameExceptions} can be used to store a list of
 special notations for specific chords. 
diff --git a/input/lsr/chord-name-major7.ly b/input/lsr/chord-name-major7.ly
new file mode 100644 (file)
index 0000000..7ff2297
--- /dev/null
@@ -0,0 +1,27 @@
+%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
+%% This file is in the public domain.
+\version "2.13.0"
+
+\header {
+  lsrtags = "chords"
+
+%% Translation of GIT committish :33f623301a41fcc53efadf96bca1c72834763415
+ texidocde = "
+Das Aussehen des großen Septakkords kann mit @code{majorSevenSymbol} verändert werden.
+
+"
+
+  doctitlede = "Akkordbezeichnung maj7"
+
+  texidoc = "
+The layout of the major 7 can be tuned with @code{majorSevenSymbol}. 
+
+"
+  doctitle = "chord name major7"
+} % begin verbatim
+
+\chords {
+  c:7+
+  \set majorSevenSymbol = \markup { j7 }
+  c:7+
+}
index 18025abeb45493c9b91f6e20b71cf28cb22ddbda..5e3faa93877a7ebe010fc9afb0665364ab8fffbb 100644 (file)
@@ -1,16 +1,18 @@
-changing-the-positions-of-figured-bass-alterations.ly
-clusters.ly
 adding-a-figured-bass-above-or-below-the-notes.ly
-single-staff-template-with-notes,-lyrics,-chords-and-frets.ly
+adding-bar-lines-to-chordnames-context.ly
+avoiding-collisions-with-chord-fingerings.ly
 changing-chord-separator.ly
-volta-below-chords.ly
-showing-chords-at-changes.ly
+changing-the-chord-names-to-german-or-semi-german-notation.ly
+changing-the-positions-of-figured-bass-alterations.ly
 chord-name-exceptions.ly
+chord-name-major7.ly
+clusters.ly
 controlling-the-placement-of-chord-fingerings.ly
-changing-the-chord-names-to-german-or-semi-german-notation.ly
-single-staff-template-with-notes,-lyrics,-and-chords.ly
 displaying-complex-chords.ly
-single-staff-template-with-notes-and-chords.ly
 manually-break-figured-bass-extenders-for-only-some-numbers.ly
-adding-bar-lines-to-chordnames-context.ly
+showing-chords-at-changes.ly
 simple-lead-sheet.ly
+single-staff-template-with-notes,-lyrics,-and-chords.ly
+single-staff-template-with-notes,-lyrics,-chords-and-frets.ly
+single-staff-template-with-notes-and-chords.ly
+volta-below-chords.ly
index c0a956c6384930f4f9a5ff884efe7238b48c9e23..1225bb294af2c06773a56afa82953e1c04d94a26 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from input/new
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 \header {
   lsrtags = "paper-and-layout"  % a new tag like "Mixing text and music" or
 % "Special output" might be more adequate -jm
index c567df1709992f1f64d7d2dc13a824f23f20a8ba..92422b944dd17a8c1a4c0a3bfe9a519370650710 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "simultaneous-notes, chords, keyboards"
index 14a5aa987dec6c65a6a477909673b8cd8b4cebe7..b9b04988fdb69f8fb07520fc655daacb8c0188a5 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from input/new
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 \header {
   lsrtags = "pitches,editorial-annotations,really-cool"
   texidoc = "
index 99e8d5205e17d488bae311a9bcbb0f10df7b4a9a..e13bf2dce04ae054e23b2b016b3aab595b3d86fe 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "expressive-marks, text"
index 3cbfdab9640edaacd85bec5ba7492975a0a1953b..96b32a41563f4015ea1507095ff39e79c904baf9 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "simultaneous-notes, text"
@@ -10,7 +10,7 @@ La herramienta de combinación de partes ( instrucción
 @code{\\partcombine}) permite la combinación de varias partes
 diferentes sobre el mismo pentagrama.  Las indicaciones textuales
 tales como \"solo\" o \"a2\" se añaden de forma predeterminada;
-para quitarlas, sencillamente establezca la proopiedad
+para quitarlas, sencillamente establezca la propiedad
 @code{printPartCombineTexts} al valor \"falso\".  Para partituras
 vocales (como himnos), no hay necesidad de añadir los textos
 \"solo\" o \"a2\", por lo que se deben desactivar.  Sin embargo,
@@ -26,6 +26,26 @@ textos.
 "
   doctitlees = "Combinar dos partes sobre el mismo pentagrama"
 
+%% Translation of GIT committish :<0364058d18eb91836302a567c18289209d6e9706> 
+  texidocde = "
+Die Funktion, die Stimmen kombiniert (also der @code{\\partcombine}-Befehl)
+ermöglicht die Kombination unterschiedlicher Stimmen auf einem
+System.  Textanweisungen wie \"solo\" or \"a2\" werden automatisch
+hinzugefügt.  Wenn man sie entfernen will, muss man die Eigenschaft
+@code{printPartCombineTexts} auf flasch setzen.  Für Klavierauszüge
+muss natürlich kein \"solo\"/\"a2\" usw. hinzugefügt werdne, man
+sollte sie also ausschalten.  Wenn aber Solo-Stellen in einem
+Klavierauszug oder einer Chorpartitur angezeigt werden, ist es besser,
+normale Polyphonie zu verwenden, weil so die Solostellen angezeigt
+werden, auch wenn der Text des Stimmenkombinierers ausgeschaltet ist.
+
+Der Schnipsel zeigt drei Möglichkeiten, Stimmen auf einem System zu
+kombinieren: Standardpolyphonie, @code{\\partcombine} ohne Text und
+@code{\\partcombine} mit Text.
+
+"
+  doctitlede = "Zwei Stimmen auf einem System kombinieren"
+
   texidoc = "
 The part combiner tool ( @code{\\partcombine} command ) allows the
 combination of several different parts on the same staff.  Text
index e9ab5202cb283e374965a63a0cecd35ba34e4aa5..5479bcfc394503c3be11431ccc37aa35bb7374a2 100644 (file)
@@ -1,10 +1,8 @@
-%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
+%% Do not edit this file; it is auto-generated from input/new
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
-  lsrtags = "rhythms"
-
  doctitlees = "Indicaciones de compases compuestos"
  texidoces = "
 Las indicaciones de compás poco frecuentes como \"5/8\" se pueden
@@ -17,6 +15,19 @@ gráficas de la agrupación de compases; véase el fragmento de código
 apropiado en la base de datos).
 
 "
+
+%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a>
+texidocde = "
+Ungerade Taktarten werden (wie etwa \"5/8\") werden oft als zusammengesetzte
+Taktarten interpretiert (bspw. \"3/8 + 2/8\"), in welchen zwei oder mehr
+Teiltakte unterschieden werden.  LilyPond kann derartige Noten produzieren,
+indem entsprechende Taktarten gesetzt werden und die automatische
+Bebalkung angepasst wird.
+
+"
+  doctitlede = "Zusammengesetzte Taktarten"
+
+  lsrtags = "rhythms"
   texidoc = "
 Odd 20th century time signatures (such as \"5/8\") can often be played
 as compound time signatures (e.g. \"3/8 + 2/8\"), which combine two or
@@ -30,14 +41,18 @@ database.)
   doctitle = "Compound time signatures"
 } % begin verbatim
 
-#(define (compound-time one two num)
-  (markup #:override '(baseline-skip . 0) #:number
-   (#:line ((#:column (one num)) #:vcenter "+" (#:column (two num))))
-  ))
 
-\relative {  
-  \override Staff.TimeSignature #'stencil = #ly:text-interface::print
-  \override Staff.TimeSignature #'text = #(compound-time "2" "3" "8")
+#(define ((compound-time one two num) grob)
+  (grob-interpret-markup grob
+    (markup #:override '(baseline-skip . 0) #:number
+      (#:line (
+          (#:column (one num))
+          #:vcenter "+"
+          (#:column (two num))))
+      )))
+
+\relative c' {
+  \override Staff.TimeSignature #'stencil = #(compound-time "2" "3" "8")
   \time 5/8
   #(override-auto-beam-setting '(end 1 8 5 8) 1 4)
   c8 d e fis gis
index ec18dd202fef4668ab985fb73727e84f8185682b..9d84bd8ae5507071064ebead1ee8504fc2845050 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "rhythms"
@@ -21,6 +21,22 @@ pasa a la función @code{set-time-signature} como tercer argumento:
 "
 doctitlees = "Símbolos de dirección, símbolos de agrupación de compás"
 
+%% Translation of GIT committish :<0364058d18eb91836302a567c18289209d6e9706>
+  texidocde = "
+Optionen, mit denen die Balken in einem Takt gruppiert werden, sind
+durch die Scheme-Funktion @code{set-time-signature} erhältlich, die
+drei Argumente braucht:  Die Zahl der Taktschläge, die Länge des
+Schlages und die interne gruppieren von Balken in dem Takt.  Wenn der
+@code{Measure_grouping_engraver} hinzugefügt worden ist, erstellt
+diese Funktion auch @code{MeasureGrouping}-(Taktgruppen)-Zeichen.  Derartige
+Zeichen erleichtern das Lesen von rhythmisch komplexer Musik.  In dem
+Beispiel ist der 9/8-Takt in 2, 2, 2 und 3 aufgeteilt.  Das wird
+der @code{set-time-signature}-Funktion als das dritte Argument mitgegeben:
+@code{'(2 2 2 3)}:
+
+"
+  doctitlede = "Dirigirzeichen, Taktgruppenzeichen"
+
   texidoc = "
 Options to group beats within a bar are available through the Scheme
 function @code{set-time-signature}, which takes three arguments: the
index f326a0b7bf699ef212a678c2921994ac0453d97e..af8f573dd96aa77bdf1bb3bd195328c56866d36c 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "expressive-marks"
@@ -11,6 +11,14 @@ utilizando una nota oculta y temporalización de cadenza.
 
 "
   doctitlees = "Glissando contemporáneo"
+  
+%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a>
+texidocde = "
+Ein modernes Glissando ohne eine Endnote kann gesetzt werden, indem
+eine Kadenz eingesetzt wird und die Endnote unsichtbar gemacht wird.
+
+"
+  doctitlede = "Moderne Glissandi"
 
   texidoc = "
 A contemporary glissando without a final note can be typeset using a
index 0e75806eaa2eb5e8dfb1de844ba22be67863617a..e8c484113ed1437d9c2b9613c6bff24c4ccd6d59 100644 (file)
@@ -1,12 +1,12 @@
-creating-blank-staves.ly
-chant-or-psalms-notation.ly
-changing-time-signatures-inside-a-polymetric-section-using-scaledurations.ly
 adding-a-figured-bass-above-or-below-the-notes.ly
 adding-an-extra-staff-at-a-line-break.ly
 adding-an-extra-staff.ly
-mensurstriche-layout-bar-lines-between-the-staves.ly
 changing-midi-output-to-one-channel-per-voice.ly
+changing-time-signatures-inside-a-polymetric-section-using-scaledurations.ly
+chant-or-psalms-notation.ly
+creating-blank-staves.ly
 engravers-one-by-one.ly
+mensurstriche-layout-bar-lines-between-the-staves.ly
+nesting-staves.ly
 use-square-bracket-at-the-start-of-a-staff-group.ly
 vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly
-nesting-staves.ly
index 1aab2aff5724bac624489be04ae3f5c73a935145..e6fcdea96a0e5330bf639a4df1e6df516f294e8b 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "editorial-annotations, chords, keyboards, fretted-strings"
@@ -11,6 +11,22 @@ Se puede controlar con precisión la colocación de los números de digitación.
 "
   doctitlees = "Controlar la colocación de las digitaciones de acordes"
 
+
+%% Translation of GIT committish: 3f880f886831b8c72c9e944b3872458c30c6c839
+
+  texidocfr = "
+Le positionnement des doigtés peut être contrôlé de manière très précise.
+
+"
+  doctitlefr = "Conrôle du positionnement des doigtés"
+
+%% Translation of GIT committish :<0364058d18eb91836302a567c18289209d6e9706>
+  texidocde = "
+Die Position von Fingersatzzahlen kann exakt kontrolliert werden.
+
+"
+  doctitlede = "Position von Fingersatz in Akkorden kontrollieren"
+
   texidoc = "
 The placement of fingering numbers can be controlled precisely.
 
index a33f84bb293f597f099280017a4ed7f8c1371430..9bbf1ebc4724aad03acea3426bf8bdca82f2a731 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "expressive-marks, tweaks-and-overrides"
@@ -19,6 +19,21 @@ lugar.
 
 "
   doctitlees = "Controlar la ordenación vertical de las inscripciones"
+  
+%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a>
+texidocde = "
+Die vertikale Anordnung von Beschriftungen wird mit der
+@code{'script-priority}-Eigenschaft kontrolliert.  Um so kleiner die
+Zahl, umso näher wird die Beschriftung in Bezug auf die Note gesetzt.  In
+diesem Beispiel hat das @code{TextScript}-Objekt (das Kreuz) zuerst
+die niedrigste Priorität, wird also auch am niedrigsten in dem ersten
+Beispiel gesetzt.  Im zweiten Fall hat der Praller (das @code{Script}) 
+die niedrigste Priorität, darum wird er am nächsten zum System gesetzt.
+Wenn zwei Objekte die gleiche Priorität haben, wird ihre Reihenfolge
+anhand ihres Auftretens in der Quelldatei entschieden.
+
+"
+  doctitlede = "Die vertikale Anordnung von Beschriftungen kontrollieren"
 
   texidoc = "
 The vertical ordering of scripts is controlled with the
index 26be00223d4e28915a35e368c0a76a1aad3ab220..c41a3a13fceea9cc782c0b9290a4b86551060f54 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "rhythms, tweaks-and-overrides"
diff --git a/input/lsr/creating-a-delayed-turn.ly b/input/lsr/creating-a-delayed-turn.ly
new file mode 100644 (file)
index 0000000..c306807
--- /dev/null
@@ -0,0 +1,57 @@
+%% Do not edit this file; it is auto-generated from input/new
+%% This file is in the public domain.
+\version "2.13.0"
+
+\header {
+texidoces = "
+La creación de un grupeto circular de anticipación entre dos notas,
+donde la nota inferior del grupeto utiliza una alteración, requiere
+varias sobreescriturasw de propiedades.  La propiedad
+@code{outside-staff-priority} se debe establecer al valor #f, pues en
+caso contrario tendría prioridad sobre la propiedad @code{avoid-slur
+property}.  El valor de @code{halign} se utiliza para colocar el
+grupeto horizontalmente.
+
+"
+
+doctitlees = "Crear un grupeto de anticipación"
+
+
+%% Translation of GIT committish :0364058d18eb91836302a567c18289209d6e9706
+  texidocde = "
+Einen Doppelschlag mit Vorhalt zu erstellen, wobei die untere Note das
+Vorzeichen benutzt, erfordert einige Einstellungsänderungen.  Die
+@code{outside-staff-priority}-Eigenschaft muss auf falsch (@code{#f})
+gesetzt werden, weil sie sonst über die Eigenschaft
+@code{avoid-slur property} dominieren würde.  Der Wert von @code{halign}
+wird benutzt, um den Doppelschlag horizontal zu positionieren.
+"
+
+  doctitlede = "Einen  Doppelschlag mit Vorhalt erstellen"
+
+  lsrtags = "expressive-marks, editorial-annotations, tweaks-and-overrides"
+
+  texidoc = "
+Creating a delayed turn, where the lower note of the
+turn uses the accidental, requires several overrides.  The
+@code{outside-staff-priority} property must be set to @code{#f},
+as otherwise this would take precedence over the
+@code{avoid-slur property}.  The value of @code{halign} is used
+to position the turn horizontally."
+
+  doctitle = "Creating a delayed turn"
+} % begin verbatim
+
+
+\relative c'' {
+  \once \override TextScript #'avoid-slur = #'inside
+  \once \override TextScript #'outside-staff-priority = ##f
+  c2(^\markup \tiny \override #'(baseline-skip . 1) {
+    \halign #-4
+    \center-column {
+      \sharp
+      \musicglyph #"scripts.turn"
+    }
+  }
+  d4.) c8
+}
index ab50080c20de411f2dd064f704d2161ce934f1ab..2a6bd21231d7c967f8c4c2cae2c25cce266e140b 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "pitches"
@@ -50,29 +50,28 @@ throughout Mars, from Gustav Holst's The Planets.
    'element elt))
 
 
-rhythm = #(define-music-function (parser location note) (ly:music?)
-          "Make the rhythm in Mars (the Planets) at the given note's pitch"
-          (let* ((p (ly:music-property
-                      (car (ly:music-property note 'elements))
-                      'pitch)))
-          (seq-music-list (list
-            (make-triplet (seq-music-list (list
-              (make-note p (ly:make-duration 3 0 2 3))
-              (make-note p (ly:make-duration 3 0 2 3))
-              (make-note p (ly:make-duration 3 0 2 3))
-            )))
-            (make-note p (ly:make-duration 2 0))
-            (make-note p (ly:make-duration 2 0))
-            (make-note p (ly:make-duration 3 0))
-            (make-note p (ly:make-duration 3 0))
-            (make-note p (ly:make-duration 2 0))
-          ))))
+rhythm =
+#(define-music-function (parser location note) (ly:music?)
+  "Make the rhythm in Mars (the Planets) at the given note's pitch"
+  (let ((p (ly:music-property
+              (car (ly:music-property note 'elements))
+              'pitch)))
+  (seq-music-list (list
+    (make-triplet (seq-music-list (list
+      (make-note p (ly:make-duration 3 0 2 3))
+      (make-note p (ly:make-duration 3 0 2 3))
+      (make-note p (ly:make-duration 3 0 2 3))
+    )))
+    (make-note p (ly:make-duration 2 0))
+    (make-note p (ly:make-duration 2 0))
+    (make-note p (ly:make-duration 3 0))
+    (make-note p (ly:make-duration 3 0))
+    (make-note p (ly:make-duration 2 0))
+  ))))
 
-\score {
-  \new Staff {
-    \time 5/4
-    \rhythm c'
-    \rhythm c''
-    \rhythm g
-  }
+\new Staff {
+  \time 5/4
+  \rhythm c'
+  \rhythm c''
+  \rhythm g
 }
index 3cde9879302232c7ed9facbbf184980198bcf961..5367ea80eb0bca7506306600fbb7a09fd9f3ab77 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "expressive-marks"
@@ -13,6 +13,15 @@ voces que están sobre el mismo pentagrama si el grabador
 
 "
   doctitlees = "Crear arpegios entre notas de voces distintas"
+  
+%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a>
+texidocde = "
+Ein Arpeggio kann zwischen Noten aus unterschidlichen Stimmen auf demselben
+System gezogen werden, wenn der @code{Span_arpeggio_engraver} in den 
+@code{Staff}-Kontext verschoben wird:
+
+"
+  doctitlede = "Arpeggios zwischen unterschiedlichen Stimmen erzeugen"
 
   texidoc = "
 An arpeggio can be drawn across notes in different voices on the same
index 3a70311228de6d4298ff3cf9dab58d55f86d7055..bbfca847300a9fc55f1f710a2b63dc109a0abbb2 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "staff-notation, editorial-annotations, contexts-and-engravers, paper-and-layout"
index 5690d8a066753c5cf213d5b369169771f351ef3b..131e29245f8b2cfe66c51481b180413ecf0d55dd 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "expressive-marks"
@@ -12,6 +12,15 @@ cruce entre los pentagramas ajustando la propiedad
  
 "
   doctitlees = "Crear arpegios que se cruzan entre pentagramas dentro de un sistema de piano"
+  
+%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a>
+texidocde = "
+Arpeggio über mehrere Systeme können in anderen Kontexten als dem
+@code{PianoStaff} erstellt werden, wenn der @code{Span_arpeggio_engraver}
+in den @code{Score}-Kontext eingefügt wird.
+
+"
+  doctitlede = "Arpeggio über mehrere Systeme in anderen Kontexten"
 
   texidoc = "
 In a @code{PianoStaff}, it is possible to let an arpeggio cross between
index 4ad262fe54c14877b7bb8d02d45dc282610ec5d6..faeafd88f5c3ce55f1d01fbaf388496ae6c77e93 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "expressive-marks"
@@ -12,6 +12,16 @@ contextos distintos a @code{PianoStaff} si se incluye el grabador
 
 "
   doctitlees = "Creación de arpegios que se cruzan entre pentagramas dentro de otros contextos"
+  
+%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a>
+ texidocde = "
+In einem Klaviersystem (@code{PianoStaff}) ist es möglich, ein Arpeggio
+zwischen beiden Systemen zu verbinden, indem die
+@code{PianoStaff.connectArpeggios}-Eigenschaft gesetzt wird.
+
+"
+  doctitlede = "Arpeggio zwischen Systemen in einem Klaviersystem erstellen"
 
   texidoc = "
 Cross-staff arpeggios can be created in contexts other than
index aa2e4b87911d98576f9fbf8a09756f43ced67445..0d85b8b77d78960926b4b2cf2108d4c9b03a1fcb 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from input/new
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   texidoces = "
@@ -10,6 +10,14 @@ marcado, pero no cambian el tempo en la salida MIDI.
 "
   doctitlees = "Crear indicaciones metronómicas en modo de marcado"
 
+%% Translation of GIT committish :<0364058d18eb91836302a567c18289209d6e9706>
+  texidocde = "
+Neue Metronombezeichnungen können als Textbeschriftung erstellt werden,
+aber sie ändern nicht das Tempo für die MIDI-Ausgabe.
+
+"
+
+  doctitlede = "Eine Metronombezeichnung als Textbeschriftung erstellen"
 
   lsrtags = "staff-notation"
   texidoc = "New metronome marks can be created in markup mode,
index 52729347d16190dfdf15c2a10c9efdee6a706621..bfe6b09ef924a263d382ea322797a773862b5fb7 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "expressive-marks, text"
index 93d27522d167b2d9a1274dda66465dce78a7978f..16d705e9d69ade4c40814f87c6103eb5985c3139 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from input/new
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 \header {
   texidoces = "
 A diferencia de las inscripciones de texto, las lestras de ensayo
index 2674bd0c2653703b1ddc5fb8e8c92a2a8c69d4d1..a3b4f1502cc8b17b00676550fa8dced759375e36 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "expressive-marks, keyboards, unfretted-strings"
@@ -33,21 +33,23 @@ solo violin, BWV 1004.
 } % begin verbatim
 
 \relative c' {
-  << {
-    d16( a') s a s a[ s a] s a[ s a]
-  }
-  \\
-  {
-    \slurUp
-    bes,16[ s e](
-    \hideNotes a)
-    \unHideNotes f[(
-    \hideNotes a)
-    \unHideNotes fis](
-    \hideNotes a)
-    \unHideNotes g[(
-    \hideNotes a)
-    \unHideNotes gis](
-    \hideNotes a)
-  } >>
+  <<
+    {
+      d16( a') s a s a[ s a] s a[ s a]
+    }
+    \\
+    {
+      \slurUp
+      bes,16[ s e](
+      \hideNotes a)
+      \unHideNotes f[(
+      \hideNotes a)
+      \unHideNotes fis](
+      \hideNotes a)
+      \unHideNotes g[(
+      \hideNotes a)
+      \unHideNotes gis](
+      \hideNotes a)
+    }
+  >>
 }
index d77ceb77c41595b319efd61562abb9bc6e75269f..42bcb73cf91386e982d30d5226f0809072140f81 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from input/new
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   texidoces = "
@@ -26,25 +26,25 @@ indications or octavations.  Override some properties of the
 \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
+  \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 #'(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
index 0d23d8a345f7d23c48d099c795cfae4b9a2d5d85..cdbc3f325b3be1fe2dc47001a5c0f68f7f46491b 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "ancient-notation, tweaks-and-overrides"
index d814ac9a68ccc92dad97cd139c50ff9093d147cb..12ac956ce2a78b72afe5d64df6e5c6b6d88c6225 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from input/new
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   texidoces = "
@@ -15,6 +15,18 @@ sobreescritura de propiedades.
 "
   doctitlees = "Personalizar los diagramas de posiciones"
 
+%% Translation of GIT committish: 33f623301a41fcc53efadf96bca1c72834763415
+  texidocde = "
+Eigenschaften von Bunddiagrammen können in
+@code{'fret-diagram-details} verändert werden.  Einstellungen mit
+dem @code{\override}-Befehl werden dem @code{FretBoards.FretBoard}-Objekt
+zugewiesen.  Genauso wie @code{Voice} ist auch @code{FretBoards} ein
+Kontext der niedrigsten Ebene, weshalb der Kontext auch in dem Befehl
+weggelassen werden kann.
+
+"
+  doctitlede = "Bunddiagramme anpassen"
+
   lsrtags = "fretted-strings,tweaks-and-overrides"
 
   texidoc = "Fret diagram properties can be set through
@@ -39,41 +51,41 @@ therefore 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 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
+        #'(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 = #-1
-      \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 5ae673861b983b04db96c8f42065e77df226d1d0..29a206bfed1dcc91c63b153fc58610e3c885ed36 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from input/new
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   texidoces = "
@@ -12,6 +12,28 @@ diagramas de posiciones de marcado, se pueden aplicar overrides
 "
  doctitlees = "Personalizar diagramas de posiciones de marcado"
 
+%% Translation of GIT committish: 3f880f886831b8c72c9e944b3872458c30c6c839
+
+  texidocfr = "
+Les propriétés d'un diagramme de fret sont modifiables grâce au 
+@code{'fret-diagram-details}.  Lorsqu'ils sont générés sous forme 
+de @code{\markup}, rien n'empêche de les modifier en jouant sur les 
+réglages de l'objet @code{Voice.TextScript} ou bien directement sur 
+le @qq{markup}.
+
+"
+  doctitlefr = "Personnalisation des diagrammes de fret"
+
+%% Translation of GIT committish :33f623301a41fcc53efadf96bca1c72834763415
+  texidocde = "
+Bunddiagramme können mit der Eigenschaft @code{'fret-diagram-details}
+angepasst werden.  Bunddiagramme, die als Textbeschriftung eingefügt werden,
+können Veränderungen im @code{Voice.TextScript}-Objekt oder direkt in der
+Beschriftung vorgenommen werden.
+
+"
+  doctitlede = "Anpassung von Beschriftungs-Bunddiagrammen"
+
   lsrtags = "fretted-strings,tweaks-and-overrides"
 
   texidoc = "Fret diagram properties can be set through
@@ -30,10 +52,10 @@ to the markup.
     \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
+      #'(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 a9f25f25f365fa75966453b42173a10c271c0563..a462066fcb244e17370344dfd5e7bc7ce29fd4ec 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "editorial-annotations"
@@ -13,6 +13,14 @@ del pentagrama está determinada por la propiedad
 "
   doctitlees = "Dirección predeterminada de las plicas sobre la tercera línea del pentagrama"
 
+%% Translation of GIT committish :0364058d18eb91836302a567c18289209d6e9706
+  texidocde = "
+Die Richtung von Hälsen auf der mittleren Linie kann mit der @code{Stem}-Eigenschaft
+@code{neutral-direction} gesetzt werden.
+
+"
+  doctitlede = "Standardrichtung für Hälse auf der Mittellinie"
+
   texidoc = "
 The default direction of stems on the center line of the staff is set
 by the @code{Stem} property @code{neutral-direction}.
index da647564c04639552140db49f87d9c0c1e86a287..59b9863a4daa21cd11d457aafdb1095b24387000 100644 (file)
@@ -1,7 +1,61 @@
 %% Do not edit this file; it is auto-generated from input/new
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 \header {
+  texidoces = "
+
+Se pueden añadir diagramas de posiciones predefinidas para
+instrumentos nuevos además de los estándar que se usan para la
+guitarra.  Este archivo muestra cómo se hace, definiendo una afinación
+nueva y unas cuantas posiciones para el cuatro venezolano.
+
+Este archivo también muestra cómo se pueden incluir las digitaciones
+en los acordes que se usan como puntos de referencia para la búsqueda
+de acordes en la tabla, y mostrarse en el diagrama de posiciones y la
+tablatura @code{TabStaff}, pero no en la música.
+
+Estas posiciones no se pueden transportar porque contienen información
+de las cuerdas.  Hay planes para corregir esto en un futuro.
+
+"
+  doctitlees = "Definición de posiciones predefinidas para otros instrumentos"
+
+%% Translation of GIT committish: cd4950757ab1ab6c89805b0b7c978bfca034f940
+
+  texidocfr = "
+La liste des diagrammes standards prédéfinis pour la guitare peut être
+ augmentée d'autres définitions spécifiques à d'autres instruments.  
+Voici comment définir un nouvel accordage ainsi que quelques diagrammes 
+prédéfinis pour le @qq{cuatro vénézuélien}.
+
+Cet exemple illustre aussi la manière d'ajouter des doigtés aux 
+accords ; ils serviront de référence pour la boucle d'accord et seront 
+indiqués dans les diagrammes et le @code{TabStaff}, mais pas dans la musique. 
+
+Ces diagrammes ne peuvent pas être transposés, dans la mesure où ils 
+contiennent des informations sur les cordes.  Ceci est amené à évoluer.
+
+"
+  doctitlefr = "Création de diagrammes de fret prédéfinis pour d'autres instruments"
+
+%% Translation of GIT committish :33f623301a41fcc53efadf96bca1c72834763415
+  texidocde = "
+Vordefinierte Bunddiagramme können für neue Instrumente hinzugefügt werden
+neben denen, die schon für die Gitarre definiert sind.  Dieses Schnipsel
+zeigt, wie man eine neue Saitenstimmung definiert und dann eigene vordefinierte
+Bunddiagramme bestimmt.  Das Beispiel ist für das venezualische Cuatro.
+
+Dieses Schnipsel zeigt auch, wie Fingersatz in die Akkorde eingebunden
+werden kann, um als Referenzpunkt für die Akkordauswahl benutzt werden
+kann.  Dieser Fingersatz wird im Bunddiagramm und in der Tabulatur,
+aber nicht in den Noten angezeigt.
+
+Diese Bunddiagramme sind nicht transponierbar, weil sie Saiteninformationen
+enthalten.  Das soll in der Zukunft verbessert werden.
+
+"
+  doctitlede = "Eigene vordefinierte Bunddiagramme für andere Instrumente erstellen"
+
   lsrtags = "fretted-strings"
   texidoc = "Predefined fret diagrams can be added for new instruments
 in addition to the standards used for guitar.  This file shows how
@@ -80,10 +134,10 @@ primeros = {
 
     \new FretBoards {
       \set stringTunings = #cuatroTuning
-      \override FretBoard #'fret-diagram-details
-        #'string-count = #'4
-      \override FretBoard #'fret-diagram-details
-        #'finger-code = #'in-dot
+      \override FretBoard
+        #'(fret-diagram-details string-count) = #'4
+      \override FretBoard
+        #'(fret-diagram-details finger-code) = #'in-dot
       \primeros
     }
 
index d677758c048fc89c3673f8f6da048b684b2d38e1..2ed9e3bd3c389d9f825a7c2bb40385c25a930f0a 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "midi"
@@ -86,7 +86,7 @@ melody = {
       \set Staff.midiInstrument = #"contrabass" \melody
       \set Staff.midiInstrument = #"tremolo strings" \melody
       \set Staff.midiInstrument = #"pizzicato strings" \melody
-      \set Staff.midiInstrument = #"orchestral strings" \melody
+      \set Staff.midiInstrument = #"orchestral harp" \melody
       \set Staff.midiInstrument = #"timpani" \melody
       \set Staff.midiInstrument = #"string ensemble 1" \melody
       \set Staff.midiInstrument = #"string ensemble 2" \melody
index 2114345555b95b2261f701861aefece828029c7e..1c308c9f06aceac9e4993df2349c6af9033ef79d 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "text, paper-and-layout, titles"
index 36d23dc3fd7388be8fe7f8cc33b762feba8a2e7d..caf135df60fb0eefc4bf57bd353a29f80309d057 100644 (file)
@@ -1,13 +1,12 @@
 %% Do not edit this file; it is auto-generated from input/new
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 \header {
   texidoces = "
 Si hay un solo pentagrama en un de los tipos de sistema
-@code{ChoirStaff}, @code{InnerChoirStaff}, @code{InnerStaffGroup}
-o @code{StaffGroup}, el comportamiento predeterminado es que no se
-imprima el corchete en la barra inicial.  Esto se puede cambiar
-sobreescribiendo las propiedades adecuadas.
+@code{ChoirStaff} o @code{StaffGroup}, el comportamiento
+predeterminado es que no se imprima el corchete en la barra inicial.
+Esto se puede cambiar sobreescribiendo las propiedades adecuadas.
 
 Observe que en contextos como @code{PianoStaff} y
 @code{GrandStaff} en que los sistemas empiezan con una llave en
@@ -17,13 +16,26 @@ distinta, como se ve en el segundo sistema del ejemplo.
 "
   doctitlees = "Mostrar corchete o llave en grupos de un solo pentagrama"
 
+  
+%% Translation of GIT committish :<0364058d18eb91836302a567c18289209d6e9706>
+  texidocde = "
+Wenn nur ein System einer Systemgruppe vom Typ @code{ChoirStaff} oder
+@code{StaffGroup} angezeigt wird, wird die Klammer zu Beginn normalerweise
+nicht gesetzt.  Das kann verändert werden, indem man die ensprechende
+Eigenschaft veränder.
+
+Bei Systemen wie @code{PianoStaff} und @code{GrandStaff}, die mit einer
+geschweiften Klammer beginne, muss eine andere Eigenschaft verändt werden,
+wie das zweite Beispiel zeigt.
+
+"
+  doctitlede = "Klammer anzeigen, wenn nur ein System gesetzt wird"
 
   lsrtags = "staff-notation,tweaks-and-overrides"
   texidoc = "If there is only one staff in one of the staff types
-@code{ChoirStaff}, @code{InnerChoirStaff}, @code{InnerStaffGroup}
-or @code{StaffGroup}, the bracket and the starting bar line will not
-be displayed as standard behavior.  This can be changed by overriding
-the relevant properties.
+@code{ChoirStaff} or @code{StaffGroup}, the bracket and the starting
+bar line will not be displayed as standard behavior.  This can be changed
+by overriding the relevant properties.
 
 Note that in contexts such as @code{PianoStaff} and @code{GrandStaff}
 where the systems begin with a brace instead of a bracket, another
index f36e5154bda9ce5cf33e96e23a2d1d1a69e39c77..dedceb153150086b72c495399e8ada2edb1408c2 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "simultaneous-notes, chords"
index 593e11aebf2fd0ca75ee1d93be604b13c194115b..790ae66736cc14e8c5b01a06877dd7c1dcce6b72 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from input/new
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   doctitlees = "Alteraciones de estilo dodecafónico para todas las notas, incluidas las naturales"
@@ -54,8 +54,8 @@ This snippet shows how to achieve such notation rules.
   }
   \layout {
     \context {
-    \Staff
-    \remove "Key_engraver"
+      \Staff
+      \remove "Key_engraver"
     }
   }
 }
index d9fa31821d2a888bf30d08b2bca170d5838ce031..1e19cabc578e4fd86a4423454fc0caddce62cf6d 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from input/new
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "unfretted-strings,tweaks-and-overrides"
index c2d2e3cb0c613333f59a288f2b84c13fe9a7d963..dfa9381b417c68605c8bc1c7a3bd6705a5ff8487 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "expressive-marks, simultaneous-notes"
index dae9a7c05b886a3a77ef042deaf28c61473b897a..bd51dcc4cc527c98d0d6ec0266a2bfd89fba49e9 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from input/new
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 \header {
   lsrtags = "tweaks-and-overrides"
   texidoc = "
index bd7a3ef8dbc5c8e292bc4905a5a74764f54dfa7f..17c54b7cc0c4831ca394a220bf57c087d9c1cb0a 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from input/new
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 \header {
   lsrtags = "tweaks-and-overrides"
   texidoc = "
index 310214c51b70ea6860c592e54014d746e45a18b8..395fea602029cc90e77971d5029438e818e5b2bd 100644 (file)
@@ -1,18 +1,22 @@
-measure-counter.ly
-creating-blank-staves.ly
-controlling-the-placement-of-chord-fingerings.ly
-marking-notes-of-spoken-parts-with-a-cross-on-the-stem.ly
-applying-note-head-styles-depending-on-the-step-of-the-scale.ly
-embedding-native-postscript-in-a--markup-block.ly
-changing-the-appearance-of-a-slur-from-solid-to-dotted-or-dashed.ly
-grid-lines--emphasizing-rhythms-and-notes-synchronization.ly
-changing-a-single-notes-size-in-a-chord.ly
 adding-fingerings-to-a-score.ly
-grid-lines--changing-their-appearance.ly
-default-direction-of-stems-on-the-center-line-of-the-staff.ly
 allowing-fingerings-to-be-printed-inside-the-staff.ly
-using-postscript-to-generate-special-note-head-shapes.ly
-blanking-staff-lines-using-the--whiteout-command.ly
 analysis-brackets-above-the-staff.ly
+applying-note-head-styles-depending-on-the-step-of-the-scale.ly
+avoiding-collisions-with-chord-fingerings.ly
+blanking-staff-lines-using-the--whiteout-command.ly
+changing-a-single-notes-size-in-a-chord.ly
+changing-the-appearance-of-a-slur-from-solid-to-dotted-or-dashed.ly
 coloring-notes-depending-on-their-pitch.ly
+controlling-the-placement-of-chord-fingerings.ly
+creating-a-delayed-turn.ly
+creating-blank-staves.ly
+default-direction-of-stems-on-the-center-line-of-the-staff.ly
+embedding-native-postscript-in-a--markup-block.ly
+grid-lines--changing-their-appearance.ly
+grid-lines--emphasizing-rhythms-and-notes-synchronization.ly
 making-some-staff-lines-thicker-than-the-others.ly
+marking-notes-of-spoken-parts-with-a-cross-on-the-stem.ly
+measure-counter.ly
+positioning-text-markups-inside-slurs.ly
+printing-text-from-right-to-left.ly
+using-postscript-to-generate-special-note-head-shapes.ly
index 7b76dfd7bce0d3d893a477ce20be8a03736c9dce..60dd9b8b3dde4c977ef22f96ab4aef45ca106b59 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "editorial-annotations, text"
index 4495fd3f514f0689033e0eb03809cec3d6b61953..b6fbaf779055220f72d39495c7d824529363df69 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "contexts-and-engravers"
index badd68020799a36836cef04fa6ed2e31d910627f..32a68c2e4c8803233a0a5153c4a9a361cc33bb6b 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "rhythms"
@@ -14,6 +14,18 @@ espacios de pentagrama, y el segundo número indica la dirección (1 =
 hacia arriba, -1 = hacia abajo).
 
 "
+
+%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a>
+texidocde = "
+Überbindungen können manuell gesetzt werden, indem man die
+@code{tie-configuration}-Eigenschaft des @code{TieColumn}-Objekts
+beeinflusst.  Die erste Zahl zeigt den Abstand von der Mitte in
+Notensystemabständen an, die zweite Zahl zeigt die Richtung an (1 = nach oben,
+-1 = nach unten).
+
+"
+  doctitlede = "Bindebögen manuell setzen"
+
   texidoc = "
 Ties may be engraved manually by changing the @code{tie-configuration}
 property of the @code{TieColumn} object. The first number indicates the
index 56dd6ee9f8a2af175bd94f5c5fda3f97c104f38b..c76ec96bed13a35983583f8706cfa507eb1420f9 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "rhythms"
@@ -22,6 +22,7 @@ Para ver más inforamción sobre @code{make-moment}, véase
 
 "
 
+%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a>
   texidocde = "
 Die Eigenschaft @code{tupletSpannerDuration} bestimmt, wie lange jede
 der N-tolen innerhalb der Klammern nach dem @code{\\times}-Befehl
index dc88ff87d3cdc16858a372aefc26dda04716ceb4..33515ad24d31196f5aae48692306cff9034971af 100644 (file)
@@ -1,36 +1,38 @@
-creating-cross-staff-arpeggios-in-a-piano-staff.ly
 adding-beams,-slurs,-ties-etc.-when-using-tuplet-and-non-tuplet-rythms..ly
+adding-parentheses-around-an-expressive-mark-or-chordal-note.ly
+adjusting-the-shape-of-falls-and-doits.ly
+breathing-signs.ly
+broken-crescendo-hairpin.ly
+caesura-railtracks-with-fermata.ly
+center-text-below-hairpin-dynamics.ly
+changing--flageolet-mark-size.ly
+changing-text-and-spanner-styles-for-text-dynamics.ly
 changing-the-appearance-of-a-slur-from-solid-to-dotted-or-dashed.ly
+changing-the-breath-mark-symbol.ly
+combining-dynamics-with-markup-texts.ly
+contemporary-glissando.ly
+controlling-the-vertical-ordering-of-scripts.ly
+creating-a-delayed-turn.ly
 creating-arpeggios-across-notes-in-different-voices.ly
+creating-cross-staff-arpeggios-in-a-piano-staff.ly
 creating-cross-staff-arpeggios-in-other-contexts.ly
+creating-real-parenthesized-dynamics.ly
+creating-simultaneous-rehearsal-marks.ly
+creating-slurs-across-voices.ly
+creating-text-spanners.ly
 double-glissando.ly
-printing-hairpins-using-al-niente-notation.ly
-laissez-vibrer-ties.ly
-contemporary-glissando.ly
-adding-parentheses-around-an-expressive-mark-or-chordal-note.ly
-line-arrows.ly
 hiding-the-extender-line-for-text-dynamics.ly
-vertically-aligning-dynamics-across-multiple-notes.ly
 horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly
-breathing-signs.ly
-changing-text-and-spanner-styles-for-text-dynamics.ly
-controlling-the-vertical-ordering-of-scripts.ly
 inserting-a-caesura.ly
-using-double-slurs-for-legato-chords.ly
-setting-the-minimum-length-of-hairpins.ly
-creating-real-parenthesized-dynamics.ly
-center-text-below-hairpin-dynamics.ly
-printing-metronome-and-rehearsal-marks-below-the-staff.ly
-creating-text-spanners.ly
-broken-crescendo-hairpin.ly
-snap-pizzicato-markup-bartok-pizzicato.ly
-combining-dynamics-with-markup-texts.ly
-creating-slurs-across-voices.ly
-caesura-railtracks-with-fermata.ly
-adjusting-the-shape-of-falls-and-doits.ly
+laissez-vibrer-ties.ly
+line-arrows.ly
 modifying-default-values-for-articulation-shorthand-notation.ly
-creating-simultaneous-rehearsal-marks.ly
-setting-hairpin-behavior-at-bar-lines.ly
-changing--flageolet-mark-size.ly
 piano-template-with-centered-dynamics.ly
-changing-the-breath-mark-symbol.ly
+positioning-text-markups-inside-slurs.ly
+printing-hairpins-using-al-niente-notation.ly
+printing-metronome-and-rehearsal-marks-below-the-staff.ly
+setting-hairpin-behavior-at-bar-lines.ly
+setting-the-minimum-length-of-hairpins.ly
+snap-pizzicato-markup-bartok-pizzicato.ly
+using-double-slurs-for-legato-chords.ly
+vertically-aligning-dynamics-across-multiple-notes.ly
index 72103d43e8804528aec7592ef0833a609c319ca9..7be3be83c3505119cfe42180ec7a27e668bbd672 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "fretted-strings"
index 1d0ab7a48e8f0b691d6a197ae768c341f9d6c2c3..ceb717ea777da174fbcf5b9b66ddbacd4bebc68a 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from input/new
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "keyboards, tweaks-and-overrides"
index 91548a65306fd91fda0c51b8b71e77fa2ec815cc..edc1a161b16fafe90910afc7cef5c258b7695257 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "fretted-strings"
@@ -13,6 +13,23 @@ derecha.
 "
   doctitlees = "Digitaciones, indicación del número de cuerda y digitaciones de mano derecha"
 
+%% Translation of GIT committish: 3f880f886831b8c72c9e944b3872458c30c6c839
+
+  texidocfr = "
+L'exemple suivant illustre comment combiner des doigtés pour la main 
+gauche, des indications de corrde et des doigtés pour la main droite.
+
+"
+  doctitlefr = "Doigtés, indications de cordeet doigtés main droite"
+
+%% Translation of GIT committish :33f623301a41fcc53efadf96bca1c72834763415
+  texidocde = "
+Dieses Beispiel kombiniert Fingersatz für die linke Hand, Saitennummern
+und Fingersatz für die rechte Hand.
+
+"
+  doctitlede = "Fingersatz, Saitennummern und Fingersatz für die rechte Hand"
+
   texidoc = "
 This example combines left-hand fingering, string indications, and
 right-hand fingering.
index 354ef8bfc00818eb963c16a27d82ebeec542101c..01333c1973a7725e2f1ee8063fc0d176c419499c 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "fretted-strings"
index a5ca3e0322515fa7792109072e734ca60610950e..2f08b6a340e0cd1d5a6bee719edf380a1ba1147d 100644 (file)
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "rhythms"
 
+  texidoces = "
+ Son posibles tanto los corchetes rectos sobre notas sueltas como
+extremos de barra sueltos en figuras unidas, con una combinación de
+@code{stemLeftBeamCount}, @code{stemRightBeamCount} e indicadores de
+barra @code{[ ]} emparejados.
+
+
+
+
+Para corchetes rectos que apunten a la derecha sobre notas sueltas,
+use indicadores de barra emparejados @code{[ ]} y establezca
+@code{stemLeftBeamCount} a cero (véase el ejemplo 1).
+
+
+
+
+Para corchetes rectos que apunten a la izquierda, establezca en su
+lugar @code{stemRightBeamCount} (ejemplo 2).
+
+
+
+
+Para extremos sueltos que apunten a la derecha al final de un conjunto
+de notas unidas, establezca @code{stemRightBeamCount} a un valor
+positivo.  Y para extremos sueltos que apunten a la izquierda al
+principio de un conjunto de notas unidas, establezca
+@code{stemLeftBeamCount} en su lugar (ejemplo 3).
+
+
+
+
+A veces, para una nota suelta rodeada de silencios tiene sentido que
+lleve los dos extremos sueltos del corchete plano, apuntando a derecha
+e izquierda.  Hágalo solamente con indicadores de barra emparejados
+@code{[ ]} (ejemplo 4).
+
+
+
+
+(Observe que @code{\\set stemLeftBeamCount} siempre equivale a
+@code{\\once \\set}.  En otras palabras, los ajustes de la cantidad de
+barras no se recuerdan, y por ello el par de corchetes planos
+aplicados a la nota Do semicorchea @code{c'16 [ ]} del último ejemplo
+no tiene nada que ver con el @code{\\set} de dos notas por detrás.)
+
+
+
+
+"
+  doctitlees = "Corchetes rectos y extremos de barra sueltos"
+
+
+%% Translation of GIT committish :<0364058d18eb91836302a567c18289209d6e9706>  
+  texidocde = "
+Gerade Fähnchen an einzelnen Noten und überstehende Balkenenden bei
+bebalkten Notengruppen sind möglich mit einer Kombination aus
+@code{stemLeftBeamCount}, @code{stemRightBeamCount} und Paaren von
+@code{[]}-Balkenbegrenzungen.
+
+Für gerade Fähnchen, die nach rechts zeigen, kann @code{[]} eingesetzt
+werden und @code{stemLeftBeamCount} auf Null gesetzt werden (wie
+Bsp. 1).
+
+Für gerade Fähnchen, die nach links zeigen, muss @code{stemRightBeamCount}
+eingesetzt werden (Bsp. 2).
+
+Für überstehende Balkenenden nach rechts muss @code{stemRightBeamCount}
+auf einen positiven Wert gesetzt werden, für Balkenenden, die nach links
+zeigen benutzt man @code{stemLeftBeamCount} (Bsp. 3).
+
+Manchmal können einzelne Noten, die von Pausen umgeben sind, auch Balkenenden
+in beide Richtungen tragen.  Das geschieht mit @code{[]}-Klammern (Bsp. 4).
+
+(@code{\\set stemLeftBeamCount} entspricht immer dem Befehl
+@code{\\once \\set}.  Anders gesagt müssen die Einstellungen immer wieder
+wiederholt werden und die Fähnchen des letzten Sechszehntels im letzten
+Beispiel haben nichts mit dem @code{\\set}-Befehl zwei Noten vorher zu tun.)
+
+"
+  doctitlede = "Gerade Fähnchen und überstehende Balkenenden"
+
   texidoc = "
  Flat flags on lone notes and beam nibs at the ends of beamed figures
 are both possible with a combination of @code{stemLeftBeamCount}, 
-@code{stemRightBeamCount} and paired @code{[ ]} beam indicators.
+@code{stemRightBeamCount} and paired @code{[]} beam indicators.
 
 
 
 
-For right-pointing flat flags on lone notes, use paired @code{[ ]} beam
+For right-pointing flat flags on lone notes, use paired @code{[]} beam
 indicators and set @code{stemLeftBeamCount} to zero (see Example 1).
 
 
@@ -35,16 +116,16 @@ nibs at the start of a run of beamed notes, set
 
 Sometimes it may make sense for a lone note surrounded by rests to
 carry both a left- and right-pointing flat flag. Do this with paired
-@code{[ ]} beam indicators alone (Example 4).  
+@code{[]} beam indicators alone (Example 4).  
 
 
 
 
-(Note that @code{\\set stemLeftBeamCount}is always equivalent to 
-@code{\\once \\set}.  In other words, the beam count settings aren'
-\"sticky\", so the pair of flat flags attached to the lone  @code{c'16
-[ ]} in the last example have nothing to do with the  @code{\\set} two
-notes prior.)
+(Note that @code{\\set stemLeftBeamCount} is always equivalent to 
+@code{\\once \\set}.  In other words, the beam count settings are no
+\"sticky\", so the pair of flat flags attached to the lone 
+@code{c'16[]} in the last example have nothing to do with the 
+@code{\\set} two notes prior.)
 
 
 
@@ -54,47 +135,39 @@ notes prior.)
 } % begin verbatim
 
 \score {
-<<
-% Example 1
-\new RhythmicStaff {
-  \set stemLeftBeamCount = #0
-  c'16 [ ]
-  r8.
-}
-
-% Example 2
-\new RhythmicStaff {
-  r8.
-  \set stemRightBeamCount = #0
-  c'16 [ ]
-}
-
-% Example 3
-\new RhythmicStaff {
-  c'16
-  c'16
-  \set stemRightBeamCount = #2
-  c'16
-  r16
-  r16
-  \set stemLeftBeamCount = #2
-  c'16
-  c'16
-  c'16
-}
-
-% Example 4
-\new RhythmicStaff {
-   c'16
-   c'16
-   \set stemRightBeamCount = #2
-   c'16
-   r16
-   c'16 [ ]
-   r16
-   \set stemLeftBeamCount = #2
-   c'16
-   c'16
-}
->>
+  <<
+    % Example 1
+    \new RhythmicStaff {
+      \set stemLeftBeamCount = #0
+      c16[]
+      r8.
+    }
+    
+    % Example 2
+    \new RhythmicStaff {
+      r8.
+      \set stemRightBeamCount = #0
+      c16[]
+    }
+    
+    % Example 3
+    \new RhythmicStaff {
+      c16 c
+      \set stemRightBeamCount = #2
+      c16 r r
+      \set stemLeftBeamCount = #2
+      c16 c c
+    }
+    
+    % Example 4
+    \new RhythmicStaff {
+      c16 c
+      \set stemRightBeamCount = #2
+      c16 r
+      c16[]
+      r16
+      \set stemLeftBeamCount = #2
+      c16 c
+    }
+  >>
 }
index e9af0e461888eec546a77e755f0fab91c874b306..48868afab57f4cb96392f112f4a0c2c50e16243d 100644 (file)
@@ -1,6 +1,6 @@
-%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
+%% Do not edit this file; it is auto-generated from input/new
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "winds"
@@ -14,16 +14,19 @@ appropriate glyph.
   doctitle = "Flute slap notation"
 } % begin verbatim
 
+
 slap =
 #(define-music-function (parser location music) (ly:music?)
-#{\override NoteHead #'stencil = #ly:text-interface::print
-  \override NoteHead #'text = \markup \musicglyph #"scripts.sforzato"
-  \override NoteHead #'extra-offset = #'(0.1 . 0.0 )
+#{
+  \override NoteHead #'stencil = #(lambda (grob)
+    (grob-interpret-markup grob
+      (markup #:musicglyph "scripts.sforzato")))
+  \override NoteHead #'extra-offset = #'(0.1 . 0.0)
   $music
   \revert NoteHead #'stencil
-  \revert NoteHead #'text
-  \revert NoteHead #'extra-offset #})
+  \revert NoteHead #'extra-offset
+#})
 
 \relative c' {
-  c \slap c d r \slap { g a } b r
+  c4 \slap c d r \slap { g a } b r
 }
index 83c54bf79d8b27a2b8c7234ac2c3682c010e43a0..96e4572dd663b1848602f8a1f7a07cf63e535fd7 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "simultaneous-notes, tweaks-and-overrides"
@@ -13,6 +13,16 @@ decisiones de tipografiado.  Las unidades de medida que se usan aquí
 son espacios de pentagrama.
 
 "
+
+%% Translation of GIT committish :<0364058d18eb91836302a567c18289209d6e9706>
+  texidocde = "
+Wenn es zu Zusammenstößen kommt, kann mit folgender Lösung eine andere
+Position manuell eingestellt werden.  Die Einheiten hier sind
+Notenlinienzwischenräume.
+
+"
+  doctitlede = "Horizontale Verschiebung von Noten erzwingen"
+
   texidoc = "
 When the typesetting engine cannot cope, the following syntax can be
 used to override typesetting decisions. The units of measure used here
index 5a80ddc860c2a9357d629f49809e4d476b2f8687..aee4d0d76a8c699a1c1150b697185826a6223304 100644 (file)
@@ -1,13 +1,13 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "rhythms"
 
   texidoc = "
 This snippet demonstrates how to obtain automatic ordered rehearsal
-marks, but from the letter or number you want.
+marks, but from the letter or number desired.
 
 "
   doctitle = "Forcing rehearsal marks to start from a given letter or number"
index ae6d5d83db28e9d837b5e4c3bf707ab3df9e5656..f7793c0fd38ce04fd7a9ea90dcda11c039ae32b2 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "text, vocal-music"
index 7e13941bc30255d5895ce046b834aff1a2950b3d..39724766d3d051a4202aec57b9db392cd45a06c4 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from input/new
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "fretted-strings,tweaks-and-overrides"
@@ -13,15 +13,17 @@ and tweaking fret diagrams."
 <<
   \chords {
     a2 a
-    c2 c
-    d1
+    \repeat unfold 3 {
+      c c c d d
+    }
   }
   
   \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 #'finger-code = #'below-string
     \override TextScript #'fret-diagram-details #'dot-color = #'black
     
     %% A chord for ukelele
@@ -45,6 +47,207 @@ and tweaking fret diagrams."
       }
     }
     
+      %% These chords will be in normal orientation
+
+    %% C major for guitar, barred on third fret
+    %  verbose style
+    %  roman fret label, finger labels below string, straight barre
+    c'2^\markup {
+      % 110% of default size
+      \override #'(size . 1.1) {
+        \override #'(fret-diagram-details . (
+                     (number-type . roman-lower)
+                     (finger-code . below-string)
+                     (barre-type . straight))) {
+          \fret-diagram-verbose #'((mute 6)
+                                   (place-fret 5 3 1)
+                                   (place-fret 4 5 2)
+                                   (place-fret 3 5 3)
+                                   (place-fret 2 5 4)
+                                   (place-fret 1 3 1)
+                                   (barre 5 1 3))
+        }
+      }
+    }
+    
+    %% C major for guitar, barred on third fret
+    %% Double barre used to test barre function
+    %  verbose style
+    c'2^\markup {
+      % 110% of default size
+      \override #'(size . 1.1) {
+        \override #'(fret-diagram-details . (
+                     (number-type . arabic)
+                     (dot-label-font-mag . 0.9)
+                     (finger-code . in-dot)
+                     (fret-label-font-mag . 0.6)
+                     (fret-label-vertical-offset . 0)
+                     (label-dir . -1)
+                     (mute-string . "M")
+                     (xo-font-magnification . 0.4)
+                     (xo-padding . 0.3))) {
+          \fret-diagram-verbose #'((mute 6)
+                                   (place-fret 5 3 1)
+                                   (place-fret 4 5 2)
+                                   (place-fret 3 5 3)
+                                   (place-fret 2 5 4)
+                                   (place-fret 1 3 1)
+                                   (barre 4 2 5)
+                                   (barre 5 1 3))
+        }
+      }
+    }
+    
+    %% C major for guitar, with capo on third fret
+    %  verbose style
+    c'2^\markup {
+      % 110% of default size
+      \override #'(size . 1.1) {
+        \override #'(fret-diagram-details . (
+                     (number-type . roman-upper)
+                     (dot-label-font-mag . 0.9)
+                     (finger-code . none)
+                     (fret-label-vertical-offset . 0.5)
+                     (xo-font-magnification . 0.4)
+                     (xo-padding . 0.3))) {
+          \fret-diagram-verbose #'((mute 6)
+                                   (capo 3)
+                                   (open 5)
+                                   (place-fret 4 5 1)
+                                   (place-fret 3 5 2)
+                                   (place-fret 2 5 3)
+                                   (open 1))
+        }
+      }
+    }
+    
+    %% simple D chord
+    d'2^\markup {
+      \override #'(fret-diagram-details . (
+                   (finger-code . below-string)
+                   (dot-radius . 0.35)
+                   (string-thickness-factor . 0.3)
+                   (dot-position . 0.5)
+                   (fret-count . 3))) {
+        \fret-diagram-terse #"x;x;o;2-1;3-2;2-3;"
+      }
+    }
+
+    %% simple D chord, large top fret thickness
+    d'2^\markup  {
+      \override #'(fret-diagram-details . (
+                   (finger-code . below-string)
+                   (dot-radius . 0.35)
+                   (dot-position . 0.5)
+                   (top-fret-thickness . 7)
+                   (fret-count . 3))) {
+        \fret-diagram-terse #"x;x;o;2-1;3-2;2-3;"
+      }
+    }
+
+      % These chords will be in landscape orientation
+    \override TextScript 
+       #'fret-diagram-details #'orientation = #'landscape
+
+    %% C major for guitar, barred on third fret
+    %  verbose style
+    %  roman fret label, finger labels below string, straight barre
+    c'2^\markup {
+      % 110% of default size
+      \override #'(size . 1.1) {
+        \override #'(fret-diagram-details . (
+                     (number-type . roman-lower)
+                     (finger-code . below-string)
+                     (barre-type . straight))) {
+          \fret-diagram-verbose #'((mute 6)
+                                   (place-fret 5 3 1)
+                                   (place-fret 4 5 2)
+                                   (place-fret 3 5 3)
+                                   (place-fret 2 5 4)
+                                   (place-fret 1 3 1)
+                                   (barre 5 1 3))
+        }
+      }
+    }
+    
+    %% C major for guitar, barred on third fret
+    %% Double barre used to test barre function
+    %  verbose style
+    c'2^\markup {
+      % 110% of default size
+      \override #'(size . 1.1) {
+        \override #'(fret-diagram-details . (
+                     (number-type . arabic)
+                     (dot-label-font-mag . 0.9)
+                     (finger-code . in-dot)
+                     (fret-label-font-mag . 0.6)
+                     (fret-label-vertical-offset . 0)
+                     (label-dir . -1)
+                     (mute-string . "M")
+                     (xo-font-magnification . 0.4)
+                     (xo-padding . 0.3))) {
+          \fret-diagram-verbose #'((mute 6)
+                                   (place-fret 5 3 1)
+                                   (place-fret 4 5 2)
+                                   (place-fret 3 5 3)
+                                   (place-fret 2 5 4)
+                                   (place-fret 1 3 1)
+                                   (barre 4 2 5)
+                                   (barre 5 1 3))
+        }
+      }
+    }
+    
+    %% C major for guitar, with capo on third fret
+    %  verbose style
+    c'2^\markup {
+      % 110% of default size
+      \override #'(size . 1.1) {
+        \override #'(fret-diagram-details . (
+                     (number-type . roman-upper)
+                     (dot-label-font-mag . 0.9)
+                     (finger-code . none)
+                     (fret-label-vertical-offset . 0.5)
+                     (xo-font-magnification . 0.4)
+                     (xo-padding . 0.3))) {
+          \fret-diagram-verbose #'((mute 6)
+                                   (capo 3)
+                                   (open 5)
+                                   (place-fret 4 5 1)
+                                   (place-fret 3 5 2)
+                                   (place-fret 2 5 3)
+                                   (open 1))
+        }
+      }
+    }
+    
+    %% simple D chord
+    d'2^\markup {
+      \override #'(fret-diagram-details . (
+                   (finger-code . below-string)
+                   (dot-radius . 0.35)
+                   (dot-position . 0.5)
+                   (fret-count . 3))) {
+        \fret-diagram-terse #"x;x;o;2-1;3-2;2-3;"
+      }
+    }
+
+    %% simple D chord, large top fret thickness
+    d'2^\markup {
+      \override #'(fret-diagram-details . (
+                   (finger-code . below-string)
+                   (dot-radius . 0.35)
+                   (dot-position . 0.5)
+                   (top-fret-thickness . 7)
+                   (fret-count . 3))) {
+        \fret-diagram-terse #"x;x;o;2-1;3-2;2-3;"
+      }
+    }
+
+      % These chords will be in opposing-landscape orientation
+    \override TextScript #'fret-diagram-details 
+                           #'orientation = #'opposing-landscape
+
     %% C major for guitar, barred on third fret
     %  verbose style
     %  roman fret label, finger labels below string, straight barre
@@ -67,6 +270,7 @@ and tweaking fret diagrams."
     }
     
     %% C major for guitar, barred on third fret
+    %% Double barre used to test barre function
     %  verbose style
     c'2^\markup {
       % 110% of default size
@@ -79,7 +283,6 @@ and tweaking fret diagrams."
                      (fret-label-vertical-offset . 0)
                      (label-dir . -1)
                      (mute-string . "M")
-                     (orientation . landscape)
                      (xo-font-magnification . 0.4)
                      (xo-padding . 0.3))) {
           \fret-diagram-verbose #'((mute 6)
@@ -88,17 +291,53 @@ and tweaking fret diagrams."
                                    (place-fret 3 5 3)
                                    (place-fret 2 5 4)
                                    (place-fret 1 3 1)
+                                   (barre 4 2 5)
                                    (barre 5 1 3))
         }
       }
     }
     
+    %% C major for guitar, with capo on third fret
+    %  verbose style
+    c'2^\markup {
+      % 110% of default size
+      \override #'(size . 1.1) {
+        \override #'(fret-diagram-details . (
+                     (number-type . roman-upper)
+                     (dot-label-font-mag . 0.9)
+                     (finger-code . none)
+                     (fret-label-vertical-offset . 0.5)
+                     (xo-font-magnification . 0.4)
+                     (xo-padding . 0.3))) {
+          \fret-diagram-verbose #'((mute 6)
+                                   (capo 3)
+                                   (open 5)
+                                   (place-fret 4 5 1)
+                                   (place-fret 3 5 2)
+                                   (place-fret 2 5 3)
+                                   (open 1))
+        }
+      }
+    }
+    
     %% simple D chord
-    d'1^\markup {
+    d'2^\markup {
+      \override #'(fret-diagram-details . (
+                   (finger-code . below-string)
+                   (dot-radius . 0.35)
+                   (dot-position . 0.5)
+                   (fret-count . 3))) {
+        \fret-diagram-terse #"x;x;o;2-1;3-2;2-3;"
+      }
+    }
+
+    %% simple D chord, large top fret thickness
+    d'2^\markup {
       \override #'(fret-diagram-details . (
                    (finger-code . below-string)
                    (dot-radius . 0.35)
                    (dot-position . 0.5)
+                   (top-fret-thickness . 7)
                    (fret-count . 3))) {
         \fret-diagram-terse #"x;x;o;2-1;3-2;2-3;"
       }
diff --git a/input/lsr/fretboard-chordchanges.ly b/input/lsr/fretboard-chordchanges.ly
new file mode 100644 (file)
index 0000000..9ee73db
--- /dev/null
@@ -0,0 +1,24 @@
+%% Do not edit this file; it is auto-generated from input/new
+%% This file is in the public domain.
+\version "2.13.0"
+
+\header {
+  lsrtags = "fretted-strings"
+  texidoc = "FretBoards can be set to display only when the chord changes
+or at the beginning of a new line."
+  doctitle = "Fretboard chordchanges"
+} % begin verbatim
+
+
+myChords = \chordmode {
+  c1 c1 \break
+  c1 c1 \break
+  \set chordChanges = ##t
+  c1 c1 \break
+}
+
+<<
+  \new ChordNames { \myChords }
+  \new FretBoards { \myChords }
+  \new Staff { \myChords }
+>>
index 6a04c8b99ca384213e0132b56d8238b94e79d415..426b493d129bd04426f64685ca41dc90c2002841 100644 (file)
@@ -1,20 +1,21 @@
-customizing-markup-fret-diagrams.ly
+adding-fingerings-to-a-score.ly
 adding-fingerings-to-tablatures.ly
+allowing-fingerings-to-be-printed-inside-the-staff.ly
+controlling-the-placement-of-chord-fingerings.ly
+customizing-fretboard-fret-diagrams.ly
+customizing-markup-fret-diagrams.ly
+defining-predefined-fretboards-for-other-instruments.ly
+faking-a-hammer-in-tablatures.ly
 fingerings,-string-indications,-and-right-hand-fingerings.ly
+flamenco-notation.ly
+fret-diagrams-explained-and-developed.ly
+fretboard-chordchanges.ly
+guitar-strum-rhythms.ly
+how-to-change-fret-diagram-position.ly
 jazz-combo-template.ly
-adding-fingerings-to-a-score.ly
 laissez-vibrer-ties.ly
-controlling-the-placement-of-chord-fingerings.ly
+letter-tablature-formatting.ly
 modern-tab-text-clef.ly
-fret-diagrams-explained-and-developed.ly
-stem-and-beam-behavior-in-tablature.ly
-how-to-change-fret-diagram-position.ly
-flamenco-notation.ly
 placement-of-right-hand-fingerings.ly
-guitar-strum-rhythms.ly
 polyphony-in-tablature.ly
-defining-predefined-fretboards-for-other-instruments.ly
-letter-tablature-formatting.ly
-allowing-fingerings-to-be-printed-inside-the-staff.ly
-customizing-fretboard-fret-diagrams.ly
-faking-a-hammer-in-tablatures.ly
+stem-and-beam-behavior-in-tablature.ly
index 3e83268160747949932e4096e67545fd9f8a3ae0..6ffb41e7c96d9cdda20944808f99defb420e2504 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "pitches"
index 2c204b2d4441f7d35db3730bc5a752f52c7feccf..88235ba4e4bb1eca64fa4b0b0531766d3ba5199f 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "editorial-annotations"
@@ -12,6 +12,14 @@ sobreescribiendo algunas de sus propiedades.
 "
   doctitlees = "Líneas de rejilla: modificar su aspecto"
 
+%% Translation of GIT committish :0364058d18eb91836302a567c18289209d6e9706
+  texidocde = "
+Die Erscheinung der Gitternetzlinien kann durch einige Eigenschaften
+geändert werden.
+
+"
+  doctitlede = "Gitternetzlinien: Aussehen verändern"
+
   texidoc = "
 The appearance of grid lines can be changed by overriding some of their
 properties.
@@ -20,43 +28,44 @@ properties.
   doctitle = "Grid lines: changing their appearance"
 } % begin verbatim
 
-\layout {
- \context {
-   \Staff
-   % set up grids
-   \consists "Grid_point_engraver"
-   % set the grid interval to one quarter note
-   gridInterval = #(ly:make-moment 1 4)
-  }
-}
-
-\new Score \with {
- \consists "Grid_line_span_engraver"
- % this moves them to the right half a staff space
- \override NoteColumn #'X-offset = #-0.5
-}
-
-\new ChoirStaff <<
-  \new Staff {
-    \relative c'' {
-      \stemUp
-      c'4. d8 e8 f g4
+\score {
+  \new ChoirStaff <<
+    \new Staff {
+      \relative c'' {
+        \stemUp
+        c'4. d8 e8 f g4
+      }
     }
-  }
-  \new Staff {
-    \relative c {
-      % this moves them up one staff space from the default position
-      \override Score.GridLine #'extra-offset = #'(0.0 . 1.0)
-      \stemDown
-      \clef bass
-      \once \override Score.GridLine #'thickness = #5.0
-      c4
-      \once \override Score.GridLine #'thickness = #1.0
-      g'
-      \once \override Score.GridLine #'thickness = #3.0
-      f
-      \once \override Score.GridLine #'thickness = #5.0
-      e
+    \new Staff {
+      \relative c {
+        % this moves them up one staff space from the default position
+        \override Score.GridLine #'extra-offset = #'(0.0 . 1.0)
+        \stemDown
+        \clef bass
+        \once \override Score.GridLine #'thickness = #5.0
+        c4
+        \once \override Score.GridLine #'thickness = #1.0
+        g'4
+        \once \override Score.GridLine #'thickness = #3.0
+        f4
+        \once \override Score.GridLine #'thickness = #5.0
+        e4
+      }
+    }
+  >>
+  \layout {
+    \context {
+      \Staff
+      % set up grids
+      \consists "Grid_point_engraver"
+      % set the grid interval to one quarter note
+      gridInterval = #(ly:make-moment 1 4)
+    }
+    \context {
+      \Score
+      \consists "Grid_line_span_engraver"
+      % this moves them to the right half a staff space
+      \override NoteColumn #'X-offset = #-0.5
     }
   }
->>
+}
index 1f547ff678bcec8a7d056d19c4b111334162d20a..b28d08b2006eeb07c77e0e60c554b9f70eb1c0a0 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "editorial-annotations"
@@ -15,7 +15,7 @@ las líneas sean más cortas, como en este fragmento de código.
   doctitlees = "Líneas de rejilla: destacar ritmos y la relación temporal entre notas"
 
   texidoc = "
-Regular vertical lines can be drawn between staves to show notes
+Regular vertical lines can be drawn between staves to show note
 synchronization; however, in case of monophonic music, you may want to
 make the second stave invisible, and make the lines shorter like in
 this snippet.
@@ -24,62 +24,50 @@ this snippet.
   doctitle = "Grid lines: emphasizing rhythms and notes synchronization"
 } % begin verbatim
 
-%% sets of grid
-\layout {
- \context {
-   \Staff
-   \consists "Grid_point_engraver"
-   gridInterval = #(ly:make-moment 1 8)
-%% lines length
-   \override GridPoint #'Y-extent = #'(6 . 0)
- }
- \context {
-   \StaffGroup
-   \remove "System_start_delimiter_engraver"
- }
+\score {
+  \new ChoirStaff {
+    \relative c'' <<
+      \new Staff {
+        \time 12/8
+        \stemUp
+        c4. d8 e8 f g4 f8 e8. d16 c8
+      }
+      \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
+        
+        % dummy notes to force regular note spacing
+        \once  \override Score.GridLine #'thickness = #4.0
+        c8 c c
+        \once  \override Score.GridLine #'thickness = #3.0
+        c8 c c
+        \once  \override Score.GridLine #'thickness = #4.0
+        c8 c c
+        \once  \override Score.GridLine #'thickness = #3.0
+        c8 c c
+      }
+    >>
+  }
+  \layout {
+    \context {
+      \Score
+      \consists "Grid_line_span_engraver"
+      % center grid lines horizontally below note heads
+      \override NoteColumn #'X-offset = #-0.5
+    }
+    \context {
+      \Staff
+      \consists "Grid_point_engraver"
+      gridInterval = #(ly:make-moment 1 8)
+      % 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)
+    }
+    ragged-right = ##t
+  }
 }
-
-\layout {
- ragged-right = ##t
-}
-\new Score
-\with {
- \consists "Grid_line_span_engraver"
-%% centers grid lines  horizontally below noteheads
- \override NoteColumn #'X-offset = #-0.5
-}
-
-\new ChoirStaff <<
- \new Staff
- {
-   \time 12/8
-   \stemUp
-   \relative {
-   c'4. d8 e8 f g4 f8 e8.[ d16 c8] }
- }
- \new Staff
- {
-%% making sure the lines will be placed outside the Staff
-   \override Score.GridLine #'extra-offset = #'( 0.0 . -4.0 )
-
-%% hides staff and notes so that only the grid lines are visible
-   \override NoteHead #'transparent = ##t
-   \override NoteHead #'no-ledgers = ##t
-   \override Stem #'transparent = ##t
-   \override Beam #'transparent = ##t
-   \override Staff.BarLine #'transparent = ##t
-   \override Staff.StaffSymbol #'line-count = #0
-   \override Staff.TimeSignature #'transparent = ##t
-   \override Staff.Clef #'transparent = ##t
-
-% you have to put 'dummy' notes here to force regular grid spacing...
- \once  \override Score.GridLine #'thickness = #4.0
- c8   c8   c8
- \once  \override Score.GridLine #'thickness = #3.0
- c8   c8   c8
- \once  \override Score.GridLine #'thickness = #4.0
- c8   c8   c8
- \once  \override Score.GridLine #'thickness = #3.0
- c8   c8   c8
- }
->>
index e25afd8de353079809ac8234624654cadd9a5237..60769ee31e34874464fad0c6ed5ab3a60c50b766 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "rhythms"
@@ -11,6 +11,14 @@ Los patrones de barrado se pueden alterar con la propiedad
 
 "
   doctitlees = "Agrupar los pulsos"
+  
+%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a>
+texidocde = "
+Balkengruppen können mit der @code{beatGrouping}-Eigenschaft geändert
+werden:
+
+"
+  doctitlede = "Notengruppen"
 
   texidoc = "
 Beaming patterns may be altered with the @code{beatGrouping} property: 
@@ -21,9 +29,10 @@ Beaming patterns may be altered with the @code{beatGrouping} property:
 
 \relative c'' {
   \time 5/16
+  #(override-auto-beam-setting '(end * * 5 16) 5 16)
   \set beatGrouping = #'(2 3)
-  c8[^"(2+3)" c16 c8]
+  c8^"(2+3)" c16 c8
   \set beatGrouping = #'(3 2)
-  c8[^"(3+2)" c16 c8]
+  c8^"(3+2)" c16 c8
 }
 
index a065b4c7e8d90cc9bb14814bcf4d4e4b4aa23c51..5464bdc1b991f0aecbe684761a6c9e2db1e46524 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from input/new
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   texidoces = "
@@ -10,6 +10,14 @@ además de las notas de la melodía, acordes y diagramas de posiciones.
 "
   doctitlees = "Ritmos rasgueados de guitarra"
 
+%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a>
+  texidocde = "
+In Guitarrennotation kann neben Melodie, Akkordbezeichnungen und
+Bunddiagrammen auch der Schlagrhythmus angegeben werden.
+
+"
+  doctitlede = "Schlagrhythmus für Guitarren"
+
   lsrtags = "rhythms,fretted-strings"
   texidoc = "
 For guitar music, it is possible to show strum rhythms, along
@@ -26,35 +34,30 @@ with melody notes, chord names, and fret diagrams.
       c1 f g c
     }
   }
-
   \new FretBoards {
     \chordmode {
       c1 f g c
     }
   }
-
-
   \new Voice \with {
-    \consists Pitch_squash_engraver
-  } \relative c'' {
-    \improvisationOn
-    c4 c8 c c4 c8 c
-    f4 f8 f f4 f8 f
-    g4 g8 g g4 g8 g
-    c4 c8 c c4 c8 c
+    \consists "Pitch_squash_engraver"
+  } {
+    \relative c'' {
+      \improvisationOn
+      c4 c8 c c4 c8 c
+      f4 f8 f f4 f8 f
+      g4 g8 g g4 g8 g
+      c4 c8 c c4 c8 c
+    }
   }
-
-
   \new Voice = "melody" {
     \relative c'' {
-      \improvisationOff
       c2 e4 e4
       f2. r4
       g2. a4
       e4 c2.
     }
   }
-
   \new Lyrics {
     \lyricsto "melody" {
       This is my song.
index 257bedac49b1b14387d1c606993a7ac69d6ff452..b081a1c6db73ff6a6d106febba3ad0d2d727c888 100644 (file)
@@ -1,6 +1,6 @@
-%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
+%% Do not edit this file; it is auto-generated from input/new
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "rhythms, percussion"
@@ -14,37 +14,33 @@ is the template of a real Balkan song!).
   doctitle = "Heavily customized polymetric time signatures"
 } % begin verbatim
 
-#(define (set-time-signature one two three four five six seven eight nine ten
-          eleven num)
-          (markup #:override '(baseline-skip . 0) #:number
-          (#:line ((#:column (one num)) #:vcenter "+" (#:column (two num))
-          #:vcenter "+" (#:column (three num)) #:vcenter "+" (#:column (four num))
-          #:vcenter "+" (#:column (five num)) #:vcenter "+" (#:column (six num))
-          #:vcenter "+" (#:column (seven num)) #:vcenter "+" (#:column (eight num))
-          #:vcenter "+" (#:column (nine num)) #:vcenter "+" (#:column (ten num))
-          #:vcenter "+" (#:column (eleven num))))
-          ))
 
+#(define plus (markup #:vcenter "+"))
+#(define ((custom-time-signature one two three four five six
+           seven eight nine ten eleven num) grob)
+            (grob-interpret-markup grob
+              (markup #:override '(baseline-skip . 0) #:number
+                (#:line (
+                    (#:column (one num)) plus
+                    (#:column (two num)) plus
+                    (#:column (three num)) plus
+                    (#:column (four num)) plus
+                    (#:column (five num)) plus
+                    (#:column (six num)) plus
+                    (#:column (seven num)) plus
+                    (#:column (eight num)) plus
+                    (#:column (nine num)) plus
+                    (#:column (ten num)) plus
+                    (#:column (eleven num))))
+                )))
 
 melody = \relative c'' {
   \set Staff.instrumentName = #"Bb Sop."
   \key g \major
-  \time 25/8
-  \override Staff.TimeSignature #'stencil = #ly:text-interface::print
-  \override Staff.TimeSignature #'text = #(set-time-signature "3" "2" "2" "3"
-    "2" "2" "2" "2" "3" "2" "2" "8" )
-  \set Staff.beatGrouping = #'(3 2 2 3 2 2 2 2 3 2 2)
-  #(override-auto-beam-setting '(end * * 25 8) 3 8)
-  #(override-auto-beam-setting '(end * * 25 8) 5 8)
-  #(override-auto-beam-setting '(end * * 25 8) 7 8)
-  #(override-auto-beam-setting '(end * * 25 8) 10 8)
-  #(override-auto-beam-setting '(end * * 25 8) 12 8)
-  #(override-auto-beam-setting '(end * * 25 8) 14 8)
-  #(override-auto-beam-setting '(end * * 25 8) 16 8)
-  #(override-auto-beam-setting '(end * * 25 8) 18 8)
-  #(override-auto-beam-setting '(end * * 25 8) 21 8)
-  #(override-auto-beam-setting '(end * * 25 8) 23 8)
-
+  #(set-time-signature 25 8 '(3 2 2 3 2 2 2 2 3 2 2))
+  \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
   c,4. d4 c4 d4. c4 d c2 d4. e4-^ d4
   c4. d4 c4 d4. c4 d c2 d4. e4-^ d4 \break
index a6db8a4cc0a8f086aeaabf10a805b52ca1d0a80a..f12b58710d50303b0eb33d8ee092a194cbb4ac43 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "expressive-marks"
@@ -12,6 +12,15 @@ Esta línea se puede suprimir de la siguiente manera:
 
 "
   doctitlees = "Ocultar la línea de extensión de las expresiones textuales de dinámica"
+  
+%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a>
+texidocde = "
+Dynamik-Texte (wie cresc. und dim.) werden mit einer gestrichelten Linie
+gesetzt, die ihre Dauer anzeigt.  Diese Linie kann auf foldenge Weise
+unterdrückt werden:
+
+"
+  doctitlede = "Crescendo-Linien von Dynamik-Texten unterdrücken"
 
   texidoc = "
 Text style dynamic changes (such as cresc. and dim.) are printed with a
index 41fcd07684e36c2020eae47c4c69dec2af41219a..ed761990aa106f75f57bc5fa8271690b321cd4f3 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "expressive-marks, tweaks-and-overrides"
index bd6a0e3ce888edb26ee5323d4e313112863c7ca8..3e6dd0d32661b7c4337b127a2dbb4ac6cedc5bea 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "fretted-strings, tweaks-and-overrides"
index dc8a63c8f108e556d27ab19a37b07f1ad13dd3bb..2644caa60d9a996ab7100a47502fcdfa841a9cef 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "text, vocal-music"
index a7c04ad5c4912772d8f712c8fb83804bf25e97ff..aeed14ca591f97c47e4263006816e60ae0c5a7e2 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from input/new
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 \header {
   texidoces = "
 Los «incipit» se pueden escribir utilizando el grob del nombre del
@@ -23,7 +23,7 @@ incipit =
     \once \override Staff.InstrumentName #'self-alignment-Y = #UP
     \once \override Staff.InstrumentName #'Y-offset = #4
     \once \override Staff.InstrumentName #'padding = #0.3
-    \once \override Staff.InstrumentName #'stencil = 
+    \once \override Staff.InstrumentName #'stencil =
     #(lambda (grob)
        (let* ((instrument-name (ly:grob-property grob 'long-text))
               (layout (ly:output-def-clone (ly:grob-layout grob)))
@@ -47,7 +47,7 @@ incipit =
          (ly:output-def-set-variable! layout 'ragged-last #f)
          (ly:output-def-set-variable! layout 'system-count 1)
          (ly:score-add-output-def! score layout)
-         (set! (ly:grob-property grob 'long-text)
+         (ly:grob-set-property! grob 'long-text
                (markup #:score score))
          (ly:system-start-text::print grob)))
   #})
@@ -58,9 +58,7 @@ global = {
   \set Score.skipBars = ##t
   \key g \major
   \time 4/4
-  
-  %make the staff lines invisible on staves
-  \override Staff.BarLine #'transparent = ##t
+
   % the actual music
   \skip 1*8
 
@@ -246,25 +244,19 @@ bassusLyrics = \lyricmode {
         \incipit \bassusIncipit
         \bassusNotes
       >>
+      \new Lyrics = "bassusLyrics" \lyricsto bassusNotes { \bassusLyrics }
     >>
-    \new Lyrics = "bassusLyrics" \lyricsto bassusNotes { \bassusLyrics }
-    %% Keep the bass lyrics outside of the staff group to avoid bar lines
-    %% between the lyrics.
   >>
   \layout {
     \context {
       \Score
-      %% no bar lines in staves
+      %% no bar lines in staves or lyrics
       \override BarLine #'transparent = ##t
     }
-    %% the next three instructions keep the lyrics between the bar lines
+    %% the next two instructions keep the lyrics between the bar lines
     \context {
       \Lyrics
-      \consists "Bar_engraver" 
-      \override BarLine #'transparent = ##t
-    } 
-    \context {
-      \StaffGroup
+      \consists "Bar_engraver"
       \consists "Separating_line_group_engraver"
     }
     \context {
index f01da0bdfb35992478b9cb66c9394636b8d30552..b4f1945fa38c78c5e2617c2981760cfa7602cdc9 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "keyboards"
@@ -17,6 +17,19 @@ configurar a la forma de corchete en el contexto de @code{PianoStaff}.
 "
   doctitlees = "Indicar acordes de pentagrama cruzado con corchetes de arpegio"
 
+%% Translation of GIT committish: 33f623301a41fcc53efadf96bca1c72834763415
+  texidocde = "
+Eine Arpeggioklammer kann anzeigen, dass Noten auf zwei unterschiedlichen
+Systemen mit der selben Hand gespielt werden sollen.  Damit das notiert
+werden kann, muss der @code{PianoStaff}-Kontext so eingestellt werden,
+dass er Arpeggios über Systeme hinweg akzeptiert und die Form der Arpeggios
+muss auf eine Klammer eingestellt werden.
+
+(Debussy, Les collines d’Anacapri, T. 65)
+
+"
+  doctitlede = "Akkorde auf zwei Systemen mit Arpeggioklammern anzeigen"
+
   texidoc = "
 An arpeggio bracket can indicate that notes on two different staves are
 to be played with the same hand. In order to do this, the
index 97105b9383d264145dd2fdde7a2d16242748b8ea..fa288e2e0e7e78010c3d34ec55a0a09af99c9241 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from input/new
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 \header {
   texidoces = "
 Las marcas de cesura se pueden crear sobreescribiendo la propiedad
@@ -9,6 +9,14 @@ una marca de cesura curva.
 
 "
   doctitlees = "Insertar una cesura"
+  
+%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a>
+ texidocde = "
+Zäsurzeichen können erstellt werden, indem die @code{'text}-Eigenschaft
+des @code{BreathingSign}-Objektes verändert wird.  Ein gekrümmtes
+Zäsurzeichen ist auch möglich.
+"
+  doctitlede = "Eine Zäsur einfügen"
 
   lsrtags = "expressive-marks,tweaks-and-overrides"
   texidoc = "
index 1e12ac89524d2d40a92c6f888b0a7e5fa50e0bb7..9ff3905a31c7680f405e7bdf62c9cb504c55a2f2 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "staff-notation"
index 342b036486b87d849a79ba815c059a50b3e6550a..604bf944999948277b9832322d06f613e9ccbe90 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "repeats"
@@ -13,6 +13,15 @@ impresión distinta:
 "
   doctitlees = "Símbolos de porcentaje sueltos"
 
+%% Translation of GIT committish :<0364058d18eb91836302a567c18289209d6e9706>
+  texidocde = "
+Isolierte Prozentwiederholungen können auch ausgegeben werden.  Das wird
+erreicht, indem man eine Ganztaktpause notiert und ihre Ausgabeform
+ändert:
+
+"
+  doctitlede = "Isolierte Prozentwiederholungen"
+
   texidoc = "
 Isolated percents can also be printed.  This is done by entering a
 multi-measure rest with a different print function:
@@ -23,6 +32,7 @@ multi-measure rest with a different print function:
 
 \relative c'' {
   \override MultiMeasureRest #'stencil
-     = #ly:multi-measure-rest::percent
+    = #ly:multi-measure-rest::percent
+  \override MultiMeasureRest #'thickness = #0.48
   R1
 }
index bc87cf86a286decabb13e083d6a21d7d280c66a0..76030ea52855df999b1ffbca8d829211a74aada2 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "keyboards, percussion, fretted-strings, template"
index 23cb9f95083ec810bd86a22b102453e7733f8d53..d4f7e281841b9a0b70497f59b301bdfb13e0f313 100644 (file)
@@ -1,13 +1,13 @@
-indicating-cross-staff-chords-with-arpeggio-bracket.ly
+accordion-discant-symbols.ly
 clusters.ly
-creating-slurs-across-voices.ly
-piano-template-with-centered-lyrics.ly
-vocal-ensemble-template-with-automatic-piano-reduction.ly
-piano-template-simple.ly
 controlling-the-placement-of-chord-fingerings.ly
-laissez-vibrer-ties.ly
-accordion-discant-symbols.ly
+creating-slurs-across-voices.ly
 fine-tuning-pedal-brackets.ly
-piano-template-with-melody-and-lyrics.ly
-piano-template-with-centered-dynamics.ly
+indicating-cross-staff-chords-with-arpeggio-bracket.ly
 jazz-combo-template.ly
+laissez-vibrer-ties.ly
+piano-template-simple.ly
+piano-template-with-centered-dynamics.ly
+piano-template-with-centered-lyrics.ly
+piano-template-with-melody-and-lyrics.ly
+vocal-ensemble-template-with-automatic-piano-reduction.ly
index 7de2d7b72fe752fa15d133eaaa2cfb98ec1d972b..47e5db49357ddd91cf541f505347141ef9f9f993 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "expressive-marks, keyboards, fretted-strings"
index 14d37d089c1ce9f0f72a3271ceb559b5cae191b5..eb2842ff6470eb2ab55141f5496cb45d379b61e3 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from input/new
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "staff-notation,fretted-strings"
index ff690e67775963720ae57155928c98c92ce11af0..0062153a2b3fdc6a587a69f3110c50f7258243c4 100644 (file)
 
 @include version.itexi
 
+@ifnothtml
 @macro lydoctitle{TEXT}
 @unnumberedsec \TEXT\
 @end macro
+@end ifnothtml
 
 @ifhtml
 
+@macro lydoctitle{TEXT}
+@node \TEXT\
+@unnumberedsec \TEXT\
+@end macro
+
 @ifset bigpage
 
 @macro rlearning{NAME}
@@ -110,6 +117,19 @@ or figure for each example to see the corresponding input file.
 @node Top
 @top GNU LilyPond --- Snippets List
 
+@ifhtml
+@ifclear bigpage
+This document is also available as a
+@uref{source/Documentation/user/lilypond-snippets.pdf,PDF} and as
+@uref{source/input/lsr/lilypond-snippets-big-page.html,one big page}.
+@end ifclear
+@ifset bigpage
+This document is also available as a
+@uref{source/Documentation/user/lilypond-snippets.pdf,PDF} and as
+@uref{source/input/lsr/lilypond-snippets/index.html,HTML indexed multiple pages}.
+@end ifset
+@end ifhtml
+
 This document shows a selected set of LilyPond snippets from the
 @uref{http://lsr@/.dsi@/.unimi@/.it,LilyPond Snippet Repository}
 (LSR). It is in the public domain.
index 1d4a9d100bf8d8e16abbdc8cf76b30219c09e10f..c808006d20869f22fd8c8c91f11c85bb6f747b9e 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from input/new
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 \header {
   texidoces = "
 Se pueden aplicar puntas de flecha a los elementos de extensión de
@@ -19,15 +19,15 @@ texto y de línea (como el 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 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 #'(bound-details right arrow) = ##t
   \override Glissando #'arrow-length = #0.5
   \override Glissando #'arrow-width = #0.25
   
index 3f082f09517106ad792b4bfee3dee87d4faa606a..f5a9a76ecf17e0db502b75fba0c0de789c1dab10 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "text, vocal-music"
index deba9ce2ffee2567eebeb716aebf2170d3e9a7be..ee68b9e296e13e006eb4ab7b0da9e1acb57eaf68 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from input/new
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 \header {
   texidoces = "
 El «Makam» es un tipo de melodía de Turquía que
@@ -13,6 +13,18 @@ nombres de las notas y las alteraciones.
 "
   doctitlees = "El «Makam»"
 
+  
+%% Translation of GIT committish :<0364058d18eb91836302a567c18289209d6e9706>
+  texidocde = "
+Makam ist eine türkische Melodie, in der 1/9-Tonabstände
+eingesetzt werden.  Sehen Sie sich die Initialisierungsdatei
+@code{makam.ly} für weiter Information zu Tonhöhenbezeichnungen
+und Alterationen an (siehe
+Handbuch zum Lernen @version{}, 4.6.3 Weitere Information zu
+Hinweisen, wo diese Datei gespeichert ist)."
+  
+  doctitlede = "Makam-Beispiel"
+
   lsrtags = "pitches,world-music"
   texidoc = "Makam is a type of melody from Turkey using 1/9th-tone
 microtonal alterations.  Consult the initialization file
@@ -27,7 +39,7 @@ for details of pitch names and alterations."
 \include "makam.ly"
 
 \relative c' {
-  \set Staff.keySignature = #`((3 . ,BAKIYE) (6 . ,(- KOMA)))
+  \set Staff.keySignature = #`((6 . ,(- KOMA)) (3 . ,BAKIYE))
   c4 cc db fk
   gbm4 gfc gfb efk
   fk4 db cc c
index 20e79010ebbe614726dd5d115ce8a8964e2aa814..001ae776916d7e275aed9e24f90baf5cdca6b68b 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from input/new
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 \header {
   lsrtags = "rhythms,tweaks-and-overrides"
   texidoc = "
@@ -21,16 +21,18 @@ flag from interfering with tie positioning, the stem is extended.
 
 \relative c'' {
   \time 2/4
-  << {
-    \once \override Stem #'transparent = ##t
-    \once \override Stem #'length = #8
-    b8 ~ b\noBeam
-    \once \override Stem #'transparent = ##t
-    \once \override Stem #'length = #8
-    g8 ~ g\noBeam
-  }
-  \\
-  {
-    b8 g g e
-  } >>
+  <<
+    {
+      \once \override Stem #'transparent = ##t
+      \once \override Stem #'length = #8
+      b8 ~ b\noBeam
+      \once \override Stem #'transparent = ##t
+      \once \override Stem #'length = #8
+      g8 ~ g\noBeam
+    }
+    \\
+    {
+      b8 g g e
+    }
+  >>
 }
index 3174136a7835375a9727f21e9ada33c588b449e3..2dec7fd02b571ccdfbd510aac3c563d1d654d0e5 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "staff-notation, editorial-annotations"
@@ -15,6 +15,16 @@ destacar, utilizando la propiedad @code{line-positions} del objeto
 "
   doctitlees = "Hacer unas líneas del pentagrama más gruesas que las otras"
 
+%% Translation of GIT committish :<0364058d18eb91836302a567c18289209d6e9706> 
+  texidocde = "
+Für den pädagogischen Einsatz kann eine Linie des Notensystems dicker
+gezeichnet werden (z. B. die Mittellinie, oder um den Schlüssel hervorzuheben).
+Das ist möglich, indem man zusätzliche Linien sehr nahe an der Linie, die
+dicker erscheinen soll, einfügt.  Dazu wird die @code{line-positions}-Eigenschaft
+herangezogen.
+
+"
+  doctitlede = "Eine Linie des Notensystems dicker als die anderen machen"
   texidoc = "
 For pedagogical purposes, a staff line can be thickened (e.g., the
 middle line, or to emphasize the line of the G clef).  This can be
index 91960be485eff31ecf6d087ec4bc2582b6915402..fae2ae5c59d712dbec998bcea0d72765ca106fe5 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "chords"
index 39b1c2d7b7073b2a76674263cc9735c9b2a527e2..9577599db4a743c3905ae43ffee56e99100b79c0 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "rhythms, tweaks-and-overrides"
@@ -18,10 +18,10 @@ Beam positions may be controlled manually, by overriding the
 
 \relative c' {
   \time 2/4
-  % from upper staffline (position 4) to center (position 0)
+  % from upper staff-line (position 2) to center (position 0)
   \override Beam #'positions = #'(2 . 0)
   c8 c
-  % from center to one above center (position 2)
+  % from center to one above center (position 1)
   \override Beam #'positions = #'(0 . 1)
   c8 c
 }
index 282b1d7259a5472fdcb96516c49a09cffe0c4b11..0f18f71978401fc9f8e3fee45714cb3230e9aaa5 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from input/new
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "editorial-annotations, vocal-music"
@@ -8,9 +8,7 @@
   texidoc = "
 This example shows how to put crosses on stems. Mark the beginning
 of a spoken section with the @code{\\speakOn} keyword, and end it
-with the @code{\\speakOff} keyword.  Remember to end cross sections
-before entering any rest: this function also adds crosses to the
-invisible stems of rests.
+with the @code{\\speakOff} keyword.
 "
   doctitle = "Marking notes of spoken parts with a cross on the stem"
 } % begin verbatim
@@ -18,14 +16,18 @@ invisible stems of rests.
 
 speakOn = {
   \override Stem #'stencil = #(lambda (grob)
-  (ly:stencil-combine-at-edge
-    (ly:stem::print grob)
-    Y
-    (- (ly:grob-property grob 'direction))
-    (grob-interpret-markup grob
-      (markup #:hspace -1.025 #:fontsize -4
-        #:musicglyph "noteheads.s2cross"))
-    -2.3 0))
+    (let* ((x-parent (ly:grob-parent grob X))
+           (is-rest? (ly:grob? (ly:grob-object x-parent 'rest))))
+      (if is-rest?
+        empty-stencil
+        (ly:stencil-combine-at-edge
+          (ly:stem::print grob)
+          Y
+          (- (ly:grob-property grob 'direction))
+          (grob-interpret-markup grob
+            (markup #:hspace -1.025 #:fontsize -4
+              #:musicglyph "noteheads.s2cross"))
+          -2.3 0))))
 }
 
 speakOff = {
index 640e56112617dbd24c23b22531a4d24ba0ec6c74..4ed543387566c56fdd48a8c61e2e5e04978e5625 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from input/new
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "text"
index 594b6faf62b321d9f721971a5a024071c50d556a..9c3d04a64f32ca8d6f413cce4db76ff72c7c6036 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "repeats, staff-notation, editorial-annotations"
index 31e22ad30247f9ee3c1fcced6a2471f2915c421c..4bbe54b750cf6db3c9012b12e50a8418169e2b2c 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "staff-notation, ancient-notation, contexts-and-engravers, tweaks-and-overrides"
@@ -16,6 +16,16 @@ propiedad @code{transparent}.
 
   doctitlees = "Disposición Mensurstriche (líneas divisorias entre pentagramas)"
 
+%% Translation of GIT committish :<0364058d18eb91836302a567c18289209d6e9706> 
+  texidocde = "
+Das Mensurstiche-Layout, in welchem die Taktlinien nicht auf den Systemen,
+sondern zwischen den Systemen gesetzt werden, kann mit einer @code{StaffGroup}
+anstelle von @code{ChoirStaff} erreicht werden.  Die Taktlinien auf den
+Systemen werden mit der the @code{transparent}-Eigenschaft ausgelöscht.
+
+"
+  doctitlede = "Mensurstriche-Layout (Taktstriche zwischen den Systemen"
+
   texidoc = "
 The mensurstriche-layout where the bar lines do not show on the staves
 but between staves can be achieved with a @code{StaffGroup} instead of
index c182a2905bd9478f8a713376af2e03285d775366..bfe1b494126954572a8383f6d40147f448c09075 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "rhythms"
@@ -14,24 +14,24 @@ can be printed on the same staff line, using the following setting.
   doctitle = "Merging multi-measure rests in a polyphonic part"
 } % begin verbatim
 
-normalPos= \revert MultiMeasureRest #'staff-position
+normalPos = \revert MultiMeasureRest #'staff-position
 
 {
   <<
     {
-       c''1
-       R1
-       c''1
-       \normalPos
-       R1
-     }
-     \\
-     {
-       c'1
-       R1
-       c'1
-       \normalPos
-       R1
-     }
+      c''1
+      R1
+      c''1
+      \normalPos
+      R1
+    }
+    \\
+    {
+      c'1
+      R1
+      c'1
+      \normalPos
+      R1
+    }
   >>
 }
index ec6910e2b83a7e4fbb6ad1d919d22418e9af4ff7..f11eee739f62c488e778ed44e67e845d297ab97e 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from input/new
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "staff-notation, fretted-strings"
index 7f9ea843527866a9397e3ae1ad914e3df127c3f7..6db466af716062f6d823600779f02fdaa5dcc10d 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "expressive-marks"
@@ -13,12 +13,26 @@ Las abreviaturas se encuentran definidas dentro del archivo
 valores predeterminados.  Se pueden modificar estos valores
 predeterminados para las abreviaturas. Por ejemplo, para asociar
 la abreviatura @code{-+} (@code{dashPlus}) con el símbolo del
-semitrino en lugar del símboloo predeterminado +, asigne el valor
+semitrino en lugar del símbolo predeterminado +, asigne el valor
 @code{trill} a la variable @code{dashPlus}:
 
 "
   doctitlees = "Modificar los valores predeterminados para la notación abreviada de las articulaciones"
 
+%% Translation of GIT committish :<0364058d18eb91836302a567c18289209d6e9706>  
+ texidocde = "
+Die Abkürzungen sind in der Datei @samp{ly/script-init.ly} definiert, wo
+den Variablen @code{dashHat}, @code{dashPlus}, @code{dashDash},
+@code{dashBar}, @code{dashLarger}, @code{dashDot} und
+@code{dashUnderscore} Standardwerte zugewiesen werden.  Diese Standardwerte
+können verändert werden.  Um zum Beispiel die Abkürzung
+@code{-+} (@code{dashPlus}) mit dem Triller anstatt mit dem +-Symbol zu
+assoziieren, muss der Wert @code{trill} der Variable
+@code{dashPlus} zugewiesen werden:
+
+"
+  doctitlede = "Die Standardwerte der Abkürzungen von Artikulationen verändern"
+
   texidoc = "
 The shorthands are defined in @samp{ly/script-init.ly}, where the
 variables @code{dashHat}, @code{dashPlus}, @code{dashDash},
index c86e2d79712ad181c90827201ec06e1e3ba1744f..1700e0a3a3ea866a114cd8094fe2e15653d21571 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "rhythms"
index 750ef9f9db555fcdfe5c3e3b8ba1e589aa29d448..e175ab350a1621ba7b9518f09eb92fb383e13eb2 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from input/new
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
 texidoces = "
@@ -20,6 +20,23 @@ longitud del texto, éste aparecerá centrado.
 "
 
 doctitlees = "Marcado de silencios multicompás"
+
+%% Translation of GIT committish :<0364058d18eb91836302a567c18289209d6e9706>
+  texidocde = "Textbeschriftungen, die an Mehrtaktpausen gehängt wird,
+wird über oder unter der Pause zentriert.  Lange Beschriftungen
+lassen den Takt nicht breiter werden.  Um eine Mehrtaktpause einer
+Beschriftung anzupassen, muss eine unsichtbare Pause mit der
+Beschriftung direkt vor der Mehrtkatpause eingesetzt werden.
+
+Man sollte beachten, dass unsichtbare Pausen automatische Taktstriche
+nach sich ziehen.  Text, der an eine unsichtbare Pause gehänt wird,
+ist links ausgerichtet an der Position, wo die Pause erscheinen
+würde.  Wenn aber die Länge des Taktes durch die Länge des Textes
+bestimmt wird, sieht es so aus, als ob der Text zentriert gesetzt
+ist."
+
+  doctitlede = "Textbeschriftung und Mehrtaktpausen"
+
   lsrtags = "rhythms, text"
   texidoc = "Markups attached to a multi-measure rest will be
 centered above or below it.  Long markups attached to multi-measure
index 242d0967381ed8c325ff6317c749df5c59e4d076..94e5fa3f2693821aa3c2ae9df26fe54b9ff1f096 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "staff-notation, contexts-and-engravers, tweaks-and-overrides"
@@ -22,6 +22,22 @@ todos los pentagramas. Las posibilidades son
 "
   doctitlees = "Anidado de grupos de pentagramas"
 
+%% Translation of GIT committish :<0364058d18eb91836302a567c18289209d6e9706>  
+  texidocde = "
+Die Eigenschaft @code{systemStartDelimiterHierarchy} kann eingesetzt
+werden, um komplizierte geschachtelte Systemklammern zu erstellen.  Der
+Befehl @code{\\set StaffGroup.systemStartDelimiterHierarchy} nimmt eine
+Liste mit der Anzahl der Systeme, die ausgegeben werden, auf.  Vor jedem
+System kann eine Systemanfangsklammer angegeben werden.  Sie muss in Klammern eingefügt
+werden und umfasst so viele Systeme, wie die Klammer einschließt.  Elemente
+in der Liste können ausgelassen werden, aber die erste Klammer umfasst immer
+die gesamte Gruppe.  Die Möglichkeiten der Anfangsklammer sind: @code{SystemStartBar},
+@code{SystemStartBracket}, @code{SystemStartBrace} und
+@code{SystemStartSquare}.
+
+"
+  doctitlede = "Systeme schachteln"
+
   texidoc = "
 The property @code{systemStartDelimiterHierarchy} can be used to make
 more complex nested staff groups. The command @code{\\set
diff --git a/input/lsr/non-default-tuplet-numbers.ly b/input/lsr/non-default-tuplet-numbers.ly
new file mode 100644 (file)
index 0000000..f3574a4
--- /dev/null
@@ -0,0 +1,35 @@
+%% Do not edit this file; it is auto-generated from input/new
+%% This file is in the public domain.
+\version "2.12.3"
+
+\header {
+  lsrtags = "rhythms"
+
+  texidoc = "
+LilyPond also provides formatting functions to print tuplet numbers different
+than the actual fraction, as well as to append a note value to the tuplet 
+number or tuplet fraction.
+"
+  doctitle = "Non-default tuplet numbers"
+} % begin verbatim
+
+
+\relative c'' {
+  \once \override TupletNumber #'text = #(tuplet-number::non-default-tuplet-denominator-text 7)
+  \times 2/3  { c4. c4. c4. c4. } % begin verbatim
+
+  \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")
+  \times 2/3  { c4. c4. c4. c4. }
+
+  \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")
+  \times 2/3  { c8 c8 c8 c8 c8 c8 }
+
+  \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")
+  \times 2/3  { c4. c4. c4. c4. }
+}
index bed107b2dc9480a42f051054d2f3f30f0c3e5727..01eda1e84e728c66b1b5dac5a362d398924648dc 100644 (file)
@@ -1,10 +1,8 @@
-%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
+%% Do not edit this file; it is auto-generated from input/new
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
-  lsrtags = "pitches, staff-notation"
-
   doctitlees = "Armaduras de tonalidad no tradicionales"
   texidoces = "
 La muy utilizada instrucción @code{\\key} establece la propiedad
@@ -51,37 +49,37 @@ für alle Oktaven gelten.
 Hier ein Beispiel einer möglichen Tonart für eine Ganztonleiter:
 "
 
+  lsrtags = "pitches, staff-notation"
   texidoc = "
 The commonly used @code{\\key} command sets the @code{keySignature}
 property, in the @code{Staff} context.
 
-To create non-standard key signatures, set this property directly. The
+To create non-standard key signatures, set this property directly.  The
 format of this command is a list:
 
-@code{ \\set Staff.keySignature = #`(((octave . step) . alter) ((octave
-. step) . alter) ...) } where, for each element in the list,
-@code{octave} specifies the octave (0 being the octave from middle C to
-the B above), @code{step} specifies the note within the octave (0 means
-C and 6 means B), and @code{alter} is @code{,SHARP ,FLAT ,DOUBLE-SHARP}
-etc. (Note the leading comma.)
-
+@code{\\set Staff.keySignature = #`(((octave . step) . alter) ((octave
+. step) . alter) ...)} where, for each element in the list,
+@code{octave} specifies the octave (0@tie{}being the octave from
+middle@tie{}C to the B above), @code{step} specifies the note within the
+octave (0@tie{}means@tie{}C and 6@tie{}means@tie{}B), and @code{alter} is
+@code{,SHARP ,FLAT ,DOUBLE-SHARP} etc.  (Note the leading comma.)
 
 Alternatively, for each item in the list, using the more concise format
-@code{(step . alter)} specifies that the same alteration should hold in
-all octaves.
-
-
-Here is an example of a possible key signature for generating a
-whole-tone scale: 
+@code{(step . alter)} specifies that the same alteration should hold in all
+octaves.
 
+Here is an example of a possible key signature for generating a whole-tone
+scale:
 "
   doctitle = "Non-traditional key signatures"
 } % begin verbatim
 
+
 \relative c' {
-  \set Staff.keySignature = #`(((0 . 3) . ,SHARP)
+  \set Staff.keySignature = #`(((0 . 6) . ,FLAT)
                                ((0 . 5) . ,FLAT)
-                               ((0 . 6) . ,FLAT))
+                               ((0 . 3) . ,SHARP))
   c4 d e fis
   aes4 bes c2
 }
+
diff --git a/input/lsr/orchestra-choir-and-piano-template.ly b/input/lsr/orchestra-choir-and-piano-template.ly
new file mode 100644 (file)
index 0000000..632c11c
--- /dev/null
@@ -0,0 +1,180 @@
+%% Do not edit this file; it is auto-generated from input/new
+%% This file is in the public domain.
+\version "2.13.0"
+\header {
+  texidoces = "
+
+Esta plantilla muestra el uso de contextos @code{StaffGroup} y
+@code{GrandStaff} anidados para sub-agrupar instrumentos del mismo
+tipo, y el uso de @code{\\transpose} para los instrumentos
+transpositores.  Toda la música que está dentro de variables se
+almacena en Do.  La música se puede introducir en Do, o (de forma
+alternativa) escribirse en el tono del instrumento y transportada
+a Do antes de ser asignada a una variable.
+
+"
+  doctitlees = "Plantilla de orquesta, coro y piano"
+
+  lsrtags = "template"
+  texidoc = "
+This template demonstrates the use of nested @code{StaffGroup}
+and @code{GrandStaff} contexts to sub-group instruments of the same
+type together, and the use of @code{\\transpose} for transposing
+instruments.  All music in variables is stored in C.  Music may be
+entered in C or, alternatively, entered in the instrument key and
+transposed to C before being assigned to a variable.
+"
+  doctitle = "Orchestra, choir and piano template"
+} % begin verbatim
+
+#(set-global-staff-size 17)
+
+\paper {
+  indent = 3.0\cm
+  short-indent = 1.5\cm
+}
+
+\layout {
+   \context {
+     \Score
+     \override InstrumentName #'self-alignment-X = #CENTER
+   }
+}
+
+fluteMusic = \relative c { \key c \major c'1 d }
+oboeMusic = \relative c { \key c \major c'1 d }
+clarinetMusic = \relative c { \key c \major c'1 d }
+bassoonMusic = \relative c { \clef bass \key c \major c1 d }
+trumpetMusic = \relative c { \key c \major c''1 d }
+tromboneMusic = \relative c { \key c \major c1 d }
+hornIMusic = \relative c { \key c \major c'1 d }
+hornIIMusic = \relative c { \key c \major c1 d }
+percussionMusic = \relative c { \key c \major c1 d }
+sopranoMusic  = \relative c'' {\key c \major c1 d }
+sopranoLyrics = \lyricmode { Sop -- ra }
+altoIMusic  = \relative c' { \key c \major c1 d }
+altoILyrics = \lyricmode { A -- one }
+altoIIMusic  = \relative c' { \key c \major c1 d }
+altoIILyrics = \lyricmode { A -- two }
+tenorMusic    = \relative c' { \key c \major c1 d }
+tenorLyrics   = \lyricmode { Ten -- or }
+pianoRHMusic = \relative c { \key c \major c'1 d }
+pianoLHMusic = \relative c { \key c \major c1 d }
+violinIMusic = \relative c { \key c \major c'1 d }
+violinIIMusic = \relative c { \key c \major c'1 d }
+violaMusic = \relative c { \clef alto \key c \major c'1 d }
+celloMusic = \relative c { \clef bass \key c \major c1 d }
+bassMusic = \relative c { \clef "bass_8" \key c \major c,1 d }
+
+\score {
+  \new GrandStaff = "GrandStaff_score" <<
+    \new StaffGroup = "StaffGroup_woodwinds" <<
+      \new Staff = "Staff_flute" {
+        \set Staff.instrumentName = "Flute"
+        \fluteMusic
+      }
+      \new Staff = "Staff_oboe" {
+        \set Staff.instrumentName = "Oboe"
+        \oboeMusic
+      }
+      \new Staff = "Staff_clarinet" {
+        \set Staff.instrumentName = \markup \concat { "Clarinet in B" \flat }
+        \transposition bes
+        \transpose bes c' \clarinetMusic
+      }
+      \new Staff = "Staff_bassoon" {
+        \set Staff.instrumentName = "Bassoon"
+        \bassoonMusic
+      }
+    >>
+    \new StaffGroup = "StaffGroup_brass" <<
+      \new GrandStaff <<
+        \new Staff = "Staff_hornI" {
+          \set Staff.instrumentName = "Horn I"
+          \transposition f
+          \transpose f c' \hornIMusic
+        }
+        \new Staff = "Staff_hornII" {
+          \set Staff.instrumentName = "Horn II"
+          \clef bass
+          \transposition f
+          \transpose f c' \hornIIMusic
+        }
+      >>
+      \new Staff = "Staff_trumpet" {
+        \set Staff.instrumentName = "Trumpet in C"
+        \trumpetMusic
+      }
+      \new Staff = "Staff_trombone" {
+        \set Staff.instrumentName = "Trombone"
+        \clef bass
+        \tromboneMusic
+      }
+    >>
+    \new RhythmicStaff = "RhythmicStaff_percussion" <<
+      \set RhythmicStaff.instrumentName = "Percussion"
+      \percussionMusic
+    >>
+    \new PianoStaff \with { \consists Instrument_name_engraver } <<
+      \set PianoStaff.instrumentName = "Piano"
+      \new Staff { \pianoRHMusic }
+      \new Staff {
+        \clef bass
+        \pianoLHMusic
+      }
+    >>
+    \new ChoirStaff = "ChoirStaff_choir" <<
+      \new Staff = "Staff_soprano" {
+        \set Staff.instrumentName = "Soprano"
+        \new Voice = "soprano"
+        \sopranoMusic
+      }
+      \new Lyrics \lyricsto "soprano" { \sopranoLyrics }
+      \new GrandStaff = "GrandStaff_altos" \with { \accepts Lyrics } <<
+        \new Staff = "Staff_altoI"  {
+          \set Staff.instrumentName = "Alto I"
+          \new Voice = "altoI"
+          \altoIMusic
+        }
+        \new Lyrics \lyricsto "altoI" { \altoILyrics }
+        \new Staff = "Staff_altoII" {
+          \set Staff.instrumentName = "Alto II"
+          \new Voice = "altoII"
+          \altoIIMusic
+        }
+        \new Lyrics \lyricsto "altoII" { \altoIILyrics }
+      >>
+      \new Staff = "Staff_tenor" {
+        \set Staff.instrumentName = "Tenor"
+        \clef "treble_8"
+        \new Voice = "tenor"
+        \tenorMusic
+      }
+      \new Lyrics \lyricsto "tenor" { \tenorLyrics }
+    >>
+    \new StaffGroup = "StaffGroup_strings" <<
+      \new GrandStaff = "GrandStaff_horns" <<
+        \new Staff = "Staff_violinI" {
+          \set Staff.instrumentName = "Violin I"
+          \violinIMusic
+        }
+        \new Staff = "Staff_violinII" {
+          \set Staff.instrumentName = "Violin II"
+          \violinIIMusic
+        }
+      >>
+      \new Staff = "Staff_viola" {
+        \set Staff.instrumentName = "Viola"
+        \violaMusic
+      }
+      \new Staff = "Staff_cello" {
+        \set Staff.instrumentName = "Cello"
+        \celloMusic
+      }
+      \new Staff = "Staff_bass" {
+        \set Staff.instrumentName = "Double Bass"
+        \bassMusic
+      }
+    >>
+  >>
+}
index 3021258433e19c643adc9f79c722cdec3c714193..106f93cb9d43ee71dc290809ec936d8be70dd875 100644 (file)
@@ -1,10 +1,8 @@
-%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
+%% Do not edit this file; it is auto-generated from input/new
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
-  lsrtags = "pitches, text"
-
   texidoces = "
 Internamente, la función @code{set-octavation} establece las
 propiedades @code{ottavation} (por ejemplo, a @code{\"8va\"} o a
@@ -26,18 +24,17 @@ und @code{middleCPosition}.  Um den Text der Oktavierungsklammer zu
 
 doctitlede = "Ottava-Text"
 
+  lsrtags = "pitches, text"
   texidoc = "
-Internally, the @code{set-octavation} function sets the properties
-@code{ottavation} (for example, to @code{\"8va\"} or @code{\"8vb\"})
-and @code{middleCPosition}.  To override the text of the bracket, set
-@code{ottavation} after invoking @code{set-octavation}.
-
-
-
+Internally, @code{\\ottava} sets the properties @code{ottavation}
+(for example, to @code{\"8va\"} or @code{\"8vb\"}) and
+@code{middleCPosition}.  To override the text of the bracket, set
+@code{ottavation} after invoking @code{\\ottava}.
 "
   doctitle = "Ottava text"
 } % begin verbatim
 
+
 {
   \ottava #1
   \set Staff.ottavation = #"8"
index 0a8b1af650d036661fa530dedc09839ba55e1083..c0b58ca0f097065ebab34ad483d471d8a600a691 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from input/new
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "text"
index 341c036c2150a6508ad7e5f6a4fe9c8ea4b91324..7b0af49a5556d2424cb7eae01892f8b9e6c0ab00 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from input/new
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 \header {
   lsrtags = "spacing"
   texidoc = "Page labels may be placed inside music or at top-level,
index c34dd47e450a38aed47bf99c686d911acaf24308..81975b1181554e1f7f168261f5f066300a6c501d 100644 (file)
@@ -1,6 +1,7 @@
-creating-blank-staves.ly
 aligning-and-centering-instrument-names.ly
-table-of-contents.ly
-demonstrating-all-headers.ly
+book-parts.ly
 changing-the-staff-size.ly
 clip-systems.ly
+creating-blank-staves.ly
+demonstrating-all-headers.ly
+table-of-contents.ly
diff --git a/input/lsr/percent-repeat-count-visibility.ly b/input/lsr/percent-repeat-count-visibility.ly
new file mode 100644 (file)
index 0000000..0d1d77b
--- /dev/null
@@ -0,0 +1,35 @@
+%% Do not edit this file; it is auto-generated from input/new
+%% This file is in the public domain.
+\version "2.13.0"
+\header {
+  texidoces = "
+Se pueden mostrar los contadores de las repeticiones del tipo
+porcentaje a intervalos regulares mediante el establecimiento de
+la propiedad de contexto @code{repeatCountVisibility}.
+
+"
+  doctitlees = "Visibilidad del contador de repeticiones de tipo porcentaje"
+
+%% Translation of GIT committish :<0364058d18eb91836302a567c18289209d6e9706>
+  texidocde = "
+Prozentwiederholungszähler können in regelmäßigen Intervallen angezeigt
+werden, indem man die Eigenschaft @code{repeatCountVisibility} beeinflusst.
+"
+  doctitlede = "Sichtbarkeit von Prozent-Wiederholungen"
+
+  lsrtags = "repeats, tweaks-and-overrides"
+  texidoc = "
+Percent repeat counters can be shown at regular intervals by setting
+the context property @code{repeatCountVisibility}.
+"
+  doctitle = "Percent repeat count visibility"
+} % begin verbatim
+
+
+\relative c'' {
+  \set countPercentRepeats = ##t
+  \set repeatCountVisibility = #(every-nth-repeat-count-visible 5)
+  \repeat percent 10 { c1 } \break
+  \set repeatCountVisibility = #(every-nth-repeat-count-visible 2)
+  \repeat percent 6 { c1 d1 }
+}
index b74e792e3959b2c17a97f796dfb818efb9a56784..6f9884c9018e604d7cad7020a2be44de51ceefb5 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "repeats"
@@ -13,6 +13,14 @@ ve en este ejemplo:
 "
   doctitlees = "Percent repeat counter"
 
+%% Translation of GIT committish :<0364058d18eb91836302a567c18289209d6e9706>
+  texidocde = "
+Ganztaktwiederholungen mit mehr als zwei Wiederholungen erhalten einen
+Zähler, wenn man die entsprechende Eigenschaft einsetzt:
+
+"
+  doctitlede = "Prozent-Wiederholungen zählen"
+
   texidoc = "
 Measure repeats of more than two repeats can get a counter when the
 convenient property is switched, as shown in this example:
index 133e2e79ffd9437da756085af991f9fd8dc40fb2..49d68bcb24be39f4c9e4fc02228d0a02e3fc09a6 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "percussion"
index ff35ebc01bc33e2586804be758ed27d149b40d8b..5a29fb2c15ba4277b065119f7803ae21c2b6efb8 100644 (file)
@@ -1,5 +1,5 @@
-percussion-beaters.ly
 adding-drum-parts.ly
-jazz-combo-template.ly
 heavily-customized-polymetric-time-signatures.ly
+jazz-combo-template.ly
+percussion-beaters.ly
 printing-music-with-different-time-signatures.ly
index a7a71dbc9163e9e945682e780f345d0fa6cbe384..2532c9aca9a4f126c7ecfe6e5df05c4eb3769bd5 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "rhythms"
@@ -14,6 +14,7 @@ sincopados se deben barrar manualmente.
 
 "
 
+%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a>
   texidocde = "
 Dieses künstliche Beispiel zeigt, wie sowohl automatische als auch
 manuelle Zeilenumbrüche innerhalb einer N-tole mit Balken erlaubt
@@ -43,9 +44,9 @@ tuplets have to be beamed manually.
 }
 \relative c'' {
   a8
-  \repeat unfold 8 { \times 2/3 { c[ b a] } }
+  \repeat unfold 5 { \times 2/3 { c[ b a] } }
   % Insert a manual line break within a tuplet
   \times 2/3 { c[ b \bar "" \break a] }
-  \repeat unfold 2 { \times 2/3 { c[ b a] } }
+  \repeat unfold 5 { \times 2/3 { c[ b a] } }
   c8
 }
index 7a54cf916caf62a531bd29be329c5813026db560..92e3aebba39284b0072572a742325c89cf73472f 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "keyboards, template"
index 7356ba0ef3f9570fea05df99cdb907eb41dc4ddf..c6063821335916f5c603bd857ab3d12bcac30146 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from input/new
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   texidoces = "
@@ -17,6 +17,12 @@ In der meisten Klaviernotation werden die Dynamikzeichen zwischen
 den beiden Systemen zentriert. Für LilyPond muss man die Einstellungen 
 etwas anpassen, aber Sie können ja das angepasste Beispiel von hier 
 kopieren.
+"
+
+  texidocja = "
+多くのピアノ譜は、強弱記号を 2 つの譜の間に置きます。これを実現するにはちょっ@c
+とした調整が必要ですが、そのテンプレートがここにあるので、あなた自身が調整を行@c
+う必要はありません。
 "
 
   lsrtags = "expressive-marks,keyboards,template"
index c81e4bb7e47c0f998ba2759c9b9c2c35345a6717..6bec046cbe0ef78ebaf9986044031432dd3c2b8a 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "text, keyboards, template"
@@ -16,6 +16,10 @@ se puede centrar entre los pentagramas de un sistema de piano.
 Anstatt ein eigenes System für Melodie und Text zu schreiben, können 
 Sie den Text auch zwischen die beiden Klaviersysteme schreiben
 (und damit das zusätzliche System für die Gesangstimme auslassen).
+"
+
+  texidocja = "
+旋律と歌詞のための譜表を持つ代わりに、歌詞をピアノ譜の 2 つの譜の間に置くことができます。
 "
 
   texidoc = "
index 6f605ecf43b5c72a8a5903f7050bc9e7b8f323a4..1b7999fb798bdf6537e1d48c21acbf6d432c6a13 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "vocal-music, keyboards, template"
@@ -15,6 +15,10 @@ melodía y la letra, y el acompañamiento de piano por debajo.
   texidocde = "
 Das nächste Beispiel ist typisch für ein Lied: Im oberen System die 
 Melodie mit Text, darunter Klavierbegleitung.
+"
+
+  texidocja = "
+これは一般的な歌曲のフォーマットです: 旋律と歌詞を持つ譜表と、その下にピアノ伴奏譜があります。
 "
 
   texidoc = "
index 5155684bbff4bddada98460e9f2301913a85823d..d6f021742812de8dc297c9f02b5c74a3bf33d602 100644 (file)
@@ -1,16 +1,17 @@
 adding-ambitus-per-voice.ly
-applying-note-head-styles-depending-on-the-step-of-the-scale.ly
-ambitus.ly
-transposing-pitches-with-minimum-accidentals-smart-transpose.ly
-ottava-text.ly
-tweaking-clef-properties.ly
-preventing-extra-naturals-from-being-automatically-added.ly
 ambitus-with-multiple-voices.ly
-generating-random-notes.ly
-makam-example.ly
+ambitus.ly
+applying-note-head-styles-depending-on-the-step-of-the-scale.ly
 coloring-notes-depending-on-their-pitch.ly
+creating-a-sequence-of-notes-on-various-pitches.ly
 dodecaphonic-style-accidentals-for-each-note-including-naturals.ly
+generating-random-notes.ly
+makam-example.ly
+non-traditional-key-signatures.ly
+ottava-text.ly
+preventing-extra-naturals-from-being-automatically-added.ly
 preventing-natural-signs-from-being-printed-when-the-key-signature-changes.ly
 quoting-another-voice-with-transposition.ly
-creating-a-sequence-of-notes-on-various-pitches.ly
-non-traditional-key-signatures.ly
+separating-key-cancellations-from-key-signature-changes.ly
+transposing-pitches-with-minimum-accidentals-smart-transpose.ly
+tweaking-clef-properties.ly
index 8a21d8099262fcf496b6d8ec4272f1132c440078..d0041b7b6fe5dbe6ad848a4b81e114b0166a0a06 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "fretted-strings"
@@ -13,6 +13,25 @@ propiedad específica, como se muestra en el ejemplo siguiente.
 "
   doctitlees = "Posicionamiento de digitaciones de mano derecha"
 
+%% Translation of GIT committish: 3f880f886831b8c72c9e944b3872458c30c6c839
+
+  texidocfr = "
+Vous disposez d'une propriété spécifique qui permet de contrôler plus 
+finement le positionnement des doigtés main droite, comme l'indique 
+l'exemple suivant.
+
+"
+  doctitlefr = "Positionnement des doigtés main droite"
+
+%% Translation of GIT committish :33f623301a41fcc53efadf96bca1c72834763415
+  texidocde = "
+Man kann die Positionierung von Fingersatz der rechten Hand besser
+kontrollieren, wenn eine bestimmte Eigenschaft gesetzt wird, wie
+das folgende Beispiel zeigt:
+
+"
+  doctitlede = "Positionierung von Fingersatz der rechten Hand"
+
   texidoc = "
 It is possible to exercise greater control over the placement of
 right-hand fingerings by setting a specific property, as demonstrated
index 44937d19b1d46ef6c2fa614e7330290e7bf50996..9fb3302fcb39c29184a142f206dd3435f979ef28 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "fretted-strings"
@@ -12,6 +12,23 @@ en una pauta normal.
 "
   doctitlees = "Polifonía en tablaturas"
 
+%% Translation of GIT committish: 3f880f886831b8c72c9e944b3872458c30c6c839
+
+  texidocfr = "
+Une section polyphonique s'obtient dans un @code{TabStaff} de la
+même manière que dans une portée normale.
+
+"
+  doctitlefr = "Polyphonie en mode tablature"
+
+%% Translation of GIT committish: 33f623301a41fcc53efadf96bca1c72834763415
+  texidocde = "
+Polyphonie kann in einer Tabulatur (@code{TabStaff}) genauso wie in einem
+normalen Notensystem erstellt werden.
+
+"
+  doctitlede = "Polyphonie in einer Tabulatur"
+
   texidoc = "
 Polyphony is created the same way in a @code{TabStaff} as in a regular
 staff.
index 67d4af11e2ebf73ecc16d76fa1108fecc514ff3c..03bc92cd00379220c16390caaf16f2bc57690618 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from input/new
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 \header {
  doctitlees = "Posicionar los silencios multicompás"
  texidoces = "
@@ -13,6 +13,17 @@ impar están separados verticalmente.  La colocación de los silencios
 multicompás se puede controlar como se ve a continuación:
 
 "
+
+texidocde = "
+Anders als bei normalen Pausen gibt es keinen direkten Befehl, um die
+vertikale Position von Ganztaktpausen zu beeinflussen, indem man sie an
+eine Tonhöhe anhängt.  In polyphoner Notation wird aber dennoch die
+Position der Pausen von geraden und ungeraden Stimmen voneinander
+unterschieden.  Die Position von Ganztaktpausen kann wie folgt verändert
+werden:
+ "
+  doctitlede = "Positionierung von Ganztaktpausen"
+
   lsrtags = "rhythms,tweaks-and-overrides"
   texidoc = "
 Unlike ordinary rests, there is no predefined command
index 4009c73305d631c8f1f85487a2ec01b8c99ff112..453293b32a8ed22bf0e5fec556db165a73ea77a1 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "repeats, breaks"
diff --git a/input/lsr/positioning-text-markups-inside-slurs.ly b/input/lsr/positioning-text-markups-inside-slurs.ly
new file mode 100644 (file)
index 0000000..ef10f1b
--- /dev/null
@@ -0,0 +1,38 @@
+%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
+%% This file is in the public domain.
+\version "2.13.0"
+
+\header {
+  lsrtags = "expressive-marks, editorial-annotations, tweaks-and-overrides"
+
+  texidoces = "
+
+Los elementos de marcado de texto deben tener la propiedad
+@code{outside-staff-priority} establecida al valor falso para que se
+impriman por dentro de las ligaduras de expresión.
+
+"
+  doctitlees = "Situar los elementos de marcado de texto por dentro de las ligaduras"
+
+%% Translation of GIT committish :0364058d18eb91836302a567c18289209d6e9706
+  texidocde = "
+Textbeschriftung kann innerhalb von Bögen gesetzt werden, wenn die
+@code{outside-staff-priority}-Eigenschaft auf falsch gesetzt wird.
+
+"
+  doctitlede = "Textbeschriftung innerhalb von Bögen positionieren"
+
+  texidoc = "
+Text markups need to have the @code{outside-staff-priority} property
+set to false in order to be printed inside slurs. 
+
+"
+  doctitle = "Positioning text markups inside slurs"
+} % begin verbatim
+
+\relative c'' {
+  \override TextScript #'avoid-slur = #'inside
+  \override TextScript #'outside-staff-priority = ##f
+  c2(^\markup { \halign #-10 \natural } d4.) c8
+}
+
index e08b9dea8f8f5fc295fb8f9eb58e6887396a706f..3e3c4387995114702b3f796f7c875382da2d591f 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "pitches"
index 0746c58087766d73470960ddb4581634396c2d17..ecfa0559aca5b187213ba933e8921ba69e88331c 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "pitches"
index 9bf59b9b3c9555ccdd4f0b6713dc86e2eb4643bc..2e93f77c35b4442ab06e732d60885fad15cdc932 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "repeats, tweaks-and-overrides"
@@ -12,6 +12,14 @@ principio de la pieza, sobreescribiendo la propiedad correspondiente:
 "
   doctitlees = "Imprimir puntos de repetición al prinicpio de la pieza"
 
+%% Translation of GIT committish :<0364058d18eb91836302a567c18289209d6e9706>
+  texidocde = "
+Ein @code{|:}-Taktstrich kann auch zu Beginn eines Stückes ausgegeben werden, indem
+man die entsprechende Eigenschaft verändert:
+
+"
+  doctitlede = "Ein Wiederholungszeichen zu Beginn eines Stückes ausgeben"
+
   texidoc = "
 A @code{|:} bar line can be printed at the beginning of a piece, by
 overriding the relevant property:
index feaa06846f691bb798530c242bf2fbe753acb7da..455ab35d58b69a54ba80a6ebf7ce2fd90a04f917 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "expressive-marks"
@@ -12,6 +12,16 @@ Se pueden imprimir reguladores con un círculo en la punta
 
 "
   doctitlees = "Impresión de reguladores utilizando la notación «al niente»"
+  
+%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a>
+ texidocde = "
+ Crescendo-Klammern können mit einem kleinen Kreis vor der Spitze
+ notiert werden (al niente = bis zum Nichts), indem die
+@code{circled-tip}-Eigenschaft des @code{Hairpin}-Objekts auf
+@code{#t} gesetzt wird.
+
+"
+  doctitlede = "Crescendo Klammern al niente schreiben"
 
   texidoc = "
 Hairpins may be printed with a circled tip (al niente notation) by
index 0e5e0caba70cfcd2cdcaccee0928dac774afe8f1..147b8663ef4d6aea61b3f51c206fc3b5615ea178 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "text"
@@ -18,6 +18,19 @@ ejemplo.
 "
   doctitlees = "Imprimir marcas al final de la línea o de la partitura"
 
+%% Translation of GIT committish :0364058d18eb91836302a567c18289209d6e9706
+  texidocde = "
+Zeichen können auch am Ende der aktuellen Zeile ausgegeben werden, anstatt
+dass sie auf die folgende Zeile verschoben werden.  Das ist nüztlich,
+wenn ein Zeichen am Ende einer Partitur eingefügt werden soll, wo
+gar keine nächste Zeile vorhanden ist.
+
+In derartigen Fällen muss die rechte Ecke des Zeichens an dem letzten
+Taktstrich ausgerichtet werden, wie die zweite Zeile des Beispiels zeigt.
+
+"
+  doctitlede = "Zeichen am Ende einer Zeile oder Partitur setzen"
+
   texidoc = "
 Marks can be printed at the end of the current line, instead of the
 beginning of the following line. This is particularly useful when a
index 31b0a2a623b574ca979f134dc67590a31d8935c2..def0fef72012868229846e51fd6c968300bd2499 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "text"
@@ -13,6 +13,14 @@ cualquiera.
 "
   doctitlees = "Imprimir marcas en cualquier pentagrama"
 
+%% Translation of GIT committish :0364058d18eb91836302a567c18289209d6e9706
+  texidocde = "
+Normalerweise werden Textzeichen nur über dem obersten Notensystem gesetzt.  Sie
+können aber auch über jedem System ausgegeben werden.
+
+"
+  doctitlede = "Zeichen über jedem System ausgeben"
+
   texidoc = "
 Although text marks are normally only printed above the topmost staff,
 they may also be printed on every staff.
@@ -21,21 +29,21 @@ they may also be printed on every staff.
   doctitle = "Printing marks on every staff"
 } % begin verbatim
 
-{
-  \new Score \with {
-    \remove "Mark_engraver"
-    \remove "Staff_collecting_engraver"
-  }
+\score {
   <<
-    \new Staff \with {
-      \consists "Mark_engraver"
-      \consists "Staff_collecting_engraver"
+    \new Staff { c''1 \mark "molto" c'' }
+    \new Staff { c'1 \mark "molto" c' }
+  >>
+  \layout {
+    \context {
+      \Score
+      \remove "Mark_engraver"
+      \remove "Staff_collecting_engraver"
     }
-    { c''1 \mark "molto" c'' }
-    \new Staff \with {
+    \context {
+      \Staff
       \consists "Mark_engraver"
       \consists "Staff_collecting_engraver"
     }
-    { c'1 \mark "molto" c' }
-  >>
+  }
 }
index cee91a11612e01dce209a02b717c4357da7dadd6..a74660a53b534f5632c9677526ce2f46767fa933 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "rhythms, expressive-marks, staff-notation, tweaks-and-overrides"
@@ -16,6 +16,16 @@ de @code{MetronomeMark} o de @code{RehearsalMark}.
 
   doctitlees = "Impresión de indicaciones metronómicas y letras de ensayo debajo del pentagrama"
 
+  
+%% Translation of GIT committish :<0364058d18eb91836302a567c18289209d6e9706>
+  texidocde = "
+Normalerweise werden Metronom- und Übungszeichen über dem Notensystem ausgegeben.
+Um sie unter das System zu setzen, muss die @code{direction}-Eigenschaft
+von @code{MetronomeMark} oder @code{RehearsalMark} entsprechend verändert werden.
+
+"
+  doctitlede = "Metronom- und Übungszeichen unter das System setzen"
+
   texidoc = "
 By default, metronome and rehearsal marks are printed above the staff. 
 To place them below the staff simply set the @code{direction} property
index 4f85ab0e2b485563b90a20f15f0e0015f14f1e4c..81bffe1aa4133c38ff00d58d179fe7148959aee1 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "rhythms, percussion"
@@ -9,8 +9,9 @@
 In the following snippet, two parts have a completely different time
 signature, yet remain synchronized. The bar lines can no longer be
 printed at the @code{Score} level; to allow independent bar lines in
-each part, the @code{Barline_engraver} is moved from the @code{Score}
-context to the @code{Staff} context. 
+each part, the @code{Default_barline_engraver} and
+@code{Timing_translator} are moved from the @code{Score} context to the
+@code{Staff} context. 
 
 "
   doctitle = "Printing music with different time signatures"
@@ -136,5 +137,8 @@ Perkussion = \new StaffGroup <<
 >>
 
 \score {
-  <<  \Bassklarinette \Perkussion >>
+  <<
+    \Bassklarinette
+    \Perkussion
+  >>
 }
diff --git a/input/lsr/printing-text-from-right-to-left.ly b/input/lsr/printing-text-from-right-to-left.ly
new file mode 100644 (file)
index 0000000..30fdf13
--- /dev/null
@@ -0,0 +1,24 @@
+%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
+%% This file is in the public domain.
+\version "2.13.0"
+
+\header {
+  lsrtags = "editorial-annotations, text, world-music"
+
+  texidoc = "
+It is possible to print text from right to left in a markup object, as
+demonstrated here.
+
+"
+  doctitle = "Printing text from right to left"
+} % begin verbatim
+
+{
+  b1^\markup {
+    \line { i n g i r u m i m u s n o c t e }
+  }
+  f'_\markup {
+    \override #'(text-direction . -1)
+    \line { i n g i r u m i m u s n o c t e }
+  }
+}
diff --git a/input/lsr/printing-the-bar-number-for-the-first-measure.ly b/input/lsr/printing-the-bar-number-for-the-first-measure.ly
new file mode 100644 (file)
index 0000000..6f8be5f
--- /dev/null
@@ -0,0 +1,26 @@
+%% Do not edit this file; it is auto-generated from input/new
+%% This file is in the public domain.
+\version "2.13.0"
+
+\header {
+  lsrtags = "rhythms"
+
+  texidoc = "
+By default, the first bar number in a score is suppressed if it is
+less than or equal to `1'.  By setting @code{barNumberVisibility}
+to @code{all-bar-numbers-visible}, any bar number can be printed
+for the first measure and all subsequent measures.  Note that an
+empty bar line must be inserted before the first note for this to
+work.
+
+"
+  doctitle = "Printing the bar number for the first measure"
+} % begin verbatim
+
+
+\relative c' {
+  \set Score.barNumberVisibility = #all-bar-numbers-visible
+  \bar ""
+  c1 d e f \break
+  g1 e d c
+}
index a55daee15358abdb0e88127b38ac379e8892dee6..21f8ca5d220c676f9b707aa47b513e51001765e7 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "tweaks-and-overrides, spacing"
index 93dac3355a065ae8c711d9a07bfb602823e24380..08698cafa58734b2eb1e356491ef4bc0f2dfed23 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from input/new
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 \header {
   texidoces = "
 Los pasajes citados tienen en cuenta la transposición de la fuente
@@ -13,6 +13,18 @@ se transportan todas las notas (incluidas las citadas).
 "
 
 doctitlees = "Citar otra voz con transposición"
+
+%% Translation of GIT committish :<0364058d18eb91836302a567c18289209d6e9706>
+  texidocde = "
+Zitate berücksichtigen sowohl die Transposition der Quelle als auch
+des Zielinstruments.  In diesem Beispiel spielen alle Instrumente
+klingendes C, das Zielinstrument ist in F.  Die Noten für das
+Zielinstrument können mit @code{\\transpose} transponiert werden,
+in diesem Fall werden alle Noten (auch die zitierten) transponiert.
+
+"
+  doctitlede = "Eine Stimme mit Transposition zitieren"
+
   lsrtags = "pitches,staff-notation"
   texidoc = "Quotations take into account the transposition of both
 source and target.  In this example, all instruments play sounding
index 7118af919bc90699cba16df8e711d01d05da92da..cdc85feb18a96863a077e947904d7599d2833f84 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from input/new
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 \header {
   texidoces = "
 La propiedad @code{quotedEventTypes} determina los tipos de
@@ -13,6 +13,21 @@ el fragmento citado porque @code{rest-event} no está dentro de los
 
 "
   doctitlees = "Citar otra voz"
+  
+%% Translation of GIT committish :<0364058d18eb91836302a567c18289209d6e9706>
+  texidocde = "
+Die @code{quotedEventTypes}-Eigenschaft bestimmt die
+Typen an Musikereignissen, die zitiert werden.  Die
+Standardeinstellung ist @code{(note-event rest-event)}, womit
+nur Noten und Pausen der zitierten Stimme für den
+@code{\\quoteDuring}-Ausdruck übernommen werden.  Im
+Beispiel hier wird die 16-Pause nicht übernommen, weil
+sich @code{rest-event} nicht in @code{quotedEventTypes} befindet.
+
+"
+
+  doctitlede = "Eine andere Stimme zitieren"
+
   lsrtags = "staff-notation"
   texidoc = "The @code{quotedEventTypes} property determines the
 music event types that are quoted.  The default value is
index 9fa697aa33927abf29b0114ecef7d93a4062abc6..a40a04b80fd7598e3a7200c8e3eeb5e65cf81fa8 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "staff-notation, tweaks-and-overrides, breaks"
@@ -21,6 +21,22 @@ escribe.
 "
   doctitlees = "Quitar la primera línea vacía"
 
+%% Translation of GIT committish :<0364058d18eb91836302a567c18289209d6e9706>
+  texidocde = "
+Ein leeres Notensystem kann auch aus der ersten Zeile einer Partitur
+entfernt werden, indem die Eigenschaft @code{remove-first} der
+@code{VerticalAxisGroup}-Eigenschaft eingesetzt wird.  Das kann
+man global in einer @code{\\layout}-Umgebung oder lokal in dem
+bestimmten Notensystem machen, das entfernt werden soll.  In letzterem
+Fall muss man den Kontext angeben.
+
+Das untere Notensystem der zweiten Systemgruppe wird nicht entfernt,
+weil in die Einstellungen in dem Schnipsel nur für das eine Notensystem
+gültig sind.
+
+"
+  doctitlede = "Die erste leere Notenzeile auch entfernen"
+
   texidoc = "
 The first empty staff can also be removed from the score by setting the
 @code{VerticalAxisGroup} property @code{remove-first}. This can be done
index 2ffca138b7a7a94195202d4b1cc1b9177ad83116..dc43a685aa559ba59b01ae999454e0eace98bb50 100644 (file)
@@ -1,10 +1,11 @@
-measure-counter.ly
 adding-volta-brackets-to-additional-staves.ly
 isolated-percent-repeats.ly
-volta-text-markup-using-repeatcommands.ly
-printing-a-repeat-sign-at-the-beginning-of-a-piece.ly
+measure-counter.ly
+percent-repeat-count-visibility.ly
+percent-repeat-counter.ly
 positioning-segno-and-coda-with-line-break.ly
+printing-a-repeat-sign-at-the-beginning-of-a-piece.ly
 shortening-volta-brackets.ly
-volta-multi-staff.ly
-percent-repeat-counter.ly
 volta-below-chords.ly
+volta-multi-staff.ly
+volta-text-markup-using-repeatcommands.ly
index f38fc04ca2310ec57985999fc3920374c2413f7c..ffa41a5d404c0359c1e1127588e30c11954e7e5f 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "rhythms, ancient-notation, tweaks-and-overrides"
@@ -33,16 +33,16 @@ Rests may be used in various styles.
   }
 }
 
-\relative c {
-  \set Score.timing = ##f
+\new Staff \relative c {
+  \cadenzaOn
   \override Staff.Rest #'style = #'mensural
   r\maxima^\markup \typewriter { mensural }
-  r\longa r\breve r1 r2 r4 r8 r16 r32 r64 s128 s128
+  r\longa r\breve r1 r2 r4 r8 r16 s32 s64 s128 s128
   \bar ""
   
   \override Staff.Rest #'style = #'neomensural
   r\maxima^\markup \typewriter { neomensural }
-  r\longa r\breve r1 r2 r4 r8 r16 r32 r64 s128 s128
+  r\longa r\breve r1 r2 r4 r8 r16 s32 s64 s128 s128
   \bar ""
   
   \override Staff.Rest #'style = #'classical
index e2f289e13b949bc8d59d2606b672f70da4ef4e42..75b57d683a877ad4a0917dd153b5e126ee06c24f 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "rhythms"
@@ -13,7 +13,17 @@ barra nuevos:
 
 "
   doctitlees = "Alteración de los finales de barra predeterminados"
+  
+  
+%% Translation of GIT committish :<0364058d18eb91836302a567c18289209d6e9706> 
+  texidocde = "
+Um Balken im 12/8-Takt als @code{3-4-3-2} zu gruppieren, muss man zuerst die
+Standardwerte für die Balken im 12/8-Takt rückgängig machen und dann die neuen
+Werte setzen:
 
+"
+  doctitlede = "Standard-Balkenwerte rückgängig machen"
+  
   texidoc = "
 To typeset beams grouped @code{3-4-3-2} in 12/8 it is necessary first
 to override the default beam endings  in 12/8, and then to set up the
index e1b33e73c263ad5d30dbbdc79e8eb3dae7fbec9d..e8df9f4d80195b916b3c360cd30e631e360ed39b 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "rhythms, tweaks-and-overrides"
@@ -25,8 +25,8 @@ 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 #'thickness = #0.48
+  \once \override Rest #'slope = #1.7
   r4
 }
 
@@ -34,16 +34,16 @@ rs = {
 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 #'thickness = #0.48
+    \override Rest #'slope = #1.7
     \repeat unfold $count { r4 }
     \revert Rest #'stencil
   #}
 )
 
-\score{
+\score {
   \relative c' {
-    c d e f |
+    c4 d e f |
     \rs \rs \rs \rs |
     \comp #4 |
   }
index 40a2222f25dcfc933fcc6affd55b390a466fa3c1..e6e4922d33fce1fa07061997091cdf2ff30e952c 100644 (file)
@@ -1,43 +1,47 @@
-changing-beam-knee-gap.ly
-reverting-default-beam-endings.ly
 adding-beams,-slurs,-ties-etc.-when-using-tuplet-and-non-tuplet-rythms..ly
-changing-the-time-signature-without-affecting-the-beaming.ly
-printing-music-with-different-time-signatures.ly
-beams-across-line-breaks.ly
-manually-controlling-beam-positions.ly
-multi--measure-rest-markup.ly
 adding-drum-parts.ly
-rest-styles.ly
-chant-or-psalms-notation.ly
-controlling-tuplet-bracket-visibility.ly
-heavily-customized-polymetric-time-signatures.ly
-grouping-beats.ly
-positioning-multi--measure-rests.ly
-using-ties-with-arpeggios.ly
-changing-text-and-spanner-styles-for-text-dynamics.ly
-forcing-rehearsal-marks-to-start-from-a-given-letter-or-number.ly
-sub-dividing-beams.ly
-compound-time-signatures.ly
-changing-time-signatures-inside-a-polymetric-section-using-scaledurations.ly
-modifying-tuplet-bracket-length.ly
-printing-metronome-and-rehearsal-marks-below-the-staff.ly
-making-an-object-invisible-with-the-transparent-property.ly
-permitting-line-breaks-within-beamed-tuplets.ly
-merging-multi-measure-rests-in-a-polyphonic-part.ly
 automatic-beam-subdivisions.ly
+automatic-beams-two-per-two-in-4-4-or-2-2-time-signature.ly
+avoiding-collisions-with-chord-fingerings.ly
+beam-endings-in-score-context.ly
 beam-grouping-in-7-8-time.ly
+beams-across-line-breaks.ly
+changing-beam-knee-gap.ly
+changing-form-of-multi--measure-rests.ly
+changing-text-and-spanner-styles-for-text-dynamics.ly
+changing-the-time-signature-without-affecting-the-beaming.ly
 changing-the-tuplet-number.ly
-entering-several-tuplets-using-only-one--times-command.ly
+changing-time-signatures-inside-a-polymetric-section-using-scaledurations.ly
+chant-or-psalms-notation.ly
+compound-time-signatures.ly
 conducting-signs,-measure-grouping-signs.ly
-skips-in-lyric-mode-2.ly
-changing-form-of-multi--measure-rests.ly
+controlling-tuplet-bracket-visibility.ly
+engraving-ties-manually.ly
+entering-several-tuplets-using-only-one--times-command.ly
+flat-flags-and-beam-nibs.ly
+forcing-rehearsal-marks-to-start-from-a-given-letter-or-number.ly
+grouping-beats.ly
 guitar-strum-rhythms.ly
+heavily-customized-polymetric-time-signatures.ly
+making-an-object-invisible-with-the-transparent-property.ly
+manually-controlling-beam-positions.ly
+merging-multi-measure-rests-in-a-polyphonic-part.ly
+modifying-tuplet-bracket-length.ly
+multi--measure-rest-markup.ly
+non-default-tuplet-numbers.ly
+permitting-line-breaks-within-beamed-tuplets.ly
+positioning-multi--measure-rests.ly
+printing-metronome-and-rehearsal-marks-below-the-staff.ly
+printing-music-with-different-time-signatures.ly
+printing-the-bar-number-for-the-first-measure.ly
+rest-styles.ly
+reverting-default-beam-endings.ly
 rhythmic-slashes.ly
-automatic-beams-two-per-two-in-4-4-or-2-2-time-signature.ly
-using-beatlength-and-beatgrouping.ly
-three-sided-box.ly
-flat-flags-and-beam-nibs.ly
-specifying-context-with-beatgrouping.ly
+skips-in-lyric-mode-2.ly
 skips-in-lyric-mode.ly
-engraving-ties-manually.ly
+specifying-context-with-beatgrouping.ly
 stemlets.ly
+sub-dividing-beams.ly
+three-sided-box.ly
+using-beatlength-and-beatgrouping.ly
+using-ties-with-arpeggios.ly
index de0dd2c212f25d51c9689681339c8d6e3ca63de0..ad27326b2c4bb24fefda8596343b88ae1bad5399 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "template"
diff --git a/input/lsr/separating-key-cancellations-from-key-signature-changes.ly b/input/lsr/separating-key-cancellations-from-key-signature-changes.ly
new file mode 100644 (file)
index 0000000..78c68a8
--- /dev/null
@@ -0,0 +1,37 @@
+%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
+%% This file is in the public domain.
+\version "2.13.0"
+
+\header {
+  lsrtags = "pitches, tweaks-and-overrides"
+
+  texidoc = "
+By default, the accidentals used for key cancellations are placed
+adjacent to those for key signature changes.  This behavior can be
+changed by overriding the @code{'break-align-orders} property of the
+@code{BreakAlignment} grob.
+
+
+The value of @code{'break-align-orders} is a vector of length 3, with
+quoted lists of breakable items as elements.  This example only
+modifies the second list, moving @code{key-cancellation} before
+@code{staff-bar}; by modifying the second list, break alignment
+behavior only changes in the middle of a system, not at the beginning
+or the end. 
+
+"
+  doctitle = "Separating key cancellations from key signature changes"
+} % begin verbatim
+
+\new Staff {
+  \override Score.BreakAlignment #'break-align-orders =
+    #'#((left-edge ambitus breathing-sign clef staff-bar key-cancellation key-signature time-signature custos)
+        (left-edge ambitus breathing-sign clef key-cancellation staff-bar key-signature staff time-signature custos)
+        (left-edge ambitus breathing-sign clef key-cancellation key-signature staff-bar time-signature custos))
+
+  \key des \major
+  c'1
+  \bar "||"
+  \key bes \major
+  c'1
+}
index c4201f79f62288c527b59ff268c3911e1c2c51ad..e27184617e87c527eb87b05782e428244c6e6298 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from input/new
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 \header {
   texidoces = "
 Si la nota que da fin a un regulador cae sobre la primera parte de
@@ -10,6 +10,15 @@ sobreescribiendo la propiedad @code{to-barline}.
 
 "
   doctitlees = "Establecer el comportamiento de los reguladores en las barras de compás"
+  
+%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a>
+texidocde = "
+Wenn die Note, an welcher eine Crescendo-Klammer endet, die erste Note
+eines Taktes ist, wird die Klammer an der vorhergehenden Tatklinie
+beendet.  Dieses Verhalten kann auch mit der Eigenschaft
+@code{'to-barline} geändert werden:
+"
+  doctitlede = "Das Verhalten von Crescendo-Klammern an Taktlinien beeinflussen"
 
   lsrtags = "expressive-marks"
   texidoc = "If the note which ends a hairpin falls on a downbeat,
index e9e7749e0aa3eea6f0a43ab8b3766292513cad2d..183dce0faf8cac45b0abe68199e02e5d5eb07a61 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "expressive-marks"
@@ -12,6 +12,15 @@ modificando la propiedad @code{minimum-length} del objeto
 
 "
   doctitlees = "Ajustar la longitud mínima de los reguladores"
+  
+%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a>
+texidocde = "
+Wenn Crescendo-Klammern zu kurz sind, können sie verlängert werden, indem
+die @code{minimum-length}-Eigenschaft des @code{Hairpin}-Objektes
+verändert wird. 
+
+"
+  doctitlede = "Die Mindestlänge von Crescendo-Klammern bestimmen"
 
   texidoc = "
 If hairpins are too short, they can be lengthened by modifying the
index 1b3dd2b6ba6040d0f0c5481b7b275f9808280a6f..2069246b40a8fe2470c51be4c8117c2d2ac6a539 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "repeats"
@@ -15,6 +15,16 @@ sólo dura un compás, que corresponde a una duración de 3/4.
 "
   doctitlees = "Shortening volta brackets"
 
+%% Translation of GIT committish :<0364058d18eb91836302a567c18289209d6e9706>
+  texidocde = "
+Volta-Klammern werden normalerweise über alle Noten der Klammer gezogen, aber
+es ist möglich sie zu verkürzen.  Hierzu muss
+@code{voltaSpannerDuration} definiert werden, in dem Beispiel etwa als
+3/4, sodass die Klammer nur einen Takt dauert. 
+
+"
+  doctitlede = "Volta-Klammern verkürzen"
+
   texidoc = "
 By default, the volta brackets will be drawn over all of the
 alternative music, but it is possible to shorten them by setting
index 89102ddc72bbb966e27bb3643c23301fcaf1f496..a8c8268c9662e5c5203686902935baf659518081 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "chords"
@@ -12,6 +12,14 @@ líneas y cuando cambia el acorde.
 "
   doctitlees = "Imprimir los acordes cuando se produce un cambio"
 
+%% Translation of GIT committish: 33f623301a41fcc53efadf96bca1c72834763415
+  texidocde = "
+Akkordsymbole können so eingestellt werden, dass sie nur zu Beginn der Zeile
+und bei Akkordwechseln angezeigt werden.
+
+"
+  doctitlede = "Akkordsymbole bei Wechsel anzeigen"
+
   texidoc = "
 Chord names can be displayed only at the start of lines and when the
 chord changes.
index 10d4d007e8ba7858b70e5fac4275baf19828c594..de76aed966ae418d2ecfc8bc0646efef2a06a3f1 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "chords"
@@ -12,6 +12,13 @@ obtenemos una hoja guía de acordes o «lead sheet»:
 "
   doctitlees = "Hoja guía de acordes o «lead sheet» sencilla"
 
+%% Translation of GIT committish: 33f623301a41fcc53efadf96bca1c72834763415
+ texidocde = "
+Ein Liedblatt besteht aus Akkordbezeichnungen, einer Melodie und dem Liedtext:
+
+"
+  doctitlede = "Ein einfaches Liedblatt"
+
   texidoc = "
 When put together, chord names, a melody, and lyrics form a lead sheet:
 
index 6fdd5fb73b4e9dcabf144f76918a455bad4fab52..6d8f1d359206a6441c48d620e28dff2acb233421 100644 (file)
@@ -1,9 +1,9 @@
-clusters.ly
 additional-voices-to-avoid-collisions.ly
-forcing-horizontal-shift-of-notes.ly
-double-glissando.ly
-combining-two-parts-on-the-same-staff.ly
-changing-partcombine-texts.ly
 changing-a-single-notes-size-in-a-chord.ly
-suppressing-warnings-for-clashing-note-columns.ly
+changing-partcombine-texts.ly
+clusters.ly
+combining-two-parts-on-the-same-staff.ly
 displaying-complex-chords.ly
+double-glissando.ly
+forcing-horizontal-shift-of-notes.ly
+suppressing-warnings-for-clashing-note-columns.ly
index 755cd50b41f278880c1ce9df274a4ef71aa6ea86..24b55d7de04bb6e2647f078578370cca0dc66334 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "vocal-music, chords, template"
@@ -15,6 +15,10 @@ letra y acordes.
   texidocde = "
 Mit diesem Beispiel können Sie einen Song mit Melodie, 
 Text und Akkorden schreiben.
+"
+
+  texidocja = "
+これは旋律、単語、コードを持つ歌曲の楽譜のためのテンプレートです。
 "
 
   texidoc = "
index da0bf545134b71aa2cd6975546fcfb25d1ee58f3..3bd235f4947d69f092ac644edd4f491aac4d6055 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "vocal-music, chords, template"
index 811aefa133a77d1170deeba393aa56b2b1cc5ced..e9949f0588dcd799808e89c1f849fef0978ba25f 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "chords, template"
@@ -16,6 +16,10 @@ doctitlees = "Plantilla de pentagrama único con música y acordes"
   texidocde = "
 Wollen Sie ein Liedblatt mit Melodie und Akkorden schreiben?  Hier ist 
 das richtige Beispiel für Sie!
+"
+
+  texidocja = "
+旋律とコードを持つリード譜を欲しくはありませんか?他を見る必要はありません!
 "
 
   texidoc = "
index 9673037b7edbaa2b027b7d8b9c5d6e4dee9f6853..c2e3f92b7ae88dd2bc12f8f901e3440237410bab 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "vocal-music, template"
@@ -25,6 +25,14 @@ Wenn Sie die Balken wieder einschalten wollen, müssen Sie die
 entsprechende Zeile entweder ändern oder auskommentieren.
 "
 
+  texidocja = "
+この小さなテンプレートは歌詞を持つ簡単な旋律を表しています。カット&ペーストして、音符@c
+を付け加えて、それから歌詞の単語を付け加えてください。この例は自動ビームを off にして@c
+います。これはボーカル パートでは一般的なことです。自動ビームを使用するには、対応する@c
+行を変更するか、コメント アウトしてください。
+"
+
+
   texidoc = "
 This small template demonstrates a simple melody with lyrics. Cut and
 paste, add notes, then words for the lyrics. This example turns off
index 5c0b4a1c4028569e6eb65f809405b8ed8eb8b4e8..9c3bd5850ba97408cb16a0e7f10bc7a39c1ad28b 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "template"
@@ -20,6 +20,12 @@ Sie es in Ihre Datei ein, schreiben Sie die Noten hinzu, und Sie haben
 eine vollständige Notationsdatei.
 "
 
+  texidocja = "
+これは音符を持つ譜表を提供するとても簡単なテンプレートであり、ソロの楽器や旋律に適しています。@c
+これをファイルにカット&ペーストして、音符を付け加えれば完了です!
+"
+
+
   texidoc = "
 This very simple template gives you a staff with notes, suitable for a
 solo instrument or a melodic fragment. Cut and paste this into a file,
index b5bb909eeee44493e23c40653566a5c60e5bdecc..6175ff2b3091ac983811d59149af5a5a393f8082 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "rhythms, vocal-music"
index c1f05b2e2e362caa1e29ddeebdd3a337ed41b16b..21b6064fe9e738b450ffdd97da20f1cc9cc06bc1 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "rhythms, vocal-music"
index f6f8ab95569768a82c7775a01e65157bb36487bb..b0e0d796198258101ff162a0cbeebe603015b63d 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "expressive-marks, unfretted-strings"
index 06ca8aa4398333ea932e2e7cba10c7dc8890f3ce..81a465a289bedca9da28fe16284b3ef397cf8dad 100644 (file)
@@ -1,6 +1,6 @@
-vertically-aligned-dynamics-and-textscripts.ly
-allowing-fingerings-to-be-printed-inside-the-staff.ly
 adjusting-lyrics-vertical-spacing.ly
-vertically-aligning-ossias-and-lyrics.ly
+allowing-fingerings-to-be-printed-inside-the-staff.ly
 page-label.ly
 proportional-strict-notespacing.ly
+vertically-aligned-dynamics-and-textscripts.ly
+vertically-aligning-ossias-and-lyrics.ly
index e130e37e5fa07234e8e6629aeb582e36de4c2851..67f1dda084ba4b37b0d8b16f0d1bbc6b88bb2659 100644 (file)
@@ -1,13 +1,34 @@
 %% Do not edit this file; it is auto-generated from input/new
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
+  texidoces = "
+Mediante la especificación del contexto, el efecto de
+@code{beatGrouping} puede limitarse al contexto especificado, y
+sobreescribirse los valores establecidos en contextos de niveles más
+altos:
+
+"
+  doctitlees = "Especificar el contexto con beatGrouping"
+
+%% Translation of GIT committish :<0364058d18eb91836302a567c18289209d6e9706>
+  texidocde = "
+Wenn der Kontext angegeben wird, kann die Auswirkung von @code{beatGrouping}
+auf den angegebenen Kontext beschränkt werden und die Werte, die in Kontexten
+auf höhrer Ebene angegeben wurden, können verändert werden.  Der
+@code{\\set}-Befehl muss @emph{nach} den @code{\\time}-Befehl geschrieben
+werden:
+"
+  doctitlede = "Den Kontext für beatGrouping angeben"
+
   lsrtags = "rhythms"
   texidoc = "
 By specifying the context, the effect of @code{beatGrouping} can be
 limited to the context specified, and the values which may have
-been set in higher-level contexts can be overridden:
+been set in higher-level contexts can be overridden.  The
+@code{\\set} commands must be placed @emph{after} all @code{\\time}
+commands:
 "
   doctitle = "Specifying context with beatGrouping"
 } % begin verbatim
@@ -25,7 +46,7 @@ been set in higher-level contexts can be overridden:
     \new Voice {
       \relative c' {
         \voiceTwo
-        \set Voice.beatGrouping = #'(1 3 3)
+        \set beatGrouping = #'(1 3 3)
         f8 f f f f f f
       }
     }
index ccc48c2110822940c24075ea3920e61d8b6d815c..5c9b6db9b4a5b6acedc6ca67e60c6933bf140542 100644 (file)
@@ -1,28 +1,28 @@
-creating-blank-staves.ly
-mensurstriche-layout-bar-lines-between-the-staves.ly
-changing-the-number-of-lines-in-a-staff.ly
-incipit.ly
-display-bracket-with-only-one-staff-in-a-system.ly
+adding-ambitus-per-voice.ly
+adding-an-extra-staff-at-a-line-break.ly
 adding-an-extra-staff.ly
-printing-metronome-and-rehearsal-marks-below-the-staff.ly
-tweaking-clef-properties.ly
-removing-the-first-empty-line.ly
-quoting-another-voice.ly
-volta-multi-staff.ly
+changing-the-number-of-lines-in-a-staff.ly
+changing-the-staff-size.ly
 changing-the-tempo-without-a-metronome-mark.ly
+creating-blank-staves.ly
+creating-metronome-marks-in-markup-mode.ly
+display-bracket-with-only-one-staff-in-a-system.ly
+incipit.ly
+inserting-score-fragments-above-a-staff,-as-markups.ly
+letter-tablature-formatting.ly
+making-some-staff-lines-thicker-than-the-others.ly
+measure-counter.ly
+mensurstriche-layout-bar-lines-between-the-staves.ly
 modern-tab-text-clef.ly
+nesting-staves.ly
 non-traditional-key-signatures.ly
-measure-counter.ly
-adding-ambitus-per-voice.ly
-making-some-staff-lines-thicker-than-the-others.ly
-adding-an-extra-staff-at-a-line-break.ly
-time-signature-in-parentheses.ly
-changing-the-staff-size.ly
-use-square-bracket-at-the-start-of-a-staff-group.ly
+printing-metronome-and-rehearsal-marks-below-the-staff.ly
 quoting-another-voice-with-transposition.ly
-letter-tablature-formatting.ly
-inserting-score-fragments-above-a-staff,-as-markups.ly
+quoting-another-voice.ly
+removing-the-first-empty-line.ly
 tick-bar-lines.ly
-creating-metronome-marks-in-markup-mode.ly
+time-signature-in-parentheses.ly
+tweaking-clef-properties.ly
+use-square-bracket-at-the-start-of-a-staff-group.ly
 volta-below-chords.ly
-nesting-staves.ly
+volta-multi-staff.ly
diff --git a/input/lsr/stand-alone-two-column-markup.ly b/input/lsr/stand-alone-two-column-markup.ly
new file mode 100644 (file)
index 0000000..e0cbd65
--- /dev/null
@@ -0,0 +1,54 @@
+%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
+%% This file is in the public domain.
+\version "2.13.0"
+
+\header {
+  lsrtags = "text"
+
+  texidoces = "
+Los textos independientes se pueden disponer en varias columnas
+utilizando instrucciones @code{\\markup}:
+
+"
+  doctitlees = "Elemento de marcado de texto independiente en dos columnas"
+
+%% Translation of GIT committish :0364058d18eb91836302a567c18289209d6e9706
+  texidocde = "
+Isolierter Text kann in mehreren Spalten mit @code{\\markup}-Befehlen
+angeordnet werden:
+
+"
+  doctitlede = "Isolierter Text in zwei Spalten"
+
+  texidoc = "
+Stand-alone text may be arranged in several columns using
+@code{\\markup} commands:
+
+"
+  doctitle = "Stand-alone two-column markup"
+} % begin verbatim
+
+\markup {
+ \fill-line {
+  \hspace #1.0
+  \column {
+   \line {"O sacrum convivium" }
+   \line {"in quo Christus sumitur," }
+   \line {"recolitur memoria passionis ejus," }
+   \line {"mens impletur gratia," }
+   \line {"futurae gloriae nobis pignus datur." }
+   \line {"Amen."}
+  }
+  \hspace #2
+  \column {
+   \line { \italic {"O sacred feast"} }
+   \line { \italic {"in which Christ is received,"} }
+   \line { \italic {"the memory of His Passion is renewed,"} }
+   \line { \italic {"the mind is filled with grace," } }
+   \line { \italic {"and a pledge of future glory is given to us." }}
+   \line { \italic {"Amen."}}
+  }
+  \hspace #1.0
+ }
+}
+
index 566d029bf2d4284d7e14e4523fc4569f4e01593a..e5f64d5b984bb286028e366158c23c85026a00e5 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "fretted-strings"
@@ -12,6 +12,26 @@ poner horizontales, como se muestra en este ejemplo.
 
 "
   doctitlees = "Comportamiento de las plicas y las barras de corchea en tablaturas"
+
+%% Translation of GIT committish: cd4950757ab1ab6c89805b0b7c978bfca034f940
+
+  texidocfr = "
+La direction des hampes se gère dans les tablatures tout comme en 
+notation traditionnelle.  Les ligatures peuvent être mises à l'horizontale 
+comme le montre cet exemple.
+
+"
+  doctitlefr = "Hampes et ligatures en mode tablature"
+
+%% Translation of GIT committish: 33f623301a41fcc53efadf96bca1c72834763415
+  texidocde = "
+Die Richtung von Hälsen wird in Tabulaturen genauso wie in normaler Notation
+eingestellt.  Balken können horizontal eingestellt werden, wie das Beispiel
+zeigt.
+
+"
+  doctitlede = "Hals- und Balkenverhalten in einer Tabulatur"
+
   texidoc = "
 The direction of stems is controlled the same way in tablature as in
 traditional notation. Beams can be made horizontal, as shown in this
index 9acab87e7b78d5cc0a59d555be622ce9de0881ba..8023c3ab0c9b91e6729272f120923d8c2908a017 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "rhythms"
index 66599ea001bc1bd3d8172fcc47ecf69aa540970f..a593dd021081b3efaa700b2f13a8d326d7661ac2 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "unfretted-strings, template"
@@ -16,6 +16,11 @@ una sección @code{\\global} para el compás y la armadura
 Dieses Beispiel demonstriert die Partitur für ein Streichquartett. Hier 
 wird auch eine @qq{@code{\global}}-Variable für Taktart und 
 Vorzeichen benutzt.
+"
+
+  texidocja = "
+これは簡単な弦楽四重奏のためのテンプレートです。これは拍子記号と調号のために 
+@code{@bs{}global} セクションを使っています。
 "
 
   texidoc = "
index 055ea176d5a939ea25e74ce875833fad01802d2e..858bed7da8d8504dd0014467de6e270e69100117 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "unfretted-strings, template"
@@ -39,6 +39,20 @@ enthält die Noten. Die anderen Dateien -- @code{score.ly},
 @code{vlc.ly} -- erstellen daraus die entsprechenden Stimmen bzw. die 
 Partitur (@code{score.ly}). Mit @code{\tag} wird den Stimmen ein Name 
 zugewiesen, auf den zurückgegriffen werden kann.
+"
+
+  texidocja = "
+\"弦楽四重奏テンプレート\" は適切な弦楽四重奏の楽譜を作り出しますが、個々の@c
+パート譜を譜刻する必要がある場合はどうでしょうか?今度の新しいテンプレートは 
+@code{@bs{}tag} 機能を用いて容易に楽曲を個々のパートに分ける方法を示しています。
+
+このテンプレートは別々のファイルに分ける必要があります。ファイル名は各ファイル@c
+の開始部分のコメントの中に記述されています。@code{piece.ly} はすべての音楽定義@c
+を保持しています。他のファイル - @code{score.ly}, @code{vn1.ly}, @code{vn2.ly}, 
+@code{vla.ly} それに @code{vlc.ly} - は対応するパートを作り出します。
+
+
+別々のファイルに分ける場合は、指定されたコメントを外すことを忘れないでください!
 "
 
   texidoc = "
index 83ed5564248e91f703c9b2826da3712539a15bbf..0757dec32cb8079aec101462ed795b2b3ca6b2f4 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "rhythms"
@@ -23,6 +23,19 @@ la función @code{make-moment}, como se muestra aquí:
 "
   doctitlees = "Subdivisión de las barras de semicorchea"
 
+%% Translation of GIT committish :<0364058d18eb91836302a567c18289209d6e9706>
+  texidocde = "
+Die Balken von aufeinanderfolgenden Sechszehnteln (oder kürzeren Notenwerten)
+werden standardmäßig nicht unterteilt.  Dieses Verhalten kann verändert
+werden, sodass die Balken in Untergruppen aufgeteilt werden, indem man
+die Eigenschaft @code{subdivideBeams} verändert.  Man muss die Unterteilungsintervalle
+als Notenbruch mit der @code{make-moment}-Funktion für @code{beatLength} angeben,
+damit die Balken unterbrochen wird und nur ein Balken durchgezogen bleibt.  Der
+Standardwert für @code{beatLength} ist 1 / Zähler des aktuellen Taktes.
+
+"
+  doctitlede = "Balken in Untergruppen teilen"
+
   texidoc = "
 The beams of consecutive 16th (or shorter) notes are, by default, not
 sub-divided.  That is, the three (or more) beams stretch unbroken over
@@ -31,9 +44,10 @@ the beams into sub-groups by setting the property
 @code{subdivideBeams}. When set, multiple beams will be sub-divided at
 intervals defined by the current value of @code{beatLength} by reducing
 the multiple beams to just one beam between the sub-groups. Note that
-@code{beatLength} defaults to a quarter note if not set explicitly.  It
-must be set to a fraction giving the duration of the beam sub-group
-using the @code{make-moment} function, as shown here:
+@code{beatLength} defaults to one over the denominator of the current
+time signature if not set explicitly. It must be set to a fraction
+giving the duration of the beam sub-group using the @code{make-moment}
+function, as shown here:
 
 
 
index 7bbe4d5bff4151029eabb45d57b98db4020f5648..a295c11894dd8b938b550f7fd6d99a8f9c15eafe 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from input/new
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 \header {
   lsrtags = "simultaneous-notes,tweaks-and-overrides"
   texidoc = "
index 92e37b27fa8e3522a57ebd27aa41438304499942..bc983afeba56d20ab1e2db1d2e20bc37db821590 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from input/new
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 \header {
   lsrtags = "paper-and-layout"
   texidoc = "A table of contents is included using
index 0c20366e0f1213257c0dd4e62634eba102369446..8332b919b42f3a30e8ca63a55aba325b9eb02008 100644 (file)
@@ -1,18 +1,19 @@
-vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly
-vocal-ensemble-template-with-automatic-piano-reduction.ly
-single-staff-template-with-notes,-lyrics,-chords-and-frets.ly
-single-staff-template-with-only-notes.ly
-piano-template-with-centered-lyrics.ly
-score-for-diatonic-accordion.ly
-piano-template-simple.ly
+ancient-notation-template----modern-transcription-of-gregorian-music.ly
 ancient-notation-template----modern-transcription-of-mensural-music.ly
-vocal-ensemble-template.ly
+jazz-combo-template.ly
+orchestra-choir-and-piano-template.ly
+piano-template-simple.ly
+piano-template-with-centered-dynamics.ly
+piano-template-with-centered-lyrics.ly
 piano-template-with-melody-and-lyrics.ly
-string-quartet-template-simple.ly
-single-staff-template-with-notes-and-lyrics.ly
+score-for-diatonic-accordion.ly
 single-staff-template-with-notes,-lyrics,-and-chords.ly
+single-staff-template-with-notes,-lyrics,-chords-and-frets.ly
 single-staff-template-with-notes-and-chords.ly
+single-staff-template-with-notes-and-lyrics.ly
+single-staff-template-with-only-notes.ly
+string-quartet-template-simple.ly
 string-quartet-template-with-separate-parts.ly
-jazz-combo-template.ly
-ancient-notation-template----modern-transcription-of-gregorian-music.ly
-piano-template-with-centered-dynamics.ly
+vocal-ensemble-template-with-automatic-piano-reduction.ly
+vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly
+vocal-ensemble-template.ly
index 69fa5edc375f97cf3f57f147399dbda527293e9a..ed78f498756c0d36705a04a67a8ac23e96e873c3 100644 (file)
@@ -1,26 +1,29 @@
-creating-text-spanners.ly
-creating-real-parenthesized-dynamics.ly
-ottava-text.ly
-embedding-native-postscript-in-a--markup-block.ly
+adjusting-lyrics-vertical-spacing.ly
+aligning-and-centering-instrument-names.ly
+aligning-marks-with-various-notation-objects.ly
+aligning-objects-created-with-the--mark-command.ly
+blanking-staff-lines-using-the--whiteout-command.ly
 center-text-below-hairpin-dynamics.ly
-demonstrating-all-headers.ly
-printing-marks-at-the-end-of-a-line-or-a-score.ly
 changing-the-default-text-font-family.ly
+combining-dynamics-with-markup-texts.ly
 combining-two-parts-on-the-same-staff.ly
-aligning-and-centering-instrument-names.ly
-outputting-the-version-number.ly
+creating-real-parenthesized-dynamics.ly
+creating-simultaneous-rehearsal-marks.ly
+creating-text-spanners.ly
+demonstrating-all-headers.ly
+embedding-native-postscript-in-a--markup-block.ly
 formatting-lyrics-syllables.ly
 how-to-put-ties-between-syllables-in-lyrics.ly
-combining-dynamics-with-markup-texts.ly
-vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly
-aligning-marks-with-various-notation-objects.ly
-markup-lines.ly
 lyrics-alignment.ly
-piano-template-with-centered-lyrics.ly
-creating-simultaneous-rehearsal-marks.ly
+markup-lines.ly
 multi--measure-rest-markup.ly
+ottava-text.ly
+outputting-the-version-number.ly
+piano-template-with-centered-lyrics.ly
+printing-marks-at-the-end-of-a-line-or-a-score.ly
+printing-marks-on-every-staff.ly
+printing-text-from-right-to-left.ly
+stand-alone-two-column-markup.ly
 three-sided-box.ly
 utf-8.ly
-blanking-staff-lines-using-the--whiteout-command.ly
-printing-marks-on-every-staff.ly
-adjusting-lyrics-vertical-spacing.ly
+vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly
index 4e1ff906fff455fd4ab1db86b8cdf06e6ee8d6b3..d23aa412b70b5b091ebfec91f958f3ffbc0af207 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "rhythms, text"
@@ -15,17 +15,17 @@ around some text (or other markup).
 
 % New command to add a three sided box, with sides north, west and south
 % Based on the box-stencil command defined in scm/stencil.scm
-% Note that you use ";" to comment a line in Scheme
+% Note that ";" is used to comment a line in Scheme
 #(define-public (NWS-box-stencil stencil thickness padding)
   "Add a box around STENCIL, producing a new stencil."
   (let* ((x-ext (interval-widen (ly:stencil-extent stencil 0) padding))
-        (y-ext (interval-widen (ly:stencil-extent stencil 1) padding))
-        (y-rule (make-filled-box-stencil (cons 0 thickness) y-ext))
-        (x-rule (make-filled-box-stencil
-                 (interval-widen x-ext thickness) (cons 0 thickness))))
+         (y-ext (interval-widen (ly:stencil-extent stencil 1) padding))
+         (y-rule (make-filled-box-stencil (cons 0 thickness) y-ext))
+         (x-rule (make-filled-box-stencil
+                  (interval-widen x-ext thickness) (cons 0 thickness))))
 ;    (set! stencil (ly:stencil-combine-at-edge stencil X 1 y-rule padding))
     (set! stencil (ly:stencil-combine-at-edge stencil X -1 y-rule padding))
-    (set! stencil (ly:stencil-combine-at-edge stencil Y 1 x-rule 0.0))  
+    (set! stencil (ly:stencil-combine-at-edge stencil Y 1 x-rule 0.0))
     (set! stencil (ly:stencil-combine-at-edge stencil Y -1 x-rule 0.0))
     stencil))
 
@@ -34,21 +34,18 @@ around some text (or other markup).
 #(define-markup-command (NWS-box layout props arg) (markup?)
   "Draw a box round @var{arg}.  Looks at @code{thickness},
 @code{box-padding} and @code{font-size} properties to determine line
-thickness and padding around the markup."
-  
+thickness and padding around the markup."  
   (let* ((th (chain-assoc-get 'thickness props  0.1))
-        (size (chain-assoc-get 'font-size props 0))
-        (pad (* (magstep size)
-                (chain-assoc-get 'box-padding props 0.2)))
-        (m (interpret-markup layout props arg)))
+         (size (chain-assoc-get 'font-size props 0))
+         (pad (* (magstep size)
+                 (chain-assoc-get 'box-padding props 0.2)))
+         (m (interpret-markup layout props arg)))
     (NWS-box-stencil m th pad)))
 
-
 % Test it:
 
 \layout { ragged-right = ##f }
-
-\relative c' { 
+\relative c' {
   c2^\markup { \NWS-box ABCD }
-  c^\markup { \NWS-box \note #"4" #1.0 } 
+  c2^\markup { \NWS-box \note #"4" #1.0 }
 }
index d2ba1be7e490ea0aaac1e6a7af97ade3e395cb89..b2ab76e6bba63f5067a500608953c3b41f01df67 100644 (file)
@@ -1,44 +1,20 @@
-%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
+%% Do not edit this file; it is auto-generated from input/new
 %% This file is in the public domain.
-\version "2.11.62"
-
+\version "2.13.0"
 \header {
   lsrtags = "staff-notation"
-
   texidoc = "
 'Tick' bar lines are often used in music where the bar line is used
 only for coordination and is not meant to imply any rhythmic stress.
-
-This snippet uses overrides for the @code{'bar-size} and
-@code{'extra-offset} properties of @code{BarLine} to determine,
-respectively, the tick size and its vertical placement.
-
 "
   doctitle = "Tick bar lines"
 } % begin verbatim
 
-{
-  % Use 'bar-size to control the height of the tick,
-  % and 'extra-offset to determine its position.
-  %
-  % With 'extra-offset set to zero, the tick will be
-  % centered around the middle line of the staff.
-  %
-  % Replace Staff.BarLine with Score.BarLine to
-  % apply the method to the whole score.
-  
-  \override Staff.BarLine #'bar-size = #1
-  \override Staff.BarLine #'extra-offset = #'(0 . 2)
-  
-  c'4 d' e' f'
-  g'4 f' e' d'
-  c'4 d' e' f'
-  g'4 f' e' d'
-  
-  % Revert the overrides to get back a normal
-  % bar line at the end.
-  
-  \revert Staff.BarLine #'bar-size
-  \revert Staff.BarLine #'extra-offset
+\relative c' {
+  \set Score.defaultBarType = #"'"
+  c4 d e f
+  g4 f e d
+  c4 d e f
+  g4 f e d
   \bar "|."
 }
index 50f69e0898543e4733daedc7a4b7bcb941bbf94e..bf8ae7e78b78848fb19855d53de9db7a634cec24 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "staff-notation, tweaks-and-overrides"
index 11d02ab21dd5337d49dd094db711e96bf17cefaa..a21553f1614d56282d9e9aeff916b460e544c938 100644 (file)
@@ -1,3 +1,3 @@
+adding-the-current-date-to-a-score.ly
 aligning-and-centering-instrument-names.ly
 demonstrating-all-headers.ly
-adding-the-current-date-to-a-score.ly
index 28a20b82f63390df7f16b87dcf4c6e56707ea1bf..243aa4a3f614910830d1d0cbc6a225871c920320 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "ancient-notation, tweaks-and-overrides"
index 514fc69fab76e70bd379612121a5a168410bfb28..2a101d8955297adff33997f6ecca8acb8213f9d1 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from input/new
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 \header {
 doctitlees = "Transportar música con el menor número de alteraciones"
 texidoces = "
@@ -94,7 +94,8 @@ In this manner, the most natural enharmonic notes are chosen.
 #(define  (naturalize-pitch p)
   (let* ((o (ly:pitch-octave p))
          (a (* 4 (ly:pitch-alteration p)))
-    ; alteration, a, in quarter tone steps, for historical reasons
+         ; alteration, a, in quarter tone steps,
+         ; for historical reasons
          (n (ly:pitch-notename p)))
     (cond
      ((and (> a 1) (or (eq? n 6) (eq? n 2)))
@@ -115,23 +116,23 @@ In this manner, the most natural enharmonic notes are chosen.
          (e (ly:music-property music 'element))
          (p (ly:music-property music 'pitch)))
     (if (pair? es)
-        (ly:music-set-property!
+       (ly:music-set-property!
          music 'elements
          (map (lambda (x) (naturalize x)) es)))
     (if (ly:music? e)
-        (ly:music-set-property!
+       (ly:music-set-property!
          music 'element
          (naturalize e)))
     (if (ly:pitch? p)
-        (begin
-          (set! p (naturalize-pitch p))
-          (ly:music-set-property! music 'pitch p)))
+       (begin
+         (set! p (naturalize-pitch p))
+         (ly:music-set-property! music 'pitch p)))
     music))
 
 naturalizeMusic =
 #(define-music-function (parser location m)
-                                       (ly:music?)
-                       (naturalize m))
+  (ly:music?)
+  (naturalize m))
 
 music = \relative c' { c4 d e g }
 
index 841d502e25d6eba4e5aa3556ab94f0c67b099a12..a5bb07c04d8e7b268c20c9ec22498301ba284c4e 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "pitches, staff-notation, tweaks-and-overrides"
@@ -148,7 +148,7 @@ line, they do not.
   \set Staff.clefPosition = #0
   c'1
   
-  % Here we go back to the normal clef:
+  % Return to the normal clef:
 
   \set Staff.middleCPosition = #0
   c'1
index 75b63e3c249f82875b8dd28eba9ed58cd2851477..fdd1591de6a0c68d3e201afe2e8f16e2039a449a 100644 (file)
@@ -1,44 +1,49 @@
-dotted-harmonics.ly
-forcing-horizontal-shift-of-notes.ly
-display-bracket-with-only-one-staff-in-a-system.ly
-rhythmic-slashes.ly
+analysis-brackets-above-the-staff.ly
+avoiding-collisions-with-chord-fingerings.ly
+caesura-railtracks-with-fermata.ly
+changing-a-single-notes-size-in-a-chord.ly
+changing-form-of-multi--measure-rests.ly
+changing-properties-for-individual-grobs.ly
+changing-text-and-spanner-styles-for-text-dynamics.ly
 changing-the-default-text-font-family.ly
-drawing-boxes-around-grobs.ly
-manually-controlling-beam-positions.ly
-custodes.ly
-printing-a-repeat-sign-at-the-beginning-of-a-piece.ly
-creating-text-spanners.ly
-rest-styles.ly
-horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly
-how-to-change-fret-diagram-position.ly
-using-the--tweak-command-to-tweak-individual-grobs.ly
-suppressing-warnings-for-clashing-note-columns.ly
-controlling-tuplet-bracket-visibility.ly
-positioning-multi--measure-rests.ly
 changing-the-staff-size.ly
+controlling-the-vertical-ordering-of-scripts.ly
+controlling-tuplet-bracket-visibility.ly
+creating-a-delayed-turn.ly
+creating-simultaneous-rehearsal-marks.ly
+creating-text-spanners.ly
+custodes.ly
+customizing-fretboard-fret-diagrams.ly
 customizing-markup-fret-diagrams.ly
-changing-text-and-spanner-styles-for-text-dynamics.ly
+display-bracket-with-only-one-staff-in-a-system.ly
+dotted-harmonics.ly
+drawing-boxes-around-grobs.ly
+drawing-circles-around-various-objects.ly
 fine-tuning-pedal-brackets.ly
-controlling-the-vertical-ordering-of-scripts.ly
+forcing-horizontal-shift-of-notes.ly
+fret-diagrams-explained-and-developed.ly
+horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly
+how-to-change-fret-diagram-position.ly
 inserting-a-caesura.ly
-vertically-aligning-ossias-and-lyrics.ly
-customizing-fretboard-fret-diagrams.ly
-changing-properties-for-individual-grobs.ly
-vertically-aligned-dynamics-and-textscripts.ly
+making-an-object-invisible-with-the-transparent-property.ly
+manually-controlling-beam-positions.ly
 mensurstriche-layout-bar-lines-between-the-staves.ly
+nesting-staves.ly
+percent-repeat-count-visibility.ly
+positioning-multi--measure-rests.ly
+positioning-text-markups-inside-slurs.ly
+printing-a-repeat-sign-at-the-beginning-of-a-piece.ly
 printing-metronome-and-rehearsal-marks-below-the-staff.ly
-tweaking-clef-properties.ly
 proportional-strict-notespacing.ly
-making-an-object-invisible-with-the-transparent-property.ly
-transcription-of-ancient-music-with-incipit.ly
-drawing-circles-around-various-objects.ly
-analysis-brackets-above-the-staff.ly
-fret-diagrams-explained-and-developed.ly
 removing-the-first-empty-line.ly
-caesura-railtracks-with-fermata.ly
-changing-form-of-multi--measure-rests.ly
+rest-styles.ly
+rhythmic-slashes.ly
+separating-key-cancellations-from-key-signature-changes.ly
+suppressing-warnings-for-clashing-note-columns.ly
 time-signature-in-parentheses.ly
-changing-a-single-notes-size-in-a-chord.ly
+transcription-of-ancient-music-with-incipit.ly
+tweaking-clef-properties.ly
 using-postscript-to-generate-special-note-head-shapes.ly
-creating-simultaneous-rehearsal-marks.ly
-nesting-staves.ly
+using-the--tweak-command-to-tweak-individual-grobs.ly
+vertically-aligned-dynamics-and-textscripts.ly
+vertically-aligning-ossias-and-lyrics.ly
index 00b471b22271ee9f9aa7a5c834f4ad5a2c341dd6..3b2b16d62ed97bf69063aafbf59bec60521d83c2 100644 (file)
@@ -1,6 +1,6 @@
-dotted-harmonics.ly
-string-quartet-template-with-separate-parts.ly
-creating-slurs-across-voices.ly
 changing--flageolet-mark-size.ly
-string-quartet-template-simple.ly
+creating-slurs-across-voices.ly
+dotted-harmonics.ly
 snap-pizzicato-markup-bartok-pizzicato.ly
+string-quartet-template-simple.ly
+string-quartet-template-with-separate-parts.ly
index f1bf4dcd18c7945a066453a19949e93498a2926b..056968b99db557a71aba9bf6030ceddf37e8ace0 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "staff-notation, contexts-and-engravers"
@@ -13,6 +13,15 @@ un contexto @code{StaffGroup} o @code{ChoirStaffGroup}.
 "
   doctitlees = "Uso del corchete recto al comienzo de un grupo de pentagramas"
 
+%% Translation of GIT committish :<0364058d18eb91836302a567c18289209d6e9706>  
+  texidocde = "
+Die Klammer zu Beginn von Systemgruppen kann auch in eine eckige Klammer
+(@code{SystemStartSquare}) umgewandelt werden, wenn man sie explizit
+im @code{StaffGroup}- oder @code{ChoirStaffGroup}-Kontext setzt.
+
+"
+  doctitlede = "Eine eckige Klammer zu Beginn von Systemgruppen benutzen"
+
   texidoc = "
 The system start delimiter @code{SystemStartSquare} can be used by
 setting it explicitly in a @code{StaffGroup} or @code{ChoirStaffGroup}
index 35369decd26c9febf25e3d2e2b7a3e95ebd3a053..2e2e76dc63742b9ce391ef07b87704b613b912f6 100644 (file)
@@ -1,8 +1,33 @@
 %% Do not edit this file; it is auto-generated from input/new
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
+  texidoces = "
+La propiedad @code{measureLength} determina dónde se deben insertar
+líneas divisorias y, con @code{beatLength} y @code{beatGrouping}, cómo
+se deben generar las barras autoomáticas para las duraciones de barra
+y compases para los que no hay ninguna regla definida para los finales
+de barra. Este ejemplo muestra distintas dormas de controlar el
+barrado mediante el establecimiento de estas propiedades. Las
+explicaciones están en forma de comentarios dentro del código.
+
+"
+  doctitlees = "Utilización de beatLength y beatGrouping"
+
+%% Translation of GIT committish :<0364058d18eb91836302a567c18289209d6e9706>
+  texidocde = "
+Die Eigenschaft @code{measureLength} bestimmt, wo Taktstriche eingefügt
+werden sollen und, zusammen mit @code{beatLength} und
+@code{beatGrouping}, wie automtische Balken für Notenlängen und
+Taktarten, für die keine definierten Regeln gefunden werden, gesetzt
+werden sollen.  Dieses Beispiel zeigt verschiedene Möglichkeiten,
+die Balken zu kontrollieren, indem man diese Eigenschaften
+beeinflusst.  Die Erklärungen werden als Kommentare im Quellcode
+gegeben.
+"
+  doctitlede = "beatLength und beatGrouping benutzen"
+
   lsrtags = "rhythms"
   texidoc = "
 The property @code{measureLength} determines where bar lines
index 02ff49c7ebfc1e02f755096fa7470751db118a87..bc9ab35c4ca56aae1ecccd5535511f0950541662 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "expressive-marks"
@@ -11,6 +11,14 @@ legato.  Esto se puede conseguir estableciendo @code{doubleSlurs}.
 
 "
   doctitlees = "Utilizar ligaduras dobles para acordes legato"
+  
+%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a>
+texidocde = "
+Einige Komponisten schreiben doppelte Bögen, wenn Legato-Akkorde notiert
+werden.  Das kann mit der Eigenschaft @code{doubleSlurs} erreicht werden.
+
+"
+  doctitlede = "Doppelte Bögen für Legato-Akkorde benutzen"
 
   texidoc = "
 Some composers write two slurs when they want legato chords.  This can
index 981ed938682e1fa6973ae680273ffd2bdda465c8..c74e3f3a856af5c2e4d1b03a537a074457e2cb0a 100644 (file)
@@ -1,10 +1,19 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "editorial-annotations, tweaks-and-overrides"
 
+  texidocfr = "
+Lorsqu'il est impossible d'obtenir facilement une allure particulière
+pour les têtes de note en recourant à la technique du @code{\\markup}, un
+code Postscript peut vous tirer d'embarras.  Voici comment générer des
+têtes ressemblant à des parallélogrammes.
+
+"
+  doctitlefr = "Utilisation de Postscript pour générer des têtes de note à l'allure particulière"
+
   texidoc = "
 When a note head with a special shape cannot easily be generated with
 graphic markup, PostScript code can be used to generate the shape. 
index a9dae9d6f4c7a6a61f27497ce54dd46619fb87f2..c50e7ec9fe8235be47f83302d28f83a9ae828520 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from input/new
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 \header {
   lsrtags = "tweaks-and-overrides"
   texidoc = "
index e41c86478fb471564edd9f2c4170c95a6fd26a0f..cd61c580dcb3057faddd5df4ac718278b3ffbca1 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "rhythms"
@@ -16,6 +16,18 @@ en principio, también se puede usar para notas normales consecutivas,
 como se muestra en este ejemplo.
 
 "
+
+%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a>
+ texidocde = "
+ Überbindungen werden teilweise benutzt, um Arpeggios zu notieren.  In
+ diesem Fall stehen die übergebundenen Noten nicht unbedingt hintereinander.
+Das Verhalten kann erreicht werden, indem die @code{tieWaitForNote}-Eigenschaft
+auf @code{#t} gesetzt wird.  Diese Funktion ist auch sinnvoll, um etwa
+ein Tremolo mit einem Akkord zu überbinden, kann aber prinzipiell auch
+für normale Überbindungen eingesetzt werden
+"
+  doctitlede = "Überbingungen für Arpeggio genutzen"
+
   texidoc = "
 Ties are sometimes used to write out arpeggios.  In this case, two tied
 notes need not be consecutive.  This can be achieved by setting the
index 4f94a414bc3ba96bc6283d567bcfafa1ba243ba6..025a424016279f893f254bee2ec57e89722a6cd5 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from input/new
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 %% Edit this file using a Unicode aware editor, such as GVIM, GEDIT, Emacs
 
index 5048b5808e0a61831c409a92ff45637313fbaa0e..fc9dc663d8894093be2964e8677d2a9d28d6d61e 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "tweaks-and-overrides, spacing"
@@ -18,6 +18,21 @@ largo de su línea de base.
 
 "
   doctitlees = "Indicaciones dinámicas y textuales alineadas verticalmente"
+  
+%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a>
+texidocde = "
+Indem man die @code{'Y-extent}-Eigenschaft auf einen passenden Wert setzt,
+können alle @code{DynamicLineSpanner}-Objekte (Crescendo-Klammern und
+Dynamik-Texte)  (hairpins and dynamic texts) unabhängig von ihrer
+wirklichen Ausdehnung an einem gemeinsamen Referenzpunkt ausgerichtet werden.
+Auf diese Weise ist jedes Element vertikal ausgerichtet und der Notensatz
+sieht ansprechender aus.
+
+Die gleiche Idee wird benutzt, um Textbeschriftungen an ihrer
+Grundlinie auszurichten.
+
+"
+  doctitlede = "Vertikale Ausrichtung von Dynamik und Textbeschriftung beeinflussen"
 
   texidoc = "
 By setting the @code{'Y-extent} property to a suitable value, all
index bb6e16de5250b57d337ffe43580eea85ed8d80f2..35cc9f20e9318d4a160974dbdbcc5882ccaa765c 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "expressive-marks"
index e7af10a0be805dc2522307bfde2f2e0f6ebe1ffc..73695d1ea9470526234826c4db7d041c72b461d3 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "vocal-music, tweaks-and-overrides, spacing"
@@ -13,6 +13,15 @@ controlar la posición de la letra y los compases de ossia.
 "
   doctitlees = "Alineación vertical de la letra y los compases de ossia"
 
+%% Translation of GIT committish :<0364058d18eb91836302a567c18289209d6e9706>
+  texidocde = "
+Dieser Schnipsel zeigt, wie man die Kontexteigenschaften
+@code{alignBelowContext} und @code{alignAboveContext} benutzen kann, um
+die Positionierung von Gesangstext und Ossia-Abschnitten zu kontrollieren.
+
+"
+  doctitlede = "Gesangstext und Ossia vertikal ausrichten"
+
   texidoc = "
 This snippet demonstrates the use of the context properties
 @code{alignBelowContext} and @code{alignAboveContext} to control the
index 480ef162648c98292804c1834f12a72ddf85e08c..e8a3f1c14a8385e89ec468eb78bcd57e56512594 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "vocal-music"
index 4846f9e4edf622c322316d669361e9ac500a6c12..85a2d18a44f4b0c6670f71b816fa1361b6b88fdd 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "vocal-music, keyboards, template"
@@ -24,6 +24,12 @@ irgendeine Änderung an einer Chorstimme vornehmen, (etwa
 tenorMusic), verändert sich auch der Klavierauszug entsprechend.
 "
 
+  texidocja = "
+このテンプレートは、\"合唱テンプレート\"で示された標準の SATB ボーカル譜に自動@c
+ピアノ譜を付け加えています。これは LilyPond の強みの 1 つを示しています - 音楽@c
+定義を何回も使用することができます。ボーカルの音符 (例えば、@code{tenorMusic} 
+の音符) に変更が加えられた場合、その変更はピアノ譜にも適用されます。
+"
   texidoc = "
 This template adds an automatic piano reduction to the standard SATB
 vocal score demonstrated in \"Vocal ensemble template\". This
index b40e6abe5caababad3370fbc55fa32cf6744d7f9..8479b5cfc70c8b805cd630806de73d624909ad16 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "text, vocal-music, contexts-and-engravers, template"
@@ -18,6 +18,11 @@ colocan utilizando @code{alignAboveContext} y
 In diesem Beispiel werden die Texte mit den Befehlen 
 @code{alignAboveContext} und @code{alignBelowContext}
 über und unter dem System angeordnet.
+"
+
+  texidocja = "
+このテンプレートは基本的に単純な \"合唱\" テンプレートと同じですが、歌詞が 
+@code{alignAboveContext} と @code{alignBelowContext} を用いて配置されています。
 "
 
   texidoc = "
index 7ffe9ea1b71890500ba7a6024c44493d440abec0..cc469ecafd2bd22b349ddee20c9287e4919148f0 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "vocal-music, template"
@@ -22,6 +22,12 @@ die in allen Stimmen eingefügt wird. Taktart und Vorzeichen etwa
 sind fast immer gleich in allen Stimmen.
 "
 
+  texidocja = "
+これは標準の 4 パート SATB (ソプラノ、アルト、テナー、バス) ボーカル譜です。@c
+もっと大きな合唱では、すべてのパートで使用されるセクションをインクルードすると@c
+便利です。例えば、拍子記号と調号はほとんど常にすべてのパートで同じです。\"賛美@c
+歌\" テンプレートのように、4 つのボイスは 2 つの譜にグループ分けされています。"
+
   texidoc = "
 Here is a standard four-part SATB vocal score. With larger ensembles,
 it is often useful to include a section which is included in all parts.
index 49e1561119d0b41730a0f42e2d99c65aa494808f..1a8ef8ebb1146c485ef2181edf45aa69c946b88d 100644 (file)
@@ -1,21 +1,21 @@
-changing-stanza-fonts.ly
-vocal-ensemble-template-with-automatic-piano-reduction.ly
+adding-ambitus-per-voice.ly
+adjusting-lyrics-vertical-spacing.ly
 ambitus-with-multiple-voices.ly
-how-to-put-ties-between-syllables-in-lyrics.ly
+ambitus.ly
+changing-stanza-fonts.ly
+chant-or-psalms-notation.ly
 formatting-lyrics-syllables.ly
-piano-template-with-melody-and-lyrics.ly
+how-to-put-ties-between-syllables-in-lyrics.ly
+lyrics-alignment.ly
 marking-notes-of-spoken-parts-with-a-cross-on-the-stem.ly
-chant-or-psalms-notation.ly
-single-staff-template-with-notes-and-lyrics.ly
-adding-ambitus-per-voice.ly
+piano-template-with-melody-and-lyrics.ly
+single-staff-template-with-notes,-lyrics,-and-chords.ly
 single-staff-template-with-notes,-lyrics,-chords-and-frets.ly
+single-staff-template-with-notes-and-lyrics.ly
 skips-in-lyric-mode-2.ly
-ambitus.ly
-lyrics-alignment.ly
-single-staff-template-with-notes,-lyrics,-and-chords.ly
+skips-in-lyric-mode.ly
 vertically-aligning-ossias-and-lyrics.ly
 vertically-centered-common-lyrics.ly
+vocal-ensemble-template-with-automatic-piano-reduction.ly
 vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly
 vocal-ensemble-template.ly
-adjusting-lyrics-vertical-spacing.ly
-skips-in-lyric-mode.ly
index 93632595d0ce5168b846c1aa3b62fe8c26359ad4..f0ec14ba06c5d72136326650a17f768fb382e2a5 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from input/new
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 \header {
   texidoces = "
 Mediante la adición del grabador @code{Volta_engraver} al
@@ -10,6 +10,16 @@ segunda vez debajo de los acordes.
 "
   doctitlees = "Corchetes de primera y segunda vez debajo de los acordes"
 
+
+%% Translation of GIT committish :33f623301a41fcc53efadf96bca1c72834763415
+  texidocde = "
+Indem man den @code{Volta_engraver} zu dem entsprechenden Notensystem
+hinzufügt, können Wiederholungsklammern unterhalb der Akkorde gesetzt
+werden.
+
+"
+  doctitlede = "Wiederholungs-(Volta-)Klammern unterhalb der Akkordsymbole"
+
   lsrtags = "repeats,staff-notation,chords"
   texidoc = "By adding the @code{Volta_engraver} to the relevant
 staff, volte can be put under chords."
index f6e06a35d42199fe7b5904311fc56b6fe68c0fe1..065b50793ca815272a10492a8a99529e1ea733f9 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from input/new
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 \header {
   lsrtags = "repeats,staff-notation"
   texidoc = "By adding the @code{Volta_engraver} to the relevant
index f7b07ff18322d7d75299b8d1fc92d2dcc5da84cd..21237d59c5b925d6d31e3b692a30ed7e20da9685 100644 (file)
@@ -1,6 +1,6 @@
 %% Do not edit this file; it is auto-generated from input/new
 %% This file is in the public domain.
-\version "2.11.62"
+\version "2.13.0"
 
 \header {
   lsrtags = "repeats"
index 58e5ae544dac9cee1ba15cc5bd7da9a764cb585f..ff88b90b4751f9cb47931b5f4183a2e4e0a0046a 100644 (file)
@@ -1,2 +1,3 @@
-makam-example.ly
 arabic-improvisation.ly
+makam-example.ly
+printing-text-from-right-to-left.ly
diff --git a/input/manual/SConscript b/input/manual/SConscript
deleted file mode 100644 (file)
index ece0a25..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-# -*-python-*-
-
-Import ('env', 'collate')
-collate (title = 'LilyPond Examples from the Manual')
index 6b92df874f617ea84b896c14377f0f948e901dd5..3b1136e989b166e965ba77a75118f9ea438834a5 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.61"
+\version "2.12.0"
 
 #(set-global-staff-size 15)
 \paper{
index ceb1b90134a5094b72cb5874b255836a4565d6e7..ccd42c54b73c8b2d541454a886fe55c8e8cf436e 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.61"
+\version "2.12.0"
 \header {
 
 texidoc = " Chord names are generated from a list pitches.  The
index 1641c3f7d7c2e081f7b618a9acaa8420b648b692..e446afa4fb0b07789522c2ff069d2f9d2780fa04 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.61"
+\version "2.12.0"
 \header  {
     texidoc = "@cindex Chord Names German
 The english naming of chords (default) can be changed to german 
index f1c477eefdaf02588d83aa9bde7cc471802cf4a3..f8a661fd71f44aafcc03d2e8fb53e61f34c3bba5 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.61"
+\version "2.12.0"
 #(set-global-staff-size 15)
 \paper{
   ragged-right=##f
index 7dd4ac914b88ff1bfd6028160ac045db73602627..bf2283db3cebc606c180f9a1540a3e79ed51117f 100644 (file)
@@ -1,5 +1,5 @@
 \include "predefined-guitar-fretboards.ly"
-\version "2.11.61"
+\version "2.12.0"
 
 
 mychords = \chordmode {c1 c:m c:aug c:dim c:7 c:maj7 c:m7 \break }
index 97be62eddf8fe59c4c9b29a4ccb4aea080ae5f1e..6307c9ac8c79346614150e443155434fd1ffb5bd 100644 (file)
@@ -9,7 +9,7 @@ Choices are @code{divisioMinima}, @code{divisioMaior},
 
 " }
 
-\version "2.11.61"
+\version "2.12.0"
 
 \include "gregorian.ly"
 
index f7d73eec09b0fbc5cc7252b3938045e8f4519615..b834181f488b007ddcceeb9439e64a6a5ec5d14b 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.61"
+\version "2.12.0"
 \include "english.ly"
 #(set-global-staff-size 15)
 \paper{
index 1ea60271c07221f971b40738d8cb3d8330f17a66..ed62f91ee1d038eb5c11e3a1550b901391ef33d7 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.61"
+\version "2.12.0"
 \include "english.ly"
 #(set-global-staff-size 15)
 \paper {
index 14daed63a6ae78db397b21ce7ecbff99b784cbda..8f666920c042928358a9134bffee2829fbc08fdb 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.61"
+\version "2.12.0"
 #(set-global-staff-size 15)
 \paper{
   ragged-right=##f
index c2fa775f5b7da588da34330395423746c37ee91f..c8e0876b5dcb83ef660ed4454348527285788cbd 100644 (file)
@@ -9,7 +9,7 @@
   evenFooterMarkup = \markup {}
   }
 
-\version "2.11.61"
+\version "2.12.0"
 
 #(define-markup-command (doc-char layout props name) (string?)
   (interpret-markup layout props
@@ -57,4 +57,4 @@
 
 \markuplines \override-lines #'(word-space . 4)
              \doc-chars #(delete ".notdef"
-                          (ly:otf-glyph-list (ly:font-load "emmentaler-20")))
+                          (ly:otf-glyph-list (ly:system-font-load "emmentaler-20")))
index faefb12c8b5114889c0c108e49885b7ba0183c8d..dc97841f207bfdbb38644d0e0718c7914e78caee 100644 (file)
@@ -3,7 +3,7 @@
 % on melodies from Bellini's "Norma"                              %
 %*****************************************************************%
 
-\version "2.11.51"
+\version "2.12.0"
 
 #(set-global-staff-size 15)
 \paper {
index 81ea9ec3978431250f914c427598f033103de1bd..8793965d378cbbec8fdd05b354e5b1c4bd2e6c30 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.61"
+\version "2.12.0"
 \include "english.ly"
 
 #(set-global-staff-size 15)
index 05be352bdfefa1274914849345edd8054dcb3d29..98d33a27f57ed55baf522bfa96cbda15697a100d 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.61"
+\version "2.12.0"
 \header{
   texidoc="
 Note head shapes may be set from several choices.  
index f30cda1b6769a9ba715a73c3ddc6aa0a94177325..cdbc6d7883e729a380e070c50e81e9e2f20c6b33 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.61"
+\version "2.12.0"
 
 % yes, I know this is a mess.  But I'm not going to fuss with
 % it one day before I leave.  -gp
index 33d4006513a7f44884e126ae6f1f6ddabcdd207d..d69c44a97f186cfe96dda4901d1983b172593769 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.61"
+\version "2.12.0"
 \include "english.ly"
 #(set-global-staff-size 15)
 \paper{
index c23a20de6ead857c97ea7778650f7d595d270fb7..faba778a1211591609d31054520df57b59e1ad41 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.61"
+\version "2.12.0"
 \include "english.ly"
 #(set-global-staff-size 15)
 \paper {
index cc9a465fe730ee97cd6bb781cc9f73349852e0ea..a48f05ca9eed19a5347e04d465c0eadc38918c42 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.61"
+\version "2.12.0"
 \include "english.ly"
 #(set-global-staff-size 15)
 \paper {
index 5b72a68d3c34f67a60b83864598ef3130c68e3a0..a49cd240db3de4bbbcb4f5607a30ba4e7ea4c0ca 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.61"
+\version "2.12.0"
 \header {
     title = "Screech and boink"
     subtitle = "Random complex notation"
index c2439fe941c6c2a01fdebb27cba97807a5931068..d8cbd8fa7a7a7f10305a168f99adc9faea1213db 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.61"
+\version "2.12.0"
 
 % this chart is used in the manual too.
 
@@ -24,7 +24,7 @@ This chart shows all articulations, or scripts, that feta font contains.
         c''\upbow              c''\downbow            c''\flageolet
         c''\thumb              c''^\lheel             c''\rheel
         c''^\ltoe              c''\rtoe               c''\open
-        c''\stopped            c''\turn               c''\reverseturn
+        c''\stopped            c''\snappizzicato      c''\turn               c''\reverseturn
         c''\trill              c''\prall              c''\mordent
         c''\prallprall         c''\prallmordent       c''\upprall
         c''\downprall          c''\upmordent          c''\downmordent
@@ -39,7 +39,7 @@ This chart shows all articulations, or scripts, that feta font contains.
         upbow__                 downbow__               flageolet__
         thumb__                 lheel__                 rheel__
         ltoe__                  rtoe__                  open__
-        stopped__               turn__                  reverseturn__
+        stopped__               snappizzicato__                  turn__                  reverseturn__
         trill__                 prall__                 mordent__
         prallprall__            prallmordent__          upprall__
         downprall__             upmordent__             downmordent__
index 089e4db8728ec3646bd280a028c4c2c2a975c78e..a6b5ff8e470a606d795921df34adc286b60d96dc 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.61"
+\version "2.12.0"
 \include "english.ly"
 #(set-global-staff-size 15)
 \paper{
@@ -32,7 +32,7 @@
 }
 
 trillflat =
-  \once \override TrillSpanner #'bound-details #'left #'text =
+  \once \override TrillSpanner #'(bound-details left text) =
     #(markup #:translate-scaled '(-0.05 . -1)
              #:concat (#:musicglyph "scripts.trill"
                        #:translate '(-0.5 . 1.9) #:fontsize -7 #:flat))
index ba9d1cb2df07e4f430bb232814a7197985314ac0..f7fa2e4145446dd840a4dde99b1a8e52c581286c 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.61"
+\version "2.12.0"
 \include "catalan.ly"
 #(set-global-staff-size 15)
 \paper{
index dd6b11856ef9233dbbb74216e8b86528be23d8ec..40af604f84e7b4ddcb3f14f504cd140a2fcd7c88 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.61"
+\version "2.12.0"
 \include "english.ly"
 #(set-global-staff-size 15)
 \paper{
index 184ffd05bce328b79f1a7887760ba46464398dc5..de75aa582c821f51091ec186d0d3bd6e045af704 100644 (file)
@@ -21,7 +21,7 @@
 %% Statement Date: Octber the 9th, 2008
 
 
-\version "2.11.61"
+\version "2.12.0"
 #(set-global-staff-size 15)
 
 %%%
index 69ca7d35c368b9ebf83faf5d95352ffaff0b2aff..6d8fa0a27b139fcfcb241842d1cf5594919d6b82 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.61"
+\version "2.12.0"
 #(set-global-staff-size 15)
 \paper {
   line-width = 16\cm
index 5e09b1424ed1d778652e2bce72818d1c77afcb04..4f14732018e33b37cb95ac2e53b579cd33188a6e 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.61"
+\version "2.12.0"
 \header {
   title =      "Title"
   subtitle =   "Subtitle"
diff --git a/input/mutopia/E.Satie/SConscript b/input/mutopia/E.Satie/SConscript
deleted file mode 100644 (file)
index 361c902..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-# -*-python-*-
-
-Import ('env', 'mutopia')
-mutopia ()
index 6d0047e469c53e60da35cf74a8e5b3aaf11b645f..268f413972ac49d9bb4bbb488517038cd045318b 100644 (file)
@@ -7,7 +7,7 @@
   copyright = "Public Domain"
 }
 
-\version "2.11.61"
+\version "2.12.0"
 
 global =  {
   \key a \minor
diff --git a/input/mutopia/F.Schubert/SConscript b/input/mutopia/F.Schubert/SConscript
deleted file mode 100644 (file)
index 361c902..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-# -*-python-*-
-
-Import ('env', 'mutopia')
-mutopia ()
index 5717727557ccf15ce6342919b60f2bec8f3b1eff..b7941a4f55b7b53909160aa73dc9f4a238eeca88 100644 (file)
@@ -27,7 +27,7 @@ been lowered
 
 }
 
-\version "2.11.61"
+\version "2.12.0"
 manuscriptBreak = { \break }
 
 
index c39c0a4ab8bf7a77208e9be6928875cf2e3cb414..10797cd6d926c3b69e7f18d7ee0d53be227a8bcc 100644 (file)
@@ -40,7 +40,7 @@ instrument = "Piano"
  footer = "Mutopia-2001/04/27-xx"
 } 
 
-\version "2.11.61"
+\version "2.12.0"
 
 #(set-global-staff-size 16)
 
diff --git a/input/mutopia/J.S.Bach/SConscript b/input/mutopia/J.S.Bach/SConscript
deleted file mode 100644 (file)
index 361c902..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-# -*-python-*-
-
-Import ('env', 'mutopia')
-mutopia ()
index 731ceff949a35d09cba4d61a613fdbe7017a6626..7012fe762f31d4b4b36668a81551759937194fb4 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.61"
+\version "2.12.0"
 
 forcedLastBreak =  { \break }
 
index dd41132afaa5d853596b9f6170f9c1824ab29db6..8ba1bb45af8c88ba2783f38094be297679389a30 100644 (file)
@@ -1,5 +1,5 @@
 #(ly:set-option 'old-relative)
-\version "2.11.61"
+\version "2.12.0"
 
 %{
  Header for Petites Preludes.
index bead2fddfc07c1fe01ab6ddb99525460fe94cdb5..a92188df114f980eef964866bcc8e8b0b3292731 100644 (file)
@@ -41,7 +41,7 @@
 
 
 
-\version "2.11.61"
+\version "2.12.0"
 
 
 
diff --git a/input/mutopia/R.Schumann/SConscript b/input/mutopia/R.Schumann/SConscript
deleted file mode 100644 (file)
index 361c902..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-# -*-python-*-
-
-Import ('env', 'mutopia')
-mutopia ()
index 0f37f3a1edf3817178c5f8ee5c493da5454447ac..a83fb3cec57beb357ce1089e7ad7cab3d02f0c89 100644 (file)
@@ -4,7 +4,7 @@
 
 #(set-global-staff-size 16)
 
-\version "2.11.61"
+\version "2.12.0"
 
 \header {
   title = "Romanzen"
diff --git a/input/mutopia/SConscript b/input/mutopia/SConscript
deleted file mode 100644 (file)
index 361c902..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-# -*-python-*-
-
-Import ('env', 'mutopia')
-mutopia ()
diff --git a/input/mutopia/W.A.Mozart/SConscript b/input/mutopia/W.A.Mozart/SConscript
deleted file mode 100644 (file)
index 361c902..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-# -*-python-*-
-
-Import ('env', 'mutopia')
-mutopia ()
index 5edd274ac38e844bbb397b52d6bcb9e873916e27..4e983cebb556a20fac1e4d456b3b1a5d32069cb2 100644 (file)
@@ -41,7 +41,7 @@ virtuoso that taught in Geneva.
 
 %}
 
-\version "2.11.61"
+\version "2.12.0"
 
 \include "mozart-hrn3-defs.ily"
 \include "mozart-hrn3-allegro.ily"
index 3815801f39810b81abf1e7811402305f1ddd21ed..d788aeecbcb3f54d45ee1824d520eb2485126c12 100644 (file)
@@ -94,6 +94,7 @@ allegro =
        c'2  b8[( a gis  a)]
         gis8[ e gis b ] e4 r |
        r8  e,[ a c] dis4 r
+        r8  e,[ gis b ] e4 r
        r8  e,[ a c] dis4 r
        r8  e,[ g b] e4 r
        r8  fis,[ b dis] fis4 r
diff --git a/input/new/SConscript b/input/new/SConscript
deleted file mode 100644 (file)
index f72bfff..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-# -*-python-*-
-
-Import ('env', 'collate')
-collate (title = 'Advanced snippets')
index 519ddde72ddf6c6326865ff4cb014bf0afa156b0..6ad24e927d96b6a744cdc04094f9fa56782c9e16 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.61"
+\version "2.12.0"
 
 \header {
   lsrtags = "text, paper-and-layout, titles"
index dc44a1aab1b056a8c7b574f49c4e0eb325dd3a1b..79f78ef93857e875ce7c4dfc202a77fc2ea1e793 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.61"
+\version "2.12.0"
 
 \header {
   lsrtags = "text"
index e45e14e364e8bda0a7acb2e6d1109997cf30e4df..06348916f5102d7dbe7263a7e5a3521c74dd4df1 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.61"
+\version "2.12.0"
 
 \header {
   lsrtags = "world-music"
diff --git a/input/new/book-parts.ly b/input/new/book-parts.ly
new file mode 100644 (file)
index 0000000..33a624c
--- /dev/null
@@ -0,0 +1,64 @@
+\version "2.12.0"
+
+\header {
+  lsrtags = "paper-and-layout"
+  texidoc = "@code{\\bookpart} can be used to split a book into
+several parts.
+Each part last page can be affected by @code{ragged-bottom-last}.
+Header and footer markups can detect a part last page, and make the
+difference with the book last page.
+"
+  doctitle = "Book parts"
+}
+
+#(set-default-paper-size "a6")
+
+\book {
+
+  %% book paper, which is inherited by all children bookparts
+  \paper {
+    ragged-last-bottom = ##t
+    %% Page footer: add a different part-tagline at part last page
+    oddFooterMarkup = \markup {
+      \column {
+        \fill-line {
+          %% Copyright header field only on book first page.
+          \on-the-fly #first-page \fromproperty #'header:copyright
+        }
+        \fill-line {
+          %% Part tagline header field only on each part last page.
+          \on-the-fly #part-last-page \fromproperty #'header:parttagline
+        }
+        \fill-line {
+          %% Tagline header field only on book last page.
+          \on-the-fly #last-page \fromproperty #'header:tagline
+        }
+      }
+    }
+  }
+
+  %% book header, which is inherited by the first bookpart
+  \header {
+    title = "Book title"
+    copyright = "Copyright line on book first page"
+    parttagline = "Part tagline"
+    tagline = "Book tagline"
+  }
+  
+  \bookpart {
+    %% a different page breaking function may be used on each part
+    \paper { #(define page-breaking optimal-page-breaks) }
+    \header { subtitle = "First part" }
+    \markup { The first book part }
+    \markup { a page break }
+    \pageBreak
+    \markup { first part last page }
+    \markup \wordwrap { with ragged-last-bottom (see the space below this text) }
+  }
+
+  \bookpart {
+    \header { subtitle = "Second part" }
+    { c' }
+  }
+
+}
index 7eddf3a96158f4d627a7a321ca28cba29c99590d..839b3610655ab48b97d6e870d9292bd94b37430d 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.61"
+\version "2.12.0"
 
 \header {
   lsrtags = "expressive-marks"
diff --git a/input/new/center-text-below-hairpin-dynamics.ly b/input/new/center-text-below-hairpin-dynamics.ly
new file mode 100644 (file)
index 0000000..769f735
--- /dev/null
@@ -0,0 +1,35 @@
+\version "2.12.0"
+
+\header {
+  lsrtags = "expressive-marks, text"
+
+  texidoc = "
+This example provides a function to typeset a hairpin (de)crescendo
+with some additional text below it, such as \"molto\" or \"poco\". The
+example also illustrates how to modify the way an object is normally
+printed, using some Scheme code.
+"
+  doctitle = "Center text below hairpin dynamics"
+}
+
+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))
+#})
+
+hairpinMolto = \hairpinWithCenteredText \markup { \italic molto }
+hairpinMore = \hairpinWithCenteredText \markup { \larger moltissimo }
+
+\layout { ragged-right = ##f }
+
+{
+  \hairpinMolto c'2\< c'\f
+  \hairpinMore  c'2\< c'\f
+}
index 0ba6809bc444af5b372a2ec4bbb88292b0bf06f2..2803fc58426467d8fa049d16c9efbd20b73be685 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.61"
+\version "2.12.0"
 \header {
   lsrtags = "rhythms,tweaks-and-overrides"
   texidoc = "
diff --git a/input/new/changing-properties-for-individual-grobs.ly b/input/new/changing-properties-for-individual-grobs.ly
new file mode 100644 (file)
index 0000000..714ae7e
--- /dev/null
@@ -0,0 +1,37 @@
+\version "2.12.0"
+
+\header {
+  lsrtags = "tweaks-and-overrides"
+
+  texidoc = "
+The @code{\\applyOutput} command allows the tuning of any layout
+object, in any context.  It requires a Scheme function with three
+arguments."
+
+  doctitle = "Changing properties for individual grobs"
+}
+
+#(define (mc-squared grob grob-origin context)
+  (let*
+    (
+      (ifs (ly:grob-interfaces grob))
+      (sp (ly:grob-property grob 'staff-position))
+    )
+    (if (memq 'note-head-interface ifs)
+      (begin
+        (ly:grob-set-property! grob 'stencil
+          (grob-interpret-markup grob
+            (make-lower-markup 0.5
+              (case sp
+                ((-5) "m")
+                ((-3) "c ")
+                ((-2) (make-smaller-markup (make-bold-markup "2")))
+                (else "bla")
+                ))))
+        ))))
+
+\relative c' {
+  <d f g b>2
+  \applyOutput #'Voice #mc-squared
+  <d f g b>2
+}
index 7d41aa87f3160dd4ca9fb909f6638f8eeba6f4cf..956f3bdcbe38b1ec60f7032b530f5a95fa091122 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.61"
+\version "2.12.0"
 \header {
   lsrtags = "rhythms,tweaks-and-overrides"
   texidoc = "
index 446a3de2c423fc35a8b24db5157286d3276a181f..f64adcc61eb35e7db356ee1e13f23915d02035d3 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.62"
+\version "2.12.0"
 
 \header {
   lsrtags = "staff-notation"
index 18a052705524f1ae474dde5ee965716d058cd437..f7007eb1ce761d6f1767849dba26ec7d58c3d5fc 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.61"
+\version "2.12.0"
 \header {
   lsrtags = "rhythms,contexts-and-engravers"
   texidoc = "The @code{measureLength} property, together with
index e37bf09df13bb0a0f7edcdf523f278bacf6e99a9..49532ac21eb8dc61699182c7b88ed4be4a5f8d8f 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.61"
+\version "2.12.0"
 \header {
   lsrtags = "paper-and-layout"  % a new tag like "Mixing text and music" or
 % "Special output" might be more adequate -jm
index 5b32ef424eb0b3f28596f386a49972ed2c213945..6359c293ae18b96d5886ed6a7024323e62ce4a22 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.61"
+\version "2.12.0"
 \header {
   lsrtags = "pitches,editorial-annotations,really-cool"
   texidoc = "
diff --git a/input/new/compound-time-signatures.ly b/input/new/compound-time-signatures.ly
new file mode 100644 (file)
index 0000000..b55a3fd
--- /dev/null
@@ -0,0 +1,34 @@
+\version "2.12.0"
+
+\header {
+  lsrtags = "rhythms"
+  texidoc = "
+Odd 20th century time signatures (such as \"5/8\") can often be played
+as compound time signatures (e.g. \"3/8 + 2/8\"), which combine two or
+more inequal metrics. LilyPond can make such music quite easy to read
+and play, by explicitly printing the compound time signatures and
+adapting the automatic beaming behavior. (Graphic measure grouping
+indications can also be added; see the appropriate snippet in this
+database.) 
+
+"
+  doctitle = "Compound time signatures"
+}
+
+#(define ((compound-time one two num) grob)
+  (grob-interpret-markup grob
+    (markup #:override '(baseline-skip . 0) #:number
+      (#:line (
+          (#:column (one num))
+          #:vcenter "+"
+          (#:column (two num))))
+      )))
+
+\relative c' {
+  \override Staff.TimeSignature #'stencil = #(compound-time "2" "3" "8")
+  \time 5/8
+  #(override-auto-beam-setting '(end 1 8 5 8) 1 4)
+  c8 d e fis gis
+  c8 fis, gis e d
+  c8 d e4 gis8
+}
diff --git a/input/new/creating-a-delayed-turn.ly b/input/new/creating-a-delayed-turn.ly
new file mode 100644 (file)
index 0000000..16df65b
--- /dev/null
@@ -0,0 +1,28 @@
+\version "2.12.0"
+
+\header {
+  lsrtags = "expressive-marks, editorial-annotations, tweaks-and-overrides"
+
+  texidoc = "
+Creating a delayed turn, where the lower note of the
+turn uses the accidental, requires several overrides.  The
+@code{outside-staff-priority} property must be set to @code{#f},
+as otherwise this would take precedence over the
+@code{avoid-slur property}.  The value of @code{halign} is used
+to position the turn horizontally."
+
+  doctitle = "Creating a delayed turn"
+}
+
+\relative c'' {
+  \once \override TextScript #'avoid-slur = #'inside
+  \once \override TextScript #'outside-staff-priority = ##f
+  c2(^\markup \tiny \override #'(baseline-skip . 1) {
+    \halign #-4
+    \center-column {
+      \sharp
+      \musicglyph #"scripts.turn"
+    }
+  }
+  d4.) c8
+}
index f52d8382988cf09222316026a5dc8900f3217b89..bb1379bdfd2fe39d8d0fd1665c7acd531f221f86 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.62"
+\version "2.12.0"
 
 \header {
   lsrtags = "staff-notation"
index a7f003d859bf1c809f5671ab960709459bfffdd0..2f065dd3be2ec190ff949f91cc207b871b49204e 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.61"
+\version "2.12.0"
 \header {
   lsrtags = "expressive-marks,text,tweaks-and-overrides"
   texidoc = "
index 9d46ae3b80262a86a3e259c08dd28eee8bc64f07..0d89056fb50d988614c53298676d02a2a1847874 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.62"
+\version "2.12.0"
 
 \header {
   lsrtags = "expressive-marks, text, tweaks-and-overrides"
@@ -13,25 +13,25 @@ indications or octavations.  Override some properties of the
 \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
+  \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 #'(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
index c7aaba441291545010663563c5c2b780107823cd..1f4d8cb2b568d886d352e1e0e3dc122e151c2366 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.61"
+\version "2.12.0"
 
 \header {
   lsrtags = "fretted-strings,tweaks-and-overrides"
@@ -24,41 +24,41 @@ therefore 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 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
+        #'(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 = #-1
-      \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 28a5887cac928ff4a9f9c6fa477a1be88f7b72e4..c3d03fd9b12a2654a372bf69be3e396a37c71c02 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.61"
+\version "2.12.0"
 
 \header {
   lsrtags = "fretted-strings,tweaks-and-overrides"
@@ -18,10 +18,10 @@ to the markup.
     \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
+      #'(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 4fc09cb882a7d88365cd1def66504f2ffb173672..f38d4a2fbe0db04ddc883c76bf65e20d9984048e 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.62"
+\version "2.12.0"
 \header {
   lsrtags = "fretted-strings"
   texidoc = "Predefined fret diagrams can be added for new instruments
@@ -81,10 +81,10 @@ primeros = {
 
     \new FretBoards {
       \set stringTunings = #cuatroTuning
-      \override FretBoard #'fret-diagram-details
-        #'string-count = #'4
-      \override FretBoard #'fret-diagram-details
-        #'finger-code = #'in-dot
+      \override FretBoard
+        #'(fret-diagram-details string-count) = #'4
+      \override FretBoard
+        #'(fret-diagram-details finger-code) = #'in-dot
       \primeros
     }
 
index 816dda50f35f9ff732ab6ede986cf684aa0ea9a1..87e416b30df0e8c8b2bf075edf62e3a9169d98cb 100644 (file)
@@ -1,11 +1,10 @@
-\version "2.11.61"
+\version "2.12.0"
 \header {
   lsrtags = "staff-notation,tweaks-and-overrides"
   texidoc = "If there is only one staff in one of the staff types
-@code{ChoirStaff}, @code{InnerChoirStaff}, @code{InnerStaffGroup}
-or @code{StaffGroup}, the bracket and the starting bar line will not
-be displayed as standard behavior.  This can be changed by overriding
-the relevant properties.
+@code{ChoirStaff} or @code{StaffGroup}, the bracket and the starting
+bar line will not be displayed as standard behavior.  This can be changed
+by overriding the relevant properties.
 
 Note that in contexts such as @code{PianoStaff} and @code{GrandStaff}
 where the systems begin with a brace instead of a bracket, another
index 0a9729cae4fc27fb094281d9c2734a72835d2246..f1cd3193766cafe3863ae9aced6be28701c7a253 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.62"
+\version "2.12.0"
 
 \header {
   lsrtags = "pitches"
@@ -24,8 +24,8 @@ This snippet shows how to achieve such notation rules.
   }
   \layout {
     \context {
-    \Staff
-    \remove "Key_engraver"
+      \Staff
+      \remove "Key_engraver"
     }
   }
 }
index 83d112db3d9f00d38ba4e87c8a2c1a03646f2b1d..43cdd3b1416e19bd12c6f47e920c8ccf85e256fe 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.61"
+\version "2.12.0"
 
 \header {
   lsrtags = "unfretted-strings,tweaks-and-overrides"
index 9d615d247904e955dae55a30358d3711605100de..9d53c90cb328c7a48b649aae87e0b2ba550e5e41 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.61"
+\version "2.12.0"
 \header {
   lsrtags = "tweaks-and-overrides"
   texidoc = "
index 2ed0bde504a7dc1382380dabcdd2259aa6d473cc..27318e7b78778cb02462be4dd2b9a67aa248c857 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.61"
+\version "2.12.0"
 \header {
   lsrtags = "tweaks-and-overrides"
   texidoc = "
index 534431c064b9522dff8f1889564a3f2e3a8a6275..e3a2344615ea6d8cd81ef71d120407f50632dafa 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.61"
+\version "2.12.0"
 
 \header {
   lsrtags = "keyboards, tweaks-and-overrides"
diff --git a/input/new/flute-slap-notation.ly b/input/new/flute-slap-notation.ly
new file mode 100644 (file)
index 0000000..35f8987
--- /dev/null
@@ -0,0 +1,29 @@
+\version "2.12.0"
+
+\header {
+  lsrtags = "winds"
+
+  texidoc = "
+It is possible to indicate special articulation techniques such as
+flute's \"tongue slap\", by replacing the note head with the
+appropriate glyph.
+
+"
+  doctitle = "Flute slap notation"
+}
+
+slap =
+#(define-music-function (parser location music) (ly:music?)
+#{
+  \override NoteHead #'stencil = #(lambda (grob)
+    (grob-interpret-markup grob
+      (markup #:musicglyph "scripts.sforzato")))
+  \override NoteHead #'extra-offset = #'(0.1 . 0.0)
+  $music
+  \revert NoteHead #'stencil
+  \revert NoteHead #'extra-offset
+#})
+
+\relative c' {
+  c4 \slap c d r \slap { g a } b r
+}
index efe6c79c8c2e6d0cce97527a0521a21722689cdf..971dd0e4e7c90591be09202c574e4bbaf8a609af 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.61"
+\version "2.12.0"
 
 \header {
   lsrtags = "fretted-strings,tweaks-and-overrides"
@@ -10,15 +10,17 @@ and tweaking fret diagrams."
 <<
   \chords {
     a2 a
-    c2 c
-    d1
+    \repeat unfold 3 {
+      c c c d d
+    }
   }
   
   \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 #'finger-code = #'below-string
     \override TextScript #'fret-diagram-details #'dot-color = #'black
     
     %% A chord for ukelele
@@ -42,6 +44,207 @@ and tweaking fret diagrams."
       }
     }
     
+      %% These chords will be in normal orientation
+
+    %% C major for guitar, barred on third fret
+    %  verbose style
+    %  roman fret label, finger labels below string, straight barre
+    c'2^\markup {
+      % 110% of default size
+      \override #'(size . 1.1) {
+        \override #'(fret-diagram-details . (
+                     (number-type . roman-lower)
+                     (finger-code . below-string)
+                     (barre-type . straight))) {
+          \fret-diagram-verbose #'((mute 6)
+                                   (place-fret 5 3 1)
+                                   (place-fret 4 5 2)
+                                   (place-fret 3 5 3)
+                                   (place-fret 2 5 4)
+                                   (place-fret 1 3 1)
+                                   (barre 5 1 3))
+        }
+      }
+    }
+    
+    %% C major for guitar, barred on third fret
+    %% Double barre used to test barre function
+    %  verbose style
+    c'2^\markup {
+      % 110% of default size
+      \override #'(size . 1.1) {
+        \override #'(fret-diagram-details . (
+                     (number-type . arabic)
+                     (dot-label-font-mag . 0.9)
+                     (finger-code . in-dot)
+                     (fret-label-font-mag . 0.6)
+                     (fret-label-vertical-offset . 0)
+                     (label-dir . -1)
+                     (mute-string . "M")
+                     (xo-font-magnification . 0.4)
+                     (xo-padding . 0.3))) {
+          \fret-diagram-verbose #'((mute 6)
+                                   (place-fret 5 3 1)
+                                   (place-fret 4 5 2)
+                                   (place-fret 3 5 3)
+                                   (place-fret 2 5 4)
+                                   (place-fret 1 3 1)
+                                   (barre 4 2 5)
+                                   (barre 5 1 3))
+        }
+      }
+    }
+    
+    %% C major for guitar, with capo on third fret
+    %  verbose style
+    c'2^\markup {
+      % 110% of default size
+      \override #'(size . 1.1) {
+        \override #'(fret-diagram-details . (
+                     (number-type . roman-upper)
+                     (dot-label-font-mag . 0.9)
+                     (finger-code . none)
+                     (fret-label-vertical-offset . 0.5)
+                     (xo-font-magnification . 0.4)
+                     (xo-padding . 0.3))) {
+          \fret-diagram-verbose #'((mute 6)
+                                   (capo 3)
+                                   (open 5)
+                                   (place-fret 4 5 1)
+                                   (place-fret 3 5 2)
+                                   (place-fret 2 5 3)
+                                   (open 1))
+        }
+      }
+    }
+    
+    %% simple D chord
+    d'2^\markup {
+      \override #'(fret-diagram-details . (
+                   (finger-code . below-string)
+                   (dot-radius . 0.35)
+                   (string-thickness-factor . 0.3)
+                   (dot-position . 0.5)
+                   (fret-count . 3))) {
+        \fret-diagram-terse #"x;x;o;2-1;3-2;2-3;"
+      }
+    }
+
+    %% simple D chord, large top fret thickness
+    d'2^\markup  {
+      \override #'(fret-diagram-details . (
+                   (finger-code . below-string)
+                   (dot-radius . 0.35)
+                   (dot-position . 0.5)
+                   (top-fret-thickness . 7)
+                   (fret-count . 3))) {
+        \fret-diagram-terse #"x;x;o;2-1;3-2;2-3;"
+      }
+    }
+
+      % These chords will be in landscape orientation
+    \override TextScript 
+       #'fret-diagram-details #'orientation = #'landscape
+
+    %% C major for guitar, barred on third fret
+    %  verbose style
+    %  roman fret label, finger labels below string, straight barre
+    c'2^\markup {
+      % 110% of default size
+      \override #'(size . 1.1) {
+        \override #'(fret-diagram-details . (
+                     (number-type . roman-lower)
+                     (finger-code . below-string)
+                     (barre-type . straight))) {
+          \fret-diagram-verbose #'((mute 6)
+                                   (place-fret 5 3 1)
+                                   (place-fret 4 5 2)
+                                   (place-fret 3 5 3)
+                                   (place-fret 2 5 4)
+                                   (place-fret 1 3 1)
+                                   (barre 5 1 3))
+        }
+      }
+    }
+    
+    %% C major for guitar, barred on third fret
+    %% Double barre used to test barre function
+    %  verbose style
+    c'2^\markup {
+      % 110% of default size
+      \override #'(size . 1.1) {
+        \override #'(fret-diagram-details . (
+                     (number-type . arabic)
+                     (dot-label-font-mag . 0.9)
+                     (finger-code . in-dot)
+                     (fret-label-font-mag . 0.6)
+                     (fret-label-vertical-offset . 0)
+                     (label-dir . -1)
+                     (mute-string . "M")
+                     (xo-font-magnification . 0.4)
+                     (xo-padding . 0.3))) {
+          \fret-diagram-verbose #'((mute 6)
+                                   (place-fret 5 3 1)
+                                   (place-fret 4 5 2)
+                                   (place-fret 3 5 3)
+                                   (place-fret 2 5 4)
+                                   (place-fret 1 3 1)
+                                   (barre 4 2 5)
+                                   (barre 5 1 3))
+        }
+      }
+    }
+    
+    %% C major for guitar, with capo on third fret
+    %  verbose style
+    c'2^\markup {
+      % 110% of default size
+      \override #'(size . 1.1) {
+        \override #'(fret-diagram-details . (
+                     (number-type . roman-upper)
+                     (dot-label-font-mag . 0.9)
+                     (finger-code . none)
+                     (fret-label-vertical-offset . 0.5)
+                     (xo-font-magnification . 0.4)
+                     (xo-padding . 0.3))) {
+          \fret-diagram-verbose #'((mute 6)
+                                   (capo 3)
+                                   (open 5)
+                                   (place-fret 4 5 1)
+                                   (place-fret 3 5 2)
+                                   (place-fret 2 5 3)
+                                   (open 1))
+        }
+      }
+    }
+    
+    %% simple D chord
+    d'2^\markup {
+      \override #'(fret-diagram-details . (
+                   (finger-code . below-string)
+                   (dot-radius . 0.35)
+                   (dot-position . 0.5)
+                   (fret-count . 3))) {
+        \fret-diagram-terse #"x;x;o;2-1;3-2;2-3;"
+      }
+    }
+
+    %% simple D chord, large top fret thickness
+    d'2^\markup {
+      \override #'(fret-diagram-details . (
+                   (finger-code . below-string)
+                   (dot-radius . 0.35)
+                   (dot-position . 0.5)
+                   (top-fret-thickness . 7)
+                   (fret-count . 3))) {
+        \fret-diagram-terse #"x;x;o;2-1;3-2;2-3;"
+      }
+    }
+
+      % These chords will be in opposing-landscape orientation
+    \override TextScript #'fret-diagram-details 
+                           #'orientation = #'opposing-landscape
+
     %% C major for guitar, barred on third fret
     %  verbose style
     %  roman fret label, finger labels below string, straight barre
@@ -64,6 +267,7 @@ and tweaking fret diagrams."
     }
     
     %% C major for guitar, barred on third fret
+    %% Double barre used to test barre function
     %  verbose style
     c'2^\markup {
       % 110% of default size
@@ -76,7 +280,6 @@ and tweaking fret diagrams."
                      (fret-label-vertical-offset . 0)
                      (label-dir . -1)
                      (mute-string . "M")
-                     (orientation . landscape)
                      (xo-font-magnification . 0.4)
                      (xo-padding . 0.3))) {
           \fret-diagram-verbose #'((mute 6)
@@ -85,17 +288,53 @@ and tweaking fret diagrams."
                                    (place-fret 3 5 3)
                                    (place-fret 2 5 4)
                                    (place-fret 1 3 1)
+                                   (barre 4 2 5)
                                    (barre 5 1 3))
         }
       }
     }
     
+    %% C major for guitar, with capo on third fret
+    %  verbose style
+    c'2^\markup {
+      % 110% of default size
+      \override #'(size . 1.1) {
+        \override #'(fret-diagram-details . (
+                     (number-type . roman-upper)
+                     (dot-label-font-mag . 0.9)
+                     (finger-code . none)
+                     (fret-label-vertical-offset . 0.5)
+                     (xo-font-magnification . 0.4)
+                     (xo-padding . 0.3))) {
+          \fret-diagram-verbose #'((mute 6)
+                                   (capo 3)
+                                   (open 5)
+                                   (place-fret 4 5 1)
+                                   (place-fret 3 5 2)
+                                   (place-fret 2 5 3)
+                                   (open 1))
+        }
+      }
+    }
+    
     %% simple D chord
-    d'1^\markup {
+    d'2^\markup {
+      \override #'(fret-diagram-details . (
+                   (finger-code . below-string)
+                   (dot-radius . 0.35)
+                   (dot-position . 0.5)
+                   (fret-count . 3))) {
+        \fret-diagram-terse #"x;x;o;2-1;3-2;2-3;"
+      }
+    }
+
+    %% simple D chord, large top fret thickness
+    d'2^\markup {
       \override #'(fret-diagram-details . (
                    (finger-code . below-string)
                    (dot-radius . 0.35)
                    (dot-position . 0.5)
+                   (top-fret-thickness . 7)
                    (fret-count . 3))) {
         \fret-diagram-terse #"x;x;o;2-1;3-2;2-3;"
       }
diff --git a/input/new/fretboard-chordchanges.ly b/input/new/fretboard-chordchanges.ly
new file mode 100644 (file)
index 0000000..9d86f11
--- /dev/null
@@ -0,0 +1,21 @@
+\version "2.13.0"
+
+\header {
+  lsrtags = "fretted-strings"
+  texidoc = "FretBoards can be set to display only when the chord changes
+or at the beginning of a new line."
+  doctitle = "Fretboard chordchanges"
+}
+
+myChords = \chordmode {
+  c1 c1 \break
+  c1 c1 \break
+  \set chordChanges = ##t
+  c1 c1 \break
+}
+
+<<
+  \new ChordNames { \myChords }
+  \new FretBoards { \myChords }
+  \new Staff { \myChords }
+>>
index c4aaced334373196198d70ed0b9f64393b1514a0..9c5c0ab1b1bb4dfef643d1943b071f0a6857c614 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.61"
+\version "2.12.0"
 
 \header {
   lsrtags = "rhythms,fretted-strings"
@@ -16,35 +16,30 @@ with melody notes, chord names, and fret diagrams.
       c1 f g c
     }
   }
-
   \new FretBoards {
     \chordmode {
       c1 f g c
     }
   }
-
-
   \new Voice \with {
-    \consists Pitch_squash_engraver
-  } \relative c'' {
-    \improvisationOn
-    c4 c8 c c4 c8 c
-    f4 f8 f f4 f8 f
-    g4 g8 g g4 g8 g
-    c4 c8 c c4 c8 c
+    \consists "Pitch_squash_engraver"
+  } {
+    \relative c'' {
+      \improvisationOn
+      c4 c8 c c4 c8 c
+      f4 f8 f f4 f8 f
+      g4 g8 g g4 g8 g
+      c4 c8 c c4 c8 c
+    }
   }
-
-
   \new Voice = "melody" {
     \relative c'' {
-      \improvisationOff
       c2 e4 e4
       f2. r4
       g2. a4
       e4 c2.
     }
   }
-
   \new Lyrics {
     \lyricsto "melody" {
       This is my song.
diff --git a/input/new/heavily-customized-polymetric-time-signatures.ly b/input/new/heavily-customized-polymetric-time-signatures.ly
new file mode 100644 (file)
index 0000000..8e6d38d
--- /dev/null
@@ -0,0 +1,56 @@
+\version "2.12.0"
+
+\header {
+  lsrtags = "rhythms, percussion"
+
+  texidoc = "
+Though the polymetric time signature shown was not the most essential
+item here, it has been included to show the beat of this piece (which
+is the template of a real Balkan song!).
+
+"
+  doctitle = "Heavily customized polymetric time signatures"
+}
+
+#(define plus (markup #:vcenter "+"))
+#(define ((custom-time-signature one two three four five six
+           seven eight nine ten eleven num) grob)
+            (grob-interpret-markup grob
+              (markup #:override '(baseline-skip . 0) #:number
+                (#:line (
+                    (#:column (one num)) plus
+                    (#:column (two num)) plus
+                    (#:column (three num)) plus
+                    (#:column (four num)) plus
+                    (#:column (five num)) plus
+                    (#:column (six num)) plus
+                    (#:column (seven num)) plus
+                    (#:column (eight num)) plus
+                    (#:column (nine num)) plus
+                    (#:column (ten num)) plus
+                    (#:column (eleven num))))
+                )))
+
+melody = \relative c'' {
+  \set Staff.instrumentName = #"Bb Sop."
+  \key g \major
+  #(set-time-signature 25 8 '(3 2 2 3 2 2 2 2 3 2 2))
+  \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
+  c,4. d4 c4 d4. c4 d c2 d4. e4-^ d4
+  c4. d4 c4 d4. c4 d c2 d4. e4-^ d4 \break
+  c4. d4 c4 d4. c4 d c2 d4. e4-^ d4
+  c4. d4 c4 d4. c4 d c2 d4. e4-^ d4 \break
+}
+
+drum = \new DrumStaff \drummode {
+  \bar "|:" bd4.^\markup { "Drums" } sn4 bd \bar ":" sn4.
+  bd4 sn \bar ":" bd sn bd4. sn4 bd \bar ":|"
+}
+
+{
+  \melody
+  \drum
+}
index 3e3cc41edd30a8457215490d5354698b23eaf40a..5664d32cb1a9194505d8809e0d9368d4578f1937 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.61"
+\version "2.12.0"
 \header {
   lsrtags = "staff-notation,ancient-notation"
   texidoc = "Incipits can be added using the instrument name grob, but
@@ -13,7 +13,7 @@ incipit =
     \once \override Staff.InstrumentName #'self-alignment-Y = #UP
     \once \override Staff.InstrumentName #'Y-offset = #4
     \once \override Staff.InstrumentName #'padding = #0.3
-    \once \override Staff.InstrumentName #'stencil = 
+    \once \override Staff.InstrumentName #'stencil =
     #(lambda (grob)
        (let* ((instrument-name (ly:grob-property grob 'long-text))
               (layout (ly:output-def-clone (ly:grob-layout grob)))
@@ -37,7 +37,7 @@ incipit =
          (ly:output-def-set-variable! layout 'ragged-last #f)
          (ly:output-def-set-variable! layout 'system-count 1)
          (ly:score-add-output-def! score layout)
-         (set! (ly:grob-property grob 'long-text)
+         (ly:grob-set-property! grob 'long-text
                (markup #:score score))
          (ly:system-start-text::print grob)))
   #})
@@ -48,9 +48,7 @@ global = {
   \set Score.skipBars = ##t
   \key g \major
   \time 4/4
-  
-  %make the staff lines invisible on staves
-  \override Staff.BarLine #'transparent = ##t
+
   % the actual music
   \skip 1*8
 
@@ -236,25 +234,19 @@ bassusLyrics = \lyricmode {
         \incipit \bassusIncipit
         \bassusNotes
       >>
+      \new Lyrics = "bassusLyrics" \lyricsto bassusNotes { \bassusLyrics }
     >>
-    \new Lyrics = "bassusLyrics" \lyricsto bassusNotes { \bassusLyrics }
-    %% Keep the bass lyrics outside of the staff group to avoid bar lines
-    %% between the lyrics.
   >>
   \layout {
     \context {
       \Score
-      %% no bar lines in staves
+      %% no bar lines in staves or lyrics
       \override BarLine #'transparent = ##t
     }
-    %% the next three instructions keep the lyrics between the bar lines
+    %% the next two instructions keep the lyrics between the bar lines
     \context {
       \Lyrics
-      \consists "Bar_engraver" 
-      \override BarLine #'transparent = ##t
-    } 
-    \context {
-      \StaffGroup
+      \consists "Bar_engraver"
       \consists "Separating_line_group_engraver"
     }
     \context {
index 75c478070a85fb84f307ae9407edc16ce99852ac..c143675851a4e4d2bd7443c4efe4c22e6e9c5549 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.61"
+\version "2.12.0"
 \header {
   lsrtags = "expressive-marks,tweaks-and-overrides"
   texidoc = "
index e357cc6ff27291cd86bb3e9f157a22e795d04e7b..79da84dff51bbaf350b786d87bef2c063381bd18 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.61"
+\version "2.12.0"
 
 \header {
   lsrtags = "staff-notation,fretted-strings"
index aa3c845eb9070370b7dcf24fc8a08cfd2a6fb29c..7fbc9d60172b0e75a3917d8a537d0531b76a34f0 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.61"
+\version "2.12.0"
 \header {
   lsrtags = "expressive-marks"
   texidoc = "Arrows can be applied to text-spanners and line-spanners
@@ -9,15 +9,15 @@
 \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 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 #'(bound-details right arrow) = ##t
   \override Glissando #'arrow-length = #0.5
   \override Glissando #'arrow-width = #0.25
   
index d8842521f896fd57ac801b2038f3818a18ccfb33..2d0028441dc2687476259245082e2172846215b2 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.61"
+\version "2.12.0"
 \header {
   lsrtags = "pitches,world-music"
   texidoc = "Makam is a type of melody from Turkey using 1/9th-tone
@@ -13,7 +13,7 @@ for details of pitch names and alterations."
 \include "makam.ly"
 
 \relative c' {
-  \set Staff.keySignature = #`((3 . ,BAKIYE) (6 . ,(- KOMA)))
+  \set Staff.keySignature = #`((6 . ,(- KOMA)) (3 . ,BAKIYE))
   c4 cc db fk
   gbm4 gfc gfb efk
   fk4 db cc c
index 7dcc5ebe49f25e44c8dd9fddcc746db76173d5dd..47014eea84109061e870f004f681a4f25e5b09cc 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.61"
+\version "2.12.0"
 \header {
   lsrtags = "rhythms,tweaks-and-overrides"
   texidoc = "
@@ -18,16 +18,18 @@ flag from interfering with tie positioning, the stem is extended.
 
 \relative c'' {
   \time 2/4
-  << {
-    \once \override Stem #'transparent = ##t
-    \once \override Stem #'length = #8
-    b8 ~ b\noBeam
-    \once \override Stem #'transparent = ##t
-    \once \override Stem #'length = #8
-    g8 ~ g\noBeam
-  }
-  \\
-  {
-    b8 g g e
-  } >>
+  <<
+    {
+      \once \override Stem #'transparent = ##t
+      \once \override Stem #'length = #8
+      b8 ~ b\noBeam
+      \once \override Stem #'transparent = ##t
+      \once \override Stem #'length = #8
+      g8 ~ g\noBeam
+    }
+    \\
+    {
+      b8 g g e
+    }
+  >>
 }
index 7d5128e09195395c2ad93aca9c81ee8648650848..bdf0224acfe35bac061b12744c842b9f6046efe1 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.62"
+\version "2.12.0"
 
 \header {
   lsrtags = "editorial-annotations, vocal-music"
@@ -6,23 +6,25 @@
   texidoc = "
 This example shows how to put crosses on stems. Mark the beginning
 of a spoken section with the @code{\\speakOn} keyword, and end it
-with the @code{\\speakOff} keyword.  Remember to end cross sections
-before entering any rest: this function also adds crosses to the
-invisible stems of rests.
+with the @code{\\speakOff} keyword.
 "
   doctitle = "Marking notes of spoken parts with a cross on the stem"
 }
 
 speakOn = {
   \override Stem #'stencil = #(lambda (grob)
-  (ly:stencil-combine-at-edge
-    (ly:stem::print grob)
-    Y
-    (- (ly:grob-property grob 'direction))
-    (grob-interpret-markup grob
-      (markup #:hspace -1.025 #:fontsize -4
-        #:musicglyph "noteheads.s2cross"))
-    -2.3 0))
+    (let* ((x-parent (ly:grob-parent grob X))
+           (is-rest? (ly:grob? (ly:grob-object x-parent 'rest))))
+      (if is-rest?
+        empty-stencil
+        (ly:stencil-combine-at-edge
+          (ly:stem::print grob)
+          Y
+          (- (ly:grob-property grob 'direction))
+          (grob-interpret-markup grob
+            (markup #:hspace -1.025 #:fontsize -4
+              #:musicglyph "noteheads.s2cross"))
+          -2.3 0))))
 }
 
 speakOff = {
index 24346da7965918d41ef74b8de531b8286591c983..bc32520f8dfb1a1541ffeff8afa63e7bf8f3ee17 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.61"
+\version "2.12.0"
 
 \header {
   lsrtags = "text"
index e30bda8183b07b20af063de2b20741d19465be29..fa7dadee7d46e5fb1dd2915ff4637524d2035d4f 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.61"
+\version "2.12.0"
 
 \header {
   lsrtags = "staff-notation, fretted-strings"
index f75cf29724b41671af11c05317a680627e8961d7..ffb1b3a3472eaabfb27abc909bdc21e199390700 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.61"
+\version "2.12.0"
 
 \header {
   lsrtags = "rhythms, text"
diff --git a/input/new/non-default-tuplet-numbers.ly b/input/new/non-default-tuplet-numbers.ly
new file mode 100644 (file)
index 0000000..ec4c0cc
--- /dev/null
@@ -0,0 +1,32 @@
+\version "2.12.3"
+
+\header {
+  lsrtags = "rhythms"
+
+  texidoc = "
+LilyPond also provides formatting functions to print tuplet numbers different
+than the actual fraction, as well as to append a note value to the tuplet 
+number or tuplet fraction.
+"
+  doctitle = "Non-default tuplet numbers"
+} % begin verbatim
+
+
+\relative c'' {
+  \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)
+  \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")
+  \times 2/3  { c4. c4. c4. c4. }
+
+  \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")
+  \times 2/3  { c8 c8 c8 c8 c8 c8 }
+
+  \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")
+  \times 2/3  { c4. c4. c4. c4. }
+}
diff --git a/input/new/non-traditional-key-signatures.ly b/input/new/non-traditional-key-signatures.ly
new file mode 100644 (file)
index 0000000..b0f2a62
--- /dev/null
@@ -0,0 +1,36 @@
+\version "2.13.0"
+
+\header {
+  lsrtags = "pitches, staff-notation"
+  texidoc = "
+The commonly used @code{\\key} command sets the @code{keySignature}
+property, in the @code{Staff} context.
+
+To create non-standard key signatures, set this property directly.  The
+format of this command is a list:
+
+@code{\\set Staff.keySignature = #`(((octave . step) . alter) ((octave
+. step) . alter) ...)} where, for each element in the list,
+@code{octave} specifies the octave (0@tie{}being the octave from
+middle@tie{}C to the B above), @code{step} specifies the note within the
+octave (0@tie{}means@tie{}C and 6@tie{}means@tie{}B), and @code{alter} is
+@code{,SHARP ,FLAT ,DOUBLE-SHARP} etc.  (Note the leading comma.)
+
+Alternatively, for each item in the list, using the more concise format
+@code{(step . alter)} specifies that the same alteration should hold in all
+octaves.
+
+Here is an example of a possible key signature for generating a whole-tone
+scale:
+"
+  doctitle = "Non-traditional key signatures"
+}
+
+\relative c' {
+  \set Staff.keySignature = #`(((0 . 6) . ,FLAT)
+                               ((0 . 5) . ,FLAT)
+                               ((0 . 3) . ,SHARP))
+  c4 d e fis
+  aes4 bes c2
+}
+
diff --git a/input/new/orchestra-choir-and-piano-template.ly b/input/new/orchestra-choir-and-piano-template.ly
new file mode 100644 (file)
index 0000000..d2f057b
--- /dev/null
@@ -0,0 +1,167 @@
+\version "2.12.0"
+\header {
+  lsrtags = "template"
+  texidoc = "
+This template demonstrates the use of nested @code{StaffGroup}
+and @code{GrandStaff} contexts to sub-group instruments of the same
+type together, and the use of @code{\\transpose} for transposing
+instruments.  All music in variables is stored in C.  Music may be
+entered in C or, alternatively, entered in the instrument key and
+transposed to C (see trumpet for an example) before being assigned
+to a variable.
+"
+  doctitle = "Orchestra, choir and piano template"
+}
+
+#(set-global-staff-size 17)
+
+\paper {
+  indent = 3.0\cm
+  short-indent = 1.5\cm
+}
+
+\layout {
+   \context {
+     \Score
+     \override InstrumentName #'self-alignment-X = #CENTER
+   }
+}
+
+fluteMusic = \relative c { \key c \major c'1 d }
+oboeMusic = \relative c { \key c \major c'1 d }
+clarinetMusic = \relative c { \key c \major c'1 d }
+bassoonMusic = \relative c { \clef bass \key c \major c1 d }
+trumpetMusic = \relative c { \key c \major c''1 d }
+tromboneMusic = \relative c { \key c \major c1 d }
+hornIMusic = \relative c { \key c \major c'1 d }
+hornIIMusic = \relative c { \key c \major c1 d }
+percussionMusic = \relative c { \key c \major c1 d }
+sopranoMusic  = \relative c'' {\key c \major c1 d }
+sopranoLyrics = \lyricmode { Sop -- ra }
+altoIMusic  = \relative c' { \key c \major c1 d }
+altoILyrics = \lyricmode { A -- one }
+altoIIMusic  = \relative c' { \key c \major c1 d }
+altoIILyrics = \lyricmode { A -- two }
+tenorMusic    = \relative c' { \key c \major c1 d }
+tenorLyrics   = \lyricmode { Ten -- or }
+pianoRHMusic = \relative c { \key c \major c'1 d }
+pianoLHMusic = \relative c { \key c \major c1 d }
+violinIMusic = \relative c { \key c \major c'1 d }
+violinIIMusic = \relative c { \key c \major c'1 d }
+violaMusic = \relative c { \clef alto \key c \major c'1 d }
+celloMusic = \relative c { \clef bass \key c \major c1 d }
+bassMusic = \relative c { \clef "bass_8" \key c \major c,1 d }
+
+\score {
+  \new GrandStaff = "GrandStaff_score" <<
+    \new StaffGroup = "StaffGroup_woodwinds" <<
+      \new Staff = "Staff_flute" {
+        \set Staff.instrumentName = "Flute"
+        \fluteMusic
+      }
+      \new Staff = "Staff_oboe" {
+        \set Staff.instrumentName = "Oboe"
+        \oboeMusic
+      }
+      \new Staff = "Staff_clarinet" {
+        \set Staff.instrumentName = \markup \concat { "Clarinet in B" \flat }
+        \transposition bes
+        \transpose bes c' \clarinetMusic
+      }
+      \new Staff = "Staff_bassoon" {
+        \set Staff.instrumentName = "Bassoon"
+        \bassoonMusic
+      }
+    >>
+    \new StaffGroup = "StaffGroup_brass" <<
+      \new GrandStaff <<
+        \new Staff = "Staff_hornI" {
+          \set Staff.instrumentName = "Horn I"
+          \transposition f
+          \transpose f c' \hornIMusic
+        }
+        \new Staff = "Staff_hornII" {
+          \set Staff.instrumentName = "Horn II"
+          \clef bass
+          \transposition f
+          \transpose f c' \hornIIMusic
+        }
+      >>
+      \new Staff = "Staff_trumpet" {
+        \set Staff.instrumentName = "Trumpet in C"
+        \trumpetMusic
+      }
+      \new Staff = "Staff_trombone" {
+        \set Staff.instrumentName = "Trombone"
+        \clef bass
+        \tromboneMusic
+      }
+    >>
+    \new RhythmicStaff = "RhythmicStaff_percussion" <<
+      \set RhythmicStaff.instrumentName = "Percussion"
+      \percussionMusic
+    >>
+    \new PianoStaff \with { \consists Instrument_name_engraver } <<
+      \set PianoStaff.instrumentName = "Piano"
+      \new Staff { \pianoRHMusic }
+      \new Staff {
+        \clef bass
+        \pianoLHMusic
+      }
+    >>
+    \new ChoirStaff = "ChoirStaff_choir" <<
+      \new Staff = "Staff_soprano" {
+        \set Staff.instrumentName = "Soprano"
+        \new Voice = "soprano"
+        \sopranoMusic
+      }
+      \new Lyrics \lyricsto "soprano" { \sopranoLyrics }
+      \new GrandStaff = "GrandStaff_altos" \with { \accepts Lyrics } <<
+        \new Staff = "Staff_altoI"  {
+          \set Staff.instrumentName = "Alto I"
+          \new Voice = "altoI"
+          \altoIMusic
+        }
+        \new Lyrics \lyricsto "altoI" { \altoILyrics }
+        \new Staff = "Staff_altoII" {
+          \set Staff.instrumentName = "Alto II"
+          \new Voice = "altoII"
+          \altoIIMusic
+        }
+        \new Lyrics \lyricsto "altoII" { \altoIILyrics }
+      >>
+      \new Staff = "Staff_tenor" {
+        \set Staff.instrumentName = "Tenor"
+        \clef "treble_8"
+        \new Voice = "tenor"
+        \tenorMusic
+      }
+      \new Lyrics \lyricsto "tenor" { \tenorLyrics }
+    >>
+    \new StaffGroup = "StaffGroup_strings" <<
+      \new GrandStaff = "GrandStaff_horns" <<
+        \new Staff = "Staff_violinI" {
+          \set Staff.instrumentName = "Violin I"
+          \violinIMusic
+        }
+        \new Staff = "Staff_violinII" {
+          \set Staff.instrumentName = "Violin II"
+          \violinIIMusic
+        }
+      >>
+      \new Staff = "Staff_viola" {
+        \set Staff.instrumentName = "Viola"
+        \violaMusic
+      }
+      \new Staff = "Staff_cello" {
+        \set Staff.instrumentName = "Cello"
+        \celloMusic
+      }
+      \new Staff = "Staff_bass" {
+        \set Staff.instrumentName = "Double Bass"
+        \bassMusic
+      }
+    >>
+  >>
+}
+
diff --git a/input/new/ottava-text.ly b/input/new/ottava-text.ly
new file mode 100644 (file)
index 0000000..6110b79
--- /dev/null
@@ -0,0 +1,23 @@
+\version "2.12.0"
+
+\header {
+  lsrtags = "pitches, text"
+  texidoc = "
+Internally, @code{\\ottava} sets the properties @code{ottavation}
+(for example, to @code{\"8va\"} or @code{\"8vb\"}) and
+@code{middleCPosition}.  To override the text of the bracket, set
+@code{ottavation} after invoking @code{\\ottava}.
+"
+  doctitle = "Ottava text"
+}
+
+{
+  \ottava #1
+  \set Staff.ottavation = #"8"
+  c''1
+  \ottava #0
+  c'1
+  \ottava #1
+  \set Staff.ottavation = #"Text"
+  c''1
+}
index 61ce8693357ac3aa9421b28a61f7b52394d9dde1..e573ade32658294ab055a7efcf1704bccbc42701 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.61"
+\version "2.12.0"
 
 \header {
   lsrtags = "text"
index 40d489308994c2823a9184fbbac52011fa9e5434..657ea9efc6d6c2e2a26a62ddef163c594da7e5e7 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.61"
+\version "2.12.0"
 \header {
   lsrtags = "spacing"
   texidoc = "Page labels may be placed inside music or at top-level,
diff --git a/input/new/percent-repeat-count-visibility.ly b/input/new/percent-repeat-count-visibility.ly
new file mode 100644 (file)
index 0000000..3ae1e12
--- /dev/null
@@ -0,0 +1,17 @@
+\version "2.12.0"
+\header {
+  lsrtags = "repeats, tweaks-and-overrides"
+  texidoc = "
+Percent repeat counters can be shown at regular intervals by setting
+the context property @code{repeatCountVisibility}.
+"
+  doctitle = "Percent repeat count visibility"
+}
+
+\relative c'' {
+  \set countPercentRepeats = ##t
+  \set repeatCountVisibility = #(every-nth-repeat-count-visible 5)
+  \repeat percent 10 { c1 } \break
+  \set repeatCountVisibility = #(every-nth-repeat-count-visible 2)
+  \repeat percent 6 { c1 d1 }
+}
index 49c70a66c58cf9753fb2d85ab478eb57dc4705be..7bc5cd5b4edd83a760a385665cd7fb6bc80dd9b5 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.61"
+\version "2.12.0"
 
 \header {
   lsrtags = "expressive-marks,keyboards,template"
index fcb8a181f5db13bc56de0e05200d7395de5a2b99..235b8baad1f6cfc986f92495a6961739328571bc 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.61"
+\version "2.12.0"
 \header {
   lsrtags = "rhythms,tweaks-and-overrides"
   texidoc = "
diff --git a/input/new/printing-the-bar-number-for-the-first-measure.ly b/input/new/printing-the-bar-number-for-the-first-measure.ly
new file mode 100644 (file)
index 0000000..86cc793
--- /dev/null
@@ -0,0 +1,23 @@
+\version "2.12.1"
+
+\header {
+  lsrtags = "rhythms"
+
+  texidoc = "
+By default, the first bar number in a score is suppressed if it is
+less than or equal to `1'.  By setting @code{barNumberVisibility}
+to @code{all-bar-numbers-visible}, any bar number can be printed
+for the first measure and all subsequent measures.  Note that an
+empty bar line must be inserted before the first note for this to
+work.
+
+"
+  doctitle = "Printing the bar number for the first measure"
+}
+
+\relative c' {
+  \set Score.barNumberVisibility = #all-bar-numbers-visible
+  \bar ""
+  c1 d e f \break
+  g1 e d c
+}
index 53768e2f15cded72569722033d51a735ad125428..7a87f41d7c9841c3bc612373de6696c3da408b44 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.61"
+\version "2.12.0"
 \header {
   lsrtags = "pitches,staff-notation"
   texidoc = "Quotations take into account the transposition of both
index b0e75a9d32bc8ad4837081f653dff7744c597d12..13da99eacd10ccbca658ef314dfac8e0e4b96b56 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.61"
+\version "2.12.0"
 \header {
   lsrtags = "staff-notation"
   texidoc = "The @code{quotedEventTypes} property determines the
index 7929c556b3d81a5ce71b527653fd82e360d608e8..b4dbed4e9879f1467f1802d8affd5d9246e57b53 100644 (file)
@@ -77,9 +77,9 @@ scale:
 "
 } % begin verbatim
 \relative c' {
-  \set Staff.keySignature = #`(((0 . 3) . ,SHARP)
+  \set Staff.keySignature = #`(((0 . 6) . ,FLAT)
                                ((0 . 5) . ,FLAT)
-                               ((0 . 6) . ,FLAT))
+                               ((0 . 3) . ,SHARP))
   c4 d e fis
   aes4 bes c2
 }
index 46197a7933c1f15379be99cf79c9c863bee9a7d8..a6dd6584b1a0d3b7562ddf51c28a46686052970d 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.61"
+\version "2.12.0"
 \header {
   lsrtags = "expressive-marks"
   texidoc = "If the note which ends a hairpin falls on a downbeat,
index e3ee5126a52bbf19914607767278a1f20604446d..5744ba37ae1b306c5da9c3d5c6f9fd6f4dcf0d17 100644 (file)
@@ -1,11 +1,13 @@
-\version "2.11.61"
+\version "2.12.0"
 
 \header {
   lsrtags = "rhythms"
   texidoc = "
 By specifying the context, the effect of @code{beatGrouping} can be
 limited to the context specified, and the values which may have
-been set in higher-level contexts can be overridden:
+been set in higher-level contexts can be overridden.  The
+@code{\\set} commands must be placed @emph{after} all @code{\\time}
+commands:
 "
   doctitle = "Specifying context with beatGrouping"
 }
@@ -22,7 +24,7 @@ been set in higher-level contexts can be overridden:
     \new Voice {
       \relative c' {
         \voiceTwo
-        \set Voice.beatGrouping = #'(1 3 3)
+        \set beatGrouping = #'(1 3 3)
         f8 f f f f f f
       }
     }
index ea6dab0a8afb4b4d1d56b4d8922ecd7eac401c20..5dbf28df0d15eddc30a0fd7e6a788212d3207cf1 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.61"
+\version "2.12.0"
 \header {
   lsrtags = "simultaneous-notes,tweaks-and-overrides"
   texidoc = "
index 1094712ec2f4a8030cdd51d4fe1248857f49a7af..f639c062223bbe71ef4436f64c4726f92c1e95cc 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.61"
+\version "2.12.0"
 \header {
   lsrtags = "paper-and-layout"
   texidoc = "A table of contents is included using
diff --git a/input/new/tick-bar-lines.ly b/input/new/tick-bar-lines.ly
new file mode 100644 (file)
index 0000000..d237aa6
--- /dev/null
@@ -0,0 +1,17 @@
+\version "2.12.0"
+\header {
+  lsrtags = "staff-notation"
+  texidoc = "
+'Tick' bar lines are often used in music where the bar line is used
+only for coordination and is not meant to imply any rhythmic stress.
+"
+  doctitle = "Tick bar lines"
+}
+\relative c' {
+  \set Score.defaultBarType = #"'"
+  c4 d e f
+  g4 f e d
+  c4 d e f
+  g4 f e d
+  \bar "|."
+}
index 070ba64fcfb4a83468e38db97e8cb563ba01c8ee..1ff8444f55d09245840be2912d5a2addecc70331 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.61"
+\version "2.12.0"
 \header {
   lsrtags = "pitches"
   texidoc = "This example uses some Scheme code to enforce enharmonic
@@ -31,7 +31,8 @@ In this manner, the most natural enharmonic notes are chosen.
 #(define  (naturalize-pitch p)
   (let* ((o (ly:pitch-octave p))
          (a (* 4 (ly:pitch-alteration p)))
-    ; alteration, a, in quarter tone steps, for historical reasons
+         ; alteration, a, in quarter tone steps,
+         ; for historical reasons
          (n (ly:pitch-notename p)))
     (cond
      ((and (> a 1) (or (eq? n 6) (eq? n 2)))
@@ -52,23 +53,23 @@ In this manner, the most natural enharmonic notes are chosen.
          (e (ly:music-property music 'element))
          (p (ly:music-property music 'pitch)))
     (if (pair? es)
-        (ly:music-set-property!
+       (ly:music-set-property!
          music 'elements
          (map (lambda (x) (naturalize x)) es)))
     (if (ly:music? e)
-        (ly:music-set-property!
+       (ly:music-set-property!
          music 'element
          (naturalize e)))
     (if (ly:pitch? p)
-        (begin
-          (set! p (naturalize-pitch p))
-          (ly:music-set-property! music 'pitch p)))
+       (begin
+         (set! p (naturalize-pitch p))
+         (ly:music-set-property! music 'pitch p)))
     music))
 
 naturalizeMusic =
 #(define-music-function (parser location m)
-                                       (ly:music?)
-                       (naturalize m))
+  (ly:music?)
+  (naturalize m))
 
 music = \relative c' { c4 d e g }
 
index fe01180448ea0d4186358500ce367df2da6339cc..fd3c776392839afaf36a6da7b813b10056e6ed1b 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.61"
+\version "2.12.0"
 
 \header {
   lsrtags = "rhythms"
index b6981653acdf5e51d0ae39c08ef925a15e3cadc9..77f574d359031841d7bd2f7625c85f8e35ba8e5e 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.61"
+\version "2.12.0"
 \header {
   lsrtags = "tweaks-and-overrides"
   texidoc = "
index 091796946560476c2c2100438e7494228831871b..e79f0c583156ba349f8ba26b40689504bafab0a2 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.61"
+\version "2.12.0"
 
 %% Edit this file using a Unicode aware editor, such as GVIM, GEDIT, Emacs
 
index 63394d44024ebb0b6498d684f1b423b246945428..1b054a756c2a40d6bfe4d4a8a612dca66740344d 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.61"
+\version "2.12.0"
 \header {
   lsrtags = "repeats,staff-notation,chords"
   texidoc = "By adding the @code{Volta_engraver} to the relevant
index 4b0f121a268c8a95c3e21bc3afbb3ced7aee93e2..a45dddec74b2de89683fefdcb9db09cd83acf312 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.61"
+\version "2.12.0"
 \header {
   lsrtags = "repeats,staff-notation"
   texidoc = "By adding the @code{Volta_engraver} to the relevant
index 73522a37d915dc8a89114f34d9ec136554a3b5ff..a12c28599cbb44c16aceed438b8c6644f9eac6c8 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.61"
+\version "2.12.0"
 
 \header {
   lsrtags = "repeats"
index 8f3d806ee743e551a21825488c1d4eee0b8ee52e..4ee27da27aa02f4b04e6c069509b82c4de3c400b 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.61"
+\version "2.12.0"
 
 \header
 {
index f458fdbf95075b4cda5af84ff84ef9fe2d215352..f05fa6a0a7eca4778d7ea80933e729acd3b91687 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.61"
+\version "2.12.0"
 \header {
     title      = "Puer natus est nobis"
     subtitle   = "Antiphona ad introitum VII"
diff --git a/input/regression/AAA-intro-regression.ly b/input/regression/AAA-intro-regression.ly
deleted file mode 100644 (file)
index 1ebe40a..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-\version "2.11.51"
-%% +.ly: Be the first .ly file for lys-to-tely.py.
-%% Better to make lys-to-tely.py include "introduction.texi" or
-%% other .texi documents too?
-
-
-\header{
-texidoc =
-
-#(string-append "@unnumbered Introduction
-
-This document presents proofs for
-LilyPond " (lilypond-version) ".  When the
-text corresponds with the shown notation, we consider LilyPond Officially
-BugFree (tm).  This document is intended for finding bugs and for
-documenting bugfixes.
-
-In the web version of this document, you can click on the file name 
-or figure for each example to see the corresponding input file.
-
-TODO: order of tests (file names!), test only one feature per test.
-Smaller and neater tests.
-")
-
-}
-
-%
-% make sure the .png is generated.
-%
-\lyrics { "(left blank intentionally)" }
-
diff --git a/input/regression/AAA-intro-regression.tely b/input/regression/AAA-intro-regression.tely
new file mode 100644 (file)
index 0000000..0353678
--- /dev/null
@@ -0,0 +1,16 @@
+@unnumbered Introduction
+
+This document presents proofs for
+LilyPond @lilypondversion).  When the
+text corresponds with the shown notation, we consider LilyPond Officially
+BugFree (tm).  This document is intended for finding bugs and for
+documenting bugfixes.
+
+In the web version of this document, you can click on the file name 
+or figure for each example to see the corresponding input file.
+
+TODO: order of tests (file names!), test only one feature per test.
+Smaller and neater tests.
+
+@unnumbered Regression test cases
+
diff --git a/input/regression/SConscript b/input/regression/SConscript
deleted file mode 100644 (file)
index 708fea8..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-# -*-python-*-
-
-Import ('env', 'collate')
-collate (title = 'LilyPond Regression Tests')
index f026960faa9edfc8c91a54a5a3f7b559574e568f..47fe5bd22abeb973f3edc9230f7a09ef1656b642 100644 (file)
@@ -6,7 +6,7 @@ are collected here.
 "
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 \relative c'' {
       \time 3/4
index 9a6fb0d3507174ac7ef8c36101b7e62c04f4827a..6f4bc120affd5909bf32548d81fa8acf7247a6a9 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
   texidoc = "When a tie is broken, the spacing engine must consider the
index c622833bfd4884c873d69190656266e818db7f75..87c7bda814908a879a55f6e676c8374532c73ca8 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 \header {
 
 texidoc = "Cautionary accidentals may be indicated using either
index d1e287176b953bc3355ed585ab60050971b1dceb..c927e693f723a7b6515d9fa08b3365a6cf13f037 100644 (file)
@@ -7,7 +7,7 @@
 }
 
 
-\version "2.11.51"
+\version "2.12.0"
 \new Staff \relative c' {
     \clef treble
     cis dis fis
index 5b3131cfa73887c389bac3b148a53770f1835eae..062e1f8cf4529ea1fad172850ab55fdef8517e17 100644 (file)
@@ -2,7 +2,7 @@
   texidoc = "accidentals avoid stems of other notes too."
   }
 
-\version "2.11.51"
+\version "2.12.0"
 
 \paper {
   ragged-right  = ##t
index 1c021d57fed3ef7a706615e1389e8d2d4e608db0..9da5027861251108ae49c5bff01c8bb3eb84c20d 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.61"
+\version "2.12.0"
 \header {
 
 texidoc = "Several automatic accidental rules
index 6188420e9f7a47b25ccecf682224446feb6001f3..3d91d10f1101406a520a8c7255b5106cbf97043f 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 \header {
        texidoc = "If two forced accidentals happen at the same time, only one
        sharp sign is printed."
index e5c24ddd4147315454f25e331c977c2bd8a79e7b..0511b851635ac1451eda9cf1b381d65285c27dcd 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.53"
+\version "2.12.0"
 
 \header {
   texidoc = "Cautionary accidentals applied to tied notes after a
index 5d553f069c9afcd6427af4e6e194b762a8a145ad..e28d87367219185958c3fd455030443fd04273d0 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
   texidoc = "Accidentals can be forced with ! and ? even if the notes are tied."
index 9cc5807d503c9b8290aa2d27d9c11e664bb11312..51dfe52819453d6607ed01d0811b112d11e3dfa4 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
 
index f95013453cf2caff4183cdf8baa25ff45ab2a218..129f579599df7ed2653145191def40ddc913a72b 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
   texidoc="
index 1d09a342feeba5a602c49da05e6794dbdd5ef8d9..1c85862ed72f899fa650b549033e44d7d5a28b10 100644 (file)
@@ -6,7 +6,7 @@ accidental."
 
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 \layout
 {
index 9bd279aa55f12e90ff07ee58e6b9ebcfcf5be199..a7ed3c6420e4d6ada428732b608805bdf81ddd2b 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
 
index 82857bdb0b1d4a95bffff27f493223d12d6b3db7..165e4c15a36f92b1473a033068f6defdbb6ef9ad 100644 (file)
@@ -3,7 +3,7 @@
   texidoc = "Quarter tone notation is supported, including
     threequarters flat."
 }
-\version "2.11.51"
+\version "2.12.0"
 \layout { ragged-right = ##t }
 
 \relative c'' {
index 5776a79ea88ff64af868ee190985e40ff9b20cae..b69bfe67dd28680a71fcea9287b18ea98c4e7450 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 \header{
   texidoc="
 A sharp sign after a double sharp sign, as well as a flat sign
index 102de5fac3f29999c340b0dfabbd912b76d8c0e3..3e0ae0c72eebcaf42b043f9740bbd86f21078a03 100644 (file)
@@ -7,7 +7,7 @@ denoting Musica Ficta."
  
 }
 
-\version "2.11.51"
+\version "2.12.0"
 \paper {
   ragged-right = ##t
 }
index 31c40b402e3694c54258e0f9cac1bade2b153d59..04a4b372d1fb5e6b82325fd4f661d392072ac493 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
   texidoc = "The second and third notes should not get accidentals,
index 831a84cc013962722a530670fe6e4add20461f53..a9857e4026a533d088877cfca0f667f265d7998c 100644 (file)
@@ -4,7 +4,7 @@ texidoc = "Tied accidentaled notes (which cause reminder accidentals) do not
 wreak havoc in the spacing when unbroken."
 }
 
-\version "2.11.51"
+\version "2.12.0"
 \layout {
   ragged-right = ##t
 }
index 5896571607964c308cdfbdbefc73af9ef608e74d..a1be03b6548e186e7f554132b9f1467b97d0d246 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 \layout { ragged-right = ##t }
 
 \header{
index 5eb60e071be3d128b353b31e152c5ecc9819910b..587ef751fd7da6e925ce8eeb4747623dc9f82942 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 
 \header{
   texidoc="
index 25d8b9a7e8ffd8e20dba6e3522eca2d038202eb3..a5bec4114ff88aaac93f2ed5c7d799cf9e1bac02 100644 (file)
@@ -3,7 +3,7 @@
 anywhere in the vertical alignment. "
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 \paper {
   ragged-right = ##t
index 0fee0e483a79a0e2337e68a26ef0c4026edd00c8..b176e931cec7ffe5dd1323d379e951e1694c23d2 100644 (file)
@@ -6,7 +6,7 @@
 
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 \book {
   \score {
index 542957ab3c4e495c12264db2192dc0ce074c02bb..2140e3754ef221bfe850c00c7e28daa33b1f9cc1 100644 (file)
@@ -16,7 +16,7 @@ setting properties on individual object. @code{\override} in a
 
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 #(set-global-staff-size 13)
 
diff --git a/input/regression/ambitus-percussion-staves.ly b/input/regression/ambitus-percussion-staves.ly
new file mode 100644 (file)
index 0000000..5901276
--- /dev/null
@@ -0,0 +1,12 @@
+\version "2.12.2"
+
+\header {
+  texidoc = "Adding ambitus to percussion contexts does not cause
+crashes, since the @code{Ambitus_engraver} will only
+acknowledge pitched note heads."
+}
+
+\new DrumStaff \with { \consists "Ambitus_engraver" } <<
+  \new DrumVoice \drummode { \voiceOne cymr8 cymr }
+  \new DrumVoice \drummode { \voiceTwo hhp4 }
+>>
index e47ee605157edfae6e0326089c9fa0087ef65ac6..91b2d86d979f764b2f3d38e38c2217ca271667ac 100644 (file)
@@ -2,7 +2,7 @@
   texidoc = "Ambituses use actual pitch not lexicographic ordering."
   }
 
-\version "2.11.51"
+\version "2.12.0"
 
 \paper {
   ragged-right=##t
index d0099af68ab49109af078fb1dd4a71ce0a03135a..f53e3e987b8824fb6852256b9165f2a8bc139680 100644 (file)
@@ -6,7 +6,7 @@ signature. @code{AmbitusNoteHead} grobs also have ledger lines.
 
 "
 }
-\version "2.11.51"
+\version "2.12.0"
 
 \layout {
     ragged-right = ##t
index c5c3ac7f474bf79e40d4f759438ae253d98dd45e..afa55683f3ac68de3fa05d86946723bca280cbbf 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 
 
 \header {
index 1ace6dc24f0f167b16808778213fcb586f387ca9..d107e4a42f3263d895d7c798929280efdcfd00b3 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
   texidoc = "The @code{\applyOutput} expression is the most flexible way to
@@ -9,39 +9,30 @@ position.
 "
 }
 
-\layout {
-  ragged-right = ##t
-}
-
 #(define (mc-squared gr org cur)
   (let*
-   (
-     (ifs (ly:grob-interfaces gr))
-     (sp (ly:grob-property gr 'staff-position))
-   )
-   (if (memq 'note-head-interface ifs)
-    (begin
-     (ly:grob-set-property! gr 'stencil ly:text-interface::print)
-     (ly:grob-set-property! gr 'font-family 'roman)
-     (ly:grob-set-property! gr 'text
-      (make-raise-markup -0.5
-       (case sp
-       ((-5) (make-simple-markup "m"))
-       ((-3) (make-simple-markup "c "))
-       ((-2) (make-smaller-markup (make-bold-markup "2")))
-       (else (make-simple-markup "bla"))
-      ))))
-  )))
-
-\context Voice \relative c' {
-  \stemUp
+    (
+      (ifs (ly:grob-interfaces gr))
+      (sp (ly:grob-property gr 'staff-position))
+      )
+    (if (memq 'note-head-interface ifs)
+      (begin
+        (ly:grob-set-property! gr 'stencil
+          (grob-interpret-markup gr
+            (make-raise-markup -0.5
+              (case sp
+                ((-5) (make-simple-markup "m"))
+                ((-3) (make-simple-markup "c "))
+                ((-2) (make-smaller-markup (make-bold-markup "2")))
+                (else (make-simple-markup "bla"))
+                ))))
+        ))))
+
+\new Voice \relative c' {
   \set autoBeaming = ##f
 
-  <d f g b>8
+  <d f g b>8
 
-    \applyOutput #'Voice #mc-squared
-    <d f g b>
-  }
+  \applyOutput #'Voice #mc-squared
+  <d f g b>8
 }
-
-% EOF
index 7e4275c1a886a3422613eae560a565ea5b8b6597..3446871a6520325913bfb517df907ebfd631c134 100644 (file)
@@ -1,7 +1,7 @@
 \layout { ragged-right= ##t }
 
 
-\version "2.11.51"
+\version "2.12.0"
 \header{
   texidoc="
 A square bracket on the left indicates that the player should not
index c95c6111f381fb315ceb402879774ac8fea073b6..ba82ac1293d40f034d71303d316feea39d798edd 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header  {
 texidoc = "Arpeggio stays clear of accidentals and flipped note heads."
index ec47ee1181137c3f8649168b1721e60193f2801c..7b1007791174456d6c17091a8e7d7c0bda0d3ee2 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.62"
+\version "2.12.0"
 
 \header {
   texidoc = "Arpeggios do not overshoot the highest note head.
index 50b4d4d96678f3e3199c5065e0d8aa1e10260923..dd43018272fe8a0bb048a7c4ef841553d74ecc51 100644 (file)
@@ -6,7 +6,7 @@
 
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 \relative c' {
   \override Arpeggio #'stencil = #ly:arpeggio::brew-chord-slur
index 561894577258e0d877e9babb1b3508759f1acc3b..03712af013df184831488b7a2cc2aa2f4f01a836 100644 (file)
@@ -2,7 +2,7 @@
   texidoc = "Span arpeggios within one staff also work"
   }
 
-\version "2.11.51"
+\version "2.12.0"
 \layout { ragged-right = ##t }
 
 \new PianoStaff <<
index 03064d23f19a8d809ea4e16606cb633b1633b2b7..abe2054cd531eb5fb91475bc33d815179a0a992c 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 \header{
   texidoc="
 Arpeggios are supported, both cross-staff and broken single staff.
diff --git a/input/regression/articulation-snappizzicato.ly b/input/regression/articulation-snappizzicato.ly
new file mode 100644 (file)
index 0000000..90ed805
--- /dev/null
@@ -0,0 +1,6 @@
+\header {
+  texidoc = "The snappizzicato articulation adds a snappizzicato sign to the note."
+}
+\version "2.12.3"
+
+\relative c'' { c4\snappizzicato }
index 7abc308b5c08f1219a1a27b93b1f4f1f67932f7f..2d5d2f7423b63525683fdda85d0c391f21340993 100644 (file)
@@ -2,7 +2,7 @@
   texidoc = "Augmentum dots are accounted for in horizontal spacing."
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 \include "gregorian.ly"
 \score {
index db1a655191f07221c88f460391c67eddb5c5fae9..19ec38d721e72feb78730aad1c5331714c22d335 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 
 \header{
 texidoc="No auto beams will be put over (manual) repeat bars."
index a1cd104fac99d3f58f6657397302988bb2c6c57c..afa8b9916077b17219ee4d9202d9146814dccfc3 100644 (file)
@@ -8,7 +8,7 @@ beaming pattern related functions at the start of an autobeam."
 }
 
 
-\version "2.11.51"
+\version "2.12.0"
 \paper { ragged-right = ##t }
 {
   \time 2/4
index 1020d4216ac39ab6fe99bfea18a3e00f49d7b239..1a9761d2db99a10db4527e8e745b022bb0fb272a 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.57"
+\version "2.12.0"
 \header {
 
   texidoc = "Autobeaming will break beams according to beatGrouping
index 449a751f2833e7cb979a97075085387834c04311..e0656c40ad045e9d4f141a90546f71dbce72b59e 100644 (file)
@@ -6,7 +6,7 @@
 
     }
 
-\version "2.11.51"
+\version "2.12.0"
 \layout {
     ragged-right = ##t
 }
index 1467c06dd33a10fb4a344aaa9dfdd0d317f9c70b..01cee7f8311bd2dde8f1ed27b3e4749136aded3b 100644 (file)
@@ -4,7 +4,7 @@
   texidoc = "Automatic beaming is also done on tuplets."
 }
 
-\version "2.11.51"
+\version "2.12.0"
 \layout { ragged-right= ##t }
 
 \relative c''{
index 178c2b682136a8c6009cc1c9273a364031305f17..bf62d315990b8c522b9fe78bb016100c7bce00c1 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
   texidoc = "Tuplet-spanner should not put (visible) brackets on
index a5d5c06b303c5f02c623c96c2e88cd9b0b48967f..44e5e529ecc5455a64ee20975ac785e9a33711f2 100644 (file)
@@ -1,9 +1,9 @@
 \header {
-  texidoc="Beams are place automatically; the last measure should have a single 
+  texidoc="Beams are placed automatically; the last measure should have a single
 beam."
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 \layout  {
   ragged-right = ##t 
index 9b294e03820c9f4e740523e31ebe767df9913818..8cbaa3db20fcaed8dc203f00e52dd7d11ff201c6 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
 
index fdd5567c42970ea2ad45a992ce31ea5220c2f119..3806b37c02195df757ab6ce431667efc6e20fb4c 100644 (file)
@@ -2,7 +2,7 @@
   texidoc = "Excercise all output functions"
 }
 
-\version "2.11.53"
+\version "2.12.0"
 
 \paper { ragged-right = ##t }
 
index 59cef068bce4b3a4e9e99182471f4c5ed0233e2a..69116f1b3839884351cfeb8fcf8e52ff91e94bc6 100644 (file)
@@ -5,7 +5,7 @@
 
 \include "typography-demo.ly"
 
-\version "2.11.51"
+\version "2.12.0"
 
 #(define outname (ly:parser-output-name parser))
 
index dadbe95d69cb9ed15e1ce581533694c3a75c3d9c..a60f89e57c1854641ed7f57a283a9043de41bbbf 100644 (file)
@@ -5,7 +5,7 @@
 with lines and explanatory text added."
   
 }
-\version "2.11.51"
+\version "2.12.0"
 
 \layout{ ragged-right = ##t }
 
index cbf52ecbe0ce5d90170d529a995b2d63b3fd99ff..7a111695373469c301f08a7bc9e50be2fad101a0 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 \header {
     texidoc = "The meaning of @code{|} is stored in the
 identifier @code{pipeSymbol}."
index a1b0ec3288e3da57b9c9a1c53d9db813bd0fe9b1..4267f02490ff1f8a1b5b3ddd310f726c263c5d9a 100644 (file)
@@ -3,7 +3,7 @@
   lines exactly. Dashed barlines between staves start and end on a
   half dash precisely." }
 
-\version "2.11.51"
+\version "2.12.0"
 
 \paper {  ragged-right = ##t }
 
index df599712a63dfbebe54f335569570ecf4446a165..f662c3c9e43f59e75dc1307b7f26e4e07b7762bd 100644 (file)
@@ -4,7 +4,7 @@
 
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 \paper {  ragged-right = ##t }
 
diff --git a/input/regression/bar-line-thick.ly b/input/regression/bar-line-thick.ly
new file mode 100644 (file)
index 0000000..09f165f
--- /dev/null
@@ -0,0 +1,15 @@
+
+\header { texidoc = "A thick bar line is created by \bar \".\", which is consistent with e.g. \bar \"|.\"" }
+
+\version "2.12.0"
+
+\paper {  ragged-right = ##t }
+
+\relative \new StaffGroup <<
+  \new Staff {
+    c4 \bar "." c }
+  \new Staff {
+     c c
+  }
+>>
+
diff --git a/input/regression/bar-line-tick.ly b/input/regression/bar-line-tick.ly
new file mode 100644 (file)
index 0000000..e0f7642
--- /dev/null
@@ -0,0 +1,16 @@
+
+\header { texidoc = "A ticked bar line is a short line of the same length as a
+  staff space, centered on the top-most barline." }
+
+\version "2.12.0"
+
+\paper {  ragged-right = ##t }
+
+\relative \new StaffGroup <<
+  \new Staff {
+    c4 \bar "'" c }
+  \new Staff {
+     c c
+  }
+>>
+
index 82bfb1581d20d47ae848ef24c39683816cc7559a..1711e9a9ad544d3dd5aa1d3b1525073b8a2f9803 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
 
index d7b3c5d498eece7cd52a60482361d58a9f46c4ec..263cbe374d786bbf4975e61e9e28814c04328a14 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 \header{
 texidoc="
 
index 5075ee6bd5339af09dcb7ba5f9b46d708142543a..c607d4e1fd3fa6fb96a678c87d35a58df616a5a4 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 
 \header
 {
index 0bdc747c26f8ae11f314753e5b46c018dbe86af8..8e90e1d32514661ec80c1607146b14e6e07386fc 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 \header{
   texidoc = "@cindex Beaming Presets
 There are presets for the @code{auto-beam} engraver in the case of common
@@ -8,11 +8,12 @@ time signatures. " }
 \relative c''{
 
   \time 1/2
+
   c8 c c c
   c16 c c c c c c c
   c32 c c c c c c c c c c c c c c c
   \time 1/4
-  c8 c 
+  c8 c
   c16 c c c
   c32 c c c c c c c
   \time 1/8
@@ -35,6 +36,7 @@ time signatures. " }
   \time 3/2
   c8 c c c c c c c c c c c
   c16 c c c c c c c c c c c c c c c c c c c c c c c
+  c32 c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c
   \time 3/4
   c8 c c c c c
   c16 c c c c c c c c c c c
@@ -51,11 +53,21 @@ time signatures. " }
   c8 c c c
   c16 c c c c c c c
   c32 c c c c c c c c c c c c c c c
+  \time 4/16
+  c8 c
+  c16 c c c
+  c32 c c c c c c c
   \time 6/8
   c8 c c c c c
   c16 c c c c c c c c c c c
+  c32 c c c c c c c c c c c c c c c c c c c c c c c
   \time 9/8
   c8 c c c c c c c c
   c16 c c c c c c c c c c c c c c c c c
+  c32 c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c
+  \time 12/8
+  c8 c c c c c c c c c c c
+  c16 c c c c c c c c c c c c c c c c c c c c c c c
+  c32 c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c
 }
 
index 0468a4e70e422885d5b3ed55f32c131d620f270d..fd29e259095358dd085ae5ace0939ee842abb803 100644 (file)
@@ -3,7 +3,7 @@
   beamlets on the same height."
   
 }
-\version "2.11.51"
+\version "2.12.0"
 
 \paper {
   raggedright = ##t
index 6a6e2b841b509141f77e2fed1b8e3ae1849a0ac8..7c899f343b0688f7ca4297f03ddd9bea60113035 100644 (file)
@@ -3,7 +3,7 @@
   texidoc = "Beamlets in grace notes remain readable."
 }
 
-\version "2.11.51"
+\version "2.12.0"
 \layout {
   ragged-right = ##t
 }
index a9c22a44779f637a9817ab9b83162dd01f26738b..e3af9219b52c7c851e42343dfdf0f43b2f86f18f 100644 (file)
@@ -6,7 +6,7 @@
 \layout {
   ragged-right = ##t
   }
-\version "2.11.51"
+\version "2.12.0"
 
 
 \relative c'' {
index 80106ea96da74522a1f377e784f4bd2ff182776d..c249e181524c54c74135772d1b928d0c2b7c2da6 100644 (file)
@@ -5,7 +5,7 @@
   
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 \new Staff \with {
    \remove Bar_engraver
index 5b36f57f450a0319f34b9bb5212b0cc6335025e1..fffd0c4ff9daadb67aa35c8d5a8cce5951d7ae85 100644 (file)
@@ -4,7 +4,7 @@
 "
 
 }
-\version "2.11.51"
+\version "2.12.0"
 \layout { ragged-right= ##t }
 
 \relative c''  {
index 1634751373bd68e9ad2cb13863264dfa15345d1c..6d202523f47f9ba50e416cba1e869c092e109159 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 \header{
 
   texidoc="Simple beams on middle staffline are allowed to be
index 3dfb402feeb86993180cde41b3b12d0f24062b70..14e679083249979eabf39599d8b3f299794a0f7d 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 
 morgenliedBeam = \relative c'' \new Voice{
index 9c59b0a7cd78966c62085e428ebc9a078ffec394..135995d63f887c93ee8a63a2080e338d28d3e83b 100644 (file)
@@ -2,7 +2,7 @@
     texidoc = "Beams that are not strictly concave are damped
  according to their concaveness. "
 }
-\version "2.11.51"
+\version "2.12.0"
 \layout {
     ragged-right = ##t
 }
index 5d15aa480e6c06f3110b45fc09973cd9671b03c2..093f30d918dd1819072b10ff8be7997fb69b2d3c 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 \header{
 
   texidoc = "Fully concave beams should be horizontal. Informally spoken,
index bab2d49ab31407f0438f45afde0ae7095a69da47..3c9b1650fa9a9eb3495b750a798b1dde61d38cb4 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 
 \header{
 
index 620448b55b854334a565e6bee032cdec13783d57..772075495bdc2d0cc42759b36bc3aaf9741dbece 100644 (file)
@@ -7,7 +7,7 @@ staves."
 }
 
 
-\version "2.11.51"
+\version "2.12.0"
 
 \new PianoStaff <<
    \new Staff = RH {
index ee6a3c078d0dc00e700dd0cfe447211d4cbc7122..61be2c5242a17f6451795e8677a7344284ca2ccf 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 \header {
     texidoc = "Cross staff  (kneed) beams do not cause extreme slopes."
 }
index 52bb8d987dfc7267d488535f4ea62c3ff43a36fd..0b711c7453f0f103f6b1d5af8f9a9f6f6216d36e 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 \header{
 texidoc="
 Beams can be typeset over fixed distance aligned staves, beam
index 38568cab400b5cf07f598c5d3207df33e1855d0a..2feffff8ccb52789b940fb35e77719a3d9a107fa 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 \header { texidoc = "@cindex Beam Damp
 Beams are less steep than the notes they encompass. " }
 \layout{
index 031324629535410053aa0d288fb43779b37d781d..9ec0c2bb1b90c16e09fd58bd660c538e9d0e4fd6 100644 (file)
@@ -1,13 +1,12 @@
-\layout{ ragged-right = ##t}
+\version "2.12.0"
 
-\version "2.11.51"
-
-\header{
-  texidoc="Beamed stems have standard lengths if possible. Quantization is switched off in this example."
+\header {
+  texidoc = "Beamed stems have standard lengths if possible.  Quantization
+is switched off in this example."
 }
 
-\relative c'{
-  \override Beam #'position =
+\relative c' {
+  \override Beam #'positions =
   #(ly:make-simple-closure
     (ly:make-simple-closure
      (list chain-grob-member-functions
@@ -15,8 +14,7 @@
       ly:beam::calc-least-squares-positions
       ly:beam::slope-damping
       ly:beam::shift-region-to-valid
-      ly:beam::set-stem-lengths
     )))
 
-  f4  f8[ f]  f16[ f]  f32[ f]  f64[ f]  f128[ f] 
+  f4  f8[ f]  f16[ f]  f32[ f]  f64[ f]  f128[ f]
 }
index d3a8e53bd212120e96574cd754aaa8ae0cf6388a..61462dd7b846773ebdf368a03bf21d78277e2562 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 \header{
 texidoc="
 Beams should behave reasonably well, even under extreme circumstances.
index 56242f4bdc6ed5c9b46ed29f26ab2179d4953880..58b602c1496968286d24172ffb23976660797f68 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 \header {
 
   texidoc="In feathered beams, stems in knees reach up to the feathered part correctly.
index 18f81907c098572eacbf4d0b01e8e8f95168bcc0..cf40c01aaa3a59d9a961a8f9c4f1d067930f5136 100644 (file)
@@ -6,7 +6,7 @@
   
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 \paper {
   ragged-right = ##t
index 3197bdbaf578573b44d4c69f6d00152ff0f7597c..01fcc2deda092905f1571c4e4166ddeefe5e337d 100644 (file)
@@ -3,7 +3,7 @@
   texidoc = "Even very flat but slanted patterns should give slanted beams. "
 }
 
-\version "2.11.51"
+\version "2.12.0"
 \layout{
   line-width = 15\cm
   debug-beam-scoring = ##t
index 1f3c60c9c4b4dfd322a0d72c38728362ad4639c6..14d33b001dbbee8d91b255975dcc1c5ac65eba1b 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
     texidoc = "In French style beaming, the stems do not go between beams."
index ded6e257e856393c6ce24184407ce39539652ca8..356b0d0db55a0a19105c6d8b32096f41062cc97c 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 \header {
 
   texidoc=" Funky kneed beams with beamlets also work. The beamlets
index 3f5dd26ae0066f41d6c8c7a910052c30ea02dbbf..6bff9fd2cb9a34923c0af6cb8c3045fc9ce05742 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 \header {
   
   texidoc = "In complex configurations of knee beaming, according to
index 4f858a5220e9f9ef8aad0f428be8822bc4d540f4..0c26f0db9733e808c0923aa595c91a85cf3b9de1 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 \header{
        texidoc="@cindex Beam Isknee
 
index 55e0dbf8ce5444d4a4189e882961f7eaf561c940..1c8048e3d91f547ef261ed122c1a83eb4365a5a3 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 \header {
 
     texidoc = "Point-symmetric beams should receive the same
index 5c1f22bbda4389ecaf74101ebf31057c84f40364..768930adb01b866c7b094c507cb285081d920acf 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 
 \header{
   texidoc="
index b606578381f59592591ca651beb9d7432ddf8de6..744c6632b36bf28065956b99bd0f946fca5435bb 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 
 
 \header {
index 1aa01eb0106e1d109bbc0db7a983ff98e34f0cff..861fbd0bca57bb87510361c30bb68d25d2d67507 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 \header {
 
   texidoc = "Kneed beams (often happens with cross-staff beams)
index b8bda7a76761e5535cf34299f476cf7af4808878..ddf2cc147ade65c66940adfd3e7a9fb36d5810fe 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
   texidoc = "When a beam goes over a rest, there should not be any 
index 6647baebc2f7cec8eab4fd2b065e88e0b772864f..358dc1894893a1a826ff09c2cec41bd2d1484b14 100644 (file)
@@ -3,7 +3,7 @@
 
 }
 
-\version "2.11.51"
+\version "2.12.0"
 \paper {
   ragged-right = ##t
 }
index dcb6c6969c8a3c2ebfad63ba932093a49845c304..8a01631a987119ef36c1cd5c384748f830c9b133 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 \header {
   texidoc = "Explicit beams may cross barlines. "
 }
index 0b8af33de1efe10b7383dc3758aa74b202c0200b..174a7dfe8213baf1e3260d43d290ab318350ab63 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 \header{
 
   texidoc=" Beams on ledgered notes should always reach the middle staff
index 9ba075dee414039753ba6799645305057cdd3d66..33b37bd29a1c497910a13fd79cc6788a811ea805 100644 (file)
@@ -6,7 +6,7 @@
   
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 \layout  {
   ragged-right = ##t
index ee38515efa227e9a9d826d83cc437b1823b501f8..e0c444697c8f3c6036a3455aa0ed7effbfc76b9d 100644 (file)
@@ -8,7 +8,7 @@ texidoc = "Stem lengths take precedence over beam quants: `forbidden'
 
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 \relative c''{ 
   \time 3/8
index 0337cc7d401ce240e69d2c5ac5188554a7d9380e..91f7d2239363d23dbbaef6a29a2430474aa2f9fd 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 
 \header{
 
index 807e6c0a9d6dce7f58b2ba9fdf83bb691f815e9f..ac1d57819d9daedacf59e06f2f01332fd7a3f1ec 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 \header
 {
   texidoc= "Quarter notes may be beamed: the beam is halted momentarily."
index 8a5fbbc50e3721125296a094fc858c1251657c29..e02f4bbaf0b94d378ec7b16930faae3330f60213 100644 (file)
@@ -3,7 +3,7 @@
   texidoc = "The number of beams does not change on a rest."
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 \layout { ragged-right = ##t }
 
index 7c719591445f0643d23a4097092d748e86f02fba..1971bd8fd13f547cdacbc10b4233ab582fc4de88 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 
 \header{
 
index 5fee53bc3800f0d013c09001fd7709d0ef04e1bc..6cd91987a3c88d6ef9956e3cf8be7ce37b84e8ae 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 
 \header{
   texidoc="Beams in unnatural direction, have shortened stems, but do not look too short."
index f4f2684f568a91d5a7ab73484930b9db7e6f4ba2..742e4f0e22ab5941fbdb1c2f775e45e10be0ef1f 100644 (file)
@@ -4,7 +4,7 @@
   clip-edges is switched off automatically."
 
 }
-\version "2.11.51"
+\version "2.12.0"
 
 \relative c' {
   d16[]
index f8dbbba021b58ecce3bda4c6bbdf487882fa1edc..002e3e9239627dc66cba4cbb1025bc227c2e293d 100644 (file)
@@ -6,7 +6,7 @@ as invisible stems."
 
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 \layout {
   ragged-right = ##t
index 40d6a37665e6a279a464cd1b139a25e6ddb08add..f7477b4b71c8ecf2cc158174e559b4889608c495 100644 (file)
@@ -6,7 +6,7 @@
 \layout {
   ragged-right = ##t
   }
-\version "2.11.51"
+\version "2.12.0"
 
 \relative c'' {
   \override Stem #'max-beam-connect = #1
index ddc3cedf638629ef2f7b60b6a4b0daf1f267307a..907edf10f43672073725ac0979c9e3246aa61981 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
 
index 652f03db418f652dd9f23d1bf7fc648955bb8712..d982b35b9fafd75b769fde64270c5a68aa921e8d 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 
 \header{
 texidoc="
index 8b26f6a4634239cc3a236c002afad86d53a3c94e..d49f4153b5dd9014db8cf1cc44a9cd2f641ec601 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 \header {
     texidoc = "Beaming can be also given explicitly."
 }
index 1f3a0a12ae8a207d9c209e7567fed5bf8bae811b..c3213befe07995b5f9af02c4c405616fcdbe04f4 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
 
index 202d2b7b1b41c887fb6e695b1439e925db35cbde..0e1b239d8de3f1e034b69f093c68be8f8f921cc3 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 \header {
   texidoc  = "Bends avoid dots, but only if necessary."
 }
diff --git a/input/regression/bookparts.ly b/input/regression/bookparts.ly
new file mode 100644 (file)
index 0000000..a814fb5
--- /dev/null
@@ -0,0 +1,39 @@
+\version "2.12.0"
+
+\header {
+  texidoc = "A book can be split into several parts with different paper settings,
+using @code{\\bookpart}.
+
+Fonts are loaded into the top-level paper.
+Page labels are also collected into the top-level paper."
+}
+
+#(set-default-paper-size "a6")
+
+#(define-markup-command (roman-page-number layout props) ()
+  (let ((page-number (chain-assoc-get 'page:page-number props)))
+    (interpret-markup layout props (format #f "~@r" page-number))))
+
+\book {
+  \tocItem \markup "First part"
+  \header { title = "Book with several parts" }
+  \markup { First part }
+  \markup { with default paper settings. }
+
+  \bookpart {
+    \paper {
+      left-margin = 20\mm
+      right-margin = 20\mm
+      line-width = 65\mm
+      evenHeaderMarkup = \markup \fill-line { \roman-page-number "SECOND PART" \null }
+      oddHeaderMarkup = \markup \fill-line { \null "SECOND PART" \roman-page-number }
+    }
+    \tocItem \markup "Second part"
+    \markup \justify { Second part, with different margins and page header. }
+    { c' }
+  }
+
+  \tocItem \markup "Third part"
+  \markup { Third part }
+  \markuplines \table-of-contents
+}
index 385838b50e8c4d00de7d180dbc7973d81a82bc86..79a1237ac7e4ad943b649087f6d7bbd596ec31be 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
   texidoc = "The default callback for break-align-anchor in clefs and time/key
index 9e237a5f575b20881ccc4c0888e01df7b27cf8c6..1161967d8dbe6998fc2221c21ceaeae3069abd6d 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
   texidoc = "The break-align-anchor property of a break-aligned grob gives
index af83a3e13402efc0c38212dcdac20c83e982a4f0..afce0368a2b2eb9c48286345185592caade7c2b0 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 
 \header{
   texidoc="
index e2b2892e0322df318abb1d9650a1c0d148c1dcc0..3115d6a625fd42a068b0d7ef4006d6aeb97f0023 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header{
   texidoc="
index 181a67656d341bf7b553efaf474f8b7c609ad93e..763529a44cef5020d3debee2ea509c08059a37d7 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 \header{
   texidoc="
 Breathing signs are available in different tastes: commas (default),
@@ -10,46 +10,34 @@ ticks, vees and `railroad tracks' (caesura)."
   %% Modern notation:
   \new Staff {
     \relative c'' {
-      \key es \major \time 3/4
-
-      %% this bar contains no \breathe
-      <<
-       { g4 as g } \\
-       { es4 bes es }
-      >> |
-
       %% by default, \breathe uses the rcomma, just as if saying:
-      %% \override BreathingSign  #'text =
-                               %       #(make-musicglyph-markup "scripts.rcomma")
-      <<
-       { g4 as g } \\
-       { es4 \breathe bes es }
-      >> |
+      %% \override BreathingSign #'text =
+      %%   #(make-musicglyph-markup "scripts.rcomma")
+      %%
+      c4 c \breathe c c |
 
       %% 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 =
-      #(make-musicglyph-markup "scripts.rvarcomma")
-      <<
-       { g4 as g } \\
-       { es4 \breathe bes es }
-      >> |
+      %%
+      \override Staff.BreathingSign #'text =
+        #(make-musicglyph-markup "scripts.rvarcomma")
+      c4 c \breathe c c |
 
       %% wedge
-      \override BreathingSign  #'text =
-      #(make-musicglyph-markup "scripts.upbow")
-      es8 d es f g8 \breathe f |
+      %%
+      \override BreathingSign #'text =
+        #(make-musicglyph-markup "scripts.upbow")
+      c4 c \breathe c c |
 
       %% caesurae
-      \override BreathingSign  #'text =
-      #(make-musicglyph-markup "scripts.caesura.curved.curved")
-      es8[ d] \breathe
-      \override BreathingSign  #'text =
-      #(make-musicglyph-markup "scripts.caesura.curved.straight")
-                       es[ f] \breathe g[ f] |
-      es2 r4 \bar "||" \break
+      %%
+      \override BreathingSign #'text =
+        #(make-musicglyph-markup "scripts.caesura.curved")
+      c4 c \breathe c c |
+
+      \override BreathingSign #'text =
+        #(make-musicglyph-markup "scripts.caesura.straight")
+      c4 c \breathe c c |
     }
   }
 }
index 35c5766443f973eebcb4906b20863e43045e6342..163ea98ee9f5ca600ea323d82babe258d429a27b 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header{
   texidoc="Property chordChanges: display chord names only when
index 42fc68a224cf9d3eaac5e035ff45a3a7cecabb7f..d72b975e68f975f243e43a12a81dfd2b772daba1 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51
+\version "2.12.0
 
 \header {
 
index d32b90c478ee069937402e021af01a3a0c933c1c..e5e6dc826ae4c7460cd53dc8ac715e8ec07449c7 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 
 \header {
index 4b59dbb2c7555316b7e49d6a73b818b658ed07e3..86dc2e5159b7f886f4e6b49983fed966c9c4f73d 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 \header {
 
     texidoc = "The property @code{chordNameExceptions} can used
index dd35364dcc76f40753f8f230041ce6704a876041..ac280c4043d462780e84151417296b42e86acef0 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 \header {
     texidoc = "The layout of the major 7 can be tuned with
 @code{majorSevenSymbol}."
index 8133c3f4700814cea533a6f93df7f0568ab9445a..a09642746ecdfcf3cbd8831e59f5f697d55b604f 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
 
index 9f2a921953bdf7afeed41ef356ac1727e6897aa5..e446afa4fb0b07789522c2ff069d2f9d2780fa04 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 \header  {
     texidoc = "@cindex Chord Names German
 The english naming of chords (default) can be changed to german 
index 337d1f8a119c5b3bf3014ea90399ef823801cc3d..b95cde22f0bfddcca6f64734cb8270f52294343f 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 \header {
 
 texidoc = "Scripts can also be attached to chord elements."
index 523dedb916743212f69634b868923e8a9ba0316a..883dbbea2033709e8271bd5ba60cfeadc6a13dc0 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 \header {
   texidoc = "
   Tremolo repeats can be constructed for short tremolos (total duration smaller than 1/4) too. Only some of the beams are connected to the stems. 
index 3058ae1b003e9821cc7c74850e88afa86ea9b5a2..e55106c4ecae58c3eb9de080589d4b35ac3e20e3 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header{
 texidoc="Chord tremolos on a single note."
index b42d0882dc7b2893e20d9f61c37d6e6eaba9952b..d385510ca79393e812b62a4ae48a953aa59daf75 100644 (file)
@@ -5,7 +5,7 @@
 
 }
 
-\version "2.11.51"
+\version "2.12.0"
 \paper{
   ragged-right = ##t
 }
index d3c745f84f2c27026a57cae37eff5072551cf33f..8b2e27e1820d0dc3f70cba86d7bcff453864c2de 100644 (file)
@@ -3,7 +3,7 @@
 notes."
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 \relative c'''{
   \repeat tremolo 32{ g64 a }
index ef3555f5112b73aa37b289d3af7238e9751da889..6f84eab5bd87acce598b86f226d45cb3fc813d49 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header{
 texidoc="
index 076955544ba1aa9feba1baf49cdd4615c4b5ed1b..b5349a3cfc8db0a57467dc6373bf2004111345d7 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 
 \header {
index ca206582e08c94607c31b65d9e7a1bf571903681..d0b029873115c8484578d6a42b6fd2475d56378a 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.10.0"
+\version "2.12.0"
 \header{
   texidoc="@code{staffLineLayoutFunction} is used to change the position of the notes.
 This sets @code{staffLineLayoutFunction} to @code{ly:pitch-semitones} to
index e626535a72138bc1b79a6be06a5e3735bd1890dd..80b43a1feae5e18f207768ea03c8fca90aba5a8b 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51" \header {
+\version "2.12.0" \header {
 
     texidoc = "Octavation signs may be added to clefs.  These
 octavation signs may be placed below or above (meaning an octave
index ac904455e150734f20670d79191ec4b38e8f91d0..a277e253e5d27e616a684723038944a2b3c0c872 100644 (file)
@@ -5,7 +5,7 @@
 but they don't confuse one another."
 }
 
-\version "2.11.53"
+\version "2.12.0"
 
 \layout { ragged-right = ##t} 
 
index 4e4965753fb481dff841f8dcdd1696ee76ae58ec..5f3b410e9d131896f8dab68d12cdcffa4f424539 100644 (file)
@@ -3,7 +3,7 @@
   }
 
 
-\version "2.11.51"
+\version "2.12.0"
 {
   \clef "foo"
   c4
index c00ddf5bc31b76c5c170a650b2d0e7352a7e898c..02c727d0b38f8807b1c1aa4b09f839794b3d4c85 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header{
 
index 7b06cf77f79be6f8bc9ee48f541ba0fe343f2eec..1bf7c926d1a050ad2c6b39104cce32f8d8d7e7df 100644 (file)
@@ -19,7 +19,7 @@ The result will be files named
 
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 #(ly:set-option 'clip-systems)
 
index a8aa1d3392a3b280a6024babb59da064ac86dc5d..4e0cc405e77474485b89c95d0b461596ecf02196 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 \header {
   texidoc = "Clusters behave well across line breaks."
 }
index b42907dd3c65a85da992df82a7c7f4f554cc5c18..2b0d627b239efc83148d144d091985fa0e73e7d2 100644 (file)
@@ -7,7 +7,7 @@
   ragged-right= ##t
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 \new PianoStaff <<
   \new Staff = "up"     {
index 3d28cb21dd95597b9af5812b3fc0930f623ac3ae..b8f91cea5f8732e9af9d920b58ae607a3576b151 100644 (file)
@@ -4,5 +4,5 @@
 }
 
 
-\version "2.11.51"
+\version "2.12.0"
 \relative c' { \makeClusters <e d'> } 
index ef67a41441f2194f6c76ff10fe0da2ddd27764a4..37dfcbb0e402a5887fefb53f543aeeb84233c1fb 100644 (file)
@@ -1,6 +1,6 @@
 
 
-\version "2.11.51"
+\version "2.12.0"
 \header {
   texidoc = "Clusters behave well across line breaks."
 }
index 9b8cc4f04c58be0b2ed44b06ca3c58a56f322b07..ae74c3bc76a4a8ebb9cebe6e8cbd976c1a7204bf 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 \header {
   texidoc = "Clusters are a device to denote that a complete range of
 notes is to be played."
index 470bb61e4381746057f4bdd7c7c8819a48f292ce..e6317fa4ecc738bcfebfb12b85e146553b004583 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 \header {
 texidoc = "Single head notes may collide. "
 }
index 797ac91a1e8883c6e3787660c2113bd77d928001..b77a116c1027ff2004059a141e86144904475ae4 100644 (file)
@@ -7,7 +7,7 @@
 
 \layout  { ragged-right = ##t }
 
-\version "2.11.51"
+\version "2.12.0"
 
 \relative <<
     \new Staff {
index c0a0699d4bfada2289761ab060acbc94aefb837e..d882cde6431e6d1d8f83640a954c7c867821e630 100644 (file)
@@ -6,7 +6,7 @@
 }
 \layout {  ragged-right = ##t }
 
-\version "2.11.51"
+\version "2.12.0"
 \relative c'' { 
   << <a c>2\\ { <b d>4 <b d>4 }   >>
   << { <a c>2 } \\ { <b d>4. <b e>8 } >> 
index fb7297fdd7e9d37691afcbe01b8ac394049dd6d0..e6848718111d2a60efab73f2f3baf8471c4e7212 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 \header {
     
     texidoc = "If dotted note heads must remain on the left side,  
index 6b0ada6cf2c57721e652bf9389ece4b2e9818765..272ea3578ba303cca9c38dc40e8506f86214c145 100644 (file)
@@ -6,7 +6,7 @@
 
   }
 
-\version "2.11.51"
+\version "2.12.0"
 
 \paper{ ragged-right=##t }
 
index c603e3217f59d716e93b6a61cb3a72b01884162b..264a3350d0be3b842c6d4f8d7273f795518bfe2a 100644 (file)
@@ -2,7 +2,7 @@
   on the right side."
 }
 
-\version "2.11.51"
+\version "2.12.0"
 \layout { ragged-right= ##t }
 
 % todo: b2 (up) + b8 down looks strange compared to c2up + b8. (down)
index 79ba2882400b9c1d927263bf6cf90147d7126aa1..248e6748092d7677d204bc2609e9e167d50f896d 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 \header {
   texidoc = "Note heads in collisions should be merged if
 they have the same positions in the extreme note heads.  
index 143ea7e0e42a715f13d7db0a045d2fe147a65a6f..e6a3cf1b10d70048ca65494b83951322d0258f36 100644 (file)
@@ -4,7 +4,7 @@
   block-shaped note."
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 <<
   \key c \major
index 575280459cc67ac0f4edc7b42a46712820889d3d..11387aecf33893a8366b58a039097f31e54cf444 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 \header {
   texidoc =
   "Open and black note heads are not merged by default."
index fa22c8fa692ed29325c163f96f6e11dd8deaa07a..7acb4befbc2833d2da95bcbed646d88b8f80aafe 100644 (file)
@@ -2,7 +2,7 @@
 
   texidoc = "Collision resolution may be forced manually with @code{force-hshift}. "
 }
-\version "2.11.51"
+\version "2.12.0"
 
 \paper  {
   ragged-right = ##t
index a682b171ace83c3fe8edf5185348cc758c6bd0c8..77ea8e2877bc96565638901fcc97fb132888cef4 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 \header {
     
     texidoc = "If @code{NoteCollision} has
index 238064dda68ddadef79fcf9813ae103ecee2498c..88ae8082c999d072ffd4ef12ab161972b873aa8a 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 \header {
   texidoc =
 
index 92c34b54ec8a991122a4173daa88fdbedbd577a8..9b3b44697fc3b598e5f42cf3472bdf50c0a96303 100644 (file)
@@ -4,7 +4,7 @@
     }
 \layout { ragged-right = ##t }
 
-\version "2.11.51"
+\version "2.12.0"
 
 {
   \relative c'' \new Staff {
index 7025b09f459a3313895ded104f76ea46f6da4fa4..53b02aa4cbda8e1c8834a72046b980d500a5a975 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 \header {
   texidoc = "Oppositely stemmed chords,  meshing into each other,
 are resolved."
index 51f46f755925b42d8f90f26d1c9067cfa7871ccb..2dd97fddc0c2612d935a0cd9a2dfc69b81c79c74 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
   texidoc = "Seconds do not confuse the collision algorithm too much. The best
index bc9d07f255b08621514c9a02025d1796c07b91c6..20f0d7194600d87627d6247857b52d30de5e156c 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
  texidoc = "Mixed collisions with whole notes require asymmetric shifts."
index d33d4e579b7a504af9fdcdcf12b8f5fee746e3b3..e3e68163251dbfb390614e079c7ce1b4f8083a04 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 \header{
   texidoc="
 In addition to normal collision rules, there is support for polyphony, 
index 8160a124d5007702560a13cc4e029354b67116dd..9f4f8752927d95b2c6cefa747df678267b884d3f 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header{
   texidoc = "Each grob can have a color assigned to it.
index 006fb0c19a7781c69b874d740ffb7e15f8ab1e48..ff0801f8fe76f15c68f82bed2f47d4d5cdf329d7 100644 (file)
@@ -1,7 +1,7 @@
 \header {
   texidoc = "You can put lyrics under completion heads."
 }
-\version "2.11.51"
+\version "2.12.0"
 
 mel = \relative c'' {
  c1. c1.
index 32b2dbc9a9bddd829f72b958b0d27c3cd053ff2b..eb7948a35ba323bccf4e4d975e55d8eb637f093e 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header{
 texidoc="
index b4c0e7c172c64e034f4dc06cd6ffc6e5f62cf15c..e275aa9e12ab0dbc55cefbfd610749e0132b8a4d 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 \header {
 
     texidoc = "Completion heads are broken across bar lines. This was
index 38471c1e66838dbc8cd2f861193d85e539575c11..8bd6028aa156983c68ef2606802b157fd6589698 100644 (file)
@@ -5,7 +5,7 @@
 
   }
 
-\version "2.11.58"
+\version "2.12.0"
 
 \paper{ ragged-right=##t }
 
index ad2c64435e8cdba4b5296be81c7e7d7eaeaf0cf6..708dc0fb4a8acabf843aa8bfe76dbfd635e9a339 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header{
 texidoc="
index 6ac2d8ab23997bceca121fe7cd57757ce110b973..14ad542784a7d6052f5b3531d59e77034b902389 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header  {
 texidoc = "a staff should die if there is reference to it."
diff --git a/input/regression/context-nested-staffgroup.ly b/input/regression/context-nested-staffgroup.ly
new file mode 100644 (file)
index 0000000..c22007f
--- /dev/null
@@ -0,0 +1,15 @@
+\version "2.12.0"
+\header {
+  texidoc = "Contexts of the same type can be nested."
+}
+
+\new StaffGroup \relative c' <<
+  \new Staff { c1 }
+  \new StaffGroup <<
+    \new Staff { c1 }
+    \new StaffGroup <<
+      \new Staff { c1 }
+      \new Staff { c1 }
+    >>
+  >>
+>>
index 64b42e302141836e52dd5306ba51f5cf06991910..852026073957198ae318feea783148987023eac6 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 \header {
     texidoc = "Custodes may be engraved in various styles."
 }
index 178ea14be4ee01f42c742542b627ce7fcc1eacb9..f8e49a1cb371353f9fbfb2312b55e37ece721fd7 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 #(use-modules (srfi srfi-13)
               (ice-9 format))
 
@@ -154,7 +154,7 @@ stderr of this run."
 \test "" ##[ \noPageTurn #]
 
 %% Checks
-\test "" ##[ \octave a' #]                             % RelativeOctaveCheck
+\test "" ##[ \octaveCheck a' #]                                % RelativeOctaveCheck
 \test "" ##[ | #]                                      % BarCheck
 
 %% Marks
index 5a8019422e83949423d016805d88f5d63adc946e..95f0db9aeb2838f391fbd76fbf2ff81ef8c51524 100644 (file)
@@ -2,7 +2,7 @@
   texidoc = "Dot columns do not trigger beam slanting too early."
 }
 
-\version "2.11.51"
+\version "2.12.0"
 \paper{ ragged-right=##t }
 <<
   { e''8 e''8 g'' g''} \\
index a2c6a416060ad560d555e587161e027d96a0fcde..2c51af61e5c787174a594909e7fa58869b940567 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 \header {
   texidoc = "Dots move to the right when a collision with the (up)flag happens."
 }
index 3714cf7a82da82356ac0a1bf78ec9d780e554980..cae9b796a6cd6a30621e8fbe56fe56d0a46a8bd0 100644 (file)
@@ -6,7 +6,7 @@
 
 }
 
-\version "2.11.54"
+\version "2.12.0"
 \new Staff \relative c''
 {
   <<
index 3329140260e854ab885ea3e8c46a4081b3685b0f..a18dac6a3218f93e3024414ff0f5ebd0471eed5c 100644 (file)
@@ -5,7 +5,7 @@
 
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 \layout { ragged-right = ##t }
 
index 774022819f1cd6bc6cf4832062c13c999f393030..a82d7f4d1edbd5a31f1c86a7d17c27f0d5f559ad 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51" \header{
+\version "2.12.0" \header{
 
 
     texidoc=" Both noteheads and rests can have dots.  
index b095b3c501a8b16d2d27d4c8cab470ac844f2a94..d1a8086c470c7bc02b69a21aef77186caa8a577b 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.60"
+\version "2.12.0"
 
 \header {
   texidoc = "For volte, the style of double repeats can be set
index 5c2f6972795ced8079c86d971be524dc604d9d2e..825dfd84cf94559324c5963420ec930ed377dcce 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.60"
+\version "2.12.0"
 
 \header {
   texidoc = "Three types of double repeat bar line are supported."
index 519b982367f96ebe547fcdc026b320c6157cc1d8..ddc05e4d5ae0e49834c7ca77fabd079e49119c96 100644 (file)
@@ -7,7 +7,7 @@
 }
 
 
-\version "2.11.51"
+\version "2.12.0"
 
 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 }
index 9466d255fa18dbf108d69746b03578c832c9ca32..d4dde92492e1de7c94e118046f03f5e9a3291c52 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 \header{
 texidoc = "Broken crescendi should be open on one side."
 }
index 56dad3dac33cb6978649eb9726b34b0636646428..6a58b087dea3d510ef4cda06122396817be7c400 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 
 \header {texidoc = "Dynamic letters are kerned, and their weight
 matches that of the hairpin signs.  The dynamic scripts should be
index 91efabfc9d83bd1a1d859cf252209e4ed8c86fd8..30dd6d78f3fe7d4eeb9dfd4aead0deb08dac4220 100644 (file)
@@ -6,7 +6,7 @@
     respectively."
 
 }
-\version "2.11.51"
+\version "2.12.0"
 
 
 \layout { ragged-right = ##t }
index 5a299e0fed96e865a98a667cff0579e3b74dbd85..e263d925c528b7e1d2dc54a544b518a01028a455 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 \header{
   texidoc=" Dynamics appear below or above the staff.  If multiple
 dynamics are linked with (de)crescendi, they should be on the same
index 0041a173d138109a6129803241cea2f7fbf15094..91363707904fd22aa3c0e68572947eb745036b07 100644 (file)
@@ -7,7 +7,7 @@
   
 }
 
-\version "2.11.51"
+\version "2.12.0"
 \paper { ragged-right = ##t }
 
 \relative c' {
index 6bc3ac1467a8adfd6668543e703b5a06886b49ec..1afe18bbc61cce44622532c8d1d93890a8cb469a 100644 (file)
@@ -4,7 +4,7 @@
 from the notes. "
 
 }
-\version "2.11.51"
+\version "2.12.0"
 
 \layout {
   indent = 0.0\mm
index 0f8ecf6ea86e4a86c54215eb0d84040e7171fe88..9b2eed583bec1bd7766464e0f112fd9f296dcc49 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
 texidoc = "Crescendi may start off-notes, however, they should  not collapse into flat lines."
index 381589b4bb4195cc19d12847d42a420e89981dec..908e54f0e0770b20ad6c3ab94a17036402811c63 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
     texidoc = " Easy-notation (or Ez-notation) prints names in note heads.
index b7a1c4738b6f58848062d7520879dc4f8e6e364b..dd49b82a550713f4cf39d18da9ef91177b52d5a9 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header { texidoc = "
 Fermatas over multimeasure rests are positioned as over normal rests.
index c6c20f76c3f0b44cde730c165de4c430b9705044..c2bfb93c3fc29ccf70c7cfad130776284cced449 100644 (file)
@@ -3,7 +3,7 @@
   texidoc = "Bass figures can carry alterations."
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 \layout {
   ragged-right= ##t
index 3d967fabd0c35572087d6bd1b029b7512b767372..d354ff691a873612119b3db955ca6e8c2e05a15f 100644 (file)
@@ -6,7 +6,7 @@ true."
 
 }
 
-\version "2.11.51"
+\version "2.12.0"
 \paper {
   ragged-right = ##t
 }
index 9bd63398f8838185c71178d4e64ee3ae99f9a26b..d369a07e83c16be155ddd3956f62997f62471bd6 100644 (file)
@@ -4,7 +4,7 @@
   may be forbidden. "
 
 }
-\version "2.11.51"
+\version "2.12.0"
 \paper { ragged-right = ##t }
 
 \figures {
diff --git a/input/regression/figured-bass-continuation-modifiers.ly b/input/regression/figured-bass-continuation-modifiers.ly
new file mode 100644 (file)
index 0000000..b58615c
--- /dev/null
@@ -0,0 +1,18 @@
+\header {
+
+  texidoc = "Figured bass extender lines shall be broken when a figure has
+  a different alteration, augmentation or diminishment."
+
+}
+
+\version "2.12.0"
+
+<<
+  \relative \new Voice {
+    c8 c c c c c
+  }
+  \figures {
+    \bassFigureExtendersOn
+    <6 4 3>8 <6\\ 4! 3!> <6 4- 3+> <6/ 4\+ 3>  <6 4\! 3+>  <6\+ 4\+ 3++>
+  } 
+>>
index 0e0e9d1d5f8f939e0fe9939a67be8c04036e4c24..e939a6f07ccd887f43b0179af67367e38a687d1c 100644 (file)
@@ -5,7 +5,7 @@ figures. They are switched on with @code{useBassFigureExtenders}"
 
 }
 
-\version "2.11.51"
+\version "2.12.0"
 \paper {
   ragged-right = ##t
 }
index bc6bba8c8389b2980cb26a3af999381dad88bfe1..fc4823aa179c0107bbc1e79f58bff1372b5d6506 100644 (file)
@@ -6,7 +6,7 @@
 }
 
 
-\version "2.11.51"
+\version "2.12.0"
 \paper
 {
   ragged-right = ##t
index 993b56a00e65f8e49981ce75697e53d4dbc5ecb7..0289c3e9a2ca5372bf2d2ec9bdd62fc08e5cf3b4 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 bassfigures = \figuremode {
   <0/ 1/ 2/> <3/ 4/ 5/> <6/ 7/ 8/> <9/ 10/ 11/> <12/ 13/ 100/>
index 2c9a04e2dc525bf53b89dcf1ad1b2e9701472da3..02dd09f080abab08082cd3d86991149543c07165 100644 (file)
@@ -3,7 +3,7 @@
   ragged-right = ##t
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
 
index f4fd4c5340dfafa446857d3537c0192bb7af8236..cbcb40c96f0fbe1797492237074f40586c0bbdcd 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
 
index a083344675d2c3e2b7715f60de8320ce483c58af..beb9ce9bb7fd860772e8cb32a4122f1af3403000 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
 
index 19ec24abd14d88697f36a083f30a51d643a8d2a9..6d6310ec0764d500e18dafccd8ed9e23322b1daa 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 \header
 {
   texidoc = "Scripts left of a chord avoid accidentals."
index cb929996e1ad942479123c370f87c9a5c055d103..a216d3d9d9eb126eebd08eaa9f5535d9cbda010d 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
 
index 16c56bb67afee77ff9e34c39617c0fc3f95d72c2..abb0fb2783f9ef4b6adf3e21d065d6f4816dbc36 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 \header {
 
   texidoc = "It is possible to associate
index a6f987b490d199e6c44bc1525c653ea39e77c0ba..7a2a310e41ebdb97e9ecaa74a4e1f7005e0231ef 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
   texidoc = "Fingerings work correctly with cross-staff beams."
index ccaaff0bc794df483544ff1afaaf8ce3d489c353..383ebe060b58750c79556899dd4b8d09d7654deb 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
   texidoc = "Automatic fingering tries to put fingering instructions
index e6d65bd3b745418e10d97ab69047d3049c6da959..ebcfc115af0a78644446e398ee5d0078d931e71d 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.57"
+\version "2.12.0"
 #(set-global-staff-size 17)
 
 \header {
index 637f210866a215c4d50c2ff1b08c4b3a3e0f3f64..1ee3d1c3cc8d03c4cfcb8d19159b0a97f98d6344 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.57"
+\version "2.12.0"
 
 \header {
   texidoc = "The 'flag property of the Stem grob can be set to a custom
diff --git a/input/regression/flags-straight-stockhausen-boulez.ly b/input/regression/flags-straight-stockhausen-boulez.ly
new file mode 100644 (file)
index 0000000..49008ee
--- /dev/null
@@ -0,0 +1,30 @@
+\version "2.12.0"
+
+stemLength = #(define-music-function (parser location length) (number?)
+  "Set the length of the next stem explicitly."
+  #{
+    \once \override Stem #'length-fraction = #$length
+  #}
+)
+
+{
+    \autoBeamOff
+    \time 3/8
+    \override Stem #'flag = #modern-straight-flag
+    \override Stem #'length-fraction = #'1.5
+    r8
+    \acciaccatura {
+         \stemDown
+         \slurUp
+         \stemLength #1
+         gis''8
+         \stemNeutral
+       } \stemLength #1.43 d'8 r16 
+       \stemLength #0.95
+       \acciaccatura c''8 
+       \stemLength #1.25
+       b'32 r
+    \bar"|.|"
+    \stemLength #1.25
+    <g! cis'>16 \stemLength #1.3 <f'! g''!>8
+}
\ No newline at end of file
diff --git a/input/regression/flags-straight.ly b/input/regression/flags-straight.ly
new file mode 100644 (file)
index 0000000..171902b
--- /dev/null
@@ -0,0 +1,30 @@
+\version "2.12.0"
+
+\header {
+  texidoc = "Straight flag styles."
+}
+
+
+% test notes, which will be shown in different styles:
+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
+  \time 2/4
+  \mark "modern straight"
+  \override Stem #'flag = #modern-straight-flag
+  \testnotes
+
+  \mark "old straight (large angles)"
+  \override Stem #'flag = #old-straight-flag
+  \testnotes
+%
+%   \mark "custom slant"
+% %   Custom straight flag. The parameters are: 
+% %                flag thickness and spacing
+% %                up-flag angle and length
+% %               down-flag angle and length
+%   \override Stem #'flag = #(straight-flag 0.35 0.8 -5 0.5 60 2.0)
+%   \testnotes
+}
index b7069fe85d060af069dd70b4b56be436c920d4f8..5c7b10a01726d5b6ac1712c021e8885294e0f004 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 \header{
   texidoc = "
 The line-spanners connects to the Y position of the note  on the next line.
index bb6e58b2d8062aa3066f6506cc071eb6b30edd91..2a52080bbe535e1c898f48eb99b59bd73f830639 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
   texidoc= "The voice follower is not confused when set for consecutive
index 01fd584690ff42366a82218f58e447df7d6aca41..b5abe6ccb5d2a5079890a104de5c431574c12dcc 100644 (file)
@@ -5,7 +5,7 @@ This may happen with incorrect font versions.
 "
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 \paper {
   ragged-right = ##T
index bad03f75ee4bb8c3b7cd6047e91716adbb89b323..39c9b6849a7417b989182c9c9ce5d3d8a7c8100c 100644 (file)
@@ -5,7 +5,7 @@
 
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 \paper  {
   % change for other default global staff size. 
index ba1dc789b53486b3f352756032c6de8773dd4d95..0e9f887721cc710f61a3919cf867547598280d73 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
   texidoc = "Text set in TrueType Fonts that contain kerning tables, are kerned. "
index 1d9d9882827d5228aa0f2fa56c69314960b26c6e..062f2f7549626d18b63bbd1048b7f1dfd34703a7 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
 
index 4144763962c30bb1d1d16d68db6c9afd2a547260..71517886c2165c7fe0cae4de6bd3afddcc7d362c 100644 (file)
@@ -1,47 +1,29 @@
 \header {
-
-    texidoc = "This file demonstrates how to load different
-    (postscript) fonts. The file @file{font.scm} shows how to define
-    the scheme-function @code{make-century-schoolbook-tree}.
-
-    This file should be run with the TeX and extra options should be
-    passed to LaTeX and dvips to help it find the uncb font."
-
+  texidoc = "This file demonstrates how to load different (postscript)
+fonts.  The file @file{font.scm} shows how to define the scheme-function
+@code{make-century-schoolbook-tree}."
 }
-\version "2.11.51"
 
-\paper
-{
-    #(define text-font-defaults
-      '((font-encoding . latin1)
-       (baseline-skip . 2)
-       (word-space . 0.6)))
+\version "2.12.0"
 
-    #(set! fonts (make-century-schoolbook-tree 1.0))
-}
+\paper {
+  #(define text-font-defaults
+    '((font-encoding . latin1)
+      (baseline-skip . 2)
+      (word-space . 0.6)))
 
-%ugh.
-% do this here so we don't forget the connection with
-% this file.
-#(system "afm2tfm `kpsewhich uncb8a.afm` uncb8a.tfm") 
+  #(set! fonts (make-century-schoolbook-tree 1.0))
+}
 
 \layout {
-    line-width = 160 \mm - 2.0 * 9.0 \mm
+  line-width = 160 \mm - 2.0 * 9.0 \mm
 
-    
-    indent = 0.0\mm
-    ragged-right = ##t
+  indent = 0.0\mm
+  ragged-right = ##t
 }
 
 {
-    \key a \major
-    \time 6/8
-    cis''8.
-
-%% uncomment to test postscript fonts. 
-% ^"test!"
-
-    
-    
-    d''16 cis''8 e''4 e''8
+  \key a \major
+  \time 6/8
+  cis''8.^"test!" d''16 cis''8 e''4 e''8
 }
diff --git a/input/regression/fret-board-alignment.ly b/input/regression/fret-board-alignment.ly
new file mode 100644 (file)
index 0000000..cc347c0
--- /dev/null
@@ -0,0 +1,23 @@
+\header {
+
+  texidoc = "FretBoards should be aligned in the Y direction
+at the fret-zero, string 1 intersection."
+
+}
+
+\version "2.12.2"
+
+\include "predefined-guitar-fretboards.ly"
+
+mychords = \chordmode{
+  c1 f g
+}
+
+<<
+  \context ChordNames {
+    \mychords
+  }
+  \context FretBoards {
+    \mychords
+  }
+>>
index b61e480b27d4761d85899c4c1c87533f31d7e4d0..c99f27d474a2c7f1b118c4a78647754efb66668d 100644 (file)
@@ -6,7 +6,7 @@ best when one string number is indicated in advance "
   
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 foo = \relative c {
   <d\5 fis a d fis>_\markup {
diff --git a/input/regression/fret-diagrams-capo.ly b/input/regression/fret-diagrams-capo.ly
new file mode 100644 (file)
index 0000000..82fb21e
--- /dev/null
@@ -0,0 +1,50 @@
+\version "2.12.0"
+
+\header {
+  texidoc="
+A capo indicator can be added with a fret-diagram-verbose
+string, and its thickness can be changed.
+
+"
+}
+
+\layout { ragged-right = ##t }
+
+<<
+  \chords {
+    c1 |
+    c1
+  }
+
+  \new Voice {
+    \textLengthOn
+
+     %% C major for guitar, with capo on third fret
+        % verbose style
+    c' ^\markup {
+            \fret-diagram-verbose #'((mute 6)
+                                     (capo 3)
+                                     (open 5)
+                                     (place-fret 4 5 1)
+                                     (place-fret 3 5 2)
+                                     (place-fret 2 5 3)
+                                     (open 1))}
+
+     %% C major for guitar, with capo on third fret
+       % thinner capo
+        % verbose style
+    \override TextScript #'fret-diagram-details 
+        #'capo-thickness = #0.2
+    c' ^\markup {
+            \fret-diagram-verbose #'((mute 6)
+                                     (capo 3)
+                                     (open 5)
+                                     (place-fret 4 5 1)
+                                     (place-fret 3 5 2)
+                                     (place-fret 2 5 3)
+                                     (open 1)) }
+
+ }
+>>
+
+
diff --git a/input/regression/fret-diagrams-dots.ly b/input/regression/fret-diagrams-dots.ly
new file mode 100644 (file)
index 0000000..a38d0b2
--- /dev/null
@@ -0,0 +1,74 @@
+\version "2.12.0"
+
+\header {
+  texidoc="
+Dots indicating fingerings can be changed in location,
+size, and coloring.
+
+"
+}
+
+\layout { ragged-right = ##t }
+
+<<
+  \chords {
+    c1 |
+    c1 |
+    c1 |
+    c1
+  }
+
+  \new Voice {
+    \textLengthOn
+
+     %% C major for guitar,  verbose style
+    c'1 ^\markup {
+            \fret-diagram-verbose #'((mute 6)
+                                     (place-fret 5 3 1)
+                                     (place-fret 4 5 2)
+                                     (place-fret 3 5 3)
+                                     (place-fret 2 5 4)
+                                     (place-fret 1 3 1)
+                                     (barre 5 1 3))}
+
+     %% C major for guitar, verbose style
+    \override TextScript #'fret-diagram-details 
+        #'dot-radius = #0.3
+    c' ^\markup {
+            \fret-diagram-verbose #'((mute 6)
+                                     (place-fret 5 3 1)
+                                     (place-fret 4 5 2)
+                                     (place-fret 3 5 3)
+                                     (place-fret 2 5 4)
+                                     (place-fret 1 3 1)
+                                     (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
+    c' ^\markup {
+            \fret-diagram-verbose #'((mute 6)
+                                     (place-fret 5 3 1)
+                                     (place-fret 4 5 2)
+                                     (place-fret 3 5 3)
+                                     (place-fret 2 5 4)
+                                     (place-fret 1 3 1)
+                                     (barre 5 1 3))}
+
+     %% C major for guitar,  verbose style
+    \once \override TextScript #'fret-diagram-details 
+        #'dot-position = #0.5
+    c'1 ^\markup {
+            \fret-diagram-verbose #'((mute 6)
+                                     (place-fret 5 3 1)
+                                     (place-fret 4 5 2)
+                                     (place-fret 3 5 3)
+                                     (place-fret 2 5 4)
+                                     (place-fret 1 3 1)
+                                     (barre 5 1 3))}
+
+ }
+>>
+
+
diff --git a/input/regression/fret-diagrams-fingering.ly b/input/regression/fret-diagrams-fingering.ly
new file mode 100644 (file)
index 0000000..5833e0b
--- /dev/null
@@ -0,0 +1,88 @@
+\version "2.12.0"
+
+\header {
+  texidoc="
+Finger labels can be added, either in dots or below strings.
+Dot color can be changed, and fingering label font size
+can be adjusted.
+
+"
+}
+
+\layout { ragged-right = ##t }
+
+<<
+  \chords {
+    c1 |
+    c1 |
+    c1 |
+    c1 |
+    c1
+  }
+
+  \new Voice {
+    \textLengthOn
+     %% C major for guitar,  verbose style
+    \override TextScript #'fret-diagram-details
+      #'finger-code = #'below-string
+    c'1 ^\markup {
+            \fret-diagram-verbose #'((mute 6)
+                                     (place-fret 5 3 1)
+                                     (place-fret 4 5 2)
+                                     (place-fret 3 5 3)
+                                     (place-fret 2 5 4)
+                                     (place-fret 1 3 1)
+                                     (barre 5 1 3))}
+
+     %% C major for guitar,  verbose style
+    \override TextScript #'fret-diagram-details 
+        #'string-label-font-mag = #0.4
+    c'1 ^\markup {
+            \fret-diagram-verbose #'((mute 6)
+                                     (place-fret 5 3 1)
+                                     (place-fret 4 5 2)
+                                     (place-fret 3 5 3)
+                                     (place-fret 2 5 4)
+                                     (place-fret 1 3 1)
+                                     (barre 5 1 3))}
+
+     %% C major for guitar, verbose style
+    \override TextScript #'fret-diagram-details
+      #'finger-code = #'in-dot
+    c' ^\markup {
+            \fret-diagram-verbose #'((mute 6)
+                                     (place-fret 5 3 1)
+                                     (place-fret 4 5 2)
+                                     (place-fret 3 5 3)
+                                     (place-fret 2 5 4)
+                                     (place-fret 1 3 1)
+                                     (barre 5 1 3))}
+
+     %% C major for guitar, verbose style
+    \once \override TextScript #'fret-diagram-details 
+        #'dot-color = #'white
+    c' ^\markup {
+            \fret-diagram-verbose #'((mute 6)
+                                     (place-fret 5 3 1)
+                                     (place-fret 4 5 2)
+                                     (place-fret 3 5 3)
+                                     (place-fret 2 5 4)
+                                     (place-fret 1 3 1)
+                                     (barre 5 1 3))}
+
+     %% C major for guitar,  verbose style
+    \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)
+                                     (place-fret 4 5 2)
+                                     (place-fret 3 5 3)
+                                     (place-fret 2 5 4)
+                                     (place-fret 1 3 1)
+                                     (barre 5 1 3))}
+
+ }
+>>
+
+
diff --git a/input/regression/fret-diagrams-fret-label.ly b/input/regression/fret-diagrams-fret-label.ly
new file mode 100644 (file)
index 0000000..e45755c
--- /dev/null
@@ -0,0 +1,67 @@
+\version "2.12.0"
+
+\header {
+  texidoc="
+The label for the lowest fret can be changed in location,
+size, and number type.
+
+"
+}
+
+\layout { ragged-right = ##t }
+
+<<
+  \chords {
+    c1 |
+    c1 |
+    c1
+  }
+
+  \new Voice {
+    \textLengthOn
+
+     %% C major for guitar,  verbose style
+    c'1 ^\markup {
+            \fret-diagram-verbose #'((mute 6)
+                                     (place-fret 5 3 1)
+                                     (place-fret 4 5 2)
+                                     (place-fret 3 5 3)
+                                     (place-fret 2 5 4)
+                                     (place-fret 1 3 1)
+                                     (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 
+    c' ^\markup {
+            \fret-diagram-verbose #'((mute 6)
+                                     (place-fret 5 3 1)
+                                     (place-fret 4 5 2)
+                                     (place-fret 3 5 3)
+                                     (place-fret 2 5 4)
+                                     (place-fret 1 3 1)
+                                     (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
+    c' ^\markup {
+            \fret-diagram-verbose #'((mute 6)
+                                     (place-fret 5 3 1)
+                                     (place-fret 4 5 2)
+                                     (place-fret 3 5 3)
+                                     (place-fret 2 5 4)
+                                     (place-fret 1 3 1)
+                                     (barre 5 1 3))}
+
+ }
+>>
+
+
diff --git a/input/regression/fret-diagrams-landscape.ly b/input/regression/fret-diagrams-landscape.ly
new file mode 100644 (file)
index 0000000..37ca35e
--- /dev/null
@@ -0,0 +1,55 @@
+\version "2.12.0"
+
+\header {
+  texidoc="
+Fret diagrams can be presented in landscape mode.
+
+"
+}
+
+\layout { ragged-right = ##t }
+
+<<
+  \chords {
+    c1 |
+    c1 |
+    c1 |
+    c1
+  }
+
+  \new Voice {
+    \textLengthOn
+    \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
+    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;"}
+
+     %% C major for guitar with two barres, regular style
+
+    c' ^\markup {
+            \fret-diagram 
+              #"f:2;h:5;6-x;c:5-1-3;5-3-1;c:4-2-5;4-5-4;3-5-4;2-5-4;1-3-1;"}
+   
+     %% C major for guitar, with capo 
+    c' ^\markup {
+            \fret-diagram-verbose #'((mute 6)
+                                     (capo 3)
+                                     (place-fret 4 5 1)
+                                     (place-fret 3 5 2)
+                                     (place-fret 2 5 3))}
+
+ }
+>>
+
+
diff --git a/input/regression/fret-diagrams-opposing-landscape.ly b/input/regression/fret-diagrams-opposing-landscape.ly
new file mode 100644 (file)
index 0000000..c3d359c
--- /dev/null
@@ -0,0 +1,55 @@
+\version "2.12.0"
+
+\header {
+  texidoc="
+Fret diagrams can be presented in landscape mode.
+
+"
+}
+
+\layout { ragged-right = ##t }
+
+<<
+  \chords {
+    c1 |
+    c1 |
+    c1 |
+    c1
+  }
+
+  \new Voice {
+    \textLengthOn
+    \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
+    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;"}
+
+     %% C major for guitar with two barres, regular style
+
+    c' ^\markup {
+            \fret-diagram 
+              #"f:2;h:5;6-x;c:5-1-3;5-3-1;c:4-2-5;4-5-4;3-5-4;2-5-4;1-3-1;"}
+   
+     %% C major for guitar, with capo 
+    c' ^\markup {
+            \fret-diagram-verbose #'((mute 6)
+                                     (capo 3)
+                                     (place-fret 4 5 1)
+                                     (place-fret 3 5 2)
+                                     (place-fret 2 5 3))}
+
+ }
+>>
+
+
diff --git a/input/regression/fret-diagrams-string-frets.ly b/input/regression/fret-diagrams-string-frets.ly
new file mode 100644 (file)
index 0000000..e4f8ab4
--- /dev/null
@@ -0,0 +1,35 @@
+\version "2.12.0"
+
+\header {
+  texidoc="
+Number of frets and number of strings can be changed from the 
+defaults.
+
+"
+}
+
+\layout { ragged-right = ##t }
+
+<<
+  \chords {
+    d1 |
+    a1
+  }
+
+  \new Voice {
+    \textLengthOn
+
+    % Simple Guitar D diagram with defaults
+
+    d'1 ^\markup {
+      \fret-diagram #"6-x;5-x;4-o;3-2-1;2-3-2;1-2-3;"
+    } |
+
+    % A chord for ukelele -- change both string and fret count
+    a'1 ^\markup {
+      \fret-diagram #"w:4;h:5;4-2-2;3-1-1;2-o;1-o;"
+    }
+  }
+>>
+
+
diff --git a/input/regression/fret-diagrams-string-thickness.ly b/input/regression/fret-diagrams-string-thickness.ly
new file mode 100644 (file)
index 0000000..2a2d2b5
--- /dev/null
@@ -0,0 +1,58 @@
+\version "2.12.0"
+
+\header {
+  texidoc="
+String thickness can be changed, and diagrams can have variable
+string thickness.
+"
+}
+
+\layout { ragged-right = ##t }
+
+<<
+  \chords {
+    c1 |
+    c1 |
+    c1
+  }
+
+  \new Voice {
+    \textLengthOn
+     %% C major for guitar,  verbose style
+    c'1 ^\markup {
+            \fret-diagram-verbose #'((mute 6)
+                                     (place-fret 5 3 1)
+                                     (place-fret 4 5 2)
+                                     (place-fret 3 5 3)
+                                     (place-fret 2 5 4)
+                                     (place-fret 1 3 1)
+                                     (barre 5 1 3))}
+
+     %% C major for guitar,  verbose style
+    \once \override TextScript #'thickness = #1.5 
+    c'1 ^\markup {
+            \fret-diagram-verbose #'((mute 6)
+                                     (place-fret 5 3 1)
+                                     (place-fret 4 5 2)
+                                     (place-fret 3 5 3)
+                                     (place-fret 2 5 4)
+                                     (place-fret 1 3 1)
+                                     (barre 5 1 3))}
+
+     %% C major for guitar, verbose style
+    \once \override TextScript #'fret-diagram-details
+      #'string-thickness-factor = #0.3
+    c' ^\markup {
+            \fret-diagram-verbose #'((mute 6)
+                                     (place-fret 5 3 1)
+                                     (place-fret 4 5 2)
+                                     (place-fret 3 5 3)
+                                     (place-fret 2 5 4)
+                                     (place-fret 1 3 1)
+                                     (barre 5 1 3))}
+
+
+ }
+>>
+
+
diff --git a/input/regression/fret-diagrams-xo-label.ly b/input/regression/fret-diagrams-xo-label.ly
new file mode 100644 (file)
index 0000000..df97be4
--- /dev/null
@@ -0,0 +1,48 @@
+\version "2.12.0"
+
+\header {
+  texidoc="
+The label for the lowest fret can be changed in location,
+size, and number type.
+
+"
+}
+
+\layout { ragged-right = ##t }
+
+<<
+  \chords {
+    d1 |
+    d1 |
+    d1
+  }
+
+  \new Voice {
+    \textLengthOn
+
+     %% D major for guitar, terse style 
+    d'1 ^\markup {
+            \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
+    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
+    d'1 ^\markup {
+            \fret-diagram-terse #"x;x;o;2-1;3-2;2-3;"}
+
+ }
+>>
+
+
diff --git a/input/regression/fret-diagrams.ly b/input/regression/fret-diagrams.ly
deleted file mode 100644 (file)
index 537c2d6..0000000
+++ /dev/null
@@ -1,82 +0,0 @@
-\version "2.11.51"
-
-\paper {
-       ragged-right =  ##t
-}
-
-<<
-  \chords {a2 a c c  d}
-  
-  \new Voice =mel {
-    \textLengthOn
-    % Set global properties of fret diagram
-    \override Voice.TextScript #'size = #'1.2
-    \override Voice.TextScript #'fret-diagram-details #'finger-code = #'below-string
-    \override Voice.TextScript #'fret-diagram-details #'dot-color = #'black
-    
-    %% A chord for ukelele
-    a'2 ^\markup
-    \override #'(fret-diagram-details . (
-                  (string-count . 4)
-                  (dot-color . white)
-                  (finger-code . in-dot))){
-                  \fret-diagram #"4-2-2;3-1-1;2-o;1-o;"}
-   %% A chord for ukelele, with formatting defined in definition string
-   %  1.2 * size, 4 strings, 4 frets, fingerings below string
-   %  dot radius .35 of fret spacing, dot position 0.55 of fret spacing
-    a'2 ^\markup
-    \override #'(fret-diagram-details . (
-                  (dot-color . white)
-                  (open-string . "o"))){
-                  \fret-diagram #"s:1.2;w:4;h:3;f:2;d:0.35;p:0.55;4-2-2;3-1-1;2-o;1-o;"}                  
-     %% C major for guitar, barred on third fret
-       % verbose style
-       % roman fret label, finger labels below string, straight barre
-    c' ^\markup 
-    \override #'(size . 1.1) { % 110% of default size
-       \override #'(fret-diagram-details . (
-                     (number-type . roman-lower)
-                    (finger-code . below-string)
-                    (barre-type . straight))) {
-           \fret-diagram-verbose #'((mute 6) 
-                                     (place-fret 5 3 1) 
-                                     (place-fret 4 5 2)
-                                     (place-fret 3 5 3)
-                                     (place-fret 2 5 4)
-                                     (place-fret 1 3 1)
-                                     (barre 5 1 3)) }}
-                                    
-      %% C major for guitar, barred on third fret
-       % verbose style
-    c' ^\markup 
-    \override #'(size . 1.1) { % 110% of default size
-       \override #'(fret-diagram-details . (
-                     (number-type . arabic)
-                    (dot-label-font-mag . 0.9)
-                    (finger-code . in-dot)
-                    (fret-label-font-mag . 0.6)
-                    (fret-label-vertical-offset . 0)
-                    (label-dir . -1)
-                    (mute-string . "M")
-                    (orientation . landscape)
-                    (xo-font-magnification . 0.4)
-                    (xo-padding . 0.3))) {
-           \fret-diagram-verbose #'((mute 6) 
-                                     (place-fret 5 3 1) 
-                                     (place-fret 4 5 2)
-                                     (place-fret 3 5 3)
-                                     (place-fret 2 5 4)
-                                     (place-fret 1 3 1)
-                                     (barre 5 1 3)) }}
-    %% simple D chord
-
-    d' ^\markup 
-        \override #'(fret-diagram-details . (
-                     (finger-code . below-string)
-                     (dot-radius . 0.35)
-                    (dot-position . 0.5)
-                    (fret-count . 3)))              
-                    {
-           \fret-diagram-terse #"x;x;o;2-1;3-2;2-3;" }
-  }
->>
diff --git a/input/regression/fretboard-chordchanges.ly b/input/regression/fretboard-chordchanges.ly
new file mode 100644 (file)
index 0000000..ec0f1a9
--- /dev/null
@@ -0,0 +1,21 @@
+\header{
+  
+  texidoc = "FretBoards can be set to display only when the chord changes
+or at the beginning of a new line."
+
+}
+  
+  \version "2.13.0"
+
+myChords = \chordmode {
+  c1 c1 \break
+  c1 c1 \break
+  \set chordChanges = ##t
+  c1 c1 \break
+}
+
+<<
+  \new ChordNames { \myChords }
+  \new FretBoards { \myChords }
+  \new Staff { \myChords }
+>>
index 1d9329c0df9918cdc11903e6bf4f48f26df9aa74..27e8c874b169731f18dbfe4af8b25b8223de8319 100644 (file)
@@ -5,7 +5,7 @@
 }
 
 
-\version "2.11.51"
+\version "2.12.0"
 
 %% todo : use macro, to show the statement tested. 
 #(ly:progress "~a\n" (ly:expand-environment "${HOME} $HOME $$ "))
index 10c71d7024e14e27ada516d77d78af2240baa76d..da8c41ff397168f89522dcbcc5c44cf36b9edb95 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 
 \header{
   texidoc="
index fa29a4a2424b741b14255e4ac9759d8e386bfa22..4234a68bb79c00cece2348da34bf8dee19c547f1 100644 (file)
@@ -2,7 +2,7 @@
   texidoc = "If broken, Glissandi anticipate on the pitch of the next line."
   
 }
-\version "2.11.51"
+\version "2.12.0"
 \paper {
   ragged-right = ##T }
 
index 4c0122f97ac5346a1ef19409c68d4c495689601a..2d22b573599bae996e06c83592cf7412a8ec477c 100644 (file)
@@ -4,7 +4,7 @@
 Use @code{breakable} grob property to override."
 
 }
-\version "2.11.51"
+\version "2.12.0"
 \layout {
   ragged-right = ##t
 }
index a878601a92989bce264e45b375f5fee3ac40d2cd..fb780e1d27d0212f22ff83c4b43ba7a053b7dc8b 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header{
 
index d38e90e61c4c5050581852a6d8e9d872e31f51df..a1872264208d3668ddcfc648727c0cbc7aecc7dc 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 \header
 {
   texidoc = "The autobeamer is not confused by grace notes."
index 505ebea18068f4b49a4bdf9b97557c182473c796..0cf52ae3c7a0c0ef1873270f63937fcb05a34595 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 \header {
   texidoc = "Bar line should come before the grace note."
 }
index d000a0303d92370cc1a712c8590f4e192cde8e50..c1771d8739007cfdc0ab8acf7033c46917cd8a79 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 \header {
 
   texidoc = "Grace notes do tricky things with timing. If a measure
index 7f171b4393f485ed2231f6fd5848dad70b4d8d3c..9089d64dd08dee1cc06f6b3c1086041af78ff1cd 100644 (file)
@@ -9,7 +9,7 @@ Unbeamed grace notes are not put into normal beams.
 \layout { ragged-right= ##t }
 
 
-\version "2.11.51"
+\version "2.12.0"
 \relative c'' {
   c4  d8[
     \grace {  e32[  d c d] } e8]
index 7717b5932ce9fad1c72813824b9366083c081e48..bc364f105eebad2cde92fba210da9b0f5134e6a2 100644 (file)
@@ -4,7 +4,7 @@
 finishing the grace section."
 
 }
-\version "2.11.51"
+\version "2.12.0"
 
 \relative c''' {
   \voiceOne
index 954eaec20601ca6b1b09f104f7b701daf303a4a6..88ba6088240835d9bb7fd0c3c5ded9f461cd8d6b 100644 (file)
@@ -3,6 +3,6 @@
   texidoc = "Grace notes at the end of an expression don't cause crashes."
   }
 
-\version "2.11.51"
+\version "2.12.0"
 
 { e' \acciaccatura <<  e'8  \\  cis'  >>  }
index 47b2b117e4bd530957b92d1f5ad89b0ad7da5de8..1155d98921467abf9ee9a6ab13cf3c3b858d2ac8 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 \header {
 
   texidoc="@cindex Grace End
index 4d8f9e6c39cb88ba1a04a65e97e78061b8f5f32e..35f97d56d43ca9da4bc6406dabc4d91a8cbe9007 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 \header {
   texidoc = "Grace code should not be confused by nested sequential music containing grace notes; practically speaking, this means that the end-bar and measure bar coincide in this example." 
 
index 822954717677bbc8c29d58ff71a157773ada25d0..3c1bba2567dc5bb1c7f2ef5c6b79a6eb5286795b 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 \header {
   texidoc = "Grace code should not be confused by nested sequential music containing grace notes; practically speaking, this means that the end-bar and measure bar coincide in this example." 
 
index e97c054ba3b2af91c6c1146fc8a75013b5d44259..61d2e2852aa051437564765eb0e7eccc5f313c82 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 \header {
   texidoc = "In nested syntax, graces are still properly handled."
 }
index b8bcb3d56c97a5ffee1d3ee07240fbfae8208f0e..cec7d109c8c06b96452d67a9a58817d1413ce978 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 \header {
   texidoc = "Also in the nested syntax here, grace notes appear rightly."
 }
index ca64d9c1d655a3994ea1fe33790cb09c82ad0c00..2d0baac2ca0b402fd402dcf4e80f33311a9c3402 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 \header {
   texidoc = "Graces notes may have the same duration as the main note."
 }
index 148a2a77f52476ed0236d0cc28a6004639027a2e..fe04f094fa2cc5f4633082cdc887dfa42050f046 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 \header {
   texidoc = "Grace notes may be put in a @code{partcombine}r."
 }
index 6897e88f865097edfd9ca5807c5e0d66cea5a6ea..69b4f9ad7048e254e1829d23f784451e6dc1e2e4 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
 
index 1b85382075e70c31d20f232e5f148948bd9db2d7..319cac2240742b82ff0d0b22ada35bbdc2a5df7c 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 \header{
   texidoc = "Stripped version of trip.ly.  Staves should be of correct length."
 }
index de069decb4850100a217b9f1b98884b86b0acfe5..d8838b2b1b07ab9725a5509d47aac00600e27576 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 \header {
   texidoc = "Pieces may begin with grace notes."
 }
index bb3eee7821f8522c5359a72efa915f5b85d6a4ec..d4c831f6cf2470fcedde8562c068c8ae8c9b779b 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.11.51"
+\version "2.12.0"
 
 \layout {
     ragged-right = ##t
index 249230e721c5da656b28691c93be2518d144300c..43eab6278b87b93b3beff21e6c7f08aa6a4acd06 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 \header{
   texidoc = "Here @code{startGraceMusic} should set @code{no-stem-extend} to 
 true; the two grace beams should be the same here.
index d7388bded51d845bb6833e1942c85e0ccfd5868b..13d96ffb7996ad7645f49f9f211f01e550573b7a 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 \header  {
   texidoc = "Grace notes in different voices/staves are synchronized."
 }
index 59bdb4c990254c0505a50a28bf6d8aa69cc859d0..0885a04fc9b9d1e69c592f29779b553d26f12ce3 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 \header {
     texidoc = "There are three different kinds of grace types: the base 
 grace switches to smaller type, the appoggiatura inserts also a slur, and the
index ea9a5ae4d9d79b91192631ad85c561a342c90de1..c2df02585802f57749d0defe4dd6582d707f80b0 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 \header {
   texidoc = "When grace notes are entered with unfolded repeats,
 line breaks take place before  grace  notes.
index 098e9f79b66db9cda1c71dab3030d77c6d325f38..1df9fec9c42f19b98789076624c0ca7a3a38c5a8 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
 
index 4730417f9dd668b3061fd0f37ca5e09584bafd7e..a24e2e15381243447eb5f6d44a470c8b8013820f 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
 
index 408c8fdc05ccfa205f924211361c91963f0313af..36462f342c2e719a16e3e3af1bb6c2ed06d88422 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 
 \header{
 
index 850d1a324bbe24d16ec6885f9bb1bcf9fd1bd4a1..3687d3dc74ed6656f8eae6e565ba2dc6d004338f 100644 (file)
@@ -3,7 +3,7 @@
 
   }
 
-\version "2.11.51"
+\version "2.12.0"
 \include "graphviz-init.ly"
 
 #(whitelist-grob 'NoteHead)
index 3be4bb37bb9fce5f3e4fc4421c3ec7ec84d2c515..8a99130511f6946f21ee8f12e99464305edfaf2c 100644 (file)
@@ -5,7 +5,7 @@
 staves synchronized with the notes."
 
 }
-\version "2.11.51"
+\version "2.12.0"
 
 skips =
 {
index 6622eb426549b080e30f1217cc8c64f7cef361ec..ae4f1deffc380e35c69729058683fd373a0e7e94 100644 (file)
@@ -6,7 +6,7 @@
 
 }
 
-\version "2.11.51"
+\version "2.12.0"
 \paper {
   ragged-right = ##t
 }
index 139c72ac7c1ccd53ff4b967697ea3be1d4393ab0..88973d0bee40ed073c1fba2fa53cd0ab73bd2f24 100644 (file)
@@ -5,7 +5,7 @@ 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.11.51"
+\version "2.12.0"
 
 \relative c' {
   c1\>
index ed75eb3a435f286dd38dfe0ea711fee0639e9c20..e01f244d75415e24ed740e51a651954235bad75a 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
 
index b921d33d6847b5a34db50f06f6524e65ebc64430..0607b291e22d875f77a47e6f29d67de8d5b0bcea 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
   texidoc ="Hairpin crescendi may be dashed. "
index 9004508262a0bf9e4bd11b553ff5b836ca4791b8..a5e33c426c7dcf941058ac1c078b4814cc0d823b 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
 
index 1933641b2ba2d78ea9550e8787fe1f5302060f31..c6d10938e7d8b096e8ba63298d417c2ffdf0d88a 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
 
index ea7d85298de88ab771be3928e031cdd73d74cc16..2a0a9db357e50659a9b53ec63f197c401261fbb3 100644 (file)
@@ -5,7 +5,7 @@ should end at that bar line. "
 
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 \relative c'' {
   \override Hairpin #'bound-padding = #1.0
index def7001b4fb949de123bce4a44c36d110768af5b..1f5d4800a7d53e407e4b449faa0cc8788c53a882 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 \header {
   texidoc = "Hairpins end at the left edge of a rest."
 }
index 0beb255491271ac52245345868e77302385eded5..d1ce10f1cddbc3ceb737057f354c877e961d38c5 100644 (file)
@@ -2,7 +2,7 @@
   texidoc = "Staves with percent repeats are not killed."
 }
 
-\version "2.11.53"
+\version "2.12.0"
 
 <<
  \new Staff { c''1 c'' \break c'' c'' }
index ebc783ee24bf1e47237f02379a507fa31e30040d..e347ad20293ef3ae2d8cef931a9e16c03038e864 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header { texidoc =
 
index c1187c740076fcc9a7fd1d2d7d118502488c94ba..18386a8cdda1f11fb4ebb1e1a41ab008b3f55a2b 100644 (file)
@@ -11,7 +11,7 @@ lines."
   ragged-right = ##T
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 <<
   \new Voice = melody \relative c'{
index f395f0dac6f9de4d827871f86b4676fb78bb776f..38c4f450898801fe7c3be12f644cd1e2ab360a02 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.57"
+\version "2.12.0"
 
 \header {
   texidoc = "The harp-pedal markup function does some sanity checks. All 
index 9c06e104a44932212d95adc3f03dd5a18a55a8d2..ad3f95552affba2d2c2f188649416a5cad0ada70 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.57"
+\version "2.12.0"
 
 \header {
   texidoc = "Harp pedals can be tweaked through the size, thickness and 
@@ -6,7 +6,7 @@ harp-pedal-details properties of TextScript."
 }
 
 \relative c'' {
-  \override Voice.TextScript #'harp-pedal-details #'box-width = #1
+  \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^"
@@ -17,9 +17,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 04af5a527119bbac3307c5b11f2e9265675ad5f3..7f19767e21fbe08a275a08baeffbf4cc83b883d0 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.57"
+\version "2.12.0"
 
 \header {
   texidoc = "Basic harp diagram functionality, including circled pedal boxes. 
index 6e88244b9a9324307274bc10d9dc6636f19adcef..c0ff49d0d5274b011385d81d8921893ed39a46fb 100644 (file)
@@ -2,7 +2,7 @@
   texidoc = "Horizontal brackets connect over line breaks."
 
 }
-\version "2.11.51"
+\version "2.12.0"
 \paper { ragged-right  = ##t }
 
 \new Voice \with {
index bcbe3a9db30e2c866ef9765a8a7b33f2909fa2e3..ae9a48c66c3924dc02fb1b8088df43a9ce026d16 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
 
index c635af173756adaaae2f3724b13ff205429e1cd2..34dec04102927628eedebd623fcbd4728a07aea9 100644 (file)
@@ -7,7 +7,7 @@ modifier."
 
 }
 
-\version "2.11.55"
+\version "2.12.0"
 
 myDisplayMusic =
 #(define-music-function (parser location music)
index 9506769914d06e944209de2e18f5f8033df5fc46..a201349411038a80d011042c4e80f27fcdde0be4 100644 (file)
@@ -2,7 +2,7 @@
 \header {
   texidoc = "test identifiers."
   }
-\version "2.11.51"
+\version "2.12.0"
 
 num = #3
 mus = { c'4 }
index f936ba779cf99e2cff8e37a6ee8a9a72d4416870..31d9e6f252d66609a15f4ffa8384c0e536de3477 100644 (file)
@@ -4,7 +4,7 @@
 
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 %% to avoid warnings:
 #(set-object-property! 'music 'backend-type? ly:music?)
index 63c0cb5f52780082357bb167b6b23e59209ead0c..f7faa7e09d5a722326861e247d4808027c52d2e5 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
   texidoc = "
index 2f4e98fb9a85b6850c6a7f9a960a32b22457b1a4..55b209d3499ac4ba23b78535a697bdc65bef8671 100644 (file)
@@ -9,7 +9,7 @@ as does the instrument name.  "
 
 }
 
-\version "2.11.51"
+\version "2.12.0"
         
   \new PianoStaff <<
     \new Staff {
index 7d1655a518967abc054787b5468143af41a20610..3af4924721cc301b496bf2939f92c0e9695e1735 100644 (file)
@@ -9,7 +9,7 @@ including alterations. "
 
 \layout { ragged-right = ##t }
 
-\version "2.11.51"
+\version "2.12.0"
 
 textFlat = \markup {\smaller \flat}
 
index 632842ea471a65bb66bfe1b4921139f3909f28a4..87ad6f4dfd5145206d62e196cc55167140aa32f4 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 \header {
   texidoc = "Instrument names are also printed on  partial starting measures."
 }
index c44f507ab03e1a9df4e730e67e72844dac779082..190807c9502a45f45be6aa9c6ef6e7887673fb31 100644 (file)
@@ -8,7 +8,7 @@ the following systems, respectively."
 
 }
 
-\version "2.11.57"
+\version "2.12.0"
 \paper { left-margin = 3\cm }
 \score {
   \new StaffGroup <<
index c48478f877146414837078abe4e096b10c6b79d8..121dd420878248034059a6a4659e0daaeb804111 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 \header{
   texidoc="
 Staff margins are also markings attached to barlines.  They should be
index d3d5d30c1aec2c28f0667d77b770d9b1f8e18349..81235e297a61d31b13f48200b95858ba8c1a5eab 100644 (file)
@@ -5,7 +5,7 @@
 properties for an in staff instrument switch. "
   }
 
-\version "2.11.51"
+\version "2.12.0"
 \addInstrumentDefinition #"bassClar"
   #`((instrumentTransposition . ,(ly:make-pitch -1 6 FLAT))
      (instrumentName . "bla") 
index ca50f5beb6a068e727dac2e0572dc33b012014f8..761f062710823654134893c6545c7b8b0bce14aa 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 \header { texidoc = "Each clef has its own accidental placing
 rules. "}
 
index 1b71b803a5fbcd1dc9841abb949d87aa3d60db72..676e1dc2ef4bc73376e495fab8d18b6d4faef5d8 100644 (file)
@@ -6,7 +6,7 @@
   signature are cancelled."  }
 
 
-\version "2.11.51"
+\version "2.12.0"
 
 \paper {
   ragged-right = ##t
index af13a67cfcabd6ff48d3f58a11573b00f1e18686..8193110ff47034596e957356d72a43914643d25e 100644 (file)
@@ -6,7 +6,7 @@
 
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 \layout {
   ragged-right = ##t
index ca55f36f6a409ac45c2c2dfa89fc5e30a037e6a9..0f74ac2fec1707de5c7acb42ea18de45fe7c4503 100644 (file)
@@ -5,11 +5,11 @@
 
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 {
   \override Staff.KeySignature #'padding-pairs
     = #'((("accidentals.flat" . "accidentals.sharp.slashslash.stemstemstem") . 0.5))
-    \set Staff.keySignature = #`((2 . ,SEMI-FLAT)  (6 . ,THREE-Q-SHARP) (4 . ,FLAT))
+    \set Staff.keySignature = #`((4 . ,FLAT) (6 . ,THREE-Q-SHARP) (2 . ,SEMI-FLAT))
   e2
 }
index ec05e54cd3f240e9a219add34b60a2661f184586..f00fd1c23c6e7864995f2412c6ae1b971a47cd0d 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 
 \header { texidoc = "By setting @code{Staff.keySignature} directly,
 key signatures can be set invidually per pitch.
@@ -11,9 +11,9 @@ key signatures can be set invidually per pitch.
 }
 \relative c'
 \new Staff {
-    \set Staff.keySignature = #`(((1 .  2) . ,SHARP) ((0 . 3) . ,FLAT))
+    \set Staff.keySignature = #`(((0 . 3) . ,FLAT) ((1 .  2) . ,SHARP))
     f8 a c e
-    \set Staff.keySignature = #`(((1 .  2) . ,FLAT) ((0 . 4) . ,DOUBLE-SHARP))
+    \set Staff.keySignature = #`(((0 . 4) . ,DOUBLE-SHARP) ((1 .  2) . ,FLAT))
     e a, g a
 }
 
index 6c72aa62686bb2fe66c15c4b3e4280e68e5badfa..6e7d713c753023fd1b1e0a54bbe33d901a36bece 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 \header{
 texidoc="
 Key signatures may appear on key changes, even without a barline.  
@@ -25,7 +25,7 @@ are created also on a clef change.
     \break
     \key bes \major % \major
     c2 \clef alto c2   \key d \major \clef treble c2
-    \set Staff.keySignature = #`((2 . ,SEMI-FLAT)  (6 . ,THREE-Q-SHARP) (4 . ,FLAT))
+    \set Staff.keySignature = #`((4 . ,FLAT) (6 . ,THREE-Q-SHARP) (2 . ,SEMI-FLAT))
     e2
 }
 
index 3f68a473293a4687e5e2adb6adf7dfdc6a23b17c..840f5b28f85e6047b2afa1d6aadcc960c439a48a 100644 (file)
@@ -5,7 +5,7 @@ premature beam slope calculation. "
 
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 \paper{
   ragged-right=##t
index f1b1ba655a2c8c37c7f3758924ad8c0a243f3f24..934bf27091b391ad1b447364f80513859f027ece 100644 (file)
@@ -10,7 +10,7 @@ They have fixed size. Their formatting can be tuned with
 "
   }
 
-\version "2.11.51"
+\version "2.12.0"
 \paper {
   ragged-right = ##t
 }
index ec339cd6e2cc48dbdefc3983d324db5fe94b20fd..beea8e9dd2501b7e2c51effd3c08d8bcaa615d63 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 #(set-default-paper-size "a6" 'landscape)
 \header { texidoc = " Scores may be printed in landcape mode."}
 
index 78ce5a9a9b88836e0d02a51782dddb0f7c76f800..471818e9d241b651b0e90ec61f1f25b775de6b6f 100644 (file)
@@ -7,7 +7,7 @@ disappearing."
 
 }
 
-\version "2.11.51"
+\version "2.12.0"
 \paper { ragged-right = ##t}
 \relative c'' {
   \time 2/4 
index 822d72ad208629eb0ba87ec961cd876434ca3ccf..04ec6a9f95b7b426bb017b340853ec5ffd0b57f3 100644 (file)
@@ -2,7 +2,7 @@
     texidoc = "Ledger lines are shortened when they are very close. This ensures
 that ledger lines stay separate."
 }
-\version "2.11.51"
+\version "2.12.0"
 
 \layout {
     ragged-right = ##t
index 26c0b4ad6970ecb4475cb5da70d079102903cee0..f7c78d58496acfa74209d6a36aa37e75c53aa4fa 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.52"
+\version "2.12.0"
 \header {
   texidoc = "Ledger lines should appear at every other location
 for a variety of staves using both @code{line-count} and
index 49b976b66b86e73c94143c432df416c43463998f..756559c919d08472447824a3bc735b13abb2ebf7 100644 (file)
@@ -2,7 +2,7 @@
   texidoc = "The ligature bracket right-end is not affected by other voices."
 }
 
-\version "2.11.51"
+\version "2.12.0"
 <<
        \new Staff {\[b2 b\]   | \[b b\] }
        \new Staff {b2 b       | b4 b b b }
index 2a0cd8b0d3a27c5d2ab1d2285f75697d95b6333b..e9b34f6ec5e361abdd947ce160a5268be061994c 100644 (file)
@@ -12,7 +12,7 @@ the @code{TextScript} grob.
           
       }
 
-\version "2.11.51"
+\version "2.12.0"
 \layout { ragged-right = ##t }
 
 withPaddingA = #(define-music-function (parser location padding music) (number? ly:music?)
index dd4c8f4d39e45d48f17ebacf156337a2983c28fd..fad16d41594406bdcc64ca05c823568f546bb225 100644 (file)
@@ -2,7 +2,7 @@
   texidoc = "Arrows can be applied to text-spanners and line-spanners (such as the Glissando)"
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 \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-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 #'(bound-details right arrow) = ##t
   \override Glissando #'arrow-length = #0.5
   \override Glissando #'arrow-width = #0.25
   
index e42e398c878dc0e177cac9d421540b60d99f2b2b..e55b6ec602aff0d1789e15552b30b5e5acc47393 100644 (file)
@@ -5,7 +5,7 @@
 
 }
 
-\version "2.11.53"
+\version "2.12.0"
 
 \relative {
   \override Staff.OttavaBracket #'dash-period = #0.1
index 130d7fa764419295b9ed3809771332512c93f209..c370429bd26e7b21a9fb8a6ba716ab37bc32a08a 100644 (file)
@@ -5,7 +5,7 @@ starts and ends on a full dash. "
 
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 \layout {
   indent = 0.0\mm
index 72fd521a54268564b6db121bb81bf58eb6ebe294..e2de30aedc3afb55796821896557c3b3b283e5a2 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.61"
+\version "2.12.0"
 
 \header {
   texidoc = "Setting @code{'zigzag} style for spanners does not
index 49909e8657f84710a2255ec52ad025a5e107dfb2..e2b9c99b73dba7ac8396ba9053812d6e564bb525 100644 (file)
@@ -2,7 +2,7 @@
   texidoc = "Cover all line styles available"
   
 }
-\version "2.11.51"
+\version "2.12.0"
 \paper {
   ragged-right = ##T
 }
index f8461c12eb85eed80c2df8498eee2c4b5e43b01b..35824868cc6b99ae83795936199df2c3126c776c 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 \header {
   texidoc = "With the @code{\\lyricsto} mechanism, individual lyric
     lines can be associated with one melody line. Each lyric line
index cf6db89a20a1128f6e810207b25445f4babd4f55..1420c43521591258f8a7e00472a2170404b8f61c 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 \header {
 
   texidoc ="Polyphonic rhythms and rests do not disturb
index 88ea4064e5ef7f25380d3dc2e10ad2f23485a006..ac2c7a42869e7c1c87c312daf6af8a6e01477780 100644 (file)
@@ -2,7 +2,7 @@
 {
 texidoc = "switching voices in the middle of the lyrics is possible using @code{lyricsto}."
   }
-\version "2.11.51"
+\version "2.12.0"
 
 <<
   \relative \new Voice = "lahlah" {
index 02be517ebc6586b88c3d6c1c9fcfbfac1276eb15..adc362e02be56753284f7a026b3244bf97bc5e7a 100644 (file)
@@ -5,7 +5,7 @@ if the switch occurs together with context instantiation."
 
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 <<
   \relative \new Voice = "lahlah" {
index 1f35e71167c5ad7ff3d32424f22daa64f44751bc..424653ee48d3530eb2aa88b142b1ec8f1494c4ed 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 
 \header{
 
index 0517f2c9da87ea22b0ef49f43801bac9ea7e7343..f35111b316e8daf77b1de36df72af7b27fddd07c 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 \header
 {
 
index 5e5cbcdacfda13ecd78ec7a943a31e9fe8004d0e..8bafe341910f928285ea06a66dd85e354b40a497 100644 (file)
@@ -6,7 +6,7 @@ without a lyric attached."
   
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 \layout {
   ragged-right = ##t
index 2e6625923390fb0b9152d4fbe4a31483fde5240b..ccf9aff74db6852eab1a36068a40e563177e5f42 100644 (file)
@@ -10,7 +10,7 @@ is not terminated upon encountering a rest. "
   ragged-right = ##T
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 <<
   \new Voice = "one" \relative c'' {
index ca677fe0efc40f772e4e316b419032f4f3fffa73..0317b53493728000adafe81cb2c428a8c152901e 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 \header {
   texidoc = "Extenders will not protrude into the right margin"
   }
index 9f69704bacd6380e30aea96d6550d738c5cb6ae0..07cbce7772d84004977ec780d8f16fcf42b28500 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
 
index c724992f2e20b70ff720b39c5a6704f58ffd4197..4e906329ac718ed9b525342ae112241a6d67b599 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
 
index 787e313a9e6e84efc3a4db1a6c785b2cd4d9140a..e567981a87ba2e1b109c58539306e6e2f6367057 100644 (file)
@@ -14,7 +14,7 @@ effect of a setting is delayed is one syllable."
 
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 \layout {
   ragged-right = ##t
index a0d9e7a069c115d1a439a14c8483fe6e97b00ed8..ae3ea0e7eb75d84d608b14d3a5322112e4e13414 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 \header {
     texidoc = "In lyrics, hyphens may be used."
 }
index 3b9426d04b9d19403a5b875e7059cde0638dc8d6..4072c40d7bb20c0f2e0ab4c37a9191424d772554 100644 (file)
@@ -5,7 +5,7 @@
 
 }
 
-\version "2.11.51"
+\version "2.12.0"
 \paper {
   ragged-right = ##t
 }
index a724e5db1cab253893357577714d407f84e1f6f3..4003d721f4b0a6b0456e31a092176a35f1cf1096 100644 (file)
@@ -8,7 +8,7 @@
 }
 
 
-\version "2.11.51"
+\version "2.12.0"
 \layout { ragged-right = ##t }
 
 \score {
index 8fc5495dd3b94ad71b4beb1c2d24cc4b57191c6c..93d143c6e49318086cdd69b7ba668ca2d79e3a3f 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 \header {
 
   texidoc = "
index 1ff8271245125f78437ff8e39af3a7a3723f224c..049bb4a47d0e380d3184a8a66117b73da5a5f220 100644 (file)
@@ -3,7 +3,7 @@
 texidoc = "Tildes in lyric syllables are converted to tie symbols."
   }
 
-\version "2.11.51"
+\version "2.12.0"
 
 \lyrics {
   wa~o~a 
index 48beb4ac62f514d7a8922100ce37a109c1cd1544..d168464638e70a6a475bb0f343d085161e48045c 100644 (file)
@@ -5,7 +5,7 @@
 
 }
 
-\version "2.11.51"
+\version "2.12.0"
 \paper {
   ragged-right = ##t
 }
index 2f60761fa00e266bb0d440564d2e30c027cf4272..f8b7d83575ad9f73d981d43b806c070e2f13638f 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header{
 texidoc="
index 92f40932d8b0ec1190e057b11d990e431394ec88..008bb69e7b216593cc54799477aa71319fea53e7 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 \header
 {
   texidoc = "Melismata are triggered by manual beams." 
index f4b447f98a5b3bfa05676d5ffd0c4f110a95b5e0..3c6ef07e790dd3eb4fe54118954dde5d55a25de1 100644 (file)
@@ -6,7 +6,7 @@ paper column is very wide."
  
 \layout{ ragged-right = ##t }
 
-\version "2.11.51"
+\version "2.12.0"
 <<
   \new Staff \relative c' {
     \key aes \major
index 8314d09d1c0f184b571845181d9a4566c637c37e..bc1f016967bc3fd3e6e52d7e42228c3da5b9c982 100644 (file)
@@ -2,7 +2,7 @@
     texidoc = "Lyrics are not lowered despite the presence of an octavation 8."
 }
 
-\version "2.11.51"
+\version "2.12.0"
 \layout {
     \context {
        \Staff
index c95a5571eec7dab124d3ff4a178cb5c98a267133..aaa4d0cbe2af3a3d51803655936506313fc0eba1 100644 (file)
@@ -26,4 +26,4 @@
   }
 }
 
-\version "2.11.51"
+\version "2.12.0"
index 54665109456ae529b1cf652232adfb43e6f841d7..e950beaa6654356f48f64509b6b23959ab82b572 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
 
index a2e1e4cad7edc26a4fc21dbae2d6368913c40b49..5d5a2c56c49e5d00bbdafabdb61322b79cb55731 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.57"
+\version "2.12.0"
 \header {
 
 texidoc = "Fixed horizontal alignment of columns of text can be set using
index d56128976e60873061a5945c0980bbe6c938304a..688cd2e6a614f729a0b49fcd1658762bbb3a0c02 100644 (file)
@@ -5,7 +5,7 @@
 
 }
 \paper { ragged-right = ##T }
-\version "2.11.51"
+\version "2.12.0"
 
 {
   g'_\markup {
index 87300b363b620183e8404a546b3dd0bfbfbb262b..224af32c2484c9cd3bfbab8c33fe597228d22b39 100644 (file)
@@ -3,7 +3,7 @@
   texidoc = "The epsfile markup command reads an EPS file"
 
 }
-\version "2.11.51"
+\version "2.12.0"
 
 #(let* ((port (open-output-file "box.eps")))
 
diff --git a/input/regression/markup-eyeglasses.ly b/input/regression/markup-eyeglasses.ly
new file mode 100644 (file)
index 0000000..6b47237
--- /dev/null
@@ -0,0 +1,6 @@
+\header {
+  texidoc = "The eyeglasses markup function prints out eyeglasses."
+}
+\version "2.12.3"
+
+\relative c'' { \mark \markup{ \eyeglasses } c4_\markup{ \eyeglasses } }
index ca6049cf108a113deaba2701d9fbb69f51292930..2738783884693ce776d505012aaa5e41f9c7ffc6 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
 
index 73cad276ee67e04f3134730c7559324599f20798..03500ebfd1f96727c5b63f5487cc0456829e4f72 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
   texidoc = "Text that can spread over pages is entered with the
index 795b1a36ec3b506fafae6dd68eb0d3f90a703a21..7fddd618c4f48b7a85945c381e87becd695b34d0 100644 (file)
@@ -4,7 +4,7 @@
 
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 {
   c'^\markup
index 188b4dfbc93fb4a16d92c4179909d230ec1f1037..1c5f807765ea5c3447977d2b6e845a38887a904c 100644 (file)
@@ -1,20 +1,13 @@
-
+\version "2.12.0"
 \header {
 
   texidoc = " A dotted whole note displayed via the @code{\\note}
   command must separate the note head and the dot. The dot avoids the upflag."
 
        }
-\paper {
-  packed = ##T
-}
-
-\version "2.11.51"
 
-
-\relative {
-  c^\markup { \note #"1." #1 }
-  c^\markup { \note #"2." #1 }
-  c^\markup { \note #"8." #1 }
+\relative c' {
+  c4^\markup { \note #"1." #1 }
+  c4^\markup { \note #"2." #1 }
+  c4^\markup { \note #"8." #1 }
 }
-
index 5ea9ceb6a7413c3bd4f4d553af04493801cc0aaa..0cdc526b35e32890e049aba451e61ef20011082c 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.11.51"
+\version "2.12.0"
 
 \relative c''
 {
index 12a97c0ee9497ec1fa212f85f54d229c8f135565..1e4295c80496c6e1181cec423480b2528fd2eb07 100644 (file)
@@ -25,7 +25,7 @@ For maintenance reasons, we don't excercise the entire markup command set.
 
 
 
-\version "2.11.51"
+\version "2.12.0"
 
 {
   \textLengthOn
index ba8d05638218934ec7a6200bb28257ecab156e81..8c686ec5ba51fc9007238b4144f245379c951963 100644 (file)
@@ -2,7 +2,7 @@
     texidoc = "Use \\score block as markup command."
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 tuning = \markup {
     \score {
index a318adc39665eaea89508647f258e7af9202a5bc..4d84c3e2c1f5917741eaa9a05fd3d982c28f210d 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 \header {texidoc="Markup scripts may be stacked."}
 \layout { ragged-right = ##t}
 {
index 3505e989c6a603549e03e302c3f9643fd8a03082..8a59a454b6dbfdb9e0c52f88e4ff776112857ec6 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
   texidoc = "Demo of markup texts, using LilyPond syntax."
index 2619982d28945ff1f9a80042824888da947eaff5..637734706063cfddee3c1efa8055dd108ae1e425 100644 (file)
@@ -9,7 +9,7 @@ the @code{define-markup-command} scheme macro."
   
 
 
-\version "2.11.51"
+\version "2.12.0"
 
 #(define-markup-command (upcase paper props str) (string?)
   "Upcase the string characters. Syntax: \\upcase #\"string\""
index e1d1c17a90002c3b54efe3f5a55b7285c022c573..ef9e5b065dfc776e0f18b7aec3f9811c30015bcd 100644 (file)
@@ -5,7 +5,7 @@
 
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 \markup {
   this is normal  text
index 84caac7eb95e83371a43ee402207937cd5929ebe..3ddb019925f71cf619e0c9f6c43cd065b3e956f5 100644 (file)
@@ -7,7 +7,7 @@ brackets above beats when the beats of a time signature are grouped.  "
 
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 \layout  {
   ragged-right = ##t
index 981c9080c63d49aa066bc73fa9d2deea003d7615..787cde444b80026db9ad4f5250a742670991608d 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
   texidoc = "Mensural ligatures show different shapes, depending on the
@@ -8,20 +8,24 @@
 
 \layout {
   ragged-right = ##t
-  packed = ##t
   indent = 0.0
   \context {
     \Voice
-    \remove Ligature_bracket_engraver
-    \consists Mensural_ligature_engraver
+    \remove "Ligature_bracket_engraver"
+    \consists "Mensural_ligature_engraver"
+  }
+  \context {
+    \Score
+    \override SpacingSpanner #'packed-spacing = ##t
   }
 }
 
-\context Voice{
+\context Voice {
   \clef "petrucci-c4"
   \set Staff.printKeyCancellation = ##f
   \cadenzaOn % turn off bar lines
   #(set-accidental-style 'forget)
+  \textLengthOn
 
                                % ligaturae binaria
 
index b64d6cf726a748dec9345389884ec6e6e7022366..e5b2477648d9518265fceb6a9ffaf38e67752c32 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 \header {
   
   texidoc = "There is limited support for mensural notation: note head
index 2e3fa860d27f091c5a3bb2c96ceef9933e05c9e9..409687cdfb313ed658a17d320927260a08e11059 100644 (file)
@@ -14,7 +14,7 @@ The marking is left aligned with the time signature, if there is one.
 
 \layout {  ragged-right = ##t }
 
-\version "2.11.51"
+\version "2.12.0"
 
 \relative c'' {
   \tempo \breve = 100 c1 c1 \tempo 8.. = 50 c1
index ef32ccceb2d0debac2856535474e906d62a1b489..97a4bc7d18264e95e56691a880d5d2e0b582f29a 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header{
   texidoc="
index 8282dbcc3cdf995f30c73ced9d34bc6c751a0f05..44d0bd23c9532a4512146ddabdc5489d3b8efa67 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header{
   texidoc="
index 98e2df3dbdd40e836eccc8a5b2acb6450b4de42e..bd00285cf29084e0116eba7bb15c2c2d2d2ff788 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51
+\version "2.12.0
 \header {
   texidoc = "Midi can create drums."
 }
index cace5cf4daea584383008c1ce71be1d8dea1a1c1..ee18823a3daec7280f99663e0309beb7c9aed42d 100644 (file)
@@ -5,7 +5,7 @@
 
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 \score {
   \relative {
index f89063e277f85c78045989629da08bf952c08668..4f5feffc666e514e87708870138e2cd1a085ad0f 100644 (file)
@@ -5,7 +5,7 @@
 off will appear at tick 768 (2 * 384)."
   
 }
-\version "2.11.51"
+\version "2.12.0"
 \score {
  \relative c' {
    c4
index 6f6db96a532ac5259f8b3cc1d898114ae25bc1cd..42ba0fbe0d146be21341f2353b871d9de1600902 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 \header {
 
     texidoc = "Lyrics in MIDI are aligned to ties and beams:
index f254fb2da5c1a0c15099e118d4a268634ae264dc..893ed44626fe2f1cc64ffb62aa8a4038269a28d3 100644 (file)
@@ -4,7 +4,7 @@
   the next (possibly grace) note.  "
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 \score
 {
index 698befe2484a4776c632a457d05877e423a0744b..478c9252348aed8d34af7b5b137c8b6ae8239dde 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 \header {
   texidoc = "The pitch wheel is used for microtones."
   }
index 9c52fe51e99d24b7ee591b256ca92baa3bc7a5b7..d5aad2d06a33183c119bdef34c7f3f14efd2719c 100644 (file)
@@ -1,7 +1,7 @@
 \header {
   texidoc = "MIDI and partial measures work together."
 }
-\version "2.11.51"
+\version "2.12.0"
   
 \score {
   { \partial 4
index 36cdf2b62f9d48a15313a2850cb9cc95f0a3633e..c5999021647a0b339cbedac7a7408e6ed3af45eb 100644 (file)
@@ -5,7 +5,7 @@
 
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 \score {
   \relative {
index 379ed9542b5905dc266d33fc9e9dafa8df1bf39e..9c7ae95b06b666c313fc609eb4bd4480841c7b24 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 % candidate for regression.  -gp
 \header {
   texidoc="Converting LilyPond input to MIDI and then again back with
index 06c729e13f7c44ba2193cc6029f2286b5fe24018..8c6da9a33dc720915018d4ac3e79bac1f191adf7 100644 (file)
@@ -2,7 +2,7 @@
 {
   texidoc =  "should deliver f' in MIDI"
 }
-\version "2.11.51"
+\version "2.12.0"
 
 \score {
   {
index e0235b52455ec735fff9c1ff8c5797634ec61269..89fbe822c20eb1eb06fb65c8f1dcc1fae924b00b 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 \header {
 texidoc = "
 
index 8f87a740783dd13075f1a8b68785debd8f0f0f27..7586ae4a355f86bd29b1385e3e4f64b590ee01e1 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 \header {
   texidoc = "@cindex Midi Volume Equaliser
 The full orchestra plays a note, where groups stop one after
index e209287275ae81ab4055fd19ff8c79b234a4289b..e997d55b4879f6299d4203dc468f750b146c686b 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 
 \header{
   texidoc="
index 781ed5c4a21dde68e8bef8fd495980253affc9c6..9189e0c6a870caef5b438ba91f1741fef3ffae7e 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 \header
 {
   texidoc = "The multimeasure rest is centered exactly between bar lines."
index aca8f0b093f2ce03d07a6108a9cf6abc052f8e8f..22eaae2cd0db702795436b529316429135c65eb4 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header
 {
index 577b55b5d63c4743c41762fadf38d24ffec01d57..1e5d20359f4b307dbbe115ceedc32343b9ebde4e 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 
 \header {
index 0def9abbd27c3c9398702e40bb756a014ad0e8cf..70c01d70fadafc6873bdd33f2dcf7e9f2dd01596 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 \header {
 
   texidoc = "There are both long and short instrument names.
index a6cbd86151e71b992483d486c2b110317401054d..14ddd436cf39006676525c8af499df19e54c6803 100644 (file)
@@ -4,7 +4,7 @@ independent on prefatory matter in other staves."
        }
 
 
-\version "2.11.51"
+\version "2.12.0"
 \layout { ragged-right = ##t }
 
 
index 1aaa6298d526c8d9c08702998383d0d80cbf2f25..e0f268b176d8aaa6b8456b3dad575f758672ca15 100644 (file)
@@ -8,7 +8,7 @@ extra spacing column is created. This should not cause problems."
     ragged-right = ##t
   }
 
-\version "2.11.51"
+\version "2.12.0"
 
 
 <<
index 1df15fcb19736f19c2a07705076287a99754f924..05ab44cd8120c4f18b761aae1f2d7c62476a8edc 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.57"
+\version "2.12.0"
 
 \header  {
 
index 14e6ecc4b29313ed716be47f26a4b692f2e6743b..9bb8af348f5ce1144086b7f5326696e6ed74d4ae 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 \header{
 
   texidoc="For longer measure lengths, the breve rest is used."
index e56edbf99a00005f2728bfd7007f128cb7fca6db..7edfd5939e1bfb132a0578eecbdf632ae143f139 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 \header{
 
   texidoc="
index 3250372274303212bc71d325dd79c2baba3d6286..510af5eddd71d7a915128b3b8370dc81ba2a81ba 100644 (file)
@@ -6,7 +6,7 @@ end span events at the end of a note."
   
 }
 
-\version "2.11.51"
+\version "2.12.0"
 \paper{
   ragged-right = ##T
 }
index 5424dede7c3c1971ab6d52d8286778f407f97e39..6a6ade9ce35b842a038be5f02268c6b58c6b8942 100644 (file)
@@ -7,7 +7,7 @@ demonstrate a @code{\myBar} function, which works similar to
 @code{\bar}, but is implemented completely in Scheme."
 
 }
-\version "2.11.51"
+\version "2.12.0"
 
 myBar = #(define-music-function (parser location bar-type) (string?)
           (context-spec-music
index 3afea4a35b1072bc263b571c9c449525149518d0..661dc03511970f36156483fcb6bccfd1baeadc8b 100644 (file)
@@ -10,7 +10,7 @@ and dynamics are left over. These are put onto the 2nd measure."
 
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 #(define (notes-to-skip m)
   "Convert all stuff with duration (notes, lyrics, bass figures, etc.) to skips.
diff --git a/input/regression/musicxml/00-Introduction.itexi b/input/regression/musicxml/00-Introduction.itexi
new file mode 100644 (file)
index 0000000..475daa6
--- /dev/null
@@ -0,0 +1,72 @@
+@menu
+* Introduction ::
+* Test cases ::
+@end menu
+
+@node Introduction
+@chapter Introduction
+
+@heading Why a MusicXML test suite?
+
+This test suite of sample @uref{http://www.musicxml.org/,MusicXML} files
+is supposed to fill a severe gap for all developers implementing MusicXML
+support in their application: There is no complete test suite of MusicXML
+files available for testing purposes.
+
+@heading Downloading the test suite
+
+The complete set of MusicXML test files contained in this suite can be downloaded
+@uref{MusicXML-TestSuite-0.1.zip,here} as a ZIP archive.
+
+@heading Connection with @uref{http://www.lilypond.org/,LilyPond}
+
+At the same time as providing a generic test suite for MusicXML document,
+this test suite also serves as proofs for the musicxml2ly script provided with
+LilyPond @lilypondversion. The images shown in the @ref{Test cases} chapter
+were generated by running @command{musicxml2ly} and @command{lilypond} on
+the MusicXML files. As @command{musicxml2ly} does not yet perfectly support
+every single aspect of MusicXML, the output is not supposed to be used as 
+a definitive reference rendering, but rather as an indication how one 
+particular application supports and interprets each of the test files.
+
+If something does not seem right in the output, it might either be that this
+feature has not been implemented yet, has been wrongly implemented, or a 
+regression has crept in recently...
+
+In the web version of this document, you can click on the file name 
+or figure for each example to see the corresponding .ly intermediary file.
+
+@heading Structure of this test suite 
+
+Each test file (typically hand-crafted from the MusicXML "specification")
+checks one particular aspect of MusicXML. A short description of the 
+particular feature for a file is given element inside the file in a comment 
+element of the form:
+@example
+  <identification><miscellaneous>
+    <miscellaneous-field name="description"> .... </miscellaneous-field>
+  </miscellaneous></identification>
+@end example
+
+
+The files are categorized by their first two digits with the following meaning:
+@itemize
+@item 01-03 ... Basics: Pitches, Rests, Rhythm
+@item 11-13 ... Staff attributes: Time signatures, Clefs, Key signatures
+@item 21-24 ... Note settings: Chorded notes, note heads, tuplets, grace notes
+@item 31-33 ... Notations and articulations: Dynamics (staff-attached), Notations (note-attached), Spanners
+@item 41-44 ... Parts: Multiple parts, multi-voice parts, multi-staff parts
+@item 45-46 ... Measure issues and repeats
+@item 51-52 ... Page issues: Header fields, page layout
+@item 55-59 ... Exact positioning of items, offsets, etc.
+@item 61-69 ... Vocal music
+@item 71-75 ... Instrument-specific: Guitar (Chord, fretboards), Transposing instruments, Percussion, Figured Bass, Others
+@item 81-89 ... MIDI generation (all sound-related issues)
+@item 90-99 ... Various Other: Compressed MusicXML files, compatibility with broken MusicXML files exported by other applications
+@end itemize
+
+Some of the catetories (in particular the exact item positioning and the
+MIDI generation don'thave any test cases yet.
+
+@node Test cases
+@chapter Test cases
diff --git a/input/regression/musicxml/00a-Basics-Pitches.xml b/input/regression/musicxml/00a-Basics-Pitches.xml
deleted file mode 100644 (file)
index 9edd9ab..0000000
+++ /dev/null
@@ -1,1286 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
-                                "http://www.musicxml.org/dtds/partwise.dtd">
-<score-partwise>
-  <movement-title>Pitches and accidentals</movement-title>
-  <identification>
-    <creator type="composer">Reinhold Kainhofer</creator>
-  </identification>
-  <part-list>
-    <score-part id="P1">
-      <part-name>MusicXML Part</part-name>
-      <score-instrument id="P1-I1">
-        <instrument-name>Acoustic Grand Piano</instrument-name>
-      </score-instrument>
-      <midi-instrument id="P1-I1">
-        <midi-channel>1</midi-channel>
-        <midi-program>1</midi-program>
-      </midi-instrument>
-    </score-part>
-  </part-list>
-  <!--=========================================================-->
-  <part id="P1">
-    <measure number="1">
-      <attributes>
-        <divisions>1</divisions>
-        <key>
-          <fifths>0</fifths>
-          <mode>major</mode>
-        </key>
-        <time symbol="common">
-          <beats>4</beats>
-          <beat-type>4</beat-type>
-        </time>
-        <clef>
-          <sign>G</sign>
-          <line>2</line>
-        </clef>
-      </attributes>
-      <sound tempo="120"/>
-      <note>
-        <pitch>
-          <step>G</step>
-          <octave>2</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>up</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>A</step>
-          <octave>2</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>up</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>B</step>
-          <octave>2</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>up</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>3</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>up</stem>
-      </note>
-    </measure>
-    <!--=======================================================-->
-    <measure number="2">
-      <note>
-        <pitch>
-          <step>D</step>
-          <octave>3</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>up</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>E</step>
-          <octave>3</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>up</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>F</step>
-          <octave>3</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>up</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>G</step>
-          <octave>3</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>up</stem>
-      </note>
-    </measure>
-    <!--=======================================================-->
-    <measure number="3">
-      <note>
-        <pitch>
-          <step>A</step>
-          <octave>3</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>up</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>B</step>
-          <octave>3</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>up</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>up</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>D</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>up</stem>
-      </note>
-    </measure>
-    <!--=======================================================-->
-    <measure number="4">
-      <note>
-        <pitch>
-          <step>E</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>up</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>F</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>up</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>G</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>up</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>A</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>up</stem>
-      </note>
-    </measure>
-    <!--=======================================================-->
-    <measure number="5">
-      <note>
-        <pitch>
-          <step>B</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>down</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>down</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>D</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>down</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>E</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>down</stem>
-      </note>
-    </measure>
-    <!--=======================================================-->
-    <measure number="6">
-      <print new-system="yes"/>
-      <note>
-        <pitch>
-          <step>F</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>down</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>G</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>down</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>A</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>down</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>B</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>down</stem>
-      </note>
-    </measure>
-    <!--=======================================================-->
-    <measure number="7">
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>6</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>down</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>D</step>
-          <octave>6</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>down</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>E</step>
-          <octave>6</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>down</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>F</step>
-          <octave>6</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>down</stem>
-      </note>
-    </measure>
-    <!--=======================================================-->
-    <measure number="8">
-      <note>
-        <pitch>
-          <step>G</step>
-          <octave>6</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>down</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>A</step>
-          <octave>6</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>down</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>B</step>
-          <octave>6</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>down</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>7</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>down</stem>
-      </note>
-    </measure>
-    <!--=======================================================-->
-    <measure number="9">
-      <note>
-        <pitch>
-          <step>G</step>
-          <alter>1</alter>
-          <octave>2</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <accidental>sharp</accidental>
-        <stem>up</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>A</step>
-          <alter>1</alter>
-          <octave>2</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <accidental>sharp</accidental>
-        <stem>up</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>B</step>
-          <alter>1</alter>
-          <octave>2</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <accidental>sharp</accidental>
-        <stem>up</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step>
-          <alter>1</alter>
-          <octave>3</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <accidental>sharp</accidental>
-        <stem>up</stem>
-      </note>
-    </measure>
-    <!--=======================================================-->
-    <measure number="10">
-      <note>
-        <pitch>
-          <step>D</step>
-          <alter>1</alter>
-          <octave>3</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <accidental>sharp</accidental>
-        <stem>up</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>E</step>
-          <alter>1</alter>
-          <octave>3</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <accidental>sharp</accidental>
-        <stem>up</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>F</step>
-          <alter>1</alter>
-          <octave>3</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <accidental>sharp</accidental>
-        <stem>up</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>G</step>
-          <alter>1</alter>
-          <octave>3</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <accidental>sharp</accidental>
-        <stem>up</stem>
-      </note>
-    </measure>
-    <!--=======================================================-->
-    <measure number="11">
-      <print new-system="yes"/>
-      <note>
-        <pitch>
-          <step>A</step>
-          <alter>1</alter>
-          <octave>3</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <accidental>sharp</accidental>
-        <stem>up</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>B</step>
-          <alter>1</alter>
-          <octave>3</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <accidental>sharp</accidental>
-        <stem>up</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step>
-          <alter>1</alter>
-          <octave>4</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <accidental>sharp</accidental>
-        <stem>up</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>D</step>
-          <alter>1</alter>
-          <octave>4</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <accidental>sharp</accidental>
-        <stem>up</stem>
-      </note>
-    </measure>
-    <!--=======================================================-->
-    <measure number="12">
-      <note>
-        <pitch>
-          <step>E</step>
-          <alter>1</alter>
-          <octave>4</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <accidental>sharp</accidental>
-        <stem>up</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>F</step>
-          <alter>1</alter>
-          <octave>4</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <accidental>sharp</accidental>
-        <stem>up</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>G</step>
-          <alter>1</alter>
-          <octave>4</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <accidental>sharp</accidental>
-        <stem>up</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>A</step>
-          <alter>1</alter>
-          <octave>4</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <accidental>sharp</accidental>
-        <stem>up</stem>
-      </note>
-    </measure>
-    <!--=======================================================-->
-    <measure number="13">
-      <note>
-        <pitch>
-          <step>B</step>
-          <alter>1</alter>
-          <octave>4</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <accidental>sharp</accidental>
-        <stem>down</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step>
-          <alter>1</alter>
-          <octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <accidental>sharp</accidental>
-        <stem>down</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>D</step>
-          <alter>1</alter>
-          <octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <accidental>sharp</accidental>
-        <stem>down</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>E</step>
-          <alter>1</alter>
-          <octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <accidental>sharp</accidental>
-        <stem>down</stem>
-      </note>
-    </measure>
-    <!--=======================================================-->
-    <measure number="14">
-      <note>
-        <pitch>
-          <step>F</step>
-          <alter>1</alter>
-          <octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <accidental>sharp</accidental>
-        <stem>down</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>G</step>
-          <alter>1</alter>
-          <octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <accidental>sharp</accidental>
-        <stem>down</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>A</step>
-          <alter>1</alter>
-          <octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <accidental>sharp</accidental>
-        <stem>down</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>B</step>
-          <alter>1</alter>
-          <octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <accidental>sharp</accidental>
-        <stem>down</stem>
-      </note>
-    </measure>
-    <!--=======================================================-->
-    <measure number="15">
-      <note>
-        <pitch>
-          <step>C</step>
-          <alter>1</alter>
-          <octave>6</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <accidental>sharp</accidental>
-        <stem>down</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>D</step>
-          <alter>1</alter>
-          <octave>6</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <accidental>sharp</accidental>
-        <stem>down</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>E</step>
-          <alter>1</alter>
-          <octave>6</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <accidental>sharp</accidental>
-        <stem>down</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>F</step>
-          <alter>1</alter>
-          <octave>6</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <accidental>sharp</accidental>
-        <stem>down</stem>
-      </note>
-    </measure>
-    <!--=======================================================-->
-    <measure number="16">
-      <print new-system="yes"/>
-      <note>
-        <pitch>
-          <step>G</step>
-          <alter>1</alter>
-          <octave>6</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <accidental>sharp</accidental>
-        <stem>down</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>A</step>
-          <alter>1</alter>
-          <octave>6</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <accidental>sharp</accidental>
-        <stem>down</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>B</step>
-          <alter>1</alter>
-          <octave>6</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <accidental>sharp</accidental>
-        <stem>down</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step>
-          <alter>1</alter>
-          <octave>7</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <accidental>sharp</accidental>
-        <stem>down</stem>
-      </note>
-    </measure>
-    <!--=======================================================-->
-    <measure number="17">
-      <note>
-        <pitch>
-          <step>G</step>
-          <alter>-1</alter>
-          <octave>2</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <accidental>flat</accidental>
-        <stem>up</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>A</step>
-          <alter>-1</alter>
-          <octave>2</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <accidental>flat</accidental>
-        <stem>up</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>B</step>
-          <alter>-1</alter>
-          <octave>2</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <accidental>flat</accidental>
-        <stem>up</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step>
-          <alter>-1</alter>
-          <octave>3</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <accidental>flat</accidental>
-        <stem>up</stem>
-      </note>
-    </measure>
-    <!--=======================================================-->
-    <measure number="18">
-      <note>
-        <pitch>
-          <step>D</step>
-          <alter>-1</alter>
-          <octave>3</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <accidental>flat</accidental>
-        <stem>up</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>E</step>
-          <alter>-1</alter>
-          <octave>3</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <accidental>flat</accidental>
-        <stem>up</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>F</step>
-          <alter>-1</alter>
-          <octave>3</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <accidental>flat</accidental>
-        <stem>up</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>G</step>
-          <alter>-1</alter>
-          <octave>3</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <accidental>flat</accidental>
-        <stem>up</stem>
-      </note>
-    </measure>
-    <!--=======================================================-->
-    <measure number="19">
-      <note>
-        <pitch>
-          <step>A</step>
-          <alter>-1</alter>
-          <octave>3</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <accidental>flat</accidental>
-        <stem>up</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>B</step>
-          <alter>-1</alter>
-          <octave>3</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <accidental>flat</accidental>
-        <stem>up</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step>
-          <alter>-1</alter>
-          <octave>4</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <accidental>flat</accidental>
-        <stem>up</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>D</step>
-          <alter>-1</alter>
-          <octave>4</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <accidental>flat</accidental>
-        <stem>up</stem>
-      </note>
-    </measure>
-    <!--=======================================================-->
-    <measure number="20">
-      <note>
-        <pitch>
-          <step>E</step>
-          <alter>-1</alter>
-          <octave>4</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <accidental>flat</accidental>
-        <stem>up</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>F</step>
-          <alter>-1</alter>
-          <octave>4</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <accidental>flat</accidental>
-        <stem>up</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>G</step>
-          <alter>-1</alter>
-          <octave>4</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <accidental>flat</accidental>
-        <stem>up</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>A</step>
-          <alter>-1</alter>
-          <octave>4</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <accidental>flat</accidental>
-        <stem>up</stem>
-      </note>
-    </measure>
-    <!--=======================================================-->
-    <measure number="21">
-      <print new-system="yes"/>
-      <note>
-        <pitch>
-          <step>B</step>
-          <alter>-1</alter>
-          <octave>4</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <accidental>flat</accidental>
-        <stem>down</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step>
-          <alter>-1</alter>
-          <octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <accidental>flat</accidental>
-        <stem>down</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>D</step>
-          <alter>-1</alter>
-          <octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <accidental>flat</accidental>
-        <stem>down</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>E</step>
-          <alter>-1</alter>
-          <octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <accidental>flat</accidental>
-        <stem>down</stem>
-      </note>
-    </measure>
-    <!--=======================================================-->
-    <measure number="22">
-      <note>
-        <pitch>
-          <step>F</step>
-          <alter>-1</alter>
-          <octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <accidental>flat</accidental>
-        <stem>down</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>G</step>
-          <alter>-1</alter>
-          <octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <accidental>flat</accidental>
-        <stem>down</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>A</step>
-          <alter>-1</alter>
-          <octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <accidental>flat</accidental>
-        <stem>down</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>B</step>
-          <alter>-1</alter>
-          <octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <accidental>flat</accidental>
-        <stem>down</stem>
-      </note>
-    </measure>
-    <!--=======================================================-->
-    <measure number="23">
-      <note>
-        <pitch>
-          <step>C</step>
-          <alter>-1</alter>
-          <octave>6</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <accidental>flat</accidental>
-        <stem>down</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>D</step>
-          <alter>-1</alter>
-          <octave>6</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <accidental>flat</accidental>
-        <stem>down</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>E</step>
-          <alter>-1</alter>
-          <octave>6</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <accidental>flat</accidental>
-        <stem>down</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>F</step>
-          <alter>-1</alter>
-          <octave>6</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <accidental>flat</accidental>
-        <stem>down</stem>
-      </note>
-    </measure>
-    <!--=======================================================-->
-    <measure number="24">
-      <note>
-        <pitch>
-          <step>G</step>
-          <alter>-1</alter>
-          <octave>6</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <accidental>flat</accidental>
-        <stem>down</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>A</step>
-          <alter>-1</alter>
-          <octave>6</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <accidental>flat</accidental>
-        <stem>down</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>B</step>
-          <alter>-1</alter>
-          <octave>6</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <accidental>flat</accidental>
-        <stem>down</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step>
-          <alter>-1</alter>
-          <octave>7</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <accidental>flat</accidental>
-        <stem>down</stem>
-      </note>
-    </measure>
-    <!--=======================================================-->
-    <measure number="31">
-      <note>
-        <pitch>
-          <step>C</step>
-          <alter>2</alter>
-          <octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <accidental>double-sharp</accidental>
-        <stem>down</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step>
-          <alter>-2</alter>
-          <octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <accidental>flat-flat</accidental>
-        <stem>down</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step>
-          <alter>1</alter>
-          <octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <accidental>sharp</accidental>
-        <stem>down</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step>
-          <alter>1</alter>
-          <octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <accidental>sharp</accidental>
-        <stem>down</stem>
-      </note>
-    </measure>
-    <!--=======================================================-->
-    <measure number="32">
-      <print new-system="yes"/>
-      <note>
-        <pitch>
-          <step>C</step>
-          <alter>1</alter>
-          <octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <accidental>sharp</accidental>
-        <stem>down</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step>
-          <alter>1</alter>
-          <octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <accidental editorial="yes">sharp</accidental>
-        <stem>down</stem>
-      </note>
-      <barline location="right">
-        <bar-style>light-heavy</bar-style>
-      </barline>
-    </measure>
-  </part>
-  <!--=========================================================-->
-</score-partwise>
diff --git a/input/regression/musicxml/00b-Basics-Intervals.xml b/input/regression/musicxml/00b-Basics-Intervals.xml
deleted file mode 100644 (file)
index e5f9ef4..0000000
+++ /dev/null
@@ -1,825 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
-                                "http://www.musicxml.org/dtds/partwise.dtd">
-<score-partwise>
-  <movement-title>Various piches and interval sizes</movement-title>
-  <part-list>
-    <score-part id="P1">
-      <part-name>MusicXML Part</part-name>
-    </score-part>
-  </part-list>
-  <!--=========================================================-->
-  <part id="P1">
-    <measure number="1">
-      <attributes>
-        <divisions>1</divisions>
-        <key>
-          <fifths>0</fifths>
-          <mode>major</mode>
-        </key>
-        <time symbol="common">
-          <beats>2</beats>
-          <beat-type>4</beat-type>
-        </time>
-        <clef>
-          <sign>G</sign>
-          <line>2</line>
-        </clef>
-      </attributes>
-
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step>
-          <alter>1</alter>
-          <octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step>
-          <alter>-1</alter>
-          <octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch>
-          <step>D</step>
-          <alter>-1</alter>
-          <octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch>
-          <step>B</step>
-          <alter>1</alter>
-          <octave>4</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch>
-          <step>D</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch>
-          <step>B</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch>
-          <step>D</step>
-          <alter>1</alter>
-          <octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch>
-          <step>B</step>
-          <alter>-1</alter>
-          <octave>4</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch>
-          <step>E</step>
-          <alter>-1</alter>
-          <octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch>
-          <step>A</step>
-          <alter>1</alter>
-          <octave>4</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch>
-          <step>E</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch>
-          <step>A</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch>
-          <step>E</step>
-          <alter>1</alter>
-          <octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch>
-          <step>A</step>
-          <alter>-1</alter>
-          <octave>4</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch>
-          <step>F</step>
-          <alter>-1</alter>
-          <octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch>
-          <step>G</step>
-          <alter>1</alter>
-          <octave>4</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch>
-          <step>F</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch>
-          <step>G</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch>
-          <step>F</step>
-          <alter>1</alter>
-          <octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch>
-          <step>G</step>
-          <alter>-1</alter>
-          <octave>4</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch>
-          <step>G</step>
-          <alter>-1</alter>
-          <octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch>
-          <step>F</step>
-          <alter>1</alter>
-          <octave>4</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch>
-          <step>G</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch>
-          <step>F</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch>
-          <step>G</step>
-          <alter>1</alter>
-          <octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch>
-          <step>F</step>
-          <alter>-1</alter>
-          <octave>4</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch>
-          <step>A</step>
-          <alter>-1</alter>
-          <octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch>
-          <step>E</step>
-          <alter>1</alter>
-          <octave>4</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch>
-          <step>A</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch>
-          <step>E</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch>
-          <step>A</step>
-          <alter>1</alter>
-          <octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch>
-          <step>E</step>
-          <alter>-1</alter>
-          <octave>4</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch>
-          <step>B</step>
-          <alter>-1</alter>
-          <octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch>
-          <step>D</step>
-          <alter>1</alter>
-          <octave>4</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch>
-          <step>B</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch>
-          <step>D</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch>
-          <step>B</step>
-          <alter>1</alter>
-          <octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch>
-          <step>D</step>
-          <alter>-1</alter>
-          <octave>4</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step>
-          <alter>-1</alter>
-          <octave>6</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step>
-          <alter>1</alter>
-          <octave>4</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>6</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step>
-          <alter>1</alter>
-          <octave>6</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step>
-          <alter>-1</alter>
-          <octave>4</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch>
-          <step>D</step>
-          <alter>-1</alter>
-          <octave>6</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch>
-          <step>B</step>
-          <alter>1</alter>
-          <octave>3</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch>
-          <step>D</step>
-          <octave>6</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch>
-          <step>B</step>
-          <octave>3</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch>
-          <step>D</step>
-          <alter>1</alter>
-          <octave>6</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch>
-          <step>B</step>
-          <alter>-1</alter>
-          <octave>3</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch>
-          <step>E</step>
-          <alter>-1</alter>
-          <octave>6</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch>
-          <step>A</step>
-          <alter>1</alter>
-          <octave>3</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch>
-          <step>E</step>
-          <octave>6</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch>
-          <step>A</step>
-          <octave>3</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch>
-          <step>E</step>
-          <alter>1</alter>
-          <octave>6</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch>
-          <step>A</step>
-          <alter>-1</alter>
-          <octave>3</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch>
-          <step>F</step>
-          <alter>-1</alter>
-          <octave>6</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch>
-          <step>G</step>
-          <alter>1</alter>
-          <octave>3</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch>
-          <step>F</step>
-          <octave>6</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch>
-          <step>G</step>
-          <octave>3</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch>
-          <step>F</step>
-          <alter>1</alter>
-          <octave>6</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch>
-          <step>G</step>
-          <alter>-1</alter>
-          <octave>3</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch>
-          <step>G</step>
-          <alter>-1</alter>
-          <octave>6</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch>
-          <step>F</step>
-          <alter>1</alter>
-          <octave>3</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch>
-          <step>G</step>
-          <octave>6</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch>
-          <step>F</step>
-          <octave>3</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch>
-          <step>G</step>
-          <alter>1</alter>
-          <octave>6</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch>
-          <step>F</step>
-          <alter>-1</alter>
-          <octave>3</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch>
-          <step>A</step>
-          <alter>-1</alter>
-          <octave>6</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch>
-          <step>E</step>
-          <alter>1</alter>
-          <octave>3</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch>
-          <step>A</step>
-          <octave>6</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch>
-          <step>E</step>
-          <octave>3</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch>
-          <step>A</step>
-          <alter>1</alter>
-          <octave>6</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch>
-          <step>E</step>
-          <alter>-1</alter>
-          <octave>3</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch>
-          <step>B</step>
-          <alter>-1</alter>
-          <octave>6</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch>
-          <step>D</step>
-          <alter>1</alter>
-          <octave>3</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch>
-          <step>B</step>
-          <octave>6</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch>
-          <step>D</step>
-          <octave>3</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch>
-          <step>B</step>
-          <alter>1</alter>
-          <octave>6</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch>
-          <step>D</step>
-          <alter>-1</alter>
-          <octave>3</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-    </measure>
-  </part>
-</score-partwise>
-
diff --git a/input/regression/musicxml/00c-Basics-Durations.xml b/input/regression/musicxml/00c-Basics-Durations.xml
deleted file mode 100644 (file)
index c42439e..0000000
+++ /dev/null
@@ -1,451 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
-                                "http://www.musicxml.org/dtds/partwise.dtd">
-<score-partwise>
-  <movement-title>Note durations</movement-title>
-  <identification>
-    <creator type="composer">Reinhold Kainhofer</creator>
-  </identification>
-  <part-list>
-    <score-part id="P1">
-      <part-name>MusicXML Part</part-name>
-    </score-part>
-  </part-list>
-  <!--=========================================================-->
-  <part id="P1">
-    <measure number="1">
-      <attributes>
-        <divisions>64</divisions>
-        <key>
-          <fifths>0</fifths>
-          <mode>major</mode>
-        </key>
-        <time>
-          <beats>16</beats>
-          <beat-type>4</beat-type>
-        </time>
-        <clef>
-          <sign>G</sign>
-          <line>2</line>
-        </clef>
-      </attributes>
-      <sound tempo="120"/>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>1024</duration>
-        <voice>1</voice>
-        <type>longa</type>
-      </note>
-    </measure>
-    <!--=======================================================-->
-    <measure number="2">
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>512</duration>
-        <voice>1</voice>
-        <type>breve</type>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>256</duration>
-        <voice>1</voice>
-        <type>whole</type>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>128</duration>
-        <voice>1</voice>
-        <type>half</type>
-        <stem>down</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>64</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>down</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>32</duration>
-        <voice>1</voice>
-        <type>eighth</type>
-        <stem>down</stem>
-        <beam number="1">begin</beam>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>16</duration>
-        <voice>1</voice>
-        <type>16th</type>
-        <stem>down</stem>
-        <beam number="1">continue</beam>
-        <beam number="2">begin</beam>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>8</duration>
-        <voice>1</voice>
-        <type>32nd</type>
-        <stem>down</stem>
-        <beam number="1">continue</beam>
-        <beam number="2">continue</beam>
-        <beam number="3">begin</beam>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>4</duration>
-        <voice>1</voice>
-        <type>64th</type>
-        <stem>down</stem>
-        <beam number="1">continue</beam>
-        <beam number="2">continue</beam>
-        <beam number="3">continue</beam>
-        <beam number="4">begin</beam>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>128th</type>
-        <stem>down</stem>
-        <beam number="1">continue</beam>
-        <beam number="2">continue</beam>
-        <beam number="3">continue</beam>
-        <beam number="4">continue</beam>
-        <beam number="5">begin</beam>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>128th</type>
-        <stem>down</stem>
-        <beam number="1">end</beam>
-        <beam number="2">end</beam>
-        <beam number="3">end</beam>
-        <beam number="4">end</beam>
-        <beam number="5">end</beam>
-      </note>
-    </measure>
-    <!--=======================================================-->
-    <measure number="4">
-      <attributes>
-        <time>
-          <beats>24</beats>
-          <beat-type>4</beat-type>
-        </time>
-      </attributes>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>1536</duration>
-        <voice>1</voice>
-        <type>longa</type>
-        <dot/>
-      </note>
-    </measure>
-    <!--=======================================================-->
-    <measure number="5">
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>768</duration>
-        <voice>1</voice>
-        <type>breve</type>
-        <dot/>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>384</duration>
-        <voice>1</voice>
-        <type>whole</type>
-        <dot/>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>192</duration>
-        <voice>1</voice>
-        <type>half</type>
-        <dot/>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>96</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <dot/>
-        <stem>down</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>48</duration>
-        <voice>1</voice>
-        <type>eighth</type>
-        <dot/>
-        <stem>down</stem>
-        <beam number="1">begin</beam>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>24</duration>
-        <voice>1</voice>
-        <type>16th</type>
-        <dot/>
-        <stem>down</stem>
-        <beam number="1">continue</beam>
-        <beam number="2">begin</beam>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>12</duration>
-        <voice>1</voice>
-        <type>32nd</type>
-        <dot/>
-        <stem>down</stem>
-        <beam number="1">continue</beam>
-        <beam number="2">continue</beam>
-        <beam number="3">begin</beam>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>6</duration>
-        <voice>1</voice>
-        <type>64th</type>
-        <dot/>
-        <beam number="1">continue</beam>
-        <beam number="2">continue</beam>
-        <beam number="3">continue</beam>
-        <beam number="4">begin</beam>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>3</duration>
-        <voice>1</voice>
-        <type>128th</type>
-        <dot/>
-        <beam number="1">continue</beam>
-        <beam number="2">continue</beam>
-        <beam number="3">continue</beam>
-        <beam number="4">continue</beam>
-        <beam number="5">begin</beam>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>3</duration>
-        <voice>1</voice>
-        <type>128th</type>
-        <dot/>
-        <beam number="1">end</beam>
-        <beam number="2">end</beam>
-        <beam number="3">end</beam>
-        <beam number="4">end</beam>
-        <beam number="5">end</beam>
-      </note>
-    </measure>
-    <!--=======================================================-->
-    <measure number="6">
-      <attributes>
-        <time>
-          <beats>28</beats>
-          <beat-type>4</beat-type>
-        </time>
-      </attributes>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>1792</duration>
-        <voice>1</voice>
-        <type>longa</type>
-        <dot/>
-        <dot/>
-      </note>
-    </measure>
-    <!--=======================================================-->
-    <measure number="7">
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>896</duration>
-        <voice>1</voice>
-        <type>breve</type>
-        <dot/>
-        <dot/>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>448</duration>
-        <voice>1</voice>
-        <type>whole</type>
-        <dot/>
-        <dot/>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>224</duration>
-        <voice>1</voice>
-        <type>half</type>
-        <dot/>
-        <dot/>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>112</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <dot/>
-        <dot/>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>56</duration>
-        <voice>1</voice>
-        <type>eighth</type>
-        <dot/>
-        <dot/>
-        <beam number="1">begin</beam>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>28</duration>
-        <voice>1</voice>
-        <type>16th</type>
-        <dot/>
-        <dot/>
-        <beam number="1">continue</beam>
-        <beam number="2">begin</beam>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>14</duration>
-        <voice>1</voice>
-        <type>32nd</type>
-        <dot/>
-        <dot/>
-        <beam number="1">continue</beam>
-        <beam number="2">continue</beam>
-        <beam number="3">begin</beam>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>7</duration>
-        <voice>1</voice>
-        <type>64th</type>
-        <dot/>
-        <dot/>
-        <beam number="1">continue</beam>
-        <beam number="2">continue</beam>
-        <beam number="3">continue</beam>
-        <beam number="4">begin</beam>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>7</duration>
-        <voice>1</voice>
-        <type>64th</type>
-        <dot/>
-        <dot/>
-        <beam number="1">end</beam>
-        <beam number="2">end</beam>
-        <beam number="3">end</beam>
-        <beam number="4">end</beam>
-      </note>
-      <barline location="right">
-        <bar-style>light-heavy</bar-style>
-      </barline>
-    </measure>
-  </part>
-  <!--=========================================================-->
-</score-partwise>
diff --git a/input/regression/musicxml/00d-Basics-RestDurations.xml b/input/regression/musicxml/00d-Basics-RestDurations.xml
deleted file mode 100644 (file)
index 1d942f5..0000000
+++ /dev/null
@@ -1,189 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>\r
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"\r
-                                "http://www.musicxml.org/dtds/partwise.dtd">\r
-<score-partwise>\r
-  <movement-title>Rest unit test</movement-title>\r
-  <identification>\r
-    <creator type="composer">Reinhold Kainhofer</creator>\r
-    <rights>Public Domain</rights>\r
-    <encoding>\r
-      <software>Finale 2007 for Windows</software>\r
-      <software>Dolet Light for Finale 2007</software>\r
-      <encoding-date>2007-10-26</encoding-date>\r
-    </encoding>\r
-  </identification>\r
-  <part-list>\r
-    <score-part id="P1">\r
-      <part-name>MusicXML Part</part-name>\r
-      <score-instrument id="P1-I1">\r
-        <instrument-name>Grand Piano</instrument-name>\r
-      </score-instrument>\r
-      <midi-instrument id="P1-I1">\r
-        <midi-channel>1</midi-channel>\r
-        <midi-program>1</midi-program>\r
-      </midi-instrument>\r
-    </score-part>\r
-  </part-list>\r
-  <!--=========================================================-->\r
-  <part id="P1">\r
-    <measure number="1">\r
-      <attributes>\r
-        <divisions>32</divisions>\r
-        <key>\r
-          <fifths>0</fifths>\r
-          <mode>major</mode>\r
-        </key>\r
-        <time symbol="common">\r
-          <beats>4</beats>\r
-          <beat-type>4</beat-type>\r
-        </time>\r
-        <clef>\r
-          <sign>G</sign>\r
-          <line>2</line>\r
-        </clef>\r
-        <measure-style>\r
-          <multiple-rest>2</multiple-rest>\r
-        </measure-style>\r
-      </attributes>\r
-      <sound tempo="120"/>\r
-      <note>\r
-        <rest/>\r
-        <duration>128</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="2">\r
-      <note>\r
-        <rest/>\r
-        <duration>128</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="3">\r
-      <note>\r
-        <rest/>\r
-        <duration>128</duration>\r
-        <voice>1</voice>\r
-        <type>whole</type>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="4">\r
-      <note>\r
-        <rest/>\r
-        <duration>64</duration>\r
-        <voice>1</voice>\r
-        <type>half</type>\r
-      </note>\r
-      <note>\r
-        <rest/>\r
-        <duration>32</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-      </note>\r
-      <note>\r
-        <rest/>\r
-        <duration>16</duration>\r
-        <voice>1</voice>\r
-        <type>eighth</type>\r
-      </note>\r
-      <note>\r
-        <rest/>\r
-        <duration>8</duration>\r
-        <voice>1</voice>\r
-        <type>16th</type>\r
-      </note>\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-        <type>32nd</type>\r
-      </note>\r
-      <note>\r
-        <rest/>\r
-        <duration>2</duration>\r
-        <voice>1</voice>\r
-        <type>64th</type>\r
-      </note>\r
-      <note>\r
-        <rest/>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>128th</type>\r
-      </note>\r
-      <note>\r
-        <rest/>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>128th</type>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="5">\r
-      <note>\r
-        <rest/>\r
-        <duration>96</duration>\r
-        <voice>1</voice>\r
-        <type>half</type>\r
-        <dot/>\r
-      </note>\r
-      <note>\r
-        <rest/>\r
-        <duration>32</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="6">\r
-      <note>\r
-        <rest/>\r
-        <duration>48</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <dot/>\r
-      </note>\r
-      <note>\r
-        <rest/>\r
-        <duration>24</duration>\r
-        <voice>1</voice>\r
-        <type>eighth</type>\r
-        <dot/>\r
-      </note>\r
-      <note>\r
-        <rest/>\r
-        <duration>12</duration>\r
-        <voice>1</voice>\r
-        <type>16th</type>\r
-        <dot/>\r
-      </note>\r
-      <note>\r
-        <rest/>\r
-        <duration>6</duration>\r
-        <voice>1</voice>\r
-        <type>32nd</type>\r
-        <dot/>\r
-      </note>\r
-      <note>\r
-        <rest/>\r
-        <duration>3</duration>\r
-        <voice>1</voice>\r
-        <type>64th</type>\r
-        <dot/>\r
-      </note>\r
-      <note>\r
-        <rest/>\r
-        <duration>2</duration>\r
-        <voice>1</voice>\r
-        <type>128th</type>\r
-        <dot/>\r
-      </note>\r
-      <barline location="right">\r
-        <bar-style>light-heavy</bar-style>\r
-      </barline>\r
-    </measure>\r
-  </part>\r
-  <!--=========================================================-->\r
-</score-partwise>\r
diff --git a/input/regression/musicxml/00e-Basics-PitchedRests-PJB.xml b/input/regression/musicxml/00e-Basics-PitchedRests-PJB.xml
deleted file mode 100644 (file)
index 1142b4a..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 0.6b Partwise//EN"
- "http://www.musicxml.org/dtds/partwise.dtd">
-<score-partwise>
-       <identification>
-               <encoding>
-                       <software>/usr/bin/vi</software>
-                       <encoding-date>2007-02-02</encoding-date>
-               </encoding>
-       </identification>
-       <part-list>
-               <score-part id="P1"><part-name>MIDI Track 1</part-name></score-part>
-       </part-list>
-       <part id="P1">
-               <measure number="1">
-                       <attributes>
-                               <divisions>96</divisions>
-                               <key><fifths>0</fifths></key>
-                               <time><beats>5</beats><beat-type>4</beat-type></time>
-                               <staves>1</staves>
-                               <clef number="1"><sign>G</sign><line>2</line></clef>
-                       </attributes>
-                       <note>
-                               <rest/>
-                               <duration>96</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                               <staff>1</staff>
-                       </note>
-                       <note>
-                               <rest><display-step>E</display-step><display-octave>4</display-octave></rest>
-                               <duration>96</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                               <staff>1</staff>
-                       </note>
-                       <note>
-                               <rest><display-step>F</display-step><display-octave>5</display-octave></rest>
-                               <duration>96</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                               <staff>1</staff>
-                       </note>
-                       <note>
-                               <rest><display-step>A</display-step><display-octave>3</display-octave></rest>
-                               <duration>96</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                               <staff>1</staff>
-                       </note>
-                       <note>
-                               <rest><display-step>C</display-step><display-octave>6</display-octave></rest>
-                               <duration>96</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                               <staff>1</staff>
-                       </note>
-               </measure>
-       </part>
-</score-partwise>
diff --git a/input/regression/musicxml/00f-Basics-Clefs.xml b/input/regression/musicxml/00f-Basics-Clefs.xml
deleted file mode 100644 (file)
index 9e3e384..0000000
+++ /dev/null
@@ -1,388 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>\r
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"\r
-                                "http://www.musicxml.org/dtds/partwise.dtd">\r
-<score-partwise>\r
-  <movement-title>Finale Clef test</movement-title>\r
-  <identification>\r
-    <creator type="composer">Reinhold Kainhofer</creator>\r
-    <rights>Public Domain</rights>\r
-    <encoding>\r
-      <software>Finale 2007 for Windows</software>\r
-      <software>Dolet Light for Finale 2007</software>\r
-      <encoding-date>2007-09-01</encoding-date>\r
-    </encoding>\r
-  </identification>\r
-  <part-list>\r
-    <score-part id="P1">\r
-      <part-name>MusicXML Part</part-name>\r
-      <score-instrument id="P1-I1">\r
-        <instrument-name>Grand Piano</instrument-name>\r
-      </score-instrument>\r
-      <midi-instrument id="P1-I1">\r
-        <midi-channel>1</midi-channel>\r
-        <midi-program>1</midi-program>\r
-      </midi-instrument>\r
-    </score-part>\r
-  </part-list>\r
-  <!--=========================================================-->\r
-  <part id="P1">\r
-    <measure number="1">\r
-      <attributes>\r
-        <divisions>1</divisions>\r
-        <key>\r
-          <fifths>0</fifths>\r
-          <mode>major</mode>\r
-        </key>\r
-        <time symbol="common">\r
-          <beats>4</beats>\r
-          <beat-type>4</beat-type>\r
-        </time>\r
-        <clef>\r
-          <sign>G</sign>\r
-          <line>2</line>\r
-        </clef>\r
-      </attributes>\r
-      <sound tempo="120"/>\r
-      <note>\r
-        <pitch>\r
-          <step>C</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-        <type>whole</type>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="2">\r
-      <attributes>\r
-        <clef>\r
-          <sign>C</sign>\r
-          <line>3</line>\r
-        </clef>\r
-      </attributes>\r
-      <note>\r
-        <pitch>\r
-          <step>C</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-        <type>whole</type>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="3">\r
-      <attributes>\r
-        <clef>\r
-          <sign>C</sign>\r
-          <line>4</line>\r
-        </clef>\r
-      </attributes>\r
-      <note>\r
-        <pitch>\r
-          <step>C</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-        <type>whole</type>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="4">\r
-      <attributes>\r
-        <clef>\r
-          <sign>F</sign>\r
-          <line>4</line>\r
-        </clef>\r
-      </attributes>\r
-      <note>\r
-        <pitch>\r
-          <step>C</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-        <type>whole</type>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="5">\r
-      <attributes>\r
-        <clef>\r
-          <sign>percussion</sign>\r
-        </clef>\r
-      </attributes>\r
-      <note>\r
-        <pitch>\r
-          <step>C</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-        <type>whole</type>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="6">\r
-      <attributes>\r
-        <clef>\r
-          <sign>G</sign>\r
-          <line>2</line>\r
-          <clef-octave-change>-1</clef-octave-change>\r
-        </clef>\r
-      </attributes>\r
-      <note>\r
-        <pitch>\r
-          <step>C</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-        <type>whole</type>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="7">\r
-      <attributes>\r
-        <clef>\r
-          <sign>F</sign>\r
-          <line>4</line>\r
-          <clef-octave-change>-1</clef-octave-change>\r
-        </clef>\r
-      </attributes>\r
-      <note>\r
-        <pitch>\r
-          <step>C</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-        <type>whole</type>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="8">\r
-      <attributes>\r
-        <clef>\r
-          <sign>F</sign>\r
-          <line>3</line>\r
-        </clef>\r
-      </attributes>\r
-      <note>\r
-        <pitch>\r
-          <step>C</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-        <type>whole</type>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="9">\r
-      <print new-system="yes"/>\r
-      <attributes>\r
-        <clef>\r
-          <sign>G</sign>\r
-          <line>1</line>\r
-        </clef>\r
-      </attributes>\r
-      <note>\r
-        <pitch>\r
-          <step>C</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-        <type>whole</type>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="10">\r
-      <attributes>\r
-        <clef>\r
-          <sign>C</sign>\r
-          <line>5</line>\r
-        </clef>\r
-      </attributes>\r
-      <note>\r
-        <pitch>\r
-          <step>C</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-        <type>whole</type>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="11">\r
-      <attributes>\r
-        <clef>\r
-          <sign>C</sign>\r
-          <line>2</line>\r
-        </clef>\r
-      </attributes>\r
-      <note>\r
-        <pitch>\r
-          <step>C</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-        <type>whole</type>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="12">\r
-      <attributes>\r
-        <clef>\r
-          <sign>C</sign>\r
-          <line>1</line>\r
-        </clef>\r
-      </attributes>\r
-      <note>\r
-        <pitch>\r
-          <step>C</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-        <type>whole</type>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="13">\r
-      <attributes>\r
-        <clef>\r
-          <sign>percussion</sign>\r
-        </clef>\r
-      </attributes>\r
-      <note>\r
-        <pitch>\r
-          <step>C</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-        <type>whole</type>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="14">\r
-      <attributes>\r
-        <clef>\r
-          <sign>G</sign>\r
-          <line>2</line>\r
-          <clef-octave-change>1</clef-octave-change>\r
-        </clef>\r
-      </attributes>\r
-      <note>\r
-        <pitch>\r
-          <step>C</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-        <type>whole</type>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="15">\r
-      <attributes>\r
-        <clef>\r
-          <sign>F</sign>\r
-          <line>4</line>\r
-          <clef-octave-change>1</clef-octave-change>\r
-        </clef>\r
-      </attributes>\r
-      <note>\r
-        <pitch>\r
-          <step>C</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-        <type>whole</type>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="16">\r
-      <attributes>\r
-        <clef>\r
-          <sign>TAB</sign>\r
-          <line>5</line>\r
-        </clef>\r
-      </attributes>\r
-      <note>\r
-        <pitch>\r
-          <step>C</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-        <type>whole</type>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="17">\r
-      <attributes>\r
-        <clef>\r
-          <sign>TAB</sign>\r
-          <line>5</line>\r
-        </clef>\r
-      </attributes>\r
-      <note>\r
-        <pitch>\r
-          <step>C</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-        <type>whole</type>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="18">\r
-      <print new-system="yes"/>\r
-      <attributes>\r
-        <clef>\r
-          <sign>none</sign>\r
-        </clef>\r
-      </attributes>\r
-      <note>\r
-        <pitch>\r
-          <step>C</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-        <type>whole</type>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="19">\r
-      <attributes>\r
-        <clef>\r
-          <sign>G</sign>\r
-          <line>2</line>\r
-        </clef>\r
-      </attributes>\r
-      <note>\r
-        <pitch>\r
-          <step>C</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-        <type>whole</type>\r
-      </note>\r
-      <barline location="right">\r
-        <bar-style>light-heavy</bar-style>\r
-      </barline>\r
-    </measure>\r
-  </part>\r
-  <!--=========================================================-->\r
-</score-partwise>\r
diff --git a/input/regression/musicxml/00g-Basics-Keys.xml b/input/regression/musicxml/00g-Basics-Keys.xml
deleted file mode 100644 (file)
index 7049164..0000000
+++ /dev/null
@@ -1,810 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
-                                "http://www.musicxml.org/dtds/partwise.dtd">
-<score-partwise>
-  <movement-title>Different Key signatures</movement-title>
-  <part-list>
-    <score-part id="P1">
-      <part-name>MusicXML Part</part-name>
-    </score-part>
-  </part-list>
-  <!--=========================================================-->
-  <part id="P1">
-
-    <measure number="1">
-      <attributes>
-        <divisions>1</divisions>
-        <key>
-          <fifths>-11</fifths>
-          <mode>major</mode>
-        </key>
-        <time symbol="common">
-          <beats>2</beats>
-          <beat-type>4</beat-type>
-        </time>
-        <clef>
-          <sign>G</sign>
-          <line>2</line>
-        </clef>
-      </attributes>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>half</type>
-      </note>
-    </measure>
-    <measure number="2">
-      <attributes>
-        <key>
-          <fifths>-11</fifths>
-          <mode>minor</mode>
-        </key>
-      </attributes>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>half</type>
-      </note>
-    </measure>
-    <measure number="3">
-      <attributes>
-        <key>
-          <fifths>-10</fifths>
-          <mode>major</mode>
-        </key>
-      </attributes>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>half</type>
-      </note>
-    </measure>
-    <measure number="4">
-      <attributes>
-        <key>
-          <fifths>-10</fifths>
-          <mode>minor</mode>
-        </key>
-      </attributes>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>half</type>
-      </note>
-    </measure>
-    <measure number="5">
-      <attributes>
-        <key>
-          <fifths>-9</fifths>
-          <mode>major</mode>
-        </key>
-      </attributes>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>half</type>
-      </note>
-    </measure>
-    <measure number="6">
-      <attributes>
-        <key>
-          <fifths>-9</fifths>
-          <mode>minor</mode>
-        </key>
-      </attributes>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>half</type>
-      </note>
-    </measure>
-    <measure number="7">
-      <attributes>
-        <key>
-          <fifths>-8</fifths>
-          <mode>major</mode>
-        </key>
-      </attributes>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>half</type>
-      </note>
-    </measure>
-    <measure number="8">
-      <attributes>
-        <key>
-          <fifths>-8</fifths>
-          <mode>minor</mode>
-        </key>
-      </attributes>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>half</type>
-      </note>
-    </measure>
-    <measure number="9">
-      <attributes>
-        <key>
-          <fifths>-7</fifths>
-          <mode>major</mode>
-        </key>
-      </attributes>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>half</type>
-      </note>
-    </measure>
-    <measure number="10">
-      <attributes>
-        <key>
-          <fifths>-7</fifths>
-          <mode>minor</mode>
-        </key>
-      </attributes>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>half</type>
-      </note>
-    </measure>
-    <measure number="11">
-      <attributes>
-        <key>
-          <fifths>-6</fifths>
-          <mode>major</mode>
-        </key>
-      </attributes>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>half</type>
-      </note>
-    </measure>
-    <measure number="12">
-      <attributes>
-        <key>
-          <fifths>-6</fifths>
-          <mode>minor</mode>
-        </key>
-      </attributes>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>half</type>
-      </note>
-    </measure>
-    <measure number="13">
-      <attributes>
-        <key>
-          <fifths>-5</fifths>
-          <mode>major</mode>
-        </key>
-      </attributes>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>half</type>
-      </note>
-    </measure>
-    <measure number="14">
-      <attributes>
-        <key>
-          <fifths>-5</fifths>
-          <mode>minor</mode>
-        </key>
-      </attributes>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>half</type>
-      </note>
-    </measure>
-    <measure number="15">
-      <attributes>
-        <key>
-          <fifths>-4</fifths>
-          <mode>major</mode>
-        </key>
-      </attributes>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>half</type>
-      </note>
-    </measure>
-    <measure number="16">
-      <attributes>
-        <key>
-          <fifths>-4</fifths>
-          <mode>minor</mode>
-        </key>
-      </attributes>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>half</type>
-      </note>
-    </measure>
-    <measure number="17">
-      <attributes>
-        <key>
-          <fifths>-3</fifths>
-          <mode>major</mode>
-        </key>
-      </attributes>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>half</type>
-      </note>
-    </measure>
-    <measure number="18">
-      <attributes>
-        <key>
-          <fifths>-3</fifths>
-          <mode>minor</mode>
-        </key>
-      </attributes>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>half</type>
-      </note>
-    </measure>
-    <measure number="19">
-      <attributes>
-        <key>
-          <fifths>-2</fifths>
-          <mode>major</mode>
-        </key>
-      </attributes>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>half</type>
-      </note>
-    </measure>
-    <measure number="20">
-      <attributes>
-        <key>
-          <fifths>-2</fifths>
-          <mode>minor</mode>
-        </key>
-      </attributes>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>half</type>
-      </note>
-    </measure>
-    <measure number="21">
-      <attributes>
-        <key>
-          <fifths>-1</fifths>
-          <mode>major</mode>
-        </key>
-      </attributes>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>half</type>
-      </note>
-    </measure>
-    <measure number="22">
-      <attributes>
-        <key>
-          <fifths>-1</fifths>
-          <mode>minor</mode>
-        </key>
-      </attributes>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>half</type>
-      </note>
-    </measure>
-    <measure number="23">
-      <attributes>
-        <key>
-          <fifths>0</fifths>
-          <mode>major</mode>
-        </key>
-      </attributes>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>half</type>
-      </note>
-    </measure>
-    <measure number="24">
-      <attributes>
-        <key>
-          <fifths>0</fifths>
-          <mode>minor</mode>
-        </key>
-      </attributes>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>half</type>
-      </note>
-    </measure>
-    <measure number="25">
-      <attributes>
-        <key>
-          <fifths>1</fifths>
-          <mode>major</mode>
-        </key>
-      </attributes>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>half</type>
-      </note>
-    </measure>
-    <measure number="26">
-      <attributes>
-        <key>
-          <fifths>1</fifths>
-          <mode>minor</mode>
-        </key>
-      </attributes>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>half</type>
-      </note>
-    </measure>
-    <measure number="27">
-      <attributes>
-        <key>
-          <fifths>2</fifths>
-          <mode>major</mode>
-        </key>
-      </attributes>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>half</type>
-      </note>
-    </measure>
-    <measure number="28">
-      <attributes>
-        <key>
-          <fifths>2</fifths>
-          <mode>minor</mode>
-        </key>
-      </attributes>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>half</type>
-      </note>
-    </measure>
-    <measure number="29">
-      <attributes>
-        <key>
-          <fifths>3</fifths>
-          <mode>major</mode>
-        </key>
-      </attributes>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>half</type>
-      </note>
-    </measure>
-    <measure number="30">
-      <attributes>
-        <key>
-          <fifths>3</fifths>
-          <mode>minor</mode>
-        </key>
-      </attributes>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>half</type>
-      </note>
-    </measure>
-    <measure number="31">
-      <attributes>
-        <key>
-          <fifths>4</fifths>
-          <mode>major</mode>
-        </key>
-      </attributes>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>half</type>
-      </note>
-    </measure>
-    <measure number="32">
-      <attributes>
-        <key>
-          <fifths>4</fifths>
-          <mode>minor</mode>
-        </key>
-      </attributes>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>half</type>
-      </note>
-    </measure>
-    <measure number="33">
-      <attributes>
-        <key>
-          <fifths>5</fifths>
-          <mode>major</mode>
-        </key>
-      </attributes>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>half</type>
-      </note>
-    </measure>
-    <measure number="34">
-      <attributes>
-        <key>
-          <fifths>5</fifths>
-          <mode>minor</mode>
-        </key>
-      </attributes>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>half</type>
-      </note>
-    </measure>
-    <measure number="35">
-      <attributes>
-        <key>
-          <fifths>6</fifths>
-          <mode>major</mode>
-        </key>
-      </attributes>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>half</type>
-      </note>
-    </measure>
-    <measure number="36">
-      <attributes>
-        <key>
-          <fifths>6</fifths>
-          <mode>minor</mode>
-        </key>
-      </attributes>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>half</type>
-      </note>
-    </measure>
-    <measure number="37">
-      <attributes>
-        <key>
-          <fifths>7</fifths>
-          <mode>major</mode>
-        </key>
-      </attributes>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>half</type>
-      </note>
-    </measure>
-    <measure number="38">
-      <attributes>
-        <key>
-          <fifths>7</fifths>
-          <mode>minor</mode>
-        </key>
-      </attributes>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>half</type>
-      </note>
-    </measure>
-    <measure number="39">
-      <attributes>
-        <key>
-          <fifths>8</fifths>
-          <mode>major</mode>
-        </key>
-      </attributes>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>half</type>
-      </note>
-    </measure>
-    <measure number="40">
-      <attributes>
-        <key>
-          <fifths>8</fifths>
-          <mode>minor</mode>
-        </key>
-      </attributes>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>half</type>
-      </note>
-    </measure>
-    <measure number="41">
-      <attributes>
-        <key>
-          <fifths>9</fifths>
-          <mode>major</mode>
-        </key>
-      </attributes>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>half</type>
-      </note>
-    </measure>
-    <measure number="42">
-      <attributes>
-        <key>
-          <fifths>9</fifths>
-          <mode>minor</mode>
-        </key>
-      </attributes>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>half</type>
-      </note>
-    </measure>
-    <measure number="43">
-      <attributes>
-        <key>
-          <fifths>10</fifths>
-          <mode>major</mode>
-        </key>
-      </attributes>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>half</type>
-      </note>
-    </measure>
-    <measure number="44">
-      <attributes>
-        <key>
-          <fifths>10</fifths>
-          <mode>minor</mode>
-        </key>
-      </attributes>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>half</type>
-      </note>
-    </measure>
-    <measure number="45">
-      <attributes>
-        <key>
-          <fifths>11</fifths>
-          <mode>major</mode>
-        </key>
-      </attributes>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>half</type>
-      </note>
-    </measure>
-    <measure number="46">
-      <attributes>
-        <key>
-          <fifths>11</fifths>
-          <mode>minor</mode>
-        </key>
-      </attributes>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>half</type>
-      </note>
-      <barline location="right">
-        <bar-style>light-heavy</bar-style>
-      </barline>
-    </measure>
-  </part>
-</score-partwise>
-
diff --git a/input/regression/musicxml/00h-Basics-TimeSignatures.xml b/input/regression/musicxml/00h-Basics-TimeSignatures.xml
deleted file mode 100644 (file)
index 9439b47..0000000
+++ /dev/null
@@ -1,215 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
-                                "http://www.musicxml.org/dtds/partwise.dtd">
-<score-partwise>
-  <movement-title>Different time signatures</movement-title>
-  <part-list>
-    <score-part id="P1">
-      <part-name>MusicXML Part</part-name>
-    </score-part>
-  </part-list>
-  <!--=========================================================-->
-  <part id="P1">
-
-    <measure number="1">
-      <attributes>
-        <divisions>1</divisions>
-        <key>
-          <fifths>0</fifths>
-          <mode>major</mode>
-        </key>
-        <time  symbol="common">
-          <beats>2</beats>
-          <beat-type>2</beat-type>
-        </time>
-        <clef>
-          <sign>G</sign>
-          <line>2</line>
-        </clef>
-      </attributes>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-    </measure>
-    <measure number="2">
-      <attributes>
-        <time  symbol="common">
-          <beats>4</beats>
-          <beat-type>4</beat-type>
-        </time>
-      </attributes>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-    </measure>
-    <measure number="3">
-      <attributes>
-        <time >
-          <beats>2</beats>
-          <beat-type>2</beat-type>
-        </time>
-      </attributes>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-    </measure>
-    <measure number="4">
-      <attributes>
-        <time >
-          <beats>3</beats>
-          <beat-type>2</beat-type>
-        </time>
-      </attributes>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-    </measure>
-    <measure number="5">
-      <attributes>
-        <time >
-          <beats>2</beats>
-          <beat-type>4</beat-type>
-        </time>
-      </attributes>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-    </measure>
-    <measure number="6">
-      <attributes>
-        <time >
-          <beats>3</beats>
-          <beat-type>4</beat-type>
-        </time>
-      </attributes>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-    </measure>
-    <measure number="7">
-      <attributes>
-        <time >
-          <beats>4</beats>
-          <beat-type>4</beat-type>
-        </time>
-      </attributes>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-    </measure>
-    <measure number="8">
-      <attributes>
-        <time >
-          <beats>5</beats>
-          <beat-type>4</beat-type>
-        </time>
-      </attributes>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-    </measure>
-    <measure number="9">
-      <attributes>
-        <time >
-          <beats>3</beats>
-          <beat-type>8</beat-type>
-        </time>
-      </attributes>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-    </measure>
-    <measure number="10">
-      <attributes>
-        <time >
-          <beats>6</beats>
-          <beat-type>8</beat-type>
-        </time>
-      </attributes>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-    </measure>
-    <measure number="11">
-      <attributes>
-        <time >
-          <beats>12</beats>
-          <beat-type>8</beat-type>
-        </time>
-      </attributes>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <barline location="right">
-        <bar-style>light-heavy</bar-style>
-      </barline>
-    </measure>
-  </part>
-</score-partwise>
-
diff --git a/input/regression/musicxml/00i-Basics-NoKeyOrClef.xml b/input/regression/musicxml/00i-Basics-NoKeyOrClef.xml
deleted file mode 100644 (file)
index 25e7bc4..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0"?>
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 2.0 Partwise//EN" "http://www.musicxml.org/dtds/partwise.dtd">
-<score-partwise version="2.0">
-       <work><work-title>No key or clef given</work-title></work> 
-       <identification/>
-       <part-list>
-               <score-part id="P0">
-                       <part-name></part-name>
-               </score-part>
-       </part-list>
-       <part id="P0">
-               <measure number="1">
-                       <attributes>
-                               <divisions>1</divisions>
-                               <time>
-                               <beats>4</beats>
-                               <beat-type>4</beat-type>
-                               </time>
-                       </attributes>
-                       <note>
-                               <pitch>
-                                       <step>C</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>4</duration>
-                               <voice>1</voice>
-                               <type>whole</type>
-                       </note>
-               </measure>
-               <measure number="2">
-                       <note>
-                               <pitch>
-                                       <step>C</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>4</duration>
-                               <voice>1</voice>
-                               <type>whole</type>
-                       </note>
-               </measure>
-       </part>
-</score-partwise>
diff --git a/input/regression/musicxml/00j-Basics-NoTime-PJB.xml b/input/regression/musicxml/00j-Basics-NoTime-PJB.xml
deleted file mode 100644 (file)
index e6c9ca0..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 2.0 Partwise//EN"
- "http://www.musicxml.org/dtds/partwise.dtd">
-<score-partwise version="2.0">
-  <work><work-title>No time signature given</work-title></work> 
-       <identification/>
-       <part-list>
-               <score-part id="P1">
-                       <part-name></part-name>
-               </score-part>
-       </part-list>
-       <part id="P1">
-               <measure number="1">
-                       <attributes>
-                               <divisions>1</divisions>
-                               <key><fifths>0</fifths></key>
-                               <staves>2</staves>
-                               <clef number="1"><sign>G</sign><line>2</line></clef>
-                               <clef number="2"><sign>F</sign><line>4</line></clef>
-                       </attributes>
-                       <note>
-                               <pitch><step>F</step><octave>4</octave></pitch>
-                               <duration>4</duration>
-                               <voice>1</voice>
-                               <type>whole</type>
-                               <staff>1</staff>
-                       </note>
-                       <backup><duration>384</duration></backup>
-                       <note>
-                               <pitch><step>B</step><octave>2</octave></pitch>
-                               <duration>4</duration>
-                               <voice>2</voice>
-                               <type>whole</type>
-                               <staff>2</staff>
-                       </note>
-               </measure>
-       </part>
-</score-partwise>
diff --git a/input/regression/musicxml/00k-Basics-Backup.xml b/input/regression/musicxml/00k-Basics-Backup.xml
deleted file mode 100644 (file)
index 8c2f7d9..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.1 Partwise//EN" "http://www.musicxml.org/dtds/partwise.dtd">
-
-<score-partwise version="1.1">
-  <movement-title>Backup not to 0 in second voice</movement-title>
-  <part-list>
-    <score-part id="P1">
-      <part-name></part-name>
-      <part-abbreviation></part-abbreviation>
-    </score-part>
-  </part-list>
-  <part id="P1">
-    <measure number="1">
-      <attributes>
-        <divisions>2</divisions>
-        <key><fifths>0</fifths></key>
-        <time symbol="common">
-          <beats>4</beats>
-          <beat-type>4</beat-type>
-        </time>
-        <clef>
-          <sign>G</sign>
-          <line>2</line>
-        </clef>
-      </attributes>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <backup>
-        <duration>2</duration>
-      </backup>
-      <note>
-        <pitch>
-          <step>A</step>
-          <octave>3</octave>
-        </pitch>
-        <duration>2</duration>
-        <voice>2</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch>
-          <step>A</step>
-          <octave>3</octave>
-        </pitch>
-        <duration>2</duration>
-        <voice>2</voice>
-        <type>quarter</type>
-      </note>
-    </measure>
-  </part>
-</score-partwise>
-
diff --git a/input/regression/musicxml/00l-Basics-MultiMeasureRests.xml b/input/regression/musicxml/00l-Basics-MultiMeasureRests.xml
deleted file mode 100644 (file)
index e904ff0..0000000
+++ /dev/null
@@ -1,308 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>\r
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"\r
-                                "http://www.musicxml.org/dtds/partwise.dtd">\r
-<score-partwise>\r
-  <movement-title>Multi-Measure rests</movement-title>\r
-  <identification>\r
-    <encoding>\r
-      <software>Finale 2007 for Windows</software>\r
-      <software>Dolet Light for Finale 2007</software>\r
-      <encoding-date>2007-11-26</encoding-date>\r
-    </encoding>\r
-  </identification>\r
-  <part-list>\r
-    <score-part id="P1">\r
-      <part-name>MusicXML Part</part-name>\r
-      <score-instrument id="P1-I1">\r
-        <instrument-name>Grand Piano</instrument-name>\r
-      </score-instrument>\r
-      <midi-instrument id="P1-I1">\r
-        <midi-channel>1</midi-channel>\r
-        <midi-program>1</midi-program>\r
-      </midi-instrument>\r
-    </score-part>\r
-  </part-list>\r
-  <!--=========================================================-->\r
-  <part id="P1">\r
-    <measure number="1">\r
-      <attributes>\r
-        <divisions>1</divisions>\r
-        <key>\r
-          <fifths>0</fifths>\r
-          <mode>major</mode>\r
-        </key>\r
-        <time symbol="common">\r
-          <beats>4</beats>\r
-          <beat-type>4</beat-type>\r
-        </time>\r
-        <clef>\r
-          <sign>G</sign>\r
-          <line>2</line>\r
-        </clef>\r
-        <measure-style>\r
-          <multiple-rest>3</multiple-rest>\r
-        </measure-style>\r
-      </attributes>\r
-      <sound tempo="120"/>\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="2">\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="3">\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="4">\r
-      <attributes>\r
-        <measure-style>\r
-          <multiple-rest>15</multiple-rest>\r
-        </measure-style>\r
-      </attributes>\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="5">\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="6">\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="7">\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="8">\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="9">\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="10">\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="11">\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="12">\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="13">\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="14">\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="15">\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="16">\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="17">\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="18">\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="19">\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="20">\r
-      <attributes>\r
-        <measure-style>\r
-          <multiple-rest>12</multiple-rest>\r
-        </measure-style>\r
-      </attributes>\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="21">\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="22">\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="23">\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="24">\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="25">\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="26">\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="27">\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="28">\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="29">\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="30">\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="31">\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-      <barline location="right">\r
-        <bar-style>light-heavy</bar-style>\r
-      </barline>\r
-    </measure>\r
-  </part>\r
-  <!--=========================================================-->\r
-</score-partwise>\r
diff --git a/input/regression/musicxml/00l-Basics-Tie-PJB.xml b/input/regression/musicxml/00l-Basics-Tie-PJB.xml
deleted file mode 100644 (file)
index e467ce7..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 0.6b Partwise//EN"
- "http://www.musicxml.org/dtds/partwise.dtd">
-<score-partwise>
-       <work><work-title>A tie</work-title></work> 
-       <identification/>
-       <part-list>
-               <score-part id="P1"><part-name></part-name></score-part>
-       </part-list>
-       <part id="P1">
-               <measure number="1">
-                       <attributes>
-                               <divisions>1</divisions>
-                               <key><fifths>0</fifths></key>
-                               <time><beats>4</beats><beat-type>4</beat-type></time>
-                               <staves>1</staves>
-                               <clef number="1"><sign>G</sign><line>2</line></clef>
-                       </attributes>
-                       <note>
-                               <pitch><step>F</step><octave>4</octave></pitch>
-                               <duration>4</duration>
-                               <tie type="start"/>
-                               <voice>1</voice>
-                               <type>whole</type>
-                               <staff>1</staff>
-                               <notations><tied type="start"/></notations>
-                       </note>
-               </measure>
-               <measure number="2">
-                       <note release="-684">
-                               <pitch><step>F</step><octave>4</octave></pitch>
-                               <duration>4</duration>
-                               <tie type="stop"/>
-                               <voice>1</voice>
-                               <type>whole</type>
-                               <staff>1</staff>
-                               <notations><tied type="stop"/></notations>
-                       </note>
-               </measure>
-       </part>
-</score-partwise>
diff --git a/input/regression/musicxml/01-Pitches.itexi b/input/regression/musicxml/01-Pitches.itexi
new file mode 100644 (file)
index 0000000..0bb6257
--- /dev/null
@@ -0,0 +1 @@
+@unnumberedsec 01 ... Pitches
diff --git a/input/regression/musicxml/01a-Chord-Rosegarden.xml b/input/regression/musicxml/01a-Chord-Rosegarden.xml
deleted file mode 100644 (file)
index f953641..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-<?xml version="1.0"?>
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 0.6 Partwise//EN" "http://www.musicxml.org/dtds/partwise.dtd">
-<score-partwise>
-       <work> <work-title>/home/reinhold/lilypond-dev-files/01_chord.xml</work-title></work> 
-       <identification> 
-               <rights>Unknown</rights>
-               <encoding>
-                       <software>Rosegarden-4</software>
-               </encoding>
-       </identification> 
-       <part-list>
-               <score-part id="P0">
-                       <part-name>Chord test</part-name>
-                       <score-instrument id="I1">
-                               <instrument-name>0</instrument-name>
-                       </score-instrument>
-                       <midi-instrument id="I1">
-                               <midi-channel>1</midi-channel>
-                               <midi-program>1</midi-program>
-                       </midi-instrument>
-               </score-part>
-       </part-list>
-       <part id="P0">
-               <measure number="1">
-                       <attributes>
-                               <divisions>960</divisions>
-                               <time>
-                               <beats>4</beats>
-                               <beat-type>4</beat-type>
-                               </time>
-                               <clef>
-                               <sign>G</sign>
-                               <line>2</line>
-                               </clef>
-                       </attributes>
-                       <note>
-                               <pitch>
-                                       <step>A</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>960</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                       </note>
-                       <note>
-                               <chord/>
-                               <pitch>
-                                       <step>F</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>960</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                       </note>
-                       <note>
-                               <rest/>
-                               <duration>960</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                       </note>
-                       <note>
-                               <rest/>
-                               <duration>1920</duration>
-                               <voice>1</voice>
-                               <type>half</type>
-                       </note>
-               </measure>
-       </part>
-</score-partwise>
diff --git a/input/regression/musicxml/01a-Pitches-Pitches.xml b/input/regression/musicxml/01a-Pitches-Pitches.xml
new file mode 100644 (file)
index 0000000..177f2c8
--- /dev/null
@@ -0,0 +1,1176 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+  <movement-title>Pitches and accidentals</movement-title>
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">All pitches from G to c'''' in 
+          ascending steps; First without accidentals, then with a sharp and then 
+          with a flat accidental. Double alterations and cautionary accidentals 
+          are tested at the end.</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name>MusicXML Part</part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>2</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>2</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>2</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="2">
+      <note>
+        <pitch>
+          <step>D</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>E</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>F</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="3">
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>D</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="4">
+      <note>
+        <pitch>
+          <step>E</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>F</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="5">
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>D</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>E</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="6">
+      <note>
+        <pitch>
+          <step>F</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="7">
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>6</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>D</step>
+          <octave>6</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>E</step>
+          <octave>6</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>F</step>
+          <octave>6</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="8">
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>6</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>6</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>6</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>7</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="9">
+      <note>
+        <pitch>
+          <step>G</step>
+          <alter>1</alter>
+          <octave>2</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>sharp</accidental>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <alter>1</alter>
+          <octave>2</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>sharp</accidental>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <alter>1</alter>
+          <octave>2</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>sharp</accidental>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <alter>1</alter>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>sharp</accidental>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="10">
+      <note>
+        <pitch>
+          <step>D</step>
+          <alter>1</alter>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>sharp</accidental>
+      </note>
+      <note>
+        <pitch>
+          <step>E</step>
+          <alter>1</alter>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>sharp</accidental>
+      </note>
+      <note>
+        <pitch>
+          <step>F</step>
+          <alter>1</alter>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>sharp</accidental>
+      </note>
+      <note>
+        <pitch>
+          <step>G</step>
+          <alter>1</alter>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>sharp</accidental>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="11">
+      <note>
+        <pitch>
+          <step>A</step>
+          <alter>1</alter>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>sharp</accidental>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <alter>1</alter>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>sharp</accidental>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <alter>1</alter>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>sharp</accidental>
+      </note>
+      <note>
+        <pitch>
+          <step>D</step>
+          <alter>1</alter>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>sharp</accidental>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="12">
+      <note>
+        <pitch>
+          <step>E</step>
+          <alter>1</alter>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>sharp</accidental>
+      </note>
+      <note>
+        <pitch>
+          <step>F</step>
+          <alter>1</alter>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>sharp</accidental>
+      </note>
+      <note>
+        <pitch>
+          <step>G</step>
+          <alter>1</alter>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>sharp</accidental>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <alter>1</alter>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>sharp</accidental>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="13">
+      <note>
+        <pitch>
+          <step>B</step>
+          <alter>1</alter>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>sharp</accidental>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <alter>1</alter>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>sharp</accidental>
+      </note>
+      <note>
+        <pitch>
+          <step>D</step>
+          <alter>1</alter>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>sharp</accidental>
+      </note>
+      <note>
+        <pitch>
+          <step>E</step>
+          <alter>1</alter>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>sharp</accidental>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="14">
+      <note>
+        <pitch>
+          <step>F</step>
+          <alter>1</alter>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>sharp</accidental>
+      </note>
+      <note>
+        <pitch>
+          <step>G</step>
+          <alter>1</alter>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>sharp</accidental>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <alter>1</alter>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>sharp</accidental>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <alter>1</alter>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>sharp</accidental>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="15">
+      <note>
+        <pitch>
+          <step>C</step>
+          <alter>1</alter>
+          <octave>6</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>sharp</accidental>
+      </note>
+      <note>
+        <pitch>
+          <step>D</step>
+          <alter>1</alter>
+          <octave>6</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>sharp</accidental>
+      </note>
+      <note>
+        <pitch>
+          <step>E</step>
+          <alter>1</alter>
+          <octave>6</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>sharp</accidental>
+      </note>
+      <note>
+        <pitch>
+          <step>F</step>
+          <alter>1</alter>
+          <octave>6</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>sharp</accidental>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="16">
+      <note>
+        <pitch>
+          <step>G</step>
+          <alter>1</alter>
+          <octave>6</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>sharp</accidental>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <alter>1</alter>
+          <octave>6</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>sharp</accidental>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <alter>1</alter>
+          <octave>6</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>sharp</accidental>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <alter>1</alter>
+          <octave>7</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>sharp</accidental>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="17">
+      <note>
+        <pitch>
+          <step>G</step>
+          <alter>-1</alter>
+          <octave>2</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>flat</accidental>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <alter>-1</alter>
+          <octave>2</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>flat</accidental>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <alter>-1</alter>
+          <octave>2</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>flat</accidental>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <alter>-1</alter>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>flat</accidental>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="18">
+      <note>
+        <pitch>
+          <step>D</step>
+          <alter>-1</alter>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>flat</accidental>
+      </note>
+      <note>
+        <pitch>
+          <step>E</step>
+          <alter>-1</alter>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>flat</accidental>
+      </note>
+      <note>
+        <pitch>
+          <step>F</step>
+          <alter>-1</alter>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>flat</accidental>
+      </note>
+      <note>
+        <pitch>
+          <step>G</step>
+          <alter>-1</alter>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>flat</accidental>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="19">
+      <note>
+        <pitch>
+          <step>A</step>
+          <alter>-1</alter>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>flat</accidental>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <alter>-1</alter>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>flat</accidental>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <alter>-1</alter>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>flat</accidental>
+      </note>
+      <note>
+        <pitch>
+          <step>D</step>
+          <alter>-1</alter>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>flat</accidental>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="20">
+      <note>
+        <pitch>
+          <step>E</step>
+          <alter>-1</alter>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>flat</accidental>
+      </note>
+      <note>
+        <pitch>
+          <step>F</step>
+          <alter>-1</alter>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>flat</accidental>
+      </note>
+      <note>
+        <pitch>
+          <step>G</step>
+          <alter>-1</alter>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>flat</accidental>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <alter>-1</alter>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>flat</accidental>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="21">
+      <note>
+        <pitch>
+          <step>B</step>
+          <alter>-1</alter>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>flat</accidental>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <alter>-1</alter>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>flat</accidental>
+      </note>
+      <note>
+        <pitch>
+          <step>D</step>
+          <alter>-1</alter>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>flat</accidental>
+      </note>
+      <note>
+        <pitch>
+          <step>E</step>
+          <alter>-1</alter>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>flat</accidental>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="22">
+      <note>
+        <pitch>
+          <step>F</step>
+          <alter>-1</alter>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>flat</accidental>
+      </note>
+      <note>
+        <pitch>
+          <step>G</step>
+          <alter>-1</alter>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>flat</accidental>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <alter>-1</alter>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>flat</accidental>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <alter>-1</alter>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>flat</accidental>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="23">
+      <note>
+        <pitch>
+          <step>C</step>
+          <alter>-1</alter>
+          <octave>6</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>flat</accidental>
+      </note>
+      <note>
+        <pitch>
+          <step>D</step>
+          <alter>-1</alter>
+          <octave>6</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>flat</accidental>
+      </note>
+      <note>
+        <pitch>
+          <step>E</step>
+          <alter>-1</alter>
+          <octave>6</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>flat</accidental>
+      </note>
+      <note>
+        <pitch>
+          <step>F</step>
+          <alter>-1</alter>
+          <octave>6</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>flat</accidental>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="24">
+      <note>
+        <pitch>
+          <step>G</step>
+          <alter>-1</alter>
+          <octave>6</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>flat</accidental>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <alter>-1</alter>
+          <octave>6</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>flat</accidental>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <alter>-1</alter>
+          <octave>6</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>flat</accidental>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <alter>-1</alter>
+          <octave>7</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>flat</accidental>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="31">
+      <note>
+        <pitch>
+          <step>C</step>
+          <alter>2</alter>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>double-sharp</accidental>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <alter>-2</alter>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>flat-flat</accidental>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <alter>1</alter>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>sharp</accidental>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <alter>1</alter>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>sharp</accidental>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="32">
+      <note>
+        <pitch>
+          <step>C</step>
+          <alter>1</alter>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>sharp</accidental>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <alter>1</alter>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental editorial="yes">sharp</accidental>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/01b-Chords-Rosegarden.xml b/input/regression/musicxml/01b-Chords-Rosegarden.xml
deleted file mode 100644 (file)
index aeb0b3b..0000000
+++ /dev/null
@@ -1,193 +0,0 @@
-<?xml version="1.0"?>
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 0.6 Partwise//EN" "http://www.musicxml.org/dtds/partwise.dtd">
-<score-partwise>
-       <work> <work-title>/home/reinhold/lilypond-dev-files/MusicXML/01b_Chords_Rosegarden.xml</work-title></work> 
-       <identification> 
-               <rights>Unknown</rights>
-               <encoding>
-                       <software>Rosegarden-4</software>
-               </encoding>
-       </identification> 
-       <part-list>
-               <score-part id="P0">
-                       <part-name>Chord test</part-name>
-                       <score-instrument id="I1">
-                               <instrument-name>0</instrument-name>
-                       </score-instrument>
-                       <midi-instrument id="I1">
-                               <midi-channel>1</midi-channel>
-                               <midi-program>1</midi-program>
-                       </midi-instrument>
-               </score-part>
-       </part-list>
-       <part id="P0">
-               <measure number="1">
-                       <attributes>
-                               <divisions>960</divisions>
-                               <time>
-                               <beats>4</beats>
-                               <beat-type>4</beat-type>
-                               </time>
-                               <clef>
-                               <sign>G</sign>
-                               <line>2</line>
-                               </clef>
-                       </attributes>
-                       <note>
-                               <pitch>
-                                       <step>A</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>960</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                       </note>
-                       <note>
-                               <chord/>
-                               <pitch>
-                                       <step>F</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>960</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>A</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>960</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                       </note>
-                       <note>
-                               <chord/>
-                               <pitch>
-                                       <step>F</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>960</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>A</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>960</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                       </note>
-                       <note>
-                               <chord/>
-                               <pitch>
-                                       <step>F</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>960</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>A</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>960</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                       </note>
-                       <note>
-                               <chord/>
-                               <pitch>
-                                       <step>F</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>960</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                       </note>
-               </measure>
-
-               <measure number="2">
-                       <note>
-                               <pitch>
-                                       <step>A</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>960</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                       </note>
-                       <note>
-                               <chord/>
-                               <pitch>
-                                       <step>F</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>960</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>A</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>960</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                       </note>
-                       <note>
-                               <chord/>
-                               <pitch>
-                                       <step>F</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>960</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>A</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>960</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                       </note>
-                       <note>
-                               <chord/>
-                               <pitch>
-                                       <step>F</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>960</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>A</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>960</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                       </note>
-                       <note>
-                               <chord/>
-                               <pitch>
-                                       <step>F</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>960</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                       </note>
-               </measure>
-       </part>
-</score-partwise>
diff --git a/input/regression/musicxml/01b-Pitches-Intervals.xml b/input/regression/musicxml/01b-Pitches-Intervals.xml
new file mode 100644 (file)
index 0000000..c033498
--- /dev/null
@@ -0,0 +1,830 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+  <movement-title>Various piches and interval sizes</movement-title>
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">All pitch intervals in ascending 
+          jump size.</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name>MusicXML Part</part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>2</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <alter>1</alter>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <alter>-1</alter>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>D</step>
+          <alter>-1</alter>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <alter>1</alter>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>D</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>D</step>
+          <alter>1</alter>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <alter>-1</alter>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>E</step>
+          <alter>-1</alter>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <alter>1</alter>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>E</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>E</step>
+          <alter>1</alter>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <alter>-1</alter>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>F</step>
+          <alter>-1</alter>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>G</step>
+          <alter>1</alter>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>F</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>F</step>
+          <alter>1</alter>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>G</step>
+          <alter>-1</alter>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>G</step>
+          <alter>-1</alter>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>F</step>
+          <alter>1</alter>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>F</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>G</step>
+          <alter>1</alter>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>F</step>
+          <alter>-1</alter>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <alter>-1</alter>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>E</step>
+          <alter>1</alter>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>E</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <alter>1</alter>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>E</step>
+          <alter>-1</alter>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <alter>-1</alter>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>D</step>
+          <alter>1</alter>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>D</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <alter>1</alter>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>D</step>
+          <alter>-1</alter>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <alter>-1</alter>
+          <octave>6</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <alter>1</alter>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>6</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <alter>1</alter>
+          <octave>6</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <alter>-1</alter>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>D</step>
+          <alter>-1</alter>
+          <octave>6</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <alter>1</alter>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>D</step>
+          <octave>6</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>D</step>
+          <alter>1</alter>
+          <octave>6</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <alter>-1</alter>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>E</step>
+          <alter>-1</alter>
+          <octave>6</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <alter>1</alter>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>E</step>
+          <octave>6</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>E</step>
+          <alter>1</alter>
+          <octave>6</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <alter>-1</alter>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>F</step>
+          <alter>-1</alter>
+          <octave>6</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>G</step>
+          <alter>1</alter>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>F</step>
+          <octave>6</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>F</step>
+          <alter>1</alter>
+          <octave>6</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>G</step>
+          <alter>-1</alter>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>G</step>
+          <alter>-1</alter>
+          <octave>6</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>F</step>
+          <alter>1</alter>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>6</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>F</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>G</step>
+          <alter>1</alter>
+          <octave>6</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>F</step>
+          <alter>-1</alter>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <alter>-1</alter>
+          <octave>6</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>E</step>
+          <alter>1</alter>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>6</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>E</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <alter>1</alter>
+          <octave>6</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>E</step>
+          <alter>-1</alter>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <alter>-1</alter>
+          <octave>6</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>D</step>
+          <alter>1</alter>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>6</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>D</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <alter>1</alter>
+          <octave>6</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>D</step>
+          <alter>-1</alter>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+    </measure>
+  </part>
+</score-partwise>
+
diff --git a/input/regression/musicxml/01c-Chords-Rosegarden.xml b/input/regression/musicxml/01c-Chords-Rosegarden.xml
deleted file mode 100644 (file)
index c5be6e5..0000000
+++ /dev/null
@@ -1,266 +0,0 @@
-<?xml version="1.0"?>
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 0.6 Partwise//EN" "http://www.musicxml.org/dtds/partwise.dtd">
-<score-partwise>
-       <work> <work-title>/home/reinhold/lilypond-dev-files/MusicXML/01c_Chords_Rosegarden.xml</work-title></work> 
-       <identification> 
-               <rights>Unknown</rights>
-               <encoding>
-                       <software>Rosegarden-4</software>
-               </encoding>
-       </identification> 
-       <part-list>
-               <score-part id="P0">
-                       <part-name>Chord test</part-name>
-                       <score-instrument id="I1">
-                               <instrument-name>0</instrument-name>
-                       </score-instrument>
-                       <midi-instrument id="I1">
-                               <midi-channel>1</midi-channel>
-                               <midi-program>1</midi-program>
-                       </midi-instrument>
-               </score-part>
-       </part-list>
-       <part id="P0">
-               <measure number="1">
-                       <attributes>
-                               <divisions>960</divisions>
-                               <time>
-                               <beats>4</beats>
-                               <beat-type>4</beat-type>
-                               </time>
-                               <clef>
-                               <sign>G</sign>
-                               <line>2</line>
-                               </clef>
-                       </attributes>
-                       <note>
-                               <pitch>
-                                       <step>F</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>1440</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                               <dot/>
-                       </note>
-                       <note>
-                               <chord/>
-                               <pitch>
-                                       <step>A</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>1440</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                               <dot/>
-                       </note>
-                       <note>
-                               <chord/>
-                               <pitch>
-                                       <step>C</step>
-                                       <octave>5</octave>
-                               </pitch>
-                               <duration>1440</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                               <dot/>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>A</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>480</duration>
-                               <voice>1</voice>
-                               <type>eighth</type>
-                       </note>
-                       <note>
-                               <chord/>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>5</octave>
-                               </pitch>
-                               <duration>480</duration>
-                               <voice>1</voice>
-                               <type>eighth</type>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>A</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>960</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                       </note>
-                       <note>
-                               <chord/>
-                               <pitch>
-                                       <step>F</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>960</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                       </note>
-                       <note>
-                               <chord/>
-                               <pitch>
-                                       <step>C</step>
-                                       <octave>5</octave>
-                               </pitch>
-                               <duration>960</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>A</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>960</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                       </note>
-                       <note>
-                               <chord/>
-                               <pitch>
-                                       <step>F</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>960</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                       </note>
-                       <note>
-                               <chord/>
-                               <pitch>
-                                       <step>C</step>
-                                       <octave>5</octave>
-                               </pitch>
-                               <duration>960</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                       </note>
-               </measure>
-
-               <measure number="2">
-                       <note>
-                               <pitch>
-                                       <step>A</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>960</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                       </note>
-                       <note>
-                               <chord/>
-                               <pitch>
-                                       <step>F</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>960</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                       </note>
-                       <note>
-                               <chord/>
-                               <pitch>
-                                       <step>E</step>
-                                       <octave>5</octave>
-                               </pitch>
-                               <duration>960</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>A</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>960</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                       </note>
-                       <note>
-                               <chord/>
-                               <pitch>
-                                       <step>F</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>960</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                       </note>
-                       <note>
-                               <chord/>
-                               <pitch>
-                                       <step>F</step>
-                                       <octave>5</octave>
-                               </pitch>
-                               <duration>960</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>A</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>960</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                       </note>
-                       <note>
-                               <chord/>
-                               <pitch>
-                                       <step>F</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>960</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                       </note>
-                       <note>
-                               <chord/>
-                               <pitch>
-                                       <step>E</step>
-                                       <octave>5</octave>
-                               </pitch>
-                               <duration>960</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>A</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>960</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                       </note>
-                       <note>
-                               <chord/>
-                               <pitch>
-                                       <step>F</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>960</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                       </note>
-                       <note>
-                               <chord/>
-                               <pitch>
-                                       <step>D</step>
-                                       <octave>5</octave>
-                               </pitch>
-                               <duration>960</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                       </note>
-               </measure>
-       </part>
-</score-partwise>
diff --git a/input/regression/musicxml/01c-Pitches-NoVoiceElement.xml b/input/regression/musicxml/01c-Pitches-NoVoiceElement.xml
new file mode 100644 (file)
index 0000000..2f782c1
--- /dev/null
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN" "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise version="2.0">
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">The &lt;voice&gt; element 
+        of notes is optional in MusicXML (although Dolet always writes it out). 
+        Here, there is one note with lyrics, but without a voice assigned. It 
+        should still be correctly converted.</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name>MusicXML Part</part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>4</divisions>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>16</duration>
+        <type>whole</type>
+        <lyric number="1">
+          <syllabic>single</syllabic>
+          <text>A</text>
+        </lyric>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+</score-partwise>
diff --git a/input/regression/musicxml/01d-Chords-SchubertStabatMater.xml b/input/regression/musicxml/01d-Chords-SchubertStabatMater.xml
deleted file mode 100644 (file)
index 3dce2b8..0000000
+++ /dev/null
@@ -1,173 +0,0 @@
-<?xml version="1.0"?>
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 0.6 Partwise//EN" "http://www.musicxml.org/dtds/partwise.dtd">
-<score-partwise>
-       <work> <work-title>/home/reinhold/lilypond-dev-files/MusicXML/01c_Chords_Rosegarden.xml</work-title></work> 
-       <identification> 
-               <rights>Unknown</rights>
-               <encoding>
-                       <software>Rosegarden-4</software>
-               </encoding>
-       </identification> 
-       <part-list>
-               <score-part id="P0">
-                       <part-name>Chord test</part-name>
-                       <score-instrument id="I1">
-                               <instrument-name>0</instrument-name>
-                       </score-instrument>
-                       <midi-instrument id="I1">
-                               <midi-channel>1</midi-channel>
-                               <midi-program>1</midi-program>
-                       </midi-instrument>
-               </score-part>
-       </part-list>
-       <part id="P0">
-          <measure number="1">
-            <attributes>
-              <divisions>8</divisions>
-              <key>
-                <fifths>-4</fifths>
-                <mode>major</mode>
-              </key>
-              <time symbol="common">
-                <beats>4</beats>
-                <beat-type>4</beat-type>
-              </time>
-              <clef>
-                <sign>G</sign>
-                <line>2</line>
-              </clef>
-            </attributes>
-            <sound tempo="120"/>
-            <direction placement="above">
-              <direction-type>
-                <words default-y="15" font-family="Times New Roman" font-size="8,5" font-weight="bold">Largo</words>
-              </direction-type>
-            </direction>
-            <direction placement="below">
-              <direction-type>
-                <dynamics default-y="-80">
-                  <fp/>
-                </dynamics>
-              </direction-type>
-              <offset>3</offset>
-            </direction>
-            <note>
-              <pitch>
-                <step>F</step>
-                <octave>4</octave>
-              </pitch>
-              <duration>32</duration>
-              <voice>1</voice>
-              <type>whole</type>
-              <notations>
-                <articulations>
-                  <accent placement="below"/>
-                </articulations>
-                <fermata type="upright"/>
-              </notations>
-            </note>
-          </measure>
-          <!--=======================================================-->
-          <measure number="2">
-            <direction placement="below">
-              <direction-type>
-                <dynamics default-y="-80">
-                  <p/>
-                </dynamics>
-              </direction-type>
-              <offset>1</offset>
-              <sound dynamics="54"/>
-            </direction>
-            <note>
-              <pitch>
-                <step>F</step>
-                <octave>4</octave>
-              </pitch>
-              <duration>12</duration>
-              <voice>1</voice>
-              <type>quarter</type>
-              <dot/>
-              <stem>up</stem>
-            </note>
-            <note>
-              <chord/>
-              <pitch>
-                <step>A</step>
-                <alter>-1</alter>
-                <octave>4</octave>
-              </pitch>
-              <duration>12</duration>
-              <voice>1</voice>
-              <type>quarter</type>
-              <dot/>
-              <stem>up</stem>
-            </note>
-            <note>
-              <pitch>
-                <step>F</step>
-                <octave>4</octave>
-              </pitch>
-              <duration>4</duration>
-              <voice>1</voice>
-              <type>eighth</type>
-              <stem>up</stem>
-            </note>
-            <note>
-              <chord/>
-              <pitch>
-                <step>A</step>
-                <alter>-1</alter>
-                <octave>4</octave>
-              </pitch>
-              <duration>4</duration>
-              <voice>1</voice>
-              <type>eighth</type>
-              <stem>up</stem>
-            </note>
-            <note>
-              <pitch>
-                <step>G</step>
-                <octave>4</octave>
-              </pitch>
-              <duration>8</duration>
-              <voice>1</voice>
-              <type>quarter</type>
-              <stem>up</stem>
-            </note>
-            <note>
-              <chord/>
-              <pitch>
-                <step>B</step>
-                <alter>-1</alter>
-                <octave>4</octave>
-              </pitch>
-              <duration>8</duration>
-              <voice>1</voice>
-              <type>quarter</type>
-              <stem>up</stem>
-            </note>
-            <note>
-              <pitch>
-                <step>G</step>
-                <octave>4</octave>
-              </pitch>
-              <duration>8</duration>
-              <voice>1</voice>
-              <type>quarter</type>
-              <stem>up</stem>
-            </note>
-            <note>
-              <chord/>
-              <pitch>
-                <step>B</step>
-                <alter>-1</alter>
-                <octave>4</octave>
-              </pitch>
-              <duration>8</duration>
-              <voice>1</voice>
-              <type>quarter</type>
-              <stem>up</stem>
-            </note>
-          </measure>
-       </part>
-</score-partwise>
diff --git a/input/regression/musicxml/01d-Pitches-Microtones.xml b/input/regression/musicxml/01d-Pitches-Microtones.xml
new file mode 100644 (file)
index 0000000..2019abb
--- /dev/null
@@ -0,0 +1,125 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">Some microtones: c 
+          flat-and-a-half, d half-flat, e half-sharp, f sharp-and-a half. 
+          Once in the lower and once in the upper region of the 
+          staff.</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name>MusicXML Part</part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <alter>-1.5</alter>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>D</step>
+          <alter>-0.5</alter>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>E</step>
+          <alter>0.5</alter>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>F</step>
+          <alter>1.5</alter>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="2">
+      <note>
+        <pitch>
+          <step>C</step>
+          <alter>-1.5</alter>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>D</step>
+          <alter>-0.5</alter>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>E</step>
+          <alter>0.5</alter>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>F</step>
+          <alter>1.5</alter>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/01e-Chords-PickupMeasures.xml b/input/regression/musicxml/01e-Chords-PickupMeasures.xml
deleted file mode 100644 (file)
index 4b9c9d4..0000000
+++ /dev/null
@@ -1,90 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 2.0 Partwise//EN"
-          "http://www.musicxml.org/dtds/partwise.dtd">
-<score-partwise version="2.0">
-    <work>
-        <work-title>Chord detection messed up</work-title>
-    </work>
-    <part-list>
-        <score-part id="P2">
-            <part-name>Piano</part-name>
-            <score-instrument id="P2-I2">
-                <instrument-name>Acoustic Grand Piano</instrument-name>
-            </score-instrument>
-            <midi-instrument id="P2-I2">
-                <midi-channel>2</midi-channel>
-                <midi-program>1</midi-program>
-            </midi-instrument>
-        </score-part>
-    </part-list>
-    <!--=========================================================-->
-    <part id="P2">
-        <measure implicit="yes" number="0" width="177">
-            <attributes>
-                <divisions>1</divisions>
-            </attributes>
-            <note>
-                <pitch>
-                    <step>C</step>
-                    <octave>5</octave>
-                </pitch>
-                <duration>1</duration>
-                <voice>1</voice>
-                <type>quarter</type>
-            </note>
-        </measure>
-        <!--=======================================================-->
-        <measure number="1">
-            <note>
-                <pitch>
-                    <step>C</step>
-                    <octave>5</octave>
-                </pitch>
-                <duration>1</duration>
-                <voice>1</voice>
-                <type>quarter</type>
-            </note>
-            <note>
-                <chord/>
-                <pitch>
-                    <step>A</step>
-                    <octave>4</octave>
-                </pitch>
-                <duration>1</duration>
-                <voice>1</voice>
-                <type>quarter</type>
-            </note>
-            <note>
-                <chord/>
-                <pitch>
-                    <step>F</step>
-                    <octave>4</octave>
-                </pitch>
-                <duration>1</duration>
-                <voice>1</voice>
-                <type>quarter</type>
-            </note>
-            <note>
-                <pitch>
-                    <step>C</step>
-                    <octave>5</octave>
-                </pitch>
-                <duration>1</duration>
-                <voice>1</voice>
-                <type>quarter</type>
-            </note>
-            <note>
-                <chord/>
-                <pitch>
-                    <step>A</step>
-                    <octave>4</octave>
-                </pitch>
-                <duration>1</duration>
-                <voice>1</voice>
-                <type>quarter</type>
-            </note>
-        </measure>
-        <!--=======================================================-->
-    </part>
-    <!--=========================================================-->
-</score-partwise>
diff --git a/input/regression/musicxml/02-Rests.itexi b/input/regression/musicxml/02-Rests.itexi
new file mode 100644 (file)
index 0000000..ba92d1e
--- /dev/null
@@ -0,0 +1 @@
+@unnumberedsec 02 ... Rests
diff --git a/input/regression/musicxml/02a-Notations-MusicXML.xml b/input/regression/musicxml/02a-Notations-MusicXML.xml
deleted file mode 100644 (file)
index 431a80f..0000000
+++ /dev/null
@@ -1,1232 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 2.0 Partwise//EN"
-                                "http://www.musicxml.org/dtds/partwise.dtd">
-<score-partwise version="2.0">
-  <movement-title>MusicXML notations (attached to note)</movement-title>
-  <identification/>
-  <part-list>
-    <score-part id="P1">
-      <part-name></part-name>
-    </score-part>
-  </part-list>
-  <!--=========================================================-->
-  <part id="P1">
-    <!-- General Notation elements (no spanners, which are tested separately):
-         fermata | arpeggiate | non-arpeggiate | accidental-mark -->
-    <measure number="1">
-      <attributes>
-        <divisions>1</divisions>
-        <key>
-          <fifths>0</fifths>
-          <mode>major</mode>
-        </key>
-        <clef>
-          <sign>G</sign>
-          <line>2</line>
-        </clef>
-      </attributes>
-      <note>
-        <pitch>
-          <step>C</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations>
-          <fermata type="upright"/>
-        </notations>
-        <lyric number="1"><text>ferm.</text></lyric>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations>
-          <fermata>normal</fermata>
-        </notations>
-        <lyric number="1"><text>normal ferm.</text></lyric>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations>
-          <fermata>angled</fermata>
-        </notations>
-        <lyric number="1"><text>angled ferm.</text></lyric>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations>
-          <fermata>square</fermata>
-        </notations>
-        <lyric number="1"><text>square ferm.</text></lyric>
-      </note>
-    </measure>
-    <measure number="2">
-      <note>
-        <pitch>
-          <step>C</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations>
-          <fermata type="inverted"/>
-        </notations>
-        <lyric number="1"><text>inv.ferm.</text></lyric>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations><arpeggiate/></notations>
-        <lyric number="1"><text>arp.</text></lyric>
-      </note>
-      <note>
-        <chord/>
-        <pitch>
-          <step>E</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations><arpeggiate/></notations>
-      </note>
-      <note>
-        <chord/>
-        <pitch>
-          <step>G</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations><arpeggiate/></notations>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations><non-arpeggiate type="bottom"/></notations>
-        <lyric number="1"><text>non-arp.</text></lyric>
-      </note>
-      <note>
-        <chord/>
-        <pitch>
-          <step>E</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <chord/>
-        <pitch>
-          <step>G</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations><non-arpeggiate type="top"/></notations>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations>
-          <accidental-mark placement="above">double-sharp</accidental-mark>
-        </notations>
-        <lyric number="1"><text>acc.mark</text></lyric>
-      </note>
-      <barline location="right">
-        <bar-style>light-light</bar-style>
-      </barline>
-    </measure>
-
-    <!-- Articulations: 
-            accent | strong-accent | staccato | tenuto |
-            detached-legato | staccatissimo | spiccato |
-            scoop | plop | doit | falloff | breath-mark |
-            caesura | stress | unstress | other-articulation -->
-    <measure number="3">
-      <note>
-        <pitch>
-          <step>C</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations>
-          <articulations><accent/></articulations>
-        </notations>
-        <lyric number="1"><text>acc.</text></lyric>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations>
-          <articulations><strong-accent/></articulations>
-        </notations>
-        <lyric number="1"><text>str.-acc.</text></lyric>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations>
-          <articulations><staccato/></articulations>
-        </notations>
-        <lyric number="1"><text>stacc.</text></lyric>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations>
-          <articulations><tenuto/></articulations>
-        </notations>
-        <lyric number="1"><text>ten.</text></lyric>
-      </note>
-    </measure>
-    <measure number="4">
-      <note>
-        <pitch>
-          <step>C</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations>
-          <articulations><detached-legato/></articulations>
-        </notations>
-        <lyric number="1"><text>det.-leg.</text></lyric>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations>
-          <articulations><staccatissimo/></articulations>
-        </notations>
-        <lyric number="1"><text>stacc.ss</text></lyric>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations>
-          <articulations><spiccato/></articulations>
-        </notations>
-        <lyric number="1"><text>spicc.</text></lyric>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations>
-          <articulations><scoop/></articulations>
-        </notations>
-        <lyric number="1"><text>scoop</text></lyric>
-      </note>
-    </measure>
-    <measure number="5">
-      <note>
-        <pitch>
-          <step>C</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations>
-          <articulations><plop/></articulations>
-        </notations>
-        <lyric number="1"><text>plop</text></lyric>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations>
-          <articulations><doit/></articulations>
-        </notations>
-        <lyric number="1"><text>doit</text></lyric>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations>
-          <articulations><falloff/></articulations>
-        </notations>
-        <lyric number="1"><text>falloff</text></lyric>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations>
-          <articulations><breath-mark/></articulations>
-        </notations>
-        <lyric number="1"><text>breath</text></lyric>
-      </note>
-    </measure>
-    <measure number="6">
-      <note>
-        <pitch>
-          <step>C</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations>
-          <articulations><caesura/></articulations>
-        </notations>
-        <lyric number="1"><text>caes.</text></lyric>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations>
-          <articulations><stress/></articulations>
-        </notations>
-        <lyric number="1"><text>stress</text></lyric>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations>
-          <articulations><unstress/></articulations>
-        </notations>
-        <lyric number="1"><text>unstr.</text></lyric>
-      </note>
-      <note>
-        <rest/>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <barline location="right">
-        <bar-style>light-light</bar-style>
-      </barline>
-    </measure>
-
-    <!-- Ornaments:
-         trill-mark | turn | delayed-turn | inverted-turn |
-         shake | wavy-line | mordent | inverted-mordent | 
-         schleifer | tremolo | other-ornament), 
-         accidental-mark 
-         
-         Test cases for various tremolo options are in a separate 
-         unit test file
-         -->
-    <measure number="7">
-      <note>
-        <pitch>
-          <step>C</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations>
-          <ornaments><trill-mark/></ornaments>
-        </notations>
-        <lyric number="1"><text>tr.</text></lyric>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations>
-          <ornaments><turn/></ornaments>
-        </notations>
-        <lyric number="1"><text>turn</text></lyric>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations>
-          <ornaments><delayed-turn/></ornaments>
-        </notations>
-        <lyric number="1"><text>del.turn</text></lyric>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations>
-          <ornaments><inverted-turn/></ornaments>
-        </notations>
-        <lyric number="1"><text>inv.turn</text></lyric>
-      </note>
-    </measure>
-    <measure number="8">
-      <note>
-        <pitch>
-          <step>C</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations>
-          <ornaments><shake/></ornaments>
-        </notations>
-        <lyric number="1"><text>shake</text></lyric>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations>
-          <ornaments>
-            <wavy-line placement="below" type="start"/>
-          </ornaments>
-        </notations>
-        <lyric number="1"><syllabic>begin</syllabic><text>wavy</text></lyric>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations>
-          <ornaments>
-            <wavy-line placement="below" type="stop"/>
-            <wavy-line placement="below" type="start"/>
-          </ornaments>
-        </notations>
-        <lyric number="1"><syllabic>continue</syllabic><text>wavy</text></lyric>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations>
-          <ornaments>
-            <wavy-line placement="below" relative-x="16" type="stop"/>
-          </ornaments>
-        </notations>
-        <lyric number="1"><syllabic>end</syllabic><text>line</text></lyric>
-      </note>
-    </measure>
-    <measure number="9">
-      <note>
-        <pitch>
-          <step>C</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations>
-          <ornaments><mordent/></ornaments>
-        </notations>
-        <lyric number="1"><text>mord.</text></lyric>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations>
-          <ornaments><inverted-mordent/></ornaments>
-        </notations>
-        <lyric number="1"><text>inv.mord.</text></lyric>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations>
-          <ornaments><schleifer/></ornaments>
-        </notations>
-        <lyric number="1"><text>schl.</text></lyric>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations>
-          <ornaments><tremolo/></ornaments>
-        </notations>
-        <lyric number="1"><text>trem.</text></lyric>
-      </note>
-    </measure>
-    <measure number="10">
-      <note>
-        <pitch>
-          <step>C</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations>
-          <ornaments>
-            <turn/>
-            <accidental-mark>natural</accidental-mark>
-          </ornaments>
-        </notations>
-        <lyric number="1"><text>turn+acc.</text></lyric>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations>
-          <ornaments>
-            <turn/>
-            <accidental-mark placement="above">sharp</accidental-mark>
-            <accidental-mark placement="above">three-quarters-flat</accidental-mark>
-          </ornaments>
-        </notations>
-        <lyric number="1"><text>turn+acc.(ab.+bel./rel to turn)</text></lyric>
-      </note>
-      <note>
-        <rest/>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>half</type>
-      </note>
-      <barline location="right">
-        <bar-style>light-light</bar-style>
-      </barline>
-    </measure>
-
-    <!-- Technical:
-         up-bow | down-bow | harmonic | open-string |
-         thumb-position | fingering | pluck | double-tongue |
-         triple-tongue | stopped | snap-pizzicato | fret |
-         string | hammer-on | pull-off | bend | tap | heel |
-         toe | fingernails | other-technical -->
-    <measure number="11">
-      <note>
-        <pitch>
-          <step>C</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations>
-          <technical><up-bow/></technical>
-        </notations>
-        <lyric number="1"><text>up-b.</text></lyric>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations>
-          <technical><down-bow/></technical>
-        </notations>
-        <lyric number="1"><text>down-b.</text></lyric>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations>
-          <technical><harmonic/></technical>
-        </notations>
-        <lyric number="1"><text>harm.</text></lyric>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations>
-          <technical><harmonic><natural/></harmonic></technical>
-        </notations>
-        <lyric number="1"><text>nat.harm.</text></lyric>
-      </note>
-    </measure>
-    <measure number="12">
-      <note>
-        <pitch>
-          <step>C</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations>
-          <technical><harmonic><artificial/></harmonic></technical>
-        </notations>
-        <lyric number="1"><text>art.harm.</text></lyric>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations>
-          <technical><harmonic><natural/><base-pitch/></harmonic></technical>
-        </notations>
-        <lyric number="1"><text>nat.h./base</text></lyric>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations>
-          <technical><harmonic><natural/><touching-pitch/></harmonic></technical>
-        </notations>
-        <lyric number="1"><text>nat.h./touching</text></lyric>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations>
-          <technical><harmonic><natural/><sounding-pitch/></harmonic></technical>
-        </notations>
-        <lyric number="1"><text>nat.h./sounding</text></lyric>
-      </note>
-    </measure>
-    <measure number="13">
-      <note>
-        <pitch>
-          <step>C</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations>
-          <technical><open-string/></technical>
-        </notations>
-        <lyric number="1"><text>open-str.</text></lyric>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations>
-          <technical><thumb-position/></technical>
-        </notations>
-        <lyric number="1"><text>thumb-pos.</text></lyric>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations>
-          <technical><fingering/></technical>
-        </notations>
-        <lyric number="1"><text>empty fing.</text></lyric>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations>
-          <technical><fingering>1</fingering></technical>
-        </notations>
-        <lyric number="1"><text>fing.1</text></lyric>
-      </note>
-    </measure>
-    <measure number="14">
-      <note>
-        <pitch>
-          <step>C</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations>
-          <technical><fingering>2</fingering></technical>
-        </notations>
-        <lyric number="1"><text>fing.2</text></lyric>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations>
-          <technical><fingering>3</fingering></technical>
-        </notations>
-        <lyric number="1"><text>fing.3</text></lyric>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations>
-          <technical><fingering>4</fingering></technical>
-        </notations>
-        <lyric number="1"><text>fing.4</text></lyric>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations>
-          <technical><fingering>5</fingering></technical>
-        </notations>
-        <lyric number="1"><text>fing.5</text></lyric>
-      </note>
-    </measure>
-    <measure number="15">
-      <note>
-        <pitch>
-          <step>C</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations>
-          <technical><fingering>something</fingering></technical>
-        </notations>
-        <lyric number="1"><text>fing.sth.</text></lyric>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations>
-          <technical><fingering>5</fingering><fingering substitution="yes">3</fingering><fingering alternate="yes">2</fingering></technical>
-        </notations>
-        <lyric number="1"><text>mult.fing.</text></lyric>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations>
-          <technical><pluck/></technical>
-        </notations>
-        <lyric number="1"><text>empty pluck</text></lyric>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations>
-          <technical><pluck>a</pluck></technical>
-        </notations>
-        <lyric number="1"><text>pluck a</text></lyric>
-      </note>
-    </measure>
-    <measure number="16">
-      <note>
-        <pitch>
-          <step>C</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations>
-          <technical><double-tongue/></technical>
-        </notations>
-        <lyric number="1"><text>dbl.tng.</text></lyric>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations>
-          <technical><triple-tongue/></technical>
-        </notations>
-        <lyric number="1"><text>trpl.tng.</text></lyric>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations>
-          <technical><stopped/></technical>
-        </notations>
-        <lyric number="1"><text>stopped</text></lyric>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations>
-          <technical><snap-pizzicato/></technical>
-        </notations>
-        <lyric number="1"><text>snp.pizz.</text></lyric>
-      </note>
-    </measure>
-    <measure number="17">
-      <note>
-        <pitch>
-          <step>C</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations>
-          <technical><fret/></technical>
-        </notations>
-        <lyric number="1"><text>empty fret</text></lyric>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations>
-          <technical><fret>0</fret></technical>
-        </notations>
-        <lyric number="1"><text>fret0</text></lyric>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations>
-          <technical><string/></technical>
-        </notations>
-        <lyric number="1"><text>empty str.</text></lyric>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations>
-          <technical>
-            <string>5</string>
-          </technical>
-        </notations>
-        <lyric number="1"><text>str. 5</text></lyric>
-      </note>
-    </measure>
-    <measure number="18">
-      <note>
-        <pitch>
-          <step>C</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations>
-          <technical>
-            <hammer-on type="start"/>
-          </technical>
-        </notations>
-        <lyric number="1"><syllabic>begin</syllabic><text>hammer</text></lyric>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations>
-          <technical>
-            <hammer-on type="stop"/>
-          </technical>
-        </notations>
-        <lyric number="1"><syllabic>end</syllabic><text>on</text></lyric>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations>
-          <technical>
-            <pull-off type="start"/>
-          </technical>
-        </notations>
-        <lyric number="1"><syllabic>begin</syllabic><text>pull</text></lyric>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations>
-          <technical>
-            <pull-off type="stop"/>
-          </technical>
-        </notations>
-        <lyric number="1"><syllabic>end</syllabic><text>off</text></lyric>
-      </note>
-    </measure>
-    <measure number="19">
-      <note>
-        <pitch>
-          <step>C</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations>
-          <technical>
-            <bend><bend-alter>4</bend-alter></bend>
-          </technical>
-        </notations>
-        <lyric number="1"><text>bend</text></lyric>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations>
-          <technical>
-            <bend><bend-alter>3</bend-alter><release/><with-bar/></bend>
-          </technical>
-        </notations>
-        <lyric number="1"><text>b.3 with-bar</text></lyric>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations>
-          <technical>
-            <bend><bend-alter>-0.5</bend-alter><pre-bend/></bend>
-          </technical>
-        </notations>
-        <lyric number="1"><text>pre-b. -0.5</text></lyric>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations>
-          <technical>
-            <bend><bend-alter>3.5</bend-alter><release/></bend>
-          </technical>
-        </notations>
-        <lyric number="1"><text>b. release 3.5</text></lyric>
-      </note>
-    </measure>
-    <measure number="20">
-      <note>
-        <pitch>
-          <step>C</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations>
-          <technical><tap/></technical>
-        </notations>
-        <lyric number="1"><text>tap</text></lyric>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations>
-          <technical><tap>T</tap></technical>
-        </notations>
-        <lyric number="1"><text>tap T</text></lyric>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations>
-          <technical><heel/></technical>
-        </notations>
-        <lyric number="1"><text>heel</text></lyric>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations>
-          <technical><toe substitution="yes"/></technical>
-        </notations>
-        <lyric number="1"><text>toe</text></lyric>
-      </note>
-    </measure>
-    <measure number="21">
-      <note>
-        <pitch>
-          <step>C</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations>
-          <technical><fingernails/></technical>
-        </notations>
-        <lyric number="1"><text>fingern.</text></lyric>
-      </note>
-      <note>
-        <rest/>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <rest/>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>half</type>
-      </note>
-      <barline location="right">
-        <bar-style>light-light</bar-style>
-      </barline>
-    </measure>
-    
-    <!-- Dynamics, attached to notes by putting them inside <notations> tags -->
-    <measure number="22">
-      <note>
-        <pitch>
-          <step>C</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations>
-          <dynamics><f/></dynamics>
-        </notations>
-        <lyric number="1"><text>f</text></lyric>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations>
-          <dynamics><ppp/></dynamics>
-        </notations>
-        <lyric number="1"><text>ppp</text></lyric>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations>
-          <dynamics><sfp/></dynamics>
-        </notations>
-        <lyric number="1"><text>sfp</text></lyric>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations>
-          <dynamics><other-dynamics>sfffz</other-dynamics></dynamics>
-        </notations>
-        <lyric number="1"><text>Oth.dyn.</text></lyric>
-      </note>
-    </measure>
-    
-    <!-- General tests: multiple notations, directions, etc. -->
-    <measure number="23">
-      <note>
-        <pitch>
-          <step>G</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations>
-          <articulations>
-            <strong-accent placement="above" type="up"/>
-            <staccato placement="above"/>
-          </articulations>
-        </notations>
-        <lyric number="1"><text>both above</text></lyric>
-      </note>
-      <note>
-        <pitch>
-          <step>G</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations>
-          <articulations>
-            <accent placement="below"/>
-            <tenuto placement="below"/>
-            <staccato placement="above"/>
-          </articulations>
-        </notations>
-        <lyric number="1"><text>ab./bel./bel.</text></lyric>
-      </note>
-      <note>
-        <rest/>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>half</type>
-      </note>
-      <barline location="right">
-        <bar-style>light-heavy</bar-style>
-      </barline>
-    </measure>
-
-  </part>
-</score-partwise>
diff --git a/input/regression/musicxml/02a-Rests-Durations.xml b/input/regression/musicxml/02a-Rests-Durations.xml
new file mode 100644 (file)
index 0000000..1398844
--- /dev/null
@@ -0,0 +1,179 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+  <movement-title>Rest unit test</movement-title>
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">All different rest lengths: A 
+          two-bar multi-measure rest, a whole rest, a half, etc. until a 
+          128th-rest; Then the same with dotted durations.</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name>MusicXML Part</part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>32</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+        <measure-style>
+          <multiple-rest>2</multiple-rest>
+        </measure-style>
+      </attributes>
+      <note>
+        <rest/>
+        <duration>128</duration>
+        <voice>1</voice>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="2">
+      <note>
+        <rest/>
+        <duration>128</duration>
+        <voice>1</voice>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="3">
+      <note>
+        <rest/>
+        <duration>128</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="4">
+      <note>
+        <rest/>
+        <duration>64</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+      <note>
+        <rest/>
+        <duration>32</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <rest/>
+        <duration>16</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+      </note>
+      <note>
+        <rest/>
+        <duration>8</duration>
+        <voice>1</voice>
+        <type>16th</type>
+      </note>
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>32nd</type>
+      </note>
+      <note>
+        <rest/>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>64th</type>
+      </note>
+      <note>
+        <rest/>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>128th</type>
+      </note>
+      <note>
+        <rest/>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>128th</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="5">
+      <note>
+        <rest/>
+        <duration>96</duration>
+        <voice>1</voice>
+        <type>half</type>
+        <dot/>
+      </note>
+      <note>
+        <rest/>
+        <duration>32</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="6">
+      <note>
+        <rest/>
+        <duration>48</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <dot/>
+      </note>
+      <note>
+        <rest/>
+        <duration>24</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <dot/>
+      </note>
+      <note>
+        <rest/>
+        <duration>12</duration>
+        <voice>1</voice>
+        <type>16th</type>
+        <dot/>
+      </note>
+      <note>
+        <rest/>
+        <duration>6</duration>
+        <voice>1</voice>
+        <type>32nd</type>
+        <dot/>
+      </note>
+      <note>
+        <rest/>
+        <duration>3</duration>
+        <voice>1</voice>
+        <type>64th</type>
+        <dot/>
+      </note>
+      <note>
+        <rest/>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>128th</type>
+        <dot/>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/02b-Articulations-Texts-PJB.xml b/input/regression/musicxml/02b-Articulations-Texts-PJB.xml
deleted file mode 100644 (file)
index 8e52b8d..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 0.6b Partwise//EN"
- "http://www.musicxml.org/dtds/partwise.dtd">
-<score-partwise>
-       <identification>
-               <encoding>
-                       <software>/usr/bin/vi</software>
-                       <encoding-date>2007-02-01</encoding-date>
-               </encoding>
-       </identification>
-       <part-list>
-               <score-part id="P1"><part-name></part-name></score-part>
-       </part-list>
-       <part id="P1">
-               <measure number="1">
-                       <attributes>
-                               <divisions>96</divisions>
-                               <key><fifths>0</fifths></key>
-                               <time><beats>4</beats><beat-type>4</beat-type></time>
-                               <staves>1</staves>
-                               <clef number="1"><sign>G</sign><line>2</line></clef>
-                       </attributes>
-                       <direction placement="above">
-                               <direction-type>
-                                       <words default-x="-1" default-y="15" font-size="medium" font-weight="normal"> 
-                                               Normal, Medium
-                                       </words>
-                               </direction-type>
-                               <staff>1</staff>
-                       </direction>
-                       <note>
-                               <pitch><step>F</step><octave>4</octave></pitch>
-                               <duration>384</duration>
-                               <voice>1</voice>
-                               <type>eighth</type>
-                               <staff>1</staff>
-                       </note>
-                       <direction placement="below">
-                               <direction-type>
-                                       <words default-x="1" default-y="15" justify="left" font-size="medium" font-weight="bold"> 
-                                               Bold, Medium
-                                       </words>
-                               </direction-type>
-                               <staff>1</staff>
-                       </direction>
-               </measure>
-               <measure number="2">
-                       <direction placement="above">
-                               <direction-type>
-                                       <words default-x="1" default-y="15" font-size="large" font-weight="normal"> 
-                                               Normal, Large
-                                       </words>
-                               </direction-type>
-                               <staff>1</staff>
-                       </direction>
-                       <note>
-                               <pitch><step>G</step><octave>4</octave></pitch>
-                               <duration>384</duration>
-                               <voice>1</voice>
-                               <type>whole</type>
-                               <staff>1</staff>
-                       </note>
-                       <direction placement="below">
-                               <direction-type>
-                                       <words default-x="1" default-y="15" font-size="large" font-weight="bold"> 
-                                               Bold, Large
-                                       </words>
-                               </direction-type>
-                               <staff>1</staff>
-                       </direction>
-               </measure>
-               <measure number="3">
-                       <direction placement="above">
-                               <direction-type>
-                                       <words default-x="1" default-y="15" font-size="small" font-weight="normal"> 
-                                               Normal, Small
-                                       </words>
-                               </direction-type>
-                               <staff>1</staff>
-                       </direction>
-                       <note>
-                               <pitch><step>F</step><octave>4</octave></pitch>
-                               <duration>384</duration>
-                               <voice>1</voice>
-                               <type>whole</type>
-                               <staff>1</staff>
-                       </note>
-                        <direction placement="below">
-                            <direction-type>
-                                <words default-x="1" default-y="15" font-size="small" font-weight="bold"> 
-                                    Bold, Small
-                                </words>
-                            </direction-type>
-                            <staff>1</staff>
-                        </direction>
-                        <direction placement="below">
-                            <direction-type>
-                                <words default-x="1" default-y="-15" font-size="small" color="#FF8000"> 
-                                    Normal, Small, Colored, Below
-                                </words>
-                            </direction-type>
-                            <staff>1</staff>
-                        </direction>
-               </measure>
-       </part>
-</score-partwise>
diff --git a/input/regression/musicxml/02b-Rests-PitchedRests.xml b/input/regression/musicxml/02b-Rests-PitchedRests.xml
new file mode 100644 (file)
index 0000000..28fafc3
--- /dev/null
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 0.6b Partwise//EN"
+ "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+       <identification>
+               <miscellaneous>
+                       <miscellaneous-field name="description">Rests can have 
+                            explicit pitches, where they are displayed. The 
+                            first rest uses no explicit position and should use 
+                            the default position, all others are explicitly 
+                            positioned somewhere else.</miscellaneous-field>
+               </miscellaneous>
+       </identification>
+       <part-list>
+               <score-part id="P1"><part-name>MusicXML Part</part-name></score-part>
+       </part-list>
+       <part id="P1">
+               <measure number="1">
+                       <attributes>
+                               <divisions>96</divisions>
+                               <key><fifths>0</fifths></key>
+                               <time><beats>5</beats><beat-type>4</beat-type></time>
+                               <staves>1</staves>
+                               <clef number="1"><sign>G</sign><line>2</line></clef>
+                       </attributes>
+                       <note>
+                               <rest/>
+                               <duration>96</duration>
+                               <voice>1</voice>
+                               <type>quarter</type>
+                               <staff>1</staff>
+                       </note>
+                       <note>
+                               <rest><display-step>E</display-step><display-octave>4</display-octave></rest>
+                               <duration>96</duration>
+                               <voice>1</voice>
+                               <type>quarter</type>
+                               <staff>1</staff>
+                       </note>
+                       <note>
+                               <rest><display-step>F</display-step><display-octave>5</display-octave></rest>
+                               <duration>96</duration>
+                               <voice>1</voice>
+                               <type>quarter</type>
+                               <staff>1</staff>
+                       </note>
+                       <note>
+                               <rest><display-step>A</display-step><display-octave>3</display-octave></rest>
+                               <duration>96</duration>
+                               <voice>1</voice>
+                               <type>quarter</type>
+                               <staff>1</staff>
+                       </note>
+                       <note>
+                               <rest><display-step>C</display-step><display-octave>6</display-octave></rest>
+                               <duration>96</duration>
+                               <voice>1</voice>
+                               <type>quarter</type>
+                               <staff>1</staff>
+                       </note>
+               </measure>
+       </part>
+</score-partwise>
diff --git a/input/regression/musicxml/02c-MultipleNotationChildren-RFK.xml b/input/regression/musicxml/02c-MultipleNotationChildren-RFK.xml
deleted file mode 100644 (file)
index 450201d..0000000
+++ /dev/null
@@ -1,101 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
-                                "http://www.musicxml.org/dtds/partwise.dtd">
-<score-partwise>
-  <movement-title>Multiple notation and articulation children</movement-title>
-  <identification>
-    <rights>Public Domain</rights>
-    <encoding>
-      <software>Hand-crafted MusicXML</software>
-    </encoding>
-    <miscellaneous>
-      <miscellaneous-field name="comment">
-          It should not make any difference whether two articulations are given
-          inside to different notation elements, inside two different articulations 
-          children of the same notation element or inside the same articulations
-          element. Thus, all three notes should have a staccato and an accent.
-      </miscellaneous-field>
-    </miscellaneous>
-  </identification>
-  <part-list>
-    <score-part id="P1">
-      <part-name>MusicXML Part</part-name>
-    </score-part>
-  </part-list>
-  <!--=========================================================-->
-  <part id="P1">
-    <measure number="1">
-      <attributes>
-        <divisions>4</divisions>
-        <key>
-          <fifths>0</fifths>
-        </key>
-        <time>
-          <beats>3</beats>
-          <beat-type>4</beat-type>
-        </time>
-        <clef>
-          <sign>G</sign>
-          <line>2</line>
-        </clef>
-      </attributes>
-      <note>
-        <pitch>
-          <step>A</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>4</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <accidental>sharp</accidental>
-        <stem>down</stem>
-        <notations>
-          <articulations>
-            <staccato placement="above"/>
-          </articulations>
-        </notations>
-        <notations>
-          <articulations>
-            <accent placement="above"/>
-          </articulations>
-        </notations>
-      </note>
-      <note>
-        <pitch>
-          <step>A</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>4</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <accidental>sharp</accidental>
-        <stem>down</stem>
-        <notations>
-          <articulations>
-            <staccato placement="above"/>
-          </articulations>
-          <articulations>
-            <accent placement="above"/>
-          </articulations>
-        </notations>
-      </note>
-      <note>
-        <pitch>
-          <step>A</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>4</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <accidental>sharp</accidental>
-        <stem>down</stem>
-        <notations>
-          <articulations>
-            <staccato placement="above"/>
-            <accent placement="above"/>
-          </articulations>
-        </notations>
-      </note>
-    </measure>
-  </part>
-</score-partwise>
diff --git a/input/regression/musicxml/02c-Rests-MultiMeasureRests.xml b/input/regression/musicxml/02c-Rests-MultiMeasureRests.xml
new file mode 100644 (file)
index 0000000..346503e
--- /dev/null
@@ -0,0 +1,298 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">Four multi-measure rests: 3 
+          measures, 15 measures, 1 measure, and 12 measures.</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name>MusicXML Part</part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+        <measure-style>
+          <multiple-rest>3</multiple-rest>
+        </measure-style>
+      </attributes>
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="2">
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="3">
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="4">
+      <attributes>
+        <measure-style>
+          <multiple-rest>15</multiple-rest>
+        </measure-style>
+      </attributes>
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="5">
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="6">
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="7">
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="8">
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="9">
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="10">
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="11">
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="12">
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="13">
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="14">
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="15">
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="16">
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="17">
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="18">
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="19">
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="20">
+      <attributes>
+        <measure-style>
+          <multiple-rest>12</multiple-rest>
+        </measure-style>
+      </attributes>
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="21">
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="22">
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="23">
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="24">
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="25">
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="26">
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="27">
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="28">
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="29">
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="30">
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="31">
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/02d-Arpeggio.xml b/input/regression/musicxml/02d-Arpeggio.xml
deleted file mode 100644 (file)
index 97e33b1..0000000
+++ /dev/null
@@ -1,242 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 2.0 Partwise//EN"
-                                "http://www.musicxml.org/dtds/partwise.dtd">
-<score-partwise version="2.0">
-  <movement-title>Arpeggios in MusicXML</movement-title>
-  <identification/>
-  <defaults/>
-  <part-list>
-    <score-part id="P1">
-      <part-name></part-name>
-    </score-part>
-  </part-list>
-  <!--=========================================================-->
-  <part id="P1">
-    <!-- Different Arpeggiate styles: neutral, up, down and non-arpeggiate (bracket) -->
-    <measure number="1">
-      <attributes>
-        <divisions>1</divisions>
-        <key>
-          <fifths>0</fifths>
-          <mode>major</mode>
-        </key>
-        <clef>
-          <sign>G</sign>
-          <line>2</line>
-        </clef>
-      </attributes>
-      <note>
-        <pitch>
-          <step>C</step><octave>4</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations><arpeggiate/></notations>
-        <lyric number="1"><text>normal</text></lyric>
-      </note>
-      <note>
-        <chord/>
-        <pitch>
-          <step>E</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations><arpeggiate/></notations>
-      </note>
-      <note>
-        <chord/>
-        <pitch>
-          <step>G</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations><arpeggiate/></notations>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step><octave>4</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations><arpeggiate direction="up"/></notations>
-        <lyric number="1"><text>up</text></lyric>
-      </note>
-      <note>
-        <chord/>
-        <pitch>
-          <step>E</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations><arpeggiate direction="up"/></notations>
-      </note>
-      <note>
-        <chord/>
-        <pitch>
-          <step>G</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations><arpeggiate direction="up"/></notations>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step><octave>4</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations><arpeggiate/></notations>
-        <lyric number="1"><text>normal</text></lyric>
-      </note>
-      <note>
-        <chord/>
-        <pitch>
-          <step>E</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations><arpeggiate/></notations>
-      </note>
-      <note>
-        <chord/>
-        <pitch>
-          <step>G</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations><arpeggiate/></notations>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step><octave>4</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations><arpeggiate direction="down"/></notations>
-        <lyric number="1"><text>down</text></lyric>
-      </note>
-      <note>
-        <chord/>
-        <pitch>
-          <step>E</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations><arpeggiate direction="down"/></notations>
-      </note>
-      <note>
-        <chord/>
-        <pitch>
-          <step>G</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations><arpeggiate direction="down"/></notations>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step><octave>4</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations><arpeggiate/></notations>
-        <lyric number="1"><text>normal</text></lyric>
-      </note>
-      <note>
-        <chord/>
-        <pitch>
-          <step>E</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations><arpeggiate/></notations>
-      </note>
-      <note>
-        <chord/>
-        <pitch>
-          <step>G</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations><arpeggiate/></notations>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step><octave>4</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations><non-arpeggiate type="bottom"/></notations>
-        <lyric number="1"><text>non-arp.</text></lyric>
-      </note>
-      <note>
-        <chord/>
-        <pitch>
-          <step>E</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <chord/>
-        <pitch>
-          <step>G</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations><non-arpeggiate type="top"/></notations>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step><octave>4</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations><arpeggiate/></notations>
-        <lyric number="1"><text>normal</text></lyric>
-      </note>
-      <note>
-        <chord/>
-        <pitch>
-          <step>E</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations><arpeggiate/></notations>
-      </note>
-      <note>
-        <chord/>
-        <pitch>
-          <step>G</step><octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <notations><arpeggiate/></notations>
-      </note>
-      <barline location="right">
-        <bar-style>light-heavy</bar-style>
-      </barline>
-    </measure>
-  </part>
-</score-partwise>
diff --git a/input/regression/musicxml/02d-Rests-Multimeasure-TimeSignatures.xml b/input/regression/musicxml/02d-Rests-Multimeasure-TimeSignatures.xml
new file mode 100644 (file)
index 0000000..c357e5b
--- /dev/null
@@ -0,0 +1,152 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.1 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise version="1.1">
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">Multi-Measure rests should always 
+          be converted into durations that are a multiple of the time 
+          signature.</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name print-object="no">MusicXML Part</part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+        <measure-style>
+          <multiple-rest>2</multiple-rest>
+        </measure-style>
+      </attributes>
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="2">
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="3">
+      <attributes>
+        <time>
+          <beats>3</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <measure-style>
+          <multiple-rest>3</multiple-rest>
+        </measure-style>
+      </attributes>
+      <note>
+        <rest/>
+        <duration>3</duration>
+        <voice>1</voice>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="4">
+      <note>
+        <rest/>
+        <duration>3</duration>
+        <voice>1</voice>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="5">
+      <note>
+        <rest/>
+        <duration>3</duration>
+        <voice>1</voice>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="6">
+      <attributes>
+        <time>
+          <beats>2</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <measure-style>
+          <multiple-rest>2</multiple-rest>
+        </measure-style>
+      </attributes>
+      <note>
+        <rest/>
+        <duration>2</duration>
+        <voice>1</voice>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="7">
+      <note>
+        <rest/>
+        <duration>2</duration>
+        <voice>1</voice>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="8">
+      <attributes>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <measure-style>
+          <multiple-rest>2</multiple-rest>
+        </measure-style>
+      </attributes>
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="9">
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="10">
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/02e-Rests-NoType.xml b/input/regression/musicxml/02e-Rests-NoType.xml
new file mode 100644 (file)
index 0000000..0b72a4d
--- /dev/null
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.1 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise version="1.1">
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">In some cases, a rest might 
+          not have its type attribute set (this happens, for example, with
+          voices in Finale, where you don't manually insert a 
+          rest).</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name>MusicXML Part</part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure implicit="yes" number="0">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <staves>2</staves>
+        <clef number="1">
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+        <clef number="2">
+          <sign>F</sign>
+          <line>4</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <staff>1</staff>
+      </note>
+      <backup>
+        <duration>1</duration>
+      </backup>
+      <note>
+        <rest/>
+        <duration>1</duration>
+        <voice>2</voice>
+        <staff>2</staff>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="1">
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+        <staff>1</staff>
+      </note>
+      <backup>
+        <duration>4</duration>
+      </backup>
+      <note>
+        <pitch>
+          <step>E</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>2</voice>
+        <type>whole</type>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/03-Rhythm.itexi b/input/regression/musicxml/03-Rhythm.itexi
new file mode 100644 (file)
index 0000000..8a5afb2
--- /dev/null
@@ -0,0 +1 @@
+@unnumberedsec 03 ... Rhythm
diff --git a/input/regression/musicxml/03a-Directions-MusicXML.xml b/input/regression/musicxml/03a-Directions-MusicXML.xml
deleted file mode 100644 (file)
index 6863135..0000000
+++ /dev/null
@@ -1,781 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>\r
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 2.0 Partwise//EN"\r
-                                "http://www.musicxml.org/dtds/partwise.dtd">\r
-<score-partwise version="2.0">\r
-  <movement-title>MusicXML directions (attached to staff)</movement-title>\r
-  <identification/>\r
-  <defaults/>\r
-  <part-list>\r
-    <score-part id="P1">\r
-      <part-name print-object="no">MusicXML Part</part-name>\r
-    </score-part>\r
-  </part-list>\r
-  <!--=========================================================-->\r
-  <part id="P1">\r
-    <!-- Direction type can contain the following child types:\r
-         rehearsal+ | segno+ | words+ |\r
-         coda+ | wedge | dynamics+ | dashes | bracket | pedal | \r
-         metronome | octave-shift | harp-pedals | damp | \r
-         damp-all | eyeglasses | scordatura | image |\r
-         accordion-registration | other-direction -->\r
-    <!-- Rehearsal marks -->\r
-    <measure number="1">\r
-      <attributes>\r
-        <divisions>1</divisions>\r
-        <key>\r
-          <fifths>0</fifths>\r
-          <mode>major</mode>\r
-        </key>\r
-        <time symbol="common">\r
-          <beats>4</beats>\r
-          <beat-type>4</beat-type>\r
-        </time>\r
-        <clef>\r
-          <sign>G</sign>\r
-          <line>2</line>\r
-        </clef>\r
-      </attributes>\r
-      <sound tempo="120"/>\r
-      <direction placement="below">\r
-        <direction-type>\r
-          <rehearsal>A</rehearsal>\r
-        </direction-type>\r
-      </direction>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>reh.A (def=sq.)</text></lyric>\r
-      </note>\r
-      <direction placement="above">\r
-        <direction-type>\r
-          <rehearsal enclosure="none">B</rehearsal>\r
-        </direction-type>\r
-      </direction>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>reh.B (none)</text></lyric>\r
-      </note>\r
-      <direction>\r
-        <direction-type>\r
-          <rehearsal enclosure="square">Test</rehearsal>\r
-        </direction-type>\r
-      </direction>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>reh.Test (sq.)</text></lyric>\r
-      </note>\r
-      <direction>\r
-        <direction-type>\r
-          <rehearsal enclosure="circle">Crc</rehearsal>\r
-        </direction-type>\r
-      </direction>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>reh.Crc (crc.)</text></lyric>\r
-      </note>\r
-    </measure>\r
-    <!-- Segno, Coda, Words (extra unit test for formatting!),  Eyeglasses -->\r
-    <measure number="2">\r
-      <direction>\r
-        <direction-type>\r
-          <segno/>\r
-        </direction-type>\r
-      </direction>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>Segno</text></lyric>\r
-      </note>\r
-      <direction>\r
-        <direction-type>\r
-          <coda/>\r
-        </direction-type>\r
-      </direction>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>Coda</text></lyric>\r
-      </note>\r
-      <direction>\r
-        <direction-type>\r
-          <words>words</words>\r
-        </direction-type>\r
-      </direction>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>Words</text></lyric>\r
-      </note>\r
-      <direction>\r
-        <direction-type>\r
-          <eyeglasses/>\r
-        </direction-type>\r
-      </direction>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>Eyegl.</text></lyric>\r
-      </note>\r
-    </measure>\r
-    <!-- Dynamics: p | pp | ppp | pppp | ppppp | pppppp |\r
-        f | ff | fff | ffff | fffff | ffffff | mp | mf | sf |\r
-        sfp | sfpp | fp | rf | rfz | sfz | sffz | fz | \r
-        other-dynamics -->\r
-    <measure number="3">\r
-      <direction>\r
-        <direction-type>\r
-          <dynamics><p/></dynamics>\r
-        </direction-type>\r
-      </direction>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>p</text></lyric>\r
-      </note>\r
-      <direction>\r
-        <direction-type>\r
-          <dynamics><pp/></dynamics>\r
-        </direction-type>\r
-      </direction>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>pp</text></lyric>\r
-      </note>\r
-      <direction>\r
-        <direction-type>\r
-          <dynamics><ppp/></dynamics>\r
-        </direction-type>\r
-      </direction>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>ppp</text></lyric>\r
-      </note>\r
-      <direction>\r
-        <direction-type>\r
-          <dynamics><pppp/></dynamics>\r
-        </direction-type>\r
-      </direction>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>pppp</text></lyric>\r
-      </note>\r
-    </measure>\r
-    <measure number="4">\r
-      <direction>\r
-        <direction-type>\r
-          <dynamics><ppppp/></dynamics>\r
-        </direction-type>\r
-      </direction>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>ppppp</text></lyric>\r
-      </note>\r
-      <direction>\r
-        <direction-type>\r
-          <dynamics><pppppp/></dynamics>\r
-        </direction-type>\r
-      </direction>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>pppppp</text></lyric>\r
-      </note>\r
-      <direction>\r
-        <direction-type>\r
-          <dynamics><f/></dynamics>\r
-        </direction-type>\r
-      </direction>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>f</text></lyric>\r
-      </note>\r
-      <direction>\r
-        <direction-type>\r
-          <dynamics><ff/></dynamics>\r
-        </direction-type>\r
-      </direction>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>ff</text></lyric>\r
-      </note>\r
-    </measure>\r
-    <measure number="5">\r
-      <direction>\r
-        <direction-type>\r
-          <dynamics><fff/></dynamics>\r
-        </direction-type>\r
-      </direction>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>fff</text></lyric>\r
-      </note>\r
-      <direction>\r
-        <direction-type>\r
-          <dynamics><ffff/></dynamics>\r
-        </direction-type>\r
-      </direction>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>ffff</text></lyric>\r
-      </note>\r
-      <direction>\r
-        <direction-type>\r
-          <dynamics><fffff/></dynamics>\r
-        </direction-type>\r
-      </direction>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>fffff</text></lyric>\r
-      </note>\r
-      <direction>\r
-        <direction-type>\r
-          <dynamics><ffffff/></dynamics>\r
-        </direction-type>\r
-      </direction>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>ffffff</text></lyric>\r
-      </note>\r
-    </measure>\r
-    <measure number="6">\r
-      <direction>\r
-        <direction-type>\r
-          <dynamics><mp/></dynamics>\r
-        </direction-type>\r
-      </direction>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>mp</text></lyric>\r
-      </note>\r
-      <direction>\r
-        <direction-type>\r
-          <dynamics><mf/></dynamics>\r
-        </direction-type>\r
-      </direction>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>mf</text></lyric>\r
-      </note>\r
-      <direction>\r
-        <direction-type>\r
-          <dynamics><sf/></dynamics>\r
-        </direction-type>\r
-      </direction>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>sf</text></lyric>\r
-      </note>\r
-      <direction>\r
-        <direction-type>\r
-          <dynamics><sfp/></dynamics>\r
-        </direction-type>\r
-      </direction>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>sfp</text></lyric>\r
-      </note>\r
-    </measure>\r
-    <measure number="7">\r
-      <direction>\r
-        <direction-type>\r
-          <dynamics><sfpp/></dynamics>\r
-        </direction-type>\r
-      </direction>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>sfpp</text></lyric>\r
-      </note>\r
-      <direction>\r
-        <direction-type>\r
-          <dynamics><fp/></dynamics>\r
-        </direction-type>\r
-      </direction>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>fp</text></lyric>\r
-      </note>\r
-      <direction>\r
-        <direction-type>\r
-          <dynamics><rf/></dynamics>\r
-        </direction-type>\r
-      </direction>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>rf</text></lyric>\r
-      </note>\r
-      <direction>\r
-        <direction-type>\r
-          <dynamics><rfz/></dynamics>\r
-        </direction-type>\r
-      </direction>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>rfz</text></lyric>\r
-      </note>\r
-    </measure>\r
-    <measure number="8">\r
-      <direction>\r
-        <direction-type>\r
-          <dynamics><sfz/></dynamics>\r
-        </direction-type>\r
-      </direction>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>sfz</text></lyric>\r
-      </note>\r
-      <direction>\r
-        <direction-type>\r
-          <dynamics><sffz/></dynamics>\r
-        </direction-type>\r
-      </direction>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>sffz</text></lyric>\r
-      </note>\r
-      <direction>\r
-        <direction-type>\r
-          <dynamics><fz/></dynamics>\r
-        </direction-type>\r
-      </direction>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>fz</text></lyric>\r
-      </note>\r
-      <direction>\r
-        <direction-type>\r
-          <dynamics><other-dynamics>abc-ffz</other-dynamics></dynamics>\r
-        </direction-type>\r
-      </direction>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>abc-ffz (oth.)</text></lyric>\r
-      </note>\r
-    </measure>\r
-    <!-- Spanners (there is another unit test for testing the various options):\r
-         wedge, dashes, bracket, pedal, octave-shift -->\r
-    <measure number="9">\r
-      <direction>\r
-        <direction-type>\r
-          <wedge type="crescendo"/>\r
-        </direction-type>\r
-      </direction>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><syllabic>begin</syllabic><text>hairpin</text></lyric>\r
-      </note>\r
-      <direction>\r
-        <direction-type>\r
-          <wedge type="stop"/>\r
-        </direction-type>\r
-      </direction>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><syllabic>end</syllabic><text>cresc</text></lyric>\r
-      </note>\r
-      <direction>\r
-        <direction-type>\r
-          <dashes type="start"/>\r
-        </direction-type>\r
-      </direction>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><syllabic>begin</syllabic><text>dash</text></lyric>\r
-      </note>\r
-      <direction>\r
-        <direction-type>\r
-          <dashes type="stop"/>\r
-        </direction-type>\r
-      </direction>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><syllabic>end</syllabic><text>es</text></lyric>\r
-      </note>\r
-    </measure>\r
-    <measure number="10">\r
-      <direction>\r
-        <direction-type>\r
-          <bracket type="start" line-end="none"/>\r
-        </direction-type>\r
-      </direction>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><syllabic>begin</syllabic><text>bra</text></lyric>\r
-      </note>\r
-      <direction>\r
-        <direction-type>\r
-          <bracket type="stop" line-end="none"/>\r
-        </direction-type>\r
-      </direction>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><syllabic>end</syllabic><text>cket</text></lyric>\r
-      </note>\r
-      <direction>\r
-        <direction-type>\r
-          <octave-shift type="up"/>\r
-        </direction-type>\r
-      </direction>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><syllabic>begin</syllabic><text>oct.</text></lyric>\r
-      </note>\r
-      <direction>\r
-        <direction-type>\r
-          <octave-shift type="stop"/>\r
-        </direction-type>\r
-      </direction>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><syllabic>end</syllabic><text>shift</text></lyric>\r
-      </note>\r
-    </measure>\r
-    <measure number="11">\r
-      <direction>\r
-        <direction-type>\r
-          <pedal type="start"/>\r
-        </direction-type>\r
-      </direction>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><syllabic>begin</syllabic><text>pedal</text></lyric>\r
-      </note>\r
-      <direction>\r
-        <direction-type>\r
-          <pedal type="change"/>\r
-        </direction-type>\r
-      </direction>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><syllabic>continue</syllabic><text>change</text></lyric>\r
-      </note>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-      </note>\r
-      <direction>\r
-        <direction-type>\r
-          <pedal type="stop"/>\r
-        </direction-type>\r
-      </direction>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><syllabic>end</syllabic><text>mark</text></lyric>\r
-      </note>\r
-    </measure>\r
-    <!-- metronome, harp-pedals, damp, damp-all, scordatura, accordion-registration -->\r
-    <measure number="12">\r
-      <direction>\r
-        <direction-type>\r
-          <metronome><beat-unit>quarter</beat-unit><per-minute>60</per-minute></metronome>\r
-        </direction-type>\r
-      </direction>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>Metr.</text></lyric>\r
-      </note>\r
-      <direction>\r
-        <direction-type>\r
-          <harp-pedals>\r
-            <pedal-tuning>\r
-              <pedal-step>D</pedal-step>\r
-              <pedal-alter>0</pedal-alter>\r
-            </pedal-tuning>\r
-            <pedal-tuning>\r
-              <pedal-step>C</pedal-step>\r
-              <pedal-alter>-1</pedal-alter>\r
-            </pedal-tuning>\r
-            <pedal-tuning>\r
-              <pedal-step>B</pedal-step>\r
-              <pedal-alter>-1</pedal-alter>\r
-            </pedal-tuning>\r
-            <pedal-tuning>\r
-              <pedal-step>E</pedal-step>\r
-              <pedal-alter>0</pedal-alter>\r
-            </pedal-tuning>\r
-            <pedal-tuning>\r
-              <pedal-step>F</pedal-step>\r
-              <pedal-alter>0</pedal-alter>\r
-            </pedal-tuning>\r
-            <pedal-tuning>\r
-              <pedal-step>G</pedal-step>\r
-              <pedal-alter>1</pedal-alter>\r
-            </pedal-tuning>\r
-            <pedal-tuning>\r
-              <pedal-step>A</pedal-step>\r
-              <pedal-alter>-1</pedal-alter>\r
-            </pedal-tuning>\r
-          </harp-pedals>\r
-        </direction-type>\r
-      </direction>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>Harp ped.</text></lyric>\r
-      </note>\r
-      <direction>\r
-        <direction-type>\r
-          <damp/>\r
-        </direction-type>\r
-      </direction>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>Damp</text></lyric>\r
-      </note>\r
-      <direction>\r
-        <direction-type>\r
-          <damp-all/>\r
-        </direction-type>\r
-      </direction>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>Damp all</text></lyric>\r
-      </note>\r
-    </measure>\r
-    <measure number="13">\r
-      <direction>\r
-        <direction-type>\r
-          <scordatura>\r
-              <accord string="0"><tuning-step>C</tuning-step><tuning-octave>3</tuning-octave></accord>\r
-              <accord string="1"><tuning-step>G</tuning-step><tuning-octave>5</tuning-octave></accord>\r
-              <accord string="2"><tuning-step>E</tuning-step><tuning-octave>5</tuning-octave></accord>\r
-          </scordatura>\r
-        </direction-type>\r
-      </direction>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>Scord.</text></lyric>\r
-      </note>\r
-      <direction>\r
-        <direction-type>\r
-          <accordion-registration>\r
-              <accordion-high/>\r
-              <accordion-middle>2</accordion-middle>\r
-              <accordion-low/>\r
-          </accordion-registration>\r
-        </direction-type>\r
-      </direction>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>Accordion reg.</text></lyric>\r
-      </note>\r
-      <note>\r
-        <rest/>\r
-        <duration>2</duration>\r
-        <voice>1</voice>\r
-        <type>half</type>\r
-      </note>\r
-      <barline location="right">\r
-        <bar-style>light-light</bar-style>\r
-      </barline>\r
-    </measure>\r
-    <!-- Other issues: Multiple direction-type elements: "subito p", ppp<fff -->\r
-    <measure number="14">\r
-      <direction placement="below">\r
-        <direction-type>\r
-          <words default-y="-80" font-family="Times New Roman" font-size="10.25" font-style="italic">subito</words>\r
-        </direction-type>\r
-        <direction-type>\r
-          <words default-y="-80" font-family="Times New Roman" font-size="10.25"> </words>\r
-        </direction-type>\r
-        <direction-type>\r
-          <dynamics default-y="-80">\r
-            <p/>\r
-          </dynamics>\r
-        </direction-type>\r
-        <offset>2</offset>\r
-      </direction>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>subp</text></lyric>\r
-      </note>\r
-      <direction placement="below">\r
-        <direction-type>\r
-          <dynamics><ppp/></dynamics>\r
-        </direction-type>\r
-        <direction-type>\r
-          <wedge type="crescendo"/>\r
-        </direction-type>\r
-        <offset>2</offset>\r
-      </direction>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><syllabic>begin</syllabic><text>ppp cresc</text></lyric>\r
-      </note>\r
-      <direction placement="below">\r
-        <direction-type>\r
-          <wedge type="stop"/>\r
-        </direction-type>\r
-        <direction-type>\r
-          <dynamics><fff/></dynamics>\r
-        </direction-type>\r
-        <offset>2</offset>\r
-      </direction>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><syllabic>end</syllabic><text>to fff</text></lyric>\r
-      </note>\r
-      <note>\r
-        <rest/>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>subp</text></lyric>\r
-      </note>\r
-      <barline location="right">\r
-        <bar-style>light-heavy</bar-style>\r
-      </barline>\r
-    </measure>\r
-    <!--=======================================================-->\r
-  </part>\r
-  <!--=========================================================-->\r
-</score-partwise>\r
diff --git a/input/regression/musicxml/03a-Rhythm-Durations.xml b/input/regression/musicxml/03a-Rhythm-Durations.xml
new file mode 100644 (file)
index 0000000..e0dab25
--- /dev/null
@@ -0,0 +1,387 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">All note durations, from long, 
+          brevis, whole until 128th; First with their plain values, then dotted 
+          and finally doubly-dotted.</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name>MusicXML Part</part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>64</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time>
+          <beats>16</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1024</duration>
+        <voice>1</voice>
+        <type>longa</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="2">
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>512</duration>
+        <voice>1</voice>
+        <type>breve</type>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>256</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>128</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>64</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>32</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>16</duration>
+        <voice>1</voice>
+        <type>16th</type>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>8</duration>
+        <voice>1</voice>
+        <type>32nd</type>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>64th</type>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>128th</type>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>128th</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="4">
+      <attributes>
+        <time>
+          <beats>24</beats>
+          <beat-type>4</beat-type>
+        </time>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1536</duration>
+        <voice>1</voice>
+        <type>longa</type>
+        <dot/>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="5">
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>768</duration>
+        <voice>1</voice>
+        <type>breve</type>
+        <dot/>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>384</duration>
+        <voice>1</voice>
+        <type>whole</type>
+        <dot/>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>192</duration>
+        <voice>1</voice>
+        <type>half</type>
+        <dot/>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>96</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <dot/>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>48</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <dot/>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>24</duration>
+        <voice>1</voice>
+        <type>16th</type>
+        <dot/>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>12</duration>
+        <voice>1</voice>
+        <type>32nd</type>
+        <dot/>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>6</duration>
+        <voice>1</voice>
+        <type>64th</type>
+        <dot/>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>3</duration>
+        <voice>1</voice>
+        <type>128th</type>
+        <dot/>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>3</duration>
+        <voice>1</voice>
+        <type>128th</type>
+        <dot/>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="6">
+      <attributes>
+        <time>
+          <beats>28</beats>
+          <beat-type>4</beat-type>
+        </time>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1792</duration>
+        <voice>1</voice>
+        <type>longa</type>
+        <dot/>
+        <dot/>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="7">
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>896</duration>
+        <voice>1</voice>
+        <type>breve</type>
+        <dot/>
+        <dot/>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>448</duration>
+        <voice>1</voice>
+        <type>whole</type>
+        <dot/>
+        <dot/>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>224</duration>
+        <voice>1</voice>
+        <type>half</type>
+        <dot/>
+        <dot/>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>112</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <dot/>
+        <dot/>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>56</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <dot/>
+        <dot/>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>28</duration>
+        <voice>1</voice>
+        <type>16th</type>
+        <dot/>
+        <dot/>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>14</duration>
+        <voice>1</voice>
+        <type>32nd</type>
+        <dot/>
+        <dot/>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>7</duration>
+        <voice>1</voice>
+        <type>64th</type>
+        <dot/>
+        <dot/>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>7</duration>
+        <voice>1</voice>
+        <type>64th</type>
+        <dot/>
+        <dot/>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/03b-AccordionRegistrations-MusicXML.xml b/input/regression/musicxml/03b-AccordionRegistrations-MusicXML.xml
deleted file mode 100644 (file)
index ad6fa3c..0000000
+++ /dev/null
@@ -1,356 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>\r
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 2.0 Partwise//EN"\r
-                                "http://www.musicxml.org/dtds/partwise.dtd">\r
-<score-partwise version="2.0">\r
-  <movement-title>Accordion registrations</movement-title>\r
-  <identification/>\r
-  <defaults/>\r
-  <part-list>\r
-    <score-part id="P1">\r
-      <part-name></part-name>\r
-    </score-part>\r
-  </part-list>\r
-  <!--=========================================================-->\r
-  <part id="P1">\r
-    <!-- Direction type can contain the following child types:\r
-         rehearsal+ | segno+ | words+ |\r
-         coda+ | wedge | dynamics+ | dashes | bracket | pedal | \r
-         metronome | octave-shift | harp-pedals | damp | \r
-         damp-all | eyeglasses | scordatura | image |\r
-         accordion-registration | other-direction -->\r
-    <!-- Rehearsal marks -->\r
-    <measure number="1">\r
-      <attributes>\r
-        <divisions>1</divisions>\r
-        <key>\r
-          <fifths>0</fifths>\r
-          <mode>major</mode>\r
-        </key>\r
-        <time symbol="common">\r
-          <beats>4</beats>\r
-          <beat-type>4</beat-type>\r
-        </time>\r
-        <clef>\r
-          <sign>G</sign>\r
-          <line>2</line>\r
-        </clef>\r
-      </attributes>\r
-      <direction>\r
-        <direction-type>\r
-          <accordion-registration>\r
-              <accordion-low/>\r
-          </accordion-registration>\r
-        </direction-type>\r
-      </direction>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>0/0/1</text></lyric>\r
-      </note>\r
-      <direction>\r
-        <direction-type>\r
-          <accordion-registration>\r
-              <accordion-middle>1</accordion-middle>\r
-          </accordion-registration>\r
-        </direction-type>\r
-      </direction>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>0/1/0</text></lyric>\r
-      </note>\r
-      <direction>\r
-        <direction-type>\r
-          <accordion-registration>\r
-              <accordion-middle>1</accordion-middle>\r
-              <accordion-low/>\r
-          </accordion-registration>\r
-        </direction-type>\r
-      </direction>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>0/1/1</text></lyric>\r
-      </note>\r
-      <direction>\r
-        <direction-type>\r
-          <accordion-registration>\r
-              <accordion-middle>2</accordion-middle>\r
-          </accordion-registration>\r
-        </direction-type>\r
-      </direction>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>0/2/0</text></lyric>\r
-      </note>\r
-    </measure>\r
-    <measure number="2">\r
-      <direction>\r
-        <direction-type>\r
-          <accordion-registration>\r
-              <accordion-middle>2</accordion-middle>\r
-              <accordion-low/>\r
-          </accordion-registration>\r
-        </direction-type>\r
-      </direction>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>0/2/1</text></lyric>\r
-      </note>\r
-      <direction>\r
-        <direction-type>\r
-          <accordion-registration>\r
-              <accordion-middle>3</accordion-middle>\r
-          </accordion-registration>\r
-        </direction-type>\r
-      </direction>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>0/3/0</text></lyric>\r
-      </note>\r
-      <direction>\r
-        <direction-type>\r
-          <accordion-registration>\r
-              <accordion-middle>3</accordion-middle>\r
-              <accordion-low/>\r
-          </accordion-registration>\r
-        </direction-type>\r
-      </direction>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>0/3/1</text></lyric>\r
-      </note>\r
-      <direction>\r
-        <direction-type>\r
-          <accordion-registration>\r
-              <accordion-high/>\r
-              <accordion-low/>\r
-          </accordion-registration>\r
-        </direction-type>\r
-      </direction>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>1/0/1</text></lyric>\r
-      </note>\r
-    </measure>\r
-    <measure number="3">\r
-      <direction>\r
-        <direction-type>\r
-          <accordion-registration>\r
-              <accordion-high/>\r
-          </accordion-registration>\r
-        </direction-type>\r
-      </direction>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>1/0/0</text></lyric>\r
-      </note>\r
-      <direction>\r
-        <direction-type>\r
-          <accordion-registration>\r
-              <accordion-high/>\r
-              <accordion-middle>1</accordion-middle>\r
-          </accordion-registration>\r
-        </direction-type>\r
-      </direction>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>1/1/0</text></lyric>\r
-      </note>\r
-      <direction>\r
-        <direction-type>\r
-          <accordion-registration>\r
-              <accordion-high/>\r
-              <accordion-middle>1</accordion-middle>\r
-              <accordion-low/>\r
-          </accordion-registration>\r
-        </direction-type>\r
-      </direction>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>1/1/1</text></lyric>\r
-      </note>\r
-      <direction>\r
-        <direction-type>\r
-          <accordion-registration>\r
-              <accordion-high/>\r
-              <accordion-middle>2</accordion-middle>\r
-          </accordion-registration>\r
-        </direction-type>\r
-      </direction>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>1/2/0</text></lyric>\r
-      </note>\r
-    </measure>\r
-    <measure number="4">\r
-      <direction>\r
-        <direction-type>\r
-          <accordion-registration>\r
-              <accordion-high/>\r
-              <accordion-middle>2</accordion-middle>\r
-              <accordion-low/>\r
-          </accordion-registration>\r
-        </direction-type>\r
-      </direction>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>1/2/1</text></lyric>\r
-      </note>\r
-      <direction>\r
-        <direction-type>\r
-          <accordion-registration>\r
-              <accordion-high/>\r
-              <accordion-middle>3</accordion-middle>\r
-          </accordion-registration>\r
-        </direction-type>\r
-      </direction>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>1/3/0</text></lyric>\r
-      </note>\r
-      <direction>\r
-        <direction-type>\r
-          <accordion-registration>\r
-              <accordion-high/>\r
-              <accordion-middle>3</accordion-middle>\r
-              <accordion-low/>\r
-          </accordion-registration>\r
-        </direction-type>\r
-      </direction>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>1/3/1</text></lyric>\r
-      </note>\r
-      <!-- Special cases: No accordion-(high|middle|low) given, empty middle, \r
-           middle with invalid value, middle with 0 -->\r
-      <direction>\r
-        <direction-type>\r
-          <accordion-registration>\r
-          </accordion-registration>\r
-        </direction-type>\r
-      </direction>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>empty</text></lyric>\r
-      </note>\r
-    </measure>\r
-    <measure number="5">\r
-      <direction>\r
-        <direction-type>\r
-          <accordion-registration>\r
-              <accordion-high/>\r
-              <accordion-middle/>\r
-              <accordion-low/>\r
-          </accordion-registration>\r
-        </direction-type>\r
-      </direction>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>empty M</text></lyric>\r
-      </note>\r
-      <direction>\r
-        <direction-type>\r
-          <accordion-registration>\r
-              <accordion-high/>\r
-              <accordion-middle>test</accordion-middle>\r
-              <accordion-low/>\r
-          </accordion-registration>\r
-        </direction-type>\r
-      </direction>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>inval.M</text></lyric>\r
-      </note>\r
-      <direction>\r
-        <direction-type>\r
-          <accordion-registration>\r
-              <accordion-high/>\r
-              <accordion-middle>0</accordion-middle>\r
-              <accordion-low/>\r
-          </accordion-registration>\r
-        </direction-type>\r
-      </direction>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>M=0</text></lyric>\r
-      </note>\r
-      <direction>\r
-        <direction-type>\r
-          <accordion-registration>\r
-              <accordion-high/>\r
-              <accordion-middle>5</accordion-middle>\r
-              <accordion-low/>\r
-          </accordion-registration>\r
-        </direction-type>\r
-      </direction>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>M=5</text></lyric>\r
-      </note>\r
-      \r
-      <barline location="right">\r
-        <bar-style>light-heavy</bar-style>\r
-      </barline>\r
-    </measure>\r
-    <!--=======================================================-->\r
-  </part>\r
-  <!--=========================================================-->\r
-</score-partwise>\r
diff --git a/input/regression/musicxml/03b-Rhythm-Backup.xml b/input/regression/musicxml/03b-Rhythm-Backup.xml
new file mode 100644 (file)
index 0000000..b0e6754
--- /dev/null
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.1 Partwise//EN" "http://www.musicxml.org/dtds/partwise.dtd">
+
+<score-partwise version="1.1">
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">Two voices with a backup, that 
+          does not jump to the beginning for the measure for voice 2, but 
+          somewhere in the middle. Voice 2 thus won't have any notes or rests 
+          for the first beat of the measures.</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name></part-name>
+    </score-part>
+  </part-list>
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>2</divisions>
+        <key><fifths>0</fifths></key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <backup>
+        <duration>2</duration>
+      </backup>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>2</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>2</voice>
+        <type>quarter</type>
+      </note>
+    </measure>
+  </part>
+</score-partwise>
+
diff --git a/input/regression/musicxml/03c-MetronomeMarks.xml b/input/regression/musicxml/03c-MetronomeMarks.xml
deleted file mode 100644 (file)
index 0ce8208..0000000
+++ /dev/null
@@ -1,180 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.1 Partwise//EN"
-                                "http://www.musicxml.org/dtds/partwise.dtd">
-<score-partwise version="1.1">
-  <movement-title>Tempo markings</movement-title>
-  <identification/>
-  <defaults/>
-  <part-list>
-    <score-part id="P1">
-      <part-name></part-name>
-      <score-instrument id="P1-I1">
-        <instrument-name>Grand Piano</instrument-name>
-      </score-instrument>
-      <midi-instrument id="P1-I1">
-        <midi-channel>1</midi-channel>
-        <midi-program>1</midi-program>
-      </midi-instrument>
-    </score-part>
-  </part-list>
-  <!--=========================================================-->
-  <part id="P1">
-    <measure number="1" width="527">
-      <attributes>
-        <divisions>1</divisions>
-        <key>
-          <fifths>0</fifths>
-          <mode>major</mode>
-        </key>
-        <time symbol="common">
-          <beats>4</beats>
-          <beat-type>4</beat-type>
-        </time>
-        <clef>
-          <sign>G</sign>
-          <line>2</line>
-        </clef>
-      </attributes>
-      <direction>
-        <direction-type>
-          <metronome>
-            <beat-unit>quarter</beat-unit>
-            <beat-unit-dot/>
-            <per-minute>100</per-minute>
-          </metronome>
-        </direction-type>
-      </direction>
-      <note>
-        <pitch><step>C</step><octave>5</octave></pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch><step>C</step><octave>5</octave></pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <direction>
-        <direction-type>
-          <words>Adagio</words>
-        </direction-type>
-        <direction-type>
-          <metronome>
-            <beat-unit>long</beat-unit>
-            <per-minute>100</per-minute>
-          </metronome>
-        </direction-type>
-      </direction>
-      <note>
-        <pitch><step>C</step><octave>5</octave></pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch><step>C</step><octave>5</octave></pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-    </measure>
-    <!--=======================================================-->
-    <measure number="2">
-      <direction>
-        <direction-type>
-          <metronome>
-            <beat-unit>quarter</beat-unit>
-            <beat-unit-dot/>
-            <beat-unit>half</beat-unit>
-            <beat-unit-dot/>
-          </metronome>
-        </direction-type>
-      </direction>
-      <note>
-        <pitch><step>C</step><octave>5</octave></pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch><step>C</step><octave>5</octave></pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <direction>
-        <direction-type>
-          <metronome>
-            <beat-unit>long</beat-unit>
-            <beat-unit>32nd</beat-unit>
-            <beat-unit-dot/>
-          </metronome>
-        </direction-type>
-      </direction>
-      <note>
-        <pitch><step>C</step><octave>5</octave></pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch><step>C</step><octave>5</octave></pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-    </measure>
-    <!--=======================================================-->
-    <measure number="3">
-      <direction>
-        <direction-type>
-          <metronome parentheses="yes">
-            <beat-unit>quarter</beat-unit>
-            <beat-unit-dot/>
-            <beat-unit>half</beat-unit>
-            <beat-unit-dot/>
-          </metronome>
-        </direction-type>
-      </direction>
-      <note>
-        <pitch><step>C</step><octave>5</octave></pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch><step>C</step><octave>5</octave></pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <direction>
-        <direction-type>
-          <metronome parentheses="yes">
-            <beat-unit>quarter</beat-unit>
-            <beat-unit-dot/>
-            <per-minute>77</per-minute>
-          </metronome>
-        </direction-type>
-      </direction>
-      <note>
-        <pitch><step>C</step><octave>5</octave></pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <pitch><step>C</step><octave>5</octave></pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <barline location="right">
-        <bar-style>light-heavy</bar-style>
-      </barline>
-    </measure>
-  </part>
-  <!--=========================================================-->
-</score-partwise>
diff --git a/input/regression/musicxml/03c-Rhythm-DivisionChange.xml b/input/regression/musicxml/03c-Rhythm-DivisionChange.xml
new file mode 100644 (file)
index 0000000..16a54c5
--- /dev/null
@@ -0,0 +1,106 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">Although uncommon, the divisions
+            of a quarter note can change somewhere in the middle of a MusicXML
+            file. Here, the first half measure uses a division of 1, which
+            then changes to 8 in the middle of the first measure and to 38
+            in the middle of the second measure.</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name>MusicXML Part</part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <attributes>
+        <divisions>8</divisions>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>8</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>8</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="2">
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>16</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+      <attributes>
+        <divisions>38</divisions>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>76</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/04a-Spanners-Finale.xml b/input/regression/musicxml/04a-Spanners-Finale.xml
deleted file mode 100644 (file)
index 30ab933..0000000
+++ /dev/null
@@ -1,690 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>\r
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"\r
-                                "http://www.musicxml.org/dtds/partwise.dtd">\r
-<score-partwise>\r
-  <movement-title>Spanners Test</movement-title>\r
-  <identification>\r
-    <creator type="composer">Reinhold Kainhofer</creator>\r
-    <rights>Public Domain </rights>\r
-    <encoding>\r
-      <software>Finale 2007 for Windows</software>\r
-      <software>Dolet Light for Finale 2007</software>\r
-      <encoding-date>2007-08-31</encoding-date>\r
-    </encoding>\r
-  </identification>\r
-  <part-list>\r
-    <score-part id="P1">\r
-      <part-name>MusicXML Part</part-name>\r
-      <score-instrument id="P1-I1">\r
-        <instrument-name>Grand Piano</instrument-name>\r
-      </score-instrument>\r
-      <midi-instrument id="P1-I1">\r
-        <midi-channel>1</midi-channel>\r
-        <midi-program>1</midi-program>\r
-      </midi-instrument>\r
-    </score-part>\r
-  </part-list>\r
-  <!--=========================================================-->\r
-  <part id="P1">\r
-      <!-- Tested spanners: tuplet, slur(solid, dashed), wedge (cresc, dim),\r
-           wavy-line, octave-shift (8va,8vb,15ma,15mb), bracket (solid, \r
-           dashed up/down, dashes, glissando (wavy), slide (solid), \r
-           pedal (down,up,change; line/Ped*)  -->\r
-    <measure number="1">\r
-      <attributes>\r
-        <divisions>24</divisions>\r
-        <key>\r
-          <fifths>0</fifths>\r
-          <mode>major</mode>\r
-        </key>\r
-        <time symbol="common">\r
-          <beats>4</beats>\r
-          <beat-type>4</beat-type>\r
-        </time>\r
-        <clef>\r
-          <sign>G</sign>\r
-          <line>2</line>\r
-        </clef>\r
-      </attributes>\r
-      <sound tempo="120"/>\r
-      <note>\r
-        <pitch>\r
-          <step>B</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>16</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <time-modification>\r
-          <actual-notes>3</actual-notes>\r
-          <normal-notes>2</normal-notes>\r
-        </time-modification>\r
-        <stem>down</stem>\r
-        <notations>\r
-          <tuplet number="1" placement="above" type="start"/>\r
-        </notations>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>B</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>16</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <time-modification>\r
-          <actual-notes>3</actual-notes>\r
-          <normal-notes>2</normal-notes>\r
-        </time-modification>\r
-        <stem>down</stem>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>B</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>16</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <time-modification>\r
-          <actual-notes>3</actual-notes>\r
-          <normal-notes>2</normal-notes>\r
-        </time-modification>\r
-        <stem>down</stem>\r
-        <notations>\r
-          <tuplet number="1" type="stop"/>\r
-        </notations>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>B</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>24</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-        <notations>\r
-          <slur number="1" type="start"/>\r
-        </notations>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>B</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>24</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="2">\r
-      <note>\r
-        <pitch>\r
-          <step>B</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>24</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-        <notations>\r
-          <slur number="1" type="stop"/>\r
-        </notations>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>B</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>24</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-        <notations>\r
-          <slur line-type="dashed" number="1" type="start"/>\r
-        </notations>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>B</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>24</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>B</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>24</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-        <notations>\r
-          <slur number="1" type="stop"/>\r
-        </notations>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="3">\r
-      <direction placement="above">\r
-        <direction-type>\r
-          <wedge default-y="10" spread="0" type="crescendo"/>\r
-        </direction-type>\r
-        <offset>1</offset>\r
-      </direction>\r
-      <note>\r
-        <pitch>\r
-          <step>B</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>24</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-      </note>\r
-      <direction>\r
-        <direction-type>\r
-          <wedge spread="15" type="stop"/>\r
-        </direction-type>\r
-        <offset>6</offset>\r
-      </direction>\r
-      <note>\r
-        <pitch>\r
-          <step>B</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>24</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-      </note>\r
-      <direction placement="above">\r
-        <direction-type>\r
-          <wedge default-y="13" spread="15" type="diminuendo"/>\r
-        </direction-type>\r
-      </direction>\r
-      <note>\r
-        <pitch>\r
-          <step>B</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>24</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-      </note>\r
-      <direction>\r
-        <direction-type>\r
-          <wedge spread="0" type="stop"/>\r
-        </direction-type>\r
-        <offset>8</offset>\r
-      </direction>\r
-      <note>\r
-        <pitch>\r
-          <step>B</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>24</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="4">\r
-      <note>\r
-        <pitch>\r
-          <step>B</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>24</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-        <notations>\r
-          <ornaments>\r
-            <trill-mark default-y="13"/>\r
-            <wavy-line default-y="13" number="1" type="start"/>\r
-          </ornaments>\r
-        </notations>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>B</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>24</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-        <notations>\r
-          <ornaments>\r
-            <wavy-line number="1" type="start"/>\r
-          </ornaments>\r
-        </notations>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>B</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>24</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-        <notations>\r
-          <ornaments>\r
-            <wavy-line default-y="10" number="1" type="stop"/>\r
-          </ornaments>\r
-        </notations>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>B</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>24</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-        <notations>\r
-          <ornaments>\r
-            <wavy-line number="1" type="start"/>\r
-            <wavy-line number="1" type="stop"/>\r
-          </ornaments>\r
-        </notations>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="5">\r
-      <note>\r
-        <pitch>\r
-          <step>B</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>24</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-      </note>\r
-      <direction>\r
-        <direction-type>\r
-          <octave-shift default-y="12" size="8" type="down"/>\r
-        </direction-type>\r
-        <offset>-22</offset>\r
-      </direction>\r
-      <note>\r
-        <pitch>\r
-          <step>B</step>\r
-          <octave>5</octave>\r
-        </pitch>\r
-        <duration>24</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-      </note>\r
-      <direction>\r
-        <direction-type>\r
-          <octave-shift size="8" type="stop"/>\r
-        </direction-type>\r
-        <offset>-22</offset>\r
-      </direction>\r
-      <note>\r
-        <pitch>\r
-          <step>B</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>24</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-      </note>\r
-      <direction>\r
-        <direction-type>\r
-          <octave-shift default-y="16" size="15" type="down"/>\r
-        </direction-type>\r
-        <offset>-20</offset>\r
-      </direction>\r
-      <note>\r
-        <pitch>\r
-          <step>B</step>\r
-          <octave>6</octave>\r
-        </pitch>\r
-        <duration>24</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-      </note>\r
-      <direction>\r
-        <direction-type>\r
-          <octave-shift size="15" type="stop"/>\r
-        </direction-type>\r
-        <offset>-15</offset>\r
-      </direction>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="6">\r
-      <print new-system="yes"/>\r
-      <direction placement="above">\r
-        <direction-type>\r
-          <bracket default-y="20" line-end="down" line-type="solid" number="1" type="start"/>\r
-        </direction-type>\r
-        <offset>2</offset>\r
-      </direction>\r
-      <note>\r
-        <pitch>\r
-          <step>B</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>24</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-      </note>\r
-      <direction placement="above">\r
-        <direction-type>\r
-          <bracket line-end="down" number="1" type="stop"/>\r
-        </direction-type>\r
-        <offset>8</offset>\r
-      </direction>\r
-      <note>\r
-        <pitch>\r
-          <step>B</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>24</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-      </note>\r
-      <direction placement="above">\r
-        <direction-type>\r
-          <bracket default-y="4" line-end="down" line-type="dashed" number="1" type="start"/>\r
-        </direction-type>\r
-        <offset>3</offset>\r
-      </direction>\r
-      <note>\r
-        <pitch>\r
-          <step>B</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>24</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-      </note>\r
-      <direction placement="above">\r
-        <direction-type>\r
-          <bracket line-end="down" number="1" type="stop"/>\r
-        </direction-type>\r
-        <offset>9</offset>\r
-      </direction>\r
-      <note>\r
-        <pitch>\r
-          <step>B</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>24</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="7">\r
-      <direction placement="above">\r
-        <direction-type>\r
-          <bracket default-y="16" line-end="none" line-type="solid" number="1" type="start"/>\r
-        </direction-type>\r
-        <offset>4</offset>\r
-      </direction>\r
-      <note>\r
-        <pitch>\r
-          <step>B</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>24</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-      </note>\r
-      <direction placement="above">\r
-        <direction-type>\r
-          <bracket line-end="down" number="1" type="stop"/>\r
-        </direction-type>\r
-        <offset>7</offset>\r
-      </direction>\r
-      <note>\r
-        <pitch>\r
-          <step>B</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>24</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-      </note>\r
-      <direction placement="above">\r
-        <direction-type>\r
-          <bracket default-y="16" line-end="none" line-type="dashed" number="1" type="start"/>\r
-        </direction-type>\r
-      </direction>\r
-      <note>\r
-        <pitch>\r
-          <step>B</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>24</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-      </note>\r
-      <direction placement="above">\r
-        <direction-type>\r
-          <bracket line-end="down" number="1" type="stop"/>\r
-        </direction-type>\r
-        <offset>2</offset>\r
-      </direction>\r
-      <note>\r
-        <pitch>\r
-          <step>B</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>24</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="8">\r
-      <direction placement="above">\r
-        <direction-type>\r
-          <bracket default-y="15" line-end="none" line-type="solid" number="1" type="start"/>\r
-        </direction-type>\r
-        <offset>5</offset>\r
-      </direction>\r
-      <note>\r
-        <pitch>\r
-          <step>B</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>24</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>B</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>24</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-      </note>\r
-      <direction placement="above">\r
-        <direction-type>\r
-          <bracket line-end="none" number="1" type="stop"/>\r
-        </direction-type>\r
-        <offset>-11</offset>\r
-      </direction>\r
-      <direction placement="above">\r
-        <direction-type>\r
-          <dashes default-y="10" number="1" type="start"/>\r
-        </direction-type>\r
-        <offset>6</offset>\r
-      </direction>\r
-      <note>\r
-        <pitch>\r
-          <step>B</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>24</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-      </note>\r
-      <direction placement="above">\r
-        <direction-type>\r
-          <dashes number="1" type="stop"/>\r
-        </direction-type>\r
-        <offset>11</offset>\r
-      </direction>\r
-      <note>\r
-        <pitch>\r
-          <step>B</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>24</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="9">\r
-      <note>\r
-        <pitch>\r
-          <step>B</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>24</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-        <notations>\r
-          <glissando line-type="wavy" number="1" type="start"/>\r
-        </notations>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>F</step>\r
-          <octave>5</octave>\r
-        </pitch>\r
-        <duration>24</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-        <notations>\r
-          <glissando line-type="wavy" number="1" type="stop"/>\r
-        </notations>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>B</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>24</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-        <notations>\r
-          <technical>\r
-            <bend>\r
-              <bend-alter>6</bend-alter>\r
-            </bend>\r
-          </technical>\r
-        </notations>\r
-      </note>\r
-      <note print-object="no">\r
-        <pitch>\r
-          <step>F</step>\r
-          <octave>5</octave>\r
-        </pitch>\r
-        <duration>24</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="10">\r
-      <note>\r
-        <pitch>\r
-          <step>B</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>24</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-        <notations>\r
-          <technical>\r
-            <bend>\r
-              <bend-alter>0</bend-alter>\r
-            </bend>\r
-          </technical>\r
-        </notations>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>B</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>24</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>B</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>24</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-        <notations>\r
-          <slide line-type="solid" number="1" type="start"/>\r
-        </notations>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>B</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>24</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-        <notations>\r
-          <slide line-type="solid" number="1" type="stop"/>\r
-        </notations>\r
-      </note>\r
-      <barline location="right">\r
-        <bar-style>light-heavy</bar-style>\r
-      </barline>\r
-    </measure>\r
-  </part>\r
-  <!--=========================================================-->\r
-</score-partwise>\r
diff --git a/input/regression/musicxml/04b-Glissando.xml b/input/regression/musicxml/04b-Glissando.xml
deleted file mode 100644 (file)
index a9e0e0a..0000000
+++ /dev/null
@@ -1,316 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 2.0 Partwise//EN"
-                                "http://www.musicxml.org/dtds/partwise.dtd">
-<score-partwise version="2.0">
-  <movement-title>Glissando and Slide in MusicXML</movement-title>
-  <identification/>
-  <defaults/>
-  <part-list>
-    <score-part id="P1">
-      <part-name></part-name>
-    </score-part>
-  </part-list>
-  <!--=========================================================-->
-  <part id="P1">
-    <!-- Glissando styles: glissando/slide, solid/dashed/dotted/wavy -->
-    <measure number="1">
-      <attributes>
-        <divisions>1</divisions>
-        <key>
-          <fifths>0</fifths>
-          <mode>major</mode>
-        </key>
-        <clef>
-          <sign>G</sign>
-          <line>2</line>
-        </clef>
-      </attributes>
-      <note>
-        <pitch>
-          <step>G</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>down</stem>
-        <notations>
-          <glissando number="1" type="start"/>
-        </notations>
-        <lyric number="1"><text>normal</text></lyric>
-      </note>
-      <note>
-        <pitch>
-          <step>F</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>down</stem>
-        <notations>
-          <glissando number="1" type="stop"/>
-        </notations>
-        <lyric number="1"><text>glissando</text></lyric>
-      </note>
-      <note>
-        <pitch>
-          <step>G</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>down</stem>
-        <notations>
-          <glissando line-type="solid" number="1" type="start">text</glissando>
-        </notations>
-        <lyric number="1"><text>solid</text></lyric>
-      </note>
-      <note>
-        <pitch>
-          <step>F</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>down</stem>
-        <notations>
-          <glissando line-type="solid" number="1" type="stop"/>
-        </notations>
-        <lyric number="1"><text>(+text)</text></lyric>
-      </note>
-    </measure>
-    <measure number="2">
-      <note>
-        <pitch>
-          <step>G</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>down</stem>
-        <notations>
-          <glissando line-type="dashed" number="1" type="start"/>
-        </notations>
-        <lyric number="1"><text>dashed</text></lyric>
-      </note>
-      <note>
-        <pitch>
-          <step>F</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>down</stem>
-        <notations>
-          <glissando line-type="dashed" number="1" type="stop"/>
-        </notations>
-      </note>
-      <note>
-        <pitch>
-          <step>G</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>down</stem>
-        <notations>
-          <glissando line-type="dotted" number="1" type="start"/>
-        </notations>
-        <lyric number="1"><text>dotted</text></lyric>
-      </note>
-      <note>
-        <pitch>
-          <step>F</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>down</stem>
-        <notations>
-          <glissando line-type="dotted" number="1" type="stop"/>
-        </notations>
-      </note>
-    </measure>
-    <measure number="3">
-      <note>
-        <pitch>
-          <step>G</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>down</stem>
-        <notations>
-          <glissando line-type="wavy" number="1" type="start"/>
-        </notations>
-        <lyric number="1"><text>wavy</text></lyric>
-      </note>
-      <note>
-        <pitch>
-          <step>F</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>down</stem>
-        <notations>
-          <glissando line-type="wavy" number="1" type="stop"/>
-        </notations>
-      </note>
-      <note>
-        <pitch>
-          <step>G</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>down</stem>
-        <notations>
-          <slide number="1" type="start"/>
-        </notations>
-        <lyric number="1"><text>normal</text></lyric>
-      </note>
-      <note>
-        <pitch>
-          <step>F</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>down</stem>
-        <notations>
-          <slide number="1" type="stop"/>
-        </notations>
-        <lyric number="1"><text>slide</text></lyric>
-      </note>
-    </measure>
-    <measure number="4">
-      <note>
-        <pitch>
-          <step>G</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>down</stem>
-        <notations>
-          <slide line-type="solid" number="1" type="start">text</slide>
-        </notations>
-        <lyric number="1"><text>solid</text></lyric>
-      </note>
-      <note>
-        <pitch>
-          <step>F</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>down</stem>
-        <notations>
-          <slide line-type="solid" number="1" type="stop"/>
-        </notations>
-        <lyric number="1"><text>(+text)</text></lyric>
-      </note>
-      <note>
-        <pitch>
-          <step>G</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>down</stem>
-        <notations>
-          <slide line-type="dashed" number="1" type="start"/>
-        </notations>
-        <lyric number="1"><text>dashed</text></lyric>
-      </note>
-      <note>
-        <pitch>
-          <step>F</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>down</stem>
-        <notations>
-          <slide line-type="solid" number="1" type="stop"/>
-        </notations>
-      </note>
-    </measure>
-    <measure number="5">
-      <note>
-        <pitch>
-          <step>G</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>down</stem>
-        <notations>
-          <slide line-type="dotted" number="1" type="start"/>
-        </notations>
-        <lyric number="1"><text>dotted</text></lyric>
-      </note>
-      <note>
-        <pitch>
-          <step>F</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>down</stem>
-        <notations>
-          <slide line-type="dotted" number="1" type="stop"/>
-        </notations>
-      </note>
-      <note>
-        <pitch>
-          <step>G</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>down</stem>
-        <notations>
-          <slide line-type="wavy" number="1" type="start"/>
-        </notations>
-        <lyric number="1"><text>wavy</text></lyric>
-      </note>
-      <note>
-        <pitch>
-          <step>F</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>down</stem>
-        <notations>
-          <slide line-type="wavy" number="1" type="stop"/>
-        </notations>
-      </note>
-      
-      <barline location="right">
-        <bar-style>light-heavy</bar-style>
-      </barline>
-    </measure>
-  </part>
-</score-partwise>
diff --git a/input/regression/musicxml/04c-Spanners-Noteedit.xml b/input/regression/musicxml/04c-Spanners-Noteedit.xml
deleted file mode 100644 (file)
index a404b5e..0000000
+++ /dev/null
@@ -1,284 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!DOCTYPE score-partwise PUBLIC
-    "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
-    "http://www.musicxml.org/dtds/partwise.dtd">
-
-<score-partwise>
-       <work>
-       </work>
-
-       <identification>
-               <encoding>
-                       <software>NoteEdit</software>
-               </encoding>
-       </identification>
-
-       <part-list>
-               <score-part id="P1">
-                       <part-name>Staff 1</part-name>
-                       <score-instrument id="P1-I1">
-                               <instrument-name>Klavier 1</instrument-name>
-                       </score-instrument>
-                       <midi-instrument id="P1-I1">
-                               <midi-channel>1</midi-channel>
-                               <midi-program>1</midi-program>
-                       </midi-instrument>
-               </score-part>
-       </part-list>
-
-       <part id="P1">
-               <measure number="1">
-                       <attributes>
-                               <divisions>1</divisions>
-                               <key>
-                                       <fifths>-1</fifths>
-                               </key>
-                               <time>
-                                       <beats>4</beats>
-                                       <beat-type>4</beat-type>
-                               </time>
-                               <clef>
-                                       <sign>G</sign>
-                                       <line>2</line>
-                               </clef>
-                       </attributes>
-                       <direction placement="below">
-                               <direction-type>
-                                       <wedge type="crescendo" spread="0"/>
-                               </direction-type>
-                       </direction>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>1</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                               <stem>up</stem>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>1</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                               <stem>up</stem>
-                       </note>
-                       <direction placement="below">
-                               <direction-type>
-                                       <wedge type="stop" spread="15"/>
-                               </direction-type>
-                       </direction>
-                       <direction placement="below">
-                               <direction-type>
-                                       <wedge type="diminuendo" spread="15"/>
-                               </direction-type>
-                       </direction>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>1</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                               <stem>up</stem>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>1</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                               <stem>up</stem>
-                       </note>
-                       <direction placement="below">
-                               <direction-type>
-                                       <wedge type="stop" spread="0"/>
-                               </direction-type>
-                       </direction>
-               </measure>
-               <measure number="2">
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>1</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                               <stem>up</stem>
-                               <notations>
-                                       <ornaments>
-                                               <trill-mark/>
-                                               <wavy-line type="start"/>
-                                       </ornaments>
-                               </notations>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>1</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                               <stem>up</stem>
-                               <notations>
-                                       <ornaments>
-                                               <wavy-line type="continue"/>
-                                       </ornaments>
-                               </notations>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>1</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                               <stem>up</stem>
-                               <notations>
-                                       <ornaments>
-                                               <wavy-line type="stop"/>
-                                       </ornaments>
-                               </notations>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>1</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                               <stem>up</stem>
-                       </note>
-               </measure>
-               <measure number="3">
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>1</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                               <stem>up</stem>
-                               <notations>
-                                       <ornaments>
-                                               <wavy-line type="start"/>
-                                       </ornaments>
-                               </notations>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>1</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                               <stem>up</stem>
-                               <notations>
-                                       <ornaments>
-                                               <wavy-line type="continue"/>
-                                       </ornaments>
-                               </notations>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>1</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                               <stem>up</stem>
-                               <notations>
-                                       <ornaments>
-                                               <wavy-line type="continue"/>
-                                       </ornaments>
-                               </notations>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>1</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                               <stem>up</stem>
-                               <notations>
-                                       <ornaments>
-                                               <wavy-line type="continue"/>
-                                       </ornaments>
-                               </notations>
-                       </note>
-               </measure>
-               <measure number="4">
-                       <direction>
-                               <direction-type>
-                                       <octave-shift type="down" size="8"/>
-                               </direction-type>
-                       </direction>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>5</octave>
-                               </pitch>
-                               <duration>1</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                               <stem>up</stem>
-                               <notations>
-                                       <ornaments>
-                                               <wavy-line type="stop"/>
-                                       </ornaments>
-                               </notations>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>5</octave>
-                               </pitch>
-                               <duration>1</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                               <stem>up</stem>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>5</octave>
-                               </pitch>
-                               <duration>1</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                               <stem>up</stem>
-                       </note>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>5</octave>
-                               </pitch>
-                               <duration>1</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                               <stem>up</stem>
-                       </note>
-                       <direction>
-                               <direction-type>
-                                       <octave-shift type="stop" size="8"/>
-                               </direction-type>
-                       </direction>
-               </measure>
-       </part>
-</score-partwise>
diff --git a/input/regression/musicxml/04d-Spanners-JScore.xml b/input/regression/musicxml/04d-Spanners-JScore.xml
deleted file mode 100644 (file)
index 6778793..0000000
+++ /dev/null
@@ -1,401 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!DOCTYPE score-partwise PUBLIC 
-"-//Recordare//DTD MusicXML 1.0 Partwise//EN" 
-"http://www.musicxml.org/dtds/partwise.dtd">
-<score-partwise>
-<work>
-<work-title>JScore Spanners Test</work-title>
-</work>
-<identification>
-<creator type="composer">Reinhold Kainhofer</creator>
-<encoding>
-<software>JMSL's MusicXMLWriter by Nick Didkovsky. Java Music Specification Language by Nick Didkovsky and Phil Burk, (c) 2003 Nick Didkovsky, Phil Burk.  Available from: http://www.algomusic.com</software>
-</encoding>
-</identification>
-<part-list>
-<score-part id="P1" >
-<part-name>Voice 1</part-name>
-</score-part>
-</part-list>
-<part id="P1" >
-<measure number="1" >
-<attributes>
-<divisions>960</divisions>
-<key><fifths>0</fifths></key>
-<time><beats>6</beats><beat-type>8</beat-type></time>
-<clef><sign>G</sign><line>2</line></clef>
-</attributes>
-<direction placement="above">
-<direction-type>
-<metronome parentheses="yes" relative-y="18">
-<beat-unit>quarter</beat-unit> 
-<per-minute>60</per-minute>
-</metronome>
-</direction-type>
-<offset>72</offset>
-<sound tempo="60" />
-</direction>
-<direction >
-<direction-type >
-<octave-shift type="down" size="8" relative-y="14" />
-</direction-type>
-</direction>
-<note>
-<pitch>
-<step>G</step>
-<octave>5</octave>
-</pitch>
-<duration>480</duration>
-<voice>1</voice>
-<type>eighth</type>
-<notations>
-</notations>
-</note>
-<note>
-<pitch>
-<step>G</step>
-<octave>5</octave>
-</pitch>
-<duration>480</duration>
-<voice>1</voice>
-<type>eighth</type>
-<notations>
-</notations>
-</note>
-<note>
-<pitch>
-<step>G</step>
-<octave>5</octave>
-</pitch>
-<duration>480</duration>
-<voice>1</voice>
-<type>eighth</type>
-<notations>
-</notations>
-</note>
-<direction >
-<direction-type >
-<octave-shift type="stop" size="8" />
-</direction-type>
-<offset>-800</offset>
-</direction>
-<direction >
-<direction-type >
-<octave-shift type="up" size="8" relative-y="14" />
-</direction-type>
-</direction>
-<note>
-<pitch>
-<step>G</step>
-<octave>3</octave>
-</pitch>
-<duration>480</duration>
-<voice>1</voice>
-<type>eighth</type>
-<notations>
-</notations>
-</note>
-<note>
-<pitch>
-<step>G</step>
-<octave>3</octave>
-</pitch>
-<duration>480</duration>
-<voice>1</voice>
-<type>eighth</type>
-<notations>
-</notations>
-</note>
-<note>
-<pitch>
-<step>G</step>
-<octave>3</octave>
-</pitch>
-<duration>480</duration>
-<voice>1</voice>
-<type>eighth</type>
-<notations>
-</notations>
-</note>
-<direction >
-<direction-type >
-<octave-shift type="stop" size="8" />
-</direction-type>
-<offset>-800</offset>
-</direction>
-</measure>
-<measure number="2" >
-<attributes>
-<divisions>960</divisions>
-<key><fifths>0</fifths></key>
-<time><beats>6</beats><beat-type>8</beat-type></time>
-<clef><sign>G</sign><line>2</line></clef>
-</attributes>
-<note>
-<pitch>
-<step>G</step>
-<octave>4</octave>
-</pitch>
-<duration>480</duration>
-<voice>1</voice>
-<type>eighth</type>
-<beam number="1" >begin</beam>
-<notations>
-</notations>
-</note>
-<note>
-<pitch>
-<step>G</step>
-<octave>4</octave>
-</pitch>
-<duration>480</duration>
-<voice>1</voice>
-<type>eighth</type>
-<beam number="1" >continue</beam>
-<notations>
-</notations>
-</note>
-<note>
-<pitch>
-<step>G</step>
-<octave>4</octave>
-</pitch>
-<duration>480</duration>
-<voice>1</voice>
-<type>eighth</type>
-<beam number="1" >end</beam>
-<notations>
-</notations>
-</note>
-<note>
-<pitch>
-<step>G</step>
-<octave>4</octave>
-</pitch>
-<duration>319</duration>
-<voice>1</voice>
-<type>eighth</type>
-<time-modification>
-<actual-notes>3</actual-notes>
-<normal-notes>2</normal-notes>
-<normal-type>eighth</normal-type>
-</time-modification>
-<beam number="1" >begin</beam>
-<notations>
-<tuplet type="start" placement="above" />
-</notations>
-</note>
-<note>
-<pitch>
-<step>G</step>
-<octave>4</octave>
-</pitch>
-<duration>319</duration>
-<voice>1</voice>
-<type>eighth</type>
-<time-modification>
-<actual-notes>3</actual-notes>
-<normal-notes>2</normal-notes>
-</time-modification>
-<beam number="1" >continue</beam>
-<notations>
-</notations>
-</note>
-<note>
-<pitch>
-<step>G</step>
-<octave>4</octave>
-</pitch>
-<duration>319</duration>
-<voice>1</voice>
-<type>eighth</type>
-<time-modification>
-<actual-notes>3</actual-notes>
-<normal-notes>2</normal-notes>
-</time-modification>
-<beam number="1" >end</beam>
-<notations>
-<tuplet type="stop" />
-</notations>
-</note>
-</measure>
-<measure number="3" >
-<attributes>
-<divisions>960</divisions>
-<key><fifths>0</fifths></key>
-<time><beats>6</beats><beat-type>8</beat-type></time>
-<clef><sign>G</sign><line>2</line></clef>
-</attributes>
-<direction >
-<direction-type >
-<wedge type="crescendo" spread="0" relative-y="10" />
-</direction-type>
-</direction>
-<note>
-<pitch>
-<step>G</step>
-<octave>4</octave>
-</pitch>
-<duration>480</duration>
-<voice>1</voice>
-<type>eighth</type>
-<notations>
-</notations>
-</note>
-<note>
-<pitch>
-<step>G</step>
-<octave>4</octave>
-</pitch>
-<duration>480</duration>
-<voice>1</voice>
-<type>eighth</type>
-<notations>
-</notations>
-</note>
-<direction >
-<direction-type >
-<wedge type="stop" spread="15" />
-</direction-type>
-</direction>
-<note>
-<pitch>
-<step>G</step>
-<octave>4</octave>
-</pitch>
-<duration>480</duration>
-<voice>1</voice>
-<type>eighth</type>
-<notations>
-</notations>
-</note>
-<direction >
-<direction-type >
-<wedge type="diminuendo" spread="15" relative-y="10" />
-</direction-type>
-</direction>
-<note>
-<pitch>
-<step>G</step>
-<octave>4</octave>
-</pitch>
-<duration>480</duration>
-<voice>1</voice>
-<type>eighth</type>
-<notations>
-</notations>
-</note>
-<note>
-<pitch>
-<step>G</step>
-<octave>4</octave>
-</pitch>
-<duration>480</duration>
-<voice>1</voice>
-<type>eighth</type>
-<notations>
-</notations>
-</note>
-<direction >
-<direction-type >
-<wedge type="stop" spread="0" />
-</direction-type>
-</direction>
-<note>
-<pitch>
-<step>G</step>
-<octave>4</octave>
-</pitch>
-<duration>480</duration>
-<voice>1</voice>
-<type>eighth</type>
-<notations>
-</notations>
-</note>
-</measure>
-<measure number="4" >
-<attributes>
-<divisions>960</divisions>
-<key><fifths>0</fifths></key>
-<time><beats>6</beats><beat-type>8</beat-type></time>
-<clef><sign>G</sign><line>2</line></clef>
-</attributes>
-<note>
-<pitch>
-<step>G</step>
-<octave>4</octave>
-</pitch>
-<duration>480</duration>
-<tie type="stop" />
-<voice>1</voice>
-<type>eighth</type>
-<notations>
-<tied type="start" />
-</notations>
-</note>
-<note>
-<pitch>
-<step>G</step>
-<octave>4</octave>
-</pitch>
-<duration>480</duration>
-<tie type="stop" />
-<tie type="start" />
-<voice>1</voice>
-<type>eighth</type>
-<notations>
-<tied type="stop" />
-<tied type="start" />
-</notations>
-</note>
-<note>
-<pitch>
-<step>G</step>
-<octave>4</octave>
-</pitch>
-<duration>480</duration>
-<tie type="stop" />
-<voice>1</voice>
-<type>eighth</type>
-<notations>
-<tied type="stop" />
-</notations>
-</note>
-<note>
-<pitch>
-<step>G</step>
-<octave>4</octave>
-</pitch>
-<duration>480</duration>
-<voice>1</voice>
-<type>eighth</type>
-<notations>
-<slur type="start" number="1" />
-</notations>
-</note>
-<note>
-<pitch>
-<step>G</step>
-<octave>4</octave>
-</pitch>
-<duration>480</duration>
-<voice>1</voice>
-<type>eighth</type>
-<notations>
-</notations>
-</note>
-<note>
-<pitch>
-<step>G</step>
-<octave>4</octave>
-</pitch>
-<duration>480</duration>
-<voice>1</voice>
-<type>eighth</type>
-<notations>
-<slur type="stop" number="1" />
-</notations>
-</note>
-</measure>
-</part>
-</score-partwise>
diff --git a/input/regression/musicxml/04e-OctaveShifts-Finale.xml b/input/regression/musicxml/04e-OctaveShifts-Finale.xml
deleted file mode 100644 (file)
index 3e93c60..0000000
+++ /dev/null
@@ -1,198 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
-                                "http://www.musicxml.org/dtds/partwise.dtd">
-<score-partwise>
-  <movement-title>Octave shift test case</movement-title>
-  <identification>
-    <creator type="composer">Reinhold Kainhofer</creator>
-    <rights>Public Domain</rights>
-    <encoding>
-      <software>Finale 2007 for Windows</software>
-      <software>Dolet Light for Finale 2007</software>
-      <encoding-date>2007-09-14</encoding-date>
-    </encoding>
-  </identification>
-  <part-list>
-    <score-part id="P1">
-      <part-name>MusicXML Part</part-name>
-      <score-instrument id="P1-I1">
-        <instrument-name>Grand Piano</instrument-name>
-      </score-instrument>
-      <midi-instrument id="P1-I1">
-        <midi-channel>1</midi-channel>
-        <midi-program>1</midi-program>
-      </midi-instrument>
-    </score-part>
-  </part-list>
-  <!--=========================================================-->
-  <part id="P1">
-    <measure number="1">
-      <attributes>
-        <divisions>8</divisions>
-        <key>
-          <fifths>0</fifths>
-          <mode>major</mode>
-        </key>
-        <time symbol="common">
-          <beats>4</beats>
-          <beat-type>4</beat-type>
-        </time>
-        <clef>
-          <sign>G</sign>
-          <line>2</line>
-        </clef>
-      </attributes>
-      <sound tempo="120"/>
-      <note>
-        <pitch>
-          <step>A</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>4</duration>
-        <voice>1</voice>
-        <type>eighth</type>
-        <stem>down</stem>
-        <beam number="1">begin</beam>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>4</duration>
-        <voice>1</voice>
-        <type>eighth</type>
-        <stem>down</stem>
-        <beam number="1">continue</beam>
-      </note>
-      <direction>
-        <direction-type>
-          <octave-shift default-y="16" size="15" type="down"/>
-        </direction-type>
-        <offset>-4</offset>
-      </direction>
-      <note>
-        <pitch>
-          <step>A</step>
-          <octave>6</octave>
-        </pitch>
-        <duration>4</duration>
-        <voice>1</voice>
-        <type>eighth</type>
-        <stem>down</stem>
-        <beam number="1">continue</beam>
-      </note>
-      <direction>
-        <direction-type>
-          <octave-shift size="15" type="stop"/>
-        </direction-type>
-        <offset>-4</offset>
-      </direction>
-      <direction>
-        <direction-type>
-          <octave-shift default-y="-97" size="15" type="up"/>
-        </direction-type>
-      </direction>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>3</octave>
-        </pitch>
-        <duration>4</duration>
-        <voice>1</voice>
-        <type>eighth</type>
-        <stem>down</stem>
-        <beam number="1">end</beam>
-      </note>
-      <note>
-        <pitch>
-          <step>B</step>
-          <octave>2</octave>
-        </pitch>
-        <duration>4</duration>
-        <voice>1</voice>
-        <type>eighth</type>
-        <stem>up</stem>
-        <beam number="1">begin</beam>
-      </note>
-      <direction>
-        <direction-type>
-          <octave-shift size="15" type="stop"/>
-        </direction-type>
-        <offset>-4</offset>
-      </direction>
-      <direction>
-        <direction-type>
-          <octave-shift default-y="62" size="8" type="down"/>
-        </direction-type>
-      </direction>
-      <note>
-        <pitch>
-          <step>A</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>4</duration>
-        <voice>1</voice>
-        <type>eighth</type>
-        <stem>up</stem>
-        <beam number="1">end</beam>
-      </note>
-      <note>
-        <pitch>
-          <step>A</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>4</duration>
-        <voice>1</voice>
-        <type>eighth</type>
-        <stem>down</stem>
-        <beam number="1">begin</beam>
-      </note>
-      <direction>
-        <direction-type>
-          <octave-shift size="8" type="stop"/>
-        </direction-type>
-        <offset>-3</offset>
-      </direction>
-      <direction>
-        <direction-type>
-          <octave-shift default-y="-89" size="8" type="up"/>
-        </direction-type>
-      </direction>
-      <note>
-        <pitch>
-          <step>B</step>
-          <octave>3</octave>
-        </pitch>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>16th</type>
-        <stem>down</stem>
-        <beam number="1">continue</beam>
-        <beam number="2">begin</beam>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>16th</type>
-        <stem>down</stem>
-        <beam number="1">end</beam>
-        <beam number="2">end</beam>
-      </note>
-      <direction>
-        <direction-type>
-          <octave-shift size="8" type="stop"/>
-        </direction-type>
-        <offset>-2</offset>
-      </direction>
-      <barline location="right">
-        <bar-style>light-heavy</bar-style>
-      </barline>
-    </measure>
-  </part>
-  <!--=========================================================-->
-</score-partwise>
diff --git a/input/regression/musicxml/05a-HeaderQuotes-Finale.xml b/input/regression/musicxml/05a-HeaderQuotes-Finale.xml
deleted file mode 100644 (file)
index e98b46b..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>\r
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 2.0 Partwise//EN"\r
-                                "http://www.musicxml.org/dtds/partwise.dtd">\r
-<score-partwise version="2.0">\r
-  <movement-title>"Quotes" in header fields</movement-title>\r
-  <identification>\r
-    <creator type="composer">Some "Tester" Name</creator>\r
-    <rights>Free for anyone ("Public Domain")</rights>\r
-    <encoding>\r
-      <software>"Hand-crafted" MusicXML file</software>\r
-      <encoding-date>2008-02-06</encoding-date>\r
-    </encoding>\r
-  </identification>\r
-  <part-list>\r
-    <score-part id="P1">\r
-      <part-name>Staff "Test"</part-name>\r
-    </score-part>\r
-  </part-list>\r
-  <!--=========================================================-->\r
-  <part id="P1">\r
-    <measure number="1">\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-        <type>whole</type>\r
-      </note>\r
-      <barline location="right">\r
-        <bar-style>light-heavy</bar-style>\r
-      </barline>\r
-    </measure>\r
-  </part>\r
-  <!--=========================================================-->\r
-</score-partwise>\r
diff --git a/input/regression/musicxml/06a-Lyrics-Finale.xml b/input/regression/musicxml/06a-Lyrics-Finale.xml
deleted file mode 100644 (file)
index b1fbd44..0000000
+++ /dev/null
@@ -1,157 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>\r
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"\r
-                                "http://www.musicxml.org/dtds/partwise.dtd">\r
-<score-partwise>\r
-  <identification>\r
-    <encoding>\r
-      <software>Finale 2007 for Windows</software>\r
-      <software>Dolet Light for Finale 2007</software>\r
-      <encoding-date>2007-08-29</encoding-date>\r
-    </encoding>\r
-  </identification>\r
-  <part-list>\r
-    <score-part id="P1">\r
-      <part-name>MusicXML Part</part-name>\r
-      <score-instrument id="P1-I1">\r
-        <instrument-name>Grand Piano</instrument-name>\r
-      </score-instrument>\r
-      <midi-instrument id="P1-I1">\r
-        <midi-channel>1</midi-channel>\r
-        <midi-program>1</midi-program>\r
-      </midi-instrument>\r
-    </score-part>\r
-  </part-list>\r
-  <!--=========================================================-->\r
-  <part id="P1">\r
-    <measure number="1">\r
-      <attributes>\r
-        <divisions>1</divisions>\r
-        <key>\r
-          <fifths>0</fifths>\r
-          <mode>major</mode>\r
-        </key>\r
-        <time symbol="common">\r
-          <beats>4</beats>\r
-          <beat-type>4</beat-type>\r
-        </time>\r
-        <clef>\r
-          <sign>G</sign>\r
-          <line>2</line>\r
-        </clef>\r
-      </attributes>\r
-      <sound tempo="120"/>\r
-      <note>\r
-        <pitch>\r
-          <step>A</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-        <lyric number="1">\r
-          <syllabic>begin</syllabic>\r
-          <text>Tra</text>\r
-        </lyric>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>A</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-        <lyric number="1">\r
-          <syllabic>middle</syllabic>\r
-          <text>la</text>\r
-        </lyric>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>A</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-        <lyric number="1">\r
-          <syllabic>end</syllabic>\r
-          <text>li</text>\r
-        </lyric>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>A</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-        <lyric number="1">\r
-          <syllabic>single</syllabic>\r
-          <text>Ja!</text>\r
-          <extend/>\r
-        </lyric>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="2">\r
-      <note>\r
-        <pitch>\r
-          <step>A</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>A</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-        <lyric number="1">\r
-          <syllabic>begin</syllabic>\r
-          <text>Tra</text>\r
-        </lyric>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>A</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>A</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-        <lyric number="1">\r
-          <syllabic>end</syllabic>\r
-          <text>ra!</text>\r
-        </lyric>\r
-      </note>\r
-      <barline location="right">\r
-        <bar-style>light-heavy</bar-style>\r
-      </barline>\r
-    </measure>\r
-  </part>\r
-  <!--=========================================================-->\r
-</score-partwise>\r
diff --git a/input/regression/musicxml/06b-MultipleLyrics-Finale.xml b/input/regression/musicxml/06b-MultipleLyrics-Finale.xml
deleted file mode 100644 (file)
index f2d7c8d..0000000
+++ /dev/null
@@ -1,210 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
-                                "http://www.musicxml.org/dtds/partwise.dtd">
-<score-partwise>
-  <movement-title>Finale Multiple Lyrics</movement-title>
-  <identification>
-    <creator type="composer">Reinhold Kainhofer</creator>
-    <rights>Public Domain</rights>
-    <encoding>
-      <software>Finale 2007 for Windows</software>
-      <software>Dolet Light for Finale 2007</software>
-      <encoding-date>2007-08-31</encoding-date>
-    </encoding>
-  </identification>
-  <part-list>
-    <score-part id="P1">
-      <part-name>MusicXML Part</part-name>
-      <score-instrument id="P1-I1">
-        <instrument-name>Grand Piano</instrument-name>
-      </score-instrument>
-      <midi-instrument id="P1-I1">
-        <midi-channel>1</midi-channel>
-        <midi-program>1</midi-program>
-      </midi-instrument>
-    </score-part>
-  </part-list>
-  <!--=========================================================-->
-  <part id="P1">
-    <measure number="1">
-      <attributes>
-        <divisions>1</divisions>
-        <key>
-          <fifths>0</fifths>
-          <mode>major</mode>
-        </key>
-        <time symbol="common">
-          <beats>4</beats>
-          <beat-type>4</beat-type>
-        </time>
-        <clef>
-          <sign>G</sign>
-          <line>2</line>
-        </clef>
-      </attributes>
-      <sound tempo="120"/>
-      <note>
-        <pitch>
-          <step>G</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>up</stem>
-        <lyric number="1">
-          <syllabic>begin</syllabic>
-          <text>1.Tra</text>
-        </lyric>
-        <lyric number="2">
-          <syllabic>begin</syllabic>
-          <text>2.tra</text>
-        </lyric>
-        <lyric number="3">
-          <syllabic>begin</syllabic>
-          <text>3.TRA</text>
-        </lyric>
-      </note>
-      <note>
-        <pitch>
-          <step>G</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>up</stem>
-        <lyric number="1">
-          <syllabic>middle</syllabic>
-          <text>la</text>
-        </lyric>
-        <lyric number="2">
-          <syllabic>middle</syllabic>
-          <text>la</text>
-        </lyric>
-        <lyric number="3">
-          <syllabic>middle</syllabic>
-          <text>LA</text>
-        </lyric>
-      </note>
-      <note>
-        <pitch>
-          <step>G</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>up</stem>
-        <lyric number="1">
-          <syllabic>end</syllabic>
-          <text>la,</text>
-        </lyric>
-        <lyric number="2">
-          <syllabic>end</syllabic>
-          <text>la,</text>
-        </lyric>
-        <lyric number="3">
-          <syllabic>end</syllabic>
-          <text>LA,</text>
-        </lyric>
-      </note>
-      <note>
-        <pitch>
-          <step>G</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>up</stem>
-        <lyric number="1">
-          <syllabic>single</syllabic>
-          <text>ja!</text>
-          <extend/>
-        </lyric>
-        <lyric number="2">
-          <syllabic>single</syllabic>
-          <text>ja!</text>
-          <extend/>
-        </lyric>
-        <lyric number="3">
-          <syllabic>single</syllabic>
-          <text>JA!</text>
-          <extend/>
-        </lyric>
-      </note>
-    </measure>
-    <!--=======================================================-->
-    <measure number="2">
-      <note>
-        <pitch>
-          <step>G</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>up</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>G</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>up</stem>
-        <lyric number="1">
-          <syllabic>begin</syllabic>
-          <text>Tra</text>
-        </lyric>
-        <lyric number="2">
-          <syllabic>begin</syllabic>
-          <text>Tra</text>
-        </lyric>
-        <lyric number="3">
-          <syllabic>begin</syllabic>
-          <text>TRA</text>
-        </lyric>
-      </note>
-      <note>
-        <pitch>
-          <step>G</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>up</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>G</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>up</stem>
-        <lyric number="1">
-          <syllabic>end</syllabic>
-          <text>ra...</text>
-        </lyric>
-        <lyric number="2">
-          <syllabic>end</syllabic>
-          <text>ra.</text>
-        </lyric>
-        <lyric number="3">
-          <syllabic>end</syllabic>
-          <text>RA...</text>
-        </lyric>
-      </note>
-      <barline location="right">
-        <bar-style>light-heavy</bar-style>
-      </barline>
-    </measure>
-  </part>
-  <!--=========================================================-->
-</score-partwise>
diff --git a/input/regression/musicxml/06c-Lyrics-Pianostaff-Finale.xml b/input/regression/musicxml/06c-Lyrics-Pianostaff-Finale.xml
deleted file mode 100644 (file)
index 98f33cd..0000000
+++ /dev/null
@@ -1,291 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>\r
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"\r
-                                "http://www.musicxml.org/dtds/partwise.dtd">\r
-<score-partwise>\r
-  <movement-title>Lyrics test with Piano Staff</movement-title>\r
-  <identification>\r
-    <creator type="composer">Reinhold Kainhofer</creator>\r
-    <encoding>\r
-      <software>Finale 2007 for Windows</software>\r
-      <software>Dolet Light for Finale 2007</software>\r
-      <encoding-date>2007-08-29</encoding-date>\r
-    </encoding>\r
-  </identification>\r
-  <part-list>\r
-    <score-part id="P1">\r
-      <part-name>Piano</part-name>\r
-      <score-instrument id="P1-I1">\r
-        <instrument-name>Piano</instrument-name>\r
-      </score-instrument>\r
-      <midi-instrument id="P1-I1">\r
-        <midi-channel>1</midi-channel>\r
-        <midi-program>1</midi-program>\r
-      </midi-instrument>\r
-    </score-part>\r
-  </part-list>\r
-  <!--=========================================================-->\r
-  <part id="P1">\r
-    <measure number="1">\r
-      <attributes>\r
-        <divisions>1</divisions>\r
-        <key>\r
-          <fifths>0</fifths>\r
-          <mode>major</mode>\r
-        </key>\r
-        <time symbol="common">\r
-          <beats>4</beats>\r
-          <beat-type>4</beat-type>\r
-        </time>\r
-        <staves>2</staves>\r
-        <clef number="1">\r
-          <sign>G</sign>\r
-          <line>2</line>\r
-        </clef>\r
-        <clef number="2">\r
-          <sign>F</sign>\r
-          <line>4</line>\r
-        </clef>\r
-      </attributes>\r
-      <sound tempo="120"/>\r
-      <note>\r
-        <pitch>\r
-          <step>A</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-        <staff>1</staff>\r
-        <lyric number="1">\r
-          <syllabic>begin</syllabic>\r
-          <text>tra</text>\r
-        </lyric>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>A</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-        <staff>1</staff>\r
-        <lyric number="1">\r
-          <syllabic>middle</syllabic>\r
-          <text>la</text>\r
-        </lyric>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>A</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-        <staff>1</staff>\r
-        <lyric number="1">\r
-          <syllabic>end</syllabic>\r
-          <text>li</text>\r
-        </lyric>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>A</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-        <staff>1</staff>\r
-        <lyric number="1">\r
-          <syllabic>single</syllabic>\r
-          <text>ja!</text>\r
-          <extend/>\r
-        </lyric>\r
-      </note>\r
-      <backup>\r
-        <duration>4</duration>\r
-      </backup>\r
-      <note>\r
-        <pitch>\r
-          <step>F</step>\r
-          <octave>3</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>2</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-        <staff>2</staff>\r
-        <lyric number="1">\r
-          <syllabic>begin</syllabic>\r
-          <text>TRA</text>\r
-        </lyric>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>F</step>\r
-          <octave>3</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>2</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-        <staff>2</staff>\r
-        <lyric number="1">\r
-          <syllabic>middle</syllabic>\r
-          <text>LA</text>\r
-        </lyric>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>F</step>\r
-          <octave>3</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>2</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-        <staff>2</staff>\r
-        <lyric number="1">\r
-          <syllabic>end</syllabic>\r
-          <text>LI</text>\r
-        </lyric>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>F</step>\r
-          <octave>3</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>2</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-        <staff>2</staff>\r
-        <lyric number="1">\r
-          <syllabic>single</syllabic>\r
-          <text>JA!</text>\r
-          <extend/>\r
-        </lyric>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="2">\r
-      <note>\r
-        <pitch>\r
-          <step>A</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-        <staff>1</staff>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>A</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-        <staff>1</staff>\r
-        <lyric number="1">\r
-          <syllabic>begin</syllabic>\r
-          <text>tra</text>\r
-        </lyric>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>A</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-        <staff>1</staff>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>A</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-        <staff>1</staff>\r
-        <lyric number="1">\r
-          <syllabic>end</syllabic>\r
-          <text>ra!</text>\r
-        </lyric>\r
-      </note>\r
-      <backup>\r
-        <duration>4</duration>\r
-      </backup>\r
-      <note>\r
-        <pitch>\r
-          <step>F</step>\r
-          <octave>3</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>2</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-        <staff>2</staff>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>F</step>\r
-          <octave>3</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>2</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-        <staff>2</staff>\r
-        <lyric number="1">\r
-          <syllabic>begin</syllabic>\r
-          <text>TRA</text>\r
-        </lyric>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>F</step>\r
-          <octave>3</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>2</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-        <staff>2</staff>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>F</step>\r
-          <octave>3</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>2</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-        <staff>2</staff>\r
-        <lyric number="1">\r
-          <syllabic>end</syllabic>\r
-          <text>RA!</text>\r
-        </lyric>\r
-      </note>\r
-      <barline location="right">\r
-        <bar-style>light-heavy</bar-style>\r
-      </barline>\r
-    </measure>\r
-  </part>\r
-  <!--=========================================================-->\r
-</score-partwise>\r
diff --git a/input/regression/musicxml/06d-Lyrics-Melisma-Finale.xml b/input/regression/musicxml/06d-Lyrics-Melisma-Finale.xml
deleted file mode 100644 (file)
index f5f0b9c..0000000
+++ /dev/null
@@ -1,188 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>\r
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"\r
-                                "http://www.musicxml.org/dtds/partwise.dtd">\r
-<score-partwise>\r
-  <movement-title>Lyrics and melismata (ignore them)</movement-title>\r
-  <identification>\r
-    <encoding>\r
-      <software>Finale 2007 for Windows</software>\r
-      <software>Dolet Light for Finale 2007</software>\r
-      <encoding-date>2007-10-23</encoding-date>\r
-    </encoding>\r
-  </identification>\r
-  <part-list>\r
-    <score-part id="P1">\r
-      <part-name>MusicXML Part</part-name>\r
-      <score-instrument id="P1-I1">\r
-        <instrument-name>Grand Piano</instrument-name>\r
-      </score-instrument>\r
-      <midi-instrument id="P1-I1">\r
-        <midi-channel>1</midi-channel>\r
-        <midi-program>1</midi-program>\r
-      </midi-instrument>\r
-    </score-part>\r
-  </part-list>\r
-  <!--=========================================================-->\r
-  <part id="P1">\r
-    <measure number="1">\r
-      <attributes>\r
-        <divisions>1</divisions>\r
-        <key>\r
-          <fifths>0</fifths>\r
-          <mode>major</mode>\r
-        </key>\r
-        <time symbol="common">\r
-          <beats>4</beats>\r
-          <beat-type>4</beat-type>\r
-        </time>\r
-        <clef>\r
-          <sign>G</sign>\r
-          <line>2</line>\r
-        </clef>\r
-      </attributes>\r
-      <sound tempo="120"/>\r
-      <note>\r
-        <pitch>\r
-          <step>C</step>\r
-          <octave>5</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-        <notations>\r
-          <slur number="1" type="start"/>\r
-        </notations>\r
-        <lyric number="1">\r
-          <syllabic>begin</syllabic>\r
-          <text>Me</text>\r
-        </lyric>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>A</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-      </note>\r
-      <note>\r
-        <chord/>\r
-        <pitch>\r
-          <step>E</step>\r
-          <octave>5</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>C</step>\r
-          <octave>5</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>C</step>\r
-          <octave>5</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-        <notations>\r
-          <slur number="1" type="stop"/>\r
-        </notations>\r
-      </note>\r
-      <note>\r
-        <chord/>\r
-        <pitch>\r
-          <step>E</step>\r
-          <octave>5</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="2">\r
-      <note>\r
-        <pitch>\r
-          <step>C</step>\r
-          <octave>5</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <tie type="start"/>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-        <notations>\r
-          <tied type="start"/>\r
-        </notations>\r
-        <lyric number="1">\r
-          <syllabic>middle</syllabic>\r
-          <text>lis</text>\r
-        </lyric>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>C</step>\r
-          <octave>5</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <tie type="stop"/>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-        <notations>\r
-          <tied type="stop"/>\r
-        </notations>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>C</step>\r
-          <octave>5</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-        <notations>\r
-          <slur number="1" type="start"/>\r
-        </notations>\r
-        <lyric number="1">\r
-          <syllabic>end</syllabic>\r
-          <text>ma.</text>\r
-          <extend/>\r
-        </lyric>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>E</step>\r
-          <octave>5</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-        <notations>\r
-          <slur number="1" type="stop"/>\r
-        </notations>\r
-      </note>\r
-      <barline location="right">\r
-        <bar-style>light-heavy</bar-style>\r
-      </barline>\r
-    </measure>\r
-  </part>\r
-  <!--=========================================================-->\r
-</score-partwise>\r
diff --git a/input/regression/musicxml/06e-Lyrics-Chords-Finale.xml b/input/regression/musicxml/06e-Lyrics-Chords-Finale.xml
deleted file mode 100644 (file)
index 6521be5..0000000
+++ /dev/null
@@ -1,150 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>\r
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"\r
-                                "http://www.musicxml.org/dtds/partwise.dtd">\r
-<score-partwise>\r
-  <movement-title>Lyrics on Chords</movement-title>\r
-  <identification>\r
-    <encoding>\r
-      <software>Finale 2007 for Windows</software>\r
-      <software>Dolet Light for Finale 2007</software>\r
-      <encoding-date>2007-10-23</encoding-date>\r
-    </encoding>\r
-  </identification>\r
-  <part-list>\r
-    <score-part id="P1">\r
-      <part-name>MusicXML Part</part-name>\r
-      <score-instrument id="P1-I1">\r
-        <instrument-name>Grand Piano</instrument-name>\r
-      </score-instrument>\r
-      <midi-instrument id="P1-I1">\r
-        <midi-channel>1</midi-channel>\r
-        <midi-program>1</midi-program>\r
-      </midi-instrument>\r
-    </score-part>\r
-  </part-list>\r
-  <!--=========================================================-->\r
-  <part id="P1">\r
-    <measure number="1">\r
-      <attributes>\r
-        <divisions>1</divisions>\r
-        <key>\r
-          <fifths>0</fifths>\r
-          <mode>major</mode>\r
-        </key>\r
-        <time symbol="common">\r
-          <beats>4</beats>\r
-          <beat-type>4</beat-type>\r
-        </time>\r
-        <clef>\r
-          <sign>G</sign>\r
-          <line>2</line>\r
-        </clef>\r
-      </attributes>\r
-      <sound tempo="120"/>\r
-      <note>\r
-        <pitch>\r
-          <step>E</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-        <lyric number="1">\r
-          <syllabic>begin</syllabic>\r
-          <text>Ly</text>\r
-        </lyric>\r
-      </note>\r
-      <note>\r
-        <chord/>\r
-        <pitch>\r
-          <step>C</step>\r
-          <octave>5</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>A</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-        <lyric number="1">\r
-          <syllabic>end</syllabic>\r
-          <text>rics</text>\r
-        </lyric>\r
-      </note>\r
-      <note>\r
-        <chord/>\r
-        <pitch>\r
-          <step>C</step>\r
-          <octave>5</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>E</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-        <lyric number="1">\r
-          <syllabic>single</syllabic>\r
-          <text>on</text>\r
-        </lyric>\r
-      </note>\r
-      <note>\r
-        <chord/>\r
-        <pitch>\r
-          <step>C</step>\r
-          <octave>5</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>A</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-        <lyric number="1">\r
-          <syllabic>single</syllabic>\r
-          <text>chords</text>\r
-        </lyric>\r
-      </note>\r
-      <note>\r
-        <chord/>\r
-        <pitch>\r
-          <step>C</step>\r
-          <octave>5</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-      </note>\r
-      <barline location="right">\r
-        <bar-style>light-heavy</bar-style>\r
-      </barline>\r
-    </measure>\r
-  </part>\r
-  <!--=========================================================-->\r
-</score-partwise>\r
diff --git a/input/regression/musicxml/06f-Lyrics-GracedNotes-Finale.xml b/input/regression/musicxml/06f-Lyrics-GracedNotes-Finale.xml
deleted file mode 100644 (file)
index d6fa55c..0000000
+++ /dev/null
@@ -1,232 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>\r
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"\r
-                                "http://www.musicxml.org/dtds/partwise.dtd">\r
-<score-partwise>\r
-  <movement-title>Lyrics on notes with graces</movement-title>\r
-  <identification>\r
-    <encoding>\r
-      <software>Finale 2007 for Windows</software>\r
-      <software>Dolet Light for Finale 2007</software>\r
-      <encoding-date>2007-10-27</encoding-date>\r
-    </encoding>\r
-  </identification>\r
-  <part-list>\r
-    <score-part id="P1">\r
-      <part-name>MusicXML Part</part-name>\r
-      <score-instrument id="P1-I1">\r
-        <instrument-name>Grand Piano</instrument-name>\r
-      </score-instrument>\r
-      <midi-instrument id="P1-I1">\r
-        <midi-channel>1</midi-channel>\r
-        <midi-program>1</midi-program>\r
-      </midi-instrument>\r
-    </score-part>\r
-  </part-list>\r
-  <!--=========================================================-->\r
-  <part id="P1">\r
-    <measure number="1">\r
-      <attributes>\r
-        <divisions>2</divisions>\r
-        <key>\r
-          <fifths>0</fifths>\r
-          <mode>major</mode>\r
-        </key>\r
-        <time symbol="common">\r
-          <beats>4</beats>\r
-          <beat-type>4</beat-type>\r
-        </time>\r
-        <clef>\r
-          <sign>G</sign>\r
-          <line>2</line>\r
-        </clef>\r
-      </attributes>\r
-      <sound tempo="120"/>\r
-      <note>\r
-        <pitch>\r
-          <step>G</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>2</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-        <notations>\r
-          <slur number="1" type="start"/>\r
-        </notations>\r
-        <lyric number="1">\r
-          <syllabic>begin</syllabic>\r
-          <text>Ly</text>\r
-        </lyric>\r
-      </note>\r
-      <note>\r
-        <grace slash="yes"/>\r
-        <pitch>\r
-          <step>D</step>\r
-          <octave>5</octave>\r
-        </pitch>\r
-        <voice>1</voice>\r
-        <type>eighth</type>\r
-        <stem>up</stem>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>C</step>\r
-          <octave>5</octave>\r
-        </pitch>\r
-        <duration>2</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-        <notations>\r
-          <slur number="1" type="stop"/>\r
-        </notations>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>C</step>\r
-          <octave>5</octave>\r
-        </pitch>\r
-        <duration>2</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-        <lyric number="1">\r
-          <syllabic>end</syllabic>\r
-          <text>rics</text>\r
-        </lyric>\r
-      </note>\r
-      <note>\r
-        <grace slash="yes"/>\r
-        <pitch>\r
-          <step>D</step>\r
-          <octave>5</octave>\r
-        </pitch>\r
-        <tie type="start"/>\r
-        <voice>1</voice>\r
-        <type>eighth</type>\r
-        <stem>up</stem>\r
-        <notations>\r
-          <tied type="start"/>\r
-        </notations>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>C</step>\r
-          <octave>5</octave>\r
-        </pitch>\r
-        <duration>2</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-        <lyric number="1">\r
-          <syllabic>single</syllabic>\r
-          <text>on</text>\r
-        </lyric>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="2">\r
-      <note>\r
-        <pitch>\r
-          <step>C</step>\r
-          <octave>5</octave>\r
-        </pitch>\r
-        <duration>2</duration>\r
-        <tie type="start"/>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-        <notations>\r
-          <tied type="start"/>\r
-        </notations>\r
-        <lyric number="1">\r
-          <syllabic>single</syllabic>\r
-          <text>notes</text>\r
-          <extend/>\r
-        </lyric>\r
-      </note>\r
-      <note>\r
-        <grace/>\r
-        <pitch>\r
-          <step>E</step>\r
-          <octave>5</octave>\r
-        </pitch>\r
-        <tie type="start"/>\r
-        <voice>1</voice>\r
-        <type>eighth</type>\r
-        <stem>up</stem>\r
-        <beam number="1">begin</beam>\r
-        <notations>\r
-          <tied type="start"/>\r
-        </notations>\r
-      </note>\r
-      <note>\r
-        <grace/>\r
-        <pitch>\r
-          <step>D</step>\r
-          <octave>5</octave>\r
-        </pitch>\r
-        <voice>1</voice>\r
-        <type>eighth</type>\r
-        <stem>up</stem>\r
-        <beam number="1">end</beam>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>C</step>\r
-          <octave>5</octave>\r
-        </pitch>\r
-        <duration>2</duration>\r
-        <tie type="stop"/>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-        <notations>\r
-          <tied type="stop"/>\r
-        </notations>\r
-      </note>\r
-      <note>\r
-        <grace/>\r
-        <pitch>\r
-          <step>D</step>\r
-          <octave>5</octave>\r
-        </pitch>\r
-        <voice>1</voice>\r
-        <type>eighth</type>\r
-        <stem>up</stem>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>C</step>\r
-          <octave>5</octave>\r
-        </pitch>\r
-        <duration>2</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-        <lyric number="1">\r
-          <syllabic>single</syllabic>\r
-          <text>with</text>\r
-        </lyric>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>C</step>\r
-          <octave>5</octave>\r
-        </pitch>\r
-        <duration>2</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-        <lyric number="1">\r
-          <syllabic>single</syllabic>\r
-          <text>graces</text>\r
-        </lyric>\r
-      </note>\r
-      <barline location="right">\r
-        <bar-style>light-heavy</bar-style>\r
-      </barline>\r
-    </measure>\r
-  </part>\r
-  <!--=========================================================-->\r
-</score-partwise>\r
diff --git a/input/regression/musicxml/06g-Lyrics-NameNumber.xml b/input/regression/musicxml/06g-Lyrics-NameNumber.xml
deleted file mode 100644 (file)
index 1d9494f..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
-                                "http://www.musicxml.org/dtds/partwise.dtd">
-<score-partwise>
-  <movement-title>Lyrics attributes: name and number</movement-title>
-  <identification>
-    <creator type="composer">Reinhold Kainhofer</creator>
-  </identification>
-  <part-list>
-    <score-part id="P1">
-      <part-name>MusicXML Part</part-name>
-    </score-part>
-  </part-list>
-  <!--=========================================================-->
-  <part id="P1">
-    <measure number="1">
-      <attributes>
-        <divisions>1</divisions>
-        <key><fifths>0</fifths><mode>major</mode></key>
-        <time><beats>6</beats><beat-type>4</beat-type></time>
-        <clef><sign>G</sign><line>2</line></clef>
-      </attributes>
-      <sound tempo="120"/>
-      <note>
-        <pitch>
-          <step>G</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <lyric number="1" name="Verse">
-          <syllabic>begin</syllabic>
-          <text>Verse1A</text>
-        </lyric>
-        <lyric number="1" name="Chorus">
-          <syllabic>begin</syllabic>
-          <text>Chorus1A</text>
-        </lyric>
-        <lyric number="1" name="Chorus">
-          <syllabic>begin</syllabic>
-          <text>AnotherChorus1A</text>
-        </lyric>
-        <lyric number="2" name="Chorus">
-          <syllabic>begin</syllabic>
-          <text>Chorus1A</text>
-        </lyric>
-      </note>
-      <note>
-        <pitch><step>G</step><octave>4</octave></pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <lyric number="1">
-          <syllabic>begin</syllabic>
-          <text>1B</text>
-        </lyric>
-        <lyric number="2">
-          <syllabic>begin</syllabic>
-          <text>2B</text>
-        </lyric>
-      </note>
-      <note>
-        <pitch><step>G</step><octave>4</octave></pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <lyric number="1" name="Verse">
-          <syllabic>begin</syllabic>
-          <text>Verse1C</text>
-        </lyric>
-        <lyric number="2" name="Chorus">
-          <syllabic>begin</syllabic>
-          <text>Chorus2C</text>
-        </lyric>
-      </note>
-      <note>
-        <pitch><step>G</step><octave>4</octave></pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <lyric number="1" name="Chorus">
-          <syllabic>begin</syllabic>
-          <text>Chorus1D</text>
-        </lyric>
-      </note>
-      <note>
-        <pitch><step>G</step><octave>4</octave></pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <lyric name="Verse">
-          <syllabic>begin</syllabic>
-          <text>VerseE</text>
-        </lyric>
-      </note>
-      <note>
-        <pitch><step>G</step><octave>4</octave></pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <lyric>
-          <syllabic>begin</syllabic>
-          <text>NoneF</text>
-        </lyric>
-      </note>
-      <barline location="right">
-        <bar-style>light-heavy</bar-style>
-      </barline>
-    </measure>
-  </part>
-  <!--=========================================================-->
-</score-partwise>
diff --git a/input/regression/musicxml/06h-Lyrics-BeamsMelismata.xml b/input/regression/musicxml/06h-Lyrics-BeamsMelismata.xml
deleted file mode 100644 (file)
index b369be2..0000000
+++ /dev/null
@@ -1,302 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.1 Partwise//EN"
-                                "http://www.musicxml.org/dtds/partwise.dtd">
-<score-partwise version="1.1">
-  <movement-title>Lyrics and melismata</movement-title>
-  <identification/>
-  <defaults/>
-  <part-list>
-    <score-part id="P1">
-      <part-name></part-name>
-    </score-part>
-  </part-list>
-  <!--=========================================================-->
-  <part id="P1">
-    <measure number="1">
-      <attributes>
-        <divisions>2</divisions>
-      </attributes>
-      <note>
-        <pitch><step>C</step><octave>5</octave></pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>eighth</type>
-        <beam number="1">begin</beam>
-        <lyric number="1">
-          <syllabic>begin</syllabic>
-          <text>Me</text>
-        </lyric>
-      </note>
-      <note>
-        <pitch><step>A</step><octave>4</octave></pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>eighth</type>
-        <beam number="1">continue</beam>
-      </note>
-      <note>
-        <pitch><step>C</step><octave>5</octave></pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>eighth</type>
-        <beam number="1">end</beam>
-      </note>
-      <note>
-        <pitch><step>A</step><octave>4</octave></pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>eighth</type>
-        <lyric number="1">
-          <syllabic>middle</syllabic>
-          <text>lis</text>
-        </lyric>
-      </note>
-      <note>
-        <pitch><step>C</step><octave>5</octave></pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>eighth</type>
-        <beam number="1">begin</beam>
-        <lyric number="1">
-          <syllabic>end</syllabic>
-          <text>ma</text>
-          <extend/>
-        </lyric>
-      </note>
-      <note>
-        <pitch><step>G</step><octave>4</octave></pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>eighth</type>
-        <beam number="1">continue</beam>
-      </note>
-      <note>
-        <pitch><step>B</step><octave>4</octave></pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>eighth</type>
-        <beam number="1">end</beam>
-      </note>
-      <note>
-        <rest/>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>eighth</type>
-      </note>
-    </measure>
-    <!--=======================================================-->
-    <measure number="2">
-      <note>
-        <pitch><step>C</step><octave>5</octave></pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>eighth</type>
-        <lyric number="1">
-          <syllabic>begin</syllabic>
-          <text>Me</text>
-        </lyric>
-      </note>
-      <note>
-        <pitch><step>A</step><octave>4</octave></pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>eighth</type>
-      </note>
-      <note>
-        <pitch><step>C</step><octave>5</octave></pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>eighth</type>
-      </note>
-      <note>
-        <pitch><step>A</step><octave>4</octave></pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>eighth</type>
-        <lyric number="1">
-          <syllabic>middle</syllabic>
-          <text>lis</text>
-        </lyric>
-      </note>
-      <note>
-        <pitch><step>C</step><octave>5</octave></pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>eighth</type>
-        <lyric number="1">
-          <syllabic>end</syllabic>
-          <text>ma</text>
-          <extend/>
-        </lyric>
-      </note>
-      <note>
-        <pitch><step>G</step><octave>4</octave></pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>eighth</type>
-      </note>
-      <note>
-        <pitch><step>B</step><octave>4</octave></pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>eighth</type>
-      </note>
-      <note>
-        <rest/>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>eighth</type>
-      </note>
-    </measure>
-    <!--=======================================================-->
-    <measure number="3">
-      <note>
-        <pitch><step>C</step><octave>5</octave></pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>eighth</type>
-        <notations>
-          <slur number="1" type="start"/>
-        </notations>
-        <lyric number="1">
-          <syllabic>begin</syllabic>
-          <text>Me</text>
-        </lyric>
-      </note>
-      <note>
-        <pitch><step>A</step><octave>4</octave></pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>eighth</type>
-      </note>
-      <note>
-        <pitch><step>C</step><octave>5</octave></pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>eighth</type>
-        <notations>
-          <slur number="1" type="stop"/>
-        </notations>
-      </note>
-      <note>
-        <pitch><step>A</step><octave>4</octave></pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>eighth</type>
-        <lyric number="1">
-          <syllabic>middle</syllabic>
-          <text>lis</text>
-        </lyric>
-      </note>
-      <note>
-        <pitch><step>C</step><octave>5</octave></pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>eighth</type>
-        <notations>
-          <slur number="1" type="start"/>
-        </notations>
-        <lyric number="1">
-          <syllabic>end</syllabic>
-          <text>ma</text>
-          <extend/>
-        </lyric>
-      </note>
-      <note>
-        <pitch><step>G</step><octave>4</octave></pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>eighth</type>
-      </note>
-      <note>
-        <pitch><step>B</step><octave>4</octave></pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>eighth</type>
-        <notations>
-          <slur number="1" type="stop"/>
-        </notations>
-      </note>
-      <note>
-        <rest/>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>eighth</type>
-      </note>
-    </measure>
-    <!--=======================================================-->
-    <measure number="4">
-      <note>
-        <pitch><step>C</step><octave>5</octave></pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>eighth</type>
-        <notations>
-          <slur number="1" type="start"/>
-        </notations>
-        <lyric number="1">
-          <syllabic>begin</syllabic>
-          <text>Me</text>
-        </lyric>
-      </note>
-      <note>
-        <pitch><step>A</step><octave>4</octave></pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>eighth</type>
-      </note>
-      <note>
-        <pitch><step>C</step><octave>5</octave></pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>eighth</type>
-      </note>
-      <note>
-        <pitch><step>A</step><octave>4</octave></pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>eighth</type>
-        <lyric number="1">
-          <syllabic>middle</syllabic>
-          <text>lis</text>
-        </lyric>
-      </note>
-      <note>
-        <pitch><step>C</step><octave>5</octave></pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>eighth</type>
-        <lyric number="1">
-          <syllabic>end</syllabic>
-          <text>ma</text>
-          <extend/>
-        </lyric>
-      </note>
-      <note>
-        <pitch><step>G</step><octave>4</octave></pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>eighth</type>
-      </note>
-      <note>
-        <pitch><step>B</step><octave>4</octave></pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>eighth</type>
-        <notations>
-          <slur number="1" type="stop"/>
-        </notations>
-      </note>
-      <note>
-        <rest/>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>eighth</type>
-      </note>
-      <barline location="right">
-        <bar-style>light-heavy</bar-style>
-      </barline>
-    </measure>
-  </part>
-  <!--=========================================================-->
-</score-partwise>
diff --git a/input/regression/musicxml/08a-Partorder-Rosegarden.xml b/input/regression/musicxml/08a-Partorder-Rosegarden.xml
deleted file mode 100644 (file)
index 90f6f92..0000000
+++ /dev/null
@@ -1,210 +0,0 @@
-<?xml version="1.0"?>
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 0.6 Partwise//EN" "http://www.musicxml.org/dtds/partwise.dtd">
-<score-partwise>
-       <work> <work-title>Part order test</work-title></work> 
-       <identification> 
-               <rights>Unknown</rights>
-               <encoding>
-                       <software>Rosegarden-4</software>
-               </encoding>
-       </identification> 
-       <part-list>
-               <score-part id="P0">
-                       <part-name>Part 1</part-name>
-                       <score-instrument id="I1">
-                               <instrument-name>0</instrument-name>
-                       </score-instrument>
-                       <midi-instrument id="I1">
-                               <midi-channel>1</midi-channel>
-                               <midi-program>1</midi-program>
-                       </midi-instrument>
-               </score-part>
-               <score-part id="P1">
-                       <part-name>Part 2</part-name>
-                       <score-instrument id="I2">
-                               <instrument-name>0</instrument-name>
-                       </score-instrument>
-                       <midi-instrument id="I2">
-                               <midi-channel>2</midi-channel>
-                       </midi-instrument>
-               </score-part>
-               <score-part id="P2">
-                       <part-name>Part 3</part-name>
-                       <score-instrument id="I3">
-                               <instrument-name>0</instrument-name>
-                       </score-instrument>
-                       <midi-instrument id="I3">
-                               <midi-channel>3</midi-channel>
-                       </midi-instrument>
-               </score-part>
-               <score-part id="P3">
-                       <part-name>Part 4</part-name>
-                       <score-instrument id="I4">
-                               <instrument-name>0</instrument-name>
-                       </score-instrument>
-                       <midi-instrument id="I4">
-                               <midi-channel>4</midi-channel>
-                       </midi-instrument>
-               </score-part>
-       </part-list>
-       <part id="P0">
-               <measure number="1">
-                       <attributes>
-                               <divisions>960</divisions>
-                               <key>
-                               <fifths>1</fifths>
-                               <mode>major</mode>
-                               </key>
-                               <time>
-                               <beats>4</beats>
-                               <beat-type>4</beat-type>
-                               </time>
-                               <clef>
-                               <sign>G</sign>
-                               <line>2</line>
-                               </clef>
-                       </attributes>
-                       <note>
-                               <pitch>
-                                       <step>C</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>960</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                       </note>
-                       <note>
-                               <rest/>
-                               <duration>960</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                       </note>
-                       <note>
-                               <rest/>
-                               <duration>1920</duration>
-                               <voice>1</voice>
-                               <type>half</type>
-                       </note>
-               </measure>
-       </part>
-       <part id="P1">
-               <measure number="1">
-                       <attributes>
-                               <divisions>960</divisions>
-                               <key>
-                               <fifths>1</fifths>
-                               <mode>major</mode>
-                               </key>
-                               <time>
-                               <beats>4</beats>
-                               <beat-type>4</beat-type>
-                               </time>
-                               <clef>
-                               <sign>G</sign>
-                               <line>2</line>
-                               </clef>
-                       </attributes>
-                       <note>
-                               <pitch>
-                                       <step>E</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>960</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                       </note>
-                       <note>
-                               <rest/>
-                               <duration>960</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                       </note>
-                       <note>
-                               <rest/>
-                               <duration>1920</duration>
-                               <voice>1</voice>
-                               <type>half</type>
-                       </note>
-               </measure>
-       </part>
-       <part id="P2">
-               <measure number="1">
-                       <attributes>
-                               <divisions>960</divisions>
-                               <key>
-                               <fifths>1</fifths>
-                               <mode>major</mode>
-                               </key>
-                               <time>
-                               <beats>4</beats>
-                               <beat-type>4</beat-type>
-                               </time>
-                               <clef>
-                               <sign>G</sign>
-                               <line>2</line>
-                               </clef>
-                       </attributes>
-                       <note>
-                               <pitch>
-                                       <step>G</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>960</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                       </note>
-                       <note>
-                               <rest/>
-                               <duration>960</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                       </note>
-                       <note>
-                               <rest/>
-                               <duration>1920</duration>
-                               <voice>1</voice>
-                               <type>half</type>
-                       </note>
-               </measure>
-       </part>
-       <part id="P3">
-               <measure number="1">
-                       <attributes>
-                               <divisions>960</divisions>
-                               <key>
-                               <fifths>1</fifths>
-                               <mode>major</mode>
-                               </key>
-                               <time>
-                               <beats>4</beats>
-                               <beat-type>4</beat-type>
-                               </time>
-                               <clef>
-                               <sign>G</sign>
-                               <line>2</line>
-                               </clef>
-                       </attributes>
-                       <note>
-                               <pitch>
-                                       <step>B</step>
-                                       <octave>4</octave>
-                               </pitch>
-                               <duration>960</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                       </note>
-                       <note>
-                               <rest/>
-                               <duration>960</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                       </note>
-                       <note>
-                               <rest/>
-                               <duration>1920</duration>
-                               <voice>1</voice>
-                               <type>half</type>
-                       </note>
-               </measure>
-       </part>
-</score-partwise>
diff --git a/input/regression/musicxml/08b-StaffGroups-Finale.xml b/input/regression/musicxml/08b-StaffGroups-Finale.xml
deleted file mode 100644 (file)
index 2bf1b50..0000000
+++ /dev/null
@@ -1,1791 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
-                                "http://www.musicxml.org/dtds/partwise.dtd">
-<score-partwise>
-  <movement-title>Bar/Staff test</movement-title>
-  <identification>
-    <creator type="composer">R.K.</creator>
-    <rights>copyright</rights>
-    <encoding>
-      <software>Finale 2006 for Windows</software>
-      <software>Dolet Light for Finale 2006</software>
-      <encoding-date>2007-08-25</encoding-date>
-    </encoding>
-  </identification>
-  <part-list>
-    <part-group number="2" type="start">
-      <group-symbol>bracket</group-symbol>
-      <group-barline>yes</group-barline>
-    </part-group>
-    <score-part id="P1">
-      <part-name>Piccolo</part-name>
-      <part-abbreviation>Picc.</part-abbreviation>
-      <score-instrument id="P1-I1">
-        <instrument-name>Piccolo</instrument-name>
-      </score-instrument>
-      <midi-instrument id="P1-I1">
-        <midi-channel>1</midi-channel>
-        <midi-program>73</midi-program>
-      </midi-instrument>
-    </score-part>
-    <part-group number="1" type="start">
-      <group-symbol>bracket</group-symbol>
-      <group-barline>no</group-barline>
-    </part-group>
-    <score-part id="P2">
-      <part-name>Flute 1</part-name>
-      <part-abbreviation>Fl. 1</part-abbreviation>
-      <score-instrument id="P2-I2">
-        <instrument-name>Flute 1</instrument-name>
-      </score-instrument>
-      <midi-instrument id="P2-I2">
-        <midi-channel>2</midi-channel>
-        <midi-program>74</midi-program>
-      </midi-instrument>
-    </score-part>
-    <score-part id="P3">
-      <part-name>Flute 2</part-name>
-      <part-abbreviation>Fl. 2</part-abbreviation>
-      <score-instrument id="P3-I3">
-        <instrument-name>Flute 2</instrument-name>
-      </score-instrument>
-      <midi-instrument id="P3-I3">
-        <midi-channel>3</midi-channel>
-        <midi-program>74</midi-program>
-      </midi-instrument>
-    </score-part>
-    <part-group number="1" type="stop"/>
-    <part-group number="3" type="start">
-      <group-name>Oboe through Clarinet</group-name>
-      <group-abbreviation>O to Cl</group-abbreviation>
-      <group-symbol>bracket</group-symbol>
-      <group-barline>yes</group-barline>
-    </part-group>
-    <part-group number="4" type="start">
-      <group-symbol>line</group-symbol>
-      <group-barline>yes</group-barline>
-    </part-group>
-    <score-part id="P4">
-      <part-name>Oboe</part-name>
-      <part-abbreviation>Ob.</part-abbreviation>
-      <score-instrument id="P4-I4">
-        <instrument-name>Oboe</instrument-name>
-      </score-instrument>
-      <midi-instrument id="P4-I4">
-        <midi-channel>4</midi-channel>
-        <midi-program>69</midi-program>
-      </midi-instrument>
-    </score-part>
-    <score-part id="P5">
-      <part-name>English Horn</part-name>
-      <part-abbreviation>E. Hn.</part-abbreviation>
-      <score-instrument id="P5-I5">
-        <instrument-name>English Horn</instrument-name>
-      </score-instrument>
-      <midi-instrument id="P5-I5">
-        <midi-channel>5</midi-channel>
-        <midi-program>70</midi-program>
-      </midi-instrument>
-    </score-part>
-    <part-group number="4" type="stop"/>
-    <score-part id="P6">
-      <part-name>Clarinet in Eb</part-name>
-      <part-abbreviation>Eb Cl.</part-abbreviation>
-      <score-instrument id="P6-I6">
-        <instrument-name>Clarinet in Eb</instrument-name>
-      </score-instrument>
-      <midi-instrument id="P6-I6">
-        <midi-channel>6</midi-channel>
-        <midi-program>72</midi-program>
-      </midi-instrument>
-    </score-part>
-    <part-group number="3" type="stop"/>
-    <part-group number="1" type="start">
-      <group-symbol>bracket</group-symbol>
-      <group-barline>no</group-barline>
-    </part-group>
-    <score-part id="P7">
-      <part-name>Clarinet in Bb 1</part-name>
-      <part-abbreviation>Bb Cl. 1</part-abbreviation>
-      <score-instrument id="P7-I7">
-        <instrument-name>Clarinet in Bb 1</instrument-name>
-      </score-instrument>
-      <midi-instrument id="P7-I7">
-        <midi-channel>7</midi-channel>
-        <midi-program>72</midi-program>
-      </midi-instrument>
-    </score-part>
-    <score-part id="P8">
-      <part-name>Clarinet in Bb 2</part-name>
-      <part-abbreviation>Bb Cl. 2</part-abbreviation>
-      <score-instrument id="P8-I8">
-        <instrument-name>Clarinet in Bb 2</instrument-name>
-      </score-instrument>
-      <midi-instrument id="P8-I8">
-        <midi-channel>8</midi-channel>
-        <midi-program>72</midi-program>
-      </midi-instrument>
-    </score-part>
-    <part-group number="1" type="stop"/>
-    <score-part id="P9">
-      <part-name>Bass Clarinet</part-name>
-      <part-abbreviation>B. Cl.</part-abbreviation>
-      <score-instrument id="P9-I9">
-        <instrument-name>Bass Clarinet</instrument-name>
-      </score-instrument>
-      <midi-instrument id="P9-I9">
-        <midi-channel>9</midi-channel>
-        <midi-program>72</midi-program>
-      </midi-instrument>
-    </score-part>
-    <part-group number="1" type="start">
-      <group-symbol>bracket</group-symbol>
-      <group-barline>no</group-barline>
-    </part-group>
-    <score-part id="P10">
-      <part-name>Bassoon 1</part-name>
-      <part-abbreviation>Bsn. 1</part-abbreviation>
-      <score-instrument id="P10-I10">
-        <instrument-name>Bassoon 1</instrument-name>
-      </score-instrument>
-      <midi-instrument id="P10-I10">
-        <midi-channel>11</midi-channel>
-        <midi-program>71</midi-program>
-      </midi-instrument>
-    </score-part>
-    <score-part id="P11">
-      <part-name>Bassoon 2</part-name>
-      <part-abbreviation>Bsn. 2</part-abbreviation>
-      <score-instrument id="P11-I11">
-        <instrument-name>Bassoon 2</instrument-name>
-      </score-instrument>
-      <midi-instrument id="P11-I11">
-        <midi-channel>12</midi-channel>
-        <midi-program>71</midi-program>
-      </midi-instrument>
-    </score-part>
-    <part-group number="1" type="stop"/>
-    <score-part id="P12">
-      <part-name>Contrabassoon</part-name>
-      <part-abbreviation>C. Bn.</part-abbreviation>
-      <score-instrument id="P12-I12">
-        <instrument-name>Contrabassoon</instrument-name>
-      </score-instrument>
-      <midi-instrument id="P12-I12">
-        <midi-channel>13</midi-channel>
-        <midi-program>71</midi-program>
-      </midi-instrument>
-    </score-part>
-    <part-group number="2" type="stop"/>
-    <part-group number="1" type="start">
-      <group-symbol>bracket</group-symbol>
-      <group-barline>no</group-barline>
-    </part-group>
-    <part-group number="2" type="start">
-      <group-symbol>bracket</group-symbol>
-      <group-barline>yes</group-barline>
-    </part-group>
-    <score-part id="P13">
-      <part-name>Horn in F 1</part-name>
-      <part-abbreviation>Hn. 1</part-abbreviation>
-      <score-instrument id="P13-I13">
-        <instrument-name>Horn in F 1</instrument-name>
-      </score-instrument>
-      <midi-instrument id="P13-I13">
-        <midi-channel>14</midi-channel>
-        <midi-program>61</midi-program>
-      </midi-instrument>
-    </score-part>
-    <score-part id="P14">
-      <part-name>Horn in F 2</part-name>
-      <part-abbreviation>Hn. 2</part-abbreviation>
-      <score-instrument id="P14-I14">
-        <instrument-name>Horn in F 2</instrument-name>
-      </score-instrument>
-      <midi-instrument id="P14-I14">
-        <midi-channel>15</midi-channel>
-        <midi-program>61</midi-program>
-      </midi-instrument>
-    </score-part>
-    <part-group number="1" type="stop"/>
-    <part-group number="1" type="start">
-      <group-symbol>bracket</group-symbol>
-      <group-barline>no</group-barline>
-    </part-group>
-    <score-part id="P15">
-      <part-name>Trumpet in C 1</part-name>
-      <part-abbreviation>C Tpt. 1</part-abbreviation>
-      <score-instrument id="P15-I15">
-        <instrument-name>Trumpet in C 1</instrument-name>
-      </score-instrument>
-      <midi-instrument id="P15-I15">
-        <midi-channel>16</midi-channel>
-        <midi-program>57</midi-program>
-      </midi-instrument>
-    </score-part>
-    <score-part id="P16">
-      <part-name>Trumpet in C 2</part-name>
-      <part-abbreviation>C Tpt. 2</part-abbreviation>
-      <score-instrument id="P16-I16">
-        <instrument-name>Trumpet in C 2</instrument-name>
-      </score-instrument>
-      <midi-instrument id="P16-I16">
-        <midi-channel>1</midi-channel>
-        <midi-program>57</midi-program>
-      </midi-instrument>
-    </score-part>
-    <part-group number="1" type="stop"/>
-    <part-group number="1" type="start">
-      <group-symbol>bracket</group-symbol>
-      <group-barline>no</group-barline>
-    </part-group>
-    <score-part id="P17">
-      <part-name>Trombone 1</part-name>
-      <part-abbreviation>Tbn. 1</part-abbreviation>
-      <score-instrument id="P17-I17">
-        <instrument-name>Trombone 1</instrument-name>
-      </score-instrument>
-      <midi-instrument id="P17-I17">
-        <midi-channel>2</midi-channel>
-        <midi-program>58</midi-program>
-      </midi-instrument>
-    </score-part>
-    <score-part id="P18">
-      <part-name>Trombone 2</part-name>
-      <part-abbreviation>Tbn. 2</part-abbreviation>
-      <score-instrument id="P18-I18">
-        <instrument-name>Trombone 2</instrument-name>
-      </score-instrument>
-      <midi-instrument id="P18-I18">
-        <midi-channel>3</midi-channel>
-        <midi-program>58</midi-program>
-      </midi-instrument>
-    </score-part>
-    <part-group number="1" type="stop"/>
-    <score-part id="P19">
-      <part-name>Tuba</part-name>
-      <part-abbreviation>Tuba</part-abbreviation>
-      <score-instrument id="P19-I19">
-        <instrument-name>Tuba</instrument-name>
-      </score-instrument>
-      <midi-instrument id="P19-I19">
-        <midi-channel>4</midi-channel>
-        <midi-program>59</midi-program>
-      </midi-instrument>
-    </score-part>
-    <part-group number="2" type="stop"/>
-    <score-part id="P20">
-      <part-name>Timpani</part-name>
-      <part-abbreviation>Timp.</part-abbreviation>
-      <score-instrument id="P20-I20">
-        <instrument-name>Timpani</instrument-name>
-      </score-instrument>
-      <midi-instrument id="P20-I20">
-        <midi-channel>5</midi-channel>
-        <midi-program>48</midi-program>
-      </midi-instrument>
-    </score-part>
-    <score-part id="P21">
-      <part-name>Percussion</part-name>
-      <part-abbreviation>Perc.</part-abbreviation>
-      <score-instrument id="P21-M76">
-        <instrument-name>MIDI77</instrument-name>
-      </score-instrument>
-      <midi-instrument id="P21-M76">
-        <midi-channel>10</midi-channel>
-        <midi-program>1</midi-program>
-        <midi-unpitched>77</midi-unpitched>
-      </midi-instrument>
-    </score-part>
-    <score-part id="P22">
-      <part-name>Harp</part-name>
-      <part-abbreviation>Hp.</part-abbreviation>
-      <score-instrument id="P22-I22">
-        <instrument-name>Harp</instrument-name>
-      </score-instrument>
-      <midi-instrument id="P22-I22">
-        <midi-channel>6</midi-channel>
-        <midi-program>47</midi-program>
-      </midi-instrument>
-    </score-part>
-    <score-part id="P23">
-      <part-name>Piano</part-name>
-      <part-abbreviation>Pno.</part-abbreviation>
-      <score-instrument id="P23-I23">
-        <instrument-name>Piano</instrument-name>
-      </score-instrument>
-      <midi-instrument id="P23-I23">
-        <midi-channel>7</midi-channel>
-        <midi-program>1</midi-program>
-      </midi-instrument>
-    </score-part>
-    <part-group number="1" type="start">
-      <group-symbol>bracket</group-symbol>
-      <group-barline>yes</group-barline>
-    </part-group>
-    <score-part id="P24">
-      <part-name>Violin I</part-name>
-      <part-abbreviation>Vln. I</part-abbreviation>
-      <score-instrument id="P24-I24">
-        <instrument-name>Violin I</instrument-name>
-      </score-instrument>
-      <midi-instrument id="P24-I24">
-        <midi-channel>8</midi-channel>
-        <midi-program>49</midi-program>
-      </midi-instrument>
-    </score-part>
-    <score-part id="P25">
-      <part-name>Violin II</part-name>
-      <part-abbreviation>Vln. II</part-abbreviation>
-      <score-instrument id="P25-I25">
-        <instrument-name>Violin II</instrument-name>
-      </score-instrument>
-      <midi-instrument id="P25-I25">
-        <midi-channel>9</midi-channel>
-        <midi-program>49</midi-program>
-      </midi-instrument>
-    </score-part>
-    <score-part id="P26">
-      <part-name>Viola</part-name>
-      <part-abbreviation>Vla.</part-abbreviation>
-      <score-instrument id="P26-I26">
-        <instrument-name>Viola</instrument-name>
-      </score-instrument>
-      <midi-instrument id="P26-I26">
-        <midi-channel>11</midi-channel>
-        <midi-program>49</midi-program>
-      </midi-instrument>
-    </score-part>
-    <score-part id="P27">
-      <part-name>Cello</part-name>
-      <part-abbreviation>Vc.</part-abbreviation>
-      <score-instrument id="P27-I27">
-        <instrument-name>Cello</instrument-name>
-      </score-instrument>
-      <midi-instrument id="P27-I27">
-        <midi-channel>12</midi-channel>
-        <midi-program>49</midi-program>
-      </midi-instrument>
-    </score-part>
-    <score-part id="P28">
-      <part-name>Contrabass</part-name>
-      <part-abbreviation>Cb.</part-abbreviation>
-      <score-instrument id="P28-I28">
-        <instrument-name>Contrabass</instrument-name>
-      </score-instrument>
-      <midi-instrument id="P28-I28">
-        <midi-channel>13</midi-channel>
-        <midi-program>49</midi-program>
-      </midi-instrument>
-    </score-part>
-    <part-group number="1" type="stop"/>
-  </part-list>
-  <!--=========================================================-->
-  <part id="P1">
-    <measure number="1">
-      <attributes>
-        <divisions>1</divisions>
-        <key>
-          <fifths>0</fifths>
-          <mode>major</mode>
-        </key>
-        <time symbol="common">
-          <beats>4</beats>
-          <beat-type>4</beat-type>
-        </time>
-        <clef>
-          <sign>G</sign>
-          <line>2</line>
-        </clef>
-        <transpose>
-          <diatonic>0</diatonic>
-          <chromatic>0</chromatic>
-          <octave-change>1</octave-change>
-        </transpose>
-      </attributes>
-      <sound tempo="120"/>
-      <note>
-        <pitch>
-          <step>B</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>down</stem>
-      </note>
-      <note>
-        <rest/>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <rest/>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>half</type>
-      </note>
-      <barline location="right">
-        <bar-style>light-heavy</bar-style>
-      </barline>
-    </measure>
-  </part>
-  <!--=========================================================-->
-  <part id="P2">
-    <measure number="1">
-      <attributes>
-        <divisions>1</divisions>
-        <key>
-          <fifths>0</fifths>
-          <mode>major</mode>
-        </key>
-        <time symbol="common">
-          <beats>4</beats>
-          <beat-type>4</beat-type>
-        </time>
-        <clef>
-          <sign>G</sign>
-          <line>2</line>
-        </clef>
-      </attributes>
-      <sound tempo="120"/>
-      <note>
-        <pitch>
-          <step>F</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>up</stem>
-      </note>
-      <note>
-        <rest/>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <rest/>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>half</type>
-      </note>
-      <barline location="right">
-        <bar-style>light-heavy</bar-style>
-      </barline>
-    </measure>
-  </part>
-  <!--=========================================================-->
-  <part id="P3">
-    <measure number="1">
-      <attributes>
-        <divisions>1</divisions>
-        <key>
-          <fifths>0</fifths>
-          <mode>major</mode>
-        </key>
-        <time symbol="common">
-          <beats>4</beats>
-          <beat-type>4</beat-type>
-        </time>
-        <clef>
-          <sign>G</sign>
-          <line>2</line>
-        </clef>
-      </attributes>
-      <sound tempo="120"/>
-      <note>
-        <pitch>
-          <step>A</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>up</stem>
-      </note>
-      <note>
-        <rest/>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <rest/>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>half</type>
-      </note>
-      <barline location="right">
-        <bar-style>light-heavy</bar-style>
-      </barline>
-    </measure>
-  </part>
-  <!--=========================================================-->
-  <part id="P4">
-    <measure number="1">
-      <attributes>
-        <divisions>1</divisions>
-        <key>
-          <fifths>0</fifths>
-          <mode>major</mode>
-        </key>
-        <time symbol="common">
-          <beats>4</beats>
-          <beat-type>4</beat-type>
-        </time>
-        <clef>
-          <sign>G</sign>
-          <line>2</line>
-        </clef>
-      </attributes>
-      <sound tempo="120"/>
-      <note>
-        <pitch>
-          <step>E</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>down</stem>
-      </note>
-      <note>
-        <rest/>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <rest/>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>half</type>
-      </note>
-      <barline location="right">
-        <bar-style>light-heavy</bar-style>
-      </barline>
-    </measure>
-  </part>
-  <!--=========================================================-->
-  <part id="P5">
-    <measure number="1">
-      <attributes>
-        <divisions>1</divisions>
-        <key>
-          <fifths>1</fifths>
-          <mode>major</mode>
-        </key>
-        <time symbol="common">
-          <beats>4</beats>
-          <beat-type>4</beat-type>
-        </time>
-        <clef>
-          <sign>G</sign>
-          <line>2</line>
-        </clef>
-        <transpose>
-          <diatonic>-4</diatonic>
-          <chromatic>-7</chromatic>
-        </transpose>
-      </attributes>
-      <sound tempo="120"/>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>down</stem>
-      </note>
-      <note>
-        <rest/>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <rest/>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>half</type>
-      </note>
-      <barline location="right">
-        <bar-style>light-heavy</bar-style>
-      </barline>
-    </measure>
-  </part>
-  <!--=========================================================-->
-  <part id="P6">
-    <measure number="1">
-      <attributes>
-        <divisions>1</divisions>
-        <key>
-          <fifths>3</fifths>
-          <mode>major</mode>
-        </key>
-        <time symbol="common">
-          <beats>4</beats>
-          <beat-type>4</beat-type>
-        </time>
-        <clef>
-          <sign>G</sign>
-          <line>2</line>
-        </clef>
-        <transpose>
-          <diatonic>2</diatonic>
-          <chromatic>3</chromatic>
-        </transpose>
-      </attributes>
-      <sound tempo="120"/>
-      <note>
-        <pitch>
-          <step>B</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>down</stem>
-      </note>
-      <note>
-        <rest/>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <rest/>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>half</type>
-      </note>
-      <barline location="right">
-        <bar-style>light-heavy</bar-style>
-      </barline>
-    </measure>
-  </part>
-  <!--=========================================================-->
-  <part id="P7">
-    <measure number="1">
-      <attributes>
-        <divisions>1</divisions>
-        <key>
-          <fifths>2</fifths>
-          <mode>major</mode>
-        </key>
-        <time symbol="common">
-          <beats>4</beats>
-          <beat-type>4</beat-type>
-        </time>
-        <clef>
-          <sign>G</sign>
-          <line>2</line>
-        </clef>
-        <transpose>
-          <diatonic>-1</diatonic>
-          <chromatic>-2</chromatic>
-        </transpose>
-      </attributes>
-      <sound tempo="120"/>
-      <note>
-        <pitch>
-          <step>F</step>
-          <alter>1</alter>
-          <octave>4</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>up</stem>
-      </note>
-      <note>
-        <rest/>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <rest/>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>half</type>
-      </note>
-      <barline location="right">
-        <bar-style>light-heavy</bar-style>
-      </barline>
-    </measure>
-  </part>
-  <!--=========================================================-->
-  <part id="P8">
-    <measure number="1">
-      <attributes>
-        <divisions>1</divisions>
-        <key>
-          <fifths>2</fifths>
-          <mode>major</mode>
-        </key>
-        <time symbol="common">
-          <beats>4</beats>
-          <beat-type>4</beat-type>
-        </time>
-        <clef>
-          <sign>G</sign>
-          <line>2</line>
-        </clef>
-        <transpose>
-          <diatonic>-1</diatonic>
-          <chromatic>-2</chromatic>
-        </transpose>
-      </attributes>
-      <sound tempo="120"/>
-      <note>
-        <pitch>
-          <step>C</step>
-          <alter>1</alter>
-          <octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>down</stem>
-      </note>
-      <note>
-        <rest/>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <rest/>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>half</type>
-      </note>
-      <barline location="right">
-        <bar-style>light-heavy</bar-style>
-      </barline>
-    </measure>
-  </part>
-  <!--=========================================================-->
-  <part id="P9">
-    <measure number="1">
-      <attributes>
-        <divisions>1</divisions>
-        <key>
-          <fifths>2</fifths>
-          <mode>major</mode>
-        </key>
-        <time symbol="common">
-          <beats>4</beats>
-          <beat-type>4</beat-type>
-        </time>
-        <clef>
-          <sign>G</sign>
-          <line>2</line>
-        </clef>
-        <transpose>
-          <diatonic>-1</diatonic>
-          <chromatic>-2</chromatic>
-          <octave-change>-1</octave-change>
-        </transpose>
-      </attributes>
-      <sound tempo="120"/>
-      <note>
-        <pitch>
-          <step>B</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>down</stem>
-      </note>
-      <note>
-        <rest/>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <rest/>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>half</type>
-      </note>
-      <barline location="right">
-        <bar-style>light-heavy</bar-style>
-      </barline>
-    </measure>
-  </part>
-  <!--=========================================================-->
-  <part id="P10">
-    <measure number="1">
-      <attributes>
-        <divisions>1</divisions>
-        <key>
-          <fifths>0</fifths>
-          <mode>major</mode>
-        </key>
-        <time symbol="common">
-          <beats>4</beats>
-          <beat-type>4</beat-type>
-        </time>
-        <clef>
-          <sign>F</sign>
-          <line>4</line>
-        </clef>
-      </attributes>
-      <sound tempo="120"/>
-      <note>
-        <pitch>
-          <step>D</step>
-          <octave>3</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>down</stem>
-      </note>
-      <note>
-        <rest/>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <rest/>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>half</type>
-      </note>
-      <barline location="right">
-        <bar-style>light-heavy</bar-style>
-      </barline>
-    </measure>
-  </part>
-  <!--=========================================================-->
-  <part id="P11">
-    <measure number="1">
-      <attributes>
-        <divisions>1</divisions>
-        <key>
-          <fifths>0</fifths>
-          <mode>major</mode>
-        </key>
-        <time symbol="common">
-          <beats>4</beats>
-          <beat-type>4</beat-type>
-        </time>
-        <clef>
-          <sign>F</sign>
-          <line>4</line>
-        </clef>
-      </attributes>
-      <sound tempo="120"/>
-      <note>
-        <pitch>
-          <step>E</step>
-          <octave>3</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>down</stem>
-      </note>
-      <note>
-        <rest/>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <rest/>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>half</type>
-      </note>
-      <barline location="right">
-        <bar-style>light-heavy</bar-style>
-      </barline>
-    </measure>
-  </part>
-  <!--=========================================================-->
-  <part id="P12">
-    <measure number="1">
-      <attributes>
-        <divisions>1</divisions>
-        <key>
-          <fifths>0</fifths>
-          <mode>major</mode>
-        </key>
-        <time symbol="common">
-          <beats>4</beats>
-          <beat-type>4</beat-type>
-        </time>
-        <clef>
-          <sign>F</sign>
-          <line>4</line>
-        </clef>
-        <transpose>
-          <diatonic>0</diatonic>
-          <chromatic>0</chromatic>
-          <octave-change>-1</octave-change>
-        </transpose>
-      </attributes>
-      <sound tempo="120"/>
-      <note>
-        <pitch>
-          <step>B</step>
-          <octave>2</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>up</stem>
-      </note>
-      <note>
-        <rest/>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <rest/>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>half</type>
-      </note>
-      <barline location="right">
-        <bar-style>light-heavy</bar-style>
-      </barline>
-    </measure>
-  </part>
-  <!--=========================================================-->
-  <part id="P13">
-    <measure number="1">
-      <attributes>
-        <divisions>1</divisions>
-        <key>
-          <fifths>1</fifths>
-          <mode>major</mode>
-        </key>
-        <time symbol="common">
-          <beats>4</beats>
-          <beat-type>4</beat-type>
-        </time>
-        <clef>
-          <sign>G</sign>
-          <line>2</line>
-        </clef>
-        <transpose>
-          <diatonic>-4</diatonic>
-          <chromatic>-7</chromatic>
-        </transpose>
-      </attributes>
-      <sound tempo="120"/>
-      <note>
-        <pitch>
-          <step>E</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>down</stem>
-      </note>
-      <note>
-        <rest/>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <rest/>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>half</type>
-      </note>
-      <barline location="right">
-        <bar-style>light-heavy</bar-style>
-      </barline>
-    </measure>
-  </part>
-  <!--=========================================================-->
-  <part id="P14">
-    <measure number="1">
-      <attributes>
-        <divisions>1</divisions>
-        <key>
-          <fifths>1</fifths>
-          <mode>major</mode>
-        </key>
-        <time symbol="common">
-          <beats>4</beats>
-          <beat-type>4</beat-type>
-        </time>
-        <clef>
-          <sign>G</sign>
-          <line>2</line>
-        </clef>
-        <transpose>
-          <diatonic>-4</diatonic>
-          <chromatic>-7</chromatic>
-        </transpose>
-      </attributes>
-      <sound tempo="120"/>
-      <note>
-        <pitch>
-          <step>G</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>up</stem>
-      </note>
-      <note>
-        <rest/>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <rest/>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>half</type>
-      </note>
-      <barline location="right">
-        <bar-style>light-heavy</bar-style>
-      </barline>
-    </measure>
-  </part>
-  <!--=========================================================-->
-  <part id="P15">
-    <measure number="1">
-      <attributes>
-        <divisions>1</divisions>
-        <key>
-          <fifths>0</fifths>
-          <mode>major</mode>
-        </key>
-        <time symbol="common">
-          <beats>4</beats>
-          <beat-type>4</beat-type>
-        </time>
-        <clef>
-          <sign>G</sign>
-          <line>2</line>
-        </clef>
-      </attributes>
-      <sound tempo="120"/>
-      <note>
-        <pitch>
-          <step>F</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>up</stem>
-      </note>
-      <note>
-        <rest/>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <rest/>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>half</type>
-      </note>
-      <barline location="right">
-        <bar-style>light-heavy</bar-style>
-      </barline>
-    </measure>
-  </part>
-  <!--=========================================================-->
-  <part id="P16">
-    <measure number="1">
-      <attributes>
-        <divisions>1</divisions>
-        <key>
-          <fifths>0</fifths>
-          <mode>major</mode>
-        </key>
-        <time symbol="common">
-          <beats>4</beats>
-          <beat-type>4</beat-type>
-        </time>
-        <clef>
-          <sign>G</sign>
-          <line>2</line>
-        </clef>
-      </attributes>
-      <sound tempo="120"/>
-      <note>
-        <pitch>
-          <step>A</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>up</stem>
-      </note>
-      <note>
-        <rest/>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <rest/>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>half</type>
-      </note>
-      <barline location="right">
-        <bar-style>light-heavy</bar-style>
-      </barline>
-    </measure>
-  </part>
-  <!--=========================================================-->
-  <part id="P17">
-    <measure number="1">
-      <attributes>
-        <divisions>1</divisions>
-        <key>
-          <fifths>0</fifths>
-          <mode>major</mode>
-        </key>
-        <time symbol="common">
-          <beats>4</beats>
-          <beat-type>4</beat-type>
-        </time>
-        <clef>
-          <sign>F</sign>
-          <line>4</line>
-        </clef>
-      </attributes>
-      <sound tempo="120"/>
-      <note>
-        <pitch>
-          <step>B</step>
-          <octave>2</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>up</stem>
-      </note>
-      <note>
-        <rest/>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <rest/>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>half</type>
-      </note>
-      <barline location="right">
-        <bar-style>light-heavy</bar-style>
-      </barline>
-    </measure>
-  </part>
-  <!--=========================================================-->
-  <part id="P18">
-    <measure number="1">
-      <attributes>
-        <divisions>1</divisions>
-        <key>
-          <fifths>0</fifths>
-          <mode>major</mode>
-        </key>
-        <time symbol="common">
-          <beats>4</beats>
-          <beat-type>4</beat-type>
-        </time>
-        <clef>
-          <sign>F</sign>
-          <line>4</line>
-        </clef>
-      </attributes>
-      <sound tempo="120"/>
-      <note>
-        <pitch>
-          <step>E</step>
-          <octave>3</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>down</stem>
-      </note>
-      <note>
-        <rest/>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <rest/>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>half</type>
-      </note>
-      <barline location="right">
-        <bar-style>light-heavy</bar-style>
-      </barline>
-    </measure>
-  </part>
-  <!--=========================================================-->
-  <part id="P19">
-    <measure number="1">
-      <attributes>
-        <divisions>1</divisions>
-        <key>
-          <fifths>0</fifths>
-          <mode>major</mode>
-        </key>
-        <time symbol="common">
-          <beats>4</beats>
-          <beat-type>4</beat-type>
-        </time>
-        <clef>
-          <sign>F</sign>
-          <line>4</line>
-        </clef>
-      </attributes>
-      <sound tempo="120"/>
-      <note>
-        <pitch>
-          <step>E</step>
-          <octave>3</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>down</stem>
-      </note>
-      <note>
-        <rest/>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <rest/>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>half</type>
-      </note>
-      <barline location="right">
-        <bar-style>light-heavy</bar-style>
-      </barline>
-    </measure>
-  </part>
-  <!--=========================================================-->
-  <part id="P20">
-    <measure number="1">
-      <attributes>
-        <divisions>1</divisions>
-        <key>
-          <fifths>0</fifths>
-          <mode>major</mode>
-        </key>
-        <time symbol="common">
-          <beats>4</beats>
-          <beat-type>4</beat-type>
-        </time>
-        <clef>
-          <sign>F</sign>
-          <line>4</line>
-        </clef>
-      </attributes>
-      <sound tempo="120"/>
-      <note>
-        <pitch>
-          <step>F</step>
-          <octave>3</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>down</stem>
-      </note>
-      <note>
-        <rest/>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <rest/>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>half</type>
-      </note>
-      <barline location="right">
-        <bar-style>light-heavy</bar-style>
-      </barline>
-    </measure>
-  </part>
-  <!--=========================================================-->
-  <part id="P21">
-    <measure number="1">
-      <attributes>
-        <divisions>1</divisions>
-        <key>
-          <fifths>0</fifths>
-          <mode>major</mode>
-        </key>
-        <time symbol="common">
-          <beats>4</beats>
-          <beat-type>4</beat-type>
-        </time>
-        <instruments>2</instruments>
-        <clef>
-          <sign>percussion</sign>
-        </clef>
-      </attributes>
-      <sound tempo="120"/>
-      <note>
-        <unpitched>
-          <display-step>E</display-step>
-          <display-octave>5</display-octave>
-        </unpitched>
-        <duration>1</duration>
-        <instrument id="P21-M76"/>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>down</stem>
-      </note>
-      <note>
-        <rest/>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <rest/>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>half</type>
-      </note>
-      <barline location="right">
-        <bar-style>light-heavy</bar-style>
-      </barline>
-    </measure>
-  </part>
-  <!--=========================================================-->
-  <part id="P22">
-    <measure number="1">
-      <attributes>
-        <divisions>1</divisions>
-        <key>
-          <fifths>0</fifths>
-          <mode>major</mode>
-        </key>
-        <time symbol="common">
-          <beats>4</beats>
-          <beat-type>4</beat-type>
-        </time>
-        <staves>2</staves>
-        <clef number="1">
-          <sign>G</sign>
-          <line>2</line>
-        </clef>
-        <clef number="2">
-          <sign>F</sign>
-          <line>4</line>
-        </clef>
-      </attributes>
-      <sound tempo="120"/>
-      <note>
-        <pitch>
-          <step>D</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>down</stem>
-        <staff>1</staff>
-      </note>
-      <note>
-        <rest/>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <staff>1</staff>
-      </note>
-      <note>
-        <rest/>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>half</type>
-        <staff>1</staff>
-      </note>
-      <backup>
-        <duration>4</duration>
-      </backup>
-      <note>
-        <pitch>
-          <step>A</step>
-          <octave>2</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>2</voice>
-        <type>quarter</type>
-        <stem>up</stem>
-        <staff>2</staff>
-      </note>
-      <note>
-        <rest/>
-        <duration>1</duration>
-        <voice>2</voice>
-        <type>quarter</type>
-        <staff>2</staff>
-      </note>
-      <note>
-        <rest/>
-        <duration>2</duration>
-        <voice>2</voice>
-        <type>half</type>
-        <staff>2</staff>
-      </note>
-      <barline location="right">
-        <bar-style>light-heavy</bar-style>
-      </barline>
-    </measure>
-  </part>
-  <!--=========================================================-->
-  <part id="P23">
-    <measure number="1">
-      <attributes>
-        <divisions>1</divisions>
-        <key>
-          <fifths>0</fifths>
-          <mode>major</mode>
-        </key>
-        <time symbol="common">
-          <beats>4</beats>
-          <beat-type>4</beat-type>
-        </time>
-        <staves>2</staves>
-        <clef number="1">
-          <sign>G</sign>
-          <line>2</line>
-        </clef>
-        <clef number="2">
-          <sign>F</sign>
-          <line>4</line>
-        </clef>
-      </attributes>
-      <sound tempo="120"/>
-      <note>
-        <pitch>
-          <step>G</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>up</stem>
-        <staff>1</staff>
-      </note>
-      <note>
-        <rest/>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <staff>1</staff>
-      </note>
-      <note>
-        <rest/>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>half</type>
-        <staff>1</staff>
-      </note>
-      <backup>
-        <duration>4</duration>
-      </backup>
-      <note>
-        <pitch>
-          <step>E</step>
-          <octave>3</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>2</voice>
-        <type>quarter</type>
-        <stem>down</stem>
-        <staff>2</staff>
-      </note>
-      <note>
-        <rest/>
-        <duration>1</duration>
-        <voice>2</voice>
-        <type>quarter</type>
-        <staff>2</staff>
-      </note>
-      <note>
-        <rest/>
-        <duration>2</duration>
-        <voice>2</voice>
-        <type>half</type>
-        <staff>2</staff>
-      </note>
-      <barline location="right">
-        <bar-style>light-heavy</bar-style>
-      </barline>
-    </measure>
-  </part>
-  <!--=========================================================-->
-  <part id="P24">
-    <measure number="1">
-      <attributes>
-        <divisions>1</divisions>
-        <key>
-          <fifths>0</fifths>
-          <mode>major</mode>
-        </key>
-        <time symbol="common">
-          <beats>4</beats>
-          <beat-type>4</beat-type>
-        </time>
-        <clef>
-          <sign>G</sign>
-          <line>2</line>
-        </clef>
-      </attributes>
-      <sound tempo="120"/>
-      <note>
-        <pitch>
-          <step>E</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>down</stem>
-      </note>
-      <note>
-        <rest/>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <rest/>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>half</type>
-      </note>
-      <barline location="right">
-        <bar-style>light-heavy</bar-style>
-      </barline>
-    </measure>
-  </part>
-  <!--=========================================================-->
-  <part id="P25">
-    <measure number="1">
-      <attributes>
-        <divisions>1</divisions>
-        <key>
-          <fifths>0</fifths>
-          <mode>major</mode>
-        </key>
-        <time symbol="common">
-          <beats>4</beats>
-          <beat-type>4</beat-type>
-        </time>
-        <clef>
-          <sign>G</sign>
-          <line>2</line>
-        </clef>
-      </attributes>
-      <sound tempo="120"/>
-      <note>
-        <pitch>
-          <step>F</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>up</stem>
-      </note>
-      <note>
-        <rest/>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <rest/>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>half</type>
-      </note>
-      <barline location="right">
-        <bar-style>light-heavy</bar-style>
-      </barline>
-    </measure>
-  </part>
-  <!--=========================================================-->
-  <part id="P26">
-    <measure number="1">
-      <attributes>
-        <divisions>1</divisions>
-        <key>
-          <fifths>0</fifths>
-          <mode>major</mode>
-        </key>
-        <time symbol="common">
-          <beats>4</beats>
-          <beat-type>4</beat-type>
-        </time>
-        <clef>
-          <sign>C</sign>
-          <line>3</line>
-        </clef>
-      </attributes>
-      <sound tempo="120"/>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>down</stem>
-      </note>
-      <note>
-        <rest/>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <rest/>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>half</type>
-      </note>
-      <barline location="right">
-        <bar-style>light-heavy</bar-style>
-      </barline>
-    </measure>
-  </part>
-  <!--=========================================================-->
-  <part id="P27">
-    <measure number="1">
-      <attributes>
-        <divisions>1</divisions>
-        <key>
-          <fifths>0</fifths>
-          <mode>major</mode>
-        </key>
-        <time symbol="common">
-          <beats>4</beats>
-          <beat-type>4</beat-type>
-        </time>
-        <clef>
-          <sign>F</sign>
-          <line>4</line>
-        </clef>
-      </attributes>
-      <sound tempo="120"/>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>3</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>up</stem>
-      </note>
-      <note>
-        <rest/>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <rest/>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>half</type>
-      </note>
-      <barline location="right">
-        <bar-style>light-heavy</bar-style>
-      </barline>
-    </measure>
-  </part>
-  <!--=========================================================-->
-  <part id="P28">
-    <measure number="1">
-      <attributes>
-        <divisions>1</divisions>
-        <key>
-          <fifths>0</fifths>
-          <mode>major</mode>
-        </key>
-        <time symbol="common">
-          <beats>4</beats>
-          <beat-type>4</beat-type>
-        </time>
-        <clef>
-          <sign>F</sign>
-          <line>4</line>
-        </clef>
-        <transpose>
-          <diatonic>0</diatonic>
-          <chromatic>0</chromatic>
-          <octave-change>-1</octave-change>
-        </transpose>
-      </attributes>
-      <sound tempo="120"/>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>3</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>up</stem>
-      </note>
-      <note>
-        <rest/>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <note>
-        <rest/>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>half</type>
-      </note>
-      <barline location="right">
-        <bar-style>light-heavy</bar-style>
-      </barline>
-    </measure>
-  </part>
-  <!--=========================================================-->
-</score-partwise>
diff --git a/input/regression/musicxml/08c-More-than-10-parts-Rosegarden.xml b/input/regression/musicxml/08c-More-than-10-parts-Rosegarden.xml
deleted file mode 100644 (file)
index 10c9581..0000000
+++ /dev/null
@@ -1,590 +0,0 @@
-<?xml version="1.0"?>
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 0.6 Partwise//EN" "http://www.musicxml.org/dtds/partwise.dtd">
-<score-partwise>
-       <work> <work-title>/home/reinhold/lilypond-dev-files/09_more_than_10_parts.xml</work-title></work> 
-       <identification> 
-               <rights>Unknown</rights>
-               <encoding>
-                       <software>Rosegarden-4</software>
-               </encoding>
-       </identification> 
-       <part-list>
-               <score-part id="P0">
-                       <part-name></part-name>
-                       <score-instrument id="I1">
-                               <instrument-name>0</instrument-name>
-                       </score-instrument>
-                       <midi-instrument id="I1">
-                               <midi-channel>1</midi-channel>
-                               <midi-program>1</midi-program>
-                       </midi-instrument>
-               </score-part>
-               <score-part id="P1">
-                       <part-name></part-name>
-                       <score-instrument id="I2">
-                               <instrument-name>0</instrument-name>
-                       </score-instrument>
-                       <midi-instrument id="I2">
-                               <midi-channel>2</midi-channel>
-                       </midi-instrument>
-               </score-part>
-               <score-part id="P2">
-                       <part-name></part-name>
-                       <score-instrument id="I3">
-                               <instrument-name>0</instrument-name>
-                       </score-instrument>
-                       <midi-instrument id="I3">
-                               <midi-channel>3</midi-channel>
-                       </midi-instrument>
-               </score-part>
-               <score-part id="P3">
-                       <part-name></part-name>
-                       <score-instrument id="I4">
-                               <instrument-name>0</instrument-name>
-                       </score-instrument>
-                       <midi-instrument id="I4">
-                               <midi-channel>4</midi-channel>
-                       </midi-instrument>
-               </score-part>
-               <score-part id="P4">
-                       <part-name></part-name>
-                       <score-instrument id="I5">
-                               <instrument-name>0</instrument-name>
-                       </score-instrument>
-                       <midi-instrument id="I5">
-                               <midi-channel>5</midi-channel>
-                       </midi-instrument>
-               </score-part>
-               <score-part id="P5">
-                       <part-name></part-name>
-                       <score-instrument id="I6">
-                               <instrument-name>0</instrument-name>
-                       </score-instrument>
-                       <midi-instrument id="I6">
-                               <midi-channel>6</midi-channel>
-                       </midi-instrument>
-               </score-part>
-               <score-part id="P6">
-                       <part-name></part-name>
-                       <score-instrument id="I7">
-                               <instrument-name>0</instrument-name>
-                       </score-instrument>
-                       <midi-instrument id="I7">
-                               <midi-channel>7</midi-channel>
-                       </midi-instrument>
-               </score-part>
-               <score-part id="P7">
-                       <part-name></part-name>
-                       <score-instrument id="I8">
-                               <instrument-name>0</instrument-name>
-                       </score-instrument>
-                       <midi-instrument id="I8">
-                               <midi-channel>8</midi-channel>
-                       </midi-instrument>
-               </score-part>
-               <score-part id="P8">
-                       <part-name></part-name>
-                       <score-instrument id="I9">
-                               <instrument-name>0</instrument-name>
-                       </score-instrument>
-                       <midi-instrument id="I9">
-                               <midi-channel>9</midi-channel>
-                       </midi-instrument>
-               </score-part>
-               <score-part id="P9">
-                       <part-name></part-name>
-                       <score-instrument id="I10">
-                               <instrument-name>0</instrument-name>
-                       </score-instrument>
-                       <midi-instrument id="I10">
-                               <midi-channel>10</midi-channel>
-                       </midi-instrument>
-               </score-part>
-               <score-part id="P10">
-                       <part-name></part-name>
-                       <score-instrument id="I11">
-                               <instrument-name>0</instrument-name>
-                       </score-instrument>
-                       <midi-instrument id="I11">
-                               <midi-channel>11</midi-channel>
-                       </midi-instrument>
-               </score-part>
-               <score-part id="P11">
-                       <part-name></part-name>
-                       <score-instrument id="I12">
-                               <instrument-name>0</instrument-name>
-                       </score-instrument>
-                       <midi-instrument id="I12">
-                               <midi-channel>12</midi-channel>
-                       </midi-instrument>
-               </score-part>
-               <score-part id="P12">
-                       <part-name></part-name>
-                       <score-instrument id="I13">
-                               <instrument-name>0</instrument-name>
-                       </score-instrument>
-                       <midi-instrument id="I13">
-                               <midi-channel>13</midi-channel>
-                       </midi-instrument>
-               </score-part>
-               <score-part id="P13">
-                       <part-name></part-name>
-                       <score-instrument id="I14">
-                               <instrument-name>0</instrument-name>
-                       </score-instrument>
-                       <midi-instrument id="I14">
-                               <midi-channel>14</midi-channel>
-                       </midi-instrument>
-               </score-part>
-               <score-part id="P14">
-                       <part-name></part-name>
-                       <score-instrument id="I15">
-                               <instrument-name>0</instrument-name>
-                       </score-instrument>
-                       <midi-instrument id="I15">
-                               <midi-channel>15</midi-channel>
-                       </midi-instrument>
-               </score-part>
-               <score-part id="P15">
-                       <part-name></part-name>
-                       <score-instrument id="I16">
-                               <instrument-name>0</instrument-name>
-                       </score-instrument>
-                       <midi-instrument id="I16">
-                               <midi-channel>16</midi-channel>
-                       </midi-instrument>
-               </score-part>
-               <score-part id="P16">
-                       <part-name></part-name>
-               </score-part>
-               <score-part id="P17">
-                       <part-name></part-name>
-               </score-part>
-               <score-part id="P18">
-                       <part-name></part-name>
-               </score-part>
-               <score-part id="P19">
-                       <part-name></part-name>
-               </score-part>
-       </part-list>
-       <part id="P0">
-               <measure number="1">
-                       <attributes>
-                               <divisions>960</divisions>
-                               <time>
-                               <beats>4</beats>
-                               <beat-type>4</beat-type>
-                               </time>
-                               <clef>
-                               <sign>G</sign>
-                               <line>2</line>
-                               </clef>
-                       </attributes>
-                       <note>
-                               <rest/>
-                               <duration>3840</duration>
-                               <voice>1</voice>
-                               <type>whole</type>
-                       </note>
-               </measure>
-       </part>
-       <part id="P1">
-               <measure number="1">
-                       <attributes>
-                               <divisions>960</divisions>
-                               <time>
-                               <beats>4</beats>
-                               <beat-type>4</beat-type>
-                               </time>
-                               <clef>
-                               <sign>G</sign>
-                               <line>2</line>
-                               </clef>
-                       </attributes>
-                       <note>
-                               <rest/>
-                               <duration>3840</duration>
-                               <voice>1</voice>
-                               <type>whole</type>
-                       </note>
-               </measure>
-       </part>
-       <part id="P2">
-               <measure number="1">
-                       <attributes>
-                               <divisions>960</divisions>
-                               <time>
-                               <beats>4</beats>
-                               <beat-type>4</beat-type>
-                               </time>
-                               <clef>
-                               <sign>G</sign>
-                               <line>2</line>
-                               </clef>
-                       </attributes>
-                       <note>
-                               <rest/>
-                               <duration>3840</duration>
-                               <voice>1</voice>
-                               <type>whole</type>
-                       </note>
-               </measure>
-       </part>
-       <part id="P3">
-               <measure number="1">
-                       <attributes>
-                               <divisions>960</divisions>
-                               <time>
-                               <beats>4</beats>
-                               <beat-type>4</beat-type>
-                               </time>
-                               <clef>
-                               <sign>G</sign>
-                               <line>2</line>
-                               </clef>
-                       </attributes>
-                       <note>
-                               <rest/>
-                               <duration>3840</duration>
-                               <voice>1</voice>
-                               <type>whole</type>
-                       </note>
-               </measure>
-       </part>
-       <part id="P4">
-               <measure number="1">
-                       <attributes>
-                               <divisions>960</divisions>
-                               <time>
-                               <beats>4</beats>
-                               <beat-type>4</beat-type>
-                               </time>
-                               <clef>
-                               <sign>G</sign>
-                               <line>2</line>
-                               </clef>
-                       </attributes>
-                       <note>
-                               <rest/>
-                               <duration>3840</duration>
-                               <voice>1</voice>
-                               <type>whole</type>
-                       </note>
-               </measure>
-       </part>
-       <part id="P5">
-               <measure number="1">
-                       <attributes>
-                               <divisions>960</divisions>
-                               <time>
-                               <beats>4</beats>
-                               <beat-type>4</beat-type>
-                               </time>
-                               <clef>
-                               <sign>G</sign>
-                               <line>2</line>
-                               </clef>
-                       </attributes>
-                       <note>
-                               <rest/>
-                               <duration>3840</duration>
-                               <voice>1</voice>
-                               <type>whole</type>
-                       </note>
-               </measure>
-       </part>
-       <part id="P6">
-               <measure number="1">
-                       <attributes>
-                               <divisions>960</divisions>
-                               <time>
-                               <beats>4</beats>
-                               <beat-type>4</beat-type>
-                               </time>
-                               <clef>
-                               <sign>G</sign>
-                               <line>2</line>
-                               </clef>
-                       </attributes>
-                       <note>
-                               <rest/>
-                               <duration>3840</duration>
-                               <voice>1</voice>
-                               <type>whole</type>
-                       </note>
-               </measure>
-       </part>
-       <part id="P7">
-               <measure number="1">
-                       <attributes>
-                               <divisions>960</divisions>
-                               <time>
-                               <beats>4</beats>
-                               <beat-type>4</beat-type>
-                               </time>
-                               <clef>
-                               <sign>G</sign>
-                               <line>2</line>
-                               </clef>
-                       </attributes>
-                       <note>
-                               <rest/>
-                               <duration>3840</duration>
-                               <voice>1</voice>
-                               <type>whole</type>
-                       </note>
-               </measure>
-       </part>
-       <part id="P8">
-               <measure number="1">
-                       <attributes>
-                               <divisions>960</divisions>
-                               <time>
-                               <beats>4</beats>
-                               <beat-type>4</beat-type>
-                               </time>
-                               <clef>
-                               <sign>G</sign>
-                               <line>2</line>
-                               </clef>
-                       </attributes>
-                       <note>
-                               <rest/>
-                               <duration>3840</duration>
-                               <voice>1</voice>
-                               <type>whole</type>
-                       </note>
-               </measure>
-       </part>
-       <part id="P9">
-               <measure number="1">
-                       <attributes>
-                               <divisions>960</divisions>
-                               <time>
-                               <beats>4</beats>
-                               <beat-type>4</beat-type>
-                               </time>
-                               <clef>
-                               <sign>G</sign>
-                               <line>2</line>
-                               </clef>
-                       </attributes>
-                       <note>
-                               <rest/>
-                               <duration>3840</duration>
-                               <voice>1</voice>
-                               <type>whole</type>
-                       </note>
-               </measure>
-       </part>
-       <part id="P10">
-               <measure number="1">
-                       <attributes>
-                               <divisions>960</divisions>
-                               <time>
-                               <beats>4</beats>
-                               <beat-type>4</beat-type>
-                               </time>
-                               <clef>
-                               <sign>G</sign>
-                               <line>2</line>
-                               </clef>
-                       </attributes>
-                       <note>
-                               <rest/>
-                               <duration>3840</duration>
-                               <voice>1</voice>
-                               <type>whole</type>
-                       </note>
-               </measure>
-       </part>
-       <part id="P11">
-               <measure number="1">
-                       <attributes>
-                               <divisions>960</divisions>
-                               <time>
-                               <beats>4</beats>
-                               <beat-type>4</beat-type>
-                               </time>
-                               <clef>
-                               <sign>G</sign>
-                               <line>2</line>
-                               </clef>
-                       </attributes>
-                       <note>
-                               <rest/>
-                               <duration>3840</duration>
-                               <voice>1</voice>
-                               <type>whole</type>
-                       </note>
-               </measure>
-       </part>
-       <part id="P12">
-               <measure number="1">
-                       <attributes>
-                               <divisions>960</divisions>
-                               <time>
-                               <beats>4</beats>
-                               <beat-type>4</beat-type>
-                               </time>
-                               <clef>
-                               <sign>G</sign>
-                               <line>2</line>
-                               </clef>
-                       </attributes>
-                       <note>
-                               <rest/>
-                               <duration>3840</duration>
-                               <voice>1</voice>
-                               <type>whole</type>
-                       </note>
-               </measure>
-       </part>
-       <part id="P13">
-               <measure number="1">
-                       <attributes>
-                               <divisions>960</divisions>
-                               <time>
-                               <beats>4</beats>
-                               <beat-type>4</beat-type>
-                               </time>
-                               <clef>
-                               <sign>G</sign>
-                               <line>2</line>
-                               </clef>
-                       </attributes>
-                       <note>
-                               <rest/>
-                               <duration>3840</duration>
-                               <voice>1</voice>
-                               <type>whole</type>
-                       </note>
-               </measure>
-       </part>
-       <part id="P14">
-               <measure number="1">
-                       <attributes>
-                               <divisions>960</divisions>
-                               <time>
-                               <beats>4</beats>
-                               <beat-type>4</beat-type>
-                               </time>
-                               <clef>
-                               <sign>G</sign>
-                               <line>2</line>
-                               </clef>
-                       </attributes>
-                       <note>
-                               <rest/>
-                               <duration>3840</duration>
-                               <voice>1</voice>
-                               <type>whole</type>
-                       </note>
-               </measure>
-       </part>
-       <part id="P15">
-               <measure number="1">
-                       <attributes>
-                               <divisions>960</divisions>
-                               <time>
-                               <beats>4</beats>
-                               <beat-type>4</beat-type>
-                               </time>
-                               <clef>
-                               <sign>G</sign>
-                               <line>2</line>
-                               </clef>
-                       </attributes>
-                       <note>
-                               <rest/>
-                               <duration>3840</duration>
-                               <voice>1</voice>
-                               <type>whole</type>
-                       </note>
-               </measure>
-       </part>
-       <part id="P16">
-               <measure number="1">
-                       <attributes>
-                               <divisions>960</divisions>
-                               <time>
-                               <beats>4</beats>
-                               <beat-type>4</beat-type>
-                               </time>
-                               <clef>
-                               <sign>G</sign>
-                               <line>2</line>
-                               </clef>
-                       </attributes>
-                       <note>
-                               <rest/>
-                               <duration>3840</duration>
-                               <voice>1</voice>
-                               <type>whole</type>
-                       </note>
-               </measure>
-       </part>
-       <part id="P17">
-               <measure number="1">
-                       <attributes>
-                               <divisions>960</divisions>
-                               <time>
-                               <beats>4</beats>
-                               <beat-type>4</beat-type>
-                               </time>
-                               <clef>
-                               <sign>G</sign>
-                               <line>2</line>
-                               </clef>
-                       </attributes>
-                       <note>
-                               <rest/>
-                               <duration>3840</duration>
-                               <voice>1</voice>
-                               <type>whole</type>
-                       </note>
-               </measure>
-       </part>
-       <part id="P18">
-               <measure number="1">
-                       <attributes>
-                               <divisions>960</divisions>
-                               <time>
-                               <beats>4</beats>
-                               <beat-type>4</beat-type>
-                               </time>
-                               <clef>
-                               <sign>G</sign>
-                               <line>2</line>
-                               </clef>
-                       </attributes>
-                       <note>
-                               <rest/>
-                               <duration>3840</duration>
-                               <voice>1</voice>
-                               <type>whole</type>
-                       </note>
-               </measure>
-       </part>
-       <part id="P19">
-               <measure number="1">
-                       <attributes>
-                               <divisions>960</divisions>
-                               <time>
-                               <beats>4</beats>
-                               <beat-type>4</beat-type>
-                               </time>
-                               <clef>
-                               <sign>G</sign>
-                               <line>2</line>
-                               </clef>
-                       </attributes>
-                       <note>
-                               <rest/>
-                               <duration>3840</duration>
-                               <voice>1</voice>
-                               <type>whole</type>
-                       </note>
-               </measure>
-       </part>
-</score-partwise>
diff --git a/input/regression/musicxml/08d-NestedPartsBrackets-Finale.xml b/input/regression/musicxml/08d-NestedPartsBrackets-Finale.xml
deleted file mode 100644 (file)
index f919e2c..0000000
+++ /dev/null
@@ -1,343 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
-                                "http://www.musicxml.org/dtds/partwise.dtd">
-<score-partwise>
-  <movement-title>Part test</movement-title>
-  <identification>
-    <creator type="composer">Reinhold Kainhofer</creator>
-    <rights>Public Domain</rights>
-    <encoding>
-      <software>Finale 2007 for Windows</software>
-      <software>Dolet Light for Finale 2007</software>
-      <encoding-date>2007-09-18</encoding-date>
-    </encoding>
-  </identification>
-  <part-list>
-    <score-part id="P1">
-      <part-name>MusicXML Part</part-name>
-      <score-instrument id="P1-I1">
-        <instrument-name>Grand Piano</instrument-name>
-      </score-instrument>
-      <midi-instrument id="P1-I1">
-        <midi-channel>1</midi-channel>
-        <midi-program>1</midi-program>
-      </midi-instrument>
-    </score-part>
-    <part-group number="1" type="start">
-      <group-symbol>line</group-symbol>
-      <group-barline>yes</group-barline>
-    </part-group>
-    <score-part id="P2">
-      <part-name>MusicXML Part</part-name>
-      <score-instrument id="P2-I1">
-        <instrument-name>Grand Piano</instrument-name>
-      </score-instrument>
-      <midi-instrument id="P2-I1">
-        <midi-channel>1</midi-channel>
-        <midi-program>1</midi-program>
-      </midi-instrument>
-    </score-part>
-    <part-group number="2" type="start">
-      <group-symbol>bracket</group-symbol>
-      <group-barline>yes</group-barline>
-    </part-group>
-    <score-part id="P3">
-      <part-name>MusicXML Part</part-name>
-      <score-instrument id="P3-I1">
-        <instrument-name>Grand Piano</instrument-name>
-      </score-instrument>
-      <midi-instrument id="P3-I1">
-        <midi-channel>1</midi-channel>
-        <midi-program>1</midi-program>
-      </midi-instrument>
-    </score-part>
-    <score-part id="P4">
-      <part-name>MusicXML Part</part-name>
-      <score-instrument id="P4-I1">
-        <instrument-name>Grand Piano</instrument-name>
-      </score-instrument>
-      <midi-instrument id="P4-I1">
-        <midi-channel>1</midi-channel>
-        <midi-program>1</midi-program>
-      </midi-instrument>
-    </score-part>
-    <part-group number="2" type="stop"/>
-    <part-group number="1" type="stop"/>
-    <score-part id="P5">
-      <part-name>MusicXML Part</part-name>
-      <score-instrument id="P5-I1">
-        <instrument-name>Grand Piano</instrument-name>
-      </score-instrument>
-      <midi-instrument id="P5-I1">
-        <midi-channel>1</midi-channel>
-        <midi-program>1</midi-program>
-      </midi-instrument>
-    </score-part>
-  </part-list>
-  <!--=========================================================-->
-  <part id="P1">
-    <measure number="1">
-      <attributes>
-        <divisions>1</divisions>
-        <key>
-          <fifths>0</fifths>
-          <mode>major</mode>
-        </key>
-        <time symbol="common">
-          <beats>4</beats>
-          <beat-type>4</beat-type>
-        </time>
-        <clef>
-          <sign>G</sign>
-          <line>2</line>
-        </clef>
-      </attributes>
-      <sound tempo="120"/>
-      <note>
-        <pitch>
-          <step>B</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>4</duration>
-        <voice>1</voice>
-        <type>whole</type>
-      </note>
-    </measure>
-    <!--=======================================================-->
-    <measure number="2">
-      <note>
-        <pitch>
-          <step>A</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>4</duration>
-        <voice>1</voice>
-        <type>whole</type>
-      </note>
-    </measure>
-    <!--=======================================================-->
-    <measure number="3">
-      <note>
-        <rest/>
-        <duration>4</duration>
-        <voice>1</voice>
-      </note>
-      <barline location="right">
-        <bar-style>light-heavy</bar-style>
-      </barline>
-    </measure>
-  </part>
-  <!--=========================================================-->
-  <part id="P2">
-    <measure number="1">
-      <attributes>
-        <divisions>1</divisions>
-        <key>
-          <fifths>0</fifths>
-          <mode>major</mode>
-        </key>
-        <time symbol="common">
-          <beats>4</beats>
-          <beat-type>4</beat-type>
-        </time>
-        <clef>
-          <sign>G</sign>
-          <line>2</line>
-        </clef>
-      </attributes>
-      <sound tempo="120"/>
-      <note>
-        <pitch>
-          <step>A</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>4</duration>
-        <voice>1</voice>
-        <type>whole</type>
-      </note>
-    </measure>
-    <!--=======================================================-->
-    <measure number="2">
-      <note>
-        <pitch>
-          <step>A</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>4</duration>
-        <voice>1</voice>
-        <type>whole</type>
-      </note>
-    </measure>
-    <!--=======================================================-->
-    <measure number="3">
-      <note>
-        <rest/>
-        <duration>4</duration>
-        <voice>1</voice>
-      </note>
-      <barline location="right">
-        <bar-style>light-heavy</bar-style>
-      </barline>
-    </measure>
-  </part>
-  <!--=========================================================-->
-  <part id="P3">
-    <measure number="1">
-      <attributes>
-        <divisions>1</divisions>
-        <key>
-          <fifths>0</fifths>
-          <mode>major</mode>
-        </key>
-        <time symbol="common">
-          <beats>4</beats>
-          <beat-type>4</beat-type>
-        </time>
-        <clef>
-          <sign>G</sign>
-          <line>2</line>
-        </clef>
-      </attributes>
-      <sound tempo="120"/>
-      <note>
-        <pitch>
-          <step>A</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>4</duration>
-        <voice>1</voice>
-        <type>whole</type>
-      </note>
-    </measure>
-    <!--=======================================================-->
-    <measure number="2">
-      <note>
-        <pitch>
-          <step>A</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>4</duration>
-        <voice>1</voice>
-        <type>whole</type>
-      </note>
-    </measure>
-    <!--=======================================================-->
-    <measure number="3">
-      <note>
-        <rest/>
-        <duration>4</duration>
-        <voice>1</voice>
-      </note>
-      <barline location="right">
-        <bar-style>light-heavy</bar-style>
-      </barline>
-    </measure>
-  </part>
-  <!--=========================================================-->
-  <part id="P4">
-    <measure number="1">
-      <attributes>
-        <divisions>1</divisions>
-        <key>
-          <fifths>0</fifths>
-          <mode>major</mode>
-        </key>
-        <time symbol="common">
-          <beats>4</beats>
-          <beat-type>4</beat-type>
-        </time>
-        <clef>
-          <sign>G</sign>
-          <line>2</line>
-        </clef>
-      </attributes>
-      <sound tempo="120"/>
-      <note>
-        <pitch>
-          <step>F</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>4</duration>
-        <voice>1</voice>
-        <type>whole</type>
-      </note>
-    </measure>
-    <!--=======================================================-->
-    <measure number="2">
-      <note>
-        <pitch>
-          <step>B</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>4</duration>
-        <voice>1</voice>
-        <type>whole</type>
-      </note>
-    </measure>
-    <!--=======================================================-->
-    <measure number="3">
-      <note>
-        <rest/>
-        <duration>4</duration>
-        <voice>1</voice>
-      </note>
-      <barline location="right">
-        <bar-style>light-heavy</bar-style>
-      </barline>
-    </measure>
-  </part>
-  <!--=========================================================-->
-  <part id="P5">
-    <measure number="1">
-      <attributes>
-        <divisions>1</divisions>
-        <key>
-          <fifths>0</fifths>
-          <mode>major</mode>
-        </key>
-        <time symbol="common">
-          <beats>4</beats>
-          <beat-type>4</beat-type>
-        </time>
-        <clef>
-          <sign>G</sign>
-          <line>2</line>
-        </clef>
-      </attributes>
-      <sound tempo="120"/>
-      <note>
-        <pitch>
-          <step>D</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>4</duration>
-        <voice>1</voice>
-        <type>whole</type>
-      </note>
-    </measure>
-    <!--=======================================================-->
-    <measure number="2">
-      <note>
-        <pitch>
-          <step>F</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>4</duration>
-        <voice>1</voice>
-        <type>whole</type>
-      </note>
-    </measure>
-    <!--=======================================================-->
-    <measure number="3">
-      <note>
-        <rest/>
-        <duration>4</duration>
-        <voice>1</voice>
-      </note>
-      <barline location="right">
-        <bar-style>light-heavy</bar-style>
-      </barline>
-    </measure>
-  </part>
-  <!--=========================================================-->
-</score-partwise>
diff --git a/input/regression/musicxml/08e-LinebrokenInstrumentNames-Finale.xml b/input/regression/musicxml/08e-LinebrokenInstrumentNames-Finale.xml
deleted file mode 100644 (file)
index 1b1948f..0000000
+++ /dev/null
@@ -1,327 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
-                                "http://www.musicxml.org/dtds/partwise.dtd">
-<score-partwise>
-  <movement-title>Score with multi-line instrument names</movement-title>
-  <identification>
-    <creator type="composer">Reinhold Kainhofer</creator>
-    <rights>Public Domain</rights>
-    <encoding>
-      <software>Finale 2007 for Windows</software>
-      <software>Dolet Light for Finale 2007</software>
-      <encoding-date>2007-09-23</encoding-date>
-    </encoding>
-  </identification>
-  <part-list>
-    <score-part id="P1">
-      <part-name>Long&#xd;
-Staff&#xd;
-Name</part-name>
-      <part-abbreviation>St.&#xd;
-Nm.</part-abbreviation>
-      <score-instrument id="P1-I1">
-        <instrument-name>Grand Piano</instrument-name>
-      </score-instrument>
-      <midi-instrument id="P1-I1">
-        <midi-channel>1</midi-channel>
-        <midi-program>1</midi-program>
-      </midi-instrument>
-    </score-part>
-  </part-list>
-  <!--=========================================================-->
-  <part id="P1">
-    <measure number="1">
-      <attributes>
-        <divisions>1</divisions>
-        <key>
-          <fifths>0</fifths>
-          <mode>major</mode>
-        </key>
-        <time symbol="common">
-          <beats>4</beats>
-          <beat-type>4</beat-type>
-        </time>
-        <clef>
-          <sign>G</sign>
-          <line>2</line>
-        </clef>
-      </attributes>
-      <sound tempo="120"/>
-      <note>
-        <pitch>
-          <step>B</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>4</duration>
-        <voice>1</voice>
-        <type>whole</type>
-      </note>
-    </measure>
-    <!--=======================================================-->
-    <measure number="2">
-      <note>
-        <pitch>
-          <step>B</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>4</duration>
-        <voice>1</voice>
-        <type>whole</type>
-      </note>
-    </measure>
-    <!--=======================================================-->
-    <measure number="3">
-      <note>
-        <pitch>
-          <step>B</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>4</duration>
-        <voice>1</voice>
-        <type>whole</type>
-      </note>
-    </measure>
-    <!--=======================================================-->
-    <measure number="4">
-      <note>
-        <pitch>
-          <step>B</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>4</duration>
-        <voice>1</voice>
-        <type>whole</type>
-      </note>
-    </measure>
-    <!--=======================================================-->
-    <measure number="5">
-      <note>
-        <pitch>
-          <step>B</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>4</duration>
-        <voice>1</voice>
-        <type>whole</type>
-      </note>
-    </measure>
-    <!--=======================================================-->
-    <measure number="6">
-      <print new-system="yes"/>
-      <note>
-        <pitch>
-          <step>B</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>4</duration>
-        <voice>1</voice>
-        <type>whole</type>
-      </note>
-    </measure>
-    <!--=======================================================-->
-    <measure number="7">
-      <note>
-        <pitch>
-          <step>B</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>4</duration>
-        <voice>1</voice>
-        <type>whole</type>
-      </note>
-    </measure>
-    <!--=======================================================-->
-    <measure number="8">
-      <note>
-        <pitch>
-          <step>B</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>4</duration>
-        <voice>1</voice>
-        <type>whole</type>
-      </note>
-    </measure>
-    <!--=======================================================-->
-    <measure number="9">
-      <note>
-        <pitch>
-          <step>B</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>4</duration>
-        <voice>1</voice>
-        <type>whole</type>
-      </note>
-    </measure>
-    <!--=======================================================-->
-    <measure number="10">
-      <note>
-        <pitch>
-          <step>B</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>4</duration>
-        <voice>1</voice>
-        <type>whole</type>
-      </note>
-    </measure>
-    <!--=======================================================-->
-    <measure number="11">
-      <note>
-        <pitch>
-          <step>B</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>4</duration>
-        <voice>1</voice>
-        <type>whole</type>
-      </note>
-    </measure>
-    <!--=======================================================-->
-    <measure number="12">
-      <note>
-        <pitch>
-          <step>B</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>4</duration>
-        <voice>1</voice>
-        <type>whole</type>
-      </note>
-    </measure>
-    <!--=======================================================-->
-    <measure number="13">
-      <note>
-        <pitch>
-          <step>B</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>4</duration>
-        <voice>1</voice>
-        <type>whole</type>
-      </note>
-    </measure>
-    <!--=======================================================-->
-    <measure number="14">
-      <note>
-        <pitch>
-          <step>B</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>4</duration>
-        <voice>1</voice>
-        <type>whole</type>
-      </note>
-    </measure>
-    <!--=======================================================-->
-    <measure number="15">
-      <print new-system="yes"/>
-      <note>
-        <pitch>
-          <step>B</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>4</duration>
-        <voice>1</voice>
-        <type>whole</type>
-      </note>
-    </measure>
-    <!--=======================================================-->
-    <measure number="16">
-      <note>
-        <pitch>
-          <step>B</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>4</duration>
-        <voice>1</voice>
-        <type>whole</type>
-      </note>
-    </measure>
-    <!--=======================================================-->
-    <measure number="17">
-      <note>
-        <pitch>
-          <step>B</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>4</duration>
-        <voice>1</voice>
-        <type>whole</type>
-      </note>
-    </measure>
-    <!--=======================================================-->
-    <measure number="18">
-      <note>
-        <pitch>
-          <step>B</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>4</duration>
-        <voice>1</voice>
-        <type>whole</type>
-      </note>
-    </measure>
-    <!--=======================================================-->
-    <measure number="19">
-      <note>
-        <pitch>
-          <step>B</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>4</duration>
-        <voice>1</voice>
-        <type>whole</type>
-      </note>
-    </measure>
-    <!--=======================================================-->
-    <measure number="20">
-      <note>
-        <pitch>
-          <step>B</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>4</duration>
-        <voice>1</voice>
-        <type>whole</type>
-      </note>
-    </measure>
-    <!--=======================================================-->
-    <measure number="21">
-      <note>
-        <pitch>
-          <step>B</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>4</duration>
-        <voice>1</voice>
-        <type>whole</type>
-      </note>
-    </measure>
-    <!--=======================================================-->
-    <measure number="22">
-      <note>
-        <pitch>
-          <step>B</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>4</duration>
-        <voice>1</voice>
-        <type>whole</type>
-      </note>
-    </measure>
-    <!--=======================================================-->
-    <measure number="23">
-      <note>
-        <rest/>
-        <duration>4</duration>
-        <voice>1</voice>
-      </note>
-      <barline location="right">
-        <bar-style>light-heavy</bar-style>
-      </barline>
-    </measure>
-  </part>
-  <!--=========================================================-->
-</score-partwise>
diff --git a/input/regression/musicxml/08f-PianoStaff-PJB.xml b/input/regression/musicxml/08f-PianoStaff-PJB.xml
deleted file mode 100644 (file)
index ad4023a..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 0.6b Partwise//EN"
- "http://www.musicxml.org/dtds/partwise.dtd">
-<score-partwise>
-       <identification>
-               <encoding>
-                       <software>/usr/bin/vi</software>
-                       <encoding-date>2007-01-22</encoding-date>
-               </encoding>
-       </identification>
-       <part-list>
-               <score-part id="P1">
-                       <part-name>MIDI Track 1</part-name>
-               </score-part>
-       </part-list>
-       <part id="P1">
-               <measure number="1">
-                       <attributes>
-                               <divisions>96</divisions>
-                               <key><fifths>0</fifths></key>
-                               <time><beats>4</beats><beat-type>4</beat-type></time>
-                               <staves>2</staves>
-                               <clef number="1"><sign>G</sign><line>2</line></clef>
-                               <clef number="2"><sign>F</sign><line>4</line></clef>
-                       </attributes>
-                       <note>
-                               <pitch><step>F</step><octave>4</octave></pitch>
-                               <duration>384</duration>
-                               <voice>1</voice>
-                               <type>whole</type>
-                               <staff>1</staff>
-                       </note>
-                       <backup><duration>384</duration></backup>
-                       <note>
-                               <pitch><step>B</step><octave>2</octave></pitch>
-                               <duration>384</duration>
-                               <voice>2</voice>
-                               <type>whole</type>
-                               <staff>2</staff>
-                       </note>
-               </measure>
-       </part>
-</score-partwise>
diff --git a/input/regression/musicxml/08g-OverlappingPartGroups-Finale.xml b/input/regression/musicxml/08g-OverlappingPartGroups-Finale.xml
deleted file mode 100644 (file)
index fd2ca4b..0000000
+++ /dev/null
@@ -1,227 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>\r
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"\r
-                                "http://www.musicxml.org/dtds/partwise.dtd">\r
-<score-partwise>\r
-  <movement-title>Overlapping part groups</movement-title>\r
-  <identification>\r
-    <creator type="composer">In MusicXML groups can overlap (Grp1: #1-4, Grp2: #3-5)</creator>\r
-    <creator type="arranger">In Lilypond, overlaps are not possible: Grp2 ends at #4</creator>\r
-    <encoding>\r
-      <software>Finale 2007 for Windows</software>\r
-      <software>Dolet Light for Finale 2007</software>\r
-      <encoding-date>2007-10-28</encoding-date>\r
-    </encoding>\r
-  </identification>\r
-  <part-list>\r
-    <part-group number="1" type="start">\r
-      <group-name>Group 1</group-name>\r
-      <group-abbreviation>Gr1</group-abbreviation>\r
-      <group-symbol>bracket</group-symbol>\r
-      <group-barline>yes</group-barline>\r
-    </part-group>\r
-    <score-part id="P1">\r
-      <part-name>MusicXML Part</part-name>\r
-      <score-instrument id="P1-I1">\r
-        <instrument-name>Grand Piano</instrument-name>\r
-      </score-instrument>\r
-      <midi-instrument id="P1-I1">\r
-        <midi-channel>1</midi-channel>\r
-        <midi-program>1</midi-program>\r
-      </midi-instrument>\r
-    </score-part>\r
-    <score-part id="P2">\r
-      <part-name>MusicXML Part</part-name>\r
-      <score-instrument id="P2-I1">\r
-        <instrument-name>Grand Piano</instrument-name>\r
-      </score-instrument>\r
-      <midi-instrument id="P2-I1">\r
-        <midi-channel>1</midi-channel>\r
-        <midi-program>1</midi-program>\r
-      </midi-instrument>\r
-    </score-part>\r
-    <part-group number="2" type="start">\r
-      <group-name>Group 2</group-name>\r
-      <group-abbreviation>Grp2</group-abbreviation>\r
-      <group-symbol>bracket</group-symbol>\r
-      <group-barline>yes</group-barline>\r
-    </part-group>\r
-    <score-part id="P3">\r
-      <part-name>MusicXML Part</part-name>\r
-      <score-instrument id="P3-I1">\r
-        <instrument-name>Grand Piano</instrument-name>\r
-      </score-instrument>\r
-      <midi-instrument id="P3-I1">\r
-        <midi-channel>1</midi-channel>\r
-        <midi-program>1</midi-program>\r
-      </midi-instrument>\r
-    </score-part>\r
-    <score-part id="P4">\r
-      <part-name>MusicXML Part</part-name>\r
-      <score-instrument id="P4-I1">\r
-        <instrument-name>Grand Piano</instrument-name>\r
-      </score-instrument>\r
-      <midi-instrument id="P4-I1">\r
-        <midi-channel>1</midi-channel>\r
-        <midi-program>1</midi-program>\r
-      </midi-instrument>\r
-    </score-part>\r
-    <part-group number="1" type="stop"/>\r
-    <score-part id="P5">\r
-      <part-name>MusicXML Part</part-name>\r
-      <score-instrument id="P5-I1">\r
-        <instrument-name>Grand Piano</instrument-name>\r
-      </score-instrument>\r
-      <midi-instrument id="P5-I1">\r
-        <midi-channel>1</midi-channel>\r
-        <midi-program>1</midi-program>\r
-      </midi-instrument>\r
-    </score-part>\r
-    <part-group number="2" type="stop"/>\r
-  </part-list>\r
-  <!--=========================================================-->\r
-  <part id="P1">\r
-    <measure number="1">\r
-      <attributes>\r
-        <divisions>1</divisions>\r
-        <key>\r
-          <fifths>0</fifths>\r
-          <mode>major</mode>\r
-        </key>\r
-        <time symbol="common">\r
-          <beats>4</beats>\r
-          <beat-type>4</beat-type>\r
-        </time>\r
-        <clef>\r
-          <sign>G</sign>\r
-          <line>2</line>\r
-        </clef>\r
-      </attributes>\r
-      <sound tempo="120"/>\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-      <barline location="right">\r
-        <bar-style>light-heavy</bar-style>\r
-      </barline>\r
-    </measure>\r
-  </part>\r
-  <!--=========================================================-->\r
-  <part id="P2">\r
-    <measure number="1">\r
-      <attributes>\r
-        <divisions>1</divisions>\r
-        <key>\r
-          <fifths>0</fifths>\r
-          <mode>major</mode>\r
-        </key>\r
-        <time symbol="common">\r
-          <beats>4</beats>\r
-          <beat-type>4</beat-type>\r
-        </time>\r
-        <clef>\r
-          <sign>G</sign>\r
-          <line>2</line>\r
-        </clef>\r
-      </attributes>\r
-      <sound tempo="120"/>\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-      <barline location="right">\r
-        <bar-style>light-heavy</bar-style>\r
-      </barline>\r
-    </measure>\r
-  </part>\r
-  <!--=========================================================-->\r
-  <part id="P3">\r
-    <measure number="1">\r
-      <attributes>\r
-        <divisions>1</divisions>\r
-        <key>\r
-          <fifths>0</fifths>\r
-          <mode>major</mode>\r
-        </key>\r
-        <time symbol="common">\r
-          <beats>4</beats>\r
-          <beat-type>4</beat-type>\r
-        </time>\r
-        <clef>\r
-          <sign>G</sign>\r
-          <line>2</line>\r
-        </clef>\r
-      </attributes>\r
-      <sound tempo="120"/>\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-      <barline location="right">\r
-        <bar-style>light-heavy</bar-style>\r
-      </barline>\r
-    </measure>\r
-  </part>\r
-  <!--=========================================================-->\r
-  <part id="P4">\r
-    <measure number="1">\r
-      <attributes>\r
-        <divisions>1</divisions>\r
-        <key>\r
-          <fifths>0</fifths>\r
-          <mode>major</mode>\r
-        </key>\r
-        <time symbol="common">\r
-          <beats>4</beats>\r
-          <beat-type>4</beat-type>\r
-        </time>\r
-        <clef>\r
-          <sign>G</sign>\r
-          <line>2</line>\r
-        </clef>\r
-      </attributes>\r
-      <sound tempo="120"/>\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-      <barline location="right">\r
-        <bar-style>light-heavy</bar-style>\r
-      </barline>\r
-    </measure>\r
-  </part>\r
-  <!--=========================================================-->\r
-  <part id="P5">\r
-    <measure number="1">\r
-      <attributes>\r
-        <divisions>1</divisions>\r
-        <key>\r
-          <fifths>0</fifths>\r
-          <mode>major</mode>\r
-        </key>\r
-        <time symbol="common">\r
-          <beats>4</beats>\r
-          <beat-type>4</beat-type>\r
-        </time>\r
-        <clef>\r
-          <sign>G</sign>\r
-          <line>2</line>\r
-        </clef>\r
-      </attributes>\r
-      <sound tempo="120"/>\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-      <barline location="right">\r
-        <bar-style>light-heavy</bar-style>\r
-      </barline>\r
-    </measure>\r
-  </part>\r
-  <!--=========================================================-->\r
-</score-partwise>\r
diff --git a/input/regression/musicxml/09a-SimpleRepeat-Finale.xml b/input/regression/musicxml/09a-SimpleRepeat-Finale.xml
deleted file mode 100644 (file)
index cf34f14..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>\r
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"\r
-                                "http://www.musicxml.org/dtds/partwise.dtd">\r
-<score-partwise>\r
-  <identification>\r
-    <encoding>\r
-      <software>Finale 2007 for Windows</software>\r
-      <software>Dolet Light for Finale 2007</software>\r
-      <encoding-date>2007-10-17</encoding-date>\r
-    </encoding>\r
-  </identification>\r
-  <part-list>\r
-    <score-part id="P1">\r
-      <part-name>MusicXML Part</part-name>\r
-      <score-instrument id="P1-I1">\r
-        <instrument-name>Grand Piano</instrument-name>\r
-      </score-instrument>\r
-      <midi-instrument id="P1-I1">\r
-        <midi-channel>1</midi-channel>\r
-        <midi-program>1</midi-program>\r
-      </midi-instrument>\r
-    </score-part>\r
-  </part-list>\r
-  <!--=========================================================-->\r
-  <part id="P1">\r
-    <measure number="1">\r
-      <attributes>\r
-        <divisions>1</divisions>\r
-        <key>\r
-          <fifths>0</fifths>\r
-          <mode>major</mode>\r
-        </key>\r
-        <time symbol="common">\r
-          <beats>4</beats>\r
-          <beat-type>4</beat-type>\r
-        </time>\r
-        <clef>\r
-          <sign>G</sign>\r
-          <line>2</line>\r
-        </clef>\r
-      </attributes>\r
-      <sound tempo="120"/>\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-      <barline location="right">\r
-        <bar-style>light-heavy</bar-style>\r
-        <repeat direction="backward" times="5"/>\r
-      </barline>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="2">\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-      <barline location="right">\r
-        <bar-style>light-heavy</bar-style>\r
-      </barline>\r
-    </measure>\r
-  </part>\r
-  <!--=========================================================-->\r
-</score-partwise>\r
diff --git a/input/regression/musicxml/09b-RepeatWithAlternatives-Finale.xml b/input/regression/musicxml/09b-RepeatWithAlternatives-Finale.xml
deleted file mode 100644 (file)
index 23b0212..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>\r
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"\r
-                                "http://www.musicxml.org/dtds/partwise.dtd">\r
-<score-partwise>\r
-  <identification>\r
-    <encoding>\r
-      <software>Finale 2007 for Windows</software>\r
-      <software>Dolet Light for Finale 2007</software>\r
-      <encoding-date>2007-10-17</encoding-date>\r
-    </encoding>\r
-  </identification>\r
-  <part-list>\r
-    <score-part id="P1">\r
-      <part-name>MusicXML Part</part-name>\r
-      <score-instrument id="P1-I1">\r
-        <instrument-name>Grand Piano</instrument-name>\r
-      </score-instrument>\r
-      <midi-instrument id="P1-I1">\r
-        <midi-channel>1</midi-channel>\r
-        <midi-program>1</midi-program>\r
-      </midi-instrument>\r
-    </score-part>\r
-  </part-list>\r
-  <!--=========================================================-->\r
-  <part id="P1">\r
-    <measure number="1">\r
-      <attributes>\r
-        <divisions>1</divisions>\r
-        <key>\r
-          <fifths>0</fifths>\r
-          <mode>major</mode>\r
-        </key>\r
-        <time symbol="common">\r
-          <beats>4</beats>\r
-          <beat-type>4</beat-type>\r
-        </time>\r
-        <clef>\r
-          <sign>G</sign>\r
-          <line>2</line>\r
-        </clef>\r
-      </attributes>\r
-      <sound tempo="120"/>\r
-      <note>\r
-        <pitch>\r
-          <step>C</step>\r
-          <octave>5</octave>\r
-        </pitch>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-        <type>whole</type>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="2">\r
-      <barline location="left">\r
-        <ending number="1" type="start"/>\r
-      </barline>\r
-      <note>\r
-        <pitch>\r
-          <step>C</step>\r
-          <octave>5</octave>\r
-        </pitch>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-        <type>whole</type>\r
-      </note>\r
-      <barline location="right">\r
-        <bar-style>light-heavy</bar-style>\r
-        <ending number="1" type="stop"/>\r
-        <repeat direction="backward"/>\r
-      </barline>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="3">\r
-      <barline location="left">\r
-        <ending number="2" type="start"/>\r
-      </barline>\r
-      <note>\r
-        <pitch>\r
-          <step>C</step>\r
-          <octave>5</octave>\r
-        </pitch>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-        <type>whole</type>\r
-      </note>\r
-      <barline location="right">\r
-        <ending number="2" type="discontinue"/>\r
-      </barline>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="4">\r
-      <note>\r
-        <pitch>\r
-          <step>C</step>\r
-          <octave>5</octave>\r
-        </pitch>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-        <type>whole</type>\r
-      </note>\r
-      <barline location="right">\r
-        <bar-style>light-heavy</bar-style>\r
-      </barline>\r
-    </measure>\r
-  </part>\r
-  <!--=========================================================-->\r
-</score-partwise>\r
diff --git a/input/regression/musicxml/09c-Barlines-Finale.xml b/input/regression/musicxml/09c-Barlines-Finale.xml
deleted file mode 100644 (file)
index 611760a..0000000
+++ /dev/null
@@ -1,174 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>\r
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"\r
-                                "http://www.musicxml.org/dtds/partwise.dtd">\r
-<score-partwise>\r
-  <movement-title>Barline test</movement-title>\r
-  <identification>\r
-    <creator type="composer">Reinhold Kainhofer</creator>\r
-    <rights>Public Domain</rights>\r
-    <encoding>\r
-      <software>Finale 2007 for Windows</software>\r
-      <software>Dolet Light for Finale 2007</software>\r
-      <encoding-date>2007-09-21</encoding-date>\r
-    </encoding>\r
-  </identification>\r
-  <part-list>\r
-    <score-part id="P1">\r
-      <part-name>MusicXML Part</part-name>\r
-      <score-instrument id="P1-I1">\r
-        <instrument-name>Grand Piano</instrument-name>\r
-      </score-instrument>\r
-      <midi-instrument id="P1-I1">\r
-        <midi-channel>1</midi-channel>\r
-        <midi-program>1</midi-program>\r
-      </midi-instrument>\r
-    </score-part>\r
-  </part-list>\r
-  <!--=========================================================-->\r
-  <part id="P1">\r
-    <measure number="1">\r
-      <attributes>\r
-        <divisions>1</divisions>\r
-        <key>\r
-          <fifths>0</fifths>\r
-          <mode>major</mode>\r
-        </key>\r
-        <time symbol="common">\r
-          <beats>4</beats>\r
-          <beat-type>4</beat-type>\r
-        </time>\r
-        <clef>\r
-          <sign>G</sign>\r
-          <line>2</line>\r
-        </clef>\r
-      </attributes>\r
-      <sound tempo="120"/>\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-      <barline location="right">\r
-        <bar-style>light-light</bar-style>\r
-      </barline>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="2">\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-      <barline location="right">\r
-        <bar-style>light-heavy</bar-style>\r
-      </barline>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="3">\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-      <barline location="right">\r
-        <bar-style>heavy</bar-style>\r
-      </barline>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="4">\r
-      <print new-system="yes"/>\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-      <barline location="right">\r
-        <bar-style>dashed</bar-style>\r
-      </barline>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="5">\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-      <barline location="right">\r
-        <bar-style>dotted</bar-style>\r
-      </barline>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="6">\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-      <barline location="right">\r
-        <bar-style>none</bar-style>\r
-      </barline>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="7">\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="8">\r
-      <print new-system="yes"/>\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="9">\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="10">\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="11">\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="12">\r
-      <print new-system="yes"/>\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="13">\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-      <barline location="right">\r
-        <bar-style>light-heavy</bar-style>\r
-      </barline>\r
-    </measure>\r
-  </part>\r
-  <!--=========================================================-->\r
-</score-partwise>\r
diff --git a/input/regression/musicxml/09d-RepeatMultipleTimes-Finale.xml b/input/regression/musicxml/09d-RepeatMultipleTimes-Finale.xml
deleted file mode 100644 (file)
index 6cbe6db..0000000
+++ /dev/null
@@ -1,124 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>\r
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"\r
-                                "http://www.musicxml.org/dtds/partwise.dtd">\r
-<score-partwise>\r
-  <identification>\r
-    <encoding>\r
-      <software>Finale 2007 for Windows</software>\r
-      <software>Dolet Light for Finale 2007</software>\r
-      <encoding-date>2007-10-19</encoding-date>\r
-    </encoding>\r
-  </identification>\r
-  <part-list>\r
-    <score-part id="P1">\r
-      <part-name>MusicXML Part</part-name>\r
-      <score-instrument id="P1-I1">\r
-        <instrument-name>Grand Piano</instrument-name>\r
-      </score-instrument>\r
-      <midi-instrument id="P1-I1">\r
-        <midi-channel>1</midi-channel>\r
-        <midi-program>1</midi-program>\r
-      </midi-instrument>\r
-    </score-part>\r
-  </part-list>\r
-  <!--=========================================================-->\r
-  <part id="P1">\r
-    <measure number="1">\r
-      <attributes>\r
-        <divisions>1</divisions>\r
-        <key>\r
-          <fifths>0</fifths>\r
-          <mode>major</mode>\r
-        </key>\r
-        <time symbol="common">\r
-          <beats>4</beats>\r
-          <beat-type>4</beat-type>\r
-        </time>\r
-        <clef>\r
-          <sign>G</sign>\r
-          <line>2</line>\r
-        </clef>\r
-      </attributes>\r
-      <sound tempo="120"/>\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="2">\r
-      <barline location="left">\r
-        <bar-style>heavy-light</bar-style>\r
-        <repeat direction="forward"/>\r
-      </barline>\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="3">\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-      <barline location="right">\r
-        <bar-style>light-heavy</bar-style>\r
-        <repeat direction="backward" times="5"/>\r
-      </barline>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="4">\r
-      <print new-system="yes"/>\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="5">\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="6">\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="7">\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-      <barline location="right">\r
-        <bar-style>light-heavy</bar-style>\r
-        <repeat direction="backward" times="3"/>\r
-      </barline>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="8">\r
-      <print new-system="yes"/>\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-      <barline location="right">\r
-        <bar-style>light-heavy</bar-style>\r
-      </barline>\r
-    </measure>\r
-  </part>\r
-  <!--=========================================================-->\r
-</score-partwise>\r
diff --git a/input/regression/musicxml/09e-Alternatives-Finale.xml b/input/regression/musicxml/09e-Alternatives-Finale.xml
deleted file mode 100644 (file)
index dbbb9d4..0000000
+++ /dev/null
@@ -1,180 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>\r
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"\r
-                                "http://www.musicxml.org/dtds/partwise.dtd">\r
-<score-partwise>\r
-  <movement-title>Alternatives Test</movement-title>\r
-  <identification>\r
-    <encoding>\r
-      <software>Finale 2007 for Windows</software>\r
-      <software>Dolet Light for Finale 2007</software>\r
-      <encoding-date>2007-10-15</encoding-date>\r
-    </encoding>\r
-  </identification>\r
-  <part-list>\r
-    <score-part id="P1">\r
-      <part-name>MusicXML Part</part-name>\r
-      <score-instrument id="P1-I1">\r
-        <instrument-name>Grand Piano</instrument-name>\r
-      </score-instrument>\r
-      <midi-instrument id="P1-I1">\r
-        <midi-channel>1</midi-channel>\r
-        <midi-program>1</midi-program>\r
-      </midi-instrument>\r
-    </score-part>\r
-  </part-list>\r
-  <!--=========================================================-->\r
-  <part id="P1">\r
-    <measure number="1">\r
-      <attributes>\r
-        <divisions>1</divisions>\r
-        <key>\r
-          <fifths>0</fifths>\r
-          <mode>major</mode>\r
-        </key>\r
-        <time symbol="common">\r
-          <beats>4</beats>\r
-          <beat-type>4</beat-type>\r
-        </time>\r
-        <clef>\r
-          <sign>G</sign>\r
-          <line>2</line>\r
-        </clef>\r
-      </attributes>\r
-      <sound tempo="120"/>\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="2">\r
-      <barline location="left">\r
-        <ending number="1" type="start"/>\r
-      </barline>\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-      <barline location="right">\r
-        <bar-style>light-heavy</bar-style>\r
-        <ending number="1" type="stop"/>\r
-        <repeat direction="backward"/>\r
-      </barline>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="3">\r
-      <barline location="left">\r
-        <ending number="2" type="start"/>\r
-      </barline>\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="4">\r
-      <print new-system="yes"/>\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="5">\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-      <barline location="right">\r
-        <ending number="2" type="stop"/>\r
-      </barline>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="6">\r
-      <barline location="left">\r
-        <ending number="3" type="start"/>\r
-      </barline>\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-      <barline location="right">\r
-        <ending number="3" type="discontinue"/>\r
-      </barline>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="7">\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="8">\r
-      <print new-system="yes"/>\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="9">\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="10">\r
-      <barline location="left">\r
-        <ending number="1" type="start"/>\r
-      </barline>\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-      <barline location="right">\r
-        <ending number="1" type="stop"/>\r
-      </barline>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="11">\r
-      <barline location="left">\r
-        <ending number="5" type="start"/>\r
-      </barline>\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-      <barline location="right">\r
-        <bar-style>light-heavy</bar-style>\r
-        <ending number="5" type="stop"/>\r
-        <repeat direction="backward"/>\r
-      </barline>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="12">\r
-      <print new-system="yes"/>\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-      <barline location="right">\r
-        <bar-style>light-heavy</bar-style>\r
-      </barline>\r
-    </measure>\r
-  </part>\r
-  <!--=========================================================-->\r
-</score-partwise>\r
diff --git a/input/regression/musicxml/09f-Repeats-Finale.xml b/input/regression/musicxml/09f-Repeats-Finale.xml
deleted file mode 100644 (file)
index ec5bb43..0000000
+++ /dev/null
@@ -1,170 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>\r
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"\r
-                                "http://www.musicxml.org/dtds/partwise.dtd">\r
-<score-partwise>\r
-  <movement-title>Finale Repeat test</movement-title>\r
-  <identification>\r
-    <creator type="composer">Reinhold Kainhofer</creator>\r
-    <rights>Public Domain</rights>\r
-    <encoding>\r
-      <software>Finale 2007 for Windows</software>\r
-      <software>Dolet Light for Finale 2007</software>\r
-      <encoding-date>2007-08-31</encoding-date>\r
-    </encoding>\r
-  </identification>\r
-  <part-list>\r
-    <score-part id="P1">\r
-      <part-name>MusicXML Part</part-name>\r
-      <score-instrument id="P1-I1">\r
-        <instrument-name>Grand Piano</instrument-name>\r
-      </score-instrument>\r
-      <midi-instrument id="P1-I1">\r
-        <midi-channel>1</midi-channel>\r
-        <midi-program>1</midi-program>\r
-      </midi-instrument>\r
-    </score-part>\r
-  </part-list>\r
-  <!--=========================================================-->\r
-  <part id="P1">\r
-    <measure number="1">\r
-      <attributes>\r
-        <divisions>1</divisions>\r
-        <key>\r
-          <fifths>0</fifths>\r
-          <mode>major</mode>\r
-        </key>\r
-        <time symbol="common">\r
-          <beats>4</beats>\r
-          <beat-type>4</beat-type>\r
-        </time>\r
-        <clef>\r
-          <sign>G</sign>\r
-          <line>2</line>\r
-        </clef>\r
-      </attributes>\r
-      <sound tempo="120"/>\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="2">\r
-      <barline location="left">\r
-        <ending number="1" type="start"/>\r
-      </barline>\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-      <barline location="right">\r
-        <bar-style>light-heavy</bar-style>\r
-        <ending number="1" type="stop"/>\r
-        <repeat direction="backward"/>\r
-      </barline>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="3">\r
-      <barline location="left">\r
-        <ending number="2" type="start"/>\r
-      </barline>\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-      <barline location="right">\r
-        <ending number="2" type="discontinue"/>\r
-      </barline>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="4">\r
-      <print new-system="yes"/>\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="5">\r
-      <barline location="left">\r
-        <bar-style>heavy-light</bar-style>\r
-        <repeat direction="forward"/>\r
-      </barline>\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-      <barline location="right">\r
-        <bar-style>light-heavy</bar-style>\r
-        <repeat direction="backward"/>\r
-      </barline>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="6">\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="7">\r
-      <print new-system="yes"/>\r
-      <barline location="left">\r
-        <ending number="1" type="start"/>\r
-      </barline>\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-      <barline location="right">\r
-        <bar-style>light-heavy</bar-style>\r
-        <ending number="1" type="stop"/>\r
-        <repeat direction="backward"/>\r
-      </barline>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="8">\r
-      <barline location="left">\r
-        <bar-style>heavy-light</bar-style>\r
-        <repeat direction="forward"/>\r
-      </barline>\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="9">\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-      <barline location="right">\r
-        <bar-style>light-heavy</bar-style>\r
-        <repeat direction="backward"/>\r
-      </barline>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="10">\r
-      <print new-system="yes"/>\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-      <barline location="right">\r
-        <bar-style>light-heavy</bar-style>\r
-      </barline>\r
-    </measure>\r
-  </part>\r
-  <!--=========================================================-->\r
-</score-partwise>\r
diff --git a/input/regression/musicxml/09g-Endings-Finale.xml b/input/regression/musicxml/09g-Endings-Finale.xml
deleted file mode 100644 (file)
index 82b4c55..0000000
+++ /dev/null
@@ -1,104 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>\r
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"\r
-                                "http://www.musicxml.org/dtds/partwise.dtd">\r
-<score-partwise>\r
-  <identification>\r
-    <encoding>\r
-      <software>Finale 2007 for Windows</software>\r
-      <software>Dolet Light for Finale 2007</software>\r
-      <encoding-date>2007-10-13</encoding-date>\r
-    </encoding>\r
-  </identification>\r
-  <part-list>\r
-    <score-part id="P1">\r
-      <part-name>MusicXML Part</part-name>\r
-      <score-instrument id="P1-I1">\r
-        <instrument-name>Grand Piano</instrument-name>\r
-      </score-instrument>\r
-      <midi-instrument id="P1-I1">\r
-        <midi-channel>1</midi-channel>\r
-        <midi-program>1</midi-program>\r
-      </midi-instrument>\r
-    </score-part>\r
-  </part-list>\r
-  <!--=========================================================-->\r
-  <part id="P1">\r
-    <measure number="1">\r
-      <attributes>\r
-        <divisions>1</divisions>\r
-        <key>\r
-          <fifths>0</fifths>\r
-          <mode>major</mode>\r
-        </key>\r
-        <time symbol="common">\r
-          <beats>4</beats>\r
-          <beat-type>4</beat-type>\r
-        </time>\r
-        <clef>\r
-          <sign>G</sign>\r
-          <line>2</line>\r
-        </clef>\r
-      </attributes>\r
-      <sound tempo="120"/>\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="2">\r
-      <barline location="left">\r
-        <ending number="1, 2, 3" type="start"/>\r
-      </barline>\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-      <barline location="right">\r
-        <ending number="1, 2, 3" type="stop"/>\r
-      </barline>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="3">\r
-      <barline location="left">\r
-        <ending number="2" type="start"/>\r
-      </barline>\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-      <barline location="right">\r
-        <ending number="2" type="discontinue"/>\r
-      </barline>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="4">\r
-      <print new-system="yes"/>\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-      <barline location="right">\r
-        <bar-style>light-heavy</bar-style>\r
-        <ending number="2" type="stop"/>\r
-        <repeat direction="backward"/>\r
-      </barline>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="5">\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-      <barline location="right">\r
-        <bar-style>light-heavy</bar-style>\r
-      </barline>\r
-    </measure>\r
-  </part>\r
-  <!--=========================================================-->\r
-</score-partwise>\r
diff --git a/input/regression/musicxml/09h-RepeatsNoEndBar-Finale.xml b/input/regression/musicxml/09h-RepeatsNoEndBar-Finale.xml
deleted file mode 100644 (file)
index 2dc1ef8..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>\r
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"\r
-                                "http://www.musicxml.org/dtds/partwise.dtd">\r
-<score-partwise>\r
-  <movement-title>Repeat without ending repeat bar</movement-title>\r
-  <identification>\r
-    <encoding>\r
-      <software>Finale 2007 for Windows</software>\r
-      <software>Dolet Light for Finale 2007</software>\r
-      <encoding-date>2007-10-23</encoding-date>\r
-    </encoding>\r
-  </identification>\r
-  <part-list>\r
-    <score-part id="P1">\r
-      <part-name>MusicXML Part</part-name>\r
-      <score-instrument id="P1-I1">\r
-        <instrument-name>Grand Piano</instrument-name>\r
-      </score-instrument>\r
-      <midi-instrument id="P1-I1">\r
-        <midi-channel>1</midi-channel>\r
-        <midi-program>1</midi-program>\r
-      </midi-instrument>\r
-    </score-part>\r
-  </part-list>\r
-  <!--=========================================================-->\r
-  <part id="P1">\r
-    <measure number="1">\r
-      <attributes>\r
-        <divisions>1</divisions>\r
-        <key>\r
-          <fifths>0</fifths>\r
-          <mode>major</mode>\r
-        </key>\r
-        <time symbol="common">\r
-          <beats>4</beats>\r
-          <beat-type>4</beat-type>\r
-        </time>\r
-        <clef>\r
-          <sign>G</sign>\r
-          <line>2</line>\r
-        </clef>\r
-      </attributes>\r
-      <sound tempo="120"/>\r
-      <note>\r
-        <pitch>\r
-          <step>C</step>\r
-          <octave>5</octave>\r
-        </pitch>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-        <type>whole</type>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="2">\r
-      <barline location="left">\r
-        <bar-style>heavy-light</bar-style>\r
-        <repeat direction="forward"/>\r
-      </barline>\r
-      <note>\r
-        <pitch>\r
-          <step>C</step>\r
-          <octave>5</octave>\r
-        </pitch>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-        <type>whole</type>\r
-      </note>\r
-      <barline location="right">\r
-        <bar-style>light-heavy</bar-style>\r
-      </barline>\r
-    </measure>\r
-  </part>\r
-  <!--=========================================================-->\r
-</score-partwise>\r
diff --git a/input/regression/musicxml/09i-MidmeasureBarline.xml b/input/regression/musicxml/09i-MidmeasureBarline.xml
deleted file mode 100644 (file)
index dc35c64..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 2.0 Partwise//EN"
-          "http://www.musicxml.org/dtds/partwise.dtd">
-<score-partwise version="2.0">
-    <work>
-        <work-title>Barlines can appear in mid-measure positions</work-title>
-    </work>
-    <identification>
-        <creator type="composer"></creator>
-    </identification>
-    <part-list>
-        <score-part id="P1">
-            <part-name></part-name>
-            <score-instrument id="P1-I1">
-                <instrument-name>Acoustic Grand Piano</instrument-name>
-            </score-instrument>
-            <midi-instrument id="P1-I1">
-                <midi-channel>2</midi-channel>
-                <midi-program>1</midi-program>
-            </midi-instrument>
-        </score-part>
-    </part-list>
-    <!--=========================================================-->
-    <part id="P1">
-        <!--=======================================================-->
-        <measure number="1">
-            <attributes>
-                <divisions>1</divisions>
-            </attributes>
-            <note>
-                <pitch>
-                    <step>C</step>
-                    <octave>5</octave>
-                </pitch>
-                <duration>1</duration>
-                <voice>1</voice>
-                <type>quarter</type>
-            </note>
-            <note>
-                <pitch>
-                    <step>A</step>
-                    <octave>4</octave>
-                </pitch>
-                <duration>1</duration>
-                <voice>1</voice>
-                <type>quarter</type>
-            </note>
-            <barline location="middle">
-                <bar-style>dotted</bar-style>
-            </barline>
-            <note>
-                <pitch>
-                    <step>F</step>
-                    <octave>4</octave>
-                </pitch>
-                <duration>1</duration>
-                <voice>1</voice>
-                <type>quarter</type>
-            </note>
-            <note>
-                <pitch>
-                    <step>C</step>
-                    <octave>5</octave>
-                </pitch>
-                <duration>1</duration>
-                <voice>1</voice>
-                <type>quarter</type>
-            </note>
-        </measure>
-        <!--=======================================================-->
-    </part>
-    <!--=========================================================-->
-</score-partwise>
diff --git a/input/regression/musicxml/09j-Midmeasure-Clef-Finale.xml b/input/regression/musicxml/09j-Midmeasure-Clef-Finale.xml
deleted file mode 100644 (file)
index efe20ca..0000000
+++ /dev/null
@@ -1,112 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
-                                "http://www.musicxml.org/dtds/partwise.dtd">
-<score-partwise>
-  <movement-title>Mid-measure clef-change</movement-title>
-  <identification>
-    <creator type="composer">Reinhold Kainhofer</creator>
-    <rights>Public Domain</rights>
-    <encoding>
-      <software>Finale 2007 for Windows</software>
-      <software>Dolet Light for Finale 2007</software>
-      <encoding-date>2007-09-22</encoding-date>
-    </encoding>
-  </identification>
-  <part-list>
-    <score-part id="P1">
-      <part-name>MusicXML Part</part-name>
-      <score-instrument id="P1-I1">
-        <instrument-name>Grand Piano</instrument-name>
-      </score-instrument>
-      <midi-instrument id="P1-I1">
-        <midi-channel>1</midi-channel>
-        <midi-program>1</midi-program>
-      </midi-instrument>
-    </score-part>
-  </part-list>
-  <!--=========================================================-->
-  <part id="P1">
-    <measure number="1">
-      <attributes>
-        <divisions>1</divisions>
-        <key>
-          <fifths>0</fifths>
-          <mode>major</mode>
-        </key>
-        <time symbol="common">
-          <beats>4</beats>
-          <beat-type>4</beat-type>
-        </time>
-        <clef>
-          <sign>G</sign>
-          <line>2</line>
-        </clef>
-      </attributes>
-      <sound tempo="120"/>
-      <note>
-        <rest/>
-        <duration>4</duration>
-        <voice>1</voice>
-      </note>
-    </measure>
-    <!--=======================================================-->
-    <measure number="2">
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>down</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>down</stem>
-      </note>
-      <barline location="right">
-        <bar-style>none</bar-style>
-      </barline>
-    </measure>
-    <!--=======================================================-->
-    <measure implicit="yes" number="X1">
-      <attributes>
-        <clef>
-          <sign>C</sign>
-          <line>2</line>
-        </clef>
-      </attributes>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>down</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>down</stem>
-      </note>
-      <barline location="right">
-        <bar-style>light-heavy</bar-style>
-      </barline>
-    </measure>
-  </part>
-  <!--=========================================================-->
-</score-partwise>
diff --git a/input/regression/musicxml/09k-Upbeats-ImplicitMeasures-Finale.xml b/input/regression/musicxml/09k-Upbeats-ImplicitMeasures-Finale.xml
deleted file mode 100644 (file)
index c81bd38..0000000
+++ /dev/null
@@ -1,148 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>\r
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"\r
-                                "http://www.musicxml.org/dtds/partwise.dtd">\r
-<score-partwise>\r
-  <movement-title>Upbeats, implicit measure, incomplete final measure</movement-title>\r
-  <identification>\r
-    <encoding>\r
-      <software>Finale 2007 for Windows</software>\r
-      <software>Dolet Light for Finale 2007</software>\r
-      <encoding-date>2007-10-09</encoding-date>\r
-    </encoding>\r
-  </identification>\r
-  <part-list>\r
-    <score-part id="P1">\r
-      <part-name>MusicXML Part</part-name>\r
-      <score-instrument id="P1-I1">\r
-        <instrument-name>Grand Piano</instrument-name>\r
-      </score-instrument>\r
-      <midi-instrument id="P1-I1">\r
-        <midi-channel>1</midi-channel>\r
-        <midi-program>1</midi-program>\r
-      </midi-instrument>\r
-    </score-part>\r
-  </part-list>\r
-  <!--=========================================================-->\r
-  <part id="P1">\r
-    <measure implicit="yes" number="0">\r
-      <attributes>\r
-        <divisions>2</divisions>\r
-        <key>\r
-          <fifths>0</fifths>\r
-          <mode>major</mode>\r
-        </key>\r
-        <time symbol="common">\r
-          <beats>4</beats>\r
-          <beat-type>4</beat-type>\r
-        </time>\r
-        <clef>\r
-          <sign>G</sign>\r
-          <line>2</line>\r
-        </clef>\r
-      </attributes>\r
-      <sound tempo="120"/>\r
-      <note>\r
-          <pitch>\r
-              <step>E</step>\r
-              <octave>4</octave>\r
-          </pitch>\r
-          <duration>2</duration>\r
-          <voice>1</voice>\r
-          <type>quarter</type>\r
-          <stem>up</stem>\r
-      </note>\r
-      <note>\r
-          <pitch>\r
-              <step>E</step>\r
-              <octave>4</octave>\r
-          </pitch>\r
-          <duration>1</duration>\r
-          <voice>1</voice>\r
-          <type>eighth</type>\r
-          <stem>up</stem>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="1">\r
-      <note>\r
-        <pitch>\r
-          <step>F</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>2</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>G</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>2</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-      </note>\r
-      <barline location="right">\r
-        <bar-style>none</bar-style>\r
-      </barline>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure implicit="yes" number="X1">\r
-      <note>\r
-        <pitch>\r
-          <step>A</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>2</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>B</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>2</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="2">\r
-      <note>\r
-        <pitch>\r
-          <step>C</step>\r
-          <octave>5</octave>\r
-        </pitch>\r
-        <duration>2</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>D</step>\r
-          <octave>5</octave>\r
-        </pitch>\r
-        <duration>2</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-      </note>\r
-      <note>\r
-        <rest/>\r
-        <duration>2</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-      </note>\r
-      <barline location="right">\r
-        <bar-style>light-heavy</bar-style>\r
-      </barline>\r
-    </measure>\r
-  </part>\r
-  <!--=========================================================-->\r
-</score-partwise>\r
diff --git a/input/regression/musicxml/09l-PickupMeasure-SecondVoiceMessup.xml b/input/regression/musicxml/09l-PickupMeasure-SecondVoiceMessup.xml
deleted file mode 100644 (file)
index c69fdd1..0000000
+++ /dev/null
@@ -1,96 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 2.0 Partwise//EN"
-          "http://www.musicxml.org/dtds/partwise.dtd">
-<score-partwise version="2.0">
-    <work>
-        <work-title>Begin of second voice messed up with pickup measure</work-title>
-    </work>
-    <identification>
-        <creator type="composer">Voice 2 should start at 2nd beat of first full measure</creator>
-    </identification>
-    <part-list>
-        <score-part id="P1">
-            <part-name></part-name>
-            <score-instrument id="P1-I1">
-                <instrument-name>Acoustic Grand Piano</instrument-name>
-            </score-instrument>
-            <midi-instrument id="P1-I1">
-                <midi-channel>2</midi-channel>
-                <midi-program>1</midi-program>
-            </midi-instrument>
-        </score-part>
-    </part-list>
-    <!--=========================================================-->
-    <part id="P1">
-        <measure implicit="yes" number="0" width="177">
-            <attributes>
-                <divisions>1</divisions>
-            </attributes>
-            <note>
-                <pitch>
-                    <step>C</step>
-                    <octave>5</octave>
-                </pitch>
-                <duration>1</duration>
-                <voice>1</voice>
-                <type>quarter</type>
-            </note>
-        </measure>
-        <!--=======================================================-->
-        <measure number="1">
-            <attributes>
-                <divisions>1</divisions>
-            </attributes>
-            <note>
-                <pitch>
-                    <step>C</step>
-                    <octave>5</octave>
-                </pitch>
-                <duration>1</duration>
-                <voice>1</voice>
-                <type>quarter</type>
-            </note>
-            <note>
-                <pitch>
-                    <step>A</step>
-                    <octave>4</octave>
-                </pitch>
-                <duration>1</duration>
-                <voice>1</voice>
-                <type>quarter</type>
-            </note>
-            <note>
-                <pitch>
-                    <step>F</step>
-                    <octave>4</octave>
-                </pitch>
-                <duration>1</duration>
-                <voice>1</voice>
-                <type>quarter</type>
-            </note>
-            <note>
-                <pitch>
-                    <step>C</step>
-                    <octave>5</octave>
-                </pitch>
-                <duration>1</duration>
-                <voice>1</voice>
-                <type>quarter</type>
-            </note>
-            <backup>
-                <duration>3</duration>
-            </backup>
-            <note>
-                <pitch>
-                    <step>C</step>
-                    <octave>4</octave>
-                </pitch>
-                <duration>1</duration>
-                <voice>2</voice>
-                <type>quarter</type>
-            </note>
-        </measure>
-        <!--=======================================================-->
-    </part>
-    <!--=========================================================-->
-</score-partwise>
diff --git a/input/regression/musicxml/10a-TwoVoicesOnStaff-Finale.xml b/input/regression/musicxml/10a-TwoVoicesOnStaff-Finale.xml
deleted file mode 100644 (file)
index 400389b..0000000
+++ /dev/null
@@ -1,290 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>\r
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"\r
-                                "http://www.musicxml.org/dtds/partwise.dtd">\r
-<score-partwise>\r
-  <movement-title>Two Voices share one Staff</movement-title>\r
-  <identification>\r
-    <creator type="composer">Reinhold Kainhofer</creator>\r
-    <rights>Public Domain</rights>\r
-    <encoding>\r
-      <software>Finale 2007 for Windows</software>\r
-      <software>Dolet Light for Finale 2007</software>\r
-      <encoding-date>2007-09-06</encoding-date>\r
-    </encoding>\r
-  </identification>\r
-  <part-list>\r
-    <score-part id="P1">\r
-      <part-name>MusicXML Part</part-name>\r
-      <score-instrument id="P1-I1">\r
-        <instrument-name>Acoustic Grand Piano</instrument-name>\r
-      </score-instrument>\r
-      <midi-instrument id="P1-I1">\r
-        <midi-channel>1</midi-channel>\r
-        <midi-program>1</midi-program>\r
-      </midi-instrument>\r
-    </score-part>\r
-  </part-list>\r
-  <!--=========================================================-->\r
-  <part id="P1">\r
-    <measure number="1">\r
-      <attributes>\r
-        <divisions>8</divisions>\r
-        <key>\r
-          <fifths>0</fifths>\r
-          <mode>major</mode>\r
-        </key>\r
-        <time symbol="common">\r
-          <beats>4</beats>\r
-          <beat-type>4</beat-type>\r
-        </time>\r
-        <clef>\r
-          <sign>G</sign>\r
-          <line>2</line>\r
-        </clef>\r
-      </attributes>\r
-      <sound tempo="120"/>\r
-      <note>\r
-        <pitch>\r
-          <step>E</step>\r
-          <octave>5</octave>\r
-        </pitch>\r
-        <duration>16</duration>\r
-        <voice>1</voice>\r
-        <type>half</type>\r
-        <stem>up</stem>\r
-        <notations>\r
-          <articulations>\r
-            <accent placement="below"/>\r
-          </articulations>\r
-          <fermata type="upright"/>\r
-        </notations>\r
-        <lyric number="1">\r
-          <syllabic>single</syllabic>\r
-          <text>This</text>\r
-        </lyric>\r
-      </note>\r
-      <direction placement="below">\r
-        <direction-type>\r
-          <dynamics default-y="-80">\r
-            <mf/>\r
-          </dynamics>\r
-        </direction-type>\r
-        <offset>-3</offset>\r
-        <sound dynamics="83"/>\r
-      </direction>\r
-      <note>\r
-        <pitch>\r
-          <step>D</step>\r
-          <octave>5</octave>\r
-        </pitch>\r
-        <duration>8</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-        <lyric number="1">\r
-          <syllabic>single</syllabic>\r
-          <text>is</text>\r
-        </lyric>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>B</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>8</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-        <lyric number="1">\r
-          <syllabic>single</syllabic>\r
-          <text>the</text>\r
-        </lyric>\r
-      </note>\r
-      <backup>\r
-        <duration>32</duration>\r
-      </backup>\r
-      <note>\r
-        <pitch>\r
-          <step>C</step>\r
-          <octave>5</octave>\r
-        </pitch>\r
-        <duration>16</duration>\r
-        <voice>2</voice>\r
-        <type>half</type>\r
-        <stem>down</stem>\r
-        <notations>\r
-          <articulations>\r
-            <accent placement="below"/>\r
-          </articulations>\r
-          <fermata type="upright"/>\r
-        </notations>\r
-        <lyric number="1">\r
-          <syllabic>single</syllabic>\r
-          <text>This</text>\r
-        </lyric>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>B</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>8</duration>\r
-        <voice>2</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-        <lyric number="1">\r
-          <syllabic>single</syllabic>\r
-          <text>is</text>\r
-        </lyric>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>G</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>8</duration>\r
-        <voice>2</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-        <lyric number="1">\r
-          <syllabic>single</syllabic>\r
-          <text>the</text>\r
-        </lyric>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="2">\r
-      <note>\r
-        <rest>\r
-          <display-step>A</display-step>\r
-          <display-octave>5</display-octave>\r
-        </rest>\r
-        <duration>8</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>D</step>\r
-          <octave>5</octave>\r
-        </pitch>\r
-        <duration>8</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-        <lyric number="1">\r
-          <syllabic>single</syllabic>\r
-          <text>lyrics</text>\r
-        </lyric>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>B</step>\r
-          <octave>3</octave>\r
-        </pitch>\r
-        <duration>12</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <dot/>\r
-        <stem>up</stem>\r
-        <notations>\r
-          <slur number="1" type="start"/>\r
-        </notations>\r
-        <lyric number="1">\r
-          <syllabic>single</syllabic>\r
-          <text>of</text>\r
-        </lyric>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>C</step>\r
-          <octave>5</octave>\r
-        </pitch>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-        <type>eighth</type>\r
-        <stem>up</stem>\r
-        <notations>\r
-          <slur number="1" type="stop"/>\r
-        </notations>\r
-        <lyric number="1">\r
-          <syllabic>single</syllabic>\r
-          <text>Voice1</text>\r
-        </lyric>\r
-      </note>\r
-      <backup>\r
-        <duration>32</duration>\r
-      </backup>\r
-      <note>\r
-        <rest>\r
-          <display-step>C</display-step>\r
-          <display-octave>4</display-octave>\r
-        </rest>\r
-        <duration>8</duration>\r
-        <voice>2</voice>\r
-        <type>quarter</type>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>B</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>8</duration>\r
-        <voice>2</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-        <lyric number="1">\r
-          <syllabic>single</syllabic>\r
-          <text>lyrics</text>\r
-        </lyric>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>G</step>\r
-          <octave>3</octave>\r
-        </pitch>\r
-        <duration>12</duration>\r
-        <voice>2</voice>\r
-        <type>quarter</type>\r
-        <dot/>\r
-        <stem>down</stem>\r
-        <notations>\r
-          <slur number="1" type="start"/>\r
-        </notations>\r
-        <lyric number="1">\r
-          <syllabic>single</syllabic>\r
-          <text>of</text>\r
-        </lyric>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>A</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>4</duration>\r
-        <voice>2</voice>\r
-        <type>eighth</type>\r
-        <stem>down</stem>\r
-        <notations>\r
-          <slur number="1" type="stop"/>\r
-        </notations>\r
-        <lyric number="1">\r
-          <syllabic>single</syllabic>\r
-          <text>Voice1</text>\r
-        </lyric>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="3">\r
-      <note>\r
-        <rest/>\r
-        <duration>32</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-      <barline location="right">\r
-        <bar-style>light-heavy</bar-style>\r
-      </barline>\r
-    </measure>\r
-  </part>\r
-  <!--=========================================================-->\r
-</score-partwise>\r
diff --git a/input/regression/musicxml/11-TimeSignatures.itexi b/input/regression/musicxml/11-TimeSignatures.itexi
new file mode 100644 (file)
index 0000000..06d8684
--- /dev/null
@@ -0,0 +1 @@
+@unnumberedsec 11 ... Time signatures
diff --git a/input/regression/musicxml/11a-TimeSignatures.xml b/input/regression/musicxml/11a-TimeSignatures.xml
new file mode 100644 (file)
index 0000000..2333973
--- /dev/null
@@ -0,0 +1,237 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">Various time signatures: 2/2 
+            (alla breve), 4/4 (C), 2/2, 3/2, 2/4, 3/4, 4/4, 5/4, 3/8, 6/8, 
+            12/8</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name>MusicXML Part</part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>2</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>2</beats>
+          <beat-type>2</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>8</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <measure number="2">
+      <attributes>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>8</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <measure number="3">
+      <attributes>
+        <time>
+          <beats>2</beats>
+          <beat-type>2</beat-type>
+        </time>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>8</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <measure number="4">
+      <attributes>
+        <time>
+          <beats>3</beats>
+          <beat-type>2</beat-type>
+        </time>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>12</duration>
+        <voice>1</voice>
+        <type>whole</type>
+        <dot/>
+      </note>
+    </measure>
+    <measure number="5">
+      <attributes>
+        <time>
+          <beats>2</beats>
+          <beat-type>4</beat-type>
+        </time>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+    </measure>
+    <measure number="6">
+      <attributes>
+        <time>
+          <beats>3</beats>
+          <beat-type>4</beat-type>
+        </time>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>6</duration>
+        <voice>1</voice>
+        <type>half</type>
+        <dot/>
+      </note>
+    </measure>
+    <measure number="7">
+      <attributes>
+        <time>
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>8</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <measure number="8">
+      <attributes>
+        <time>
+          <beats>5</beats>
+          <beat-type>4</beat-type>
+        </time>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>8</duration>
+        <tie type="start"/>
+        <voice>1</voice>
+        <type>whole</type>
+        <notations><tied type="start"/></notations>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>2</duration>
+        <tie type="stop"/>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations><tied type="stop"/></notations>
+      </note>
+    </measure>
+    <measure number="9">
+      <attributes>
+        <time>
+          <beats>3</beats>
+          <beat-type>8</beat-type>
+        </time>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>3</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <dot/>
+      </note>
+    </measure>
+    <measure number="10">
+      <attributes>
+        <time>
+          <beats>6</beats>
+          <beat-type>8</beat-type>
+        </time>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>6</duration>
+        <voice>1</voice>
+        <type>half</type>
+        <dot/>
+      </note>
+    </measure>
+    <measure number="11">
+      <attributes>
+        <time>
+          <beats>12</beats>
+          <beat-type>8</beat-type>
+        </time>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>12</duration>
+        <voice>1</voice>
+        <type>whole</type>
+        <dot/>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+</score-partwise>
diff --git a/input/regression/musicxml/11b-TimeSignatures-NoTime.xml b/input/regression/musicxml/11b-TimeSignatures-NoTime.xml
new file mode 100644 (file)
index 0000000..a70af96
--- /dev/null
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 2.0 Partwise//EN"
+ "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise version="2.0">
+       <identification>
+               <miscellaneous>
+                       <miscellaneous-field name="description">A score without 
+                            a time signature (but with a key and clefs)</miscellaneous-field>
+               </miscellaneous>
+       </identification>
+       <part-list>
+               <score-part id="P1">
+                       <part-name></part-name>
+               </score-part>
+       </part-list>
+       <part id="P1">
+               <measure number="1">
+                       <attributes>
+                               <divisions>1</divisions>
+                               <key><fifths>0</fifths></key>
+                               <staves>2</staves>
+                               <clef number="1"><sign>G</sign><line>2</line></clef>
+                               <clef number="2"><sign>F</sign><line>4</line></clef>
+                       </attributes>
+                       <note>
+                               <pitch><step>F</step><octave>4</octave></pitch>
+                               <duration>4</duration>
+                               <voice>1</voice>
+                               <type>whole</type>
+                               <staff>1</staff>
+                       </note>
+                       <backup><duration>384</duration></backup>
+                       <note>
+                               <pitch><step>B</step><octave>2</octave></pitch>
+                               <duration>4</duration>
+                               <voice>2</voice>
+                               <type>whole</type>
+                               <staff>2</staff>
+                       </note>
+               </measure>
+       </part>
+</score-partwise>
diff --git a/input/regression/musicxml/11c-TimeSignatures-CompoundSimple.xml b/input/regression/musicxml/11c-TimeSignatures-CompoundSimple.xml
new file mode 100644 (file)
index 0000000..576ad4e
--- /dev/null
@@ -0,0 +1,137 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.1 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise version="1.1">
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">Compound time signatures with 
+          same denominator: (3+2)/8 and (5+3+1)/4.</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name>MusicXML Part</part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>2</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time>
+          <beats>3+2</beats>
+          <beat-type>8</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <beam number="1">begin</beam>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <beam number="1">continue</beam>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <beam number="1">end</beam>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <beam number="1">begin</beam>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <beam number="1">end</beam>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="2">
+      <attributes>
+        <time>
+          <beats>5+3+1</beats>
+          <beat-type>4</beat-type>
+        </time>
+      </attributes>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>8</duration>
+        <tie/>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>6</duration>
+        <voice>1</voice>
+        <type>half</type>
+        <dot/>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/11d-TimeSignatures-CompoundMultiple.xml b/input/regression/musicxml/11d-TimeSignatures-CompoundMultiple.xml
new file mode 100644 (file)
index 0000000..37a5fa3
--- /dev/null
@@ -0,0 +1,159 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.1 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise version="1.1">
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">Compound time signatures with 
+          separate fractions displayed: 3/8+2/8+3/4 and 5/2+1/8.</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name>MusicXML Part</part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>2</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time>
+          <beats>3</beats>
+          <beat-type>8</beat-type>
+          <beats>2</beats>
+          <beat-type>8</beat-type>
+          <beats>3</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <beam number="1">begin</beam>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <beam number="1">continue</beam>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <beam number="1">end</beam>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <beam number="1">begin</beam>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <beam number="1">end</beam>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="2">
+      <attributes>
+        <time>
+          <beats>5</beats>
+          <beat-type>2</beat-type>
+          <beats>1</beats>
+          <beat-type>8</beat-type>
+        </time>
+      </attributes>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>16</duration>
+        <voice>1</voice>
+        <type>breve</type>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/11e-TimeSignatures-CompoundMixed.xml b/input/regression/musicxml/11e-TimeSignatures-CompoundMixed.xml
new file mode 100644 (file)
index 0000000..8d8cf5f
--- /dev/null
@@ -0,0 +1,119 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.1 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise version="1.1">
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">Compound time signatures of
+          mixed type: (3+2)/8+3/4.</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name>MusicXML Part</part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>2</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time>
+          <beats>3+2</beats>
+          <beat-type>8</beat-type>
+          <beats>3</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <beam number="1">begin</beam>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <beam number="1">continue</beam>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <beam number="1">end</beam>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <beam number="1">begin</beam>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <beam number="1">end</beam>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/11f-TimeSignatures-SymbolMeaning.xml b/input/regression/musicxml/11f-TimeSignatures-SymbolMeaning.xml
new file mode 100644 (file)
index 0000000..4787a71
--- /dev/null
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.1 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise version="1.1">
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">A time signature of 3/8 with the 
+          symbol="cut" attribute and two symbol="single-number" attributes with
+          compound time signatures. Shall the symbol be ignored in this 
+          case?</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name>MusicXML Part</part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>2</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="cut">
+          <beats>3</beats>
+          <beat-type>8</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>3</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <dot/>
+      </note>
+    </measure>
+    <!--=========================================================-->
+    <measure number="2">
+      <attributes>
+        <time symbol="single-number">
+          <beats>3+2</beats>
+          <beat-type>8</beat-type>
+        </time>
+      </attributes>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+    </measure>
+    <!--=========================================================-->
+    <measure number="3">
+      <attributes>
+        <time symbol="single-number">
+          <beats>1</beats>
+          <beat-type>8</beat-type>
+          <beats>2</beats>
+          <beat-type>4</beat-type>
+        </time>
+      </attributes>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/11g-TimeSignatures-SingleNumber.xml b/input/regression/musicxml/11g-TimeSignatures-SingleNumber.xml
new file mode 100644 (file)
index 0000000..510b669
--- /dev/null
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.1 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise version="1.1">
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">Time signature displayed as a
+          single number.</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name>MusicXML Part</part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>2</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="single-number">
+          <beats>3</beats>
+          <beat-type>8</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <beam number="1">begin</beam>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <beam number="1">continue</beam>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <beam number="1">end</beam>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/11h-TimeSignatures-SenzaMisura.xml b/input/regression/musicxml/11h-TimeSignatures-SenzaMisura.xml
new file mode 100644 (file)
index 0000000..32b3729
--- /dev/null
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.1 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise version="1.1">
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">Senza-misura time signature</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name>MusicXML Part</part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>2</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time>
+          <senza-misura/>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <beam number="1">begin</beam>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <beam number="1">continue</beam>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <beam number="1">end</beam>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/12-Clefs.itexi b/input/regression/musicxml/12-Clefs.itexi
new file mode 100644 (file)
index 0000000..2adf8b5
--- /dev/null
@@ -0,0 +1 @@
+@unnumberedsec 12 ... Clefs
diff --git a/input/regression/musicxml/12a-Clefs.xml b/input/regression/musicxml/12a-Clefs.xml
new file mode 100644 (file)
index 0000000..85be49e
--- /dev/null
@@ -0,0 +1,360 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">Various clefs: G, C, F, percussion, 
+          TAB and none; some are also possible with octavation and  on other 
+          staff lines than their default (e.g. soprano/alto/tenor/bariton C 
+          clefs); Each measure shows a different clef (measure 17 has the "none" 
+          clef), only measure 18 has the same treble clef as measure 
+          1.</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name>MusicXML Part</part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="2">
+      <attributes>
+        <clef>
+          <sign>C</sign>
+          <line>3</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="3">
+      <attributes>
+        <clef>
+          <sign>C</sign>
+          <line>4</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="4">
+      <attributes>
+        <clef>
+          <sign>F</sign>
+          <line>4</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="5">
+      <attributes>
+        <clef>
+          <sign>percussion</sign>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="6">
+      <attributes>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+          <clef-octave-change>-1</clef-octave-change>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="7">
+      <attributes>
+        <clef>
+          <sign>F</sign>
+          <line>4</line>
+          <clef-octave-change>-1</clef-octave-change>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="8">
+      <attributes>
+        <clef>
+          <sign>F</sign>
+          <line>3</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="9">
+      <attributes>
+        <clef>
+          <sign>G</sign>
+          <line>1</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="10">
+      <attributes>
+        <clef>
+          <sign>C</sign>
+          <line>5</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="11">
+      <attributes>
+        <clef>
+          <sign>C</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="12">
+      <attributes>
+        <clef>
+          <sign>C</sign>
+          <line>1</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="13">
+      <attributes>
+        <clef>
+          <sign>percussion</sign>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="14">
+      <attributes>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+          <clef-octave-change>1</clef-octave-change>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="15">
+      <attributes>
+        <clef>
+          <sign>F</sign>
+          <line>4</line>
+          <clef-octave-change>1</clef-octave-change>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="16">
+      <attributes>
+        <clef>
+          <sign>TAB</sign>
+          <line>5</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="17">
+      <attributes>
+        <clef>
+          <sign>none</sign>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="18">
+      <attributes>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/12a-TripletsDuration-NoBracket-PJB.xml b/input/regression/musicxml/12a-TripletsDuration-NoBracket-PJB.xml
deleted file mode 100644 (file)
index 0e25560..0000000
+++ /dev/null
@@ -1,196 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 0.6b Partwise//EN"
- "http://www.musicxml.org/dtds/partwise.dtd">
-<score-partwise>
-       <identification>
-               <encoding>
-                       <software>/usr/bin/vi</software>
-                       <encoding-date>2007-02-02</encoding-date>
-               </encoding>
-       </identification>
-       <part-list>
-               <score-part id="P1"><part-name>MIDI Track 1</part-name></score-part>
-       </part-list>
-       <part id="P1">
-               <measure number="1">
-                       <attributes>
-                               <divisions>96</divisions>
-                               <key><fifths>0</fifths></key>
-                               <time><beats>4</beats><beat-type>4</beat-type></time>
-                               <staves>2</staves>
-                               <clef number="1"><sign>G</sign><line>2</line></clef>
-                               <clef number="2"><sign>F</sign><line>4</line></clef>
-                       </attributes>
-                       <note>
-                               <pitch><step>F</step><octave>4</octave></pitch>
-                               <duration>96</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                               <staff>1</staff>
-                       </note>
-                       <note>
-                               <pitch><step>G</step><octave>4</octave></pitch>
-                               <duration>96</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                               <staff>1</staff>
-                       </note>
-                       <note>
-                               <pitch><step>A</step><octave>4</octave></pitch>
-                               <duration>64</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                               <time-modification><actual-notes>3</actual-notes><normal-notes>2</normal-notes></time-modification>
-                               <staff>1</staff>
-                       </note>
-                       <note>
-                               <pitch><step>B</step><octave>4</octave></pitch>
-                               <duration>64</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                               <time-modification><actual-notes>3</actual-notes><normal-notes>2</normal-notes></time-modification>
-                               <staff>1</staff>
-                       </note>
-                       <note>
-                               <pitch><step>C</step><octave>5</octave></pitch>
-                               <duration>64</duration>
-                               <voice>1</voice>
-                               <type>quarter</type>
-                               <time-modification><actual-notes>3</actual-notes><normal-notes>2</normal-notes></time-modification>
-                               <staff>1</staff>
-                       </note>
-                       <backup><duration>384</duration></backup>
-                       <note>
-                               <pitch><step>A</step><octave>2</octave></pitch>
-                               <duration>48</duration>
-                               <voice>2</voice>
-                               <type>eighth</type>
-                               <staff>2</staff>
-                               <beam number="1">begin</beam>
-                       </note>
-                       <note>
-                               <pitch><step>B</step><octave>2</octave></pitch>
-                               <duration>48</duration>
-                               <voice>2</voice>
-                               <type>eighth</type>
-                               <staff>2</staff>
-                               <beam number="1">end</beam>
-                       </note>
-                       <note>
-                               <pitch><step>C</step><octave>3</octave></pitch>
-                               <duration>32</duration>
-                               <voice>2</voice>
-                               <type>eighth</type>
-                               <time-modification><actual-notes>3</actual-notes><normal-notes>2</normal-notes></time-modification>
-                               <staff>2</staff>
-                               <beam number="1">begin</beam>
-                       </note>
-                       <note>
-                               <pitch><step>D</step><octave>3</octave></pitch>
-                               <duration>32</duration>
-                               <voice>2</voice>
-                               <type>eighth</type>
-                               <time-modification><actual-notes>3</actual-notes><normal-notes>2</normal-notes></time-modification>
-                               <staff>2</staff>
-                               <beam number="1">continue</beam>
-                       </note>
-                       <note>
-                               <pitch><step>E</step><octave>3</octave></pitch>
-                               <duration>32</duration>
-                               <voice>2</voice>
-                               <type>eighth</type>
-                               <time-modification><actual-notes>3</actual-notes><normal-notes>2</normal-notes></time-modification>
-                               <staff>2</staff>
-                               <beam number="1">end</beam>
-                       </note>
-                       <note>
-                               <pitch><step>A</step><octave>2</octave></pitch>
-                               <duration>24</duration>
-                               <voice>2</voice>
-                               <type>16th</type>
-                               <staff>2</staff>
-                               <beam number="2">begin</beam>
-                       </note>
-                       <note>
-                               <pitch><step>B</step><octave>2</octave></pitch>
-                               <duration>24</duration>
-                               <voice>2</voice>
-                               <type>16th</type>
-                               <staff>2</staff>
-                               <beam number="2">continue</beam>
-                       </note>
-                       <note>
-                               <pitch><step>C</step><octave>3</octave></pitch>
-                               <duration>24</duration>
-                               <voice>2</voice>
-                               <type>16th</type>
-                               <staff>2</staff>
-                               <beam number="2">continue</beam>
-                       </note>
-                       <note>
-                               <pitch><step>D</step><octave>3</octave></pitch>
-                               <duration>24</duration>
-                               <voice>2</voice>
-                               <type>16th</type>
-                               <staff>2</staff>
-                               <beam number="2">end</beam>
-                       </note>
-
-                       <note>
-                               <pitch><step>E</step><octave>3</octave></pitch>
-                               <duration>16</duration>
-                               <voice>2</voice>
-                               <type>16th</type>
-                               <time-modification><actual-notes>3</actual-notes><normal-notes>2</normal-notes></time-modification>
-                               <staff>2</staff>
-                               <beam number="2">begin</beam>
-                       </note>
-                       <note>
-                               <pitch><step>F</step><octave>3</octave></pitch>
-                               <duration>16</duration>
-                               <voice>2</voice>
-                               <type>16th</type>
-                               <time-modification><actual-notes>3</actual-notes><normal-notes>2</normal-notes></time-modification>
-                               <staff>2</staff>
-                               <beam number="2">continue</beam>
-                       </note>
-                       <note>
-                               <pitch><step>G</step><octave>3</octave></pitch>
-                               <duration>16</duration>
-                               <voice>2</voice>
-                               <type>16th</type>
-                               <time-modification><actual-notes>3</actual-notes><normal-notes>2</normal-notes></time-modification>
-                               <staff>2</staff>
-                               <beam number="2">continue</beam>
-                       </note>
-                       <note>
-                               <pitch><step>A</step><octave>3</octave></pitch>
-                               <duration>16</duration>
-                               <voice>2</voice>
-                               <type>16th</type>
-                               <time-modification><actual-notes>3</actual-notes><normal-notes>2</normal-notes></time-modification>
-                               <staff>2</staff>
-                               <beam number="2">continue</beam>
-                       </note>
-                       <note>
-                               <pitch><step>B</step><octave>3</octave></pitch>
-                               <duration>16</duration>
-                               <voice>2</voice>
-                               <type>16th</type>
-                               <time-modification><actual-notes>3</actual-notes><normal-notes>2</normal-notes></time-modification>
-                               <staff>2</staff>
-                               <beam number="2">continue</beam>
-                       </note>
-                       <note>
-                               <pitch><step>C</step><octave>4</octave></pitch>
-                               <duration>16</duration>
-                               <voice>2</voice>
-                               <type>16th</type>
-                               <time-modification><actual-notes>3</actual-notes><normal-notes>2</normal-notes></time-modification>
-                               <staff>2</staff>
-                               <beam number="2">end</beam>
-                       </note>
-
-               </measure>
-       </part>
-</score-partwise>
diff --git a/input/regression/musicxml/12b-Clefs-NoKeyOrClef.xml b/input/regression/musicxml/12b-Clefs-NoKeyOrClef.xml
new file mode 100644 (file)
index 0000000..d0ad799
--- /dev/null
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 2.0 Partwise//EN" "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise version="2.0">
+       <identification>
+               <miscellaneous>
+                       <miscellaneous-field name="description">A score without 
+                            any key or clef defined. The default (4/4 in treble 
+                            clef) should be used.</miscellaneous-field>
+               </miscellaneous>
+       </identification>
+       <part-list>
+               <score-part id="P0">
+                       <part-name></part-name>
+               </score-part>
+       </part-list>
+       <part id="P0">
+               <measure number="1">
+                       <attributes>
+                               <divisions>1</divisions>
+                               <time>
+                                       <beats>4</beats>
+                                       <beat-type>4</beat-type>
+                               </time>
+                       </attributes>
+                       <note>
+                               <pitch>
+                                       <step>C</step>
+                                       <octave>4</octave>
+                               </pitch>
+                               <duration>4</duration>
+                               <voice>1</voice>
+                               <type>whole</type>
+                       </note>
+               </measure>
+               <measure number="2">
+                       <note>
+                               <pitch>
+                                       <step>C</step>
+                                       <octave>4</octave>
+                               </pitch>
+                               <duration>4</duration>
+                               <voice>1</voice>
+                               <type>whole</type>
+                       </note>
+               </measure>
+       </part>
+</score-partwise>
diff --git a/input/regression/musicxml/12b-Tuplets-Finale.xml b/input/regression/musicxml/12b-Tuplets-Finale.xml
deleted file mode 100644 (file)
index e1d54e0..0000000
+++ /dev/null
@@ -1,514 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
-                                "http://www.musicxml.org/dtds/partwise.dtd">
-<score-partwise>
-  <movement-title>Finale tuplet test</movement-title>
-  <identification>
-    <creator type="composer">Reinhold Kainhofer</creator>
-    <rights>Public domain</rights>
-    <encoding>
-      <software>Finale 2007 for Windows</software>
-      <software>Dolet Light for Finale 2007</software>
-      <encoding-date>2007-09-14</encoding-date>
-    </encoding>
-  </identification>
-  <part-list>
-    <score-part id="P1">
-      <part-name>MusicXML Part</part-name>
-      <score-instrument id="P1-I1">
-        <instrument-name>Grand Piano</instrument-name>
-      </score-instrument>
-      <midi-instrument id="P1-I1">
-        <midi-channel>1</midi-channel>
-        <midi-program>1</midi-program>
-      </midi-instrument>
-    </score-part>
-  </part-list>
-  <!--=========================================================-->
-  <part id="P1">
-    <measure number="1">
-      <attributes>
-        <divisions>84</divisions>
-        <key>
-          <fifths>0</fifths>
-          <mode>major</mode>
-        </key>
-        <time>
-          <beats>30</beats>
-          <beat-type>4</beat-type>
-        </time>
-        <clef>
-          <sign>G</sign>
-          <line>2</line>
-        </clef>
-      </attributes>
-      <sound tempo="120"/>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>56</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <time-modification>
-          <actual-notes>3</actual-notes>
-          <normal-notes>2</normal-notes>
-        </time-modification>
-        <stem>up</stem>
-        <notations>
-          <tuplet number="1" placement="above" type="start"/>
-        </notations>
-      </note>
-      <note>
-        <pitch>
-          <step>D</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>56</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <time-modification>
-          <actual-notes>3</actual-notes>
-          <normal-notes>2</normal-notes>
-        </time-modification>
-        <stem>up</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>E</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>56</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <time-modification>
-          <actual-notes>3</actual-notes>
-          <normal-notes>2</normal-notes>
-        </time-modification>
-        <stem>up</stem>
-        <notations>
-          <tuplet number="1" type="stop"/>
-        </notations>
-      </note>
-      <note>
-        <pitch>
-          <step>F</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>56</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <time-modification>
-          <actual-notes>3</actual-notes>
-          <normal-notes>2</normal-notes>
-        </time-modification>
-        <stem>up</stem>
-        <notations>
-          <tuplet number="1" placement="above" type="start"/>
-        </notations>
-      </note>
-      <note>
-        <pitch>
-          <step>G</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>56</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <time-modification>
-          <actual-notes>3</actual-notes>
-          <normal-notes>2</normal-notes>
-        </time-modification>
-        <stem>up</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>A</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>56</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <time-modification>
-          <actual-notes>3</actual-notes>
-          <normal-notes>2</normal-notes>
-        </time-modification>
-        <stem>up</stem>
-        <notations>
-          <tuplet number="1" type="stop"/>
-        </notations>
-      </note>
-      <note>
-        <pitch>
-          <step>B</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>56</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <time-modification>
-          <actual-notes>3</actual-notes>
-          <normal-notes>2</normal-notes>
-        </time-modification>
-        <stem>down</stem>
-        <notations>
-          <tuplet bracket="no" number="1" placement="above" type="start"/>
-        </notations>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>56</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <time-modification>
-          <actual-notes>3</actual-notes>
-          <normal-notes>2</normal-notes>
-        </time-modification>
-        <stem>down</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>D</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>56</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <time-modification>
-          <actual-notes>3</actual-notes>
-          <normal-notes>2</normal-notes>
-        </time-modification>
-        <stem>down</stem>
-        <notations>
-          <tuplet number="1" type="stop"/>
-        </notations>
-      </note>
-      <note>
-        <pitch>
-          <step>E</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>42</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <time-modification>
-          <actual-notes>4</actual-notes>
-          <normal-notes>2</normal-notes>
-        </time-modification>
-        <stem>down</stem>
-        <notations>
-          <tuplet number="1" placement="above" type="start"/>
-        </notations>
-      </note>
-      <note>
-        <pitch>
-          <step>F</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>42</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <time-modification>
-          <actual-notes>4</actual-notes>
-          <normal-notes>2</normal-notes>
-        </time-modification>
-        <stem>down</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>G</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>42</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <time-modification>
-          <actual-notes>4</actual-notes>
-          <normal-notes>2</normal-notes>
-        </time-modification>
-        <stem>down</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>A</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>42</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <time-modification>
-          <actual-notes>4</actual-notes>
-          <normal-notes>2</normal-notes>
-        </time-modification>
-        <stem>down</stem>
-        <notations>
-          <tuplet number="1" type="stop"/>
-        </notations>
-      </note>
-      <note>
-        <pitch>
-          <step>B</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>21</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <time-modification>
-          <actual-notes>4</actual-notes>
-          <normal-notes>1</normal-notes>
-        </time-modification>
-        <stem>down</stem>
-        <notations>
-          <tuplet number="1" placement="above" type="start"/>
-        </notations>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>6</octave>
-        </pitch>
-        <duration>21</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <time-modification>
-          <actual-notes>4</actual-notes>
-          <normal-notes>1</normal-notes>
-        </time-modification>
-        <stem>down</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>6</octave>
-        </pitch>
-        <duration>21</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <time-modification>
-          <actual-notes>4</actual-notes>
-          <normal-notes>1</normal-notes>
-        </time-modification>
-        <stem>down</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>B</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>21</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <time-modification>
-          <actual-notes>4</actual-notes>
-          <normal-notes>1</normal-notes>
-        </time-modification>
-        <stem>down</stem>
-        <notations>
-          <tuplet number="1" type="stop"/>
-        </notations>
-      </note>
-      <note>
-        <pitch>
-          <step>A</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>36</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <time-modification>
-          <actual-notes>7</actual-notes>
-          <normal-notes>3</normal-notes>
-        </time-modification>
-        <stem>down</stem>
-        <notations>
-          <tuplet number="1" placement="above" type="start"/>
-        </notations>
-      </note>
-      <note>
-        <pitch>
-          <step>G</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>36</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <time-modification>
-          <actual-notes>7</actual-notes>
-          <normal-notes>3</normal-notes>
-        </time-modification>
-        <stem>down</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>F</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>36</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <time-modification>
-          <actual-notes>7</actual-notes>
-          <normal-notes>3</normal-notes>
-        </time-modification>
-        <stem>down</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>E</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>36</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <time-modification>
-          <actual-notes>7</actual-notes>
-          <normal-notes>3</normal-notes>
-        </time-modification>
-        <stem>down</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>D</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>36</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <time-modification>
-          <actual-notes>7</actual-notes>
-          <normal-notes>3</normal-notes>
-        </time-modification>
-        <stem>down</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>36</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <time-modification>
-          <actual-notes>7</actual-notes>
-          <normal-notes>3</normal-notes>
-        </time-modification>
-        <stem>down</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>B</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>36</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <time-modification>
-          <actual-notes>7</actual-notes>
-          <normal-notes>3</normal-notes>
-        </time-modification>
-        <stem>down</stem>
-        <notations>
-          <tuplet number="1" type="stop"/>
-        </notations>
-      </note>
-      <note>
-        <pitch>
-          <step>A</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>28</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <time-modification>
-          <actual-notes>6</actual-notes>
-          <normal-notes>2</normal-notes>
-        </time-modification>
-        <stem>up</stem>
-        <notations>
-          <tuplet number="1" placement="above" type="start"/>
-        </notations>
-      </note>
-      <note>
-        <pitch>
-          <step>G</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>28</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <time-modification>
-          <actual-notes>6</actual-notes>
-          <normal-notes>2</normal-notes>
-        </time-modification>
-        <stem>up</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>F</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>28</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <time-modification>
-          <actual-notes>6</actual-notes>
-          <normal-notes>2</normal-notes>
-        </time-modification>
-        <stem>up</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>E</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>28</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <time-modification>
-          <actual-notes>6</actual-notes>
-          <normal-notes>2</normal-notes>
-        </time-modification>
-        <stem>up</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>D</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>28</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <time-modification>
-          <actual-notes>6</actual-notes>
-          <normal-notes>2</normal-notes>
-        </time-modification>
-        <stem>up</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>28</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <time-modification>
-          <actual-notes>6</actual-notes>
-          <normal-notes>2</normal-notes>
-        </time-modification>
-        <stem>up</stem>
-        <notations>
-          <tuplet number="1" type="stop"/>
-        </notations>
-      </note>
-      <barline location="right">
-        <bar-style>light-heavy</bar-style>
-      </barline>
-    </measure>
-  </part>
-  <!--=========================================================-->
-</score-partwise>
diff --git a/input/regression/musicxml/13-KeySignatures.itexi b/input/regression/musicxml/13-KeySignatures.itexi
new file mode 100644 (file)
index 0000000..944ac6e
--- /dev/null
@@ -0,0 +1,2 @@
+@unnumberedsec 13 ... Key signatures
+
diff --git a/input/regression/musicxml/13a-GraceNotes-Finale.xml b/input/regression/musicxml/13a-GraceNotes-Finale.xml
deleted file mode 100644 (file)
index afb34cb..0000000
+++ /dev/null
@@ -1,357 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
-                                "http://www.musicxml.org/dtds/partwise.dtd">
-<score-partwise>
-  <movement-title>Grace note test</movement-title>
-  <identification>
-    <creator type="composer">Reinhold Kainhofer</creator>
-    <rights>Public Domain</rights>
-    <encoding>
-      <software>Finale 2007 for Windows</software>
-      <software>Dolet Light for Finale 2007</software>
-      <encoding-date>2007-09-16</encoding-date>
-    </encoding>
-  </identification>
-  <part-list>
-    <score-part id="P1">
-      <part-name>MusicXML Part</part-name>
-      <score-instrument id="P1-I1">
-        <instrument-name>Grand Piano</instrument-name>
-      </score-instrument>
-      <midi-instrument id="P1-I1">
-        <midi-channel>1</midi-channel>
-        <midi-program>1</midi-program>
-      </midi-instrument>
-    </score-part>
-  </part-list>
-  <!--=========================================================-->
-  <part id="P1">
-    <measure number="1">
-      <attributes>
-        <divisions>4</divisions>
-        <key>
-          <fifths>0</fifths>
-          <mode>major</mode>
-        </key>
-        <time symbol="common">
-          <beats>4</beats>
-          <beat-type>4</beat-type>
-        </time>
-        <clef>
-          <sign>G</sign>
-          <line>2</line>
-        </clef>
-      </attributes>
-      <sound tempo="120"/>
-      <note>
-        <grace/>
-        <pitch>
-          <step>D</step>
-          <octave>5</octave>
-        </pitch>
-        <voice>1</voice>
-        <type>16th</type>
-        <stem>up</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>4</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>down</stem>
-      </note>
-      <note>
-        <grace/>
-        <pitch>
-          <step>E</step>
-          <octave>5</octave>
-        </pitch>
-        <voice>1</voice>
-        <type>16th</type>
-        <stem>up</stem>
-        <beam number="1">begin</beam>
-        <beam number="2">begin</beam>
-      </note>
-      <note>
-        <grace/>
-        <pitch>
-          <step>D</step>
-          <octave>5</octave>
-        </pitch>
-        <voice>1</voice>
-        <type>16th</type>
-        <stem>up</stem>
-        <beam number="1">end</beam>
-        <beam number="2">end</beam>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>4</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>down</stem>
-      </note>
-      <note>
-        <grace/>
-        <pitch>
-          <step>D</step>
-          <octave>5</octave>
-        </pitch>
-        <tie type="start"/>
-        <voice>1</voice>
-        <type>16th</type>
-        <stem>up</stem>
-        <notations>
-          <tied type="start"/>
-        </notations>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>4</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>down</stem>
-      </note>
-      <note>
-        <grace/>
-        <pitch>
-          <step>D</step>
-          <octave>5</octave>
-        </pitch>
-        <voice>1</voice>
-        <type>eighth</type>
-        <stem>up</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>4</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>down</stem>
-      </note>
-    </measure>
-    <!--=======================================================-->
-    <measure number="2">
-      <note>
-        <grace slash="yes"/>
-        <pitch>
-          <step>D</step>
-          <octave>5</octave>
-        </pitch>
-        <voice>1</voice>
-        <type>16th</type>
-        <stem>up</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>4</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>down</stem>
-      </note>
-      <note>
-        <grace/>
-        <pitch>
-          <step>E</step>
-          <octave>5</octave>
-        </pitch>
-        <voice>1</voice>
-        <type>16th</type>
-        <stem>up</stem>
-        <beam number="1">begin</beam>
-        <beam number="2">begin</beam>
-      </note>
-      <note>
-        <grace/>
-        <pitch>
-          <step>D</step>
-          <octave>5</octave>
-        </pitch>
-        <voice>1</voice>
-        <type>16th</type>
-        <stem>up</stem>
-        <beam number="1">end</beam>
-        <beam number="2">end</beam>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>4</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>down</stem>
-      </note>
-      <note>
-        <grace slash="yes"/>
-        <pitch>
-          <step>D</step>
-          <octave>5</octave>
-        </pitch>
-        <voice>1</voice>
-        <type>16th</type>
-        <stem>up</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>4</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>down</stem>
-      </note>
-      <note>
-        <grace slash="yes"/>
-        <pitch>
-          <step>D</step>
-          <octave>5</octave>
-        </pitch>
-        <voice>1</voice>
-        <type>16th</type>
-        <stem>up</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>4</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>down</stem>
-      </note>
-      <note>
-        <grace/>
-        <pitch>
-          <step>E</step>
-          <octave>5</octave>
-        </pitch>
-        <voice>1</voice>
-        <type>16th</type>
-        <stem>up</stem>
-      </note>
-    </measure>
-    <!--=======================================================-->
-    <measure number="3">
-      <note>
-        <grace/>
-        <pitch>
-          <step>E</step>
-          <octave>5</octave>
-        </pitch>
-        <voice>1</voice>
-        <type>16th</type>
-        <stem>up</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>F</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>4</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>up</stem>
-      </note>
-      <note>
-        <chord/>
-        <pitch>
-          <step>C</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>4</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>up</stem>
-      </note>
-      <note>
-        <grace/>
-        <pitch>
-          <step>D</step>
-          <alter>1</alter>
-          <octave>5</octave>
-        </pitch>
-        <voice>1</voice>
-        <type>quarter</type>
-        <accidental>sharp</accidental>
-        <stem>up</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>4</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>down</stem>
-      </note>
-      <note>
-        <grace/>
-        <pitch>
-          <step>D</step>
-          <alter>-1</alter>
-          <octave>5</octave>
-        </pitch>
-        <voice>1</voice>
-        <type>quarter</type>
-        <accidental>flat</accidental>
-        <stem>up</stem>
-      </note>
-      <note>
-        <grace/>
-        <pitch>
-          <step>A</step>
-          <alter>-1</alter>
-          <octave>4</octave>
-        </pitch>
-        <voice>1</voice>
-        <type>quarter</type>
-        <accidental>flat</accidental>
-        <stem>up</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>4</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>down</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>4</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>down</stem>
-      </note>
-      <barline location="right">
-        <bar-style>light-heavy</bar-style>
-      </barline>
-    </measure>
-  </part>
-  <!--=========================================================-->
-</score-partwise>
diff --git a/input/regression/musicxml/13a-KeySignatures.xml b/input/regression/musicxml/13a-KeySignatures.xml
new file mode 100644 (file)
index 0000000..1279fd2
--- /dev/null
@@ -0,0 +1,815 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+  <movement-title>Different Key signatures</movement-title>
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">Various key signature: from 11
+            flats to 11 sharps (each one first one measure in major, then one
+            measure in minor)</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name>MusicXML Part</part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>-11</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>2</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+    </measure>
+    <measure number="2">
+      <attributes>
+        <key>
+          <fifths>-11</fifths>
+          <mode>minor</mode>
+        </key>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+    </measure>
+    <measure number="3">
+      <attributes>
+        <key>
+          <fifths>-10</fifths>
+          <mode>major</mode>
+        </key>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+    </measure>
+    <measure number="4">
+      <attributes>
+        <key>
+          <fifths>-10</fifths>
+          <mode>minor</mode>
+        </key>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+    </measure>
+    <measure number="5">
+      <attributes>
+        <key>
+          <fifths>-9</fifths>
+          <mode>major</mode>
+        </key>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+    </measure>
+    <measure number="6">
+      <attributes>
+        <key>
+          <fifths>-9</fifths>
+          <mode>minor</mode>
+        </key>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+    </measure>
+    <measure number="7">
+      <attributes>
+        <key>
+          <fifths>-8</fifths>
+          <mode>major</mode>
+        </key>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+    </measure>
+    <measure number="8">
+      <attributes>
+        <key>
+          <fifths>-8</fifths>
+          <mode>minor</mode>
+        </key>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+    </measure>
+    <measure number="9">
+      <attributes>
+        <key>
+          <fifths>-7</fifths>
+          <mode>major</mode>
+        </key>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+    </measure>
+    <measure number="10">
+      <attributes>
+        <key>
+          <fifths>-7</fifths>
+          <mode>minor</mode>
+        </key>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+    </measure>
+    <measure number="11">
+      <attributes>
+        <key>
+          <fifths>-6</fifths>
+          <mode>major</mode>
+        </key>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+    </measure>
+    <measure number="12">
+      <attributes>
+        <key>
+          <fifths>-6</fifths>
+          <mode>minor</mode>
+        </key>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+    </measure>
+    <measure number="13">
+      <attributes>
+        <key>
+          <fifths>-5</fifths>
+          <mode>major</mode>
+        </key>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+    </measure>
+    <measure number="14">
+      <attributes>
+        <key>
+          <fifths>-5</fifths>
+          <mode>minor</mode>
+        </key>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+    </measure>
+    <measure number="15">
+      <attributes>
+        <key>
+          <fifths>-4</fifths>
+          <mode>major</mode>
+        </key>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+    </measure>
+    <measure number="16">
+      <attributes>
+        <key>
+          <fifths>-4</fifths>
+          <mode>minor</mode>
+        </key>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+    </measure>
+    <measure number="17">
+      <attributes>
+        <key>
+          <fifths>-3</fifths>
+          <mode>major</mode>
+        </key>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+    </measure>
+    <measure number="18">
+      <attributes>
+        <key>
+          <fifths>-3</fifths>
+          <mode>minor</mode>
+        </key>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+    </measure>
+    <measure number="19">
+      <attributes>
+        <key>
+          <fifths>-2</fifths>
+          <mode>major</mode>
+        </key>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+    </measure>
+    <measure number="20">
+      <attributes>
+        <key>
+          <fifths>-2</fifths>
+          <mode>minor</mode>
+        </key>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+    </measure>
+    <measure number="21">
+      <attributes>
+        <key>
+          <fifths>-1</fifths>
+          <mode>major</mode>
+        </key>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+    </measure>
+    <measure number="22">
+      <attributes>
+        <key>
+          <fifths>-1</fifths>
+          <mode>minor</mode>
+        </key>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+    </measure>
+    <measure number="23">
+      <attributes>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+    </measure>
+    <measure number="24">
+      <attributes>
+        <key>
+          <fifths>0</fifths>
+          <mode>minor</mode>
+        </key>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+    </measure>
+    <measure number="25">
+      <attributes>
+        <key>
+          <fifths>1</fifths>
+          <mode>major</mode>
+        </key>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+    </measure>
+    <measure number="26">
+      <attributes>
+        <key>
+          <fifths>1</fifths>
+          <mode>minor</mode>
+        </key>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+    </measure>
+    <measure number="27">
+      <attributes>
+        <key>
+          <fifths>2</fifths>
+          <mode>major</mode>
+        </key>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+    </measure>
+    <measure number="28">
+      <attributes>
+        <key>
+          <fifths>2</fifths>
+          <mode>minor</mode>
+        </key>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+    </measure>
+    <measure number="29">
+      <attributes>
+        <key>
+          <fifths>3</fifths>
+          <mode>major</mode>
+        </key>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+    </measure>
+    <measure number="30">
+      <attributes>
+        <key>
+          <fifths>3</fifths>
+          <mode>minor</mode>
+        </key>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+    </measure>
+    <measure number="31">
+      <attributes>
+        <key>
+          <fifths>4</fifths>
+          <mode>major</mode>
+        </key>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+    </measure>
+    <measure number="32">
+      <attributes>
+        <key>
+          <fifths>4</fifths>
+          <mode>minor</mode>
+        </key>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+    </measure>
+    <measure number="33">
+      <attributes>
+        <key>
+          <fifths>5</fifths>
+          <mode>major</mode>
+        </key>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+    </measure>
+    <measure number="34">
+      <attributes>
+        <key>
+          <fifths>5</fifths>
+          <mode>minor</mode>
+        </key>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+    </measure>
+    <measure number="35">
+      <attributes>
+        <key>
+          <fifths>6</fifths>
+          <mode>major</mode>
+        </key>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+    </measure>
+    <measure number="36">
+      <attributes>
+        <key>
+          <fifths>6</fifths>
+          <mode>minor</mode>
+        </key>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+    </measure>
+    <measure number="37">
+      <attributes>
+        <key>
+          <fifths>7</fifths>
+          <mode>major</mode>
+        </key>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+    </measure>
+    <measure number="38">
+      <attributes>
+        <key>
+          <fifths>7</fifths>
+          <mode>minor</mode>
+        </key>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+    </measure>
+    <measure number="39">
+      <attributes>
+        <key>
+          <fifths>8</fifths>
+          <mode>major</mode>
+        </key>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+    </measure>
+    <measure number="40">
+      <attributes>
+        <key>
+          <fifths>8</fifths>
+          <mode>minor</mode>
+        </key>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+    </measure>
+    <measure number="41">
+      <attributes>
+        <key>
+          <fifths>9</fifths>
+          <mode>major</mode>
+        </key>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+    </measure>
+    <measure number="42">
+      <attributes>
+        <key>
+          <fifths>9</fifths>
+          <mode>minor</mode>
+        </key>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+    </measure>
+    <measure number="43">
+      <attributes>
+        <key>
+          <fifths>10</fifths>
+          <mode>major</mode>
+        </key>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+    </measure>
+    <measure number="44">
+      <attributes>
+        <key>
+          <fifths>10</fifths>
+          <mode>minor</mode>
+        </key>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+    </measure>
+    <measure number="45">
+      <attributes>
+        <key>
+          <fifths>11</fifths>
+          <mode>major</mode>
+        </key>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+    </measure>
+    <measure number="46">
+      <attributes>
+        <key>
+          <fifths>11</fifths>
+          <mode>minor</mode>
+        </key>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+</score-partwise>
diff --git a/input/regression/musicxml/13b-ChordAsGraceNote-Finale.xml b/input/regression/musicxml/13b-ChordAsGraceNote-Finale.xml
deleted file mode 100644 (file)
index 8efa525..0000000
+++ /dev/null
@@ -1,135 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
-                                "http://www.musicxml.org/dtds/partwise.dtd">
-<score-partwise>
-  <movement-title>Chord as a grace note</movement-title>
-  <identification>
-    <creator type="composer">Reinhold Kainhofer</creator>
-    <rights>Public Domain</rights>
-    <encoding>
-      <software>Finale 2007 for Windows</software>
-      <software>Dolet Light for Finale 2007</software>
-      <encoding-date>2007-09-16</encoding-date>
-    </encoding>
-  </identification>
-  <part-list>
-    <score-part id="P1">
-      <part-name>MusicXML Part</part-name>
-      <score-instrument id="P1-I1">
-        <instrument-name>Grand Piano</instrument-name>
-      </score-instrument>
-      <midi-instrument id="P1-I1">
-        <midi-channel>1</midi-channel>
-        <midi-program>1</midi-program>
-      </midi-instrument>
-    </score-part>
-  </part-list>
-  <!--=========================================================-->
-  <part id="P1">
-    <measure number="1">
-      <attributes>
-        <divisions>2</divisions>
-        <key>
-          <fifths>0</fifths>
-          <mode>major</mode>
-        </key>
-        <time symbol="common">
-          <beats>4</beats>
-          <beat-type>4</beat-type>
-        </time>
-        <clef>
-          <sign>G</sign>
-          <line>2</line>
-        </clef>
-      </attributes>
-      <sound tempo="120"/>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>down</stem>
-      </note>
-      <note>
-        <grace slash="yes"/>
-        <pitch>
-          <step>D</step>
-          <octave>5</octave>
-        </pitch>
-        <voice>1</voice>
-        <type>eighth</type>
-        <stem>up</stem>
-      </note>
-      <note>
-        <grace slash="yes"/>
-        <chord/>
-        <pitch>
-          <step>F</step>
-          <octave>5</octave>
-        </pitch>
-        <voice>1</voice>
-        <type>eighth</type>
-        <stem>up</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>down</stem>
-      </note>
-      <note>
-        <grace slash="yes"/>
-        <pitch>
-          <step>B</step>
-          <octave>4</octave>
-        </pitch>
-        <voice>1</voice>
-        <type>eighth</type>
-        <stem>up</stem>
-      </note>
-      <note>
-        <grace slash="yes"/>
-        <chord/>
-        <pitch>
-          <step>D</step>
-          <octave>5</octave>
-        </pitch>
-        <voice>1</voice>
-        <type>eighth</type>
-        <stem>up</stem>
-      </note>
-      <note>
-        <pitch>
-          <step>A</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>down</stem>
-      </note>
-      <note>
-        <chord/>
-        <pitch>
-          <step>C</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>down</stem>
-      </note>
-      <barline location="right">
-        <bar-style>light-heavy</bar-style>
-      </barline>
-    </measure>
-  </part>
-  <!--=========================================================-->
-</score-partwise>
diff --git a/input/regression/musicxml/13b-KeySignatures-ChurchModes.xml b/input/regression/musicxml/13b-KeySignatures-ChurchModes.xml
new file mode 100644 (file)
index 0000000..1f4852d
--- /dev/null
@@ -0,0 +1,179 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">All different modes: major, 
+        minor, ionian, dorian, phrygian, lydian, mixolydian, aeolian, and 
+        locrian; All modes are given with 2 sharps.</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name>MusicXML Part</part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>2</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>major</text></lyric>
+      </note>
+      <attributes>
+        <key>
+          <fifths>2</fifths>
+          <mode>minor</mode>
+        </key>
+      </attributes>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>minor</text></lyric>
+      </note>
+      <attributes>
+        <key>
+          <fifths>2</fifths>
+          <mode>ionian</mode>
+        </key>
+      </attributes>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>ionian</text></lyric>
+      </note>
+      <attributes>
+        <key>
+          <fifths>2</fifths>
+          <mode>dorian</mode>
+        </key>
+      </attributes>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>dorian</text></lyric>
+      </note>
+    </measure>
+    <measure number="2">
+      <attributes>
+        <key>
+          <fifths>2</fifths>
+          <mode>phrygian</mode>
+        </key>
+      </attributes>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>phrygian</text></lyric>
+      </note>
+      <attributes>
+        <key>
+          <fifths>2</fifths>
+          <mode>lydian</mode>
+        </key>
+      </attributes>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>lydian</text></lyric>
+      </note>
+      <attributes>
+        <key>
+          <fifths>2</fifths>
+          <mode>mixolydian</mode>
+        </key>
+      </attributes>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>mixolydian</text></lyric>
+      </note>
+      <attributes>
+        <key>
+          <fifths>2</fifths>
+          <mode>aeolian</mode>
+        </key>
+      </attributes>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>aeolian</text></lyric>
+      </note>
+    </measure>
+    <measure number="3">
+      <attributes>
+        <key>
+          <fifths>2</fifths>
+          <mode>locrian</mode>
+        </key>
+      </attributes>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>locrian</text></lyric>
+      </note>
+    </measure>
+  </part>
+</score-partwise>
diff --git a/input/regression/musicxml/13c-KeySignatures-NonTraditional.xml b/input/regression/musicxml/13c-KeySignatures-NonTraditional.xml
new file mode 100644 (file)
index 0000000..60872a9
--- /dev/null
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">Non-traditional key signatures,
+          where each alteration is separately given. Here we have (f sharp, 
+          a flat, b flat) and (c flatflat, g sharp sharp, d flat, b sharp, f 
+          natural), where in the second case an explicit octave is given for 
+          each alteration.</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name>MusicXML Part</part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <key-step>3</key-step>
+          <key-alter>1</key-alter>
+          <key-step>5</key-step>
+          <key-alter>-1</key-alter>
+          <key-step>6</key-step>
+          <key-alter>-1</key-alter>
+        </key>
+        <time>
+          <beats>2</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+    </measure>
+    <measure number="2">
+      <attributes>
+        <key>
+          <key-step>0</key-step>
+          <key-alter>-2</key-alter>
+          <key-step>4</key-step>
+          <key-alter>2</key-alter>
+          <key-step>1</key-step>
+          <key-alter>-1</key-alter>
+          <key-step>6</key-step>
+          <key-alter>1</key-alter>
+          <key-step>5</key-step>
+          <key-alter>0</key-alter>
+          <key-octave number="1">2</key-octave>
+          <key-octave number="2">3</key-octave>
+          <key-octave number="3">4</key-octave>
+          <key-octave number="4">5</key-octave>
+          <key-octave number="5">6</key-octave>
+        </key>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+</score-partwise>
diff --git a/input/regression/musicxml/13d-KeySignatures-Microtones.xml b/input/regression/musicxml/13d-KeySignatures-Microtones.xml
new file mode 100644 (file)
index 0000000..1115b5f
--- /dev/null
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">Non-traditional key signatures
+          with microtone alterations: (g flat-and-a-half,
+          a flat, b half-flat, c natural, d half-sharp, e sharp, f 
+          sharp-and-a-half).</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name>MusicXML Part</part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <key-step>4</key-step>
+          <key-alter>-1.5</key-alter>
+          <key-step>5</key-step>
+          <key-alter>-1</key-alter>
+          <key-step>6</key-step>
+          <key-alter>-0.5</key-alter>
+          <key-step>0</key-step>
+          <key-alter>0</key-alter>
+          <key-step>1</key-step>
+          <key-alter>0.5</key-alter>
+          <key-step>2</key-step>
+          <key-alter>1</key-alter>
+          <key-step>3</key-step>
+          <key-alter>1.5</key-alter>
+        </key>
+        <time>
+          <beats>2</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+</score-partwise>
diff --git a/input/regression/musicxml/14a-MultistaffClefDynamics-Finale.xml b/input/regression/musicxml/14a-MultistaffClefDynamics-Finale.xml
deleted file mode 100644 (file)
index 7c040fc..0000000
+++ /dev/null
@@ -1,416 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
-                                "http://www.musicxml.org/dtds/partwise.dtd">
-<score-partwise>
-  <movement-title>Piano staff with dynamics and one-staff clef changes</movement-title>
-  <identification>
-    <creator type="composer">Reinhold Kainhofer</creator>
-    <rights>Public Domain</rights>
-    <encoding>
-      <software>Finale 2007 for Windows</software>
-      <software>Dolet Light for Finale 2007</software>
-      <encoding-date>2007-09-18</encoding-date>
-    </encoding>
-  </identification>
-  <part-list>
-    <score-part id="P1">
-      <part-name>Piano</part-name>
-      <score-instrument id="P1-I1">
-        <instrument-name>Piano</instrument-name>
-      </score-instrument>
-      <midi-instrument id="P1-I1">
-        <midi-channel>1</midi-channel>
-        <midi-program>1</midi-program>
-      </midi-instrument>
-    </score-part>
-  </part-list>
-  <!--=========================================================-->
-  <part id="P1">
-    <measure number="1">
-      <attributes>
-        <divisions>8</divisions>
-        <key>
-          <fifths>0</fifths>
-          <mode>major</mode>
-        </key>
-        <time symbol="common">
-          <beats>4</beats>
-          <beat-type>4</beat-type>
-        </time>
-        <staves>2</staves>
-        <clef number="1">
-          <sign>G</sign>
-          <line>2</line>
-        </clef>
-        <clef number="2">
-          <sign>F</sign>
-          <line>4</line>
-        </clef>
-      </attributes>
-      <sound tempo="120"/>
-      <direction placement="below">
-        <direction-type>
-          <dynamics default-y="-62" relative-x="-6">
-            <ffff/>
-          </dynamics>
-        </direction-type>
-        <staff>1</staff>
-        <sound dynamics="141"/>
-      </direction>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>8</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>down</stem>
-        <staff>1</staff>
-      </note>
-      <note>
-        <pitch>
-          <step>B</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>8</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>down</stem>
-        <staff>1</staff>
-      </note>
-      <note>
-        <pitch>
-          <step>A</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>8</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>up</stem>
-        <staff>1</staff>
-      </note>
-      <direction placement="below">
-        <direction-type>
-          <dynamics default-y="-61">
-            <p/>
-          </dynamics>
-        </direction-type>
-        <offset>1</offset>
-        <staff>1</staff>
-        <sound dynamics="54"/>
-      </direction>
-      <note>
-        <pitch>
-          <step>G</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>8</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>up</stem>
-        <staff>1</staff>
-      </note>
-      <backup>
-        <duration>32</duration>
-      </backup>
-      <direction placement="below">
-        <direction-type>
-          <dynamics default-y="-62" relative-x="-6">
-            <ffff/>
-          </dynamics>
-        </direction-type>
-        <staff>2</staff>
-        <sound dynamics="141"/>
-      </direction>
-      <direction placement="below">
-        <direction-type>
-          <wedge default-y="-58" spread="0" type="crescendo"/>
-        </direction-type>
-        <offset>1</offset>
-        <staff>2</staff>
-      </direction>
-      <note>
-        <pitch>
-          <step>A</step>
-          <octave>2</octave>
-        </pitch>
-        <duration>8</duration>
-        <voice>2</voice>
-        <type>quarter</type>
-        <stem>up</stem>
-        <staff>2</staff>
-      </note>
-      <note>
-        <pitch>
-          <step>B</step>
-          <octave>2</octave>
-        </pitch>
-        <duration>8</duration>
-        <voice>2</voice>
-        <type>quarter</type>
-        <stem>up</stem>
-        <staff>2</staff>
-      </note>
-      <direction>
-        <direction-type>
-          <wedge spread="15" type="stop"/>
-        </direction-type>
-        <offset>3</offset>
-        <staff>2</staff>
-      </direction>
-      <note>
-        <pitch>
-          <step>C</step>
-          <octave>3</octave>
-        </pitch>
-        <duration>8</duration>
-        <voice>2</voice>
-        <type>quarter</type>
-        <stem>up</stem>
-        <staff>2</staff>
-      </note>
-      <note>
-        <pitch>
-          <step>D</step>
-          <octave>3</octave>
-        </pitch>
-        <duration>8</duration>
-        <voice>2</voice>
-        <type>quarter</type>
-        <stem>down</stem>
-        <staff>2</staff>
-      </note>
-    </measure>
-    <!--=======================================================-->
-    <measure number="2">
-      <attributes>
-        <key>
-          <fifths>2</fifths>
-          <mode>major</mode>
-        </key>
-        <clef number="2">
-          <sign>G</sign>
-          <line>2</line>
-        </clef>
-      </attributes>
-      <note>
-        <pitch>
-          <step>A</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>8</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>up</stem>
-        <staff>1</staff>
-      </note>
-      <note>
-        <pitch>
-          <step>B</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>8</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>down</stem>
-        <staff>1</staff>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step>
-          <alter>1</alter>
-          <octave>5</octave>
-        </pitch>
-        <duration>8</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>down</stem>
-        <staff>1</staff>
-      </note>
-      <note>
-        <pitch>
-          <step>D</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>8</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>down</stem>
-        <staff>1</staff>
-      </note>
-      <backup>
-        <duration>32</duration>
-      </backup>
-      <note>
-        <pitch>
-          <step>F</step>
-          <alter>1</alter>
-          <octave>3</octave>
-        </pitch>
-        <duration>8</duration>
-        <voice>2</voice>
-        <type>quarter</type>
-        <stem>up</stem>
-        <staff>2</staff>
-      </note>
-      <note>
-        <pitch>
-          <step>G</step>
-          <octave>3</octave>
-        </pitch>
-        <duration>8</duration>
-        <voice>2</voice>
-        <type>quarter</type>
-        <stem>up</stem>
-        <staff>2</staff>
-      </note>
-      <note>
-        <pitch>
-          <step>A</step>
-          <octave>3</octave>
-        </pitch>
-        <duration>8</duration>
-        <voice>2</voice>
-        <type>quarter</type>
-        <stem>up</stem>
-        <staff>2</staff>
-      </note>
-      <note>
-        <pitch>
-          <step>B</step>
-          <octave>3</octave>
-        </pitch>
-        <duration>8</duration>
-        <voice>2</voice>
-        <type>quarter</type>
-        <stem>up</stem>
-        <staff>2</staff>
-      </note>
-    </measure>
-    <!--=======================================================-->
-    <measure number="3">
-      <attributes>
-        <clef number="1">
-          <sign>C</sign>
-          <line>2</line>
-        </clef>
-      </attributes>
-      <note>
-        <pitch>
-          <step>D</step>
-          <octave>5</octave>
-        </pitch>
-        <duration>8</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>down</stem>
-        <staff>1</staff>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step>
-          <alter>1</alter>
-          <octave>5</octave>
-        </pitch>
-        <duration>8</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>down</stem>
-        <staff>1</staff>
-      </note>
-      <note>
-        <pitch>
-          <step>B</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>8</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>down</stem>
-        <staff>1</staff>
-      </note>
-      <note>
-        <pitch>
-          <step>A</step>
-          <octave>4</octave>
-        </pitch>
-        <duration>8</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-        <stem>down</stem>
-        <staff>1</staff>
-      </note>
-      <backup>
-        <duration>32</duration>
-      </backup>
-      <note>
-        <pitch>
-          <step>A</step>
-          <octave>2</octave>
-        </pitch>
-        <duration>8</duration>
-        <voice>2</voice>
-        <type>quarter</type>
-        <stem>up</stem>
-        <staff>2</staff>
-      </note>
-      <note>
-        <pitch>
-          <step>B</step>
-          <octave>2</octave>
-        </pitch>
-        <duration>8</duration>
-        <voice>2</voice>
-        <type>quarter</type>
-        <stem>up</stem>
-        <staff>2</staff>
-      </note>
-      <note>
-        <pitch>
-          <step>C</step>
-          <alter>1</alter>
-          <octave>3</octave>
-        </pitch>
-        <duration>8</duration>
-        <voice>2</voice>
-        <type>quarter</type>
-        <stem>up</stem>
-        <staff>2</staff>
-      </note>
-      <note>
-        <pitch>
-          <step>D</step>
-          <octave>3</octave>
-        </pitch>
-        <duration>8</duration>
-        <voice>2</voice>
-        <type>quarter</type>
-        <stem>up</stem>
-        <staff>2</staff>
-      </note>
-    </measure>
-    <!--=======================================================-->
-    <measure number="4">
-      <note>
-        <rest/>
-        <duration>32</duration>
-        <voice>1</voice>
-        <staff>1</staff>
-      </note>
-      <backup>
-        <duration>32</duration>
-      </backup>
-      <note>
-        <rest/>
-        <duration>32</duration>
-        <voice>2</voice>
-        <staff>2</staff>
-      </note>
-      <barline location="right">
-        <bar-style>light-heavy</bar-style>
-      </barline>
-    </measure>
-  </part>
-  <!--=========================================================-->
-</score-partwise>
diff --git a/input/regression/musicxml/14b-DifferentKeys-PJB.xml b/input/regression/musicxml/14b-DifferentKeys-PJB.xml
deleted file mode 100644 (file)
index e863e84..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 0.6b Partwise//EN"
- "http://www.musicxml.org/dtds/partwise.dtd">
-<score-partwise>
-       <identification>
-               <encoding>
-                       <software>/usr/bin/vi</software>
-                       <encoding-date>2007-01-22</encoding-date>
-               </encoding>
-       </identification>
-       <part-list>
-               <score-part id="P1">
-                       <part-name>MIDI Track 1</part-name>
-               </score-part>
-       </part-list>
-       <part id="P1">
-               <measure number="1">
-                       <attributes>
-                               <divisions>96</divisions>
-                               <key number="1"><fifths>0</fifths></key>
-                               <time><beats>4</beats><beat-type>4</beat-type></time>
-                               <staves>2</staves>
-                               <clef number="1"><sign>G</sign><line>2</line></clef>
-                               <clef number="2"><sign>F</sign><line>4</line></clef>
-                       </attributes>
-                       <note>
-                               <pitch><step>F</step><octave>4</octave></pitch>
-                               <duration>384</duration>
-                               <voice>1</voice>
-                               <type>whole</type>
-                               <staff>1</staff>
-                       </note>
-                       <backup><duration>384</duration></backup>
-                       <attributes>
-                               <key number="2"><fifths>2</fifths></key>
-                       </attributes>
-                       <note>
-                               <pitch><step>B</step><octave>2</octave></pitch>
-                               <duration>384</duration>
-                               <voice>2</voice>
-                               <type>whole</type>
-                               <staff>2</staff>
-                       </note>
-               </measure>
-       </part>
-</score-partwise>
diff --git a/input/regression/musicxml/14b-DifferentKeysAfterBackup-PJB.xml b/input/regression/musicxml/14b-DifferentKeysAfterBackup-PJB.xml
deleted file mode 100644 (file)
index 72abf7b..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 0.6b Partwise//EN"
- "http://www.musicxml.org/dtds/partwise.dtd">
-<score-partwise>
-       <identification>
-               <encoding>
-                       <software>/usr/bin/vi</software>
-                       <encoding-date>2007-01-22</encoding-date>
-               </encoding>
-       </identification>
-       <part-list>
-               <score-part id="P1">
-                       <part-name>MIDI Track 1</part-name>
-               </score-part>
-       </part-list>
-       <part id="P1">
-               <measure number="1">
-                       <attributes>
-                               <divisions>96</divisions>
-                               <key number="1"><fifths>0</fifths></key>
-                               <time><beats>4</beats><beat-type>4</beat-type></time>
-                               <staves>2</staves>
-                               <clef number="1"><sign>G</sign><line>2</line></clef>
-                       </attributes>
-                       <note>
-                               <pitch><step>F</step><octave>4</octave></pitch>
-                               <duration>384</duration>
-                               <voice>1</voice>
-                               <type>whole</type>
-                               <staff>1</staff>
-                       </note>
-                       <backup><duration>384</duration></backup>
-                       <attributes>
-                               <key number="2"><fifths>2</fifths></key>
-                               <clef number="2"><sign>F</sign><line>4</line></clef>
-                       </attributes>
-                       <note>
-                               <pitch><step>B</step><octave>2</octave></pitch>
-                               <duration>384</duration>
-                               <voice>2</voice>
-                               <type>whole</type>
-                               <staff>2</staff>
-                       </note>
-               </measure>
-       </part>
-</score-partwise>
diff --git a/input/regression/musicxml/14c-StaffChange-Finale.xml b/input/regression/musicxml/14c-StaffChange-Finale.xml
deleted file mode 100644 (file)
index 5ac8eff..0000000
+++ /dev/null
@@ -1,361 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>\r
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"\r
-                                "http://www.musicxml.org/dtds/partwise.dtd">\r
-<score-partwise>\r
-  <movement-title>Staff change in piano staff</movement-title>\r
-  <identification>\r
-      <creator type="composer">The voice from the second staff has some notes/chords on the first staff</creator>\r
-      <creator type="arranger">The final two chords have some notes on the first, some on the second staff</creator>\r
-    <encoding>\r
-      <software>Finale 2007 for Windows</software>\r
-      <software>Dolet Light for Finale 2007</software>\r
-      <encoding-date>2007-10-27</encoding-date>\r
-    </encoding>\r
-  </identification>\r
-  <part-list>\r
-    <score-part id="P1">\r
-      <part-name>Piano</part-name>\r
-      <score-instrument id="P1-I1">\r
-        <instrument-name>Piano</instrument-name>\r
-      </score-instrument>\r
-      <midi-instrument id="P1-I1">\r
-        <midi-channel>1</midi-channel>\r
-        <midi-program>1</midi-program>\r
-      </midi-instrument>\r
-    </score-part>\r
-  </part-list>\r
-  <!--=========================================================-->\r
-  <part id="P1">\r
-    <measure number="1">\r
-      <attributes>\r
-        <divisions>2</divisions>\r
-        <key>\r
-          <fifths>0</fifths>\r
-          <mode>major</mode>\r
-        </key>\r
-        <time symbol="common">\r
-          <beats>4</beats>\r
-          <beat-type>4</beat-type>\r
-        </time>\r
-        <staves>2</staves>\r
-        <clef number="1">\r
-          <sign>G</sign>\r
-          <line>2</line>\r
-        </clef>\r
-        <clef number="2">\r
-          <sign>F</sign>\r
-          <line>4</line>\r
-        </clef>\r
-      </attributes>\r
-      <sound tempo="120"/>\r
-      <note>\r
-        <rest/>\r
-        <duration>8</duration>\r
-        <voice>1</voice>\r
-        <staff>1</staff>\r
-      </note>\r
-      <backup>\r
-        <duration>8</duration>\r
-      </backup>\r
-      <note>\r
-        <pitch>\r
-          <step>A</step>\r
-          <octave>3</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>2</voice>\r
-        <type>eighth</type>\r
-        <stem>down</stem>\r
-        <staff>2</staff>\r
-        <beam number="1">begin</beam>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>E</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>2</voice>\r
-        <type>eighth</type>\r
-        <stem>down</stem>\r
-        <staff>1</staff>\r
-        <beam number="1">continue</beam>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>A</step>\r
-          <octave>3</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>2</voice>\r
-        <type>eighth</type>\r
-        <stem>down</stem>\r
-        <staff>2</staff>\r
-        <beam number="1">continue</beam>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>E</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>2</voice>\r
-        <type>eighth</type>\r
-        <stem>down</stem>\r
-        <staff>1</staff>\r
-        <beam number="1">end</beam>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>C</step>\r
-          <octave>5</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>2</voice>\r
-        <type>eighth</type>\r
-        <stem>down</stem>\r
-        <staff>1</staff>\r
-        <beam number="1">begin</beam>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>E</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>2</voice>\r
-        <type>eighth</type>\r
-        <stem>down</stem>\r
-        <staff>1</staff>\r
-        <beam number="1">continue</beam>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>A</step>\r
-          <octave>3</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>2</voice>\r
-        <type>eighth</type>\r
-        <stem>down</stem>\r
-        <staff>2</staff>\r
-        <beam number="1">continue</beam>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>B</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>2</voice>\r
-        <type>eighth</type>\r
-        <stem>down</stem>\r
-        <staff>2</staff>\r
-        <beam number="1">end</beam>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="2">\r
-      <note>\r
-        <rest/>\r
-        <duration>8</duration>\r
-        <voice>1</voice>\r
-        <staff>1</staff>\r
-      </note>\r
-      <backup>\r
-        <duration>8</duration>\r
-      </backup>\r
-      <note>\r
-        <pitch>\r
-          <step>C</step>\r
-          <octave>3</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>2</voice>\r
-        <type>eighth</type>\r
-        <stem>up</stem>\r
-        <staff>2</staff>\r
-        <beam number="1">begin</beam>\r
-      </note>\r
-      <note>\r
-        <chord/>\r
-        <pitch>\r
-          <step>E</step>\r
-          <octave>3</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>2</voice>\r
-        <type>eighth</type>\r
-        <stem>up</stem>\r
-        <staff>2</staff>\r
-      </note>\r
-      <note>\r
-        <chord/>\r
-        <pitch>\r
-          <step>G</step>\r
-          <octave>3</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>2</voice>\r
-        <type>eighth</type>\r
-        <stem>up</stem>\r
-        <staff>2</staff>\r
-      </note>\r
-      <note>\r
-        <chord/>\r
-        <pitch>\r
-          <step>C</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>2</voice>\r
-        <type>eighth</type>\r
-        <stem>up</stem>\r
-        <staff>2</staff>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>C</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>2</voice>\r
-        <type>eighth</type>\r
-        <stem>up</stem>\r
-        <staff>1</staff>\r
-        <beam number="1">continue</beam>\r
-      </note>\r
-      <note>\r
-        <chord/>\r
-        <pitch>\r
-          <step>E</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>2</voice>\r
-        <type>eighth</type>\r
-        <stem>up</stem>\r
-        <staff>1</staff>\r
-      </note>\r
-      <note>\r
-        <chord/>\r
-        <pitch>\r
-          <step>G</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>2</voice>\r
-        <type>eighth</type>\r
-        <stem>up</stem>\r
-        <staff>1</staff>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>C</step>\r
-          <octave>3</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>2</voice>\r
-        <type>eighth</type>\r
-        <stem>up</stem>\r
-        <staff>2</staff>\r
-        <beam number="1">continue</beam>\r
-      </note>\r
-      <note>\r
-        <chord/>\r
-        <pitch>\r
-          <step>E</step>\r
-          <octave>3</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>2</voice>\r
-        <type>eighth</type>\r
-        <stem>up</stem>\r
-        <staff>2</staff>\r
-      </note>\r
-      <note>\r
-        <chord/>\r
-        <pitch>\r
-          <step>G</step>\r
-          <octave>3</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>2</voice>\r
-        <type>eighth</type>\r
-        <stem>up</stem>\r
-        <staff>2</staff>\r
-      </note>\r
-      <note>\r
-        <chord/>\r
-        <pitch>\r
-          <step>C</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>2</voice>\r
-        <type>eighth</type>\r
-        <stem>up</stem>\r
-        <staff>1</staff>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>G</step>\r
-          <octave>3</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>2</voice>\r
-        <type>eighth</type>\r
-        <stem>up</stem>\r
-        <staff>2</staff>\r
-        <beam number="1">end</beam>\r
-      </note>\r
-      <note>\r
-        <chord/>\r
-        <pitch>\r
-          <step>C</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>2</voice>\r
-        <type>eighth</type>\r
-        <stem>up</stem>\r
-        <staff>1</staff>\r
-      </note>\r
-      <note>\r
-        <chord/>\r
-        <pitch>\r
-          <step>E</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>2</voice>\r
-        <type>eighth</type>\r
-        <stem>up</stem>\r
-        <staff>1</staff>\r
-      </note>\r
-      <note>\r
-        <chord/>\r
-        <pitch>\r
-          <step>G</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>2</voice>\r
-        <type>eighth</type>\r
-        <stem>up</stem>\r
-        <staff>1</staff>\r
-      </note>\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>2</voice>\r
-        <type>half</type>\r
-        <staff>2</staff>\r
-      </note>\r
-      <barline location="right">\r
-        <bar-style>light-heavy</bar-style>\r
-      </barline>\r
-    </measure>\r
-  </part>\r
-  <!--=========================================================-->\r
-</score-partwise>\r
diff --git a/input/regression/musicxml/15a-Percussion-Finale.xml b/input/regression/musicxml/15a-Percussion-Finale.xml
deleted file mode 100644 (file)
index b404932..0000000
+++ /dev/null
@@ -1,186 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
-                                "http://www.musicxml.org/dtds/partwise.dtd">
-<score-partwise version="1.1">
-  <movement-title>Percussion Staves</movement-title>
-  <identification/>
-  <part-list>
-    <score-part id="P1">
-      <part-name>Timpani</part-name>
-      <part-abbreviation>Timp.</part-abbreviation>
-    </score-part>
-    <part-group number="1" type="start">
-      <group-symbol>bracket</group-symbol>
-      <group-barline>yes</group-barline>
-    </part-group>
-    <score-part id="P2">
-      <part-name>Cymbals</part-name>
-      <part-abbreviation>Cym.</part-abbreviation>
-    </score-part>
-    <score-part id="P3">
-      <part-name>Triangle</part-name>
-      <part-abbreviation>Tri.</part-abbreviation>
-    </score-part>
-    <part-group number="1" type="stop"/>
-  </part-list>
-  <!--=========================================================-->
-  <part id="P1">
-    <measure number="1">
-      <attributes>
-        <divisions>1</divisions>
-        <key>
-          <fifths>0</fifths>
-          <mode>major</mode>
-        </key>
-        <time>
-          <beats>4</beats>
-          <beat-type>4</beat-type>
-        </time>
-        <clef>
-          <sign>F</sign>
-          <line>4</line>
-        </clef>
-      </attributes>
-      <note>
-        <pitch>
-          <step>E</step>
-          <octave>3</octave>
-        </pitch>
-        <duration>4</duration>
-        <tie type="start"/>
-        <voice>1</voice>
-        <type>whole</type>
-        <notations>
-          <tied type="start"/>
-          <ornaments/>
-        </notations>
-      </note>
-    </measure>
-    <!--=======================================================-->
-    <measure number="2">
-      <note>
-        <pitch>
-          <step>E</step>
-          <octave>3</octave>
-        </pitch>
-        <duration>4</duration>
-        <tie type="stop"/>
-        <voice>1</voice>
-        <type>whole</type>
-        <notations>
-          <tied type="stop"/>
-          <ornaments/>
-        </notations>
-      </note>
-      <barline location="right">
-        <bar-style>light-heavy</bar-style>
-      </barline>
-    </measure>
-  </part>
-  <!--=========================================================-->
-  <part id="P2">
-    <measure number="1">
-      <attributes>
-        <divisions>1</divisions>
-        <key>
-          <fifths>0</fifths>
-          <mode>major</mode>
-        </key>
-        <time>
-          <beats>4</beats>
-          <beat-type>4</beat-type>
-        </time>
-        <clef>
-          <sign>percussion</sign>
-        </clef>
-      </attributes>
-      <note>
-        <unpitched>
-          <display-step>E</display-step>
-          <display-octave>5</display-octave>
-        </unpitched>
-        <duration>3</duration>
-        <voice>1</voice>
-        <type>half</type>
-        <dot/>
-      </note>
-      <note>
-        <unpitched>
-          <display-step>E</display-step>
-          <display-octave>5</display-octave>
-        </unpitched>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-    </measure>
-    <!--=======================================================-->
-    <measure number="2">
-      <note>
-        <unpitched>
-          <display-step>D</display-step>
-          <display-octave>5</display-octave>
-        </unpitched>
-        <duration>4</duration>
-        <voice>1</voice>
-        <type>whole</type>
-      </note>
-      <barline location="right">
-        <bar-style>light-heavy</bar-style>
-      </barline>
-    </measure>
-  </part>
-  <!--=========================================================-->
-  <part id="P3">
-    <measure number="1">
-      <attributes>
-        <divisions>1</divisions>
-        <time>
-          <beats>4</beats>
-          <beat-type>4</beat-type>
-        </time>
-        <clef>
-          <sign>percussion</sign>
-        </clef>
-        <staff-details>
-          <staff-lines>1</staff-lines>
-        </staff-details>
-      </attributes>
-      <note>
-        <unpitched>
-          <display-step>F</display-step>
-          <display-octave>4</display-octave>
-        </unpitched>
-        <duration>3</duration>
-        <voice>1</voice>
-        <type>half</type>
-        <dot/>
-      </note>
-      <note>
-        <unpitched>
-          <display-step>F</display-step>
-          <display-octave>4</display-octave>
-        </unpitched>
-        <duration>1</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-    </measure>
-    <!--=======================================================-->
-    <measure number="2">
-      <note>
-        <unpitched>
-          <display-step>E</display-step>
-          <display-octave>4</display-octave>
-        </unpitched>
-        <duration>4</duration>
-        <voice>1</voice>
-        <type>whole</type>
-      </note>
-      <barline location="right">
-        <bar-style>light-heavy</bar-style>
-      </barline>
-    </measure>
-  </part>
-  <!--=========================================================-->
-</score-partwise>
diff --git a/input/regression/musicxml/17a-Chords-Finale.xml b/input/regression/musicxml/17a-Chords-Finale.xml
deleted file mode 100644 (file)
index 385bd36..0000000
+++ /dev/null
@@ -1,203 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>\r
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"\r
-                                "http://www.musicxml.org/dtds/partwise.dtd">\r
-<score-partwise>\r
-  <movement-title>Chordnames example</movement-title>\r
-  <identification>\r
-    <encoding>\r
-      <software>Finale 2007 for Windows</software>\r
-      <software>Dolet Light for Finale 2007</software>\r
-      <encoding-date>2007-10-25</encoding-date>\r
-    </encoding>\r
-  </identification>\r
-  <part-list>\r
-    <score-part id="P1">\r
-      <part-name>MusicXML Part</part-name>\r
-      <score-instrument id="P1-I1">\r
-        <instrument-name>Acoustic Grand Piano</instrument-name>\r
-      </score-instrument>\r
-      <midi-instrument id="P1-I1">\r
-        <midi-channel>1</midi-channel>\r
-        <midi-program>1</midi-program>\r
-      </midi-instrument>\r
-    </score-part>\r
-  </part-list>\r
-  <!--=========================================================-->\r
-  <part id="P1">\r
-    <measure number="1">\r
-      <attributes>\r
-        <divisions>1</divisions>\r
-        <key>\r
-          <fifths>0</fifths>\r
-          <mode>major</mode>\r
-        </key>\r
-        <time symbol="common">\r
-          <beats>4</beats>\r
-          <beat-type>4</beat-type>\r
-        </time>\r
-        <clef>\r
-          <sign>G</sign>\r
-          <line>2</line>\r
-        </clef>\r
-      </attributes>\r
-      <sound tempo="120"/>\r
-      <harmony default-y="40">\r
-        <root>\r
-          <root-step>C</root-step>\r
-        </root>\r
-        <kind>major</kind>\r
-      </harmony>\r
-      <note>\r
-        <pitch>\r
-          <step>A</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-      </note>\r
-      <harmony default-y="40">\r
-        <root>\r
-          <root-step>C</root-step>\r
-        </root>\r
-        <kind>major-seventh</kind>\r
-        <degree>\r
-          <degree-value>11</degree-value>\r
-          <degree-alter>1</degree-alter>\r
-          <degree-type>add</degree-type>\r
-        </degree>\r
-      </harmony>\r
-      <note>\r
-        <pitch>\r
-          <step>A</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-      </note>\r
-      <harmony default-y="40">\r
-        <root>\r
-          <root-step>B</root-step>\r
-        </root>\r
-        <kind>dominant</kind>\r
-        <degree>\r
-          <degree-value>5</degree-value>\r
-          <degree-alter>1</degree-alter>\r
-          <degree-type>alter</degree-type>\r
-        </degree>\r
-        <degree>\r
-          <degree-value>9</degree-value>\r
-          <degree-alter>1</degree-alter>\r
-          <degree-type>add</degree-type>\r
-        </degree>\r
-      </harmony>\r
-      <note>\r
-        <pitch>\r
-          <step>A</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-      </note>\r
-      <harmony default-y="40">\r
-        <root>\r
-          <root-step>E</root-step>\r
-          <root-alter>-1</root-alter>\r
-        </root>\r
-        <kind>major</kind>\r
-        <degree>\r
-          <degree-value>2</degree-value>\r
-          <degree-alter>0</degree-alter>\r
-          <degree-type>add</degree-type>\r
-        </degree>\r
-      </harmony>\r
-      <note>\r
-        <pitch>\r
-          <step>A</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="2">\r
-      <harmony default-y="40">\r
-        <root>\r
-          <root-step>G</root-step>\r
-        </root>\r
-        <kind>minor</kind>\r
-      </harmony>\r
-      <note>\r
-        <pitch>\r
-          <step>A</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-      </note>\r
-      <harmony default-y="40">\r
-        <root>\r
-          <root-step>D</root-step>\r
-          <root-alter>1</root-alter>\r
-        </root>\r
-        <kind>major-seventh</kind>\r
-      </harmony>\r
-      <note>\r
-        <pitch>\r
-          <step>A</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-      </note>\r
-      <harmony default-y="40">\r
-        <root>\r
-          <root-step>A</root-step>\r
-        </root>\r
-        <kind>diminished-seventh</kind>\r
-      </harmony>\r
-      <note>\r
-        <pitch>\r
-          <step>A</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-      </note>\r
-      <harmony default-y="40">\r
-        <root>\r
-          <root-step>A</root-step>\r
-        </root>\r
-        <kind>augmented</kind>\r
-      </harmony>\r
-      <note>\r
-        <pitch>\r
-          <step>A</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-      </note>\r
-      <barline location="right">\r
-        <bar-style>light-heavy</bar-style>\r
-      </barline>\r
-    </measure>\r
-  </part>\r
-  <!--=========================================================-->\r
-</score-partwise>\r
diff --git a/input/regression/musicxml/17b-Fretboards-Finale.xml b/input/regression/musicxml/17b-Fretboards-Finale.xml
deleted file mode 100644 (file)
index bfd24c5..0000000
+++ /dev/null
@@ -1,229 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>\r
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"\r
-                                "http://www.musicxml.org/dtds/partwise.dtd">\r
-<score-partwise>\r
-  <movement-title>Fretboards</movement-title>\r
-  <identification>\r
-    <encoding>\r
-      <software>Finale 2007 for Windows</software>\r
-      <software>Dolet Light for Finale 2007</software>\r
-      <encoding-date>2007-10-25</encoding-date>\r
-    </encoding>\r
-  </identification>\r
-  <part-list>\r
-    <score-part id="P1">\r
-      <part-name>MusicXML Part</part-name>\r
-      <score-instrument id="P1-I1">\r
-        <instrument-name>Acoustic Grand Piano</instrument-name>\r
-      </score-instrument>\r
-      <midi-instrument id="P1-I1">\r
-        <midi-channel>1</midi-channel>\r
-        <midi-program>1</midi-program>\r
-      </midi-instrument>\r
-    </score-part>\r
-  </part-list>\r
-  <!--=========================================================-->\r
-  <part id="P1">\r
-    <measure number="1">\r
-      <attributes>\r
-        <divisions>1</divisions>\r
-        <key>\r
-          <fifths>0</fifths>\r
-          <mode>major</mode>\r
-        </key>\r
-        <time symbol="common">\r
-          <beats>4</beats>\r
-          <beat-type>4</beat-type>\r
-        </time>\r
-        <clef>\r
-          <sign>G</sign>\r
-          <line>2</line>\r
-        </clef>\r
-      </attributes>\r
-      <sound tempo="120"/>\r
-      <harmony default-y="100">\r
-        <root>\r
-          <root-step>D</root-step>\r
-        </root>\r
-        <kind>major</kind>\r
-        <frame>\r
-          <frame-strings>6</frame-strings>\r
-          <frame-frets>4</frame-frets>\r
-          <frame-note>\r
-            <string>6</string>\r
-            <fret>0</fret>\r
-          </frame-note>\r
-          <frame-note>\r
-            <string>5</string>\r
-            <fret>0</fret>\r
-          </frame-note>\r
-          <frame-note>\r
-            <string>4</string>\r
-            <fret>0</fret>\r
-          </frame-note>\r
-          <frame-note>\r
-            <string>3</string>\r
-            <fret>2</fret>\r
-          </frame-note>\r
-          <frame-note>\r
-            <string>2</string>\r
-            <fret>3</fret>\r
-          </frame-note>\r
-          <frame-note>\r
-            <string>1</string>\r
-            <fret>2</fret>\r
-          </frame-note>\r
-        </frame>\r
-      </harmony>\r
-      <note>\r
-        <pitch>\r
-          <step>A</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-      </note>\r
-      <harmony default-y="100">\r
-        <root>\r
-          <root-step>C</root-step>\r
-        </root>\r
-        <kind>dominant</kind>\r
-        <frame>\r
-          <frame-strings>6</frame-strings>\r
-          <frame-frets>4</frame-frets>\r
-          <frame-note>\r
-            <string>6</string>\r
-            <fret>0</fret>\r
-          </frame-note>\r
-          <frame-note>\r
-            <string>5</string>\r
-            <fret>3</fret>\r
-          </frame-note>\r
-          <frame-note>\r
-            <string>4</string>\r
-            <fret>2</fret>\r
-          </frame-note>\r
-          <frame-note>\r
-            <string>3</string>\r
-            <fret>3</fret>\r
-          </frame-note>\r
-          <frame-note>\r
-            <string>2</string>\r
-            <fret>1</fret>\r
-          </frame-note>\r
-          <frame-note>\r
-            <string>1</string>\r
-            <fret>0</fret>\r
-          </frame-note>\r
-        </frame>\r
-      </harmony>\r
-      <note>\r
-        <pitch>\r
-          <step>A</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-      </note>\r
-      <harmony default-y="100">\r
-        <root>\r
-          <root-step>C</root-step>\r
-        </root>\r
-        <kind>minor-seventh</kind>\r
-        <frame>\r
-          <frame-strings>6</frame-strings>\r
-          <frame-frets>4</frame-frets>\r
-          <first-fret>3</first-fret>\r
-          <frame-note>\r
-            <string>6</string>\r
-            <fret>0</fret>\r
-          </frame-note>\r
-          <frame-note>\r
-            <string>5</string>\r
-            <fret>3</fret>\r
-          </frame-note>\r
-          <frame-note>\r
-            <string>4</string>\r
-            <fret>5</fret>\r
-          </frame-note>\r
-          <frame-note>\r
-            <string>3</string>\r
-            <fret>3</fret>\r
-          </frame-note>\r
-          <frame-note>\r
-            <string>2</string>\r
-            <fret>4</fret>\r
-          </frame-note>\r
-          <frame-note>\r
-            <string>1</string>\r
-            <fret>3</fret>\r
-          </frame-note>\r
-        </frame>\r
-      </harmony>\r
-      <note>\r
-        <pitch>\r
-          <step>A</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-      </note>\r
-      <harmony default-y="100">\r
-        <root>\r
-          <root-step>C</root-step>\r
-        </root>\r
-        <kind>dominant</kind>\r
-        <degree>\r
-          <degree-value>13</degree-value>\r
-          <degree-alter>-1</degree-alter>\r
-          <degree-type>add</degree-type>\r
-        </degree>\r
-        <frame>\r
-          <frame-strings>6</frame-strings>\r
-          <frame-frets>4</frame-frets>\r
-          <first-fret>8</first-fret>\r
-          <frame-note>\r
-            <string>6</string>\r
-            <fret>8</fret>\r
-          </frame-note>\r
-          <frame-note>\r
-            <string>4</string>\r
-            <fret>8</fret>\r
-          </frame-note>\r
-          <frame-note>\r
-            <string>3</string>\r
-            <fret>9</fret>\r
-          </frame-note>\r
-          <frame-note>\r
-            <string>2</string>\r
-            <fret>9</fret>\r
-          </frame-note>\r
-          <frame-note>\r
-            <string>1</string>\r
-            <fret>0</fret>\r
-          </frame-note>\r
-        </frame>\r
-      </harmony>\r
-      <note>\r
-        <pitch>\r
-          <step>A</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-      </note>\r
-      <barline location="right">\r
-        <bar-style>light-heavy</bar-style>\r
-      </barline>\r
-    </measure>\r
-  </part>\r
-  <!--=========================================================-->\r
-</score-partwise>\r
diff --git a/input/regression/musicxml/17c-ChordsFrets-Finale.xml b/input/regression/musicxml/17c-ChordsFrets-Finale.xml
deleted file mode 100644 (file)
index 8a5de44..0000000
+++ /dev/null
@@ -1,441 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>\r
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"\r
-                                "http://www.musicxml.org/dtds/partwise.dtd">\r
-<score-partwise>\r
-  <movement-title>Chords and fretboards example</movement-title>\r
-  <identification>\r
-    <encoding>\r
-      <software>Finale 2007 for Windows</software>\r
-      <software>Dolet Light for Finale 2007</software>\r
-      <encoding-date>2007-10-26</encoding-date>\r
-    </encoding>\r
-  </identification>\r
-  <part-list>\r
-    <score-part id="P1">\r
-      <part-name>MusicXML Part</part-name>\r
-      <score-instrument id="P1-I1">\r
-        <instrument-name>Acoustic Grand Piano</instrument-name>\r
-      </score-instrument>\r
-      <midi-instrument id="P1-I1">\r
-        <midi-channel>1</midi-channel>\r
-        <midi-program>1</midi-program>\r
-      </midi-instrument>\r
-    </score-part>\r
-  </part-list>\r
-  <!--=========================================================-->\r
-  <part id="P1">\r
-    <measure number="1">\r
-      <attributes>\r
-        <divisions>1</divisions>\r
-        <key>\r
-          <fifths>0</fifths>\r
-          <mode>major</mode>\r
-        </key>\r
-        <time symbol="common">\r
-          <beats>4</beats>\r
-          <beat-type>4</beat-type>\r
-        </time>\r
-        <clef>\r
-          <sign>G</sign>\r
-          <line>2</line>\r
-        </clef>\r
-      </attributes>\r
-      <sound tempo="120"/>\r
-      <harmony default-y="100">\r
-        <root>\r
-          <root-step>C</root-step>\r
-        </root>\r
-        <kind>major</kind>\r
-        <frame>\r
-          <frame-strings>6</frame-strings>\r
-          <frame-frets>4</frame-frets>\r
-          <frame-note>\r
-            <string>6</string>\r
-            <fret>0</fret>\r
-          </frame-note>\r
-          <frame-note>\r
-            <string>5</string>\r
-            <fret>3</fret>\r
-          </frame-note>\r
-          <frame-note>\r
-            <string>4</string>\r
-            <fret>2</fret>\r
-          </frame-note>\r
-          <frame-note>\r
-            <string>3</string>\r
-            <fret>0</fret>\r
-          </frame-note>\r
-          <frame-note>\r
-            <string>2</string>\r
-            <fret>1</fret>\r
-          </frame-note>\r
-          <frame-note>\r
-            <string>1</string>\r
-            <fret>0</fret>\r
-          </frame-note>\r
-        </frame>\r
-      </harmony>\r
-      <note>\r
-        <pitch>\r
-          <step>A</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-      </note>\r
-      <harmony default-y="100">\r
-        <root>\r
-          <root-step>C</root-step>\r
-        </root>\r
-        <kind>major-seventh</kind>\r
-        <degree>\r
-          <degree-value>11</degree-value>\r
-          <degree-alter>1</degree-alter>\r
-          <degree-type>add</degree-type>\r
-        </degree>\r
-        <frame>\r
-          <frame-strings>6</frame-strings>\r
-          <frame-frets>4</frame-frets>\r
-          <first-fret>2</first-fret>\r
-          <frame-note>\r
-            <string>6</string>\r
-            <fret>0</fret>\r
-          </frame-note>\r
-          <frame-note>\r
-            <string>5</string>\r
-            <fret>3</fret>\r
-          </frame-note>\r
-          <frame-note>\r
-            <string>4</string>\r
-            <fret>5</fret>\r
-          </frame-note>\r
-          <frame-note>\r
-            <string>3</string>\r
-            <fret>4</fret>\r
-          </frame-note>\r
-          <frame-note>\r
-            <string>2</string>\r
-            <fret>5</fret>\r
-          </frame-note>\r
-          <frame-note>\r
-            <string>1</string>\r
-            <fret>2</fret>\r
-          </frame-note>\r
-        </frame>\r
-      </harmony>\r
-      <note>\r
-        <pitch>\r
-          <step>A</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-      </note>\r
-      <harmony default-y="100">\r
-        <root>\r
-          <root-step>B</root-step>\r
-        </root>\r
-        <kind>dominant</kind>\r
-        <degree>\r
-          <degree-value>5</degree-value>\r
-          <degree-alter>1</degree-alter>\r
-          <degree-type>alter</degree-type>\r
-        </degree>\r
-        <degree>\r
-          <degree-value>9</degree-value>\r
-          <degree-alter>1</degree-alter>\r
-          <degree-type>add</degree-type>\r
-        </degree>\r
-        <frame>\r
-          <frame-strings>6</frame-strings>\r
-          <frame-frets>4</frame-frets>\r
-          <frame-note>\r
-            <string>6</string>\r
-            <fret>0</fret>\r
-          </frame-note>\r
-          <frame-note>\r
-            <string>5</string>\r
-            <fret>2</fret>\r
-          </frame-note>\r
-          <frame-note>\r
-            <string>4</string>\r
-            <fret>1</fret>\r
-          </frame-note>\r
-          <frame-note>\r
-            <string>3</string>\r
-            <fret>2</fret>\r
-          </frame-note>\r
-          <frame-note>\r
-            <string>2</string>\r
-            <fret>3</fret>\r
-          </frame-note>\r
-          <frame-note>\r
-            <string>1</string>\r
-            <fret>3</fret>\r
-          </frame-note>\r
-        </frame>\r
-      </harmony>\r
-      <note>\r
-        <pitch>\r
-          <step>A</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-      </note>\r
-      <harmony default-y="100">\r
-        <root>\r
-          <root-step>E</root-step>\r
-          <root-alter>-1</root-alter>\r
-        </root>\r
-        <kind>major</kind>\r
-        <degree>\r
-          <degree-value>2</degree-value>\r
-          <degree-alter>0</degree-alter>\r
-          <degree-type>add</degree-type>\r
-        </degree>\r
-        <frame>\r
-          <frame-strings>6</frame-strings>\r
-          <frame-frets>5</frame-frets>\r
-          <first-fret>11</first-fret>\r
-          <frame-note>\r
-            <string>6</string>\r
-            <fret>11</fret>\r
-          </frame-note>\r
-          <frame-note>\r
-            <string>5</string>\r
-            <fret>13</fret>\r
-          </frame-note>\r
-          <frame-note>\r
-            <string>4</string>\r
-            <fret>15</fret>\r
-          </frame-note>\r
-          <frame-note>\r
-            <string>3</string>\r
-            <fret>12</fret>\r
-          </frame-note>\r
-          <frame-note>\r
-            <string>2</string>\r
-            <fret>11</fret>\r
-          </frame-note>\r
-          <frame-note>\r
-            <string>1</string>\r
-            <fret>11</fret>\r
-          </frame-note>\r
-        </frame>\r
-      </harmony>\r
-      <note>\r
-        <pitch>\r
-          <step>A</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="2">\r
-      <harmony default-y="100">\r
-        <root>\r
-          <root-step>G</root-step>\r
-        </root>\r
-        <kind>minor</kind>\r
-        <frame>\r
-          <frame-strings>6</frame-strings>\r
-          <frame-frets>4</frame-frets>\r
-          <first-fret>3</first-fret>\r
-          <frame-note>\r
-            <string>6</string>\r
-            <fret>3</fret>\r
-          </frame-note>\r
-          <frame-note>\r
-            <string>5</string>\r
-            <fret>5</fret>\r
-          </frame-note>\r
-          <frame-note>\r
-            <string>4</string>\r
-            <fret>5</fret>\r
-          </frame-note>\r
-          <frame-note>\r
-            <string>3</string>\r
-            <fret>3</fret>\r
-          </frame-note>\r
-          <frame-note>\r
-            <string>2</string>\r
-            <fret>3</fret>\r
-          </frame-note>\r
-          <frame-note>\r
-            <string>1</string>\r
-            <fret>3</fret>\r
-          </frame-note>\r
-        </frame>\r
-      </harmony>\r
-      <note>\r
-        <pitch>\r
-          <step>A</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-      </note>\r
-      <harmony default-y="100">\r
-        <root>\r
-          <root-step>D</root-step>\r
-          <root-alter>1</root-alter>\r
-        </root>\r
-        <kind>major-seventh</kind>\r
-        <frame>\r
-          <frame-strings>6</frame-strings>\r
-          <frame-frets>4</frame-frets>\r
-          <frame-note>\r
-            <string>6</string>\r
-            <fret>0</fret>\r
-          </frame-note>\r
-          <frame-note>\r
-            <string>5</string>\r
-            <fret>0</fret>\r
-          </frame-note>\r
-          <frame-note>\r
-            <string>4</string>\r
-            <fret>1</fret>\r
-          </frame-note>\r
-          <frame-note>\r
-            <string>3</string>\r
-            <fret>3</fret>\r
-          </frame-note>\r
-          <frame-note>\r
-            <string>2</string>\r
-            <fret>3</fret>\r
-          </frame-note>\r
-          <frame-note>\r
-            <string>1</string>\r
-            <fret>3</fret>\r
-          </frame-note>\r
-        </frame>\r
-      </harmony>\r
-      <note>\r
-        <pitch>\r
-          <step>A</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-      </note>\r
-      <harmony default-y="100">\r
-        <root>\r
-          <root-step>A</root-step>\r
-        </root>\r
-        <kind>diminished-seventh</kind>\r
-        <frame>\r
-          <frame-strings>6</frame-strings>\r
-          <frame-frets>4</frame-frets>\r
-          <frame-note>\r
-            <string>6</string>\r
-            <fret>0</fret>\r
-          </frame-note>\r
-          <frame-note>\r
-            <string>5</string>\r
-            <fret>0</fret>\r
-          </frame-note>\r
-          <frame-note>\r
-            <string>4</string>\r
-            <fret>1</fret>\r
-          </frame-note>\r
-          <frame-note>\r
-            <string>3</string>\r
-            <fret>2</fret>\r
-          </frame-note>\r
-          <frame-note>\r
-            <string>2</string>\r
-            <fret>1</fret>\r
-          </frame-note>\r
-          <frame-note>\r
-            <string>1</string>\r
-            <fret>2</fret>\r
-          </frame-note>\r
-        </frame>\r
-      </harmony>\r
-      <note>\r
-        <pitch>\r
-          <step>A</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-      </note>\r
-      <harmony default-y="100">\r
-        <root>\r
-          <root-step>C</root-step>\r
-        </root>\r
-        <kind>major</kind>\r
-        <frame>\r
-          <frame-strings>10</frame-strings>\r
-          <frame-frets>3</frame-frets>\r
-          <frame-note>\r
-            <string>10</string>\r
-            <fret>1</fret>\r
-            <fingering>2</fingering>\r
-          </frame-note>\r
-          <frame-note>\r
-            <string>9</string>\r
-            <fret>3</fret>\r
-          </frame-note>\r
-          <frame-note>\r
-            <string>7</string>\r
-            <fret>1</fret>\r
-            <fingering>4</fingering>\r
-          </frame-note>\r
-          <frame-note>\r
-            <string>5</string>\r
-            <fret>3</fret>\r
-          </frame-note>\r
-          <frame-note>\r
-            <string>4</string>\r
-            <fret>2</fret>\r
-          </frame-note>\r
-          <frame-note>\r
-            <string>3</string>\r
-            <fret>1</fret>\r
-            <fingering>5</fingering>\r
-          </frame-note>\r
-          <frame-note>\r
-            <string>2</string>\r
-            <fret>0</fret>\r
-          </frame-note>\r
-          <frame-note>\r
-            <string>1</string>\r
-            <fret>0</fret>\r
-          </frame-note>\r
-        </frame>\r
-      </harmony>\r
-      <note>\r
-        <pitch>\r
-          <step>A</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-      </note>\r
-      <barline location="right">\r
-        <bar-style>light-heavy</bar-style>\r
-      </barline>\r
-    </measure>\r
-  </part>\r
-  <!--=========================================================-->\r
-</score-partwise>\r
diff --git a/input/regression/musicxml/17d-ChordsFretsOnMultistaff-Finale.xml b/input/regression/musicxml/17d-ChordsFretsOnMultistaff-Finale.xml
deleted file mode 100644 (file)
index c96217b..0000000
+++ /dev/null
@@ -1,619 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>\r
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"\r
-                                "http://www.musicxml.org/dtds/partwise.dtd">\r
-<score-partwise>\r
-  <movement-title>Chords and fretboards on multi-staff, multi-voice piece</movement-title>\r
-  <identification>\r
-    <encoding>\r
-      <software>Finale 2007 for Windows</software>\r
-      <software>Dolet Light for Finale 2007</software>\r
-      <encoding-date>2007-10-26</encoding-date>\r
-    </encoding>\r
-  </identification>\r
-  <part-list>\r
-    <score-part id="P1">\r
-      <part-name>Piano</part-name>\r
-      <score-instrument id="P1-I1">\r
-        <instrument-name>Piano</instrument-name>\r
-      </score-instrument>\r
-      <midi-instrument id="P1-I1">\r
-        <midi-channel>1</midi-channel>\r
-        <midi-program>1</midi-program>\r
-      </midi-instrument>\r
-    </score-part>\r
-  </part-list>\r
-  <!--=========================================================-->\r
-  <part id="P1">\r
-    <measure number="1">\r
-      <attributes>\r
-        <divisions>1</divisions>\r
-        <key>\r
-          <fifths>0</fifths>\r
-          <mode>major</mode>\r
-        </key>\r
-        <time symbol="common">\r
-          <beats>4</beats>\r
-          <beat-type>4</beat-type>\r
-        </time>\r
-        <staves>2</staves>\r
-        <clef number="1">\r
-          <sign>G</sign>\r
-          <line>2</line>\r
-        </clef>\r
-        <clef number="2">\r
-          <sign>F</sign>\r
-          <line>4</line>\r
-        </clef>\r
-      </attributes>\r
-      <sound tempo="120"/>\r
-      <note>\r
-        <pitch>\r
-          <step>D</step>\r
-          <octave>5</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-        <staff>1</staff>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>D</step>\r
-          <octave>5</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-        <staff>1</staff>\r
-      </note>\r
-      <harmony default-y="100">\r
-        <root>\r
-          <root-step>E</root-step>\r
-          <root-alter>-1</root-alter>\r
-        </root>\r
-        <kind>minor-ninth</kind>\r
-        <frame>\r
-          <frame-strings>6</frame-strings>\r
-          <frame-frets>4</frame-frets>\r
-          <first-fret>4</first-fret>\r
-          <frame-note>\r
-            <string>6</string>\r
-            <fret>0</fret>\r
-          </frame-note>\r
-          <frame-note>\r
-            <string>5</string>\r
-            <fret>6</fret>\r
-          </frame-note>\r
-          <frame-note>\r
-            <string>4</string>\r
-            <fret>4</fret>\r
-          </frame-note>\r
-          <frame-note>\r
-            <string>3</string>\r
-            <fret>6</fret>\r
-          </frame-note>\r
-          <frame-note>\r
-            <string>2</string>\r
-            <fret>6</fret>\r
-          </frame-note>\r
-        </frame>\r
-      </harmony>\r
-      <note>\r
-        <pitch>\r
-          <step>D</step>\r
-          <octave>5</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-        <staff>1</staff>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>D</step>\r
-          <octave>5</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-        <staff>1</staff>\r
-      </note>\r
-      <backup>\r
-        <duration>4</duration>\r
-      </backup>\r
-      <note>\r
-        <pitch>\r
-          <step>F</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>2</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-        <staff>1</staff>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>F</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>2</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-        <staff>1</staff>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>F</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>2</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-        <staff>1</staff>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>F</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>2</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-        <staff>1</staff>\r
-      </note>\r
-      <backup>\r
-        <duration>4</duration>\r
-      </backup>\r
-      <harmony default-y="100">\r
-        <root>\r
-          <root-step>C</root-step>\r
-        </root>\r
-        <kind>major</kind>\r
-        <frame>\r
-          <frame-strings>6</frame-strings>\r
-          <frame-frets>4</frame-frets>\r
-          <frame-note>\r
-            <string>6</string>\r
-            <fret>0</fret>\r
-          </frame-note>\r
-          <frame-note>\r
-            <string>5</string>\r
-            <fret>3</fret>\r
-          </frame-note>\r
-          <frame-note>\r
-            <string>4</string>\r
-            <fret>2</fret>\r
-          </frame-note>\r
-          <frame-note>\r
-            <string>3</string>\r
-            <fret>0</fret>\r
-          </frame-note>\r
-          <frame-note>\r
-            <string>2</string>\r
-            <fret>1</fret>\r
-          </frame-note>\r
-          <frame-note>\r
-            <string>1</string>\r
-            <fret>0</fret>\r
-          </frame-note>\r
-        </frame>\r
-      </harmony>\r
-      <note>\r
-        <pitch>\r
-          <step>D</step>\r
-          <octave>3</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>3</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-        <staff>2</staff>\r
-      </note>\r
-      <harmony default-y="100">\r
-        <root>\r
-          <root-step>D</root-step>\r
-        </root>\r
-        <kind>dominant</kind>\r
-        <frame>\r
-          <frame-strings>6</frame-strings>\r
-          <frame-frets>4</frame-frets>\r
-          <frame-note>\r
-            <string>6</string>\r
-            <fret>0</fret>\r
-          </frame-note>\r
-          <frame-note>\r
-            <string>5</string>\r
-            <fret>0</fret>\r
-          </frame-note>\r
-          <frame-note>\r
-            <string>4</string>\r
-            <fret>0</fret>\r
-          </frame-note>\r
-          <frame-note>\r
-            <string>3</string>\r
-            <fret>2</fret>\r
-          </frame-note>\r
-          <frame-note>\r
-            <string>2</string>\r
-            <fret>1</fret>\r
-          </frame-note>\r
-          <frame-note>\r
-            <string>1</string>\r
-            <fret>2</fret>\r
-          </frame-note>\r
-        </frame>\r
-      </harmony>\r
-      <note>\r
-        <pitch>\r
-          <step>D</step>\r
-          <octave>3</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>3</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-        <staff>2</staff>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>D</step>\r
-          <octave>3</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>3</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-        <staff>2</staff>\r
-      </note>\r
-      <harmony default-y="100">\r
-        <root>\r
-          <root-step>C</root-step>\r
-        </root>\r
-        <kind>minor-seventh</kind>\r
-        <degree>\r
-          <degree-value>11</degree-value>\r
-          <degree-alter>0</degree-alter>\r
-          <degree-type>add</degree-type>\r
-        </degree>\r
-        <frame>\r
-          <frame-strings>6</frame-strings>\r
-          <frame-frets>4</frame-frets>\r
-          <frame-note>\r
-            <string>6</string>\r
-            <fret>0</fret>\r
-          </frame-note>\r
-          <frame-note>\r
-            <string>5</string>\r
-            <fret>3</fret>\r
-          </frame-note>\r
-          <frame-note>\r
-            <string>4</string>\r
-            <fret>1</fret>\r
-          </frame-note>\r
-          <frame-note>\r
-            <string>3</string>\r
-            <fret>3</fret>\r
-          </frame-note>\r
-          <frame-note>\r
-            <string>2</string>\r
-            <fret>1</fret>\r
-          </frame-note>\r
-          <frame-note>\r
-            <string>1</string>\r
-            <fret>1</fret>\r
-          </frame-note>\r
-        </frame>\r
-      </harmony>\r
-      <note>\r
-        <pitch>\r
-          <step>D</step>\r
-          <octave>3</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>3</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-        <staff>2</staff>\r
-      </note>\r
-      <backup>\r
-        <duration>4</duration>\r
-      </backup>\r
-      <note>\r
-        <pitch>\r
-          <step>B</step>\r
-          <octave>2</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>4</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-        <staff>2</staff>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>B</step>\r
-          <octave>2</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>4</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-        <staff>2</staff>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>B</step>\r
-          <octave>2</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>4</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-        <staff>2</staff>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>B</step>\r
-          <octave>2</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>4</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-        <staff>2</staff>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="2">\r
-      <note>\r
-        <pitch>\r
-          <step>D</step>\r
-          <octave>5</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-        <staff>1</staff>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>D</step>\r
-          <octave>5</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-        <staff>1</staff>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>D</step>\r
-          <octave>5</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-        <staff>1</staff>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>D</step>\r
-          <octave>5</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-        <staff>1</staff>\r
-      </note>\r
-      <backup>\r
-        <duration>4</duration>\r
-      </backup>\r
-      <note>\r
-        <pitch>\r
-          <step>F</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>2</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-        <staff>1</staff>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>F</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>2</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-        <staff>1</staff>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>F</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>2</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-        <staff>1</staff>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>F</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>2</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-        <staff>1</staff>\r
-      </note>\r
-      <backup>\r
-        <duration>4</duration>\r
-      </backup>\r
-      <note>\r
-        <pitch>\r
-          <step>D</step>\r
-          <octave>3</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>3</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-        <staff>2</staff>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>D</step>\r
-          <octave>3</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>3</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-        <staff>2</staff>\r
-      </note>\r
-      <harmony default-y="100">\r
-        <root>\r
-          <root-step>G</root-step>\r
-          <root-alter>1</root-alter>\r
-        </root>\r
-        <kind>suspended-fourth</kind>\r
-        <degree>\r
-          <degree-value>7</degree-value>\r
-          <degree-alter>0</degree-alter>\r
-          <degree-type>add</degree-type>\r
-        </degree>\r
-        <degree>\r
-          <degree-value>9</degree-value>\r
-          <degree-alter>-1</degree-alter>\r
-          <degree-type>add</degree-type>\r
-        </degree>\r
-        <degree>\r
-          <degree-value>11</degree-value>\r
-          <degree-alter>0</degree-alter>\r
-          <degree-type>add</degree-type>\r
-        </degree>\r
-        <degree>\r
-          <degree-value>13</degree-value>\r
-          <degree-alter>0</degree-alter>\r
-          <degree-type>add</degree-type>\r
-        </degree>\r
-        <frame>\r
-          <frame-strings>6</frame-strings>\r
-          <frame-frets>4</frame-frets>\r
-          <first-fret>4</first-fret>\r
-          <frame-note>\r
-            <string>6</string>\r
-            <fret>4</fret>\r
-          </frame-note>\r
-          <frame-note>\r
-            <string>4</string>\r
-            <fret>4</fret>\r
-          </frame-note>\r
-          <frame-note>\r
-            <string>3</string>\r
-            <fret>6</fret>\r
-          </frame-note>\r
-          <frame-note>\r
-            <string>2</string>\r
-            <fret>6</fret>\r
-          </frame-note>\r
-          <frame-note>\r
-            <string>1</string>\r
-            <fret>5</fret>\r
-          </frame-note>\r
-        </frame>\r
-      </harmony>\r
-      <note>\r
-        <pitch>\r
-          <step>D</step>\r
-          <octave>3</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>3</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-        <staff>2</staff>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>D</step>\r
-          <octave>3</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>3</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-        <staff>2</staff>\r
-      </note>\r
-      <backup>\r
-        <duration>4</duration>\r
-      </backup>\r
-      <note>\r
-        <pitch>\r
-          <step>B</step>\r
-          <octave>2</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>4</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-        <staff>2</staff>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>B</step>\r
-          <octave>2</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>4</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-        <staff>2</staff>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>B</step>\r
-          <octave>2</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>4</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-        <staff>2</staff>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>B</step>\r
-          <octave>2</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>4</voice>\r
-        <type>quarter</type>\r
-        <stem>down</stem>\r
-        <staff>2</staff>\r
-      </note>\r
-      <barline location="right">\r
-        <bar-style>light-heavy</bar-style>\r
-      </barline>\r
-    </measure>\r
-  </part>\r
-  <!--=========================================================-->\r
-</score-partwise>\r
diff --git a/input/regression/musicxml/17e-TabStaves-Finale.xml b/input/regression/musicxml/17e-TabStaves-Finale.xml
deleted file mode 100644 (file)
index 0b87811..0000000
+++ /dev/null
@@ -1,1644 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>\r
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"\r
-                                "http://www.musicxml.org/dtds/partwise.dtd">\r
-<score-partwise>\r
-  <movement-title>Tablatures</movement-title>\r
-  <identification>\r
-    <encoding>\r
-      <software>Finale 2007 for Windows</software>\r
-      <software>Dolet Light for Finale 2007</software>\r
-      <encoding-date>2007-10-30</encoding-date>\r
-    </encoding>\r
-  </identification>\r
-  <part-list>\r
-    <part-group number="1" type="start">\r
-      <group-symbol>bracket</group-symbol>\r
-      <group-barline>yes</group-barline>\r
-    </part-group>\r
-    <score-part id="P1">\r
-      <part-name>Guitar</part-name>\r
-      <part-abbreviation>Gtr.</part-abbreviation>\r
-      <score-instrument id="P1-I1">\r
-        <instrument-name>Guitar</instrument-name>\r
-      </score-instrument>\r
-      <midi-instrument id="P1-I1">\r
-        <midi-channel>1</midi-channel>\r
-        <midi-program>26</midi-program>\r
-      </midi-instrument>\r
-    </score-part>\r
-    <score-part id="P2">\r
-      <part-name>Guitar</part-name>\r
-      <part-abbreviation>Gtr.</part-abbreviation>\r
-      <score-instrument id="P2-I2">\r
-        <instrument-name>Guitar</instrument-name>\r
-      </score-instrument>\r
-      <midi-instrument id="P2-I2">\r
-        <midi-channel>2</midi-channel>\r
-        <midi-program>26</midi-program>\r
-      </midi-instrument>\r
-    </score-part>\r
-    <score-part id="P3">\r
-      <part-name>Guitar</part-name>\r
-      <part-abbreviation>Gtr.</part-abbreviation>\r
-      <score-instrument id="P3-I3">\r
-        <instrument-name>Guitar</instrument-name>\r
-      </score-instrument>\r
-      <midi-instrument id="P3-I3">\r
-        <midi-channel>3</midi-channel>\r
-        <midi-program>26</midi-program>\r
-      </midi-instrument>\r
-    </score-part>\r
-    <score-part id="P4">\r
-      <part-name>Guitar</part-name>\r
-      <part-abbreviation>Gtr.</part-abbreviation>\r
-      <score-instrument id="P4-I4">\r
-        <instrument-name>Guitar</instrument-name>\r
-      </score-instrument>\r
-      <midi-instrument id="P4-I4">\r
-        <midi-channel>4</midi-channel>\r
-        <midi-program>26</midi-program>\r
-      </midi-instrument>\r
-    </score-part>\r
-    <score-part id="P5">\r
-      <part-name>Bass Guitar</part-name>\r
-      <part-abbreviation>Bass</part-abbreviation>\r
-      <score-instrument id="P5-I5">\r
-        <instrument-name>Bass Guitar</instrument-name>\r
-      </score-instrument>\r
-      <midi-instrument id="P5-I5">\r
-        <midi-channel>5</midi-channel>\r
-        <midi-program>35</midi-program>\r
-      </midi-instrument>\r
-    </score-part>\r
-    <score-part id="P6">\r
-      <part-name>Banjo</part-name>\r
-      <part-abbreviation>Bjo.</part-abbreviation>\r
-      <score-instrument id="P6-I6">\r
-        <instrument-name>Banjo</instrument-name>\r
-      </score-instrument>\r
-      <midi-instrument id="P6-I6">\r
-        <midi-channel>6</midi-channel>\r
-        <midi-program>106</midi-program>\r
-      </midi-instrument>\r
-    </score-part>\r
-    <score-part id="P7">\r
-      <part-name>Lute</part-name>\r
-      <part-abbreviation>L.</part-abbreviation>\r
-      <score-instrument id="P7-I7">\r
-        <instrument-name>Lute</instrument-name>\r
-      </score-instrument>\r
-      <midi-instrument id="P7-I7">\r
-        <midi-channel>7</midi-channel>\r
-        <midi-program>25</midi-program>\r
-      </midi-instrument>\r
-    </score-part>\r
-    <score-part id="P8">\r
-      <part-name>Ukulele</part-name>\r
-      <part-abbreviation>Uk.</part-abbreviation>\r
-      <score-instrument id="P8-I8">\r
-        <instrument-name>Ukulele</instrument-name>\r
-      </score-instrument>\r
-      <midi-instrument id="P8-I8">\r
-        <midi-channel>8</midi-channel>\r
-        <midi-program>25</midi-program>\r
-      </midi-instrument>\r
-    </score-part>\r
-    <part-group number="1" type="stop"/>\r
-  </part-list>\r
-  <!--=========================================================-->\r
-  <part id="P1">\r
-    <measure number="1">\r
-      <attributes>\r
-        <divisions>1</divisions>\r
-        <key>\r
-          <fifths>0</fifths>\r
-          <mode>major</mode>\r
-        </key>\r
-        <clef>\r
-          <sign>TAB</sign>\r
-          <line>5</line>\r
-        </clef>\r
-        <staff-details>\r
-          <staff-lines>6</staff-lines>\r
-          <staff-tuning line="1">\r
-            <tuning-step>E</tuning-step>\r
-            <tuning-octave>2</tuning-octave>\r
-          </staff-tuning>\r
-          <staff-tuning line="2">\r
-            <tuning-step>A</tuning-step>\r
-            <tuning-octave>2</tuning-octave>\r
-          </staff-tuning>\r
-          <staff-tuning line="3">\r
-            <tuning-step>D</tuning-step>\r
-            <tuning-octave>3</tuning-octave>\r
-          </staff-tuning>\r
-          <staff-tuning line="4">\r
-            <tuning-step>G</tuning-step>\r
-            <tuning-octave>3</tuning-octave>\r
-          </staff-tuning>\r
-          <staff-tuning line="5">\r
-            <tuning-step>B</tuning-step>\r
-            <tuning-octave>3</tuning-octave>\r
-          </staff-tuning>\r
-          <staff-tuning line="6">\r
-            <tuning-step>E</tuning-step>\r
-            <tuning-octave>4</tuning-octave>\r
-          </staff-tuning>\r
-        </staff-details>\r
-      </attributes>\r
-      <sound tempo="120"/>\r
-      <note>\r
-        <pitch>\r
-          <step>G</step>\r
-          <octave>3</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>none</stem>\r
-        <notations>\r
-          <technical>\r
-            <string>4</string>\r
-            <fret>5</fret>\r
-          </technical>\r
-        </notations>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>E</step>\r
-          <octave>5</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>none</stem>\r
-        <notations>\r
-          <technical>\r
-            <string>2</string>\r
-            <fret>17</fret>\r
-          </technical>\r
-        </notations>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>C</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>none</stem>\r
-        <notations>\r
-          <technical>\r
-            <string>2</string>\r
-            <fret>1</fret>\r
-          </technical>\r
-        </notations>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>E</step>\r
-          <octave>3</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>none</stem>\r
-        <notations>\r
-          <technical>\r
-            <string>4</string>\r
-            <fret>2</fret>\r
-          </technical>\r
-        </notations>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="2">\r
-      <note>\r
-        <pitch>\r
-          <step>G</step>\r
-          <alter>1</alter>\r
-          <octave>2</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>none</stem>\r
-        <notations>\r
-          <technical>\r
-            <string>6</string>\r
-            <fret>4</fret>\r
-          </technical>\r
-        </notations>\r
-      </note>\r
-      <note>\r
-        <chord/>\r
-        <pitch>\r
-          <step>F</step>\r
-          <alter>1</alter>\r
-          <octave>3</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>none</stem>\r
-        <notations>\r
-          <technical>\r
-            <string>4</string>\r
-            <fret>4</fret>\r
-          </technical>\r
-        </notations>\r
-      </note>\r
-      <note>\r
-        <chord/>\r
-        <pitch>\r
-          <step>G</step>\r
-          <octave>3</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>none</stem>\r
-        <notations>\r
-          <technical>\r
-            <string>3</string>\r
-            <fret>0</fret>\r
-          </technical>\r
-        </notations>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>D</step>\r
-          <octave>3</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>none</stem>\r
-        <notations>\r
-          <technical>\r
-            <string>5</string>\r
-            <fret>5</fret>\r
-          </technical>\r
-        </notations>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>G</step>\r
-          <alter>1</alter>\r
-          <octave>3</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>none</stem>\r
-        <notations>\r
-          <technical>\r
-            <string>3</string>\r
-            <fret>1</fret>\r
-          </technical>\r
-        </notations>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>E</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>none</stem>\r
-        <notations>\r
-          <technical>\r
-            <string>1</string>\r
-            <fret>0</fret>\r
-          </technical>\r
-        </notations>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="3">\r
-      <note print-object="no">\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-      <barline location="right">\r
-        <bar-style>light-heavy</bar-style>\r
-      </barline>\r
-    </measure>\r
-  </part>\r
-  <!--=========================================================-->\r
-  <part id="P2">\r
-    <measure number="1">\r
-      <attributes>\r
-        <divisions>1</divisions>\r
-        <key>\r
-          <fifths>0</fifths>\r
-          <mode>major</mode>\r
-        </key>\r
-        <clef>\r
-          <sign>TAB</sign>\r
-          <line>5</line>\r
-        </clef>\r
-        <staff-details>\r
-          <staff-lines>6</staff-lines>\r
-          <staff-tuning line="1">\r
-            <tuning-step>E</tuning-step>\r
-            <tuning-octave>2</tuning-octave>\r
-          </staff-tuning>\r
-          <staff-tuning line="2">\r
-            <tuning-step>A</tuning-step>\r
-            <tuning-octave>2</tuning-octave>\r
-          </staff-tuning>\r
-          <staff-tuning line="3">\r
-            <tuning-step>D</tuning-step>\r
-            <tuning-octave>3</tuning-octave>\r
-          </staff-tuning>\r
-          <staff-tuning line="4">\r
-            <tuning-step>G</tuning-step>\r
-            <tuning-octave>3</tuning-octave>\r
-          </staff-tuning>\r
-          <staff-tuning line="5">\r
-            <tuning-step>B</tuning-step>\r
-            <tuning-octave>3</tuning-octave>\r
-          </staff-tuning>\r
-          <staff-tuning line="6">\r
-            <tuning-step>E</tuning-step>\r
-            <tuning-octave>4</tuning-octave>\r
-          </staff-tuning>\r
-        </staff-details>\r
-      </attributes>\r
-      <sound tempo="120"/>\r
-      <note>\r
-        <pitch>\r
-          <step>D</step>\r
-          <alter>1</alter>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-        <notations>\r
-          <technical>\r
-            <string>2</string>\r
-            <fret>4</fret>\r
-          </technical>\r
-        </notations>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>G</step>\r
-          <alter>1</alter>\r
-          <octave>3</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-        <notations>\r
-          <technical>\r
-            <string>3</string>\r
-            <fret>1</fret>\r
-          </technical>\r
-        </notations>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>C</step>\r
-          <octave>3</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-        <notations>\r
-          <technical>\r
-            <string>5</string>\r
-            <fret>3</fret>\r
-          </technical>\r
-        </notations>\r
-      </note>\r
-      <note>\r
-        <rest/>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="2">\r
-      <note>\r
-        <pitch>\r
-          <step>F</step>\r
-          <alter>1</alter>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-        <notations>\r
-          <technical>\r
-            <string>1</string>\r
-            <fret>2</fret>\r
-          </technical>\r
-        </notations>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>G</step>\r
-          <octave>3</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-        <notations>\r
-          <technical>\r
-            <string>3</string>\r
-            <fret>0</fret>\r
-          </technical>\r
-        </notations>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>G</step>\r
-          <octave>3</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-        <notations>\r
-          <technical>\r
-            <string>4</string>\r
-            <fret>5</fret>\r
-          </technical>\r
-        </notations>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>F</step>\r
-          <alter>1</alter>\r
-          <octave>2</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-        <notations>\r
-          <technical>\r
-            <string>6</string>\r
-            <fret>2</fret>\r
-          </technical>\r
-        </notations>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="3">\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-      <barline location="right">\r
-        <bar-style>light-heavy</bar-style>\r
-      </barline>\r
-    </measure>\r
-  </part>\r
-  <!--=========================================================-->\r
-  <part id="P3">\r
-    <measure number="1">\r
-      <attributes>\r
-        <divisions>2</divisions>\r
-        <key>\r
-          <fifths>0</fifths>\r
-          <mode>major</mode>\r
-        </key>\r
-        <clef>\r
-          <sign>TAB</sign>\r
-          <line>5</line>\r
-        </clef>\r
-        <staff-details>\r
-          <staff-lines>6</staff-lines>\r
-          <staff-tuning line="1">\r
-            <tuning-step>D</tuning-step>\r
-            <tuning-octave>2</tuning-octave>\r
-          </staff-tuning>\r
-          <staff-tuning line="2">\r
-            <tuning-step>A</tuning-step>\r
-            <tuning-octave>2</tuning-octave>\r
-          </staff-tuning>\r
-          <staff-tuning line="3">\r
-            <tuning-step>D</tuning-step>\r
-            <tuning-octave>3</tuning-octave>\r
-          </staff-tuning>\r
-          <staff-tuning line="4">\r
-            <tuning-step>F</tuning-step>\r
-            <tuning-alter>1</tuning-alter>\r
-            <tuning-octave>3</tuning-octave>\r
-          </staff-tuning>\r
-          <staff-tuning line="5">\r
-            <tuning-step>A</tuning-step>\r
-            <tuning-octave>3</tuning-octave>\r
-          </staff-tuning>\r
-          <staff-tuning line="6">\r
-            <tuning-step>E</tuning-step>\r
-            <tuning-octave>4</tuning-octave>\r
-          </staff-tuning>\r
-        </staff-details>\r
-      </attributes>\r
-      <sound tempo="120"/>\r
-      <note>\r
-        <pitch>\r
-          <step>A</step>\r
-          <alter>1</alter>\r
-          <octave>3</octave>\r
-        </pitch>\r
-        <duration>2</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>none</stem>\r
-        <notations>\r
-          <technical>\r
-            <string>2</string>\r
-            <fret>1</fret>\r
-          </technical>\r
-        </notations>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>B</step>\r
-          <octave>2</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>eighth</type>\r
-        <stem>none</stem>\r
-        <notations>\r
-          <technical>\r
-            <string>5</string>\r
-            <fret>2</fret>\r
-          </technical>\r
-        </notations>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>A</step>\r
-          <octave>3</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>eighth</type>\r
-        <stem>none</stem>\r
-        <notations>\r
-          <technical>\r
-            <string>3</string>\r
-            <fret>3</fret>\r
-          </technical>\r
-        </notations>\r
-      </note>\r
-      <note print-object="no">\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-        <type>half</type>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="2">\r
-      <note>\r
-        <pitch>\r
-          <step>G</step>\r
-          <alter>1</alter>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>2</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>none</stem>\r
-        <notations>\r
-          <technical>\r
-            <string>1</string>\r
-            <fret>4</fret>\r
-          </technical>\r
-        </notations>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>D</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>2</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>none</stem>\r
-        <notations>\r
-          <technical>\r
-            <string>2</string>\r
-            <fret>5</fret>\r
-          </technical>\r
-        </notations>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>G</step>\r
-          <alter>1</alter>\r
-          <octave>2</octave>\r
-        </pitch>\r
-        <duration>2</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>none</stem>\r
-        <notations>\r
-          <technical>\r
-            <string>6</string>\r
-            <fret>6</fret>\r
-          </technical>\r
-        </notations>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>D</step>\r
-          <octave>3</octave>\r
-        </pitch>\r
-        <duration>2</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>none</stem>\r
-        <notations>\r
-          <technical>\r
-            <string>4</string>\r
-            <fret>0</fret>\r
-          </technical>\r
-        </notations>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="3">\r
-      <note print-object="no">\r
-        <rest/>\r
-        <duration>8</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-      <barline location="right">\r
-        <bar-style>light-heavy</bar-style>\r
-      </barline>\r
-    </measure>\r
-  </part>\r
-  <!--=========================================================-->\r
-  <part id="P4">\r
-    <measure number="1">\r
-      <attributes>\r
-        <divisions>2</divisions>\r
-        <key>\r
-          <fifths>0</fifths>\r
-          <mode>major</mode>\r
-        </key>\r
-        <clef>\r
-          <sign>TAB</sign>\r
-          <line>5</line>\r
-        </clef>\r
-        <staff-details>\r
-          <staff-lines>6</staff-lines>\r
-          <staff-tuning line="1">\r
-            <tuning-step>D</tuning-step>\r
-            <tuning-octave>2</tuning-octave>\r
-          </staff-tuning>\r
-          <staff-tuning line="2">\r
-            <tuning-step>A</tuning-step>\r
-            <tuning-octave>2</tuning-octave>\r
-          </staff-tuning>\r
-          <staff-tuning line="3">\r
-            <tuning-step>D</tuning-step>\r
-            <tuning-octave>3</tuning-octave>\r
-          </staff-tuning>\r
-          <staff-tuning line="4">\r
-            <tuning-step>G</tuning-step>\r
-            <tuning-octave>3</tuning-octave>\r
-          </staff-tuning>\r
-          <staff-tuning line="5">\r
-            <tuning-step>B</tuning-step>\r
-            <tuning-octave>3</tuning-octave>\r
-          </staff-tuning>\r
-          <staff-tuning line="6">\r
-            <tuning-step>D</tuning-step>\r
-            <tuning-octave>4</tuning-octave>\r
-          </staff-tuning>\r
-        </staff-details>\r
-      </attributes>\r
-      <sound tempo="120"/>\r
-      <note>\r
-        <pitch>\r
-          <step>B</step>\r
-          <octave>3</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>eighth</type>\r
-        <stem>none</stem>\r
-        <notations>\r
-          <technical>\r
-            <string>3</string>\r
-            <fret>4</fret>\r
-          </technical>\r
-        </notations>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>D</step>\r
-          <octave>2</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>eighth</type>\r
-        <stem>none</stem>\r
-        <notations>\r
-          <technical>\r
-            <string>5</string>\r
-            <fret>-7</fret>\r
-          </technical>\r
-        </notations>\r
-      </note>\r
-      <note>\r
-        <chord/>\r
-        <pitch>\r
-          <step>D</step>\r
-          <octave>2</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>eighth</type>\r
-        <stem>none</stem>\r
-        <notations>\r
-          <technical>\r
-            <string>6</string>\r
-            <fret>0</fret>\r
-          </technical>\r
-        </notations>\r
-      </note>\r
-      <note>\r
-        <chord/>\r
-        <pitch>\r
-          <step>G</step>\r
-          <octave>2</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>eighth</type>\r
-        <stem>none</stem>\r
-        <notations>\r
-          <technical>\r
-            <string>6</string>\r
-            <fret>5</fret>\r
-          </technical>\r
-        </notations>\r
-      </note>\r
-      <note>\r
-        <chord/>\r
-        <pitch>\r
-          <step>A</step>\r
-          <octave>2</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>eighth</type>\r
-        <stem>none</stem>\r
-        <notations>\r
-          <technical>\r
-            <string>5</string>\r
-            <fret>0</fret>\r
-          </technical>\r
-        </notations>\r
-      </note>\r
-      <note>\r
-        <chord/>\r
-        <pitch>\r
-          <step>A</step>\r
-          <octave>2</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>eighth</type>\r
-        <stem>none</stem>\r
-        <notations>\r
-          <technical>\r
-            <string>5</string>\r
-            <fret>0</fret>\r
-          </technical>\r
-        </notations>\r
-      </note>\r
-      <note print-object="no">\r
-        <rest/>\r
-        <duration>2</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-      </note>\r
-      <note print-object="no">\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-        <type>half</type>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="2">\r
-      <note>\r
-        <pitch>\r
-          <step>D</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>2</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>none</stem>\r
-        <notations>\r
-          <technical>\r
-            <string>1</string>\r
-            <fret>0</fret>\r
-          </technical>\r
-        </notations>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>D</step>\r
-          <octave>3</octave>\r
-        </pitch>\r
-        <duration>2</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>none</stem>\r
-        <notations>\r
-          <technical>\r
-            <string>4</string>\r
-            <fret>0</fret>\r
-          </technical>\r
-        </notations>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>A</step>\r
-          <octave>2</octave>\r
-        </pitch>\r
-        <duration>2</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>none</stem>\r
-        <notations>\r
-          <technical>\r
-            <string>5</string>\r
-            <fret>0</fret>\r
-          </technical>\r
-        </notations>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>D</step>\r
-          <octave>2</octave>\r
-        </pitch>\r
-        <duration>2</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>none</stem>\r
-        <notations>\r
-          <technical>\r
-            <string>6</string>\r
-            <fret>0</fret>\r
-          </technical>\r
-        </notations>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="3">\r
-      <note print-object="no">\r
-        <rest/>\r
-        <duration>8</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-      <barline location="right">\r
-        <bar-style>light-heavy</bar-style>\r
-      </barline>\r
-    </measure>\r
-  </part>\r
-  <!--=========================================================-->\r
-  <part id="P5">\r
-    <measure number="1">\r
-      <attributes>\r
-        <divisions>1</divisions>\r
-        <key>\r
-          <fifths>0</fifths>\r
-          <mode>major</mode>\r
-        </key>\r
-        <clef>\r
-          <sign>TAB</sign>\r
-          <line>5</line>\r
-        </clef>\r
-        <staff-details>\r
-          <staff-lines>4</staff-lines>\r
-          <staff-tuning line="1">\r
-            <tuning-step>E</tuning-step>\r
-            <tuning-octave>1</tuning-octave>\r
-          </staff-tuning>\r
-          <staff-tuning line="2">\r
-            <tuning-step>A</tuning-step>\r
-            <tuning-octave>1</tuning-octave>\r
-          </staff-tuning>\r
-          <staff-tuning line="3">\r
-            <tuning-step>D</tuning-step>\r
-            <tuning-octave>2</tuning-octave>\r
-          </staff-tuning>\r
-          <staff-tuning line="4">\r
-            <tuning-step>G</tuning-step>\r
-            <tuning-octave>2</tuning-octave>\r
-          </staff-tuning>\r
-        </staff-details>\r
-      </attributes>\r
-      <sound tempo="120"/>\r
-      <note>\r
-        <pitch>\r
-          <step>G</step>\r
-          <octave>2</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>none</stem>\r
-        <notations>\r
-          <technical>\r
-            <string>1</string>\r
-            <fret>0</fret>\r
-          </technical>\r
-        </notations>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>E</step>\r
-          <octave>1</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>none</stem>\r
-        <notations>\r
-          <technical>\r
-            <string>4</string>\r
-            <fret>0</fret>\r
-          </technical>\r
-        </notations>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>D</step>\r
-          <octave>2</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>none</stem>\r
-        <notations>\r
-          <technical>\r
-            <string>2</string>\r
-            <fret>0</fret>\r
-          </technical>\r
-        </notations>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>A</step>\r
-          <alter>1</alter>\r
-          <octave>2</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>none</stem>\r
-        <notations>\r
-          <technical>\r
-            <string>2</string>\r
-            <fret>8</fret>\r
-          </technical>\r
-        </notations>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="2">\r
-      <note>\r
-        <pitch>\r
-          <step>A</step>\r
-          <octave>1</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>none</stem>\r
-        <notations>\r
-          <technical>\r
-            <string>3</string>\r
-            <fret>0</fret>\r
-          </technical>\r
-        </notations>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>A</step>\r
-          <octave>1</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>none</stem>\r
-        <notations>\r
-          <technical>\r
-            <string>3</string>\r
-            <fret>0</fret>\r
-          </technical>\r
-        </notations>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>A</step>\r
-          <octave>1</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>none</stem>\r
-        <notations>\r
-          <technical>\r
-            <string>3</string>\r
-            <fret>0</fret>\r
-          </technical>\r
-        </notations>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>A</step>\r
-          <octave>1</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>none</stem>\r
-        <notations>\r
-          <technical>\r
-            <string>3</string>\r
-            <fret>0</fret>\r
-          </technical>\r
-        </notations>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="3">\r
-      <note print-object="no">\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-      <barline location="right">\r
-        <bar-style>light-heavy</bar-style>\r
-      </barline>\r
-    </measure>\r
-  </part>\r
-  <!--=========================================================-->\r
-  <part id="P6">\r
-    <measure number="1">\r
-      <attributes>\r
-        <divisions>1</divisions>\r
-        <key>\r
-          <fifths>0</fifths>\r
-          <mode>major</mode>\r
-        </key>\r
-        <clef>\r
-          <sign>TAB</sign>\r
-          <line>5</line>\r
-        </clef>\r
-        <staff-details>\r
-          <staff-lines>5</staff-lines>\r
-          <staff-tuning line="1">\r
-            <tuning-step>G</tuning-step>\r
-            <tuning-octave>4</tuning-octave>\r
-          </staff-tuning>\r
-          <staff-tuning line="2">\r
-            <tuning-step>D</tuning-step>\r
-            <tuning-octave>3</tuning-octave>\r
-          </staff-tuning>\r
-          <staff-tuning line="3">\r
-            <tuning-step>G</tuning-step>\r
-            <tuning-octave>3</tuning-octave>\r
-          </staff-tuning>\r
-          <staff-tuning line="4">\r
-            <tuning-step>C</tuning-step>\r
-            <tuning-octave>4</tuning-octave>\r
-          </staff-tuning>\r
-          <staff-tuning line="5">\r
-            <tuning-step>D</tuning-step>\r
-            <tuning-octave>4</tuning-octave>\r
-          </staff-tuning>\r
-        </staff-details>\r
-      </attributes>\r
-      <sound tempo="120"/>\r
-      <note>\r
-        <pitch>\r
-          <step>D</step>\r
-          <alter>1</alter>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-        <notations>\r
-          <technical>\r
-            <string>2</string>\r
-            <fret>3</fret>\r
-          </technical>\r
-        </notations>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>D</step>\r
-          <octave>3</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-        <notations>\r
-          <technical>\r
-            <string>4</string>\r
-            <fret>0</fret>\r
-          </technical>\r
-        </notations>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>D</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-        <notations>\r
-          <technical>\r
-            <string>1</string>\r
-            <fret>0</fret>\r
-          </technical>\r
-        </notations>\r
-      </note>\r
-      <note>\r
-        <rest/>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="2">\r
-      <note>\r
-        <pitch>\r
-          <step>G</step>\r
-          <octave>3</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-        <notations>\r
-          <technical>\r
-            <string>3</string>\r
-            <fret>0</fret>\r
-          </technical>\r
-        </notations>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>G</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-        <notations>\r
-          <technical>\r
-            <string>5</string>\r
-            <fret>0</fret>\r
-          </technical>\r
-        </notations>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>G</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-        <notations>\r
-          <technical>\r
-            <string>5</string>\r
-            <fret>0</fret>\r
-          </technical>\r
-        </notations>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>G</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-        <notations>\r
-          <technical>\r
-            <string>5</string>\r
-            <fret>0</fret>\r
-          </technical>\r
-        </notations>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="3">\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-      <barline location="right">\r
-        <bar-style>light-heavy</bar-style>\r
-      </barline>\r
-    </measure>\r
-  </part>\r
-  <!--=========================================================-->\r
-  <part id="P7">\r
-    <measure number="1">\r
-      <attributes>\r
-        <divisions>1</divisions>\r
-        <key>\r
-          <fifths>0</fifths>\r
-          <mode>major</mode>\r
-        </key>\r
-        <clef>\r
-          <sign>TAB</sign>\r
-          <line>5</line>\r
-        </clef>\r
-        <staff-details show-frets="letters">\r
-          <staff-lines>6</staff-lines>\r
-          <staff-tuning line="1">\r
-            <tuning-step>G</tuning-step>\r
-            <tuning-octave>2</tuning-octave>\r
-          </staff-tuning>\r
-          <staff-tuning line="2">\r
-            <tuning-step>C</tuning-step>\r
-            <tuning-octave>3</tuning-octave>\r
-          </staff-tuning>\r
-          <staff-tuning line="3">\r
-            <tuning-step>F</tuning-step>\r
-            <tuning-octave>3</tuning-octave>\r
-          </staff-tuning>\r
-          <staff-tuning line="4">\r
-            <tuning-step>A</tuning-step>\r
-            <tuning-octave>3</tuning-octave>\r
-          </staff-tuning>\r
-          <staff-tuning line="5">\r
-            <tuning-step>D</tuning-step>\r
-            <tuning-octave>4</tuning-octave>\r
-          </staff-tuning>\r
-          <staff-tuning line="6">\r
-            <tuning-step>G</tuning-step>\r
-            <tuning-octave>4</tuning-octave>\r
-          </staff-tuning>\r
-        </staff-details>\r
-      </attributes>\r
-      <sound tempo="120"/>\r
-      <note>\r
-        <pitch>\r
-          <step>C</step>\r
-          <alter>1</alter>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-        <notations>\r
-          <technical>\r
-            <string>3</string>\r
-            <fret>4</fret>\r
-          </technical>\r
-        </notations>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>C</step>\r
-          <alter>1</alter>\r
-          <octave>3</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-        <notations>\r
-          <technical>\r
-            <string>5</string>\r
-            <fret>1</fret>\r
-          </technical>\r
-        </notations>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>A</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-        <notations>\r
-          <technical>\r
-            <string>1</string>\r
-            <fret>2</fret>\r
-          </technical>\r
-        </notations>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>E</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-        <notations>\r
-          <technical>\r
-            <string>3</string>\r
-            <fret>7</fret>\r
-          </technical>\r
-        </notations>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="2">\r
-      <note>\r
-        <pitch>\r
-          <step>D</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-        <notations>\r
-          <technical>\r
-            <string>2</string>\r
-            <fret>0</fret>\r
-          </technical>\r
-        </notations>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>F</step>\r
-          <octave>3</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-        <notations>\r
-          <technical>\r
-            <string>4</string>\r
-            <fret>0</fret>\r
-          </technical>\r
-        </notations>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>G</step>\r
-          <octave>2</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-        <notations>\r
-          <technical>\r
-            <string>6</string>\r
-            <fret>0</fret>\r
-          </technical>\r
-        </notations>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>C</step>\r
-          <octave>3</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-        <notations>\r
-          <technical>\r
-            <string>5</string>\r
-            <fret>0</fret>\r
-          </technical>\r
-        </notations>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="3">\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-      <barline location="right">\r
-        <bar-style>light-heavy</bar-style>\r
-      </barline>\r
-    </measure>\r
-  </part>\r
-  <!--=========================================================-->\r
-  <part id="P8">\r
-    <measure number="1">\r
-      <attributes>\r
-        <divisions>1</divisions>\r
-        <key>\r
-          <fifths>0</fifths>\r
-          <mode>major</mode>\r
-        </key>\r
-        <clef>\r
-          <sign>TAB</sign>\r
-          <line>5</line>\r
-        </clef>\r
-        <staff-details>\r
-          <staff-lines>4</staff-lines>\r
-          <staff-tuning line="1">\r
-            <tuning-step>A</tuning-step>\r
-            <tuning-octave>4</tuning-octave>\r
-          </staff-tuning>\r
-          <staff-tuning line="2">\r
-            <tuning-step>E</tuning-step>\r
-            <tuning-octave>4</tuning-octave>\r
-          </staff-tuning>\r
-          <staff-tuning line="3">\r
-            <tuning-step>C</tuning-step>\r
-            <tuning-octave>4</tuning-octave>\r
-          </staff-tuning>\r
-          <staff-tuning line="4">\r
-            <tuning-step>G</tuning-step>\r
-            <tuning-octave>4</tuning-octave>\r
-          </staff-tuning>\r
-        </staff-details>\r
-      </attributes>\r
-      <sound tempo="120"/>\r
-      <note>\r
-        <pitch>\r
-          <step>E</step>\r
-          <octave>6</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-        <notations>\r
-          <technical>\r
-            <string>3</string>\r
-            <fret>24</fret>\r
-          </technical>\r
-        </notations>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>B</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-        <notations>\r
-          <technical>\r
-            <string>1</string>\r
-            <fret>4</fret>\r
-          </technical>\r
-        </notations>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>C</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-        <notations>\r
-          <technical>\r
-            <string>2</string>\r
-            <fret>0</fret>\r
-          </technical>\r
-        </notations>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>E</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-        <notations>\r
-          <technical>\r
-            <string>3</string>\r
-            <fret>0</fret>\r
-          </technical>\r
-        </notations>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="2">\r
-      <note>\r
-        <pitch>\r
-          <step>C</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-        <notations>\r
-          <technical>\r
-            <string>2</string>\r
-            <fret>0</fret>\r
-          </technical>\r
-        </notations>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>C</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-        <notations>\r
-          <technical>\r
-            <string>2</string>\r
-            <fret>0</fret>\r
-          </technical>\r
-        </notations>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>C</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-        <notations>\r
-          <technical>\r
-            <string>2</string>\r
-            <fret>0</fret>\r
-          </technical>\r
-        </notations>\r
-      </note>\r
-      <note>\r
-        <pitch>\r
-          <step>C</step>\r
-          <octave>4</octave>\r
-        </pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <stem>up</stem>\r
-        <notations>\r
-          <technical>\r
-            <string>2</string>\r
-            <fret>0</fret>\r
-          </technical>\r
-        </notations>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="3">\r
-      <note>\r
-        <rest/>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-      </note>\r
-      <barline location="right">\r
-        <bar-style>light-heavy</bar-style>\r
-      </barline>\r
-    </measure>\r
-  </part>\r
-  <!--=========================================================-->\r
-</score-partwise>\r
diff --git a/input/regression/musicxml/17f-AllChordTypes.xml b/input/regression/musicxml/17f-AllChordTypes.xml
deleted file mode 100644 (file)
index ba24bed..0000000
+++ /dev/null
@@ -1,592 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>\r
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"\r
-                                "http://www.musicxml.org/dtds/partwise.dtd">\r
-<score-partwise>\r
-  <movement-title>All MusicXML chord names/types with &lt;root&gt;</movement-title>\r
-  <identification/>\r
-  <part-list>\r
-    <score-part id="P1">\r
-      <part-name>MusicXML Part</part-name>\r
-      <score-instrument id="P1-I1">\r
-        <instrument-name>Acoustic Grand Piano</instrument-name>\r
-      </score-instrument>\r
-    </score-part>\r
-  </part-list>\r
-  <!--=========================================================-->\r
-  <part id="P1">\r
-    <measure number="1">\r
-      <attributes>\r
-        <divisions>2</divisions>\r
-        <key>\r
-          <fifths>0</fifths>\r
-          <mode>major</mode>\r
-        </key>\r
-        <time symbol="common">\r
-          <beats>4</beats>\r
-          <beat-type>4</beat-type>\r
-        </time>\r
-        <clef>\r
-          <sign>G</sign>\r
-          <line>2</line>\r
-        </clef>\r
-      </attributes>\r
-      <harmony>\r
-        <root>\r
-          <root-step>C</root-step>\r
-        </root>\r
-        <kind>major</kind>\r
-      </harmony>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>2</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>major</text></lyric>\r
-      </note>\r
-      <harmony>\r
-        <root>\r
-          <root-step>C</root-step>\r
-        </root>\r
-        <kind>minor</kind>\r
-      </harmony>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>2</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>minor</text></lyric>\r
-      </note>\r
-      <harmony>\r
-        <root>\r
-          <root-step>C</root-step>\r
-        </root>\r
-        <kind>augmented</kind>\r
-      </harmony>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>2</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>augmented</text></lyric>\r
-      </note>\r
-      <harmony>\r
-        <root>\r
-          <root-step>C</root-step>\r
-        </root>\r
-        <kind>diminished</kind>\r
-      </harmony>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>2</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>diminished</text></lyric>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="2">\r
-      <harmony>\r
-        <root>\r
-          <root-step>C</root-step>\r
-        </root>\r
-        <kind>dominant</kind>\r
-      </harmony>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>2</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>dominant</text></lyric>\r
-      </note>\r
-      <harmony>\r
-        <root>\r
-          <root-step>C</root-step>\r
-        </root>\r
-        <kind>major-seventh</kind>\r
-      </harmony>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>2</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>major-seventh</text></lyric>\r
-      </note>\r
-      <harmony>\r
-        <root>\r
-          <root-step>C</root-step>\r
-        </root>\r
-        <kind>minor-seventh</kind>\r
-      </harmony>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>2</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>minor-seventh</text></lyric>\r
-      </note>\r
-      <harmony>\r
-        <root>\r
-          <root-step>C</root-step>\r
-        </root>\r
-        <kind>diminished-seventh</kind>\r
-      </harmony>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>2</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>diminished-seventh</text></lyric>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="3">\r
-      <harmony>\r
-        <root>\r
-          <root-step>C</root-step>\r
-        </root>\r
-        <kind>augmented-seventh</kind>\r
-      </harmony>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>2</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>augmented-seventh</text></lyric>\r
-      </note>\r
-      <harmony>\r
-        <root>\r
-          <root-step>C</root-step>\r
-        </root>\r
-        <kind>half-diminished</kind>\r
-      </harmony>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>2</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>half-diminished</text></lyric>\r
-      </note>\r
-      <harmony>\r
-        <root>\r
-          <root-step>C</root-step>\r
-        </root>\r
-        <kind>major-minor</kind>\r
-      </harmony>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>2</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>major-minor</text></lyric>\r
-      </note>\r
-      <harmony>\r
-        <root>\r
-          <root-step>C</root-step>\r
-        </root>\r
-        <kind>major-sixth</kind>\r
-      </harmony>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>2</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>major-sixth</text></lyric>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="4">\r
-      <harmony>\r
-        <root>\r
-          <root-step>C</root-step>\r
-        </root>\r
-        <kind>minor-sixth</kind>\r
-      </harmony>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>2</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>minor-sixth</text></lyric>\r
-      </note>\r
-      <harmony>\r
-        <root>\r
-          <root-step>C</root-step>\r
-        </root>\r
-        <kind>dominant-ninth</kind>\r
-      </harmony>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>2</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>dominant-ninth</text></lyric>\r
-      </note>\r
-      <harmony>\r
-        <root>\r
-          <root-step>C</root-step>\r
-        </root>\r
-        <kind>major-ninth</kind>\r
-      </harmony>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>2</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>major-ninth</text></lyric>\r
-      </note>\r
-      <harmony>\r
-        <root>\r
-          <root-step>C</root-step>\r
-        </root>\r
-        <kind>minor-ninth</kind>\r
-        <lyric number="1"><text>minor-ninth</text></lyric>\r
-      </harmony>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>2</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>minor-ninth</text></lyric>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="5">\r
-      <harmony>\r
-        <root>\r
-          <root-step>C</root-step>\r
-        </root>\r
-        <kind>dominant-11th</kind>\r
-      </harmony>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>2</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>dominant-11th</text></lyric>\r
-      </note>\r
-      <harmony>\r
-        <root>\r
-          <root-step>C</root-step>\r
-        </root>\r
-        <kind>major-11th</kind>\r
-      </harmony>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>2</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>major-11th</text></lyric>\r
-      </note>\r
-      <harmony>\r
-        <root>\r
-          <root-step>C</root-step>\r
-        </root>\r
-        <kind>minor-11th</kind>\r
-      </harmony>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>2</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>minor-11th</text></lyric>\r
-      </note>\r
-      <harmony>\r
-        <root>\r
-          <root-step>C</root-step>\r
-        </root>\r
-        <kind>dominant-13th</kind>\r
-      </harmony>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>2</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>dominant-13th</text></lyric>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="6">\r
-      <harmony>\r
-        <root>\r
-          <root-step>C</root-step>\r
-        </root>\r
-        <kind>major-13th</kind>\r
-      </harmony>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>2</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>major-13th</text></lyric>\r
-      </note>\r
-      <harmony>\r
-        <root>\r
-          <root-step>C</root-step>\r
-        </root>\r
-        <kind>minor-13th</kind>\r
-      </harmony>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>2</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>minor-13th</text></lyric>\r
-      </note>\r
-      <harmony>\r
-        <root>\r
-          <root-step>C</root-step>\r
-        </root>\r
-        <kind>suspended-second</kind>\r
-      </harmony>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>2</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>suspended-second</text></lyric>\r
-      </note>\r
-      <harmony>\r
-        <root>\r
-          <root-step>C</root-step>\r
-        </root>\r
-        <kind>suspended-fourth</kind>\r
-      </harmony>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>2</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>suspended-fourth</text></lyric>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="7">\r
-      <harmony>\r
-        <root>\r
-          <root-step>C</root-step>\r
-        </root>\r
-        <kind>Neapolitan</kind>\r
-      </harmony>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>2</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>Neapolitan</text></lyric>\r
-      </note>\r
-      <harmony>\r
-        <root>\r
-          <root-step>C</root-step>\r
-        </root>\r
-        <kind>Italian</kind>\r
-      </harmony>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>2</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>Italians</text></lyric>\r
-      </note>\r
-      <harmony>\r
-        <root>\r
-          <root-step>C</root-step>\r
-        </root>\r
-        <kind>French</kind>\r
-      </harmony>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>2</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>French</text></lyric>\r
-      </note>\r
-      <harmony>\r
-        <root>\r
-          <root-step>C</root-step>\r
-        </root>\r
-        <kind>German</kind>\r
-      </harmony>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>2</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-         <lyric number="1"><text>German</text></lyric>\r
-     </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="8">\r
-      <harmony>\r
-        <root>\r
-          <root-step>C</root-step>\r
-        </root>\r
-        <kind>pedal</kind>\r
-      </harmony>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>2</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>pedal</text></lyric>\r
-      </note>\r
-      <harmony>\r
-        <root>\r
-          <root-step>C</root-step>\r
-        </root>\r
-        <kind>power</kind>\r
-      </harmony>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>2</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>power</text></lyric>\r
-      </note>\r
-      <harmony>\r
-        <root>\r
-          <root-step>C</root-step>\r
-        </root>\r
-        <kind>Tristan</kind>\r
-      </harmony>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>2</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>Tristan</text></lyric>\r
-      </note>\r
-      <harmony>\r
-        <root>\r
-          <root-step>C</root-step>\r
-        </root>\r
-        <kind>other</kind>\r
-      </harmony>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>2</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>other</text></lyric>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="9">\r
-      <harmony>\r
-        <root>\r
-          <root-step>F</root-step>\r
-          <root-alter>1</root-alter>\r
-        </root>\r
-        <kind>major</kind>\r
-        <inversion>2</inversion>\r
-      </harmony>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>4</duration>\r
-        <voice>1</voice>\r
-        <type>half</type>\r
-        <lyric number="1"><text>Inversion</text></lyric>\r
-      </note>\r
-      <harmony>\r
-        <root>\r
-          <root-step>F</root-step>\r
-          <root-alter>-2</root-alter>\r
-        </root>\r
-        <kind>major</kind>\r
-        <bass>\r
-          <bass-step>C</bass-step>\r
-        </bass>\r
-      </harmony>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>eighth</type>\r
-        <lyric number="1"><text>Fbb/C</text></lyric>\r
-      </note>\r
-      <harmony>\r
-        <root>\r
-          <root-step>G</root-step>\r
-          <root-alter>1</root-alter>\r
-        </root>\r
-        <kind>major</kind>\r
-        <bass>\r
-          <bass-step>D</bass-step>\r
-          <bass-alter>1</bass-alter>\r
-        </bass>\r
-      </harmony>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>1</duration>\r
-        <voice>1</voice>\r
-        <type>eighth</type>\r
-        <lyric number="1"><text>G#/D#</text></lyric>\r
-      </note>\r
-      <harmony>\r
-        <root>\r
-          <root-step>C</root-step>\r
-        </root>\r
-        <kind>major</kind>\r
-      </harmony>\r
-      <note>\r
-        <rest/>\r
-        <duration>2</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>C</text></lyric>\r
-      </note>\r
-    </measure>\r
-    <!--=======================================================-->\r
-    <measure number="10">\r
-      <harmony>\r
-        <root>\r
-          <root-step>C</root-step>\r
-        </root>\r
-        <kind>major</kind>\r
-        <degree>\r
-          <degree-value>3</degree-value>\r
-          <degree-alter>0</degree-alter>\r
-          <degree-type>subtract</degree-type>\r
-        </degree>\r
-        <degree>\r
-          <degree-value>5</degree-value>\r
-          <degree-alter>-1</degree-alter>\r
-          <degree-type>alter</degree-type>\r
-        </degree>\r
-      </harmony>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>2</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>C-3+5b</text></lyric>\r
-      </note>\r
-      <harmony>\r
-        <root>\r
-          <root-step>C</root-step>\r
-        </root>\r
-        <kind>major</kind>\r
-        <degree>\r
-          <degree-value>1</degree-value>\r
-          <degree-alter>0</degree-alter>\r
-          <degree-type>subtract</degree-type>\r
-        </degree>\r
-        <degree>\r
-          <degree-value>6</degree-value>\r
-          <degree-alter>-1</degree-alter>\r
-          <degree-type>add</degree-type>\r
-        </degree>\r
-      </harmony>\r
-      <note>\r
-        <pitch><step>C</step><octave>4</octave></pitch>\r
-        <duration>2</duration>\r
-        <voice>1</voice>\r
-        <type>quarter</type>\r
-        <lyric number="1"><text>C-1+6b</text></lyric>\r
-      </note>\r
-      <barline location="right">\r
-        <bar-style>light-heavy</bar-style>\r
-      </barline>\r
-    </measure>\r
-  </part>\r
-  <!--=========================================================-->\r
-</score-partwise>\r
diff --git a/input/regression/musicxml/18a-FiguredBass.xml b/input/regression/musicxml/18a-FiguredBass.xml
deleted file mode 100644 (file)
index b0a43eb..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
-                                "http://www.musicxml.org/dtds/partwise.dtd">
-<score-partwise version="1.1">
-  <movement-title>Figured Bass</movement-title>
-  <identification/>
-  <part-list>
-    <score-part id="P1">
-      <part-name>MusicXML Part</part-name>
-      <score-instrument id="P1-I1">
-        <instrument-name>Acoustic Grand Piano</instrument-name>
-      </score-instrument>
-      <midi-instrument id="P1-I1">
-        <midi-channel>1</midi-channel>
-        <midi-program>1</midi-program>
-      </midi-instrument>
-    </score-part>
-  </part-list>
-  <!--=========================================================-->
-  <part id="P1">
-    <measure number="1">
-      <attributes>
-        <divisions>8</divisions>
-        <key>
-          <fifths>0</fifths>
-          <mode>major</mode>
-        </key>
-        <time symbol="common">
-          <beats>4</beats>
-          <beat-type>4</beat-type>
-        </time>
-        <clef>
-          <sign>G</sign>
-          <line>2</line>
-        </clef>
-      </attributes>
-      <sound tempo="120"/>
-      <figured-bass>
-        <figure><figure-number>3</figure-number></figure>
-        <duration>4</duration>
-      </figured-bass>
-      <note>
-        <pitch><step>G</step><octave>4</octave></pitch>
-        <duration>4</duration>
-        <voice>1</voice>
-        <type>eighth</type>
-      </note>
-      <note>
-        <pitch><step>G</step><octave>4</octave></pitch>
-        <duration>4</duration>
-        <voice>1</voice>
-        <type>eighth</type>
-      </note>
-      <figured-bass>
-        <figure><prefix>sharp</prefix><figure-number>1</figure-number></figure>
-        <figure><prefix>flat</prefix><figure-number>3</figure-number></figure>
-        <figure><prefix>natural</prefix><figure-number>5</figure-number></figure>
-        <duration>6</duration>
-      </figured-bass>
-      <note>
-        <pitch><step>G</step><octave>4</octave></pitch>
-        <duration>6</duration>
-        <voice>1</voice>
-        <type>eighth</type>
-        <dot/>
-      </note>
-      <figured-bass parentheses="yes">
-        <figure><figure-number>6</figure-number></figure>
-      </figured-bass>
-      <note>
-        <pitch><step>G</step><octave>4</octave></pitch>
-        <duration>2</duration>
-        <voice>1</voice>
-        <type>16th</type>
-      </note>
-      <figured-bass>
-        <figure><figure-number>5</figure-number><suffix>slash</suffix></figure>
-        <figure><prefix>flat</prefix><figure-number>127</figure-number><suffix>slash</suffix></figure>
-        <duration>8</duration>
-      </figured-bass>
-      <note>
-        <pitch><step>G</step><octave>4</octave></pitch>
-        <duration>8</duration>
-        <voice>1</voice>
-        <type>eighth</type>
-        <dot/>
-      </note>
-      <!-- Check how well the application handles an empty element (invalid MusicXML!) -->
-      <figured-bass>
-      </figured-bass>
-      <note>
-        <pitch><step>G</step><octave>4</octave></pitch>
-        <duration>8</duration>
-        <voice>1</voice>
-        <type>quarter</type>
-      </note>
-      <barline location="right">
-        <bar-style>light-heavy</bar-style>
-      </barline>
-    </measure>
-  </part>
-  <!--=========================================================-->
-</score-partwise>
diff --git a/input/regression/musicxml/19a-PageLayout-PrintMusic.xml b/input/regression/musicxml/19a-PageLayout-PrintMusic.xml
deleted file mode 100644 (file)
index ac51b7f..0000000
+++ /dev/null
@@ -1,102 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.1 Partwise//EN"
-                                "http://www.musicxml.org/dtds/partwise.dtd">
-<score-partwise version="1.1">
-  <movement-title>Layout options</movement-title>
-  <identification>
-    <encoding>
-      <software>PrintMusic 2008 for Windows</software>
-      <software>Dolet Light for PrintMusic 2008</software>
-      <encoding-date>2007-11-04</encoding-date>
-    </encoding>
-  </identification>
-  <defaults>
-    <scaling>
-      <millimeters>3.7703</millimeters>
-      <tenths>40</tenths>
-    </scaling>
-    <page-layout>
-      <page-height>954</page-height>
-      <page-width>1804</page-width>
-      <page-margins type="both">
-        <left-margin>318</left-margin>
-        <right-margin>212</right-margin>
-        <top-margin>53</top-margin>
-        <bottom-margin>74</bottom-margin>
-      </page-margins>
-    </page-layout>
-    <system-layout>
-      <system-margins>
-        <left-margin>248</left-margin>
-        <right-margin>206</right-margin>
-      </system-margins>
-      <system-distance>561</system-distance>
-      <top-system-distance>436</top-system-distance>
-    </system-layout>
-    <music-font font-family="Maestro" font-size="10.7"/>
-    <word-font font-family="Times New Roman" font-size="5.3"/>
-  </defaults>
-  <credit>
-    <credit-words default-x="955" default-y="876" font-size="18" font-weight="bold" justify="center" valign="top">Layout options</credit-words>
-  </credit>
-  <part-list>
-    <score-part id="P1">
-      <part-name print-object="no">MusicXML Part</part-name>
-      <score-instrument id="P1-I1">
-        <instrument-name>Grand Piano</instrument-name>
-      </score-instrument>
-      <midi-instrument id="P1-I1">
-        <midi-channel>1</midi-channel>
-        <midi-program>1</midi-program>
-      </midi-instrument>
-    </score-part>
-  </part-list>
-  <!--=========================================================-->
-  <part id="P1">
-    <measure number="1" width="441">
-      <print page-number="8"/>
-      <attributes>
-        <divisions>1</divisions>
-        <key>
-          <fifths>0</fifths>
-          <mode>major</mode>
-        </key>
-        <time symbol="common">
-          <beats>4</beats>
-          <beat-type>4</beat-type>
-        </time>
-        <clef>
-          <sign>G</sign>
-          <line>2</line>
-        </clef>
-      </attributes>
-      <sound tempo="120"/>
-      <note>
-        <rest/>
-        <duration>4</duration>
-        <voice>1</voice>
-      </note>
-    </measure>
-    <!--=======================================================-->
-    <measure number="2" width="378">
-      <note>
-        <rest/>
-        <duration>4</duration>
-        <voice>1</voice>
-      </note>
-    </measure>
-    <!--=======================================================-->
-    <measure number="3" width="819">
-      <print new-page="yes" page-number="9"/>
-      <note>
-        <rest/>
-        <duration>4</duration>
-        <voice>1</voice>
-      </note>
-      <barline location="right">
-        <bar-style>light-heavy</bar-style>
-      </barline>
-    </measure>
-  </part>
-  <!--=========================================================-->
-</score-partwise>
diff --git a/input/regression/musicxml/20a-Compressed-MusicXML-Sample.mxl b/input/regression/musicxml/20a-Compressed-MusicXML-Sample.mxl
deleted file mode 100644 (file)
index 0d41bf3..0000000
Binary files a/input/regression/musicxml/20a-Compressed-MusicXML-Sample.mxl and /dev/null differ
diff --git a/input/regression/musicxml/21-Chords.itexi b/input/regression/musicxml/21-Chords.itexi
new file mode 100644 (file)
index 0000000..75e68bf
--- /dev/null
@@ -0,0 +1 @@
+@unnumberedsec 21 ... Chorded notes
diff --git a/input/regression/musicxml/21a-Chord-Basic.xml b/input/regression/musicxml/21a-Chord-Basic.xml
new file mode 100644 (file)
index 0000000..17464b8
--- /dev/null
@@ -0,0 +1,55 @@
+<?xml version="1.0"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 0.6 Partwise//EN" "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+       <identification> 
+               <miscellaneous>
+                       <miscellaneous-field name="description">One simple chord 
+                            consisting of two notes.</miscellaneous-field>
+               </miscellaneous>
+       </identification>
+       <part-list>
+               <score-part id="P0">
+                       <part-name>MusicXML Part</part-name>
+               </score-part>
+       </part-list>
+       <part id="P0">
+               <measure number="1">
+                       <attributes>
+                               <divisions>960</divisions>
+                               <time>
+                               <beats>4</beats>
+                               <beat-type>4</beat-type>
+                               </time>
+                               <clef>
+                               <sign>G</sign>
+                               <line>2</line>
+                               </clef>
+                       </attributes>
+                       <note>
+                               <pitch>
+                                       <step>A</step>
+                                       <octave>4</octave>
+                               </pitch>
+                               <duration>960</duration>
+                               <voice>1</voice>
+                               <type>quarter</type>
+                       </note>
+                       <note>
+                               <chord/>
+                               <pitch>
+                                       <step>F</step>
+                                       <octave>4</octave>
+                               </pitch>
+                               <duration>960</duration>
+                               <voice>1</voice>
+                               <type>quarter</type>
+                       </note>
+                       <note>
+                               <rest/>
+                               <duration>960</duration>
+                               <voice>1</voice>
+                               <type>quarter</type>
+                       </note>
+               </measure>
+       </part>
+</score-partwise>
diff --git a/input/regression/musicxml/21b-Chords-TwoNotes.xml b/input/regression/musicxml/21b-Chords-TwoNotes.xml
new file mode 100644 (file)
index 0000000..7991e24
--- /dev/null
@@ -0,0 +1,185 @@
+<?xml version="1.0"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 0.6 Partwise//EN" "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+       <identification> 
+               <miscellaneous>
+                       <miscellaneous-field name="description">Some subsequent 
+                            (identical) two-note chords.</miscellaneous-field>
+               </miscellaneous>
+       </identification> 
+       <part-list>
+               <score-part id="P0">
+                       <part-name>MusicXML Part</part-name>
+               </score-part>
+       </part-list>
+       <part id="P0">
+               <measure number="1">
+                       <attributes>
+                               <divisions>960</divisions>
+                               <time>
+                               <beats>4</beats>
+                               <beat-type>4</beat-type>
+                               </time>
+                               <clef>
+                               <sign>G</sign>
+                               <line>2</line>
+                               </clef>
+                       </attributes>
+                       <note>
+                               <pitch>
+                                       <step>A</step>
+                                       <octave>4</octave>
+                               </pitch>
+                               <duration>960</duration>
+                               <voice>1</voice>
+                               <type>quarter</type>
+                       </note>
+                       <note>
+                               <chord/>
+                               <pitch>
+                                       <step>F</step>
+                                       <octave>4</octave>
+                               </pitch>
+                               <duration>960</duration>
+                               <voice>1</voice>
+                               <type>quarter</type>
+                       </note>
+                       <note>
+                               <pitch>
+                                       <step>A</step>
+                                       <octave>4</octave>
+                               </pitch>
+                               <duration>960</duration>
+                               <voice>1</voice>
+                               <type>quarter</type>
+                       </note>
+                       <note>
+                               <chord/>
+                               <pitch>
+                                       <step>F</step>
+                                       <octave>4</octave>
+                               </pitch>
+                               <duration>960</duration>
+                               <voice>1</voice>
+                               <type>quarter</type>
+                       </note>
+                       <note>
+                               <pitch>
+                                       <step>A</step>
+                                       <octave>4</octave>
+                               </pitch>
+                               <duration>960</duration>
+                               <voice>1</voice>
+                               <type>quarter</type>
+                       </note>
+                       <note>
+                               <chord/>
+                               <pitch>
+                                       <step>F</step>
+                                       <octave>4</octave>
+                               </pitch>
+                               <duration>960</duration>
+                               <voice>1</voice>
+                               <type>quarter</type>
+                       </note>
+                       <note>
+                               <pitch>
+                                       <step>A</step>
+                                       <octave>4</octave>
+                               </pitch>
+                               <duration>960</duration>
+                               <voice>1</voice>
+                               <type>quarter</type>
+                       </note>
+                       <note>
+                               <chord/>
+                               <pitch>
+                                       <step>F</step>
+                                       <octave>4</octave>
+                               </pitch>
+                               <duration>960</duration>
+                               <voice>1</voice>
+                               <type>quarter</type>
+                       </note>
+               </measure>
+
+               <measure number="2">
+                       <note>
+                               <pitch>
+                                       <step>A</step>
+                                       <octave>4</octave>
+                               </pitch>
+                               <duration>960</duration>
+                               <voice>1</voice>
+                               <type>quarter</type>
+                       </note>
+                       <note>
+                               <chord/>
+                               <pitch>
+                                       <step>F</step>
+                                       <octave>4</octave>
+                               </pitch>
+                               <duration>960</duration>
+                               <voice>1</voice>
+                               <type>quarter</type>
+                       </note>
+                       <note>
+                               <pitch>
+                                       <step>A</step>
+                                       <octave>4</octave>
+                               </pitch>
+                               <duration>960</duration>
+                               <voice>1</voice>
+                               <type>quarter</type>
+                       </note>
+                       <note>
+                               <chord/>
+                               <pitch>
+                                       <step>F</step>
+                                       <octave>4</octave>
+                               </pitch>
+                               <duration>960</duration>
+                               <voice>1</voice>
+                               <type>quarter</type>
+                       </note>
+                       <note>
+                               <pitch>
+                                       <step>A</step>
+                                       <octave>4</octave>
+                               </pitch>
+                               <duration>960</duration>
+                               <voice>1</voice>
+                               <type>quarter</type>
+                       </note>
+                       <note>
+                               <chord/>
+                               <pitch>
+                                       <step>F</step>
+                                       <octave>4</octave>
+                               </pitch>
+                               <duration>960</duration>
+                               <voice>1</voice>
+                               <type>quarter</type>
+                       </note>
+                       <note>
+                               <pitch>
+                                       <step>A</step>
+                                       <octave>4</octave>
+                               </pitch>
+                               <duration>960</duration>
+                               <voice>1</voice>
+                               <type>quarter</type>
+                       </note>
+                       <note>
+                               <chord/>
+                               <pitch>
+                                       <step>F</step>
+                                       <octave>4</octave>
+                               </pitch>
+                               <duration>960</duration>
+                               <voice>1</voice>
+                               <type>quarter</type>
+                       </note>
+               </measure>
+       </part>
+</score-partwise>
diff --git a/input/regression/musicxml/21c-Chords-ThreeNotesDuration.xml b/input/regression/musicxml/21c-Chords-ThreeNotesDuration.xml
new file mode 100644 (file)
index 0000000..f47ef86
--- /dev/null
@@ -0,0 +1,229 @@
+<?xml version="1.0"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 0.6 Partwise//EN" "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+       <identification> 
+               <miscellaneous>
+                       <miscellaneous-field name="description">Some three-note 
+                            chords, with various durations.</miscellaneous-field>
+               </miscellaneous>
+       </identification> 
+       <part-list>
+               <score-part id="P0">
+                       <part-name>MusicXML Part</part-name>
+               </score-part>
+       </part-list>
+       <part id="P0">
+               <measure number="1">
+                       <attributes>
+                               <divisions>960</divisions>
+                               <time>
+                               <beats>4</beats>
+                               <beat-type>4</beat-type>
+                               </time>
+                               <clef>
+                               <sign>G</sign>
+                               <line>2</line>
+                               </clef>
+                       </attributes>
+                       <note>
+                               <pitch>
+                                       <step>F</step>
+                                       <octave>4</octave>
+                               </pitch>
+                               <duration>1440</duration>
+                               <voice>1</voice>
+                               <type>quarter</type>
+                               <dot/>
+                       </note>
+                       <note>
+                               <chord/>
+                               <pitch>
+                                       <step>A</step>
+                                       <octave>4</octave>
+                               </pitch>
+                               <duration>1440</duration>
+                               <voice>1</voice>
+                               <type>quarter</type>
+                               <dot/>
+                       </note>
+                       <note>
+                               <chord/>
+                               <pitch>
+                                       <step>C</step>
+                                       <octave>5</octave>
+                               </pitch>
+                               <duration>1440</duration>
+                               <voice>1</voice>
+                               <type>quarter</type>
+                               <dot/>
+                       </note>
+                       <note>
+                               <pitch>
+                                       <step>A</step>
+                                       <octave>4</octave>
+                               </pitch>
+                               <duration>480</duration>
+                               <voice>1</voice>
+                               <type>eighth</type>
+                       </note>
+                       <note>
+                               <chord/>
+                               <pitch>
+                                       <step>G</step>
+                                       <octave>5</octave>
+                               </pitch>
+                               <duration>480</duration>
+                               <voice>1</voice>
+                               <type>eighth</type>
+                       </note>
+                       <note>
+                               <pitch>
+                                       <step>A</step>
+                                       <octave>4</octave>
+                               </pitch>
+                               <duration>960</duration>
+                               <voice>1</voice>
+                               <type>quarter</type>
+                       </note>
+                       <note>
+                               <chord/>
+                               <pitch>
+                                       <step>F</step>
+                                       <octave>4</octave>
+                               </pitch>
+                               <duration>960</duration>
+                               <voice>1</voice>
+                               <type>quarter</type>
+                       </note>
+                       <note>
+                               <chord/>
+                               <pitch>
+                                       <step>C</step>
+                                       <octave>5</octave>
+                               </pitch>
+                               <duration>960</duration>
+                               <voice>1</voice>
+                               <type>quarter</type>
+                       </note>
+                       <note>
+                               <pitch>
+                                       <step>A</step>
+                                       <octave>4</octave>
+                               </pitch>
+                               <duration>960</duration>
+                               <voice>1</voice>
+                               <type>quarter</type>
+                       </note>
+                       <note>
+                               <chord/>
+                               <pitch>
+                                       <step>F</step>
+                                       <octave>4</octave>
+                               </pitch>
+                               <duration>960</duration>
+                               <voice>1</voice>
+                               <type>quarter</type>
+                       </note>
+                       <note>
+                               <chord/>
+                               <pitch>
+                                       <step>C</step>
+                                       <octave>5</octave>
+                               </pitch>
+                               <duration>960</duration>
+                               <voice>1</voice>
+                               <type>quarter</type>
+                       </note>
+               </measure>
+
+               <measure number="2">
+                       <note>
+                               <pitch>
+                                       <step>A</step>
+                                       <octave>4</octave>
+                               </pitch>
+                               <duration>960</duration>
+                               <voice>1</voice>
+                               <type>quarter</type>
+                       </note>
+                       <note>
+                               <chord/>
+                               <pitch>
+                                       <step>F</step>
+                                       <octave>4</octave>
+                               </pitch>
+                               <duration>960</duration>
+                               <voice>1</voice>
+                               <type>quarter</type>
+                       </note>
+                       <note>
+                               <chord/>
+                               <pitch>
+                                       <step>E</step>
+                                       <octave>5</octave>
+                               </pitch>
+                               <duration>960</duration>
+                               <voice>1</voice>
+                               <type>quarter</type>
+                       </note>
+                       <note>
+                               <pitch>
+                                       <step>A</step>
+                                       <octave>4</octave>
+                               </pitch>
+                               <duration>960</duration>
+                               <voice>1</voice>
+                               <type>quarter</type>
+                       </note>
+                       <note>
+                               <chord/>
+                               <pitch>
+                                       <step>F</step>
+                                       <octave>4</octave>
+                               </pitch>
+                               <duration>960</duration>
+                               <voice>1</voice>
+                               <type>quarter</type>
+                       </note>
+                       <note>
+                               <chord/>
+                               <pitch>
+                                       <step>F</step>
+                                       <octave>5</octave>
+                               </pitch>
+                               <duration>960</duration>
+                               <voice>1</voice>
+                               <type>quarter</type>
+                       </note>
+                       <note>
+                               <pitch>
+                                       <step>A</step>
+                                       <octave>4</octave>
+                               </pitch>
+                               <duration>1920</duration>
+                               <voice>1</voice>
+                               <type>half</type>
+                       </note>
+                       <note>
+                               <chord/>
+                               <pitch>
+                                       <step>F</step>
+                                       <octave>4</octave>
+                               </pitch>
+                               <duration>1920</duration>
+                               <voice>1</voice>
+                               <type>half</type>
+                       </note>
+                       <note>
+                               <chord/>
+                               <pitch>
+                                       <step>D</step>
+                                       <octave>5</octave>
+                               </pitch>
+                               <duration>1920</duration>
+                               <voice>1</voice>
+                               <type>half</type>
+                       </note>
+               </measure>
+       </part>
+</score-partwise>
diff --git a/input/regression/musicxml/21d-Chords-SchubertStabatMater.xml b/input/regression/musicxml/21d-Chords-SchubertStabatMater.xml
new file mode 100644 (file)
index 0000000..a89acac
--- /dev/null
@@ -0,0 +1,156 @@
+<?xml version="1.0"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 0.6 Partwise//EN" "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+        <identification> 
+                <miscellaneous>
+                        <miscellaneous-field name="description">Chords in the 
+                            second measure, after several ornaments in the first 
+                            measure and a p at the beginning of the second 
+                            measure.</miscellaneous-field>
+                </miscellaneous>
+        </identification> 
+        <part-list>
+                <score-part id="P0">
+                        <part-name>MusicXML Part</part-name>
+                </score-part>
+        </part-list>
+        <part id="P0">
+          <measure number="1">
+            <attributes>
+              <divisions>8</divisions>
+              <key>
+                <fifths>-4</fifths>
+                <mode>major</mode>
+              </key>
+              <time symbol="common">
+                <beats>4</beats>
+                <beat-type>4</beat-type>
+              </time>
+              <clef>
+                <sign>G</sign>
+                <line>2</line>
+              </clef>
+            </attributes>
+            <direction placement="above">
+              <direction-type>
+                <words font-weight="bold">Largo</words>
+              </direction-type>
+            </direction>
+            <direction placement="below">
+              <direction-type>
+                <dynamics>
+                  <fp/>
+                </dynamics>
+              </direction-type>
+              <offset>3</offset>
+            </direction>
+            <note>
+              <pitch>
+                <step>F</step>
+                <octave>4</octave>
+              </pitch>
+              <duration>32</duration>
+              <voice>1</voice>
+              <type>whole</type>
+              <notations>
+                <articulations>
+                  <accent placement="below"/>
+                </articulations>
+                <fermata type="upright"/>
+              </notations>
+            </note>
+          </measure>
+          <!--=======================================================-->
+          <measure number="2">
+            <direction placement="below">
+              <direction-type>
+                <dynamics>
+                  <p/>
+                </dynamics>
+              </direction-type>
+            </direction>
+            <note>
+              <pitch>
+                <step>F</step>
+                <octave>4</octave>
+              </pitch>
+              <duration>12</duration>
+              <voice>1</voice>
+              <type>quarter</type>
+              <dot/>
+            </note>
+            <note>
+              <chord/>
+              <pitch>
+                <step>A</step>
+                <alter>-1</alter>
+                <octave>4</octave>
+              </pitch>
+              <duration>12</duration>
+              <voice>1</voice>
+              <type>quarter</type>
+              <dot/>
+            </note>
+            <note>
+              <pitch>
+                <step>F</step>
+                <octave>4</octave>
+              </pitch>
+              <duration>4</duration>
+              <voice>1</voice>
+              <type>eighth</type>
+            </note>
+            <note>
+              <chord/>
+              <pitch>
+                <step>A</step>
+                <alter>-1</alter>
+                <octave>4</octave>
+              </pitch>
+              <duration>4</duration>
+              <voice>1</voice>
+              <type>eighth</type>
+            </note>
+            <note>
+              <pitch>
+                <step>G</step>
+                <octave>4</octave>
+              </pitch>
+              <duration>8</duration>
+              <voice>1</voice>
+              <type>quarter</type>
+            </note>
+            <note>
+              <chord/>
+              <pitch>
+                <step>B</step>
+                <alter>-1</alter>
+                <octave>4</octave>
+              </pitch>
+              <duration>8</duration>
+              <voice>1</voice>
+              <type>quarter</type>
+            </note>
+            <note>
+              <pitch>
+                <step>G</step>
+                <octave>4</octave>
+              </pitch>
+              <duration>8</duration>
+              <voice>1</voice>
+              <type>quarter</type>
+            </note>
+            <note>
+              <chord/>
+              <pitch>
+                <step>B</step>
+                <alter>-1</alter>
+                <octave>4</octave>
+              </pitch>
+              <duration>8</duration>
+              <voice>1</voice>
+              <type>quarter</type>
+            </note>
+          </measure>
+        </part>
+</score-partwise>
diff --git a/input/regression/musicxml/21e-Chords-PickupMeasures.xml b/input/regression/musicxml/21e-Chords-PickupMeasures.xml
new file mode 100644 (file)
index 0000000..23e9715
--- /dev/null
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 2.0 Partwise//EN"
+          "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise version="2.0">
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">Check for proper chord detection 
+          after a pickup measure (i.e. the first beat of the measure is not 
+          aligned with multiples of the time signature)!</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+    <part-list>
+        <score-part id="P2">
+            <part-name>MusicXML Part</part-name>
+        </score-part>
+    </part-list>
+    <!--=========================================================-->
+    <part id="P2">
+        <measure implicit="yes" number="0">
+            <attributes>
+                <divisions>1</divisions>
+            </attributes>
+            <note>
+                <pitch>
+                    <step>C</step>
+                    <octave>5</octave>
+                </pitch>
+                <duration>1</duration>
+                <voice>1</voice>
+                <type>quarter</type>
+            </note>
+        </measure>
+        <!--=======================================================-->
+        <measure number="1">
+            <note>
+                <pitch>
+                    <step>C</step>
+                    <octave>5</octave>
+                </pitch>
+                <duration>1</duration>
+                <voice>1</voice>
+                <type>quarter</type>
+            </note>
+            <note>
+                <chord/>
+                <pitch>
+                    <step>A</step>
+                    <octave>4</octave>
+                </pitch>
+                <duration>1</duration>
+                <voice>1</voice>
+                <type>quarter</type>
+            </note>
+            <note>
+                <chord/>
+                <pitch>
+                    <step>F</step>
+                    <octave>4</octave>
+                </pitch>
+                <duration>1</duration>
+                <voice>1</voice>
+                <type>quarter</type>
+            </note>
+            <note>
+                <pitch>
+                    <step>C</step>
+                    <octave>5</octave>
+                </pitch>
+                <duration>1</duration>
+                <voice>1</voice>
+                <type>quarter</type>
+            </note>
+            <note>
+                <chord/>
+                <pitch>
+                    <step>A</step>
+                    <octave>4</octave>
+                </pitch>
+                <duration>1</duration>
+                <voice>1</voice>
+                <type>quarter</type>
+            </note>
+        </measure>
+        <!--=======================================================-->
+    </part>
+    <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/21f-Chord-ElementInBetween.xml b/input/regression/musicxml/21f-Chord-ElementInBetween.xml
new file mode 100644 (file)
index 0000000..c0a0b87
--- /dev/null
@@ -0,0 +1,84 @@
+<?xml version="1.0"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 0.6 Partwise//EN" "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+    <identification>
+      <miscellaneous>
+        <miscellaneous-field name="description">Between the individual notes of 
+            a chord there can be direction or harmony elements, which should be 
+            properly assigned to the chord (or the position of the 
+            chord).</miscellaneous-field>
+      </miscellaneous>
+    </identification>
+    <part-list>
+        <score-part id="P0">
+            <part-name>MusicXML Part</part-name>
+        </score-part>
+    </part-list>
+    <part id="P0">
+        <measure number="1">
+            <attributes>
+                <divisions>1</divisions>
+                <time>
+                    <beats>4</beats>
+                    <beat-type>4</beat-type>
+                </time>
+                <clef>
+                    <sign>G</sign>
+                    <line>2</line>
+                </clef>
+            </attributes>
+            <note>
+                <pitch>
+                    <step>A</step>
+                    <octave>4</octave>
+                </pitch>
+                <duration>1</duration>
+                <voice>1</voice>
+                <type>quarter</type>
+            </note>
+            <direction>
+              <direction-type>
+                <segno/>
+              </direction-type>
+            </direction>
+            <note>
+                <chord/>
+                <pitch>
+                    <step>F</step>
+                    <octave>4</octave>
+                    <alter>1</alter>
+                </pitch>
+                <duration>1</duration>
+                <voice>1</voice>
+                <type>quarter</type>
+            </note>
+            <direction>
+                <direction-type>
+                    <dynamics><p/></dynamics>
+                </direction-type>
+            </direction>
+            <note>
+                <chord/>
+                <pitch>
+                    <step>D</step>
+                    <octave>4</octave>
+                </pitch>
+                <duration>1</duration>
+                <voice>1</voice>
+                <type>quarter</type>
+            </note>
+            <note>
+                <rest/>
+                <duration>1</duration>
+                <voice>1</voice>
+                <type>quarter</type>
+            </note>
+            <note>
+                <rest/>
+                <duration>2</duration>
+                <voice>1</voice>
+                <type>half</type>
+            </note>
+        </measure>
+    </part>
+</score-partwise>
diff --git a/input/regression/musicxml/22-NoteSettings.itexi b/input/regression/musicxml/22-NoteSettings.itexi
new file mode 100644 (file)
index 0000000..735b7c0
--- /dev/null
@@ -0,0 +1 @@
+@unnumberedsec 22 ... Note settings, heads, etc.
diff --git a/input/regression/musicxml/22a-Noteheads.xml b/input/regression/musicxml/22a-Noteheads.xml
new file mode 100644 (file)
index 0000000..2874887
--- /dev/null
@@ -0,0 +1,1387 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">Different note styles, using the 
+          &lt;notehead&gt; element. First, each note head style is printed 
+          with four quarter notes, two with filled heads, two with unfilled 
+          heads, where first the stem is up and then the stem is down. After 
+          that, each note head style is printed with a half note (should have 
+          an unfilled head by default). Finally, the Aiken note head styles are 
+          tested, once with stem up and once with stem down.</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name>MusicXML Part</part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead>slash</notehead>
+        <lyric number="1"><text>slash</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead>slash</notehead>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead filled="no">slash</notehead>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead filled="no">slash</notehead>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="2">
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead>triangle</notehead>
+        <lyric number="1"><text>triangle</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead>triangle</notehead>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead filled="no">triangle</notehead>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead filled="no">triangle</notehead>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="3">
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead>diamond</notehead>
+        <lyric number="1"><text>diamond</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead>diamond</notehead>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead filled="no">diamond</notehead>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead filled="no">diamond</notehead>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="4">
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead>square</notehead>
+        <lyric number="1"><text>square</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead>square</notehead>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead filled="no">square</notehead>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead filled="no">square</notehead>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="5">
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead>cross</notehead>
+        <lyric number="1"><text>cross</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead>cross</notehead>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead filled="no">cross</notehead>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead filled="no">cross</notehead>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="6">
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead>x</notehead>
+        <lyric number="1"><text>x</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead>x</notehead>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead filled="no">x</notehead>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead filled="no">x</notehead>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="7">
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead>circle-x</notehead>
+        <lyric number="1"><text>circle-x</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead>circle-x</notehead>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead filled="no">circle-x</notehead>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead filled="no">circle-x</notehead>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="8">
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead>inverted triangle</notehead>
+        <lyric number="1"><text>inverted triangle</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead>inverted triangle</notehead>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead filled="no">inverted triangle</notehead>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead filled="no">inverted triangle</notehead>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="9">
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead>arrow down</notehead>
+        <lyric number="1"><text>arrow down</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead>arrow down</notehead>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead filled="no">arrow down</notehead>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead filled="no">arrow down</notehead>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="10">
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead>arrow up</notehead>
+        <lyric number="1"><text>arrow up</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead>arrow up</notehead>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead filled="no">arrow up</notehead>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead filled="no">arrow up</notehead>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="11">
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead>slashed</notehead>
+        <lyric number="1"><text>slashed</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead>slashed</notehead>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead filled="no">slashed</notehead>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead filled="no">slashed</notehead>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="12">
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead>back slashed</notehead>
+        <lyric number="1"><text>back slashed</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead>back slashed</notehead>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead filled="no">back slashed</notehead>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead filled="no">back slashed</notehead>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="13">
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead>normal</notehead>
+        <lyric number="1"><text>normal</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead>normal</notehead>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead filled="no">normal</notehead>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead filled="no">normal</notehead>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="14">
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead>cluster</notehead>
+        <lyric number="1"><text>cluster</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead>cluster</notehead>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead filled="no">cluster</notehead>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead filled="no">cluster</notehead>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="15">
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead>none</notehead>
+        <lyric number="1"><text>none</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead>none</notehead>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead filled="no">none</notehead>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead filled="no">none</notehead>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="16">
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+        <notehead>slash</notehead>
+        <lyric number="1"><text>slash</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+        <notehead>triangle</notehead>
+        <lyric number="1"><text>triangle</text></lyric>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="17">
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+        <notehead>diamond</notehead>
+        <lyric number="1"><text>diamond</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+        <notehead>square</notehead>
+        <lyric number="1"><text>square</text></lyric>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="18">
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+        <notehead>cross</notehead>
+        <lyric number="1"><text>cross</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+        <notehead>x</notehead>
+        <lyric number="1"><text>x</text></lyric>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="19">
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+        <notehead>circle-x</notehead>
+        <lyric number="1"><text>circle-x</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+        <notehead>inverted triangle</notehead>
+        <lyric number="1"><text>inverted triangle</text></lyric>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="20">
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+        <notehead>arrow down</notehead>
+        <lyric number="1"><text>arrow down</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+        <notehead>arrow up</notehead>
+        <lyric number="1"><text>arrow up</text></lyric>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="21">
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+        <notehead>slashed</notehead>
+        <lyric number="1"><text>slashed</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+        <notehead>back slashed</notehead>
+        <lyric number="1"><text>back slashed</text></lyric>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="22">
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+        <notehead>normal</notehead>
+        <lyric number="1"><text>normal</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+        <notehead>cluster</notehead>
+        <lyric number="1"><text>cluster</text></lyric>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="23">
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead>do</notehead>
+        <lyric number="1"><text>do</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead>do</notehead>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead filled="no">do</notehead>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead filled="no">do</notehead>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="24">
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead>re</notehead>
+        <lyric number="1"><text>re</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead>re</notehead>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead filled="no">re</notehead>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead filled="no">re</notehead>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="25">
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead>mi</notehead>
+        <lyric number="1"><text>mi</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead>mi</notehead>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead filled="no">mi</notehead>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead filled="no">mi</notehead>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="26">
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead>fa</notehead>
+        <lyric number="1"><text>fa</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead>fa</notehead>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead filled="no">fa</notehead>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead filled="no">fa</notehead>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="27">
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead>so</notehead>
+        <lyric number="1"><text>so</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead>so</notehead>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead filled="no">so</notehead>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead filled="no">so</notehead>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="28">
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead>la</notehead>
+        <lyric number="1"><text>la</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead>la</notehead>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead filled="no">la</notehead>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead filled="no">la</notehead>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="29">
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead>ti</notehead>
+        <lyric number="1"><text>ti</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead>ti</notehead>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead filled="no">ti</notehead>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead filled="no">ti</notehead>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="30">
+      <attributes>
+        <key>
+          <fifths>3</fifths>
+          <mode>major</mode>
+        </key>
+      </attributes>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead>do</notehead>
+        <lyric number="1"><text>do</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead>re</notehead>
+        <lyric number="1"><text>re</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <alter>1</alter>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead>mi</notehead>
+        <lyric number="1"><text>mi</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>D</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead>fa</notehead>
+        <lyric number="1"><text>fa</text></lyric>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="31">
+      <note>
+        <pitch>
+          <step>E</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead>so</notehead>
+        <lyric number="1"><text>so</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>F</step>
+          <alter>1</alter>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead>la</notehead>
+        <lyric number="1"><text>la</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>G</step>
+          <alter>1</alter>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead>ti</notehead>
+        <lyric number="1"><text>ti</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead>do</notehead>
+        <lyric number="1"><text>do</text></lyric>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="32">
+      <attributes>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead>do</notehead>
+        <lyric number="1"><text>do</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>D</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead>re</notehead>
+        <lyric number="1"><text>re</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>E</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead>mi</notehead>
+        <lyric number="1"><text>mi</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>F</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead>fa</notehead>
+        <lyric number="1"><text>fa</text></lyric>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="33">
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead>so</notehead>
+        <lyric number="1"><text>so</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead>la</notehead>
+        <lyric number="1"><text>la</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead>ti</notehead>
+        <lyric number="1"><text>ti</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>6</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead>do</notehead>
+        <lyric number="1"><text>do</text></lyric>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+</score-partwise>
diff --git a/input/regression/musicxml/22b-Staff-Notestyles.xml b/input/regression/musicxml/22b-Staff-Notestyles.xml
new file mode 100644 (file)
index 0000000..1a15bc8
--- /dev/null
@@ -0,0 +1,169 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.1 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise version="1.1">
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">Staff-connected note styles: 
+        slash notation, hidden notes (with and without hidden staff
+        lines)</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name>MusicXML Part</part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <attributes>
+        <measure-style>
+          <slash type="start" use-stems="no"/>
+        </measure-style>
+      </attributes>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>slash, no stem</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <attributes>
+        <measure-style>
+          <slash type="stop"/>
+        </measure-style>
+        <measure-style>
+          <slash type="start" use-stems="yes"/>
+        </measure-style>
+      </attributes>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>slash, with stem</text></lyric>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="2">
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <attributes>
+        <measure-style>
+          <slash type="stop"/>
+        </measure-style>
+      </attributes>
+      <note print-object="no">
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>hidden notes</text></lyric>
+      </note>
+      <note print-object="no">
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <attributes>
+        <staff-details>
+          <staff-lines>0</staff-lines>
+        </staff-details>
+      </attributes>
+      <note print-object="no">
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>hidden notes, staff lines</text></lyric>
+      </note>
+    </measure>
+    <measure number="3">
+      <note print-object="no">
+        <pitch>
+          <step>D</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+      <attributes>
+        <staff-details>
+          <staff-lines>5</staff-lines>
+        </staff-details>
+      </attributes>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+        <lyric number="1"><text>normal settings restored</text></lyric>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/22c-Noteheads-Chords.xml b/input/regression/musicxml/22c-Noteheads-Chords.xml
new file mode 100644 (file)
index 0000000..5196040
--- /dev/null
@@ -0,0 +1,179 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">Different note styles for 
+          individual notes inside a chord, using the 
+          &lt;notehead&gt; element.</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name>MusicXML Part</part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>E</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>normal</text></lyric>
+      </note>
+      <note>
+        <chord/>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead>triangle</notehead>
+        <lyric number="2"><text>triangle</text></lyric>
+      </note>
+      <note>
+        <chord/>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead>slash</notehead>
+        <lyric number="3"><text>slash</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>E</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead>cross</notehead>
+        <lyric number="1"><text>cross</text></lyric>
+      </note>
+      <note>
+        <chord/>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead>square</notehead>
+        <lyric number="2"><text>square</text></lyric>
+      </note>
+      <note>
+        <chord/>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead>diamond</notehead>
+        <lyric number="3"><text>diamond</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>E</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead>inverted triangle</notehead>
+        <lyric number="1"><text>inverted triangle</text></lyric>
+      </note>
+      <note>
+        <chord/>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead>circle-x</notehead>
+        <lyric number="2"><text>circle-x</text></lyric>
+      </note>
+      <note>
+        <chord/>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead>x</notehead>
+        <lyric number="3"><text>x</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>E</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead>slashed</notehead>
+        <lyric number="1"><text>slashed</text></lyric>
+      </note>
+      <note>
+        <chord/>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead>arrow up</notehead>
+        <lyric number="2"><text>arrow up</text></lyric>
+      </note>
+      <note>
+        <chord/>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead>arrow down</notehead>
+        <lyric number="3"><text>arrow down</text></lyric>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+</score-partwise>
diff --git a/input/regression/musicxml/22d-Parenthesized-Noteheads.xml b/input/regression/musicxml/22d-Parenthesized-Noteheads.xml
new file mode 100644 (file)
index 0000000..4e4fefa
--- /dev/null
@@ -0,0 +1,140 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">Parenthesized note heads. First,
+          a single parenthesized note is tested, once with a normal and then 
+          with a non-standard notehead, then two chords with some/all
+          parenthesized noteheads and finally a parenthesized rest.</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name>MusicXML Part</part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>6</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead parentheses="yes"/>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead parentheses="yes">x</notehead>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <chord/>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead parentheses="yes"/>
+      </note>
+      <note>
+        <chord/>
+        <pitch>
+          <step>E</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead parentheses="yes"/>
+      </note>
+      <note>
+        <chord/>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead parentheses="yes"/>
+      </note>
+      <note>
+        <chord/>
+        <pitch>
+          <step>E</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead parentheses="yes"/>
+      </note>
+      <note>
+        <rest/>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead parentheses="yes"/>
+      </note>
+      <note>
+        <rest>
+          <display-step>E</display-step>
+          <display-octave>4</display-octave>
+        </rest>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notehead parentheses="yes"/>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+</score-partwise>
diff --git a/input/regression/musicxml/23-Tuplets.itexi b/input/regression/musicxml/23-Tuplets.itexi
new file mode 100644 (file)
index 0000000..edc5032
--- /dev/null
@@ -0,0 +1 @@
+@unnumberedsec 23 ... Triplets, Tuplets
diff --git a/input/regression/musicxml/23a-Tuplets.xml b/input/regression/musicxml/23a-Tuplets.xml
new file mode 100644 (file)
index 0000000..4fb2a7c
--- /dev/null
@@ -0,0 +1,474 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">Some tuplets (3:2, 3:2, 3:2, 4:2, 
+          4:1, 7:3, 6:2) with the default tuplet bracket displaying the number 
+          of actual notes played. The second tuplet does not have a number 
+          attribute set.</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name>MusicXML Part</part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>84</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time>
+          <beats>14</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>56</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+        <notations>
+          <tuplet number="1" type="start"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>D</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>56</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+      </note>
+      <note>
+        <pitch>
+          <step>E</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>56</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+        <notations>
+          <tuplet number="1" type="stop"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>F</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>56</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+        <notations>
+          <tuplet type="start"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>56</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>56</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+        <notations>
+          <tuplet type="stop"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>56</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+        <notations>
+          <tuplet number="1" type="start"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>56</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+      </note>
+      <note>
+        <pitch>
+          <step>D</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>56</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+        <notations>
+          <tuplet number="1" type="stop"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>E</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>42</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <time-modification>
+          <actual-notes>4</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+        <notations>
+          <tuplet number="1" type="start"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>F</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>42</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <time-modification>
+          <actual-notes>4</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+      </note>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>42</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <time-modification>
+          <actual-notes>4</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>42</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <time-modification>
+          <actual-notes>4</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+        <notations>
+          <tuplet number="1" type="stop"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>21</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <time-modification>
+          <actual-notes>4</actual-notes>
+          <normal-notes>1</normal-notes>
+        </time-modification>
+        <notations>
+          <tuplet number="1" type="start"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>6</octave>
+        </pitch>
+        <duration>21</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <time-modification>
+          <actual-notes>4</actual-notes>
+          <normal-notes>1</normal-notes>
+        </time-modification>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>6</octave>
+        </pitch>
+        <duration>21</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <time-modification>
+          <actual-notes>4</actual-notes>
+          <normal-notes>1</normal-notes>
+        </time-modification>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>21</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <time-modification>
+          <actual-notes>4</actual-notes>
+          <normal-notes>1</normal-notes>
+        </time-modification>
+        <notations>
+          <tuplet number="1" type="stop"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>36</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <time-modification>
+          <actual-notes>7</actual-notes>
+          <normal-notes>3</normal-notes>
+        </time-modification>
+        <notations>
+          <tuplet number="1" type="start"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>36</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <time-modification>
+          <actual-notes>7</actual-notes>
+          <normal-notes>3</normal-notes>
+        </time-modification>
+      </note>
+      <note>
+        <pitch>
+          <step>F</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>36</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <time-modification>
+          <actual-notes>7</actual-notes>
+          <normal-notes>3</normal-notes>
+        </time-modification>
+      </note>
+      <note>
+        <pitch>
+          <step>E</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>36</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <time-modification>
+          <actual-notes>7</actual-notes>
+          <normal-notes>3</normal-notes>
+        </time-modification>
+      </note>
+      <note>
+        <pitch>
+          <step>D</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>36</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <time-modification>
+          <actual-notes>7</actual-notes>
+          <normal-notes>3</normal-notes>
+        </time-modification>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>36</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <time-modification>
+          <actual-notes>7</actual-notes>
+          <normal-notes>3</normal-notes>
+        </time-modification>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>36</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <time-modification>
+          <actual-notes>7</actual-notes>
+          <normal-notes>3</normal-notes>
+        </time-modification>
+        <notations>
+          <tuplet number="1" type="stop"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>28</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <time-modification>
+          <actual-notes>6</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+        <notations>
+          <tuplet number="1" type="start"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>28</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <time-modification>
+          <actual-notes>6</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+      </note>
+      <note>
+        <pitch>
+          <step>F</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>28</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <time-modification>
+          <actual-notes>6</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+      </note>
+      <note>
+        <pitch>
+          <step>E</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>28</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <time-modification>
+          <actual-notes>6</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+      </note>
+      <note>
+        <pitch>
+          <step>D</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>28</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <time-modification>
+          <actual-notes>6</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>28</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <time-modification>
+          <actual-notes>6</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+        <notations>
+          <tuplet number="1" type="stop"/>
+        </notations>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/23b-Tuplets-Styles.xml b/input/regression/musicxml/23b-Tuplets-Styles.xml
new file mode 100644 (file)
index 0000000..c2a7678
--- /dev/null
@@ -0,0 +1,1028 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.1 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise version="1.1">
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">Different tuplet styles:
+          default, none, x:y, x:y-note; Each with bracket, slur and none.
+          Finally, non-standard 4:3 and 17:2 tuplets are given.</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name print-object="no">MusicXML Part</part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>408</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>5</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>136</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+        <notations>
+          <tuplet bracket="yes" number="1" type="start"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>136</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>136</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+        <notations>
+          <tuplet number="1" type="stop"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>136</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+        <notations>
+          <tuplet bracket="yes" number="1" show-number="none" type="start"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>136</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>136</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+        <notations>
+          <tuplet number="1" type="stop"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>136</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+        <notations>
+          <tuplet bracket="yes" number="1" show-number="both" type="start"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>136</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>136</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+        <notations>
+          <tuplet number="1" type="stop"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>136</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+        <notations>
+          <tuplet bracket="yes" number="1" show-number="both" show-type="actual" type="start"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>136</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>136</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+        <notations>
+          <tuplet number="1" type="stop"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>136</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+        <notations>
+          <tuplet bracket="yes" number="1" show-number="both" show-type="both" type="start"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>136</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>136</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+        <notations>
+          <tuplet number="1" type="stop"/>
+        </notations>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="2">
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>136</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+        <notations>
+          <tuplet bracket="yes" line-shape="curved" number="1" type="start"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>136</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>136</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+        <notations>
+          <tuplet number="1" type="stop"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>136</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+        <notations>
+          <tuplet bracket="yes" line-shape="curved" number="1" show-number="none" type="start"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>136</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>136</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+        <notations>
+          <tuplet number="1" type="stop"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>136</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+        <notations>
+          <tuplet bracket="yes" line-shape="curved" number="1" show-number="both" type="start"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>136</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>136</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+        <notations>
+          <tuplet number="1" type="stop"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>136</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+        <notations>
+          <tuplet bracket="yes" line-shape="curved" number="1" show-number="both" show-type="actual" type="start"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>136</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>136</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+        <notations>
+          <tuplet number="1" type="stop"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>136</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+        <notations>
+          <tuplet bracket="yes" line-shape="curved" number="1" show-number="both" show-type="both" type="start"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>136</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>136</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+        <notations>
+          <tuplet number="1" type="stop"/>
+        </notations>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="3">
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>136</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+        <notations>
+          <tuplet bracket="no" number="1" type="start"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>136</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>136</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+        <notations>
+          <tuplet number="1" type="stop"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>136</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+        <notations>
+          <tuplet bracket="no" number="1" show-number="none" type="start"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>136</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>136</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+        <notations>
+          <tuplet number="1" type="stop"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>136</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+        <notations>
+          <tuplet bracket="no" number="1" show-number="both" type="start"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>136</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>136</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+        <notations>
+          <tuplet number="1" type="stop"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>136</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+        <notations>
+          <tuplet bracket="no" number="1" show-number="both" show-type="actual" type="start"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>136</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>136</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+        <notations>
+          <tuplet number="1" type="stop"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>136</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+        <notations>
+          <tuplet bracket="no" number="1" show-number="both" show-type="both" type="start"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>136</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>136</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+        <notations>
+          <tuplet number="1" type="stop"/>
+        </notations>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="4">
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>153</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>4</actual-notes>
+          <normal-notes>3</normal-notes>
+        </time-modification>
+        <notations>
+          <tuplet number="1" placement="below" show-number="both" type="start"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>153</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>4</actual-notes>
+          <normal-notes>3</normal-notes>
+        </time-modification>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>153</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>4</actual-notes>
+          <normal-notes>3</normal-notes>
+        </time-modification>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>153</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>4</actual-notes>
+          <normal-notes>3</normal-notes>
+        </time-modification>
+        <notations>
+          <tuplet number="1" type="stop"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>36</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>17</actual-notes>
+          <normal-notes>3</normal-notes>
+        </time-modification>
+        <notations>
+          <tuplet number="1" placement="below" type="start"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>36</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>17</actual-notes>
+          <normal-notes>3</normal-notes>
+        </time-modification>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>36</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>17</actual-notes>
+          <normal-notes>3</normal-notes>
+        </time-modification>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>36</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>17</actual-notes>
+          <normal-notes>3</normal-notes>
+        </time-modification>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>36</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>17</actual-notes>
+          <normal-notes>3</normal-notes>
+        </time-modification>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>36</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>17</actual-notes>
+          <normal-notes>3</normal-notes>
+        </time-modification>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>36</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>17</actual-notes>
+          <normal-notes>3</normal-notes>
+        </time-modification>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>36</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>17</actual-notes>
+          <normal-notes>3</normal-notes>
+        </time-modification>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>36</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>17</actual-notes>
+          <normal-notes>3</normal-notes>
+        </time-modification>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>36</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>17</actual-notes>
+          <normal-notes>3</normal-notes>
+        </time-modification>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>36</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>17</actual-notes>
+          <normal-notes>3</normal-notes>
+        </time-modification>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>36</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>17</actual-notes>
+          <normal-notes>3</normal-notes>
+        </time-modification>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>36</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>17</actual-notes>
+          <normal-notes>3</normal-notes>
+        </time-modification>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>36</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>17</actual-notes>
+          <normal-notes>3</normal-notes>
+        </time-modification>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>36</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>17</actual-notes>
+          <normal-notes>3</normal-notes>
+        </time-modification>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>36</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>17</actual-notes>
+          <normal-notes>3</normal-notes>
+        </time-modification>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>36</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>17</actual-notes>
+          <normal-notes>3</normal-notes>
+        </time-modification>
+        <notations>
+          <tuplet number="1" type="stop"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>204</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>204</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/23c-Tuplet-Display-NonStandard.xml b/input/regression/musicxml/23c-Tuplet-Display-NonStandard.xml
new file mode 100644 (file)
index 0000000..c0949e4
--- /dev/null
@@ -0,0 +1,618 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.1 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise version="1.1">
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">Displaying tuplet note types,
+          that might not coincide with the displayed note. The first two tuplets 
+          take the type from the note, the second two from the 
+          &lt;time-modification> element, the remaining pair of tuplets from the 
+          &lt;tuplet> notation element. The tuplets in measure 3 specify both 
+          a number of notes and a type inside the &lt;tuplet-actual> and 
+          &lt;tuplet-normal> elements, the ones in measure 4 specify only a 
+          note type (but no number), and the ones in measure 5 specify only a 
+          number of tuplet-notes (but no type, which is deduced from the 
+          note's type). The first tuplet of measures 3-5 uses 
+          'display-type="actual"', the second one 'display-type="both"'.
+          FIXME: The tuplet-normal should coincide with the real notes!</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name print-object="no">MusicXML Part</part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>408</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>136</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+        <notations>
+          <tuplet bracket="yes" show-type="actual" number="1" type="start"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>136</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>136</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+        <notations>
+          <tuplet number="1" type="stop"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>408</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <dot/>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+        <notations>
+          <tuplet bracket="yes" show-type="actual" number="1" type="start"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>408</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <dot/>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>408</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <dot/>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+        <notations>
+          <tuplet number="1" type="stop"/>
+        </notations>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="2">
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>136</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+          <normal-type>breve</normal-type>
+        </time-modification>
+        <notations>
+          <tuplet bracket="yes" show-type="actual" number="1" type="start"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>136</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+          <normal-type>breve</normal-type>
+        </time-modification>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>136</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+          <normal-type>breve</normal-type>
+        </time-modification>
+        <notations>
+          <tuplet number="1" type="stop"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>408</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <dot/>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+          <normal-type>breve</normal-type>
+          <normal-dot/>
+          <normal-dot/>
+        </time-modification>
+        <notations>
+          <tuplet bracket="yes" show-type="actual" number="1" type="start"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>408</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <dot/>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+          <normal-type>breve</normal-type>
+          <normal-dot/>
+          <normal-dot/>
+        </time-modification>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>408</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <dot/>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+          <normal-type>breve</normal-type>
+          <normal-dot/>
+          <normal-dot/>
+        </time-modification>
+        <notations>
+          <tuplet number="1" type="stop"/>
+        </notations>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="3">
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>136</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+          <normal-type>breve</normal-type>
+        </time-modification>
+        <notations>
+          <tuplet bracket="yes" show-number="both" show-type="actual" number="1" type="start">
+            <tuplet-actual>
+              <tuplet-number>7</tuplet-number>
+              <tuplet-type>quarter</tuplet-type>
+              <tuplet-dot/><tuplet-dot/><tuplet-dot/>
+            </tuplet-actual>
+            <tuplet-normal>
+              <tuplet-number>5</tuplet-number>
+              <tuplet-type>quarter</tuplet-type>
+              <tuplet-dot/><tuplet-dot/><tuplet-dot/>
+            </tuplet-normal>
+          </tuplet>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>136</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+          <normal-type>breve</normal-type>
+        </time-modification>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>136</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+          <normal-type>breve</normal-type>
+        </time-modification>
+        <notations>
+          <tuplet number="1" type="stop"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>408</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <dot/>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+          <normal-type>breve</normal-type>
+          <normal-dot/>
+          <normal-dot/>
+        </time-modification>
+        <notations>
+          <tuplet bracket="yes" show-number="both" show-type="both" number="1" type="start">
+            <tuplet-actual>
+              <tuplet-number>7</tuplet-number>
+              <tuplet-type>half</tuplet-type>
+              <tuplet-dot/>
+            </tuplet-actual>
+            <tuplet-normal>
+              <tuplet-number>5</tuplet-number>
+              <tuplet-type>16th</tuplet-type>
+            </tuplet-normal>
+          </tuplet>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>408</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <dot/>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+          <normal-type>breve</normal-type>
+          <normal-dot/>
+          <normal-dot/>
+        </time-modification>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>408</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <dot/>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+          <normal-type>breve</normal-type>
+          <normal-dot/>
+          <normal-dot/>
+        </time-modification>
+        <notations>
+          <tuplet number="1" type="stop"/>
+        </notations>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="4">
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>136</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+          <normal-type>breve</normal-type>
+        </time-modification>
+        <notations>
+          <tuplet bracket="yes" show-number="both" show-type="actual" number="1" type="start">
+            <tuplet-actual>
+              <tuplet-type>quarter</tuplet-type>
+              <tuplet-dot/><tuplet-dot/><tuplet-dot/>
+            </tuplet-actual>
+            <tuplet-normal>
+              <tuplet-type>quarter</tuplet-type>
+              <tuplet-dot/><tuplet-dot/><tuplet-dot/>
+            </tuplet-normal>
+          </tuplet>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>136</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+          <normal-type>breve</normal-type>
+        </time-modification>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>136</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+          <normal-type>breve</normal-type>
+        </time-modification>
+        <notations>
+          <tuplet number="1" type="stop"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>408</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <dot/>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+          <normal-type>breve</normal-type>
+          <normal-dot/>
+          <normal-dot/>
+        </time-modification>
+        <notations>
+          <tuplet bracket="yes" show-number="both" show-type="both" number="1" type="start">
+            <tuplet-actual>
+              <tuplet-type>half</tuplet-type>
+              <tuplet-dot/>
+            </tuplet-actual>
+            <tuplet-normal>
+              <tuplet-type>16th</tuplet-type>
+            </tuplet-normal>
+          </tuplet>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>408</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <dot/>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+          <normal-type>breve</normal-type>
+          <normal-dot/>
+          <normal-dot/>
+        </time-modification>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>408</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <dot/>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+          <normal-type>breve</normal-type>
+          <normal-dot/>
+          <normal-dot/>
+        </time-modification>
+        <notations>
+          <tuplet number="1" type="stop"/>
+        </notations>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="5">
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>136</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+        <notations>
+          <tuplet bracket="yes" show-type="actual" number="1" type="start">
+            <tuplet-actual>
+              <tuplet-number>7</tuplet-number>
+            </tuplet-actual>
+            <tuplet-normal>
+              <tuplet-number>5</tuplet-number>
+            </tuplet-normal>
+          </tuplet>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>136</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>136</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+        <notations>
+          <tuplet number="1" type="stop"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>408</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <dot/>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+        <notations>
+          <tuplet bracket="yes" show-number="both" show-type="both" number="1" type="start">
+            <tuplet-actual>
+              <tuplet-number>7</tuplet-number>
+              <tuplet-type>eighth</tuplet-type>
+              <tuplet-dot/>
+            </tuplet-actual>
+            <tuplet-normal>
+              <tuplet-number>5</tuplet-number>
+              <tuplet-type>breve</tuplet-type>
+            </tuplet-normal>
+          </tuplet>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>408</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <dot/>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>408</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <dot/>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+        <notations>
+          <tuplet number="1" type="stop"/>
+        </notations>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/23d-Tuplets-Nested.xml b/input/regression/musicxml/23d-Tuplets-Nested.xml
new file mode 100644 (file)
index 0000000..8daf363
--- /dev/null
@@ -0,0 +1,192 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.1 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise version="1.1">
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">Tuplets can be nested. Here 
+          there is a 5:2 tuplet inside a 3:2 tuple (all consisting of written
+          eighth notes).</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name print-object="no">MusicXML Part</part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>30</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time>
+          <beats>2</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>10</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+          <normal-type>quarter</normal-type>
+        </time-modification>
+        <beam number="1">begin</beam>
+        <notations>
+          <tuplet bracket="yes" number="1" type="start"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>10</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+          <normal-type>quarter</normal-type>
+        </time-modification>
+        <beam number="1">end</beam>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>15</actual-notes>
+          <normal-notes>4</normal-notes>
+        </time-modification>
+        <beam number="1">begin</beam>
+        <notations>
+          <tuplet bracket="yes" number="2" type="start">
+            <tuplet-actual>
+              <tuplet-number>5</tuplet-number>
+              <tuplet-type>eighth</tuplet-type>
+            </tuplet-actual>
+            <tuplet-normal>
+              <tuplet-number>2</tuplet-number>
+              <tuplet-type>eighth</tuplet-type>
+            </tuplet-normal>
+          </tuplet>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>15</actual-notes>
+          <normal-notes>4</normal-notes>
+        </time-modification>
+        <beam number="1">continue</beam>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>15</actual-notes>
+          <normal-notes>4</normal-notes>
+        </time-modification>
+        <beam number="1">continue</beam>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>15</actual-notes>
+          <normal-notes>4</normal-notes>
+        </time-modification>
+        <beam number="1">continue</beam>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>15</actual-notes>
+          <normal-notes>4</normal-notes>
+        </time-modification>
+        <beam number="1">end</beam>
+        <notations>
+          <tuplet number="2" type="stop"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>10</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+          <normal-type>quarter</normal-type>
+        </time-modification>
+        <beam number="1">begin</beam>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>10</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+          <normal-type>quarter</normal-type>
+        </time-modification>
+        <beam number="1">end</beam>
+        <notations>
+          <tuplet number="1" type="stop"/>
+        </notations>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/23e-Tuplets-Tremolo.xml b/input/regression/musicxml/23e-Tuplets-Tremolo.xml
new file mode 100644 (file)
index 0000000..eee4d0f
--- /dev/null
@@ -0,0 +1,461 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.1 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise version="1.1">
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">Tremolo tuplets are tuplets on 
+          single notes with a tremolo ornament. The application shall correctly
+          import these notes with 2/3 or their time...</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name print-object="no">MusicXML Part</part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>36</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time>
+          <beats>3</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>12</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+        <beam number="1">begin</beam>
+        <notations>
+          <tuplet number="1" type="start"/>
+          <articulations>
+            <staccato placement="below"/>
+          </articulations>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>12</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+        <beam number="1">continue</beam>
+        <notations>
+          <articulations>
+            <staccato placement="below"/>
+          </articulations>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>12</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+        <beam number="1">end</beam>
+        <notations>
+          <tuplet number="1" type="stop"/>
+          <articulations>
+            <staccato placement="below"/>
+          </articulations>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>12</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+        <beam number="1">begin</beam>
+        <notations>
+          <tuplet number="1" type="start"/>
+          <articulations>
+            <staccato placement="below"/>
+          </articulations>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>12</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+        <beam number="1">continue</beam>
+        <notations>
+          <articulations>
+            <staccato placement="below"/>
+          </articulations>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>12</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+        <beam number="1">end</beam>
+        <notations>
+          <tuplet number="1" type="stop"/>
+          <articulations>
+            <staccato placement="below"/>
+          </articulations>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>12</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+        <beam number="1">begin</beam>
+        <notations>
+          <tuplet number="1" type="start"/>
+          <articulations>
+            <staccato placement="below"/>
+          </articulations>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>12</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+        <beam number="1">continue</beam>
+        <notations>
+          <articulations>
+            <staccato placement="below"/>
+          </articulations>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>12</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+        <beam number="1">end</beam>
+        <notations>
+          <tuplet number="1" type="stop"/>
+          <articulations>
+            <staccato placement="below"/>
+          </articulations>
+        </notations>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="2">
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>36</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <dot/>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+          <normal-type>eighth</normal-type>
+        </time-modification>
+        <notations>
+          <tuplet number="1" type="start"/>
+          <tuplet number="1" type="stop"/>
+          <ornaments>
+            <tremolo>1</tremolo>
+          </ornaments>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>36</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <dot/>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+          <normal-type>eighth</normal-type>
+        </time-modification>
+        <notations>
+          <tuplet number="1" type="start"/>
+          <tuplet number="1" type="stop"/>
+          <ornaments>
+            <tremolo>1</tremolo>
+          </ornaments>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>36</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <dot/>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+          <normal-type>eighth</normal-type>
+        </time-modification>
+        <notations>
+          <tuplet number="1" type="start"/>
+          <tuplet number="1" type="stop"/>
+          <ornaments>
+            <tremolo>1</tremolo>
+          </ornaments>
+        </notations>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="3">
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>72</duration>
+        <voice>1</voice>
+        <type>half</type>
+        <dot/>
+        <time-modification>
+          <actual-notes>6</actual-notes>
+          <normal-notes>4</normal-notes>
+          <normal-type>eighth</normal-type>
+        </time-modification>
+        <notations>
+          <tuplet number="1" type="start"/>
+          <tuplet number="1" type="stop"/>
+          <ornaments>
+            <tremolo>1</tremolo>
+          </ornaments>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>36</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <dot/>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+          <normal-type>eighth</normal-type>
+        </time-modification>
+        <notations>
+          <tuplet number="1" type="start"/>
+          <tuplet number="1" type="stop"/>
+          <ornaments>
+            <tremolo>1</tremolo>
+          </ornaments>
+        </notations>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="4">
+      <note>
+        <pitch>
+          <step>F</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>12</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+        <beam number="1">begin</beam>
+        <notations>
+          <tuplet number="1" type="start"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>12</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+        <beam number="1">continue</beam>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>12</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+        <beam number="1">end</beam>
+        <notations>
+          <tuplet number="1" type="stop"/>
+        </notations>
+      </note>
+      <direction placement="below">
+        <direction-type>
+          <dynamics>
+            <fp/>
+          </dynamics>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>72</duration>
+        <voice>1</voice>
+        <type>half</type>
+        <dot/>
+        <time-modification>
+          <actual-notes>6</actual-notes>
+          <normal-notes>4</normal-notes>
+          <normal-type>eighth</normal-type>
+        </time-modification>
+        <notations>
+          <tuplet number="1" type="start"/>
+          <tuplet number="1" type="stop"/>
+          <ornaments>
+            <tremolo>1</tremolo>
+          </ornaments>
+        </notations>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="5">
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>72</duration>
+        <voice>1</voice>
+        <type>half</type>
+        <dot/>
+        <time-modification>
+          <actual-notes>6</actual-notes>
+          <normal-notes>4</normal-notes>
+          <normal-type>eighth</normal-type>
+        </time-modification>
+        <notations>
+          <tuplet number="1" type="start"/>
+          <tuplet number="1" type="stop"/>
+          <ornaments>
+            <tremolo>1</tremolo>
+          </ornaments>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>36</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <dot/>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+          <normal-type>eighth</normal-type>
+        </time-modification>
+        <notations>
+          <tuplet number="1" type="start"/>
+          <tuplet number="1" type="stop"/>
+          <ornaments>
+            <tremolo>1</tremolo>
+          </ornaments>
+        </notations>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/23f-Tuplets-DurationButNoBracket.xml b/input/regression/musicxml/23f-Tuplets-DurationButNoBracket.xml
new file mode 100644 (file)
index 0000000..866d8dc
--- /dev/null
@@ -0,0 +1,204 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 0.6b Partwise//EN"
+ "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+       <identification>
+               <encoding>
+                       <software>/usr/bin/vi</software>
+                       <encoding-date>2007-02-02</encoding-date>
+               </encoding>
+               <miscellaneous>
+                       <miscellaneous-field name="description">Some "triplets" 
+                            on the end of the first and in the second staff, using only 
+                            &lt;time-modification&gt;, but not explicit tuplet 
+                            bracket. Thus, the duration of the notes in the 
+                            second staff should be scaled properly in comparison 
+                            to staff 1, but no visual indication about the 
+                            tuplets is given.</miscellaneous-field>
+               </miscellaneous>
+       </identification>
+       <part-list>
+               <score-part id="P1"><part-name>MusicXML Part</part-name></score-part>
+       </part-list>
+       <part id="P1">
+               <measure number="1">
+                       <attributes>
+                               <divisions>96</divisions>
+                               <key><fifths>0</fifths></key>
+                               <time><beats>4</beats><beat-type>4</beat-type></time>
+                               <staves>2</staves>
+                               <clef number="1"><sign>G</sign><line>2</line></clef>
+                               <clef number="2"><sign>F</sign><line>4</line></clef>
+                       </attributes>
+                       <note>
+                               <pitch><step>F</step><octave>4</octave></pitch>
+                               <duration>96</duration>
+                               <voice>1</voice>
+                               <type>quarter</type>
+                               <staff>1</staff>
+                       </note>
+                       <note>
+                               <pitch><step>G</step><octave>4</octave></pitch>
+                               <duration>96</duration>
+                               <voice>1</voice>
+                               <type>quarter</type>
+                               <staff>1</staff>
+                       </note>
+                       <note>
+                               <pitch><step>A</step><octave>4</octave></pitch>
+                               <duration>64</duration>
+                               <voice>1</voice>
+                               <type>quarter</type>
+                               <time-modification><actual-notes>3</actual-notes><normal-notes>2</normal-notes></time-modification>
+                               <staff>1</staff>
+                       </note>
+                       <note>
+                               <pitch><step>B</step><octave>4</octave></pitch>
+                               <duration>64</duration>
+                               <voice>1</voice>
+                               <type>quarter</type>
+                               <time-modification><actual-notes>3</actual-notes><normal-notes>2</normal-notes></time-modification>
+                               <staff>1</staff>
+                       </note>
+                       <note>
+                               <pitch><step>C</step><octave>5</octave></pitch>
+                               <duration>64</duration>
+                               <voice>1</voice>
+                               <type>quarter</type>
+                               <time-modification><actual-notes>3</actual-notes><normal-notes>2</normal-notes></time-modification>
+                               <staff>1</staff>
+                       </note>
+                       <backup><duration>384</duration></backup>
+                       <note>
+                               <pitch><step>A</step><octave>2</octave></pitch>
+                               <duration>48</duration>
+                               <voice>2</voice>
+                               <type>eighth</type>
+                               <staff>2</staff>
+                               <beam number="1">begin</beam>
+                       </note>
+                       <note>
+                               <pitch><step>B</step><octave>2</octave></pitch>
+                               <duration>48</duration>
+                               <voice>2</voice>
+                               <type>eighth</type>
+                               <staff>2</staff>
+                               <beam number="1">end</beam>
+                       </note>
+                       <note>
+                               <pitch><step>C</step><octave>3</octave></pitch>
+                               <duration>32</duration>
+                               <voice>2</voice>
+                               <type>eighth</type>
+                               <time-modification><actual-notes>3</actual-notes><normal-notes>2</normal-notes></time-modification>
+                               <staff>2</staff>
+                               <beam number="1">begin</beam>
+                       </note>
+                       <note>
+                               <pitch><step>D</step><octave>3</octave></pitch>
+                               <duration>32</duration>
+                               <voice>2</voice>
+                               <type>eighth</type>
+                               <time-modification><actual-notes>3</actual-notes><normal-notes>2</normal-notes></time-modification>
+                               <staff>2</staff>
+                               <beam number="1">continue</beam>
+                       </note>
+                       <note>
+                               <pitch><step>E</step><octave>3</octave></pitch>
+                               <duration>32</duration>
+                               <voice>2</voice>
+                               <type>eighth</type>
+                               <time-modification><actual-notes>3</actual-notes><normal-notes>2</normal-notes></time-modification>
+                               <staff>2</staff>
+                               <beam number="1">end</beam>
+                       </note>
+                       <note>
+                               <pitch><step>A</step><octave>2</octave></pitch>
+                               <duration>24</duration>
+                               <voice>2</voice>
+                               <type>16th</type>
+                               <staff>2</staff>
+                               <beam number="2">begin</beam>
+                       </note>
+                       <note>
+                               <pitch><step>B</step><octave>2</octave></pitch>
+                               <duration>24</duration>
+                               <voice>2</voice>
+                               <type>16th</type>
+                               <staff>2</staff>
+                               <beam number="2">continue</beam>
+                       </note>
+                       <note>
+                               <pitch><step>C</step><octave>3</octave></pitch>
+                               <duration>24</duration>
+                               <voice>2</voice>
+                               <type>16th</type>
+                               <staff>2</staff>
+                               <beam number="2">continue</beam>
+                       </note>
+                       <note>
+                               <pitch><step>D</step><octave>3</octave></pitch>
+                               <duration>24</duration>
+                               <voice>2</voice>
+                               <type>16th</type>
+                               <staff>2</staff>
+                               <beam number="2">end</beam>
+                       </note>
+
+                       <note>
+                               <pitch><step>E</step><octave>3</octave></pitch>
+                               <duration>16</duration>
+                               <voice>2</voice>
+                               <type>16th</type>
+                               <time-modification><actual-notes>3</actual-notes><normal-notes>2</normal-notes></time-modification>
+                               <staff>2</staff>
+                               <beam number="2">begin</beam>
+                       </note>
+                       <note>
+                               <pitch><step>F</step><octave>3</octave></pitch>
+                               <duration>16</duration>
+                               <voice>2</voice>
+                               <type>16th</type>
+                               <time-modification><actual-notes>3</actual-notes><normal-notes>2</normal-notes></time-modification>
+                               <staff>2</staff>
+                               <beam number="2">continue</beam>
+                       </note>
+                       <note>
+                               <pitch><step>G</step><octave>3</octave></pitch>
+                               <duration>16</duration>
+                               <voice>2</voice>
+                               <type>16th</type>
+                               <time-modification><actual-notes>3</actual-notes><normal-notes>2</normal-notes></time-modification>
+                               <staff>2</staff>
+                               <beam number="2">continue</beam>
+                       </note>
+                       <note>
+                               <pitch><step>A</step><octave>3</octave></pitch>
+                               <duration>16</duration>
+                               <voice>2</voice>
+                               <type>16th</type>
+                               <time-modification><actual-notes>3</actual-notes><normal-notes>2</normal-notes></time-modification>
+                               <staff>2</staff>
+                               <beam number="2">continue</beam>
+                       </note>
+                       <note>
+                               <pitch><step>B</step><octave>3</octave></pitch>
+                               <duration>16</duration>
+                               <voice>2</voice>
+                               <type>16th</type>
+                               <time-modification><actual-notes>3</actual-notes><normal-notes>2</normal-notes></time-modification>
+                               <staff>2</staff>
+                               <beam number="2">continue</beam>
+                       </note>
+                       <note>
+                               <pitch><step>C</step><octave>4</octave></pitch>
+                               <duration>16</duration>
+                               <voice>2</voice>
+                               <type>16th</type>
+                               <time-modification><actual-notes>3</actual-notes><normal-notes>2</normal-notes></time-modification>
+                               <staff>2</staff>
+                               <beam number="2">end</beam>
+                       </note>
+               </measure>
+       </part>
+</score-partwise>
diff --git a/input/regression/musicxml/24-Grace-Notes.itexi b/input/regression/musicxml/24-Grace-Notes.itexi
new file mode 100644 (file)
index 0000000..68b171e
--- /dev/null
@@ -0,0 +1 @@
+@unnumberedsec 24 ... Grace notes
diff --git a/input/regression/musicxml/24a-GraceNotes.xml b/input/regression/musicxml/24a-GraceNotes.xml
new file mode 100644 (file)
index 0000000..a194cc3
--- /dev/null
@@ -0,0 +1,320 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">Different kinds of grace notes: 
+          acciaccatura, appoggiatura; beamed grace notes; grace notes with 
+          accidentals; different durations of the grace notes.</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name>MusicXML Part</part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>4</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <grace/>
+        <pitch>
+          <step>D</step>
+          <octave>5</octave>
+        </pitch>
+        <voice>1</voice>
+        <type>16th</type>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <grace/>
+        <pitch>
+          <step>E</step>
+          <octave>5</octave>
+        </pitch>
+        <voice>1</voice>
+        <type>16th</type>
+        <beam number="1">begin</beam>
+        <beam number="2">begin</beam>
+      </note>
+      <note>
+        <grace/>
+        <pitch>
+          <step>D</step>
+          <octave>5</octave>
+        </pitch>
+        <voice>1</voice>
+        <type>16th</type>
+        <beam number="1">end</beam>
+        <beam number="2">end</beam>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <grace/>
+        <pitch>
+          <step>D</step>
+          <octave>5</octave>
+        </pitch>
+        <tie type="start"/>
+        <voice>1</voice>
+        <type>16th</type>
+        <notations>
+          <tied type="start"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <grace/>
+        <pitch>
+          <step>D</step>
+          <octave>5</octave>
+        </pitch>
+        <voice>1</voice>
+        <type>eighth</type>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="2">
+      <note>
+        <grace slash="yes"/>
+        <pitch>
+          <step>D</step>
+          <octave>5</octave>
+        </pitch>
+        <voice>1</voice>
+        <type>16th</type>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <grace/>
+        <pitch>
+          <step>E</step>
+          <octave>5</octave>
+        </pitch>
+        <voice>1</voice>
+        <type>16th</type>
+        <beam number="1">begin</beam>
+        <beam number="2">begin</beam>
+      </note>
+      <note>
+        <grace/>
+        <pitch>
+          <step>D</step>
+          <octave>5</octave>
+        </pitch>
+        <voice>1</voice>
+        <type>16th</type>
+        <beam number="1">end</beam>
+        <beam number="2">end</beam>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>8</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+      <note>
+        <grace slash="yes"/>
+        <pitch>
+          <step>D</step>
+          <octave>5</octave>
+        </pitch>
+        <voice>1</voice>
+        <type>16th</type>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <beam number="1">begin</beam>
+      </note>
+      <note>
+        <grace slash="yes"/>
+        <pitch>
+          <step>D</step>
+          <octave>5</octave>
+        </pitch>
+        <voice>1</voice>
+        <type>16th</type>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <beam number="1">end</beam>
+      </note>
+      <note>
+        <grace/>
+        <pitch>
+          <step>E</step>
+          <octave>5</octave>
+        </pitch>
+        <voice>1</voice>
+        <type>16th</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="3">
+      <note>
+        <grace/>
+        <pitch>
+          <step>E</step>
+          <octave>5</octave>
+        </pitch>
+        <voice>1</voice>
+        <type>16th</type>
+      </note>
+      <note>
+        <pitch>
+          <step>F</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <chord/>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <grace/>
+        <pitch>
+          <step>D</step>
+          <alter>1</alter>
+          <octave>5</octave>
+        </pitch>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>sharp</accidental>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <grace/>
+        <pitch>
+          <step>D</step>
+          <alter>-1</alter>
+          <octave>5</octave>
+        </pitch>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>flat</accidental>
+      </note>
+      <note>
+        <grace/>
+        <pitch>
+          <step>A</step>
+          <alter>-1</alter>
+          <octave>4</octave>
+        </pitch>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>flat</accidental>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/24b-ChordAsGraceNote.xml b/input/regression/musicxml/24b-ChordAsGraceNote.xml
new file mode 100644 (file)
index 0000000..1f00a6f
--- /dev/null
@@ -0,0 +1,114 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">Chords as grace notes.</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name>MusicXML Part</part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>2</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <grace slash="yes"/>
+        <pitch>
+          <step>D</step>
+          <octave>5</octave>
+        </pitch>
+        <voice>1</voice>
+        <type>eighth</type>
+      </note>
+      <note>
+        <grace slash="yes"/>
+        <chord/>
+        <pitch>
+          <step>F</step>
+          <octave>5</octave>
+        </pitch>
+        <voice>1</voice>
+        <type>eighth</type>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <grace slash="yes"/>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <voice>1</voice>
+        <type>eighth</type>
+      </note>
+      <note>
+        <grace slash="yes"/>
+        <chord/>
+        <pitch>
+          <step>D</step>
+          <octave>5</octave>
+        </pitch>
+        <voice>1</voice>
+        <type>eighth</type>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <chord/>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/24c-GraceNote-MeasureEnd.xml b/input/regression/musicxml/24c-GraceNote-MeasureEnd.xml
new file mode 100644 (file)
index 0000000..ba2c165
--- /dev/null
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">A grace note that appears at the 
+          measure end (without any steal-from-* attribute set). Some 
+          applications need to convert this into an after-grace.</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name>MusicXML Part</part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="25">
+      <attributes>
+        <divisions>32</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time>
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>E</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>64</duration>
+        <voice>1</voice>
+        <type>half</type>
+        <staff>1</staff>
+      </note>
+      <note>
+        <pitch>
+          <step>E</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>64</duration>
+        <voice>1</voice>
+        <type>half</type>
+        <staff>1</staff>
+      </note>
+      <note>
+        <grace/>
+        <pitch>
+          <step>G</step>
+          <octave>5</octave>
+        </pitch>
+        <voice>1</voice>
+        <type>16th</type>
+        <staff>1</staff>
+        <beam number="1">begin</beam>
+        <beam number="2">begin</beam>
+      </note>
+      <note>
+        <grace/>
+        <pitch>
+          <step>A</step>
+          <octave>5</octave>
+        </pitch>
+        <voice>1</voice>
+        <type>16th</type>
+        <staff>1</staff>
+        <beam number="1">end</beam>
+        <beam number="2">end</beam>
+      </note>
+    </measure>
+  </part>
+  <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/24d-AfterGrace.xml b/input/regression/musicxml/24d-AfterGrace.xml
new file mode 100644 (file)
index 0000000..94816a2
--- /dev/null
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">Some grace notes and after-graces
+            (indicated by steal-time-previous and steal-time-next).</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name>MusicXML Part</part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="25">
+      <attributes>
+        <divisions>32</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time>
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>E</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>64</duration>
+        <voice>1</voice>
+        <type>half</type>
+        <staff>1</staff>
+      </note>
+      <note>
+        <grace steal-time-previous="20"/>
+        <pitch>
+          <step>G</step>
+          <octave>5</octave>
+        </pitch>
+        <voice>1</voice>
+        <type>16th</type>
+        <staff>1</staff>
+      </note>
+      <note>
+        <grace steal-time-next="20"/>
+        <pitch>
+          <step>A</step>
+          <octave>5</octave>
+        </pitch>
+        <voice>1</voice>
+        <type>16th</type>
+        <staff>1</staff>
+      </note>
+      <note>
+        <grace/>
+        <pitch>
+          <step>A</step>
+          <octave>5</octave>
+        </pitch>
+        <voice>1</voice>
+        <type>16th</type>
+        <staff>1</staff>
+      </note>
+      <note>
+        <pitch>
+          <step>E</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>64</duration>
+        <voice>1</voice>
+        <type>half</type>
+        <staff>1</staff>
+      </note>
+      <note>
+        <grace/>
+        <pitch>
+          <step>G</step>
+          <octave>5</octave>
+        </pitch>
+        <voice>1</voice>
+        <type>16th</type>
+        <staff>1</staff>
+        <beam number="1">begin</beam>
+        <beam number="2">begin</beam>
+      </note>
+      <note>
+        <grace/>
+        <pitch>
+          <step>A</step>
+          <octave>5</octave>
+        </pitch>
+        <voice>1</voice>
+        <type>16th</type>
+        <staff>1</staff>
+        <beam number="1">end</beam>
+        <beam number="2">end</beam>
+      </note>
+    </measure>
+  </part>
+  <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/24e-GraceNote-StaffChange.xml b/input/regression/musicxml/24e-GraceNote-StaffChange.xml
new file mode 100644 (file)
index 0000000..9470c0c
--- /dev/null
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">A grace note on a different 
+          staff than the actual note.</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name>MusicXML Part</part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="25">
+      <attributes>
+        <divisions>32</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time>
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>E</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>64</duration>
+        <voice>1</voice>
+        <type>half</type>
+        <staff>1</staff>
+      </note>
+      <note>
+        <grace/>
+        <pitch>
+          <step>G</step>
+          <octave>5</octave>
+        </pitch>
+        <voice>1</voice>
+        <type>16th</type>
+        <staff>2</staff>
+        <beam number="1">begin</beam>
+        <beam number="2">begin</beam>
+      </note>
+      <note>
+        <grace/>
+        <pitch>
+          <step>A</step>
+          <octave>5</octave>
+        </pitch>
+        <voice>1</voice>
+        <type>16th</type>
+        <staff>2</staff>
+        <beam number="1">end</beam>
+        <beam number="2">end</beam>
+      </note>
+      <note>
+        <pitch>
+          <step>E</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>64</duration>
+        <voice>1</voice>
+        <type>half</type>
+        <staff>1</staff>
+      </note>
+    </measure>
+  </part>
+  <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/24f-GraceNote-Slur.xml b/input/regression/musicxml/24f-GraceNote-Slur.xml
new file mode 100644 (file)
index 0000000..91d085e
--- /dev/null
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">A grace note with a slur to the
+          actual note. This can be interpreted as acciaccatura or appoggiatura,
+          depending on the existence of a slash.</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name>MusicXML Part</part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="25">
+      <attributes>
+        <divisions>32</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>E</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>64</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+      <note>
+        <grace/>
+        <pitch>
+          <step>G</step>
+          <octave>5</octave>
+        </pitch>
+        <voice>1</voice>
+        <type>16th</type>
+       <notations>
+          <slur number="1" type="start"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>E</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>64</duration>
+        <voice>1</voice>
+        <type>half</type>
+        <notations>
+          <slur number="1" type="stop"/>
+        </notations>
+      </note>
+    </measure>
+  </part>
+  <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/31-Directions.itexi b/input/regression/musicxml/31-Directions.itexi
new file mode 100644 (file)
index 0000000..527c924
--- /dev/null
@@ -0,0 +1 @@
+@unnumberedsec 31 ... Dynamics and other single symbols
diff --git a/input/regression/musicxml/31a-Directions.xml b/input/regression/musicxml/31a-Directions.xml
new file mode 100644 (file)
index 0000000..95f32ab
--- /dev/null
@@ -0,0 +1,785 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 2.0 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise version="2.0">
+  <movement-title>MusicXML directions (attached to staff)</movement-title>
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">All &lt;direction&gt; elements 
+          defined in MusicXML. The lyrics for each note describes the direction
+          element assigned to that note.</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name print-object="no">MusicXML Part</part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <!-- Direction type can contain the following child types:
+         rehearsal+ | segno+ | words+ |
+         coda+ | wedge | dynamics+ | dashes | bracket | pedal | 
+         metronome | octave-shift | harp-pedals | damp | 
+         damp-all | eyeglasses | scordatura | image |
+         accordion-registration | other-direction -->
+    <!-- Rehearsal marks -->
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <direction placement="below">
+        <direction-type>
+          <rehearsal>A</rehearsal>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>reh.A (def=sq.)</text></lyric>
+      </note>
+      <direction placement="above">
+        <direction-type>
+          <rehearsal enclosure="none">B</rehearsal>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>reh.B (none)</text></lyric>
+      </note>
+      <direction>
+        <direction-type>
+          <rehearsal enclosure="square">Test</rehearsal>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>reh.Test (sq.)</text></lyric>
+      </note>
+      <direction>
+        <direction-type>
+          <rehearsal enclosure="circle">Crc</rehearsal>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>reh.Crc (crc.)</text></lyric>
+      </note>
+    </measure>
+    <!-- Segno, Coda, Words (extra unit test for formatting!),  Eyeglasses -->
+    <measure number="2">
+      <direction>
+        <direction-type>
+          <segno/>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>Segno</text></lyric>
+      </note>
+      <direction>
+        <direction-type>
+          <coda/>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>Coda</text></lyric>
+      </note>
+      <direction>
+        <direction-type>
+          <words>words</words>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>Words</text></lyric>
+      </note>
+      <direction>
+        <direction-type>
+          <eyeglasses/>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>Eyegl.</text></lyric>
+      </note>
+    </measure>
+    <!-- Dynamics: p | pp | ppp | pppp | ppppp | pppppp |
+        f | ff | fff | ffff | fffff | ffffff | mp | mf | sf |
+        sfp | sfpp | fp | rf | rfz | sfz | sffz | fz | 
+        other-dynamics -->
+    <measure number="3">
+      <direction>
+        <direction-type>
+          <dynamics><p/></dynamics>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>p</text></lyric>
+      </note>
+      <direction>
+        <direction-type>
+          <dynamics><pp/></dynamics>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>pp</text></lyric>
+      </note>
+      <direction>
+        <direction-type>
+          <dynamics><ppp/></dynamics>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>ppp</text></lyric>
+      </note>
+      <direction>
+        <direction-type>
+          <dynamics><pppp/></dynamics>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>pppp</text></lyric>
+      </note>
+    </measure>
+    <measure number="4">
+      <direction>
+        <direction-type>
+          <dynamics><ppppp/></dynamics>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>ppppp</text></lyric>
+      </note>
+      <direction>
+        <direction-type>
+          <dynamics><pppppp/></dynamics>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>pppppp</text></lyric>
+      </note>
+      <direction>
+        <direction-type>
+          <dynamics><f/></dynamics>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>f</text></lyric>
+      </note>
+      <direction>
+        <direction-type>
+          <dynamics><ff/></dynamics>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>ff</text></lyric>
+      </note>
+    </measure>
+    <measure number="5">
+      <direction>
+        <direction-type>
+          <dynamics><fff/></dynamics>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>fff</text></lyric>
+      </note>
+      <direction>
+        <direction-type>
+          <dynamics><ffff/></dynamics>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>ffff</text></lyric>
+      </note>
+      <direction>
+        <direction-type>
+          <dynamics><fffff/></dynamics>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>fffff</text></lyric>
+      </note>
+      <direction>
+        <direction-type>
+          <dynamics><ffffff/></dynamics>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>ffffff</text></lyric>
+      </note>
+    </measure>
+    <measure number="6">
+      <direction>
+        <direction-type>
+          <dynamics><mp/></dynamics>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>mp</text></lyric>
+      </note>
+      <direction>
+        <direction-type>
+          <dynamics><mf/></dynamics>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>mf</text></lyric>
+      </note>
+      <direction>
+        <direction-type>
+          <dynamics><sf/></dynamics>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>sf</text></lyric>
+      </note>
+      <direction>
+        <direction-type>
+          <dynamics><sfp/></dynamics>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>sfp</text></lyric>
+      </note>
+    </measure>
+    <measure number="7">
+      <direction>
+        <direction-type>
+          <dynamics><sfpp/></dynamics>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>sfpp</text></lyric>
+      </note>
+      <direction>
+        <direction-type>
+          <dynamics><fp/></dynamics>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>fp</text></lyric>
+      </note>
+      <direction>
+        <direction-type>
+          <dynamics><rf/></dynamics>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>rf</text></lyric>
+      </note>
+      <direction>
+        <direction-type>
+          <dynamics><rfz/></dynamics>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>rfz</text></lyric>
+      </note>
+    </measure>
+    <measure number="8">
+      <direction>
+        <direction-type>
+          <dynamics><sfz/></dynamics>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>sfz</text></lyric>
+      </note>
+      <direction>
+        <direction-type>
+          <dynamics><sffz/></dynamics>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>sffz</text></lyric>
+      </note>
+      <direction>
+        <direction-type>
+          <dynamics><fz/></dynamics>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>fz</text></lyric>
+      </note>
+      <direction>
+        <direction-type>
+          <dynamics><other-dynamics>abc-ffz</other-dynamics></dynamics>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>abc-ffz (oth.)</text></lyric>
+      </note>
+    </measure>
+    <!-- Spanners (there is another unit test for testing the various options):
+         wedge, dashes, bracket, pedal, octave-shift -->
+    <measure number="9">
+      <direction>
+        <direction-type>
+          <wedge type="crescendo"/>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><syllabic>begin</syllabic><text>hairpin</text></lyric>
+      </note>
+      <direction>
+        <direction-type>
+          <wedge type="stop"/>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><syllabic>end</syllabic><text>cresc</text></lyric>
+      </note>
+      <direction>
+        <direction-type>
+          <dashes type="start"/>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><syllabic>begin</syllabic><text>dash</text></lyric>
+      </note>
+      <direction>
+        <direction-type>
+          <dashes type="stop"/>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><syllabic>end</syllabic><text>es</text></lyric>
+      </note>
+    </measure>
+    <measure number="10">
+      <direction>
+        <direction-type>
+          <bracket type="start" line-end="none"/>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><syllabic>begin</syllabic><text>bra</text></lyric>
+      </note>
+      <direction>
+        <direction-type>
+          <bracket type="stop" line-end="none"/>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><syllabic>end</syllabic><text>cket</text></lyric>
+      </note>
+      <direction>
+        <direction-type>
+          <octave-shift type="up"/>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><syllabic>begin</syllabic><text>oct.</text></lyric>
+      </note>
+      <direction>
+        <direction-type>
+          <octave-shift type="stop"/>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><syllabic>end</syllabic><text>shift</text></lyric>
+      </note>
+    </measure>
+    <measure number="11">
+      <direction>
+        <direction-type>
+          <pedal type="start"/>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><syllabic>begin</syllabic><text>pedal</text></lyric>
+      </note>
+      <direction>
+        <direction-type>
+          <pedal type="change"/>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><syllabic>continue</syllabic><text>change</text></lyric>
+      </note>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <direction>
+        <direction-type>
+          <pedal type="stop"/>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><syllabic>end</syllabic><text>mark</text></lyric>
+      </note>
+    </measure>
+    <!-- metronome, harp-pedals, damp, damp-all, scordatura, accordion-registration -->
+    <measure number="12">
+      <direction>
+        <direction-type>
+          <metronome><beat-unit>quarter</beat-unit><per-minute>60</per-minute></metronome>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>Metr.</text></lyric>
+      </note>
+      <direction>
+        <direction-type>
+          <harp-pedals>
+            <pedal-tuning>
+              <pedal-step>D</pedal-step>
+              <pedal-alter>0</pedal-alter>
+            </pedal-tuning>
+            <pedal-tuning>
+              <pedal-step>C</pedal-step>
+              <pedal-alter>-1</pedal-alter>
+            </pedal-tuning>
+            <pedal-tuning>
+              <pedal-step>B</pedal-step>
+              <pedal-alter>-1</pedal-alter>
+            </pedal-tuning>
+            <pedal-tuning>
+              <pedal-step>E</pedal-step>
+              <pedal-alter>0</pedal-alter>
+            </pedal-tuning>
+            <pedal-tuning>
+              <pedal-step>F</pedal-step>
+              <pedal-alter>0</pedal-alter>
+            </pedal-tuning>
+            <pedal-tuning>
+              <pedal-step>G</pedal-step>
+              <pedal-alter>1</pedal-alter>
+            </pedal-tuning>
+            <pedal-tuning>
+              <pedal-step>A</pedal-step>
+              <pedal-alter>-1</pedal-alter>
+            </pedal-tuning>
+          </harp-pedals>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>Harp ped.</text></lyric>
+      </note>
+      <direction>
+        <direction-type>
+          <damp/>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>Damp</text></lyric>
+      </note>
+      <direction>
+        <direction-type>
+          <damp-all/>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>Damp all</text></lyric>
+      </note>
+    </measure>
+    <measure number="13">
+      <direction>
+        <direction-type>
+          <scordatura>
+              <accord string="0"><tuning-step>C</tuning-step><tuning-octave>3</tuning-octave></accord>
+              <accord string="1"><tuning-step>G</tuning-step><tuning-octave>5</tuning-octave></accord>
+              <accord string="2"><tuning-step>E</tuning-step><tuning-octave>5</tuning-octave></accord>
+          </scordatura>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>Scord.</text></lyric>
+      </note>
+      <direction>
+        <direction-type>
+          <accordion-registration>
+              <accordion-high/>
+              <accordion-middle>2</accordion-middle>
+              <accordion-low/>
+          </accordion-registration>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>Accordion reg.</text></lyric>
+      </note>
+      <note>
+        <rest/>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+      <barline location="right">
+        <bar-style>light-light</bar-style>
+      </barline>
+    </measure>
+    <!-- Other issues: Multiple direction-type elements: "subito p", ppp<fff -->
+    <measure number="14">
+      <direction placement="below">
+        <direction-type>
+          <words default-y="-80" font-family="Times New Roman" font-size="10.25" font-style="italic">subito</words>
+        </direction-type>
+        <direction-type>
+          <words default-y="-80" font-family="Times New Roman" font-size="10.25"> </words>
+        </direction-type>
+        <direction-type>
+          <dynamics default-y="-80">
+            <p/>
+          </dynamics>
+        </direction-type>
+        <offset>2</offset>
+      </direction>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>subp</text></lyric>
+      </note>
+      <direction placement="below">
+        <direction-type>
+          <dynamics><ppp/></dynamics>
+        </direction-type>
+        <direction-type>
+          <wedge type="crescendo"/>
+        </direction-type>
+        <offset>2</offset>
+      </direction>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><syllabic>begin</syllabic><text>ppp cresc</text></lyric>
+      </note>
+      <direction placement="below">
+        <direction-type>
+          <wedge type="stop"/>
+        </direction-type>
+        <direction-type>
+          <dynamics><fff/></dynamics>
+        </direction-type>
+        <offset>2</offset>
+      </direction>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><syllabic>end</syllabic><text>to fff</text></lyric>
+      </note>
+      <note>
+        <rest/>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>subp</text></lyric>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+    <!--=======================================================-->
+  </part>
+  <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/31b-Directions-MultimeasureRests.xml.broken b/input/regression/musicxml/31b-Directions-MultimeasureRests.xml.broken
new file mode 100644 (file)
index 0000000..7b3285d
--- /dev/null
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.1 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise version="1.1">
+  <movement-title>MusicXML directions (attached to staff)</movement-title>
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">Directions between some 
+        multi-measure rests should still be converted to the correct 
+        position.</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <defaults/>
+  <part-list>
+    <score-part id="P1">
+      <part-name print-object="no">MusicXML Part</part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <!--=======================================================-->
+    <measure number="1">
+      <attributes>
+        <divisions>8</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <rest/>
+        <duration>32</duration>
+        <voice>1</voice>
+      </note>
+      <direction placement="above">
+        <direction-type>
+          <words font-family="Times New Roman" font-size="9.6" font-weight="bold">TEST</words>
+        </direction-type>
+        <offset>-4</offset>
+      </direction>
+    </measure>
+    <!--=======================================================-->
+    <measure number="2">
+      <note>
+        <rest/>
+        <duration>32</duration>
+        <voice>1</voice>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="3">
+      <note>
+        <rest/>
+        <duration>32</duration>
+        <voice>1</voice>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+    <!--=======================================================-->
+  </part>
+  <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/31c-MetronomeMarks.xml b/input/regression/musicxml/31c-MetronomeMarks.xml
new file mode 100644 (file)
index 0000000..b2b42aa
--- /dev/null
@@ -0,0 +1,176 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.1 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise version="1.1">
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">Tempo Markings: note=bpm, 
+          text (note=bpm), note=note, (note=note), (note=bpm)</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name></part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <direction>
+        <direction-type>
+          <metronome>
+            <beat-unit>quarter</beat-unit>
+            <beat-unit-dot/>
+            <per-minute>100</per-minute>
+          </metronome>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch><step>C</step><octave>5</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch><step>C</step><octave>5</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <direction>
+        <direction-type>
+          <words>Adagio</words>
+        </direction-type>
+        <direction-type>
+          <metronome>
+            <beat-unit>long</beat-unit>
+            <per-minute>100</per-minute>
+          </metronome>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch><step>C</step><octave>5</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch><step>C</step><octave>5</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="2">
+      <direction>
+        <direction-type>
+          <metronome>
+            <beat-unit>quarter</beat-unit>
+            <beat-unit-dot/>
+            <beat-unit>half</beat-unit>
+            <beat-unit-dot/>
+          </metronome>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch><step>C</step><octave>5</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch><step>C</step><octave>5</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <direction>
+        <direction-type>
+          <metronome>
+            <beat-unit>long</beat-unit>
+            <beat-unit>32nd</beat-unit>
+            <beat-unit-dot/>
+          </metronome>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch><step>C</step><octave>5</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch><step>C</step><octave>5</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="3">
+      <direction>
+        <direction-type>
+          <metronome parentheses="yes">
+            <beat-unit>quarter</beat-unit>
+            <beat-unit-dot/>
+            <beat-unit>half</beat-unit>
+            <beat-unit-dot/>
+          </metronome>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch><step>C</step><octave>5</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch><step>C</step><octave>5</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <direction>
+        <direction-type>
+          <metronome parentheses="yes">
+            <beat-unit>quarter</beat-unit>
+            <beat-unit-dot/>
+            <per-minute>77</per-minute>
+          </metronome>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch><step>C</step><octave>5</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch><step>C</step><octave>5</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/32-Notations-Articulations.itexi b/input/regression/musicxml/32-Notations-Articulations.itexi
new file mode 100644 (file)
index 0000000..c76b329
--- /dev/null
@@ -0,0 +1 @@
+@unnumberedsec 32 ... Notations and Articulations
diff --git a/input/regression/musicxml/32a-Notations.xml b/input/regression/musicxml/32a-Notations.xml
new file mode 100644 (file)
index 0000000..06be5dd
--- /dev/null
@@ -0,0 +1,1237 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 2.0 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise version="2.0">
+  <movement-title>MusicXML notations (attached to note)</movement-title>
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">All &lt;notation&gt; elements 
+          defined in MusicXML. The lyrics show the notation assigned to each 
+          note.</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name></part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <!-- General Notation elements (no spanners, which are tested separately):
+         fermata | arpeggiate | non-arpeggiate | accidental-mark -->
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <fermata type="upright"/>
+        </notations>
+        <lyric number="1"><text>ferm.</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <fermata>normal</fermata>
+        </notations>
+        <lyric number="1"><text>normal ferm.</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <fermata>angled</fermata>
+        </notations>
+        <lyric number="1"><text>angled ferm.</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <fermata>square</fermata>
+        </notations>
+        <lyric number="1"><text>square ferm.</text></lyric>
+      </note>
+    </measure>
+    <measure number="2">
+      <note>
+        <pitch>
+          <step>C</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <fermata type="inverted"/>
+        </notations>
+        <lyric number="1"><text>inv.ferm.</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations><arpeggiate/></notations>
+        <lyric number="1"><text>arp.</text></lyric>
+      </note>
+      <note>
+        <chord/>
+        <pitch>
+          <step>E</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations><arpeggiate/></notations>
+      </note>
+      <note>
+        <chord/>
+        <pitch>
+          <step>G</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations><arpeggiate/></notations>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations><non-arpeggiate type="bottom"/></notations>
+        <lyric number="1"><text>non-arp.</text></lyric>
+      </note>
+      <note>
+        <chord/>
+        <pitch>
+          <step>E</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <chord/>
+        <pitch>
+          <step>G</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations><non-arpeggiate type="top"/></notations>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <accidental-mark placement="above">double-sharp</accidental-mark>
+        </notations>
+        <lyric number="1"><text>acc.mark</text></lyric>
+      </note>
+      <barline location="right">
+        <bar-style>light-light</bar-style>
+      </barline>
+    </measure>
+
+    <!-- Articulations: 
+            accent | strong-accent | staccato | tenuto |
+            detached-legato | staccatissimo | spiccato |
+            scoop | plop | doit | falloff | breath-mark |
+            caesura | stress | unstress | other-articulation -->
+    <measure number="3">
+      <note>
+        <pitch>
+          <step>C</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <articulations><accent/></articulations>
+        </notations>
+        <lyric number="1"><text>acc.</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <articulations><strong-accent/></articulations>
+        </notations>
+        <lyric number="1"><text>str.-acc.</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <articulations><staccato/></articulations>
+        </notations>
+        <lyric number="1"><text>stacc.</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <articulations><tenuto/></articulations>
+        </notations>
+        <lyric number="1"><text>ten.</text></lyric>
+      </note>
+    </measure>
+    <measure number="4">
+      <note>
+        <pitch>
+          <step>C</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <articulations><detached-legato/></articulations>
+        </notations>
+        <lyric number="1"><text>det.-leg.</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <articulations><staccatissimo/></articulations>
+        </notations>
+        <lyric number="1"><text>stacc.ss</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <articulations><spiccato/></articulations>
+        </notations>
+        <lyric number="1"><text>spicc.</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <articulations><scoop/></articulations>
+        </notations>
+        <lyric number="1"><text>scoop</text></lyric>
+      </note>
+    </measure>
+    <measure number="5">
+      <note>
+        <pitch>
+          <step>C</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <articulations><plop/></articulations>
+        </notations>
+        <lyric number="1"><text>plop</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <articulations><doit/></articulations>
+        </notations>
+        <lyric number="1"><text>doit</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <articulations><falloff/></articulations>
+        </notations>
+        <lyric number="1"><text>falloff</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <articulations><breath-mark/></articulations>
+        </notations>
+        <lyric number="1"><text>breath</text></lyric>
+      </note>
+    </measure>
+    <measure number="6">
+      <note>
+        <pitch>
+          <step>C</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <articulations><caesura/></articulations>
+        </notations>
+        <lyric number="1"><text>caes.</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <articulations><stress/></articulations>
+        </notations>
+        <lyric number="1"><text>stress</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <articulations><unstress/></articulations>
+        </notations>
+        <lyric number="1"><text>unstr.</text></lyric>
+      </note>
+      <note>
+        <rest/>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <barline location="right">
+        <bar-style>light-light</bar-style>
+      </barline>
+    </measure>
+
+    <!-- Ornaments:
+         trill-mark | turn | delayed-turn | inverted-turn |
+         shake | wavy-line | mordent | inverted-mordent | 
+         schleifer | tremolo | other-ornament), 
+         accidental-mark 
+         
+         Test cases for various tremolo options are in a separate 
+         unit test file
+         -->
+    <measure number="7">
+      <note>
+        <pitch>
+          <step>C</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <ornaments><trill-mark/></ornaments>
+        </notations>
+        <lyric number="1"><text>tr.</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <ornaments><turn/></ornaments>
+        </notations>
+        <lyric number="1"><text>turn</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <ornaments><delayed-turn/></ornaments>
+        </notations>
+        <lyric number="1"><text>del.turn</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <ornaments><inverted-turn/></ornaments>
+        </notations>
+        <lyric number="1"><text>inv.turn</text></lyric>
+      </note>
+    </measure>
+    <measure number="8">
+      <note>
+        <pitch>
+          <step>C</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <ornaments><shake/></ornaments>
+        </notations>
+        <lyric number="1"><text>shake</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <ornaments>
+            <wavy-line placement="below" type="start"/>
+          </ornaments>
+        </notations>
+        <lyric number="1"><syllabic>begin</syllabic><text>wavy</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <ornaments>
+            <wavy-line placement="below" type="stop"/>
+            <wavy-line placement="below" type="start"/>
+          </ornaments>
+        </notations>
+        <lyric number="1"><syllabic>continue</syllabic><text>wavy</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <ornaments>
+            <wavy-line placement="below" type="stop"/>
+          </ornaments>
+        </notations>
+        <lyric number="1"><syllabic>end</syllabic><text>line</text></lyric>
+      </note>
+    </measure>
+    <measure number="9">
+      <note>
+        <pitch>
+          <step>C</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <ornaments><mordent/></ornaments>
+        </notations>
+        <lyric number="1"><text>mord.</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <ornaments><inverted-mordent/></ornaments>
+        </notations>
+        <lyric number="1"><text>inv.mord.</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <ornaments><schleifer/></ornaments>
+        </notations>
+        <lyric number="1"><text>schl.</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <ornaments><tremolo/></ornaments>
+        </notations>
+        <lyric number="1"><text>trem.</text></lyric>
+      </note>
+    </measure>
+    <measure number="10">
+      <note>
+        <pitch>
+          <step>C</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <ornaments>
+            <turn/>
+            <accidental-mark>natural</accidental-mark>
+          </ornaments>
+        </notations>
+        <lyric number="1"><text>turn+acc.</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <ornaments>
+            <turn/>
+            <accidental-mark placement="above">sharp</accidental-mark>
+            <accidental-mark placement="above">three-quarters-flat</accidental-mark>
+          </ornaments>
+        </notations>
+        <lyric number="1"><text>turn+acc.(ab.+bel./rel to turn)</text></lyric>
+      </note>
+      <note>
+        <rest/>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+      <barline location="right">
+        <bar-style>light-light</bar-style>
+      </barline>
+    </measure>
+
+    <!-- Technical:
+         up-bow | down-bow | harmonic | open-string |
+         thumb-position | fingering | pluck | double-tongue |
+         triple-tongue | stopped | snap-pizzicato | fret |
+         string | hammer-on | pull-off | bend | tap | heel |
+         toe | fingernails | other-technical -->
+    <measure number="11">
+      <note>
+        <pitch>
+          <step>C</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <technical><up-bow/></technical>
+        </notations>
+        <lyric number="1"><text>up-b.</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <technical><down-bow/></technical>
+        </notations>
+        <lyric number="1"><text>down-b.</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <technical><harmonic/></technical>
+        </notations>
+        <lyric number="1"><text>harm.</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <technical><harmonic><natural/></harmonic></technical>
+        </notations>
+        <lyric number="1"><text>nat.harm.</text></lyric>
+      </note>
+    </measure>
+    <measure number="12">
+      <note>
+        <pitch>
+          <step>C</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <technical><harmonic><artificial/></harmonic></technical>
+        </notations>
+        <lyric number="1"><text>art.harm.</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <technical><harmonic><natural/><base-pitch/></harmonic></technical>
+        </notations>
+        <lyric number="1"><text>nat.h./base</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <technical><harmonic><natural/><touching-pitch/></harmonic></technical>
+        </notations>
+        <lyric number="1"><text>nat.h./touching</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <technical><harmonic><natural/><sounding-pitch/></harmonic></technical>
+        </notations>
+        <lyric number="1"><text>nat.h./sounding</text></lyric>
+      </note>
+    </measure>
+    <measure number="13">
+      <note>
+        <pitch>
+          <step>C</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <technical><open-string/></technical>
+        </notations>
+        <lyric number="1"><text>open-str.</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <technical><thumb-position/></technical>
+        </notations>
+        <lyric number="1"><text>thumb-pos.</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <technical><fingering/></technical>
+        </notations>
+        <lyric number="1"><text>empty fing.</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <technical><fingering>1</fingering></technical>
+        </notations>
+        <lyric number="1"><text>fing.1</text></lyric>
+      </note>
+    </measure>
+    <measure number="14">
+      <note>
+        <pitch>
+          <step>C</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <technical><fingering>2</fingering></technical>
+        </notations>
+        <lyric number="1"><text>fing.2</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <technical><fingering>3</fingering></technical>
+        </notations>
+        <lyric number="1"><text>fing.3</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <technical><fingering>4</fingering></technical>
+        </notations>
+        <lyric number="1"><text>fing.4</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <technical><fingering>5</fingering></technical>
+        </notations>
+        <lyric number="1"><text>fing.5</text></lyric>
+      </note>
+    </measure>
+    <measure number="15">
+      <note>
+        <pitch>
+          <step>C</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <technical><fingering>something</fingering></technical>
+        </notations>
+        <lyric number="1"><text>fing.sth.</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <technical><fingering>5</fingering><fingering substitution="yes">3</fingering><fingering alternate="yes">2</fingering></technical>
+        </notations>
+        <lyric number="1"><text>mult.fing.</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <technical><pluck/></technical>
+        </notations>
+        <lyric number="1"><text>empty pluck</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <technical><pluck>a</pluck></technical>
+        </notations>
+        <lyric number="1"><text>pluck a</text></lyric>
+      </note>
+    </measure>
+    <measure number="16">
+      <note>
+        <pitch>
+          <step>C</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <technical><double-tongue/></technical>
+        </notations>
+        <lyric number="1"><text>dbl.tng.</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <technical><triple-tongue/></technical>
+        </notations>
+        <lyric number="1"><text>trpl.tng.</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <technical><stopped/></technical>
+        </notations>
+        <lyric number="1"><text>stopped</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <technical><snap-pizzicato/></technical>
+        </notations>
+        <lyric number="1"><text>snp.pizz.</text></lyric>
+      </note>
+    </measure>
+    <measure number="17">
+      <note>
+        <pitch>
+          <step>C</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <technical><fret/></technical>
+        </notations>
+        <lyric number="1"><text>empty fret</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <technical><fret>0</fret></technical>
+        </notations>
+        <lyric number="1"><text>fret0</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <technical><string/></technical>
+        </notations>
+        <lyric number="1"><text>empty str.</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <technical>
+            <string>5</string>
+          </technical>
+        </notations>
+        <lyric number="1"><text>str. 5</text></lyric>
+      </note>
+    </measure>
+    <measure number="18">
+      <note>
+        <pitch>
+          <step>C</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <technical>
+            <hammer-on type="start"/>
+          </technical>
+        </notations>
+        <lyric number="1"><syllabic>begin</syllabic><text>hammer</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <technical>
+            <hammer-on type="stop"/>
+          </technical>
+        </notations>
+        <lyric number="1"><syllabic>end</syllabic><text>on</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <technical>
+            <pull-off type="start"/>
+          </technical>
+        </notations>
+        <lyric number="1"><syllabic>begin</syllabic><text>pull</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <technical>
+            <pull-off type="stop"/>
+          </technical>
+        </notations>
+        <lyric number="1"><syllabic>end</syllabic><text>off</text></lyric>
+      </note>
+    </measure>
+    <measure number="19">
+      <note>
+        <pitch>
+          <step>C</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <technical>
+            <bend><bend-alter>4</bend-alter></bend>
+          </technical>
+        </notations>
+        <lyric number="1"><text>bend</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <technical>
+            <bend><bend-alter>3</bend-alter><release/><with-bar/></bend>
+          </technical>
+        </notations>
+        <lyric number="1"><text>b.3 with-bar</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <technical>
+            <bend><bend-alter>-0.5</bend-alter><pre-bend/></bend>
+          </technical>
+        </notations>
+        <lyric number="1"><text>pre-b. -0.5</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <technical>
+            <bend><bend-alter>3.5</bend-alter><release/></bend>
+          </technical>
+        </notations>
+        <lyric number="1"><text>b. release 3.5</text></lyric>
+      </note>
+    </measure>
+    <measure number="20">
+      <note>
+        <pitch>
+          <step>C</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <technical><tap/></technical>
+        </notations>
+        <lyric number="1"><text>tap</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <technical><tap>T</tap></technical>
+        </notations>
+        <lyric number="1"><text>tap T</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <technical><heel/></technical>
+        </notations>
+        <lyric number="1"><text>heel</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <technical><toe substitution="yes"/></technical>
+        </notations>
+        <lyric number="1"><text>toe</text></lyric>
+      </note>
+    </measure>
+    <measure number="21">
+      <note>
+        <pitch>
+          <step>C</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <technical><fingernails/></technical>
+        </notations>
+        <lyric number="1"><text>fingern.</text></lyric>
+      </note>
+      <note>
+        <rest/>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <rest/>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+      <barline location="right">
+        <bar-style>light-light</bar-style>
+      </barline>
+    </measure>
+    
+    <!-- Dynamics, attached to notes by putting them inside <notations> tags -->
+    <measure number="22">
+      <note>
+        <pitch>
+          <step>C</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <dynamics><f/></dynamics>
+        </notations>
+        <lyric number="1"><text>f</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <dynamics><ppp/></dynamics>
+        </notations>
+        <lyric number="1"><text>ppp</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <dynamics><sfp/></dynamics>
+        </notations>
+        <lyric number="1"><text>sfp</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <dynamics><other-dynamics>sfffz</other-dynamics></dynamics>
+        </notations>
+        <lyric number="1"><text>Oth.dyn.</text></lyric>
+      </note>
+    </measure>
+    
+    <!-- General tests: multiple notations, directions, etc. -->
+    <measure number="23">
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <articulations>
+            <strong-accent placement="above" type="up"/>
+            <staccato placement="above"/>
+          </articulations>
+        </notations>
+        <lyric number="1"><text>both above</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <articulations>
+            <accent placement="below"/>
+            <tenuto placement="below"/>
+            <staccato placement="above"/>
+          </articulations>
+        </notations>
+        <lyric number="1"><text>ab./bel./bel.</text></lyric>
+      </note>
+      <note>
+        <rest/>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+</score-partwise>
diff --git a/input/regression/musicxml/32b-Articulations-Texts.xml b/input/regression/musicxml/32b-Articulations-Texts.xml
new file mode 100644 (file)
index 0000000..15dc26c
--- /dev/null
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 0.6b Partwise//EN"
+ "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+       <identification>
+               <miscellaneous>
+                       <miscellaneous-field name="description">Text markup: 
+                            different font sizes, weights and colors.</miscellaneous-field>
+               </miscellaneous>
+       </identification>
+       <part-list>
+               <score-part id="P1"><part-name></part-name></score-part>
+       </part-list>
+       <part id="P1">
+               <measure number="1">
+                       <attributes>
+                               <divisions>96</divisions>
+                               <key><fifths>0</fifths></key>
+                               <time><beats>4</beats><beat-type>4</beat-type></time>
+                               <staves>1</staves>
+                               <clef number="1"><sign>G</sign><line>2</line></clef>
+                       </attributes>
+                       <direction placement="above">
+                               <direction-type>
+                                       <words default-x="-1" default-y="15" font-size="medium" font-weight="normal"> 
+                                               Normal, Medium
+                                       </words>
+                               </direction-type>
+                       </direction>
+                       <note>
+                               <pitch><step>F</step><octave>4</octave></pitch>
+                               <duration>384</duration>
+                               <voice>1</voice>
+                               <type>eighth</type>
+                       </note>
+                       <direction placement="below">
+                               <direction-type>
+                                       <words default-x="1" default-y="15" justify="left" font-size="medium" font-weight="bold"> 
+                                               Bold, Medium
+                                       </words>
+                               </direction-type>
+                       </direction>
+               </measure>
+               <measure number="2">
+                       <direction placement="above">
+                               <direction-type>
+                                       <words default-x="1" default-y="15" font-size="large" font-weight="normal"> 
+                                               Normal, Large
+                                       </words>
+                               </direction-type>
+                       </direction>
+                       <note>
+                               <pitch><step>G</step><octave>4</octave></pitch>
+                               <duration>384</duration>
+                               <voice>1</voice>
+                               <type>whole</type>
+                       </note>
+                       <direction placement="below">
+                               <direction-type>
+                                       <words default-x="1" default-y="15" font-size="large" font-weight="bold"> 
+                                               Bold, Large
+                                       </words>
+                               </direction-type>
+                       </direction>
+               </measure>
+               <measure number="3">
+                       <direction placement="above">
+                               <direction-type>
+                                       <words default-x="1" default-y="15" font-size="small" font-weight="normal"> 
+                                               Normal, Small
+                                       </words>
+                               </direction-type>
+                       </direction>
+                       <note>
+                               <pitch><step>F</step><octave>4</octave></pitch>
+                               <duration>384</duration>
+                               <voice>1</voice>
+                               <type>whole</type>
+                       </note>
+                        <direction placement="below">
+                            <direction-type>
+                                <words default-x="1" default-y="15" font-size="small" font-weight="bold"> 
+                                    Bold, Small
+                                </words>
+                            </direction-type>
+                        </direction>
+                        <direction placement="below">
+                            <direction-type>
+                                <words default-x="1" default-y="-15" font-size="small" color="#FF8000"> 
+                                    Normal, Small, Colored, Below
+                                </words>
+                            </direction-type>
+                        </direction>
+               </measure>
+       </part>
+</score-partwise>
diff --git a/input/regression/musicxml/32c-MultipleNotationChildren.xml b/input/regression/musicxml/32c-MultipleNotationChildren.xml
new file mode 100644 (file)
index 0000000..90a1727
--- /dev/null
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">
+          It should not make any difference whether two articulations are given
+          inside two different notation elements, inside two different articulations 
+          children of the same notation element or inside the same articulations
+          element. Thus, all three notes should have a staccato and an accent.
+      </miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name>MusicXML Part</part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>4</divisions>
+        <key>
+          <fifths>0</fifths>
+        </key>
+        <time>
+          <beats>3</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>sharp</accidental>
+        <notations>
+          <articulations>
+            <staccato placement="above"/>
+          </articulations>
+        </notations>
+        <notations>
+          <articulations>
+            <accent placement="above"/>
+          </articulations>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>sharp</accidental>
+        <notations>
+          <articulations>
+            <staccato placement="above"/>
+          </articulations>
+          <articulations>
+            <accent placement="above"/>
+          </articulations>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <accidental>sharp</accidental>
+        <notations>
+          <articulations>
+            <staccato placement="above"/>
+            <accent placement="above"/>
+          </articulations>
+        </notations>
+      </note>
+    </measure>
+  </part>
+</score-partwise>
diff --git a/input/regression/musicxml/32d-Arpeggio.xml b/input/regression/musicxml/32d-Arpeggio.xml
new file mode 100644 (file)
index 0000000..17cea0b
--- /dev/null
@@ -0,0 +1,245 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 2.0 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise version="2.0">
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">Different Arpeggio directions 
+          (normal, up, down, non-arpeggiate)</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name></part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <!-- Different Arpeggiate styles: neutral, up, down and non-arpeggiate (bracket) -->
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step><octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations><arpeggiate/></notations>
+        <lyric number="1"><text>normal</text></lyric>
+      </note>
+      <note>
+        <chord/>
+        <pitch>
+          <step>E</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations><arpeggiate/></notations>
+      </note>
+      <note>
+        <chord/>
+        <pitch>
+          <step>G</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations><arpeggiate/></notations>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step><octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations><arpeggiate direction="up"/></notations>
+        <lyric number="1"><text>up</text></lyric>
+      </note>
+      <note>
+        <chord/>
+        <pitch>
+          <step>E</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations><arpeggiate direction="up"/></notations>
+      </note>
+      <note>
+        <chord/>
+        <pitch>
+          <step>G</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations><arpeggiate direction="up"/></notations>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step><octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations><arpeggiate/></notations>
+        <lyric number="1"><text>normal</text></lyric>
+      </note>
+      <note>
+        <chord/>
+        <pitch>
+          <step>E</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations><arpeggiate/></notations>
+      </note>
+      <note>
+        <chord/>
+        <pitch>
+          <step>G</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations><arpeggiate/></notations>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step><octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations><arpeggiate direction="down"/></notations>
+        <lyric number="1"><text>down</text></lyric>
+      </note>
+      <note>
+        <chord/>
+        <pitch>
+          <step>E</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations><arpeggiate direction="down"/></notations>
+      </note>
+      <note>
+        <chord/>
+        <pitch>
+          <step>G</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations><arpeggiate direction="down"/></notations>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step><octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations><arpeggiate/></notations>
+        <lyric number="1"><text>normal</text></lyric>
+      </note>
+      <note>
+        <chord/>
+        <pitch>
+          <step>E</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations><arpeggiate/></notations>
+      </note>
+      <note>
+        <chord/>
+        <pitch>
+          <step>G</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations><arpeggiate/></notations>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step><octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations><non-arpeggiate type="bottom"/></notations>
+        <lyric number="1"><text>non-arp.</text></lyric>
+      </note>
+      <note>
+        <chord/>
+        <pitch>
+          <step>E</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <chord/>
+        <pitch>
+          <step>G</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations><non-arpeggiate type="top"/></notations>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step><octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations><arpeggiate/></notations>
+        <lyric number="1"><text>normal</text></lyric>
+      </note>
+      <note>
+        <chord/>
+        <pitch>
+          <step>E</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations><arpeggiate/></notations>
+      </note>
+      <note>
+        <chord/>
+        <pitch>
+          <step>G</step><octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations><arpeggiate/></notations>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+</score-partwise>
diff --git a/input/regression/musicxml/33-Spanners.itexi b/input/regression/musicxml/33-Spanners.itexi
new file mode 100644 (file)
index 0000000..b4d4f7a
--- /dev/null
@@ -0,0 +1 @@
+@unnumberedsec 33 ... Spanners
diff --git a/input/regression/musicxml/33a-Spanners.xml b/input/regression/musicxml/33a-Spanners.xml
new file mode 100644 (file)
index 0000000..5fd05e6
--- /dev/null
@@ -0,0 +1,919 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">Several spanners defined in
+           MusicXML: tuplet, slur (solid, dashed), tie,  wedge (cresc, dim),
+           tr + wavy-line, single-note trill spanner, octave-shift (8va,15mb),
+           bracket (solid down/down, dashed down/down, solid none/down,
+           dashed none/up, solid none/none), dashes, glissando (wavy),
+           bend-alter, slide (solid), grouping, two-note tremolo, hammer-on,
+           pull-off, pedal (down, change, up).</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name>MusicXML Part</part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>3</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time>
+          <beats>3</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+        <notations>
+          <tuplet number="1" placement="above" type="start"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <time-modification>
+          <actual-notes>3</actual-notes>
+          <normal-notes>2</normal-notes>
+        </time-modification>
+        <notations>
+          <tuplet number="1" type="stop"/>
+        </notations>
+      </note>
+      <note>
+        <rest/>
+        <duration>3</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="2">
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>3</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <slur number="1" type="start"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>3</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>3</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <slur number="1" type="stop"/>
+        </notations>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="3">
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>3</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <slur line-type="dashed" number="1" type="start"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>3</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>3</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <slur number="1" type="stop"/>
+        </notations>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="4">
+      <direction placement="above">
+        <direction-type>
+          <wedge spread="0" type="crescendo"/>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>3</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>3</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <direction>
+        <direction-type>
+          <wedge spread="15" type="stop"/>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>3</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="5">
+      <direction placement="above">
+        <direction-type>
+          <wedge spread="15" type="diminuendo"/>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>3</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>3</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <direction>
+        <direction-type>
+          <wedge spread="0" type="stop"/>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>3</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="6">
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>3</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <ornaments>
+            <trill-mark/>
+            <wavy-line number="1" type="start"/>
+          </ornaments>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>3</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>3</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <ornaments>
+            <wavy-line number="1" type="stop"/>
+          </ornaments>
+        </notations>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="7">
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>3</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <ornaments>
+            <wavy-line number="1" type="start"/>
+            <wavy-line number="1" type="stop"/>
+          </ornaments>
+        </notations>
+      </note>
+      <note>
+        <rest/>
+        <duration>6</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="8">
+      <direction>
+        <direction-type>
+          <octave-shift size="8" type="down"/>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>3</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>3</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>3</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <direction>
+        <direction-type>
+          <octave-shift size="8" type="stop"/>
+        </direction-type>
+      </direction>
+    </measure>
+    <!--=======================================================-->
+    <measure number="9">
+      <direction>
+        <direction-type>
+          <octave-shift size="15" type="up"/>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>2</octave>
+        </pitch>
+        <duration>3</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>2</octave>
+        </pitch>
+        <duration>3</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>2</octave>
+        </pitch>
+        <duration>3</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <direction>
+        <direction-type>
+          <octave-shift size="15" type="stop"/>
+        </direction-type>
+      </direction>
+    </measure>
+    <!--=======================================================-->
+    <measure number="10">
+      <direction placement="above">
+        <direction-type>
+          <bracket line-end="down" line-type="solid" number="1" type="start"/>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>3</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>3</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <direction placement="above">
+        <direction-type>
+          <bracket line-end="down" number="1" type="stop"/>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>3</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="11">
+      <direction placement="above">
+        <direction-type>
+          <bracket line-end="down" line-type="dashed" number="1" type="start"/>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>3</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>3</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <direction placement="above">
+        <direction-type>
+          <bracket line-end="down" number="1" type="stop"/>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>3</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="12">
+      <direction placement="above">
+        <direction-type>
+          <bracket line-end="none" line-type="solid" number="1" type="start"/>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>3</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>3</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <direction placement="above">
+        <direction-type>
+          <bracket line-end="down" number="1" type="stop"/>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>3</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="13">
+      <direction placement="above">
+        <direction-type>
+          <bracket line-end="none" line-type="dashed" number="1" type="start"/>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>3</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>3</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <direction placement="above">
+        <direction-type>
+          <bracket line-end="up" number="1" type="stop"/>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>3</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="14">
+      <direction placement="above">
+        <direction-type>
+          <bracket line-end="none" line-type="solid" number="1" type="start"/>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>3</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>3</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <direction placement="above">
+        <direction-type>
+          <bracket line-end="none" number="1" type="stop"/>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>3</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="15">
+      <direction placement="above">
+        <direction-type>
+          <dashes number="1" type="start"/>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>3</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>3</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <direction placement="above">
+        <direction-type>
+          <dashes number="1" type="stop"/>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>3</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="16">
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>3</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <glissando line-type="wavy" number="1" type="start"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>F</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>3</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <glissando line-type="wavy" number="1" type="stop"/>
+        </notations>
+      </note>
+      <note>
+        <rest/>
+        <duration>3</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="17">
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>3</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <technical>
+            <bend>
+              <bend-alter>6</bend-alter>
+            </bend>
+          </technical>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>3</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <technical>
+            <bend>
+              <bend-alter>0</bend-alter>
+            </bend>
+          </technical>
+        </notations>
+      </note>
+      <note>
+        <rest/>
+        <duration>3</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="18">
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>3</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <slide line-type="solid" number="1" type="start"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>3</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <slide line-type="solid" number="1" type="stop"/>
+        </notations>
+      </note>
+      <note>
+        <rest/>
+        <duration>3</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="19">
+      <direction>
+        <direction-type>
+          <grouping type="start"/>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>3</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>3</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>3</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <direction>
+        <direction-type>
+          <grouping type="stop"/>
+        </direction-type>
+      </direction>
+    </measure>
+    <!--=======================================================-->
+    <measure number="20">
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>3</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <ornaments><tremolo type="start">2</tremolo></ornaments>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>3</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <ornaments><tremolo type="stop"/></ornaments>
+        </notations>
+      </note>
+      <note>
+        <rest/>
+        <duration>3</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="21">
+      <note>
+        <pitch>
+          <step>B</step><octave>4</octave>
+        </pitch>
+        <duration>3</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <technical>
+            <hammer-on type="start"/>
+          </technical>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step><octave>4</octave>
+        </pitch>
+        <duration>3</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <technical>
+            <hammer-on type="stop"/>
+          </technical>
+        </notations>
+      </note>
+      <note>
+        <rest/>
+        <duration>3</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="22">
+      <note>
+        <pitch>
+          <step>B</step><octave>4</octave>
+        </pitch>
+        <duration>3</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <technical>
+            <pull-off type="start"/>
+          </technical>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step><octave>4</octave>
+        </pitch>
+        <duration>3</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <technical>
+            <pull-off type="stop"/>
+          </technical>
+        </notations>
+      </note>
+      <note>
+        <rest/>
+        <duration>3</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="23">
+      <direction>
+        <direction-type>
+          <pedal type="start"/>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch><step>B</step><octave>4</octave></pitch>
+        <duration>3</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <direction>
+        <direction-type>
+          <pedal type="change"/>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch><step>B</step><octave>4</octave></pitch>
+        <duration>3</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <direction>
+        <direction-type>
+          <pedal type="stop"/>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch><step>B</step><octave>4</octave></pitch>
+        <duration>3</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/33b-Spanners-Tie.xml b/input/regression/musicxml/33b-Spanners-Tie.xml
new file mode 100644 (file)
index 0000000..52e1ce9
--- /dev/null
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 0.6b Partwise//EN"
+ "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+       <identification>
+               <miscellaneous>
+                       <miscellaneous-field name="description">Two simple tied whole notes</miscellaneous-field>
+               </miscellaneous>
+       </identification>
+       <part-list>
+               <score-part id="P1"><part-name></part-name></score-part>
+       </part-list>
+       <part id="P1">
+               <measure number="1">
+                       <attributes>
+                               <divisions>1</divisions>
+                               <key><fifths>0</fifths></key>
+                               <time><beats>4</beats><beat-type>4</beat-type></time>
+                               <staves>1</staves>
+                               <clef number="1"><sign>G</sign><line>2</line></clef>
+                       </attributes>
+                       <note>
+                               <pitch><step>F</step><octave>4</octave></pitch>
+                               <duration>4</duration>
+                               <tie type="start"/>
+                               <voice>1</voice>
+                               <type>whole</type>
+                               <notations><tied type="start"/></notations>
+                       </note>
+               </measure>
+               <measure number="2">
+                       <note>
+                               <pitch><step>F</step><octave>4</octave></pitch>
+                               <duration>4</duration>
+                               <tie type="stop"/>
+                               <voice>1</voice>
+                               <type>whole</type>
+                               <notations><tied type="stop"/></notations>
+                       </note>
+               </measure>
+       </part>
+</score-partwise>
diff --git a/input/regression/musicxml/33c-Spanners-Slurs.xml b/input/regression/musicxml/33c-Spanners-Slurs.xml
new file mode 100644 (file)
index 0000000..b3d9c7f
--- /dev/null
@@ -0,0 +1,144 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.1 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise version="1.1">
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">A note can be the end of one 
+          slur and the start of a new slur. Also, in MusicXML, nested slurs 
+          are possible like in the second measure where one slur goes over all
+          four notes, and another slur goes from the second to the third 
+          note.</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name print-object="no">MusicXML Part</part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <slur number="1" placement="above" type="start"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <slur number="1" type="stop"/>
+          <slur number="1" placement="above" type="start"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <slur number="1" type="stop"/>
+          <slur number="1" placement="below" type="start"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <slur number="1" type="stop"/>
+        </notations>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="2">
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <slur number="1" placement="above" type="start"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <slur number="2" placement="above" type="start"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <slur number="2" type="stop"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <slur number="1" type="stop"/>
+        </notations>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/33d-Spanners-OctaveShifts.xml b/input/regression/musicxml/33d-Spanners-OctaveShifts.xml
new file mode 100644 (file)
index 0000000..f872d46
--- /dev/null
@@ -0,0 +1,177 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">All types of octave shifts (15ma,
+            15mb, 8va, 8vb)</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name>MusicXML Part</part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>8</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <beam number="1">begin</beam>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <beam number="1">continue</beam>
+      </note>
+      <direction>
+        <direction-type>
+          <octave-shift size="15" type="down"/>
+        </direction-type>
+        <offset>-4</offset>
+      </direction>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>6</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <beam number="1">continue</beam>
+      </note>
+      <direction>
+        <direction-type>
+          <octave-shift size="15" type="stop"/>
+        </direction-type>
+        <offset>-4</offset>
+      </direction>
+      <direction>
+        <direction-type>
+          <octave-shift size="15" type="up"/>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <beam number="1">end</beam>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>2</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <beam number="1">begin</beam>
+      </note>
+      <direction>
+        <direction-type>
+          <octave-shift size="15" type="stop"/>
+        </direction-type>
+        <offset>-4</offset>
+      </direction>
+      <direction>
+        <direction-type>
+          <octave-shift size="8" type="down"/>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <beam number="1">end</beam>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <beam number="1">begin</beam>
+      </note>
+      <direction>
+        <direction-type>
+          <octave-shift size="8" type="stop"/>
+        </direction-type>
+        <offset>-3</offset>
+      </direction>
+      <direction>
+        <direction-type>
+          <octave-shift size="8" type="up"/>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>16th</type>
+        <beam number="1">continue</beam>
+        <beam number="2">begin</beam>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>16th</type>
+        <beam number="1">end</beam>
+        <beam number="2">end</beam>
+      </note>
+      <direction>
+        <direction-type>
+          <octave-shift size="8" type="stop"/>
+        </direction-type>
+        <offset>-2</offset>
+      </direction>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/33e-Spanners-OctaveShifts-InvalidSize.xml b/input/regression/musicxml/33e-Spanners-OctaveShifts-InvalidSize.xml
new file mode 100644 (file)
index 0000000..a97088b
--- /dev/null
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">Invalid octave-shifts: 27 down,
+            11 up.</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name>MusicXML Part</part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>3</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <direction>
+        <direction-type>
+          <octave-shift size="27" type="down"/>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>7</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <direction>
+        <direction-type>
+          <octave-shift size="27" type="stop"/>
+        </direction-type>
+      </direction>
+      <direction>
+        <direction-type>
+          <octave-shift size="11" type="up"/>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <direction>
+        <direction-type>
+          <octave-shift size="11" type="stop"/>
+        </direction-type>
+      </direction>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/33f-Trill-EndingOnGraceNote.xml b/input/regression/musicxml/33f-Trill-EndingOnGraceNote.xml
new file mode 100644 (file)
index 0000000..3680850
--- /dev/null
@@ -0,0 +1,139 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">A trill spanner that spans a 
+          grace note and ends on an after-grace note at the end of the 
+          measure.</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name>MusicXML Part</part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="25">
+      <attributes>
+        <divisions>336</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time>
+          <beats>6</beats>
+          <beat-type>8</beat-type>
+        </time>
+        <staves>2</staves>
+        <clef number="1">
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+        <clef number="2">
+          <sign>F</sign>
+          <line>4</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>E</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>336</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <staff>1</staff>
+        <notations>
+          <slur number="1" placement="above" type="start"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>F</step>
+          <alter>1</alter>
+          <octave>5</octave>
+        </pitch>
+        <duration>84</duration>
+        <voice>1</voice>
+        <type>16th</type>
+        <accidental>sharp</accidental>
+        <staff>1</staff>
+        <beam number="1">begin</beam>
+        <beam number="2">begin</beam>
+      </note>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>84</duration>
+        <voice>1</voice>
+        <type>16th</type>
+        <staff>1</staff>
+        <beam number="1">end</beam>
+        <beam number="2">end</beam>
+        <notations>
+          <slur number="1" type="stop"/>
+          <ornaments>
+            <trill-mark default-y="39"/>
+            <wavy-line default-y="39" number="1" type="start"/>
+          </ornaments>
+        </notations>
+      </note>
+      <note>
+        <grace/>
+        <pitch>
+          <step>B</step>
+          <octave>5</octave>
+        </pitch>
+        <voice>1</voice>
+        <type>16th</type>
+        <staff>1</staff>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>504</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <dot/>
+        <staff>1</staff>
+      </note>
+      <note>
+        <grace/>
+        <pitch>
+          <step>G</step>
+          <octave>5</octave>
+        </pitch>
+        <voice>1</voice>
+        <type>16th</type>
+        <staff>1</staff>
+        <beam number="1">begin</beam>
+        <beam number="2">begin</beam>
+      </note>
+      <note>
+        <grace/>
+        <pitch>
+          <step>A</step>
+          <octave>5</octave>
+        </pitch>
+        <voice>1</voice>
+        <type>16th</type>
+        <staff>1</staff>
+        <beam number="1">end</beam>
+        <beam number="2">end</beam>
+        <notations>
+          <ornaments>
+            <wavy-line number="1" type="stop"/>
+          </ornaments>
+        </notations>
+      </note>
+    </measure>
+  </part>
+  <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/33g-Slur-ChordedNotes.xml b/input/regression/musicxml/33g-Slur-ChordedNotes.xml
new file mode 100644 (file)
index 0000000..4fa6773
--- /dev/null
@@ -0,0 +1,131 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.1 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise version="1.1">
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">Slurs on chorded notes: Only the 
+          first note of the chord should get the slur notation. Some 
+          applications print out the slur for all notes -- these should be
+          ignored.</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name print-object="no">MusicXML Part</part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <slur number="1" placement="above" type="start"/>
+        </notations>
+      </note>
+      <note>
+        <chord/>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <chord/>
+        <pitch>
+          <step>G</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <chord/>
+        <pitch>
+          <step>D</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <slur number="1" type="stop"/>
+          <slur number="1" placement="above" type="start"/>
+        </notations>
+      </note>
+      <note>
+        <chord/>
+        <pitch>
+          <step>D</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <slur number="1" placement="above" type="start"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <slur number="1" type="stop"/>
+        </notations>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/33h-Spanners-Glissando.xml b/input/regression/musicxml/33h-Spanners-Glissando.xml
new file mode 100644 (file)
index 0000000..ab3c99d
--- /dev/null
@@ -0,0 +1,298 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 2.0 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise version="2.0">
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">All different types of 
+          glissando defined in MusicXML</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name></part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <!-- Glissando styles: glissando/slide, solid/dashed/dotted/wavy -->
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <glissando number="1" type="start"/>
+        </notations>
+        <lyric number="1"><text>normal</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>F</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <glissando number="1" type="stop"/>
+        </notations>
+        <lyric number="1"><text>glissando</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <glissando line-type="solid" number="1" type="start">text</glissando>
+        </notations>
+        <lyric number="1"><text>solid</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>F</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <glissando line-type="solid" number="1" type="stop"/>
+        </notations>
+        <lyric number="1"><text>(+text)</text></lyric>
+      </note>
+    </measure>
+    <measure number="2">
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <glissando line-type="dashed" number="1" type="start"/>
+        </notations>
+        <lyric number="1"><text>dashed</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>F</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <glissando line-type="dashed" number="1" type="stop"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <glissando line-type="dotted" number="1" type="start"/>
+        </notations>
+        <lyric number="1"><text>dotted</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>F</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <glissando line-type="dotted" number="1" type="stop"/>
+        </notations>
+      </note>
+    </measure>
+    <measure number="3">
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <glissando line-type="wavy" number="1" type="start"/>
+        </notations>
+        <lyric number="1"><text>wavy</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>F</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <glissando line-type="wavy" number="1" type="stop"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <slide number="1" type="start"/>
+        </notations>
+        <lyric number="1"><text>normal</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>F</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <slide number="1" type="stop"/>
+        </notations>
+        <lyric number="1"><text>slide</text></lyric>
+      </note>
+    </measure>
+    <measure number="4">
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <slide line-type="solid" number="1" type="start">text</slide>
+        </notations>
+        <lyric number="1"><text>solid</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>F</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <slide line-type="solid" number="1" type="stop"/>
+        </notations>
+        <lyric number="1"><text>(+text)</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <slide line-type="dashed" number="1" type="start"/>
+        </notations>
+        <lyric number="1"><text>dashed</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>F</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <slide line-type="solid" number="1" type="stop"/>
+        </notations>
+      </note>
+    </measure>
+    <measure number="5">
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <slide line-type="dotted" number="1" type="start"/>
+        </notations>
+        <lyric number="1"><text>dotted</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>F</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <slide line-type="dotted" number="1" type="stop"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <slide line-type="wavy" number="1" type="start"/>
+        </notations>
+        <lyric number="1"><text>wavy</text></lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>F</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <slide line-type="wavy" number="1" type="stop"/>
+        </notations>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+</score-partwise>
diff --git a/input/regression/musicxml/41-Multiple-Parts.itexi b/input/regression/musicxml/41-Multiple-Parts.itexi
new file mode 100644 (file)
index 0000000..2f06573
--- /dev/null
@@ -0,0 +1 @@
+@unnumberedsec 41 ... Multiple parts (staves)
diff --git a/input/regression/musicxml/41a-MultiParts-Partorder.xml b/input/regression/musicxml/41a-MultiParts-Partorder.xml
new file mode 100644 (file)
index 0000000..a41f347
--- /dev/null
@@ -0,0 +1,186 @@
+<?xml version="1.0"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 0.6 Partwise//EN" "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+       <identification> 
+               <miscellaneous>
+                       <miscellaneous-field name="description">A piece with 
+                            four parts (P0, P1, P2, P3; different from what 
+                           Finale creates!). Are they converted in the correct 
+                           order?</miscellaneous-field>
+               </miscellaneous>
+       </identification> 
+       <part-list>
+               <score-part id="P0">
+                       <part-name>Part 1</part-name>
+               </score-part>
+               <score-part id="P1">
+                       <part-name>Part 2</part-name>
+               </score-part>
+               <score-part id="P2">
+                       <part-name>Part 3</part-name>
+               </score-part>
+               <score-part id="P3">
+                       <part-name>Part 4</part-name>
+               </score-part>
+       </part-list>
+       <part id="P0">
+               <measure number="1">
+                       <attributes>
+                               <divisions>960</divisions>
+                               <key>
+                               <fifths>1</fifths>
+                               <mode>major</mode>
+                               </key>
+                               <time>
+                               <beats>4</beats>
+                               <beat-type>4</beat-type>
+                               </time>
+                               <clef>
+                               <sign>G</sign>
+                               <line>2</line>
+                               </clef>
+                       </attributes>
+                       <note>
+                               <pitch>
+                                       <step>C</step>
+                                       <octave>4</octave>
+                               </pitch>
+                               <duration>960</duration>
+                               <voice>1</voice>
+                               <type>quarter</type>
+                       </note>
+                       <note>
+                               <rest/>
+                               <duration>960</duration>
+                               <voice>1</voice>
+                               <type>quarter</type>
+                       </note>
+                       <note>
+                               <rest/>
+                               <duration>1920</duration>
+                               <voice>1</voice>
+                               <type>half</type>
+                       </note>
+               </measure>
+       </part>
+       <part id="P1">
+               <measure number="1">
+                       <attributes>
+                               <divisions>960</divisions>
+                               <key>
+                               <fifths>1</fifths>
+                               <mode>major</mode>
+                               </key>
+                               <time>
+                               <beats>4</beats>
+                               <beat-type>4</beat-type>
+                               </time>
+                               <clef>
+                               <sign>G</sign>
+                               <line>2</line>
+                               </clef>
+                       </attributes>
+                       <note>
+                               <pitch>
+                                       <step>E</step>
+                                       <octave>4</octave>
+                               </pitch>
+                               <duration>960</duration>
+                               <voice>1</voice>
+                               <type>quarter</type>
+                       </note>
+                       <note>
+                               <rest/>
+                               <duration>960</duration>
+                               <voice>1</voice>
+                               <type>quarter</type>
+                       </note>
+                       <note>
+                               <rest/>
+                               <duration>1920</duration>
+                               <voice>1</voice>
+                               <type>half</type>
+                       </note>
+               </measure>
+       </part>
+       <part id="P2">
+               <measure number="1">
+                       <attributes>
+                               <divisions>960</divisions>
+                               <key>
+                               <fifths>1</fifths>
+                               <mode>major</mode>
+                               </key>
+                               <time>
+                               <beats>4</beats>
+                               <beat-type>4</beat-type>
+                               </time>
+                               <clef>
+                               <sign>G</sign>
+                               <line>2</line>
+                               </clef>
+                       </attributes>
+                       <note>
+                               <pitch>
+                                       <step>G</step>
+                                       <octave>4</octave>
+                               </pitch>
+                               <duration>960</duration>
+                               <voice>1</voice>
+                               <type>quarter</type>
+                       </note>
+                       <note>
+                               <rest/>
+                               <duration>960</duration>
+                               <voice>1</voice>
+                               <type>quarter</type>
+                       </note>
+                       <note>
+                               <rest/>
+                               <duration>1920</duration>
+                               <voice>1</voice>
+                               <type>half</type>
+                       </note>
+               </measure>
+       </part>
+       <part id="P3">
+               <measure number="1">
+                       <attributes>
+                               <divisions>960</divisions>
+                               <key>
+                               <fifths>1</fifths>
+                               <mode>major</mode>
+                               </key>
+                               <time>
+                               <beats>4</beats>
+                               <beat-type>4</beat-type>
+                               </time>
+                               <clef>
+                               <sign>G</sign>
+                               <line>2</line>
+                               </clef>
+                       </attributes>
+                       <note>
+                               <pitch>
+                                       <step>B</step>
+                                       <octave>4</octave>
+                               </pitch>
+                               <duration>960</duration>
+                               <voice>1</voice>
+                               <type>quarter</type>
+                       </note>
+                       <note>
+                               <rest/>
+                               <duration>960</duration>
+                               <voice>1</voice>
+                               <type>quarter</type>
+                       </note>
+                       <note>
+                               <rest/>
+                               <duration>1920</duration>
+                               <voice>1</voice>
+                               <type>half</type>
+                       </note>
+               </measure>
+       </part>
+</score-partwise>
diff --git a/input/regression/musicxml/41b-MultiParts-MoreThan10.xml b/input/regression/musicxml/41b-MultiParts-MoreThan10.xml
new file mode 100644 (file)
index 0000000..e97bf3d
--- /dev/null
@@ -0,0 +1,494 @@
+<?xml version="1.0"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 0.6 Partwise//EN" "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+       <identification> 
+               <miscellaneous>
+                       <miscellaneous-field name="description">A piece with 
+                            20 parts to check whether an application supports
+                           that many parts and whether they are 
+                            correctly sorted.</miscellaneous-field>
+               </miscellaneous>
+       </identification> 
+       <part-list>
+               <score-part id="P0">
+                       <part-name>P0</part-name>
+               </score-part>
+               <score-part id="P1">
+                       <part-name>P1</part-name>
+               </score-part>
+               <score-part id="P2">
+                       <part-name>P2</part-name>
+               </score-part>
+               <score-part id="P3">
+                       <part-name>P3</part-name>
+               </score-part>
+               <score-part id="P4">
+                       <part-name>P4</part-name>
+               </score-part>
+               <score-part id="P5">
+                       <part-name>P5</part-name>
+               </score-part>
+               <score-part id="P6">
+                       <part-name>P6</part-name>
+               </score-part>
+               <score-part id="P7">
+                       <part-name>P7</part-name>
+               </score-part>
+               <score-part id="P8">
+                       <part-name>P8</part-name>
+               </score-part>
+               <score-part id="P9">
+                       <part-name>P9</part-name>
+               </score-part>
+               <score-part id="P10">
+                       <part-name>P10</part-name>
+               </score-part>
+               <score-part id="P11">
+                       <part-name>P11</part-name>
+               </score-part>
+               <score-part id="P12">
+                       <part-name>P12</part-name>
+               </score-part>
+               <score-part id="P13">
+                       <part-name>P13</part-name>
+               </score-part>
+               <score-part id="P14">
+                       <part-name>P14</part-name>
+               </score-part>
+               <score-part id="P15">
+                       <part-name>P15</part-name>
+               </score-part>
+               <score-part id="P16">
+                       <part-name>P16</part-name>
+               </score-part>
+               <score-part id="P17">
+                       <part-name>P17</part-name>
+               </score-part>
+               <score-part id="P18">
+                       <part-name>P18</part-name>
+               </score-part>
+               <score-part id="P19">
+                       <part-name>P19</part-name>
+               </score-part>
+       </part-list>
+       <part id="P0">
+               <measure number="1">
+                       <attributes>
+                               <divisions>960</divisions>
+                               <time>
+                               <beats>4</beats>
+                               <beat-type>4</beat-type>
+                               </time>
+                               <clef>
+                               <sign>G</sign>
+                               <line>2</line>
+                               </clef>
+                       </attributes>
+                       <note>
+                               <rest/>
+                               <duration>3840</duration>
+                               <voice>1</voice>
+                               <type>whole</type>
+                       </note>
+               </measure>
+       </part>
+       <part id="P1">
+               <measure number="1">
+                       <attributes>
+                               <divisions>960</divisions>
+                               <time>
+                               <beats>4</beats>
+                               <beat-type>4</beat-type>
+                               </time>
+                               <clef>
+                               <sign>G</sign>
+                               <line>2</line>
+                               </clef>
+                       </attributes>
+                       <note>
+                               <rest/>
+                               <duration>3840</duration>
+                               <voice>1</voice>
+                               <type>whole</type>
+                       </note>
+               </measure>
+       </part>
+       <part id="P2">
+               <measure number="1">
+                       <attributes>
+                               <divisions>960</divisions>
+                               <time>
+                               <beats>4</beats>
+                               <beat-type>4</beat-type>
+                               </time>
+                               <clef>
+                               <sign>G</sign>
+                               <line>2</line>
+                               </clef>
+                       </attributes>
+                       <note>
+                               <rest/>
+                               <duration>3840</duration>
+                               <voice>1</voice>
+                               <type>whole</type>
+                       </note>
+               </measure>
+       </part>
+       <part id="P3">
+               <measure number="1">
+                       <attributes>
+                               <divisions>960</divisions>
+                               <time>
+                               <beats>4</beats>
+                               <beat-type>4</beat-type>
+                               </time>
+                               <clef>
+                               <sign>G</sign>
+                               <line>2</line>
+                               </clef>
+                       </attributes>
+                       <note>
+                               <rest/>
+                               <duration>3840</duration>
+                               <voice>1</voice>
+                               <type>whole</type>
+                       </note>
+               </measure>
+       </part>
+       <part id="P4">
+               <measure number="1">
+                       <attributes>
+                               <divisions>960</divisions>
+                               <time>
+                               <beats>4</beats>
+                               <beat-type>4</beat-type>
+                               </time>
+                               <clef>
+                               <sign>G</sign>
+                               <line>2</line>
+                               </clef>
+                       </attributes>
+                       <note>
+                               <rest/>
+                               <duration>3840</duration>
+                               <voice>1</voice>
+                               <type>whole</type>
+                       </note>
+               </measure>
+       </part>
+       <part id="P5">
+               <measure number="1">
+                       <attributes>
+                               <divisions>960</divisions>
+                               <time>
+                               <beats>4</beats>
+                               <beat-type>4</beat-type>
+                               </time>
+                               <clef>
+                               <sign>G</sign>
+                               <line>2</line>
+                               </clef>
+                       </attributes>
+                       <note>
+                               <rest/>
+                               <duration>3840</duration>
+                               <voice>1</voice>
+                               <type>whole</type>
+                       </note>
+               </measure>
+       </part>
+       <part id="P6">
+               <measure number="1">
+                       <attributes>
+                               <divisions>960</divisions>
+                               <time>
+                               <beats>4</beats>
+                               <beat-type>4</beat-type>
+                               </time>
+                               <clef>
+                               <sign>G</sign>
+                               <line>2</line>
+                               </clef>
+                       </attributes>
+                       <note>
+                               <rest/>
+                               <duration>3840</duration>
+                               <voice>1</voice>
+                               <type>whole</type>
+                       </note>
+               </measure>
+       </part>
+       <part id="P7">
+               <measure number="1">
+                       <attributes>
+                               <divisions>960</divisions>
+                               <time>
+                               <beats>4</beats>
+                               <beat-type>4</beat-type>
+                               </time>
+                               <clef>
+                               <sign>G</sign>
+                               <line>2</line>
+                               </clef>
+                       </attributes>
+                       <note>
+                               <rest/>
+                               <duration>3840</duration>
+                               <voice>1</voice>
+                               <type>whole</type>
+                       </note>
+               </measure>
+       </part>
+       <part id="P8">
+               <measure number="1">
+                       <attributes>
+                               <divisions>960</divisions>
+                               <time>
+                               <beats>4</beats>
+                               <beat-type>4</beat-type>
+                               </time>
+                               <clef>
+                               <sign>G</sign>
+                               <line>2</line>
+                               </clef>
+                       </attributes>
+                       <note>
+                               <rest/>
+                               <duration>3840</duration>
+                               <voice>1</voice>
+                               <type>whole</type>
+                       </note>
+               </measure>
+       </part>
+       <part id="P9">
+               <measure number="1">
+                       <attributes>
+                               <divisions>960</divisions>
+                               <time>
+                               <beats>4</beats>
+                               <beat-type>4</beat-type>
+                               </time>
+                               <clef>
+                               <sign>G</sign>
+                               <line>2</line>
+                               </clef>
+                       </attributes>
+                       <note>
+                               <rest/>
+                               <duration>3840</duration>
+                               <voice>1</voice>
+                               <type>whole</type>
+                       </note>
+               </measure>
+       </part>
+       <part id="P10">
+               <measure number="1">
+                       <attributes>
+                               <divisions>960</divisions>
+                               <time>
+                               <beats>4</beats>
+                               <beat-type>4</beat-type>
+                               </time>
+                               <clef>
+                               <sign>G</sign>
+                               <line>2</line>
+                               </clef>
+                       </attributes>
+                       <note>
+                               <rest/>
+                               <duration>3840</duration>
+                               <voice>1</voice>
+                               <type>whole</type>
+                       </note>
+               </measure>
+       </part>
+       <part id="P11">
+               <measure number="1">
+                       <attributes>
+                               <divisions>960</divisions>
+                               <time>
+                               <beats>4</beats>
+                               <beat-type>4</beat-type>
+                               </time>
+                               <clef>
+                               <sign>G</sign>
+                               <line>2</line>
+                               </clef>
+                       </attributes>
+                       <note>
+                               <rest/>
+                               <duration>3840</duration>
+                               <voice>1</voice>
+                               <type>whole</type>
+                       </note>
+               </measure>
+       </part>
+       <part id="P12">
+               <measure number="1">
+                       <attributes>
+                               <divisions>960</divisions>
+                               <time>
+                               <beats>4</beats>
+                               <beat-type>4</beat-type>
+                               </time>
+                               <clef>
+                               <sign>G</sign>
+                               <line>2</line>
+                               </clef>
+                       </attributes>
+                       <note>
+                               <rest/>
+                               <duration>3840</duration>
+                               <voice>1</voice>
+                               <type>whole</type>
+                       </note>
+               </measure>
+       </part>
+       <part id="P13">
+               <measure number="1">
+                       <attributes>
+                               <divisions>960</divisions>
+                               <time>
+                               <beats>4</beats>
+                               <beat-type>4</beat-type>
+                               </time>
+                               <clef>
+                               <sign>G</sign>
+                               <line>2</line>
+                               </clef>
+                       </attributes>
+                       <note>
+                               <rest/>
+                               <duration>3840</duration>
+                               <voice>1</voice>
+                               <type>whole</type>
+                       </note>
+               </measure>
+       </part>
+       <part id="P14">
+               <measure number="1">
+                       <attributes>
+                               <divisions>960</divisions>
+                               <time>
+                               <beats>4</beats>
+                               <beat-type>4</beat-type>
+                               </time>
+                               <clef>
+                               <sign>G</sign>
+                               <line>2</line>
+                               </clef>
+                       </attributes>
+                       <note>
+                               <rest/>
+                               <duration>3840</duration>
+                               <voice>1</voice>
+                               <type>whole</type>
+                       </note>
+               </measure>
+       </part>
+       <part id="P15">
+               <measure number="1">
+                       <attributes>
+                               <divisions>960</divisions>
+                               <time>
+                               <beats>4</beats>
+                               <beat-type>4</beat-type>
+                               </time>
+                               <clef>
+                               <sign>G</sign>
+                               <line>2</line>
+                               </clef>
+                       </attributes>
+                       <note>
+                               <rest/>
+                               <duration>3840</duration>
+                               <voice>1</voice>
+                               <type>whole</type>
+                       </note>
+               </measure>
+       </part>
+       <part id="P16">
+               <measure number="1">
+                       <attributes>
+                               <divisions>960</divisions>
+                               <time>
+                               <beats>4</beats>
+                               <beat-type>4</beat-type>
+                               </time>
+                               <clef>
+                               <sign>G</sign>
+                               <line>2</line>
+                               </clef>
+                       </attributes>
+                       <note>
+                               <rest/>
+                               <duration>3840</duration>
+                               <voice>1</voice>
+                               <type>whole</type>
+                       </note>
+               </measure>
+       </part>
+       <part id="P17">
+               <measure number="1">
+                       <attributes>
+                               <divisions>960</divisions>
+                               <time>
+                               <beats>4</beats>
+                               <beat-type>4</beat-type>
+                               </time>
+                               <clef>
+                               <sign>G</sign>
+                               <line>2</line>
+                               </clef>
+                       </attributes>
+                       <note>
+                               <rest/>
+                               <duration>3840</duration>
+                               <voice>1</voice>
+                               <type>whole</type>
+                       </note>
+               </measure>
+       </part>
+       <part id="P18">
+               <measure number="1">
+                       <attributes>
+                               <divisions>960</divisions>
+                               <time>
+                               <beats>4</beats>
+                               <beat-type>4</beat-type>
+                               </time>
+                               <clef>
+                               <sign>G</sign>
+                               <line>2</line>
+                               </clef>
+                       </attributes>
+                       <note>
+                               <rest/>
+                               <duration>3840</duration>
+                               <voice>1</voice>
+                               <type>whole</type>
+                       </note>
+               </measure>
+       </part>
+       <part id="P19">
+               <measure number="1">
+                       <attributes>
+                               <divisions>960</divisions>
+                               <time>
+                               <beats>4</beats>
+                               <beat-type>4</beat-type>
+                               </time>
+                               <clef>
+                               <sign>G</sign>
+                               <line>2</line>
+                               </clef>
+                       </attributes>
+                       <note>
+                               <rest/>
+                               <duration>3840</duration>
+                               <voice>1</voice>
+                               <type>whole</type>
+                       </note>
+               </measure>
+       </part>
+</score-partwise>
diff --git a/input/regression/musicxml/41c-StaffGroups.xml b/input/regression/musicxml/41c-StaffGroups.xml
new file mode 100644 (file)
index 0000000..1a64551
--- /dev/null
@@ -0,0 +1,1619 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">A huge orchestra score with 28 
+          parts and different kinds of nested bracketed groups. Each part/group 
+          is assigned a name and an abbreviation to be shown before the staff. 
+          Also, most of the groups show unbroken barlines, while the barlines 
+          are broken between the groups.</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <part-group number="2" type="start">
+      <group-symbol>bracket</group-symbol>
+      <group-barline>yes</group-barline>
+    </part-group>
+    <score-part id="P1">
+      <part-name>Piccolo</part-name>
+      <part-abbreviation>Picc.</part-abbreviation>
+      <score-instrument id="P1-I1">
+        <instrument-name>Piccolo</instrument-name>
+      </score-instrument>
+    </score-part>
+    <part-group number="1" type="start">
+      <group-symbol>bracket</group-symbol>
+      <group-barline>no</group-barline>
+    </part-group>
+    <score-part id="P2">
+      <part-name>Flute 1</part-name>
+      <part-abbreviation>Fl. 1</part-abbreviation>
+      <score-instrument id="P2-I2">
+        <instrument-name>Flute 1</instrument-name>
+      </score-instrument>
+    </score-part>
+    <score-part id="P3">
+      <part-name>Flute 2</part-name>
+      <part-abbreviation>Fl. 2</part-abbreviation>
+      <score-instrument id="P3-I3">
+        <instrument-name>Flute 2</instrument-name>
+      </score-instrument>
+    </score-part>
+    <part-group number="1" type="stop"/>
+    <part-group number="3" type="start">
+      <group-name>Oboe through Clarinet</group-name>
+      <group-abbreviation>O to Cl</group-abbreviation>
+      <group-symbol>bracket</group-symbol>
+      <group-barline>yes</group-barline>
+    </part-group>
+    <part-group number="4" type="start">
+      <group-symbol>line</group-symbol>
+      <group-barline>yes</group-barline>
+    </part-group>
+    <score-part id="P4">
+      <part-name>Oboe</part-name>
+      <part-abbreviation>Ob.</part-abbreviation>
+      <score-instrument id="P4-I4">
+        <instrument-name>Oboe</instrument-name>
+      </score-instrument>
+    </score-part>
+    <score-part id="P5">
+      <part-name>English Horn</part-name>
+      <part-abbreviation>E. Hn.</part-abbreviation>
+      <score-instrument id="P5-I5">
+        <instrument-name>English Horn</instrument-name>
+      </score-instrument>
+    </score-part>
+    <part-group number="4" type="stop"/>
+    <score-part id="P6">
+      <part-name>Clarinet in Eb</part-name>
+      <part-abbreviation>Eb Cl.</part-abbreviation>
+      <score-instrument id="P6-I6">
+        <instrument-name>Clarinet in Eb</instrument-name>
+      </score-instrument>
+    </score-part>
+    <part-group number="3" type="stop"/>
+    <part-group number="1" type="start">
+      <group-symbol>bracket</group-symbol>
+      <group-barline>no</group-barline>
+    </part-group>
+    <score-part id="P7">
+      <part-name>Clarinet in Bb 1</part-name>
+      <part-abbreviation>Bb Cl. 1</part-abbreviation>
+      <score-instrument id="P7-I7">
+        <instrument-name>Clarinet in Bb 1</instrument-name>
+      </score-instrument>
+    </score-part>
+    <score-part id="P8">
+      <part-name>Clarinet in Bb 2</part-name>
+      <part-abbreviation>Bb Cl. 2</part-abbreviation>
+      <score-instrument id="P8-I8">
+        <instrument-name>Clarinet in Bb 2</instrument-name>
+      </score-instrument>
+    </score-part>
+    <part-group number="1" type="stop"/>
+    <score-part id="P9">
+      <part-name>Bass Clarinet</part-name>
+      <part-abbreviation>B. Cl.</part-abbreviation>
+      <score-instrument id="P9-I9">
+        <instrument-name>Bass Clarinet</instrument-name>
+      </score-instrument>
+    </score-part>
+    <part-group number="1" type="start">
+      <group-symbol>bracket</group-symbol>
+      <group-barline>no</group-barline>
+    </part-group>
+    <score-part id="P10">
+      <part-name>Bassoon 1</part-name>
+      <part-abbreviation>Bsn. 1</part-abbreviation>
+      <score-instrument id="P10-I10">
+        <instrument-name>Bassoon 1</instrument-name>
+      </score-instrument>
+    </score-part>
+    <score-part id="P11">
+      <part-name>Bassoon 2</part-name>
+      <part-abbreviation>Bsn. 2</part-abbreviation>
+      <score-instrument id="P11-I11">
+        <instrument-name>Bassoon 2</instrument-name>
+      </score-instrument>
+    </score-part>
+    <part-group number="1" type="stop"/>
+    <score-part id="P12">
+      <part-name>Contrabassoon</part-name>
+      <part-abbreviation>C. Bn.</part-abbreviation>
+      <score-instrument id="P12-I12">
+        <instrument-name>Contrabassoon</instrument-name>
+      </score-instrument>
+    </score-part>
+    <part-group number="2" type="stop"/>
+    <part-group number="1" type="start">
+      <group-symbol>bracket</group-symbol>
+      <group-barline>no</group-barline>
+    </part-group>
+    <part-group number="2" type="start">
+      <group-symbol>bracket</group-symbol>
+      <group-barline>yes</group-barline>
+    </part-group>
+    <score-part id="P13">
+      <part-name>Horn in F 1</part-name>
+      <part-abbreviation>Hn. 1</part-abbreviation>
+      <score-instrument id="P13-I13">
+        <instrument-name>Horn in F 1</instrument-name>
+      </score-instrument>
+    </score-part>
+    <score-part id="P14">
+      <part-name>Horn in F 2</part-name>
+      <part-abbreviation>Hn. 2</part-abbreviation>
+      <score-instrument id="P14-I14">
+        <instrument-name>Horn in F 2</instrument-name>
+      </score-instrument>
+    </score-part>
+    <part-group number="1" type="stop"/>
+    <part-group number="1" type="start">
+      <group-symbol>bracket</group-symbol>
+      <group-barline>no</group-barline>
+    </part-group>
+    <score-part id="P15">
+      <part-name>Trumpet in C 1</part-name>
+      <part-abbreviation>C Tpt. 1</part-abbreviation>
+      <score-instrument id="P15-I15">
+        <instrument-name>Trumpet in C 1</instrument-name>
+      </score-instrument>
+    </score-part>
+    <score-part id="P16">
+      <part-name>Trumpet in C 2</part-name>
+      <part-abbreviation>C Tpt. 2</part-abbreviation>
+      <score-instrument id="P16-I16">
+        <instrument-name>Trumpet in C 2</instrument-name>
+      </score-instrument>
+    </score-part>
+    <part-group number="1" type="stop"/>
+    <part-group number="1" type="start">
+      <group-symbol>bracket</group-symbol>
+      <group-barline>no</group-barline>
+    </part-group>
+    <score-part id="P17">
+      <part-name>Trombone 1</part-name>
+      <part-abbreviation>Tbn. 1</part-abbreviation>
+      <score-instrument id="P17-I17">
+        <instrument-name>Trombone 1</instrument-name>
+      </score-instrument>
+    </score-part>
+    <score-part id="P18">
+      <part-name>Trombone 2</part-name>
+      <part-abbreviation>Tbn. 2</part-abbreviation>
+      <score-instrument id="P18-I18">
+        <instrument-name>Trombone 2</instrument-name>
+      </score-instrument>
+    </score-part>
+    <part-group number="1" type="stop"/>
+    <score-part id="P19">
+      <part-name>Tuba</part-name>
+      <part-abbreviation>Tuba</part-abbreviation>
+      <score-instrument id="P19-I19">
+        <instrument-name>Tuba</instrument-name>
+      </score-instrument>
+    </score-part>
+    <part-group number="2" type="stop"/>
+    <score-part id="P20">
+      <part-name>Timpani</part-name>
+      <part-abbreviation>Timp.</part-abbreviation>
+      <score-instrument id="P20-I20">
+        <instrument-name>Timpani</instrument-name>
+      </score-instrument>
+    </score-part>
+    <score-part id="P21">
+      <part-name>Percussion</part-name>
+      <part-abbreviation>Perc.</part-abbreviation>
+      <score-instrument id="P21-M76">
+        <instrument-name>MIDI77</instrument-name>
+      </score-instrument>
+    </score-part>
+    <score-part id="P22">
+      <part-name>Harp</part-name>
+      <part-abbreviation>Hp.</part-abbreviation>
+      <score-instrument id="P22-I22">
+        <instrument-name>Harp</instrument-name>
+      </score-instrument>
+    </score-part>
+    <score-part id="P23">
+      <part-name>Piano</part-name>
+      <part-abbreviation>Pno.</part-abbreviation>
+      <score-instrument id="P23-I23">
+        <instrument-name>Piano</instrument-name>
+      </score-instrument>
+    </score-part>
+    <part-group number="1" type="start">
+      <group-symbol>bracket</group-symbol>
+      <group-barline>yes</group-barline>
+    </part-group>
+    <score-part id="P24">
+      <part-name>Violin I</part-name>
+      <part-abbreviation>Vln. I</part-abbreviation>
+      <score-instrument id="P24-I24">
+        <instrument-name>Violin I</instrument-name>
+      </score-instrument>
+    </score-part>
+    <score-part id="P25">
+      <part-name>Violin II</part-name>
+      <part-abbreviation>Vln. II</part-abbreviation>
+      <score-instrument id="P25-I25">
+        <instrument-name>Violin II</instrument-name>
+      </score-instrument>
+    </score-part>
+    <score-part id="P26">
+      <part-name>Viola</part-name>
+      <part-abbreviation>Vla.</part-abbreviation>
+      <score-instrument id="P26-I26">
+        <instrument-name>Viola</instrument-name>
+      </score-instrument>
+    </score-part>
+    <score-part id="P27">
+      <part-name>Cello</part-name>
+      <part-abbreviation>Vc.</part-abbreviation>
+      <score-instrument id="P27-I27">
+        <instrument-name>Cello</instrument-name>
+      </score-instrument>
+    </score-part>
+    <score-part id="P28">
+      <part-name>Contrabass</part-name>
+      <part-abbreviation>Cb.</part-abbreviation>
+      <score-instrument id="P28-I28">
+        <instrument-name>Contrabass</instrument-name>
+      </score-instrument>
+    </score-part>
+    <part-group number="1" type="stop"/>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+        <transpose>
+          <diatonic>0</diatonic>
+          <chromatic>0</chromatic>
+          <octave-change>1</octave-change>
+        </transpose>
+      </attributes>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <rest/>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <rest/>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+  <part id="P2">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>F</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <rest/>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <rest/>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+  <part id="P3">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <rest/>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <rest/>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+  <part id="P4">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>E</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <rest/>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <rest/>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+  <part id="P5">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>1</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+        <transpose>
+          <diatonic>-4</diatonic>
+          <chromatic>-7</chromatic>
+        </transpose>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <rest/>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <rest/>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+  <part id="P6">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>3</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+        <transpose>
+          <diatonic>2</diatonic>
+          <chromatic>3</chromatic>
+        </transpose>
+      </attributes>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <rest/>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <rest/>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+  <part id="P7">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>2</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+        <transpose>
+          <diatonic>-1</diatonic>
+          <chromatic>-2</chromatic>
+        </transpose>
+      </attributes>
+      <note>
+        <pitch>
+          <step>F</step>
+          <alter>1</alter>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <rest/>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <rest/>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+  <part id="P8">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>2</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+        <transpose>
+          <diatonic>-1</diatonic>
+          <chromatic>-2</chromatic>
+        </transpose>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <alter>1</alter>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <rest/>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <rest/>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+  <part id="P9">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>2</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+        <transpose>
+          <diatonic>-1</diatonic>
+          <chromatic>-2</chromatic>
+          <octave-change>-1</octave-change>
+        </transpose>
+      </attributes>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <rest/>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <rest/>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+  <part id="P10">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>F</sign>
+          <line>4</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>D</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <rest/>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <rest/>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+  <part id="P11">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>F</sign>
+          <line>4</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>E</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <rest/>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <rest/>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+  <part id="P12">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>F</sign>
+          <line>4</line>
+        </clef>
+        <transpose>
+          <diatonic>0</diatonic>
+          <chromatic>0</chromatic>
+          <octave-change>-1</octave-change>
+        </transpose>
+      </attributes>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>2</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <rest/>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <rest/>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+  <part id="P13">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>1</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+        <transpose>
+          <diatonic>-4</diatonic>
+          <chromatic>-7</chromatic>
+        </transpose>
+      </attributes>
+      <note>
+        <pitch>
+          <step>E</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <rest/>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <rest/>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+  <part id="P14">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>1</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+        <transpose>
+          <diatonic>-4</diatonic>
+          <chromatic>-7</chromatic>
+        </transpose>
+      </attributes>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <rest/>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <rest/>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+  <part id="P15">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>F</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <rest/>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <rest/>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+  <part id="P16">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <rest/>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <rest/>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+  <part id="P17">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>F</sign>
+          <line>4</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>2</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <rest/>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <rest/>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+  <part id="P18">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>F</sign>
+          <line>4</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>E</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <rest/>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <rest/>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+  <part id="P19">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>F</sign>
+          <line>4</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>E</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <rest/>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <rest/>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+  <part id="P20">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>F</sign>
+          <line>4</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>F</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <rest/>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <rest/>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+  <part id="P21">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <instruments>2</instruments>
+        <clef>
+          <sign>percussion</sign>
+        </clef>
+      </attributes>
+      <note>
+        <unpitched>
+          <display-step>E</display-step>
+          <display-octave>5</display-octave>
+        </unpitched>
+        <duration>1</duration>
+        <instrument id="P21-M76"/>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <rest/>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <rest/>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+  <part id="P22">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <staves>2</staves>
+        <clef number="1">
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+        <clef number="2">
+          <sign>F</sign>
+          <line>4</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>D</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <staff>1</staff>
+      </note>
+      <note>
+        <rest/>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <staff>1</staff>
+      </note>
+      <note>
+        <rest/>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+        <staff>1</staff>
+      </note>
+      <backup>
+        <duration>4</duration>
+      </backup>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>2</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>2</voice>
+        <type>quarter</type>
+        <staff>2</staff>
+      </note>
+      <note>
+        <rest/>
+        <duration>1</duration>
+        <voice>2</voice>
+        <type>quarter</type>
+        <staff>2</staff>
+      </note>
+      <note>
+        <rest/>
+        <duration>2</duration>
+        <voice>2</voice>
+        <type>half</type>
+        <staff>2</staff>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+  <part id="P23">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <staves>2</staves>
+        <clef number="1">
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+        <clef number="2">
+          <sign>F</sign>
+          <line>4</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <staff>1</staff>
+      </note>
+      <note>
+        <rest/>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <staff>1</staff>
+      </note>
+      <note>
+        <rest/>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+        <staff>1</staff>
+      </note>
+      <backup>
+        <duration>4</duration>
+      </backup>
+      <note>
+        <pitch>
+          <step>E</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>2</voice>
+        <type>quarter</type>
+        <staff>2</staff>
+      </note>
+      <note>
+        <rest/>
+        <duration>1</duration>
+        <voice>2</voice>
+        <type>quarter</type>
+        <staff>2</staff>
+      </note>
+      <note>
+        <rest/>
+        <duration>2</duration>
+        <voice>2</voice>
+        <type>half</type>
+        <staff>2</staff>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+  <part id="P24">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>E</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <rest/>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <rest/>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+  <part id="P25">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>F</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <rest/>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <rest/>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+  <part id="P26">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>C</sign>
+          <line>3</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <rest/>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <rest/>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+  <part id="P27">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>F</sign>
+          <line>4</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <rest/>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <rest/>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+  <part id="P28">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>F</sign>
+          <line>4</line>
+        </clef>
+        <transpose>
+          <diatonic>0</diatonic>
+          <chromatic>0</chromatic>
+          <octave-change>-1</octave-change>
+        </transpose>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <rest/>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <rest/>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/41d-StaffGroups-Nested.xml b/input/regression/musicxml/41d-StaffGroups-Nested.xml
new file mode 100644 (file)
index 0000000..08f327f
--- /dev/null
@@ -0,0 +1,300 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">Two properly nested part groups: 
+          One group  (with a square bracket) goes from staff 2 to 4) and another 
+          group (with a curly bracket) goes from staff 3 to 4.</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name>MusicXML Part</part-name>
+    </score-part>
+    <part-group number="1" type="start">
+      <group-symbol>line</group-symbol>
+      <group-barline>yes</group-barline>
+    </part-group>
+    <score-part id="P2">
+      <part-name>MusicXML Part</part-name>
+    </score-part>
+    <part-group number="2" type="start">
+      <group-symbol>bracket</group-symbol>
+      <group-barline>yes</group-barline>
+    </part-group>
+    <score-part id="P3">
+      <part-name>MusicXML Part</part-name>
+    </score-part>
+    <score-part id="P4">
+      <part-name>MusicXML Part</part-name>
+    </score-part>
+    <part-group number="2" type="stop"/>
+    <part-group number="1" type="stop"/>
+    <score-part id="P5">
+      <part-name>MusicXML Part</part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="2">
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="3">
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+  <part id="P2">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="2">
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="3">
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+  <part id="P3">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="2">
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="3">
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+  <part id="P4">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>F</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="2">
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="3">
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+  <part id="P5">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>D</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="2">
+      <note>
+        <pitch>
+          <step>F</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="3">
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/41e-StaffGroups-InstrumentNames-Linebroken.xml b/input/regression/musicxml/41e-StaffGroups-InstrumentNames-Linebroken.xml
new file mode 100644 (file)
index 0000000..9326768
--- /dev/null
@@ -0,0 +1,315 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">Part names and abbreviations can 
+          contain line breaks.</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name>Long&#xd;
+Staff&#xd;
+Name</part-name>
+      <part-abbreviation>St.&#xd;
+Nm.</part-abbreviation>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="2">
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="3">
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="4">
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="5">
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="6">
+      <print new-system="yes"/>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="7">
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="8">
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="9">
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="10">
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="11">
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="12">
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="13">
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="14">
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="15">
+      <print new-system="yes"/>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="16">
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="17">
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="18">
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="19">
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="20">
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="21">
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="22">
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="23">
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/41f-StaffGroups-Overlapping.xml b/input/regression/musicxml/41f-StaffGroups-Overlapping.xml
new file mode 100644 (file)
index 0000000..9b6d2af
--- /dev/null
@@ -0,0 +1,186 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">MusicXML allows for overlapping 
+          part-groups, while many applications do not allow overlapping groups, 
+          but require them to be properly nested. In this case, one group 
+          (with a square bracket) goes from staff 2 to 4) and another group 
+          (with a curly bracket) goes from staff 3 to 5.</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <part-group number="1" type="start">
+      <group-name>Group 1</group-name>
+      <group-abbreviation>Gr1</group-abbreviation>
+      <group-symbol>bracket</group-symbol>
+      <group-barline>yes</group-barline>
+    </part-group>
+    <score-part id="P1">
+      <part-name>MusicXML Part</part-name>
+    </score-part>
+    <score-part id="P2">
+      <part-name>MusicXML Part</part-name>
+    </score-part>
+    <part-group number="2" type="start">
+      <group-name>Group 2</group-name>
+      <group-abbreviation>Grp2</group-abbreviation>
+      <group-symbol>bracket</group-symbol>
+      <group-barline>yes</group-barline>
+    </part-group>
+    <score-part id="P3">
+      <part-name>MusicXML Part</part-name>
+    </score-part>
+    <score-part id="P4">
+      <part-name>MusicXML Part</part-name>
+    </score-part>
+    <part-group number="1" type="stop"/>
+    <score-part id="P5">
+      <part-name>MusicXML Part</part-name>
+    </score-part>
+    <part-group number="2" type="stop"/>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+  <part id="P2">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+  <part id="P3">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+  <part id="P4">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+  <part id="P5">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/42-MultiVoice-Parts.itexi b/input/regression/musicxml/42-MultiVoice-Parts.itexi
new file mode 100644 (file)
index 0000000..c8d15fd
--- /dev/null
@@ -0,0 +1 @@
+@unnumberedsec 42 ... Multiple voices per staff
diff --git a/input/regression/musicxml/42a-MultiVoice-TwoVoicesOnStaff-Lyrics.xml b/input/regression/musicxml/42a-MultiVoice-TwoVoicesOnStaff-Lyrics.xml
new file mode 100644 (file)
index 0000000..27f4b2a
--- /dev/null
@@ -0,0 +1,276 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">Two voices share one staff. Each 
+        voice is assigned some lyrics.</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name>MusicXML Part</part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>8</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>E</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>16</duration>
+        <voice>1</voice>
+        <type>half</type>
+        <stem>up</stem>
+        <notations>
+          <articulations>
+            <accent placement="below"/>
+          </articulations>
+          <fermata type="upright"/>
+        </notations>
+        <lyric number="1">
+          <syllabic>single</syllabic>
+          <text>This</text>
+        </lyric>
+      </note>
+      <direction placement="below">
+        <direction-type>
+          <dynamics>
+            <mf/>
+          </dynamics>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch>
+          <step>D</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>8</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>up</stem>
+        <lyric number="1">
+          <syllabic>single</syllabic>
+          <text>is</text>
+        </lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>8</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>up</stem>
+        <lyric number="1">
+          <syllabic>single</syllabic>
+          <text>the</text>
+        </lyric>
+      </note>
+      <backup>
+        <duration>32</duration>
+      </backup>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>16</duration>
+        <voice>2</voice>
+        <type>half</type>
+        <stem>down</stem>
+        <notations>
+          <articulations>
+            <accent placement="below"/>
+          </articulations>
+          <fermata type="upright"/>
+        </notations>
+        <lyric number="1">
+          <syllabic>single</syllabic>
+          <text>This</text>
+        </lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>8</duration>
+        <voice>2</voice>
+        <type>quarter</type>
+        <stem>down</stem>
+        <lyric number="1">
+          <syllabic>single</syllabic>
+          <text>is</text>
+        </lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>8</duration>
+        <voice>2</voice>
+        <type>quarter</type>
+        <stem>down</stem>
+        <lyric number="1">
+          <syllabic>single</syllabic>
+          <text>the</text>
+        </lyric>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="2">
+      <note>
+        <rest>
+          <display-step>A</display-step>
+          <display-octave>5</display-octave>
+        </rest>
+        <duration>8</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>D</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>8</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>up</stem>
+        <lyric number="1">
+          <syllabic>single</syllabic>
+          <text>lyrics</text>
+        </lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>12</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <dot/>
+        <stem>up</stem>
+        <notations>
+          <slur number="1" type="start"/>
+        </notations>
+        <lyric number="1">
+          <syllabic>single</syllabic>
+          <text>of</text>
+        </lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <stem>up</stem>
+        <notations>
+          <slur number="1" type="stop"/>
+        </notations>
+        <lyric number="1">
+          <syllabic>single</syllabic>
+          <text>Voice1</text>
+        </lyric>
+      </note>
+      <backup>
+        <duration>32</duration>
+      </backup>
+      <note>
+        <rest>
+          <display-step>C</display-step>
+          <display-octave>4</display-octave>
+        </rest>
+        <duration>8</duration>
+        <voice>2</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>8</duration>
+        <voice>2</voice>
+        <type>quarter</type>
+        <stem>down</stem>
+        <lyric number="1">
+          <syllabic>single</syllabic>
+          <text>lyrics</text>
+        </lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>12</duration>
+        <voice>2</voice>
+        <type>quarter</type>
+        <dot/>
+        <stem>down</stem>
+        <notations>
+          <slur number="1" type="start"/>
+        </notations>
+        <lyric number="1">
+          <syllabic>single</syllabic>
+          <text>of</text>
+        </lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>2</voice>
+        <type>eighth</type>
+        <stem>down</stem>
+        <notations>
+          <slur number="1" type="stop"/>
+        </notations>
+        <lyric number="1">
+          <syllabic>single</syllabic>
+          <text>Voice1</text>
+        </lyric>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="3">
+      <note>
+        <rest/>
+        <duration>32</duration>
+        <voice>1</voice>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/42b-MultiVoice-MidMeasureClefChange.xml b/input/regression/musicxml/42b-MultiVoice-MidMeasureClefChange.xml
new file mode 100644 (file)
index 0000000..b499bba
--- /dev/null
@@ -0,0 +1,397 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">A multi-voice / multi-staff part 
+          with a clef change in the middle of a measure and a &lt;backward&gt; 
+          for voice 2 jumping back beyond that clef change.</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name>MusicXML Part</part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="84">
+      <attributes>
+        <divisions>336</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time>
+          <beats>6</beats>
+          <beat-type>8</beat-type>
+        </time>
+        <staves>2</staves>
+        <clef number="1">
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+        <clef number="2">
+          <sign>F</sign>
+          <line>4</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>F</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>168</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <staff>1</staff>
+        <beam number="1">begin</beam>
+        <notations>
+          <articulations>
+            <staccato placement="below"/>
+          </articulations>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>D</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>168</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <staff>1</staff>
+        <beam number="1">continue</beam>
+        <notations>
+          <articulations>
+            <staccato placement="below"/>
+          </articulations>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>168</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <staff>1</staff>
+        <beam number="1">end</beam>
+        <notations>
+          <articulations>
+            <staccato placement="below"/>
+          </articulations>
+        </notations>
+      </note>
+      <attributes>
+        <clef number="1">
+          <sign>F</sign>
+          <line>4</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>168</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <staff>1</staff>
+        <notations>
+          <slur number="1" placement="above" type="start"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>F</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>336</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <staff>1</staff>
+        <notations>
+          <slur number="1" type="stop"/>
+        </notations>
+      </note>
+      <backup>
+        <duration>1008</duration>
+      </backup>
+      <note>
+        <rest/>
+        <duration>168</duration>
+        <voice>3</voice>
+        <type>eighth</type>
+        <staff>2</staff>
+      </note>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>2</octave>
+        </pitch>
+        <duration>168</duration>
+        <voice>3</voice>
+        <type>eighth</type>
+        <staff>2</staff>
+        <beam number="1">begin</beam>
+        <notations>
+          <articulations>
+            <staccato placement="below"/>
+          </articulations>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>2</octave>
+        </pitch>
+        <duration>168</duration>
+        <voice>3</voice>
+        <type>eighth</type>
+        <staff>2</staff>
+        <beam number="1">end</beam>
+        <notations>
+          <articulations>
+            <staccato placement="below"/>
+          </articulations>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>2</octave>
+        </pitch>
+        <duration>168</duration>
+        <voice>3</voice>
+        <type>eighth</type>
+        <staff>2</staff>
+        <beam number="1">begin</beam>
+        <notations>
+          <slur number="1" placement="below" type="start"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>2</octave>
+        </pitch>
+        <duration>84</duration>
+        <voice>3</voice>
+        <type>16th</type>
+        <staff>2</staff>
+        <beam number="1">continue</beam>
+        <beam number="2">begin</beam>
+      </note>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>2</octave>
+        </pitch>
+        <duration>84</duration>
+        <voice>3</voice>
+        <type>16th</type>
+        <staff>2</staff>
+        <beam number="1">continue</beam>
+        <beam number="2">continue</beam>
+      </note>
+      <note>
+        <pitch>
+          <step>F</step>
+          <alter>1</alter>
+          <octave>2</octave>
+        </pitch>
+        <duration>84</duration>
+        <voice>3</voice>
+        <type>16th</type>
+        <accidental>sharp</accidental>
+        <staff>2</staff>
+        <beam number="1">continue</beam>
+        <beam number="2">continue</beam>
+      </note>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>2</octave>
+        </pitch>
+        <duration>84</duration>
+        <voice>3</voice>
+        <type>16th</type>
+        <staff>2</staff>
+        <beam number="1">end</beam>
+        <beam number="2">end</beam>
+        <notations>
+          <slur number="1" type="stop"/>
+        </notations>
+      </note>
+      <barline location="right">
+        <bar-style>light-light</bar-style>
+      </barline>
+    </measure>
+    <!--=======================================================-->
+    <measure number="85">
+      <attributes>
+        <clef number="1">
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>E</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>168</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <staff>1</staff>
+        <beam number="1">begin</beam>
+        <notations>
+          <articulations>
+            <staccato placement="below"/>
+          </articulations>
+          <dynamics placement="below">
+            <fp/>
+          </dynamics>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>168</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <staff>1</staff>
+        <beam number="1">continue</beam>
+        <notations>
+          <articulations>
+            <staccato placement="below"/>
+          </articulations>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>168</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <staff>1</staff>
+        <beam number="1">end</beam>
+        <notations>
+          <articulations>
+            <staccato placement="below"/>
+          </articulations>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>168</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <staff>1</staff>
+        <notations>
+          <slur number="1" placement="above" type="start"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>F</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>336</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <staff>1</staff>
+        <notations>
+          <slur number="1" type="stop"/>
+        </notations>
+      </note>
+      <backup>
+        <duration>1008</duration>
+      </backup>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>336</duration>
+        <voice>3</voice>
+        <type>quarter</type>
+        <staff>2</staff>
+      </note>
+      <note>
+        <chord/>
+        <pitch>
+          <step>E</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>336</duration>
+        <voice>3</voice>
+        <type>quarter</type>
+        <staff>2</staff>
+      </note>
+      <note>
+        <chord/>
+        <pitch>
+          <step>G</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>336</duration>
+        <voice>3</voice>
+        <type>quarter</type>
+        <staff>2</staff>
+      </note>
+      <note>
+        <chord/>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>336</duration>
+        <voice>3</voice>
+        <type>quarter</type>
+        <staff>2</staff>
+      </note>
+      <note>
+        <rest/>
+        <duration>168</duration>
+        <voice>3</voice>
+        <type>eighth</type>
+        <staff>2</staff>
+      </note>
+      <note>
+        <rest/>
+        <duration>336</duration>
+        <voice>3</voice>
+        <type>quarter</type>
+        <staff>2</staff>
+      </note>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>168</duration>
+        <voice>3</voice>
+        <type>eighth</type>
+        <staff>2</staff>
+        <notations>
+          <articulations>
+            <staccato placement="below"/>
+          </articulations>
+        </notations>
+      </note>
+    </measure>
+    <!--=======================================================-->
+  </part>
+  <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/43-MultiStaff-Parts.itexi b/input/regression/musicxml/43-MultiStaff-Parts.itexi
new file mode 100644 (file)
index 0000000..c65b084
--- /dev/null
@@ -0,0 +1 @@
+@unnumberedsec 43 ... One part on multiple staves
diff --git a/input/regression/musicxml/43a-PianoStaff.xml b/input/regression/musicxml/43a-PianoStaff.xml
new file mode 100644 (file)
index 0000000..d68add6
--- /dev/null
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 0.6b Partwise//EN"
+ "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+       <identification>
+               <miscellaneous>
+                       <miscellaneous-field name="description">A simple piano staff</miscellaneous-field>
+               </miscellaneous>
+       </identification>
+       <part-list>
+               <score-part id="P1">
+                       <part-name>MusicXML Part</part-name>
+               </score-part>
+       </part-list>
+       <part id="P1">
+               <measure number="1">
+                       <attributes>
+                               <divisions>96</divisions>
+                               <key><fifths>0</fifths></key>
+                               <time><beats>4</beats><beat-type>4</beat-type></time>
+                               <staves>2</staves>
+                               <clef number="1"><sign>G</sign><line>2</line></clef>
+                               <clef number="2"><sign>F</sign><line>4</line></clef>
+                       </attributes>
+                       <note>
+                               <pitch><step>F</step><octave>4</octave></pitch>
+                               <duration>384</duration>
+                               <voice>1</voice>
+                               <type>whole</type>
+                               <staff>1</staff>
+                       </note>
+                       <backup><duration>384</duration></backup>
+                       <note>
+                               <pitch><step>B</step><octave>2</octave></pitch>
+                               <duration>384</duration>
+                               <voice>2</voice>
+                               <type>whole</type>
+                               <staff>2</staff>
+                       </note>
+               </measure>
+       </part>
+</score-partwise>
diff --git a/input/regression/musicxml/43b-MultiStaff-DifferentKeys.xml b/input/regression/musicxml/43b-MultiStaff-DifferentKeys.xml
new file mode 100644 (file)
index 0000000..03a84a9
--- /dev/null
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 0.6b Partwise//EN"
+ "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+       <identification>
+               <miscellaneous>
+                       <miscellaneous-field name="description">A piano staff 
+                            with different keys and clefs for each of its 
+                            staves. The keys and clefs for both staves are given 
+                            at the very beginning of the measure.</miscellaneous-field>
+               </miscellaneous>
+       </identification>
+       <part-list>
+               <score-part id="P1">
+                       <part-name>MusicXML Part</part-name>
+               </score-part>
+       </part-list>
+       <part id="P1">
+               <measure number="1">
+                       <attributes>
+                               <divisions>96</divisions>
+                               <key number="1"><fifths>0</fifths></key>
+                               <key number="2"><fifths>2</fifths></key>
+                               <time><beats>4</beats><beat-type>4</beat-type></time>
+                               <staves>2</staves>
+                               <clef number="1"><sign>G</sign><line>2</line></clef>
+                               <clef number="2"><sign>F</sign><line>4</line></clef>
+                       </attributes>
+                       <note>
+                               <pitch><step>F</step><octave>4</octave></pitch>
+                               <duration>384</duration>
+                               <voice>1</voice>
+                               <type>whole</type>
+                               <staff>1</staff>
+                       </note>
+                       <backup><duration>384</duration></backup>
+                       <note>
+                               <pitch><step>B</step><octave>2</octave></pitch>
+                               <duration>384</duration>
+                               <voice>2</voice>
+                               <type>whole</type>
+                               <staff>2</staff>
+                       </note>
+               </measure>
+       </part>
+</score-partwise>
diff --git a/input/regression/musicxml/43c-MultiStaff-DifferentKeysAfterBackup.xml b/input/regression/musicxml/43c-MultiStaff-DifferentKeysAfterBackup.xml
new file mode 100644 (file)
index 0000000..7a20cad
--- /dev/null
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 0.6b Partwise//EN"
+ "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+       <identification>
+               <miscellaneous>
+                       <miscellaneous-field name="description">A piano staff 
+                            with different keys and clefs for each of its 
+                            staves. The key and clef for the second staff is 
+                            given only after a backward, just before the first
+                            note of the second staff is given, but after the 
+                            whole measure for staff 1 has been given.</miscellaneous-field>
+               </miscellaneous>
+       </identification>
+       <part-list>
+               <score-part id="P1">
+                       <part-name>MusicXML Part</part-name>
+               </score-part>
+       </part-list>
+       <part id="P1">
+               <measure number="1">
+                       <attributes>
+                               <divisions>96</divisions>
+                               <key number="1"><fifths>0</fifths></key>
+                               <time><beats>4</beats><beat-type>4</beat-type></time>
+                               <staves>2</staves>
+                               <clef number="1"><sign>G</sign><line>2</line></clef>
+                       </attributes>
+                       <note>
+                               <pitch><step>F</step><octave>4</octave></pitch>
+                               <duration>384</duration>
+                               <voice>1</voice>
+                               <type>whole</type>
+                               <staff>1</staff>
+                       </note>
+                       <backup><duration>384</duration></backup>
+                       <attributes>
+                               <key number="2"><fifths>2</fifths></key>
+                               <clef number="2"><sign>F</sign><line>4</line></clef>
+                       </attributes>
+                       <note>
+                               <pitch><step>B</step><octave>2</octave></pitch>
+                               <duration>384</duration>
+                               <voice>2</voice>
+                               <type>whole</type>
+                               <staff>2</staff>
+                       </note>
+               </measure>
+       </part>
+</score-partwise>
diff --git a/input/regression/musicxml/43d-MultiStaff-StaffChange.xml b/input/regression/musicxml/43d-MultiStaff-StaffChange.xml
new file mode 100644 (file)
index 0000000..e0071b9
--- /dev/null
@@ -0,0 +1,319 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">Staff changes in a piano staff. 
+          The voice from the second staff has some notes/chords on the first 
+          staff. The final two chords have some notes on the first, some on 
+          the second staff.</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name>MusicXML Part</part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>2</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <staves>2</staves>
+        <clef number="1">
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+        <clef number="2">
+          <sign>F</sign>
+          <line>4</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>2</voice>
+        <type>eighth</type>
+        <staff>2</staff>
+        <beam number="1">begin</beam>
+      </note>
+      <note>
+        <pitch>
+          <step>E</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>2</voice>
+        <type>eighth</type>
+        <staff>1</staff>
+        <beam number="1">continue</beam>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>2</voice>
+        <type>eighth</type>
+        <staff>2</staff>
+        <beam number="1">continue</beam>
+      </note>
+      <note>
+        <pitch>
+          <step>E</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>2</voice>
+        <type>eighth</type>
+        <staff>1</staff>
+        <beam number="1">end</beam>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>2</voice>
+        <type>eighth</type>
+        <staff>1</staff>
+        <beam number="1">begin</beam>
+      </note>
+      <note>
+        <pitch>
+          <step>E</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>2</voice>
+        <type>eighth</type>
+        <staff>1</staff>
+        <beam number="1">continue</beam>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>2</voice>
+        <type>eighth</type>
+        <staff>2</staff>
+        <beam number="1">continue</beam>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>2</voice>
+        <type>eighth</type>
+        <staff>2</staff>
+        <beam number="1">end</beam>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="2">
+      <note>
+        <rest/>
+        <duration>8</duration>
+        <voice>1</voice>
+        <staff>1</staff>
+      </note>
+      <backup>
+        <duration>8</duration>
+      </backup>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>2</voice>
+        <type>eighth</type>
+        <staff>2</staff>
+        <beam number="1">begin</beam>
+      </note>
+      <note>
+        <chord/>
+        <pitch>
+          <step>E</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>2</voice>
+        <type>eighth</type>
+        <staff>2</staff>
+      </note>
+      <note>
+        <chord/>
+        <pitch>
+          <step>G</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>2</voice>
+        <type>eighth</type>
+        <staff>2</staff>
+      </note>
+      <note>
+        <chord/>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>2</voice>
+        <type>eighth</type>
+        <staff>2</staff>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>2</voice>
+        <type>eighth</type>
+        <staff>1</staff>
+        <beam number="1">continue</beam>
+      </note>
+      <note>
+        <chord/>
+        <pitch>
+          <step>E</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>2</voice>
+        <type>eighth</type>
+        <staff>1</staff>
+      </note>
+      <note>
+        <chord/>
+        <pitch>
+          <step>G</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>2</voice>
+        <type>eighth</type>
+        <staff>1</staff>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>2</voice>
+        <type>eighth</type>
+        <staff>2</staff>
+        <beam number="1">continue</beam>
+      </note>
+      <note>
+        <chord/>
+        <pitch>
+          <step>E</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>2</voice>
+        <type>eighth</type>
+        <staff>2</staff>
+      </note>
+      <note>
+        <chord/>
+        <pitch>
+          <step>G</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>2</voice>
+        <type>eighth</type>
+        <staff>2</staff>
+      </note>
+      <note>
+        <chord/>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>2</voice>
+        <type>eighth</type>
+        <staff>1</staff>
+      </note>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>2</voice>
+        <type>eighth</type>
+        <staff>2</staff>
+        <beam number="1">end</beam>
+      </note>
+      <note>
+        <chord/>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>2</voice>
+        <type>eighth</type>
+        <staff>1</staff>
+      </note>
+      <note>
+        <chord/>
+        <pitch>
+          <step>E</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>2</voice>
+        <type>eighth</type>
+        <staff>1</staff>
+      </note>
+      <note>
+        <chord/>
+        <pitch>
+          <step>G</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>2</voice>
+        <type>eighth</type>
+        <staff>1</staff>
+      </note>
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>2</voice>
+        <type>half</type>
+        <staff>2</staff>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/43e-Multistaff-ClefDynamics.xml b/input/regression/musicxml/43e-Multistaff-ClefDynamics.xml
new file mode 100644 (file)
index 0000000..9807fb4
--- /dev/null
@@ -0,0 +1,368 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">A piano staff with dynamics and 
+          clef changes, where each element (ffff, wedge and clef changes) 
+          applies only to one voice or one staff, respectively.</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name>MusicXML Part</part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>8</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <staves>2</staves>
+        <clef number="1">
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+        <clef number="2">
+          <sign>F</sign>
+          <line>4</line>
+        </clef>
+      </attributes>
+      <direction placement="below">
+        <direction-type>
+          <dynamics>
+            <ffff/>
+          </dynamics>
+        </direction-type>
+        <staff>1</staff>
+      </direction>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>8</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <staff>1</staff>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>8</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <staff>1</staff>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>8</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <staff>1</staff>
+      </note>
+      <direction placement="below">
+        <direction-type>
+          <dynamics>
+            <p/>
+          </dynamics>
+        </direction-type>
+        <offset>1</offset>
+        <staff>1</staff>
+      </direction>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>8</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <staff>1</staff>
+      </note>
+      <backup>
+        <duration>32</duration>
+      </backup>
+      <direction placement="below">
+        <direction-type>
+          <wedge spread="0" type="crescendo"/>
+        </direction-type>
+        <staff>2</staff>
+      </direction>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>2</octave>
+        </pitch>
+        <duration>8</duration>
+        <voice>2</voice>
+        <type>quarter</type>
+        <staff>2</staff>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>2</octave>
+        </pitch>
+        <duration>8</duration>
+        <voice>2</voice>
+        <type>quarter</type>
+        <staff>2</staff>
+      </note>
+      <direction>
+        <direction-type>
+          <wedge spread="15" type="stop"/>
+        </direction-type>
+        <staff>2</staff>
+      </direction>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>8</duration>
+        <voice>2</voice>
+        <type>quarter</type>
+        <staff>2</staff>
+      </note>
+      <note>
+        <pitch>
+          <step>D</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>8</duration>
+        <voice>2</voice>
+        <type>quarter</type>
+        <staff>2</staff>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="2">
+      <attributes>
+        <key>
+          <fifths>2</fifths>
+          <mode>major</mode>
+        </key>
+        <clef number="2">
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>8</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <staff>1</staff>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>8</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <staff>1</staff>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <alter>1</alter>
+          <octave>5</octave>
+        </pitch>
+        <duration>8</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <staff>1</staff>
+      </note>
+      <note>
+        <pitch>
+          <step>D</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>8</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <staff>1</staff>
+      </note>
+      <backup>
+        <duration>32</duration>
+      </backup>
+      <note>
+        <pitch>
+          <step>F</step>
+          <alter>1</alter>
+          <octave>4</octave>
+        </pitch>
+        <duration>8</duration>
+        <voice>2</voice>
+        <type>quarter</type>
+        <staff>2</staff>
+      </note>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>8</duration>
+        <voice>2</voice>
+        <type>quarter</type>
+        <staff>2</staff>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>8</duration>
+        <voice>2</voice>
+        <type>quarter</type>
+        <staff>2</staff>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>8</duration>
+        <voice>2</voice>
+        <type>quarter</type>
+        <staff>2</staff>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="3">
+      <attributes>
+        <clef number="1">
+          <sign>C</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>D</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>8</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <staff>1</staff>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <alter>1</alter>
+          <octave>5</octave>
+        </pitch>
+        <duration>8</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <staff>1</staff>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>8</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <staff>1</staff>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>8</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <staff>1</staff>
+      </note>
+      <backup>
+        <duration>32</duration>
+      </backup>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>8</duration>
+        <voice>2</voice>
+        <type>quarter</type>
+        <staff>2</staff>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>8</duration>
+        <voice>2</voice>
+        <type>quarter</type>
+        <staff>2</staff>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <alter>1</alter>
+          <octave>5</octave>
+        </pitch>
+        <duration>8</duration>
+        <voice>2</voice>
+        <type>quarter</type>
+        <staff>2</staff>
+      </note>
+      <note>
+        <pitch>
+          <step>D</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>8</duration>
+        <voice>2</voice>
+        <type>quarter</type>
+        <staff>2</staff>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="4">
+      <note>
+        <rest/>
+        <duration>32</duration>
+        <voice>1</voice>
+        <staff>1</staff>
+      </note>
+      <backup>
+        <duration>32</duration>
+      </backup>
+      <note>
+        <rest/>
+        <duration>32</duration>
+        <voice>2</voice>
+        <staff>2</staff>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/45-Repeats.itexi b/input/regression/musicxml/45-Repeats.itexi
new file mode 100644 (file)
index 0000000..89516fb
--- /dev/null
@@ -0,0 +1 @@
+@unnumberedsec 45 ... Repeats
diff --git a/input/regression/musicxml/45a-SimpleRepeat.xml b/input/regression/musicxml/45a-SimpleRepeat.xml
new file mode 100644 (file)
index 0000000..582621a
--- /dev/null
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">A simple, repeated measure 
+          (repeated 5 times)</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name>MusicXML Part</part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+        <repeat direction="backward" times="5"/>
+      </barline>
+    </measure>
+    <!--=======================================================-->
+    <measure number="2">
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/45b-RepeatWithAlternatives.xml b/input/regression/musicxml/45b-RepeatWithAlternatives.xml
new file mode 100644 (file)
index 0000000..329ac07
--- /dev/null
@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">A simple repeat with two 
+          alternative endings (volta brackets).</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name>MusicXML Part</part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="2">
+      <barline location="left">
+        <ending number="1" type="start"/>
+      </barline>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+        <ending number="1" type="stop"/>
+        <repeat direction="backward"/>
+      </barline>
+    </measure>
+    <!--=======================================================-->
+    <measure number="3">
+      <barline location="left">
+        <ending number="2" type="start"/>
+      </barline>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+      <barline location="right">
+        <ending number="2" type="discontinue"/>
+      </barline>
+    </measure>
+    <!--=======================================================-->
+    <measure number="4">
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/45c-RepeatMultipleTimes.xml b/input/regression/musicxml/45c-RepeatMultipleTimes.xml
new file mode 100644 (file)
index 0000000..3a5df79
--- /dev/null
@@ -0,0 +1,112 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">Repeats can also be nested.</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name>MusicXML Part</part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="2">
+      <barline location="left">
+        <bar-style>heavy-light</bar-style>
+        <repeat direction="forward"/>
+      </barline>
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="3">
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+        <repeat direction="backward" times="5"/>
+      </barline>
+    </measure>
+    <!--=======================================================-->
+    <measure number="4">
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="5">
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="6">
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="7">
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+        <repeat direction="backward" times="3"/>
+      </barline>
+    </measure>
+    <!--=======================================================-->
+    <measure number="8">
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/45d-Repeats-Nested-Alternatives.xml b/input/regression/musicxml/45d-Repeats-Nested-Alternatives.xml
new file mode 100644 (file)
index 0000000..c90afeb
--- /dev/null
@@ -0,0 +1,167 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">Nested repeats, each with 
+          alternative endings.</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name>MusicXML Part</part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="2">
+      <barline location="left">
+        <ending number="1" type="start"/>
+      </barline>
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+        <ending number="1" type="stop"/>
+        <repeat direction="backward"/>
+      </barline>
+    </measure>
+    <!--=======================================================-->
+    <measure number="3">
+      <barline location="left">
+        <ending number="2" type="start"/>
+      </barline>
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="4">
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="5">
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+      <barline location="right">
+        <ending number="2" type="stop"/>
+      </barline>
+    </measure>
+    <!--=======================================================-->
+    <measure number="6">
+      <barline location="left">
+        <ending number="3" type="start"/>
+      </barline>
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+      <barline location="right">
+        <ending number="3" type="discontinue"/>
+      </barline>
+    </measure>
+    <!--=======================================================-->
+    <measure number="7">
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="8">
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="9">
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="10">
+      <barline location="left">
+        <ending number="1" type="start"/>
+      </barline>
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+      <barline location="right">
+        <ending number="1" type="stop"/>
+      </barline>
+    </measure>
+    <!--=======================================================-->
+    <measure number="11">
+      <barline location="left">
+        <ending number="5" type="start"/>
+      </barline>
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+        <ending number="5" type="stop"/>
+        <repeat direction="backward"/>
+      </barline>
+    </measure>
+    <!--=======================================================-->
+    <measure number="12">
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/45e-Repeats-Nested-Alternatives.xml b/input/regression/musicxml/45e-Repeats-Nested-Alternatives.xml
new file mode 100644 (file)
index 0000000..b4d324e
--- /dev/null
@@ -0,0 +1,156 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">Some more nested repeats with 
+          alternatives. The barline between measure 7 and 8 will probably be 
+          messed up! (Should be a repeat on both sides!)</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name>MusicXML Part</part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="2">
+      <barline location="left">
+        <ending number="1" type="start"/>
+      </barline>
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+        <ending number="1" type="stop"/>
+        <repeat direction="backward"/>
+      </barline>
+    </measure>
+    <!--=======================================================-->
+    <measure number="3">
+      <barline location="left">
+        <ending number="2" type="start"/>
+      </barline>
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+      <barline location="right">
+        <ending number="2" type="discontinue"/>
+      </barline>
+    </measure>
+    <!--=======================================================-->
+    <measure number="4">
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="5">
+      <barline location="left">
+        <bar-style>heavy-light</bar-style>
+        <repeat direction="forward"/>
+      </barline>
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+        <repeat direction="backward"/>
+      </barline>
+    </measure>
+    <!--=======================================================-->
+    <measure number="6">
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="7">
+      <barline location="left">
+        <ending number="1" type="start"/>
+      </barline>
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+        <ending number="1" type="stop"/>
+        <repeat direction="backward"/>
+      </barline>
+    </measure>
+    <!--=======================================================-->
+    <measure number="8">
+      <barline location="left">
+        <bar-style>heavy-light</bar-style>
+        <repeat direction="forward"/>
+      </barline>
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="9">
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+        <repeat direction="backward"/>
+      </barline>
+    </measure>
+    <!--=======================================================-->
+    <measure number="10">
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/45f-Repeats-InvalidEndings.xml b/input/regression/musicxml/45f-Repeats-InvalidEndings.xml
new file mode 100644 (file)
index 0000000..a84052a
--- /dev/null
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">Some more nested repeats with 
+          alternatives, where the MusicXML file does not make sense in the 
+          first place. How well are applications able to cope with improper 
+          repeats and alternatives?</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name>MusicXML Part</part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="2">
+      <barline location="left">
+        <ending number="1, 2, 3" type="start"/>
+      </barline>
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+      <barline location="right">
+        <ending number="1, 2, 3" type="stop"/>
+      </barline>
+    </measure>
+    <!--=======================================================-->
+    <measure number="3">
+      <barline location="left">
+        <ending number="2" type="start"/>
+      </barline>
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+      <barline location="right">
+        <ending number="2" type="discontinue"/>
+      </barline>
+    </measure>
+    <!--=======================================================-->
+    <measure number="4">
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+        <ending number="2" type="stop"/>
+        <repeat direction="backward"/>
+      </barline>
+    </measure>
+    <!--=======================================================-->
+    <measure number="5">
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/45g-Repeats-NotEnded.xml b/input/regression/musicxml/45g-Repeats-NotEnded.xml
new file mode 100644 (file)
index 0000000..c29f6cd
--- /dev/null
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">A forward-repeating bar line 
+          without an ending repeat bar.</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name>MusicXML Part</part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="2">
+      <barline location="left">
+        <bar-style>heavy-light</bar-style>
+        <repeat direction="forward"/>
+      </barline>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/46-Measures.itexi b/input/regression/musicxml/46-Measures.itexi
new file mode 100644 (file)
index 0000000..92ebde3
--- /dev/null
@@ -0,0 +1 @@
+@unnumberedsec 46 ... Barlines, Measures
diff --git a/input/regression/musicxml/46a-Barlines.xml b/input/regression/musicxml/46a-Barlines.xml
new file mode 100644 (file)
index 0000000..814a5b4
--- /dev/null
@@ -0,0 +1,173 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">Different types of (non-repeat) 
+          barlines: default (no setting), regular, dotted, dashed, heavy,
+          light-light, light-heavy, heavy-light, heavy-heavy, tick, short, 
+          none.</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name>MusicXML Part</part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="2">
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+      <barline location="right">
+        <bar-style>regular</bar-style>
+      </barline>
+    </measure>
+    <!--=======================================================-->
+    <measure number="3">
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+      <barline location="right">
+        <bar-style>dotted</bar-style>
+      </barline>
+    </measure>
+    <!--=======================================================-->
+    <measure number="4">
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+      <barline location="right">
+        <bar-style>dashed</bar-style>
+      </barline>
+    </measure>
+    <!--=======================================================-->
+    <measure number="5">
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+      <barline location="right">
+        <bar-style>heavy</bar-style>
+      </barline>
+    </measure>
+    <!--=======================================================-->
+    <measure number="6">
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+      <barline location="right">
+        <bar-style>light-light</bar-style>
+      </barline>
+    </measure>
+    <!--=======================================================-->
+    <measure number="7">
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+    <!--=======================================================-->
+    <measure number="8">
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+      <barline location="right">
+        <bar-style>heavy-light</bar-style>
+      </barline>
+    </measure>
+    <!--=======================================================-->
+    <measure number="9">
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+      <barline location="right">
+        <bar-style>heavy-heavy</bar-style>
+      </barline>
+    </measure>
+    <!--=======================================================-->
+    <measure number="10">
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+      <barline location="right">
+        <bar-style>tick</bar-style>
+      </barline>
+    </measure>
+    <!--=======================================================-->
+    <measure number="11">
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+      <barline location="right">
+        <bar-style>short</bar-style>
+      </barline>
+    </measure>
+    <!--=======================================================-->
+    <measure number="12">
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+      <barline location="right">
+        <bar-style>none</bar-style>
+      </barline>
+    </measure>
+    <!--=======================================================-->
+    <measure number="13">
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+    </measure>
+  </part>
+  <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/46b-MidmeasureBarline.xml b/input/regression/musicxml/46b-MidmeasureBarline.xml
new file mode 100644 (file)
index 0000000..c4517e6
--- /dev/null
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 2.0 Partwise//EN"
+          "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise version="2.0">
+    <identification>
+      <miscellaneous>
+        <miscellaneous-field name="description">Barlines can appear at 
+            mid-measure positions, without using an implicit measure!</miscellaneous-field>
+      </miscellaneous>
+    </identification>
+    <part-list>
+        <score-part id="P1">
+            <part-name></part-name>
+        </score-part>
+    </part-list>
+    <!--=========================================================-->
+    <part id="P1">
+        <!--=======================================================-->
+        <measure number="1">
+            <attributes>
+                <divisions>1</divisions>
+            </attributes>
+            <note>
+                <pitch>
+                    <step>C</step>
+                    <octave>5</octave>
+                </pitch>
+                <duration>1</duration>
+                <voice>1</voice>
+                <type>quarter</type>
+            </note>
+            <note>
+                <pitch>
+                    <step>A</step>
+                    <octave>4</octave>
+                </pitch>
+                <duration>1</duration>
+                <voice>1</voice>
+                <type>quarter</type>
+            </note>
+            <barline location="middle">
+                <bar-style>dotted</bar-style>
+            </barline>
+            <note>
+                <pitch>
+                    <step>F</step>
+                    <octave>4</octave>
+                </pitch>
+                <duration>1</duration>
+                <voice>1</voice>
+                <type>quarter</type>
+            </note>
+            <note>
+                <pitch>
+                    <step>C</step>
+                    <octave>5</octave>
+                </pitch>
+                <duration>1</duration>
+                <voice>1</voice>
+                <type>quarter</type>
+            </note>
+        </measure>
+        <!--=======================================================-->
+    </part>
+    <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/46c-Midmeasure-Clef.xml b/input/regression/musicxml/46c-Midmeasure-Clef.xml
new file mode 100644 (file)
index 0000000..548d105
--- /dev/null
@@ -0,0 +1,142 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">A clef change in the middle of a 
+            measure, using either an implicit measure or simply placing 
+            the attributes in the middle of the measure.</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name>MusicXML Part</part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="2">
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <barline location="right">
+        <bar-style>none</bar-style>
+      </barline>
+    </measure>
+    <!--=======================================================-->
+    <measure implicit="yes" number="X1">
+      <attributes>
+        <clef>
+          <sign>C</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="3">
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <attributes>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/46d-PickupMeasure-ImplicitMeasures.xml b/input/regression/musicxml/46d-PickupMeasure-ImplicitMeasures.xml
new file mode 100644 (file)
index 0000000..337fa9e
--- /dev/null
@@ -0,0 +1,131 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">A 3/8 pickup measure, a measure 
+          that is split into one (incomplete, only 2/4) measure and an implicit 
+          measure, and an incomplete measure (containg 3/4).</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name>MusicXML Part</part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure implicit="yes" number="0">
+      <attributes>
+        <divisions>2</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+          <pitch>
+              <step>E</step>
+              <octave>4</octave>
+          </pitch>
+          <duration>2</duration>
+          <voice>1</voice>
+          <type>quarter</type>
+      </note>
+      <note>
+          <pitch>
+              <step>E</step>
+              <octave>4</octave>
+          </pitch>
+          <duration>1</duration>
+          <voice>1</voice>
+          <type>eighth</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="1">
+      <note>
+        <pitch>
+          <step>F</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <barline location="right">
+        <bar-style>none</bar-style>
+      </barline>
+    </measure>
+    <!--=======================================================-->
+    <measure implicit="yes" number="X1">
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="2">
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>D</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <rest/>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/46e-PickupMeasure-SecondVoiceStartsLater.xml b/input/regression/musicxml/46e-PickupMeasure-SecondVoiceStartsLater.xml
new file mode 100644 (file)
index 0000000..4dd9631
--- /dev/null
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 2.0 Partwise//EN"
+          "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise version="2.0">
+    <identification>
+      <miscellaneous>
+        <miscellaneous-field name="description">Voice 2 should start at 2nd 
+            beat of first full measure.</miscellaneous-field>
+      </miscellaneous>
+    </identification>
+    <part-list>
+        <score-part id="P1">
+            <part-name></part-name>
+        </score-part>
+    </part-list>
+    <!--=========================================================-->
+    <part id="P1">
+        <measure implicit="yes" number="0">
+            <attributes>
+                <divisions>1</divisions>
+            </attributes>
+            <note>
+                <pitch>
+                    <step>C</step>
+                    <octave>5</octave>
+                </pitch>
+                <duration>1</duration>
+                <voice>1</voice>
+                <type>quarter</type>
+            </note>
+        </measure>
+        <!--=======================================================-->
+        <measure number="1">
+            <attributes>
+                <divisions>1</divisions>
+            </attributes>
+            <note>
+                <pitch>
+                    <step>C</step>
+                    <octave>5</octave>
+                </pitch>
+                <duration>1</duration>
+                <voice>1</voice>
+                <type>quarter</type>
+            </note>
+            <note>
+                <pitch>
+                    <step>A</step>
+                    <octave>4</octave>
+                </pitch>
+                <duration>1</duration>
+                <voice>1</voice>
+                <type>quarter</type>
+            </note>
+            <note>
+                <pitch>
+                    <step>F</step>
+                    <octave>4</octave>
+                </pitch>
+                <duration>1</duration>
+                <voice>1</voice>
+                <type>quarter</type>
+            </note>
+            <note>
+                <pitch>
+                    <step>C</step>
+                    <octave>5</octave>
+                </pitch>
+                <duration>1</duration>
+                <voice>1</voice>
+                <type>quarter</type>
+            </note>
+            <backup>
+                <duration>3</duration>
+            </backup>
+            <note>
+                <pitch>
+                    <step>C</step>
+                    <octave>4</octave>
+                </pitch>
+                <duration>1</duration>
+                <voice>2</voice>
+                <type>quarter</type>
+            </note>
+        </measure>
+        <!--=======================================================-->
+    </part>
+    <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/51-Header.itexi b/input/regression/musicxml/51-Header.itexi
new file mode 100644 (file)
index 0000000..34c21cb
--- /dev/null
@@ -0,0 +1 @@
+@unnumberedsec 51 ... Header information
diff --git a/input/regression/musicxml/51b-Header-Quotes.xml b/input/regression/musicxml/51b-Header-Quotes.xml
new file mode 100644 (file)
index 0000000..544bb5a
--- /dev/null
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 2.0 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise version="2.0">
+  <movement-title>"Quotes" in header fields</movement-title>
+  <identification>
+    <creator type="composer">Some "Tester" Name</creator>
+    <rights>Free for anyone ("Public Domain")</rights>
+    <encoding>
+      <software>"Hand-crafted" MusicXML file</software>
+      <encoding-date>2008-02-06</encoding-date>
+    </encoding>
+    <miscellaneous>
+      <miscellaneous-field name="description">Several header fields and part 
+          names can contain quotes ("). This test checks whether they are 
+          converted/imported without problems (i.e. whether they are correctly
+          escaped when converting).</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name>Staff "Test"</part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/51c-MultipleRights.xml b/input/regression/musicxml/51c-MultipleRights.xml
new file mode 100644 (file)
index 0000000..40102cd
--- /dev/null
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8" standalone='no'?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN" "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+  <identification>
+    <rights>Copyright © XXXX by Y. ZZZZ.</rights>
+    <rights>Released To The Public Domain.</rights>
+    <miscellaneous>
+      <miscellaneous-field name="description">There can be multiple 
+        &lt;rights&gt; tags in the identification element of the score. The 
+        conversion shall still work, ideally using both of 
+        them.</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name>MusicXML Part</part-name>
+    </score-part>
+  </part-list>
+  <part id="P1">
+    <measure number="1">
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+</score-partwise>
diff --git a/input/regression/musicxml/52-PageLayout.itexi b/input/regression/musicxml/52-PageLayout.itexi
new file mode 100644 (file)
index 0000000..478b06b
--- /dev/null
@@ -0,0 +1 @@
+@unnumberedsec 52 ... Page layout
diff --git a/input/regression/musicxml/52a-PageLayout.xml b/input/regression/musicxml/52a-PageLayout.xml
new file mode 100644 (file)
index 0000000..330b971
--- /dev/null
@@ -0,0 +1,101 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.1 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise version="1.1">
+  <movement-title>Layout options</movement-title>
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">Several page layout settings: 
+          paper size, margins, system margins and distances, different fonts, 
+          etc.</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <defaults>
+    <scaling>
+      <millimeters>3.7703</millimeters>
+      <tenths>40</tenths>
+    </scaling>
+    <page-layout>
+      <page-height>954</page-height>
+      <page-width>1804</page-width>
+      <page-margins type="both">
+        <left-margin>318</left-margin>
+        <right-margin>212</right-margin>
+        <top-margin>53</top-margin>
+        <bottom-margin>74</bottom-margin>
+      </page-margins>
+    </page-layout>
+    <system-layout>
+      <system-margins>
+        <left-margin>248</left-margin>
+        <right-margin>206</right-margin>
+      </system-margins>
+      <system-distance>561</system-distance>
+      <top-system-distance>436</top-system-distance>
+    </system-layout>
+    <music-font font-family="Maestro" font-size="10.7"/>
+    <word-font font-family="Times New Roman" font-size="5.3"/>
+  </defaults>
+  <credit>
+    <credit-words default-x="955" default-y="876" font-size="18" font-weight="bold" justify="center" valign="top">Layout options</credit-words>
+  </credit>
+  <part-list>
+    <score-part id="P1">
+      <part-name print-object="no">MusicXML Part</part-name>
+      <score-instrument id="P1-I1">
+        <instrument-name>Grand Piano</instrument-name>
+      </score-instrument>
+      <midi-instrument id="P1-I1">
+        <midi-channel>1</midi-channel>
+        <midi-program>1</midi-program>
+      </midi-instrument>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1" width="441">
+      <print page-number="8"/>
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="2" width="378">
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="3" width="819">
+      <print new-page="yes" page-number="9"/>
+      <note>
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/61-Lyrics.itexi b/input/regression/musicxml/61-Lyrics.itexi
new file mode 100644 (file)
index 0000000..e533f66
--- /dev/null
@@ -0,0 +1 @@
+@unnumberedsec 61 ... Lyrics
diff --git a/input/regression/musicxml/61a-Lyrics.xml b/input/regression/musicxml/61a-Lyrics.xml
new file mode 100644 (file)
index 0000000..69642ea
--- /dev/null
@@ -0,0 +1,174 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">Some notes with simple lyrics: 
+            Syllables, notes without a syllable, syllable 
+            spanners.</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name>MusicXML Part</part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1">
+          <syllabic>begin</syllabic>
+          <text>Tra</text>
+        </lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1">
+          <syllabic>middle</syllabic>
+          <text>la</text>
+        </lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1">
+          <syllabic>end</syllabic>
+          <text>li</text>
+        </lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1">
+          <syllabic>single</syllabic>
+          <text>Ja!</text>
+        </lyric>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="2">
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1">
+          <syllabic>begin</syllabic>
+          <text>Tra</text>
+        </lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1">
+          <syllabic>end</syllabic>
+          <text>ra!</text>
+        </lyric>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="3">
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1">
+          <syllabic>single</syllabic>
+          <text>Bah!</text>
+        </lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/61b-MultipleLyrics.xml b/input/regression/musicxml/61b-MultipleLyrics.xml
new file mode 100644 (file)
index 0000000..5f9334d
--- /dev/null
@@ -0,0 +1,191 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">Multiple (simple) lyrics. The 
+          order of the exported stanzas is relevant (identified by the number 
+          attribute in this test case)</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name>MusicXML Part</part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1">
+          <syllabic>begin</syllabic>
+          <text>1.Tra</text>
+        </lyric>
+        <lyric number="2">
+          <syllabic>begin</syllabic>
+          <text>2.tra</text>
+        </lyric>
+        <lyric number="3">
+          <syllabic>begin</syllabic>
+          <text>3.TRA</text>
+        </lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1">
+          <syllabic>middle</syllabic>
+          <text>la</text>
+        </lyric>
+        <lyric number="2">
+          <syllabic>middle</syllabic>
+          <text>la</text>
+        </lyric>
+        <lyric number="3">
+          <syllabic>middle</syllabic>
+          <text>LA</text>
+        </lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1">
+          <syllabic>end</syllabic>
+          <text>la,</text>
+        </lyric>
+        <lyric number="2">
+          <syllabic>end</syllabic>
+          <text>la,</text>
+        </lyric>
+        <lyric number="3">
+          <syllabic>end</syllabic>
+          <text>LA,</text>
+        </lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1">
+          <syllabic>single</syllabic>
+          <text>ja!</text>
+          <extend/>
+        </lyric>
+        <lyric number="2">
+          <syllabic>single</syllabic>
+          <text>ja!</text>
+          <extend/>
+        </lyric>
+        <lyric number="3">
+          <syllabic>single</syllabic>
+          <text>JA!</text>
+          <extend/>
+        </lyric>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="2">
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1">
+          <syllabic>begin</syllabic>
+          <text>Tra</text>
+        </lyric>
+        <lyric number="2">
+          <syllabic>begin</syllabic>
+          <text>Tra</text>
+        </lyric>
+        <lyric number="3">
+          <syllabic>begin</syllabic>
+          <text>TRA</text>
+        </lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1">
+          <syllabic>end</syllabic>
+          <text>ra...</text>
+        </lyric>
+        <lyric number="2">
+          <syllabic>end</syllabic>
+          <text>ra.</text>
+        </lyric>
+        <lyric number="3">
+          <syllabic>end</syllabic>
+          <text>RA...</text>
+        </lyric>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/61c-Lyrics-Pianostaff.xml b/input/regression/musicxml/61c-Lyrics-Pianostaff.xml
new file mode 100644 (file)
index 0000000..ca5b8e6
--- /dev/null
@@ -0,0 +1,163 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">Lyrics assigned to the voices of 
+          a piano staff containing two simple staves. Each staff is assigned 
+          exactly one lyrics line.</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name>MusicXML Part</part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <staves>2</staves>
+        <clef number="1">
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+        <clef number="2">
+          <sign>F</sign>
+          <line>4</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <staff>1</staff>
+        <lyric number="1">
+          <syllabic>begin</syllabic>
+          <text>tra</text>
+        </lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <staff>1</staff>
+        <lyric number="1">
+          <syllabic>middle</syllabic>
+          <text>la</text>
+        </lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <staff>1</staff>
+        <lyric number="1">
+          <syllabic>end</syllabic>
+          <text>li</text>
+        </lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <staff>1</staff>
+        <lyric number="1">
+          <syllabic>single</syllabic>
+          <text>ja!</text>
+          <extend/>
+        </lyric>
+      </note>
+      <backup>
+        <duration>4</duration>
+      </backup>
+      <note>
+        <pitch>
+          <step>F</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>2</voice>
+        <type>quarter</type>
+        <staff>2</staff>
+        <lyric number="1">
+          <syllabic>begin</syllabic>
+          <text>TRA</text>
+        </lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>F</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>2</voice>
+        <type>quarter</type>
+        <staff>2</staff>
+        <lyric number="1">
+          <syllabic>middle</syllabic>
+          <text>LA</text>
+        </lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>F</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>2</voice>
+        <type>quarter</type>
+        <staff>2</staff>
+        <lyric number="1">
+          <syllabic>end</syllabic>
+          <text>LI</text>
+        </lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>F</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>2</voice>
+        <type>quarter</type>
+        <staff>2</staff>
+        <lyric number="1">
+          <syllabic>single</syllabic>
+          <text>JA!</text>
+          <extend/>
+        </lyric>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/61d-Lyrics-Melisma.xml b/input/regression/musicxml/61d-Lyrics-Melisma.xml
new file mode 100644 (file)
index 0000000..9258058
--- /dev/null
@@ -0,0 +1,169 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">How to treat lyrics and slurred 
+          notes. Normally, a slurred group of notes is assigned only one lyrics 
+          syllable.</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name>MusicXML Part</part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <slur number="1" type="start"/>
+        </notations>
+        <lyric number="1">
+          <syllabic>begin</syllabic>
+          <text>Me</text>
+        </lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <chord/>
+        <pitch>
+          <step>E</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <slur number="1" type="stop"/>
+        </notations>
+      </note>
+      <note>
+        <chord/>
+        <pitch>
+          <step>E</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="2">
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <tie type="start"/>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <tied type="start"/>
+        </notations>
+        <lyric number="1">
+          <syllabic>middle</syllabic>
+          <text>lis</text>
+        </lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <tie type="stop"/>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <tied type="stop"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <slur number="1" type="start"/>
+        </notations>
+        <lyric number="1">
+          <syllabic>end</syllabic>
+          <text>ma.</text>
+          <extend/>
+        </lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>E</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <slur number="1" type="stop"/>
+        </notations>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/61e-Lyrics-Chords.xml b/input/regression/musicxml/61e-Lyrics-Chords.xml
new file mode 100644 (file)
index 0000000..945a31d
--- /dev/null
@@ -0,0 +1,132 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">Assigning lyrics to chorded 
+            notes.</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name>MusicXML Part</part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>E</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1">
+          <syllabic>begin</syllabic>
+          <text>Ly</text>
+        </lyric>
+      </note>
+      <note>
+        <chord/>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1">
+          <syllabic>end</syllabic>
+          <text>rics</text>
+        </lyric>
+      </note>
+      <note>
+        <chord/>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>E</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1">
+          <syllabic>single</syllabic>
+          <text>on</text>
+        </lyric>
+      </note>
+      <note>
+        <chord/>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1">
+          <syllabic>single</syllabic>
+          <text>chords</text>
+        </lyric>
+      </note>
+      <note>
+        <chord/>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/61f-Lyrics-GracedNotes.xml b/input/regression/musicxml/61f-Lyrics-GracedNotes.xml
new file mode 100644 (file)
index 0000000..b577b2e
--- /dev/null
@@ -0,0 +1,209 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">Grace notes shall not mess up the 
+          lyrics, and they shall not be assigned a syllable.</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name>MusicXML Part</part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>2</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <slur number="1" type="start"/>
+        </notations>
+        <lyric number="1">
+          <syllabic>begin</syllabic>
+          <text>Ly</text>
+        </lyric>
+      </note>
+      <note>
+        <grace slash="yes"/>
+        <pitch>
+          <step>D</step>
+          <octave>5</octave>
+        </pitch>
+        <voice>1</voice>
+        <type>eighth</type>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <slur number="1" type="stop"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1">
+          <syllabic>end</syllabic>
+          <text>rics</text>
+        </lyric>
+      </note>
+      <note>
+        <grace slash="yes"/>
+        <pitch>
+          <step>D</step>
+          <octave>5</octave>
+        </pitch>
+        <tie type="start"/>
+        <voice>1</voice>
+        <type>eighth</type>
+        <notations>
+          <tied type="start"/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1">
+          <syllabic>single</syllabic>
+          <text>on</text>
+        </lyric>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="2">
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>2</duration>
+        <tie type="start"/>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <tied type="start"/>
+        </notations>
+        <lyric number="1">
+          <syllabic>single</syllabic>
+          <text>notes</text>
+          <extend/>
+        </lyric>
+      </note>
+      <note>
+        <grace/>
+        <pitch>
+          <step>E</step>
+          <octave>5</octave>
+        </pitch>
+        <tie type="start"/>
+        <voice>1</voice>
+        <type>eighth</type>
+        <beam number="1">begin</beam>
+        <notations>
+          <tied type="start"/>
+        </notations>
+      </note>
+      <note>
+        <grace/>
+        <pitch>
+          <step>D</step>
+          <octave>5</octave>
+        </pitch>
+        <voice>1</voice>
+        <type>eighth</type>
+        <beam number="1">end</beam>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>2</duration>
+        <tie type="stop"/>
+        <voice>1</voice>
+        <type>quarter</type>
+        <notations>
+          <tied type="stop"/>
+        </notations>
+      </note>
+      <note>
+        <grace/>
+        <pitch>
+          <step>D</step>
+          <octave>5</octave>
+        </pitch>
+        <voice>1</voice>
+        <type>eighth</type>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1">
+          <syllabic>single</syllabic>
+          <text>with</text>
+        </lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1">
+          <syllabic>single</syllabic>
+          <text>graces</text>
+        </lyric>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/61g-Lyrics-NameNumber.xml b/input/regression/musicxml/61g-Lyrics-NameNumber.xml
new file mode 100644 (file)
index 0000000..1999d07
--- /dev/null
@@ -0,0 +1,119 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">A lyrics syllable can have both 
+          a number and a name attribute. The question is: What should be used 
+          to put syllables of the same voice together. This example uses 
+          different number/name combinations to check how different 
+          applications handle this unspecified case (The advice on the 
+          MusicXML mailing list was "there is no correct way, each 
+          application can do what it thinks is best").</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name>MusicXML Part</part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key><fifths>0</fifths><mode>major</mode></key>
+        <time><beats>6</beats><beat-type>4</beat-type></time>
+        <clef><sign>G</sign><line>2</line></clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1" name="Verse">
+          <syllabic>begin</syllabic>
+          <text>Verse1A</text>
+        </lyric>
+        <lyric number="1" name="Chorus">
+          <syllabic>begin</syllabic>
+          <text>Chorus1A</text>
+        </lyric>
+        <lyric number="1" name="Chorus">
+          <syllabic>begin</syllabic>
+          <text>AnotherChorus1A</text>
+        </lyric>
+        <lyric number="2" name="Chorus">
+          <syllabic>begin</syllabic>
+          <text>Chorus1A</text>
+        </lyric>
+      </note>
+      <note>
+        <pitch><step>G</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1">
+          <syllabic>begin</syllabic>
+          <text>1B</text>
+        </lyric>
+        <lyric number="2">
+          <syllabic>begin</syllabic>
+          <text>2B</text>
+        </lyric>
+      </note>
+      <note>
+        <pitch><step>G</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1" name="Verse">
+          <syllabic>begin</syllabic>
+          <text>Verse1C</text>
+        </lyric>
+        <lyric number="2" name="Chorus">
+          <syllabic>begin</syllabic>
+          <text>Chorus2C</text>
+        </lyric>
+      </note>
+      <note>
+        <pitch><step>G</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1" name="Chorus">
+          <syllabic>begin</syllabic>
+          <text>Chorus1D</text>
+        </lyric>
+      </note>
+      <note>
+        <pitch><step>G</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric name="Verse">
+          <syllabic>begin</syllabic>
+          <text>VerseE</text>
+        </lyric>
+      </note>
+      <note>
+        <pitch><step>G</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric>
+          <syllabic>begin</syllabic>
+          <text>NoneF</text>
+        </lyric>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/61h-Lyrics-BeamsMelismata.xml b/input/regression/musicxml/61h-Lyrics-BeamsMelismata.xml
new file mode 100644 (file)
index 0000000..0edcc5f
--- /dev/null
@@ -0,0 +1,306 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.1 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise version="1.1">
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">Beaming or slurs can indicate 
+          melismata for lyrics. Also make sure that notes without an explicit
+          syllable are treated as if they were part of a melisma.</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name></part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>2</divisions>
+      </attributes>
+      <note>
+        <pitch><step>C</step><octave>5</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <beam number="1">begin</beam>
+        <lyric number="1">
+          <syllabic>begin</syllabic>
+          <text>Me</text>
+        </lyric>
+      </note>
+      <note>
+        <pitch><step>A</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <beam number="1">continue</beam>
+      </note>
+      <note>
+        <pitch><step>C</step><octave>5</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <beam number="1">end</beam>
+      </note>
+      <note>
+        <pitch><step>A</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <lyric number="1">
+          <syllabic>middle</syllabic>
+          <text>lis</text>
+        </lyric>
+      </note>
+      <note>
+        <pitch><step>C</step><octave>5</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <beam number="1">begin</beam>
+        <lyric number="1">
+          <syllabic>end</syllabic>
+          <text>ma</text>
+          <extend/>
+        </lyric>
+      </note>
+      <note>
+        <pitch><step>G</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <beam number="1">continue</beam>
+      </note>
+      <note>
+        <pitch><step>B</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <beam number="1">end</beam>
+      </note>
+      <note>
+        <rest/>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="2">
+      <note>
+        <pitch><step>C</step><octave>5</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <lyric number="1">
+          <syllabic>begin</syllabic>
+          <text>Me</text>
+        </lyric>
+      </note>
+      <note>
+        <pitch><step>A</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+      </note>
+      <note>
+        <pitch><step>C</step><octave>5</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+      </note>
+      <note>
+        <pitch><step>A</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <lyric number="1">
+          <syllabic>middle</syllabic>
+          <text>lis</text>
+        </lyric>
+      </note>
+      <note>
+        <pitch><step>C</step><octave>5</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <lyric number="1">
+          <syllabic>end</syllabic>
+          <text>ma</text>
+          <extend/>
+        </lyric>
+      </note>
+      <note>
+        <pitch><step>G</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+      </note>
+      <note>
+        <pitch><step>B</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+      </note>
+      <note>
+        <rest/>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="3">
+      <note>
+        <pitch><step>C</step><octave>5</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <notations>
+          <slur number="1" type="start"/>
+        </notations>
+        <lyric number="1">
+          <syllabic>begin</syllabic>
+          <text>Me</text>
+        </lyric>
+      </note>
+      <note>
+        <pitch><step>A</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+      </note>
+      <note>
+        <pitch><step>C</step><octave>5</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <notations>
+          <slur number="1" type="stop"/>
+        </notations>
+      </note>
+      <note>
+        <pitch><step>A</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <lyric number="1">
+          <syllabic>middle</syllabic>
+          <text>lis</text>
+        </lyric>
+      </note>
+      <note>
+        <pitch><step>C</step><octave>5</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <notations>
+          <slur number="1" type="start"/>
+        </notations>
+        <lyric number="1">
+          <syllabic>end</syllabic>
+          <text>ma</text>
+          <extend/>
+        </lyric>
+      </note>
+      <note>
+        <pitch><step>G</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+      </note>
+      <note>
+        <pitch><step>B</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <notations>
+          <slur number="1" type="stop"/>
+        </notations>
+      </note>
+      <note>
+        <rest/>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="4">
+      <note>
+        <pitch><step>C</step><octave>5</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <notations>
+          <slur number="1" type="start"/>
+        </notations>
+        <lyric number="1">
+          <syllabic>begin</syllabic>
+          <text>Me</text>
+        </lyric>
+      </note>
+      <note>
+        <pitch><step>A</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+      </note>
+      <note>
+        <pitch><step>C</step><octave>5</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+      </note>
+      <note>
+        <pitch><step>A</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <lyric number="1">
+          <syllabic>middle</syllabic>
+          <text>lis</text>
+        </lyric>
+      </note>
+      <note>
+        <pitch><step>C</step><octave>5</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <lyric number="1">
+          <syllabic>end</syllabic>
+          <text>ma</text>
+          <extend/>
+        </lyric>
+      </note>
+      <note>
+        <pitch><step>G</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+      </note>
+      <note>
+        <pitch><step>B</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <notations>
+          <slur number="1" type="stop"/>
+        </notations>
+      </note>
+      <note>
+        <rest/>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/61i-Lyrics-Chords.xml b/input/regression/musicxml/61i-Lyrics-Chords.xml
new file mode 100644 (file)
index 0000000..8f3db1e
--- /dev/null
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">Each note of a chord can have
+          some lyrics attached. In this case, each note of the chord has lyrics 
+          of the form "Lyrics [123]" attached, where each lyrics has a different 
+          number attribute to distinguish them. These syllables should be 
+          imported into three different stanzas and the timing should be 
+          correct.</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name>MusicXML Part</part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>E</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>Lyrics 1</text></lyric>
+      </note>
+      <note>
+        <chord/>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="2"><text>Lyrics 2</text></lyric>
+      </note>
+      <note>
+        <chord/>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="3"><text>Lyrics 3</text></lyric>
+      </note>
+    </measure>
+  </part>
+</score-partwise>
diff --git a/input/regression/musicxml/61j-Lyrics-Elisions.xml b/input/regression/musicxml/61j-Lyrics-Elisions.xml
new file mode 100644 (file)
index 0000000..fd76590
--- /dev/null
@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.1 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise version="1.1">
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">Multiple lyrics syllables 
+          assigned to a single note are implemented either using a space in 
+          the lyrics or by using the &lt;elision&gt; lyrics element. This 
+          testcase checks both of them. First, a note with on syllable is
+          given, then a note with two syllables separated by a spcae and finally
+          a note with two and one with three syllables implemented using 
+          &lt;elision&gt; is given.</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name>MusicXML Part</part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1">
+          <text>a</text>
+        </lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1">
+          <text>b c</text>
+        </lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1">
+          <text>d</text>
+          <elision/>
+          <text>e</text>
+        </lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1">
+          <text>f</text>
+          <elision/>
+          <text>g</text>
+          <elision/>
+          <text>h</text>
+        </lyric>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/61k-Lyrics-SpannersExtenders.xml b/input/regression/musicxml/61k-Lyrics-SpannersExtenders.xml
new file mode 100644 (file)
index 0000000..22354d8
--- /dev/null
@@ -0,0 +1,172 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.1 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise version="1.1">
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">Lyrics spanners: continued 
+            syllables and extenders, possibly spanning multiple notes. The 
+            intermediate notes do not have any &lt;lyric&gt; 
+            element.</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name print-object="no">MusicXML Part</part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric justify="left" number="1">
+          <syllabic>single</syllabic>
+          <text>A</text>
+          <extend/>
+        </lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1">
+          <syllabic>begin</syllabic>
+          <text>b</text>
+        </lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="2">
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric justify="left" number="1">
+          <syllabic>end</syllabic>
+          <text>CC</text>
+          <extend/>
+        </lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="3">
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric justify="left" number="1">
+          <syllabic>single</syllabic>
+          <text>e</text>
+          <extend/>
+        </lyric>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <rest/>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/71-Guitar.itexi b/input/regression/musicxml/71-Guitar.itexi
new file mode 100644 (file)
index 0000000..6d9bb50
--- /dev/null
@@ -0,0 +1 @@
+@unnumberedsec 71 ... Guitar notation
diff --git a/input/regression/musicxml/71a-Chordnames.xml b/input/regression/musicxml/71a-Chordnames.xml
new file mode 100644 (file)
index 0000000..f733904
--- /dev/null
@@ -0,0 +1,185 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">A normal staff with several 
+          (complex) chord names displayed.</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name>MusicXML Part</part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <harmony>
+        <root>
+          <root-step>C</root-step>
+        </root>
+        <kind>major</kind>
+      </harmony>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <harmony>
+        <root>
+          <root-step>C</root-step>
+        </root>
+        <kind>major-seventh</kind>
+        <degree>
+          <degree-value>11</degree-value>
+          <degree-alter>1</degree-alter>
+          <degree-type>add</degree-type>
+        </degree>
+      </harmony>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <harmony>
+        <root>
+          <root-step>B</root-step>
+        </root>
+        <kind>dominant</kind>
+        <degree>
+          <degree-value>5</degree-value>
+          <degree-alter>1</degree-alter>
+          <degree-type>alter</degree-type>
+        </degree>
+        <degree>
+          <degree-value>9</degree-value>
+          <degree-alter>1</degree-alter>
+          <degree-type>add</degree-type>
+        </degree>
+      </harmony>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <harmony>
+        <root>
+          <root-step>E</root-step>
+          <root-alter>-1</root-alter>
+        </root>
+        <kind>major</kind>
+        <degree>
+          <degree-value>2</degree-value>
+          <degree-alter>0</degree-alter>
+          <degree-type>add</degree-type>
+        </degree>
+      </harmony>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="2">
+      <harmony>
+        <root>
+          <root-step>G</root-step>
+        </root>
+        <kind>minor</kind>
+      </harmony>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <harmony>
+        <root>
+          <root-step>D</root-step>
+          <root-alter>1</root-alter>
+        </root>
+        <kind>major-seventh</kind>
+      </harmony>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <harmony>
+        <root>
+          <root-step>A</root-step>
+        </root>
+        <kind>diminished-seventh</kind>
+      </harmony>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <harmony>
+        <root>
+          <root-step>A</root-step>
+        </root>
+        <kind>augmented</kind>
+      </harmony>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/71c-ChordsFrets.xml b/input/regression/musicxml/71c-ChordsFrets.xml
new file mode 100644 (file)
index 0000000..cb882c2
--- /dev/null
@@ -0,0 +1,425 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">A staff with chord names and some 
+          fretboards shown. The fretboards can have an arbitrary number of 
+          frets/strings, can start at an arbitrary fret and can even contain 
+          fingering information.</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name>MusicXML Part</part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <harmony>
+        <root>
+          <root-step>C</root-step>
+        </root>
+        <kind>major</kind>
+        <frame>
+          <frame-strings>6</frame-strings>
+          <frame-frets>4</frame-frets>
+          <frame-note>
+            <string>6</string>
+            <fret>0</fret>
+          </frame-note>
+          <frame-note>
+            <string>5</string>
+            <fret>3</fret>
+          </frame-note>
+          <frame-note>
+            <string>4</string>
+            <fret>2</fret>
+          </frame-note>
+          <frame-note>
+            <string>3</string>
+            <fret>0</fret>
+          </frame-note>
+          <frame-note>
+            <string>2</string>
+            <fret>1</fret>
+          </frame-note>
+          <frame-note>
+            <string>1</string>
+            <fret>0</fret>
+          </frame-note>
+        </frame>
+      </harmony>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <harmony>
+        <root>
+          <root-step>C</root-step>
+        </root>
+        <kind>major-seventh</kind>
+        <degree>
+          <degree-value>11</degree-value>
+          <degree-alter>1</degree-alter>
+          <degree-type>add</degree-type>
+        </degree>
+        <frame>
+          <frame-strings>6</frame-strings>
+          <frame-frets>4</frame-frets>
+          <first-fret>2</first-fret>
+          <frame-note>
+            <string>6</string>
+            <fret>0</fret>
+          </frame-note>
+          <frame-note>
+            <string>5</string>
+            <fret>3</fret>
+          </frame-note>
+          <frame-note>
+            <string>4</string>
+            <fret>5</fret>
+          </frame-note>
+          <frame-note>
+            <string>3</string>
+            <fret>4</fret>
+          </frame-note>
+          <frame-note>
+            <string>2</string>
+            <fret>5</fret>
+          </frame-note>
+          <frame-note>
+            <string>1</string>
+            <fret>2</fret>
+          </frame-note>
+        </frame>
+      </harmony>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <harmony>
+        <root>
+          <root-step>B</root-step>
+        </root>
+        <kind>dominant</kind>
+        <degree>
+          <degree-value>5</degree-value>
+          <degree-alter>1</degree-alter>
+          <degree-type>alter</degree-type>
+        </degree>
+        <degree>
+          <degree-value>9</degree-value>
+          <degree-alter>1</degree-alter>
+          <degree-type>add</degree-type>
+        </degree>
+        <frame>
+          <frame-strings>6</frame-strings>
+          <frame-frets>4</frame-frets>
+          <frame-note>
+            <string>6</string>
+            <fret>0</fret>
+          </frame-note>
+          <frame-note>
+            <string>5</string>
+            <fret>2</fret>
+          </frame-note>
+          <frame-note>
+            <string>4</string>
+            <fret>1</fret>
+          </frame-note>
+          <frame-note>
+            <string>3</string>
+            <fret>2</fret>
+          </frame-note>
+          <frame-note>
+            <string>2</string>
+            <fret>3</fret>
+          </frame-note>
+          <frame-note>
+            <string>1</string>
+            <fret>3</fret>
+          </frame-note>
+        </frame>
+      </harmony>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <harmony>
+        <root>
+          <root-step>E</root-step>
+          <root-alter>-1</root-alter>
+        </root>
+        <kind>major</kind>
+        <degree>
+          <degree-value>2</degree-value>
+          <degree-alter>0</degree-alter>
+          <degree-type>add</degree-type>
+        </degree>
+        <frame>
+          <frame-strings>6</frame-strings>
+          <frame-frets>5</frame-frets>
+          <first-fret>11</first-fret>
+          <frame-note>
+            <string>6</string>
+            <fret>11</fret>
+          </frame-note>
+          <frame-note>
+            <string>5</string>
+            <fret>13</fret>
+          </frame-note>
+          <frame-note>
+            <string>4</string>
+            <fret>15</fret>
+          </frame-note>
+          <frame-note>
+            <string>3</string>
+            <fret>12</fret>
+          </frame-note>
+          <frame-note>
+            <string>2</string>
+            <fret>11</fret>
+          </frame-note>
+          <frame-note>
+            <string>1</string>
+            <fret>11</fret>
+          </frame-note>
+        </frame>
+      </harmony>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="2">
+      <harmony>
+        <root>
+          <root-step>G</root-step>
+        </root>
+        <kind>minor</kind>
+        <frame>
+          <frame-strings>6</frame-strings>
+          <frame-frets>4</frame-frets>
+          <first-fret>3</first-fret>
+          <frame-note>
+            <string>6</string>
+            <fret>3</fret>
+          </frame-note>
+          <frame-note>
+            <string>5</string>
+            <fret>5</fret>
+          </frame-note>
+          <frame-note>
+            <string>4</string>
+            <fret>5</fret>
+          </frame-note>
+          <frame-note>
+            <string>3</string>
+            <fret>3</fret>
+          </frame-note>
+          <frame-note>
+            <string>2</string>
+            <fret>3</fret>
+          </frame-note>
+          <frame-note>
+            <string>1</string>
+            <fret>3</fret>
+          </frame-note>
+        </frame>
+      </harmony>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <harmony>
+        <root>
+          <root-step>D</root-step>
+          <root-alter>1</root-alter>
+        </root>
+        <kind>major-seventh</kind>
+        <frame>
+          <frame-strings>6</frame-strings>
+          <frame-frets>4</frame-frets>
+          <frame-note>
+            <string>6</string>
+            <fret>0</fret>
+          </frame-note>
+          <frame-note>
+            <string>5</string>
+            <fret>0</fret>
+          </frame-note>
+          <frame-note>
+            <string>4</string>
+            <fret>1</fret>
+          </frame-note>
+          <frame-note>
+            <string>3</string>
+            <fret>3</fret>
+          </frame-note>
+          <frame-note>
+            <string>2</string>
+            <fret>3</fret>
+          </frame-note>
+          <frame-note>
+            <string>1</string>
+            <fret>3</fret>
+          </frame-note>
+        </frame>
+      </harmony>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <harmony>
+        <root>
+          <root-step>A</root-step>
+        </root>
+        <kind>diminished-seventh</kind>
+        <frame>
+          <frame-strings>6</frame-strings>
+          <frame-frets>4</frame-frets>
+          <frame-note>
+            <string>6</string>
+            <fret>0</fret>
+          </frame-note>
+          <frame-note>
+            <string>5</string>
+            <fret>0</fret>
+          </frame-note>
+          <frame-note>
+            <string>4</string>
+            <fret>1</fret>
+          </frame-note>
+          <frame-note>
+            <string>3</string>
+            <fret>2</fret>
+          </frame-note>
+          <frame-note>
+            <string>2</string>
+            <fret>1</fret>
+          </frame-note>
+          <frame-note>
+            <string>1</string>
+            <fret>2</fret>
+          </frame-note>
+        </frame>
+      </harmony>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <harmony>
+        <root>
+          <root-step>C</root-step>
+        </root>
+        <kind>major</kind>
+        <frame>
+          <frame-strings>10</frame-strings>
+          <frame-frets>3</frame-frets>
+          <frame-note>
+            <string>10</string>
+            <fret>1</fret>
+            <fingering>2</fingering>
+          </frame-note>
+          <frame-note>
+            <string>9</string>
+            <fret>3</fret>
+          </frame-note>
+          <frame-note>
+            <string>7</string>
+            <fret>1</fret>
+            <fingering>4</fingering>
+          </frame-note>
+          <frame-note>
+            <string>5</string>
+            <fret>3</fret>
+          </frame-note>
+          <frame-note>
+            <string>4</string>
+            <fret>2</fret>
+          </frame-note>
+          <frame-note>
+            <string>3</string>
+            <fret>1</fret>
+            <fingering>5</fingering>
+          </frame-note>
+          <frame-note>
+            <string>2</string>
+            <fret>0</fret>
+          </frame-note>
+          <frame-note>
+            <string>1</string>
+            <fret>0</fret>
+          </frame-note>
+        </frame>
+      </harmony>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/71d-ChordsFrets-Multistaff.xml b/input/regression/musicxml/71d-ChordsFrets-Multistaff.xml
new file mode 100644 (file)
index 0000000..7b4eab2
--- /dev/null
@@ -0,0 +1,354 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">Chords and fretboards assigned to 
+          the voices in a multi-voice, multi-staff part. There should be fret 
+          diagrams above each of the two staves.</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name>MusicXML Part</part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <staves>2</staves>
+        <clef number="1">
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+        <clef number="2">
+          <sign>F</sign>
+          <line>4</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>D</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <staff>1</staff>
+      </note>
+      <note>
+        <pitch>
+          <step>D</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <staff>1</staff>
+      </note>
+      <harmony>
+        <root>
+          <root-step>E</root-step>
+          <root-alter>-1</root-alter>
+        </root>
+        <kind>minor-ninth</kind>
+        <frame>
+          <frame-strings>6</frame-strings>
+          <frame-frets>4</frame-frets>
+          <first-fret>4</first-fret>
+          <frame-note>
+            <string>6</string>
+            <fret>0</fret>
+          </frame-note>
+          <frame-note>
+            <string>5</string>
+            <fret>6</fret>
+          </frame-note>
+          <frame-note>
+            <string>4</string>
+            <fret>4</fret>
+          </frame-note>
+          <frame-note>
+            <string>3</string>
+            <fret>6</fret>
+          </frame-note>
+          <frame-note>
+            <string>2</string>
+            <fret>6</fret>
+          </frame-note>
+        </frame>
+      </harmony>
+      <note>
+        <pitch>
+          <step>D</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <staff>1</staff>
+      </note>
+      <note>
+        <pitch>
+          <step>D</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <staff>1</staff>
+      </note>
+      <backup>
+        <duration>4</duration>
+      </backup>
+      <note>
+        <pitch>
+          <step>F</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>2</voice>
+        <type>quarter</type>
+        <staff>1</staff>
+      </note>
+      <note>
+        <pitch>
+          <step>F</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>2</voice>
+        <type>quarter</type>
+        <staff>1</staff>
+      </note>
+      <note>
+        <pitch>
+          <step>F</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>2</voice>
+        <type>quarter</type>
+        <staff>1</staff>
+      </note>
+      <note>
+        <pitch>
+          <step>F</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>2</voice>
+        <type>quarter</type>
+        <staff>1</staff>
+      </note>
+      <backup>
+        <duration>4</duration>
+      </backup>
+      <harmony>
+        <root>
+          <root-step>C</root-step>
+        </root>
+        <kind>major</kind>
+        <frame>
+          <frame-strings>6</frame-strings>
+          <frame-frets>4</frame-frets>
+          <frame-note>
+            <string>6</string>
+            <fret>0</fret>
+          </frame-note>
+          <frame-note>
+            <string>5</string>
+            <fret>3</fret>
+          </frame-note>
+          <frame-note>
+            <string>4</string>
+            <fret>2</fret>
+          </frame-note>
+          <frame-note>
+            <string>3</string>
+            <fret>0</fret>
+          </frame-note>
+          <frame-note>
+            <string>2</string>
+            <fret>1</fret>
+          </frame-note>
+          <frame-note>
+            <string>1</string>
+            <fret>0</fret>
+          </frame-note>
+        </frame>
+      </harmony>
+      <note>
+        <pitch>
+          <step>D</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>3</voice>
+        <type>quarter</type>
+        <staff>2</staff>
+      </note>
+      <harmony>
+        <root>
+          <root-step>D</root-step>
+        </root>
+        <kind>dominant</kind>
+        <frame>
+          <frame-strings>6</frame-strings>
+          <frame-frets>4</frame-frets>
+          <frame-note>
+            <string>6</string>
+            <fret>0</fret>
+          </frame-note>
+          <frame-note>
+            <string>5</string>
+            <fret>0</fret>
+          </frame-note>
+          <frame-note>
+            <string>4</string>
+            <fret>0</fret>
+          </frame-note>
+          <frame-note>
+            <string>3</string>
+            <fret>2</fret>
+          </frame-note>
+          <frame-note>
+            <string>2</string>
+            <fret>1</fret>
+          </frame-note>
+          <frame-note>
+            <string>1</string>
+            <fret>2</fret>
+          </frame-note>
+        </frame>
+      </harmony>
+      <note>
+        <pitch>
+          <step>D</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>3</voice>
+        <type>quarter</type>
+        <staff>2</staff>
+      </note>
+      <note>
+        <pitch>
+          <step>D</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>3</voice>
+        <type>quarter</type>
+        <staff>2</staff>
+      </note>
+      <harmony>
+        <root>
+          <root-step>C</root-step>
+        </root>
+        <kind>minor-seventh</kind>
+        <degree>
+          <degree-value>11</degree-value>
+          <degree-alter>0</degree-alter>
+          <degree-type>add</degree-type>
+        </degree>
+        <frame>
+          <frame-strings>6</frame-strings>
+          <frame-frets>4</frame-frets>
+          <frame-note>
+            <string>6</string>
+            <fret>0</fret>
+          </frame-note>
+          <frame-note>
+            <string>5</string>
+            <fret>3</fret>
+          </frame-note>
+          <frame-note>
+            <string>4</string>
+            <fret>1</fret>
+          </frame-note>
+          <frame-note>
+            <string>3</string>
+            <fret>3</fret>
+          </frame-note>
+          <frame-note>
+            <string>2</string>
+            <fret>1</fret>
+          </frame-note>
+          <frame-note>
+            <string>1</string>
+            <fret>1</fret>
+          </frame-note>
+        </frame>
+      </harmony>
+      <note>
+        <pitch>
+          <step>D</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>3</voice>
+        <type>quarter</type>
+        <staff>2</staff>
+      </note>
+      <backup>
+        <duration>4</duration>
+      </backup>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>2</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>4</voice>
+        <type>quarter</type>
+        <staff>2</staff>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>2</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>4</voice>
+        <type>quarter</type>
+        <staff>2</staff>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>2</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>4</voice>
+        <type>quarter</type>
+        <staff>2</staff>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>2</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>4</voice>
+        <type>quarter</type>
+        <staff>2</staff>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/71e-TabStaves.xml b/input/regression/musicxml/71e-TabStaves.xml
new file mode 100644 (file)
index 0000000..e63cf4b
--- /dev/null
@@ -0,0 +1,1515 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">Some tablature staves, with 
+          explicit fingering information and different string tunings given 
+          in the MusicXML file.</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <part-group number="1" type="start">
+      <group-symbol>bracket</group-symbol>
+      <group-barline>yes</group-barline>
+    </part-group>
+    <score-part id="P1">
+      <part-name>Guitar</part-name>
+      <part-abbreviation>Gtr.</part-abbreviation>
+    </score-part>
+    <score-part id="P2">
+      <part-name>Guitar</part-name>
+      <part-abbreviation>Gtr.</part-abbreviation>
+    </score-part>
+    <score-part id="P3">
+      <part-name>Guitar</part-name>
+      <part-abbreviation>Gtr.</part-abbreviation>
+    </score-part>
+    <score-part id="P4">
+      <part-name>Guitar</part-name>
+      <part-abbreviation>Gtr.</part-abbreviation>
+    </score-part>
+    <score-part id="P5">
+      <part-name>Bass Guitar</part-name>
+      <part-abbreviation>Bass</part-abbreviation>
+    </score-part>
+    <score-part id="P6">
+      <part-name>Banjo</part-name>
+      <part-abbreviation>Bjo.</part-abbreviation>
+    </score-part>
+    <score-part id="P7">
+      <part-name>Lute</part-name>
+      <part-abbreviation>L.</part-abbreviation>
+    </score-part>
+    <score-part id="P8">
+      <part-name>Ukulele</part-name>
+      <part-abbreviation>Uk.</part-abbreviation>
+    </score-part>
+    <part-group number="1" type="stop"/>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <clef>
+          <sign>TAB</sign>
+          <line>5</line>
+        </clef>
+        <staff-details>
+          <staff-lines>6</staff-lines>
+          <staff-tuning line="1">
+            <tuning-step>E</tuning-step>
+            <tuning-octave>2</tuning-octave>
+          </staff-tuning>
+          <staff-tuning line="2">
+            <tuning-step>A</tuning-step>
+            <tuning-octave>2</tuning-octave>
+          </staff-tuning>
+          <staff-tuning line="3">
+            <tuning-step>D</tuning-step>
+            <tuning-octave>3</tuning-octave>
+          </staff-tuning>
+          <staff-tuning line="4">
+            <tuning-step>G</tuning-step>
+            <tuning-octave>3</tuning-octave>
+          </staff-tuning>
+          <staff-tuning line="5">
+            <tuning-step>B</tuning-step>
+            <tuning-octave>3</tuning-octave>
+          </staff-tuning>
+          <staff-tuning line="6">
+            <tuning-step>E</tuning-step>
+            <tuning-octave>4</tuning-octave>
+          </staff-tuning>
+        </staff-details>
+      </attributes>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>none</stem>
+        <notations>
+          <technical>
+            <string>4</string>
+            <fret>5</fret>
+          </technical>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>E</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>none</stem>
+        <notations>
+          <technical>
+            <string>2</string>
+            <fret>17</fret>
+          </technical>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>none</stem>
+        <notations>
+          <technical>
+            <string>2</string>
+            <fret>1</fret>
+          </technical>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>E</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>none</stem>
+        <notations>
+          <technical>
+            <string>4</string>
+            <fret>2</fret>
+          </technical>
+        </notations>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="2">
+      <note>
+        <pitch>
+          <step>G</step>
+          <alter>1</alter>
+          <octave>2</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>none</stem>
+        <notations>
+          <technical>
+            <string>6</string>
+            <fret>4</fret>
+          </technical>
+        </notations>
+      </note>
+      <note>
+        <chord/>
+        <pitch>
+          <step>F</step>
+          <alter>1</alter>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>none</stem>
+        <notations>
+          <technical>
+            <string>4</string>
+            <fret>4</fret>
+          </technical>
+        </notations>
+      </note>
+      <note>
+        <chord/>
+        <pitch>
+          <step>G</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>none</stem>
+        <notations>
+          <technical>
+            <string>3</string>
+            <fret>0</fret>
+          </technical>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>D</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>none</stem>
+        <notations>
+          <technical>
+            <string>5</string>
+            <fret>5</fret>
+          </technical>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>G</step>
+          <alter>1</alter>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>none</stem>
+        <notations>
+          <technical>
+            <string>3</string>
+            <fret>1</fret>
+          </technical>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>E</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>none</stem>
+        <notations>
+          <technical>
+            <string>1</string>
+            <fret>0</fret>
+          </technical>
+        </notations>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+  <part id="P2">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <clef>
+          <sign>TAB</sign>
+          <line>5</line>
+        </clef>
+        <staff-details>
+          <staff-lines>6</staff-lines>
+          <staff-tuning line="1">
+            <tuning-step>E</tuning-step>
+            <tuning-octave>2</tuning-octave>
+          </staff-tuning>
+          <staff-tuning line="2">
+            <tuning-step>A</tuning-step>
+            <tuning-octave>2</tuning-octave>
+          </staff-tuning>
+          <staff-tuning line="3">
+            <tuning-step>D</tuning-step>
+            <tuning-octave>3</tuning-octave>
+          </staff-tuning>
+          <staff-tuning line="4">
+            <tuning-step>G</tuning-step>
+            <tuning-octave>3</tuning-octave>
+          </staff-tuning>
+          <staff-tuning line="5">
+            <tuning-step>B</tuning-step>
+            <tuning-octave>3</tuning-octave>
+          </staff-tuning>
+          <staff-tuning line="6">
+            <tuning-step>E</tuning-step>
+            <tuning-octave>4</tuning-octave>
+          </staff-tuning>
+        </staff-details>
+      </attributes>
+      <note>
+        <pitch>
+          <step>D</step>
+          <alter>1</alter>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>up</stem>
+        <notations>
+          <technical>
+            <string>2</string>
+            <fret>4</fret>
+          </technical>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>G</step>
+          <alter>1</alter>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>up</stem>
+        <notations>
+          <technical>
+            <string>3</string>
+            <fret>1</fret>
+          </technical>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>up</stem>
+        <notations>
+          <technical>
+            <string>5</string>
+            <fret>3</fret>
+          </technical>
+        </notations>
+      </note>
+      <note>
+        <rest/>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="2">
+      <note>
+        <pitch>
+          <step>F</step>
+          <alter>1</alter>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>up</stem>
+        <notations>
+          <technical>
+            <string>1</string>
+            <fret>2</fret>
+          </technical>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>up</stem>
+        <notations>
+          <technical>
+            <string>3</string>
+            <fret>0</fret>
+          </technical>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>up</stem>
+        <notations>
+          <technical>
+            <string>4</string>
+            <fret>5</fret>
+          </technical>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>F</step>
+          <alter>1</alter>
+          <octave>2</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>up</stem>
+        <notations>
+          <technical>
+            <string>6</string>
+            <fret>2</fret>
+          </technical>
+        </notations>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+  <part id="P3">
+    <measure number="1">
+      <attributes>
+        <divisions>2</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <clef>
+          <sign>TAB</sign>
+          <line>5</line>
+        </clef>
+        <staff-details>
+          <staff-lines>6</staff-lines>
+          <staff-tuning line="1">
+            <tuning-step>D</tuning-step>
+            <tuning-octave>2</tuning-octave>
+          </staff-tuning>
+          <staff-tuning line="2">
+            <tuning-step>A</tuning-step>
+            <tuning-octave>2</tuning-octave>
+          </staff-tuning>
+          <staff-tuning line="3">
+            <tuning-step>D</tuning-step>
+            <tuning-octave>3</tuning-octave>
+          </staff-tuning>
+          <staff-tuning line="4">
+            <tuning-step>F</tuning-step>
+            <tuning-alter>1</tuning-alter>
+            <tuning-octave>3</tuning-octave>
+          </staff-tuning>
+          <staff-tuning line="5">
+            <tuning-step>A</tuning-step>
+            <tuning-octave>3</tuning-octave>
+          </staff-tuning>
+          <staff-tuning line="6">
+            <tuning-step>E</tuning-step>
+            <tuning-octave>4</tuning-octave>
+          </staff-tuning>
+        </staff-details>
+      </attributes>
+      <note>
+        <pitch>
+          <step>A</step>
+          <alter>1</alter>
+          <octave>3</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>none</stem>
+        <notations>
+          <technical>
+            <string>2</string>
+            <fret>1</fret>
+          </technical>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>2</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <stem>none</stem>
+        <notations>
+          <technical>
+            <string>5</string>
+            <fret>2</fret>
+          </technical>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <stem>none</stem>
+        <notations>
+          <technical>
+            <string>3</string>
+            <fret>3</fret>
+          </technical>
+        </notations>
+      </note>
+      <note print-object="no">
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="2">
+      <note>
+        <pitch>
+          <step>G</step>
+          <alter>1</alter>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>none</stem>
+        <notations>
+          <technical>
+            <string>1</string>
+            <fret>4</fret>
+          </technical>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>D</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>none</stem>
+        <notations>
+          <technical>
+            <string>2</string>
+            <fret>5</fret>
+          </technical>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>G</step>
+          <alter>1</alter>
+          <octave>2</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>none</stem>
+        <notations>
+          <technical>
+            <string>6</string>
+            <fret>6</fret>
+          </technical>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>D</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>none</stem>
+        <notations>
+          <technical>
+            <string>4</string>
+            <fret>0</fret>
+          </technical>
+        </notations>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+  <part id="P4">
+    <measure number="1">
+      <attributes>
+        <divisions>2</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <clef>
+          <sign>TAB</sign>
+          <line>5</line>
+        </clef>
+        <staff-details>
+          <staff-lines>6</staff-lines>
+          <staff-tuning line="1">
+            <tuning-step>D</tuning-step>
+            <tuning-octave>2</tuning-octave>
+          </staff-tuning>
+          <staff-tuning line="2">
+            <tuning-step>A</tuning-step>
+            <tuning-octave>2</tuning-octave>
+          </staff-tuning>
+          <staff-tuning line="3">
+            <tuning-step>D</tuning-step>
+            <tuning-octave>3</tuning-octave>
+          </staff-tuning>
+          <staff-tuning line="4">
+            <tuning-step>G</tuning-step>
+            <tuning-octave>3</tuning-octave>
+          </staff-tuning>
+          <staff-tuning line="5">
+            <tuning-step>B</tuning-step>
+            <tuning-octave>3</tuning-octave>
+          </staff-tuning>
+          <staff-tuning line="6">
+            <tuning-step>D</tuning-step>
+            <tuning-octave>4</tuning-octave>
+          </staff-tuning>
+        </staff-details>
+      </attributes>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <stem>none</stem>
+        <notations>
+          <technical>
+            <string>3</string>
+            <fret>4</fret>
+          </technical>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>D</step>
+          <octave>2</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <stem>none</stem>
+        <notations>
+          <technical>
+            <string>5</string>
+            <fret>-7</fret>
+          </technical>
+        </notations>
+      </note>
+      <note>
+        <chord/>
+        <pitch>
+          <step>D</step>
+          <octave>2</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <stem>none</stem>
+        <notations>
+          <technical>
+            <string>6</string>
+            <fret>0</fret>
+          </technical>
+        </notations>
+      </note>
+      <note>
+        <chord/>
+        <pitch>
+          <step>G</step>
+          <octave>2</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <stem>none</stem>
+        <notations>
+          <technical>
+            <string>6</string>
+            <fret>5</fret>
+          </technical>
+        </notations>
+      </note>
+      <note>
+        <chord/>
+        <pitch>
+          <step>A</step>
+          <octave>2</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <stem>none</stem>
+        <notations>
+          <technical>
+            <string>5</string>
+            <fret>0</fret>
+          </technical>
+        </notations>
+      </note>
+      <note>
+        <chord/>
+        <pitch>
+          <step>A</step>
+          <octave>2</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <stem>none</stem>
+        <notations>
+          <technical>
+            <string>5</string>
+            <fret>0</fret>
+          </technical>
+        </notations>
+      </note>
+      <note print-object="no">
+        <rest/>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note print-object="no">
+        <rest/>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="2">
+      <note>
+        <pitch>
+          <step>D</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>none</stem>
+        <notations>
+          <technical>
+            <string>1</string>
+            <fret>0</fret>
+          </technical>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>D</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>none</stem>
+        <notations>
+          <technical>
+            <string>4</string>
+            <fret>0</fret>
+          </technical>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>2</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>none</stem>
+        <notations>
+          <technical>
+            <string>5</string>
+            <fret>0</fret>
+          </technical>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>D</step>
+          <octave>2</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>none</stem>
+        <notations>
+          <technical>
+            <string>6</string>
+            <fret>0</fret>
+          </technical>
+        </notations>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+  <part id="P5">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <clef>
+          <sign>TAB</sign>
+          <line>5</line>
+        </clef>
+        <staff-details>
+          <staff-lines>4</staff-lines>
+          <staff-tuning line="1">
+            <tuning-step>E</tuning-step>
+            <tuning-octave>1</tuning-octave>
+          </staff-tuning>
+          <staff-tuning line="2">
+            <tuning-step>A</tuning-step>
+            <tuning-octave>1</tuning-octave>
+          </staff-tuning>
+          <staff-tuning line="3">
+            <tuning-step>D</tuning-step>
+            <tuning-octave>2</tuning-octave>
+          </staff-tuning>
+          <staff-tuning line="4">
+            <tuning-step>G</tuning-step>
+            <tuning-octave>2</tuning-octave>
+          </staff-tuning>
+        </staff-details>
+      </attributes>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>2</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>none</stem>
+        <notations>
+          <technical>
+            <string>1</string>
+            <fret>0</fret>
+          </technical>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>E</step>
+          <octave>1</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>none</stem>
+        <notations>
+          <technical>
+            <string>4</string>
+            <fret>0</fret>
+          </technical>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>D</step>
+          <octave>2</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>none</stem>
+        <notations>
+          <technical>
+            <string>2</string>
+            <fret>0</fret>
+          </technical>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <alter>1</alter>
+          <octave>2</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>none</stem>
+        <notations>
+          <technical>
+            <string>2</string>
+            <fret>8</fret>
+          </technical>
+        </notations>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="2">
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>1</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>none</stem>
+        <notations>
+          <technical>
+            <string>3</string>
+            <fret>0</fret>
+          </technical>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>1</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>none</stem>
+        <notations>
+          <technical>
+            <string>3</string>
+            <fret>0</fret>
+          </technical>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>1</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>none</stem>
+        <notations>
+          <technical>
+            <string>3</string>
+            <fret>0</fret>
+          </technical>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>1</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>none</stem>
+        <notations>
+          <technical>
+            <string>3</string>
+            <fret>0</fret>
+          </technical>
+        </notations>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+  <part id="P6">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <clef>
+          <sign>TAB</sign>
+          <line>5</line>
+        </clef>
+        <staff-details>
+          <staff-lines>5</staff-lines>
+          <staff-tuning line="1">
+            <tuning-step>G</tuning-step>
+            <tuning-octave>4</tuning-octave>
+          </staff-tuning>
+          <staff-tuning line="2">
+            <tuning-step>D</tuning-step>
+            <tuning-octave>3</tuning-octave>
+          </staff-tuning>
+          <staff-tuning line="3">
+            <tuning-step>G</tuning-step>
+            <tuning-octave>3</tuning-octave>
+          </staff-tuning>
+          <staff-tuning line="4">
+            <tuning-step>C</tuning-step>
+            <tuning-octave>4</tuning-octave>
+          </staff-tuning>
+          <staff-tuning line="5">
+            <tuning-step>D</tuning-step>
+            <tuning-octave>4</tuning-octave>
+          </staff-tuning>
+        </staff-details>
+      </attributes>
+      <note>
+        <pitch>
+          <step>D</step>
+          <alter>1</alter>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>up</stem>
+        <notations>
+          <technical>
+            <string>2</string>
+            <fret>3</fret>
+          </technical>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>D</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>up</stem>
+        <notations>
+          <technical>
+            <string>4</string>
+            <fret>0</fret>
+          </technical>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>D</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>up</stem>
+        <notations>
+          <technical>
+            <string>1</string>
+            <fret>0</fret>
+          </technical>
+        </notations>
+      </note>
+      <note>
+        <rest/>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="2">
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>up</stem>
+        <notations>
+          <technical>
+            <string>3</string>
+            <fret>0</fret>
+          </technical>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>up</stem>
+        <notations>
+          <technical>
+            <string>5</string>
+            <fret>0</fret>
+          </technical>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>up</stem>
+        <notations>
+          <technical>
+            <string>5</string>
+            <fret>0</fret>
+          </technical>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>up</stem>
+        <notations>
+          <technical>
+            <string>5</string>
+            <fret>0</fret>
+          </technical>
+        </notations>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+  <part id="P7">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <clef>
+          <sign>TAB</sign>
+          <line>5</line>
+        </clef>
+        <staff-details show-frets="letters">
+          <staff-lines>6</staff-lines>
+          <staff-tuning line="1">
+            <tuning-step>G</tuning-step>
+            <tuning-octave>2</tuning-octave>
+          </staff-tuning>
+          <staff-tuning line="2">
+            <tuning-step>C</tuning-step>
+            <tuning-octave>3</tuning-octave>
+          </staff-tuning>
+          <staff-tuning line="3">
+            <tuning-step>F</tuning-step>
+            <tuning-octave>3</tuning-octave>
+          </staff-tuning>
+          <staff-tuning line="4">
+            <tuning-step>A</tuning-step>
+            <tuning-octave>3</tuning-octave>
+          </staff-tuning>
+          <staff-tuning line="5">
+            <tuning-step>D</tuning-step>
+            <tuning-octave>4</tuning-octave>
+          </staff-tuning>
+          <staff-tuning line="6">
+            <tuning-step>G</tuning-step>
+            <tuning-octave>4</tuning-octave>
+          </staff-tuning>
+        </staff-details>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <alter>1</alter>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>up</stem>
+        <notations>
+          <technical>
+            <string>3</string>
+            <fret>4</fret>
+          </technical>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <alter>1</alter>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>up</stem>
+        <notations>
+          <technical>
+            <string>5</string>
+            <fret>1</fret>
+          </technical>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>up</stem>
+        <notations>
+          <technical>
+            <string>1</string>
+            <fret>2</fret>
+          </technical>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>E</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>up</stem>
+        <notations>
+          <technical>
+            <string>3</string>
+            <fret>7</fret>
+          </technical>
+        </notations>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="2">
+      <note>
+        <pitch>
+          <step>D</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>up</stem>
+        <notations>
+          <technical>
+            <string>2</string>
+            <fret>0</fret>
+          </technical>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>F</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>up</stem>
+        <notations>
+          <technical>
+            <string>4</string>
+            <fret>0</fret>
+          </technical>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>2</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>up</stem>
+        <notations>
+          <technical>
+            <string>6</string>
+            <fret>0</fret>
+          </technical>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>up</stem>
+        <notations>
+          <technical>
+            <string>5</string>
+            <fret>0</fret>
+          </technical>
+        </notations>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+  <part id="P8">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <clef>
+          <sign>TAB</sign>
+          <line>5</line>
+        </clef>
+        <staff-details>
+          <staff-lines>4</staff-lines>
+          <staff-tuning line="1">
+            <tuning-step>A</tuning-step>
+            <tuning-octave>4</tuning-octave>
+          </staff-tuning>
+          <staff-tuning line="2">
+            <tuning-step>E</tuning-step>
+            <tuning-octave>4</tuning-octave>
+          </staff-tuning>
+          <staff-tuning line="3">
+            <tuning-step>C</tuning-step>
+            <tuning-octave>4</tuning-octave>
+          </staff-tuning>
+          <staff-tuning line="4">
+            <tuning-step>G</tuning-step>
+            <tuning-octave>4</tuning-octave>
+          </staff-tuning>
+        </staff-details>
+      </attributes>
+      <note>
+        <pitch>
+          <step>E</step>
+          <octave>6</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>up</stem>
+        <notations>
+          <technical>
+            <string>3</string>
+            <fret>24</fret>
+          </technical>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>up</stem>
+        <notations>
+          <technical>
+            <string>1</string>
+            <fret>4</fret>
+          </technical>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>up</stem>
+        <notations>
+          <technical>
+            <string>2</string>
+            <fret>0</fret>
+          </technical>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>E</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>up</stem>
+        <notations>
+          <technical>
+            <string>3</string>
+            <fret>0</fret>
+          </technical>
+        </notations>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="2">
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>up</stem>
+        <notations>
+          <technical>
+            <string>2</string>
+            <fret>0</fret>
+          </technical>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>up</stem>
+        <notations>
+          <technical>
+            <string>2</string>
+            <fret>0</fret>
+          </technical>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>up</stem>
+        <notations>
+          <technical>
+            <string>2</string>
+            <fret>0</fret>
+          </technical>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <stem>up</stem>
+        <notations>
+          <technical>
+            <string>2</string>
+            <fret>0</fret>
+          </technical>
+        </notations>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/71f-AllChordTypes.xml b/input/regression/musicxml/71f-AllChordTypes.xml
new file mode 100644 (file)
index 0000000..f54ec1f
--- /dev/null
@@ -0,0 +1,596 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+  <movement-title>All MusicXML chord names/types with &lt;root&gt;</movement-title>
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">All chord types defined in 
+          MusicXML. The staff will only contain one c' note (NO chord) for 
+          all of them, but the chord names should be properly 
+          printed.</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name>MusicXML Part</part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>2</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <harmony>
+        <root>
+          <root-step>C</root-step>
+        </root>
+        <kind>major</kind>
+      </harmony>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>major</text></lyric>
+      </note>
+      <harmony>
+        <root>
+          <root-step>C</root-step>
+        </root>
+        <kind>minor</kind>
+      </harmony>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>minor</text></lyric>
+      </note>
+      <harmony>
+        <root>
+          <root-step>C</root-step>
+        </root>
+        <kind>augmented</kind>
+      </harmony>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>augmented</text></lyric>
+      </note>
+      <harmony>
+        <root>
+          <root-step>C</root-step>
+        </root>
+        <kind>diminished</kind>
+      </harmony>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>diminished</text></lyric>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="2">
+      <harmony>
+        <root>
+          <root-step>C</root-step>
+        </root>
+        <kind>dominant</kind>
+      </harmony>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>dominant</text></lyric>
+      </note>
+      <harmony>
+        <root>
+          <root-step>C</root-step>
+        </root>
+        <kind>major-seventh</kind>
+      </harmony>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>major-seventh</text></lyric>
+      </note>
+      <harmony>
+        <root>
+          <root-step>C</root-step>
+        </root>
+        <kind>minor-seventh</kind>
+      </harmony>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>minor-seventh</text></lyric>
+      </note>
+      <harmony>
+        <root>
+          <root-step>C</root-step>
+        </root>
+        <kind>diminished-seventh</kind>
+      </harmony>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>diminished-seventh</text></lyric>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="3">
+      <harmony>
+        <root>
+          <root-step>C</root-step>
+        </root>
+        <kind>augmented-seventh</kind>
+      </harmony>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>augmented-seventh</text></lyric>
+      </note>
+      <harmony>
+        <root>
+          <root-step>C</root-step>
+        </root>
+        <kind>half-diminished</kind>
+      </harmony>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>half-diminished</text></lyric>
+      </note>
+      <harmony>
+        <root>
+          <root-step>C</root-step>
+        </root>
+        <kind>major-minor</kind>
+      </harmony>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>major-minor</text></lyric>
+      </note>
+      <harmony>
+        <root>
+          <root-step>C</root-step>
+        </root>
+        <kind>major-sixth</kind>
+      </harmony>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>major-sixth</text></lyric>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="4">
+      <harmony>
+        <root>
+          <root-step>C</root-step>
+        </root>
+        <kind>minor-sixth</kind>
+      </harmony>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>minor-sixth</text></lyric>
+      </note>
+      <harmony>
+        <root>
+          <root-step>C</root-step>
+        </root>
+        <kind>dominant-ninth</kind>
+      </harmony>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>dominant-ninth</text></lyric>
+      </note>
+      <harmony>
+        <root>
+          <root-step>C</root-step>
+        </root>
+        <kind>major-ninth</kind>
+      </harmony>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>major-ninth</text></lyric>
+      </note>
+      <harmony>
+        <root>
+          <root-step>C</root-step>
+        </root>
+        <kind>minor-ninth</kind>
+        <lyric number="1"><text>minor-ninth</text></lyric>
+      </harmony>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>minor-ninth</text></lyric>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="5">
+      <harmony>
+        <root>
+          <root-step>C</root-step>
+        </root>
+        <kind>dominant-11th</kind>
+      </harmony>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>dominant-11th</text></lyric>
+      </note>
+      <harmony>
+        <root>
+          <root-step>C</root-step>
+        </root>
+        <kind>major-11th</kind>
+      </harmony>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>major-11th</text></lyric>
+      </note>
+      <harmony>
+        <root>
+          <root-step>C</root-step>
+        </root>
+        <kind>minor-11th</kind>
+      </harmony>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>minor-11th</text></lyric>
+      </note>
+      <harmony>
+        <root>
+          <root-step>C</root-step>
+        </root>
+        <kind>dominant-13th</kind>
+      </harmony>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>dominant-13th</text></lyric>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="6">
+      <harmony>
+        <root>
+          <root-step>C</root-step>
+        </root>
+        <kind>major-13th</kind>
+      </harmony>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>major-13th</text></lyric>
+      </note>
+      <harmony>
+        <root>
+          <root-step>C</root-step>
+        </root>
+        <kind>minor-13th</kind>
+      </harmony>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>minor-13th</text></lyric>
+      </note>
+      <harmony>
+        <root>
+          <root-step>C</root-step>
+        </root>
+        <kind>suspended-second</kind>
+      </harmony>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>suspended-second</text></lyric>
+      </note>
+      <harmony>
+        <root>
+          <root-step>C</root-step>
+        </root>
+        <kind>suspended-fourth</kind>
+      </harmony>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>suspended-fourth</text></lyric>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="7">
+      <harmony>
+        <root>
+          <root-step>C</root-step>
+        </root>
+        <kind>Neapolitan</kind>
+      </harmony>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>Neapolitan</text></lyric>
+      </note>
+      <harmony>
+        <root>
+          <root-step>C</root-step>
+        </root>
+        <kind>Italian</kind>
+      </harmony>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>Italians</text></lyric>
+      </note>
+      <harmony>
+        <root>
+          <root-step>C</root-step>
+        </root>
+        <kind>French</kind>
+      </harmony>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>French</text></lyric>
+      </note>
+      <harmony>
+        <root>
+          <root-step>C</root-step>
+        </root>
+        <kind>German</kind>
+      </harmony>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+         <lyric number="1"><text>German</text></lyric>
+     </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="8">
+      <harmony>
+        <root>
+          <root-step>C</root-step>
+        </root>
+        <kind>pedal</kind>
+      </harmony>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>pedal</text></lyric>
+      </note>
+      <harmony>
+        <root>
+          <root-step>C</root-step>
+        </root>
+        <kind>power</kind>
+      </harmony>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>power</text></lyric>
+      </note>
+      <harmony>
+        <root>
+          <root-step>C</root-step>
+        </root>
+        <kind>Tristan</kind>
+      </harmony>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>Tristan</text></lyric>
+      </note>
+      <harmony>
+        <root>
+          <root-step>C</root-step>
+        </root>
+        <kind>other</kind>
+      </harmony>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>other</text></lyric>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="9">
+      <harmony>
+        <root>
+          <root-step>F</root-step>
+          <root-alter>1</root-alter>
+        </root>
+        <kind>major</kind>
+        <inversion>2</inversion>
+      </harmony>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>half</type>
+        <lyric number="1"><text>Inversion</text></lyric>
+      </note>
+      <harmony>
+        <root>
+          <root-step>F</root-step>
+          <root-alter>-2</root-alter>
+        </root>
+        <kind>major</kind>
+        <bass>
+          <bass-step>C</bass-step>
+        </bass>
+      </harmony>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <lyric number="1"><text>Fbb/C</text></lyric>
+      </note>
+      <harmony>
+        <root>
+          <root-step>G</root-step>
+          <root-alter>1</root-alter>
+        </root>
+        <kind>major</kind>
+        <bass>
+          <bass-step>D</bass-step>
+          <bass-alter>1</bass-alter>
+        </bass>
+      </harmony>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <lyric number="1"><text>G#/D#</text></lyric>
+      </note>
+      <harmony>
+        <root>
+          <root-step>C</root-step>
+        </root>
+        <kind>major</kind>
+      </harmony>
+      <note>
+        <rest/>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>C</text></lyric>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="10">
+      <harmony>
+        <root>
+          <root-step>C</root-step>
+        </root>
+        <kind>major</kind>
+        <degree>
+          <degree-value>3</degree-value>
+          <degree-alter>0</degree-alter>
+          <degree-type>subtract</degree-type>
+        </degree>
+        <degree>
+          <degree-value>5</degree-value>
+          <degree-alter>-1</degree-alter>
+          <degree-type>alter</degree-type>
+        </degree>
+      </harmony>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>C-3+5b</text></lyric>
+      </note>
+      <harmony>
+        <root>
+          <root-step>C</root-step>
+        </root>
+        <kind>major</kind>
+        <degree>
+          <degree-value>1</degree-value>
+          <degree-alter>0</degree-alter>
+          <degree-type>subtract</degree-type>
+        </degree>
+        <degree>
+          <degree-value>6</degree-value>
+          <degree-alter>-1</degree-alter>
+          <degree-type>add</degree-type>
+        </degree>
+      </harmony>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>C-1+6b</text></lyric>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/72-TransposingInstruments.itexi b/input/regression/musicxml/72-TransposingInstruments.itexi
new file mode 100644 (file)
index 0000000..8c1e192
--- /dev/null
@@ -0,0 +1 @@
+@unnumberedsec 72 ... Transposing instruments
diff --git a/input/regression/musicxml/72a-TransposingInstruments.xml b/input/regression/musicxml/72a-TransposingInstruments.xml
new file mode 100644 (file)
index 0000000..bbd3ef8
--- /dev/null
@@ -0,0 +1,333 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.1 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise version="1.1">
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">Transposing instruments: Trumpet 
+          in Bb, Horn in Eb, Piano; All of them show the C major scale (the 
+          trumpet with 2 sharp, the horn with 3 sharp).</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name>Trumpet in Bb</part-name>
+      <part-abbreviation>Bb Tpt.</part-abbreviation>
+    </score-part>
+    <score-part id="P2">
+      <part-name>Horn in Eb</part-name>
+      <part-abbreviation>Hn.</part-abbreviation>
+    </score-part>
+    <score-part id="P3">
+      <part-name>Piano</part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>2</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+        <transpose>
+          <diatonic>-1</diatonic>
+          <chromatic>-2</chromatic>
+        </transpose>
+      </attributes>
+      <note>
+        <pitch>
+          <step>D</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>E</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>F</step>
+          <alter>1</alter>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="2">
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <alter>1</alter>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>D</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+  <part id="P2">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>3</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+        <transpose>
+          <diatonic>-5</diatonic>
+          <chromatic>-9</chromatic>
+        </transpose>
+      </attributes>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <alter>1</alter>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>D</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="2">
+      <note>
+        <pitch>
+          <step>E</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>F</step>
+          <alter>1</alter>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>G</step>
+          <alter>1</alter>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+  <part id="P3">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>D</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>E</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>F</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="2">
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>B</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/72b-TransposingInstruments-Full.xml b/input/regression/musicxml/72b-TransposingInstruments-Full.xml
new file mode 100644 (file)
index 0000000..6a090be
--- /dev/null
@@ -0,0 +1,453 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.1 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise version="1.1">
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">Various transposition. Each
+          part plays a c'', just displayed in different display pitches.
+          The second-to-last staff uses a transposition where the displayed c'
+          is an actual f''' concert pitch. The final staff is an untransposed
+          instrument.</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name>Clarinet in Eb</part-name>
+      <part-abbreviation>Eb Cl.</part-abbreviation>
+    </score-part>
+    <score-part id="P2">
+      <part-name>Clarinet in Bb</part-name>
+      <part-abbreviation>Bb Cl.</part-abbreviation>
+    </score-part>
+    <score-part id="P3">
+      <part-name>Clarinet in A</part-name>
+      <part-abbreviation>A Cl.</part-abbreviation>
+    </score-part>
+    <score-part id="P4">
+      <part-name>Horn in F</part-name>
+      <part-abbreviation>Hn.</part-abbreviation>
+    </score-part>
+    <score-part id="P5">
+      <part-name>Horn in Eb</part-name>
+      <part-abbreviation>Hn.</part-abbreviation>
+    </score-part>
+    <score-part id="P6">
+      <part-name>Piccolo Trumpet in A</part-name>
+      <part-abbreviation>Picc.Tpt.</part-abbreviation>
+    </score-part>
+    <score-part id="P7">
+      <part-name>Trumpet in Bb</part-name>
+      <part-abbreviation>Bb Tpt.</part-abbreviation>
+    </score-part>
+    <score-part id="P8">
+      <part-name>Trumpet in C</part-name>
+      <part-abbreviation>C Tpt.</part-abbreviation>
+    </score-part>
+    <score-part id="P9">
+      <part-name>Trumpet in D</part-name>
+      <part-abbreviation>D Tpt.</part-abbreviation>
+    </score-part>
+    <score-part id="P10">
+      <part-name>displayed c'=fis'''</part-name>
+    </score-part>
+    <score-part id="P11">
+      <part-name print-object="no">MusicXML Part</part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>4</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+        <transpose>
+          <diatonic>2</diatonic>
+          <chromatic>3</chromatic>
+        </transpose>
+      </attributes>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+  <part id="P2">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>3</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+        <transpose>
+          <diatonic>-1</diatonic>
+          <chromatic>-2</chromatic>
+        </transpose>
+      </attributes>
+      <note>
+        <pitch>
+          <step>D</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+  <part id="P3">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>-2</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+        <transpose>
+          <diatonic>-2</diatonic>
+          <chromatic>-3</chromatic>
+        </transpose>
+      </attributes>
+      <note>
+        <pitch>
+          <step>E</step>
+          <alter>-1</alter>
+          <octave>5</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+  <part id="P4">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>2</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+        <transpose>
+          <diatonic>-4</diatonic>
+          <chromatic>-7</chromatic>
+        </transpose>
+      </attributes>
+      <note>
+        <pitch>
+          <step>G</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+  <part id="P5">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>4</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+        <transpose>
+          <diatonic>-5</diatonic>
+          <chromatic>-9</chromatic>
+        </transpose>
+      </attributes>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+  <part id="P6">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>-2</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+        <transpose>
+          <diatonic>5</diatonic>
+          <chromatic>9</chromatic>
+        </transpose>
+      </attributes>
+      <note>
+        <pitch>
+          <step>E</step>
+          <alter>-1</alter>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+  <part id="P7">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>3</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+        <transpose>
+          <diatonic>-1</diatonic>
+          <chromatic>-2</chromatic>
+        </transpose>
+      </attributes>
+      <note>
+        <pitch>
+          <step>D</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+  <part id="P8">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>1</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+  <part id="P9">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>-1</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+        <transpose>
+          <diatonic>1</diatonic>
+          <chromatic>2</chromatic>
+        </transpose>
+      </attributes>
+      <note>
+        <pitch>
+          <step>B</step>
+          <alter>-1</alter>
+          <octave>4</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+  <part id="P10">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>7</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>F</sign>
+          <line>4</line>
+          <clef-octave-change>-1</clef-octave-change>
+        </clef>
+        <transpose>
+          <diatonic>3</diatonic>
+          <chromatic>6</chromatic>
+          <octave-change>3</octave-change>
+        </transpose>
+      </attributes>
+      <note>
+        <pitch>
+          <step>F</step>
+          <alter>1</alter>
+          <octave>1</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+  <part id="P11">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>1</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/73-Percussion.itexi b/input/regression/musicxml/73-Percussion.itexi
new file mode 100644 (file)
index 0000000..ed74f26
--- /dev/null
@@ -0,0 +1 @@
+@unnumberedsec 73 ... Percussion
diff --git a/input/regression/musicxml/73a-Percussion.xml b/input/regression/musicxml/73a-Percussion.xml
new file mode 100644 (file)
index 0000000..9b8d69c
--- /dev/null
@@ -0,0 +1,201 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise version="1.1">
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">Three types of percussion staves: 
+          A five-line staff with bass clef for Timpani, a five-line staff with 
+          percussion clef, and a one-line percussion staff with only unpitched 
+          notes.</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name>Timpani</part-name>
+      <part-abbreviation>Timp.</part-abbreviation>
+    </score-part>
+    <part-group number="1" type="start">
+      <group-symbol>bracket</group-symbol>
+      <group-barline>yes</group-barline>
+    </part-group>
+    <score-part id="P2">
+      <part-name>Cymbals</part-name>
+      <part-abbreviation>Cym.</part-abbreviation>
+    </score-part>
+    <score-part id="P3">
+      <part-name>Triangle</part-name>
+      <part-abbreviation>Tri.</part-abbreviation>
+    </score-part>
+    <part-group number="1" type="stop"/>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time>
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>F</sign>
+          <line>4</line>
+        </clef>
+      </attributes>
+      <note>
+        <pitch>
+          <step>E</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>4</duration>
+        <tie type="start"/>
+        <voice>1</voice>
+        <type>whole</type>
+        <notations>
+          <tied type="start"/>
+          <ornaments/>
+        </notations>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="2">
+      <note>
+        <pitch>
+          <step>E</step>
+          <octave>3</octave>
+        </pitch>
+        <duration>2</duration>
+        <tie type="stop"/>
+        <voice>1</voice>
+        <type>half</type>
+        <notations>
+          <tied type="stop"/>
+          <ornaments/>
+        </notations>
+      </note>
+      <note>
+        <pitch>
+          <step>A</step>
+          <octave>2</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+  <part id="P2">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time>
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>percussion</sign>
+        </clef>
+      </attributes>
+      <note>
+        <unpitched>
+          <display-step>E</display-step>
+          <display-octave>5</display-octave>
+        </unpitched>
+        <duration>3</duration>
+        <voice>1</voice>
+        <type>half</type>
+        <dot/>
+      </note>
+      <note>
+        <unpitched>
+          <display-step>C</display-step>
+          <display-octave>5</display-octave>
+        </unpitched>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="2">
+      <note>
+        <unpitched>
+          <display-step>D</display-step>
+          <display-octave>5</display-octave>
+        </unpitched>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+  <part id="P3">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <time>
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>percussion</sign>
+        </clef>
+        <staff-details>
+          <staff-lines>1</staff-lines>
+        </staff-details>
+      </attributes>
+      <note>
+        <unpitched>
+          <display-step>F</display-step>
+          <display-octave>4</display-octave>
+        </unpitched>
+        <duration>3</duration>
+        <voice>1</voice>
+        <type>half</type>
+        <dot/>
+      </note>
+      <note>
+        <unpitched>
+          <display-step>F</display-step>
+          <display-octave>4</display-octave>
+        </unpitched>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="2">
+      <note>
+        <unpitched>
+          <display-step>E</display-step>
+          <display-octave>4</display-octave>
+        </unpitched>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>whole</type>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/74-Figured-Bass.itexi b/input/regression/musicxml/74-Figured-Bass.itexi
new file mode 100644 (file)
index 0000000..73e8be1
--- /dev/null
@@ -0,0 +1 @@
+@unnumberedsec 74 ... Figured bass
diff --git a/input/regression/musicxml/74a-FiguredBass.xml b/input/regression/musicxml/74a-FiguredBass.xml
new file mode 100644 (file)
index 0000000..9ffb812
--- /dev/null
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise version="1.1">
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">Some figured bass containing 
+          alterated figures, bracketed figures and slashed figures. The last 
+          note contains an empty &lt;figured-bass&gt; element, which is 
+          invalid MusicXML, to check how well applications cope with malformed 
+          files.
+
+          Note that this file does not contain any extenders!</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name>MusicXML Part</part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>8</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <figured-bass>
+        <figure><figure-number>3</figure-number></figure>
+        <duration>4</duration>
+      </figured-bass>
+      <note>
+        <pitch><step>G</step><octave>4</octave></pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+      </note>
+      <note>
+        <pitch><step>G</step><octave>4</octave></pitch>
+        <duration>4</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+      </note>
+      <figured-bass>
+        <figure><prefix>sharp</prefix><figure-number>1</figure-number></figure>
+        <figure><prefix>flat</prefix><figure-number>3</figure-number></figure>
+        <figure><prefix>natural</prefix><figure-number>5</figure-number></figure>
+        <duration>6</duration>
+      </figured-bass>
+      <note>
+        <pitch><step>G</step><octave>4</octave></pitch>
+        <duration>6</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <dot/>
+      </note>
+      <figured-bass parentheses="yes">
+        <figure><figure-number>6</figure-number></figure>
+      </figured-bass>
+      <note>
+        <pitch><step>G</step><octave>4</octave></pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>16th</type>
+      </note>
+      <figured-bass>
+        <figure><figure-number>5</figure-number><suffix>slash</suffix></figure>
+        <figure><prefix>flat</prefix><figure-number>127</figure-number><suffix>slash</suffix></figure>
+        <duration>8</duration>
+      </figured-bass>
+      <note>
+        <pitch><step>G</step><octave>4</octave></pitch>
+        <duration>8</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <dot/>
+      </note>
+      <!-- Check how well the application handles an empty element (invalid MusicXML!) -->
+      <figured-bass>
+      </figured-bass>
+      <note>
+        <pitch><step>G</step><octave>4</octave></pitch>
+        <duration>8</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+      </note>
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+  </part>
+  <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/75-OtherInstruments.itexi b/input/regression/musicxml/75-OtherInstruments.itexi
new file mode 100644 (file)
index 0000000..60b095d
--- /dev/null
@@ -0,0 +1 @@
+@unnumberedsec 75 ... Other instrumental notation
diff --git a/input/regression/musicxml/75a-AccordionRegistrations.xml b/input/regression/musicxml/75a-AccordionRegistrations.xml
new file mode 100644 (file)
index 0000000..0189368
--- /dev/null
@@ -0,0 +1,359 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 2.0 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise version="2.0">
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">All possible accordion 
+          registrations.</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name></part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <!-- Direction type can contain the following child types:
+         rehearsal+ | segno+ | words+ |
+         coda+ | wedge | dynamics+ | dashes | bracket | pedal | 
+         metronome | octave-shift | harp-pedals | damp | 
+         damp-all | eyeglasses | scordatura | image |
+         accordion-registration | other-direction -->
+    <!-- Rehearsal marks -->
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>4</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+      <direction>
+        <direction-type>
+          <accordion-registration>
+              <accordion-low/>
+          </accordion-registration>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>0/0/1</text></lyric>
+      </note>
+      <direction>
+        <direction-type>
+          <accordion-registration>
+              <accordion-middle>1</accordion-middle>
+          </accordion-registration>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>0/1/0</text></lyric>
+      </note>
+      <direction>
+        <direction-type>
+          <accordion-registration>
+              <accordion-middle>1</accordion-middle>
+              <accordion-low/>
+          </accordion-registration>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>0/1/1</text></lyric>
+      </note>
+      <direction>
+        <direction-type>
+          <accordion-registration>
+              <accordion-middle>2</accordion-middle>
+          </accordion-registration>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>0/2/0</text></lyric>
+      </note>
+    </measure>
+    <measure number="2">
+      <direction>
+        <direction-type>
+          <accordion-registration>
+              <accordion-middle>2</accordion-middle>
+              <accordion-low/>
+          </accordion-registration>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>0/2/1</text></lyric>
+      </note>
+      <direction>
+        <direction-type>
+          <accordion-registration>
+              <accordion-middle>3</accordion-middle>
+          </accordion-registration>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>0/3/0</text></lyric>
+      </note>
+      <direction>
+        <direction-type>
+          <accordion-registration>
+              <accordion-middle>3</accordion-middle>
+              <accordion-low/>
+          </accordion-registration>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>0/3/1</text></lyric>
+      </note>
+      <direction>
+        <direction-type>
+          <accordion-registration>
+              <accordion-high/>
+              <accordion-low/>
+          </accordion-registration>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>1/0/1</text></lyric>
+      </note>
+    </measure>
+    <measure number="3">
+      <direction>
+        <direction-type>
+          <accordion-registration>
+              <accordion-high/>
+          </accordion-registration>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>1/0/0</text></lyric>
+      </note>
+      <direction>
+        <direction-type>
+          <accordion-registration>
+              <accordion-high/>
+              <accordion-middle>1</accordion-middle>
+          </accordion-registration>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>1/1/0</text></lyric>
+      </note>
+      <direction>
+        <direction-type>
+          <accordion-registration>
+              <accordion-high/>
+              <accordion-middle>1</accordion-middle>
+              <accordion-low/>
+          </accordion-registration>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>1/1/1</text></lyric>
+      </note>
+      <direction>
+        <direction-type>
+          <accordion-registration>
+              <accordion-high/>
+              <accordion-middle>2</accordion-middle>
+          </accordion-registration>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>1/2/0</text></lyric>
+      </note>
+    </measure>
+    <measure number="4">
+      <direction>
+        <direction-type>
+          <accordion-registration>
+              <accordion-high/>
+              <accordion-middle>2</accordion-middle>
+              <accordion-low/>
+          </accordion-registration>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>1/2/1</text></lyric>
+      </note>
+      <direction>
+        <direction-type>
+          <accordion-registration>
+              <accordion-high/>
+              <accordion-middle>3</accordion-middle>
+          </accordion-registration>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>1/3/0</text></lyric>
+      </note>
+      <direction>
+        <direction-type>
+          <accordion-registration>
+              <accordion-high/>
+              <accordion-middle>3</accordion-middle>
+              <accordion-low/>
+          </accordion-registration>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>1/3/1</text></lyric>
+      </note>
+      <!-- Special cases: No accordion-(high|middle|low) given, empty middle, 
+           middle with invalid value, middle with 0 -->
+      <direction>
+        <direction-type>
+          <accordion-registration>
+          </accordion-registration>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>empty</text></lyric>
+      </note>
+    </measure>
+    <measure number="5">
+      <direction>
+        <direction-type>
+          <accordion-registration>
+              <accordion-high/>
+              <accordion-middle/>
+              <accordion-low/>
+          </accordion-registration>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>empty M</text></lyric>
+      </note>
+      <direction>
+        <direction-type>
+          <accordion-registration>
+              <accordion-high/>
+              <accordion-middle>test</accordion-middle>
+              <accordion-low/>
+          </accordion-registration>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>inval.M</text></lyric>
+      </note>
+      <direction>
+        <direction-type>
+          <accordion-registration>
+              <accordion-high/>
+              <accordion-middle>0</accordion-middle>
+              <accordion-low/>
+          </accordion-registration>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>M=0</text></lyric>
+      </note>
+      <direction>
+        <direction-type>
+          <accordion-registration>
+              <accordion-high/>
+              <accordion-middle>5</accordion-middle>
+              <accordion-low/>
+          </accordion-registration>
+        </direction-type>
+      </direction>
+      <note>
+        <pitch><step>C</step><octave>4</octave></pitch>
+        <duration>1</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <lyric number="1"><text>M=5</text></lyric>
+      </note>
+      
+      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+    </measure>
+    <!--=======================================================-->
+  </part>
+  <!--=========================================================-->
+</score-partwise>
diff --git a/input/regression/musicxml/90-Compressed-MusicXML.itexi b/input/regression/musicxml/90-Compressed-MusicXML.itexi
new file mode 100644 (file)
index 0000000..5f2cfc4
--- /dev/null
@@ -0,0 +1 @@
+@unnumberedsec 90 ... Compressed MusicXML files
diff --git a/input/regression/musicxml/90a-Compressed-MusicXML.mxl b/input/regression/musicxml/90a-Compressed-MusicXML.mxl
new file mode 100644 (file)
index 0000000..d709094
Binary files /dev/null and b/input/regression/musicxml/90a-Compressed-MusicXML.mxl differ
diff --git a/input/regression/musicxml/99-Compatibility.itexi b/input/regression/musicxml/99-Compatibility.itexi
new file mode 100644 (file)
index 0000000..86f5917
--- /dev/null
@@ -0,0 +1 @@
+@unnumberedsec 99 ... Compatibility with broken MusicXML
index 07d97a88e6042683231142748046ada975431423..1d30c280fb4dc40b73b3c99a49bd4ba8c0db7ece 100644 (file)
@@ -1,7 +1,6 @@
 <?xml version='1.0' encoding='UTF-8' standalone='no'?>
 <!DOCTYPE score-partwise PUBLIC '-//Recordare//DTD MusicXML 1.1 Partwise//EN' 'http://www.musicxml.org/dtds/partwise.dtd'>
 <score-partwise version='1.1'>
-        <movement-title>Ignore beaming in files from Dolet 3 for Sibelius</movement-title>
         <identification>
                 <encoding>
                         <software>Sibelius 5.1</software>
@@ -9,11 +8,17 @@
                         <supports element='accidental' type='no'/>
                         <supports element='transpose' type='no'/>
                 </encoding>
+                <miscellaneous>
+                        <miscellaneous-field name="description">Dolet 3 for 
+                            Sibelius (5.1) did not print out any closing beam 
+                            tags, only starting and continuing beam tags. For 
+                            such files, one either needs to ignore all beaming
+                            information or close all beams </miscellaneous-field>
+                </miscellaneous>
         </identification>
-        <defaults/>
         <part-list>
                 <score-part id='P1'>
-                        <part-name>Part 1</part-name>
+                        <part-name></part-name>
                 </score-part>
         </part-list>
 <!--=========================================================-->
                                 <beam number='2'>continue</beam>
                                 <beam number='3'>continue</beam>
                         </note>
+                        <note dynamics='31'>
+                                <pitch>
+                                        <step>F</step>
+                                        <alter>1</alter>
+                                        <octave>6</octave>
+                                </pitch>
+                                <duration>96</duration>
+                                <voice>1</voice>
+                                <type>32nd</type>
+                                <beam number='1'>continue</beam>
+                        </note>
+                        <note dynamics='31'>
+                                <pitch>
+                                        <step>F</step>
+                                        <alter>1</alter>
+                                        <octave>6</octave>
+                                </pitch>
+                                <duration>384</duration>
+                                <voice>1</voice>
+                                <type>eighth</type>
+                        </note>
                         <note dynamics='47'>
                                 <pitch>
                                         <step>G</step>
@@ -71,9 +97,8 @@
                                 <duration>96</duration>
                                 <voice>1</voice>
                                 <type>32nd</type>
-                                <beam number='1'>continue</beam>
-                                <beam number='2'>continue</beam>
-                                <beam number='3'>continue</beam>
+                                <beam number='2'>begin</beam>
+                                <beam number='3'>begin</beam>
                         </note>
                         <note dynamics='47'>
                                 <pitch>
index 417faa724dbc3b7febd8551bf2d681a5f8285755..a2626c0f2e42a480897f6f802fc2fae46a0f08ae 100644 (file)
@@ -2,14 +2,18 @@
 <!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.1 Partwise//EN"
                                 "http://www.musicxml.org/dtds/partwise.dtd">
 <score-partwise version="1.1">
-  <movement-title>Lyrics and melismata</movement-title>
   <identification>
     <encoding>
       <software>Sibelius 5.1</software>
       <software>Dolet 3.4 for Sibelius</software>
     </encoding>
+    <miscellaneous>
+      <miscellaneous-field name="description">If we properly ignore all beaming 
+          information from the Dolet 3 for Sibelius export file, make sure that 
+          the lyrics syllables are still assigned to the correct 
+          notes.</miscellaneous-field>
+    </miscellaneous>
   </identification>
-  <defaults/>
   <part-list>
     <score-part id="P1">
       <part-name></part-name>
diff --git a/input/regression/musicxml/AAA-intro-regression.ly b/input/regression/musicxml/AAA-intro-regression.ly
deleted file mode 100644 (file)
index 5e4914f..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-\version "2.10.0"
-%% +.ly: Be the first .ly file for lys-to-tely.py.
-%% Better to make lys-to-tely.py include "introduction.texi" or
-%% other .texi documents too?
-
-
-\header{
-texidoc =
-
-#(string-append "@unnumbered MusicXML regression and coverage test
-
-This document presents proofs for the musicxml2ly script provided with
-LilyPond " (lilypond-version) ". The files don't have a description yet, so 
-there is no official indication when the output is wrong.
-These snippets are provided as unit test files in MusicXML, converted to
-a .ly file by musicxml2ly and then processed by lilypond as usual.
-
-If something does not seem wright in the output, it might either be that this
-feature has not been implemented yet, has been wrongly implemented, or a regression
-has crept in recently...
-This document is intended for finding bugs and for documenting bugfixes.
-
-In the web version of this document, you can click on the file name 
-or figure for each example to see the corresponding .ly intermediary file.
-
-TODO: Find a way to add a description to the .ly files for texinfo.
-
-The files are categorized by their first two digits with the following meaning:
-@itemize
-@item 00 ... Basics: Pitches, durations, rests, clefs, keys, time sigs, ties, etc.
-@item 01 ... Chords
-@item 02 ... MusicXML notations and articulations (articulations, ornaments, technicals, text markup)
-@item 03 ... MusicXML directions (dynamics; single symbols, not spanners like hairpins)
-@item 04 ... Spanners (hairpin, octave shift, trill, glissando, etc.)
-@item 05 ... Header information (title, composer, poet, etc.)
-@item 06 ... Lyrics
-@item 08 ... Multiple parts (staves)
-@item 09 ... Measure issues: Repeats, barlines, pickup measures, mid-measure barlines/repeats
-@item 10 ... Multiple voices per staff
-@item 12 ... Triplets, Tuplets
-@item 13 ... Grace notes
-@item 14 ... Multi-staff parts (one voice on multiple staves, e.g. PianoStaff)
-@item 15 ... Percussion
-@item 17 ... Guitar notation: Chord names, Fretboards, Tablature notation
-@item 18 ... Figured bass
-@item 19 ... Page layout: font/paper size, margins, spacing
-@item 20 ... Compressed MusicXML files
-@item 99 ... Compatibility modes with broken MusicXML exporters (i.e. ignore beams for Sibelius 5)
-@end itemize
-")
-
-}
-
-%
-% make sure the .png is generated.
-%
-\lyrics { "(left blank intentionally)" }
\ No newline at end of file
index ae9d27a768ec517dad8c0cca4b6506580ce2ade5..bc0f6b519d8fc744e4e0bd528d895904d85cc2f4 100644 (file)
@@ -3,8 +3,23 @@ depth = ../../..
 STEPMAKE_TEMPLATES=documentation texinfo tex
 LOCALSTEPMAKE_TEMPLATES=lilypond ly lysdoc musicxml
 
+
+
+# Urgh, how can I do two replacements at once without messing up the order of the list?
+TMP = $(sort $(MUSICXML_FILES) $(MUSICMXL_FILES) $(TEXINFO_SOURCES) )
+TMP1 = ${TMP:%.xml=$(outdir)/%.ly}
+COLLATED_FILES = ${TMP1:%.mxl=$(outdir)/%.ly}
+
+
 include $(depth)/make/stepmake.make
-TITLE=Lilypond musicxml2ly Regression Tests
 
-MXL_FILES := $(call src-wildcard,*.mxl)
-EXTRA_DIST_FILES += $(MXL_FILES)
+
+TITLE=Unofficial MusicXML test suite
+TEST_SUITE_VERSION=0.1
+
+local-WWW-2: zip
+
+zip: $(outdir)/MusicXML-TestSuite-$(TEST_SUITE_VERSION).zip
+
+$(outdir)/MusicXML-TestSuite-$(TEST_SUITE_VERSION).zip: $(MUSICXML_FILES) $(MUSICMXL_FILES)
+       $(ZIP) -r $@ $(addprefix $(src-dir)/,$(MUSICXML_FILES)) $(addprefix $(src-dir)/,$(MUSICMXL_FILES))
index c4c59d26a73646d46290d055c10c39a885ab085c..7b455e74f8e7adf133272a77edb68c54aaaecae1 100644 (file)
@@ -26,4 +26,4 @@
     }
 >>
 
-\version "2.11.51"
+\version "2.12.0"
index 4254916defff9ad39b1a543042d1a7a8acadd72e..a261fbe83ed22f2371ba4179e9252c5c3db9b1df 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 % possible rename to staff-something.  -gp
 
 \header{ texidoc = "@cindex Staff Remove
index 3c0738c96c42c214150bd8e4ea729d21b14fc813..8749ae0f51a76a1de89ec8d2fbcb2aab88e5a553 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.52"
+\version "2.12.0"
 \header {
   texidoc = "Bar lines are positioned correctly when using custom
 staves which are not centered around position@tie{}0.
index 2de070a5738bc4b41374eb803347685a679dfd50..f4d9e94e3d153485a5f7c4e2ee2d7e67ca075be6 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 
 \header{
   texidoc=" By default, text is set with empty horizontal dimensions.  
index 73a7ff8ebae9f47ebece46d9c3998573a6c3b6ef..cf68bae01bbe982de6f320b8bc75c602b6cad09d 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
   texidoc = "Note heads are flipped on the stem to prevent collisions.
index f7e4f48b245decd576d93276a2d62b248d40a118..9f15136a838034500645198d451e621bed1da6c3 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.58"
+\version "2.12.0"
 
 \header {
   texidoc = "
index 64eba923e960f3d6d1f76f8cfe95af02ae942c32..be2b49aa79fe57f99eeb647c09908cfa63ef9d38 100644 (file)
@@ -6,7 +6,7 @@
 }
 
 
-\version "2.11.51"
+\version "2.12.0"
 
 \paper {
   ragged-right = ##t
index 9edbc5427a0a2d0d833402e80613ed3299fe951b..775ab0c93b99d023f6504c725325a40e45363c75 100644 (file)
@@ -13,7 +13,7 @@
   ragged-right = ##t 
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 
 {
index dcde23c6d8ec8850205e8d27fe295b52dc6d045e..b4d24ca852036dd0df8d9975ec63c8307043a5db 100644 (file)
@@ -5,7 +5,7 @@ is adjusted according to the step of the scale, as measured relative
 to the @code{tonic} property."
 
 }
-\version "2.11.51"
+\version "2.12.0"
 
 fragment = {
   \key c \major
index 3071c54de63189bbc25015dea10e76277536f9e3..98d33a27f57ed55baf522bfa96cbda15697a100d 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 \header{
   texidoc="
 Note head shapes may be set from several choices.  
index 47c35f9d095b26e072cea80e33fe79784e2e5266..a59378224ee6d83d64c00c68cf53164914bed68b 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
   texidoc = "Note head lines (e.g. glissando)
index fa673aac2fb7195ac46c8490909a6ee5b68a7438..72ce5649fa3032ecddfac8eeb50158adcf4c1515 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 
 \header{
   texidoc=" The number of stafflines of a staff can be set.  Ledger
index 1ffdb31aee43427ccb65397679d51e51bb02c253..3205a976d5b65de086ede256f97b1904a102c311 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header{
     texidoc="The optimal page breaker will stretch the
index da820deac2c55a15c4ca184649ce94ff19ae00b7..db2a869d74911234c2029381df48deefadb7b7f3 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 \header {
   
   texidoc = "Print the option help text, for comparison against
index a97629e7145a43bcae8dcc9909f364d0d16b3b60..f9263c7596ecb27471de48f6f4723ec129fee298 100644 (file)
@@ -10,7 +10,7 @@ the end of the line (regardless of prefatory matter).
 
 }
 
-\version "2.11.53"
+\version "2.12.0"
 
 
 \layout { ragged-right = ##t }
index 604b5839521d2c5b0a9cc3d31961e55c1a0d502a..4a4680fe5986ebbf06b792878b05ff79812eb765 100644 (file)
@@ -5,7 +5,7 @@
   "Both edge heights of an ottava bracket can be specified."
 }
 
-\version "2.11.53"
+\version "2.12.0"
 
 
 \layout { ragged-right = ##t} 
index 3aa9e035329eea80e1e4cdb766d7c06d89eb2435..1c133a195a0ca699ed753e2775ec47b7f2a6a52b 100644 (file)
@@ -11,7 +11,7 @@ markup can be tuned with @code{Staff.ottavation}.
 
 }
 
-\version "2.11.53"
+\version "2.12.0"
 
 %% . There must be a minimum distance between the octavation line and the
 %%   topmost staff line, taking into account the height of the closing
index f06eaa33cd24372ebbcc53eefaed6f8a7ee5b794..b1445374ad5e95ee7470e79197a7a74a6e40e582 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
   texidoc = "Sublist of grob property lists may be also tuned.  In the
index 37616ecb9c31acc1cc14627953527fee37e49d1d..9ec2278784403d55f0d005ee25657e2f69a8027c 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
   texidoc = "Page breaks work when they are placed at the end of a score,
index bd3bc2506b7ce67ef46720884e375056c841089f..6c5feeb30f6053cca2dfbb2fd8cf0b0d6725c26b 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
   texidoc = "Page breaking and page turning commands (@code{\\pageBreak}, 
index 0e5d07a4e2c82307ec2c3dddb9d233718918c339..9b417333bda54be7801751159a4785f0f9b9b8bd 100644 (file)
@@ -6,7 +6,7 @@
 
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 \new Staff {
    c'1 \glissando
diff --git a/input/regression/page-breaking-max-systems-per-page.ly b/input/regression/page-breaking-max-systems-per-page.ly
new file mode 100644 (file)
index 0000000..18f420a
--- /dev/null
@@ -0,0 +1,19 @@
+\version "2.13.1"
+
+\header {
+  texidoc = "The max-systems-per-page variable prevents more
+than a given number of systems from being on a page. Titles
+are not counted as systems. \noPageBreak can override
+max-systems-per-page in unusual situations."
+  title = "Title"
+}
+
+#(set-default-paper-size "a6")
+
+\book {
+  \paper {
+    max-systems-per-page = 1
+  }
+
+  { c'1 \break c'1 \break \noPageBreak c'1 \break c'1 }
+}
\ No newline at end of file
diff --git a/input/regression/page-breaking-min-systems-per-page1.ly b/input/regression/page-breaking-min-systems-per-page1.ly
new file mode 100644 (file)
index 0000000..ecaedee
--- /dev/null
@@ -0,0 +1,17 @@
+\version "2.13.1"
+
+#(set-default-paper-size "a6")
+
+\header {
+  texidoc = "The min-systems-per-page variable forces each page to have
+a minimum number of systems. Titles do not count as systems here."
+  title = "Title"
+}
+
+\book {
+  \paper {
+    min-systems-per-page = 5
+  }
+
+  { \repeat unfold 11 { c'1 } \pageBreak \repeat unfold 6 { c'1 } }
+}
\ No newline at end of file
diff --git a/input/regression/page-breaking-min-systems-per-page2.ly b/input/regression/page-breaking-min-systems-per-page2.ly
new file mode 100644 (file)
index 0000000..6d55509
--- /dev/null
@@ -0,0 +1,16 @@
+\version "2.13.1"
+
+#(set-default-paper-size "a6")
+
+\header {
+  texidoc = "The min-systems-per-page variable takes precedence over
+the desire not to overfill a page."
+}
+
+\book {
+  \paper {
+    min-systems-per-page = 20
+  }
+
+  \repeat unfold 21 { c'1 }
+}
\ No newline at end of file
index 35a8d5e8b4ec3a70fd6c75b84a0ecccc8522a225..a7132a3f818b9c3d8f50fbb78da409d40ae45a04 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
   texidoc = "The number of pages in a score can be forced by setting
index 33f4c04bb47f6c7d7fdd014900c2fcd4581461e9..749f091ad3ca2119c48eb06111c6a17b2d227394 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
   texidoc = "The number of pages in a score can be forced by setting
index bd82d1f6c0be88a0da3542cd26b6565c39d0d910..a6c5156778b88f81756d2825563f153b01bf4bdd 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
   texidoc = "The number of pages in a score can be forced by setting
diff --git a/input/regression/page-breaking-systems-per-page.ly b/input/regression/page-breaking-systems-per-page.ly
new file mode 100644 (file)
index 0000000..ce27537
--- /dev/null
@@ -0,0 +1,17 @@
+\version "2.13.1"
+
+\header {
+  texidoc = "The systems-per-page variable forces a certain number of systems
+per page. Titles are not counted as systems."
+  title = "Title"
+}
+
+#(set-default-paper-size "a6")
+
+\book {
+  \paper {
+    systems-per-page = 3
+  }
+
+  { \repeat unfold 3 { c'1 } \pageBreak \repeat unfold 3 { c'1 } }
+}
\ No newline at end of file
index 83b88dea907d006182b4542a9314bbdc21f4c4f9..dc481627d0483a424d2f4902233367d69fb85290 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
 
index 4ec9ee363dfeeb8b2f001a3d7b2172d8fad8a073..6c57725739c8baa6f0b7e4f72b39fb8205f0dcd9 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
   texidoc = "Page labels may be placed inside music or at top-level,
index 7d5971c252c8df4d8ffed7cdc9bd665de8fee900..2335c6979d2be2f83d29f52bd1d4aca1d71cdd0c 100644 (file)
@@ -8,7 +8,7 @@ systems may be placed absolutely on the printable area of the page."
 
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 #(set-default-paper-size "a6" 'portrait)
 
index 41cacdc8d611dfe7b1f53d96dac7019647ddc40e..c1e93dfc1d99a51efb334397aa2e1fb164b40e7e 100644 (file)
@@ -3,7 +3,7 @@
   texidoc = "Page breaking details can be stored for later reference." 
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 \paper  {
   #(define write-page-layout #t)
index 807f05dddafbca6e33c0da33d1b85851723c1ccf..6674e53e432a07112b070c262057b80ee5c8cc18 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 
 
     
index 5eeb2a4461600e1a81768fe3cedea8991027819f..7dcce9a2592faf8b460783b9a6c1ddc914927e34 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 #(set-default-paper-size "a6")
 
 \header {
index 60a94d27afae5e2ebb5ffad307d44a6354413a1d..3094b8c1bea330a869bb3be020dc153b78006b3a 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 #(set-default-paper-size "a6")
 
 \header {
index 61e09c598428e6f620f0e0bb4ad866a2eb33dc02..d41d796456367b131b62500d3b0a67a399b0139f 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 #(set-default-paper-size "a6")
 
 \header {
index d5277d205742532dd611528bad4133b43c9c783d..dfafe2f1beb7997c47e941f9475f94498b2989c0 100644 (file)
@@ -13,7 +13,7 @@ By setting @code{annotate-spacing}, we can see the effect of each property.
 
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 #(set-global-staff-size 11)
 
index b8c45966024e80095a5bab73eb6db44d6983152b..fe84708be8267718254874a0dd931086240a64b9 100644 (file)
@@ -4,7 +4,7 @@
 first system can be forced to be uniform."
 
 }
-\version "2.11.51"
+\version "2.12.0"
 
 #(set-default-paper-size "a6")
 
index 53c5621f16bc48dd3d12d34a3a7d0935ade2e762..a9c3f31bf93db71e7a21d1d94c53f418b8337620 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
   texidoc = "By default, we start with page 1, which is on the right hand side
index 5f0faeeba6ceeb6a142560f2ecc8145438cb6fc7..a71c222e6377ecce466474e0bf4006292395726b 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
   texidoc = "By default, we start with page 1, which is on the right hand side
index 3bc8dddde1c9089bc0a079edebf9f487a4c1effc..6780c7ee56368c295e64278d30f7910902eee77d 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.58"
+\version "2.12.0"
 
 \header {
     texidoc="If there are no good places to have a page turn,
index 4834ceb0d1c808b17fc726dc576977b00f8c1893..377db25c55e6e3ef1c1fbdfcce1fb536e5dd4514 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
   texidoc = "The page-turn engraver will not count potential page
index 45c033167a0105271bedae0775e4c09b2eebe1cf..371613f45b0bcbafe903b810286739969f1a42be 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header{
     texidoc="The page-turn breaker will put a page turn after
index 30e381beb97e2f66e9d9d440bde2cb5ff34b69ea..007eafc0ff1ce4c01fcbee4971950eb46a2945be 100644 (file)
@@ -10,7 +10,7 @@
   ragged-right = ##t
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 
 \relative c'' {
index c440fa8d81fe3fd52a4b72668327e2bae4794c51..737e2c00d23d658d7690f0b11802ee47a2fb54b8 100644 (file)
@@ -12,7 +12,7 @@
   ragged-right = ##t
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 \relative {
   c4 -\parenthesize -.
index b67cdadce9f7c8f2a54376b8071cd02d802b41a8..3757d4bc7a05a39ce0133402a509e38284a798ad 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 \header {
     texidoc ="The a2 string is printed only on notes (i.e. not on rests),
 and only after chords, solo or polyphony."
index b6097e9425c74035fc61e2b48014a354d928bce3..382e23d3d249273a9be0d87eb83aa7b24c2b466e 100644 (file)
@@ -4,7 +4,7 @@
 "
     }
 
-\version "2.11.51"
+\version "2.12.0"
 
 vone =  \relative a' { g4 g f f e e d d }
 vtwo =  \relative a' { e4 e f f g g a a }
index 0016c04b5dc46e5588b361e83b034b900444a5fe..9c5ef8dae2fba181d00580234fe65c3a6d895a94 100644 (file)
@@ -11,7 +11,7 @@ voices.
   
 "
        }
-\version "2.11.51"
+\version "2.12.0"
 
 vone =
 
index ee054345c81a63221e1cc6e8c28bb77900368d1f..18a30b86a24903472257b477eda6c21eae610565 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
   texidoc = "Part combine texts accept markup."
index 70545a0fb482979a69fea44cf96cff0cf6819d95..8b0be535576baf46254b2952ecdf5e891f2bde94 100644 (file)
@@ -1,7 +1,7 @@
 
 \header { texidoc = " Multimeasure rests are printed after solos, both
     for solo1 and for solo2."  }
-\version "2.11.51"
+\version "2.12.0"
 
 \layout { ragged-right = ##t }
 \new Staff 
index bb2f7cb858ce9f55fa52edb83df925168ce1d784..63c1318910b6761b314009629b9bdf81726d699e 100644 (file)
@@ -6,7 +6,7 @@
 
 }
 
-\version "2.11.51"
+\version "2.12.0"
 \layout { ragged-right = ##t }
 
 <<
index f72e8b1a88639ac39a64f35851ad537126ca1a20..5f0e7b8414c96438ca9dd07b07e70f2eef0772cd 100644 (file)
@@ -5,7 +5,7 @@
 
 }
 
-\version "2.11.51"
+\version "2.12.0"
 \paper { ragged-right = ##t } 
 
 \new Staff
index 44ccbeee8f60dcde57820e17622f4b395d5b059c..6d7dc89c41de5a1fe12a5597a21af11756dd0324 100644 (file)
@@ -17,7 +17,7 @@ Solo 1/2 can not be used when a spanner is active, so there is no solo
 vone =  \relative a' { d4 r8 d8 d8 r8 d8 r8 d2 ~ d2 ~ d4 }
 vtwo =  \relative g' { g4.   g8 r2          g4 r4 r2  g4 } 
 
-\version "2.11.51"
+\version "2.12.0"
 
 \paper { ragged-right = ##t } 
 
index fc2496223408a4d797bd3daaa61a6346faf4a659..675b7c37a84f6d288e42d469b47adef8be07c563 100644 (file)
@@ -9,7 +9,7 @@ texts accordingly.
     }
 
 
-\version "2.11.51"
+\version "2.12.0"
 
 \layout { ragged-right= ##t }
 
index ed3d036cea0fd8b2b3b0a2c1d31573ffb93e11d8..87552a19a56e422f1584804d7c803e1a8bffebd6 100644 (file)
@@ -5,7 +5,7 @@ even after a switch, a tuplet ends correctly."
   
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 \new Staff <<
   \partcombine
index 5cb9c97717273b3b938a5f35b3b8b838203d5837..2a2e100a3f8038e15e2b277df4adb711651d514e 100644 (file)
@@ -5,7 +5,7 @@
 
 \paper { ragged-right = ##T }
 
-\version "2.11.51"
+\version "2.12.0"
 
 \score {
   <<
index 89f5fd5fcba1065d4b71d76da9da948bb84d8446..13a0d82096e1b2a305fde7b46ca5560dd6ba2a63 100644 (file)
@@ -11,7 +11,7 @@
 
 \layout { ragged-right = ##t }
 
-\version "2.11.51"
+\version "2.12.0"
 
 vone =  \relative a' {
   g2 g    g  g4 g f' c c( c) c c  c ~ c
index 24fddc20ee5303ae2a450b1fdda67c6c541f0ed3..b8659e362575494d6b80902da3fdbc9c3b35192a 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
 
index 2db41f63ec78464ae1e4f7f422f9e046efce3fa6..2539d8563b93bc05906981e25ef7c33442d667f7 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 \header {
 
   texidoc = "Unterminated piano pedal brackets run to the end of the piece. "
index 2d6660b2e07d1690b01123c9c623afdea1ed8005..a0101ff0714fa51e6bff54259721d37dc446b5b3 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 \header
 {
   texidoc = "The standard piano pedals style comes with Ped symbols.
diff --git a/input/regression/phrasing-slur-dash.ly b/input/regression/phrasing-slur-dash.ly
new file mode 100644 (file)
index 0000000..f8b13f5
--- /dev/null
@@ -0,0 +1,24 @@
+\version "2.12.0"
+\header { texidoc = "
+The appearance of phrasing slurs may be changed from solid to dotted or dashed.
+"
+}
+
+\relative c'{
+  c\( d e  c\) |
+  \phrasingSlurDotted
+  c\( d e  c\) |
+  \phrasingSlurDashed
+  c\( d e  c\) |
+  \override PhrasingSlur #'dash-period = #2.0
+  \override PhrasingSlur #'dash-fraction = #0.4
+  c\( d e  c\) |
+  \phrasingSlurSolid
+  c\( d e  c\) |
+}
+
+
+
+
+
+
index dd44fe6e5da14c0b7d641e2a71c6c1fa963c4dc0..c94cd38fb8e5db96459fe15a0232a4044643f613 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 \header{
     texidoc="@code{PhrasingSlur}s go over normal slurs."
 }
index 8d017f4c5ff28fc833f68d55c433e192d34dbabc..968a899095923d60d66de9f396ca4a13fe9725d0 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.58"
+\version "2.12.0"
 
 \header {
   texidoc = "Phrasing slurs do not collide with tuplet numbers."
index 379eb8f6a77fc35c65ccdabb0e5ef630d6ab2702..00a9397ff649856aa47c93c8dcd289a8b29d046e 100644 (file)
@@ -1,17 +1,18 @@
+\version "2.12.0"
+
 % add a chord shape
-\version "2.11.56"
 
-\addChordShape #'bes #"x;1-1-(;3-2;3-3;3-4;1-1-);"
+\addChordShape #'bes #guitar-tuning #"x;1-1-(;3-2;3-3;3-4;1-1-);"
 
 % add chords
 
 \storePredefinedDiagram \chordmode {bes}
                         #guitar-tuning
-                        #(chord-shape 'bes)
+                        #(chord-shape 'bes guitar-tuning)
 
 \storePredefinedDiagram \chordmode {c}
                         #guitar-tuning
-                        #(offset-fret 2 (chord-shape 'bes))
+                        #(offset-fret 2 (chord-shape 'bes guitar-tuning))
 
 mychords = \chordmode {
   bes
index 0fc715a705a97e3eee35682255e45002cc3de88f..6d88242c0acd7c26d4d8cd38b6b2198c8febd642 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
 
index 11d714a7b86693d5248a45bcc62af0903515e8a9..79d8eb4551d8e741a54c7739603ab754daa8bda2 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 \header {
 
   texidoc = "Distances between prefatory items (e.g. clef, bar,
index 0d31849fc84fd3329381be13c370e65c9c75d249..4502719f68eed6e9fb3d6e5d7129962392d7c095 100644 (file)
@@ -7,7 +7,7 @@
 
 #(ly:set-option 'profile-property-accesses #t)
 
-\version "2.11.51"
+\version "2.12.0"
 
 \include "../../input/typography-demo.ly"
 %\book { \score { {c4 } } }
index 9c2fd46ec35cc75a0aca4122e893f66c034af990..50125f2f6f9bbff88c49329013bf9a4b9b8f2106 100644 (file)
@@ -7,7 +7,7 @@
 }
 \layout { ragged-right = ##t }
 
-\version "2.11.51"
+\version "2.12.0"
    \relative c'' {
       <<
          { \grace e8 d2 }
diff --git a/input/regression/property-nested-override.ly b/input/regression/property-nested-override.ly
new file mode 100644 (file)
index 0000000..bfd63a7
--- /dev/null
@@ -0,0 +1,20 @@
+\version "2.12.0"
+\header {
+  texidoc = "Nested properties may be overridden using Scheme list
+syntax.  This test performs two property overrides: the first
+measure uses standard @code{\\override} syntax; the second uses a
+list.
+"
+}
+
+\relative c' {
+  \once \override TextSpanner #'bound-details #'left #'text = #"foo"
+  c4\startTextSpan
+  \once \override Tie #'details #'note-head-gap = #1
+  c4 ~ c c\stopTextSpan
+  
+  \once \override TextSpanner #'(bound-details left text) = #"foo"
+  c4\startTextSpan
+  \once \override Tie #'(details note-head-gap) = #1
+  c4 ~ c c\stopTextSpan
+}
index 3163cded461b9db83c2f88d03a398c14d6734321..139169ad2c51e118e7eb770170f672fc1d2c4aa4 100644 (file)
@@ -6,7 +6,7 @@ Scheme list syntax."
 
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 \relative {
   f2 \glissando c
index e5d801e0128f586996b9e14e4bf4a3fe526713b1..c03b0ed61407b8f2a7b5f8e592175fff68ff09ae 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 \header {
     texidoc = "Once properties take effect during a single time step only."
 }
index 5593570e5e3ac9a4d88053076a5143f83fa2a1ad..2caea5994a323668e8339ed7d2b02cec0fe318a5 100644 (file)
@@ -11,7 +11,7 @@ last note."
 
 }
 
-\version "2.11.51"
+\version "2.12.0"
 \layout {
   ragged-right = ##t
 }
index d259b3d49a682a42f03bba731a5d44a4007055fb..d55017c09dbe887907d86eddf3f0b59c7f3224ab 100644 (file)
@@ -6,7 +6,7 @@ example, there are notes with each full-bar rest."
          
  
 }
-\version "2.11.51"
+\version "2.12.0"
 
 A = \relative c' { c4 d e f | \cueDuring #"qB" #1 { R1 } | }
 B = \relative c' { \cueDuring #"qA" #1 { R1 } | f4 e d c  | }
index f28219d99ade8dcf07b519f907c1a6fc668ee881..225bf6ebdda1899a852d48d470c6bd2de35c9dfd 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.11.51"
+\version "2.12.0"
 \layout {
     ragged-right = ##t
 }
index c3854eb427a6b0590e76d57d077ddd6df9867149..b276bc5b928d9057db99fd3686e1db995a83b317 100644 (file)
@@ -7,7 +7,7 @@
 }
 \paper { ragged-right= ##t }
 
-\version "2.11.51"
+\version "2.12.0"
 quoted = \relative c'' {
   R1
   \grace g16 f4 \grace a16 bes4 \grace b16 c4 c4
index 628d0abf6dd72d9fdf2051b35dbf9bcc3846ff0c..76eeefd0acdffb521af2665cee4cc3aa07f75b4a 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
 
index a61a9ad2928dcf672e1a17bcff3de0caeaa1a0fb..6138485c0a56fd8b2df25ea29c500212fade5763 100644 (file)
@@ -10,7 +10,7 @@ quoted ones) will transposed as well.  "
 
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 \layout { ragged-right = ##t }
 
index f4cfbe192c8c5a6010a887c91695c001d8617b3c..ccb100f1b14dc3b9d8ceacf60be286725acdf076 100644 (file)
@@ -3,7 +3,7 @@
   texidoc  ="Tuplet bracket ends properly when quoting."
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 \paper { ragged-right = ##t }
 
index a6d6974938f90fb7b001ca68f2d2a7489ccd42c4..6ce70dfe06055c8bdbbfee366d8ca9963221a595 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
 
index f8e7ae6132993f28b42ef62163ba8372454d9da6..759a3d0a4fcfb8ce751b4c1bc7e77fda8cba1f45 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.11.51"
+\version "2.12.0"
 \layout {
     ragged-right = ##t
 }
diff --git a/input/regression/ragged-bottom-one-page.ly b/input/regression/ragged-bottom-one-page.ly
new file mode 100644 (file)
index 0000000..8e3cff6
--- /dev/null
@@ -0,0 +1,13 @@
+\version "2.12.0"
+
+\header {
+  texidoc = "For a one-page score, ragged-bottom should have the
+same effect as ragged-last-bottom."
+}
+
+\paper {
+  ragged-bottom = ##t
+  ragged-last-bottom = ##f
+}
+
+\repeat unfold 16 c'4
index a6ef7c6f631a5fb2e3b18519ca90e0e17d45a06c..d487bbff5283917a24b597bfe05a76ff244ffa5c 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
   texidoc = "When a score takes up only a single line and it is compressed, it
index 5a21340a6d021d21007ebc507d6360e4c8ffc3c6..b1b20bd6d5eb360c95962679b2ca048ef2027104 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
   texidoc = "When ragged-right is specifically disabled, a score with only one
index dcb38a4d27c519d021bde315a3b7cf915fcd188d..eb134d18498cc43e198fb95364cb652450c1c2e2 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
   texidoc = "When a score takes up only a single line and it is stretched, it
index 1f02c7de7064a5736e63fe7a6c8fd19a5d3102f1..c4a6b525ecac9c3274293a6309ddc8b77f910355 100644 (file)
@@ -4,7 +4,7 @@
   the alignment depends on which symbols are visible."
 }
 
-\version "2.11.51"
+\version "2.12.0"
   
 \relative {
   \override Score.RehearsalMark #'break-align-symbols = #'(clef key-signature staff-bar)
index 0d2d4298a276c7490811d7d23093d2acd0340f4d..4fd1171c1498cfad1b3c1efabca12460730141dc 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
   texidoc = "RehearsalMarks still align correctly if Mark_engraver is moved to
index 0a5cde229223c80fe4d4f17d8a2142754bab4aff..d1f2fefe178ae65620ade94cc48c90ca4c588045 100644 (file)
@@ -7,7 +7,7 @@
 
 }
 
-\version "2.11.51"
+\version "2.12.0"
   
 \relative {
   c1 \mark "foo"
index 04ea97688a144cf33abb87a8aae35218c6617421..a54e1f8deac49ad52bdee5163529fd9e9a48eead 100644 (file)
@@ -8,7 +8,7 @@ after Z, double letters are used.  The mark may be set with
 
 }
 
-\version "2.11.51"
+\version "2.12.0"
 \paper { ragged-right = ##t } 
 
 \relative c'' {
index 1110ca678b5ac57dfa93ec0bb4faa849b0a778f7..3aab1f6af32f6fec2e80e6042e332eb331abf85d 100644 (file)
@@ -5,7 +5,7 @@ By setting @code{markFormatter} we may choose a different style of mark printing
          
       }
 
-\version "2.11.51"
+\version "2.12.0"
 
 \paper { ragged-right = ##t } 
 
index 7fbfd08f5b992399f07f5c3b0f9e1bf608b07a51..4cf17989f002a779842a316b83bd616955ff8c88 100644 (file)
@@ -1,7 +1,7 @@
 \header {
   texidoc = "Relative mode for repeats uses order of entry."
   }
-\version "2.11.51"
+\version "2.12.0"
 
 \relative {
   \repeat "unfold" 3
index 8a7bbe5e50ea089e75bb47a4e7d7345225b60747..e624ac4135319a841249347c4f76174a9bbecc0b 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header{
   texidoc="
diff --git a/input/regression/repeat-percent-count-visibility.ly b/input/regression/repeat-percent-count-visibility.ly
new file mode 100644 (file)
index 0000000..5266553
--- /dev/null
@@ -0,0 +1,15 @@
+\version "2.12.0"
+\header {
+  texidoc = "
+Percent repeat counters can be shown at regular
+intervals by setting @code{repeatCountVisibility}.
+"
+}
+
+\relative c'' {
+  \set countPercentRepeats = ##t
+  \set repeatCountVisibility = #(every-nth-repeat-count-visible 5)
+  \repeat percent 10 { c1 } \break
+  \set repeatCountVisibility = #(every-nth-repeat-count-visible 2)
+  \repeat percent 6 { c1 d1 }
+}
index 22262e898e8e856eaacb8451f3648438b75b0783..e9cf8c6d98f1cee67e37b84d46fc984155520bfd 100644 (file)
@@ -9,7 +9,7 @@ only if there are more than two repeats."
 
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 \relative c'' \new Voice {
   \set countPercentRepeats = ##t 
index 276167b0f0a7405334bdf78ad3feb8b31e39b7ca..ffd99524858bc130671148847d6c98e87b2451db 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
   texidoc = "Percent repeats are also centered when there is a grace note in a parallel staff. "
diff --git a/input/regression/repeat-percent-kerning.ly b/input/regression/repeat-percent-kerning.ly
new file mode 100644 (file)
index 0000000..0826c65
--- /dev/null
@@ -0,0 +1,21 @@
+\version "2.12.0"
+\header {
+  texidoc = "The positioning of dots and slashes in percent repeat
+glyphs can be altered using @code{dot-negative-kern} and
+@code{slash-negative-kern}."
+}
+
+<<
+  \new Staff {
+    \set Staff.instrumentName = #"(default)"
+    \repeat percent 2 { c'1 }
+    \repeat percent 2 { d'1 e' }
+  }
+  \new Staff {
+    \override PercentRepeat #'dot-negative-kern = #1.1
+    \repeat percent 2 { c'1 }
+    \override DoublePercentRepeat #'dot-negative-kern = #0
+    \override DoublePercentRepeat #'slash-negative-kern = #1
+    \repeat percent 2 { d'1 e' }
+  }
+>>
index 28c6ec433d5becabfd26c66604bb22108fa06329..d4bc04545cbf22752af6f41aa9e0c911908e0265 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 
 \header {
index 543ca6108d59847ffc97cb131071e11ddaaf7437..412ac8e7537b8239ed53c1c153e1508af6cb4359 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 \header {
   texidoc = "Measure repeats may be nested with beat repeats."
 }
index 731b8eec0281b5dc148d69d24f48d0c81db5e2a7..2434b16254f91bee613b7bbd300b1bb156cf26f0 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 \header {
   texidoc = "Within a bar, beat repeats denote that a music snippet should be
 played again."
index 3866bd747b0b0f461bb61ff44ae2da6e35cec1ac..546232d548485f25b6d82b9b221790db65745f04 100644 (file)
@@ -5,7 +5,7 @@ note head."
 
 }
 
-\version "2.11.51"
+\version "2.12.0"
 \paper {
   ragged-right = ##t
 }
index f0bcfd7ca635c6ce092ccb86c72a47775c9220e0..997ff464917fd77c56fe7c4a65ab23eebb898b78 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
   texidoc = "Each of the staves here should have four tremolo beams."
index 200e8b3b5d176959f8788c968e6d8336c9910042..86652c8150e8c8a6d5bb421ffeaf42e9dc49f4f7 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
   texidoc = "Dots are added to tremolo notes if the durations involved require them."
index b938cc2e73af068441562403893678f083aad9a8..92e8a47339e4bfea7f895eaa3ea672e419fb8dbb 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header { texidoc = "Volta repeats may be unfolded through the music
     function @code{\unfoldRepeats}."
index 7b5444077f93ed756addded5c37aa2733f49ce12..71b5ac56503f47a9bce47efca3599c2979ab5159 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 \header {
 
   texidoc = "Unfolding tremolo repeats. All fragments fill one
index bacd6762786a4da3ab8d3461ce3e54893d646df9..d2a5da49e0bcd35b9d87fd859bce7a0704e3c22f 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header{
   texidoc="LilyPond has two modes for repeats: unfolded and semi-unfolded. 
index 505e024bf6d6bb7dd79e51140cd681d557ec1990..6cd3ee1ca47fe56cc66cee33844fa319570a2922 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 \header {
 
     texidoc = "When too few alternatives are present, the first
index 647ed6f2820a61ab8cd5b8f1b74f7b512b0c10ed..eb14c3cbd84cb6875cd96e32a87632ace29df176 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header{
   texidoc="
index e410265d51f808170386751f3a25f9c36918b7ea..30f2a439103bafc2f09b4ad46d71e2d9c160b7bf 100644 (file)
@@ -6,7 +6,7 @@ collisions can be combined."
 
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 \layout { ragged-right=##t }
 
index ef0bf41d9759d9b9c4d91d0528ed21c2a6cb43e5..0200d38c64f0d3819a6dcb1f03979cd7b802dbc4 100644 (file)
@@ -6,7 +6,7 @@
   ragged-right = ##t
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 fig =   \relative c' {
   <a c e>8[
index 572feaf5942ee93f6a6e1a38533b55ee13ae2156..642512bd8fee08cb08e141ad284a7962f2d9e2ca 100644 (file)
@@ -3,7 +3,7 @@
 account properly."
 }
 
-\version "2.11.51"
+\version "2.12.0"
 \paper {
   ragged-right = ##t
 }
index 38f1402987304975c0cbc709872a31205d2e0742..1ec5441eb2f5fd48574df90dd77a8cc4fb997174 100644 (file)
@@ -4,7 +4,7 @@
 collision."
 
 }
-\version "2.11.51"
+\version "2.12.0"
 \paper {
   ragged-right = ##t
 }
diff --git a/input/regression/rest-collision-note-duration.ly b/input/regression/rest-collision-note-duration.ly
new file mode 100644 (file)
index 0000000..5ccce39
--- /dev/null
@@ -0,0 +1,12 @@
+\version "2.12.2"
+
+\header { texidoc =
+"Vertical rest positions in a multi-voice staff should obey the duration of
+notes; this is, they shouldn't return to a default position too early.
+"
+}
+
+\relative c' {
+  << { g'1  g2 } \\
+     { \repeat unfold 2 {r8 d4 d8 r d4 d8} } >>
+}
index e4f125e25d80d857180e5fd068857271a7f71a91..1b98c177cf090b0015dff48864d626c055fece33 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 \header{
   texidoc="
 Rests should not collide with beams, stems and noteheads.  Rests may
index 7da6357adf3294ee43f36574ce0ba351c689ac0f..78a587d58c54131ef5753fc454a069829334884c 100644 (file)
@@ -4,7 +4,7 @@
 
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 \paper { ragged-right = ##t } 
 
index 58e02fd7f17c1df530e5a56eed1c22d21259b385..7ea955a3694381d93fbcb23cc7efbfb0e174a79b 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 \header {
 texidoc = "Whole and half rests moving outside the staff should get
 ledger lines."
index c4f094dfbe1ec4b751aaa4ae9add0eb81b0e0872..16a19df9260f3a950f5cd3c071de921e6de08d3d 100644 (file)
@@ -7,7 +7,7 @@
        }
 
 
-\version "2.11.51"
+\version "2.12.0"
 \new Staff {
 
   <<
index 39736d66668e86c115dbff7d75ff0d3072d4ab75..a413b7f4ca907b2a531a8b8668cc691a2120afca 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 \header {
 
   texidoc = "Rests can have pitches--these will be affected by
index 8493aa4f25e963c7010d6699a2c7be26d93b2b5c..a3f6c90e0a7b8a8ca119d73cfa7db7ed89351e7f 100644 (file)
@@ -4,8 +4,8 @@
 
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 \relative c'{
-  a\rest a8[ a\rest b] |
+  a\rest a8[ a\rest b]
 }
index d260b90491a68cb14f633825f3dfcfecc416ad62..08e681a10379e526b9f9323802ba105e6d645497 100644 (file)
@@ -9,7 +9,7 @@ even if there is no opposite note or rest. The amount is two
 \layout { ragged-right = ##t }
 
 
-\version "2.11.51"
+\version "2.12.0"
 
 
 \new Staff  \relative c' {
index 62e9b58dd2f56f2633243d86a342579dd1e143c6..49656162bd51f2aaba140fcf6b42198fb1a41fd2 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header{
   texidoc="
index 91bd361e4386ad67884bf2ae6756937d09a45aec..10447e4b1e8639564260eadc993c0a8550403cec 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 \header
 {
 
index 4d6d905896fbcddc1361be03ef29d0055d5dd9c6..00952f2ddd65b3b6b26bf3287f4c030f006658b5 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 "expect-error" = ##t
 
index 183caacc8e35b7b79ee579b78607b63f787c1d00..b662217acd6d0df73367317de38dfcc36e68ecce 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
 
index 1925d747faf76b8c8275934b1e8154f92f2a194e..aab8e48c0df8132907de3546043d7c220c669f02 100644 (file)
@@ -4,7 +4,7 @@
   }
 
 
-\version "2.11.51"
+\version "2.12.0"
 \layout { ragged-right = ##t }
 
 \relative c''{
index 65634ffcc846b8e1576b1dfb677c5be939ff6645..3277be73ef7745fb04af3300042ba1ae318f809e 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
 
index 6aadddc5fcb31a38f6dea7a5789cdd2006486e4a..67a86bcee57cf53d0bcb1503d994391e5d1fb223 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
   texidoc = "Horizontal scripts don't have @code{avoid-slur} set."
diff --git a/input/regression/script-shift.ly b/input/regression/script-shift.ly
new file mode 100644 (file)
index 0000000..d5a3922
--- /dev/null
@@ -0,0 +1,18 @@
+
+\header {
+  texidoc = "The @code{toward-stem-shift} property controls the precise
+horizontal location of scripts that are placed above an upstem or below
+a downstem note (@code{0.0} means centered on the note head, @code{1.0}
+means centered on the stem).
+"
+}
+
+\version "2.12.0"
+\relative c''
+{
+  \override Script #'toward-stem-shift = #0.0
+  a4^. c_.
+
+  \override Script #'toward-stem-shift = #1.0
+  a4^. c_.
+}
index de71c33ec77de3a1936644e64f0a04405984fabe..f5b0646e1d6700d10283c6e1e1fda63f8f6d622a 100644 (file)
@@ -8,7 +8,7 @@ The scripts should not be folded under the time signature.
 "
   
 }
-\version "2.11.51"
+\version "2.12.0"
 
 \paper {
   ragged-right = ##t
index 0ad7be21658218e59a29005556d523aa0dd492b4..cca3c7656c2a24939fba6e96a8034cf73f7a4d3b 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 \header {
   texidoc = "Scripts can be stacked. The order is determined by a
 priority field, but when objects have the same priority, the input
index c7ebf37346f1aaa52c57b27563509ba05be1eafb..a3d559b4d33e7c36206741ad8ab92204d8679b29 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \layout { ragged-right= ##t }
 
index c8e717c85961fd106bc0969f79fcbfb3b8bc0581..1a58cf5223593241714dcec0b02d7b3a8dc74b77 100644 (file)
@@ -3,7 +3,7 @@
   texidoc = "Scripts avoid stem tremolos even if there is no visible stem."
 
 }
-\version "2.11.51"
+\version "2.12.0"
 
 \layout {ragged-right =##t}
 {
index f075907251e86aa655b581045bafafa762d8fdf4..59722770989960340a8584e369dfebe2d93733d3 100644 (file)
@@ -3,7 +3,7 @@
   texidoc = "Semi tie directions may be forced from the input."
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 \layout{
   ragged-right=##t
index fda3b0f0c98b74e2ee33fd8b5206107c4ceeec2e..2f8223d525f1b0610e168aad8e41b21abeb58488 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header{
 texidoc="
index 8c9fcd288a0f5ea0365c7af789fa5ab78b59ecbd..09a4b62ad5b78adfedec51797e8d29c5cd36c896 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 foollilypondbook = "
 \score
 "
index c8f34b1dc0f9af7ec223836717f8b7d9d39a647e..02260a969c145b93371affc30971ba58f7e1eacd 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 foollilypondbook = "
 \score
 "
index 09cd4f4e33fad794dd3038131448ad44460bb20b..c4eb50613fc6fe6eadd115b9628647345b79aa12 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 foollilypondbook = "
 \score
 "
index cbf472f945db938b089109294e6092e0d8985e6f..5245045af833e3bdb89a303c496ca504f5fa5fff 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 foollilypondbook = "
 \score
 "
index 5a2f7d111ff9410a1efa65754552c82e9ce80d7b..d9dbecb6e6522a1fbbdb8cb36767e49c5af83806 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 foollilypondbook = "
 \score
 "
index f5a3bcd0492f8e8578dcd066a6874dc9ee375a6a..01c575f42d8b3b8d27cfa871a9e1332911143700 100644 (file)
@@ -7,7 +7,7 @@ last as long as their arguments."
   ragged-right = ##T
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 \relative
 <<
index 40f3746946cf594558b48b0bfc35d34aaad648ca..14721f0bee3eccc63883764c40775421ad97000c 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
 
index 4dda5fa38ccea9d009e857b2c30e28483629e0a7..1395cea12976c663a81de8473e0c995266ec2a6d 100644 (file)
@@ -5,7 +5,7 @@
 
   }
 
-\version "2.11.63"
+\version "2.12.0"
 
 showFirstLength = R1*1
 showLastLength = R1*2
index b8d2f6b3bb435816007a09ef4d2f9727fcf5ffce..027f33e365a2e07d4766a66f7ef67b6dc3d99ce6 100644 (file)
@@ -4,7 +4,7 @@
 
   }
 
-\version "2.11.63"
+\version "2.12.0"
 
 showFirstLength = R1*3
 \paper {
index cd280cde0868a903964f87c1e58aeadde847e9df..e1845924b03e1797da9fc8fe6e78b0e66b610024 100644 (file)
@@ -4,7 +4,7 @@
 
   }
 
-\version "2.11.51"
+\version "2.12.0"
 
 showLastLength = R1*3
 \paper {
index 4b7e51c2ae2f769a69b222988028f5631a04528b..07ec57e54e455720f40b3c78eed661abeee608ff 100644 (file)
@@ -7,7 +7,7 @@
 }
 
 
-\version "2.11.51"
+\version "2.12.0"
 \paper {
   ragged-right = ##T
 }
index 02c5aaa6c4519dcb0a0b380aeb06df85f0c3701e..d6fb9e1077b0667178ea6f933014425556b2dc7a 100644 (file)
@@ -1,7 +1,7 @@
 \header {
   texidoc = "@code{-ddebug-skyline} draws the outline of the skyline used."
   }
-\version "2.11.51"
+\version "2.12.0"
 
 #(set-default-paper-size "a6" )
 
index bb9e11399fd43f9ae10e35b4a0c17fde52581094..731db4f2c520dd0ca63e157a2ce6fbcc8d1359f8 100644 (file)
@@ -5,7 +5,7 @@ using a skyline algorithm so that they don't collide with other objects."
 
 \layout {ragged-right = ##t}
 
-\version "2.11.51"
+\version "2.12.0"
 \relative c''' {
   \override TextScript #'outside-staff-priority = #2
   \override DynamicLineSpanner #'outside-staff-priority = #1
index f94ffae468acb376fc856b1ba4238af98f41f0d1..159e1ca856a8d96a53062cbbbe09055e6fc0e6bf 100644 (file)
@@ -7,7 +7,7 @@ systems more uniform."
 \paper {ragged-right = ##t}
 #(set-default-paper-size "a6")
 
-\version "2.11.51"
+\version "2.12.0"
 \book {
   \score {
     {
index 4bf9ee04f833bfc4b9a7d5d0cb69cb75a42425c2..f2c524e823351a244fa162055419d6a9de461a58 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 
 \header{
 texidoc="
@@ -28,7 +28,7 @@ in unbroken state.
        } }
      >>
     \break 
-    c4) f='2.(\break
+    c4) f,='2.(\break
     a2.)
     \stemUp
     <d='' d'>8( <c c'> \break
index 5aaa2fb6c54a56e4523ce423420c4dc6ca93d307..e9534fcbb12f57fbc9391efca9b8229e24c955e8 100644 (file)
@@ -6,6 +6,6 @@
   ragged-right = ##t
 
 }
-\version "2.11.51"
+\version "2.12.0"
 
 \new Staff { \clef bass c4^( \clef "G" g'4) s2 c''1_( f'') } 
index 2ceaca6d7eee45a1881fb9887e4528414da3637b..43230682be84f481619ec46f0352f561b5573572 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
   texidoc = "Slurs that depend on a cross-staff beam are not calculated until after line-breaking."
index 76088ea6341735de7805d729baab56f776ae8bae..3db78778ad7b5106d9d99dc3b6f3d4b99855a26f 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 \header{
   texidoc="
 Slurs behave decently when broken across a linebreak.
index b8b5d7c9567f777a2e1ae21678febf0381b5cb38..cd80e244b85e89565eee59a317893b10bfd78e1e 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 \header {texidoc = "@cindex Slur, dotted, dashed
 The appearance of slurs may be changed from solid to dotted or dashed.
 "
index 5b99dcf484fd1e422c7ecb95836d12bb95524202..6b5ba394ad7a1a515188712eb347956c8ea5e0bf 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 \header{
   texidoc="Slurs should not get confused by augmentation dots.  With a lot
 of dots, the problems becomes more visible."
index 0d02183a086542ebd789955a2dd5dd50abac39ea..93386d8a1b273db7bf95c51b75e92b2790f31397 100644 (file)
@@ -3,7 +3,7 @@
     texidoc = "Some composers use slurs both above and below chords.
  This can be typeset by setting @code{doubleSlurs}"
 }
-\version "2.11.51"
+\version "2.12.0"
 
 \layout { ragged-right = ##t }
 \relative {
index 9bd6fb1e028bb4595fe64a088b93b5e276477503..d596231620b22f3c5c15de2241460b8e700ab478 100644 (file)
@@ -4,7 +4,7 @@
   texidoc = "Dynamics avoid collision with slur."
 }
 
-\version "2.11.51"
+\version "2.12.0"
 \layout {
   indent = 0\mm
   ragged-right = ##t
index 2cd310ea3f2ae81a5ed54a04dc812624d7261317..47d7d5ec30c23232bf293bbde143e131835bc574 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
 
index 76ee50f75901761d1de886a9809b1c0f37b60ab8..36ab15345e8c070af92017e34b2a5b9e2a218227 100644 (file)
@@ -6,7 +6,7 @@ positioning of the slur. It selects the slur configuration closest to
 the given pair. "
   
   }
-\version "2.11.51"
+\version "2.12.0"
 
 \paper { ragged-right = ##T }
 \relative {
index a1f834e88b5c2509b721da60a1a93c623cbebc12..bc0f9c3310994e4cef76f4231a5652c256045a1d 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 \header{
   texidoc="
 Slurs should look nice and symmetric.  The curvature may increase
index c2bd273cf2797bffe78a8c8856d045052ed52d48..07c48656ef2ab15f73beddf5b28a2af14c27d1e4 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 \header
 {
   texidoc ="Slurs may be placed over rests. The slur will avoid
index 649c37c0f7c9845eb4d49ca2f5ea1a4c5432f6ef..a1b1ee4506756d335ab9dc05955d4b7dae933536 100644 (file)
@@ -12,7 +12,7 @@
 
 }
 
-\version "2.11.51"
+\version "2.12.0"
 \layout {
     ragged-right = ##t
 %    #(define debug-slur-scoring #t)
@@ -20,7 +20,7 @@
 
 \relative {
   
-    \grace e=''16( d8.[) c16]
+    \grace e'=''16( d8.[) c16]
     d=''8.[ \grace f16( e16)]
     s2
     << {c=''8.([ es16] bes4~bes )}
        {r8  <as es> r <f des> r }
     >>
     \new Voice { \voiceOne b='8[ c16( d])  }
-    g='8[( a b b! ]  c4  bes) 
+    g,='8[( a b b! ]  c4  bes) 
     bes='8( f' des bes) as4( bes)
     r8 d( f e d c b a)
-    cis=''4( d)  f'=''16( e)    d( c)
+    cis=''4( d)  f=''16( e)    d( c)
     s4
     
-    c'=''2(~c8 d16 c b8 a)
+    c=''2(~c8 d16 c b8 a)
     
-    <c=' g>4 ( f <g b>) f
+    <c,=' g>4 ( f <g b>) f
     <c g>^( f <g b>) f
     <c g>_( f <g b>)
     <g b>_( g  <b d>)
     s2.|
     e4( dis4)
     e4( dis4) 
-    g='16( b d fis)
-    \clef bass a=8[ e16(f] g[ a b d,)]  s4 | \break
+    g,='16( b d fis)
+    \clef bass a,,=8[ e16(f] g[ a b d,)]  s4 | \break
     e=8[( f] g[ a b d,)]  s4 |
     
     \clef treble
     \new Voice {
        \slurDown
-       c=''4(^"slurs forced down"  d, c') s4
+       c''=''4(^"slurs forced down"  d, c') s4
        f=''2( d4 f | g c a f | d c f2 | f1) |
     }
 
index 1760b778acaff5b096e10dc9e2a71dc6b9764504..e4bdaae3adee865e12a1e0b57ce65c412321f9e7 100644 (file)
@@ -8,7 +8,7 @@
 }
 
 
-\version "2.11.51"
+\version "2.12.0"
 
 \layout { ragged-right = ##t }
 
index 937224496c17ea27016b8aa23d61376f30b83071..84629752eb5040ee47eabe096fe2e7955d970817 100644 (file)
@@ -6,7 +6,7 @@
     slur responds appropriately if a script is moved."
 }
 
-\version "2.11.51"
+\version "2.12.0"
 \layout {
   indent = 0\mm
   ragged-right = ##t
index 204a955eff16a2cfbc2c838a914ba140de234f8c..a1d04f0a91b18f4253fb07183847b7a2b4135356 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 \header
 {
   texidoc = "Symmetric figures should lead to symmetric slurs."
index 44c731272ef3d0d13edbc5fea82e97df5025e5c4..aea6979bc2a7aa191f85b6868e1c6b875c22e6a2 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 \header
 {
   texidoc = "Symmetric figures should lead to symmetric slurs."
index 992e80b5b016e22024bbfc6387f73b8e3e731b79..ee5e3c1e87d7c1e752256baa60b40736a31bdb49 100644 (file)
@@ -8,7 +8,7 @@ point into one note head, and point over another note head."
 \layout {
     ragged-right = ##t
 }
-\version "2.11.51"
+\version "2.12.0"
 
 \relative c'' {
     \time 2/4
index bd8a9316f9c904e0eca6bd87bd9fad25411a5e12..eb5bae7aea98f7a8f89f9a8219dfafdc5dabf1b2 100644 (file)
@@ -5,7 +5,7 @@ This may not work if the slur starts after the tuplet.  "
   
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 \paper {
   ragged-right = ##t
@@ -15,7 +15,7 @@ This may not work if the slur starts after the tuplet.  "
 \relative {
   \slurUp
   \override TupletBracket #'bracket-visibility = ##f
-  \override Slur #'details #'region-size  = #6
+  \override Slur #'(details region-size)  = #6
   
   \times 2/3
   {
index 6b58961fd2f2b9fa4430c8b784dfc42fe5b3033d..aceb759d8dd2804fdaaab212fdde88b140afe5c7 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \include "festival.ly"
 
index a2b7971a95cc2b03bbc8988e00d2e1a3c873f5b8..4538db7ff0744b0f81f636d4386c58aabf342353 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \include "festival.ly"
 
index 99f104d496ed6c09b927f703f7ee4f9626777399..06d3e3b4f7d976c7c5bc5a19924e717edfa1de3e 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \include "festival.ly"
 
index 1c553be6de4f6bdf86abd411de7f80f2c2ac3ade..f0484c130e92454cddc76032d0f60fcb51df03e6 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \include "festival.ly"
 
index 8b33cde32886a8ef2a274a3b314c40b86250aa03..6eb952706164b461c32e0941e4e3637ff8c89a52 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \include "festival.ly"
 
index 846ee23ba62d832c7a5c4e26bd89ac8df65781f8..97081984a89368ab4705a489d05a9f53a0b22e42 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \include "festival.ly"
 
index fa9f5ebba16f19500839f73ec4da93388d1122cf..222b16d70ab4eb5c04c4c872bea25d02ef10982b 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \include "festival.ly"
 
index 9cfcdfacc68c3736311f37ae0c06d9313b73fe80..e4b5ffa7dc690944f4dc772dd164b69bbd13bd21 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \include "festival.ly"
 
index 2edbf4474f85bb5a95ba14a125f55119da313481..17e578f9458b2794981d684a7c445d41f11601ba 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \include "festival.ly"
 #(set! *skip-word* #f)
index fea42c24d1be7dda51d7083e834cab954ca7dc14..825e548cae0d2bb0c528d8b1134fa49cbec5de7f 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \include "festival.ly"
 
index 127ae8a4e6173ca26c3c8216c2315d53a1e62776..57a54df7a696c8411e262be6779dacdba60a1d65 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \include "festival.ly"
 
index 901694ca7e6266a27d0be96ec4fe5a3046b86dad..9079a66a2b43bf5e2377de0a846d93b34719948e 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \include "festival.ly"
 
index ad805216b9c6188989c9d8c79c39438408c842d9..51fa612507728b449d4d75fe0d718b49ee83d401 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \include "festival.ly"
 
index f32281359f8bdb66928c41af4a1f2ae7a05c75b6..7eec2b6d4e330fa434a433210705e7a94cedf352 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \include "festival.ly"
 
index e5847b0bf03e460214f6500992231664de0ff9dd..17cbeb1cb31826fc54326471a0d60ae6870cdba9 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header { 
   texidoc = "Accidentals in different staves do not affect the
index 653ea2afaf2e247b06ec904accf1a69b04459a8e..931d4438368525752002c5a60b026839f78b86a1 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
   texidoc = "Accidentals do not influence the amount of stretchable space.
index 20238cbf502025589998491718894369ecfb5b31..afcd9193351b6a149cd3d4680766bb2258809910 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
   texidoc = "Horizontal spacing works as expected on tied notes with
index 5b4fd217b0171337f3f861e4271692f087b96636..4cb03380408076673b1565c01a6b91f122d0ea53 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
   texidoc = "Accidentals sticking out to the left
index 7a109eb827c6a99fdfe7f5501b6cb73f43fd6e6c..edc807ba5f0478b5b4171e8a58b1cf1f78bca815 100644 (file)
@@ -5,7 +5,7 @@
 }
 
 
-\version "2.11.51"
+\version "2.12.0"
 \layout{
   ragged-right = ##t 
 }
index 43c52b146649f631b2bf61d7ac12830990843e2e..cdec5b203997cdca41fa9fe05341fac177c4f2d8 100644 (file)
@@ -3,7 +3,7 @@
 
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 \layout{ragged-right=##t}
 \new Staff {
index 8079ac244d8c87693d8763f2e4d2b07396409915..c35d683139b94401a1d88eeea4c2de8cdde74fb4 100644 (file)
@@ -9,7 +9,7 @@ to 1.5 staff space."
 }
 
 
-\version "2.11.51"
+\version "2.12.0"
 \layout{
   ragged-right = ##t 
 }
index 5631171b56ecc1617b0603b4415e0a649a646b3d..eac6426ea6f12ea5e1e62b3ada0e3afd5ebb644d 100644 (file)
@@ -3,7 +3,7 @@
   
   }
 
-\version "2.11.51"
+\version "2.12.0"
 
 \layout{
   ragged-right=##t
@@ -19,4 +19,7 @@
   \time 3/4
   s2.
   c2.
+  \override Score.NonMusicalPaperColumn #'full-measure-extra-space = #3.0
+  s2.
+  c2.
 }
index 7576ce6f1f7ed9330638757a1dd5e612ebf8154a..0024fc0a6a38c15e57ed9267fe7abaed2cd6877d 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 \header {
 
   texidoc = "Clef changes at the start of a line get much more space
index e59642f25dfa61be35895df9102a2add39f33775..70fceceaaa493f629b7e5d039618234336abfc2c 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 \header {
   
   texidoc ="Broken engraving of a bar at the end of a line does not upset 
index debe4cf67fb9ca617cef70cc288ef418e6091411..f4b4b83605a9f1d22a0f7bf64024e66d1d32c9d5 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 \header { texidoc = "
 A voicelet (a very short voice to get polyphonic chords correct)
 should not confuse the spacing engine."
index 9effc273e6f62b4d9747e72a8c0ca5609b4d1305..03c169b25ff6e5569bc330833742e57e84e33856 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 \header {
     texidoc = "Clefs are also folded under cross staff constructs."
 }
index e98d14994e8f66e3e2fd7ba3b8c0c2a1a7965fc1..720c9834bf212cb8df6b9ae526665ec2cae33701 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 \header {
 texidoc = "A clef can be folded below notes in a different staff, if
 this does not disrupt the flow of the notes."
index 914525e93d46ccc57aa1b8096acfb9d895981129..d272a005e18edc987133394e009de61bd24b9ac6 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 \header {
 
 texidoc = "A clef can be folded below notes in a different staff, if
index 1fe4cf7fdd5be3394da70941d68de7e34a49116a..e919050d10c4c41d6fc379d9b2767d24c84075d5 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
   texidoc = "Voices that go back and forth between staves do not confuse the spacing engine."
index 700bb6867d3a86f2a488d9e1c1c05e132c04673d..e7b7b936a4ddcadc877642ef8c5f2340d2f47ec3 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 \header {
 
   texidoc = "Spacing uses the duration of the notes, but disregards
index d135c189a728142beae993a9531e14199ddcdaaa..2c76e8b36aed8e37d1448113120527125c173144 100644 (file)
@@ -5,7 +5,7 @@
   run are spaced accordingly. "
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 \paper {  ragged-right = ##t }
 
index 0ddc97c3ed1f6cabaec50fc4a6d3ffa7f6ff56f6..3b0db9daf2ff653310e052eb71e50f6f67c5b52e 100644 (file)
@@ -6,7 +6,7 @@ and the barline do not collide."
 
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 \paper
 {
index 39b1e82378fabf864df5859267a330b2672e134d..bf5989959788fa8723b4d6de305e2c5d067979b8 100644 (file)
@@ -3,7 +3,7 @@
 
   texidoc = "accidentals may be folded under preceding notes."
   }
-\version "2.11.51"
+\version "2.12.0"
 
 \paper {
   ragged-right = ##t
index 25981909eea2ae43a5a43b64f6deea3a0f3d8cbd..8cf8d2c0e821ad0d39d3075df656dd0028e4bc80 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
   texidoc = "Spacing corrections for kneed beams still work when compression is involved."
index 536f6d87c25421c96b208f817f1c5b78e9afb992..b5c189538544c7994ae3b69979a42b04a080bb10 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 \header {
 
   texidoc = "For knees, the spacing correction is such that the
index de46da1d2c58c8cd3fd55180e23897f904ad849b..470754f0597ea23ae56c2f9fb1f438058f347a6b 100644 (file)
@@ -7,7 +7,7 @@ texidoc = "Even in case of incorrect contexts (eg. shortlived
 
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 
 %% \new Staff cause shortlived, disconnected Voice contexts
index fdc511ce38909d3697ac9ad276f6ffaf7c9fbdc1..8cc2597294cd392a5835cc98cc02db972d2dea6c 100644 (file)
@@ -4,7 +4,7 @@ across a line break, it gets attached to the end of line."
 }
 
 
-\version "2.11.51"
+\version "2.12.0"
 
 \new Score \with {
   \override SpacingSpanner #'strict-grace-spacing = ##t
index d0929ef48abe03b749fa8eea9d5d9701c1bde067..77d50385d6c9e49973f9c8a0799bc94bd8248795 100644 (file)
@@ -8,7 +8,7 @@ spacing."
 
 }
 
-\version "2.11.51"
+\version "2.12.0"
 \paper {
   ragged-right = ##t
 }
index 8eee855a72a13dcdc05d38574aeda03bea414d3c..0b138d1cce0b955fce4e6601de9271dadea5a73a 100644 (file)
@@ -4,7 +4,7 @@
 
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 \paper {
   ragged-right = ##t
index 87fd02aba9ad01890f8e83e008174d20431ff74f..8cfa85df4a1b7b1a1ebd64149f8b357ed49fd697 100644 (file)
@@ -6,7 +6,7 @@ This means that the 3/8 setting does not affect the whole rest spacing."
 }
 
 
-\version "2.11.51"
+\version "2.12.0"
 
 \layout {
   ragged-right = ##t
index aafa19a53124412c2262044d64225a3763b6bc79..f6b578fdf0e1d93ebb8dbee42cbbc5943765a93f 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
  \header{
 
index f3f02054818b830b76c2e58a5b99749139782ef1..fd1b3cc9af4a414fbe39b3b8421072cdb2e81a26 100644 (file)
@@ -6,7 +6,7 @@ more space. "
 
 }
 \layout { ragged-right  = ##t }
-\version "2.11.51"
+\version "2.12.0"
 {
   \time 2/4 
   \repeat "percent" 3  { c'4 }
index 1755aa284a96962bdce71519fd8e62ebe80a83ee..8176f2416a619c65846dc70061242aed37a9b0eb 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 \paper {ragged-right = ##t}
 \header {
   texidoc = "The spacing engine avoids collisions between non-adjacent columns."
index 8d36fb2df9e2740caa84f72e367ae58f5e2fb32c..06579ae87b805e7bf1c25c2ab38c94c89399c6ef 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 \paper {ragged-right = ##t}
 \header {
   texidoc = "The spacing engine avoids collisions between non-adjacent columns."
index 1bff3ec93b17057a29e6a713f6fdbf322cd640a3..6a85c59d016424b622a7acf192acf7348906dc3c 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
 
index c14a74f667b77f31b6a3f1b05dca48fd9443831b..138dbf01b33a5ca920c238e95783821431b54c16 100644 (file)
@@ -10,7 +10,7 @@
 "
   }
 
-\version "2.11.51"
+\version "2.12.0"
 
 \relative {
   \override Score.SpacingSpanner #'packed-spacing = ##t
diff --git a/input/regression/spacing-paper-column-padding.ly b/input/regression/spacing-paper-column-padding.ly
new file mode 100644 (file)
index 0000000..45a1951
--- /dev/null
@@ -0,0 +1,16 @@
+\version "2.12.1"
+
+\header {
+  texidoc = "The space after a paper column can be increased by overriding
+the padding property."
+}
+
+\layout {
+  \context {
+    \Score
+    \override PaperColumn #'padding = #10
+    \override NonMusicalPaperColumn #'padding = #10
+  }
+}
+
+{a b}
index ea9107cb5c0379be9e06702f59cd522811229f41..2cc2b6cfd15731ce542e3b26ac4f5fdea1f88a33 100644 (file)
@@ -6,7 +6,7 @@ to the distance for the given duration."
 
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 \paper { ragged-right = ##t }
 
index aaac78f0252170447420db74283a137ad833661a..817ac43190895c426972a3146a30ccc7d4d2df91 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
 
index bb4f285b43b8fa86e5f505ac9f00fef3e97d6216..a55f4cbaf1f0fbf0c540ade9eac244db6c571f07 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 \header {
   texidoc = "Rests get a little less space, since they are narrower.
 However, the quarter rest in feta font is relatively wide, causing this 
index b95c794919f2c75f4b3dfaca2bd8a2f8713395c8..065cb423dfc70ad0fe07998f6c73e7631969a320 100644 (file)
@@ -11,7 +11,7 @@ the 4/16, and a 16th in the second section takes as much space as a
 {
   ragged-right = ##t
   }
-\version "2.11.51"
+\version "2.12.0"
 \relative {
   \time 2/4
   c4 c8 c 
index 0514305d023865f7268af7c62869730251fe619a..8af2ae378c4385646383818a20d1ec0ff48c9351 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 \header {
   
   texidoc = "Notes that are shorter than the common shortest note get a
index 47e8baa6484f880d3c403fe0b0f6d125423969e5..78dd605705342297b5a433597ca905cc14f818ea 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
   texidoc = "When space-to-barline is false, we measure the space between the note and the
index d5fe84524ea59bbeabf4f600f46643e33ba4f0fc..570dc6c87368092b2b2320b060625cd8e2efe3c7 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 \header {
 
   texidoc = "Upstem notes before a barline are printed with some extra
index c07e65818322f53d3937a7b9ea42a14eaeeba3cd..a595db3ca25d06320b4ba5a5034d5fe74850c48c 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 
 \header{
 
index b4c1cd9d255ce479d01daa661be74ceb0ac522ed..aa6627633823d54d486597d4f02c44dd684c787e 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 \header {
   texidoc = "For juxtaposed chords with the same direction, a
 slight optical correction is used. It is constant, and works only if
index 19373fce16343e8aac0d3eeccd006e56e55fad39..d89ee89e22face4d0f3090e8a2e1c6ad32385c7e 100644 (file)
@@ -7,7 +7,7 @@
 
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 \layout { ragged-right = ##t } 
 
index 6acf1411cbdcadbe9c31f3f97473ea496ca59832..63792bd589079b346ce1cb0d2d1a13c16412385d 100644 (file)
@@ -9,7 +9,7 @@ time.  This may cause collisions.  "
 }
 
 
-\version "2.11.51"
+\version "2.12.0"
 
 \paper {
   ragged-right = ##t
index 211e89ce7ccdfe584df60b7250bad1f29f900645..64614ebf87b09c0866a1dff9d1a89a5ca52fab7e 100644 (file)
@@ -5,7 +5,7 @@
 
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 <<
  \override Score.SpacingSpanner #'strict-grace-spacing = ##t
index ac8bced723eea2e1ca9d77c78ba57e558c5c778b..af26d8e5ca450f656b5ee70b3abbd1eacaafe732 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.50"
+\version "2.12.0"
 
 \header {
   texidoc = "An empty barline does not confuse the spacing engine too much.
index 47cadb5372c2047a59495656460c5af707567dbb..483e7eef585b2b343dfcf09b44b1b1e4efb7a08b 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 \header {
 
   texidoc ="Space from a normal note (or barline) to a grace note is
index ba1457b9f5079d0721d111432fb743ead9f89bc8..f32952e3873a2e7fe7ecb063957d91a227345b72 100644 (file)
@@ -6,7 +6,7 @@
 
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 \relative c''
 <<
index fd65763d2a8d15d9d8db11cc9383698c5b57e308..3ac07160ffd20f301bf8d6ee6872dde137199541 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
 
index 33aab7de3d6b131b56f702a81b327c456eec37de..6ef67048fec23c6ce143268b7173c79a2d4ec6cd 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 \header {
   texidoc = "Span bars can be turned on/off on a staff-by-staff basis."
 }
index 3f06520560617e9234413287a9146ec6bc303a48..0133543e9965c7aa29c49333ca1aa440f75744ce 100644 (file)
@@ -3,7 +3,7 @@
 the accidentals should not collide with the bar lines."
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 upper = \relative c' {
   \key f \minor \time 12/8 
index 4ba6971a642bbfe058b631e14069f4f7ec3afda3..feb952071626752c61c6c26963b613e13f239ef2 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 \header {
   texidoc = "Span bars are drawn only between staff bar lines. By setting 
 bar lines to transparent, they are shown only between systems.
index 3e9cb7de5d5df3876a5f528ce23c957d4b089b12..4961d82e767a0dbdab8ac656c44942c42bc7f6ec 100644 (file)
@@ -4,7 +4,7 @@
   }
 
 
-\version "2.11.51"
+\version "2.12.0"
 
 \paper { ragged-bottom = ##t }
 
index 6516799df996fac68d8526c4a409d1210cdb6f1d..43953bbe65ea444610843e32a6140ec7c6cde723 100644 (file)
@@ -8,7 +8,7 @@ prefatory matter."
 
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 \paper { ragged-right = ##t }
 
index bd32da26f2107b2713b7c2fe0b4cf6b3684b6b41..025bf892d2c895121bf0ce1a04c0e3f36973d589 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 
 \header{
 
index 0c70d67d15b347100c9d04c3b7afc85e94e75eb3..bb3f17e80e09d1850d75c3476722873ca31d477c 100644 (file)
@@ -2,7 +2,7 @@
   texidoc = "Staves can be started and stopped at command. "
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 \paper {
   ragged-right = ##t
index a317e1cea6ccb01e12b58a50b3dc58f02cba363c..498bd6ef52708d46e2c9301621df3671d330924f 100644 (file)
@@ -6,7 +6,7 @@
 
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 
 \new Staff \relative c'  {
index 9fa58fa852d6a5e1f4f768f163a313303951ca9f..c3bcc78b6a89bbc6708a59640d7c7b5ee759a1fb 100644 (file)
@@ -7,7 +7,7 @@ large on smaller staves."
 
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 \layout {
   ragged-right = ##t
index 85bc4e81c6336e2baed6017e1ed909e72cb40d23..583c690ece4ffaf0d76c20c10f4701de4ad18269 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.55"
+\version "2.12.0"
 \header {
 
   texidoc = "Symbols that need on-staffline info (like dots and ties)
index 50586976933a4890ae28d036e5e377d38a1e99a5..53b0affb6da88379cc4f392e03f11b35305134eb 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \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}.
index 05b5fa6f8fb3888c2aa4a5d90a3646305a284298..8af4a9b2a7e5ed32cf1144f96261f89b6fe237c2 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header { texidoc = "Stanza numbers are put left of their lyric.  They
 are aligned in a column."  }
index 342561bd4cc8b1ea0b431a4e0ee19a9166b9a440..18315d1eaae5036a7e0e464325e79f420b5a90be 100644 (file)
@@ -5,7 +5,7 @@
 
 }
 
-\version "2.11.51"
+\version "2.12.0"
 \relative c'' \new Voice \with {
      \consists "Melody_engraver"
      \override Stem #'neutral-direction = #'()
index e041d41dfb8145373be689a94b37143facc25b65..56fd43186b46b3439baa28867ef1ba24194b56a0 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 
 \header{
 texidoc="
index 2ff32f5c682c322454a3aeb2b4293cb037af0e6b..6274e711c63fcafbe14c81f4e1b8092e8c4c63db 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
   
index b2b6e6896e613315f662e37d12cea9ebe7536fa6..ba69bf2c310d641c43ffa05ba664ded25bfe4020 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 \header {
   texidoc = "Stemlets don't cause stems on whole notes."
 } 
index 727963984221b0db7093ee72872badf3ac44c943..5603b344573229eed1f8e30d1dbb5d275c7a99bf 100644 (file)
@@ -5,7 +5,7 @@ length can be set with @code{stemlet-length}."
 
 }
 
-\version "2.11.51"
+\version "2.12.0"
 \layout { ragged-right = ##t }
 
 \relative {
index d87e53f0a06708635576774f71060206992e87fc..9b716b74c7105a8afaec24c848570dc5501a4c81 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 \layout { ragged-right = ##t }
 \relative c 
 {
index ea834903b3f978ba57db07014d3c56b58dafbbe0..e423eeb7c03716415cd50793628014137212d448 100644 (file)
@@ -5,7 +5,7 @@
     tilted extra on stem-down notes with a flag."
 }
 
-\version "2.11.51"
+\version "2.12.0"
 \layout {
     ragged-right = ##T
 }
index 1d4663e8a4c2105c4640036641bd43fdf8694302..5d4e85d6bd0053ff0c62ffc21dc5d07be0487ea9 100644 (file)
@@ -4,7 +4,7 @@
 
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 \layout {
   ragged-right = ##t
index 394e55b31e75951ddab3e2d011a62b6de51359b8..df26319330db16265a820780251862880c73256e 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 \header{
   texidoc="
 Stem tremolos or rolls are tremolo signs that look like beam segments
index 88819aa9d04b47d594d69e771bfe622257cfe4d0..7e89fa2cb19364a1d10c4bb4930b0cc9b258014a 100644 (file)
@@ -2,7 +2,7 @@
   texidoc = "Combinations of rotation and color do work."
 }
 
-\version "2.11.51"
+\version "2.12.0"
 \relative c'{ 
   \override Hairpin #'rotation = #'(20 -1 0)
   \override Hairpin #'color = #(x11-color 'LimeGreen)
index d7138c1a9614888fd3751ebca931558b424b143d..b95fffb857b9f7c44ad65c8ed07f38299097b309 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 
 \header { texidoc=" You can write stencil callbacks in Scheme, thus
 providing custom glyphs for notation elements.  A simple example is
index 42c8a392c2634a144a46dcf95d96d1bf80a0cf09..bd4a5b4d5c868421683f50ba5e04d232d6b27f2e 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.57"
+\version "2.12.0"
 
 \header {
   texidoc = "String numbers should only be moved outside slurs when there
index e479733cf4965349dafc1ef5a268af5f7f8cec08..1b8692de79ef929e0ce22b8ad1468004a9eee0c7 100644 (file)
@@ -4,7 +4,7 @@ positioning mechanism as finger instructions."
 
 }
 
-\version "2.11.51"
+\version "2.12.0"
 \paper {
   ragged-right = ##t
 }
index e65801313ff420da4b83175453f62a8cf70eab14..4ff06b03857b8387cb59236a3337dae075d8e726 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 \header {
 
     texidoc = "The size of every system is correctly determined; this 
index 0bfda8f3121f51a5d5fb3f8c1afe8dd116fcdb5e..e584dde39311e09ff805838e99c0313e90c30a52 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 \header { texidoc = "By setting between-system-padding to a negative
 value, it is possible to eliminate the anti-collision constraints.
 Then  setting @code{between-system-space} to a low (nonzero) value,
index d33a619bfcc76150564ab79943746aff99f7877e..840a650ef43d4ea62a200d047f412c737b8b63e7 100644 (file)
@@ -1,24 +1,25 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
-
   texidoc = "System separators may be defined as markups in the
-@code{systemSeparator} field of the paper block.  They are centered
-between the boundary staves of each system."
-
+@code{system-separator-markup} field of the paper block.  They are
+centered between the boundary staves of each system."
 }
 
 \paper {
-  systemSeparatorMarkup = \slashSeparator
+  system-separator-markup = \slashSeparator
+}
 
+foobar = \relative c' {
+  c1 c \break
+  c1 c \break
+  c1 c
 }
-foobar = \relative { c1 c \break c c  \break c c }
-\book
-{
+\book {
   \score {
-     \new GrandStaff <<
-       \new Staff \foobar 
-       \new Staff \foobar 
-     >>
+    \new GrandStaff <<
+      \new Staff \foobar 
+      \new Staff \foobar 
+    >>
   }
 }
index b6940b19f6d348e36d970b520f2b2cb907f0324c..242f8d75f9774524b5c4964d54adec9a4f50ab77 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 \header {
   texidoc = "A piano context included within a staff group should
 cause the piano brace to be drawn to the left of the staff angle
index f5d8a51b226bec59d602f4217504fe7d73392f02..25b84c21aca68837ccaa11b13911d5ba32210874 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.11.51"
+\version "2.12.0"
 
 \paper {
   ragged-right = ##t
index ac4f539d511cc500d557ba4a0be1286974ded42f..1b9e249b4e6f5cf396cd4f463d3b020a2cd0064c 100644 (file)
@@ -2,7 +2,7 @@
   created with the @code{systemStartDelimiterHierarchy} property."
 }
 
-\version "2.11.56"
+\version "2.12.0"
 
 \paper {
   ragged-right = ##t
index 0246d540b647229572abf1e0fae51b0627f044da..cc5515b0fc4ea5a0584e30d923762904c087e54c 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header
 {
index 8bec6998d32300369ae56bce2c919310b7279f6b..1a32a62cd2773cf4748d32082551c10d135fee95 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 \header {
 
   texidoc = "Harmonics get angled brackets in tablature"
index d5b18d0ebd2b08bd7a8fd78c3916cf5bb5bf50dc..6fd511f09ca3e110d2ab654f922032a493608901 100644 (file)
@@ -4,7 +4,7 @@
   texidoc = "Tab supports slides."
 }
 
-\version "2.11.51"
+\version "2.12.0"
 \paper {
   ragged-right = ##T
 }
index d404825691036a95572a36d1bfe4931e9f425c6f..d8f735e43594f1b716b9da0d77baee9ba1367aaa 100644 (file)
@@ -6,7 +6,7 @@
 
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 
 \new TabStaff {
index 93f82a1aacb99883c6895bdf4b0d0bad40d44e52..0c631e87a14e24e3e6412e66ba90cc2ad5d991e0 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header{ texidoc = "@cindex Tabulature
 A sample tablature, with both normal staff and tab.
index ccc8586295c76dd46a14d4053611e2575cd7f763..dca241b0d7156ef6327f067e05e3b29aa68d981f 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 \header {
 
   texidoc = "The @code{\\tag} command marks music expressions with a
index a956be619209daf8d229a04aa553709852cbaf51..84bb5773d79e43579d15c11374d3a2047f675e9a 100644 (file)
@@ -5,7 +5,7 @@ it should always show up in the output-distance testing. "
 
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 
 #(define time (gettimeofday))
index 8d7754356e39406cf136c1d6347e5e4cb22ff451..942de5ff4d6dab44b3eeee2333a13f71374c4df1 100644 (file)
@@ -9,10 +9,10 @@
   ragged-right = ##t
   }
 
-\version "2.11.51"
+\version "2.12.0"
 <<
    \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 
    }
index b7a0a67294ab790c10ca762de20810da46401bb2..09baf614e26976734df60d1f75581fde4edbdcfa 100644 (file)
@@ -5,7 +5,7 @@
 
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 sample = \relative c'' {
   c2\startTextSpan c2 \break
@@ -15,11 +15,11 @@ sample = \relative c'' {
 << {
   \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 =
     \markup { \large "BROKEN" }
index 241f7878f92628f0eecae3024a8c7f01c2d350bc..27a00ca0e48f94e67100933bfa3cdc3d78c874bd 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 \header {
     texidoc= "Text spanners should not repeat start text when broken."
 }
index 4cc1b7e2450451a575691e07909d037bc792f508..609437b95dad435dd70c6df9ea5c31d297140c9c 100644 (file)
@@ -4,7 +4,7 @@
 " }
 
 
-\version "2.11.51"
+\version "2.12.0"
 
 \paper {
   debug-tie-scoring = ##t
index 22e3ef567d5fd49bef1a935ae7f8b301be08340b..a874e2b4119dfd7a9f05c64487855d7b39bc742a 100644 (file)
@@ -8,7 +8,7 @@ unarpegiated case."
   
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 
 \layout { ragged-right = ##t }
index 306d33bb256b5ec2bcc690cb4674f868df5b5974..e402303b19ec6a7537d32a2c9b0a8d55f155614f 100644 (file)
@@ -9,7 +9,7 @@
   
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 \paper { ragged-right =  ##t }
 \relative {
@@ -22,6 +22,5 @@
   \set tieWaitForNote = ##f
   <c e> ~
   <c e c'>
-  |
 
 }
index 4684d9d981f92ccbc614a57239559f58c072dfac..c7e9c512eeef2faee5c220491bd15ba7e142222a 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
 
index 5acee70ae4a1baf8ab7ddcb363f9f906d8d16c44..b5ba5838277358f54cdd080d7d570ff427847110 100644 (file)
@@ -3,7 +3,7 @@
 in other staves."
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 \layout {
   ragged-right = ##t
index 507b8391585122f9ed1b38c26ec4163dbdd6f8f8..41b71dc00bd3596c0dc91c2918fc683aebc1f7e0 100644 (file)
@@ -3,7 +3,7 @@
 texidoc = "Ties behave properly at line breaks."
   }
 
-\version "2.11.51"
+\version "2.12.0"
 
 \paper { ragged-right = ##t } 
 
index a969815fc5c37954e806a53e2bfa33e403d821b0..71fb2f615696a292a3569f955ce009283d4ee72f 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.53"
+\version "2.12.0"
 
 \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 62a25e06d2ccb9156ac6e08026579513e51376a6..4a5abc25515b535d0eaf3d72bcdd3dc7236d27d4 100644 (file)
@@ -5,7 +5,7 @@ decisions made."
   
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 \paper
 {
index b44805891421a44ae8d3bf8f6be1f2c846208e63..d5ab64e1e0889dd01727fe72ac2ef722df19ff00 100644 (file)
@@ -2,7 +2,7 @@
 {
   texidoc = "Individual chord notes can also be tied"
 }
-\version "2.11.51"
+\version "2.12.0"
 
 \paper {
   ragged-right = ##t
index 71ce356efd7d4f6d316725f76a1a43a217d29fb6..2688680580f5d32c7bcb9baddc8f84cc05dbf9cf 100644 (file)
@@ -13,7 +13,7 @@ each system.  "
 
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 \paper {
   indent = #0.0
index b1304f059c04017a010b06f6caf3f529432472df..25570e613fea4778bfb4b22137dc5cd164a15aa7 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
 
index 23304988bd4622cd9187b6b89f35f49d945c067c..f6a6610c8c9c740988dc8e57728a586d0b72a26e 100644 (file)
@@ -4,7 +4,7 @@
 This makes correction in complex chords easier."
 
 }
-\version "2.11.51"
+\version "2.12.0"
 \paper
 {
   ragged-right= ##t
index b3ab2d0da45646dafbdb44da93e4dd68de92854e..9b2107c64ec1cfa509f5c88fd62110f3a8ea61b9 100644 (file)
@@ -3,7 +3,7 @@
   texidoc = "Ties avoid collisions with dots."
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 \paper { ragged-right = ##T }
 
index 505b9b743321be3224d8f1971c8304bbab027797..c2e560636521d0170767c90893d830392ec984ba 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 \header {
   texidoc = "Tying a grace to a following grace or main note works."
 }
index a304f6da5d0e307ed59f1b9f5e17b68ff2b4c623..0edfd18e16249427099f053a4ff89a002a6a1aa5 100644 (file)
@@ -1,23 +1,15 @@
-\header {
-
+\version "2.12.0"
 
+\header {
   texidoc = "If using integers, the tie will vertically tuned for
 staff line avoidance. If using a floating point number, this is taken
 as the exact location."
-
 }
 
-\version "2.11.51"
-
-\layout {
-  ragged-right = ##t
-}
-
-\version "2.11.51"
 \relative c'' {
   \override Tie #'staff-position = #3
   d4 ~
   \override Tie #'staff-position = #3.0
   d ~
   d
- }
+}
index 3e5f252577e21d1cca87f6ee3970a29b1a301990..95be03dd475516b98722ec13afdb2fed26614ce2 100644 (file)
@@ -11,7 +11,7 @@ You can leave a Tie alone by introducing a non-pair value
 
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 \layout {
   ragged-right = ##t
index 625ed9b7cbff1a156bf3005cb3a150d059ae629e..a5c226dc009e70139efaf04254e7738d98d1c8a2 100644 (file)
@@ -8,7 +8,7 @@ tweaked with @code{#'direction}."
 
 
 }
-\version "2.11.51"
+\version "2.12.0"
 \layout{ragged-right=##t}
 
 {
index a1d8ced47e14c6072865f4363854510ed5eb811c..ab5410d6bbab6e7f03a373b200c309a9f5dcad8b 100644 (file)
@@ -5,7 +5,7 @@
 
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 \paper
 {
index e86c67562ee72ea9829da72b31c0abe5dabee204..c505453d7fa3c52450aa1cc659b8a68e44b54e3b 100644 (file)
@@ -5,7 +5,7 @@ specifying their @code{direction} and/or @code{staff-position}."
   
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 \paper {
   ragged-right = ##t
index 60dd2fc0eeaaf4bf8412dae7a6417dfacab37a1c..c8e3278eb58b71ab7ed9ce84653e12112cbd5061 100644 (file)
@@ -22,7 +22,7 @@ that otherwise don't fit in a space
   ragged-right = ##t
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 frag =
 \relative c'' {
index a030c7559eec1d035fe96f984d0aacfc965f3805..e63d02b7882020e17c60c63c413b1250f3efa216 100644 (file)
@@ -5,7 +5,7 @@
 
   
   }
-\version "2.11.51"
+\version "2.12.0"
 
 \paper { ragged-right =  ##t }
 \relative
index 53177f60f671a0bc80e270446018287e7779da5d..1ac46ee0ef75b57c50b71f70292334b0541afac5 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 testMusic =  { << c''4 \\ g'4 >> }
 
index f38acbb06ed2ef939ad2ba4393c08e7a6c19b633..94fe0f08e767cd5426389caa68f29d5d4756dc3e 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
   texidoc = "A table of contents is included using
index b4bac596db7dce87036eca9d280e07c94cdedc39..1ec7f8b17cc57579a5c20ca28c991e32ef52dd4d 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
   texidoc = "
index ddf2348d85137d842d83b00575ed0aadc36b9c33..02b032aa26a7587b53bfa431a793af5c69fd2125 100644 (file)
@@ -2,7 +2,7 @@
     texidoc = "Trill spanner can end on a grace note"
 }
 
-\version "2.11.51"
+\version "2.12.0"
 \layout {
     ragged-right = ##T
 }
index 33fcf817dc8b375e9937d76351ad7d38acd6e418..acd8e7b05761c625f10a80d2ba009365dd095801 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
   texidoc = "Pitched trills on consecutive notes with the same
index e888bbcdbbbd6f1f841c5ce1e940c1175e3d385e..25807521229ee6003adbd35001c8fc8641d95a8c 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
   texidoc = "Pitched trill accidentals can be forced."
index 3ca0ba84cc51c719aef8f1e29c7321bae85750b3..182639ac6c08bca70d7e2ad81968e4eacae1edf8 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
 
index 1b59c7605ce9484ada60635b2cfd93a183867201..180c60c2f45a4106fbe6f85494cac01c8c6271f6 100644 (file)
@@ -5,7 +5,7 @@ the wavy line should appear to come from the crook of the r"
 
 }
 
-\version "2.11.51"
+\version "2.12.0"
 \paper { ragged-right = ##t }
 \relative c'' {
   c1\startTrillSpan
index be160d2f9fe31efc53076f090b7b7ed3e10291dd..1b9d32ee597b89028c68a4636eb26b7866380f4c 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 \header {
 
   texidoc = "In combination with a beam, the bracket of the tuplet
index d06d3cfb04e7f2f3b9d9c37cdfe457c6c3db61ff..346287177ab6f56b60bb821c241085e6d5af55a6 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \paper {
   ragged-right = ##t
index 4226f385b8a2a500264cc9e670995be7de60c266..d8ceec7eb86c1161f6b1d182f087088c7bbcabef 100644 (file)
@@ -8,7 +8,7 @@
 
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 \paper {
   ragged-right = ##t  
index e2b1575c9ecefe4db2972b4121f10b4ffd155107..cff49efa3c196f0158bc0cf3f3852e2df9f41ab1 100644 (file)
@@ -4,7 +4,7 @@
   attaching column for a full-length tuplet bracket can be ignored."
 
 }
-\version "2.11.55"
+\version "2.12.0"
 
 \new Staff {
    \set tupletFullLength = ##t
index 88af2c64dfc1770d14fcf35940e200b5d6677193..92a8f362b17a394243a50c64d8aad07d9f549cc7 100644 (file)
@@ -6,7 +6,7 @@ the next note, by setting @code{tupletFullLengthNote}."
 
   }
 
-\version "2.11.51"
+\version "2.12.0"
 
 \new RhythmicStaff {
   \set tupletFullLength = ##t
index 827f291287cc182d535e102eb43da216bdc147a4..53ac8d57da6d5533984e6ab7cefc29ab0d193c5d 100644 (file)
@@ -5,7 +5,7 @@
 start of the next non-tuplet note.  "
 
 }
-\version "2.11.51"
+\version "2.12.0"
 
 \paper { ragged-right = ##t
 indent = 0.0 }
index 6bb3b94437c5598f37c7ce0679f170202fa8f0b7..373e9c1567f8910f6661b8491eab5b17fdf538ef 100644 (file)
@@ -5,7 +5,7 @@
 
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 \layout {
   indent = 0.0\mm
index e1e9dedbed5222c35802efce67afbccec10e55fe..c6e53caa47b7d43fd4d23d3198c8401332556e4c 100644 (file)
@@ -5,7 +5,7 @@
   
 }
 
-\version "2.11.51"
+\version "2.12.0"
 \paper{
   ragged-right=##t
 }
index 8bba889660c1982e3fd49936df58284384e397db..c090b2beb7627aeab2e4124503c9411b7c8150a9 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
     texidoc=" Tuplets may be nested."
index 0284c7e948a0a819f1b07a0a7b55179516c929fd..1bd57dde6e1387964a135df4c75495bb62a54b33 100644 (file)
@@ -3,7 +3,7 @@
 }
 
 
-\version "2.11.51"
+\version "2.12.0"
 
 \layout{
  \context{
index 20299c7cc38d6ef6bd940e5e758f31b9adce3ac0..06681150f5861690ab2cf09b59309c439bfb3e28 100644 (file)
@@ -6,7 +6,7 @@ for instance, bracketed (B) and non-bracketed (NB).
 }
 
 
-\version "2.11.51"
+\version "2.12.0"
 
 
 
index f973361948e4018c7f993587f36a253941f3a457..ca991b0eb5bb40f79abb297ab9fe1f380575f204 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 \header {
 
   texidoc = "Tuplets may contain rests. "
index 63d0d0e72d1fa2547ddf136b0a7633f45b0182f4..f5cd4424135bc5736d7fb844912a05048834e125 100644 (file)
@@ -4,7 +4,7 @@
   texidoc = "Show tuplet numbers also on single-note tuplets (otherwise the timing would look messed up!), but don't show a bracket. Make sure that tuplets without any notes don't show any number, either."
 
 }
-\version "2.11.51"
+\version "2.12.0"
 
 \paper { ragged-right = ##t
 indent = 0.0 }
index 7839819d95c13fbbb576fb6c5a6c10218bd004a0..51f319fb0ef2127d36cc1ebc9ee86cb7c787eb72 100644 (file)
@@ -15,7 +15,7 @@ The bracket direction is determined by the dominating stem direction.
   ragged-right = ##t 
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 \new Voice {
   \relative c'' {
index 50ab09c771bdff0260846f681945224452f2df2c..6bbdbe6d4590393746f1b9274c1a40f3c597969e 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 \header {
 
   texidoc = "Horizontal tuplet brackets are shifted vertically
diff --git a/input/regression/tuplet-text-different-numbers.ly b/input/regression/tuplet-text-different-numbers.ly
new file mode 100644 (file)
index 0000000..8464c22
--- /dev/null
@@ -0,0 +1,15 @@
+\version "2.12.3"
+\header{
+  texidoc="Non-standard tuplet texts: Printing other tuplet fractions than the ones actually assigned."
+}
+\layout { ragged-right= ##t }
+
+
+\context Voice \relative c'' {
+  \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)
+  \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")
+  \times 2/3  { c4. c4. c4. c4. }
+}
diff --git a/input/regression/tuplet-text-fraction-with-notes.ly b/input/regression/tuplet-text-fraction-with-notes.ly
new file mode 100644 (file)
index 0000000..d35dcc2
--- /dev/null
@@ -0,0 +1,12 @@
+\version "2.12.3"
+\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")
+  \times 2/3  { c4. c4. c4. c4. }
+  \once \override TupletNumber #'text = #(tuplet-number::non-default-fraction-with-notes 12 "8" 4 "4")
+  \times 2/3  { c4. c4. c4. c4. }
+}
diff --git a/input/regression/tuplet-text-note-appended.ly b/input/regression/tuplet-text-note-appended.ly
new file mode 100644 (file)
index 0000000..645b66d
--- /dev/null
@@ -0,0 +1,13 @@
+\version "2.12.3"
+\header{
+  texidoc="Non-standard tuplet texts: Appending a note value to the normal text and to the fraction text."
+}
+\layout { ragged-right= ##t }
+
+
+\context Voice \relative c'' {
+  \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")
+  \times 2/3  { c8 c8 c8 c8 c8 c8 }
+}
index a1b3f95bfce8a6355ebbc2ec98481a72e65ea4f9..63fd9643e358443643dc2585baa258b2377be094 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.11.51"
+\version "2.12.0"
 \header{
   
   texidoc="
index b688477b004876016804ed48c8d00dbab7164180..47e9f7513b8556e444c6cf0afa402eea9ae55cc3 100644 (file)
@@ -5,6 +5,6 @@
   
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 \markup  { "Здравствуйт Hallo" }
index ddede6d2512e8b54d6bfaf042231ce824bb0801e..d8c5c5c9d55a8dbdbeda87f8c06fb96f90129ffe 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 %% Edit this file using a Unicode aware editor, such as GVIM, GEDIT, Emacs
 
index 85881e730bde1da7d1e3709e9b6d1643bd4eb67c..c06de358c1bf7553dc2a3e319586a82e6bc70bc5 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 
 \header { texidoc= "
index a8ea6b00bf61d1e6e86e10d91050ea2d7e90f602..0bcac60ab4ec514429ba9b0c9e59b9242ebb7762 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
   texidoc ="Broken volta spanners behave correctly at their left edge in all cases."
index 6eedd3e2c61911963a828dc6e20ec5e599419723..6e0ad569dc66276fbddf7f16c71e011901ff69d5 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
   texidoc = "Volte using @code{repeatCommands} can have markup
index 9839bc41cd147fbfb5f95ae37c378cfe18e0e22b..564f6657afae67091ab997b70c810eaffef0ab26 100644 (file)
@@ -12,7 +12,7 @@ volta brackets on staves other than the topmost one."
   }
 }
 
-\version "2.11.51"
+\version "2.12.0"
 
 vmus =  { \repeat volta 2 c1 \alternative { d e } } 
 
index 389b6f78c341281b342be5ea670f6ae3ec53cdc0..0a87f89b2c993a01e353ec2d814b973cd5e6d98e 100644 (file)
@@ -3,7 +3,7 @@
 }
 
 \layout { ragged-right = ##t }
-\version "2.11.51"
+\version "2.12.0"
 
 vmus =  { \repeat volta 2 c1 \alternative { d e } } 
 
index 5ff27e608c041c0298e28ff2587e8b9d5aba7d3c..80dc236fa287629d151960a6ecf7c805397d907b 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 
 \header {
   texidoc = "If you specify two different key signatures at one point, a
index 09f35ece57d386c31c546efceedf4e3ad33cfda7..e75a168216a7a3bd0196064d17433f2b83fe5ea6 100644 (file)
@@ -5,7 +5,7 @@ markup.  The whitening effect only is only guaranteed for staff lines,
 since staff lines are in a lower layer than most other grobs.  "
 
 }
-\version "2.11.51"
+\version "2.12.0"
 
 \paper
 {
index 8bdcb2ebb578798b162aa1c94c35617c8dad3b64..2b86466b063a65c354b9c1a3abceb74814275140 100644 (file)
@@ -1,6 +1,6 @@
 %% sakura-sakura.ly
 
-\version "2.11.61"
+\version "2.12.0"
 
 
 \header {
index 654ca8f594f2168d54ec4808598e21583cca1558..b05fa4613dfd0373703b912ce1a7e2fdea5876a6 100644 (file)
@@ -13,5 +13,5 @@
 >>
 
 %% Optional helper for automatic updating by convert-ly.  May be omitted.
-\version "2.11.61"
+\version "2.12.0"
     
index cfa72542fa30487e50315f7a3305abbf53785bb9..0ce4bf40aff83bb3f1ed8709149ff2662672e222 100644 (file)
@@ -4,4 +4,4 @@
 }
 
 %% Optional helper for automatic updating by convert-ly.  May be omitted.
-\version "2.11.61"
+\version "2.12.0"
index 94dd94820f6c5d08cbc2c52195685c892d2e7872..0f43098559b54abe8024ba76580a761a1e920df1 100644 (file)
@@ -8,8 +8,10 @@ dentro de un contexto @code{Staff}). Se puede elegir entre
 centrado) y @code{#DOWN} (o @code{#-1}, abajo).
 
 Como podemos ver, esta propiedad se puede cambiar tantas veces
-como queramos. Utilice @code{\\once \\override} si no quiere que el
+como queramos.  Utilice @code{\\once \\override} si no quiere que el
 truco se aplique a toda la partitura.
 
 "
   doctitlees = "Añadir un bajo cifrado encima o debajo de las notas"
+  
+  doctitlefr = "Ajout d'une basse chiffrée au-dessus ou au-dessous des notes"
index 3be495f20a09f279ee6c4f3dbb8eae6485a1dee7..5938f7b483664c74525e1a3915b6e14b0f67b3cf 100644 (file)
@@ -5,3 +5,11 @@ los nombres de acorde @code{ChordNames}, incluya el grabador
 
 "
   doctitlees = "Añadir barras de compás al contexto de nombres de acorde (ChordNames)"
+
+%% Translation of GIT committish :33f623301a41fcc53efadf96bca1c72834763415
+  texidocde = "
+Um Taktstriche in einem @code{ChordNames}-Kontext anzeigen zu lassen, muss der
+@code{Bar_engraver} hinzugefügt werden.
+
+"
+  doctitlede = "Tatkstriche in einen ChordNames-Kontext hinzufügen"
index 123752aef25daa8a105fb7ab1d16f148d9854782..965a6e59bbae0eb5fba6feb1fb8fd8dd86235b2c 100644 (file)
@@ -9,3 +9,17 @@ de líneas.
 
 "
   doctitlees = "Escritura de partes de percusión"
+
+  texidocfr = "
+Grâce à la puissance des outils préconfigurés tels que la fonction
+@code{\\drummode} et le contexte @code{DrumStaff}, la saisie de 
+parties pour percussions est extrêmement simplifiée : chaque composant
+d'une batterie trouve sa place sur une portée dédiée (avec une clef 
+spécifique) et les têtes de note sont spécifiques à chaque élément.  
+Il est également possible d'affecter un symbole particulier à chaque 
+élément, tout comme de restreindre le nombre de lignes de la portée.
+
+"
+
+  doctitlefr = "Ajout de parties de batterie"
+
diff --git a/input/texidocs/adding-fingerings-to-tablatures.texidoc b/input/texidocs/adding-fingerings-to-tablatures.texidoc
new file mode 100644 (file)
index 0000000..4fc9caf
--- /dev/null
@@ -0,0 +1,6 @@
+  texidocfr = "Ajout de doigtés à des tablatures"
+
+  doctitlefr = "
+L'ajout de doigtés à des tablatures s'obtient en conjuguant des
+@code{\\markup} et des @code{\\finger}.
+"
index f71fe816317aca510ef20db6922c790b870c8789..4e6a67cdf7b77716643dae42cf2e08e34caf1f5a 100644 (file)
@@ -1,6 +1,12 @@
   texidoces = "
 Con algo de código de Scheme, se puede añadir fácilmente la fecha
 actual a una partitura.
-
 "
   doctitlees = "Añadir la fecha actual a una partitura"
+  
+  texidocfr = "
+Avec un peu de code Scheme, voici comment ajouter facilement
+la date du jour à votre partition.
+"
+  
+  doctitlefr = "Ajout de la date du jour à une partition"
index 287a587ac9535ce7e77354be4b20430f2ec7a746..00f0538425b879a33d5c10d88f37ac5911e8b0d0 100644 (file)
@@ -8,3 +8,14 @@ también el fragmento de código \"Volta multi staff\".
 
 "
   doctitlees = "Añadir corchetes de primera y segunda vez a más pentagramas"
+
+%% Translation of GIT committish :<0364058d18eb91836302a567c18289209d6e9706>
+  texidocde = "
+Der @code{Volta_engraver} befindet sich im @code{Score}-Kontext und Klammern
+werden deshalb nur auf dem obersten System dargestellt.  Das kann umgangen
+werden, indem man den @code{Volta_engraver} zu dem @code{Staff}-Kontext
+hinzufügt, in dem die Klammern zusätzlichen vorkommen sollen.  Siehe auch
+das \"Volta multi staff\"-Schnipsel.
+
+"
+  doctitlede = "Volta-Klammern zu zusätzlichen Systemen hinzufügen"
index 13eaef686ada1d27151fb5c2f4fa8ac68b2df0cb..9261fefc0fae31263c78d1e130e9f24af2224c9b 100644 (file)
@@ -6,3 +6,14 @@ añaden definiendo una variable que utiliza la función de Scheme
 context-spec-music.
 
 "
+
+%% Translation of GIT committish :<0364058d18eb91836302a567c18289209d6e9706>
+  texidocde = "
+Ein einigen Fällen von sehr komplexer polyphoner Musik sind zusätzliche
+Stimmen notwendig, um Zusammestöße zwischen den Noten zu vermeiden.
+Wenn mehr als vier parallele Stimmen benötigt werden, können zusätzliche
+Stimmen definiert werden, indem eine Variable mit der Funktion
+@code{context-spec-music} definiert wird.
+
+"
+  doctitlede = "Zusätzliche Stimmen, um Zusammenstöße zu vermeiden"
index 3feb0bf56091fefb105d25943e98452758b7c835..f37ef0f2062026a5bf4865e9ef1034ec69511b1a 100644 (file)
@@ -4,3 +4,11 @@ letra más cerca del pentagrama.
 
 "
   doctitlees = "Ajuste del especiado vertical de la letra"
+
+  texidocfr = "
+Cet extrait illustre la manière de rapprocher la ligne de paroles 
+de la portée.
+
+"
+  doctitlefr = "Ajustement de l'espacement vertical des paroles"
+
index fe33f5a7750da8b38d16218241222dd68cc63855..fc1f697bb0ad128323929d09291e46c1dbb0fadc 100644 (file)
@@ -5,3 +5,11 @@ caídas y subidas de tono («falls» y «doits»).
 
 "
   doctitlees = "Ajustar la forma de las subidas y caídas de tono"
+  
+%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a>
+texidocde = "
+Die @code{shortest-duration-space}-Eigenschaft kann verändert werden, um
+das Aussehen von unbestimmten Glissandi anzupassen.
+
+"
+  doctitlede = "Das Aussehen von unbestimmten Glissandi anpassen"
index 31b46fc67670dff7e94cc434ab0bcf5ff63ce7de..c9220b5867a9cb53997e659ed22e56232954cb7c 100644 (file)
@@ -12,3 +12,20 @@ debe hacer este ajuste para todos los pentagramas).
 
 "
   doctitlees = "Alinear marcas con varios objetos de notación"
+
+%% Translation of GIT committish :0364058d18eb91836302a567c18289209d6e9706
+  texidocde = "
+Wenn angegeben, können Textzeichen auch an anderen Objekten als Taktstrichen
+ausgerichtet werden.  Zu diesen Objekten gehören @code{ambitus},
+@code{breathing-sign}, @code{clef}, @code{custos}, @code{staff-bar},
+@code{left-edge}, @code{key-cancellation}, @code{key-signature} und
+@code{time-signature}.
+
+In diesem Fall werden die Zeichen horizontal über dem Objekt zentriert.
+Diese Ausrichtung kann auch geändert werden, wie die zweite Zeile
+des Beispiels zeigt.  In einer Partitur mit vielen Systemen sollte
+diese Einstellung für alle Systeme gemacht werden.
+
+"
+
+  doctitlede = "Zeichen an verschiedenen Notationsobjekten ausrichten"
index 3517970e541143a133af077ae2718bcf941c3725..53da07da1bbf819c146f33826ad69810a197f839 100644 (file)
@@ -5,3 +5,18 @@ cancelar.
 
 "
   doctitlees = "Permitir que las digitaciones se impriman dentro del pentagrama"
+
+%% Translation of GIT committish: 3f880f886831b8c72c9e944b3872458c30c6c839
+  texidocfr = "
+L'empilement des indications de doigté se fait par défaut à l'extérieur de la portée.  Néanmoins, il est possible d'annuler ce comportement.
+
+"
+  doctitlefr = "Impression des doigtés à l'intérieur de la portée"
+
+%% Translation of GIT committish :0364058d18eb91836302a567c18289209d6e9706
+  texidocde = "
+Normalerweise werden vertikal orientierte Fingersatzzahlen außerhalb des Systems
+gesetzt.  Das kann aber verändert werden.
+
+"
+  doctitlede = "Fingersatz auch innerhalb des Systems setzen"
index 2970ff6677c5cf0e2185cc30bc70664cd05184e3..a04f65fdd9816e4c84324f91ee492090e148b939 100644 (file)
@@ -5,3 +5,10 @@ antigua.
 "
 
   doctitlees = "Tipografía de música antigua"
+
+  texidocfr ="
+Voici comment graver la plupart, sinon tous les symboles que
+LilyPond prend en charge en matière de musique ancienne.
+
+"
+  doctitlefr = "Gravure de musique ancienne"
index fe04ba0cc39790d273826f1f2bd44776a28e4d63..2c922a5af039dc70aaef9f19f223a27c8b3adba8 100644 (file)
@@ -1,12 +1,12 @@
   texidoces = "
-Este ejemplo muestra cómo hacer una transcripción moderna de Canto
-Gregoriano. El Canto Gregoriano no tiene compás ni plicas; utiliza
+Este ejemplo muestra cómo hacer una transcripción moderna de canto
+gregoriano. El canto gregoriano no tiene compás ni plicas; utiliza
 solamente cabezas de nota de blanca y de negra, y unas marcas
 especiales que indican silencios de distintas longitudes.
 
 "
 
-  doctitlees = "Plantilla para notación de música antigua (transcripción moderna de Canto Gregoriano)"
+  doctitlees = "Plantilla para notación de música antigua (transcripción moderna de canto gregoriano)"
   
   texidocde = "
 Dieses Beispiel zeigt eine moderne Transkription des Gregorianischen 
index 9907c88764b178739a9c2584064eeef0d2ce62aa..9bde0020852e29c8f88b8279740d10c63365d178 100644 (file)
@@ -22,3 +22,16 @@ Tatsächlich ändern sich die Rhythmen auch oft alle paar Noten. Als
 ein Kompromiss werden die Notenlinien nicht auf dem System, sondern 
 zwischen den Systemen geschrieben.
 "
+
+  texidocfr = "
+Lorsque l'on transcrit de la musique mensurale, il est d'usage 
+d'indiquer en début de partition,  par un « incipit », les tonalité 
+et tempo originaux.  De nos jours, les musiciens ont l'habitude de 
+voir des barres de mesure qui les aide à appréhender la structure 
+rythmique.  Ces barres n'existaient pas du temps où ces œuvres ont 
+été écrites ; en fait, la métrique évoluait au fil de la pièce.  Un 
+compromis consiste à imprimer des barres de mesure entre les portées 
+plutôt que sur la portée elle-même.
+
+"
+  doctitle = "Exemples de notation ancienne -- transcription moderne de musique mensurale"
index fe59a77fa4b0420ca673dc76d070870c2cbd8223..8bb7d31718a4ed7fab787481fd7fa10ff4ec9e29 100644 (file)
@@ -8,3 +8,16 @@ cómo podría ser el comienzo de una improvisación @emph{hijaz}:
 
 "
 doctitlees = "Improvisación de música árabe"
+
+%% Translation of GIT committish :33f623301a41fcc53efadf96bca1c72834763415
+  texidocde = "
+Bei Improvisation oder @emph{taqasim}, die zeitlich frei gespielt
+werden, kann die Taktart ausgelassen werden und @code{\cadenzaOn}
+kann eingesetzt werden.  Es kann nötig sein, den Versetzungszeichenstil
+anzupassen, weil sonst die Versetzungszeichen nur einmal ausgegeben
+werden, da keine Taktlinien gesetzt sind.  Hier ein Beispiel, wie
+der Begin einer @emph{hijaz}-Improvisation aussehen könnte:
+
+"
+
+  doctitlede = "Arabische Improvisation"
index 8ae5d5bc944e9e242a4a07394cffc8fbd66c417d..30b0dfd5d39e46e84c13efba9f0ab4c99283b686 100644 (file)
@@ -7,3 +7,15 @@ barrado, este fragmento de código cambia el barrado a pulsos de negra.
 
 "
   doctitlees = "Barras automáticas de dos en dos en los compases de 4/4 o de 2/2"
+
+%% Translation of GIT committish: 1154b407d42f303a024598296ad36ab6c93e2b5a
+  texidocfr = "
+Dans une métrique simple comme 4/4 ou 2/2, les croches sont ligaturées
+par défaut en deux groupes de quatre.
+
+En utilisant une macro qui modifie le comportement des ligatures 
+automatiques, voici comment obtenir des ligatures basées sur la valeur 
+d'une noire.
+
+"
+  doctitlefr = "Ligature automatique deux par deux, aussi bien en 4/4 qu'en 2/2"
diff --git a/input/texidocs/avoiding-collisions-of-chord-fingering-with-beams.texidoc b/input/texidocs/avoiding-collisions-of-chord-fingering-with-beams.texidoc
new file mode 100644 (file)
index 0000000..24955bd
--- /dev/null
@@ -0,0 +1,29 @@
+  texidoces = "
+Las digitaciones y los números de cuerda aplicados a notas
+individuales evitan a las barras automáticamente, pero de forma
+predeterminada esto no es cierto para las digitaciones y números
+de cuerda que se aplican a notas concretas de acordes.  El ejemplo
+siguiente muestra cómo se puede sobreescribir este comportamiento
+predeterminado:
+
+"
+  doctitlees = "Evitar colisiones entre digitaciones de acordes y barras de corchea"
+
+%% Translation of GIT committish: 98dc713cb34b498f145badf23d14957367a19ece
+  texidocfr = "
+Les doigtés et les numéros de cordes attachés à des notes seules
+évitent automatiquement les barres de ligature, mais ce n'est pas le cas par
+défaut pour les doigtés ou numéros de cordes attachés aux notes d'un
+accord. L'exemple qui suit montre comment ce comportement par défaut
+peut être corrigé.
+"
+  doctitlefr = "Éviter les collisions entre les doigtés d'accords et les ligatures"
+
+%% Translation of GIT committish :0364058d18eb91836302a567c18289209d6e9706
+  texidocde = "
+Fingersatz und Saitennummern, die zu einzelnen Noten hinzugefügt werden, vermeiden
+automatisch Hälse und Balken, aber das gilt nicht für Noten von Akkorden.
+Das Beispiel zeigt, wie dieses Verhalten verändert werden kann.
+
+"
+  doctitlede = "Vermeidung von Zusammenstößen bei Fingersatz in Akkorden"
diff --git a/input/texidocs/beam-endings-in-score-context.texidoc b/input/texidocs/beam-endings-in-score-context.texidoc
new file mode 100644 (file)
index 0000000..5d177cd
--- /dev/null
@@ -0,0 +1,17 @@
+  texidoces = "
+Las reglas de final de barra especificadas en el contexto
+@code{Score} se aplican a todos los pentagramas, pero se pueden
+modificar tanto en los niveles de @code{Staff} como de
+@code{Voice}:
+
+"
+  doctitlees = "Finales de barra en el contexto Score"
+
+%% Translation of GIT committish :<0364058d18eb91836302a567c18289209d6e9706>  
+  texidocde = "
+Balkenenderegeln, die im @code{Score}-Kontext definiert werden, wirken
+sich auf alle Systeme aus, können aber auf @code{Staff}- und 
+@code{Voice}-Ebene neu verändert werden:
+
+"
+  doctitlede = "Balkenenden auf Score-Ebene"
index f60bb96d1d5b08a75440a210fb3249c644201a2e..376417c63ff473c18d161dab5f2739810e4d3c71 100644 (file)
@@ -7,3 +7,13 @@ compás de 7/8, especificamos los finales de barra en 2/8 y 5/8:
 
 "
   doctitlees = "Agrupamiento de las barras en el compás de 7/8"
+  
+%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a>
+texidocde = "
+Es gibt keine automatischen Balkengruppen für 7/8-Takte.  Wenn diese
+Taktart benötigt wird, müssen die Gruppierungen definiert werden.  Um
+beispielsweise alle Noten in 2/8-3/8-2/8 aufzuteilen, müssen Balkenenden
+für 2/8 und 5/8 definiert werden:
+
+"
+  doctitlede = "Balkengruppen für 7/8-Takte"
index 3bbab2dfc962bc87c72db71d23e08386b1c832e5..dffc70185ba65073cf6ef931b2c9c69d562adaf6 100644 (file)
@@ -5,3 +5,12 @@ comportamiento como se muestra aquí:
 
 "
   doctitle = "Barras que atraviesan saltos de línea"
+  
+%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a>
+  
+texidocde = "
+Zeilenumbrüche sind normalerweise während Balken verboten.  Das kann geändert
+werden.
+
+"
+  doctitlede = "Balken über Zeilenumbrüche"
index bcc9e3aaab937bd09dda665d95d6554a9cea9407..d4b7f4c6fb5e66c73a9dadb1dc597a2c0bacee36 100644 (file)
@@ -4,3 +4,20 @@ utilice la siguiente función de Scheme.
 
 "
   doctitlees = "Cambiar el tamaño de la marca de \\flageolet"
+
+%% Translation of GIT committish: 0099693675b95c7ec6664d7277f22411a14e9c1b
+
+  texidocfr = "
+Il est possible de rapetisser le cercle d'un @code{\\flageolet} grâce 
+à une fonction Scheme. 
+
+"
+  doctitlefr = "Modifier la taille d'un \\flageolet"
+
+%% Translation of GIT committish :33f623301a41fcc53efadf96bca1c72834763415
+  texidocde = "
+Um den @code{\\flageolet}-Kreis kleiner zu machen, kann diese
+Scheme-Funktion eingesetzt werden.
+
+"
+  doctitlede = "\\flageolet-Zeichen verkleinern"
index 98694911fc607f6512036ccb446ff1bd59f64177..6752f6f7201b3e592b106a9d18afdf1e9457c087 100644 (file)
@@ -10,3 +10,16 @@ establecido a 5.5 espacios de pentagrama.
 
 "
   doctitlees = "Cambiar el salto de las barras en ángulo"
+  
+%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a>
+texidocde = "
+Balken mit Hälsen in unterschiedliche Richtungen werden automatisch
+erstellt, wenn ein großer Sprung zwischen Tonhöhen gefunden wird.  Dieses
+Verhalten kann durch die @code{auto-knee-gap}-Eigenschaft beeinflusst
+werden.  Ein derartiger Knie-Balken wird erstellt, wenn der Abstand größer
+ist als der Wert von @code{auto-knee-gap} plus der Dicke des Balkens
+(was von der Notendauer und der Neigung des Balkens abhängt).  Der
+Standardwert von @code{auto-knee-gap} ist 5.5 Notensystemabstände.
+
+"
+  doctitlede = "Balken für weit auseinander liegende Noten ändern"
index aab9131b9f51c14c2d8a6bd63bfc02102681ac1a..b7fde356ae977b06d8fa3f7cb80540dca259d055 100644 (file)
@@ -4,3 +4,11 @@ nombre de un acorde para que sea cualquier elemento de marcado.
 
 "
   doctitlees = "Modificación del separador de acordes"
+
+%% Translation of GIT committish :33f623301a41fcc53efadf96bca1c72834763415
+  texidocde = "
+Der Trenner zwischen unterschiedlichen Teilen eines Akkordsymbols kann
+beliebeiger Text sein.
+
+"
+  doctitlede = "Akkordsymboltrenner verändern"
index 4ba6e6df27e43796a6ad4b1068ca6a8cc203a7a7..03b3b707465bacb41a1692af51b74a36232166a7 100644 (file)
@@ -6,4 +6,13 @@ una serie de silencios de breve y longa (conocidos en alemán como
 muestra una barra normal.  Este número predeterminado de diez se
 puede cambiar sobreescribiendo la propiedad @code{expand-limit}:
 
-"
\ No newline at end of file
+"
+
+texidocde = "
+Wenn zehn oder weniger Pausentakte vorkommen, wird eine Reihe von Longa-
+und Brevispausen (auch Kirchenpausen genannt) gesetzt, bei mehr Takten
+wird eine Line mit der Taktanzahl ausgegeben.  Der vorgegebene Wert von
+zehn kann geändert werden, indem man die @code{expand-limit}-Eigenschaft
+setzt:
+"
+  doctitlede = "Die Erscheinung von Pausentakten ändern"
index fa2eeea973c49452dde3e08f4d6c8ebda63e0d9a..5a4927e43a4730e6175d7834e61947412b15fcb3 100644 (file)
@@ -5,3 +5,11 @@ y de unísono:
 
 "
   doctitlees = "Cambiar los textos de partcombine"
+
+%% Translation of GIT committish :<0364058d18eb91836302a567c18289209d6e9706>
+  texidocde = "
+Wenn Stimmen automatisch kombiniert werden, kann der Text, der für
+Solo- und Unisono-Stellen ausgegeben wird, geändert werden:
+
+"
+  doctitlede = "Partcombine-Text ändern"
index 02b66139d4e8eb984c2694fee40886a85dc91473..7046f20102bb2620e3d62c290ea2838e33548ddc 100644 (file)
@@ -11,3 +11,15 @@ valores posibles se encuentran @code{'line} (línea),
 
 "
   doctitlees = "Cambiar el texto y los estilos de objeto de extensión para las indicaciones dinámicas textuales"
+  
+%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a>
+texidocde = "
+Der Text, der für Crescendo und Decrescendo gestzt wird, kann geändert
+werden, indem man die Eigenschaften @code{crescendoText} und
+@code{decrescendoText} verändert.  Der Stil des Streckers kann auch
+geändert werden, indem die @code{'style}-Eigenschaft des
+@code{DynamicTextSpanner} beeinflusst wird.  Der Standardwert ist
+@code{'hairpin}, ander Möglichkeiten sind @code{'line}, @code{'dashed-line}
+und @code{'dotted-line}:
+"
+  doctitlede = "Text und Strecker-Stile für Dynamik-Texte ändern"
index a0b9ef5cbb6a18291bb629094ea4c03481c58c00..fdd1c4ebfd5910d086b903403ceae55eee1f309c 100644 (file)
@@ -1,7 +1,16 @@
   texidoces = "
 El glifo de la marca de respiración se puede ajustar
-sobreescribiendo la proopiedad de texto del objeto de presentación
+sobreescribiendo la propiedad de texto del objeto de presentación
 @code{BreathingSign}, con cualquier otro texto de marcado.
 
 "
   doctitlees = "Cambiar el símbolo de la marca de respiración"
+  
+%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a>
+  texidocde = "
+Das Schriftzeichen für das Atemzeichen kann verändert werden, indem
+die Text-Eigenschaft des @code{BreathingSign}-Layoutobjekts mit einer
+beliebigen Textbeschriftung definiert wird.
+
+"
+  doctitlede = "Das Atemzeichen-Symbol verändern"
index 682557c805d6e6599101d5a3671706fe649b8503..c082de4a26ceaa5151ed015da0ab713ba6fd9682 100644 (file)
@@ -6,3 +6,12 @@ después de los números, según el valor de las propiedades
 
 "
   doctitlees = "Cambiar las posiciones de las alteraciones del bajo cifrado"
+
+%% Translation of GIT committish: 33f623301a41fcc53efadf96bca1c72834763415
+  texidocde = "
+Versetzungszeichen und Pluszeichen können vor oder nach den Ziffern erscheinen,
+je nach den Einstellungen der @code{figuredBassAlterationDirection} und
+@code{figuredBassPlusDirection}-Eigenschaften.
+
+"
+  doctitlede = "Positionen von Generalbass-Alterationszeichen verändern"
index 2991d5221b43f5ea5236bb6b5163d28073552f8d..30293ccfd5d0f3f6e8c5272feb15f66698739e2b 100644 (file)
@@ -5,3 +5,12 @@ imprimir nada, hacemos invisible la indicación metronómica:
 "
 
   doctitlees = "Cambiar el tempo sin indicación metronómica"
+
+%% Translation of GIT committish :<0364058d18eb91836302a567c18289209d6e9706>
+  texidocde = "
+Um das Tempo für die MIDI-Ausgabe zu ändern, ohne eine Tempoangabe in den
+Noten auszugeben, kann die Metronombezeichnung unsichtbar gemacht werden:
+
+"
+
+  doctitlede = "Das Tempo ohne Metronom-Angabe verändern"
diff --git a/input/texidocs/changing-the-time-signature-without-affecting-the-beaming.texidoc b/input/texidocs/changing-the-time-signature-without-affecting-the-beaming.texidoc
new file mode 100644 (file)
index 0000000..26cc782
--- /dev/null
@@ -0,0 +1,24 @@
+  texidoces = "
+La instrucción @code{\time} establece las propiedades
+@code{timeSignatureFraction}, @code{beatLength}, @code{beatGrouping} y
+@code{measureLength} en el contexto @code{Timing}, que normalmente
+tiene el alias @code{Score}.  La modificación del valor de
+@code{timeSignatureFraction} hace que se imprima la nueva indicación
+de compás sin que cambie ninguna de las demás propiedades:
+
+"
+  doctitlees = "Cambio de compás sin afectar al barrado"
+
+
+%% Translation of GIT committish :<0364058d18eb91836302a567c18289209d6e9706>  
+  texidocde = "
+Der @code{\\time}-Befehl verändert die Eigenschaften
+@code{timeSignatureFraction}, @code{beatLength}, @code{beatGrouping}
+und @code{measureLength} im @code{Timing}-Kontext, welcher normalerweise
+gleichbedeutend mit @code{Score} ist.  Wenn der Wert von
+@code{timeSignatureFraction} verändert wird, wird die neue
+Taktart ausgegeben, ohne die anderen Eigenschaften zu beeinflussen:
+
+"
+  doctitlede = "Die Taktart verändern ohne die Bebalkung zu beeinflussen"
+
index 559d8c9066ef25250d1f1ebb743a4048b9066279..ef7a2c0494659262eed150b728d3740ea82a515b 100644 (file)
@@ -9,6 +9,7 @@ del grupo, o eliminar el número.
 
 "
 
+%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a>
 texidocde = "
 Standardmäßig wird nur der Zähler des N-tolen-Bruchs über der Klammer
 dargestellt, wie er dem @code{\\times}-Befehl übergeben wird.
index a173aa4a4c6c2248b455128e2dfde34a6ed25821..cd27ff5873b37d0835aa94864925d4b673f4dc1b 100644 (file)
@@ -5,3 +5,11 @@ específicos.
 
 "
   doctitlees = "Excepciones para los nombres de acorde"
+
+%% Translation of GIT committish: 33f623301a41fcc53efadf96bca1c72834763415
+  texidocde = "
+Die Eigenschaft @code{chordNameExceptions} kann benutzt werden, um eine
+Liste an besonderen Notationen für bestimmte Akkorde zu speichern.
+
+"
+  doctitlede = "Akkordsymbolausnahmen"
diff --git a/input/texidocs/chord-name-major7.texidoc b/input/texidocs/chord-name-major7.texidoc
new file mode 100644 (file)
index 0000000..fa93eec
--- /dev/null
@@ -0,0 +1,7 @@
+%% Translation of GIT committish :33f623301a41fcc53efadf96bca1c72834763415
+ texidocde = "
+Das Aussehen des großen Septakkords kann mit @code{majorSevenSymbol} verändert werden.
+
+"
+
+  doctitlede = "Akkordbezeichnung maj7"
index 2a5b213e83baad3e008dd1400f9b3b4c33701753..ac4e3912ad0196462069637759df4630eff5df6b 100644 (file)
@@ -3,7 +3,7 @@ La herramienta de combinación de partes ( instrucción
 @code{\\partcombine}) permite la combinación de varias partes
 diferentes sobre el mismo pentagrama.  Las indicaciones textuales
 tales como \"solo\" o \"a2\" se añaden de forma predeterminada;
-para quitarlas, sencillamente establezca la proopiedad
+para quitarlas, sencillamente establezca la propiedad
 @code{printPartCombineTexts} al valor \"falso\".  Para partituras
 vocales (como himnos), no hay necesidad de añadir los textos
 \"solo\" o \"a2\", por lo que se deben desactivar.  Sin embargo,
@@ -18,3 +18,23 @@ textos.
 
 "
   doctitlees = "Combinar dos partes sobre el mismo pentagrama"
+
+%% Translation of GIT committish :<0364058d18eb91836302a567c18289209d6e9706> 
+  texidocde = "
+Die Funktion, die Stimmen kombiniert (also der @code{\\partcombine}-Befehl)
+ermöglicht die Kombination unterschiedlicher Stimmen auf einem
+System.  Textanweisungen wie \"solo\" or \"a2\" werden automatisch
+hinzugefügt.  Wenn man sie entfernen will, muss man die Eigenschaft
+@code{printPartCombineTexts} auf flasch setzen.  Für Klavierauszüge
+muss natürlich kein \"solo\"/\"a2\" usw. hinzugefügt werdne, man
+sollte sie also ausschalten.  Wenn aber Solo-Stellen in einem
+Klavierauszug oder einer Chorpartitur angezeigt werden, ist es besser,
+normale Polyphonie zu verwenden, weil so die Solostellen angezeigt
+werden, auch wenn der Text des Stimmenkombinierers ausgeschaltet ist.
+
+Der Schnipsel zeigt drei Möglichkeiten, Stimmen auf einem System zu
+kombinieren: Standardpolyphonie, @code{\\partcombine} ohne Text und
+@code{\\partcombine} mit Text.
+
+"
+  doctitlede = "Zwei Stimmen auf einem System kombinieren"
index 1c1d871f722c5395fa6867bc591be18491971a52..7b4818a4b661478962c17089d0ab1fd26f0f0678 100644 (file)
@@ -9,4 +9,15 @@ automático de las barras (también se pueden añadir indicaciones
 gráficas de la agrupación de compases; véase el fragmento de código
 apropiado en la base de datos).
 
-"
\ No newline at end of file
+"
+
+%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a>
+texidocde = "
+Ungerade Taktarten werden (wie etwa \"5/8\") werden oft als zusammengesetzte
+Taktarten interpretiert (bspw. \"3/8 + 2/8\"), in welchen zwei oder mehr
+Teiltakte unterschieden werden.  LilyPond kann derartige Noten produzieren,
+indem entsprechende Taktarten gesetzt werden und die automatische
+Bebalkung angepasst wird.
+
+"
+  doctitlede = "Zusammengesetzte Taktarten"
index be915a231ee9e114251ed6d37fd1cbb14ee015bb..77e654bf7a50f65308d3c0454d6c95b7bc0bd562 100644 (file)
@@ -13,3 +13,19 @@ pasa a la función @code{set-time-signature} como tercer argumento:
 
 "
 doctitlees = "Símbolos de dirección, símbolos de agrupación de compás"
+
+%% Translation of GIT committish :<0364058d18eb91836302a567c18289209d6e9706>
+  texidocde = "
+Optionen, mit denen die Balken in einem Takt gruppiert werden, sind
+durch die Scheme-Funktion @code{set-time-signature} erhältlich, die
+drei Argumente braucht:  Die Zahl der Taktschläge, die Länge des
+Schlages und die interne gruppieren von Balken in dem Takt.  Wenn der
+@code{Measure_grouping_engraver} hinzugefügt worden ist, erstellt
+diese Funktion auch @code{MeasureGrouping}-(Taktgruppen)-Zeichen.  Derartige
+Zeichen erleichtern das Lesen von rhythmisch komplexer Musik.  In dem
+Beispiel ist der 9/8-Takt in 2, 2, 2 und 3 aufgeteilt.  Das wird
+der @code{set-time-signature}-Funktion als das dritte Argument mitgegeben:
+@code{'(2 2 2 3)}:
+
+"
+  doctitlede = "Dirigirzeichen, Taktgruppenzeichen"
index 926b678ce04d45320a40382c77dc33ad52a8cc84..f0527b943256436ef50982fa2227b1ae4d25f74a 100644 (file)
@@ -4,3 +4,11 @@ utilizando una nota oculta y temporalización de cadenza.
 
 "
   doctitlees = "Glissando contemporáneo"
+  
+%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a>
+texidocde = "
+Ein modernes Glissando ohne eine Endnote kann gesetzt werden, indem
+eine Kadenz eingesetzt wird und die Endnote unsichtbar gemacht wird.
+
+"
+  doctitlede = "Moderne Glissandi"
index e719270c9f6384da7a7b370e1c19357ff8164094..592bb3f462ec6d3e3053a65b793c09c1f0d95828 100644 (file)
@@ -3,3 +3,19 @@ Se puede controlar con precisión la colocación de los números de digitación.
 
 "
   doctitlees = "Controlar la colocación de las digitaciones de acordes"
+
+
+%% Translation of GIT committish: 3f880f886831b8c72c9e944b3872458c30c6c839
+
+  texidocfr = "
+Le positionnement des doigtés peut être contrôlé de manière très précise.
+
+"
+  doctitlefr = "Conrôle du positionnement des doigtés"
+
+%% Translation of GIT committish :<0364058d18eb91836302a567c18289209d6e9706>
+  texidocde = "
+Die Position von Fingersatzzahlen kann exakt kontrolliert werden.
+
+"
+  doctitlede = "Position von Fingersatz in Akkorden kontrollieren"
index a16d74e7628194310d989d5ee3ac2d1ed6c58922..cae858c591c559edb9ac800996e4a09dd7b02970 100644 (file)
@@ -12,3 +12,18 @@ lugar.
 
 "
   doctitlees = "Controlar la ordenación vertical de las inscripciones"
+  
+%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a>
+texidocde = "
+Die vertikale Anordnung von Beschriftungen wird mit der
+@code{'script-priority}-Eigenschaft kontrolliert.  Um so kleiner die
+Zahl, umso näher wird die Beschriftung in Bezug auf die Note gesetzt.  In
+diesem Beispiel hat das @code{TextScript}-Objekt (das Kreuz) zuerst
+die niedrigste Priorität, wird also auch am niedrigsten in dem ersten
+Beispiel gesetzt.  Im zweiten Fall hat der Praller (das @code{Script}) 
+die niedrigste Priorität, darum wird er am nächsten zum System gesetzt.
+Wenn zwei Objekte die gleiche Priorität haben, wird ihre Reihenfolge
+anhand ihres Auftretens in der Quelldatei entschieden.
+
+"
+  doctitlede = "Die vertikale Anordnung von Beschriftungen kontrollieren"
diff --git a/input/texidocs/creating-a-delayed-turn.texidoc b/input/texidocs/creating-a-delayed-turn.texidoc
new file mode 100644 (file)
index 0000000..32ea3d7
--- /dev/null
@@ -0,0 +1,25 @@
+texidoces = "
+La creación de un grupeto circular de anticipación entre dos notas,
+donde la nota inferior del grupeto utiliza una alteración, requiere
+varias sobreescriturasw de propiedades.  La propiedad
+@code{outside-staff-priority} se debe establecer al valor #f, pues en
+caso contrario tendría prioridad sobre la propiedad @code{avoid-slur
+property}.  El valor de @code{halign} se utiliza para colocar el
+grupeto horizontalmente.
+
+"
+
+doctitlees = "Crear un grupeto de anticipación"
+
+
+%% Translation of GIT committish :0364058d18eb91836302a567c18289209d6e9706
+  texidocde = "
+Einen Doppelschlag mit Vorhalt zu erstellen, wobei die untere Note das
+Vorzeichen benutzt, erfordert einige Einstellungsänderungen.  Die
+@code{outside-staff-priority}-Eigenschaft muss auf falsch (@code{#f})
+gesetzt werden, weil sie sonst über die Eigenschaft
+@code{avoid-slur property} dominieren würde.  Der Wert von @code{halign}
+wird benutzt, um den Doppelschlag horizontal zu positionieren.
+"
+
+  doctitlede = "Einen  Doppelschlag mit Vorhalt erstellen"
index 4640877554554cea53d221f7c0d29e4f937c7547..0eec1a9abb6a3054984c9d0a62c5b6b4a5fe0dd8 100644 (file)
@@ -6,3 +6,12 @@ voces que están sobre el mismo pentagrama si el grabador
 
 "
   doctitlees = "Crear arpegios entre notas de voces distintas"
+  
+%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a>
+texidocde = "
+Ein Arpeggio kann zwischen Noten aus unterschidlichen Stimmen auf demselben
+System gezogen werden, wenn der @code{Span_arpeggio_engraver} in den 
+@code{Staff}-Kontext verschoben wird:
+
+"
+  doctitlede = "Arpeggios zwischen unterschiedlichen Stimmen erzeugen"
index be187438699815b6baa04e5ff3aae8a7291134a4..9aa3a4d8c0d0976803f4143e04a39d592fce1bdd 100644 (file)
@@ -5,3 +5,12 @@ cruce entre los pentagramas ajustando la propiedad
  
 "
   doctitlees = "Crear arpegios que se cruzan entre pentagramas dentro de un sistema de piano"
+  
+%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a>
+texidocde = "
+Arpeggio über mehrere Systeme können in anderen Kontexten als dem
+@code{PianoStaff} erstellt werden, wenn der @code{Span_arpeggio_engraver}
+in den @code{Score}-Kontext eingefügt wird.
+
+"
+  doctitlede = "Arpeggio über mehrere Systeme in anderen Kontexten"
index ecc3e43fa8a896f0358c57b0095dfc77bde11caf..3d67a665d8f645612dfb8218c257df4829728ef8 100644 (file)
@@ -5,3 +5,13 @@ contextos distintos a @code{PianoStaff} si se incluye el grabador
 
 "
   doctitlees = "Creación de arpegios que se cruzan entre pentagramas dentro de otros contextos"
+  
+%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a>
+ texidocde = "
+In einem Klaviersystem (@code{PianoStaff}) ist es möglich, ein Arpeggio
+zwischen beiden Systemen zu verbinden, indem die
+@code{PianoStaff.connectArpeggios}-Eigenschaft gesetzt wird.
+
+"
+  doctitlede = "Arpeggio zwischen Systemen in einem Klaviersystem erstellen"
index 722a09a2d76244f0c3c24882171e66015531f3ac..d8dd5d138cc54d6469b2b37f5c14e3ac1b749d32 100644 (file)
@@ -5,3 +5,11 @@ marcado, pero no cambian el tempo en la salida MIDI.
 "
   doctitlees = "Crear indicaciones metronómicas en modo de marcado"
 
+%% Translation of GIT committish :<0364058d18eb91836302a567c18289209d6e9706>
+  texidocde = "
+Neue Metronombezeichnungen können als Textbeschriftung erstellt werden,
+aber sie ändern nicht das Tempo für die MIDI-Ausgabe.
+
+"
+
+  doctitlede = "Eine Metronombezeichnung als Textbeschriftung erstellen"
index c7cc16ee06134511d5ff15c1251612181a5ee3d7..ee720390bd498c8ba2c488d577858273c5d01d1e 100644 (file)
@@ -9,3 +9,15 @@ sobreescritura de propiedades.
 
 "
   doctitlees = "Personalizar los diagramas de posiciones"
+
+%% Translation of GIT committish: 33f623301a41fcc53efadf96bca1c72834763415
+  texidocde = "
+Eigenschaften von Bunddiagrammen können in
+@code{'fret-diagram-details} verändert werden.  Einstellungen mit
+dem @code{\override}-Befehl werden dem @code{FretBoards.FretBoard}-Objekt
+zugewiesen.  Genauso wie @code{Voice} ist auch @code{FretBoards} ein
+Kontext der niedrigsten Ebene, weshalb der Kontext auch in dem Befehl
+weggelassen werden kann.
+
+"
+  doctitlede = "Bunddiagramme anpassen"
index 8a961a03325f45ea2e92a9170e08cdc6b9117609..fa83020b26295ec96f3653cffc9cbcff2d691e9b 100644 (file)
@@ -6,3 +6,25 @@ diagramas de posiciones de marcado, se pueden aplicar overrides
 
 "
  doctitlees = "Personalizar diagramas de posiciones de marcado"
+
+%% Translation of GIT committish: 3f880f886831b8c72c9e944b3872458c30c6c839
+
+  texidocfr = "
+Les propriétés d'un diagramme de fret sont modifiables grâce au 
+@code{'fret-diagram-details}.  Lorsqu'ils sont générés sous forme 
+de @code{\markup}, rien n'empêche de les modifier en jouant sur les 
+réglages de l'objet @code{Voice.TextScript} ou bien directement sur 
+le @qq{markup}.
+
+"
+  doctitlefr = "Personnalisation des diagrammes de fret"
+
+%% Translation of GIT committish :33f623301a41fcc53efadf96bca1c72834763415
+  texidocde = "
+Bunddiagramme können mit der Eigenschaft @code{'fret-diagram-details}
+angepasst werden.  Bunddiagramme, die als Textbeschriftung eingefügt werden,
+können Veränderungen im @code{Voice.TextScript}-Objekt oder direkt in der
+Beschriftung vorgenommen werden.
+
+"
+  doctitlede = "Anpassung von Beschriftungs-Bunddiagrammen"
index 40b6a9a2e1d608504f8db0442a114c3a4bb7ad1d..490b01b758d0c427b723123349e44fb4ba1be3a7 100644 (file)
@@ -5,3 +5,11 @@ del pentagrama está determinada por la propiedad
 
 "
   doctitlees = "Dirección predeterminada de las plicas sobre la tercera línea del pentagrama"
+
+%% Translation of GIT committish :0364058d18eb91836302a567c18289209d6e9706
+  texidocde = "
+Die Richtung von Hälsen auf der mittleren Linie kann mit der @code{Stem}-Eigenschaft
+@code{neutral-direction} gesetzt werden.
+
+"
+  doctitlede = "Standardrichtung für Hälse auf der Mittellinie"
diff --git a/input/texidocs/defining-predefined-fretboards-for-other-instruments.texidoc b/input/texidocs/defining-predefined-fretboards-for-other-instruments.texidoc
new file mode 100644 (file)
index 0000000..cde6e13
--- /dev/null
@@ -0,0 +1,53 @@
+  texidoces = "
+
+Se pueden añadir diagramas de posiciones predefinidas para
+instrumentos nuevos además de los estándar que se usan para la
+guitarra.  Este archivo muestra cómo se hace, definiendo una afinación
+nueva y unas cuantas posiciones para el cuatro venezolano.
+
+Este archivo también muestra cómo se pueden incluir las digitaciones
+en los acordes que se usan como puntos de referencia para la búsqueda
+de acordes en la tabla, y mostrarse en el diagrama de posiciones y la
+tablatura @code{TabStaff}, pero no en la música.
+
+Estas posiciones no se pueden transportar porque contienen información
+de las cuerdas.  Hay planes para corregir esto en un futuro.
+
+"
+  doctitlees = "Definición de posiciones predefinidas para otros instrumentos"
+
+%% Translation of GIT committish: cd4950757ab1ab6c89805b0b7c978bfca034f940
+
+  texidocfr = "
+La liste des diagrammes standards prédéfinis pour la guitare peut être
+ augmentée d'autres définitions spécifiques à d'autres instruments.  
+Voici comment définir un nouvel accordage ainsi que quelques diagrammes 
+prédéfinis pour le @qq{cuatro vénézuélien}.
+
+Cet exemple illustre aussi la manière d'ajouter des doigtés aux 
+accords ; ils serviront de référence pour la boucle d'accord et seront 
+indiqués dans les diagrammes et le @code{TabStaff}, mais pas dans la musique. 
+
+Ces diagrammes ne peuvent pas être transposés, dans la mesure où ils 
+contiennent des informations sur les cordes.  Ceci est amené à évoluer.
+
+"
+  doctitlefr = "Création de diagrammes de fret prédéfinis pour d'autres instruments"
+
+%% Translation of GIT committish :33f623301a41fcc53efadf96bca1c72834763415
+  texidocde = "
+Vordefinierte Bunddiagramme können für neue Instrumente hinzugefügt werden
+neben denen, die schon für die Gitarre definiert sind.  Dieses Schnipsel
+zeigt, wie man eine neue Saitenstimmung definiert und dann eigene vordefinierte
+Bunddiagramme bestimmt.  Das Beispiel ist für das venezualische Cuatro.
+
+Dieses Schnipsel zeigt auch, wie Fingersatz in die Akkorde eingebunden
+werden kann, um als Referenzpunkt für die Akkordauswahl benutzt werden
+kann.  Dieser Fingersatz wird im Bunddiagramm und in der Tabulatur,
+aber nicht in den Noten angezeigt.
+
+Diese Bunddiagramme sind nicht transponierbar, weil sie Saiteninformationen
+enthalten.  Das soll in der Zukunft verbessert werden.
+
+"
+  doctitlede = "Eigene vordefinierte Bunddiagramme für andere Instrumente erstellen"
index ebcf4b01820d2bd5165d09406e3763eaaf104e14..4534f35a8d8836246066638e365c4eabde7ca9bf 100644 (file)
@@ -1,9 +1,8 @@
   texidoces = "
 Si hay un solo pentagrama en un de los tipos de sistema
-@code{ChoirStaff}, @code{InnerChoirStaff}, @code{InnerStaffGroup}
-o @code{StaffGroup}, el comportamiento predeterminado es que no se
-imprima el corchete en la barra inicial.  Esto se puede cambiar
-sobreescribiendo las propiedades adecuadas.
+@code{ChoirStaff} o @code{StaffGroup}, el comportamiento
+predeterminado es que no se imprima el corchete en la barra inicial.
+Esto se puede cambiar sobreescribiendo las propiedades adecuadas.
 
 Observe que en contextos como @code{PianoStaff} y
 @code{GrandStaff} en que los sistemas empiezan con una llave en
@@ -13,3 +12,17 @@ distinta, como se ve en el segundo sistema del ejemplo.
 "
   doctitlees = "Mostrar corchete o llave en grupos de un solo pentagrama"
 
+  
+%% Translation of GIT committish :<0364058d18eb91836302a567c18289209d6e9706>
+  texidocde = "
+Wenn nur ein System einer Systemgruppe vom Typ @code{ChoirStaff} oder
+@code{StaffGroup} angezeigt wird, wird die Klammer zu Beginn normalerweise
+nicht gesetzt.  Das kann verändert werden, indem man die ensprechende
+Eigenschaft veränder.
+
+Bei Systemen wie @code{PianoStaff} und @code{GrandStaff}, die mit einer
+geschweiften Klammer beginne, muss eine andere Eigenschaft verändt werden,
+wie das zweite Beispiel zeigt.
+
+"
+  doctitlede = "Klammer anzeigen, wenn nur ein System gesetzt wird"
index b356e195e50c052a4971923b8f2129967444e703..df91c6cbf482d60a74fb5fe9d4dff684302b7dcd 100644 (file)
@@ -6,4 +6,15 @@ indica la distancia a partir de la tercera línea del pentagrama en
 espacios de pentagrama, y el segundo número indica la dirección (1 =
 hacia arriba, -1 = hacia abajo).
 
-"
\ No newline at end of file
+"
+
+%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a>
+texidocde = "
+Überbindungen können manuell gesetzt werden, indem man die
+@code{tie-configuration}-Eigenschaft des @code{TieColumn}-Objekts
+beeinflusst.  Die erste Zahl zeigt den Abstand von der Mitte in
+Notensystemabständen an, die zweite Zahl zeigt die Richtung an (1 = nach oben,
+-1 = nach unten).
+
+"
+  doctitlede = "Bindebögen manuell setzen"
index ba185bdb4c4fe47ed19240962c3feea189a2ffaf..9fddfd89affde72a05426cc38d14bf067c32cea1 100644 (file)
@@ -15,6 +15,7 @@ Para ver más inforamción sobre @code{make-moment}, véase
 
 "
 
+%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a>
   texidocde = "
 Die Eigenschaft @code{tupletSpannerDuration} bestimmt, wie lange jede
 der N-tolen innerhalb der Klammern nach dem @code{\\times}-Befehl
index 5bc0951ed21cb7c865102fbd80d5df7be672cb57..9faa281258c4bb23f19b724442cd0bb491a1b07e 100644 (file)
@@ -5,3 +5,20 @@ derecha.
 
 "
   doctitlees = "Digitaciones, indicación del número de cuerda y digitaciones de mano derecha"
+
+%% Translation of GIT committish: 3f880f886831b8c72c9e944b3872458c30c6c839
+
+  texidocfr = "
+L'exemple suivant illustre comment combiner des doigtés pour la main 
+gauche, des indications de corrde et des doigtés pour la main droite.
+
+"
+  doctitlefr = "Doigtés, indications de cordeet doigtés main droite"
+
+%% Translation of GIT committish :33f623301a41fcc53efadf96bca1c72834763415
+  texidocde = "
+Dieses Beispiel kombiniert Fingersatz für die linke Hand, Saitennummern
+und Fingersatz für die rechte Hand.
+
+"
+  doctitlede = "Fingersatz, Saitennummern und Fingersatz für die rechte Hand"
diff --git a/input/texidocs/flat-flags-and-beam-nibs.texidoc b/input/texidocs/flat-flags-and-beam-nibs.texidoc
new file mode 100644 (file)
index 0000000..c2aed33
--- /dev/null
@@ -0,0 +1,80 @@
+  texidoces = "
+ Son posibles tanto los corchetes rectos sobre notas sueltas como
+extremos de barra sueltos en figuras unidas, con una combinación de
+@code{stemLeftBeamCount}, @code{stemRightBeamCount} e indicadores de
+barra @code{[ ]} emparejados.
+
+
+
+
+Para corchetes rectos que apunten a la derecha sobre notas sueltas,
+use indicadores de barra emparejados @code{[ ]} y establezca
+@code{stemLeftBeamCount} a cero (véase el ejemplo 1).
+
+
+
+
+Para corchetes rectos que apunten a la izquierda, establezca en su
+lugar @code{stemRightBeamCount} (ejemplo 2).
+
+
+
+
+Para extremos sueltos que apunten a la derecha al final de un conjunto
+de notas unidas, establezca @code{stemRightBeamCount} a un valor
+positivo.  Y para extremos sueltos que apunten a la izquierda al
+principio de un conjunto de notas unidas, establezca
+@code{stemLeftBeamCount} en su lugar (ejemplo 3).
+
+
+
+
+A veces, para una nota suelta rodeada de silencios tiene sentido que
+lleve los dos extremos sueltos del corchete plano, apuntando a derecha
+e izquierda.  Hágalo solamente con indicadores de barra emparejados
+@code{[ ]} (ejemplo 4).
+
+
+
+
+(Observe que @code{\\set stemLeftBeamCount} siempre equivale a
+@code{\\once \\set}.  En otras palabras, los ajustes de la cantidad de
+barras no se recuerdan, y por ello el par de corchetes planos
+aplicados a la nota Do semicorchea @code{c'16 [ ]} del último ejemplo
+no tiene nada que ver con el @code{\\set} de dos notas por detrás.)
+
+
+
+
+"
+  doctitlees = "Corchetes rectos y extremos de barra sueltos"
+
+
+%% Translation of GIT committish :<0364058d18eb91836302a567c18289209d6e9706>  
+  texidocde = "
+Gerade Fähnchen an einzelnen Noten und überstehende Balkenenden bei
+bebalkten Notengruppen sind möglich mit einer Kombination aus
+@code{stemLeftBeamCount}, @code{stemRightBeamCount} und Paaren von
+@code{[]}-Balkenbegrenzungen.
+
+Für gerade Fähnchen, die nach rechts zeigen, kann @code{[]} eingesetzt
+werden und @code{stemLeftBeamCount} auf Null gesetzt werden (wie
+Bsp. 1).
+
+Für gerade Fähnchen, die nach links zeigen, muss @code{stemRightBeamCount}
+eingesetzt werden (Bsp. 2).
+
+Für überstehende Balkenenden nach rechts muss @code{stemRightBeamCount}
+auf einen positiven Wert gesetzt werden, für Balkenenden, die nach links
+zeigen benutzt man @code{stemLeftBeamCount} (Bsp. 3).
+
+Manchmal können einzelne Noten, die von Pausen umgeben sind, auch Balkenenden
+in beide Richtungen tragen.  Das geschieht mit @code{[]}-Klammern (Bsp. 4).
+
+(@code{\\set stemLeftBeamCount} entspricht immer dem Befehl
+@code{\\once \\set}.  Anders gesagt müssen die Einstellungen immer wieder
+wiederholt werden und die Fähnchen des letzten Sechszehntels im letzten
+Beispiel haben nichts mit dem @code{\\set}-Befehl zwei Noten vorher zu tun.)
+
+"
+  doctitlede = "Gerade Fähnchen und überstehende Balkenenden"
index 36b110f895c17fc5e4ae097ba7a52b0e9a0c94d8..a817177b6ed3fc7eaa313198ba0fb702b6eeed0f 100644 (file)
@@ -5,4 +5,13 @@ propiedad force-hshift del objeto NoteColumn para sobreescribir
 decisiones de tipografiado.  Las unidades de medida que se usan aquí
 son espacios de pentagrama.
 
-"
\ No newline at end of file
+"
+
+%% Translation of GIT committish :<0364058d18eb91836302a567c18289209d6e9706>
+  texidocde = "
+Wenn es zu Zusammenstößen kommt, kann mit folgender Lösung eine andere
+Position manuell eingestellt werden.  Die Einheiten hier sind
+Notenlinienzwischenräume.
+
+"
+  doctitlede = "Horizontale Verschiebung von Noten erzwingen"
index 2f81dff24f0ca386bea62af5e55332348a71bf35..14786e3ad663e8f39493a976a3dbcea4653ecb52 100644 (file)
@@ -4,3 +4,11 @@ sobreescribiendo algunas de sus propiedades.
 
 "
   doctitlees = "Líneas de rejilla: modificar su aspecto"
+
+%% Translation of GIT committish :0364058d18eb91836302a567c18289209d6e9706
+  texidocde = "
+Die Erscheinung der Gitternetzlinien kann durch einige Eigenschaften
+geändert werden.
+
+"
+  doctitlede = "Gitternetzlinien: Aussehen verändern"
index a581ac3efcf8dbfa2afb2fc862d7e19077f7b453..b0bbfd8ac3eef944bc86b4c06f906d0f982772bc 100644 (file)
@@ -4,3 +4,11 @@ Los patrones de barrado se pueden alterar con la propiedad
 
 "
   doctitlees = "Agrupar los pulsos"
+  
+%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a>
+texidocde = "
+Balkengruppen können mit der @code{beatGrouping}-Eigenschaft geändert
+werden:
+
+"
+  doctitlede = "Notengruppen"
index b650d0587b6f2833b7fd86d29fd87c58dd9a81cc..b3683b07889aac6e7811135f657697c66785b6ea 100644 (file)
@@ -4,3 +4,11 @@ además de las notas de la melodía, acordes y diagramas de posiciones.
 
 "
   doctitlees = "Ritmos rasgueados de guitarra"
+
+%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a>
+  texidocde = "
+In Guitarrennotation kann neben Melodie, Akkordbezeichnungen und
+Bunddiagrammen auch der Schlagrhythmus angegeben werden.
+
+"
+  doctitlede = "Schlagrhythmus für Guitarren"
index 244e1834961e6891b9a62fdeafcad4bc1d95af1f..0d368755893f9c79b50d904e93c6dd65bb18dab8 100644 (file)
@@ -5,3 +5,12 @@ Esta línea se puede suprimir de la siguiente manera:
 
 "
   doctitlees = "Ocultar la línea de extensión de las expresiones textuales de dinámica"
+  
+%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a>
+texidocde = "
+Dynamik-Texte (wie cresc. und dim.) werden mit einer gestrichelten Linie
+gesetzt, die ihre Dauer anzeigt.  Diese Linie kann auf foldenge Weise
+unterdrückt werden:
+
+"
+  doctitlede = "Crescendo-Linien von Dynamik-Texten unterdrücken"
index 182f963f6e88478326192893712fa41064c03ce5..145889a965bf71e5a6783606bbedf374d528a788 100644 (file)
@@ -9,3 +9,16 @@ configurar a la forma de corchete en el contexto de @code{PianoStaff}.
 
 "
   doctitlees = "Indicar acordes de pentagrama cruzado con corchetes de arpegio"
+
+%% Translation of GIT committish: 33f623301a41fcc53efadf96bca1c72834763415
+  texidocde = "
+Eine Arpeggioklammer kann anzeigen, dass Noten auf zwei unterschiedlichen
+Systemen mit der selben Hand gespielt werden sollen.  Damit das notiert
+werden kann, muss der @code{PianoStaff}-Kontext so eingestellt werden,
+dass er Arpeggios über Systeme hinweg akzeptiert und die Form der Arpeggios
+muss auf eine Klammer eingestellt werden.
+
+(Debussy, Les collines d’Anacapri, T. 65)
+
+"
+  doctitlede = "Akkorde auf zwei Systemen mit Arpeggioklammern anzeigen"
index 0191fd0a2bdc481b8b066a999838ead5bdd92ceb..fcad8c58434b8f34681716e3c20898e5f206c6a8 100644 (file)
@@ -5,3 +5,11 @@ una marca de cesura curva.
 
 "
   doctitlees = "Insertar una cesura"
+  
+%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a>
+ texidocde = "
+Zäsurzeichen können erstellt werden, indem die @code{'text}-Eigenschaft
+des @code{BreathingSign}-Objektes verändert wird.  Ein gekrümmtes
+Zäsurzeichen ist auch möglich.
+"
+  doctitlede = "Eine Zäsur einfügen"
index 757dfb66739a41190c85bd9e0d5e6f236b672325..bac72db07d37cb9424651e2506e0046dfe456491 100644 (file)
@@ -5,3 +5,12 @@ impresión distinta:
 
 "
   doctitlees = "Símbolos de porcentaje sueltos"
+
+%% Translation of GIT committish :<0364058d18eb91836302a567c18289209d6e9706>
+  texidocde = "
+Isolierte Prozentwiederholungen können auch ausgegeben werden.  Das wird
+erreicht, indem man eine Ganztaktpause notiert und ihre Ausgabeform
+ändert:
+
+"
+  doctitlede = "Isolierte Prozentwiederholungen"
index 5ee9cb431da26f4c03104797aa86aa66aabb6378..e4abeaffb344b78f0597365d74f3c653f34c5343 100644 (file)
@@ -8,3 +8,15 @@ nombres de las notas y las alteraciones.
 
 "
   doctitlees = "El «Makam»"
+
+  
+%% Translation of GIT committish :<0364058d18eb91836302a567c18289209d6e9706>
+  texidocde = "
+Makam ist eine türkische Melodie, in der 1/9-Tonabstände
+eingesetzt werden.  Sehen Sie sich die Initialisierungsdatei
+@code{makam.ly} für weiter Information zu Tonhöhenbezeichnungen
+und Alterationen an (siehe
+Handbuch zum Lernen @version{}, 4.6.3 Weitere Information zu
+Hinweisen, wo diese Datei gespeichert ist)."
+  
+  doctitlede = "Makam-Beispiel"
index 0abea560de63b1f87f1c3d4d0befb93090e72b30..c586bd319115ec5bcae888bf0da81ddb5bf6f8a5 100644 (file)
@@ -7,3 +7,14 @@ destacar, utilizando la propiedad @code{line-positions} del objeto
 
 "
   doctitlees = "Hacer unas líneas del pentagrama más gruesas que las otras"
+
+%% Translation of GIT committish :<0364058d18eb91836302a567c18289209d6e9706> 
+  texidocde = "
+Für den pädagogischen Einsatz kann eine Linie des Notensystems dicker
+gezeichnet werden (z. B. die Mittellinie, oder um den Schlüssel hervorzuheben).
+Das ist möglich, indem man zusätzliche Linien sehr nahe an der Linie, die
+dicker erscheinen soll, einfügt.  Dazu wird die @code{line-positions}-Eigenschaft
+herangezogen.
+
+"
+  doctitlede = "Eine Linie des Notensystems dicker als die anderen machen"
\ No newline at end of file
index d648717ca1e735f9908d50286c5e7ef7b14ab55b..b9103fda48ea9ad09844ff1303c6942d2e6fe54b 100644 (file)
@@ -8,3 +8,13 @@ propiedad @code{transparent}.
 "
 
   doctitlees = "Disposición Mensurstriche (líneas divisorias entre pentagramas)"
+
+%% Translation of GIT committish :<0364058d18eb91836302a567c18289209d6e9706> 
+  texidocde = "
+Das Mensurstiche-Layout, in welchem die Taktlinien nicht auf den Systemen,
+sondern zwischen den Systemen gesetzt werden, kann mit einer @code{StaffGroup}
+anstelle von @code{ChoirStaff} erreicht werden.  Die Taktlinien auf den
+Systemen werden mit der the @code{transparent}-Eigenschaft ausgelöscht.
+
+"
+  doctitlede = "Mensurstriche-Layout (Taktstriche zwischen den Systemen"
index ee7d4f846269d9129dfa4c18fc8d97c497ef6034..b73f394ced14da278525ee42063be692994bbaaf 100644 (file)
@@ -6,8 +6,22 @@ Las abreviaturas se encuentran definidas dentro del archivo
 valores predeterminados.  Se pueden modificar estos valores
 predeterminados para las abreviaturas. Por ejemplo, para asociar
 la abreviatura @code{-+} (@code{dashPlus}) con el símbolo del
-semitrino en lugar del símboloo predeterminado +, asigne el valor
+semitrino en lugar del símbolo predeterminado +, asigne el valor
 @code{trill} a la variable @code{dashPlus}:
 
 "
   doctitlees = "Modificar los valores predeterminados para la notación abreviada de las articulaciones"
+
+%% Translation of GIT committish :<0364058d18eb91836302a567c18289209d6e9706>  
+ texidocde = "
+Die Abkürzungen sind in der Datei @samp{ly/script-init.ly} definiert, wo
+den Variablen @code{dashHat}, @code{dashPlus}, @code{dashDash},
+@code{dashBar}, @code{dashLarger}, @code{dashDot} und
+@code{dashUnderscore} Standardwerte zugewiesen werden.  Diese Standardwerte
+können verändert werden.  Um zum Beispiel die Abkürzung
+@code{-+} (@code{dashPlus}) mit dem Triller anstatt mit dem +-Symbol zu
+assoziieren, muss der Wert @code{trill} der Variable
+@code{dashPlus} zugewiesen werden:
+
+"
+  doctitlede = "Die Standardwerte der Abkürzungen von Artikulationen verändern"
index 36662526e708a6bd5d2e5ca5b70faa40c027a194..da1b12b438d42dfd00d3ba1b1ea8d48f54f02243 100644 (file)
@@ -14,4 +14,20 @@ longitud del texto, éste aparecerá centrado.
 
 "
 
-doctitlees = "Marcado de silencios multicompás"
\ No newline at end of file
+doctitlees = "Marcado de silencios multicompás"
+
+%% Translation of GIT committish :<0364058d18eb91836302a567c18289209d6e9706>
+  texidocde = "Textbeschriftungen, die an Mehrtaktpausen gehängt wird,
+wird über oder unter der Pause zentriert.  Lange Beschriftungen
+lassen den Takt nicht breiter werden.  Um eine Mehrtaktpause einer
+Beschriftung anzupassen, muss eine unsichtbare Pause mit der
+Beschriftung direkt vor der Mehrtkatpause eingesetzt werden.
+
+Man sollte beachten, dass unsichtbare Pausen automatische Taktstriche
+nach sich ziehen.  Text, der an eine unsichtbare Pause gehänt wird,
+ist links ausgerichtet an der Position, wo die Pause erscheinen
+würde.  Wenn aber die Länge des Taktes durch die Länge des Textes
+bestimmt wird, sieht es so aus, als ob der Text zentriert gesetzt
+ist."
+
+  doctitlede = "Textbeschriftung und Mehrtaktpausen"
index b730d5d4f82e0b044d8534f2ab78b3cd25ab039b..925c92817f52d009d1c25564a08bfeee24097608 100644 (file)
@@ -14,3 +14,19 @@ todos los pentagramas. Las posibilidades son
 
 "
   doctitlees = "Anidado de grupos de pentagramas"
+
+%% Translation of GIT committish :<0364058d18eb91836302a567c18289209d6e9706>  
+  texidocde = "
+Die Eigenschaft @code{systemStartDelimiterHierarchy} kann eingesetzt
+werden, um komplizierte geschachtelte Systemklammern zu erstellen.  Der
+Befehl @code{\\set StaffGroup.systemStartDelimiterHierarchy} nimmt eine
+Liste mit der Anzahl der Systeme, die ausgegeben werden, auf.  Vor jedem
+System kann eine Systemanfangsklammer angegeben werden.  Sie muss in Klammern eingefügt
+werden und umfasst so viele Systeme, wie die Klammer einschließt.  Elemente
+in der Liste können ausgelassen werden, aber die erste Klammer umfasst immer
+die gesamte Gruppe.  Die Möglichkeiten der Anfangsklammer sind: @code{SystemStartBar},
+@code{SystemStartBracket}, @code{SystemStartBrace} und
+@code{SystemStartSquare}.
+
+"
+  doctitlede = "Systeme schachteln"
diff --git a/input/texidocs/orchestra-choir-and-piano-template.texidoc b/input/texidocs/orchestra-choir-and-piano-template.texidoc
new file mode 100644 (file)
index 0000000..963519c
--- /dev/null
@@ -0,0 +1,13 @@
+  texidoces = "
+
+Esta plantilla muestra el uso de contextos @code{StaffGroup} y
+@code{GrandStaff} anidados para sub-agrupar instrumentos del mismo
+tipo, y el uso de @code{\\transpose} para los instrumentos
+transpositores.  Toda la música que está dentro de variables se
+almacena en Do.  La música se puede introducir en Do, o (de forma
+alternativa) escribirse en el tono del instrumento y transportada
+a Do (véase la trompeta, por ejemplo) antes de ser asignada a una
+variable.
+
+"
+  doctitlees = "Plantilla de orquesta, coro y piano"
diff --git a/input/texidocs/percent-repeat-count-visibility.texidoc b/input/texidocs/percent-repeat-count-visibility.texidoc
new file mode 100644 (file)
index 0000000..b9c65b8
--- /dev/null
@@ -0,0 +1,14 @@
+  texidoces = "
+Se pueden mostrar los contadores de las repeticiones del tipo
+porcentaje a intervalos regulares mediante el establecimiento de
+la propiedad de contexto @code{repeatCountVisibility}.
+
+"
+  doctitlees = "Visibilidad del contador de repeticiones de tipo porcentaje"
+
+%% Translation of GIT committish :<0364058d18eb91836302a567c18289209d6e9706>
+  texidocde = "
+Prozentwiederholungszähler können in regelmäßigen Intervallen angezeigt
+werden, indem man die Eigenschaft @code{repeatCountVisibility} beeinflusst.
+"
+  doctitlede = "Sichtbarkeit von Prozent-Wiederholungen"
index 60ea3c13030b880ae63400023a5338b0bb02db75..5be5255793052c7a17e57b9e743532b7e20127ab 100644 (file)
@@ -5,3 +5,11 @@ ve en este ejemplo:
 
 "
   doctitlees = "Percent repeat counter"
+
+%% Translation of GIT committish :<0364058d18eb91836302a567c18289209d6e9706>
+  texidocde = "
+Ganztaktwiederholungen mit mehr als zwei Wiederholungen erhalten einen
+Zähler, wenn man die entsprechende Eigenschaft einsetzt:
+
+"
+  doctitlede = "Prozent-Wiederholungen zählen"
index e4e0fc044b6a968dd731a089e8d5d58456ac7103..81ffebf6ac3f8baffe4c826e12df0b30c84c1694 100644 (file)
@@ -7,6 +7,7 @@ sincopados se deben barrar manualmente.
 
 "
 
+%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a>
   texidocde = "
 Dieses künstliche Beispiel zeigt, wie sowohl automatische als auch
 manuelle Zeilenumbrüche innerhalb einer N-tole mit Balken erlaubt
index 0b85421b216459466cfa118bef8484f771c953ce..27d02da9afdb7bb8d449be516646a1ab726316e3 100644 (file)
@@ -12,4 +12,10 @@ In der meisten Klaviernotation werden die Dynamikzeichen zwischen
 den beiden Systemen zentriert. Für LilyPond muss man die Einstellungen 
 etwas anpassen, aber Sie können ja das angepasste Beispiel von hier 
 kopieren.
+"
+
+  texidocja = "
+多くのピアノ譜は、強弱記号を 2 つの譜の間に置きます。これを実現するにはちょっ@c
+とした調整が必要ですが、そのテンプレートがここにあるので、あなた自身が調整を行@c
+う必要はありません。
 "
index 67dcbd406b0223167d0226b3b772a64b7ecd9eb2..360a4e53d425b487fb41e5c752bc501e10ad2780 100644 (file)
@@ -9,4 +9,8 @@ se puede centrar entre los pentagramas de un sistema de piano.
 Anstatt ein eigenes System für Melodie und Text zu schreiben, können 
 Sie den Text auch zwischen die beiden Klaviersysteme schreiben
 (und damit das zusätzliche System für die Gesangstimme auslassen).
+"
+
+  texidocja = "
+旋律と歌詞のための譜表を持つ代わりに、歌詞をピアノ譜の 2 つの譜の間に置くことができます。
 "
index 186e3cb0f473fd05dd6cd972f432d7fb0ee50dbc..42f0060f62a1f5e96e339d6c7a5e0404d392790c 100644 (file)
@@ -8,4 +8,8 @@ melodía y la letra, y el acompañamiento de piano por debajo.
   texidocde = "
 Das nächste Beispiel ist typisch für ein Lied: Im oberen System die 
 Melodie mit Text, darunter Klavierbegleitung.
+"
+
+  texidocja = "
+これは一般的な歌曲のフォーマットです: 旋律と歌詞を持つ譜表と、その下にピアノ伴奏譜があります。
 "
index dae16641723808acaf84a2a53403e8d1a759eb11..f54b5ab2fb8abff4175db7cf40bd7e0fdf4397ed 100644 (file)
@@ -5,3 +5,22 @@ propiedad específica, como se muestra en el ejemplo siguiente.
 
 "
   doctitlees = "Posicionamiento de digitaciones de mano derecha"
+
+%% Translation of GIT committish: 3f880f886831b8c72c9e944b3872458c30c6c839
+
+  texidocfr = "
+Vous disposez d'une propriété spécifique qui permet de contrôler plus 
+finement le positionnement des doigtés main droite, comme l'indique 
+l'exemple suivant.
+
+"
+  doctitlefr = "Positionnement des doigtés main droite"
+
+%% Translation of GIT committish :33f623301a41fcc53efadf96bca1c72834763415
+  texidocde = "
+Man kann die Positionierung von Fingersatz der rechten Hand besser
+kontrollieren, wenn eine bestimmte Eigenschaft gesetzt wird, wie
+das folgende Beispiel zeigt:
+
+"
+  doctitlede = "Positionierung von Fingersatz der rechten Hand"
index f1a23c06873aaa2606bc175bb762ff27f451265b..f56279bfac43ebb4db968859a81952041958cea5 100644 (file)
@@ -4,3 +4,20 @@ en una pauta normal.
 
 "
   doctitlees = "Polifonía en tablaturas"
+
+%% Translation of GIT committish: 3f880f886831b8c72c9e944b3872458c30c6c839
+
+  texidocfr = "
+Une section polyphonique s'obtient dans un @code{TabStaff} de la
+même manière que dans une portée normale.
+
+"
+  doctitlefr = "Polyphonie en mode tablature"
+
+%% Translation of GIT committish: 33f623301a41fcc53efadf96bca1c72834763415
+  texidocde = "
+Polyphonie kann in einer Tabulatur (@code{TabStaff}) genauso wie in einem
+normalen Notensystem erstellt werden.
+
+"
+  doctitlede = "Polyphonie in einer Tabulatur"
index 106fc491fce23d1c05e5f5e217fa493fd2954894..549729ee3b7ce72f1e5d570d23b74ee1ba3ebaf9 100644 (file)
@@ -8,4 +8,14 @@ polifónica los silencios multicompás de las voces de numeración par e
 impar están separados verticalmente.  La colocación de los silencios
 multicompás se puede controlar como se ve a continuación:
 
-"
\ No newline at end of file
+"
+
+texidocde = "
+Anders als bei normalen Pausen gibt es keinen direkten Befehl, um die
+vertikale Position von Ganztaktpausen zu beeinflussen, indem man sie an
+eine Tonhöhe anhängt.  In polyphoner Notation wird aber dennoch die
+Position der Pausen von geraden und ungeraden Stimmen voneinander
+unterschieden.  Die Position von Ganztaktpausen kann wie folgt verändert
+werden:
+ "
+  doctitlede = "Positionierung von Ganztaktpausen"
diff --git a/input/texidocs/positioning-text-markups-inside-slurs.texidoc b/input/texidocs/positioning-text-markups-inside-slurs.texidoc
new file mode 100644 (file)
index 0000000..37ce7fb
--- /dev/null
@@ -0,0 +1,16 @@
+  texidoces = "
+
+Los elementos de marcado de texto deben tener la propiedad
+@code{outside-staff-priority} establecida al valor falso para que se
+impriman por dentro de las ligaduras de expresión.
+
+"
+  doctitlees = "Situar los elementos de marcado de texto por dentro de las ligaduras"
+
+%% Translation of GIT committish :0364058d18eb91836302a567c18289209d6e9706
+  texidocde = "
+Textbeschriftung kann innerhalb von Bögen gesetzt werden, wenn die
+@code{outside-staff-priority}-Eigenschaft auf falsch gesetzt wird.
+
+"
+  doctitlede = "Textbeschriftung innerhalb von Bögen positionieren"
index a8002752c9d423a3e5f7ab3eabecf71b5923dcf9..140552237b52dca6dc60698722148347855c0262 100644 (file)
@@ -4,3 +4,11 @@ principio de la pieza, sobreescribiendo la propiedad correspondiente:
 
 "
   doctitlees = "Imprimir puntos de repetición al prinicpio de la pieza"
+
+%% Translation of GIT committish :<0364058d18eb91836302a567c18289209d6e9706>
+  texidocde = "
+Ein @code{|:}-Taktstrich kann auch zu Beginn eines Stückes ausgegeben werden, indem
+man die entsprechende Eigenschaft verändert:
+
+"
+  doctitlede = "Ein Wiederholungszeichen zu Beginn eines Stückes ausgeben"
index ae1525191c88bc9ad73fd16c706611a85de1ff0e..624a217f948a34d3df5423cc64a3a690cc17d529 100644 (file)
@@ -5,3 +5,13 @@ Se pueden imprimir reguladores con un círculo en la punta
 
 "
   doctitlees = "Impresión de reguladores utilizando la notación «al niente»"
+  
+%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a>
+ texidocde = "
+ Crescendo-Klammern können mit einem kleinen Kreis vor der Spitze
+ notiert werden (al niente = bis zum Nichts), indem die
+@code{circled-tip}-Eigenschaft des @code{Hairpin}-Objekts auf
+@code{#t} gesetzt wird.
+
+"
+  doctitlede = "Crescendo Klammern al niente schreiben"
index 0be5d5b47b311227914bbc0252078e183294ad8f..61517076d4820437f2bb4192e40336e75ad4b924 100644 (file)
@@ -10,3 +10,16 @@ ejemplo.
 
 "
   doctitlees = "Imprimir marcas al final de la línea o de la partitura"
+
+%% Translation of GIT committish :0364058d18eb91836302a567c18289209d6e9706
+  texidocde = "
+Zeichen können auch am Ende der aktuellen Zeile ausgegeben werden, anstatt
+dass sie auf die folgende Zeile verschoben werden.  Das ist nüztlich,
+wenn ein Zeichen am Ende einer Partitur eingefügt werden soll, wo
+gar keine nächste Zeile vorhanden ist.
+
+In derartigen Fällen muss die rechte Ecke des Zeichens an dem letzten
+Taktstrich ausgerichtet werden, wie die zweite Zeile des Beispiels zeigt.
+
+"
+  doctitlede = "Zeichen am Ende einer Zeile oder Partitur setzen"
index e68a7ca52028c1f22ebdf2718c0492fe3eb40401..e4d58abd09d24c0c74c33b4288ef2661071c725b 100644 (file)
@@ -5,3 +5,11 @@ cualquiera.
 
 "
   doctitlees = "Imprimir marcas en cualquier pentagrama"
+
+%% Translation of GIT committish :0364058d18eb91836302a567c18289209d6e9706
+  texidocde = "
+Normalerweise werden Textzeichen nur über dem obersten Notensystem gesetzt.  Sie
+können aber auch über jedem System ausgegeben werden.
+
+"
+  doctitlede = "Zeichen über jedem System ausgeben"
index 8649c918ade8c97fca1c1ecfbaa2c6add00db225..9442124ecf0284d2eea433f96b96e6098992f288 100644 (file)
@@ -8,3 +8,13 @@ de @code{MetronomeMark} o de @code{RehearsalMark}.
 "
 
   doctitlees = "Impresión de indicaciones metronómicas y letras de ensayo debajo del pentagrama"
+
+  
+%% Translation of GIT committish :<0364058d18eb91836302a567c18289209d6e9706>
+  texidocde = "
+Normalerweise werden Metronom- und Übungszeichen über dem Notensystem ausgegeben.
+Um sie unter das System zu setzen, muss die @code{direction}-Eigenschaft
+von @code{MetronomeMark} oder @code{RehearsalMark} entsprechend verändert werden.
+
+"
+  doctitlede = "Metronom- und Übungszeichen unter das System setzen"
index fc0ab58aa6646ff678ab0b643f8799df9132ec67..10395da3e48b7e26e27562063e3a7c06475508c0 100644 (file)
@@ -8,4 +8,15 @@ se transportan todas las notas (incluidas las citadas).
 
 "
 
-doctitlees = "Citar otra voz con transposición"
\ No newline at end of file
+doctitlees = "Citar otra voz con transposición"
+
+%% Translation of GIT committish :<0364058d18eb91836302a567c18289209d6e9706>
+  texidocde = "
+Zitate berücksichtigen sowohl die Transposition der Quelle als auch
+des Zielinstruments.  In diesem Beispiel spielen alle Instrumente
+klingendes C, das Zielinstrument ist in F.  Die Noten für das
+Zielinstrument können mit @code{\\transpose} transponiert werden,
+in diesem Fall werden alle Noten (auch die zitierten) transponiert.
+
+"
+  doctitlede = "Eine Stimme mit Transposition zitieren"
index b3ef3b5ca670afac46f45001f994dbe5d1e8360e..d2a752777484da1d28b6aa705753657ac72eac9b 100644 (file)
@@ -8,4 +8,18 @@ el fragmento citado porque @code{rest-event} no está dentro de los
 @code{quotedEventTypes}.
 
 "
-  doctitlees = "Citar otra voz"
\ No newline at end of file
+  doctitlees = "Citar otra voz"
+  
+%% Translation of GIT committish :<0364058d18eb91836302a567c18289209d6e9706>
+  texidocde = "
+Die @code{quotedEventTypes}-Eigenschaft bestimmt die
+Typen an Musikereignissen, die zitiert werden.  Die
+Standardeinstellung ist @code{(note-event rest-event)}, womit
+nur Noten und Pausen der zitierten Stimme für den
+@code{\\quoteDuring}-Ausdruck übernommen werden.  Im
+Beispiel hier wird die 16-Pause nicht übernommen, weil
+sich @code{rest-event} nicht in @code{quotedEventTypes} befindet.
+
+"
+
+  doctitlede = "Eine andere Stimme zitieren"
index 19b690b3a292912f9a8493c1e36417066479d7e3..e0bf5e6e53caa6a87c5364ef23bb88f1752de4b0 100644 (file)
@@ -13,3 +13,19 @@ escribe.
 
 "
   doctitlees = "Quitar la primera línea vacía"
+
+%% Translation of GIT committish :<0364058d18eb91836302a567c18289209d6e9706>
+  texidocde = "
+Ein leeres Notensystem kann auch aus der ersten Zeile einer Partitur
+entfernt werden, indem die Eigenschaft @code{remove-first} der
+@code{VerticalAxisGroup}-Eigenschaft eingesetzt wird.  Das kann
+man global in einer @code{\\layout}-Umgebung oder lokal in dem
+bestimmten Notensystem machen, das entfernt werden soll.  In letzterem
+Fall muss man den Kontext angeben.
+
+Das untere Notensystem der zweiten Systemgruppe wird nicht entfernt,
+weil in die Einstellungen in dem Schnipsel nur für das eine Notensystem
+gültig sind.
+
+"
+  doctitlede = "Die erste leere Notenzeile auch entfernen"
index 66ef71eef869a1960a97ff1c466efb24b67332e2..419422124c81644ddf462a3f7c774d6deea9c6bb 100644 (file)
@@ -6,3 +6,14 @@ barra nuevos:
 
 "
   doctitlees = "Alteración de los finales de barra predeterminados"
+  
+  
+%% Translation of GIT committish :<0364058d18eb91836302a567c18289209d6e9706> 
+  texidocde = "
+Um Balken im 12/8-Takt als @code{3-4-3-2} zu gruppieren, muss man zuerst die
+Standardwerte für die Balken im 12/8-Takt rückgängig machen und dann die neuen
+Werte setzen:
+
+"
+  doctitlede = "Standard-Balkenwerte rückgängig machen"
+  
\ No newline at end of file
index 6fca3f55af39fc5acf7886e74876796a1002513d..a521fdbf2f13bd9dfc42f907a2d037ad1b96d1df 100644 (file)
@@ -6,3 +6,12 @@ sobreescribiendo la propiedad @code{to-barline}.
 
 "
   doctitlees = "Establecer el comportamiento de los reguladores en las barras de compás"
+  
+%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a>
+texidocde = "
+Wenn die Note, an welcher eine Crescendo-Klammer endet, die erste Note
+eines Taktes ist, wird die Klammer an der vorhergehenden Tatklinie
+beendet.  Dieses Verhalten kann auch mit der Eigenschaft
+@code{'to-barline} geändert werden:
+"
+  doctitlede = "Das Verhalten von Crescendo-Klammern an Taktlinien beeinflussen"
index 4348b6cdb02232490d2bb38f68727ce65c1d714d..d729f7cb0fab9dc36d42309c73bb08d280737b5a 100644 (file)
@@ -5,3 +5,12 @@ modificando la propiedad @code{minimum-length} del objeto
 
 "
   doctitlees = "Ajustar la longitud mínima de los reguladores"
+  
+%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a>
+texidocde = "
+Wenn Crescendo-Klammern zu kurz sind, können sie verlängert werden, indem
+die @code{minimum-length}-Eigenschaft des @code{Hairpin}-Objektes
+verändert wird. 
+
+"
+  doctitlede = "Die Mindestlänge von Crescendo-Klammern bestimmen"
index ca73f604e426b111c19856f1d0f8cc834b554a1a..704aa121b21ad39d03d73b6cabd39fdffe9aac44 100644 (file)
@@ -7,3 +7,13 @@ sólo dura un compás, que corresponde a una duración de 3/4.
 
 "
   doctitlees = "Shortening volta brackets"
+
+%% Translation of GIT committish :<0364058d18eb91836302a567c18289209d6e9706>
+  texidocde = "
+Volta-Klammern werden normalerweise über alle Noten der Klammer gezogen, aber
+es ist möglich sie zu verkürzen.  Hierzu muss
+@code{voltaSpannerDuration} definiert werden, in dem Beispiel etwa als
+3/4, sodass die Klammer nur einen Takt dauert. 
+
+"
+  doctitlede = "Volta-Klammern verkürzen"
index c4acc6824d1895dbcf7868aaeff5d812af28c567..07992d6a6556d009429807fa3d5713eee188c444 100644 (file)
@@ -4,3 +4,11 @@ líneas y cuando cambia el acorde.
 
 "
   doctitlees = "Imprimir los acordes cuando se produce un cambio"
+
+%% Translation of GIT committish: 33f623301a41fcc53efadf96bca1c72834763415
+  texidocde = "
+Akkordsymbole können so eingestellt werden, dass sie nur zu Beginn der Zeile
+und bei Akkordwechseln angezeigt werden.
+
+"
+  doctitlede = "Akkordsymbole bei Wechsel anzeigen"
index 930276aaef2eb741196cb9441db7f8096950bcb0..64991425259183ee41b323e86fc2a88b5951b7b9 100644 (file)
@@ -4,3 +4,10 @@ obtenemos una hoja guía de acordes o «lead sheet»:
 
 "
   doctitlees = "Hoja guía de acordes o «lead sheet» sencilla"
+
+%% Translation of GIT committish: 33f623301a41fcc53efadf96bca1c72834763415
+ texidocde = "
+Ein Liedblatt besteht aus Akkordbezeichnungen, einer Melodie und dem Liedtext:
+
+"
+  doctitlede = "Ein einfaches Liedblatt"
index 0fe0a5c01e87d17ef0d55b576ce0b7b253eec818..e6549394e6caef32480c7fcbabc19786267ac0b7 100644 (file)
@@ -8,4 +8,8 @@ letra y acordes.
   texidocde = "
 Mit diesem Beispiel können Sie einen Song mit Melodie, 
 Text und Akkorden schreiben.
+"
+
+  texidocja = "
+これは旋律、単語、コードを持つ歌曲の楽譜のためのテンプレートです。
 "
index 2044578bae57d547313f7391646ad21fe5265794..aa5d7b71c39b810d693a02c8ddca37cab3cf6593 100644 (file)
@@ -9,4 +9,8 @@ doctitlees = "Plantilla de pentagrama único con música y acordes"
   texidocde = "
 Wollen Sie ein Liedblatt mit Melodie und Akkorden schreiben?  Hier ist 
 das richtige Beispiel für Sie!
+"
+
+  texidocja = "
+旋律とコードを持つリード譜を欲しくはありませんか?他を見る必要はありません!
 "
index fceb221a6d3c80aaef473210e9a0fa0a226b5bd7..5cf5067d879dca0544f3366bb94a0abb0a664bcd 100644 (file)
@@ -17,3 +17,11 @@ wie es für Vokalmusik üblich ist.
 Wenn Sie die Balken wieder einschalten wollen, müssen Sie die 
 entsprechende Zeile entweder ändern oder auskommentieren.
 "
+
+  texidocja = "
+この小さなテンプレートは歌詞を持つ簡単な旋律を表しています。カット&ペーストして、音符@c
+を付け加えて、それから歌詞の単語を付け加えてください。この例は自動ビームを off にして@c
+います。これはボーカル パートでは一般的なことです。自動ビームを使用するには、対応する@c
+行を変更するか、コメント アウトしてください。
+"
+
index 31276c8755226cb7182d78f552cbedb364d539d3..ecf7ab24955603bcbc71ef572b3c2c6dbfa04fb6 100644 (file)
@@ -12,3 +12,9 @@ Soloinstrument oder ein Melodiefragment. Kopieren Sie es und fügen
 Sie es in Ihre Datei ein, schreiben Sie die Noten hinzu, und Sie haben 
 eine vollständige Notationsdatei.
 "
+
+  texidocja = "
+これは音符を持つ譜表を提供するとても簡単なテンプレートであり、ソロの楽器や旋律に適しています。@c
+これをファイルにカット&ペーストして、音符を付け加えれば完了です!
+"
+
diff --git a/input/texidocs/specifying-context-with-beatgrouping.texidoc b/input/texidocs/specifying-context-with-beatgrouping.texidoc
new file mode 100644 (file)
index 0000000..1599088
--- /dev/null
@@ -0,0 +1,18 @@
+  texidoces = "
+Mediante la especificación del contexto, el efecto de
+@code{beatGrouping} puede limitarse al contexto especificado, y
+sobreescribirse los valores establecidos en contextos de niveles más
+altos:
+
+"
+  doctitlees = "Especificar el contexto con beatGrouping"
+
+%% Translation of GIT committish :<0364058d18eb91836302a567c18289209d6e9706>
+  texidocde = "
+Wenn der Kontext angegeben wird, kann die Auswirkung von @code{beatGrouping}
+auf den angegebenen Kontext beschränkt werden und die Werte, die in Kontexten
+auf höhrer Ebene angegeben wurden, können verändert werden.  Der
+@code{\\set}-Befehl muss @emph{nach} den @code{\\time}-Befehl geschrieben
+werden:
+"
+  doctitlede = "Den Kontext für beatGrouping angeben"
diff --git a/input/texidocs/stand-alone-two-column-markup.texidoc b/input/texidocs/stand-alone-two-column-markup.texidoc
new file mode 100644 (file)
index 0000000..a7ac4fe
--- /dev/null
@@ -0,0 +1,14 @@
+  texidoces = "
+Los textos independientes se pueden disponer en varias columnas
+utilizando instrucciones @code{\\markup}:
+
+"
+  doctitlees = "Elemento de marcado de texto independiente en dos columnas"
+
+%% Translation of GIT committish :0364058d18eb91836302a567c18289209d6e9706
+  texidocde = "
+Isolierter Text kann in mehreren Spalten mit @code{\\markup}-Befehlen
+angeordnet werden:
+
+"
+  doctitlede = "Isolierter Text in zwei Spalten"
index ab9cc14faed01d58e344df8581eb6c93d8593aca..55ebb8a25a7ff1df56483c0819f8cad03c823a83 100644 (file)
@@ -4,4 +4,23 @@ tablatura que en la notación tradicional. Las barras se pueden
 poner horizontales, como se muestra en este ejemplo.
 
 "
-  doctitlees = "Comportamiento de las plicas y las barras de corchea en tablaturas"
\ No newline at end of file
+  doctitlees = "Comportamiento de las plicas y las barras de corchea en tablaturas"
+
+%% Translation of GIT committish: cd4950757ab1ab6c89805b0b7c978bfca034f940
+
+  texidocfr = "
+La direction des hampes se gère dans les tablatures tout comme en 
+notation traditionnelle.  Les ligatures peuvent être mises à l'horizontale 
+comme le montre cet exemple.
+
+"
+  doctitlefr = "Hampes et ligatures en mode tablature"
+
+%% Translation of GIT committish: 33f623301a41fcc53efadf96bca1c72834763415
+  texidocde = "
+Die Richtung von Hälsen wird in Tabulaturen genauso wie in normaler Notation
+eingestellt.  Balken können horizontal eingestellt werden, wie das Beispiel
+zeigt.
+
+"
+  doctitlede = "Hals- und Balkenverhalten in einer Tabulatur"
index b6f1b4a185d260b68d46ab12b75f7ac499453a68..52748cbd4eca541f170264862040da7b865ec6fb 100644 (file)
@@ -9,4 +9,9 @@ una sección @code{\\global} para el compás y la armadura
 Dieses Beispiel demonstriert die Partitur für ein Streichquartett. Hier 
 wird auch eine @qq{@code{\global}}-Variable für Taktart und 
 Vorzeichen benutzt.
+"
+
+  texidocja = "
+これは簡単な弦楽四重奏のためのテンプレートです。これは拍子記号と調号のために 
+@code{@bs{}global} セクションを使っています。
 "
index 7f6cc68d5fb779974b8c0deb3e1206896f65b0cb..4fe1cfb63b197ea787ed469f51180557be702704 100644 (file)
@@ -32,4 +32,18 @@ enthält die Noten. Die anderen Dateien -- @code{score.ly},
 @code{vlc.ly} -- erstellen daraus die entsprechenden Stimmen bzw. die 
 Partitur (@code{score.ly}). Mit @code{\tag} wird den Stimmen ein Name 
 zugewiesen, auf den zurückgegriffen werden kann.
+"
+
+  texidocja = "
+\"弦楽四重奏テンプレート\" は適切な弦楽四重奏の楽譜を作り出しますが、個々の@c
+パート譜を譜刻する必要がある場合はどうでしょうか?今度の新しいテンプレートは 
+@code{@bs{}tag} 機能を用いて容易に楽曲を個々のパートに分ける方法を示しています。
+
+このテンプレートは別々のファイルに分ける必要があります。ファイル名は各ファイル@c
+の開始部分のコメントの中に記述されています。@code{piece.ly} はすべての音楽定義@c
+を保持しています。他のファイル - @code{score.ly}, @code{vn1.ly}, @code{vn2.ly}, 
+@code{vla.ly} それに @code{vlc.ly} - は対応するパートを作り出します。
+
+
+別々のファイルに分ける場合は、指定されたコメントを外すことを忘れないでください!
 "
index a7b377dac94e8c6e47872d9ee2ed1ba067e60b71..a354be1720b75db830e74ef42a9f670f3afc3e9a 100644 (file)
@@ -15,3 +15,16 @@ la función @code{make-moment}, como se muestra aquí:
 
 "
   doctitlees = "Subdivisión de las barras de semicorchea"
+
+%% Translation of GIT committish :<0364058d18eb91836302a567c18289209d6e9706>
+  texidocde = "
+Die Balken von aufeinanderfolgenden Sechszehnteln (oder kürzeren Notenwerten)
+werden standardmäßig nicht unterteilt.  Dieses Verhalten kann verändert
+werden, sodass die Balken in Untergruppen aufgeteilt werden, indem man
+die Eigenschaft @code{subdivideBeams} verändert.  Man muss die Unterteilungsintervalle
+als Notenbruch mit der @code{make-moment}-Funktion für @code{beatLength} angeben,
+damit die Balken unterbrochen wird und nur ein Balken durchgezogen bleibt.  Der
+Standardwert für @code{beatLength} ist 1 / Zähler des aktuellen Taktes.
+
+"
+  doctitlede = "Balken in Untergruppen teilen"
index 4485333736bf855d57d6782ee2cb56dc1f13d1bc..2b2eed73c45caac58297242c78bcc7553ed4ffd4 100644 (file)
@@ -5,3 +5,12 @@ un contexto @code{StaffGroup} o @code{ChoirStaffGroup}.
 
 "
   doctitlees = "Uso del corchete recto al comienzo de un grupo de pentagramas"
+
+%% Translation of GIT committish :<0364058d18eb91836302a567c18289209d6e9706>  
+  texidocde = "
+Die Klammer zu Beginn von Systemgruppen kann auch in eine eckige Klammer
+(@code{SystemStartSquare}) umgewandelt werden, wenn man sie explizit
+im @code{StaffGroup}- oder @code{ChoirStaffGroup}-Kontext setzt.
+
+"
+  doctitlede = "Eine eckige Klammer zu Beginn von Systemgruppen benutzen"
diff --git a/input/texidocs/using-beatlength-and-beatgrouping.texidoc b/input/texidocs/using-beatlength-and-beatgrouping.texidoc
new file mode 100644 (file)
index 0000000..e4fe708
--- /dev/null
@@ -0,0 +1,24 @@
+  texidoces = "
+La propiedad @code{measureLength} determina dónde se deben insertar
+líneas divisorias y, con @code{beatLength} y @code{beatGrouping}, cómo
+se deben generar las barras autoomáticas para las duraciones de barra
+y compases para los que no hay ninguna regla definida para los finales
+de barra. Este ejemplo muestra distintas dormas de controlar el
+barrado mediante el establecimiento de estas propiedades. Las
+explicaciones están en forma de comentarios dentro del código.
+
+"
+  doctitlees = "Utilización de beatLength y beatGrouping"
+
+%% Translation of GIT committish :<0364058d18eb91836302a567c18289209d6e9706>
+  texidocde = "
+Die Eigenschaft @code{measureLength} bestimmt, wo Taktstriche eingefügt
+werden sollen und, zusammen mit @code{beatLength} und
+@code{beatGrouping}, wie automtische Balken für Notenlängen und
+Taktarten, für die keine definierten Regeln gefunden werden, gesetzt
+werden sollen.  Dieses Beispiel zeigt verschiedene Möglichkeiten,
+die Balken zu kontrollieren, indem man diese Eigenschaften
+beeinflusst.  Die Erklärungen werden als Kommentare im Quellcode
+gegeben.
+"
+  doctitlede = "beatLength und beatGrouping benutzen"
index c071c1c1f9a0418b53d279e270e95dbf08225e8f..4908707a75de8d327cf8d2a142a818cb8818f890 100644 (file)
@@ -4,3 +4,11 @@ legato.  Esto se puede conseguir estableciendo @code{doubleSlurs}.
 
 "
   doctitlees = "Utilizar ligaduras dobles para acordes legato"
+  
+%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a>
+texidocde = "
+Einige Komponisten schreiben doppelte Bögen, wenn Legato-Akkorde notiert
+werden.  Das kann mit der Eigenschaft @code{doubleSlurs} erreicht werden.
+
+"
+  doctitlede = "Doppelte Bögen für Legato-Akkorde benutzen"
diff --git a/input/texidocs/using-postscript-to-generate-special-note-head-shapes.texidoc b/input/texidocs/using-postscript-to-generate-special-note-head-shapes.texidoc
new file mode 100644 (file)
index 0000000..8007f8e
--- /dev/null
@@ -0,0 +1,8 @@
+  texidocfr = "
+Lorsqu'il est impossible d'obtenir facilement une allure particulière
+pour les têtes de note en recourant à la technique du @code{\\markup}, un
+code Postscript peut vous tirer d'embarras.  Voici comment générer des
+têtes ressemblant à des parallélogrammes.
+
+"
+  doctitlefr = "Utilisation de Postscript pour générer des têtes de note à l'allure particulière"
index 7ae98e792edfa8df08a006775cdcd47acd5778f2..8c4bd89573c9bbbab0009feb098bb2a365395912 100644 (file)
@@ -8,4 +8,15 @@ es de utilidad, por ejemplo, para ligar un trémolo a un acorde, pero
 en principio, también se puede usar para notas normales consecutivas,
 como se muestra en este ejemplo.
 
-"
\ No newline at end of file
+"
+
+%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a>
+ texidocde = "
+ Überbindungen werden teilweise benutzt, um Arpeggios zu notieren.  In
+ diesem Fall stehen die übergebundenen Noten nicht unbedingt hintereinander.
+Das Verhalten kann erreicht werden, indem die @code{tieWaitForNote}-Eigenschaft
+auf @code{#t} gesetzt wird.  Diese Funktion ist auch sinnvoll, um etwa
+ein Tremolo mit einem Akkord zu überbinden, kann aber prinzipiell auch
+für normale Überbindungen eingesetzt werden
+"
+  doctitlede = "Überbingungen für Arpeggio genutzen"
index 662c930039ed21ab88cf1612e0dcf4887277d62b..a948376455eee88118768c045b4795041e7a6e22 100644 (file)
@@ -11,3 +11,18 @@ largo de su línea de base.
 
 "
   doctitlees = "Indicaciones dinámicas y textuales alineadas verticalmente"
+  
+%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a>
+texidocde = "
+Indem man die @code{'Y-extent}-Eigenschaft auf einen passenden Wert setzt,
+können alle @code{DynamicLineSpanner}-Objekte (Crescendo-Klammern und
+Dynamik-Texte)  (hairpins and dynamic texts) unabhängig von ihrer
+wirklichen Ausdehnung an einem gemeinsamen Referenzpunkt ausgerichtet werden.
+Auf diese Weise ist jedes Element vertikal ausgerichtet und der Notensatz
+sieht ansprechender aus.
+
+Die gleiche Idee wird benutzt, um Textbeschriftungen an ihrer
+Grundlinie auszurichten.
+
+"
+  doctitlede = "Vertikale Ausrichtung von Dynamik und Textbeschriftung beeinflussen"
index ff259d2d3b1cf81792bb71a66520d731901af918..f37da97aab6d588f2929fbd8001a5a69a339ccf2 100644 (file)
@@ -5,3 +5,12 @@ controlar la posición de la letra y los compases de ossia.
 
 "
   doctitlees = "Alineación vertical de la letra y los compases de ossia"
+
+%% Translation of GIT committish :<0364058d18eb91836302a567c18289209d6e9706>
+  texidocde = "
+Dieser Schnipsel zeigt, wie man die Kontexteigenschaften
+@code{alignBelowContext} und @code{alignAboveContext} benutzen kann, um
+die Positionierung von Gesangstext und Ossia-Abschnitten zu kontrollieren.
+
+"
+  doctitlede = "Gesangstext und Ossia vertikal ausrichten"
index 2821f695a31b709c740da932fae8bb0e86f5fa72..3236f6bd0930800bd401d30f59f56d06b6d29c62 100644 (file)
@@ -16,3 +16,10 @@ Chorpartitur hinzugefügt. Das zeigt eine der Stärken von LilyPond
 irgendeine Änderung an einer Chorstimme vornehmen, (etwa 
 tenorMusic), verändert sich auch der Klavierauszug entsprechend.
 "
+
+  texidocja = "
+このテンプレートは、\"合唱テンプレート\"で示された標準の SATB ボーカル譜に自動@c
+ピアノ譜を付け加えています。これは LilyPond の強みの 1 つを示しています - 音楽@c
+定義を何回も使用することができます。ボーカルの音符 (例えば、@code{tenorMusic} 
+の音符) に変更が加えられた場合、その変更はピアノ譜にも適用されます。
+"
\ No newline at end of file
index 0942b05210be529a213921e0f2c354d2cd2bbbc0..2c55b5a7c5816f0e2f7233ce3e5fd4ee58d8a6e7 100644 (file)
@@ -11,4 +11,9 @@ colocan utilizando @code{alignAboveContext} y
 In diesem Beispiel werden die Texte mit den Befehlen 
 @code{alignAboveContext} und @code{alignBelowContext}
 über und unter dem System angeordnet.
+"
+
+  texidocja = "
+このテンプレートは基本的に単純な \"合唱\" テンプレートと同じですが、歌詞が 
+@code{alignAboveContext} と @code{alignBelowContext} を用いて配置されています。
 "
index 1fb66634a32be82f2f9e9b1654fa890b4397fc73..18307619cc50eada46d07879bf5da8095dde5230 100644 (file)
@@ -14,3 +14,9 @@ Stücken ist es oft sinnvoll, eine allgemeine Variable zu bestimmen,
 die in allen Stimmen eingefügt wird. Taktart und Vorzeichen etwa 
 sind fast immer gleich in allen Stimmen.
 "
+
+  texidocja = "
+これは標準の 4 パート SATB (ソプラノ、アルト、テナー、バス) ボーカル譜です。@c
+もっと大きな合唱では、すべてのパートで使用されるセクションをインクルードすると@c
+便利です。例えば、拍子記号と調号はほとんど常にすべてのパートで同じです。\"賛美@c
+歌\" テンプレートのように、4 つのボイスは 2 つの譜にグループ分けされています。"
index 9554f5d73f80a97cd0c171429022e798350756fe..366791dcec5d211d62139f15e3e6ac8565733d81 100644 (file)
@@ -5,3 +5,13 @@ segunda vez debajo de los acordes.
 
 "
   doctitlees = "Corchetes de primera y segunda vez debajo de los acordes"
+
+
+%% Translation of GIT committish :33f623301a41fcc53efadf96bca1c72834763415
+  texidocde = "
+Indem man den @code{Volta_engraver} zu dem entsprechenden Notensystem
+hinzufügt, können Wiederholungsklammern unterhalb der Akkorde gesetzt
+werden.
+
+"
+  doctitlede = "Wiederholungs-(Volta-)Klammern unterhalb der Akkordsymbole"
index d320f821e578bb4ffc8e15be70fece2ed0c356a6..6e261127ba799788addf0d3e6512dd9280188103 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.61"
+\version "2.12.0"
 \header{
   filename = "twinkle-pop.ly"
   composer = "traditional"
index c9db11c198490e46cbac40a4fc1487396ae57b33..9938f6ce116676ced3d3898f3b2fee4437e1bc00 100644 (file)
@@ -8,7 +8,7 @@ heavily mutilated Edition Peters Morgenlied by Schubert"
 
 }
 
-\version "2.11.61"
+\version "2.12.0"
 
 ignoreMelisma =        \set ignoreMelismata = ##t
 ignoreMelismaOff = \unset ignoreMelismata 
index bd3eddc6592c788fac025274b5fd68416ee8b1f5..411ed3c7b54dae517919f07caa7171ddeffa0fc3 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.61"
+\version "2.12.0"
 
 \header {
   texidoc = "Wilhelmus van Nassouwe"
index cae08f8ae8b185134fb4d9d212c5696c97f85f1a..4fb107d344458147f960ce384fe2770decccf976 100644 (file)
@@ -4,7 +4,7 @@
 %%  hai2zi5: child,
 %%  guai1-guai1: well-behaved)
 
-\version "2.11.61"
+\version "2.12.0"
 
 \header {
   title = "小孩子乖乖"
index 3b13b8a6d9dabbbd6be1dee2ef85cde3ebe37910..508020c039397071319436092fc0c93ef138e788 100644 (file)
@@ -19,9 +19,6 @@ OUT_DIST_FILES=$(addprefix $(outdir)/,parser.hh parser.cc)
 
 include $(depth)/make/stepmake.make
 
-ifeq ($(HAVE_LIBKPATHSEA_SO),no)
-MODULE_LDFLAGS += $(KPATHSEA_LIBS)
-endif
 ifeq ($(LINK_GXX_STATICALLY),yes)
 MODULE_LDFLAGS += -L$(outdir) -static-libgcc
 endif
@@ -80,7 +77,6 @@ $(outdir)/lexer.cc: $(config_h)
 $(outdir)/parser.cc: $(config_h)
 
 $(outdir)/general-scheme.o: $(outdir)/version.hh
-$(outdir)/kpath.o: $(outdir)/version.hh
 $(outdir)/lily-guile.o: $(outdir)/version.hh
 $(outdir)/lily-version.o: $(outdir)/version.hh
 
diff --git a/lily/SConscript b/lily/SConscript
deleted file mode 100644 (file)
index ebd623f..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-# -*-python-*-
-
-Import ('env', 'src_glob', 'install')
-
-outdir = Dir ('.').abspath
-
-cc_sources =  src_glob ('*.cc')
-sources = cc_sources + ['parser.yy', 'lexer.ll']
-includes = src_glob ('include/*.hh')
-
-e = env.Copy ()
-
-e.Append (
-       CPPPATH = [
-         '#/lily/include',
-         '#/flower/include',
-         outdir],
-       LEXFLAGS = ['-Cfe', '-p', '-p'],
-       LIBS = ['flower'],
-       )
-
-e.HH ('parser.hh', 'parser.yy')
-e.ParseConfig ('guile-config link')
-lily = e.Program ('lilypond', sources)
-install (lily, env['bindir'])
-
-# let's not, for now
-#po = env.Command ('lilypond.po', cc_sources + includes, env['pocommand'])
-#env.Alias ('po-update', po)
index c7440e51543393c2dde6dfd750bac6fd04bcd2c3..24340ed70f2057e7fae2964d77723c7df260b192 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
   Modified 2001--2002 by Rune Zedeler <rz@daimi.au.dk>
 */
 
@@ -262,8 +262,8 @@ LY_DEFINE (ly_find_accidentals_simple, "ly:find-accidentals-simple", 5, 0, 0,
           " key signature.  The @var{laziness} is the number of bars for which reminder"
           " accidentals are used (ie. if @var{laziness} is zero, we only cancel accidentals"
           " in the same bar; if @var{laziness} is three, we cancel accidentals up to three"
-          " bars after they first appear.  @var{octaveness} is either "
-          " @code{'same-octave} or @code{'any-octave} and it specifies whether "
+          " bars after they first appear.  @var{octaveness} is either"
+          " @code{'same-octave} or @code{'any-octave} and it specifies whether"
           " accidentals should be canceled in different octaves.")
 {
   LY_ASSERT_TYPE (unsmob_pitch, pitch_scm, 2);
@@ -411,13 +411,11 @@ Accidental_engraver::create_accidental (Accidental_entry *entry,
 }
 
 Grob *
-Accidental_engraver::make_standard_accidental (Stream_event *note,
+Accidental_engraver::make_standard_accidental (Stream_event * /* note */,
                                               Grob *note_head,
                                               Engraver *trans,
                                               bool cautionary)
 {
-  (void)note;
-
   /*
     We construct the accidentals at the originating Voice
     level, so that we get the property settings for
@@ -455,12 +453,10 @@ Accidental_engraver::make_standard_accidental (Stream_event *note,
 }
 
 Grob *
-Accidental_engraver::make_suggested_accidental (Stream_event *note,
+Accidental_engraver::make_suggested_accidental (Stream_event * /* note */,
                                                Grob *note_head,
                                                Engraver *trans)
 {
-  (void) note;
-
   Grob *a = trans->make_item ("AccidentalSuggestion", note_head->self_scm ());
 
   Side_position_interface::add_support (a, note_head);
@@ -636,6 +632,7 @@ ADD_TRANSLATOR (Accidental_engraver,
                /* create */
                "Accidental "
                "AccidentalCautionary "
+               "AccidentalPlacement "
                "AccidentalSuggestion ",
 
                /* read */
index 268580e4ab1d55d77c301466a2aa160b27cfaf9f..f383a3ecc718c1b958c23ddbb4e47ea0fd59fbae 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2002--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2002--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 
@@ -426,6 +426,7 @@ ADD_INTERFACE (Accidental_placement,
 
               /* properties */
               "accidental-grobs "
+              "direction "
               "left-padding "
               "padding "
               "positioning-done "
index bbf18517abaf632cb1fcb5b5811293d46efc1108..0e81a6bea299105e2a66cf1459e2de6b8a03a588 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2001--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2001--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "accidental-interface.hh"
index 92c405391dfeb1d00465c629e034fcef8c49365a..27839aca920d46ce08dcce76b34271d064ac1168 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2000--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2000--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "align-interface.hh"
index 685ec537e6ef8c005dcd30efcfa6a70466342be5..1391b1d8ff816ca7926c82682d0fec0d7796c9a6 100644 (file)
@@ -4,7 +4,7 @@
   
   source file of the GNU LilyPond music typesetter
   
-  (c) 2007 Han-Wen Nienhuys <hanwen@lilypond.org>
+  (c) 2007--2009 Han-Wen Nienhuys <hanwen@lilypond.org>
   
 */
 
@@ -22,9 +22,19 @@ LY_DEFINE (ly_reset_all_fonts, "ly:reset-all-fonts", 0, 0, 0,
 }
 
 
-LY_DEFINE (ly_font_load, "ly:font-load", 1, 0, 0,
+LY_DEFINE (ly_system_font_load, "ly:system-font-load", 1, 0, 0,
           (SCM name),
-          "Load the font @var{name}.")
+          "Load the OpenType system font @file{@var{name}.otf}."
+          "  Fonts loaded with this command must contain three"
+          " additional SFNT font tables called @code{LILC},"
+          " @code{LILF}, and @code{LILY}, needed for typesetting"
+          " musical elements.  Currently, only the Emmentaler and"
+          " the Aybabtu fonts fulfill these requirements.\n"
+          "\n"
+          "Note that only @code{ly:font-get-glyph} and derived"
+          " code (like @code{\\lookup}) can access glyphs from"
+          " the system fonts; text strings are handled exclusively"
+          " via the Pango interface.")
 {
   LY_ASSERT_TYPE (scm_is_string, name, 1);
   
@@ -33,5 +43,3 @@ LY_DEFINE (ly_font_load, "ly:font-load", 1, 0, 0,
 
   return fm->self_scm ();
 }
-
-
index 3792b353db05c0c67189afd0fc822a2f3a2a4814..9721f8e8093af98b239f1e99c148c03fd7081950 100644 (file)
@@ -3,11 +3,12 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1999--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1999--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "all-font-metrics.hh"
 
+#include "string-convert.hh"
 #include "international.hh"
 #include "main.hh"
 #include "open-type-font.hh"
 
 
 Index_to_charcode_map const *
-All_font_metrics::get_index_to_charcode_map (string filename, FT_Face face)
+All_font_metrics::get_index_to_charcode_map (string filename,
+                                            int face_index,
+                                            FT_Face face)
 {
-  if (filename_charcode_maps_map_.find (filename)
+  string key = filename + String_convert::int_string (face_index);
+  if (filename_charcode_maps_map_.find (key)
       == filename_charcode_maps_map_.end ())
-    filename_charcode_maps_map_[filename] = make_index_to_charcode_map (face);
+    filename_charcode_maps_map_[key] = make_index_to_charcode_map (face);
 
-  return &filename_charcode_maps_map_[filename];
+  return &filename_charcode_maps_map_[key];
 }
 
 
index 56573a5fddb2e3bd34928b4732346e362d3e009b..202e691d21d6515060cad0b0325fecc7af781200 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2002--2007 Juergen Reuter <reuter@ipd.uka.de>
+  (c) 2002--2009 Juergen Reuter <reuter@ipd.uka.de>
 
   Han-Wen Nienhuys <hanwen@xs4all.nl
 */
@@ -28,8 +28,10 @@ class Ambitus_engraver : public Engraver
 {
 public:
   TRANSLATOR_DECLARATIONS (Ambitus_engraver);
+protected:
+  DECLARE_ACKNOWLEDGER (note_head);
+
   void process_music ();
-  void acknowledge_note_head (Grob_info);
   void stop_translation_timestep ();
   virtual void finalize ();
   virtual void derived_mark () const;
@@ -119,9 +121,16 @@ void
 Ambitus_engraver::acknowledge_note_head (Grob_info info)
 {
   Stream_event *nr = info.event_cause ();
+  SCM p = nr->get_property ("pitch");
+  /*
+    If the engraver is added to a percussion context,
+    filter out unpitched note heads.
+  */
+  if (!unsmob_pitch (p))
+    return;
   if (nr && nr->in_event_class ("note-event"))
     {
-      Pitch pitch = *unsmob_pitch (nr->get_property ("pitch"));
+      Pitch pitch = *unsmob_pitch (p);
       Drul_array<bool> expands = pitch_interval_.add_point (pitch);
       if (expands[UP])
        causes_[UP] = nr;
@@ -135,7 +144,7 @@ Ambitus_engraver::finalize ()
 {
   if (ambitus_ && !pitch_interval_.is_empty ())
     {
-      Grob * accidental_placement =
+      Grob *accidental_placement =
        make_item ("AccidentalPlacement",
                   accidentals_[DOWN]->self_scm ());
 
@@ -198,10 +207,11 @@ ADD_TRANSLATOR (Ambitus_engraver,
                "",
 
                /* create */
+               "AccidentalPlacement "
                "Ambitus "
+               "AmbitusAccidental "
                "AmbitusLine "
-               "AmbitusNoteHead "
-               "AmbitusAccidental ",
+               "AmbitusNoteHead ",
 
                /* read */
                "",
index 6d6b5b0aac51ac53585a56c646d8d5f3845825ba..85fb2978869c338590a47916ae1d4b2d93fcbdb6 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2002--2007 Juergen Reuter <reuter@ipd.uka.de>
+  (c) 2002--2009 Juergen Reuter <reuter@ipd.uka.de>
 */
 
 #include "ambitus.hh"
index adccbeea13d0f8e48a70af7a483a1d81e34b2bc5..7874509da21a69aeca96a8043a894ca87c6cf1d5 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2004--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2004--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "context.hh"
index 6fa2f79c9d437d01d366f00118bbdf4938c7c2be..f5546ee5c607a268fce90000889f06b37787f732 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2000--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 2000--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
 #include "engraver.hh"
index 22351d3b13f3d56a8d640dc730737d2b39d58b31..7873b5f39cc807bfe7055c9eb972855a26dd092e 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2000--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 2000--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
 #include "arpeggio.hh"
index d052c4e8cc43821632e1490fe3a92ecf99dd9576..4c24351aa40d2fdea2cbdcc3c1cf27e744e78c49 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 1997--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
 #include "audio-column.hh"
index bcae088b678bca9f3c4dfeda561d5f26c8bd6426..c3cda8b40eafefeb7bbd0b2989ea5b8001069440 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "audio-element-info.hh"
index 8d3a3e39534384768a34ae87f2de82df9ea8b66e..093724cee1605e9c4a330ed6a6998add4c19427d 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 #include <cassert> 
 
index da4bc4ff6e37b543f6132b3e0fc87dd4504353e4..33e54d713a869b7bdfc1225fc2a9774b1ebdbe08 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 1997--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
 #include "audio-item.hh"
index 353a26f270e272a2afc8c57389687b2686db941b..bde50ae80abc7a779a00802a3a5a0e3ccf2631cf 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 1997--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
 #include "audio-staff.hh"
index d299d2e6e704c8679dfcfe2b055082c072e174cd..4c813a7038264d3fb0a30b14fbe29e1439a83aed 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1999--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 1999--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
 #include "bar-line.hh"
@@ -302,27 +302,24 @@ Auto_beam_engraver::finalize ()
 
 
 void
-Auto_beam_engraver::acknowledge_beam (Grob_info info)
+Auto_beam_engraver::acknowledge_beam (Grob_info /* info */)
 {
-  (void)info;
   check_bar_property ();
   if (stems_)
     end_beam ();
 }
 
 void
-Auto_beam_engraver::acknowledge_bar_line (Grob_info info)
+Auto_beam_engraver::acknowledge_bar_line (Grob_info /* info */)
 {
-  (void)info;
   check_bar_property ();
   if (stems_)
     end_beam ();
 }
 
 void
-Auto_beam_engraver::acknowledge_rest (Grob_info info)
+Auto_beam_engraver::acknowledge_rest (Grob_info /* info */)
 {
-  (void)info;
   check_bar_property ();
   if (stems_)
     end_beam ();
index 04ed126556cc7b53d8620a13e47da5bbeeccd6db..8ac1ccf337f22eb77b702efc1ef3e2bc8a61125c 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1999--2005 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1999--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "context.hh"
index 9a2618a5ba1657c7f84a40354fee12e900d22e7c..4f19938ef8c3e90c3b45cc9bc7e53682fbe9be79 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1999--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1999--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "axis-group-engraver.hh"
index 45236e6ca5a889efa7e05267315c99be7a4ff53f..ff16505c7bfbf4586bad720a28b575aa0f145a22 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "axis-group-interface.hh"
index efed220b256c72639d9cd14538fc94686a61fa32..639c8b6267a12a6450cfe7739009e7e6b311cdbb 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2000--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2000--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "axis-group-interface.hh"
index 27be4605310b3115030db608b5271ba6ce04becc..d13c527ef6835114b4910252dd8652fc1208aab4 100644 (file)
@@ -3,7 +3,7 @@
   
   source file of the GNU LilyPond music typesetter
   
-  (c) 2006--2007 Han-Wen Nienhuys <hanwen@lilypond.org>
+  (c) 2006--2009 Han-Wen Nienhuys <hanwen@lilypond.org>
   
 */
 
index 6259bf84e5bc8d33f4471d19a94f5abcb6d96650..0c82fdca8e4a35e00094b0d2f2fe5870d070c726 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2004--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2004--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "text-interface.hh"
index fb3ebd341f7e9a2318afa8f76dd12c82c0e1c56c..8ac67109bf20281ef05cb173537f6132292e13b5 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2001--2007  Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2001--2009  Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "context.hh"
index 61ec14aca1416586ffdbd16609634870c67ddf1f..6bf118ae8b31a10ab4b06b6c5877be0adac594c2 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
   Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
index d0b18fd1c55345adf59f2d46f99321a5d9390af3..b6424111fdf39f299d7fada453fc7182e44cd2ad 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "bar-line.hh"
@@ -116,6 +116,11 @@ Bar_line::compound_barline (Grob *me, string str, Real h,
       thin.translate_axis (center, Y_AXIS);
       return thin;
     }
+  else if (str == ".")
+    {
+      thick.translate_axis (center, Y_AXIS);
+      return thick;
+    }
   else if (str == "|." || (h == 0 && str == ":|"))
     {
       m.add_at_edge (X_AXIS, LEFT, thick, 0);
@@ -198,9 +203,9 @@ Bar_line::compound_barline (Grob *me, string str, Real h,
     {
       m = dashed_bar_line (me, h, hair);
     }
-  else if (str == ".")
+  else if (str == "'")
     {
-      m = dot;
+      m = tick_bar_line (me, h, rounded);
     }
 
   m.translate_axis (center, Y_AXIS);
@@ -222,6 +227,22 @@ Bar_line::simple_barline (Grob *me,
                                        Interval (-h / 2, h / 2)), blot);
 }
 
+Stencil
+Bar_line::tick_bar_line (Grob *me, Real h, bool rounded)
+{
+  Real th = Staff_symbol_referencer::staff_space (me) / 2;
+  Real line_thick = Staff_symbol_referencer::line_thickness (me);
+
+  Real blot
+    = rounded
+    ? me->layout ()->get_dimension (ly_symbol2scm ("blot-diameter"))
+    : 0.0;
+
+  return Lookup::round_filled_box (Box (Interval (0, line_thick),
+                                        Interval (h / 2 - th, h / 2 + th)), blot);
+}
+
+
 MAKE_SCHEME_CALLBACK (Bar_line, calc_bar_size, 1);
 SCM
 Bar_line::calc_bar_size (SCM smob)
@@ -334,13 +355,17 @@ ADD_INTERFACE (Bar_line,
               "\n"
               "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 to print."
-              "  Options are @code{:|}, @code{|:}, @code{:|:}, @code{||},"
-              " @code{|.}, @code{.|}, and @code{.|.}.\n"
+              " 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} and @code{'}.\n"
               "\n"
-              "These produce, respectively, a right repeat, a left repeat,"
-              " a double repeat, a double bar, a start bar, an end bar, and"
-              " a thick double bar.  In addition, there is an option"
+              "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 and a tick as bar bar line."
+              "  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"
@@ -349,7 +374,7 @@ ADD_INTERFACE (Bar_line,
               "If @var{bartype} is set to @code{empty} then nothing is"
               " printed, but a line break is allowed at that spot.\n"
               "\n"
-              "@code{gap} is used for the gaps in dashed barlines.",
+              "@code{gap} is used for the gaps in dashed bar lines.",
 
               /* properties */
               "allow-span-bar "
@@ -363,5 +388,3 @@ ADD_INTERFACE (Bar_line,
               "bar-size "
               "bar-extent "
               );
-
-
index aa9cb8f4861b0426788b762714a8241527da20d9..61242297cde75b2d082373060a27a16a21150d4c 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "paper-column.hh"
index 111a8f9187198de1f55413ebf9bb42bbd7e6dbaf..43c1264741c186131dc34b54d72ec5f22f25db00 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1998--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1998--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "beam.hh"
index 34a1a86482d89386f87337da7ca740bd5f0ebd3a..bd85a6a1f1d40f69d730a05a6e7277e86a5f6283 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1996--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 1996--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
 #include "performer.hh"
index 17ad169a1fc34d18a2372d57ce2346bae0c2789c..ed1321450256aaa15a8a7345c7908e392a9dbb79 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
   Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
index 5cc6c7c84587e436cdfae706bf7ca92c103ac722..83d82e3ccabb91e0725d06ef5053f92f184a2f80 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
   Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
@@ -341,6 +341,12 @@ Beam::get_beam_segments (Grob *me_grob, Grob **common)
   Position_stem_segments_map stem_segments;
   Real lt = me->layout ()->get_dimension (ly_symbol2scm ("line-thickness"));
 
+  /* There are two concepts of "rank" that are used in the following code.
+     The beam_rank is the vertical position of the beam (larger numbers are
+     closer to the noteheads). Beam_stem_segment.rank_, on the other hand,
+     is the horizontal position of the segment (this is incremented by two
+     for each stem; the beam segment on the right side of the stem has
+     a higher rank (by one) than its neighbour to the left). */
   Slice ranks;
   for (vsize i = 0; i < stems.size (); i++)
     {
@@ -351,6 +357,10 @@ Beam::get_beam_segments (Grob *me_grob, Grob **common)
       Direction d = LEFT;
       do
        {
+         // Find the maximum and minimum beam ranks.
+         // Given that RANKS is never reset to empty, the interval will always be
+         // smallest for the left beamlet of the first stem, and then it might grow.
+         // Do we really want this? (It only affects the tremolo gaps) --jneem
          for (SCM s = index_get_cell (beaming, d);
               scm_is_pair (s); s = scm_cdr (s))
            {
@@ -400,34 +410,51 @@ Beam::get_beam_segments (Grob *me_grob, Grob **common)
 
       Beam_segment current;
 
+      // Iterate over all of the segments of the current beam rank,
+      // merging the adjacent Beam_stem_segments into one Beam_segment
+      // when appropriate.
       int vertical_count =  (*i).first;
       for (vsize j = 0; j < segs.size (); j++)
        {
-         /*
-           event_dir == LEFT: left edge of a beamsegment.
-          */
+         // Keeping track of the different directions here is a little tricky.
+         // segs[j].dir_ is the direction of the beam segment relative to the stem
+         // (ie. segs[j].dir_ == LEFT if the beam segment sticks out to the left of
+         // its stem) whereas event_dir refers to the edge of the beam segment that
+         // we are currently looking at (ie. if segs[j].dir_ == event_dir then we
+         // are looking at that edge of the beam segment that is furthest from its
+         // stem).
          Direction event_dir = LEFT;
+         Beam_stem_segment const& seg = segs[j];
          do
            {
-             bool on_line_bound = (segs[j].dir_ == LEFT) ? segs[j].stem_index_ == 0
-               : segs[j].stem_index_ == stems.size() - 1;
+             Beam_stem_segment const& neighbor_seg = segs[j + event_dir];
+             // TODO: make names clearer? --jneem
+             // on_line_bound: whether the current segment is on the boundary of the WHOLE beam
+             // on_beam_bound: whether the current segment is on the boundary of just that part
+             //   of the beam with the current beam_rank
+             bool on_line_bound = (seg.dir_ == LEFT) ? seg.stem_index_ == 0
+               : seg.stem_index_ == stems.size() - 1;
              bool on_beam_bound = (event_dir == LEFT) ? j == 0 :
                j == segs.size () - 1;
              bool inside_stem = (event_dir == LEFT)
-               ? segs[j].stem_index_ > 0
-               : segs[j].stem_index_ + 1 < stems.size () ;
+               ? seg.stem_index_ > 0
+               : seg.stem_index_ + 1 < stems.size () ;
                      
              bool event = on_beam_bound
-               || abs (segs[j].rank_ - segs[j+event_dir].rank_) > 1
-               || (abs (vertical_count) >= segs[j].max_connect_
-                   || abs (vertical_count) >= segs[j + event_dir].max_connect_);
+               || abs (seg.rank_ - neighbor_seg.rank_) > 1
+               || (abs (vertical_count) >= seg.max_connect_
+                   || abs (vertical_count) >= neighbor_seg.max_connect_);
              
              if (!event)
+               // Then this edge of the current segment is irrelevent because it will
+               // be connected with the next segment in the event_dir direction.
                continue;
 
              current.vertical_count_ = vertical_count;
-             current.horizontal_[event_dir] = segs[j].stem_x_;
-             if (segs[j].dir_ == event_dir)
+             current.horizontal_[event_dir] = seg.stem_x_;
+             if (seg.dir_ == event_dir)
+               // then we are examining the edge of a beam segment that is furthest
+               // from its stem.
                {
                  if (on_line_bound
                      && me->get_bound (event_dir)->break_status_dir ())
@@ -439,38 +466,40 @@ Beam::get_beam_segments (Grob *me_grob, Grob **common)
                    }
                  else
                    {
-                     Real notehead_width = 
-                       Stem::duration_log (segs[j].stem_) == 1
-                       ? 1.98
-                       : 1.32; // URG.
-
+                     Grob *stem = stems[seg.stem_index_];
+                     Drul_array<Real> beamlet_length =
+                       robust_scm2interval (stem->get_property ("beamlet-default-length"), Interval (1.1, 1.1));
+                     Drul_array<Real> max_proportion =
+                       robust_scm2interval (stem->get_property ("beamlet-max-length-proportion"), Interval (0.75, 0.75));
+                     Real length = beamlet_length[seg.dir_];
 
                      if (inside_stem)
                        {
-                         Grob *neighbor_stem = stems[segs[j].stem_index_ + event_dir];
-                         Real neighbor_stem_x
-                           = neighbor_stem->relative_coordinate (commonx, X_AXIS);
+                         Grob *neighbor_stem = stems[seg.stem_index_ + event_dir];
+                         Real neighbor_stem_x = neighbor_stem->relative_coordinate (commonx, X_AXIS);
 
-                         notehead_width = min (notehead_width,
-                                               fabs (neighbor_stem_x - segs[j].stem_x_)/2.5);
+                         length = min (length,
+                                       fabs (neighbor_stem_x - seg.stem_x_) * max_proportion[seg.dir_]);
                        }
-                     current.horizontal_[event_dir] += event_dir * notehead_width;
+                     current.horizontal_[event_dir] += event_dir * length;
                    }
                }
              else
+               // we are examining the edge of a beam segment that is closest
+               // (ie. touching, unless there is a gap) its stem.
                {
-                 current.horizontal_[event_dir] += event_dir * segs[j].width_/2;
-                 if (segs[j].gapped_)
+                 current.horizontal_[event_dir] += event_dir * seg.width_/2;
+                 if (seg.gapped_)
                    {
                      current.horizontal_[event_dir] -= event_dir * gap_length;
 
-                     if (Stem::is_invisible (segs[j].stem_))
+                     if (Stem::is_invisible (seg.stem_))
                        {
                          /*
                            Need to do this in case of whole notes. We don't want the
                            heads to collide with the beams.
                           */
-                         extract_grob_set (segs[j].stem_, "note-heads", heads);
+                         extract_grob_set (seg.stem_, "note-heads", heads);
 
                          for (vsize k = 0; k < heads.size (); k ++)
                            current.horizontal_[event_dir]
@@ -893,10 +922,8 @@ Beam::no_visible_stem_positions (Grob *me, Interval default_value)
 */
 MAKE_SCHEME_CALLBACK (Beam, calc_least_squares_positions, 2);
 SCM
-Beam::calc_least_squares_positions (SCM smob, SCM posns)
+Beam::calc_least_squares_positions (SCM smob, SCM /* posns */)
 {
-  (void) posns;
-  
   Grob *me = unsmob_grob (smob);
 
   int count = normal_stem_count (me);
index 290620355bbdcfe7b2f037c9635dff65d826f0e8..75dfc5a8c000954fa70d7e9f97192a0f922cde62 100644 (file)
@@ -10,7 +10,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1999--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1999--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "beaming-pattern.hh"
index 99115e9a52e10f0329578c24044ba65e22e3279f..3a08a4553298b8998d67658cdf615e1e2ceadb93 100644 (file)
@@ -1,7 +1,7 @@
 /*
   bend-engraver.cc -- implement Bend_engraver
 
-  (c) 2006--2007 Han-Wen Nienhuys
+  (c) 2006--2009 Han-Wen Nienhuys
 
   
 */
index 1e3bb2f517ba0de936371345ae873cf5015ab0cd..e3707c13909d7b64a9efbd1a186ce14b92d7ddf5 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1998--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 1998--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
 #include "misc.hh"
index 1eaf041b886e8c782efdd802301b0f2ebf78a60a..3712b9213ef91c26ab1d5fb74d0fb56127dc5c06 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1998--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 1998--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
 #include "bezier.hh"
index e00f1ded496965f1882390f31976f613b26debb7..0c0896668fbe07f11bdf0c32a2820e2d27263e2e 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2004--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2004--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "book.hh"
@@ -34,6 +34,18 @@ LY_DEFINE (ly_make_book, "ly:make-book",
   return x;
 }
 
+LY_DEFINE (ly_make_book_part, "ly:make-book-part",
+          1, 0, 0, (SCM scores),
+          "Make a @code{\\bookpart} containing @code{\\scores}.")
+{
+  Book *book = new Book;
+  book->scores_ = scm_append (scm_list_2 (scores, book->scores_));
+
+  SCM x = book->self_scm ();
+  book->unprotect ();
+  return x;
+}
+
 LY_DEFINE (ly_book_process, "ly:book-process",
           4, 0, 0, (SCM book_smob,
                     SCM default_paper,
@@ -96,3 +108,13 @@ LY_DEFINE (ly_book_add_score_x, "ly:book-add-score!",
   book->add_score (score);
   return SCM_UNSPECIFIED;
 }
+
+LY_DEFINE (ly_book_add_bookpart_x, "ly:book-add-bookpart!",
+          2, 0, 0, (SCM book_smob, SCM book_part),
+          "Add @var{book_part} to @var{book-smob} book part list.")
+{
+  LY_ASSERT_SMOB (Book, book_smob, 1);
+  Book *book = unsmob_book (book_smob); 
+  book->add_bookpart (book_part);
+  return SCM_UNSPECIFIED;
+}
index 335507601d37fc46d3e1fa381e904b4b27421f82..001d647215372201007f87c688ef46cc72c1a0ee 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "book.hh"
@@ -29,6 +29,7 @@ Book::Book ()
   paper_ = 0;
   header_ = SCM_EOL;
   scores_ = SCM_EOL;
+  bookparts_ = SCM_EOL;
   input_location_ = SCM_EOL;
   smobify_self ();
 
@@ -40,6 +41,7 @@ Book::Book (Book const &s)
   paper_ = 0;
   header_ = SCM_EOL;
   scores_ = SCM_EOL;
+  bookparts_ = SCM_EOL;
   input_location_ = SCM_EOL;
   smobify_self ();
 
@@ -64,6 +66,16 @@ Book::Book (Book const &s)
       t = SCM_CDRLOC (*t);
       newscore->unprotect ();
     }
+
+  t = &bookparts_;
+  for (SCM p = s.bookparts_; scm_is_pair (p); p = scm_cdr (p))
+    {
+      Book *newpart = unsmob_book (scm_car (p))->clone ();
+
+      *t = scm_cons (newpart->self_scm (), SCM_EOL);
+      t = SCM_CDRLOC (*t);
+      newpart->unprotect ();
+    }
 }
 
 Input *
@@ -87,6 +99,7 @@ Book::mark_smob (SCM s)
   if (book->paper_)
     scm_gc_mark (book->paper_->self_scm ());
   scm_gc_mark (book->scores_);
+  scm_gc_mark (book->bookparts_);
   scm_gc_mark (book->input_location_);
   
   return book->header_;
@@ -105,62 +118,171 @@ Book::add_score (SCM s)
   scores_ = scm_cons (s, scores_);
 }
 
+void
+Book::set_parent (Book *parent)
+{
+  if (!paper_)
+    {
+      paper_ = new Output_def ();
+      paper_->unprotect ();
+    }
+  paper_->parent_ = parent->paper_;
+  /* If this part is the first child of parent, copy its header */
+  if (ly_is_module (parent->header_) && (scm_is_null (parent->bookparts_)))
+    {
+      SCM tmp_header = ly_make_anonymous_module (false);
+      ly_module_copy (tmp_header, parent->header_);
+      if (ly_is_module (header_))
+        ly_module_copy (tmp_header, header_);
+      header_ = tmp_header;
+    }
+}
 
-/* Concatenate all score outputs into a Paper_book
+/* Before an explicit \bookpart is encountered, scores are added to the book.
+ * But once a bookpart is added, the previous scores shall be collected into
+ * a new bookpart.
  */
-Paper_book *
-Book::process (Output_def *default_paper,
-              Output_def *default_layout)
+void
+Book::add_scores_to_bookpart ()
+{
+  if (scm_is_pair (scores_))
+    {
+      /* If scores have been added to this book, add them to a child 
+       * book part */
+      Book *part = new Book;
+      part->set_parent (this);
+      part->scores_ = scores_;
+      bookparts_ = scm_cons (part->self_scm (), bookparts_);
+      part->unprotect ();
+      scores_ = SCM_EOL;
+    }
+}
+
+void
+Book::add_bookpart (SCM b)
+{
+  add_scores_to_bookpart ();
+  Book *part = unsmob_book (b);
+  part->set_parent (this);
+  bookparts_ = scm_cons (b, bookparts_);
+}
+
+bool
+Book::error_found ()
 {
   for (SCM s = scores_; scm_is_pair (s); s = scm_cdr (s))
     if (Score *score = unsmob_score (scm_car (s)))
       if (score->error_found_)
-       return 0;
+       return true;
+  
+  for (SCM part = bookparts_; scm_is_pair (part); part = scm_cdr (part))
+    if (Book *bookpart = unsmob_book (scm_car (part)))
+      if (bookpart->error_found ())
+       return true;
+
+  return false;
+}
+
+Paper_book *
+Book::process (Output_def *default_paper,
+              Output_def *default_layout)
+{
+  return process (default_paper, default_layout, 0);
+}
+
+void
+Book::process_bookparts (Paper_book *output_paper_book, Output_def *paper, Output_def *layout)
+{
+  add_scores_to_bookpart ();
+  for (SCM p = scm_reverse (bookparts_); scm_is_pair (p); p = scm_cdr (p))
+    {
+      if (Book *book = unsmob_book (scm_car (p)))
+        {
+          Paper_book *paper_book_part = book->process (paper, layout, output_paper_book);
+          if (paper_book_part)
+           {
+             output_paper_book->add_bookpart (paper_book_part->self_scm ());
+             paper_book_part->unprotect ();
+           }
+        }
+    }
+  /* In a Paper_book, bookparts are stored in straight order */
+  output_paper_book->bookparts_ = scm_reverse_x (output_paper_book->bookparts_, SCM_EOL);
+}
 
+void
+Book::process_score (SCM s, Paper_book *output_paper_book, Output_def *layout)
+{
+  if (Score *score = unsmob_score (scm_car (s)))
+    {
+      SCM outputs = score
+       ->book_rendering (output_paper_book->paper_, layout);
+             
+      while (scm_is_pair (outputs))
+       {
+         Music_output *output = unsmob_music_output (scm_car (outputs));
+                 
+         if (Performance *perf = dynamic_cast<Performance *> (output))
+           output_paper_book->add_performance (perf->self_scm ());
+         else if (Paper_score *pscore = dynamic_cast<Paper_score *> (output))
+           {
+             if (ly_is_module (score->get_header ()))
+               output_paper_book->add_score (score->get_header ());
+             output_paper_book->add_score (pscore->self_scm ());
+           }
+                 
+         outputs = scm_cdr (outputs);
+       }
+    }
+  else if (Text_interface::is_markup_list (scm_car (s))
+          || unsmob_page_marker (scm_car (s)))
+    output_paper_book->add_score (scm_car (s));
+  else
+    assert (0);
+    
+}
+
+/* Concatenate all score or book part outputs into a Paper_book
+ */
+Paper_book *
+Book::process (Output_def *default_paper,
+              Output_def *default_layout,
+              Paper_book *parent_part)
+{
   Output_def *paper = paper_ ? paper_ : default_paper;
+
+  /* If top book, recursively check score errors */
+  if (!parent_part && error_found ())
+    return 0;
+
   if (!paper)
     return 0;
-  
+
   Paper_book *paper_book = new Paper_book ();
   Real scale = scm_to_double (paper->c_variable ("output-scale"));
   Output_def *scaled_bookdef = scale_output_def (paper, scale);
-
   paper_book->paper_ = scaled_bookdef;
-  scaled_bookdef->unprotect ();
-
+  if (parent_part)
+    {
+      paper_book->parent_ = parent_part;
+      paper_book->paper_->parent_ = parent_part->paper_;
+    }
   paper_book->header_ = header_;
 
-  /* Render in order of parsing.  */
-  for (SCM s = scm_reverse (scores_); scm_is_pair (s); s = scm_cdr (s))
+  if (scm_is_pair (bookparts_))
     {
-      if (Score *score = unsmob_score (scm_car (s)))
-       {
-         SCM outputs = score
-           ->book_rendering (paper_book->paper_, default_layout);
-
-         while (scm_is_pair (outputs))
-           {
-             Music_output *output = unsmob_music_output (scm_car (outputs));
-
-             if (Performance *perf = dynamic_cast<Performance *> (output))
-               paper_book->add_performance (perf->self_scm ());
-             else if (Paper_score *pscore = dynamic_cast<Paper_score *> (output))
-               {
-                 if (ly_is_module (score->get_header ()))
-                   paper_book->add_score (score->get_header ());
-                 paper_book->add_score (pscore->self_scm ());
-               }
-
-             outputs = scm_cdr (outputs);
-           }
-       }
-      else if (Text_interface::is_markup_list (scm_car (s))
-              || unsmob_page_marker (scm_car (s)))
-       paper_book->add_score (scm_car (s));
-      else
-       assert (0);
+      /* Process children book parts */
+      process_bookparts (paper_book, paper, default_layout);
+    }
+  else
+    {
+      /* Process scores */
+  /* Render in order of parsing.  */
+      for (SCM s = scm_reverse (scores_); scm_is_pair (s); s = scm_cdr (s))
+        {
+          process_score (s, paper_book, default_layout);
+        }
     }
 
   return paper_book;
 }
-
index e44f166dbce2800bd31ce04aa21b3fb079c6894c..f35f935204dd68afbbaec80312c1f3ee4085f7fc 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1996--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1996--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "box.hh"
@@ -88,16 +88,14 @@ IMPLEMENT_TYPE_P (Box, "ly:box?");
 IMPLEMENT_DEFAULT_EQUAL_P (Box);
 
 SCM
-Box::mark_smob (SCM x)
+Box::mark_smob (SCM /* x */)
 {
-  (void)x;
   return SCM_EOL;
 }
 
 int
-Box::print_smob (SCM x, SCM p, scm_print_state*)
+Box::print_smob (SCM /* x */, SCM p, scm_print_state*)
 {
-  (void)x;
   scm_puts ("#<Box>", p);
   return 1;
 }
index 5db2e145d694efac0965869d2cde74c7c4e1d201..922978f2b1ca458c2a5ec6e29b09930c1997f01b 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1999--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1999--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 #include "engraver.hh"
 #include "protected-scm.hh"
index a5c6679bea491ab1f2ccfcfedd533adb99987531..1d2b5f94474697c4998bc0ab10cee7d903cda834 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 
index 67697136d2e36bd5d7ce714ace8c460ee06502ec..e4d6a9a853d2a29a67d5d2934bb7a8834c8c3598 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2001--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2001--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include <cstdio>
index 9108be2a2feea4a6fe75906609b64423412c0af5..b65131579fb6769dedec81720ebb525abe1b7d84 100644 (file)
@@ -1,7 +1,7 @@
 /*
   breathing_sign-engraver.cc -- implement Breathing_sign_engraver
 
-  (c) 1999--2007 Michael Krause
+  (c) 1999--2009 Michael Krause
 
   written for the GNU LilyPond music typesetter
 
index 7c605c4b1950c0012c3026a025d22b27d386b0e2..58c399bf708f0f6a567bc170e4976c75204ffd7e 100644 (file)
@@ -1,13 +1,13 @@
 /*
   breathing_sign.cc -- implement Breathing_sign
 
-  (c) 1999--2007 Michael Krause
+  (c) 1999--2009 Michael Krause
 
   written for the GNU LilyPond music typesetter
 
   TODO: --> see breathing-sign-engraver.cc
 
-  Extensions for ancient notation (c) 2003--2007 by Juergen Reuter
+  Extensions for ancient notation (c) 2003--2009 by Juergen Reuter
 */
 
 #include "breathing-sign.hh"
index 8b8f191006f90e4470d3c84831632fa7965b39d8..698c9e8a4a6f424ad49cf2a2892628982b37340e 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2005 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "change-iterator.hh"
index 649c1455be7fa2df1212fed7c8a5e9d6d481ae0a..f8858998a1d963669bc18d37f1ccc3d0aa8b6d43 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1998--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 1998--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
 #include "chord-name.hh"
index 3ffc591bd83f649988cef92f41f53138cca542c4..db784b8d2562b9cdd8b81d3b1a43dfd59320cfac 100644 (file)
@@ -1,9 +1,9 @@
 /*
-  chord-name.cc -- implement Chord_name
+  chord-name.cc -- implement Chord_label
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1999--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 1999--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
 #include "chord-name.hh"
@@ -33,7 +33,7 @@ Chord_name::after_line_breaking (SCM smob)
 }
 
 ADD_INTERFACE (Chord_name,
-              "A chord name.",
+              "A chord label (name or fretboard).",
 
               /* properties */        
               "begin-of-line-visible "
index 10a47074ca57e48b0a37cc03835abcac6fd62f68..140ab102373d266347d8775914e0c4382ccdaea4 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2000--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2000--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
                 Erik Sandberg <mandolaerik@gmail.com>
 */
 
index 71e206aa0322d4b403a8c5ed5b407d104e54f8c9..c5371a2c4d2c875a8bf907b190e39e25c56a0376 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2000--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2000--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
                 Erik Sandberg <mandolaerik@gmail.com>
 */
 
index 415fed1bf264ca92ee22ba40a2eed06ff2098318..52d094e243d2583410bc04778f7856337150c2c4 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>,
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>,
 
   Mats Bengtsson <matsb@s3.kth.se>
 */
index 166956052acb6e582b4e4c7871ec8a7d083f9b81..80e480751d66ea44ee87a9d9f5e6776c6b78f140 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "clef.hh"
index ea40ba22858dbd61f1048ce2d44365710934915c..bf25dce7b52408781f817fefd430bb2b141df53d 100644 (file)
@@ -1,7 +1,7 @@
 /*
   cluster-engraver.cc -- implement Cluster_engraver
 
-  (c) 2002--2007 Juergen Reuter <reuter@ipd.uka.de>
+  (c) 2002--2009 Juergen Reuter <reuter@ipd.uka.de>
 
   Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
index b6008fea6095d6d629f3b695756a918f54900599..d872fca6be82eebac7f4ddfbe92d3d2071924abe 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2002--2007 Juergen Reuter <reuter@ipd.uka.de>
+  (c) 2002--2009 Juergen Reuter <reuter@ipd.uka.de>
 
   Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
index 004cf8d78e42d82b3026fd2b75cdc3ca290579fc..5b1ec9cdc862eab842e27253f232e52261f515a0 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2003--2007 Juergen Reuter <reuter@ipd.uka.de>
+  (c) 2003--2009 Juergen Reuter <reuter@ipd.uka.de>
 */
 
 #include "coherent-ligature-engraver.hh"
index 717ad928b39ffac2df4924ac14c9cd919a68de60..a645f36f7efc70df4701790d5882172693b85de0 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "engraver.hh"
index 52a95d65ddd26d30e354804a535d6d321b6fd35d..134f84b73b80f1d49915016287364d76136efbc8 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "column-x-positions.hh"
index b116cb50b4bc9e41c6031fdc89fc330f4f6f83c9..b4c4afb0877a7a945e2c385d2eb6cb0fbee262be 100644 (file)
@@ -1,7 +1,7 @@
 /*
   completion-note-heads-engraver.cc -- Completion_heads_engraver
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include <cctype>
index 9a1d261159feb47519de5deffda780de0adabcb7..3a56aa47541190b7bd2f6e2669d5292f7e4d1fac 100644 (file)
@@ -4,7 +4,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2006--2007 Joe Neeman <joeneeman@gmail.com>
+  (c) 2006--2009 Joe Neeman <joeneeman@gmail.com>
 */
 
 #include "constrained-breaking.hh"
index a810159aa326d601cb75f950f9f7e4e3c0e0a3a3..0b95a8b952e487178621abc61ecd402c23aacecb 100644 (file)
@@ -1,9 +1,9 @@
 /*
-  translator-def.cc -- implement Context_def
+  context-def.cc -- implement Context_def
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2000--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2000--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 /* TODO: should junk this class an replace by
@@ -205,8 +205,24 @@ Context_def::get_default_child (SCM user_mod) const
   The ADDITIONAL_ACCEPTS parameter is a list of additional contexts that this
   specific context def (but not any of the child context defs) should accept.
 */
+vector<Context_def *>
+Context_def::path_to_acceptable_context (SCM type_sym,
+                                        Output_def *odef,
+                                        SCM additional_accepts) const
+{
+  set<const Context_def *> seen;
+  return internal_path_to_acceptable_context (type_sym, odef, additional_accepts, &seen);
+}
+
+/*
+The SEEN parameter is a set which keeps track of visited contexts, allowing
+contexts of the same type to be nested.
+*/
 vector<Context_def*>
-Context_def::path_to_acceptable_context (SCM type_sym, Output_def *odef, SCM additional_accepts) const
+Context_def::internal_path_to_acceptable_context (SCM type_sym,
+                                                 Output_def *odef,
+                                                 SCM additional_accepts,
+                                                 set<const Context_def *> *seen) const
 {
   assert (scm_is_symbol (type_sym));
 
@@ -230,20 +246,25 @@ Context_def::path_to_acceptable_context (SCM type_sym, Output_def *odef, SCM add
        }
     }
 
+  seen->insert (this);
   vsize best_depth = INT_MAX;
   for (vsize i = 0; i < accepteds.size (); i++)
     {
       Context_def *g = accepteds[i];
 
-      vector<Context_def*> result
-       = g->path_to_acceptable_context (type_sym, odef, SCM_EOL);
-      if (result.size () && result.size () < best_depth)
+      if (!seen->count (g))
        {
-         best_depth = result.size ();
-         result.insert (result.begin (), g);
-         best_result = result;
+         vector<Context_def*> result
+           = g->internal_path_to_acceptable_context (type_sym, odef, SCM_EOL, seen);
+         if (result.size () && result.size () < best_depth)
+           {
+             best_depth = result.size ();
+             result.insert (result.begin (), g);
+             best_result = result;
+           }
        }
     }
+  seen->erase (this);
 
   return best_result;
 }
index 065a74f2d42ab3fbdc35400c1c402ecad84debd4..42760fa59d4f3cb5a5b5abba22bf84ea5b0b660d 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1999--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1999--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "context-handle.hh"
index 492c846629348a4bbc90d9af47afa558ea342867..4645901b371afbae7d6e440e417dcef333bd4402 100644 (file)
@@ -4,7 +4,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2004--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2004--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "context.hh"
index d4289d7bcc69550d018517d618e256ef1030863e..9ce9a9baa0a2f88f3ffbd0d84efa32cbbb9da1a4 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1998--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 1998--2009 Jan Nieuwenhuizen <janneke@gnu.org>
   Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
index 38f5549141d0c86780ceb8e423bfb5963dde3f78..bb8851f5b2dddee7c2015413db53170033f8f0f0 100644 (file)
@@ -4,7 +4,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2002--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2002--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "music-wrapper-iterator.hh"
index c2c4a06f71a94093046da6a493066787538369e5..b2ada8fe7f19d3d71c1a565344e6ec3603e60f22 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2004--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2004--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "context.hh"
@@ -46,9 +46,8 @@ Context::check_removal ()
     }
 }
 
-Context::Context (Context const &src)
+Context::Context (Context const & /* src */)
 {
-  (void) src;
   assert (false);
 }
 
index d0546bf65e3ee2749f4a6e0c240afd8088f9ab2d..8709c87f0ae9ebe710a30678e4349c95c8530ec3 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2000--2007 Juergen Reuter <reuter@ipd.uka.de>,
+  (c) 2000--2009 Juergen Reuter <reuter@ipd.uka.de>,
   Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
@@ -65,9 +65,8 @@ Custos_engraver::start_translation_timestep ()
 }
 
 void
-Custos_engraver::acknowledge_bar (Grob_info info)
+Custos_engraver::acknowledge_bar (Grob_info /* info */)
 {
-  (void) info;
   custos_permitted_ = true;
 }
 
index 79a69144dd811bf76914625e2f822d771d830edf..56259d56a57d768f6e8be72d1828f6121894bf42 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2000--2007 Juergen Reuter <reuter@ipd.uka.de>
+  (c) 2000--2009 Juergen Reuter <reuter@ipd.uka.de>
 */
 
 /* TODO:
index e9dd6f8c5fd91591e2cf5d55036b3f2a93b351d8..f36c18f68717dc7c77ca31a5513fd8278ca5aa71 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "engraver.hh"
index d1290939365541a09e922d2f90fc3d4cba49721a..3eb0a89cb31c5e0f8cebcb6d90d3da58dba6fbec 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1998--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1998--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 
index c64b901f8fe2d416b4a3f5c8a7a36dbfea071d32..af20945c73709ce36f4ec5d9758053a94cf79968 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "lily-guile.hh"
index fdfe6d13419b49db9045c485320244a9cf54714f..98ea9b53f44a90d32cc3fb2f27cd5d4d584ff74b 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1999--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1999--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "directional-element-interface.hh"
index 5f0acb229d640caa60a8d3a292facc3468c5619d..b86232c48060cad5d6ab27c0c2698f78bbe1e74c 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2006--2007 Erik Sandberg  <mandolaerik@gmail.com>
+  (c) 2006--2009 Erik Sandberg  <mandolaerik@gmail.com>
 */
 
 #include "dispatcher.hh"
index 64062139b0d133ce598da861aefb9fc3b100ec96..29ad2ba3763c256f712ba5c7e442ed16d9d997e4 100644 (file)
@@ -68,7 +68,7 @@ Dispatcher::dispatch (SCM sev)
   SCM class_symbol = ev->get_property ("class");
   if (!scm_symbol_p (class_symbol))
     {
-      warning (_f ("Event class should be a symbol"));
+      warning (_ ("Event class should be a symbol"));
       return;
     }
 
index 76af05790e18a662642c3955c0121a47e305a9b4..7be2bbdc9009553623ebeac2c4e25a98a86343d2 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1998--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1998--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "rhythmic-head.hh"
index 249eb9b8cdf42c74ec5758806d63c8df6d4140c5..9536e97f308571e08da63943a0b997d6313ab8df 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "dot-column.hh"
index c4cf852d1a7a154d254b4d315745eeafbf5aae15..559f83be2e1a2ae9990e4ac636dba5ae1d8316c7 100644 (file)
@@ -5,9 +5,10 @@
   terms of the GNU General Public License.  LilyPond comes with NO
   WARRANTY.
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
+#include <cstdio>
 #include "dot-configuration.hh"
 #include "dot-formatting-problem.hh"
 #include "staff-symbol-referencer.hh"
@@ -48,7 +49,7 @@ Dot_configuration::print () const
   for (Dot_configuration::const_iterator i (begin ());
        i != end (); i++)
     printf ("%d, ", i->first);
-  printf ("} \n");
+  printf ("}\n");
 }
 
 /*
index 3dae389c4d440629d203c908fa7260a8bce59307..cd443a2e6c1876e9c92c83eec2060ec21bfa6bca 100644 (file)
@@ -4,7 +4,7 @@
 
    file of the GNU LilyPond music typesetter
    
-   (c) 2007 Han-Wen Nienhuys <hanwen@lilypond.org>
+   (c) 2007--2009 Han-Wen Nienhuys <hanwen@lilypond.org>
   
 */
 
index 83eef1c05dbdc8a29049c8dfce2a672afa1c0f9a..9d1af7779b31d157b7bc8cb1636fb7f061f028e4 100644 (file)
@@ -3,7 +3,7 @@
   
   source file of the GNU LilyPond music typesetter
   
-  (c) 2006--2007 Han-Wen Nienhuys <hanwen@lilypond.org>
+  (c) 2006--2009 Han-Wen Nienhuys <hanwen@lilypond.org>
   
 */
 
index b9b11df365866f465b86fa623d27ab081cc3aa47..f2a88b95e96f2ac14ede85be03279cf4bf36d02a 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "dots.hh"
index 630c718ed670bf6960bfda3e72a036e38d877d52..1309f448d3c18cc7e806f0c6b4d3df3e709021c4 100644 (file)
@@ -1,7 +1,7 @@
 /*
   drum-note-engraver.cc
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include <cctype>
index b31727ebc7d528508863f5c970ae87c2e4cd5557..ee445f5ad89aac3d14db3c510a1e47e2e8adc206 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1996--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 1996--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
 #include "performer.hh"
index d37147558112e5d64442d7a2fa44b7538341fe07..8ac8b2d6e3bb0dfcaf1f2498ef0f1b040e5ca284 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the LilyPond music typesetter
 
-  (c) 1997--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 1997--2009 Jan Nieuwenhuizen <janneke@gnu.org>
   Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
@@ -58,7 +58,7 @@ LY_DEFINE (ly_make_duration, "ly:make-duration",
   int dots = 0;
   if (dotcount != SCM_UNDEFINED)
     {
-      LY_ASSERT_TYPE (scm_is_integer, dotcount,2);
+      LY_ASSERT_TYPE (scm_is_integer, dotcount, 2);
       dots = scm_to_int (dotcount);
     }
 
@@ -134,5 +134,5 @@ LY_DEFINE (ly_duration_factor, "ly:duration-factor",
 {
   LY_ASSERT_SMOB (Duration, dur, 1);
   Rational r = unsmob_duration (dur)->factor ();
-  return scm_cons (scm_from_int (r.num ()), scm_from_int (r.den ()));
+  return scm_cons (scm_from_int64 (r.num ()), scm_from_int64 (r.den ()));
 }
index 7a02633100b030fdfed5cd82c615888ed8fda718..0b80b1ce1f33dba7ed7ec97910edfdd33913e5b7 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the LilyPond music typesetter
 
-  (c) 1997--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 1997--2009 Jan Nieuwenhuizen <janneke@gnu.org>
   Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
@@ -53,16 +53,16 @@ Duration::Duration (Rational r, bool scale)
       int p = r.num ();
       int q = r.den ();
       int k = intlog2 (q) - intlog2 (p);
-      if ((p << k) < q)
+      if (shift_left(p, k) < q)
        k++;
 
-      assert ((p << k) >= q && (p << (k-1)) < q);
+      assert (shift_left(p, k) >= q && shift_left(p, (k-1)) < q);
 
       /* If we were to write out log (p/q) in base 2, then the position of the
         first non-zero bit (ie. k in our notation) would be the durlog
         and the number of consecutive 1s after that bit would be the number of
         dots */
-      p = (p << k) - q;
+      p = shift_left(p, k) - q;
       dots_ = 0;
       while ((p *= 2) >= q)
        {
index 77feb08628aef71e3284371c409c57530583b1bd..ac5e0e4c21ac6b7eed653a1dff9bff6e66500b9c 100644 (file)
@@ -3,7 +3,7 @@
   
   source file of the GNU LilyPond music typesetter
   
-  (c) 2008 Han-Wen Nienhuys <hanwen@lilypond.org>
+  (c) 2008--2009 Han-Wen Nienhuys <hanwen@lilypond.org>
   
 */
 
index 94057f0bde25ebe7ca50288758c73233d4c4f003..b3da0e04a4c0f9e43c4144832f16cda50c0c414d 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "axis-group-interface.hh"
index e5a7f20069847c3f09b5127640ff7b8beb2b9ef1..2e0ccc094432c05b7681a82cbb191ce9cd686209 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2000--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 2000--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
 #include "performer.hh"
index c5d886147b59b5c5c3de32a12cf3fe6b0dde8e9e..8838efee2dc2b849164ad97cda0d2aae92e10b5f 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "note-head.hh"
index e16a8e9bbc5c4ef0873c4aba0a58792697f38fe2..4bb732efdc5e02bfbb0096572d63f3065d4b000c 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 
 */
 
index 54358b8fe5c18453129bf11f0d30c9b1c64648dd..44f0f538e5b78ad8d5a732f9f9b70868f4026883 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "context.hh"
index e9195564d79849deee822a51933b932948a720af..7724b1c395a5c68ec5b19398ce08b8bedf2d0cb4 100644 (file)
@@ -3,7 +3,7 @@
 
   Sourcefile of GNU LilyPond music type setter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "engraver.hh"
@@ -106,13 +106,19 @@ LY_DEFINE (ly_set_grob_creation_callback, "ly:set-grob-creation-callback",
 #endif
 
 Grob *
-Engraver::internal_make_grob (SCM symbol, SCM cause, char const *name, char const *file, int line, char const *fun)
+Engraver::internal_make_grob (SCM symbol,
+                             SCM cause,
+                             char const * /* name */,
+                             char const *file,
+                             int line,
+                             char const *fun)
 {
-  (void) file;
-  (void) fun;
-  (void) line;
-  (void) name;
-  
+#ifdef NDEBUG
+  (void)file;
+  (void)line;
+  (void)fun;
+#endif
+
   SCM props = updated_grob_properties (context (), symbol);
 
   Grob *grob = 0;
index 08ee9b620e410a38683df548fd667f1dd566b2e8..c678da031e71905b46056da957bafb3afb97f465 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "event-chord-iterator.hh"
index 89dbe0b6efdf9a8ea24086a46ede44f4d6ec45ed..c29761a5d89b5cc52f1f621a87402f80a88f05da 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "event-iterator.hh"
index 77a9f7c9520f50f1c2f46c80586d03a866fde169..f3f711de0f84d9efb31664bb04b43f3ce7f8086e 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1999--2007 Glen Prideaux <glenprideaux@iname.com>,
+  (c) 1999--2009 Glen Prideaux <glenprideaux@iname.com>,
   Han-Wen Nienhuys <hanwen@xs4all.nl>,
   Jan Nieuwenhuizen <janneke@gnu.org>
 */
index 389e4e96aca23fcc814d01f182b4967748337a29..141bc5cc5decb8629f947140a7a3e1e012c14bce 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 
 */
 
index 782574e5e6e97a491a977379d6f76a556e5199ec..f9ed3329f19a9a469de3798032145fe9f6141859 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 
 */
 
@@ -28,6 +28,9 @@ struct Figure_group
   
   SCM number_;
   SCM alteration_;
+  SCM augmented_;
+  SCM diminished_;
+  SCM augmented_slash_;
   
   Item *figure_item_; 
   Stream_event *current_event_;
@@ -40,6 +43,9 @@ struct Figure_group
     continuation_line_ = 0;
     number_ = SCM_EOL;
     alteration_ = SCM_EOL;
+    augmented_ = SCM_EOL;
+    diminished_ = SCM_EOL;
+    augmented_slash_ = SCM_EOL;
     group_ = 0;
     current_event_ = 0;
   }
@@ -51,7 +57,13 @@ struct Figure_group
       && ly_is_equal (number_,
                      current_event_->get_property ("figure"))
       && ly_is_equal (alteration_,
-                     current_event_->get_property ("alteration"));
+                     current_event_->get_property ("alteration"))
+      && ly_is_equal (augmented_,
+                     current_event_->get_property ("augmented"))
+      && ly_is_equal (diminished_,
+                     current_event_->get_property ("diminished"))
+      && ly_is_equal (augmented_slash_,
+                     current_event_->get_property ("augmented-slash"));
   }
 };
 
@@ -91,6 +103,9 @@ Figured_bass_engraver::derived_mark () const
     {
       scm_gc_mark (groups_[i].number_);
       scm_gc_mark (groups_[i].alteration_);
+      scm_gc_mark (groups_[i].augmented_);
+      scm_gc_mark (groups_[i].diminished_);
+      scm_gc_mark (groups_[i].augmented_slash_);
     }
 }
 
@@ -348,6 +363,9 @@ Figured_bass_engraver::process_music ()
        {
          groups_[i].number_ = SCM_BOOL_F;
          groups_[i].alteration_ = SCM_BOOL_F;
+         groups_[i].augmented_ = SCM_BOOL_F;
+         groups_[i].diminished_ = SCM_BOOL_F;
+         groups_[i].augmented_slash_ = SCM_BOOL_F;
        }
     }
 
@@ -451,6 +469,9 @@ Figured_bass_engraver::create_grobs ()
          
          group.number_ = fig;
          group.alteration_ = group.current_event_->get_property ("alteration");
+         group.augmented_ = group.current_event_->get_property ("augmented");
+         group.diminished_ = group.current_event_->get_property ("diminished");
+         group.augmented_slash_ = group.current_event_->get_property ("augmented-slash");
 
          SCM text = group.current_event_->get_property ("text");
          if (!Text_interface::is_markup (text)
index 8043640a2f5c91ed2d148bc1b861cf477dcc99bb..705bba24b791f0ee12f14f169ec8db0e57c56bde 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 
 */
 
@@ -115,9 +115,8 @@ Figured_bass_position_engraver::stop_translation_timestep ()
 }
 
 void
-Figured_bass_position_engraver::acknowledge_end_bass_figure_alignment (Grob_info info)
+Figured_bass_position_engraver::acknowledge_end_bass_figure_alignment (Grob_info /* info */)
 {
-  (void)info;
   stop_spanner ();
 }
 
index 61bad6042331796e36cd8bc1166a87979e74f6b8..63ae7eced0e46bcb293c2c4ac07ead7a61b32a13 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include <map>
index 0c9426f0956b8b36ea4d1f3e1a04f5e329510200..235fdd666dfea51a3bbfd82729d9b2670ec6ccf3 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1998--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1998--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "engraver.hh"
@@ -45,14 +45,13 @@ Fingering_engraver::listen_fingering (Stream_event *ev)
 
 IMPLEMENT_TRANSLATOR_LISTENER (Fingering_engraver, stroke_finger);
 void
-Fingering_engraver::listen_stroke_finger (Stream_event *ev)
+Fingering_engraver::listen_stroke_finger (Stream_event * /* ev */)
 {
   /*
     FIXME: should do something.
     
     This function is mainly here to shut up a warning
    */
-  (void)ev;
 }
 
 void
index 79f074cef8c3e090d10c5f67cfacbf9d6e2ffb27..65ad68fe43adeee11d88405a6420d59c3f682dd5 100644 (file)
@@ -3,11 +3,13 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 
 */
 
 #include "lily-guile.hh"
+#include "international.hh"
+#include "main.hh"
 #include "string-convert.hh"
 #include "warn.hh"
 
@@ -17,7 +19,7 @@ string
 display_fontset (FcFontSet *fs)
 {
   string retval;
-  
+
   int j;
   for (j = 0; j < fs->nfont; j++)
     {
@@ -27,21 +29,23 @@ display_fontset (FcFontSet *fs)
       font = FcNameUnparse (fs->fonts[j]);
       if (FcPatternGetString (fs->fonts[j], FC_FILE, 0, &str) == FcResultMatch)
        retval += String_convert::form_string ("FILE %s\n", str);
+      if (FcPatternGetString (fs->fonts[j], FC_INDEX, 0, &str) == FcResultMatch)
+       retval += String_convert::form_string ("INDEX %s\n", str);
       if (FcPatternGetString (fs->fonts[j], FC_FAMILY, 0, &str) == FcResultMatch)
        retval += String_convert::form_string ("family %s\n ", str);
       if (FcPatternGetString (fs->fonts[j],
                              "designsize", 0, &str) == FcResultMatch)
        retval += String_convert::form_string ("designsize %s\n ", str);
-      
-      retval += String_convert::form_string ("%s\n", (const char*) font);
+
+      retval += String_convert::form_string ("%s\n", (const char *)font);
       free (font);
     }
-  
+
   return retval;
 }
 
 string
-display_strlist (char const*what, FcStrList *slist)
+display_strlist (char const *what, FcStrList *slist)
 {
   string retval;
   while (FcChar8 *dir = FcStrListNext (slist))
@@ -56,19 +60,19 @@ display_config (FcConfig *fcc)
 {
   string retval;
   retval += display_strlist ("Config files", FcConfigGetConfigFiles (fcc));
-  retval +=  display_strlist ("Config dir", FcConfigGetConfigDirs (fcc));
-  retval +=  display_strlist ("Font dir", FcConfigGetFontDirs (fcc));
+  retval += display_strlist ("Config dir", FcConfigGetConfigDirs (fcc));
+  retval += display_strlist ("Font dir", FcConfigGetFontDirs (fcc));
   return retval;
 }
 
 string
 display_list (FcConfig *fcc)
 {
-  FcPattern*pat = FcPatternCreate ();
+  FcPattern *pat = FcPatternCreate ();
 
   FcObjectSet *os = 0;
   if (!os)
-    os = FcObjectSetBuild (FC_FAMILY, FC_STYLE, (char *) 0);
+    os = FcObjectSetBuild (FC_FAMILY, FC_STYLE, (char *)0);
 
   FcFontSet *fs = FcFontList (fcc, pat, os);
   FcObjectSetDestroy (os);
@@ -90,12 +94,12 @@ LY_DEFINE (ly_font_config_get_font_file, "ly:font-config-get-font-file", 1, 0, 0
           "Get the file for font @var{name}.")
 {
   LY_ASSERT_TYPE (scm_is_string, name, 1);
-  
-  FcPattern*pat = FcPatternCreate ();
+
+  FcPattern *pat = FcPatternCreate ();
   FcValue val;
-  
+
   val.type = FcTypeString;
-  val.u.s = (const FcChar8*)ly_scm2string (name).c_str (); // FC_SLANT_ITALIC;
+  val.u.s = (const FcChar8 *)ly_scm2string (name).c_str (); // FC_SLANT_ITALIC;
   FcPatternAdd (pat, FC_FAMILY, val, FcFalse);
 
   FcResult result;
@@ -103,17 +107,17 @@ LY_DEFINE (ly_font_config_get_font_file, "ly:font-config-get-font-file", 1, 0, 0
 
   FcConfigSubstitute (NULL, pat, FcMatchFont);
   FcDefaultSubstitute (pat);
-  
+
   pat = FcFontMatch (NULL, pat, &result);
   FcChar8 *str = 0;
   if (FcPatternGetString (pat, FC_FILE, 0, &str) == FcResultMatch)
-    scm_result = scm_from_locale_string ((char const*) str);
+    scm_result = scm_from_locale_string ((char const *)str);
 
   FcPatternDestroy (pat);
 
   return scm_result;
 }
-          
+       
 LY_DEFINE (ly_font_config_display_fonts, "ly:font-config-display-fonts", 0, 0, 0,
           (),
           "Dump a list of all fonts visible to FontConfig.")
@@ -122,8 +126,38 @@ LY_DEFINE (ly_font_config_display_fonts, "ly:font-config-display-fonts", 0, 0, 0
   str += display_config (NULL);
 
   progress_indication (str);
-  
+
   return SCM_UNSPECIFIED;
 }
 
+LY_DEFINE (ly_font_config_add_directory, "ly:font-config-add-directory", 1, 0, 0,
+          (SCM dir),
+          "Add directory @var{dir} to FontConfig.")
+{
+  LY_ASSERT_TYPE (scm_is_string, dir, 1);
+
+  string d = ly_scm2string (dir);
+
+  if (!FcConfigAppFontAddDir (0, (const FcChar8 *)d.c_str ()))
+    error (_f ("failed adding font directory: %s", d.c_str ()));
+  else if (be_verbose_global)
+    message (_f ("adding font directory: %s", d.c_str ()));
 
+  return SCM_UNSPECIFIED;
+}
+
+LY_DEFINE (ly_font_config_add_font, "ly:font-config-add-font", 1, 0, 0,
+          (SCM font),
+          "Add font @var{font} to FontConfig.")
+{
+  LY_ASSERT_TYPE (scm_is_string, font, 1);
+
+  string f = ly_scm2string (font);
+
+  if (!FcConfigAppFontAddFile (0, (const FcChar8 *)f.c_str ()))
+    error (_f ("failed adding font file: %s", f.c_str ()));
+  else if (be_verbose_global)
+    message (_f ("adding font file: %s", f.c_str ()));
+
+  return SCM_UNSPECIFIED;
+}
index 39ae3c2a76c7c64d69d7ceebc7d2e08319ad4416..7737068c2eb1c55f215db09d79cf71d782162261 100644 (file)
@@ -3,13 +3,14 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "config.hh"
 
 #if HAVE_FONTCONFIG
 
+#include <cstdio>
 #include <fontconfig/fontconfig.h>
 #include <sys/stat.h>
 
@@ -60,11 +61,11 @@ init_fontconfig ()
     }
   
   if (be_verbose_global)
-    progress_indication ("Building font database.\n");
+    message (_ ("Building font database."));
   FcConfigBuildFonts (font_config_global);
   FcConfigSetCurrent (font_config_global);
   if (be_verbose_global)
-    progress_indication ("\n");
+    message ("\n");
 
   if (cache_file
       && !is_file ((char*)cache_file))
index 16f51c82b344422fcfb2caec317c03e1627690d3..9bd109545839de586198784106bd333585c0cf9e 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2000--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2000--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "font-interface.hh"
index b06d419b99e4342e52d5ca8b7f4bdd55ba3cfbc2..bb4dbd401c74a93bd43895f138dd11c29248ecc5 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "font-metric.hh"
@@ -16,7 +16,13 @@ LY_DEFINE (ly_font_get_glyph, "ly:font-get-glyph",
           2, 0, 0,
           (SCM font, SCM name),
           "Return a stencil from @var{font} for the glyph named @var{name}."
-          " If the glyph is not available, return an empty stencil.")
+          "  If the glyph is not available, return an empty stencil.\n"
+          "\n"
+          "Note that this command can only be used to access glyphs from"
+          " fonts loaded with @code{ly:system-font-load}; currently, this"
+          " means either the Emmentaler or Aybabtu fonts, corresponding"
+          " to the font encodings @code{fetaMusic} and @code{fetaBraces},"
+          " respectively.")
 {
   Font_metric *fm = unsmob_metrics (font);
   LY_ASSERT_SMOB (Font_metric, font, 1);
@@ -32,7 +38,13 @@ LY_DEFINE (ly_get_glyph, "ly:get-glyph",
           2, 0, 0,
           (SCM font, SCM index),
           "Retrieve a stencil for the glyph numbered @var{index}"
-          " in @var{font}.")
+          " in @var{font}.\n"
+          "\n"
+          "Note that this command can only be used to access glyphs from"
+          " fonts loaded with @code{ly:system-font-load}; currently, this"
+          " means either the Emmentaler or Aybabtu fonts, corresponding"
+          " to the font encodings @code{fetaMusic} and @code{fetaBraces},"
+          " respectively.")
 {
   Font_metric *fm = unsmob_metrics (font);
   LY_ASSERT_SMOB (Font_metric, font, 1);
@@ -44,7 +56,13 @@ LY_DEFINE (ly_get_glyph, "ly:get-glyph",
 LY_DEFINE (ly_font_glyph_name_to_index, "ly:font-glyph-name-to-index",
           2, 0, 0,
           (SCM font, SCM name),
-          "Return the index for @var{name} in @var{font}.")
+          "Return the index for @var{name} in @var{font}.\n"
+          "\n"
+          "Note that this command can only be used to access glyphs from"
+          " fonts loaded with @code{ly:system-font-load}; currently, this"
+          " means either the Emmentaler or Aybabtu fonts, corresponding"
+          " to the font encodings @code{fetaMusic} and @code{fetaBraces},"
+          " respectively.")
 {
   Font_metric *fm = unsmob_metrics (font);
   LY_ASSERT_SMOB (Font_metric, font, 1);
@@ -56,7 +74,13 @@ LY_DEFINE (ly_font_glyph_name_to_index, "ly:font-glyph-name-to-index",
 LY_DEFINE (ly_font_index_to_charcode, "ly:font-index-to-charcode",
           2, 0, 0,
           (SCM font, SCM index),
-          "Return the character code for @var{index} in @var{font}.")
+          "Return the character code for @var{index} in @var{font}.\n"
+          "\n"
+          "Note that this command can only be used to access glyphs from"
+          " fonts loaded with @code{ly:system-font-load}; currently, this"
+          " means either the Emmentaler or Aybabtu fonts, corresponding"
+          " to the font encodings @code{fetaMusic} and @code{fetaBraces},"
+          " respectively.")
 {
   Font_metric *fm = unsmob_metrics (font);
   LY_ASSERT_SMOB (Font_metric, font, 1);
@@ -68,7 +92,13 @@ LY_DEFINE (ly_font_index_to_charcode, "ly:font-index-to-charcode",
 LY_DEFINE (ly_font_glyph_name_to_charcode, "ly:font-glyph-name-to-charcode",
           2, 0, 0,
           (SCM font, SCM name),
-          "Return the character code for glyph @var{name} in @var{font}.")
+          "Return the character code for glyph @var{name} in @var{font}.\n"
+          "\n"
+          "Note that this command can only be used to access glyphs from"
+          " fonts loaded with @code{ly:system-font-load}; currently, this"
+          " means either the Emmentaler or Aybabtu fonts, corresponding"
+          " to the font encodings @code{fetaMusic} and @code{fetaBraces},"
+          " respectively.")
 {
   Font_metric *fm = unsmob_metrics (font);
   LY_ASSERT_SMOB (Font_metric, font, 1);
index 215bf679812bee9da7f56682e67dd41cfd9b9bb9..12d8807831d5d57023ef905de5bdb501a8d46972 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1999--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1999--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 
   Mats Bengtsson <matsb@s3.kth.se> (the ugly TeX parsing in text_dimension)
 */
@@ -185,9 +185,8 @@ Font_metric::word_stencil (string str) const
 }
 
 Stencil
-Font_metric::text_stencil (string str) const
+Font_metric::text_stencil (string /* str */) const
 {
-  (void) str;
   programming_error("Cannot get a text stencil from this font");
   return Stencil (Box (), SCM_EOL);
 }
index a5445853f5d6a9bac61f6def8e275fad97590201..2de54e395581d652a43128e9b4eeb9f6711769fe 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2003--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2003--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 
@@ -109,8 +109,7 @@ select_encoded_font (Output_def *layout, SCM chain)
     }
 
 #if HAVE_PANGO_FT2
-  if (scm_is_string (name)
-      && is_pango_format_global)
+  if (scm_is_string (name))
     return select_pango_font (layout, chain);
   else
 #endif
index d554545e2d8bcf6f3108e3766ee9699df25d2b3d..b9dfb058ef1d8e18138313b643b5b70a3f243623 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2001--2007  Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2001--2009  Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "grob.hh"
index 5e4c377a751b5b188a1182bbb9dd1bd85d046647..8e5d435bc676776e1dcd2e92a45612eff0e20c40 100644 (file)
@@ -3,7 +3,7 @@
   
   source file of the GNU LilyPond music typesetter
   
-  (c) 2007 Han-Wen Nienhuys <hanwen@lilypond.org>
+  (c) 2007--2009 Han-Wen Nienhuys <hanwen@lilypond.org>
   
 */
 
index 18882125d64c48f9e1073ab81688a940240524c0..08d7733461d1c1d59e646fa5919559b5006a6d02 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2004--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2004--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "freetype.hh"
index f284161a801cb86f4cb73635b6fee4e6f331ac82..a441e59b942ba4cb6796afe1f4015774e20e12f2 100644 (file)
@@ -30,16 +30,27 @@ public:
   TRANSLATOR_DECLARATIONS (Fretboard_engraver);
 
 protected:
+  void stop_translation_timestep ();
+  void process_music ();
+  virtual void derived_mark() const;
   DECLARE_TRANSLATOR_LISTENER (note);
   DECLARE_TRANSLATOR_LISTENER (string_number);
-  void process_music ();
 
-  void stop_translation_timestep ();
+private:
+  SCM last_fret_notes_;
 };
 
+
+void
+Fretboard_engraver::derived_mark () const
+{
+  scm_gc_mark (last_fret_notes_);
+}
+
 Fretboard_engraver::Fretboard_engraver ()
 {
   fret_board_ = 0;
+  last_fret_notes_ = SCM_EOL;
 }
 
 IMPLEMENT_TRANSLATOR_LISTENER (Fretboard_engraver, note);
@@ -63,17 +74,22 @@ Fretboard_engraver::process_music ()
     return ;
 
   fret_board_ = make_item ("FretBoard", note_events_[0]->self_scm ());
-
+  SCM fret_notes = ly_cxx_vector_to_list (note_events_);
   SCM proc = get_property ("noteToFretFunction");
   if (ly_is_procedure (proc))
     {
-      scm_call_4 (proc,
-                 context ()->self_scm (),
-                 fret_board_->self_scm (),
-                              
-                 ly_cxx_vector_to_list (note_events_),
-                 ly_cxx_vector_to_list (tabstring_events_));
+     scm_call_4 (proc,
+                context ()->self_scm (),
+                fret_board_->self_scm (),
+                fret_notes,           
+                ly_cxx_vector_to_list (tabstring_events_));
     }
+  SCM changes = get_property("chordChanges");
+  if (to_boolean (changes) && scm_is_pair(last_fret_notes_)
+      && ly_is_equal (last_fret_notes_, fret_notes))
+    fret_board_->set_property ("begin-of-line-visible", SCM_BOOL_T);
+  
+  last_fret_notes_ = fret_notes;
 }
 
 void
@@ -93,6 +109,7 @@ ADD_TRANSLATOR (Fretboard_engraver,
                "FretBoard ",
 
                /* read */
+                "chordChanges "
                "stringTunings "
                "minimumFret "
                 "maximumFretStretch "
index 909eb1030b50a9ffe2a7f104f4ab40f1b2272cd2..87f6cd1019f9d19eb4b8b64bd08a589acf317881 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2004--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2004--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include <cstring>
index fd27481938d232f69edcfa5388d5a4c7e6b40597..8b5766387e0de808afe9c81d567c5cd9dfc16844 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1998--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 1998--2009 Jan Nieuwenhuizen <janneke@gnu.org>
   Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
@@ -345,10 +345,11 @@ LY_DEFINE (ly_stderr_redirect, "ly:stderr-redirect",
 }
 
 static SCM
-accumulate_symbol (void *closure, SCM key, SCM val, SCM result)
+accumulate_symbol (void * /* closure */,
+                  SCM key,
+                  SCM /* val */,
+                  SCM result)
 {
-  (void) closure;
-  (void) val;
   return scm_cons (key, result);
 }
 
index 66afed64034ed9ca01d54f9dc76bb0074d3b4971..488d22e2f0db69d44779503ead11cdd291ca5b95 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2000--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 2000--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
 #include "engraver.hh"
index 03c992303d7377885eada7c6625cfb4ac1dc9f16..d672178a54c3fda156dcc294ac348839596edcda 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "cpu-timer.hh"
index f31a1283afa7fe1e4862736bf07630d503ff4172..13d9738cd03d0da06e30d2671de4b231221d622f 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "global-context.hh"
index 8ce294bbe19955fd7dbc5899c964bcd4d659d6c4..adf15fd614dc5edce83b7b30995d0dc8a357152b 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1999--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1999--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "global-ctor.hh"
index 2b02020f62314526d4b93ddec861cf3f5fd91622..c377166d63198ba5fbb905f3e5ba2a032df55616 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2004--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2004--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "engraver.hh"
index 237ebc81eeecb9b69b4cf697af1d8c224d6b63f1..3c0e8bb3b44fbb4adfff21659675ce08794f9c37 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1999--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1999--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "grace-iterator.hh"
index f92d4ebb8c960548f99fb018cc2743f5c62d3109..3445eab175ea4ecce02b89c296ba7ac0d74f089e 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1999--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1999--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "music.hh"
index 69a42b2d5b727a73690bdd17eea6b8d3598b930d..a2a333c782cf88560ce9dd0f7579abba92dadec6 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2006--2007 Han-Wen <hanwen@lilypond.org>
+  (c) 2006--2009 Han-Wen <hanwen@lilypond.org>
 
 */
 
index 36cf898af86257bc4dd0c85d94ac1ba089c8b61d..fc2235bd6435ea8d03337c4e5c74e8401c9d92f5 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2003--2007 Juergen Reuter <reuter@ipd.uka.de>
+  (c) 2003--2009 Juergen Reuter <reuter@ipd.uka.de>
 */
 
 #include "gregorian-ligature-engraver.hh"
index c9b849eed9e0aabc39683bbf4e46ee2c1de4c130..4c84c89deeb9de97315b72a96a51ea039da33f52 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2003--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2003--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "gregorian-ligature.hh"
index 5bb0b097affa63ca4b96f5fa447cba1f568bbd06..fd47291580c2fef8f2569b1eed32763ee79706d6 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "grid-line-interface.hh"
index 1fd00e805205bb4f68e53bf0172736d9176ff0ea..15ce55a13debeca338534a4ba19a13c32bdd625a 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "engraver.hh"
index ab4b6f6279398ffa4896e351759b86f75040b78e..95899aa25a7afdfd3fef9d3bda5f2163a142ce58 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "engraver.hh"
index 49fac4c21ae76e5897de6815aecb30653821ba1a..62329e940ac84f40f7518125436a49a828712d71 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 
 */
 
index b89325bdedc55fffe1f39e6aee2d8c301731102e..9cf6e39e5f133a63fd4df150a78fab62196f809a 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "grob-array.hh"
index 45bacb9bb907285b6061817ff74606c0b9e35b2a..68ca9f38802add8d629bbe5c56177a047a2f591f 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "context.hh"
index 3438f7b3ec3455e0ff0ad0359614b980b3834ded..0472d5bef6794aeee6d76e19761725ebe41b7440 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "lily-guile.hh"
index f73d5dcd769c8fb1a4e2dc4149aaadf865050fac..74cd104d376930b24c3be8be9aa83cf0a9ade35d 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2002--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2002--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "grob-interface.hh"
index 31584e46b40be7249cfd7bd747cece150e631edd..eee3d7d7076e2201b511102e035138da01d7195b 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2001--2007  Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2001--2009  Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "context.hh"
index fefdcd1046b266bc1c7144640d7ed037e7ed58d7..9c6f23889577afd696bb2656a3ec89b063fec81c 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1998--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 1998--2009 Jan Nieuwenhuizen <janneke@gnu.org>
   Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
index 730faa780eafe2f6676a44b276f664db9a390a8f..4cdccf63cfbea50ccc490b14f99d5c35f2367ca3 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "grob.hh"
index 9479f17f41179cb3fbdc3cf6769fb533ffbbde9a..a3f41a856d3a6c90a01bfb8e8dfd11354b24b3bc 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "grob.hh"
@@ -703,7 +703,6 @@ Grob::stencil_width (SCM smob)
 }
 
 
-
 Grob *
 common_refpoint_of_list (SCM elist, Grob *common, Axis a)
 {
index 8f7cbd873778111ee29c087a61f8683db5dbb546..6c2422e76b9cbc7bf61d5ed16d70f95a2eef3cb5 100644 (file)
@@ -3,7 +3,7 @@
   
   source file of the GNU LilyPond music typesetter
   
-  (c) 2006--2007 Han-Wen Nienhuys <hanwen@lilypond.org>
+  (c) 2006--2009 Han-Wen Nienhuys <hanwen@lilypond.org>
   
 */
 
index 60366a0630fa7ee51dab702fe2444b6df12cb1f1..e5dea58244ae92033ca2d5c09cacf7dc9b224078 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "hairpin.hh"
index d9aa0ddfec7d565d6abcc9ebb09b8c0708bc59e8..9724d105fbfd1c84c68bb83744d9b20b9653289d 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "axis-group-engraver.hh"
index 1523ac676602d078a07b17533d35d632b61eb080..acd65da2f12bde372440c3add767be353425a724 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1998--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 1998--2009 Jan Nieuwenhuizen <janneke@gnu.org>
   Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
index 30c3ecad1bc7744d2f353ac475d771accf4fa065..52ec11e1d75a36b5a2e7a13c5d461b9faed9d81c 100644 (file)
@@ -4,7 +4,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2002--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2002--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "engraver.hh"
index 59357fbcb3b5eb972344624d8323f2a04b1480fb..c5594359a1a5415ba6b374c862dadc1f79ed9a64 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2002--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2002--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "horizontal-bracket.hh"       
index a9ea53054e7e4b96f356bdc95a8b9c3f411dd97e..3a1684491b208f711d75bd491b8cefdbedaaf983 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1999--2007 Glen Prideaux <glenprideaux@iname.com>,
+  (c) 1999--2009 Glen Prideaux <glenprideaux@iname.com>,
   Han-Wen Nienhuys <hanwen@xs4all.nl>,
   Jan Nieuwenhuizen <janneke@gnu.org>
 */
index 7f3fcbbdad85472f04ca539bcec73a916782b3cb..0b0460c1ffbd1b21c25d908d485d313d9076cfeb 100644 (file)
@@ -4,7 +4,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2002--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2002--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "identifier-smob.hh"
index 617b1ace32ad706392b45bf797048eafd57ef7a8..7d506373f32788674bf3c3fd8bc4f02720cdf33e 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "includable-lexer.hh"
@@ -13,6 +13,7 @@ using namespace std;
 
 #include "config.hh"
 
+#include "file-name.hh"
 #include "file-path.hh"
 #include "international.hh"
 #include "main.hh"
@@ -36,6 +37,8 @@ using namespace std;
   (yy_buffer_stack != 0 ? yy_buffer_stack[yy_buffer_stack_top] : 0)
 #endif
 
+extern bool relative_includes;
+
 Includable_lexer::Includable_lexer ()
 {
 #if HAVE_FLEXLEXER_YY_CURRENT_BUFFER
@@ -47,13 +50,17 @@ Includable_lexer::Includable_lexer ()
 void
 Includable_lexer::new_input (string name, Sources *sources)
 {
-  Source_file *file = sources->get_file (&name);
+  string current_dir = dir_name (main_input_name_);
+  if (relative_includes)
+    current_dir = include_stack_.size () ? dir_name (include_stack_.back ()->name_string ()) : "";
+
+  Source_file *file = sources->get_file (name, current_dir);
   if (!file)
     {
       string msg = _f ("cannot find file: `%s'", name);
       msg += "\n";
       msg += _f ("(search path: `%s')",
-                sources->path_->to_string ().c_str ());
+                (current_dir.length () ? (current_dir + PATHSEP) : "") + sources->path_->to_string ().c_str ());
       LexerError (msg.c_str ());
       return;
     }
@@ -64,7 +71,7 @@ Includable_lexer::new_input (string name, Sources *sources)
     state_stack_.push_back (yy_current_buffer);
 
   if (be_verbose_global)
-    progress_indication (string ("[") + name);
+    progress_indication (string ("[") + file->name_string ());
 
   include_stack_.push_back (file);
 
index 93951236cfb361f8e15962ebb7bfe0ea3c2df1f0..0764fb7f346f4bdbf326c5b4a658608dfcc0470b 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2002--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2002--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef ACCIDENTAL_INTERFACE_HH
index 99281a5b14b1dbbe2d0a415b05f892e21c368663..d5dd0c7c828eb925c954cc05ed31eb4fd685aca6 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2002--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2002--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef ACCIDENTAL_PLACEMENT_HH
index 91fd53da67b82b8f222aa36fbc9c09942b55752b..149ef321c1b2f449270621b9c4bbcc0802e9279c 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2000--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2000--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef ALIGN_INTERFACE_HH
index 073b839d9a1ff874cd9b0f880a665468f82f9d32..184e4751d528bf2a06a646a8d22142f116ceea9c 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1998--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1998--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef ALL_FONTS_HH
@@ -20,7 +20,8 @@
 
 
 /*
-   Interface to all .afm files living in the filesystem.
+   Interface to all fonts (both system fonts and fonts loaded
+   via Pango).
 */
 class All_font_metrics
 {
@@ -38,7 +39,9 @@ class All_font_metrics
   All_font_metrics (All_font_metrics const &);
 public:
 
-  Index_to_charcode_map const *get_index_to_charcode_map (string filename, FT_Face face);
+  Index_to_charcode_map const *get_index_to_charcode_map (string filename,
+                                                         int face_index,
+                                                         FT_Face face);
 
   All_font_metrics (string search_path);
   ~All_font_metrics ();
@@ -55,4 +58,3 @@ extern All_font_metrics *all_fonts_global;
 SCM ly_reset_all_fonts ();
 
 #endif /* ALL_FONTS_HH */
-
index ba46111a60aae17454a9a1abdc79d515b85eff4e..dc8d3c9bfd6fc7c01d291f4b43b5300f596b1772 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2000--2007 Juergen Reuter <reuter@ipd.uka.de>
+  (c) 2000--2009 Juergen Reuter <reuter@ipd.uka.de>
 */
 
 #ifndef AMBITUS_HH
index 373045bfca740cbf80023aad6c64a5a55e4e59f6..a7a01dde6c99a5e394090c5fd8e616ab815cecc3 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2000--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 2000--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
 #ifndef ARPEGGIO_HH
index 0b10c8bd4d479faf633458a7407db7dd0014c4ee..60cc824aa34365648578acf30256ade5369a4b3b 100644 (file)
@@ -1,7 +1,7 @@
 /*
   audio-column.hh -- declare Audio_column
 
-  (c) 1997--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 1997--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
 #ifndef AUDIO_COLUMN_HH
index 852867005289fb086bea9a751ce1806446b6260d..6222db2587767926908f986f607c7957d2782156 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1999--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1999--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef AUDIO_ITEM_INFO_HH
index dac7bddd549513ee2b5c13a0842083d141aea767..54d6c7db72d1a0965be3a98a9187a19a52afb250 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef AUDIO_ELEMENT_HH
index 3230e5ce4839bac468aea840ccf05e02076ad5b9..0fc59fd960bb456535010eb55072b84be359753b 100644 (file)
@@ -1,7 +1,7 @@
 /*
   audio-item.hh -- declare Audio_items
 
-  (c) 1996--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 1996--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
 #ifndef AUDIO_ITEM_HH
index cdce0298fe7122cca7e774e0ae38f47bc3966b4e..d3e29e80bc72abf9a6b5a38f4377475d9cc041d2 100644 (file)
@@ -1,7 +1,7 @@
 /*
   audio-staff.hh -- declare Audio_staff
 
-  (c) 1996--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 1996--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
 #ifndef AUDIO_STAFF_HH
index 73388b8d2d86444480d3b4cab2843e72d573ce5a..fa9e3c91d994e4f04ccd31d4a4b9a88c400748a3 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef AXIS_GROUP_ENGRAVER_HH
index f91771597ef65fc331477a0fb662f19aa0988353..6dd2e7b95c27ae404303030e9ff2e67b4b667ee1 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2000--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2000--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef AXIS_GROUP_INTERFACE_HH
index ea9833bc342fa1262a2ddb6436c4522c89d6cfa8..51e6f9c005c6ca5a5256e1308d9fc346af61bfae 100644 (file)
@@ -1,7 +1,7 @@
 /*
   bar.hh -- part of GNU LilyPond
 
-  (c) 1996--2007 Han-Wen Nienhuys
+  (c) 1996--2009 Han-Wen Nienhuys
 */
 
 #ifndef BAR_HH
@@ -16,6 +16,7 @@ public:
   DECLARE_GROB_INTERFACE();
 
   static Stencil dashed_bar_line (Grob *me, Real h, Real thick);
+  static Stencil tick_bar_line (Grob *me, Real h, bool rounded);
   static Stencil compound_barline (Grob *, string, Real height, bool rounded);
   static Stencil simple_barline (Grob *, Real wid, Real height, bool rounded);
   static Interval bar_y_extent (Grob *, Grob *);
index 72b2f1957fb65eecf677434f5e27fdfd98b273f1..fc62f6525e750866517e0ed3c2e806111af6cd9e 100644 (file)
@@ -1,7 +1,7 @@
 /*
   bar.hh -- part of GNU LilyPond
 
-  (c) 1996--2007 Han-Wen Nienhuys
+  (c) 1996--2009 Han-Wen Nienhuys
 */
 
 #ifndef BAR_HH
index 3b61792aebfde302494e8d9df480313e69c0a59d..89a11a263b8cc326b6fb180d33efdd9cbcf1e337 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the LilyPond music typesetter
 
-  (c) 1996--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1996--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
   Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
index df21ccc93bcf2c44f32e1795d31a6a32c35f28e7..36c63c75022a4562f987bafe0f8833cb55b63e31 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1999--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1999--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef BEAMING_PATTERN_HH
index 98886105ee2e959699490f0455d13b1b69f08242..a04d449725ab17f346df4d20daa5286df7de0d4c 100644 (file)
@@ -1,7 +1,7 @@
 /*
   bezier.hh -- declare Bezier and Bezier_bow
 
-  (c) 1998--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 1998--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
 #ifndef BEZIER_HH
index cf478432388fea996d8a35224815a64d1a56de57..d7ae2278010844495a8474497e9540ab2ae78339 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef BOOK_HH
@@ -24,6 +24,7 @@ public:
   SCM header_;
   Output_def *paper_;
   SCM scores_;
+  SCM bookparts_;
   SCM input_location_;
 
   Book (Book const &);
@@ -31,9 +32,24 @@ public:
   VIRTUAL_COPY_CONSTRUCTOR(Book, Book);
   Book ();
   void add_score (SCM);
+  void add_bookpart (SCM);
   Paper_book *process (Output_def *def_paper,
                       Output_def *def_layout);
+  Paper_book *process (Output_def *default_paper,
+                      Output_def *default_layout,
+                      Paper_book *parent_part);
   void set_keys ();
+
+protected:
+  void set_parent (Book *parent);
+  void add_scores_to_bookpart ();
+  bool error_found ();
+  void process_score (SCM score,
+                     Paper_book *output_paper_book,
+                     Output_def *layout);
+  void process_bookparts (Paper_book *output_paper_book,
+                         Output_def *paper,
+                         Output_def *layout);
 };
 
 DECLARE_UNSMOB (Book, book);
index 9ac29c7ae015bcfbff7c3a2f11c2c404d03cd9e8..128d4e2b12e8be4be9d55264937fce4e37fe4c1a 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef BREAK_ALIGN_INTERFACE_HH
index 449740d41810efce03345fbd26fe6443b301c95f..271de504f92db754aca714d6feda14aa6ebbfe5f 100644 (file)
@@ -1,7 +1,7 @@
 /*
   breathing-sign.hh
 
-  Copyright (c) 1999--2007 Michael Krause
+  Copyright (c) 1999--2009 Michael Krause
 
   written for the GNU LilyPond music typesetter
 */
index 71aa7cb8d3abb2b4b98e00a8501c3523b6f72c7b..c7ecfda15cc3850bc5a9731927a5cb4772c45dee 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2005 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef CHANGE_ITERATOR_HH
index 2123ffa442334f76d3040d82182f95454841934a..bf4c6b62bf690dfebec5ccdff9d37746f68a2112 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1999--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 1999--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
 #ifndef CHORD_NAME_HH
index c6a40afc0e3eff961958670032eabc2632b55d4c..fe89ed661649b90015595608aa5bcdd15504b009 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2000--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2000--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef CHORD_TREMOLO_ITERATOR_HH
index bc6550fe4e92b9129fc3c61313de2cbd93f5b80a..038d21f7aa0c3acf0f8e36f8153a7301d6c66c89 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2000--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2000--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef CLEF_HH
index e15d0024145bf4fbab53b253e4c41bc70554fdf7..a116bf0a9e3603d375793acd9d3c806997c878d3 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2002--2007 Juergen Reuter <reuter@ipd.uka.de>
+  (c) 2002--2009 Juergen Reuter <reuter@ipd.uka.de>
 */
 
 #ifndef CLUSTER_HH
index 4009f5704149850376044c44356cb2fbd07c821d..bacf575e43b766442dd8656238f9413ae9a2919c 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2003--2007 Juergen Reuter <reuter@ipd.uka.de>
+  (c) 2003--2009 Juergen Reuter <reuter@ipd.uka.de>
 */
 #ifndef COHERENT_LIGATURE_ENGRAVER_HH
 #define COHERENT_LIGATURE_ENGRAVER_HH
index a562235f9eb301718288802763aa4cc5d59265bf..f95b865d7ba59857e08c0406274df704cb546692 100644 (file)
@@ -1,7 +1,7 @@
 /*
   column-x-positions.hh -- part of GNU LilyPond
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef COLUMN_X_POSITIONS_HH
index 85d6df2b1a584c693ec817394cbe4e93f3775963..48771545e4c2dfe644a8a23e74caaf3ae6c2f46f 100644 (file)
@@ -4,7 +4,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2006--2007 Joe Neeman <joeneeman@gmail.com>
+  (c) 2006--2009 Joe Neeman <joeneeman@gmail.com>
 */
 
 #ifndef CONSTRAINED_BREAKING_HH
index ea81eb1295be8f55aab47b8fa6c7ada6e3b93dd0..b5ea240b70afa62595f7de88eef724a1a619a9b3 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2000--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2000--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef CONTEXT_DEF_HH
@@ -14,6 +14,7 @@
 #include "smobs.hh"
 #include "input.hh"
 #include "virtual-methods.hh"
+#include <set>
 
 
 /*
@@ -49,7 +50,12 @@ public:
   VIRTUAL_COPY_CONSTRUCTOR(Context_def, Context_def);
 
   vector<Context_def*> path_to_acceptable_context (SCM type_string,
-                                                  Output_def *, SCM) const;
+                                                  Output_def *,
+                                                  SCM) const;
+  vector<Context_def*> internal_path_to_acceptable_context (SCM type_string,
+                                                           Output_def *,
+                                                           SCM,
+                                                           set<const Context_def *> *seen) const;
   Context *instantiate (SCM extra_ops);
 
   SCM to_alist () const;
index 98898ccb5043abbe4f18f2fea639997c4b6732c6..91cc7222708755dc100e31adef7cab4a99b50bc5 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1999--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1999--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef CONTEXT_HANDLE_HH
index 9b58854dc8034d009d477e655b0a133233e0517b..31c436a9367c9db1c448dbc5f9b12ad78f8cd51b 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2004--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2004--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef CONTEXT_HH
index 2bb73fbe679c4670e19afed2881bcc4752b9965a..c6295f6ff1fa6e41830a0d955304e7e2840d275e 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2000--2007 Juergen Reuter <reuter@ipd.uka.de>
+  (c) 2000--2009 Juergen Reuter <reuter@ipd.uka.de>
 */
 
 #ifndef CUSTOS_HH
index dc5c249d790b544dab69420ec77ed920fa1a67bb..102139ac9bd7f10835d769dbb3a214e8c4ce55f9 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1998--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1998--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef DIMENSION_CACHE_HH
index 7fd4169559f24969d3539988dfd88fcd81ba96fb..6e55104c2a68073bf350d28c11fd9effba8461a3 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1999--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1999--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef DIRECTIONAL_ELEMENT_HH
index 8ef01bed2b3a11aad240e28b17d98f75bc3a14cd..ade16d25660c9d7c0c37cdc9b8495155392f64a8 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef DOT_COLUMN_HH
index a7ab09fab3fc0ea3b48402f4211a19e9dd2eef6f..3b01eb3c706448b24d15174832de54d6cb2c971d 100644 (file)
@@ -5,7 +5,7 @@
   terms of the GNU General Public License.  LilyPond comes with NO
   WARRANTY.
 
-  (c) 2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2007--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef DOT_CONFIGURATION_HH
index cac34cbaf32a4ec8babee63a5b037686d4f8e5dc..8d02561bafdac4f271edf340dd49a35d17b33910 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef DOTS_HH
index 0914e754e3171ae1e28f958d74558159eb4577b2..69cbba5e9df8b7e3db2597312253722c01fe071a 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the LilyPond music typesetter
 
-  (c) 1997--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 1997--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
 #ifndef DURATION_HH
index 8e67651af5dc9ec1d33ec753c4131a1e46dca8cd..99a59d17caf7038b6d5c3ca77934d29003e651f6 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef ENGRAVER_GROUP_HH
index 5f74491e949fbe75be5e22a5813f91f371af5ca1..fe9482c7e0bfd98c4080dde37ba52b9311505f87 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1996--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1996--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef ENGRAVER_HH
index 307f5ba0c61cf546ddcd3ae0b2b4a77135f05852..e7d9bc3374bde359548808bfcfd4c5fa9bc4d9be 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef EVENT_CHORD_ITERATOR_HH
index 2b8368b9849075857f48716c593f0a52cedbd73a..9e6570c7be15b6706b48fa92c4919b13120f287e 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2006--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2006--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
           Erik Sandberg <mandolaerik@gmail.com>
 */
 
index 74d96a28bf9253fc7bba91eebe72331f78a8a8db..78034c785ece52f1def5a4871c9dab1040d5bd45 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef FILE_NAME_MAP_HH
index ec8f680f32a28f46743c431437194a39714d9ec0..de502aa2eb1dedee7641e009528678ed66f8bd01 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2000--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2000--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef FONT_INTERFACE_HH
index 793c0e14a9e065ecb9cd543c05c41585b5fc5baf..8346b4378a8c459a0b861a561c780552e25ce40e 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1999--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1999--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef FONT_METRIC_HH
@@ -77,8 +77,6 @@ public:
 
 DECLARE_UNSMOB (Font_metric, metrics);
 
-Box lookup_tex_text_dimension (Font_metric *font, SCM text);
-
 char *pfb2pfa (Byte const *pfb, int length);
 
 #endif /* FONT_METRIC_HH */
index 1b6dad26e8962ff795b4b47758a7da701a11fe35..310e5893cdfd9c1e9c7c756b0018f9097da4895f 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2004--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2004--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef FREETYPE_HH
@@ -17,9 +17,6 @@
 void init_freetype ();
 extern FT_Library freetype2_library;
 
-FT_Face open_ft_face (string str);
-
 string freetype_error_string (int code);
 
 #endif /* FREETYPE_HH */
-
index 2fcbfca2982cc7ff770d9a862dd36fe43efa122a..f291284d91f995e0b940b8377b2496bfa135cfec 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef GLOBAL_CONTEXT_HH
index 7b10975331a167956880bb6015b5215a4f405606..1355ad006d3797a33ea86b0bd43f6b83f2adb9de 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1999--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1999--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef GLOBAL_CTOR_HH
index 93491d163dd09ce4412b7204a9d7e3e049bd8711..5f27d3f9d5d3117e874d840ea08936155914e89f 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2004--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2004--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef GRACE_FIXUP_HH
index f4e64de693597fb0bda67bb79991892125fd5940..fd31117850632be524c394eb206934ea4227ee9f 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1999--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1999--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef NEWGRACE_ITERATOR_HH
index 1a6ef77133980dd8c1003c9d759967d530709e83..538d5aa17f494b119312be8460735cc52debfc1b 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2003--2007 Juergen Reuter <reuter@ipd.uka.de>
+  (c) 2003--2009 Juergen Reuter <reuter@ipd.uka.de>
 */
 #ifndef GREGORIAN_LIGATURE_ENGRAVER_HH
 #define GREGORIAN_LIGATURE_ENGRAVER_HH
index b874311c256425221f047869ad119ee3bfd7a9d2..e84ba674097abd84ead638216a1c782c2cd92747 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2003--2007 Juergen Reuter <reuter@ipd.uka.de>
+  (c) 2003--2009 Juergen Reuter <reuter@ipd.uka.de>
 */
 
 #ifndef GREGORIAN_LIGATURE_HH
index c0b8753379841f22ea19da7cdbf819688ac4c351..9fd1caddd53d3d3a8da5f177551592cd25670837 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef GRID_LINE_INTERFACE_HH
index f0eb32d01d44df6e6577402c0c630a323af0bf6b..f94f2d33cf40f1ae4b730d154db74801866283a0 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef GROB_ARRAY_HH
index 01ae110b376fb2642804bc70951138fc8a3b4aee..30c8f558bf5fdc61f935c68c6af9c044052a0fbb 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef STAFFELEMINFO_HH
index 57ee505717e3cfe6330db9abc00dd1cafb0c11ce..fcb67ceeaa9b6ed241a1e8ab7fe7e1e84f25be66 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2002--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2002--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef INTERFACE_HH
index f0191e3e446570b1db9c4ebd55b8f9756c4e444e..66cc0530b73a0221f8f74cb93489bea5c80e0737 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the LilyPond music typesetter
 
-  (c) 1996--2007 Han-Wen Nienhuys
+  (c) 1996--2009 Han-Wen Nienhuys
 */
 
 #ifndef GROB_HH
index 7a428ee150ec2363f7ea1b3774eba55a61e809b1..c3ef881105b79acdb5d7394b9b90a0738eb309c7 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1999--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1999--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef GROUP_INTERFACE_HH
index b9c538074be4141379f801c289b215983608676c..d59934335cbfb425094c398973b166d313013a83 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef HAIRPIN_HH
index 7a5ddd6a7c66a0ae0dae335aeb362285e8fd5993..968257b4c643820129722e2f91e5800562ec1811 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1998--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 1998--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
 #ifndef HARA_KIRI_VERTICAL_GROUP_SPANNER_HH
index 283ec637ea5dc73197d1079112c010a01cad9f22..eb2a579c4028fd2abecb66f18e3ef5c6a76d9e25 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef HORIZONTAL_BRACKET_HH
index 43260be8f44cd2db28d74520493c27b1c657fbbb..783025e3e66261cd5e31215e4fa8a25e3b3fadbe 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2002--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2002--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef IDENTIFIER_SMOB_HH
index 768e759b54f1deb5be4646f3023fb119c80854e3..150c4d5c626c28007d2d559687c99379c7e7a791 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef INCLUDABLE_LEXER_HH
@@ -36,6 +36,7 @@ public:
 
   Includable_lexer ();
   ~Includable_lexer ();
+  string main_input_name_;
 
   /// store dependencies for Makefile stuff.
   vector<string> file_name_strings_;
index 772c0549efb90aaa0864e56323769397fcff7e5a..94e00527a22395a62d3fb3391f7982f29cf849f5 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef INPUT_HH
index ea0af2eb53de023dfc8c3a7b93f67d731d7dcbd7..bfaa671ed516494bd01bf747fbdc604822414847 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 #ifndef ITEM_HH
 #define ITEM_HH
index 3a8a287f7ce418130c13baa2f355e36a1dd0bc34..ca359ead5736915cd445d53b21c05d584c560fe0 100644 (file)
@@ -1,7 +1,7 @@
 /*
   keyword.hh -- part of GNU LilyPond
 
-  (c) 1996--2007 Han-Wen Nienhuys
+  (c) 1996--2009 Han-Wen Nienhuys
 */
 
 #ifndef KEYWORD_HH
diff --git a/lily/include/kpath.hh b/lily/include/kpath.hh
deleted file mode 100644 (file)
index 0e7c64d..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
-  kpath.hh -- declare kpathsea functions.
-
-  source file of the GNU LilyPond music typesetter
-
-  (c) 2000--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
-*/
-
-#ifndef KPATH_HH
-#define KPATH_HH
-
-#include "std-string.hh"
-
-string kpathsea_find_tfm (char const *name);
-
-#endif /* KPATH_HH */
-
index 9fcbee19fbe89f3df05b8264a9d9d942b268946e..aa8bd84e46a6c97eb1bc7a0f91326a192b7193b2 100644 (file)
@@ -1,7 +1,7 @@
 /*
   leastsquare.hh -- part of GNU LilyPond
 
-  (c) 1996--2007 Han-Wen Nienhuys
+  (c) 1996--2009 Han-Wen Nienhuys
 */
 
 #ifndef LEASTSQUARE_HH
index ccdcb452991376e538f4e7537a10d86c6daf7470..92cc15940eade975be5193a1a15b09f0ba92d211 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2002--2007 Juergen Reuter <reuter@ipd.uka.de>
+  (c) 2002--2009 Juergen Reuter <reuter@ipd.uka.de>
 */
 
 #ifndef LIGATURE_ENGRAVER_HH
index 86d2517dee175fac6e1e8f7abd51d853900a3acd..fa5b8a08e4b4c9963c750b3d156b03dc6beecac6 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef LILY_GUILE_MACROS_HH
index 30288179980b59882737786f655b922c08d1948f..797d22d0a58550a50c86b7274fcccc1914fe4a6a 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1998--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 1998--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
 #ifndef LILY_GUILE_HH
@@ -151,7 +151,6 @@ SCM ly_unique (SCM lst);
 SCM ly_list_qsort_uniq_x (SCM lst);
 
 SCM ly_output_formats ();
-SCM ly_kpathsea_find_file (SCM);
 
 /*
   snarfing.
index bfa36a5a83d0c5c33aae7c34bc549ed5419e37d5..4062e3410fe1a1e3e8d2c6f883140fe83f87e934 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef MY_LILY_LEXER_HH
@@ -38,7 +38,6 @@ private:
   int hidden_state_;
 public:
   vector<int> extra_token_types_;
-  string main_input_name_;
   void *lexval;
   Input *lexloc;
   bool is_main_input_;
index ed4673de78e6a3be16ac8f1a1a2f82aabc0c6af2..79d586f1e942942ce9139d1a5e8d3e5f7fb965e6 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef LILY_PARSER_HH
@@ -74,6 +74,10 @@ SCM ly_parser_scorify (SCM, SCM);
 Output_def *get_layout (Lily_parser *parser);
 Output_def *get_midi (Lily_parser *parser);
 Output_def *get_paper (Lily_parser *parser);
+void init_papers (Lily_parser *parser);
+void push_paper (Lily_parser *parser, Output_def *paper);
+void pop_paper (Lily_parser *parser);
+void set_paper (Lily_parser *parser, Output_def *paper);
 SCM get_header (Lily_parser *parser);
 
 #endif /* LILY_PARSER_HH */
index e9a82a756b394d70952e356fb5d12a2ff2f95098..40df1bfab3461ff7a74a93115f224ee6ee99b2cc 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef LILY_PROTO_HH
@@ -170,7 +170,6 @@ class Swallow_engraver;
 class Swallow_performer;
 class System;
 class Tempo_performer;
-class Tex_font_metric;
 class Tie;
 class Tie_details;
 class Tie_configuration;
index 7a97fbba592e0ee75c2e14c2ac9727314fd19678..c6c93fce8f2d20b066e5d7a025ae5b6ae6e61eca 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1999--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 1999--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
 #ifndef LILY_VERSION_HH
index 32ba91198d1f7db26173bd9adb607cffab4ed994..3fd0f98fed21055d8e0b568df59be52e05c927dc 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1998--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 1998--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
 #ifndef LILYPOND_VERSION_HH
index fa94b9f71185fc5813bce3229b8f0e09e64ede18..1103a6121e91cadb880392f795aba2a2be53bb4d 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2004--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2004--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef LINE_INTERFACE_HH
index 509dece604d31f96cef2345cd141615e0c836461..8f0844df71efb7a09f875171e77972034a84e9ee 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
   Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
index abb4b200405cee65221ea27a28fd949eb2139674..8b76533f54aaecf9121ddfc0ca7ed12814f81c7c 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2002--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2002--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 #ifndef LY_MODULE_HH
 #define LY_MODULE_HH
index af8035644c1fcbc762a47ab2a91d546c48a386c4..1cbd6ae389e1aae198bcea623489f0427abe29fc 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1999--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1999--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef LY_SMOBS_ICC
index d95060be9a45c1b1a95311b66fdf18bc67d38f09..121774446e807c98589ac83bea9e7e86783819d4 100644 (file)
@@ -2,7 +2,7 @@
 /*
   extender-spanner.hh -- part of GNU LilyPond
 
-  (c) 1998--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 1998--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
 #ifndef EXTENDER_SPANNER_HH
index b6ac1dce827e7226c75a5c83a155ec09c5bfcdb5..1551382e66fb27a5df9ae840daffa8dfdd5c4e37 100644 (file)
@@ -1,7 +1,7 @@
 /*
   hyphen-spanner.hh -- part of GNU LilyPond
 
-  (c) 1999--2007 Glen Prideaux <glenprideaux@iname.com>
+  (c) 1999--2009 Glen Prideaux <glenprideaux@iname.com>
 */
 
 #ifndef HYPHEN_SPANNER_HH
index fb1d94b5934ca8f42df965c2aadd2add6ecb5e95..8b0df589a4cbd92766ab028f27a2f8a8fab2ec77 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 #ifndef MAIN_HH
 #define MAIN_HH
@@ -33,8 +33,6 @@ extern string output_name_global;
 extern bool be_safe_global;
 extern bool be_verbose_global;
 extern bool do_internal_type_checking_global;
-extern bool is_pango_format_global;
-extern bool is_TeX_format_global;
 extern bool point_and_click_global;
 extern string lilypond_datadir;
 extern bool use_object_keys;
index 443c06b91cb2ed7474f99a395d66e2c50fcd7aec..a595ceece428091d54b9e45b380b3d18ad550eac 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2002--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2002--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef MEASURE_GROUPING_SPANNER_HH
index 7f20f8a343946136c7ac1156ff5e8c0c3ad86bb7..ba51c486eaf1043d4e2bd269e33e1fa69927c38d 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 
 */
 
index 2ef7f511b9f5564a7fe12ff41cddc429e16e48b6..fdc4e30651f05c2fcb3331448ba07042f9f41708 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2002--2007 Juergen Reuter <reuter@ipd.uka.de>,
+  (c) 2002--2009 Juergen Reuter <reuter@ipd.uka.de>,
   Pal Benko <benkop@freestart.hu>
 */
 
index 64071d913ceaa059b756565045745cddd06ddebb..00cfb156755fba04b82a39cd6ebe75e1c0c39207 100644 (file)
@@ -3,7 +3,7 @@
   
   source file of the GNU LilyPond music typesetter
   
-  (c) 2007 Han-Wen Nienhuys <hanwen@lilypond.org>
+  (c) 2007--2009 Han-Wen Nienhuys <hanwen@lilypond.org>
   
 */
 
index a3cea87e619c7f2c591e7e73ed8d25428cfbe930..15ca2f0292abc82a49674ad6e048522022ae806e 100644 (file)
@@ -1,7 +1,7 @@
 /*
   midi-item.hh -- declare Midi items
 
-  (c) 1997--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 1997--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
 #ifndef MIDI_ITEM_HH
index d8f31a45abca49b5655b91bf32bf3e115729ce3a..6b9bd0c5732a98983991c36d4780e7674821ed55 100644 (file)
@@ -1,7 +1,7 @@
 /*
   midi-stream.hh -- declare Midi_stream
 
-  (c) 1997--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 1997--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
 #ifndef MIDI_STREAM_HH
index 8ea8b27b6442b73829c9b68f9e4d2b8a862e11f5..2ee7cc941797ce75cbbc55d53663f21bab695ead 100644 (file)
@@ -1,7 +1,7 @@
 /*
   midi-walker.hh -- declare Midi_walker
 
-  (c) 1996--2007 Han-Wen Nienhuys  <hanwen@xs4all.nl>
+  (c) 1996--2009 Han-Wen Nienhuys  <hanwen@xs4all.nl>
   Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
index e7643c03e6b06300b4aeb2f03cf8cc51d2ed3964..b32d047732177a9f839304f9d513eb5a182c83c6 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 2005--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
 #ifndef MINGW_COMPATIBILITY_HH
index b57ab8b6075c22717fe2219f6cbff7f36e03b30c..35dbae9d1405c103724fc43ef1fbf92556e7f45a 100644 (file)
@@ -5,7 +5,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2007 Nicolas Sceaux <nicolas.sceaux@free.fr>
+  (c) 2007--2009 Nicolas Sceaux <nicolas.sceaux@free.fr>
 */
 
 #ifndef MINIMAL_PAGE_BREAKING_HH
index fad61b1ad381e33ddbdc3f164f08b0757935d6f6..12392c0cacd804dcee2db84c0e0aaec93ef0651a 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef MISC_HH
@@ -28,6 +28,13 @@ sign (int i)
   else return 0;
 }
 
+inline int
+shift_left (int value, int shiftamount)
+{
+ if (shiftamount < 0) return (value >> -shiftamount); 
+  else return (value << shiftamount);
+}
+
 inline Real
 linear_interpolate (Real x, Real x1, Real x2, Real y1, Real y2)
 {
index 16a8afdd423980c390f4f57a48513e33a8bea4f8..101949674cd4d0680a775b4d60578baffe045aee 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1999--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1999--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef MODIFIED_FONT_METRIC_HH
@@ -39,7 +39,6 @@ protected:
   Box get_indexed_char (size_t) const;
   size_t index_to_ascii (size_t) const;
   Box get_ascii_char (size_t) const;
-  Box tex_kludge (string) const;
 };
 
 #endif /* MODIFIED_FONT_METRIC_HH */
index a3b7544762b31079f3a8c005937d37ef33c3405f..87bbdb9b31d7f8aeaa131b32a0a941da70b2b0b3 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1999--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1999--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef MOMENT_HH
@@ -41,8 +41,8 @@ public:
   void set_infinite (int k);
 
   bool to_bool () const;
-  int den () const;
-  int num () const;
+  I64 den () const;
+  I64 num () const;
   /*
     Deliver a copy of THIS as a smobified SCM
   */
index 966741aaefc76703c74b3387b08f8fdc625c3b6c..ecc82974ac8b04db21a7a1fa7a94c028b1c1d29f 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1998--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 1998--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
 #ifndef MULTI_MEASURE_REST_HH
index be3b98bcbe21f162e5717a3e2783c4e0baf476a0..f5d44ff365aecc9e61a1c4381b79d9e97ee2b319 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2004--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2004--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef MUSIC_FUNCTION_HH
index 261ccf128d704fd53b73150147238fa3a439cef5..90d870833e1c058d8e1fe9bf5abf9d63f0ab14e6 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef MUSIC_ITERATOR_HH
index eafb6ec8d023126d4882d7304beb8be60aabba7e..7ad760eb21653340146913b90842af8d5c780070 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef MUSIC_OUTPUT_HH
index 94784ca45ac08325fe7f46488e4875e56bff1495..e01058bbfc8b3c8f511391b234054b730099f5eb 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2000--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2000--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef MUSIC_SEQUENCE_HH
index 3abddfeccfeb5889bf26be403cb0aeab351d1683..b36fd6a97aad1c68391b0e3874016e559d4f348a 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1998--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1998--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef MUSIC_WRAPPER_ITERATOR_HH
index 18d885f423b4902a4b1a84799c2603014a81a692..4554a1d114a2f46fa367e4e4fb7ea30a12423af7 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1998--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1998--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef MUSIC_WRAPPER_HH
index 4ed048fda01448255239261c76830f940b91c318..00d6f1962cb171e3ca0cb01e249b18e4bb2d208e 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef MUSIC_HH
index 9390321e590fca3df3798cb5c09a8cce1c500a03..b416f1d153a9fbd57aff52257183170a6ab60d46 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef COLLISION_HH
index f29c50e66c2149d13c3059a545d3ab245d708bff..d745d686137f75d86e48e84534264dc6be4cd839 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef NOTE_COLUMN_HH
index 2edeb1b95135e3c93034993ef2ca79564330dd80..6e759b1e9c372db4ca2c04801acf6d220a5c2264 100644 (file)
@@ -1,7 +1,7 @@
 /*
   note-head.hh -- part of GNU LilyPond
 
-  (c) 1996--2007 Han-Wen Nienhuys
+  (c) 1996--2009 Han-Wen Nienhuys
 */
 
 #ifndef NOTEHEAD_HH
index a14c43c8b79860e1acdcc1b3d1d41ab028068184..f7d5dfb65fa7d09dee888a490a0751c2f80a737b 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2001--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2001--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef NOTE_SPACING_HH
index 1ca5500446bf9e4f70bba567c3c29192340abf51..475cc4c169e40a4b79234fec3858303d1bd0aa5d 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2004--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2004--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef OPEN_TYPE_FONT_HH
@@ -52,7 +52,7 @@ public:
 };
 
 string get_otf_table (FT_Face face, string tag);
-FT_Face open_ft_face (string str);
+FT_Face open_ft_face (string str, FT_Long idx);
 
 
 #endif /* OPEN_TYPE_FONT_HH */
index 2ecfad8d9c5c01a79f3538397c7b5ac9174839da..2c8545bcb038626c6b7f59f4aa797159698beb45 100644 (file)
@@ -5,7 +5,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2006--2007 Joe Neeman <joeneeman@gmail.com>
+  (c) 2006--2009 Joe Neeman <joeneeman@gmail.com>
 */
 
 #ifndef OPTIMAL_PAGE_BREAKING_HH
@@ -21,6 +21,9 @@ public:
 
   Optimal_page_breaking (Paper_book *pb);
   virtual ~Optimal_page_breaking ();
+
+private:
+  vector<vsize> solve_chunk (vsize);
 };
 
 #endif /* OPTIMAL_PAGE_BREAKING_HH */
index cb4400d8ce874c4579f18e598d94227288c15879..b683cc61f1797a4b8b9bb321745a43136ad22bec 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef MUSIC_OUTPUT_DEF_HH
index d69fe1ce5f42af1fb7a73348c3138dbef579a604..c6c1bc02c80b88c32b0fa2b0275a70fcbb6d1fca 100644 (file)
@@ -4,7 +4,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2006--2007 Joe Neeman <joeneeman@gmail.com>
+  (c) 2006--2009 Joe Neeman <joeneeman@gmail.com>
 */
 
 #ifndef PAGE_BREAKING_HH
@@ -108,6 +108,7 @@ public:
   Real page_top_space () const;
   vsize system_count () const;
   Real line_count_penalty (int line_count) const;
+  int line_count_status (int line_count) const;
   bool too_many_lines (int line_count) const;
   bool too_few_lines (int line_count) const;
 
index 69962e6af8e3a6a46e7289281569fe53bf0aaa1f..12ddb8ccdf1b6bba4806baebe777a483bf3b83e3 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2007 Nicolas Sceaux <nicolas.sceaux@free.fr>
+  (c) 2007--2009 Nicolas Sceaux <nicolas.sceaux@free.fr>
 */
 
 #ifndef PAGE_MARKER_HH
index 7dc43d05f6c913f3c506db4518b03c10d8e7d1bb..83da406df097614c0c582bfc8095783f6fab6f65 100644 (file)
@@ -3,7 +3,7 @@
   
   source file of the GNU LilyPond music typesetter
   
-  (c) 2007 Han-Wen Nienhuys <hanwen@lilypond.org>
+  (c) 2007--2009 Han-Wen Nienhuys <hanwen@lilypond.org>
   
 */
 
 #include "std-vector.hh"
 #include "lily-proto.hh"
 
+// This enum is a bitfield: since we use one System_count_status
+// to represent the system count of several pages simultaneously,
+// it could be that one page has too many systems while another
+// has too few.
+typedef enum {
+  SYSTEM_COUNT_OK = 0,
+  SYSTEM_COUNT_TOO_MANY = 1,
+  SYSTEM_COUNT_TOO_FEW = 2
+} System_count_status;
+
 struct Page_spacing_result {
   vector<vsize> systems_per_page_;
   vector<Real> force_;
   Real penalty_;
   Real demerits_;
+  int system_count_status_;
 
   Real average_force () const;
   vsize page_count () const;
index c2dbc2ea6e8aa55ff614126dec327414389e7150..958a1b21ff08b2bffd51b5746db2f29abaf91daf 100644 (file)
@@ -4,7 +4,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2006--2007 Joe Neeman <joeneeman@gmail.com>
+  (c) 2006--2009 Joe Neeman <joeneeman@gmail.com>
 */
 
 #ifndef PAGE_SPACING_HH
    but small enough that nothing will overflow to infinity (so that we
    can still distinguish bad spacings by the number of BAD_SPACING_PENALTYs
    that they incur.
+
+   BAD_SPACING_PENALTY is for occasions where the spacing is bad.
+   TERRIBLE_SPACING_PENALTY is for when we are disregarding a user override
+   (for example, we are failing to satisfy min-systems-per-page). These user
+   overrides are more important than getting good spacing, so they get a
+   larger penalty.
 */
-const Real BAD_SPACING_PENALTY = 200000;
+const Real BAD_SPACING_PENALTY = 1e6;
+const Real TERRIBLE_SPACING_PENALTY = 1e8;
 
 
 /* for page_count > 2, we use a dynamic algorithm similar to
@@ -46,12 +53,14 @@ private:
       force_ = infinity_f;
       penalty_ = infinity_f;
       prev_ = VPOS;
+      system_count_status_ = SYSTEM_COUNT_OK;
     }
 
     Real demerits_;
     Real force_;
     Real penalty_;
     vsize prev_;
+    int system_count_status_;
   };
 
   Page_breaking const *breaker_;
index b91bdb6bed119c81aa77e6cf41fdd0f33ba95315..f5e7ada7611570efccf83014156515ed1d4acf4a 100644 (file)
@@ -5,7 +5,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2006--2007 Joe Neeman <joeneeman@gmail.com>
+  (c) 2006--2009 Joe Neeman <joeneeman@gmail.com>
 */
 
 #ifndef PAGE_TURN_PAGE_BREAKING_HH
index c0d6ff336863d7ff022005257a1276b2eb612a39..09f3ff7fadf27cf84642322e9d0d539c8306d01b 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2004--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2004--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef PANGO_FONT_HH
@@ -37,7 +37,7 @@ public:
 
   string description_string () const; 
   SCM font_file_name () const;
-  void register_font_file (string, string);
+  void register_font_file (string, string, int);
   Stencil text_stencil (string, bool tight) const;
 
   Stencil pango_item_string_stencil (PangoItem const *, string, bool tight) const;
index 4ea192794603b6fe9d021c911c21e36aed0bbb72..90e816f66da6257ae6d94af69736635bacffdd72 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2004--2007  Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 2004--2009  Jan Nieuwenhuizen <janneke@gnu.org>
 */
 #ifndef PAPER_BOOK_HH
 #define PAPER_BOOK_HH
@@ -31,11 +31,16 @@ public:
   SCM header_;
   SCM header_0_;
   SCM scores_;
+  SCM bookparts_;
+  Paper_book *parent_;
   Output_def *paper_;
 
   Paper_book ();
 
+  Output_def *top_paper ();
+
   void add_score (SCM);
+  void add_bookpart (SCM);
   void add_performance (SCM);
 
   SCM performances () const;
@@ -49,6 +54,14 @@ public:
   
   void classic_output (SCM output_channel);
   void output (SCM output_channel);
+
+protected:
+  void classic_output_aux (SCM output,
+                          int *first_performance_number);
+  int output_aux (SCM output_channel,
+                 bool is_last,
+                 int *first_page_number,
+                 int *first_performance_number);
 };
 
 DECLARE_UNSMOB (Paper_book, paper_book)
index fbe51a5c0c719c288b4d018873728f73e59ee687..d0b2a97bf1f998414dd067d69f7599f3230e1a23 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef PAPER_COLUMN_ENGRAVER_HH
index 350ed4e63525904b642f4ac1ac64e9252e90ada2..719e7d5e4945dbe4e7eade5cd74ed8d9c884c2c4 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef PAPER_COLUMN_HH
@@ -48,6 +48,7 @@ public:
   static Moment when_mom (Grob *);
   static bool is_used (Grob *);
   static bool is_breakable (Grob *);
+  static bool is_extraneous_column_from_ligature (Grob *);
   static Real minimum_distance (Grob *l, Grob *r);
   static Interval break_align_width (Grob *me);
 };
index 44c8b1bf57019a28ef58cf522e96248e299146b1..6779e1d942197575e2422c8a6b2d3d5a22d302e8 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef PAPER_OUTPUTTER_HH
index ac1b76208940b33386aacd5c4a39a960f36d98e8..b55fd9072704ccc4527384d6ad2aefc900e7d5b6 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1996--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1996--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef PAPER_SCORE_HH
index 840c3caa750e29c2f405cd93c89868cbfc0fda1b..25af72e025b9ce2787088901083786c2aa695bdc 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2004--2007  Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 2004--2009  Jan Nieuwenhuizen <janneke@gnu.org>
 */
 #ifndef PAPER_SYSTEM_HH
 #define PAPER_SYSTEM_HH
index 3e3f956634528b336abf93aba06db95d881f01a8..f6bff19a65ca526c300d38e5a15546c69ef6f6a9 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2004--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2004--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef PARSE_SCM_HH
index 990a31873df92696d4ebbb3e4de45e8d67537e28..5f234737455e2009341d8bb7ddc40c7ab857b657 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2001--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2001--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef PERCENT_REPEAT_ITEM_HH
@@ -18,7 +18,7 @@ public:
   DECLARE_GROB_INTERFACE();
   DECLARE_SCHEME_CALLBACK (beat_slash, (SCM));
   DECLARE_SCHEME_CALLBACK (double_percent, (SCM));
-  static Stencil x_percent (Grob *, int, Real, Real);
+  static Stencil x_percent (Grob *, int);
   static Stencil brew_slash (Grob *);
 };
 
index 7aa90ca511ae02727df7b08b642e0991c081b438..2553131f10aa29d89455dcd16f4eb75e9714daae 100644 (file)
@@ -1,7 +1,7 @@
 /*
   performance.hh -- declare Performance
 
-  (c) 1997--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 1997--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
 #ifndef PERFORMANCE_HH
index 7eff9515e61f72128b641b357ae3abb162d9ba71..1a7d8087d8aba88a4a3fb0a5eb58a3ee8cb52e77 100644 (file)
@@ -1,7 +1,7 @@
 /*
   performer-group.hh -- declare Performer_group
 
-  (c) 1996--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1996--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
   Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
index 38b876ae647308a283096a57c9ded5455723fd6b..a94165a6bd825236b356419a07f5fc36fc6f69f3 100644 (file)
@@ -1,7 +1,7 @@
 /*
   performer.hh -- declare Performer
 
-  (c) 1996--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1996--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
   Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
index 04bd23a70227a94ceac31dbe6631699a49b5095f..15df8ee933e4544f454541ba2cf5b29b0ca21ada 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2004--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2004--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef PITCH_INTERVAL_HH
index 4ab7cb5ea5734d41358ec341fe110367b4040f40..42a76522f4ae5948cf2aad97b0b65f850cdd79bd 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1998--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1998--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef MUSICAL_PITCH_HH
index 581d63529904848f889a756f6aea73e29ffb96c9..54b0e5b9065a357017843130a273e59dce3ceeb6 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef POINTER_GROUP_INTERFACE_HH
index feabb4cf784b47d6a4a25fc00c94b0dc7e1a82e3..069aa07924ae769af3de55a49e584ee2e490a679 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2004--2007  Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 2004--2009  Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
 #ifndef PROPERTY_OBJECT_HH
index 9a1961782be1825fd22ba9daf9d446246fa718ca..53a7175eb7bca95af22a421955685374537b83d2 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef PROFILE_HH
index 7192ea7c46dd51535082e89dacfb77229b822f7c..ec4103619e7ba999eb5329edd4801cf1cdea8f28 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2001--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 2001--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 */
 #ifndef SCM_OPTION_HH
 #define SCM_OPTION_HH
index 2f70d027e01f54e42ccba09f27a757a2e5e877a8..349929b7c5eec57410af46be17f057ed19931f60 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef PROPERTY_ITERATOR_HH
index d29e98c97393a3f994d0977a04e3029d4654ceef..d5a6463bc04d5d52df9489575e4469c06e9c4e95 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1998--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1998--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef PROTECTED_SCM_HH
index 80dc22e89023c33b604c874f5e680aa51e7bf89b..56ab9c50567e0fc421ae74880b64748671c8ece3 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 
 */
 
index 92a278e90ce519d2b3a728d15041c1e33aa26c41..818d1c822f83665b3881ab62cbca6b77a0e3bc5a 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1999--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1999--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef REPEATED_MUSIC_HH
index 07d80ab144bb9dea80afbf0af4428e7c7b89821e..1d25a2cda56a3c7726dffc33f3247274559bbc99 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef REST_COLLISION_HH
index 96c2b44cc71a915d8c0eff57b6b6139e3621c4cf..be31f3ae0f00cf28a445573dba9a6d1dd251cfd4 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef REST_HH
index a1d722b6b99643301c0161bab5941223fad9fa92..f625bfd6e0577fe8a64294efaa20697cb2ee1089 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef RHYTHMIC_HEAD_HH
index 9ecf6e5fbaf56425593578e711453f1de3ae348c..d89b34f80239527175c9ad5ae9afcb70357464fa 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1998--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1998--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef ROD_HH
index e74317effebf77c5f63159a3591d2e38dd4c8151..14be01b9d2f2ce6a478b6004a51acc9940c2180e 100644 (file)
@@ -3,7 +3,7 @@
   
   source file of the GNU LilyPond music typesetter
   
-  (c) 2006--2007 Han-Wen Nienhuys <hanwen@lilypond.org>
+  (c) 2006--2009 Han-Wen Nienhuys <hanwen@lilypond.org>
   
 */
 
@@ -20,7 +20,7 @@ public:
   Scale (vector<Rational> const&);
   Scale (Scale const&);
 
-  Rational tones_at_step (int step, int octave = 0) const;
+  Rational tones_at_step (int step, int octave) const;
   Rational step_size (int step) const;
   int step_count () const;
   int normalize_step (int step) const;
index c95347202cd69c15716518e6a0bf5ddc5243c31a..d96c7d779a5b0bbcb7e0829bf57365eec41dedc8 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2006--2007 Erik Sandberg  <mandolaerik@gmail.com>
+  (c) 2006--2009 Erik Sandberg  <mandolaerik@gmail.com>
 */
 
 #ifndef SCHEME_LISTENER_HH
index 9d1bcf8ca74effb26bb120475d3554b0ad4d380b..8bd8245b629ddd9e18b865911d0cbd8b94ca3a87 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1999--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1999--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef SCM_HASH_HH
index 52b652235315b4a86273cdfe1d8a294cd93c5b02..6afe354120d79f13f1c6d0a622fa0f7a937f9c4a 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef SCORE_ENGRAVER_HH
index 826abeec95b8c0ec8f314e6e6903da3182508637..b77890c08c4dfb0f458599e957eb2c7278f8b5dd 100644 (file)
@@ -1,7 +1,7 @@
 /*
   score-performer.hh -- declare Score_performer
 
-  (c) 1996--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1996--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
   Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
index 4f1933c8b537efc504b1bcd44b5a00b9ed17d062..ab6fcca3b5c112fe9c846f941c3e953f59d08fa4 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef SCORE_HH
index 150c690c1753f50c706e55c97ed2a08323be39ce..01c1b992a6bfb65b82421c8d1b925d2019f64b36 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1999--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1999--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef Script_COLUMN_HH
index 157ce77bf7ddb7273b05c88bcf6f3ff43406fcc8..2032b88296d4b0599d5a1c45568b1c7d484708bc 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1999--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1999--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef SCRIPT_INTERFACE_HH
index 5dc85360bb67ddf229228e92463c32ced61a029c..c42f2f44116fc393806757e1f646cde2b74a5c4d 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1999--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1999--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef SELF_ALIGNMENT_INTERFACE_HH
index 820afa59e8b31a200d790226428b7ba285cf6a67..8cc8063dfbe1e6cd53eeca9095929fef58d1da36 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 
 */
 
index 35524e7b236cde335e30d81c18c5eeec947099cb..8b0c936e7d5845df30930880cf2978e30ec501a8 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 
 */
 
index d1280c7a9ea85995c5f430ba975e1ea4b490bbf8..cba70b751c8797cd569152ee09c5054ea17967e0 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef SINGLE_MALT_GROUPING_ITEM_HH
index f749fd6933c75a8ad72a1a75f5c2e4457ea644b7..d53cf184c6268edc443fd95fa5c71b883c579b77 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2002--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2002--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef SEQUENTIAL_ITERATOR_HH
index c706e7e6ad8e0d8c35e55a930ddd5cd44c5820b5..0febd15be3ce6d6094cf64a47f9477147d49d0f0 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1999--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1999--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef SIDE_POSITION_INTERFACE_HH
index 82457c70c7fcfe128d64b272c93141444ef7e634..2d4f83525ff8e2ad51917e9488d9e1fee1705389 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 
 */
 
index 10d8e4690387f7e9df8533912c04d9e28d51b1d9..dc453a7505173ca2d18ec0fb9dfadd7c6a72682f 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2000--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2000--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef SIMPLE_MUSIC_ITERATOR_HH
index 90784e4c743cff3b5692f95a36101698f977af36..a0d5f0704bdbd034dd6d2b24d5ed7cbc3c3f63cc 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1999--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1999--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef SIMPLE_SPACER_HH
index 790e96806aabf393593f7bfc6e71f4113f0f3bfa..36698a1bdee0cb73b5d5f090920d9ae273f5900b 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef SIMULTANEOUS_MUSIC_ITERATOR_HH
index 08fe3c769e05a9c258b303b1840ca0669042e9bd..c7f9182108e3a20450465c1b97996bdc25dfd6e2 100644 (file)
@@ -3,7 +3,7 @@
   
   source file of the GNU LilyPond music typesetter
   
-  (c) 2008 Han-Wen Nienhuys <hanwen@lilypond.org>
+  (c) 2008--2009 Han-Wen Nienhuys <hanwen@lilypond.org>
   
 */
 
index 569d01f9c9ca11d59334845e0fe14858e5766713..26830b92c954062a029fc88892576c6e5e2031c0 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2006--2007 Joe Neeman <joeneeman@gmail.com>
+  (c) 2006--2009 Joe Neeman <joeneeman@gmail.com>
 */
 
 #ifndef SKYLINE_HH
index 35e1e4a414eb1c0669140eed90a8e1534751c68c..850a4c0fa6ea107e6c711cfe5f797c50bdb47681 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2004--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2004--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef SLUR_CONFIGURATION_HH
index 5c3a3350682442f330a4b6a282aad5c5f8d4e9fa..a1d2b4a5daf8bd3b9c6eaa31890036d3ae9a8c35 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2006--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2006--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 
 */
 
index db03c1e36343e26c757445658ec044b2db89b399..6c4dd5da2f51f42e46794d496c439563548c13af 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2004--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2004--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef SLUR_SCORING_HH
index 5059bdff9645cdf847ca3050c064c7042823d13f..ef7d1230901ab32a511fd358336dc958236df221 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2004--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2004--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef SLUR_HH
index 97c61e6203c6b0b926af49155faa3258462531e7..12819f28f524a86aa5742c574834bf2eebdf713c 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1999--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1999--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef SMOBS_HH
index 502783a6b483e73b0bfb526b36823440efc46fa6..2fd1bfc073b9959cb056cd6af6a6dfe08a31e131 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1999--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 1999--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
 #ifndef SOURCE_FILE_HH
index fefc528edba7673358e565c77220a28417914fa0..32dbb2ad458ae062ae40d30f5928625b014ea4e3 100644 (file)
@@ -1,7 +1,7 @@
 /*
   sources.hh -- part of LilyPond
 
-  (c) 1997--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 1997--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
 #ifndef SOURCES_HH
@@ -19,8 +19,7 @@ public:
   Sources ();
   ~Sources ();
 
-  Source_file *get_file (string *file_name);
-  Source_file *get_sourcefile (char const *);
+  Source_file *get_file (string file_name, string const& currentpath);
   void add (Source_file *sourcefile);
   void set_path (File_path *);
 
index f7ae552f8402636dbf3b275e834fc29f2accceec..71768b7cb37421726e59cd981721c6302b2eac91 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2000--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2000--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef SPACEABLE_GROB_HH
index 135b31ae6e8f35219eb2ff1f15283e0732f433ee..32df5aeb3a64ff54937cc23a4f255513068dc86e 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2002--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2002--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 #include "grob-interface.hh"
 #include "lily-proto.hh"
index c202c7d64d5f194017e77acd3b7bd6e99e47a3bd..7f52d458207448b2091cd6348ca55d11e95ad280 100644 (file)
@@ -3,7 +3,7 @@
   
   source file of the GNU LilyPond music typesetter
   
-  (c) 2006--2007 Han-Wen Nienhuys <hanwen@lilypond.org>
+  (c) 2006--2009 Han-Wen Nienhuys <hanwen@lilypond.org>
   
 */
 
index 9193a187d476324cc4fa5332239d7078efc1d596..72848b898f7b8d6ae51174920c16cafff5a5f158 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef SPACING_SPANNER_HH
index 4f2faf110e25226b70ab7c556cf367087017f57e..d06b514afc7869b3ea66d5c8de7c4bf4d43b09f7 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef SPAN_BAR_HH
index cf77c086c03066c55c9d2eeb16823f38e6e5c39e..24176326d3084e22f013a0b46fc49045e33c68a5 100644 (file)
@@ -1,7 +1,7 @@
 /*
   spanner.hh -- part of GNU LilyPond
 
-  (c) 1996--2007 Han-Wen Nienhuys
+  (c) 1996--2009 Han-Wen Nienhuys
 */
 
 #ifndef SPANNER_HH
index 4022173201f45d00852568d7f5e8cd0c181a5ef8..c379889adb859b067bf6445b36d22ae90756243b 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1999--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1999--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef SPRING_HH
index 9503c610ec4b59cb90094e6e29355e8d9cda8dc9..593c59af23d2b7ee8ff8e79b1b7a2d9fe7d7c1be 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2001--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2001--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef STAFF_SPACING_HH
index 51fe44fc466fdd3a26280b294e6823c28119be77..434ff92d80828f5e6b95bbd31ac430f9bb12a26e 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1999--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1999--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef STAFF_SYMBOL_REFERENCER_HH
index 6791e7be1c21cf575afa1acd42613cd8aa9f2e58..2529c005084416198dfeea4eb7ba1e74a949d841 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef STAFF_SYMBOL_HH
index 59f80ace9f43a9a95d309cc193d36341b5f228de..1a67675d3aa6f6d46c197121089deed41e674279 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 1997--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
 #ifndef STEM_INFO_HH
index b6512b9960fefd25e5b41a8083d1e9bed349df67..9782c753f2803253d4ffdc5c754a431a3a50da06 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef ABBREV_HH
index 26ceec7a0ee5431d40f4fcbfc6736f1b0eb444aa..b404862ee923c1fdb043b65c2f831ede6204e2e4 100644 (file)
@@ -1,7 +1,7 @@
 /*
   stem.hh -- declare Stem
 
-  (c) 1996--2007 Han-Wen Nienhuys
+  (c) 1996--2009 Han-Wen Nienhuys
 */
 
 #ifndef STEM_HH
index 63318a38b8fd7244381db95e028bf362638c4741..538d0acc04ac1c2547c39c1f17e6cef739209e38 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 #ifndef STENCIL_HH
 #define STENCIL_HH
index 0d981a97c45ef0ee0daa4a26fad721cf1f1e7227..9c3ab818dea44569a18831bd5a2250f870a2e961 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2001--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2001--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef STREAM_HH
index d66bb24d9c46aebd6553f7d6ffd89f19259ddba8..0b966e442769dc72aa1c1483c9ae87cca03a2fd5 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2000--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2000--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef SYSTEM_START_DELIMITER_HH
index 918243d0a0e47e7bc6b40f8f840345e29d57c326..3fc805a959c1ea6ca6ad1ab16397ef2b3b3b404e 100644 (file)
@@ -1,7 +1,7 @@
 /*
   system.hh -- part of GNU LilyPond
 
-  (c) 1996--2007 Han-Wen Nienhuys
+  (c) 1996--2009 Han-Wen Nienhuys
 */
 
 #ifndef SYSTEM_HH
index 4a0fdb77109842f5fe4d75cc651cf441847be26d..fabcbbc516f4c937726ee66e1338b9b3c54f6721 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1998--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1998--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
   Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
diff --git a/lily/include/text-metrics.hh b/lily/include/text-metrics.hh
deleted file mode 100644 (file)
index fa4dac1..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
-  text-metrics.hh -- declare text metric lookup functions
-
-  source file of the GNU LilyPond music typesetter
-
-  (c) 2004--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
-*/
-
-#ifndef TEXT_METRICS_HH
-#define TEXT_METRICS_HH
-
-#include "lily-guile.hh"
-#include "box.hh"
-
-void try_load_text_metrics (string);
-SCM ly_load_text_dimensions (SCM);
-Box lookup_tex_text_dimension (Font_metric *font,
-                              SCM text);
-
-#endif /* TEXT_METRICS_HH */
-
index 37e0900282d7b900a4a5d4d91958c15f089c1ebb..48c5c42d8c7149068de156ed8ae44deab3395d30 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 
 */
 
index 07f166f17b32e83509874af9d7dc4191c03b604e..07afd51859985529a639b4a9de6c7258a844dd8c 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2000--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2000--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef TIE_COLUMN_HH
index d65604c1dc195f34264eeceebca5229db629fbe9..01e32b691343f70f429065c869326129179fd631 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 
 */
 
index 24402e56c56fcddce176339fa46d42d392e63540..ca24bd45995d6959581f9f2393c4421c735ee8ad 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2006--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2006--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 
 */
 
index 46018a0034aec6778496a8c926adb5be350d15b9..35aa73817c0f7ae8b9af9b6dd6f876aa8b6c08d4 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 
 */
 
index 0a437d312b1c046c8a8c0f42a6c83ba06eef3d97..68734adc222aeab5868c49d2605355ad94bd13f6 100644 (file)
@@ -3,7 +3,7 @@
   
   source file of the GNU LilyPond music typesetter
   
-  (c) 2007 Han-Wen Nienhuys <hanwen@lilypond.org>
+  (c) 2007--2009 Han-Wen Nienhuys <hanwen@lilypond.org>
   
 */
 
index c47a93306c6cc40f99b477772a5a9237111bdab1..172e02733f439be1cff8e8cf5fbf1cc30f3ea007 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef TIE_HH
index bf48452130ba4647c533de179f05d108268ca087..379e202f03b977e56a9580b13f006f636cf097e5 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1998--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>,
+  (c) 1998--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>,
                  Erik Sandberg <mandolaerik@gmail.com>
 */
 
index 5c77a2cff92e1572e2fc2b3e89e5e9411b431791..ac327d653cccfe86211be5bc8448f6a202e5d4a3 100644 (file)
@@ -1,7 +1,7 @@
 /*
   time_signature.hh -- declare Time_signature
 
-  (c) 1996--2007 Han-Wen Nienhuys
+  (c) 1996--2009 Han-Wen Nienhuys
 */
 
 #ifndef METER_HH
index 7963440ca82c18128a6130c55c9f5178ffff563e..8c85bcd1ef74036bac72eea76454ddd30ee42d5f 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef TIMING_TRANSLATOR_HH
index 687431cb8fd4cd763236d6070810b4dfa6113b27..ba041f4af679810b6c6bb355b061b1c9baf7e04f 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef TRANSLATOR_DISPATCH_LIST_HH
index a777ba26307961c7b57005f8cf80c27a5489fdae..237d0367c2a5a63189d797a0b9ddc2406c05b3f6 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef TRANSLATOR_GROUP_HH
index 33fafaea0e11b3775e6511cc2dbec0f4285818e1..f5065f50b25e3f613bc61bcb107a149b3defd56b 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef TRANSLATOR_HH
index 2a7eeccc235e2884a96acbc37e29f39bf19e3369..f6c815fabcd54838f621918ef6a346de1f2feb0c 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef TRANSLATOR_ICC
index ccc2c22bfc769a597e78f35ed873d0164690613d..794ac9524eb8554ed219add7b8369f675cb64371 100644 (file)
@@ -1,7 +1,7 @@
 /*
   tuplet-bracket.hh -- part of GNU LilyPond
 
-  (c) 1997--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 1997--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
 #ifndef Tuplet_bracket_HH
index fd631e91d611edacd282599692519b92f77477d6..7e798e043d3fc3d1adea1028347953ed182f332c 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef TYPESWALLOW_TRANSLATOR_HH
index 13cdf6d65710ea6e2805b58ebad74494005ea1cb..70b820f31bccbdc34a12decd6ac8d4167133b01a 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2003--2007 Juergen Reuter <reuter@ipd.uka.de>
+  (c) 2003--2009 Juergen Reuter <reuter@ipd.uka.de>
 */
 
 #ifndef VATICANA_LIGATURE_HH
index cc69660a42727f03137c3ad99c09f232cbf7d6cc..413e6f6aa13fab8bb14efa86e90d6d9231ae184d 100644 (file)
@@ -1,7 +1,7 @@
 /*
   volta-spanner.hh -- part of GNU LilyPond
 
-  (c) 1997--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 1997--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
 #ifndef VOLTA_SPANNER_HH
index 922112b087bc63d0fdc9287277f78634b4d2b54d..f313a3c27e023e4986cdbd4e17a4aa3bf5434893 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "std-string.hh"
index 0f928a67b763776ea024941b4b14db7a425b8ee9..8affedab7c49ca0984d67a9acc23a1026d0de101 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2000--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2000--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "input.hh"
index 09028d0858ea4a00fbaf39c24055c370c1e74dad..084b1f3b643dd4ff9d2802bd3219929f49bcb25a 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "input.hh"
index d35e065afb7459bf691acec9a7fcf4a9d0e4bc0a..d3ee12950e421888c65c0a19eb75169a43f45503 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2000--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2000--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "engraver.hh"
index 91072976771a04263005314e29bdd6ca636aec2c..a2830554ede8a30e50acfc5c8191815288d7e984 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2006--2007 Han-Wen Nienhuys <hanwen@lilypond.org>
+  (c) 2006--2009 Han-Wen Nienhuys <hanwen@lilypond.org>
 
 */
 
index 2d561fbc060a3d9b0f69fd5faa684d5ebf5ffc2b..6e540a327d78c32533f7509bb26723e7103f50e3 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 
 */
 
index e47143e6828ce66b0a94a09847c5a91919efbd4e..e559f6abed70559008846c4bd42909c6d1f29682 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "item.hh"
index d3b7eb01ddada1c2d00b7888fef88ee16ed88eb7..c396d73351e080aa6eb8c78f8142a64312418a36 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "bar-line.hh"
@@ -79,8 +79,9 @@ Key_engraver::create_key (bool is_default)
              SCM new_alter_pair = scm_assoc (scm_caar (s), key);
              Rational old_alter = robust_scm2rational (scm_cdar (s), 0);
              if (new_alter_pair == SCM_BOOL_F
-                 || extranatural
-                 && (ly_scm2rational (scm_cdr (new_alter_pair)) - old_alter)*old_alter < Rational (0))
+                 || (extranatural
+                     && (ly_scm2rational (scm_cdr (new_alter_pair)) - old_alter)*old_alter
+                         < Rational (0)))
                {
                  *tail = scm_cons (scm_car (s), *tail);
                  tail = SCM_CDRLOC (*tail);
@@ -93,13 +94,13 @@ Key_engraver::create_key (bool is_default)
                                         key_event_
                                         ? key_event_->self_scm () : SCM_EOL);
              
-             cancellation_->set_property ("alteration-alist", restore);
+             cancellation_->set_property ("alteration-alist", scm_reverse (restore));
              cancellation_->set_property ("c0-position",
                                           get_property ("middleCPosition"));
            }
        }
 
-      item_->set_property ("alteration-alist", key);
+      item_->set_property ("alteration-alist", scm_reverse (key));
     }
 
   if (!is_default)
@@ -119,18 +120,16 @@ Key_engraver::listen_key_change (Stream_event *ev)
 }
 
 void
-Key_engraver::acknowledge_clef (Grob_info info)
+Key_engraver::acknowledge_clef (Grob_info /* info */)
 {
-  (void)info;
   SCM c = get_property ("createKeyOnClefChange");
   if (to_boolean (c))
     create_key (false);
 }
 
 void
-Key_engraver::acknowledge_bar_line (Grob_info info)
+Key_engraver::acknowledge_bar_line (Grob_info /* info */)
 {
-  (void)info;
   if (scm_is_pair (get_property ("keySignature")))
     create_key (true);
 }
@@ -189,7 +188,7 @@ Key_engraver::read_event (Stream_event const *r)
        r->origin ()->warning ("No ordering for key signature alterations");      
     }
   
-  context ()->set_property ("keySignature", accs);
+  context ()->set_property ("keySignature", scm_reverse (accs));
   context ()->set_property ("tonic",
                            r->get_property ("tonic"));
 }
@@ -212,6 +211,7 @@ ADD_TRANSLATOR (Key_engraver,
                "Engrave a key signature.",
 
                /* create */
+               "KeyCancellation "
                "KeySignature ",
                
                /* read */
index 8a12e9bcf5f00b325f3dca5945b56ebba346b6ee..327a53c042d50f0eeecd804a398c673a9294cea1 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 1997--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
 #include "audio-item.hh"
index 2342c944e00c2f2a25e0bb16073ed980ef10bc4a..d0f30268eb4f4e016c5652045ccf52d99cd7ae98 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1996--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1996--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 
   keyplacement by Mats Bengtsson
 */
@@ -36,13 +36,6 @@ Key_signature_interface::print (SCM smob)
 
   Real inter = Staff_symbol_referencer::staff_space (me) / 2.0;
 
-  SCM scm_style = me->get_property ("style");
-  string style;
-  if (scm_is_symbol (scm_style))
-    style = ly_symbol2string (scm_style);
-  else
-    style = "";
-
   Stencil mol;
 
   SCM c0s = me->get_property ("c0-position");
@@ -128,5 +121,4 @@ ADD_INTERFACE (Key_signature_interface,
               "glyph-name-alist "
               "padding "
               "padding-pairs "
-              "style "
               );
index efb0afbaa4315328708fa1bbf965195e3726fa67..762d56d9805580a8cd5092e5a022c1417174f1eb 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 
 */
 
index 582e5b0dcb2bb655832512338f0fe57489f77cd8..2e9382f503326140895b8a3319000f3dccd935e6 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1996--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1996--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "least-squares.hh"
index 764b7b46b022c5cf4bad219901d4cf567bd2a5dc..d5ba5da8c8c305440d1bb1727afe19b05b5f5fb7 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2004--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2004--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "pointer-group-interface.hh"
index 3664bd40b7cb4c700467758903d060fb7ebef59f..ff2c4141a11af742f59594463d93ec326735bf2e 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2004--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2004--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include <map>
index 47c39793364a086c000b15d057fe0a5c26dc47ba..1ad6b667da93a9b11e896be7958ab735a04738eb 100644 (file)
@@ -4,7 +4,7 @@
 
   source file of the LilyPond music typesetter
 
-  (c) 1996--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1996--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
            Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
index 091388f7e66ecc58a8d144dd132da324932f11ff..34218968316a2bd2131034949779348576cb10af 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2002--2007 Juergen Reuter <reuter@ipd.uka.de>
+  (c) 2002--2009 Juergen Reuter <reuter@ipd.uka.de>
 */
 
 #include "international.hh"
index e73098abe4543f2a05672c959bc8603734c80eb1..c3830b4b02a2303ef78983f8f72b0cfe0fd1a64d 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2002--2007 Juergen Reuter <reuter@ipd.uka.de>
+  (c) 2002--2009 Juergen Reuter <reuter@ipd.uka.de>
 */
 
 #include "ligature-engraver.hh"
index 9c88983e4c88586d90fc52f643feacaefd6af3c4..3753a77795f236312f3827da724352451c0da389 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1998--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 1998--2009 Jan Nieuwenhuizen <janneke@gnu.org>
   Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
@@ -561,16 +561,16 @@ robust_scm2int (SCM k, int o)
 SCM
 ly_rational2scm (Rational r)
 {
-  return scm_divide (scm_from_long_long (r.numerator ()),
-                    scm_from_long_long (r.denominator ()));
+  return scm_divide (scm_from_int64 (r.numerator ()),
+                    scm_from_int64 (r.denominator ()));
 }
 
 
 Rational
 ly_scm2rational (SCM r)
 {
-  return Rational (scm_to_long_long (scm_numerator (r)),
-                  scm_to_long_long (scm_denominator (r)));
+  return Rational (scm_to_int64 (scm_numerator (r)),
+                  scm_to_int64 (scm_denominator (r)));
 }
 
 Rational
index e619c8e7957ca45bafba98437c5e076ebc7838f8..fa783bd1758bcb25341c23693f5c58b9c6cc2c09 100644 (file)
@@ -3,7 +3,7 @@
   
   source file of the GNU LilyPond music typesetter
   
-  (c) 2006--2007 Han-Wen Nienhuys <hanwen@lilypond.org>
+  (c) 2006--2009 Han-Wen Nienhuys <hanwen@lilypond.org>
   
 */
 
index 7b77d58922b6816c55607a1d30c9c0f622ae87d1..25d2c98c25230edc1c6715237f7a8f286af569c1 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "lily-lexer.hh"
@@ -31,6 +31,7 @@ static Keyword_ent the_key_tab[]
   {"alias", ALIAS},
   {"alternative", ALTERNATIVE},
   {"book", BOOK},
+  {"bookpart", BOOKPART},
   {"change", CHANGE},
   {"chordmode", CHORDMODE},
   {"chords", CHORDS},
index 61ea288fc608221868fc0832234a4deca0a9f5f6..7dfeab6057b7dd4e12799e90b401a3c62b3de0c6 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include <unistd.h>
@@ -47,8 +47,6 @@ LY_DEFINE (ly_parse_file, "ly:parse-file",
      file name.  */
   File_name out_file_name (file_name);
 
-  global_path.append (out_file_name.dir_);
-
   out_file_name.ext_ = "";
   out_file_name.root_ = "";
   if (ly_get_option (ly_symbol2scm ("gui")) != SCM_BOOL_T
index 13d62ebc5c762eb68873bace69250e14687026dd..eb59e7bda331038f4c7d1ad7f695ae64831f39a3 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
   Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
@@ -22,7 +22,6 @@
 #include "parser.hh"
 #include "score.hh"
 #include "sources.hh"
-#include "text-metrics.hh"
 #include "warn.hh"
 #include "program-option.hh"
 
@@ -87,9 +86,6 @@ Lily_parser::print_smob (SCM s, SCM port, scm_print_state*)
 void
 Lily_parser::parse_file (string init, string name, string out_name)
 {
-  if (get_output_backend_name () == "tex")
-    try_load_text_metrics (out_name);
-
   // TODO: use $parser 
   lexer_->set_identifier (ly_symbol2scm ("parser"), self_scm ());
   output_basename_ = out_name;
@@ -221,17 +217,54 @@ get_midi (Lily_parser *parser)
   return layout;
 }
 
+/* Return a copy of the top of $papers stack, or $defaultpaper if the
+ * stack is empty */
 Output_def *
 get_paper (Lily_parser *parser)
 {
-  SCM id = parser->lexer_->lookup_identifier ("$defaultpaper");
-  Output_def *layout = unsmob_output_def (id);
+  SCM papers = parser->lexer_->lookup_identifier ("$papers");
+  Output_def *layout = ((papers == SCM_UNDEFINED) || scm_is_null (papers)) ?
+    0 : unsmob_output_def (scm_car (papers));
+  SCM default_paper = parser->lexer_->lookup_identifier ("$defaultpaper");
+  layout = layout ? layout : unsmob_output_def (default_paper);
 
   layout = layout ? dynamic_cast<Output_def *> (layout->clone ()) : new Output_def;
   layout->set_variable (ly_symbol2scm ("is-paper"), SCM_BOOL_T);
   return layout;
 }
 
+/* Initialize (reset) the $papers stack */
+void
+init_papers (Lily_parser *parser)
+{
+  parser->lexer_->set_identifier (ly_symbol2scm ("$papers"), SCM_EOL);
+}
+
+/* Push a paper on top of $papers stack */
+void
+push_paper (Lily_parser *parser, Output_def *paper)
+{
+  parser->lexer_->set_identifier (ly_symbol2scm ("$papers"),
+                                  scm_cons (paper->self_scm (),
+                                            parser->lexer_->lookup_identifier ("$papers")));
+}
+
+/* Pop a paper from $papers stack */
+void
+pop_paper (Lily_parser *parser)
+{
+  if (! scm_is_null (parser->lexer_->lookup_identifier ("$papers")))
+    parser->lexer_->set_identifier (ly_symbol2scm ("$papers"),
+                                    scm_cdr (parser->lexer_->lookup_identifier ("$papers")));
+}
+
+/* Change the paper on top of $papers stack */
+void
+set_paper (Lily_parser *parser, Output_def *paper)
+{
+  scm_set_car_x (parser->lexer_->lookup_identifier ("$papers"), paper->self_scm ());
+}
+
 SCM
 get_header (Lily_parser *parser)
 {
index 1df780b8e1ec05edf7a5a3a951b0d374f397d5e8..2163e0b472274df01a8a280837f20aae65bf159c 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1999--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 1999--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
 #include "lily-version.hh"
index 9c0e938547d6d4c0381a50272e29bb60ca1acdbf..aa192a30c77dc3415368fee9e9109609aa95e312 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1998--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 1998--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
 #include <ctype.h>
index 6503a3decff6ca144fb2eee3a09cc754f61fb6cc..e85138e5a1b7d7d80c82541e636f20d237fb3938 100644 (file)
@@ -20,7 +20,7 @@ VS_VERSION_INFO VERSIONINFO
        VALUE "FileDescription", "LilyPond"
        VALUE "FileVersion", "@MAJOR_VERSION@.@MINOR_VERSION@.@PATCH_LEVEL@.@BUILD_VERSION@"
        VALUE "InternalName", "LilyPond@"
-       VALUE "LegalCopyright ", "Copyright (C) 1995--2007  Han-Wen Nienhuys and Jan Nieuwenhuizen, and others."
+       VALUE "LegalCopyright ", "Copyright (C) 1995--2009  Han-Wen Nienhuys and Jan Nieuwenhuizen, and others."
        VALUE "OriginalFilename", "lilypond.exe"
        VALUE "ProductName", "LilyPond"
        VALUE "ProductVersion", "@MAJOR_VERSION@.@MINOR_VERSION@.@PATCH_LEVEL@"
index 771ed69b5928bb15c1f662472879363935cb7265..2fa6d61bb718e9ff2faeada5956de522461a4025 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2004--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2004--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "line-interface.hh"
index 3215456f3eff6cf97528f69c366dd247950f3acb..b19151987f012dd9c046be13d1a54b3b73806bc3 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2000--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 2000--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
 #include "align-interface.hh"
@@ -349,11 +349,7 @@ Line_spanner::print (SCM smob)
 
 ADD_INTERFACE (Line_spanner,
               "Generic line drawn between two objects, e.g., for use with"
-              " glissandi.\n"
-              "\n"
-              "The property @code{style} can be @code{line},"
-              " @code{dashed-line}, @code{trill}, @code{dotted-line} or"
-              " @code{zigzag}.",
+              " glissandi.",
 
               /* properties */
               "bound-details "
index d2099d7c4886f58802ee2db82dc85ebc54369b3d..014d2ec8aba399a8552c621cae16c6a296bf2240 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 
   Jan Nieuwenhuizen <janneke@gnu.org>
 */
index acf7b06f8802c6eab03e978e3c7e6176ebc35ba0..ceb26ad85d91ae9835a103e45dd399b5fc44cd16 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2002--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2002--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "lily-guile.hh"
@@ -97,9 +97,11 @@ ly_module_symbols (SCM mod)
 }
 
 static SCM
-entry_to_alist (void *closure, SCM key, SCM val, SCM result)
+entry_to_alist (void * /* closure */,
+               SCM key,
+               SCM val,
+               SCM result)
 {
-  (void) closure;
   if (scm_variable_bound_p (val) == SCM_BOOL_T)
     return scm_cons (scm_cons (key, scm_variable_ref (val)), result);
   programming_error ("unbound variable in module");
@@ -134,9 +136,11 @@ ly_reexport_module (SCM mod)
 
 #ifdef MODULE_GC_KLUDGE
 static SCM
-redefine_keyval (void *closure, SCM key, SCM val, SCM result)
+redefine_keyval (void * /* closure */,
+                SCM key,
+                SCM val,
+                SCM result)
 {
-  (void)closure;
   SCM new_tab = result;
   scm_hashq_set_x (new_tab, key, val);
   return new_tab;
index c80fe02998b420660802cb8816d3ee5515daaecc..8b5a4b4992accc41f491a50311d97dd5ea41c7e9 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2004--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2004--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "dispatcher.hh"
@@ -260,10 +260,8 @@ Lyric_combine_music_iterator::find_voice ()
 }
 
 void
-Lyric_combine_music_iterator::process (Moment when)
+Lyric_combine_music_iterator::process (Moment /* when */)
 {
-  (void) when;
-  
   /* see if associatedVoice has been changed */
   Context *new_voice = find_voice ();
   if (new_voice)
index 7895e154a75eb536080c9034e0c1d1e469b54fc1..c47a6e3a99ffef56479f4539cd0a8a926db16262 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1999--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1999--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "music.hh"
index 0aa5fe3c97baa474ef7156c9e041fbe5bd57e169..22449890d9aa47f4b87f607726a621e53b67a050 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
   Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
index 64d2b9715d3184635f74de2e00b2f2cc1cee5351..5e254b45ee3a89f9d56f70c4338e97c909662d84 100644 (file)
@@ -2,7 +2,7 @@
   lyric-extender.cc -- implement Lyric_extender
   source file of the GNU LilyPond music typesetter
 
-  (c) 1998--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 1998--2009 Jan Nieuwenhuizen <janneke@gnu.org>
   Han-Wen Nienhuys
 */
 
index a871fbb843a7aa0e0a07af4d21edc7159718c1f9..3b2dab06f1dcada003de6137969d252a7c20889b 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2003--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2003--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "lyric-hyphen.hh"
index d759d4603ab9a6adf7e23e0db8a107d7088c3722..b318ab90fe3c651e53feb2a5da7e362d739a92f6 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 1997--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
 #include "audio-item.hh"
index 759091ee11f4adc11b72bde8aeaa26d6d2c94365..2d293343c5662cc7553e21fe65c7e9dc4884f059 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "main.hh"
@@ -12,6 +12,7 @@
 #include <clocale>
 #include <cstring>
 #include <cerrno>
+#include <cstdio>
 using namespace std;
 
 #include <unistd.h>
@@ -57,9 +58,6 @@ string init_name_global;
 /* Output formats to generate.  */
 string output_format_global = "";
 
-bool is_pango_format_global;
-bool is_TeX_format_global;
-
 /* Current output name. */
 string output_name_global;
 
@@ -142,11 +140,9 @@ static Long_option_init options_static[]
   /* Bug in option parser: --output =foe is taken as an abbreviation
      for --output-format.  */
   {_i ("FORMATs"), "formats", 'f', _i ("dump FORMAT,...  Also as separate options:")},
-  {0, "dvi", 0, _i ("generate DVI (tex backend only)")},
   {0, "pdf", 0, _i ("generate PDF (default)")},
   {0, "png", 0, _i ("generate PNG")},
   {0, "ps", 0, _i ("generate PostScript")},
-  {0, "tex", 0, _i ("generate TeX (tex backend only)")},
   {0, "help", 'h',  _i ("show this help and exit")},
   {_i ("FIELD"), "header", 'H',  _i ("dump header field FIELD to file\n"
                                     "named BASENAME.FIELD")},
@@ -223,8 +219,8 @@ dir_info (FILE *out)
 static void
 copyright ()
 {
-  printf (_f ("Copyright (c) %s by\n%s  and others.",
-             "1996--2007",
+  /* Do not update the copyright years here, run grand-replace.sh.  */
+  printf (_f ("Copyright (c) %s by\n%s  and others.", "1996--2009",
              AUTHORS).c_str ());
   printf ("\n");
 }
@@ -263,6 +259,10 @@ LY_DEFINE (ly_usage, "ly:usage",
   printf ("\n");
   printf (Long_option_init::table_string (options_static).c_str ());
   printf ("\n");
+  /* Translators, please translate this string as
+         "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"  */
   printf (_f ("Report bugs via %s",
              "http://post.gmane.org/post.php?group=gmane.comp.gnu.lilypond.bugs"
              ).c_str ());
@@ -388,7 +388,6 @@ main_with_guile (void *, int, char **)
   if (be_verbose_global)
     dir_info (stderr);
 
-  is_pango_format_global = !is_TeX_format_global;
   init_scheme_variables_global = "(list " + init_scheme_variables_global + ")";
   init_scheme_code_global = "(begin " + init_scheme_code_global + ")";
 
@@ -399,10 +398,6 @@ main_with_guile (void *, int, char **)
   init_freetype ();
   ly_reset_all_fonts ();
 
-  is_TeX_format_global = (get_output_backend_name () == "tex"
-                         || get_output_backend_name () == "texstr");
-  
-
   /* We accept multiple independent music files on the command line to
      reduce compile time when processing lots of small files.
      Starting the GUILE engine is very time consuming.  */
@@ -438,7 +433,7 @@ setup_localisation ()
   setlocale (LC_ALL, "");
 
   /* FIXME: check if this is still true.
-     Disable localisation of float values.  This breaks TeX output.  */
+     Disable localisation of float values. */
   setlocale (LC_NUMERIC, "C");
 
   string localedir = LOCALEDIR;
@@ -468,11 +463,9 @@ parse_argv (int argc, char **argv)
       switch (opt->shortname_char_)
        {
        case 0:
-         if (string (opt->longname_str0_) == "dvi"
-             || string (opt->longname_str0_) == "pdf"
+         if (string (opt->longname_str0_) == "pdf"
              || string (opt->longname_str0_) == "png"
-             || string (opt->longname_str0_) == "ps"
-             || string (opt->longname_str0_) == "tex")
+             || string (opt->longname_str0_) == "ps")
            add_output_format (opt->longname_str0_);
          else if (string (opt->longname_str0_) == "relocate")
            relocate_binary = true;
index 7ba13d49a454802a8838a5787bdf193bfa2be8e6..76977f91c6f438ad7951ff55429434c8a409b6b2 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1998--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 1998--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
 #include <cctype>
index 81d3c5584e7297b28938099c22710c6559f9d331..03192a1defd611e1895b2e53cbe614a0437540bc 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2002--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2002--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "warn.hh"
index 78d625ec665da8539e3c41bd21c25367da40c8ee..1e407d17ccde587aac87f624505750b1073e6d10 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2002--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2002--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "measure-grouping-spanner.hh"
index e1ef553c159ee1342461ca7f59d67a9910be80ae..3dc1d28448cbabed072b048e76473bcd116a8ff3 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 
@@ -62,9 +62,8 @@ Melody_engraver::stop_translation_timestep ()
 
 
 void
-Melody_engraver::acknowledge_slur (Grob_info info)
+Melody_engraver::acknowledge_slur (Grob_info /* info */)
 {
-  (void)info;
   melody_item_ = 0;
 }
 
index 4d1cc67ae9a4368d12277867ae96dc3d41919384..2dbcd56cabc5eba65d7d1a389ff39ffc2a9b9127 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 
 */
 
index 993e4ff5c97b7b5823941748944a3bd933f2404a..249506ed34fb26ba16ce8b8c964e530a56a54100 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2002--2007 Juergen Reuter <reuter@ipd.uka.de>,
+  (c) 2002--2009 Juergen Reuter <reuter@ipd.uka.de>,
   Pal Benko <benkop@freestart.hu>
 */
 
@@ -82,7 +82,7 @@ Mensural_ligature_engraver::transform_heads (vector<Grob_info> primitives)
 {
   if (primitives.size () < 2)
     {
-      warning (_f ("ligature with less than 2 heads -> skipping"));
+      warning (_ ("ligature with less than 2 heads -> skipping"));
       return;
     }
   int prev_pitch = 0;
@@ -109,7 +109,7 @@ Mensural_ligature_engraver::transform_heads (vector<Grob_info> primitives)
       if (!nr->in_event_class ("note-event"))
        {
          nr->origin ()->warning
-           (_f ("cannot determine pitch of ligature primitive -> skipping"));
+           (_ ("cannot determine pitch of ligature primitive -> skipping"));
          at_beginning = true;
          continue;
        }
@@ -123,7 +123,7 @@ Mensural_ligature_engraver::transform_heads (vector<Grob_info> primitives)
            {
              // we can get here after invalid input
              nr->origin ()->warning
-               (_f ("single note ligature - skipping"));
+               (_ ("single note ligature - skipping"));
              break;
            }
          prev_semibrevis = prev_brevis_shape = false;
@@ -135,7 +135,7 @@ Mensural_ligature_engraver::transform_heads (vector<Grob_info> primitives)
          if (delta_pitch == 0)
            {
              nr->origin ()->warning
-               (_f ("prime interval within ligature -> skipping"));
+               (_ ("prime interval within ligature -> skipping"));
              at_beginning = true;
              primitive->set_property ("primitive",
                                       scm_from_int (MLP_NONE));
@@ -147,7 +147,7 @@ Mensural_ligature_engraver::transform_heads (vector<Grob_info> primitives)
          || duration_log > 0)
        {
          nr->origin ()->warning
-           (_f ("mensural ligature: duration none of Mx, L, B, S -> skipping"));
+           (_ ("mensural ligature: duration none of Mx, L, B, S -> skipping"));
          primitive->set_property ("primitive",
                                   scm_from_int (MLP_NONE));
          at_beginning = true;
@@ -195,7 +195,7 @@ Mensural_ligature_engraver::transform_heads (vector<Grob_info> primitives)
          else
            {
              nr->origin ()->warning
-               (_f ("semibrevis must be followed by another one -> skipping"));
+               (_ ("semibrevis must be followed by another one -> skipping"));
              primitive->set_property ("primitive",
                                       scm_from_int (MLP_NONE));
              at_beginning = true;
@@ -206,8 +206,8 @@ Mensural_ligature_engraver::transform_heads (vector<Grob_info> primitives)
       else if (duration_log == 0)
        {
          nr->origin ()->warning
-           (_f ("semibreves can only appear at the beginning of a ligature,\n"
-                "and there may be only zero or two of them"));
+           (_ ("semibreves can only appear at the beginning of a ligature,\n"
+               "and there may be only zero or two of them"));
          primitive->set_property ("primitive",
                                   scm_from_int (MLP_NONE));
          at_beginning = true;
@@ -233,10 +233,10 @@ Mensural_ligature_engraver::transform_heads (vector<Grob_info> primitives)
              else
                {
                  nr->origin ()->warning
-                   (_f ("invalid ligatura ending:\n"
-                        "when the last note is a descending brevis,\n"
-                        "the penultimate note must be another one,\n"
-                        "or the ligatura must be LB or SSB"));
+                   (_ ("invalid ligatura ending:\n"
+                       "when the last note is a descending brevis,\n"
+                       "the penultimate note must be another one,\n"
+                       "or the ligatura must be LB or SSB"));
                  primitive->set_property ("primitive", scm_from_int (MLP_NONE));
                  break;
                }
@@ -353,7 +353,7 @@ Mensural_ligature_engraver::propagate_properties (Spanner *ligature,
                                   scm_from_double (flexa_width));
          break;
        default:
-         programming_error (_f ("unexpected case fall-through"));
+         programming_error (_ ("unexpected case fall-through"));
          break;
        }
     }
index e4901a4eca96fa63c212d5be5f05dc0b59c012b8..4f9e64c96193291a4cd724e23c5d842e70b7d477 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2002--2007 Juergen Reuter <reuter@ipd.uka.de>,
+  (c) 2002--2009 Juergen Reuter <reuter@ipd.uka.de>,
   Pal Benko <benkop@freestart.hu>
 */
 
@@ -138,8 +138,8 @@ internal_brew_primitive (Grob *me)
       out = brew_flexa (me, delta_pitch, false, width, thickness);
       break;
     default:
-      programming_error (_f ("Mensural_ligature: "
-                            "unexpected case fall-through"));
+      programming_error (_ ("Mensural_ligature: "
+                           "unexpected case fall-through"));
       return Lookup::blank (Box (Interval (0, 0), Interval (0, 0)));
     }
 
@@ -189,7 +189,7 @@ internal_brew_primitive (Grob *me)
          out.add_stencil (join);
        }
       else
-       programming_error (_f ("Mensural_ligature: (join_right == 0)"));
+       programming_error (_ ("Mensural_ligature: (join_right == 0)"));
     }
 
 #if 0 /* what happend with the ledger lines? */
index 069e67d1e125a516b535cae52223222bb631da4a..aa75bcb9934b48ec11ad9c55c0f455c0efe09f8e 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1998--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 1998--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
 #include <cctype>
index 3e9f898993e9f076234e26acd56936e6961e1685..d6ad38e31555997a89e9f41b5855bdbc50cece37 100644 (file)
@@ -3,7 +3,7 @@
   
   source file of the GNU LilyPond music typesetter
   
-  (c) 2007 Han-Wen Nienhuys <hanwen@lilypond.org>
+  (c) 2007--2009 Han-Wen Nienhuys <hanwen@lilypond.org>
   
 */
 
index 9f9868c6a3f65b0102405d82fe2b24cc81e26fed..b6838215f5c421c80936fec689a23fa93f660c5c 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 1997--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
 #include "midi-item.hh"
index bcaefe7c181fc461fde48f8a6b9b744c865321cf..8b84798f6200ec454577493aed020b6dff2c0dbc 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 1997--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
 #include "midi-stream.hh"
@@ -41,7 +41,7 @@ Midi_stream::write (string str)
   size_t written = fwrite (str.data (), sz, n, out_file_);
 
   if (written != sz * n)
-    warning (_ ("cannot write to file: `%s'"));
+    warning (_f ("cannot write to file: `%s'", str.data ()));
 }
 
 void
index 782c3e2932ea3d6cbf10066f43b82547746c064b..70d3e31fd611d2c7c75327ae25652c7e3013bcdf 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
   Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
index 870340f83d352aab22e54e1d1a5a62a9738d41fe..4588dddc3a8a34f6a301c095fc6b4d14677b31c8 100644 (file)
@@ -5,7 +5,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2007 Nicolas Sceaux <nicolas.sceaux@free.fr>
+  (c) 2007--2009 Nicolas Sceaux <nicolas.sceaux@free.fr>
 */
 
 #include "international.hh"
@@ -15,9 +15,8 @@
 #include "paper-book.hh"
 
 static bool
-is_break (Grob *g)
+is_break (Grob *)
 {
-  (void) g; /* shutup warning */
   return false;
 }
 
@@ -35,11 +34,11 @@ Minimal_page_breaking::solve ()
 {
   vsize end = last_break_position ();
 
-  message ("Computing line breaks...");
+  message (_ ("Calculating line breaks..."));
   set_to_ideal_line_configuration (0, end);
   break_into_pieces (0, end, current_configuration (0));
 
-  message (_ ("Computing page breaks..."));
+  message (_ ("Calculating page breaks..."));
   vsize first_page_num = robust_scm2int (book_->paper_->c_variable ("first-page-number"), 1);
   Page_spacing_result res = pack_systems_on_least_pages (0, first_page_num);
   SCM lines = systems ();
index 85db2468cd3f51116640e95bc62c3433fb31c1b9..ee55a00c7ecb2478a04fabdb77682b6ce8689dde 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
   Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
index ad43d756bc38f4dd74846abc50707dbcdb293f9d..6972b44f926b95f6b9487ce3864aade4fb2f9cb6 100644 (file)
@@ -3,14 +3,13 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1999--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1999--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 #include <cctype>
 using namespace std;
 
 #include "modified-font-metric.hh"
 #include "pango-font.hh"
-#include "text-metrics.hh"
 #include "warn.hh"
 #include "stencil.hh"
 #include "main.hh"
@@ -102,62 +101,6 @@ Modified_font_metric::derived_mark () const
 {
 }
 
-/* TODO: put this klutchness behind ly:option switch.  */
-Box
-Modified_font_metric::tex_kludge (string text) const
-{
-  Interval ydims;
-  Real w = 0;
-  for (ssize i = 0; i < text.length (); i++)
-    {
-      switch (text[i])
-       {
-       case '\\':
-         /* Accent marks use width of base letter */
-         if (i < text.length () - 1)
-           {
-             if (text[i + 1]=='\'' || text[i + 1]=='`' || text[i + 1]=='"'
-                 || text[i + 1]=='^')
-               {
-                 i++;
-                 break;
-               }
-             /* For string width \\ is a \ and \_ is a _. */
-             if (text[i + 1]=='\\' || text[i + 1]=='_')
-               break;
-           }
-
-         for (i++; (i < text.length ()) && !isspace (text[i])
-                && text[i]!='{' && text[i]!='}'; i++)
-           ;
-
-         /* Compensate for the auto-increment in the outer loop. */
-         i--;
-         break;
-
-       case '{': // Skip '{' and '}'
-       case '}':
-         break;
-
-       default:
-         Box b = get_ascii_char ((unsigned char)text[i]);
-
-         /* Use the width of 'x' for unknown characters */
-         if (b[X_AXIS].length () == 0)
-           b = get_ascii_char ((unsigned char)'x');
-
-         w += b[X_AXIS].length ();
-         ydims.unite (b[Y_AXIS]);
-         break;
-       }
-    }
-
-  if (ydims.is_empty ())
-    ydims = Interval (0, 0);
-
-  return Box (Interval (0, w), ydims);
-}
-
 Stencil
 Modified_font_metric::text_stencil (string text) const
 {
@@ -179,25 +122,8 @@ Modified_font_metric::text_stencil (string text) const
 Box
 Modified_font_metric::text_dimension (string text) const
 {
-  SCM stext = ly_string2scm (text);
-  
   Box b;
-  if (get_output_backend_name () == "tex")
-    {
-      b = lookup_tex_text_dimension (orig_, stext);
-
-      if (!b[Y_AXIS].is_empty ())
-       {
-         b.scale (magnification_);
-         return b;
-       }
-
-      b = tex_kludge (text);
-      return b;
-    }
-
   Interval ydims;
-
   Real w = 0.0;
 
   for (ssize i = 0; i < text.length (); i++)
index 07943858a636a18b0248c7475d0c3229c43689e2..8938229e5952263eade2b9b9558cb37b337531d4 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "ly-module.hh"
 */
 
 static SCM
-module_define_closure_func (void *closure, SCM key, SCM val, SCM result)
+module_define_closure_func (void *closure,
+                           SCM key,
+                           SCM val,
+                           SCM /* result */)
 {
-  (void) result;
   SCM module = (SCM) closure;
   if (scm_variable_bound_p (val) == SCM_BOOL_T)
     scm_module_define (module, key, scm_variable_ref (val));
index 85155034c597bc6c3bd187d2960832a27f4b4387..591fc38adca3887f22258b7cfe3d2bdca9bbacf2 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1999--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1999--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "moment.hh"
@@ -111,7 +111,7 @@ LY_DEFINE (ly_moment_grace_numerator, "ly:moment-grace-numerator",
 
   Moment *ma = unsmob_moment (mom);
 
-  return scm_from_int (ma->grace_part_.numerator ());
+  return scm_from_int64 (ma->grace_part_.numerator ());
 }
 
 LY_DEFINE (ly_moment_grace_denominator, "ly:moment-grace-denominator",
@@ -121,7 +121,7 @@ LY_DEFINE (ly_moment_grace_denominator, "ly:moment-grace-denominator",
   LY_ASSERT_SMOB (Moment, mom, 1);
   Moment *ma = unsmob_moment (mom);
 
-  return scm_from_int (ma->grace_part_.denominator ());
+  return scm_from_int64 (ma->grace_part_.denominator ());
 }
 LY_DEFINE (ly_moment_main_numerator, "ly:moment-main-numerator",
           1, 0, 0, (SCM mom),
@@ -130,7 +130,7 @@ LY_DEFINE (ly_moment_main_numerator, "ly:moment-main-numerator",
   LY_ASSERT_SMOB (Moment, mom, 1);
   Moment *ma = unsmob_moment (mom);
 
-  return scm_from_int (ma->main_part_.numerator ());
+  return scm_from_int64 (ma->main_part_.numerator ());
 }
 
 LY_DEFINE (ly_moment_main_denominator, "ly:moment-main-denominator",
@@ -140,7 +140,7 @@ LY_DEFINE (ly_moment_main_denominator, "ly:moment-main-denominator",
   LY_ASSERT_SMOB (Moment, mom, 1);
   Moment *ma = unsmob_moment (mom);
 
-  return scm_from_int (ma->main_part_.denominator ());
+  return scm_from_int64 (ma->main_part_.denominator ());
 }
 
 LY_DEFINE (ly_moment_less_p, "ly:moment<?",
index 7516bf20e1a786eda78b6a4e3ce926e29b7df4e0..3ca7e520db3be7dc3178abcc36bb9628b92eaf53 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1999--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1999--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "moment.hh"
@@ -60,10 +60,10 @@ SCM
 Moment::as_scheme () const
 {
   return scm_list_5 (ly_symbol2scm ("ly:make-moment"),
-                    scm_from_int (main_part_.num ()),
-                    scm_from_int (main_part_.den ()),
-                    scm_from_int (grace_part_.num ()),
-                    scm_from_int (grace_part_.den ()));
+                    scm_from_int64 (main_part_.num ()),
+                    scm_from_int64 (main_part_.den ()),
+                    scm_from_int64 (grace_part_.num ()),
+                    scm_from_int64 (grace_part_.den ()));
 }
 
 SCM
@@ -129,13 +129,14 @@ Moment::operator %= (Moment const &src)
   grace_part_ %= src.main_part_;
 }
 
-int
+I64
 Moment::den () const
 {
+  /* TODO: ensure MSB == 0 here */
   return main_part_.den ();
 }
 
-int
+I64
 Moment::num () const
 {
   return main_part_.num ();
index fc5563854cc2295fc5407cd33c0aceb40790ee27..fa84af9c4bf85563a9048532441d01a00dbf43c8 100644 (file)
@@ -1,7 +1,7 @@
 /*
   multi_measure_rest-engraver.cc -- implement Multi_measure_rest_engraver
 
-  (c) 1998--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 1998--2009 Jan Nieuwenhuizen <janneke@gnu.org>
   Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
index d16a11e3dbddd9ba2655f44a7c79e67809477f37..7ce96126f47aa6d698c059d4bec04ca0b6e7359a 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1998--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 1998--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
 #include "multi-measure-rest.hh"
@@ -47,7 +47,7 @@ Multi_measure_rest::percent (SCM smob)
   Grob *me = unsmob_grob (smob);
   Spanner *sp = dynamic_cast<Spanner *> (me);
 
-  Stencil r = Percent_repeat_item_interface::x_percent (me, 1, 0.75, 1.6);
+  Stencil r = Percent_repeat_item_interface::x_percent (me, 1);
 
   // ugh copy & paste.
 
index 7815ee1092edfc063f7aa7b7a330c82b0ec83082..d093f25a9581a63045c3c6ca060668484f1427a9 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2004--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2004--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "music-function.hh"
index 789b2b243c87fd9dd704b482dd2bf77f8822ddd6..057d4f01ebcf9618739b282b0d28e8b715b3aa9e 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 
index ee8cbc1522f5a9b882f3323b3d3a961023467981..6a613feb5eaadf7f4798070c4b0c4296ad500bb0 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "music-output.hh"
index b6f0fbe7a2258e658701393a09a5f773e61979cb..c90acd5f17f68c968e204ae5e36876828f409f21 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "music.hh"
index 7a0d5863a09321e51bd0d019fc046339a50d21be..70a2eaa862c9c246dac7bc183511fa45ec1a4f65 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1998--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1998--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "music-sequence.hh"
index b6d0d616564c2e655464da371d642e94f5dfcf88..304497a4893589da0cfb528f8ab3338f81d70ced 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1998--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1998--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "music-wrapper-iterator.hh"
index 968c4447a7ab8c4f06129b2111e670f7a9968fc3..3e6a7d7c0b34518bcf1d9fa19098f2b635c5a622 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1998--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1998--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "music-wrapper.hh"
index 77c8f34335629a5c75c4d2e7e9614976e95e259e..f96d424b212432c9badeafdfb6a82974bed719d6 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "music.hh"
index ad28ca205e4aa17dd66de7255c84ba94d0c4d2b7..525823016668b2e4bd6007c5524b8bd3a5cc1ddc 100644 (file)
@@ -3,13 +3,14 @@
   
   source file of the GNU LilyPond music typesetter
   
-  (c) 2008 Han-Wen Nienhuys <hanwen@lilypond.org>
+  (c) 2008--2009 Han-Wen Nienhuys <hanwen@lilypond.org>
   
 */
 
 
 #include "engraver.hh"
 
+#include "hairpin.hh"
 #include "international.hh"
 #include "item.hh"
 #include "note-column.hh"
@@ -153,12 +154,14 @@ New_dynamic_engraver::process_music ()
       if (current_spanner_)
        {
          current_spanner_->set_bound (LEFT, script_);
-         set_nested_property (current_spanner_,
-                              scm_list_3 (ly_symbol2scm ("bound-details"),
-                                          ly_symbol2scm ("left"),
-                                          ly_symbol2scm ("attach-dir")
-                                          ),
-                              scm_from_int (RIGHT));
+
+         if (!Hairpin::has_interface (current_spanner_))
+           set_nested_property (current_spanner_,
+                                scm_list_3 (ly_symbol2scm ("bound-details"),
+                                            ly_symbol2scm ("left"),
+                                            ly_symbol2scm ("attach-dir")
+                                            ),
+                                scm_from_int (RIGHT));
 
        }
     }
@@ -217,7 +220,11 @@ ADD_TRANSLATOR (New_dynamic_engraver,
                "TextSpanner ",
 
                /* read */
-               "currentMusicalColumn ",
+               "crescendoSpanner "
+               "crescendoText "
+               "currentMusicalColumn "
+               "decrescendoSpanner "
+               "decrescendoText ",
 
                /* write */
                ""
index 71e8d9940845d39010a6e7906f6d075634771884..1cd7cd10e294cbbed8e1629261095df8a7eea7a1 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1998--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1998--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "engraver.hh"
@@ -125,10 +125,8 @@ New_fingering_engraver::acknowledge_stem (Grob_info inf)
 void
 New_fingering_engraver::add_script (Grob *head,
                                    Stream_event *event,
-                                   Stream_event *note)
+                                   Stream_event * /* note */)
 {
-  (void) note;
-
   Finger_tuple ft;
 
   Grob *g = make_item ("Script", event->self_scm ());
index 7abcc2acc9c7bc4f0e94905747bfb3d767c4576c..591c7bc9945437f886eae2e0dbb45fda8a21a125 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "note-collision.hh"
@@ -290,20 +290,22 @@ check_meshing_chords (Grob *me,
     {
       Grob *staff = Staff_symbol_referencer::get_staff_symbol (me);
       if (!Staff_symbol_referencer::on_line (staff, ups[0]))
-       /*
-         TODO: consider junking the else body.
-       */
-       if (to_boolean (me->get_property ("prefer-dotted-right")))
-         {
-           shift_amount = 0.5;
-         }
-       else
-         {
-           Grob *d = unsmob_grob (head_up->get_object ("dot"));
-           Grob *parent = d->get_parent (X_AXIS);
-           if (Dot_column::has_interface (parent))
-             Side_position_interface::add_support (parent, head_down);
-         }
+       {
+         /*
+           TODO: consider junking the else body.
+         */
+         if (to_boolean (me->get_property ("prefer-dotted-right")))
+           {
+             shift_amount = 0.5;
+           }
+         else
+           {
+             Grob *d = unsmob_grob (head_up->get_object ("dot"));
+             Grob *parent = d->get_parent (X_AXIS);
+             if (Dot_column::has_interface (parent))
+               Side_position_interface::add_support (parent, head_down);
+           }
+       }
     }
 
   /* For full or close half collisions, the right hand head may
index 67d4f78e8a0f90caa18779ddcace4a0f33612585..bb1cd21df142bb3cfcf28254d7b8513891ef00e9 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "note-column.hh"
index a499905d623181e9d81573c1e99f701deb3165da..59151f695035b1180e6cdb0176fc110c5da0ea87 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2000--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 2000--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
 #include "engraver.hh"
index bf0bd991774c99f37a664f23432c15812b000214..f3cd1f3d34b9677af7c75927e2330e4724ae73e6 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2006--2007 Han-Wen Nienhuys <hanwen@lilypond.org>
+  (c) 2006--2009 Han-Wen Nienhuys <hanwen@lilypond.org>
 
 */
 
index 1c03808819f8e63fcee449e2af8087c2780605e2..3f446eeff73d9caaffbcf351cf77acb8e31a033b 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "note-head.hh"
@@ -143,7 +143,9 @@ Note_head::calc_stem_attachment (SCM smob)
 
 
 ADD_INTERFACE (Note_head,
-              "Note head.",
+              "A note head.  There are many possible values for"
+              " @code{style}.  For a complete list, see"
+              " @ruser{Note head styles}.",
 
               /* properties */
               "note-names "
index 173961cb08d73b4a4e22183877478c034e02d688..426eb7d84489575c8976c7e17932ef12cf0a5906 100644 (file)
@@ -1,7 +1,7 @@
 /*
   note-heads-engraver.cc -- part of GNU LilyPond
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "engraver.hh"
index 1cf78ba5e9632e1b2419a2329c6b5d3c1e0df011..1e1e01acb15db4eac0a86cfd6dee02333192f2e5 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1999--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1999--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "engraver.hh"
index 435575da604b1b66eecf109cc0df4cf452c9e221..0a9f79f08a378ef8a325ca6b21c26b8e0ea88ecb 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1996--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 1996--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
 #include "performer.hh"
index 9dd4eec9060c8ea08332d878fadbccb3e923764e..1859344b948200728eaaf9282b635986f354c6f8 100644 (file)
@@ -3,7 +3,7 @@
   
   source file of the GNU LilyPond music typesetter
   
-  (c) 2006--2007 Han-Wen Nienhuys <hanwen@lilypond.org>
+  (c) 2006--2009 Han-Wen Nienhuys <hanwen@lilypond.org>
   
 */
 
index 730a3fe7d747178b8d0d5c7a40279ea825770b86..24e79cd313b8c190fc72b911f705a76190b49e37 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2001--2007  Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2001--2009  Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "note-spacing.hh"
index 173eb56d3794880dcdc152ab1c77883a99e0ae3f..2d33394fc80be313fdfaf8114abf222e063a721e 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2004--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2004--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "modified-font-metric.hh"
index b8f65b45cca2b543c22d409f52012d9424ac19fb..3d007be81130ea1bf76063ab9da61252931bcf77 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2004--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2004--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "open-type-font.hh"
@@ -91,25 +91,24 @@ get_otf_table (FT_Face face, string tag)
 }
 
 FT_Face
-open_ft_face (string str)
+open_ft_face (string str, FT_Long idx)
 {
   FT_Face face;
-  int error_code = FT_New_Face (freetype2_library, str.c_str (), 0, &face);
+  int error_code = FT_New_Face (freetype2_library, str.c_str (), idx, &face);
 
   if (error_code == FT_Err_Unknown_File_Format)
     error (_f ("unsupported font format: %s", str.c_str ()));
   else if (error_code)
     error (_f ("error reading font file %s: %s", 
               str.c_str (),
-              freetype_error_string (error_code).c_str ()
-              ));
+              freetype_error_string (error_code).c_str ()));
   return face;
 }
 
 SCM
 Open_type_font::make_otf (string str)
 {
-  FT_Face face = open_ft_face (str);
+  FT_Face face = open_ft_face (str, 0 /* index */);
   Open_type_font *otf = new Open_type_font (face);
 
   return otf->self_scm ();
index 1946af4d40765ba78954cce73388606c6581a465..6e5d20dfd6781e471accb7286133b76827bd58dd 100644 (file)
@@ -5,7 +5,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2006--2007 Joe Neeman <joeneeman@gmail.com>
+  (c) 2006--2009 Joe Neeman <joeneeman@gmail.com>
 */
 
 #include "international.hh"
@@ -20,8 +20,7 @@
 static bool
 is_break (Grob *g)
 {
-  (void) g; /* shutup warning */
-  return false;
+  return g->get_property ("page-break-permission") == ly_symbol2scm ("force");
 }
 
 Optimal_page_breaking::Optimal_page_breaking (Paper_book *pb)
@@ -33,15 +32,17 @@ Optimal_page_breaking::~Optimal_page_breaking ()
 {
 }
 
-SCM
-Optimal_page_breaking::solve ()
+// Solves the subproblem betwen the (END-1)th \pageBreak and the
+// ENDth \pageBreak.
+// Returns a vector of systems per page for the pages within this chunk.
+vector<vsize>
+Optimal_page_breaking::solve_chunk (vsize end)
 {
-  vsize end = last_break_position ();
-  vsize max_sys_count = max_system_count (0, end);
+  vsize max_sys_count = max_system_count (end-1, end);
   vsize first_page_num = robust_scm2int (book_->paper_->c_variable ("first-page-number"), 1);
   SCM forced_page_count = book_->paper_->c_variable ("page-count");
 
-  set_to_ideal_line_configuration (0, end);
+  set_to_ideal_line_configuration (end-1, end);
 
   Page_spacing_result best;
   vsize page_count = robust_scm2int (forced_page_count, 1);
@@ -52,9 +53,6 @@ Optimal_page_breaking::solve ()
   
   if (!scm_is_integer (forced_page_count))
     {
-      /* find out the ideal number of pages */
-      message (_ ("Finding the ideal number of pages..."));
-  
       if (systems_per_page () > 0)
        best = space_systems_with_fixed_number_per_page (0, first_page_num);
       else
@@ -66,6 +64,8 @@ Optimal_page_breaking::solve ()
   
       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);
     }
   else
     {
@@ -77,19 +77,17 @@ Optimal_page_breaking::solve ()
       min_sys_count = page_count;
     }
 
-  if (page_count == 1)
-    message (_ ("Fitting music on 1 page..."));
-  else if (scm_is_integer (forced_page_count))
-    message (_f ("Fitting music on %d pages...", (int)page_count));
+  if (page_count == 1 || scm_is_integer (forced_page_count))
+    progress_indication (_f ("[%d: %d pages]", (int) end, (int) page_count));
   else
-    message (_f ("Fitting music on %d or %d pages...", (int)page_count-1, (int)page_count));
+    progress_indication (_f ("[%d: %d or %d pages]", (int) end, (int) page_count-1, (int)page_count));
 
   /* try a smaller number of systems than the ideal number for line breaking */
   Line_division bound = ideal_line_division;
   for (vsize sys_count = ideal_sys_count; --sys_count >= min_sys_count;)
     {
       Page_spacing_result best_for_this_sys_count;
-      set_current_breakpoints (0, end, sys_count, Line_division (), bound);
+      set_current_breakpoints (end-1, end, sys_count, Line_division (), bound);
 
       for (vsize i = 0; i < current_configuration_count (); i++)
        {
@@ -101,27 +99,34 @@ Optimal_page_breaking::solve ()
          else
            cur = space_systems_on_n_or_one_more_pages (i, page_count-1, first_page_num);
 
-         if (cur.demerits_ < best_for_this_sys_count.demerits_ || isinf (best_for_this_sys_count.demerits_))
+         if (cur.demerits_ < best_for_this_sys_count.demerits_)
            {
              best_for_this_sys_count = cur;
              bound = current_configuration (i);
            }
        }
 
-      if (best_for_this_sys_count.demerits_ < best.demerits_ || isinf (best.demerits_))
+      if (best_for_this_sys_count.demerits_ < best.demerits_)
        {
          best = best_for_this_sys_count;
          best_division = bound;
        }
 
-      /* if the pages are stretched on average, stop trying to reduce sys_count */
-      if (best_for_this_sys_count.page_count () < page_count
-         && best_for_this_sys_count.average_force () > 0)
-       break;
-       
+      /* Check to see if we already have too few systems. There are two ways
+        we check this: if we are trying one less than the ideal number of pages
+        and the pages are stretched on average then we have too
+        few systems. If the spacing is worse than BAD_SPACING_PENALTY, then we
+        have too few systems. In either case, though, we need to continue reducing
+        the number of systems if max-systems-per-page requires it. */
+      if (!(best.system_count_status_ & SYSTEM_COUNT_TOO_MANY))
+       {
+         if (best_for_this_sys_count.page_count () < page_count
+             && best_for_this_sys_count.average_force () > 0)
+           break;
 
-      if (isinf (best_for_this_sys_count.demerits_))
-       break;
+         if (best_for_this_sys_count.demerits_ >= BAD_SPACING_PENALTY)
+           break;
+       }
     }
 
   /* try a larger number of systems than the ideal line breaking number. This
@@ -131,7 +136,7 @@ Optimal_page_breaking::solve ()
   for (vsize sys_count = ideal_sys_count+1; sys_count <= max_sys_count; sys_count++)
     {
       Real best_demerits_for_this_sys_count = infinity_f;
-      set_current_breakpoints (0, end, sys_count, bound);
+      set_current_breakpoints (end-1, end, sys_count, bound);
 
       for (vsize i = 0; i < current_configuration_count (); i++)
        {
@@ -143,25 +148,41 @@ Optimal_page_breaking::solve ()
          else
            cur = space_systems_on_n_pages (i, page_count, first_page_num);
 
-         if (cur.demerits_ < best.demerits_ || isinf (best.demerits_))
+         if (cur.demerits_ < best.demerits_)
            {
              best = cur;
              best_division = current_configuration (i);
            }
 
-         if (cur.demerits_ < best_demerits_for_this_sys_count || isinf (best_demerits_for_this_sys_count))
+         if (cur.demerits_ < best_demerits_for_this_sys_count)
            {
              best_demerits_for_this_sys_count = cur.demerits_;
              bound = current_configuration (i);
            }
        }
-      if (isinf (best_demerits_for_this_sys_count))
+      if (best_demerits_for_this_sys_count >= BAD_SPACING_PENALTY
+       && !(best.system_count_status_ & SYSTEM_COUNT_TOO_FEW))
        break;
     }
+  break_into_pieces (end-1, end, best_division);
+
+  return best.systems_per_page_;
+}
+
+SCM
+Optimal_page_breaking::solve ()
+{
+  vector<vsize> systems_per_page;
+
+  message (_f ("Solving %d page-breaking chunks...", last_break_position ()));
+  for (vsize end = 1; end <= last_break_position (); ++end)
+    {
+      vector<vsize> chunk_systems = solve_chunk (end);
+      systems_per_page.insert (systems_per_page.end (), chunk_systems.begin (), chunk_systems.end ());
+    }
 
   message (_ ("Drawing systems..."));
-  break_into_pieces (0, end, best_division);
   SCM lines = systems ();
-  return make_pages (best.systems_per_page_, lines);
+  return make_pages (systems_per_page, lines);
 }
 
index 82218145315cfc32cdd3b5c01b2694a130c45c6e..3ea133e483570520878b805c5a545bd3c1919244 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2004--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2004--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "text-interface.hh"
index 9682d43651cb33d84943f03f2d6aa52124b85304..f4a8a8b91c839bbaefeea66eabf1aedd81844ec7 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2000--2007 Han-Wen Nienhuys
+  (c) 2000--2009 Han-Wen Nienhuys
 */
 
 #include "protected-scm.hh"
index 56e77256755ce6e265536b4c164d87cfe3122803..f3b7a1cf0a1b36543072d5a5a5331a1353612b22 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "output-def.hh"
index a849afe69bf80bff698e4d09c91bb7ba6fa3ee24..f9fbda9fb6d3335dd90ad623ce917f5d06510f74 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "output-def.hh"
@@ -92,8 +92,6 @@ Output_def::print_smob (SCM s, SCM p, scm_print_state *)
   Output_def * def = unsmob_output_def (s);
   scm_puts ("#< ", p);
   scm_puts (def->class_name (), p);
-  
-  (void)def;
   scm_puts (">", p);
   return 1;
 }
index cbef4235a16da1ca50f9c75625c9ecd129146c4e..d7f075d32196eb2a502fd4fc4410040b81465223 100644 (file)
@@ -3,7 +3,7 @@
   
   source file of the GNU LilyPond music typesetter
   
-  (c) 2000--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2000--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
   
  */
 
index 8b698942072ebf9ddc8459aa01360dd51dd52a2d..e258fe685690740ef60076b90d538ef705d69637 100644 (file)
@@ -4,7 +4,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2006--2007 Joe Neeman <joeneeman@gmail.com>
+  (c) 2006--2009 Joe Neeman <joeneeman@gmail.com>
 */
 
 #include "paper-book.hh"
index 12372c1e49874cd66990e98d0d467be5f6dbbab7..f19079ce35fa049de26470daf4f4d3c5fac79c6b 100644 (file)
@@ -4,7 +4,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2006--2007 Joe Neeman <joeneeman@gmail.com>
+  (c) 2006--2009 Joe Neeman <joeneeman@gmail.com>
 */
 
 #include "page-breaking.hh"
@@ -101,9 +101,20 @@ Page_breaking::Page_breaking (Paper_book *pb, Break_predicate is_break)
   ragged_ = to_boolean (pb->paper_->c_variable ("ragged-bottom"));
   ragged_last_ = to_boolean (pb->paper_->c_variable ("ragged-last-bottom"));
   page_top_space_ = robust_scm2double (pb->paper_->c_variable ("page-top-space"), 0);
-  systems_per_page_ = robust_scm2int (pb->paper_->c_variable ("systems-per-page"), 0);
-  max_systems_per_page_ = robust_scm2int (pb->paper_->c_variable ("max-systems-per-page"), 0);
-  min_systems_per_page_ = robust_scm2int (pb->paper_->c_variable ("min-systems-per-page"), 0);
+  systems_per_page_ = max (0, robust_scm2int (pb->paper_->c_variable ("systems-per-page"), 0));
+  max_systems_per_page_ = max (0, robust_scm2int (pb->paper_->c_variable ("max-systems-per-page"), 0));
+  min_systems_per_page_ = max (0, robust_scm2int (pb->paper_->c_variable ("min-systems-per-page"), 0));
+
+  if (systems_per_page_ && (max_systems_per_page_ || min_systems_per_page_))
+    {
+      warning (_f ("ignoring min-systems-per-page and max-systems-per-page because systems-per-page was set"));
+      min_systems_per_page_ = max_systems_per_page_ = 0;
+    }
+  if (max_systems_per_page_ && min_systems_per_page_ > max_systems_per_page_)
+    {
+      warning (_f ("min-systems-per-page is larger than max-systems-per-page, ignoring both values"));
+      min_systems_per_page_ = max_systems_per_page_ = 0;
+    }
 
   create_system_list ();
   find_chunks_and_breaks (is_break);
@@ -170,8 +181,23 @@ Page_breaking::too_few_lines (int line_count) const
 Real
 Page_breaking::line_count_penalty (int line_count) const
 {
-  // TODO: also check min_systems_per_page (once we support it in Page_spacer)
-  return too_many_lines (line_count) ? BAD_SPACING_PENALTY : 0;
+  if (too_many_lines (line_count))
+    return (line_count - max_systems_per_page ()) * TERRIBLE_SPACING_PENALTY;
+  if (too_few_lines (line_count))
+    return (min_systems_per_page () - line_count) * TERRIBLE_SPACING_PENALTY;
+
+  return 0;
+}
+
+int
+Page_breaking::line_count_status (int line_count) const
+{
+  if (too_many_lines (line_count))
+    return SYSTEM_COUNT_TOO_MANY;
+  if (too_few_lines (line_count))
+    return SYSTEM_COUNT_TOO_FEW;
+
+  return SYSTEM_COUNT_OK;
 }
 
 /* translate indices into breaks_ into start-end parameters for the line breaker */
@@ -252,6 +278,7 @@ Page_breaking::systems ()
 Real
 Page_breaking::page_height (int page_num, bool last) const
 {
+  bool last_part = ly_scm2bool (book_->paper_->c_variable ("is-last-bookpart"));
   SCM mod = scm_c_resolve_module ("scm page");
   SCM calc_height = scm_c_module_lookup (mod, "calc-printable-height");
   SCM make_page = scm_c_module_lookup (mod, "make-page");
@@ -262,7 +289,8 @@ Page_breaking::page_height (int page_num, bool last) const
   SCM page = scm_apply_0 (make_page, scm_list_n (
                   book_->self_scm (),
                   ly_symbol2scm ("page-number"), scm_from_int (page_num),
-                  ly_symbol2scm ("is-last"), scm_from_bool (last),
+                  ly_symbol2scm ("is-last-bookpart"), scm_from_bool (last_part),
+                  ly_symbol2scm ("is-bookpart-last-page"), scm_from_bool (last),
                   SCM_UNDEFINED));
   SCM height = scm_apply_1 (calc_height, page, SCM_EOL);
   return scm_to_double (height) - page_top_space_;
@@ -294,21 +322,24 @@ Page_breaking::make_pages (vector<vsize> lines_per_page, SCM systems)
   SCM book = book_->self_scm ();
   int first_page_number
     = robust_scm2int (book_->paper_->c_variable ("first-page-number"), 1);
+  bool last_bookpart = ly_scm2bool (book_->paper_->c_variable ("is-last-bookpart"));
   SCM ret = SCM_EOL;
-  SCM label_page_table = SCM_EOL;
+  SCM label_page_table = book_->top_paper ()->c_variable ("label-page-table");
+  if (label_page_table == SCM_UNDEFINED)
+    label_page_table = SCM_EOL;
 
   for (vsize i = 0; i < lines_per_page.size (); i++)
     {
       SCM page_num = scm_from_int (i + first_page_number);
-      SCM last = scm_from_bool (i == lines_per_page.size () - 1);
-      SCM rag = scm_from_bool (ragged () || (to_boolean (last)
-                                            && ragged_last ()));
+      bool partbook_last_page = (i == lines_per_page.size () - 1);
+      SCM rag = scm_from_bool (ragged () || ( partbook_last_page && ragged_last ()));
       SCM line_count = scm_from_int (lines_per_page[i]);
       SCM lines = scm_list_head (systems, line_count);
       SCM page = scm_apply_0 (make_page,
-                             scm_list_n (book, lines, page_num,
-                                         rag, last, SCM_UNDEFINED));
-
+                             scm_list_n (book, lines, page_num, rag,
+                                         scm_from_bool (last_bookpart),
+                                         scm_from_bool (partbook_last_page),
+                                         SCM_UNDEFINED));
       /* collect labels */
       for (SCM l = lines ; scm_is_pair (l)  ; l = scm_cdr (l))
        {
@@ -330,7 +361,7 @@ Page_breaking::make_pages (vector<vsize> lines_per_page, SCM systems)
       ret = scm_cons (page, ret);
       systems = scm_list_tail (systems, line_count);
     }
-  book_->paper_->set_variable (ly_symbol2scm ("label-page-table"), label_page_table);
+  book_->top_paper ()->set_variable (ly_symbol2scm ("label-page-table"), label_page_table);
   ret = scm_reverse (ret);
   return ret;
 }
@@ -682,11 +713,10 @@ Page_breaking::min_page_count (vsize configuration, vsize first_page_num)
        + ((cur_rod_height > 0) ? cached_line_details_[i].padding_: 0);
       Real next_spring_height = cur_spring_height + cached_line_details_[i].space_;
       Real next_height = next_rod_height + (ragged () ? next_spring_height : 0);
+      int next_line_count = line_count + cached_line_details_[i].compressed_nontitle_lines_count_;
 
-      line_count += cached_line_details_[i].compressed_nontitle_lines_count_;
-
-      if ((next_height > cur_page_height && cur_rod_height > 0)
-         || too_many_lines (line_count)
+      if ((!too_few_lines (line_count) && (next_height > cur_page_height && cur_rod_height > 0))
+         || too_many_lines (next_line_count)
          || (i > 0
              && cached_line_details_[i-1].page_permission_ == ly_symbol2scm ("force")))
        {
@@ -700,6 +730,7 @@ Page_breaking::min_page_count (vsize configuration, vsize first_page_num)
        {
          cur_rod_height = next_rod_height;
          cur_spring_height = next_spring_height;
+         line_count = next_line_count;
        }
     }
 
@@ -718,7 +749,8 @@ Page_breaking::min_page_count (vsize configuration, vsize first_page_num)
 
   cur_page_height = page_height (first_page_num + ret - 1, true);
   Real cur_height = cur_rod_height + ((ragged_last () || ragged ()) ? cur_spring_height : 0);
-  if (cur_height > cur_page_height
+  if (!too_few_lines (line_count - cached_line_details_.back ().compressed_nontitle_lines_count_)
+      && cur_height > cur_page_height
       /* don't increase the page count if the last page had only one system */
       && cur_rod_height > cached_line_details_.back ().extent_.length ())
     ret++;
@@ -892,23 +924,29 @@ Page_breaking::space_systems_with_fixed_number_per_page (vsize configuration,
 
       res.systems_per_page_.push_back (line - page_first_line);
 
-      // Don't say that the force is infinite even if it is: if we were told to
-      // put a certain number of systems on a page then we will, even if it's bad.
-      res.force_.push_back (min (space.force_, BAD_SPACING_PENALTY));
+      res.force_.push_back (space.force_);
       res.penalty_ += cached_line_details_[line-1].page_penalty_;
+      if (system_count_on_this_page != systems_per_page_)
+       {
+         res.penalty_ += TERRIBLE_SPACING_PENALTY;
+         res.system_count_status_ |= ((system_count_on_this_page < systems_per_page_))
+           ? SYSTEM_COUNT_TOO_FEW : SYSTEM_COUNT_TOO_MANY;
+       }
+
       page_first_line = line;
     }
 
   /* Recalculate forces for the last page because we know now that is
      really the last page. */
   space.resize (page_height (first_page_num + page, true));
-  res.force_.back () = min(space.force_, BAD_SPACING_PENALTY);
+  res.force_.back () = space.force_;
   return finalize_spacing_result (configuration, res);
 }
 
 Page_spacing_result
 Page_breaking::pack_systems_on_least_pages (vsize configuration, vsize first_page_num)
 {
+  // TODO: add support for min/max-systems-per-page.
   Page_spacing_result res;
   vsize page = 0;
   vsize page_first_line = 0;
@@ -978,7 +1016,7 @@ Page_breaking::finalize_spacing_result (vsize configuration, Page_spacing_result
 
   Real line_force = 0;
   Real line_penalty = 0;
-  Real page_force = 0;
+  Real page_demerits = res.penalty_;
   Real page_weighting = robust_scm2double (book_->paper_->c_variable ("page-spacing-weight"), 10);
 
   for (vsize i = 0; i < uncompressed_line_details_.size (); i++)
@@ -990,10 +1028,8 @@ Page_breaking::finalize_spacing_result (vsize configuration, Page_spacing_result
   for (vsize i = 0; i < res.force_.size (); i++)
     {
       Real f = res.force_[i];
-      if (isinf (f) && res.systems_per_page_[i] == 1)
-       f = BAD_SPACING_PENALTY;
 
-      page_force += f * f;
+      page_demerits += min(f*f, BAD_SPACING_PENALTY);
     }
 
   /* for a while we tried averaging page and line forces across pages instead
@@ -1001,7 +1037,7 @@ Page_breaking::finalize_spacing_result (vsize configuration, Page_spacing_result
      with a very bad page force (for example because of a forced page break),
      the page breaker will put in a _lot_ of pages so that the bad force
      becomes averaged out over many pages. */
-  res.demerits_ = line_force + line_penalty + (page_force + res.penalty_) * page_weighting;
+  res.demerits_ = line_force + line_penalty + page_demerits * page_weighting;
   return res;
 
 }
@@ -1018,13 +1054,18 @@ Page_breaking::space_systems_on_1_page (vector<Line_details> const &lines, Real
 {
   Page_spacing space (page_height, page_top_space_);
   Page_spacing_result ret;
+  int line_count = 0;
 
   for (vsize i = 0; i < lines.size (); i++)
-    space.append_system (lines[i]);
+    {
+      space.append_system (lines[i]);
+      line_count += lines[i].compressed_nontitle_lines_count_;
+    }
 
   ret.systems_per_page_.push_back (lines.size ());
   ret.force_.push_back (ragged ? min (space.force_, 0.0) : space.force_);
-  ret.penalty_ = lines.back ().page_penalty_ + lines.back ().turn_penalty_;
+  ret.penalty_ = line_count_penalty (line_count) + lines.back ().page_penalty_ + lines.back ().turn_penalty_;
+  ret.system_count_status_ |= line_count_status (line_count);
 
   /* don't do finalize_spacing_result () because we are only an internal function */
   return ret;
@@ -1056,6 +1097,17 @@ Page_breaking::space_systems_on_2_pages (vsize configuration, vsize first_page_n
 
   vector<Real> page1_force;
   vector<Real> page2_force;
+
+  // page1_penalty and page2_penalty store the penalties based
+  // on min-systems-per-page and max-systems-per-page.
+  vector<Real> page1_penalty;
+  vector<Real> page2_penalty;
+
+  // page1_status and page2_status keep track of whether the min-systems-per-page
+  // and max-systems-per-page constraints are satisfied.
+  vector<int> page1_status;
+  vector<int> page2_status;
+
   Page_spacing page1 (page1_height, page_top_space_);
   Page_spacing page2 (page2_height, page_top_space_);
   int page1_line_count = 0;
@@ -1063,6 +1115,10 @@ Page_breaking::space_systems_on_2_pages (vsize configuration, vsize first_page_n
 
   page1_force.resize (cached_line_details_.size () - 1, infinity_f);
   page2_force.resize (cached_line_details_.size () - 1, infinity_f);
+  page1_penalty.resize (cached_line_details_.size () - 1, infinity_f);
+  page2_penalty.resize (cached_line_details_.size () - 1, infinity_f);
+  page1_status.resize (cached_line_details_.size () - 1, 0);
+  page2_status.resize (cached_line_details_.size () - 1, 0);
 
   /* find the page 1 and page 2 forces for each page-breaking position */
   for (vsize i = 0; i < page1_force.size (); i++)
@@ -1072,19 +1128,17 @@ Page_breaking::space_systems_on_2_pages (vsize configuration, vsize first_page_n
       page1_line_count += cached_line_details_[i].compressed_nontitle_lines_count_;
       page2_line_count += cached_line_details_[cached_line_details_.size () - 1 - i].compressed_nontitle_lines_count_;
 
-      // NOTE: we treat max-systems-per-page and min-systems-per-page as soft
-      // constraints. That is, we penalize harshly when they don't happen
-      // but we don't completely reject.
-      page1_force[i] = line_count_penalty (page1_line_count) 
-       + (ragged1 && page1.force_ < 0 && i > 0) ? infinity_f : page1.force_;
+      page1_force[i] = (ragged1 && page1.force_ < 0 && i > 0) ? infinity_f : page1.force_;
+      page1_penalty[i] = line_count_penalty (page1_line_count);
+      page1_status[i] = line_count_status (page1_line_count);
 
       if (ragged2)
        page2_force[page2_force.size () - 1 - i] =
          (page2.force_ < 0 && i + 1 < page1_force.size ()) ? infinity_f : 0;
       else
        page2_force[page2_force.size () - 1 - i] = page2.force_;
-
-      page2_force[page2_force.size () - 1 - i] += line_count_penalty (page2_line_count);
+      page2_penalty[page2_penalty.size () - 1 - i] = line_count_penalty (page2_line_count);
+      page2_status[page2_penalty.size () - 1 - i] = line_count_status (page2_line_count);
     }
 
   /* find the position that minimises the sum of the page forces */
@@ -1093,8 +1147,12 @@ Page_breaking::space_systems_on_2_pages (vsize configuration, vsize first_page_n
   for (vsize i = 0; i < page1_force.size (); i++)
     {
       Real f = page1_force[i] * page1_force[i] + page2_force[i] * page2_force[i];
-      Real uneven = 2 * (page1_force[i] - page2_force[i]);
-      Real dem = uneven * uneven + f
+
+      // NOTE: we treat max-systems-per-page and min-systems-per-page as soft
+      // constraints. That is, we penalize harshly when they don't happen
+      // but we don't completely reject.
+      Real dem = f
+       + page1_penalty[i] + page2_penalty[i]
        + cached_line_details_[i+1].page_penalty_
        + cached_line_details_.back ().page_penalty_ + cached_line_details_.back ().turn_penalty_;
       if (dem < best_demerits)
@@ -1109,9 +1167,11 @@ Page_breaking::space_systems_on_2_pages (vsize configuration, vsize first_page_n
   ret.systems_per_page_.push_back (cached_line_details_.size () - best_sys_count);
   ret.force_.push_back (page1_force[best_sys_count-1]);
   ret.force_.push_back (page2_force[best_sys_count-1]);
+  ret.system_count_status_ = page1_status[best_sys_count-1] | page2_status[best_sys_count-1];
   ret.penalty_ = cached_line_details_[best_sys_count-1].page_penalty_
     + cached_line_details_.back ().page_penalty_
-    + cached_line_details_.back ().turn_penalty_;
+    + cached_line_details_.back ().turn_penalty_
+    + page1_penalty[best_sys_count-1] + page2_penalty[best_sys_count-1];
 
   /* don't do finalize_spacing_result () because we are only an internal function */
   return ret;
index f2450be0f3240535a3a8aed6cc1e1d329b67fb1d..c0563c87d4835de6523007fc0ea3813bc7370396 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2007 Nicolas Sceaux <nicolas.sceaux@free.fr>
+  (c) 2007--2009 Nicolas Sceaux <nicolas.sceaux@free.fr>
 */
 
 #include "page-marker.hh"
index 11b19999a1597ac79189a23d8f94f948625b172e..08d58cd60c281eba949235d5b8b94e3129e52454 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2007 Nicolas Sceaux <nicolas.sceaux@free.fr>
+  (c) 2007--2009 Nicolas Sceaux <nicolas.sceaux@free.fr>
 */
 
 #include "page-marker.hh"
index 72164cc2bd7758c405d89a91dbba03cd83e6b497..19ae1d9b76085bf517606845f805daf90e80a938 100644 (file)
@@ -3,16 +3,18 @@
   
   source file of the GNU LilyPond music typesetter
   
-  (c) 2007 Han-Wen Nienhuys <hanwen@lilypond.org>
+  (c) 2007--2009 Han-Wen Nienhuys <hanwen@lilypond.org>
   
 */
 
 #include "page-spacing-result.hh"
+#include <cstdio>
 
 Page_spacing_result::Page_spacing_result ()
 {
   penalty_ = 0;
   demerits_ = infinity_f;
+  system_count_status_ = SYSTEM_COUNT_OK;
 }
 
 vsize
index c4266935cea4686966edce2eee60746b7dfcd049..c60f0d88b1d171d3df4608169575ea7cf6331cfa 100644 (file)
@@ -4,7 +4,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2006--2007 Joe Neeman <joeneeman@gmail.com>
+  (c) 2006--2009 Joe Neeman <joeneeman@gmail.com>
 */
 
 #include "page-spacing.hh"
@@ -198,38 +198,44 @@ Page_spacer::calc_subproblem (vsize page, vsize line)
   for (vsize page_start = line+1; page_start > page && page_start--;)
     {
       Page_spacing_node const *prev = page > 0 ? &state_.at (page_start-1, page-1) : 0;
-      line_count += lines_[page_start].compressed_nontitle_lines_count_;
-
-      if (breaker_->too_many_lines (line_count))
-       break;
 
       space.prepend_system (lines_[page_start]);
-      if (page_start < line && (isinf (space.force_) || (space.force_ < 0 && ragged)))
+
+      // This 'if' statement is a little hard to parse. It won't consider this configuration
+      // if it is overfull unless the current configuration is the first one with this start
+      // point. We also make an exception (and consider this configuration) if the previous
+      // configuration we tried had fewer lines than min-systems-per-page.
+      if (!breaker_->too_few_lines (line_count)
+         && page_start < line
+         && (isinf (space.force_) || (space.force_ < 0 && ragged)))
        break;
 
+      line_count += lines_[page_start].compressed_nontitle_lines_count_;
       if (page > 0 || page_start == 0)
        {
-         if (line == lines_.size () - 1 && ragged_last_ && space.force_ > 0)
+         if (line == lines_.size () - 1 && ragged && last && space.force_ > 0)
            space.force_ = 0;
 
-         /* we may have to deal with single lines that are taller than a page, in
-            which case we can't make the force infinite, but we should make
-            it very large. */
+         Real demerits = space.force_ * space.force_;
+         /* If a single line is taller than a page, we need to consider it as
+            a possible solution (but we give it a very bad score). */
          if (isinf (space.force_) && page_start == line)
-           space.force_ = -BAD_SPACING_PENALTY;
+           demerits = BAD_SPACING_PENALTY;
+         demerits += (prev ? prev->demerits_ : 0);
 
-         Real dem = fabs (space.force_) + (prev ? prev->demerits_ : 0);
-         Real penalty = 0;
+         Real penalty = breaker_->line_count_penalty (line_count);
          if (page_start > 0)
-           penalty = lines_[page_start-1].page_penalty_
+           penalty += lines_[page_start-1].page_penalty_
              + (page % 2 == 0) ? lines_[page_start-1].turn_penalty_ : 0;
 
-         dem += penalty;
-         if (dem < cur.demerits_ || page_start == line)
+         demerits += penalty;
+         if (demerits < cur.demerits_ || page_start == line)
            {
-             cur.demerits_ = dem;
+             cur.demerits_ = demerits;
              cur.force_ = space.force_;
              cur.penalty_ = penalty + (prev ? prev->penalty_ : 0);
+             cur.system_count_status_ = breaker_->line_count_status (line_count)
+               | (prev ? prev->system_count_status_ : 0);
              cur.prev_ = page_start - 1;
            }
        }
index 02a437d863a60a366b9e2ce0875f31fd30878d12..82cb4dd1a9a54bb71ec612ce0ce9014d4de1bf26 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2006--2007 Joe Neeman <joeneeman@gmail.com>
+  (c) 2006--2009 Joe Neeman <joeneeman@gmail.com>
 */
 
 #include "engraver.hh"
index 75e1a3bbf28204e5d6a52e36fba7a793d27ec020..97b58467b60bab8ca34cdbd0b6d118dd9f082afd 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2006--2007 Joe Neeman <joeneeman@gmail.com>
+  (c) 2006--2009 Joe Neeman <joeneeman@gmail.com>
 */
 
 #include "page-turn-page-breaking.hh"
index 20f15764b519440c8f0459b8d0933425153bca20..b8772bc4c9f2f7ae3a51a012538d7d9858abefb7 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2004--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2004--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #define PANGO_ENABLE_BACKEND // ugh, why necessary?
@@ -30,7 +30,8 @@ LY_DEFINE (ly_pango_font_p, "ly:pango-font?",
 LY_DEFINE (ly_pango_font_physical_fonts, "ly:pango-font-physical-fonts",
           1, 0, 0,
           (SCM f),
-          "Return alist of @code{(PSNAME . FILENAME)} tuples.")
+          "Return alist of @code{(ps-name file-name font-index)} lists"
+          " for Pango font@tie{}@var{f}.")
 {
   Pango_font *pf = dynamic_cast<Pango_font *> (unsmob_metrics (f));
 
index 43766881c28e6ba7e0d9c7da6e735ba23678363f..d02b63ae7a01ac0a63358f637616d4733af0f4a6 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2004--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2004--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #define PANGO_ENABLE_BACKEND // ugh, why necessary?
@@ -11,8 +11,9 @@
 #include <freetype/ftxf86.h>
 
 #include <map>
+#include <cstdio>
 
-/* Ugh.  */
+// Ugh.
 
 #include "pango-font.hh"
 #include "dimensions.hh"
 #if HAVE_PANGO_FT2
 #include "stencil.hh"
 
-Pango_font::Pango_font (PangoFT2FontMap *fontmap,
+Pango_font::Pango_font (PangoFT2FontMap * /* fontmap */,
                        PangoFontDescription const *description,
                        Real output_scale)
 {
-  (void) fontmap;
-  
   physical_font_tab_ = scm_c_make_hash_table (11);
   PangoDirection pango_dir = PANGO_DIRECTION_LTR;
-  context_
-    = pango_ft2_get_context (PANGO_RESOLUTION, PANGO_RESOLUTION);
+  context_ = pango_ft2_get_context (PANGO_RESOLUTION,
+                                   PANGO_RESOLUTION);
 
   pango_description_ = pango_font_description_copy (description);
   attribute_list_ = pango_attr_list_new ();
 
-  /*
-    urgh. I don't understand this. Why isn't this 1/(scale *
-    resolution * output_scale)
-
-    --hwn
-  */
+  // urgh. I don't understand this. Why isn't this 1/(scale *
+  // resolution * output_scale)
+  //
+  //  --hwn
   output_scale_ = output_scale;
-  scale_ = INCH_TO_BP / (Real (PANGO_SCALE) * Real (PANGO_RESOLUTION) * output_scale);
+  scale_ = INCH_TO_BP
+          / (Real (PANGO_SCALE) * Real (PANGO_RESOLUTION) * output_scale);
 
-  /*
-    ugh. Should make this configurable.
-  */
+  // ugh. Should make this configurable.
   pango_context_set_language (context_, pango_language_from_string ("en_US"));
   pango_context_set_base_dir (context_, pango_dir);
   pango_context_set_font_description (context_, description);
@@ -67,11 +63,14 @@ Pango_font::~Pango_font ()
 }
 
 void
-Pango_font::register_font_file (string filename, string ps_name)
+Pango_font::register_font_file (string filename,
+                               string ps_name,
+                               int face_index)
 {
   scm_hash_set_x (physical_font_tab_,
                  ly_string2scm (ps_name),
-                 ly_string2scm (filename));
+                 scm_list_2 (ly_string2scm (filename),
+                             scm_from_int (face_index)));
 }
 
 void
@@ -80,32 +79,33 @@ Pango_font::derived_mark () const
   scm_gc_mark (physical_font_tab_);
 }
 
-
 void
-get_glyph_index_name (char *s, FT_ULong code)
+get_glyph_index_name (char *s,
+                     FT_ULong code)
 {
   sprintf (s, "glyphIndex%lX", code);
 }
 
 void
-get_unicode_name (char*s, FT_ULong code)
+get_unicode_name (char *s,
+                 FT_ULong code)
 {
   if (code > 0xFFFF)
-    sprintf (s,  "u%lX", code);
+    sprintf (s, "u%lX", code);
   else
-    sprintf (s,  "uni%04lX", code);
+    sprintf (s, "uni%04lX", code);
 }
 
-
 Stencil
-Pango_font::pango_item_string_stencil (PangoItem const *item, string str,
+Pango_font::pango_item_string_stencil (PangoItem const *item,
+                                      string str,
                                       bool tight_bbox) const
 {
   const int GLYPH_NAME_LEN = 256;
   char glyph_name[GLYPH_NAME_LEN];
   PangoAnalysis const *pa = &(item->analysis);
   PangoGlyphString *pgs = pango_glyph_string_new ();
-  
+
   pango_shape (str.c_str () + item->offset,
               item->length, (PangoAnalysis*) pa, pgs);
 
@@ -119,39 +119,44 @@ Pango_font::pango_item_string_stencil (PangoItem const *item, string str,
 
   FT_Face ftface = pango_fc_font_lock_face (fcfont);
 
-  PangoRectangle const *which_rect
-    = (tight_bbox)
-    ? &ink_rect
-    : &logical_rect;
-    
+  PangoRectangle const *which_rect = tight_bbox ? &ink_rect
+                                               : &logical_rect;
+
   Box b (Interval (PANGO_LBEARING (logical_rect),
                   PANGO_RBEARING (logical_rect)),
         Interval (-PANGO_DESCENT (*which_rect),
                   PANGO_ASCENT (*which_rect)));
-
   b.scale (scale_);
+
   char const *ps_name_str0 = FT_Get_Postscript_Name (ftface);
   FcPattern *fcpat = fcfont->font_pattern;
+
   FcChar8 *file_name_as_ptr = 0;
   FcPatternGetString (fcpat, FC_FILE, 0, &file_name_as_ptr);
 
+  // due to a bug in FreeType 2.3.7 and earlier we can't use
+  // ftface->face_index; it is always zero for some font formats,
+  // in particular TTCs which we are interested in
+  int face_index = 0;
+  FcPatternGetInteger (fcpat, FC_INDEX, 0, &face_index);
+
   string file_name;
   if (file_name_as_ptr)
-    {
-      /* Normalize file name.  */
-      file_name = File_name ((char const *)file_name_as_ptr).to_string ();
-    }
-  
+    // Normalize file name.
+    file_name = File_name ((char const *)file_name_as_ptr).to_string ();
+
   SCM glyph_exprs = SCM_EOL;
   SCM *tail = &glyph_exprs;
-      
+
   Index_to_charcode_map const *cmap = 0;
   bool has_glyph_names = ftface->face_flags & FT_FACE_FLAG_GLYPH_NAMES;
-  if  (! has_glyph_names)
-    cmap = all_fonts_global->get_index_to_charcode_map (file_name, ftface);
+  if (!has_glyph_names)
+    cmap = all_fonts_global->get_index_to_charcode_map (
+            file_name, face_index, ftface);
 
   bool is_ttf = string (FT_Get_X11_Font_Format (ftface)) == "TrueType";
   bool cid_keyed = false;
+
   for (int i = 0; i < pgs->num_glyphs; i++)
     {
       PangoGlyphInfo *pgi = pgs->glyphs + i;
@@ -162,11 +167,12 @@ Pango_font::pango_item_string_stencil (PangoItem const *item, string str,
       glyph_name[0] = '\0';
       if (has_glyph_names)
        {
-         int errorcode = FT_Get_Glyph_Name (ftface, pg, glyph_name, GLYPH_NAME_LEN);
+         int errorcode = FT_Get_Glyph_Name (ftface, pg, glyph_name,
+                                            GLYPH_NAME_LEN);
          if (errorcode)
-           programming_error (_f ("FT_Get_Glyph_Name () error: %s",
-                                  freetype_error_string (errorcode).c_str ()
-                                  ));
+           programming_error (
+             _f ("FT_Get_Glyph_Name () error: %s",
+                 freetype_error_string (errorcode).c_str ()));
        }
 
       SCM char_id = SCM_EOL;
@@ -179,51 +185,44 @@ Pango_font::pango_item_string_stencil (PangoItem const *item, string str,
          get_unicode_name (glyph_name, char_code);
        }
 
-      if (glyph_name[0] ==  '\0' && has_glyph_names)
+      if (glyph_name[0] == '\0' && has_glyph_names)
        {
-         programming_error (_f ("Glyph has no name, but font supports glyph naming.\n"
-                                "Skipping glyph U+%0X, file %s",
-                                pg,
-                                file_name.c_str ()));
+         programming_error (
+           _f ("Glyph has no name, but font supports glyph naming.\n"
+               "Skipping glyph U+%0X, file %s",
+               pg, file_name.c_str ()));
          continue;
        }
 
-      
       if (glyph_name == string (".notdef") && is_ttf)
        glyph_name[0] = '\0';
-         
+
       if (glyph_name[0] == '\0' && is_ttf)
-       {
-         // access by glyph index directly.
-         get_glyph_index_name (glyph_name, pg);
-       }
-      
+       // Access by glyph index directly.
+       get_glyph_index_name (glyph_name, pg);
+
       if (glyph_name[0] == '\0')
        {
-         /*
-           CID entry
-         */
+         // CID entry
          cid_keyed = true;
          char_id = scm_from_uint32 (pg);
        }
       else
        char_id = scm_from_locale_string (glyph_name);
-      
+
       *tail = scm_cons (scm_list_4 (scm_from_double (ggeo.width * scale_),
                                    scm_from_double (ggeo.x_offset * scale_),
                                    scm_from_double (ggeo.y_offset * scale_),
-                                   
                                    char_id),
                        SCM_EOL);
       tail = SCM_CDRLOC (*tail);
     }
 
-  pango_glyph_string_free (pgs);  
+  pango_glyph_string_free (pgs);
   pgs = 0;
   PangoFontDescription *descr = pango_font_describe (pa->font);
   Real size = pango_font_description_get_size (descr)
-    / (Real (PANGO_SCALE));
-
+             / (Real (PANGO_SCALE));
 
   if (!ps_name_str0)
     warning (_f ("no PostScript font name for font `%s'", file_name));
@@ -234,8 +233,7 @@ Pango_font::pango_item_string_stencil (PangoItem const *item, string str,
       && (file_name.find (".otf") != NPOS
          || file_name.find (".cff") != NPOS))
     {
-
-      /* UGH: kludge a PS name for OTF/CFF fonts.  */
+      // UGH: kludge a PS name for OTF/CFF fonts.
       string name = file_name;
       ssize idx = file_name.find (".otf");
       if (idx == NPOS)
@@ -246,11 +244,11 @@ Pango_font::pango_item_string_stencil (PangoItem const *item, string str,
       ssize slash_idx = name.rfind ('/');
       if (slash_idx != NPOS)
        {
-         slash_idx ++; 
+         slash_idx ++;
          name = name.substr (slash_idx,
                              name.length () - slash_idx);
        }
-      
+
       string initial = name.substr (0, 1);
       initial = String_convert::to_upper (initial);
       name = name.substr (1, name.length () - 1);
@@ -262,7 +260,9 @@ Pango_font::pango_item_string_stencil (PangoItem const *item, string str,
 
   if (ps_name.length ())
     {
-      ((Pango_font *) this)->register_font_file (file_name, ps_name);
+      ((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"),
@@ -284,13 +284,12 @@ Pango_font::physical_font_tab () const
   return physical_font_tab_;
 }
 
-
 Stencil
 Pango_font::word_stencil (string str) const
 {
   return text_stencil (str, true);
 }
-  
+
 Stencil
 Pango_font::text_stencil (string str) const
 {
@@ -298,7 +297,8 @@ Pango_font::text_stencil (string str) const
 }
 
 Stencil
-Pango_font::text_stencil (string str, bool tight) const
+Pango_font::text_stencil (string str,
+                         bool tight) const
 {
   GList *items
     = pango_itemize (context_,
@@ -317,7 +317,7 @@ Pango_font::text_stencil (string str, bool tight) const
       if (item->analysis.level == PANGO_DIRECTION_RTL)
        text_dir = LEFT;
     }
+
   for (GList *ptr = items; ptr; ptr = ptr->next)
     {
       PangoItem *item = (PangoItem *) ptr->data;
@@ -330,11 +330,9 @@ Pango_font::text_stencil (string str, bool tight) const
          last_x = item_stencil.extent (X_AXIS)[RIGHT];
        }
       else if (text_dir == LEFT)
-       {
-         dest.translate_axis (item_stencil.extent (X_AXIS)[RIGHT], X_AXIS);
-       }
+       dest.translate_axis (item_stencil.extent (X_AXIS)[RIGHT], X_AXIS);
 
-#if 0 /* Check extents.  */
+#if 0 // Check extents.
       if (!item_stencil.extent_box ()[X_AXIS].is_empty ())
        {
          Stencil frame = Lookup::frame (item_stencil.extent_box (), 0.1, 0.1);
@@ -344,24 +342,19 @@ Pango_font::text_stencil (string str, bool tight) const
          dest.add_stencil (frame);
        }
 #endif
-  
+
       dest.add_stencil (item_stencil);
     }
 
-  /*
-    UGH. Should have flags per output format signifying supported
-    options.
-  */
+  // UGH. Should have flags per output format signifying supported
+  // options.
   string name = get_output_backend_name ();
   if (name != "ps" && name != "eps")
     {
-      /*
-       For Pango based backends, we take a shortcut.
-      */
-      SCM exp
-       = scm_list_3 (ly_symbol2scm ("utf-8-string"),
-                     ly_string2scm (description_string ()),
-                     ly_string2scm (str));
+      // For Pango based backends, we take a shortcut.
+      SCM exp = scm_list_3 (ly_symbol2scm ("utf-8-string"),
+                           ly_string2scm (description_string ()),
+                           ly_string2scm (str));
 
       Box b (Interval (0, 0), Interval (0, 0));
       b.unite (dest.extent_box ());
@@ -382,11 +375,10 @@ Pango_font::description_string () const
   return s;
 }
 
-
 SCM
 Pango_font::font_file_name () const
 {
   return SCM_BOOL_F;
 }
 
-#endif
+#endif // HAVE_PANGO_FT2
index 6c8bcd42cdbbad8b7958ceecc690ce73c5e770b2..e8f97d26a4817dd617aaa8e9fc500d5eedfa173c 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "config.hh"
index bc97f787514a1b98b2d361f0ba597abe388dc158..29686d44ddce44a8799fa59365870bd34723e3bd 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2004--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2004--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "dimensions.hh"
index 275e3ced535073f083ecb470d4e40882b4d5555f..6714a46239a6406eeb59f41def4145b2b637d968 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "paper-book.hh"
@@ -20,12 +20,16 @@ LY_DEFINE (ly_paper_book_pages, "ly:paper-book-pages",
 
 LY_DEFINE (ly_paper_book_scopes, "ly:paper-book-scopes",
           1, 0, 0, (SCM book),
-          "Return pages in layout book @var{book}.")
+          "Return scopes in layout book @var{book}.")
 {
   LY_ASSERT_SMOB (Paper_book, book, 1);
   Paper_book *pb = unsmob_paper_book (book);
 
   SCM scopes = SCM_EOL;
+  if (pb->parent_)
+    {
+      scopes = ly_paper_book_scopes (pb->parent_->self_scm ());
+    }
   if (ly_is_module (pb->header_))
     scopes = scm_cons (pb->header_, scopes);
 
index 020c2e7b21248722977acd93f0885a4ac5ef876e..4307bb03eaa66880ac2fd9df18817978d43cc9ad 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2004--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 2004--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
 #include "paper-book.hh"
@@ -27,10 +27,12 @@ Paper_book::Paper_book ()
   header_0_ = SCM_EOL;
   pages_ = SCM_BOOL_F;
   scores_ = SCM_EOL;
+  bookparts_ = SCM_EOL;
   performances_ = SCM_EOL;
   systems_ = SCM_BOOL_F;
 
   paper_ = 0;
+  parent_ = 0;
   smobify_self ();
 }
 
@@ -48,11 +50,14 @@ Paper_book::mark_smob (SCM smob)
   Paper_book *b = (Paper_book *) SCM_CELL_WORD_1 (smob);
   if (b->paper_)
     scm_gc_mark (b->paper_->self_scm ());
+  if (b->parent_)
+    scm_gc_mark (b->parent_->self_scm ());
   scm_gc_mark (b->header_);
   scm_gc_mark (b->header_0_);
   scm_gc_mark (b->pages_);
   scm_gc_mark (b->performances_);
   scm_gc_mark (b->scores_);
+  scm_gc_mark (b->bookparts_);
   return b->systems_;
 }
 
@@ -65,6 +70,15 @@ Paper_book::print_smob (SCM smob, SCM port, scm_print_state*)
   return 1;
 }
 
+Output_def *
+Paper_book::top_paper ()
+{
+  Output_def *paper = paper_;
+  while (paper->parent_)
+    paper = paper->parent_;
+  return paper;
+}
+
 SCM
 dump_fields ()
 {
@@ -82,28 +96,74 @@ Paper_book::add_score (SCM s)
   scores_ = scm_cons (s, scores_);
 }
 
+void
+Paper_book::add_bookpart (SCM p)
+{
+  bookparts_ = scm_cons (p, bookparts_);
+}
+
 void
 Paper_book::add_performance (SCM s)
 {
   performances_ = scm_cons (s, performances_);
 }
 
-void
-Paper_book::output (SCM output_channel)
+int
+Paper_book::output_aux (SCM output_channel,
+                       bool is_last,
+                       int *first_page_number,
+                       int *first_performance_number)
 {
+  int page_nb = 0;
   if (scm_is_pair (performances_))
     {
       SCM proc = ly_lily_module_constant ("write-performances-midis");
  
-      scm_call_2 (proc, performances (), output_channel);
+      scm_call_3 (proc,
+                 performances (),
+                 output_channel,
+                 scm_long2num (*first_performance_number));
+      *first_performance_number += scm_ilength (performances_);
     }
 
-  if (scores_ == SCM_EOL)
-    return;
-
-  /* Generate all stencils to trigger font loads.  */
-  pages ();
+  if (scm_is_pair (bookparts_))
+    {
+      for (SCM p = bookparts_; scm_is_pair (p); p = scm_cdr (p))
+       if (Paper_book *pbookpart = unsmob_paper_book (scm_car (p)))
+         {
+           bool is_last_part = (is_last && !scm_is_pair (scm_cdr (p)));
+           page_nb += pbookpart->output_aux (output_channel,
+                                             is_last_part,
+                                             first_page_number,
+                                             first_performance_number);
+         }
+    }
+  else
+    {
+      if (scores_ == SCM_EOL)
+       return 0;
+      paper_->set_variable (ly_symbol2scm ("first-page-number"),
+                           scm_long2num (*first_page_number));
+      paper_->set_variable (ly_symbol2scm ("is-last-bookpart"),
+                           ly_bool2scm (is_last));
+      /* Generate all stencils to trigger font loads.  */
+      page_nb = scm_ilength (pages ());
+      *first_page_number += page_nb;
+    }
+  return page_nb;
+}
 
+void
+Paper_book::output (SCM output_channel)
+{
+  int first_page_number = robust_scm2int (paper_->c_variable ("first-page-number"), 1);
+  int first_performance_number = 0;
+  if (!output_aux (output_channel,
+                  true,
+                  &first_page_number,
+                  &first_performance_number))
+    return;
+      
   SCM scopes = SCM_EOL;
   if (ly_is_module (header_))
     scopes = scm_cons (header_, scopes);
@@ -137,17 +197,28 @@ Paper_book::output (SCM output_channel)
 }
 
 void
-Paper_book::classic_output (SCM output)
+Paper_book::classic_output_aux (SCM output,
+                               int *first_performance_number)
 {
   if (scm_is_pair (performances_))
     {
       SCM proc = ly_lily_module_constant ("write-performances-midis");
-      scm_call_2 (proc, performances (), output);
+      scm_call_3 (proc,
+                 performances (),
+                 output,
+                 scm_long2num (*first_performance_number));
+      *first_performance_number += scm_ilength (performances_);
     }
   
   /* Generate all stencils to trigger font loads.  */
   systems ();
+}
+
+void
+Paper_book::classic_output (SCM output)
+{
+  int first_performance_number = 0;
+  classic_output_aux (output, &first_performance_number);
 
   SCM scopes = SCM_EOL;
   if (ly_is_module (header_))
@@ -328,7 +399,7 @@ Paper_book::get_system_specs ()
       SCM props = paper_->lookup_variable (ly_symbol2scm ("book-title-properties"));
       Prob *ps = make_paper_system (props);
       paper_system_set_stencil (ps, title);
-
+      
       system_specs = scm_cons (ps->self_scm (), system_specs);
       ps->unprotect ();
     }
@@ -448,45 +519,53 @@ Paper_book::systems ()
     return systems_;
 
   systems_ = SCM_EOL;
-  SCM specs = get_system_specs ();
-  for (SCM s = specs; scm_is_pair (s); s = scm_cdr (s))
+  if (scm_is_pair (bookparts_))
     {
-      if (Paper_score *pscore = dynamic_cast<Paper_score*> (unsmob_music_output (scm_car (s))))
-       {
-         SCM system_list = scm_vector_to_list (pscore->get_paper_systems ());
-         system_list = scm_reverse (system_list);
-         systems_ = scm_append (scm_list_2 (system_list, systems_));
-       }
-      else
-       {
-         systems_ = scm_cons (scm_car (s), systems_);
-       }
+      for (SCM p = bookparts_; scm_is_pair (p); p = scm_cdr (p))
+       if (Paper_book *pbookpart = unsmob_paper_book (scm_car (p)))
+         systems_ = scm_append_x (scm_list_2 (systems_, pbookpart->systems ()));
     }
-  
-  systems_ = scm_reverse (systems_);
-
-  /* backwards compatibility for the old page breaker */
-  int i = 0;
-  Prob *last = 0;
-  for (SCM s = systems_; scm_is_pair (s); s = scm_cdr (s))
+  else
     {
-      Prob *ps = unsmob_prob (scm_car (s));
-      ps->set_property ("number", scm_from_int (++i));
-
-      if (last
-         && to_boolean (last->get_property ("is-title"))
-         && !scm_is_number (ps->get_property ("penalty")))
-       ps->set_property ("penalty", scm_from_int (10000));
-      last = ps;
+      SCM specs = get_system_specs ();
+      for (SCM s = specs; scm_is_pair (s); s = scm_cdr (s))
+       {
+         if (Paper_score *pscore = dynamic_cast<Paper_score*> (unsmob_music_output (scm_car (s))))
+           {
+             SCM system_list = scm_vector_to_list (pscore->get_paper_systems ());
+             system_list = scm_reverse (system_list);
+             systems_ = scm_append (scm_list_2 (system_list, systems_));
+           }
+         else
+           {
+             systems_ = scm_cons (scm_car (s), systems_);
+           }
+       }
+      systems_ = scm_reverse (systems_);
 
-      if (scm_is_pair (scm_cdr (s)))
+      /* backwards compatibility for the old page breaker */
+      int i = 0;
+      Prob *last = 0;
+      for (SCM s = systems_; scm_is_pair (s); s = scm_cdr (s))
        {
-         SCM perm = ps->get_property ("page-break-permission");
-         Prob *next = unsmob_prob (scm_cadr (s));
-         if (perm == SCM_EOL)
-           next->set_property ("penalty", scm_from_int (10001));
-         else if (perm == ly_symbol2scm ("force"))
-           next->set_property ("penalty", scm_from_int (-10001));
+         Prob *ps = unsmob_prob (scm_car (s));
+         ps->set_property ("number", scm_from_int (++i));
+         
+         if (last
+             && to_boolean (last->get_property ("is-title"))
+             && !scm_is_number (ps->get_property ("penalty")))
+           ps->set_property ("penalty", scm_from_int (10000));
+         last = ps;
+         
+         if (scm_is_pair (scm_cdr (s)))
+           {
+             SCM perm = ps->get_property ("page-break-permission");
+             Prob *next = unsmob_prob (scm_cadr (s));
+             if (perm == SCM_EOL)
+               next->set_property ("penalty", scm_from_int (10001));
+             else if (perm == ly_symbol2scm ("force"))
+               next->set_property ("penalty", scm_from_int (-10001));
+           }
        }
     }
 
@@ -500,22 +579,29 @@ Paper_book::pages ()
     return pages_;
 
   pages_ = SCM_EOL;
-  SCM proc = paper_->c_variable ("page-breaking-wrapper");
-  pages_ = scm_apply_0 (proc, scm_list_1 (self_scm ()));
-
-  /* set systems_ from the pages */
-  if (systems_ == SCM_BOOL_F)
+  if (scm_is_pair (bookparts_))
     {
-      systems_ = SCM_EOL;
-      for (SCM p = pages_; scm_is_pair (p); p = scm_cdr (p))
-       {
-         Prob *page = unsmob_prob (scm_car (p));
-         SCM systems = page->get_property ("lines");
+      for (SCM p = bookparts_; scm_is_pair (p); p = scm_cdr (p))
+       if (Paper_book *pbookpart = unsmob_paper_book (scm_car (p)))
+         pages_ = scm_append_x (scm_list_2 (pages_, pbookpart->pages ()));
+    }
+  else if (scm_is_pair (scores_))
+    {
+      SCM proc = paper_->c_variable ("page-breaking-wrapper");
+      pages_ = scm_apply_0 (proc, scm_list_1 (self_scm ()));
 
-         systems_ = scm_append (scm_list_2 (systems_, systems));
+      /* set systems_ from the pages */
+      if (systems_ == SCM_BOOL_F)
+       {
+         systems_ = SCM_EOL;
+         for (SCM p = pages_; scm_is_pair (p); p = scm_cdr (p))
+           {
+             Prob *page = unsmob_prob (scm_car (p));
+             SCM systems = page->get_property ("lines");
+             systems_ = scm_append (scm_list_2 (systems_, systems));
+           }
        }
     }
-
   return pages_;
 }
 
index c662a9baf7ea117fc025273f69fe062dadfa864d..06dd38d9b5376da12afb8ca30643105297a86990 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "paper-column-engraver.hh"
@@ -218,7 +218,8 @@ Paper_column_engraver::stop_translation_timestep ()
        {
          SCM perm = break_events_[i]->get_property ("break-permission");
          if (perm == ly_symbol2scm ("force") || perm == ly_symbol2scm ("allow"))
-           warning (_f ("forced break was overridden by some other event, should you be using bar checks?"));
+           warning (_ ("forced break was overridden by some other event, "
+                       "should you be using bar checks?"));
        }
     }
   else if (Paper_column::is_breakable (command_column_))
index 0eb40d1b97a48c8297ff378de172d65de6cd5072..0112599371083d250512f8a83db356cf2a0b04aa 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "paper-column.hh"
@@ -18,6 +18,7 @@
 #include "output-def.hh"
 #include "paper-score.hh"
 #include "pointer-group-interface.hh"
+#include "rhythmic-head.hh"
 #include "separation-item.hh"
 #include "skyline-pair.hh"
 #include "spaceable-grob.hh"
@@ -313,6 +314,33 @@ Paper_column::before_line_breaking (SCM grob)
   return SCM_UNSPECIFIED;
 }
 
+/* FIXME: This is a hack that we use to identify columns that used to
+   contain note-heads but whose note-heads were moved by one of the ligature
+   engravers. Once the ligature engravers are fixed to behave nicely, this
+   function can be removed.
+*/
+bool
+Paper_column::is_extraneous_column_from_ligature (Grob *me)
+{
+  if (!is_musical (me))
+    return false;
+
+  // If all the note-heads that I think are my children actually belong
+  // to another column, then I am extraneous.
+  extract_grob_set (me, "elements", elts);
+  bool has_notehead = false;
+  for (vsize i = 0; i < elts.size (); i++)
+    {
+      if (Rhythmic_head::has_interface (elts[i]))
+       {
+         has_notehead = true;
+         if (dynamic_cast<Item*> (elts[i])->get_column () == me)
+           return false;
+       }
+    }
+  return has_notehead;
+}
+
 
 ADD_INTERFACE (Paper_column,
               "@code{Paper_column} objects form the top-most X@tie{}parents"
@@ -331,6 +359,7 @@ ADD_INTERFACE (Paper_column,
               /* properties */
               "between-cols "
               "bounded-by-me "
+              "full-measure-extra-space "
               "grace-spacing "
               "labels "
               "line-break-system-details "
index e9a56ae0e190f269ce0c0ed690c933e0c46defd8..0e6362a4d4d689b1b7faadb8dad25409350bddfb 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2004--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2004--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "dimensions.hh"
index 625494d6d94aa9a65b4242a26fc92be6f980942b..15b9599a4f86680e494bf4431eacb89b0c00f3e1 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "paper-outputter.hh"
index e7e48c2fb3c0c9ae03b34269567817027e4d3bd8..6aedacca91202ad7f5a05b6558ea3905d4d33ce8 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
   Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
@@ -55,9 +55,10 @@ Paper_outputter::mark_smob (SCM x)
 }
 
 int
-Paper_outputter::print_smob (SCM x, SCM p, scm_print_state*)
+Paper_outputter::print_smob (SCM /* x */,
+                            SCM p,
+                            scm_print_state *)
 {
-  (void) x;
   scm_puts ("#<Paper_outputter>", p);
   return 1;
 }
index b973647fa250508f8a8223b37242a8f3f229c2d6..6f26769f476cdb62d2b347f9b780af1a07092551 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "paper-score.hh"
index d668536341368190308a8ce41eee790ddeca03ab..7ae0854e984c3283799b59754c3b2a2687ffdafb 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1996--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1996--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "paper-score.hh"
index 69351106110980c61ca58bd7df7722bfd0b5313a..137cef0c5c2f22f6d0c22febf16324babaf34206 100644 (file)
@@ -3,7 +3,7 @@
   
   source file of the GNU LilyPond music typesetter
   
-  (c) 2008 Han-Wen Nienhuys <hanwen@lilypond.org>
+  (c) 2008--2009 Han-Wen Nienhuys <hanwen@lilypond.org>
   
 */
 
index 9ff1a55c12769ea7ff61d8cdbdaddf3b0fa4db91..6653b6ddc7deb9e60582752206eda332470d27f2 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2004--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 2004--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
 #include "paper-system.hh"
index c24d94a9157496b8c1b6a0331854b1aa09f14ed4..d3382070e0af877b9e41cb565668b26bdc4aa657 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 
 */
 
index 087d2e5951e09940c5aa9fecd947c0111ed6911e..d1dad300e37a0b61169010bf17343f5b687bb7de 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2004--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2004--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "parse-scm.hh"
@@ -38,9 +38,6 @@ internal_ly_parse_scm (Parse_start *ps)
   SCM answer = SCM_UNSPECIFIED;
   SCM form = scm_read (port);
 
-  /* Reset read_buf for scm_ftell.
-     Shouldn't scm_read () do this for us?  */
-  scm_fill_input (port);
   SCM to = scm_ftell (port);
   ps->nchars = scm_to_int (to) - scm_to_int (from);
   
index be4e7e26e521cba2ff39792d7c14dcd8b475f0d8..462a58de402ee1f8dac8dabd827919660e015005 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
                  Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
@@ -159,6 +159,7 @@ void set_music_properties (Music *p, SCM a);
 %token ALIAS "\\alias"
 %token ALTERNATIVE "\\alternative"
 %token BOOK "\\book"
+%token BOOKPART "\\bookpart"
 %token CHANGE "\\change"
 %token CHORDMODE "\\chordmode"
 %token CHORDS "\\chords"
@@ -306,6 +307,8 @@ If we give names, Bison complains.
 
 %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
@@ -474,6 +477,12 @@ toplevel_expression:
                scm_call_2 (proc, PARSER->self_scm (), book->self_scm ());
                book->unprotect ();
        }
+       | 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 ();
+       }
        | score_block {
                Score *score = $1;
                
@@ -565,6 +574,10 @@ identifier_init:
                $$ = $1->self_scm ();
                $1->unprotect ();
        }
+       | bookpart_block {
+               $$ = $1->self_scm ();
+               $1->unprotect ();
+       }
        | output_def {
                $$ = $1->self_scm ();
                $1->unprotect ();
@@ -641,6 +654,7 @@ context_def_spec_body:
 book_block:
        BOOK '{' book_body '}'  {
                $$ = $3;
+               pop_paper (PARSER);
        }
        ;
 
@@ -650,9 +664,11 @@ book_block:
 book_body:
        {
                $$ = 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_ = PARSER->lexer_->lookup_identifier ("$defaultheader"); 
        }
        | BOOK_IDENTIFIER {
@@ -663,6 +679,13 @@ book_body:
        | book_body paper_block {
                $$->paper_ = $2;
                $2->unprotect ();
+               set_paper (PARSER, $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 ();
        }
        | book_body score_block {
                Score *score = $2;
@@ -689,12 +712,64 @@ book_body:
        | book_body error {
                $$->paper_ = 0;
                $$->scores_ = SCM_EOL;
+               $$->bookparts_ = SCM_EOL;
        }
        | book_body object_id_setting {
                $$->user_key_ = ly_scm2string ($2);
        }
        ;
 
+bookpart_block:
+       BOOKPART '{' bookpart_body '}' {
+               $$ = $3;
+       }
+       ;
+
+bookpart_body:
+       {
+               $$ = new Book;
+               $$->origin ()->set_spot (@$);
+       }
+       | BOOK_IDENTIFIER {
+               $$ = unsmob_book ($1);
+               $$->protect ();
+               $$->origin ()->set_spot (@$);
+       }
+       | bookpart_body paper_block {
+               $$->paper_ = $2;
+               $2->unprotect ();
+       }
+       | 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 ();
+       }
+       | 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 ());
+       }
+       | bookpart_body full_markup {
+               SCM proc = PARSER->lexer_->lookup_identifier ("bookpart-text-handler");
+               scm_call_2 (proc, $$->self_scm (), 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);
+       }
+       | bookpart_body lilypond_header {
+               $$->header_ = $2;
+       }
+       | bookpart_body error {
+               $$->paper_ = 0;
+               $$->scores_ = SCM_EOL;
+       }
+       | bookpart_body object_id_setting {
+               $$->user_key_ = ly_scm2string ($2);
+       }
+       ;
+
 score_block:
        SCORE '{' score_body '}'        {
                $$ = $3;
index badc17c2f6f3cce94f46f1117598b18df297ea30..23c4bf358d0b259973dd5c43519cc7fc1f97566d 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2000--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 2000--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 
   Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
index 8841fb826b82c83064b2670eca674f87b19ff174..5f35a0bba4d2d18725d0b04078597fdcfd035f50 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2004--2007 Han-Wen Nienhuys
+  (c) 2004--2009 Han-Wen Nienhuys
 */
 
 #include "context.hh"
index fc3d2a727a119aa95c39190dfe5c4fb323d439b9..ea77254cfc1d29cfbfa18b24b3945b3a7d4fbb24 100644 (file)
@@ -1,9 +1,9 @@
 /*
-  new-chord-tremolo-engraver.cc -- implement Chord_tremolo_engraver
+  percent-repeat-engraver.cc -- implement Percent_repeat_engraver
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2000--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>, Erik Sandberg <mandolaerik@gmail.com>
+  (c) 2000--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>, Erik Sandberg <mandolaerik@gmail.com>
 */
 
 
@@ -30,6 +30,7 @@
 class Percent_repeat_engraver : public Engraver
 {
   void typeset_perc ();
+  bool check_count_visibility (SCM count);
 public:
   TRANSLATOR_DECLARATIONS (Percent_repeat_engraver);
   
@@ -120,7 +121,7 @@ Percent_repeat_engraver::listen_percent (Stream_event *ev)
          /*
            don't warn about percent repeats: slash repeats are not
            exactly 1 or 2 measures long.
-          */
+         */
          return;
        }
       percent_event_ = ev;
@@ -147,7 +148,8 @@ Percent_repeat_engraver::process_music ()
          percent_->set_bound (LEFT, col);
 
          SCM count = percent_event_->get_property ("repeat-count");
-          if (count != SCM_EOL && to_boolean (get_property ("countPercentRepeats")))
+         if (count != SCM_EOL && to_boolean (get_property ("countPercentRepeats"))
+             && check_count_visibility (count))
            {
              percent_counter_
                = make_spanner ("PercentRepeatCounter", percent_event_->self_scm ());
@@ -167,8 +169,8 @@ Percent_repeat_engraver::process_music ()
          Item *double_percent = make_item ("DoublePercentRepeat", percent_event_->self_scm ());
 
          SCM count = percent_event_->get_property ("repeat-count");
-         if (count != SCM_EOL
-             && to_boolean (get_property ("countPercentRepeats")))
+         if (count != SCM_EOL && to_boolean (get_property ("countPercentRepeats"))
+             && check_count_visibility (count))
            {
              Item *double_percent_counter = make_item ("DoublePercentRepeatCounter",
                                                        percent_event_->self_scm ());
@@ -219,6 +221,14 @@ Percent_repeat_engraver::typeset_perc ()
     }
 }
 
+bool
+Percent_repeat_engraver::check_count_visibility (SCM count)
+{
+  SCM proc = get_property ("repeatCountVisibility");
+  return (ly_is_procedure (proc) && to_boolean (scm_call_2 (proc,
+                                                           count,
+                                                           context ()->self_scm ())));
+}
 
 
 void
@@ -239,7 +249,8 @@ ADD_TRANSLATOR (Percent_repeat_engraver,
                /* read */
                "countPercentRepeats "
                "currentCommandColumn "
-               "measureLength ",
+               "measureLength "
+               "repeatCountVisibility ",
 
                /* write */
                "forbidBreak "
index b0c86c45b46060154ffd6f8af538cb82d69940fb..ae8910fca496c61353eb1991c8cffa54d8d824ab 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2001--2007  Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2001--2009  Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "percent-repeat-item.hh"
@@ -26,17 +26,17 @@ Percent_repeat_item_interface::brew_slash (Grob *me)
   return m;
 }
 
-/*
-  todo: use grob props for dot_neg_kern, slash_neg_kern?
-*/
 Stencil
-Percent_repeat_item_interface::x_percent (Grob *me, int count,
-                                         Real dot_neg_kern,
-                                         Real slash_neg_kern)
+Percent_repeat_item_interface::x_percent (Grob *me, int count)
 {
   Stencil m;
   Stencil s = brew_slash (me);
 
+  Real dot_neg_kern =
+    robust_scm2double (me->get_property ("dot-negative-kern"), 0.75);
+  Real slash_neg_kern =
+    robust_scm2double (me->get_property ("slash-negative-kern"), 1.6);
+
   for (int i = count; i--;)
     m.add_at_edge (X_AXIS, RIGHT, s, -slash_neg_kern);
   Stencil d1 = Font_interface::get_default_font (me)->find_by_name ("dots.dot");
@@ -47,6 +47,7 @@ Percent_repeat_item_interface::x_percent (Grob *me, int count,
   m.add_at_edge (X_AXIS, LEFT, d1, -dot_neg_kern);
   m.add_at_edge (X_AXIS, RIGHT, d2, -dot_neg_kern);
 
+  m.translate_axis (- m.extent (X_AXIS).center (), X_AXIS);
   return m;
 }
 
@@ -55,8 +56,7 @@ SCM
 Percent_repeat_item_interface::double_percent (SCM grob)
 {
   Grob *me = unsmob_grob (grob);
-  Stencil m = x_percent (me, 2, 0.75, 1.6);
-  m.translate_axis (- m.extent (X_AXIS).center (), X_AXIS);
+  Stencil m = x_percent (me, 2);
   return m.smobbed_copy ();
 }
 
@@ -74,6 +74,8 @@ ADD_INTERFACE (Percent_repeat_item_interface,
               "Repeats that look like percent signs.",
               
               /* properties */
+              "dot-negative-kern "
+              "slash-negative-kern "
               "slope "
               "thickness "
               );
index 726b3a6e1d7ca2202f703fdfd18313b6d830f538..7f3115c0a1f5ecce284c78a0d2b3150e05f446c8 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2001--2007  Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2001--2009  Han-Wen Nienhuys <hanwen@xs4all.nl>
                   Erik Sandberg <mandolaerik@gmail.com>
 */
 
index a00e6b8efd13e52094c9f6f9ef5d006f4544dc9e..f69bb7bb6246ffd678c97c2fbe4b30582f3f122e 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "performance.hh"
index 8ae1edfaf35af5fe869361a4e2d1def28883d3e0..46180d0e5d857a16a0445cd15af6733a42eb21a7 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 1997--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
 #include "performance.hh"
index 32c22d13dacb5a638d9fd0d93968c83e85f1bfe6..1f9e9aee12f0117a3808cb9ef66d7e17f195afd0 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1996--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1996--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
   Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
index 7add5ba193149b478ba252f285cfe89032f66f30..357e0df8d18998e72fc84d4b9da81b7a6144030d 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1996--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1996--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
   Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
index 7fcdc73de5b5ac701eff4f8702fb31e8b1092227..6713c1b08f70bd235022e1114e46350c8a3d8004 100644 (file)
@@ -40,7 +40,7 @@ LY_DEFINE (ly_otf_2_cff, "ly:otf->cff",
   if (be_verbose_global)
     progress_indication ("[" + file_name);
 
-  FT_Face face = open_ft_face (file_name);
+  FT_Face face = open_ft_face (file_name, 0 /* index */);
   string table = get_otf_table (face, "CFF ");
 
   SCM asscm = scm_from_locale_stringn ((char *) table.data (),
index 438fe78497e8b3ddc6c259803e87197f7b4d0053..3d66f3e8a9b96431d1c13b0e413cc14efbfe52da 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2004--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2004--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include <cstdlib>
index b0e5b1d21026fe5381b567a7ff174f7c29608df7..4cd0c6ee109bc7001ff7b8801e3334967a38b34a 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "engraver.hh"
index c05f7fdc6e2327bb439d101c9d1565fd61b29202..c82cb7eae135d361571d7e169fa626fbb25094b5 100644 (file)
@@ -3,7 +3,7 @@
   
   source file of the GNU LilyPond music typesetter
   
-  (c) 2006--2007 Han-Wen Nienhuys <hanwen@lilypond.org>
+  (c) 2006--2009 Han-Wen Nienhuys <hanwen@lilypond.org>
   
 */
 
index 7d7e13d093d8b5885fc3666609dc6386320d23b0..a61474e51ba9a06bd291bbfc5ad5960a4db1330a 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2003--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2003--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "stencil.hh"
index b3021cbcb78b73bb9181d9ca1470b6418878326c..fd141ed3710d38ca0227352311a8d3ccb4cfad63 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2000--2007 Jan Nieuwenhuizen <janneke@gnu.org>,
+  (c) 2000--2009 Jan Nieuwenhuizen <janneke@gnu.org>,
                  Erik Sandberg <mandolaerik@gmail.com>
 
   Chris Jackson <chris@fluffhouse.org.uk> - extended to support
index 323ee40cd372b450724c466498e0b12a8f0ef80a..cb5919cabc0e57e6d51015c1df886abcbf7dcbb0 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2000--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 2000--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
 #include "performer.hh"
index a7390aa282cb0825f2bc744520db6c7627e5b6c5..d06d8af713dfb3219b8dc9276ed27627fb87e329 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2004--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2004--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "pitch-interval.hh"
index 2eb36a65255b7feea0c7683fc0f0c7ce3445b29c..1ecc247ed13911110dfccf21463d739a718d0fe3 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "pitch.hh"
@@ -25,10 +25,11 @@ LY_DEFINE (ly_pitch_transpose, "ly:pitch-transpose",
 LY_DEFINE (ly_make_pitch, "ly:make-pitch",
           2, 1, 0, (SCM octave, SCM note, SCM alter),
           "@var{octave} is specified by an integer, zero for the octave"
-          " containing middle@tie{}C.  @var{note} is a number from 0"
-          " to@tie{}6, with 0 corresponding to pitch@tie{}C and 6"
-          " corresponding to pitch@tie{}B.  @var{alter} is a rational"
-          " number of whole tones for alteration.")
+          " containing middle@tie{}C. @var{note} is a number indexing the"
+          " global default scale, with 0 corresponding to pitch@tie{}C"
+          " and 6 usually corresponding to pitch@tie{}B. @var{alter} is" 
+          " a rational number of 200-cent whole tones for alteration.")
+
 {
   LY_ASSERT_TYPE (scm_is_integer, octave, 1);
   LY_ASSERT_TYPE (scm_is_integer, note, 2);
index e8f3b5335d335b53350aa1af9473195618eb1db6..764566faab23d9630d4add101d7b3f5f2fa4e658 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "engraver.hh"
index fa1a45089c1eee6a0a9578c372f073b1117423a4..590d13872f34ebc67b207983b4b6dc4a732446ae 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1998--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1998--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "pitch.hh"
index 3555a99d45bd872e413a337f7856428691dbee85..18482faabd4569f5b0b1ce40e13b950e00287153 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "engraver.hh"
index 08af94839d443930a0f7e26240f9038745a2aa1b..a8ebb09ffcaa53dd13e10fbf36cf3bc126a86ffb 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "pointer-group-interface.hh"
index 717e32a945985358af74ee08f379b372e4363294..cc74f8ada128f525e6970b5d347fddaf709a7871 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "prob.hh"
index 4e068fa4d45301a7b19daea13b277e55e7795353..4d11d193f1b99f6068601131e75833276d15e3c6 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2004--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 2004--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
 #include "prob.hh"
@@ -174,10 +174,9 @@ Prob::internal_set_property (SCM sym, SCM val)
 }
 
 void
-Prob::type_check_assignment (SCM sym, SCM val) const
+Prob::type_check_assignment (SCM, SCM) const
 {
-  (void) sym;
-  (void) val;
+  /* empty */
 }
 
 SCM
index 234780c2ec9eb2c785ec39542c5736010b7bdd42..856060e8bf770eb0e09734d37e1a723029d09656 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "profile.hh"
index f47abed2cc53fd1ac2448db7b41fab85ac8ee5cf..1e03c5f951bae8e38a4d8d257205d206f60068e4 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2001--2007  Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2001--2009  Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "program-option.hh"
@@ -23,6 +23,8 @@ bool debug_skylines;
 bool debug_property_callbacks;
 bool debug_page_breaking_scoring;
 
+bool relative_includes;
+
 /*
   Backwards compatibility.
 */
@@ -33,11 +35,14 @@ bool profile_property_accesses = false;
   crash if internally the wrong type is used for a grob property.
 */
 bool do_internal_type_checking_global;
-bool strict_infinity_checking = false; 
+bool strict_infinity_checking = false;
 
 static SCM option_hash;
 
-void internal_set_option (SCM var, SCM val)
+
+void
+internal_set_option (SCM var,
+                    SCM val)
 {
   if (0)
     ;
@@ -74,7 +79,7 @@ void internal_set_option (SCM var, SCM val)
   else if (var == ly_symbol2scm ("old-relative"))
     {
       lily_1_8_relative = to_boolean (val);
-      /*  Needs to be reset for each file that uses this option.  */
+      /* Needs to be reset for each file that uses this option. */
       lily_1_8_compatibility_used = to_boolean (val);
       val = scm_from_bool (to_boolean (val));
     }
@@ -103,15 +108,16 @@ void internal_set_option (SCM var, SCM val)
       /* ignore input value. */
       val = ly_string2scm (lilypond_datadir);
     }
-
+  else if (var == ly_symbol2scm ("relative-includes"))
+    {
+      relative_includes = to_boolean (val);
+      val = scm_from_bool (to_boolean (val));
+    }
 
   scm_hashq_set_x (option_hash, var, val);
-
-
 }
 
 
-
 ssize const HELP_INDENT = 30;
 ssize const INDENT = 2;
 ssize const SEPARATION = 5;
@@ -123,7 +129,7 @@ static string
 get_help_string ()
 {
   SCM alist = ly_hash2alist (option_hash);
-  SCM convertor = ly_lily_module_constant ("scm->string");
+  SCM converter = ly_lily_module_constant ("scm->string");
 
   vector<string> opts;
 
@@ -131,23 +137,21 @@ get_help_string ()
     {
       SCM sym = scm_caar (s);
       SCM val = scm_cdar (s);
-      string opt_spec
-       = String_convert::char_string (' ', INDENT)
-       + ly_symbol2string (sym)
-       + " ("
-       + ly_scm2string (scm_call_1 (convertor, val))
-       + ")";
+      string opt_spec = String_convert::char_string (' ', INDENT)
+                       + ly_symbol2string (sym)
+                       + " ("
+                       + ly_scm2string (scm_call_1 (converter, val))
+                       + ")";
 
       if (opt_spec.length () + SEPARATION > HELP_INDENT)
-       {
-         opt_spec += "\n"
-           + String_convert::char_string (' ', HELP_INDENT);
-       }
+       opt_spec += "\n" + String_convert::char_string (' ', HELP_INDENT);
       else
-       opt_spec += String_convert::char_string (' ', HELP_INDENT - opt_spec.length ());
+       opt_spec += String_convert::char_string (' ', HELP_INDENT
+                                                     - opt_spec.length ());
 
       SCM opt_help_scm
-       = scm_object_property (sym, ly_symbol2scm ("program-option-documentation"));
+       = scm_object_property (sym,
+                              ly_symbol2scm ("program-option-documentation"));
       string opt_help = ly_scm2string (opt_help_scm);
       replace_all (&opt_help,
                   string ("\n"),
@@ -157,12 +161,10 @@ get_help_string ()
       opts.push_back (opt_spec + opt_help + "\n");
     }
 
-  string help ("Options supported by ly:set-option\n\n");
+  string help ("Options supported by `ly:set-option':\n\n");
   vector_sort (opts, less<string> ());
   for (vsize i = 0; i < opts.size (); i++)
     help += opts[i];
-
-  help += string ("\n");
   return help;
 }
 
@@ -171,19 +173,18 @@ LY_DEFINE (ly_option_usage, "ly:option-usage", 0, 0, 0, (),
           "Print @code{ly:set-option} usage.")
 {
   string help = get_help_string ();
-  progress_indication (help);
+  puts (help.c_str());
 
   return SCM_UNSPECIFIED;
 }
 
+
 LY_DEFINE (ly_add_option, "ly:add-option", 3, 0, 0,
           (SCM sym, SCM val, SCM description),
           "Add a program option @var{sym} with default @var{val}.")
 {
   if (!option_hash)
-    {
-      option_hash = scm_permanent_object (scm_c_make_hash_table (11));
-    }
+    option_hash = scm_permanent_object (scm_c_make_hash_table (11));
   LY_ASSERT_TYPE (ly_is_symbol, sym, 1);
   LY_ASSERT_TYPE (scm_is_string, description, 3);
 
@@ -195,6 +196,7 @@ LY_DEFINE (ly_add_option, "ly:add-option", 3, 0, 0,
   return SCM_UNSPECIFIED;
 }
 
+
 LY_DEFINE (ly_set_option, "ly:set-option", 1, 1, 0, (SCM var, SCM val),
           "Set a program option.")
 {
@@ -206,7 +208,7 @@ LY_DEFINE (ly_set_option, "ly:set-option", 1, 1, 0, (SCM var, SCM val),
   string varstr = ly_scm2string (scm_symbol_to_string (var));
   if (varstr.substr (0, 3) == string ("no-"))
     {
-      var = ly_symbol2scm (varstr.substr (3, varstr.length () -3).c_str ());
+      var = ly_symbol2scm (varstr.substr (3, varstr.length () - 3).c_str ());
       val = scm_from_bool (!to_boolean (val));
     }
 
@@ -218,18 +220,21 @@ LY_DEFINE (ly_set_option, "ly:set-option", 1, 1, 0, (SCM var, SCM val),
   return SCM_UNSPECIFIED;
 }
 
+
 LY_DEFINE (ly_command_line_options, "ly:command-line-options", 0, 0, 0, (),
           "The Scheme options specified on command-line with @option{-d}.")
 {
-  return ly_string2scm (init_scheme_variables_global); 
+  return ly_string2scm (init_scheme_variables_global);
 }
 
+
 LY_DEFINE (ly_command_line_code, "ly:command-line-code", 0, 0, 0, (),
           "The Scheme code specified on command-line with @option{-e}.")
 {
-  return ly_string2scm (init_scheme_code_global); 
+  return ly_string2scm (init_scheme_code_global);
 }
 
+
 LY_DEFINE (ly_command_line_verbose_p, "ly:command-line-verbose?", 0, 0, 0, (),
           "Was @code{be_verbose_global} set?")
 {
@@ -237,7 +242,6 @@ LY_DEFINE (ly_command_line_verbose_p, "ly:command-line-verbose?", 0, 0, 0, (),
 }
 
 
-
 LY_DEFINE (ly_all_options, "ly:all-options",
           0, 0, 0, (),
           "Get all option settings in an alist.")
@@ -252,5 +256,3 @@ LY_DEFINE (ly_get_option, "ly:get-option", 1, 0, 0, (SCM var),
   LY_ASSERT_TYPE (ly_is_symbol, var, 1);
   return scm_hashq_ref (option_hash, var, SCM_BOOL_F);
 }
-
-
index ebc2c92ba1dbf5671532654c39cc2c9cb6ab3b50..81f2d5ab6d1708e7b9e7a226ec64118ac0c60b5b 100644 (file)
@@ -3,7 +3,7 @@
   
   source file of the GNU LilyPond music typesetter
   
-  (c) 2007 Han-Wen Nienhuys <hanwen@lilypond.org>
+  (c) 2007--2009 Han-Wen Nienhuys <hanwen@lilypond.org>
   
 */
 
index f067a6628212b29ec6d2d9350676fb7483adbd03..d4fa5749c6af03fd3ae03f3762eb9d0d1e1b6b3c 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "property-iterator.hh"
index ccb91ab08777d182274c23a235007521de295635..3a8b19a9d07397e90ca998c990f416054e5600ad 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1998--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1998--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "protected-scm.hh"
index 7f42310f7f497b6f9d48c2fda2a978b885f24b1e..58d4378d2543a9a55cc65cec2d6250dd655e2f41 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2004--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2004--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "music-wrapper-iterator.hh"
index 1c15364b861b5479b0f9cd08a694047169b20e85..e2ed2e6e0491c25d1067071f780d37f7e257d06a 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "input.hh"
index cd8aead2d0d3fa4b0d41ac6847096a38d7867db6..cbd7969fede54fffeca0f1c7871407e894c95ce2 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1998--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1998--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "music.hh"
@@ -19,9 +19,9 @@ public:
 
 MAKE_SCHEME_CALLBACK (Relative_octave_music, no_relative_callback, 2)
   SCM
-Relative_octave_music::no_relative_callback (SCM music, SCM pitch)
+Relative_octave_music::no_relative_callback (SCM /* music */,
+                                            SCM pitch)
 {
-  (void)music;
   return pitch;
 }
 
index 9c8e464d32856c65129928bc11e4208216efb0a8..69b27a8d4b3e8a24e37f44bbde8524198bf33252 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 
 */
 
index 5d7b98d36e4144661fd54b1e6775b092b72f4300..4e4b91e3a27104452df81d56e3ca29b28853d4a5 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2000--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2000--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "engraver.hh"
index 832a584d41214805a67c5972d34cf2c75e6081ab..4766cb818611c2ee0b771643c631481056ccd9e8 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 
 */
 
index 666b1fbf1dee6bccb2976ddd4c48e73e13ff23a1..7a004c82633e03e16dc5d09ba254fb84179b0c20 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1999--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1999--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "repeated-music.hh"
index ecc3164c7c5d8d4f6e2f5a7cb439b5aa1dd3b891..4720368c909c3fd5da2a5838c2288e0bce675289 100644 (file)
@@ -3,22 +3,29 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
-#include "warn.hh"
+#include <set>
+
+#include "duration.hh"
 #include "engraver.hh"
-#include "rest-collision.hh"
-#include "note-column.hh"
+#include "international.hh"
 #include "item.hh"
+#include "moment.hh"
+#include "note-column.hh"
+#include "paper-column.hh"
+#include "rest.hh"
+#include "rest-collision.hh"
+#include "rhythmic-head.hh"
+#include "stream-event.hh"
+#include "warn.hh"
 
 class Rest_collision_engraver : public Engraver
 {
-  Item *rest_collision_;
-  vsize rest_count_;
-  vector<Grob*> note_columns_;
 protected:
-  DECLARE_ACKNOWLEDGER (note_column);
+  Grob *rest_collision_;
+
   void process_acknowledged ();
   void stop_translation_timestep ();
 public:
@@ -28,44 +35,57 @@ public:
 Rest_collision_engraver::Rest_collision_engraver ()
 {
   rest_collision_ = 0;
-  rest_count_ = 0;
 }
 
 void
 Rest_collision_engraver::process_acknowledged ()
 {
-  if (rest_collision_
-      || note_columns_.empty ()
-      || !rest_count_
-      || (note_columns_.size () == rest_count_
-         && rest_count_ < 2))
-    return;
+  vsize rest_count = 0;
+  set<Grob*> columns;
+  Moment now = now_mom ();
 
-  rest_collision_ = make_item ("RestCollision", SCM_EOL);
+  for (SCM s = get_property ("busyGrobs"); scm_is_pair (s); s = scm_cdr (s))
+    {
+      Grob *g = unsmob_grob (scm_cdar (s));
+      Moment *m = unsmob_moment (scm_caar (s));
+      if (!g || !m)
+       continue;
 
-  for (vsize i = 0; i < note_columns_.size (); i++)
-    Rest_collision::add_column (rest_collision_, note_columns_[i]);
-}
+      if (Rhythmic_head::has_interface (g) && (*m) > now)
+       {
+         Grob *column = g->get_parent (X_AXIS);
+         if (!column)
+           {
+             g->warning (_ ("rhythmic head is not part of a rhythmic column"));
+             continue;
+           }
 
-void
-Rest_collision_engraver::acknowledge_note_column (Grob_info i)
-{
-  note_columns_.push_back (i.grob ());
-  if (Note_column::has_rests (i.grob ()))
-    rest_count_++;
+         // Only include rests that start now. Include notes that started any time.
+         Paper_column *paper_column = dynamic_cast<Item*> (column)->get_column ();
+         if (!Rest::has_interface (g) || !paper_column || Paper_column::when_mom (paper_column) == now)
+           {
+             columns.insert (column);
+             rest_count += Note_column::has_rests (column);
+           }
+       }
+    }
+
+  if (!rest_collision_ && rest_count && columns.size () > 1)
+    {
+      rest_collision_ = make_item ("RestCollision", SCM_EOL);
+      for (set<Grob*>::iterator i = columns.begin (); i != columns.end (); ++i)
+       Rest_collision::add_column (rest_collision_, *i);
+    }
 }
 
 void
 Rest_collision_engraver::stop_translation_timestep ()
 {
   rest_collision_ = 0;
-  note_columns_.clear ();
-  rest_count_ = 0;
 }
 
 #include "translator.icc"
 
-ADD_ACKNOWLEDGER (Rest_collision_engraver, note_column);
 ADD_TRANSLATOR (Rest_collision_engraver,
                /* doc */
                "Handle collisions of rests.",
@@ -74,7 +94,7 @@ ADD_TRANSLATOR (Rest_collision_engraver,
                "RestCollision ",
 
                /* read */
-               "",
+               "busyGrobs ",
 
                /* write */
                ""
index e0a494c0c5431fc9440850372c965bbb35303587..6448492b8f5f925b954fe9fb4064b4b0cb50cb2a 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "rest-collision.hh"
@@ -14,6 +14,7 @@ using namespace std;
 #include "directional-element-interface.hh"
 #include "duration.hh"
 #include "international.hh"
+#include "item.hh"
 #include "note-column.hh"
 #include "output-def.hh"
 #include "pointer-group-interface.hh"
@@ -228,7 +229,10 @@ Rest_collision::calc_positioning_done (SCM smob)
       Interval notedim;
       for (vsize i = 0; i < notes.size (); i++)
        {
-         if (Note_column::dir (notes[i]) == -dir)
+         if (Note_column::dir (notes[i]) == -dir
+             // If the note has already happened (but it has a long duration, so there is a collision),
+             // don't look at the stem. If we do, the rest gets shifted down a lot and it looks bad.
+             || dynamic_cast<Item*> (notes[i])->get_column () != dynamic_cast<Item*> (rest)->get_column ())
            {
              /* try not to look at the stem, as looking at a beamed
                 note may trigger beam positioning prematurely.
index 13f8d70a89c646137cc311486d8e96cfa38847bd..12d1f84a2e727a7a00994334fb4199729b6ff1e1 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "engraver.hh"
index 22420f54f4def9528dbccb739288d5ca8ade0727..7fd5101d84fbcd15e73c76a11996f2b086910e1b 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "rest.hh"
@@ -193,11 +193,10 @@ Rest::generic_extent_callback (Grob *me, Axis a)
 
 MAKE_SCHEME_CALLBACK (Rest, pure_height, 3);
 SCM
-Rest::pure_height (SCM smob, SCM start, SCM end)
+Rest::pure_height (SCM smob,
+                  SCM /* start */,
+                  SCM /* end */)
 {
-  (void) start;
-  (void) end;
-  
   Grob *me = unsmob_grob (smob);
   SCM m = brew_internal_stencil (me, false);
   return ly_interval2scm (unsmob_stencil (m)->extent (Y_AXIS));
index 4196f7a7691ce263cc931831f4b039e754281d03..fa45a95ff373a3debbe0ff2d1702cd720f570b5a 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "engraver.hh"
index 436da6b612998f8c5dd6573f019248baefab4449..5919c9119b90e3545d8503f2804c7ce2d4ca81fa 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "rhythmic-head.hh"
index 2e6ab483dbf7f5b10bf7e4d4686b0ad47207f2d7..be04a669ab728b1354376aa2ab420c84e3ab0ae8 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1998--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1998--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "rod.hh"
index aa17285510e531d1823baa63a7d7fd87c0fee48a..c1f9a81f0550c394a8f9ec6dc06e9b06d5c68869 100644 (file)
@@ -3,7 +3,7 @@
   
   source file of the GNU LilyPond music typesetter
   
-  (c) 2006--2007 Han-Wen Nienhuys <hanwen@lilypond.org>
+  (c) 2006--2009 Han-Wen Nienhuys <hanwen@lilypond.org>
       2007--2008 Rune Zedeler
       2008       Joe Neeman <joeneeman@gmail.com>
 */
 */
 LY_DEFINE (ly_make_scale, "ly:make-scale",
           1, 0, 0, (SCM steps),
-          "Create a scale. "
-          "The argument is a vector of rational numbers, each of which "
-          "represents the number of tones of a pitch above the tonic.")
+          "Create a scale."
+          "  The argument is a vector of rational numbers, each of which"
+          " represents the number of 200 cent tones of a pitch above the"
+          " tonic.")
 {
   bool type_ok = scm_is_vector (steps);
 
@@ -57,8 +58,8 @@ LY_DEFINE (ly_default_scale, "ly:default-scale",
           "Get the global default scale.")
 {
   return default_global_scale
-    ? SCM_BOOL_F
-    : default_global_scale->self_scm ();
+    ? default_global_scale->self_scm ()
+    : SCM_BOOL_F;
 }
 
 
@@ -66,7 +67,12 @@ Scale * default_global_scale = 0;
 
 LY_DEFINE (ly_set_default_scale, "ly:set-default-scale",
           1, 0, 0, (SCM scale),
-          "Set the global default scale.")
+          "Set the global default scale. This determines the tuning of"
+          " pitches with no accidentals or key signatures.  The first"
+          " pitch is C. Alterations are calculated relative to this"
+          " scale.  The number of pitches in this scale determines the"
+          " number of scale steps that make up an octave.  Usually the"
+          " 7-note major scale.")
 {
   LY_ASSERT_SMOB (Scale, scale, 1);
 
@@ -121,19 +127,17 @@ Scale::normalize_step (int step) const
 }
 
 int
-Scale::print_smob (SCM x, SCM port, scm_print_state *)
+Scale::print_smob (SCM /* x */,
+                  SCM port,
+                  scm_print_state *)
 {
-  (void) x;
-  
   scm_puts ("#<Scale>", port); 
   return 1;
 }
 
-
 SCM
-Scale::mark_smob (SCM x)
+Scale::mark_smob (SCM)
 {
-  (void) x;
   return SCM_UNSPECIFIED;
 }
 
index 01eaa22ba198da2dbb3a8a7aa92c592caa34c2bd..7b4f6991a3551d829a88aa1ee7e8da1cb6362f92 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2006--2007 Erik Sandberg  <mandolaerik@gmail.com>
+  (c) 2006--2009 Erik Sandberg  <mandolaerik@gmail.com>
 */
 
 #include "scheme-listener.hh"
index 7d2f9da8244ad872d7ddc55976ffdbfd9bb1ccee..15ef78e9d2b6e707fd3a5501ce62cb45d1a89e41 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2006--2007 Erik Sandberg  <mandolaerik@gmail.com>
+  (c) 2006--2009 Erik Sandberg  <mandolaerik@gmail.com>
 */
 
 #include "scheme-listener.hh"
index af68717b4bccbe96ebc32f1085b845b62b6ba425..4013af327913b44da4b2dc38a0eb182d0f15a824 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1999--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1999--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "scm-hash.hh"
@@ -120,9 +120,11 @@ Scheme_hash_table::remove (SCM k)
 }
 
 static SCM
-collect_handles (void *closure, SCM key, SCM value, SCM result)
+collect_handles (void * /* closure */,
+                SCM key,
+                SCM value,
+                SCM result)
 {
-  (void) closure;
   return scm_acons(key, value, result);
 }
 
index 55becfef5eeb94be8de7ac784374f7b745414ddf..eff35efed4173fb2666a69a383970d569f5b495a 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "score-engraver.hh"
index 58043e06442845228728499339551706d86f10ea..9e5db10e88d7c374669423fc2fcac9aebbc11f5c 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1996--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 1996--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
 #include "score-performer.hh"
index 083ef65c0698c0889dd69a30db885c1a9c543633..c3cf1224112d7111414fda00c1d954dab1183881 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "score.hh"
index 6e1a9ff3e0d1f9af30063b2f5ec9322f77fa2f77..ac79dd103fc656988ca26906a7ee2ae2b5f17e83 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "score.hh"
index 14a00ec0d3966eaf94caaab8dbcc1bd8dff4b75e..c7d623185dcf96b878bdd01d3354c5f1973ce23e 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1999--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1999--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "engraver.hh"
index b249fd00ac7e6b4a5e1440812c2857ac6cac6dbd..b3371e9fd5c81b0e6b1be104bd772e7ecfdd9511 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1999--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1999--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "script-column.hh"
index d0d713bfc495c4b2b6965e2ce04e4a78a4274717..ceb4a048f855d573894e3edeacd18c158bcc5571 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "engraver.hh"
index a8fbc49fcdb51d3b446e12eca0848b1541ea9f19..59737b5ac49ff9ec84a0a6c3cf9f264ec82b9c5b 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1999--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1999--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "script-interface.hh"
@@ -129,6 +129,7 @@ ADD_INTERFACE (Script_interface,
               "positioning-done "
               "script-priority "
               "script-stencil "
+              "toward-stem-shift "
               "slur "
               "slur-padding "
               );
index 38bf0bdf7ceec4136fdffe607781c8d93f9ccd39..21a227228cd76ee0dd1d7a8aa515310a85e96f86 100644 (file)
@@ -3,7 +3,7 @@
   
   source file of the GNU LilyPond music typesetter
   
-  (c) 2006--2007 Han-Wen Nienhuys <hanwen@lilypond.org>
+  (c) 2006--2009 Han-Wen Nienhuys <hanwen@lilypond.org>
   
 */
 
index 66e71f0497083a98348dfe50e96ee7fefeec95f3..71d2e1f96da987fccef3bbe4d43943ad503cad8b 100644 (file)
@@ -3,7 +3,7 @@
  
   source file of the GNU LilyPond music typesetter
 
-  (c) 2004--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2004--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "self-alignment-interface.hh"
index f7a7be4968bf7a98b10f3f971bbe8b54e93a4003..508df73a9f5fe8865ffe40e1fc45af929013b4b2 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 
 */
 
index 4f3c6b39d81c9bd38af5c5c71a93e10a955d4472..a23ddd40f540d13950611fb33405cc3c52a92021 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 
 */
 
index 954c5834d4ed22413a17205ac8653807777abacb..38bb5a3b402a429d4ebe7e6779217089c80b55a3 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1998--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1998--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "engraver.hh"
index 617c6fd4ebc9e25b641a2a83332f960e79d1427f..5f8471a600083fd199a75215e81ff1c2c3764abf 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1998--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1998--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "separation-item.hh"
@@ -146,7 +146,7 @@ Separation_item::boxes (Grob *me, Grob *left)
       y[UP] += extra_height[UP];
  
       if (!x.is_empty () && !y.is_empty ())
-      out.push_back (Box (x, y));
+       out.push_back (Box (x, y));
     }
 
   return out;      
index 8679bcbbe158843dbdaeffa00b84cf1d6699429b..3fd7da3839de88a3084219081ed478f39b1b3a20 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "sequential-iterator.hh"
index ceede5d9f1c6d65a5130aa587d0a9de348a5788d..ed3af0577a8a0e726adfb86f079a58d513a06dda 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1998--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1998--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "side-position-interface.hh"
index 737bb3965be6e09ef6f9b09a2938bb582834c0eb..34bfd58f1bb6d06741b031a3d1cee0785d451e77 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 
 */
 #include "simple-closure.hh"
index 05fcc293f4211d6c003f0f7387f5ad3f386df3ba..706be56838662d54cad6a515e4b6d29a5b8f7a16 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2000--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2000--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "simple-music-iterator.hh"
index 48f127bfca5ae710b5778c73b343e6d08e994839..7308de65846ea2b3c6fe4ec41dcee664d0a1378a 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include <cstdio>
index 4da2ac9a87d3439893e93f57dc951b82dc4d6458..1d38d9a70fda59eab91069b691339bd6a7d6b98d 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1999--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1999--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 
   TODO:
   - add support for different stretch/shrink constants?
index badc98d65bee38a0c1bec3648ccf87e629f52c17..0631ba9e8dba8ed7ab59284f8cf71f20a5755ffa 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "simultaneous-music-iterator.hh"
index 100061a19c01aeb1c59d1eb5e826c70fbafefa41..61573ee01d65508baaa592542597b91a491bd024 100644 (file)
@@ -3,7 +3,7 @@
   
   source file of the GNU LilyPond music typesetter
   
-  (c) 2008 Han-Wen Nienhuys <hanwen@lilypond.org>
+  (c) 2008--2009 Han-Wen Nienhuys <hanwen@lilypond.org>
   
 */
 
index 5297f6359ab91ea58642e9f552eca313031217ac..a3047a98bbcefffe4c071df3fa49618ee9ddc453 100644 (file)
@@ -2,11 +2,12 @@
 
    source file of the GNU LilyPond music typesetter
  
-   (c) 2006--2007 Joe Neeman <joeneeman@gmail.com>
+   (c) 2006--2009 Joe Neeman <joeneeman@gmail.com>
 */
 
 #include "skyline.hh"
 #include <deque>
+#include <cstdio>
 
 #include "ly-smobs.icc"
 
@@ -317,7 +318,7 @@ Skyline::internal_build_skyline (list<Box> *boxes, Real horizon_padding, Axis ho
     {
       list<Building> result;
       single_skyline (Building (boxes->front (), horizon_padding, horizon_axis, sky),
-                     boxes->front ()[horizon_axis][LEFT], horizon_axis, &result);
+                     boxes->front ()[horizon_axis][LEFT], horizon_padding, &result);
       return result;
     }
 
index 62f80c1619c19616854952f678ea398815cf501e..16af23613a61af626342ae4ea5b87c41a91d7e6c 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2000--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>, Erik Sandberg
+  (c) 2000--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>, Erik Sandberg
   <mandolaerik@gmail.com>
 */
 
index 6e44c9d6db0df0d30eabb789534a4f2d0f7325d8..ce368ab9eb2c62eca6aab62947128cc44848869b 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2004--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2004--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "slur-configuration.hh"
index fae0aa3db4ded54decb4656b70ed47b9dadebd77..13ca895e2e1e52a586efbbaac3bf96ebda84ec19 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "engraver.hh"
index 01fdb326153e0caf27c35da33e4dddb68fe304c4..422f065fd261b0db60504472cee4688216d0c06e 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1996--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 1996--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
 #include "performer.hh"
index a399e4d9d037b5e439fb179102772e30f1307c4a..00b8effc0f05cc2100d3a08169ec3f47e81eb96d 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2006--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2006--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 
 */
 
index b89f12867219eec185c9dec4c4404860b48f0a96..bb2b1f3b2bafed2593fd0ac688b3cecef440cb9e 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1996--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1996--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
   Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
index 604221e3f2d2087ce86186b17ea074172e5cedc6..b1794ad4014828bff6b1c9b8f62f89b944d3e10a 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1996--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1996--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
   Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
index 7bdaaa7f922017055367d496abe3c852a744b479..ea2095c3a3f39bf69d35871b5903a91567aaec2a 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "smobs.hh"
index 7667b2f810d21973e8ed757522ddf06bb3cbe794..fc5b03483d78cc85582d04bf7ad576c9bb681a64 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 1997--2009 Jan Nieuwenhuizen <janneke@gnu.org>
   Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
index bfd3e0d2954fe1868ccf5a2b2924ed5f5806ea80..3bedc8cc676a5b9a82519bd14d1772d84651001b 100644 (file)
@@ -3,12 +3,14 @@
 
   source file of the LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "sources.hh"
 
+#include "config.hh"
 #include "source-file.hh"
+#include "file-name.hh"
 #include "file-path.hh"
 
 Sources::Sources ()
@@ -30,22 +32,38 @@ Sources::set_path (File_path *f)
 }
 
 /**
-   open a file
+   Open a file. If the name is not absolute, look in CURRENT_DIR first.
+   Afterwards, check the rest of the path_.
 
-   File_string the file to be opened, name might be changed if it is
-   found in a search path.
+   FILE_STRING the name of the file to be opened.
+   CURRENT_DIR a path to a directory, either absolute or relative to the
+     working directory.
 */
 Source_file *
-Sources::get_file (string *file_string) //UGH
-{
-  if (*file_string != "-" && path_)
+Sources::get_file (string file_string, string const& current_dir)
+{  
+  if (file_string != "-")
     {
-      string file_string_o = path_->find (*file_string);
-      if ((file_string_o == "") && (*file_string != ""))
-       return 0;
-      *file_string = file_string_o;
+      // First, check for a path relative to the directory of the
+      // file currently being parsed.
+      if (current_dir.length ()
+         && file_string.length ()
+         && !File_name (file_string).is_absolute ()
+         && is_file (current_dir + DIRSEP + file_string))
+       file_string = current_dir + DIRSEP + file_string;
+
+      // Otherwise, check the rest of the path.
+      else if (path_)
+       {
+         string file_string_o = path_->find (file_string);
+         if ((file_string_o == "") && (file_string != ""))
+           return 0;
+
+         file_string = file_string_o;
+       }
     }
-  Source_file *f = new Source_file (*file_string);
+
+  Source_file *f = new Source_file (file_string);
   add (f);
   return f;
 }
index 725c4759c65c10464b42d36754aa4eef0a6d5163..0412edcf02a2b537d7172e0fffd9aa015f3ba6ff 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2000--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2000--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "spaceable-grob.hh"
index bed086a72cefab0672589b0042cfb0e5f3bb1f14..0f81619beda8b4584fee3cfc0432bf518396ccad 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "spacing-spanner.hh"
@@ -83,11 +83,11 @@ get_measure_length (Grob *column)
 }
 
 Real
-Spacing_spanner::note_spacing (Grob *me, Grob *lc, Grob *rc,
+Spacing_spanner::note_spacing (Grob * /* me */,
+                              Grob *lc,
+                              Grob *rc,
                               Spacing_options const *options)
 {
-  (void) me;
-  
   Moment shortest_playing_len = 0;
   SCM s = lc->get_property ("shortest-playing-duration");
 
index fe072bca0aba3a93097095595e49101faaded388..20771542fb98c74053cdfa46dde2086867716e20 100644 (file)
@@ -4,7 +4,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "staff-spacing.hh"
index 4a4977829a6f8507ccf76821fba732b85cfddcd1..7051ae75c483568818a5f6cb89f5c14a110e3162 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1999--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1999--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "engraver.hh"
index d494c318c5ef820ca7759264c30c9a0f880c3842..f7d6b8d31fc90d3a925272eae629f84c48665775 100644 (file)
@@ -4,7 +4,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2007 Joe Neeman <joeneeman@gmail.com>
+  (c) 2007--2009 Joe Neeman <joeneeman@gmail.com>
 */
 
 #include "spacing-interface.hh"
index a59fa7d0f9350734baa6717ab25017ed25ec59cf..302cccb13340361e72360e11fbc730a9d6edc7cf 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "system.hh"
index a3e512525b5c8352a825e08f81f2fc95cfbedcf5..f78a94a6199fc1996b4602befa57437bd1a0b8ab 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2006--2007 Han-Wen Nienhuys <hanwen@lilypond.org>
+  (c) 2006--2009 Han-Wen Nienhuys <hanwen@lilypond.org>
 
 */
 
index ba5d40e51879ffe7f5b7709c51cbfed96579ed41..99fe9824a8e1c7ca083666030a1c7dc8c7630ab7 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1999--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1999--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "spacing-spanner.hh"
@@ -303,7 +303,8 @@ Spacing_spanner::generate_springs (Grob *me,
       prev = col;
     }
 
-  set_column_rods (cols, 0.1); // FIXME: padding
+  Real padding = robust_scm2double (prev->get_property ("padding"), 0.1);
+  set_column_rods (cols, padding);
 }
 
 /*
@@ -405,8 +406,20 @@ Spacing_spanner::musical_column_spacing (Grob *me,
        Note that we don't actually pack things as tightly as possible:
        we don't allow the next column to begin before this one ends.
       */
-      spring.set_distance (max (left_col->extent (left_col, X_AXIS)[RIGHT],
-                               spring.min_distance ()));
+      /* FIXME: the else clause below is the "right" thing to do,
+        but we can't do it because of all the empty columns that the
+        ligature-engravers leave lying around. In that case, the extent of
+        the column is incorrect because it includes note-heads that aren't
+        there. We get around this by only including the column extent if
+        the left-hand column is "genuine". This is a dirty hack and it
+        should be fixed in the ligature-engravers. --jneem
+      */
+      if (Paper_column::is_extraneous_column_from_ligature (left_col))
+       spring.set_distance (spring.min_distance ());
+      else
+       spring.set_distance (max (left_col->extent (left_col, X_AXIS)[RIGHT],
+                                 spring.min_distance ()));
+
       spring.set_inverse_stretch_strength (1.0);
     }
 
@@ -501,7 +514,8 @@ Spacing_spanner::breakable_column_spacing (Grob *me, Item *l, Item *r,
       && l->break_status_dir () == CENTER
       && fills_measure (me, l, r))
     {
-      spring.set_distance (spring.distance () + 1.0);
+      Real full_measure_extra_space = robust_scm2double (l->get_property ("full-measure-extra-space"), 1.0);
+      spring.set_distance (spring.distance () + full_measure_extra_space);
       spring.set_default_strength ();
     }
   
index 3188e83e286871814b806c006a577acde06bc1d6..4630bdc07e4c66eb5b2641738ba11c6b175e5cea 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2000--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 2000--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 
   Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
index 1062817a02e54b43d3fd16679932a7aa783e3eae..b3709e73363ef087ded28c6843203ef4b102dbc4 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "bar-line.hh"
index 48a1df4f3acddb26fb2284fc5e63a9a014aadb8a..2c0273ea72621447332253f24ca77aff9d4948f4 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "span-bar.hh"
@@ -190,6 +190,8 @@ Span_bar::calc_glyph_name (SCM smob)
     type = "|.|";
   else if (type == ":|.:")
     type = "|.";
+  else if (type == "'")
+    type = "";
 
   return ly_string2scm (type);
 }
index cd81a8d147312247515c3738072a46b773763d4b..baac8f83a219f923d1c4a6fb7f30e2b32a393462 100644 (file)
@@ -3,7 +3,7 @@
   
   source file of the GNU LilyPond music typesetter
   
-  (c) 2007 Han-Wen Nienhuys <hanwen@lilypond.org>
+  (c) 2007--2009 Han-Wen Nienhuys <hanwen@lilypond.org>
 */
 
 
index 3e9e947060f5151111689881b8a754aab9ca3c29..e756d69b0e98e496b903dd7de398e854e0b5fc20 100644 (file)
@@ -3,7 +3,7 @@
   
   source file of the GNU LilyPond music typesetter
   
-  (c) 2007 Han-Wen Nienhuys <hanwen@lilypond.org>
+  (c) 2007--2009 Han-Wen Nienhuys <hanwen@lilypond.org>
   
 */
 
index 0ae372ded3d4d485541efaeb14c4a351eaa25b1c..8533bc72fcbd1392b74aceb48e47085d770b3f53 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1996--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1996--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "pointer-group-interface.hh"
index 5639a1cd0737446b8318f3c3a12b9712acc69007..4b20641e95af80c166f99f0b0285547db241a2da 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1999--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1999--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "spring.hh"
 IMPLEMENT_SIMPLE_SMOBS (Spring);
 
 SCM
-Spring::mark_smob (SCM x)
+Spring::mark_smob (SCM)
 {
-  (void)x;
-
   return SCM_UNSPECIFIED;
 }
 
index 1f250546db354d31f41a7cfb344a011281af7524..67d41c9c39640e0add681aa50728ec5e5f240861 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2007 Joe Neeman <joeneeman@gmail.com>
+  (c) 2007--2009 Joe Neeman <joeneeman@gmail.com>
 */
 
 #include "spring.hh"
index 6e4c5ad8098892e9f1a5bc936d67e52ce5e10d0b..29b05f4da1282529f17f181d65fd213858d96a7b 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2001--2007  Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2001--2009  Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "staff-symbol.hh"
index 0b138701c391d30fb5ac89e63885bcfc4f9e6128..756b5e3a8114a5fca147be2f6c6698ed2f76c07a 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 1997--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
 #include "warn.hh"
index 801fb96948e66fdc78c66750519d3f986928781f..3587f70c6354c0b1d89e0df627478f26377305dd 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2001--2007  Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2001--2009  Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "staff-spacing.hh"
index 5d5acd9a4285addc9213e70fe4b9d63c98d1394c..5d70855273e152e87b134a8fd2f72f0e5694ff24 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "engraver.hh"
index d8f2e6386203f4851ac7332f978943cdb7abe9d7..ebf268677781f1bf56b23f5c96f1258356951d37 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1999--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1999--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "grob.hh"
index 38c39e04fe1851ec00dbc26893937040e065acee..17bd099fc64e97f415ed865894ec2d1cb1d09aa4 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1999--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1999--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "staff-symbol-referencer.hh"
index 6fefc48010750e7daa9b2f9ed0078305047eff4b..0f1d60aa626475db0ea2d4307ab9d6299722fbd0 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "staff-symbol.hh"
index bc1fc7b0968d1c4bbde7bee564171bd0f683e697..494e64842f62475cbfca8d7def42f5686b143bfd 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2004--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2004--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "context.hh"
index 78476d9cc6da8aaeeba3162798e6b4fc59ddd488..3434f06167c81a40707a30152d9c7d2c51ef7236 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2000--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>, Glen Prideaux <glenprideaux@iname.com>
+  (c) 2000--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>, Glen Prideaux <glenprideaux@iname.com>
 */
 
 #include "engraver.hh"
index d07716e8130c420df034d7dbaa57bb053907ed7e..7db456006cbca4d67d63d0245afc0f16e89a8a3c 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "engraver.hh"
@@ -128,7 +128,7 @@ Stem_engraver::acknowledge_rhythmic_head (Grob_info gi)
       // FIXME: 
       gi.event_cause ()->origin ()->warning (_f ("adding note head to incompatible stem (type = %d)",
                                                 1 << Stem::duration_log (stem_)));
-      gi.event_cause ()->origin ()->warning (_f ("maybe input should specify polyphonic voices"));
+      gi.event_cause ()->origin ()->warning (_ ("maybe input should specify polyphonic voices"));
     }
 
   Stem::add_head (stem_, gi.grob ());
index c093e9f40e3c7e75f44e796bf9789a866709f4ac..ce9e3529b693746d51eea7ba6b75119f308b6a4a 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "stem-tremolo.hh"
index d50bd50cda02d8de223bbfd97e31f33f3c0f0648..8ba6f2b6c9cdba33022481ba5b0113d4abdecfbe 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1996--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1996--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
   Jan Nieuwenhuizen <janneke@gnu.org>
 
   TODO: This is way too hairy
@@ -229,11 +229,10 @@ Stem::is_normal_stem (Grob *me)
 
 MAKE_SCHEME_CALLBACK (Stem, pure_height, 3)
 SCM
-Stem::pure_height (SCM smob, SCM start, SCM end)
+Stem::pure_height (SCM smob,
+                  SCM /* start */,
+                  SCM /* end */)
 {
-  (void) start;
-  (void) end;
-
   Grob *me = unsmob_grob (smob);
   Interval iv;
 
@@ -1052,6 +1051,8 @@ ADD_INTERFACE (Stem,
               "avoid-note-head "
               "beam "
               "beaming "
+              "beamlet-default-length "
+              "beamlet-max-length-proportion "
               "default-direction "
               "details "
               "direction "
index 64ad13d95fbdcb7675a1894cfdd2cf9f1afb084c..b1f47997dd8930a3551f932234a48dbe7ea757db 100644 (file)
@@ -4,7 +4,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "stencil.hh"
index 8afc330d6f8bd63fcd75f3b6b8f074ffb7b9f2fc..9b9ed4d6a383d940d6d6d893cd1f49df211f3f98 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "stencil.hh"
index de39fca5c340ca19e20cfaf14a41e9b4a0d12761..c2d9d8e9616a535df7015df57437c6ef2e082ec3 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 
@@ -341,11 +341,11 @@ LY_DEFINE (ly_round_filled_box, "ly:round-filled-box",
 }
 
 LY_DEFINE (ly_round_filled_polygon, "ly:round-filled-polygon",
-           2, 0, 0,
-           (SCM points, SCM blot),
-           "Make a @code{Stencil} object that prints a black polygon with "
-           "corners at the points defined by @var{points} (list of coordinate "
-           "pairs) and roundness @var{blot}.")
+          2, 0, 0,
+          (SCM points, SCM blot),
+          "Make a @code{Stencil} object that prints a black polygon with"
+          " corners at the points defined by @var{points} (list of coordinate"
+          pairs) and roundness @var{blot}.")
 {
   SCM_ASSERT_TYPE (scm_ilength (points) > 0, points, SCM_ARG1, __FUNCTION__, "list of coordinate pairs");
   LY_ASSERT_TYPE (scm_is_number, blot, 2);
index ae06add090c07b8052d6ea5a2a1fbb635ddf63fd..c241fa18c271b4b08169780c85f63eb4d1ddfef6 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "stencil.hh"
index f578a8332a5fafe25c89aaf2360568caa7011cff..6ce5477af354d34f49210d1a9886e3c13afc8543 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2006--2007 Erik Sandberg  <mandolaerik@gmail.com>
+  (c) 2006--2009 Erik Sandberg  <mandolaerik@gmail.com>
 */
 
 #include "stream-event.hh"
index 234dbdb02b3780b48ee2de4fea8cc97aa05b05be..3eb0b538afbc7335a0a566f82cb3056dd164769c 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "engraver.hh"
index 8056ea89a2448a99bafb24493ad00eb9921ecb4c..4e2a8f529ca669d42e2b910a35b67a83e143ebd1 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2000--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2000--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 #include "grob.hh"
 #include "stencil.hh"
index 37a2148dbf140b55944820e2a31714ce02b4b679..f6cf49cdcb5dcf652ec33e8e9fe04733f1ebdc25 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "engraver.hh"
index 907b41de171e75e701fa1f1289f7c62441278af4..f148699c867ca64687be176e2875f24d972032eb 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "performer.hh"
index 284dc4102cdd632752036502cf0dc93655b9ea97..37ec8b05496a22ac1531ce90a6e81ea5a22ac11a 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2007 Joe Neeman <joeneeman@gmail.com>
+  (c) 2007--2009 Joe Neeman <joeneeman@gmail.com>
 */
 
 #include "align-interface.hh"
index 238a3a6d9c99986620d331be967f00f91c76f3ef..ea4fcf38a859a5930b2a1da7c5172fe8065e062a 100644 (file)
@@ -4,7 +4,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 
 */
 
index 233808da5e82d95b06bdb4305395e1bd94cf015b..62c2bb52716785070538055b10652297f22bd60c 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2000--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2000--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "system-start-delimiter.hh"
index c99f150fed06fa75d476799244a671d9823f4bc3..33b0f68f40810b872de9f96c08f208d3f4c2c3ac 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2006--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2006--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 
 */
 
index e686e3b58cad0585e3ea7303686e50bfeb5e13aa..9054988dabf75304d4445de9e2094586cd041706 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1996--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1996--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "system.hh"
index 86dee35ea4f7179d71c31d1d0c90a05ce13b6ff5..8c493048bc3c7d009f42fca25dd070d8faa34205 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 
 */
 
index dd4ab16008771bdc2399e33b664d37bc98cf6718..f89dad11009e6271ecbffbc7e6f827c30b5f64e9 100644 (file)
@@ -1,7 +1,7 @@
 /*
   tab-note-heads-engraver.cc -- part of GNU LilyPond
 
-  (c) 2002--2007 Han-Wen Nienhuys, Jean-Baptiste Lamy <jiba@tuxfamily.org>,
+  (c) 2002--2009 Han-Wen Nienhuys, Jean-Baptiste Lamy <jiba@tuxfamily.org>,
 */
 
 #include <cctype>
index 27756d2bc56e070f3d00790d42a7a42f0d6d8c12..03df300ea2d2493a73e05ff29c7bff019e34bdab 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "engraver.hh"
index b669abb8994ef59bdbc51216cff3752c293233cb..681812f8cadc74c70ac6b6adb456088182a240e2 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "moment.hh"
index d7975c5719accb301ad3d98f4fd4606520d68df9..5387d49a3a4ca6233e997b2d1529fd3b020a1224 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 1997--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
 #include "performer.hh"
index 90376d2a62044a589f2be4ecdecb70faa2341dde..f27a74bf84fa50bf79c6f41ed73459a37697aa39 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1998--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1998--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "directional-element-interface.hh"
index 12e2e36e3e169c1a728ef3edc37cac7290ce13b0..9b28228dab5217e06b8c75b7f8bd1e364029de9a 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1998--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1998--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
   Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
@@ -72,8 +72,8 @@ MAKE_SCHEME_CALLBACK_WITH_OPTARGS (Text_interface, interpret_markup, 3, 0,
 "  Takes three arguments, @var{layout}, @var{props}, and @var{markup}.\n"
 "\n"
 "@var{layout} is a @code{\\layout} block; it may be obtained from a grob with"
-" @code{ly:grob-layout}.  @var{props} is a alist chain, ie. a list of alists."
-"  This is typically obtained with"
+" @code{ly:grob-layout}.  @var{props} is an alist chain, i.e. a list of"
+"  alists.  This is typically obtained with"
 " @code{(ly:grob-alist-chain (ly:layout-lookup layout 'text-font-defaults))}."
 "  @var{markup} is the markup text to be processed.");
 SCM
diff --git a/lily/text-metrics.cc b/lily/text-metrics.cc
deleted file mode 100644 (file)
index c83f561..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
-  text-metrics.cc -- implement text metric lookup functions
-
-  source file of the GNU LilyPond music typesetter
-
-  (c) 2004--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
-*/
-
-#include "dimensions.hh"
-#include "font-metric.hh"
-#include "main.hh"
-#include "file-path.hh"
-
-static SCM text_dimension_hash_tab;
-
-Box
-lookup_tex_text_dimension (Font_metric *font, SCM text)
-{
-  Box b;
-
-  /*
-    Actually, it's defined in framework-texstr, but let's see how long
-    it takes before we get a bugreport. HWN 13/2/2006.
-   */
-  SCM limit = ly_lily_module_constant ("TEX_STRING_HASHLIMIT");
-  string key_str = ly_scm2string (font->font_file_name ());
-  int hash_code = scm_to_int (scm_hash (text, limit));
-  key_str = to_string (hash_code) + key_str;
-
-  SCM val = SCM_BOOL_F;
-  if (text_dimension_hash_tab)
-    {
-      scm_hash_ref (text_dimension_hash_tab,
-                   ly_string2scm (key_str),
-                   SCM_BOOL_F);
-    }
-  if (scm_is_pair (val))
-    {
-      b[X_AXIS][LEFT] = 0.0;
-      b[X_AXIS][RIGHT] = scm_to_double (scm_car (val)) * point_constant;
-      val = scm_cdr (val);
-      b[Y_AXIS][UP] = scm_to_double (scm_car (val)) * point_constant;
-      val = scm_cdr (val);
-      b[Y_AXIS][DOWN] = scm_to_double (scm_car (val)) * point_constant;
-    }
-
-  return b;
-}
-
-LY_DEFINE (ly_load_text_dimensions, "ly:load-text-dimensions",
-          1, 0, 0,
-          (SCM dimension_alist),
-          "Load dimensions from @TeX{} in a @code{(KEY . (W H D))} format"
-          " alist.")
-{
-  if (!text_dimension_hash_tab)
-    {
-      text_dimension_hash_tab
-       = scm_gc_protect_object (scm_c_make_hash_table (113));
-    }
-
-  for (SCM s = dimension_alist;
-       scm_is_pair (s);
-       s = scm_cdr (s))
-    {
-      SCM key = scm_caar (s);
-      SCM val = scm_cdar (s);
-
-      if (scm_hash_ref (text_dimension_hash_tab, key, SCM_BOOL_F)
-         == SCM_BOOL_F)
-       scm_hash_set_x (text_dimension_hash_tab, key, val);
-    }
-
-  return SCM_UNSPECIFIED;
-}
-
-void
-try_load_text_metrics (string basename)
-{
-  string path = global_path.find (basename + ".textmetrics");
-  if (path != "")
-    {
-      string contents (gulp_file_to_string (path, true, -1));
-      contents = "(quote (" + contents + "))";
-
-      SCM lst = scm_c_eval_string (contents.c_str ());
-      ly_load_text_dimensions (lst);
-    }
-}
index fb6c90d81fd96f9e1bdffd37023a5c74abf86587..e5b9911810099f3100c24e5822fbb74e0e4399cc 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2000--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 2000--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
 #include "engraver.hh"
index 6a79918f51120db5d1c41a8ff1f5d5f9110707dd..c236e55bc1252c169f479133319c8b7a2121c874 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2000--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2000--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "tie-column.hh"
index 9cccd505b9daea335b02b10d2feeaf2053f4b649..ba94725dc0a29929d03e2f1b9cf9ec5a668ebaf6 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 
 */
 
index 75a32d5bb78a1aabc584815851d73442ddc80595..bc43d1cbd69e9f5a1232fdd1811e748e09914797 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 
 */
 
index 123d6aad4f63de6f273f47cd4d00c35136622a6e..1a397b3b7479d675dca9e4fe301f92a7503e5a2e 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1998--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1998--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "engraver.hh"
index b346fc88491ca88f9a012bb96a8986024cf78ced..7eb20666be348d15d9b856c6d4062de33cca12b6 100644 (file)
@@ -3,10 +3,11 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 
 */
 
+#include <cstdio>
 #include "tie-formatting-problem.hh"
 
 #include "axis-group-interface.hh"
index d6cd7628a0aa9b588a2b270841030ae9515d8c66..58bc879ec13bb3619ee7007fdf89f697e376c817 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1998--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1998--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "performer.hh"
index 35c39fe5461c7653a406d842aefb9d0edf812f1d..5c64db64940522c4427a21a868e17fdcc5b9ea8a 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "tie.hh"
index 56e63ce311bbcdccb35108a4abd845c7c0f90a2b..e70c44a4854a3dfabf5d0709bd5b4e3782d0fd2a 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1998--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>,
+  (c) 1998--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>,
                  Erik Sandberg <mandolaerik@gmail.com>
 */
 
index 27e60c14d360d4ea31ca8ffe1231a32e5ab59292..9d4343360475191038b51b32c6521d394b17d7f2 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "engraver-group.hh"
index 2401c2f77117e4cb655eee1ee6408936aab48750..740aca82d39ac9b36b67d32123728e2ec45943d7 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 1997--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
 #include "audio-item.hh"
index 85b3b878b619c393044f960d94ad877e68b19a62..9beda767489e702a774af277d2f294342772f58f 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1996--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1996--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "time-signature.hh"
@@ -127,7 +127,8 @@ ADD_INTERFACE (Time_signature,
               "@table @code\n"
               "@item C\n"
               "4/4 and 2/2 are typeset as C and struck C, respectively."
-              "  All other time signatures are written with two digits.\n"
+              "  All other time signatures are written with two digits."
+              "  The value @code{default} is equivalent to @code{C}.\n"
               "@item neomensural\n"
               "2/2, 3/2, 2/4, 3/4, 4/4, 6/4, 9/4, 4/8, 6/8, and 9/8 are"
               " typeset with neo-mensural style mensuration marks.  All"
@@ -139,9 +140,9 @@ ADD_INTERFACE (Time_signature,
               "@item single-digit\n"
               "All time signatures are typeset with a single digit, e.g.,"
               " 3/2 is written as 3.\n"
-              "@end table\n"
-              "\n"
-              "See also the test-file @file{input/test/time.ly}.",
+              "@item numbered\n"
+              "All time signatures are typeset with two digits.\n"
+              "@end table",
 
               /* properties */
               "fraction "
index dd4c23919e40547a672b839e5a77e12b789192aa..57998ace963d654a45cb598a5b8e6933556d3f24 100644 (file)
@@ -4,7 +4,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "timing-translator.hh"
index c024abe38858c3d016101e752eb4aa6a7c83d587..5290743e2e3c29536303bfd1daa7ec0d2f9665bc 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "translator.hh"
index a4bddefca83013d6d281fe95669ae63f7d7f173e..bf8c70e0038975943bfcf13d6d2b47373398d9d0 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "translator-dispatch-list.hh"
@@ -63,16 +63,16 @@ Engraver_dispatch_list::create (SCM trans_list,
 }
 
 SCM
-Engraver_dispatch_list::mark_smob (SCM x)
+Engraver_dispatch_list::mark_smob (SCM)
 {
-  (void)x;
   return SCM_BOOL_F;
 }
 
 int
-Engraver_dispatch_list::print_smob (SCM x, SCM p, scm_print_state *)
+Engraver_dispatch_list::print_smob (SCM /* x */,
+                                   SCM p,
+                                   scm_print_state *)
 {
-  (void)x;
   scm_puts ("#<Engraver_dispatch_list>", p);
   return 1;
 }
index 8225f03176c5fd978163f4392f2c5514343b1a15..d1d03f37f032c094860a63ef45e49aace58c0b64 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "score-engraver.hh"
index 700f078f16f5048c8d6d05924cefc379951effcd..64c28ac83dc5ed57fc4addfbe1ad589ec8e8e43b 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>,
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>,
                  Erik Sandberg <mandolaerik@gmail.com>
 */
 
index 71fa6af2c2fbaf9e07a96ea546be281f1f603563..775e47da0df2275246b19170a4b462ac5a9bbf4c 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2002--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2002--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "context-def.hh"
index dc70c155ce97058e9491a598360ceb7f3d19012c..efa375549fba042301a1f4903b0c567113999573 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "translator.hh"
index 6f5f28beb7006c31601f4808886760fc71e7c352..513a2ae6050d558709f37b180f1330fa6a73d5bf 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2000--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 2000--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
 /*
index d4bb86968bc048d606272475b80262c5ee1d0b9e..62c6d4695e1cba7e5af289a116a05f9fc0d2e54a 100644 (file)
@@ -3,13 +3,15 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
+#include <cstdio>
 #include "freetype.hh"
 
 #include <freetype/tttables.h>
 
+#include "international.hh"
 #include "memory-stream.hh"
 #include "warn.hh"
 #include "lily-guile.hh"
@@ -453,9 +455,24 @@ print_trailer (void *out,
 }
 
 static void
-create_type42_font (void *out, string name)
+create_type42_font (void *out, string name, int idx)
 {
-  FT_Face face = open_ft_face (name);
+  FT_Face face;
+
+  /* check whether font index is valid */
+  if (idx > 0)
+    {
+      face = open_ft_face (name, -1);
+      if (idx >= face->num_faces)
+       {
+         warning (_f ("font index %d too large for font `%s', using index 0",
+                      idx, name.c_str()));
+         idx = 0;
+       }
+      FT_Done_Face (face);
+    }
+
+  face = open_ft_face (name, idx);
 
   print_header (out, face);
   print_body (out, face);
@@ -464,20 +481,49 @@ create_type42_font (void *out, string name)
   FT_Done_Face (face);
 }
 
-
 LY_DEFINE (ly_ttf_ps_name, "ly:ttf-ps-name",
-          1, 0, 0, (SCM ttf_file_name),
-          "Extract the PostScript name from a TrueType font.")
+          1, 1, 0, (SCM ttf_file_name, SCM idx),
+          "Extract the PostScript name from a TrueType font.  The optional"
+          " @var{idx} argument is useful for TrueType collections (TTC)"
+          " only; it specifies the font index within the TTC.  The default"
+          " value of @var{idx} is@tie{}0.")
 {
   LY_ASSERT_TYPE (scm_is_string, ttf_file_name, 1);
+
+  int i = 0;
+  if (idx != SCM_UNDEFINED)
+    {
+      LY_ASSERT_TYPE (scm_is_integer, idx, 2);
+      i = scm_to_int (idx);
+      if (i < 0)
+       {
+         warning (_ ("font index must be non-negative, using index 0"));
+         i = 0;
+       }
+    }
+
   string file_name = ly_scm2string (ttf_file_name);
   if (be_verbose_global)
     progress_indication ("[" + file_name);
 
-  FT_Face face = open_ft_face (file_name);
+  FT_Face face;
+
+  /* check whether font index is valid */
+  if (i > 0)
+    {
+      face = open_ft_face (file_name, -1);
+      if (i >= face->num_faces)
+       {
+         warning (_f ("font index %d too large for font `%s', using index 0",
+                      i, file_name.c_str()));
+         i = 0;
+       }
+      FT_Done_Face (face);
+    }
+
+  face = open_ft_face (file_name, i);
   char const *ps_name_str0 = FT_Get_Postscript_Name (face);
   SCM ps_name = scm_from_locale_string (ps_name_str0 ? ps_name_str0 : "");
-
   FT_Done_Face (face);
 
   if (be_verbose_global)
@@ -486,22 +532,35 @@ LY_DEFINE (ly_ttf_ps_name, "ly:ttf-ps-name",
   return ps_name;
 }
 
-
-
 LY_DEFINE (ly_ttf_2_pfa, "ly:ttf->pfa",
-          1, 0, 0, (SCM ttf_file_name),
-          "Convert the contents of a TTF file to Type42 PFA, returning it as"
-          " a string.")
+          1, 1, 0, (SCM ttf_file_name, SCM idx),
+          "Convert the contents of a TrueType font file to PostScript"
+          " Type@tie{}42 font, returning it as a string.  The optional"
+          " @var{idx} argument is useful for TrueType collections (TTC)"
+          " only; it specifies the font index within the TTC.  The default"
+          " value of @var{idx} is@tie{}0.")
 {
   LY_ASSERT_TYPE (scm_is_string, ttf_file_name, 1);
 
+  int i = 0;
+  if (idx != SCM_UNDEFINED)
+    {
+      LY_ASSERT_TYPE (scm_is_integer, idx, 2);
+      i = scm_to_int (idx);
+      if (i < 0)
+       {
+         warning (_ ("font index must be non-negative, using index 0"));
+         i = 0;
+       }
+    }
+
   string file_name = ly_scm2string (ttf_file_name);
   if (be_verbose_global)
     progress_indication ("[" + file_name);
 
   Memory_out_stream stream;
 
-  create_type42_font (&stream, file_name);
+  create_type42_font (&stream, file_name, i);
   SCM asscm = scm_from_locale_stringn (stream.get_string (),
                                       stream.get_length ());
 
index 639472399c3737bf4c52a9f372bff87856eef92c..4ddb09245ee236f98a17c5e7cb359f8b8711ffa2 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 1997--2009 Jan Nieuwenhuizen <janneke@gnu.org>
   Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
index 5cd637e3f9eb2853376fe79130bc0c6f71ed3dd4..6ee50151d5cfc62bda458f3748728908e199148b 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1998--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1998--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "beam.hh"
@@ -93,7 +93,7 @@ Tuplet_engraver::listen_tuplet_span (Stream_event *ev)
          tuplets_.pop_back ();
        }
       else if (!to_boolean (get_property ("skipTypesetting"))) 
-       ev->origin ()->warning (_f ("No tuplet to end"));
+       ev->origin ()->warning (_ ("No tuplet to end"));
     }
   else 
     ev->origin ()->programming_error ("direction tuplet-span-event_ invalid.");
index b344200a5c8e5d1753ef36cef591c359e4bff7ff..117179eb112a3f9464ac3604a6e8b68c091eaadd 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 
 */
 
index 1879697bc34a7b5e51d0e852563ede377ac3a3ed..eb3167bd5b9b36fed8221c1308f8403ddd5a0e02 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 
 */
 
index 7b66eaf3022618cb74b5cd903c9e41833c0b4011..19d26eaa79c05c66e3c912ba74d8e71f027b94e4 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "translator.hh"
index 46a8bfd0475b369559eb2191efa29f124c0ca98f..b3247c0c818a64e68d8016f1ae27e99ecaf59881 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2002--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2002--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "music.hh"
index c812684b423fd6d991d3fa5088d1ced805d7198c..414020db7a7de54ec0e816e376f23866b491e0e8 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2003--2007 Juergen Reuter <reuter@ipd.uka.de>
+  (c) 2003--2009 Juergen Reuter <reuter@ipd.uka.de>
 */
 
 #include "gregorian-ligature-engraver.hh"
@@ -550,66 +550,70 @@ Vaticana_ligature_engraver::transform_heads (Spanner *ligature,
        else
          glyph_name = "vaticana.inclinatum";
       else if (prefix_set & DEMINUTUM)
-       if (i == 0)
-         {
-           // initio debilis
-           glyph_name = "vaticana.reverse.plica";
-         }
-       else if (prev_delta_pitch > 0)
-         {
-           // epiphonus
-           if (! (prev_context_info & FLEXA_RIGHT))
-             /* correct head of previous primitive */
+       {
+         if (i == 0)
+           {
+             // initio debilis
+             glyph_name = "vaticana.reverse.plica";
+           }
+         else if (prev_delta_pitch > 0)
+           {
+             // epiphonus
+             if (! (prev_context_info & FLEXA_RIGHT))
+               {
+                 /* correct head of previous primitive */
+                 if (prev_delta_pitch > 1)
+                   prev_glyph_name = "vaticana.epiphonus";
+                 else
+                   prev_glyph_name = "vaticana.vepiphonus";
+               }
              if (prev_delta_pitch > 1)
-               prev_glyph_name = "vaticana.epiphonus";
+               glyph_name = "vaticana.plica";
              else
-               prev_glyph_name = "vaticana.vepiphonus";
-           if (prev_delta_pitch > 1)
-             glyph_name = "vaticana.plica";
-           else
-             glyph_name = "vaticana.vplica";
-         }
-       else if (prev_delta_pitch < 0)
-         {
-           // cephalicus
-           if (! (prev_context_info & FLEXA_RIGHT))
-             /* correct head of previous primitive */
-             {
-               if (i > 1)
-                 {
-                   /* cephalicus head with fixed size cauda */
-                   prev_glyph_name = "vaticana.inner.cephalicus";
-                 }
-               else
-                 {
-                   /* cephalicus head without cauda */
-                   prev_glyph_name = "vaticana.cephalicus";
-                 }
-
-               /*
-                * Flexa has no variable size cauda if its left head is
-                * stacked on the right head.  This is true for
-                * cephalicus.  Hence, remove the cauda.
-                *
-                * Urgh: for the current implementation, this rule only
-                * applies for cephalicus; but it is a fundamental rule.
-                * Therefore, the following line of code should be
-                * placed somewhere else.
-                */
-               prev_primitive->set_property ("add-cauda",
-                                             ly_bool2scm (false));
-             }
-           if (prev_delta_pitch < - 1)
-             glyph_name = "vaticana.reverse.plica";
-           else
-             glyph_name = "vaticana.reverse.vplica";
-         }
-       else // (prev_delta_pitch == 0)
-         {
-           primitive->programming_error ("Vaticana_ligature:"
-                                         " deminutum head must have different"
-                                         " pitch -> ignoring grob");
-         }
+               glyph_name = "vaticana.vplica";
+           }
+         else if (prev_delta_pitch < 0)
+           {
+             // cephalicus
+             if (! (prev_context_info & FLEXA_RIGHT))
+               /* correct head of previous primitive */
+               {
+                 if (i > 1)
+                   {
+                     /* cephalicus head with fixed size cauda */
+                     prev_glyph_name = "vaticana.inner.cephalicus";
+                   }
+                 else
+                   {
+                     /* cephalicus head without cauda */
+                     prev_glyph_name = "vaticana.cephalicus";
+                   }
+
+                 /*
+                  * Flexa has no variable size cauda if its left head is
+                  * stacked on the right head.  This is true for
+                  * cephalicus.  Hence, remove the cauda.
+                  *
+                  * Urgh: for the current implementation, this rule only
+                  * applies for cephalicus; but it is a fundamental rule.
+                  * Therefore, the following line of code should be
+                  * placed somewhere else.
+                  */
+                 prev_primitive->set_property ("add-cauda",
+                                               ly_bool2scm (false));
+               }
+             if (prev_delta_pitch < - 1)
+               glyph_name = "vaticana.reverse.plica";
+             else
+               glyph_name = "vaticana.reverse.vplica";
+           }
+         else // (prev_delta_pitch == 0)
+           {
+             primitive->programming_error ("Vaticana_ligature:"
+                                           " deminutum head must have different"
+                                           " pitch -> ignoring grob");
+           }
+       }
       else if (prefix_set & (CAVUM | LINEA))
        if ((prefix_set & CAVUM) && (prefix_set & LINEA))
          glyph_name = "vaticana.linea.punctum.cavum";
@@ -676,10 +680,12 @@ Vaticana_ligature_engraver::transform_heads (Spanner *ligature,
          if ((context_info & PES_UPPER) && (context_info & STACKED_HEAD))
            {
              if (prev_glyph_name == "vaticana.punctum")
-               if (prev_delta_pitch > 1)
-                 prev_glyph_name = "vaticana.lpes";
-               else
-                 prev_glyph_name = "vaticana.vlpes";
+               {
+                 if (prev_delta_pitch > 1)
+                   prev_glyph_name = "vaticana.lpes";
+                 else
+                   prev_glyph_name = "vaticana.vlpes";
+               }
            }
        }
 
index 0cf90c5af9522ffe17dba5f38754087dfa7538d9..3a37fb5dce57b1dcc30f727a79a54d54f41fda3f 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2003--2007 Juergen Reuter <reuter@ipd.uka.de>
+  (c) 2003--2009 Juergen Reuter <reuter@ipd.uka.de>
 */
 
 #include "vaticana-ligature.hh"
@@ -174,8 +174,8 @@ vaticana_brew_join (Grob *me, int delta_pitch,
   Real staff_space = Staff_symbol_referencer::staff_space (me);
   if (!delta_pitch)
     {
-      me->programming_error (_f ("Vaticana_ligature: "
-                                "zero join (delta_pitch == 0)"));
+      me->programming_error (_ ("Vaticana_ligature: "
+                               "zero join (delta_pitch == 0)"));
       return Lookup::blank (Box (Interval (0, 0), Interval (0, 0)));
     }
   Interval x_extent = Interval (0, join_thickness);
index c4adfaae11827d5f8a95b31dee7d86e7872a146f..365c35cb4870659be13a50f311e06dcd1a0b351c 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "context.hh"
index 8a4b206329504901f551a8812499a5909f0621b0..750f2e3721c77e26e623513c2324a916dd99a4dd 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "engraver.hh"
index cfae83259c5dde05c877f76458af25da9a3cd9b7..d5f4bc6daaee71fe46c0a4611e6e3d05eba8c472 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 1997--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
 #include <cstring>
@@ -132,6 +132,8 @@ Volta_bracket_interface::modify_edge_height (Spanner *me)
        && str != "|:"
        && str != "|."
        && str != ":|:"
+       && str != ":|.|:"
+       && str != ":|.:"
        && str != ".|");
 
   if (no_vertical_end || no_vertical_start)
index 708b535d260610c207e3d98ba0df287eb91fecec..bd8e9e2c39645bf6af5aaa7774b73eeb44521d5d 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2000--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2000--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "engraver.hh"
index 23f8edd9c5e2fb76be3240e9f8d1edbef7d392f6..321814b8a8373893cc5c844b80b47fbc0158a457 100644 (file)
@@ -4,7 +4,7 @@
   source file of the GNU LilyPond music typesetter
 
 
-  (c) 2002--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2002--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "music.hh"
@@ -66,7 +66,7 @@ Volta_repeat_iterator::add_repeat_command (SCM what)
   Context *where = get_outlet ()->where_defined (reps, &current_reps);
 
   if (where
-      && current_reps == SCM_EOL || scm_is_pair (current_reps))
+       && (current_reps == SCM_EOL || scm_is_pair (current_reps)))
     {
       current_reps = scm_cons (what, current_reps);
       where->set_property (reps, current_reps);
index 7f4c32a1750f29eb6b083c8c9bdc256f481eeee2..cf9a6df30cbde71eac45c0ef6c0a737de985ccc1 100644 (file)
@@ -1,4 +1,5 @@
 #!/usr/bin/env perl
+# -*- coding: utf-8; -*-
 
 ### texi2html customization script for Lilypond
 ### Author: Reinhold Kainhofer <reinhold@kainhofer.com>, 2008.
 
 package Texi2HTML::Config;
 
+#############################################################################
+### TRANSLATIONS
+#############################################################################
 
-
+use utf8;
+my $LY_LANGUAGES = {};
+$LY_LANGUAGES->{'fr'} = {
+    'Back to Documentation Index' => 'Retour à l\'accueil de la documentation',
+};
+$LY_LANGUAGES->{'es'} = {
+    'Back to Documentation Index' => 'Volver al índice de la documentación',
+};
+$LY_LANGUAGES->{'de'} = {
+    'Back to Documentation Index' => 'Zur Dokumentationsübersicht',
+};
+$LY_LANGUAGES->{'ja'} = {
+    'Back to Documentation Index' => 'ドキュメント インデックスに戻る',
+};
+
+
+sub ly_get_string () {
+    my $lang = $Texi2HTML::THISDOC{current_lang};
+    my $string = shift;
+    if ($lang and $lang ne "en" and $LY_LANGUAGES->{$lang}->{$string}) {
+       return $LY_LANGUAGES->{$lang}->{$string};
+    } else {
+       return $string;
+    }
+}
 
 
 #############################################################################
@@ -216,7 +244,7 @@ sub load_map_file ($)
 sub split_texi_filename ($)
 {
   my $docu = shift;
-  my $docu_dir, $docu_name;
+  my ($docu_dir, $docu_name);
   if ($docu =~ /(.*\/)/) {
     chop($docu_dir = $1);
     $docu_name = $docu;
@@ -255,7 +283,7 @@ sub lilypond_css_lines ($$)
     {
         $Texi2HTML::THISDOC{'CSS_LINES'} .= "<link rel=\"stylesheet\" type=\"text/css\" title=\"$ref->{TITLE}\" href=\"$ref->{FILENAME}\">\n";
     }
-    foreach my $ref (@ALT_CSS_REFS)
+    foreach my $ref (@Texi2HTML::Config::ALT_CSS_REFS)
     {
         $Texi2HTML::THISDOC{'CSS_LINES'} .= "<link rel=\"alternate stylesheet\" type=\"text/css\" href=\"$ref->{FILENAME}\" title=\"$ref->{TITLE}\">\n";
     }
@@ -464,7 +492,7 @@ sub lilypond_unknown($$$$$)
       if (ref($state->{'element'}) eq 'HASH') {
         $state->{'element'}->{'translationof'} = main::normalise_space($line);
       }
-      return ('', true, undef, undef);
+      return ('', 1, undef, undef);
     } else {
       return t2h_default_unknown($macro, $line, $pass, $stack, $state);
     }
@@ -539,46 +567,50 @@ my @default_toc = [];
 # recursively generate the TOC entries for the element and its children (which
 # are only shown up to maxlevel. All ancestors of the current element are also
 # shown with their immediate children, irrespective of their level.
-# Unnumbered entries are only printed out if they are at top-level or their
-# parent element is an ancestor of the currently viewed node.
-sub generate_ly_toc_entries($$$$)
+# Unnumbered entries are only printed out if they are at top-level or 2nd level 
+# or their parent element is an ancestor of the currently viewed node.
+# The conditions to call this method to print the entry for a child node is:
+# -) the parent is an ancestor of the current page node
+# -) the parent is a numbered element at top-level toplevel (i.e. show numbered 
+#    and unnumbered 2nd-level children of numbered nodes)
+# -) the child element is a numbered node below level maxlevel
+sub generate_ly_toc_entries($$$)
 {
   my $element = shift;
   my $element_path = shift;
   my $maxlevel = shift;
-  my $always_show_unnumbered_children = shift;
   # Skip undefined sections, plus all sections generated by index splitting
   return() if (not defined($element) or exists($element->{'index_page'}));
   my @result = ();
   my $level = $element->{'toc_level'};
   my $is_parent_of_current = $element->{'id'} && $element_path->{$element->{'id'}};
-  my $print_children = ( ($level < $maxlevel) or $is_parent_of_current );
   my $ind = '  ' x $level;
   my $this_css_class = $is_parent_of_current ? " class=\"toc_current\"" : "";
 
   my $entry = "$ind<li$this_css_class>" . &$anchor ($element->{'tocid'}, "$element->{'file'}#$element->{'target'}",$element->{'text'});
 
+  push (@result, $entry);
   my $children = $element->{'section_childs'};
-  # Don't add unnumbered entries, unless they are at top-level or a parent of the current!
-  if (not ($element->{'number'} or $always_show_unnumbered_children)) {
-    return @result;
-  }
-  if ( $print_children and defined($children) and (ref($children) eq "ARRAY") ) {
-    push (@result, $entry);
+  if (defined($children) and (ref($children) eq "ARRAY")) {
+    my $force_children = $is_parent_of_current or ($level == 1 and $element->{'number'});
     my @child_result = ();
-    foreach (@$children) {
-      push (@child_result, generate_ly_toc_entries($_, $element_path, $maxlevel, $is_parent_of_current));
+    foreach my $c (@$children) {
+      my $is_numbered_child = defined ($c->{'number'});
+      my $below_maxlevel = $c->{'toc_level'} le $maxlevel;
+      if ($force_children or ($is_numbered_child and $below_maxlevel)) {
+        my @child_res = generate_ly_toc_entries($c, $element_path, $maxlevel);
+        push (@child_result, @child_res);
+      }
     }
     # if no child nodes were generated, e.g. for the index, where expanded pages
     # are ignored, don't generate a list at all...
     if (@child_result) {
       push (@result, "\n$ind<ul$NO_BULLET_LIST_ATTRIBUTE>\n");
       push (@result, @child_result);
-      push (@result, "$ind</ul></li>\n");
+      push (@result, "$ind</ul>\n");
     }
-  } else {
-    push (@result, $entry . "</li>\n");
   }
+  push (@result, "$ind</li>\n");
   return @result;
 }
 
@@ -604,7 +636,7 @@ sub lilypond_generate_page_toc_body($)
     my @toc_entries = ("<div class=\"contents\">\n", "<ul$NO_BULLET_LIST_ATTRIBUTE>\n");
     my $children = $current_element->{'section_childs'};
     foreach ( @$children ) {
-      push (@toc_entries, generate_ly_toc_entries($_, \%parentelements, $page_toc_depth, False));
+      push (@toc_entries, generate_ly_toc_entries($_, \%parentelements, $page_toc_depth));
     }
     push (@toc_entries, "</ul>\n");
     push (@toc_entries, "</div>\n");
@@ -638,8 +670,9 @@ sub lilypond_print_toc_div ($$)
     my $uplink = $reldir."index.${lang}html";
 
     print $fh "<p class=\"toc_uplink\"><a href=\"$uplink\" 
-         title=\"Documentation Index\">&lt;&lt; Back to 
-         Documentation Index</a></p>\n";
+         title=\"Documentation Index\">&lt;&lt; " .
+        &ly_get_string ('Back to Documentation Index') .
+        "</a></p>\n";
 
     print $fh '<h4 class="toc_header"> ' . &$anchor('',
                                     $Texi2HTML::HREF{'Top'},
diff --git a/ly/SConscript b/ly/SConscript
deleted file mode 100644 (file)
index a615862..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-# -*-python-*-
-
-Import ('env', 'install', 'src_glob')
-sources = src_glob ('*.ly')
-install (sources, env['sharedir_package_version'] + '/ly')
index c9604c8748e96cdcc94bc0546b83729ef3caa88d..93711b1c71b3dcb68f2b732105007f84f7406262 100644 (file)
@@ -23,13 +23,12 @@ That's it.  For more information, visit http://lilypond.org .
 
 %}
 
+\version "2.12.0"  % necessary for upgrading to future LilyPond versions.
+
 \header{
   title = "A scale in LilyPond"
 }
 
-\relative {
+\relative c' {
   c d e f g a b c
 }
-
-
-\version "2.10.0"  % necessary for upgrading to future LilyPond versions.
index d5d99ff0ce0e6762faec61f8a430055cd11891ad..bfe7231ee08c7759c32a4f78abda0b1e50faa4bf 100644 (file)
@@ -6,7 +6,7 @@ Congratulations, LilyPond has been installed successfully.
 
 Now to take it for the first test run.
 
-  1. Save this LilyPond file on your desktop.
+  1. Save this LilyPond file on your desktop with the name "test.ly".
 
   2. Pick it up from the desktop with your mouse pointer, drag and drop
      it onto the LilyPond icon.
@@ -14,21 +14,25 @@ Now to take it for the first test run.
   3. LilyPond automatically produces a PDF file from the musical scale
      below.
 
-  4. To print or view the result, click on the newly produced file called
+  4. To print or view the result, click on the newly produced file
+     called
 
-        Welcome_to_LilyPond.PDF
+        test.PDF
 
 
-That's it.  For more information, visit http://lilypond.org .
+That's it.
+
+LilyPond's interface is text-based. Please read the documentation.
+
+For more information, visit http://lilypond.org .
 %}
 
+\version "2.12.0"  % necessary for upgrading to future LilyPond versions.
+
 \header{
   title = "A scale in LilyPond"
 }
 
-\relative{
+\relative c' {
   c d e f g a b c
 }
-
-
-\version "2.10.0"  % necessary for upgrading to future LilyPond versions.
index 24017211a468efb0b9b184e52deeffe7130f6841..1a4273871a93d514c35b97ee4f8c90645660f201 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.51"
+\version "2.12.0"
 \include "italiano.ly"
 
 %%%%%%%
index 3ed668ce8e56de060d56d13dd58512b57f359287..07c39a9bcd85846a571798e6ff14512fdd8b6c5e 100644 (file)
@@ -9,7 +9,7 @@
   $Id: bagpipe.ly,v 1.12 2006/03/16 14:39:46 hanwen Exp $
 %}
 
-\version "2.10.0"
+\version "2.12.0"
 
 % Notes of the scale of the Great Highland Bagpipe. Extra high notes for bombarde.
 % Flat notes used mainly in some modern music.
index 7d5ae8164a8317048925d440c4402e310dc318ee..aab7edf923390688d2a5724ebaaf3295f6084010 100644 (file)
@@ -74,6 +74,6 @@ pitchnamesCatalan = #`(
 
 pitchnames = \pitchnamesCatalan
 
-\version "2.10.0"
+\version "2.12.0"
 
 #(ly:parser-set-note-names parser pitchnames)
index e401937b023ad445670472df993d53d03c73ae78..98b11b675242bcbd459c720a8adaf2499f27c4af 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.10.0"
+\version "2.12.0"
 
 chordmodifiers = #default-chord-modifier-list
 
@@ -13,8 +13,6 @@ whiteTriangleMarkup = \markup {
   
   %% up pointing triangle
   % #(ly:export (ly:wide-char->utf-8 #x25B3))
-  
-  %% \override #'(font-encoding . TeX-math) \char #77
 } 
 
 blackTriangleMarkup = \markup {
index 661c7f88546afd9f19af5c584bee11998adeeab3..f822e0f3dea4ba7ca32ae47a53674b3feb3d728f 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.10.0"
+\version "2.12.0"
 
 %% < 1.8 compatibility switch
 #(ly:set-option 'old-relative)
@@ -31,10 +31,10 @@ bigger = #1
 center = #0
 
 %% FIXME
-%% should also set allowBeamBreak, 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 \set Score.allowBeamBreak = ##t
+%% try \once \override Score.Beam #'breakable = ##t
 
 %% rather name \newline, \pageBreak ?
 break = #(make-event-chord (list (make-music 'LineBreakEvent 'break-permission 'force)))
@@ -64,6 +64,7 @@ escapedSmallerSymbol = #(make-span-event 'CrescendoEvent START)
 
 
 #(define fretboard-table (make-hash-table 100))
+#(define chord-shape-table (make-hash-table 100))
 
 \include "scale-definitions-init.ly"
 
@@ -111,13 +112,18 @@ setDefaultDurationToQuarter = { c4 }
 #(define musicQuotes (make-hash-table 29))
 
 #(define toplevel-book-handler print-book-with-defaults)
+#(define toplevel-bookpart-handler collect-bookpart-for-book)
 #(define toplevel-music-handler collect-music-for-book)
 #(define toplevel-score-handler collect-scores-for-book)
 #(define toplevel-text-handler collect-scores-for-book)
 
+#(define book-bookpart-handler ly:book-add-bookpart!)
 #(define book-music-handler collect-book-music-for-book)
 #(define book-score-handler ly:book-add-score!)
 #(define book-text-handler ly:book-add-score!)
 
+#(define bookpart-score-handler ly:book-add-score!)
+#(define bookpart-text-handler ly:book-add-score!)
+#(define bookpart-music-handler collect-book-music-for-book)
 
 \include "predefined-fretboards-init.ly"
index 747fd529219ff4ce4d048c1ca204e6ba215cde71..0967f4cad22bed03d5e891d5b132b0d4f9c6b0ec 100644 (file)
@@ -84,6 +84,6 @@ pitchnamesDeutsch = #`(
 
 pitchnames = \pitchnamesDeutsch
 
-\version "2.10.0"
+\version "2.12.0"
 
 #(ly:parser-set-note-names parser pitchnames)
index 70f3c87fa02aae1b257378a5d918ccd84736a1dc..6574a762589a9cc271c8fd104d098416be9e6948 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.10.0"
+\version "2.12.0"
 
 drumPitchNames =
 #'((acousticbassdrum . acousticbassdrum)
index fdbc03fb01b08793b0818ec17e9ffb2c4d68e873..a29430f15898a003428b01f5367005d5836343dc 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.10.0"
+\version "2.12.0"
 
 %
 % declare the standard dynamic identifiers.
index 4f7983c7a4ac53acd0be7f1b698435dbfc41185d..fec9b11aee0b622baa8bc82ee53666900ca2f01b 100644 (file)
@@ -129,7 +129,7 @@ pitchnamesEnglish = #`(
 
 pitchnames = \pitchnamesEnglish
 
-\version "2.10.0"
+\version "2.12.0"
 
 
 #(ly:parser-set-note-names parser pitchnames)
index 49f22c1b3de9010015e172cf9a5928f7b22d4471..e32d94498e73cfb0f8487bf731173a3c1a5aec79 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.10.0"
+\version "2.12.0"
 
 \context {
   \name "Global"
   \type "Engraver_group"
   \name "FretBoards"
 
-  \consists "Output_property_engraver" 
 
-  \consists "Axis_group_engraver" 
   \consists "Fretboard_engraver"
+  \consists "Rest_swallow_translator" 
+  \consists "Output_property_engraver" 
+  \consists "Skip_event_swallow_translator"
+  \consists "Hara_kiri_engraver"
   \consists "Separating_line_group_engraver"
   \consists "Font_size_engraver"
   \consists "Instrument_name_engraver"
@@ -48,6 +50,7 @@
   \consists "Ledger_line_engraver" 
   \consists "Staff_symbol_engraver"
   \consists "Collision_engraver"
+  \consists "Grob_pq_engraver"
   \consists "Rest_collision_engraver"
   \consists "Accidental_engraver"
   \consists "Piano_pedal_engraver"
 
 \context {
   \type "Engraver_group"
-  \name "InnerChoirStaff"
+  \name "ChoirStaff"
   \consists "System_start_delimiter_engraver"
   systemStartDelimiter = #'SystemStartBracket
   vocalName = #'()
   \accepts "PianoStaff"
   \accepts "Lyrics"
   \accepts "ChordNames"
+  \accepts "ChoirStaff"
+  \accepts "StaffGroup"
   \defaultchild "Staff"
-}
-
-\context {
-  \InnerChoirStaff
-  \name ChoirStaff
-  
-  \defaultchild "Staff"
-  \accepts "InnerChoirStaff"
-  \accepts "InnerStaffGroup"
   \description "Identical to @code{StaffGroup} except that the
 contained staves are not connected vertically."
-
 }
 
 \context{
@@ -314,7 +309,7 @@ instrument names at the start of each system."
 
 \context {
   \type "Engraver_group"
-  \name InnerStaffGroup
+  \name "StaffGroup"
 
   \consists "Span_bar_engraver"
   \consists "Span_arpeggio_engraver"
@@ -332,24 +327,16 @@ instrument names at the start of each system."
   \accepts "TabStaff"  
   \accepts "Lyrics"
   \accepts "ChordNames"
-}
-
-\context {
-  \InnerStaffGroup
-  \name StaffGroup
+  \accepts "FiguredBass"
+  \accepts "ChoirStaff"
+  \accepts "StaffGroup"
   
   \description "Groups staves while adding a bracket on the left
 side, grouping the staves together.  The bar lines of the contained
 staves are connected vertically.  @code{StaffGroup} only consists of
 a collection of staves, with a bracket in front and spanning bar lines."
-  
-  \accepts "InnerChoirStaff"
-  \accepts "ChoirStaff"
-  \accepts "InnerStaffGroup"
-  \accepts "FiguredBass"
 }
 
-
 \context{
   \type "Engraver_group"
   \override VerticalAxisGroup #'minimum-Y-extent = #'(-0.75 . 2.0)
@@ -522,6 +509,8 @@ automatically when an output definition (a @code{\score} or
   explicitKeySignatureVisibility = #all-visible
   implicitTimeSignatureVisibility = #end-of-line-invisible
   
+  repeatCountVisibility = #all-repeat-counts-visible
+  
   autoBeamSettings = #default-auto-beam-settings
   autoBeaming = ##t
   autoBeamCheck = #default-auto-beam-check
@@ -548,7 +537,6 @@ automatically when an output definition (a @code{\score} or
   markFormatter = #format-mark-letters
   rehearsalMark = #1
   subdivideBeams = ##f
-  allowBeamBreak = ##f
   extraNatural = ##t
   autoAccidentals = #`(Staff ,(make-accidental-rule 'same-octave 0))
   autoCautionaries = #'()  
@@ -796,7 +784,7 @@ of Editio Vaticana."
   clefOctavation = #0
 
   %% Select vaticana style font.
-  \override KeySignature #'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
@@ -808,7 +796,7 @@ of Editio Vaticana."
   \Voice
   \name "GregorianTranscriptionVoice"
   \alias "Voice"
-  
+
   %% Removing ligature bracket engraver without replacing it by some
   %% other ligature engraver would cause a "Junking event: `LigatureEvent'"
   %% warning for every "\[" and "\]".  Therefore, we make the grob
@@ -862,7 +850,8 @@ accommodated for typesetting a piece in mensural style."
   \consists "Mensural_ligature_engraver"
 
   %% Set default head for notes outside of \[ \].
-  \override NoteHead #'style = #'petrucci
+  \override NoteHead #'style = #'mensural
+  \override Rest #'style = #'mensural
 
   %% There are no beams in mensural notation.
   autoBeaming = ##f
@@ -890,8 +879,8 @@ accommodated for typesetting a piece in mensural style."
   %% FIXME: unit on StaffSymbol's width should be \linewidth.
   %% \override StaffSymbol #'width = #60.0
 
-  %% Choose petrucci g clef on 2nd line as default.
-  clefGlyph = #"clefs.petrucci.g"
+  %% Choose mensural g clef on 2nd line as default.
+  clefGlyph = #"clefs.mensural.g"
   middleCClefPosition = #-6
   middleCPosition = #-6
   clefPosition = #-2
@@ -899,7 +888,7 @@ accommodated for typesetting a piece in mensural style."
 
   %% Select mensural style font.
   \override TimeSignature #'style = #'mensural
-  \override KeySignature #'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
@@ -909,7 +898,7 @@ accommodated for typesetting a piece in mensural style."
   %% #(set-accidental-style 'forget))
   extraNatural = ##f
   autoAccidentals = #`(Staff ,(make-accidental-rule 'same-octave -1))
-  autoCautionaries = #'()  
+  autoCautionaries = #'()
   printKeyCancellation = ##f
 }
 
index 760ec8407a4750243bb7c98c11d9c94e7b836acd..90305f603e846e50e9e20a383a16a99aabd6b5fc 100644 (file)
@@ -58,6 +58,6 @@ pitchnamesEspanol = #`(
 
 pitchnames = \pitchnamesEspanol
 
-\version "2.10.0"
+\version "2.12.0"
 
 #(ly:parser-set-note-names parser pitchnames)
index f77b48f8e5f1cc7dd2653301f9bbbba67b19c32c..66313e3f99bd44c0824bb51a0a6bbb85a8b98441 100644 (file)
@@ -20,7 +20,7 @@
 % along with this program; if not, write to the Free Software
 % Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA.
 
-\version "2.11.11"
+\version "2.12.0"
 
 #(use-modules (scm song))
 
index a28da003785ed03c5d2f7f5fc4f9e0f5ef917fc1..c6b236d5c55fcd0ce6dfcb09badf9459163fe0dd 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.10.0"
+\version "2.12.0"
 
 %
 % Running LilyPond on this file generates the documentation
index b7e2ec1a973d1c26f0ebbd9776e42a51bd114a76..20668317a19c347f407fb6051f386075a7b9e195 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.10.0"
+\version "2.12.0"
 
 %
 % Running LilyPond on this file generates the short interface doc
index daea9d33c29544609275d5ffce098bd20b57c473..ea89bb2e4ede3adb688a9e6021ada135c3d51cc6 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.10.0"
+\version "2.12.0"
 
 
 startGraceMusic =  {
index cae11b1a29a191af49a56e78c80e325c915c4613..12330a345fcba250c60faff1a26746cd7e9098af 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.15"
+\version "2.12.0"
 
 #(use-modules (scm graphviz))
 
index 30a556ae0b5b1be23625a476a8ba89eeb0888743..496e0b6717a5b73133717cb564fce05a5444de06 100644 (file)
@@ -3,7 +3,7 @@
   $Id$
 %}
 
-\version "2.10.0"
+\version "2.12.0"
 
 %
 % Declare memorable shortcuts for special unicode characters
@@ -223,7 +223,6 @@ ligature = #(define-music-function
 %
 \layout {
     indent = 0.0
-    packed = ##t
 
     %%% TODO: should raggedright be the default?
     %ragged-right = ##t
index a4bd1c3a3985a466f1c888ac2a58e30197739ae8..d1923659f981c3a90e8e3a1447a921a470b68186 100644 (file)
@@ -4,13 +4,14 @@
 #(if (and #t (defined? 'set-debug-cell-accesses!))
   (set-debug-cell-accesses! 5000))
 
-\version "2.10.0"
+\version "2.12.0"
 
 \include "declarations-init.ly"
 
 
 #(ly:set-option 'old-relative #f)
-#(define toplevel-scores '())
+#(define toplevel-scores (list))
+#(define toplevel-bookparts (list))
 #(define output-count 0) 
 #(define $defaultheader #f)
 #(define version-seen #f)
   (version-not-seen-message input-file-name))
 
 #(ly:set-option 'protected-scheme-parsing #f)
-#(if (or (pair? toplevel-scores) output-empty-score-list)
-  ((if (defined? 'default-toplevel-book-handler)
-    default-toplevel-book-handler
-    toplevel-book-handler)
-   parser
-   (apply ly:make-book $defaultpaper $defaultheader toplevel-scores)))
 
+#(let ((book-handler (if (defined? 'default-toplevel-book-handler)
+                         default-toplevel-book-handler
+                         toplevel-book-handler)))
+   (cond ((pair? toplevel-bookparts)
+          (let ((book (ly:make-book $defaultpaper $defaultheader)))
+            (map (lambda (part)
+                   (ly:book-add-bookpart! book part))
+                 (reverse! toplevel-bookparts))
+            (set! toplevel-bookparts (list))
+            ;; if scores have been defined after the last explicit \bookpart:
+            (if (pair? toplevel-scores)
+                (map (lambda (score)
+                       (ly:book-add-score! book score))
+                     (reverse! toplevel-scores)))
+            (set! toplevel-scores (list))
+            (book-handler parser book)))
+         ((or (pair? toplevel-scores) output-empty-score-list)
+          (book-handler parser (apply ly:make-book $defaultpaper
+                                      $defaultheader toplevel-scores)))))
 
 #(if (eq? expect-error (ly:parser-has-error? parser))
   (ly:parser-clear-error parser)
index 13c4c17634f25afe824ccaa7031d868ed42f79ea..c22292b827b5ec0762f6c3403df4345215a3554d 100644 (file)
@@ -86,6 +86,6 @@ pitchnamesItaliano = #`(
 
 pitchnames = \pitchnamesItaliano
 
-\version "2.10.0"
+\version "2.12.0"
 
 #(ly:parser-set-note-names parser pitchnames)
index a7bea92f1566be1148302a18d39b08fb26e6adb3..e6e72503eb7d182581555708b5a49ff69851b985 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.10.0"
+\version "2.12.0"
 
 %% toplevel \book gets output per page,
 %% everything else gets output per system/title
index 68cd7d7bc9bdf9bbb81821056c2c7f2a3fb98095..c7f793d267754a244fb0776539d256105d01cf30 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.61"
+\version "2.12.0"
 
 %{
 
index 49c155c94e6a73ea215cde978d60c779c5cb4b97..5749c7bb8f9621a71813f4b40fcf9ce7ac9c6c80 100644 (file)
@@ -1,6 +1,6 @@
 %% -*- Mode: Scheme -*-
 
-\version "2.11.9"
+\version "2.12.0"
 
 %%;; to be define later, in a closure
 #(define-public toplevel-module-define-public! #f)
index 7a6166afae93061ec180361d3e79235efa85de03..3ba3651f06d5ed24e31a4db7bbff344570eb967e 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.10.0"
+\version "2.12.0"
 \midi {
        \include "performer-init.ly"
 }
index 10af2cfefb8f720f02b034d67d9894b0e08a02b4..eb74f8715b08376e0c8019c6c47b2c6e2efaff73 100644 (file)
@@ -1,22 +1,24 @@
 % -*-Scheme-*-
 
-\version "2.10.0"
+\version "2.12.0"
 
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %% this file is alphabetically sorted.
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
-%% need SRFI-1 filter 
+%% need SRFI-1 filter
 
 #(use-modules (srfi srfi-1))
 
 acciaccatura =
-#(def-grace-function startAcciaccaturaMusic stopAcciaccaturaMusic)
+#(def-grace-function startAcciaccaturaMusic stopAcciaccaturaMusic
+   (_i "Create an acciaccatura from the following music expression"))
 
 addQuote =
 #(define-music-function (parser location name music) (string? ly:music?)
-   (_i "Add a piece of music to be quoted ")
+   (_i "Define @var{music} as a quotable music expression named
+@var{name}")
    (add-quotable parser name music)
    (make-music 'SequentialMusic 'void #t))
 
@@ -27,11 +29,11 @@ afterGrace =
 #(define-music-function
   (parser location main grace)
   (ly:music? ly:music?)
-
+  (_i "Create @var{grace} note(s) after a @var{main} music expression.")
   (let*
       ((main-length (ly:music-length main))
        (fraction  (ly:parser-lookup parser 'afterGraceFraction)))
-    
+
     (make-simultaneous-music
      (list
       main
@@ -50,34 +52,38 @@ afterGrace =
 
 applyMusic =
 #(define-music-function (parser location func music) (procedure? ly:music?)
-               (func music))
+   (_i"Apply procedure @var{func} to @var{music}.")
+  (func music))
 
 
 applyOutput =
 #(define-music-function (parser location ctx proc) (symbol? procedure?)
-                (make-music 'ApplyOutputEvent
-                  'origin location
-                  'procedure proc
-                  'context-type ctx))
+  (_i "Apply function @code{proc} to every layout object in context @code{ctx}")
+  (make-music 'ApplyOutputEvent
+              'origin location
+              'procedure proc
+              'context-type ctx))
 
 appoggiatura =
-#(def-grace-function startAppoggiaturaMusic stopAppoggiaturaMusic)
-
+#(def-grace-function startAppoggiaturaMusic stopAppoggiaturaMusic
+  (_i "Create an appoggiatura from @var{music}"))
 
 
 % for regression testing purposes.
 assertBeamQuant =
 #(define-music-function (parser location l r) (pair? pair?)
+  (_i "Testing function: check whether the beam quants @var{l} and @var{r} are correct")
   (make-grob-property-override 'Beam 'positions
    (ly:make-simple-closure
     (ly:make-simple-closure
      (append
       (list chain-grob-member-functions `(,cons 0 0))
       (check-quant-callbacks l r))))))
-    
+
 % for regression testing purposes.
 assertBeamSlope =
 #(define-music-function (parser location comp) (procedure?)
+  (_i "Testing function: check whether the slope of the beam is the same as @code{comp}")
   (make-grob-property-override 'Beam 'positions
    (ly:make-simple-closure
     (ly:make-simple-closure
@@ -89,18 +95,22 @@ assertBeamSlope =
 
 autochange =
 #(define-music-function (parser location music) (ly:music?)
-               (make-autochange-music parser music))
+  (_i "Make voices that switch between staves automatically")
+  (make-autochange-music parser music))
 
 applyContext =
 #(define-music-function (parser location proc) (procedure?)
-                 (make-music 'ApplyContext 
-                   'origin location
-                   'procedure proc))
+  (_i "Modify context properties with Scheme procedure @var{proc}.")
+  (make-music 'ApplyContext
+              'origin location
+              'procedure proc))
 
 
 balloonGrobText =
-#(define-music-function (parser location grob-name offset text) (symbol? number-pair? markup?)
-   
+#(define-music-function (parser location grob-name offset text)
+                        (symbol? number-pair? markup?)
+  (_i "Attach @var{text} to @var{grob-name} at offset @var{offset}
+(use like @code{\\once})")
     (make-music 'AnnotateOutputEvent
                'symbol grob-name
                'X-offset (car offset)
@@ -109,7 +119,7 @@ balloonGrobText =
 
 balloonText =
 #(define-music-function (parser location offset text) (number-pair? markup?)
-   
+  (_i "Attach @var{text} at @var{offset} (use like @code{\\tweak})")
     (make-music 'AnnotateOutputEvent
                'X-offset (car offset)
                'Y-offset (cdr offset)
@@ -117,8 +127,8 @@ balloonText =
 
 
 bar =
-#(define-music-function (parser location type)
-   (string?)
+#(define-music-function (parser location type) (string?)
+  (_i "Insert a bar line of type @var{type}")
    (context-spec-music
     (make-property-set 'whichBar type)
     'Timing))
@@ -126,9 +136,10 @@ bar =
 
 barNumberCheck =
 #(define-music-function (parser location n) (integer?)
-   (make-music 'ApplyContext 
+  (_i "Print a warning if the current bar number is not @var{n}.")
+   (make-music 'ApplyContext
               'origin location
-              'procedure 
+              'procedure
               (lambda (c)
                 (let*
                     ((cbn (ly:context-property c 'currentBarNumber)))
@@ -139,32 +150,32 @@ barNumberCheck =
 
 bendAfter =
 #(define-music-function (parser location delta) (real?)
-             
+  (_i "Create a fall or doit of pitch interval @var{delta}.")
   (make-music 'BendAfterEvent
    'delta-step delta))
 
 %% why a function?
 breathe =
 #(define-music-function (parser location) ()
-            (make-music 'EventChord 
+  (_i "Insert a breath mark.")
+            (make-music 'EventChord
               'origin location
               'elements (list (make-music 'BreathingEvent))))
 
 
 clef =
-#(define-music-function (parser location type)
-   (string?)
-   (_i "Set the current clef.")
-
+#(define-music-function (parser location type) (string?)
+  (_i "Set the current clef to @var{type}.")
    (make-clef-set type))
 
 
-cueDuring = 
+cueDuring =
 #(define-music-function
-  (parser location what dir main-music)
-  (string? ly:dir? ly:music?)
+  (parser location what dir main-music) (string? ly:dir? ly:music?)
+  (_i "Insert contents of quote @var{what} corresponding to @var{main-music},
+in a CueVoice oriented by @var{dir}.")
   (make-music 'QuoteMusic
-             'element main-music 
+             'element main-music
              'quoted-context-type 'Voice
              'quoted-context-id "cue"
              'quoted-music-name what
@@ -173,12 +184,15 @@ cueDuring =
 
 displayLilyMusic =
 #(define-music-function (parser location music) (ly:music?)
+  (_i "Display  the LilyPond input representation of @var{music}
+to the console.")
    (newline)
    (display-lily-music music parser)
    music)
 
 displayMusic =
 #(define-music-function (parser location music) (ly:music?)
+  (_i "Display the internal representation of @var{music} to the console.")
    (newline)
    (display-scheme-music music)
    music)
@@ -186,6 +200,7 @@ displayMusic =
 
 endSpanners =
 #(define-music-function (parser location music) (ly:music?)
+  (_i "Terminate the next spanner prematurely after exactly one note without the need of a specific end spanner.")
    (if (eq? (ly:music-property music 'name) 'EventChord)
        (let*
           ((elts (ly:music-property music 'elements))
@@ -206,19 +221,17 @@ endSpanners =
                               'elements (list music
                                               end-ev-chord))))
         total)
-       
+
        (ly:input-message location (_ "argument endSpanners is not an EventChord: ~a" music))))
 
 featherDurations=
 #(define-music-function (parser location factor argument) (ly:moment? ly:music?)
-   (_i "Rearrange durations in ARGUMENT so there is an
-acceleration/deceleration. ")
-   
+ (_i "Adjust durations of music in @var{argument} by rational @var{factor}. ")
    (let*
        ((orig-duration (ly:music-length argument))
        (multiplier (ly:make-moment 1 1)))
 
-     (music-map 
+     (music-map
       (lambda (mus)
        (if (and (eq? (ly:music-property mus 'name) 'EventChord)
                 (< 0 (ly:moment-main-denominator (ly:music-length mus))))
@@ -236,15 +249,15 @@ acceleration/deceleration. ")
      argument))
 
 grace =
-#(def-grace-function startGraceMusic stopGraceMusic)
-
+#(def-grace-function startGraceMusic stopGraceMusic
+   (_i "Insert @var{music} as grace notes."))
 
 "instrument-definitions" = #'()
 
 addInstrumentDefinition =
 #(define-music-function
    (parser location name lst) (string? list?)
-
+   (_i "Create instrument @var{name} with properties @var{list}.")
    (set! instrument-definitions (acons name lst instrument-definitions))
 
    (make-music 'SequentialMusic 'void #t))
@@ -253,6 +266,8 @@ addInstrumentDefinition =
 instrumentSwitch =
 #(define-music-function
    (parser location name) (string?)
+   (_i "Switch instrument to @var{name}, which must be predefined with
+@var{\addInstrumentDefinition}.")
    (let*
        ((handle  (assoc name instrument-definitions))
        (instrument-def (if handle (cdr handle) '()))
@@ -274,10 +289,10 @@ instrumentSwitch =
 %% Parser used to read page-layout file, and then retreive score tweaks.
 #(define page-layout-parser #f)
 
-includePageLayoutFile = 
+includePageLayoutFile =
 #(define-music-function (parser location) ()
-   (_i "If page breaks and tweak dump is not asked, and the file
-<basename>-page-layout.ly exists, include it.")
+   (_i "Include the file @var{<basename>-page-layout.ly}. Deprecated as
+part of two-pass spacing.")
    (if (not (ly:get-option 'dump-tweaks))
        (let ((tweak-filename (format #f "~a-page-layout.ly"
                                     (ly:parser-output-name parser))))
@@ -290,11 +305,10 @@ includePageLayoutFile =
                                                tweak-filename))))))
    (make-music 'SequentialMusic 'void #t))
 
-
-
 keepWithTag =
 #(define-music-function
   (parser location tag music) (symbol? ly:music?)
+  (_i "Include only elements of @var{music} that are tagged with @var{tag}.")
   (music-filter
    (lambda (m)
     (let* ((tags (ly:music-property m 'tags))
@@ -304,9 +318,10 @@ keepWithTag =
       res)))
    music))
 
-removeWithTag = 
+removeWithTag =
 #(define-music-function
   (parser location tag music) (symbol? ly:music?)
+  (_i "Remove elements of @var{music} that are tagged with @var{tag}.")
   (music-filter
    (lambda (m)
     (let* ((tags (ly:music-property m 'tags))
@@ -318,24 +333,26 @@ killCues =
 #(define-music-function
    (parser location music)
    (ly:music?)
+   (_i "Remove cue notes from @var{music}.")
    (music-map
     (lambda (mus)
       (if (string? (ly:music-property mus 'quoted-music-name))
          (ly:music-property mus 'element)
          mus)) music))
 
-label = 
+label =
 #(define-music-function (parser location label) (symbol?)
-   (_i "Place a bookmarking label, either at top-level or inside music.")
+   (_i "Create @var{label} as a bookmarking label")
    (make-music 'EventChord
               'page-marker #t
               'page-label label
               'elements (list (make-music 'LabelEvent
-                                          'page-label label)))) 
+                                          'page-label label))))
 
 makeClusters =
 #(define-music-function
                (parser location arg) (ly:music?)
+   (_i "Display chords in @var{arg} as clusters")
                (music-map note-to-cluster arg))
 
 musicMap =
@@ -343,20 +360,10 @@ musicMap =
             (music-map proc mus))
 
 
-
-oldaddlyrics =
-#(define-music-function (parser location music lyrics) (ly:music? ly:music?)
-
-              (make-music 'OldLyricCombineMusic 
-                          'origin location
-                          'elements (list music lyrics)))
-
-
 overrideProperty =
 #(define-music-function (parser location name property value)
    (string? symbol? 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\"}")
@@ -410,7 +417,7 @@ markups), or inside a score.")
 pageTurn =
 #(define-music-function (location parser) ()
    (_i "Force a page turn between two scores or top-level markups.")
-   (make-music 'EventChord 
+   (make-music 'EventChord
               'page-marker #t
               'line-break-permission 'force
               'page-break-permission 'force
@@ -452,7 +459,7 @@ octaveCheck =
 
    (make-music 'RelativeOctaveCheck
               'origin location
-              'pitch (pitch-of-note pitch-note) 
+              'pitch (pitch-of-note pitch-note)
            ))
 
 ottava = #(define-music-function (parser location octave) (number?)
@@ -464,7 +471,7 @@ partcombine =
                 (make-part-combine-music parser
                                         (list part1 part2)))
 
-             
+
 pitchedTrill =
 #(define-music-function
    (parser location main-note secondary-note)
@@ -483,7 +490,7 @@ pitchedTrill =
           (let*
               ((trill-pitch (ly:music-property (car sec-note-events) 'pitch))
                (forced (ly:music-property (car sec-note-events ) 'force-accidental)))
-            
+
             (if (ly:pitch? trill-pitch)
                 (for-each (lambda (m) (ly:music-set-property! m 'pitch trill-pitch))
                           trill-events)
@@ -534,7 +541,7 @@ Example:
     (define (change-voice)
       "Stores the previously built sequence into the current voice and
        change to the following voice."
-      (list-set! current-voices 0 (cons (make-music 'SequentialMusic 
+      (list-set! current-voices 0 (cons (make-music 'SequentialMusic
                                          'elements (reverse! current-sequence))
                                         (car current-voices)))
       (set! current-sequence (list))
@@ -548,7 +555,7 @@ Example:
             ((not (null? (ly:music-property music 'origin)))
              (ly:music-property music 'origin))
             (else (or (music-origin (ly:music-property music 'element))
-                      (let ((origins (remove not (map music-origin 
+                      (let ((origins (remove not (map music-origin
                                                       (ly:music-property music 'elements)))))
                         (and (not (null? origins)) (car origins)))))))
     ;;
@@ -577,15 +584,15 @@ Example:
                       (let ((moment-reference (ly:music-length (car seqs))))
                         (for-each (lambda (seq moment)
                                     (if (not (equal? moment moment-reference))
-                                        (ly:music-message seq 
+                                        (ly:music-message seq
                                          "Bars in parallel music don't have the same length")))
                           seqs (map-in-order ly:music-length seqs))))
            voices)
    ;;
    ;; bind voice identifiers to the voices
    (map (lambda (voice-id voice)
-          (ly:parser-define! parser voice-id 
-                             (make-music 'SequentialMusic 
+          (ly:parser-define! parser voice-id
+                             (make-music 'SequentialMusic
                                'origin location
                                'elements voice)))
         voice-ids voices))
@@ -651,7 +658,7 @@ scaleDurations =
 shiftDurations =
 #(define-music-function (parser location dur dots arg) (integer? integer? ly:music?)
    (_i "")
-   
+
    (music-map
     (lambda (x)
       (shift-one-duration-log x dur dots)) arg))
@@ -671,10 +678,10 @@ the `parameters' assoc list.")
 rightHandFinger =
 #(define-music-function (parser location finger) (number-or-string?)
    (_i "Define a StrokeFingerEvent")
-   
+
    (apply make-music
          (append
-          (list 
+          (list
            'StrokeFingerEvent
            'origin location)
           (if  (string? finger)
@@ -741,7 +748,7 @@ tweak = #(define-music-function (parser location sym val arg)
           (symbol? scheme? ly:music?)
 
           (_i "Add @code{sym . val} to the @code{tweaks} property of @var{arg}.")
-          
+
           (set!
            (ly:music-property arg 'tweaks)
            (acons sym val
index eed065349fb29f0e5aad684085c916ab78cdab8d..9a1eaab774f4ea299090d1118eab672d3a12d7a4 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.10.0"
+\version "2.12.0"
 %{
  common dutch names for notes. es means flat, is means sharp
 
index 76db0ec2cc5b1b099b3f9cc3323335cb13397190..5b02889ab43a9b66abbc9be80061fb784c9e5d7f 100644 (file)
@@ -105,6 +105,6 @@ pitchnamesNorsk = #`(
 
 pitchnames =\pitchnamesNorsk
 
-\version "2.10.0"
+\version "2.12.0"
 
 #(ly:parser-set-note-names parser pitchnames)
index 67839f9c6c5695869bc39438f08184b901e03416..9d2725ede0d20f533f880105500cf9d86c6b942c 100644 (file)
@@ -1,22 +1,18 @@
-\version "2.11.11"
+\version "2.12.0"
 #(use-modules (scm layout-page-layout))
 \paper {
 
-    %%%% WARNING
-
-    %%% if you  add any new dimensions, don't forget to update
-    %%% the dimension-variables variable. see paper.scm
+    %%% WARNING
+    %%%
+    %%% If you add any new dimensions, don't forget to update
+    %%% the dimension-variables variable.  See paper.scm.
     
     unit = #(ly:unit)
     mm = 1.0
     in = 25.4
-    pt = #(/  in 72.27)
+    pt = #(/ in 72.27)
     cm = #(* 10 mm)
 
-    %% This is weird; `everyone' uses LATIN1?  How does I select TeX
-    %% input encoding in EMACS? -- jcn
-    %%%%input-encoding = #"TeX"
-    input-encoding = #"latin1"
     print-page-number = ##t
 
     %%
     #(define font-defaults
       '((font-encoding . fetaMusic)))
 
-    %% use lmodern in latin1 (cork) flavour if EC is not available.
+    %%
+    %% the font encoding `latin1' is a dummy value for Pango fonts
+    %%
     #(define text-font-defaults
-      `((font-encoding .
-        ,(cond
-          (tex-backend? 'Extended-TeX-Font-Encoding---Latin)
-          (else 'latin1)))
-       ;; add to taste here.
-       
+      `((font-encoding . latin1)
        (baseline-skip . 3)
        (word-space . 0.6)))
 
index 9c877d233aa0d80220029889eb67b5b0b1e691e5..2c0e87eae9f6d4dd25aaa07b6a6f4b6a09b2f591 100644 (file)
@@ -1,2 +1,2 @@
-\version "2.10.0"
+\version "2.12.0"
 
index b48bd5454d01ba1b6ca7c53d4ff44ae7300e5f18..3803396b2075b07e814fdb07448b865d24e4b81d 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.10.0"
+\version "2.12.0"
 
 %%
 %% setup for Request->Element conversion. 
index 1444d2577158c827648ff44539e5c6805984c048..4810c855485ec84bf904d23eaefb40979004009a 100644 (file)
@@ -86,6 +86,6 @@ pitchnamesPortuguese = #`(
 
 pitchnames = \pitchnamesPortuguese
 
-\version "2.10.0"
+\version "2.12.0"
 
 #(ly:parser-set-note-names parser pitchnames)
index e999c93a4d38a0792e8156c23b91dbb97ddfa298..35a6e7560d4b2669d7d2cbac6d853f628770a695 100644 (file)
@@ -2,52 +2,52 @@
 %%%%
 %%%% source file of the GNU LilyPond music typesetter
 %%%%
-%%%% (c) 2008 Carl D. Sorensen <c_sorensen@byu.edu>
+%%%% (c) 2008--2009 Carl D. Sorensen <c_sorensen@byu.edu>
 
-\version "2.11.56"
+\version "2.12.0"
 
-%%%%% define storage structures
-
-% base-chord-shapes is an alist of chord shapes
-% in the form of fret-diagram-terse strings with
-% scheme symbols as keys.  For convenience, the
-% symbols are LilyPond chordmode chord descriptions,
+% chord-shape-table is a hash-table of chord shapes
+% in the form of diagram-descriptions that can be
+% fret-diagram-verbose markup-llsts or
+% fret-diagram-terse strings.
+% The hash keys are pairs of scheme symbols and
+% string tunings.  For convenience, the symbols in
+% this file are LilyPond chordmode chord descriptions,
 % but that is unnecessary.
 
-#(define base-chord-shapes '())
-
-
 % music function for adding a chord shape to
-% base-chord-shapes
+% chord-shape-table
 
 addChordShape =
-#(define-music-function (parser location key-symbol shape-string)
-   (symbol? string?)
-   "Add chord shape @code{shape-string} to the @code{base-chord-shapes}
-alist with the key @code{key-symbol}."
-   (set! base-chord-shapes 
-           (acons key-symbol shape-string base-chord-shapes))
+#(define-music-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 @var{(cons key-symbol tuning)}.")
+   (hash-set! chord-shape-table
+               (cons key-symbol tuning)
+               shape-definition)
    (make-music 'SequentialMusic 'void #t))
 
-% for convenience, to eliminate storage list in .ly references
-
-#(define (chord-shape shape-code)
-   (get-chord-shape shape-code base-chord-shapes))
+#(define (chord-shape shape-code tuning)
+   (get-chord-shape shape-code tuning chord-shape-table))
 
 % music function for adding a predefined diagram to
 % fretboard-table
 
 storePredefinedDiagram =
-#(define-music-function (parser location chord tuning terse-definition)
-  (ly:music? list? string?)
-  "Add predefined fret diagram defined by fret-diagram-terse definition
-string @code{terse-definition} for the chord pitches @code{chord} and
+#(define-music-function (parser location chord tuning diagram-definition)
+  (ly:music? pair? string-or-pair?)
+  "Add predefined fret diagram defined by @code{diagram-definition}
+for the chord pitches @code{chord} and
 the stringTuning @code{tuning}."
   (let* ((pitches (event-chord-pitches 
                     (car (extract-named-music chord 'EventChord))))
-         (hash-key (cons tuning pitches)))
+         (hash-key (cons tuning pitches))
+         (verbose-definition (if (string? diagram-definition)
+                                 (parse-terse-string diagram-definition)
+                                 diagram-definition)))
   (hash-set! fretboard-table 
              hash-key 
-             (parse-terse-string terse-definition)))
+             verbose-definition))
   (make-music 'SequentialMusic 'void #t))
 
index a448f34ba159003dcac7c246074e11faec8b7bea..815b704417103aaf559738f7084058f57f5592a4 100644 (file)
@@ -2,26 +2,26 @@
 %%%%
 %%%% source file of the GNU LilyPond music typesetter
 %%%%
-%%%% (c) 2008 Carl D. Sorensen <c_sorensen@byu.edu>
+%%%% (c) 2008--2009 Carl D. Sorensen <c_sorensen@byu.edu>
 
 %%%  Add basic chordshapes
 
-\version "2.11.56"
+\version "2.12.0"
 
-\addChordShape #'f #"1-1-(;3-3;3-4;2-2;1-1;1-1-);"
-\addChordShape #'f:m #"1-1-(;3-3;3-4;1-1;1-1;1-1-);"
-\addChordShape #'f:7 #"1-1-(;3-3;1-1;2-2;1-1;1-1-);"
-\addChordShape #'f:m7 #"1-1-(;3-3;1-1;1-1;1-1;1-1-);"
-\addChordShape #'bes #"x;1-1-(;3-2;3-3;3-4;1-1-);"
-\addChordShape #'bes:m #"x;1-1-(;3-3;3-4;2-2;1-1-);"
-\addChordShape #'bes:m7 #"x;1-1-(;3-3;1-1;2-2;1-1-);"
-\addChordShape #'bes:7 #"x;1-1-(;3-2;1-1;3-3;1-1-);"
-\addChordShape #'bes:maj7 #"x;1-1;3-3;2-2;3-4;x;"
-\addChordShape #'c:dim #"x;x;1-1;2-3;1-2;2-4;"
-\addChordShape #'c:aug #"x;x;2-2;1-1-(;1-1-);4-4;"
-\addChordShape #'cis #"x;x;3-3;1-1-(;2-2;1-1-);"
-\addChordShape #'ees:dim #"x;x;1-1;2-3;1-2;2-4;"
-\addChordShape #'a:dim #"x;x;1-1;2-3;1-2;2-4;"
+\addChordShape #'f #guitar-tuning #"1-1-(;3-3;3-4;2-2;1-1;1-1-);"
+\addChordShape #'f:m #guitar-tuning #"1-1-(;3-3;3-4;1-1;1-1;1-1-);"
+\addChordShape #'f:7 #guitar-tuning #"1-1-(;3-3;1-1;2-2;1-1;1-1-);"
+\addChordShape #'f:m7 #guitar-tuning #"1-1-(;3-3;1-1;1-1;1-1;1-1-);"
+\addChordShape #'bes #guitar-tuning #"x;1-1-(;3-2;3-3;3-4;1-1-);"
+\addChordShape #'bes:m #guitar-tuning #"x;1-1-(;3-3;3-4;2-2;1-1-);"
+\addChordShape #'bes:m7 #guitar-tuning #"x;1-1-(;3-3;1-1;2-2;1-1-);"
+\addChordShape #'bes:7 #guitar-tuning #"x;1-1-(;3-2;1-1;3-3;1-1-);"
+\addChordShape #'bes:maj7 #guitar-tuning #"x;1-1;3-3;2-2;3-4;x;"
+\addChordShape #'c:dim #guitar-tuning #"x;x;1-1;2-3;1-2;2-4;"
+\addChordShape #'c:aug #guitar-tuning #"x;x;2-2;1-1-(;1-1-);4-4;"
+\addChordShape #'cis #guitar-tuning #"x;x;3-3;1-1-(;2-2;1-1-);"
+\addChordShape #'ees:dim #guitar-tuning #"x;x;1-1;2-3;1-2;2-4;"
+\addChordShape #'a:dim #guitar-tuning #"x;x;1-1;2-3;1-2;2-4;"
 
 %%%  Add predefined chords
 
                         #"x;3-3;2-2;o;1-1;o;"  
 \storePredefinedDiagram \chordmode {c:m} 
                         #guitar-tuning 
-                        #(offset-fret 2 (chord-shape 'bes:m))
+                        #(offset-fret 2 (chord-shape 'bes:m guitar-tuning))
 \storePredefinedDiagram \chordmode {c:aug} 
                         #guitar-tuning 
-                        #(chord-shape 'c:aug)
+                        #(chord-shape 'c:aug guitar-tuning)
 \storePredefinedDiagram \chordmode {c:dim} 
                         #guitar-tuning 
-                        #(chord-shape 'c:dim)
+                        #(chord-shape 'c:dim guitar-tuning)
 \storePredefinedDiagram \chordmode {c:7} 
                         #guitar-tuning 
                         #"o;3-3;2-2;3-4;1-1;o;"  
                         #"x;3-3;2-2;o;o;o;"  
 \storePredefinedDiagram \chordmode {c:m7} 
                         #guitar-tuning 
-                        #(offset-fret 2 (chord-shape 'bes:m7))
+                        #(offset-fret 2 (chord-shape 'bes:m7 guitar-tuning))
 
 %%%%  cis chords
 %
 \storePredefinedDiagram \chordmode {cis} 
                         #guitar-tuning 
-                        #(chord-shape 'cis)
+                        #(chord-shape 'cis guitar-tuning)
 \storePredefinedDiagram \chordmode {cis:m} 
                         #guitar-tuning 
                         #"x;x;2-2;1-1;2-3;o;"  
@@ -64,7 +64,7 @@
                         #"x;4-4;3-3;2-1;2-2;x;"  
 \storePredefinedDiagram \chordmode {cis:dim} 
                         #guitar-tuning 
-                        #(offset-fret 1 (chord-shape 'c:dim))
+                        #(offset-fret 1 (chord-shape 'c:dim guitar-tuning))
 \storePredefinedDiagram \chordmode {cis:7} 
                         #guitar-tuning 
                         #"x;x;3-2;4-3;2-1;4-4;"  
@@ -88,7 +88,7 @@
                         #"x;4-4;3-3;2-1;2-2;x;"  
 \storePredefinedDiagram \chordmode {des:dim} 
                         #guitar-tuning 
-                        #(offset-fret 1 (chord-shape 'c:dim))
+                        #(offset-fret 1 (chord-shape 'c:dim guitar-tuning))
 \storePredefinedDiagram \chordmode {des:7} 
                         #guitar-tuning 
                         #"x;x;3-2;4-3;2-1;4-4;"  
 %
 \storePredefinedDiagram \chordmode {dis} 
                         #guitar-tuning 
-                        #(offset-fret 2 (chord-shape 'cis))
+                        #(offset-fret 2 (chord-shape 'cis guitar-tuning))
 \storePredefinedDiagram \chordmode {dis:m} 
                         #guitar-tuning 
                         #"x;x;4-3;3-2;4-4;1-1;"  
                         #"3-3;2-2;1-1;o;o;3-4"  
 \storePredefinedDiagram \chordmode {dis:dim} 
                         #guitar-tuning 
-                        #(chord-shape 'ees:dim) 
+                        #(chord-shape 'ees:dim guitar-tuning
 \storePredefinedDiagram \chordmode {dis:7} 
                         #guitar-tuning 
                         #"x;x;1-1;3-3;2-2;3-4;"  
 %
 \storePredefinedDiagram \chordmode {ees} 
                         #guitar-tuning 
-                        #(offset-fret 2 (chord-shape 'cis))
+                        #(offset-fret 2 (chord-shape 'cis guitar-tuning))
 \storePredefinedDiagram \chordmode {ees:m} 
                         #guitar-tuning 
                         #"x;x;4-3;3-2;4-4;1-1;"  
                         #"3-3;2-2;1-1;o;o;3-4"  
 \storePredefinedDiagram \chordmode {ees:dim} 
                         #guitar-tuning 
-                        #(chord-shape 'ees:dim) 
+                        #(chord-shape 'ees:dim guitar-tuning
 \storePredefinedDiagram \chordmode {ees:7} 
                         #guitar-tuning 
                         #"x;x;1-1;3-3;2-2;3-4;"  
                         #"o;3-3;2-2;1-1;x;x;"  
 \storePredefinedDiagram \chordmode {e:dim} 
                         #guitar-tuning 
-                        #(offset-fret 1 (chord-shape 'ees:dim))
+                        #(offset-fret 1 (chord-shape 'ees:dim guitar-tuning))
 \storePredefinedDiagram \chordmode {e:7} 
                         #guitar-tuning 
                         #"o;2-2;o;1-1;o;o;"  
 %
 \storePredefinedDiagram \chordmode {f} 
                         #guitar-tuning 
-                        #(chord-shape 'f)
+                        #(chord-shape 'f guitar-tuning)
 \storePredefinedDiagram \chordmode {f:m} 
                         #guitar-tuning 
-                        #(chord-shape 'f:m)
+                        #(chord-shape 'f:m guitar-tuning)
 \storePredefinedDiagram \chordmode {f:aug} 
                         #guitar-tuning 
                         #"x;x;1-1;4-3;4-4;3-2;"  
                         #"x;x;o;1-1;o;1-2;"  
 \storePredefinedDiagram \chordmode {f:7} 
                         #guitar-tuning 
-                        #(chord-shape 'f:7)
+                        #(chord-shape 'f:7 guitar-tuning)
 \storePredefinedDiagram \chordmode {f:maj7} 
                         #guitar-tuning 
                         #"x;3-3;3-4;2-2;1-1;"  
 \storePredefinedDiagram \chordmode {f:m7} 
                         #guitar-tuning 
-                        #(chord-shape 'f:m7)
+                        #(chord-shape 'f:m7 guitar-tuning)
 
 %%%%  fis chords
 %
 \storePredefinedDiagram \chordmode {fis} 
                         #guitar-tuning 
-                        #(offset-fret 1 (chord-shape 'f))
+                        #(offset-fret 1 (chord-shape 'f guitar-tuning))
 \storePredefinedDiagram \chordmode {fis:m} 
                         #guitar-tuning 
-                        #(offset-fret 1 (chord-shape 'f:m))
+                        #(offset-fret 1 (chord-shape 'f:m guitar-tuning))
 \storePredefinedDiagram \chordmode {fis:aug} 
                         #guitar-tuning 
                         #"2-2;1-1;o;3-4-(;3-4-);2-3;" 
                         #"x;x;1-1;2-3;1-2;2-4;"  
 \storePredefinedDiagram \chordmode {fis:7} 
                         #guitar-tuning 
-                        #(offset-fret 1 (chord-shape 'f:7))
+                        #(offset-fret 1 (chord-shape 'f:7 guitar-tuning))
 \storePredefinedDiagram \chordmode {fis:maj7} 
                         #guitar-tuning 
                         #"x;x;4-4;3-3;2-2;1-1;"  
 \storePredefinedDiagram \chordmode {fis:m7} 
                         #guitar-tuning 
-                        #(offset-fret 1 (chord-shape 'f:m7))
+                        #(offset-fret 1 (chord-shape 'f:m7 guitar-tuning))
 
 %%%%  ges chords
 %
 \storePredefinedDiagram \chordmode {ges} 
                         #guitar-tuning 
-                        #(offset-fret 1 (chord-shape 'f))
+                        #(offset-fret 1 (chord-shape 'f guitar-tuning))
 \storePredefinedDiagram \chordmode {ges:m} 
                         #guitar-tuning 
-                        #(offset-fret 1 (chord-shape 'f:m))
+                        #(offset-fret 1 (chord-shape 'f:m guitar-tuning))
 \storePredefinedDiagram \chordmode {ges:aug} 
                         #guitar-tuning 
                         #"2-2;1-1;o;3-4-(;3-4-);2-3;" 
                         #"x;x;1-1;2-3;1-2;2-4;"  
 \storePredefinedDiagram \chordmode {ges:7} 
                         #guitar-tuning 
-                        #(offset-fret 1 (chord-shape 'f:7))
+                        #(offset-fret 1 (chord-shape 'f:7 guitar-tuning))
 \storePredefinedDiagram \chordmode {ges:maj7} 
                         #guitar-tuning 
                         #"x;x;4-4;3-3;2-2;1-1;"  
 \storePredefinedDiagram \chordmode {ges:m7} 
                         #guitar-tuning 
-                        #(offset-fret 1 (chord-shape 'f:m7))
+                        #(offset-fret 1 (chord-shape 'f:m7 guitar-tuning))
 
 %%%%  g chords
 %
                         #"3-2;2-1;o;o;o;3-3;"  
 \storePredefinedDiagram \chordmode {g:m} 
                         #guitar-tuning 
-                        #(offset-fret 2 (chord-shape 'f:m))
+                        #(offset-fret 2 (chord-shape 'f:m guitar-tuning))
 \storePredefinedDiagram \chordmode {g:aug} 
                         #guitar-tuning 
                         #"x;x;5-1;8-3;8-4;7-2;"  
                         #"x;x;5-4;4-3;3-2;2-1;"  
 \storePredefinedDiagram \chordmode {g:m7} 
                         #guitar-tuning 
-                        #(offset-fret 2 (chord-shape 'f:m7))
+                        #(offset-fret 2 (chord-shape 'f:m7 guitar-tuning))
 
 %%%%  gis chords
 %
 \storePredefinedDiagram \chordmode {gis} 
                         #guitar-tuning 
-                        #(offset-fret 3 (chord-shape 'f))
+                        #(offset-fret 3 (chord-shape 'f guitar-tuning))
 \storePredefinedDiagram \chordmode {gis:m} 
                         #guitar-tuning 
-                        #(offset-fret 3 (chord-shape 'f:m))
+                        #(offset-fret 3 (chord-shape 'f:m guitar-tuning))
 \storePredefinedDiagram \chordmode {gis:aug} 
                         #guitar-tuning 
                         #"o;3-4;2-3;1-1;1-2;o;"  
                         #"x;x;o;1-1;o;1-2;"  
 \storePredefinedDiagram \chordmode {gis:7} 
                         #guitar-tuning 
-                        #(offset-fret 3 (chord-shape 'f:7))
+                        #(offset-fret 3 (chord-shape 'f:7 guitar-tuning))
 \storePredefinedDiagram \chordmode {gis:maj7} 
                         #guitar-tuning 
                         #"x;x;1-1-(;1-1;1-1-);3-3;"  
 \storePredefinedDiagram \chordmode {gis:m7} 
                         #guitar-tuning 
-                        #(offset-fret 3 (chord-shape 'f:m7))
+                        #(offset-fret 3 (chord-shape 'f:m7 guitar-tuning))
 
 %%%%  aes chords
 %
 \storePredefinedDiagram \chordmode {aes} 
                         #guitar-tuning 
-                        #(offset-fret 3 (chord-shape 'f))
+                        #(offset-fret 3 (chord-shape 'f guitar-tuning))
 \storePredefinedDiagram \chordmode {aes:m} 
                         #guitar-tuning 
-                        #(offset-fret 3 (chord-shape 'f:m))
+                        #(offset-fret 3 (chord-shape 'f:m guitar-tuning))
 \storePredefinedDiagram \chordmode {aes:aug} 
                         #guitar-tuning 
                         #"o;3-4;2-3;1-1;1-2;o;"  
                         #"x;x;o;1-1;o;1-2;"  
 \storePredefinedDiagram \chordmode {aes:7} 
                         #guitar-tuning 
-                        #(offset-fret 3 (chord-shape 'f:7))
+                        #(offset-fret 3 (chord-shape 'f:7 guitar-tuning))
 \storePredefinedDiagram \chordmode {aes:maj7} 
                         #guitar-tuning 
                         #"x;x;1-1-(;1-1;1-1-);3-3;"  
 \storePredefinedDiagram \chordmode {aes:m7} 
                         #guitar-tuning 
-                        #(offset-fret 3 (chord-shape 'f:m7))
+                        #(offset-fret 3 (chord-shape 'f:m7 guitar-tuning))
 
 %%%%  a chords
 %
                         #"x;o;3-4;2-2;2-3;1-1;"  
 \storePredefinedDiagram \chordmode {a:dim} 
                         #guitar-tuning 
-                        #(chord-shape 'a:dim)
+                        #(chord-shape 'a:dim guitar-tuning)
 \storePredefinedDiagram \chordmode {a:7} 
                         #guitar-tuning 
                         #"x;o;2-1;o;2-3;o;"  
 %
 \storePredefinedDiagram \chordmode {ais} 
                         #guitar-tuning 
-                        #(chord-shape 'bes)
+                        #(chord-shape 'bes guitar-tuning)
 \storePredefinedDiagram \chordmode {ais:m} 
                         #guitar-tuning 
-                        #(chord-shape 'bes:m)
+                        #(chord-shape 'bes:m guitar-tuning)
 \storePredefinedDiagram \chordmode {ais:aug} 
                         #guitar-tuning 
                         #"2-2;1-1;o;3-4-(;3-4-);2-3;"  
 \storePredefinedDiagram \chordmode {ais:dim} 
                         #guitar-tuning 
-                        #(offset-fret 1 (chord-shape 'a:dim))
+                        #(offset-fret 1 (chord-shape 'a:dim guitar-tuning))
 \storePredefinedDiagram \chordmode {ais:7} 
                         #guitar-tuning 
-                        #(chord-shape 'bes:7)
+                        #(chord-shape 'bes:7 guitar-tuning)
 \storePredefinedDiagram \chordmode {ais:maj7} 
                         #guitar-tuning 
                         #"x;1-1;3-3;2-2;3-4;x;"  
 \storePredefinedDiagram \chordmode {ais:m7} 
                         #guitar-tuning 
-                        #(chord-shape 'bes:m7)
+                        #(chord-shape 'bes:m7 guitar-tuning)
 
 %%%%  bes chords
 %
 \storePredefinedDiagram \chordmode {bes} 
                         #guitar-tuning 
-                        #(chord-shape 'bes)
+                        #(chord-shape 'bes guitar-tuning)
 \storePredefinedDiagram \chordmode {bes:m} 
                         #guitar-tuning 
-                        #(chord-shape 'bes:m)
+                        #(chord-shape 'bes:m guitar-tuning)
 \storePredefinedDiagram \chordmode {bes:aug} 
                         #guitar-tuning 
                         #"2-2;1-1;o;3-4-(;3-4-);2-3;"  
 \storePredefinedDiagram \chordmode {bes:dim} 
                         #guitar-tuning 
-                        #(offset-fret 1 (chord-shape 'a:dim))
+                        #(offset-fret 1 (chord-shape 'a:dim guitar-tuning))
 \storePredefinedDiagram \chordmode {bes:7} 
                         #guitar-tuning 
-                        #(chord-shape 'bes:7)
+                        #(chord-shape 'bes:7 guitar-tuning)
 \storePredefinedDiagram \chordmode {bes:maj7} 
                         #guitar-tuning 
                         #"x;1-1;3-3;2-2;3-4;x;"  
 \storePredefinedDiagram \chordmode {bes:m7} 
                         #guitar-tuning 
-                        #(chord-shape 'bes:m7)
+                        #(chord-shape 'bes:m7 guitar-tuning)
 
 %%%%  b chords
 %
 \storePredefinedDiagram \chordmode {b} 
                         #guitar-tuning 
-                        #(offset-fret 1 (chord-shape 'bes))
+                        #(offset-fret 1 (chord-shape 'bes guitar-tuning))
 \storePredefinedDiagram \chordmode {b:m} 
                         #guitar-tuning 
-                        #(offset-fret 1 (chord-shape 'bes:m))
+                        #(offset-fret 1 (chord-shape 'bes:m guitar-tuning))
 \storePredefinedDiagram \chordmode {b:aug} 
                         #guitar-tuning 
                         #"x;3-2;2-1;o;o;x;"  
                         #"x;x;o;1-1;o;1-2;"  
 \storePredefinedDiagram \chordmode {b:7} 
                         #guitar-tuning 
-                        #(offset-fret 1 (chord-shape 'bes:7))
+                        #(offset-fret 1 (chord-shape 'bes:7 guitar-tuning))
 \storePredefinedDiagram \chordmode {b:maj7} 
                         #guitar-tuning 
                         #"x;2-1;4-3;3-2;4-4;x;"  
 \storePredefinedDiagram \chordmode {b:m7} 
                         #guitar-tuning 
-                        #(offset-fret 1 (chord-shape 'bes:m7))
+                        #(offset-fret 1 (chord-shape 'bes:m7 guitar-tuning))
 
index 519323e0dd1b245ee462900acc9eb696db223f6a..159ad04c8e3a9d4f76379bd415895c754e2ce102 100644 (file)
@@ -1,64 +1,64 @@
-\version "2.11.61"
+\version "2.12.0"
 %
 %  Add ninth chords to to predefined fret diagrams for standard guitar tunings
 %
 %  This is part of the Lilypond distribution files
 %
-%  Copyright 2008 by Jonathan Kulp
+%  Copyright 2008--2009 by Jonathan Kulp
 %
 
 
-\addChordShape #'c:9 #"x;3-2;2-1;3-3-(;3-3;3-3-);"
-\addChordShape #'f:9 #"1-1-(;3-3;1-1;2-2;1-1-);3-4;"
+\addChordShape #'c:9 #guitar-tuning #"x;3-2;2-1;3-3-(;3-3;3-3-);"
+\addChordShape #'f:9 #guitar-tuning #"1-1-(;3-3;1-1;2-2;1-1-);3-4;"
 
 \storePredefinedDiagram \chordmode {c:9}
                         #guitar-tuning
-                       #(chord-shape 'c:9)
+                       #(chord-shape 'c:9 guitar-tuning)
 \storePredefinedDiagram \chordmode {cis:9}
                         #guitar-tuning
-                       #(offset-fret 1 (chord-shape 'c:9))
+                       #(offset-fret 1 (chord-shape 'c:9 guitar-tuning))
 \storePredefinedDiagram \chordmode {des:9}
                         #guitar-tuning
-                       #(offset-fret 1 (chord-shape 'c:9))
+                       #(offset-fret 1 (chord-shape 'c:9 guitar-tuning))
 \storePredefinedDiagram \chordmode {d:9}
                         #guitar-tuning
-                       #(offset-fret 2 (chord-shape 'c:9))
+                       #(offset-fret 2 (chord-shape 'c:9 guitar-tuning))
 \storePredefinedDiagram \chordmode {dis:9}
                         #guitar-tuning
-                       #(offset-fret 3 (chord-shape 'c:9))
+                       #(offset-fret 3 (chord-shape 'c:9 guitar-tuning))
 \storePredefinedDiagram \chordmode {ees:9}
                         #guitar-tuning
-                       #(offset-fret 3 (chord-shape 'c:9))
+                       #(offset-fret 3 (chord-shape 'c:9 guitar-tuning))
 \storePredefinedDiagram \chordmode {e:9}
                         #guitar-tuning
                        #"o;2-2;o;1-1;o;2-3;"
 \storePredefinedDiagram \chordmode {f:9}
                         #guitar-tuning
-                       #(chord-shape 'f:9)
+                       #(chord-shape 'f:9 guitar-tuning)
 \storePredefinedDiagram \chordmode {fis:9}
                         #guitar-tuning
-                       #(offset-fret 1 (chord-shape 'f:9))
+                       #(offset-fret 1 (chord-shape 'f:9 guitar-tuning))
 \storePredefinedDiagram \chordmode {ges:9}
                         #guitar-tuning
-                       #(offset-fret 1 (chord-shape 'f:9))
+                       #(offset-fret 1 (chord-shape 'f:9 guitar-tuning))
 \storePredefinedDiagram \chordmode {g:9}
                         #guitar-tuning
-                       #(offset-fret 2 (chord-shape 'f:9))
+                       #(offset-fret 2 (chord-shape 'f:9 guitar-tuning))
 \storePredefinedDiagram \chordmode {gis:9}
                         #guitar-tuning
-                       #(offset-fret 3 (chord-shape 'f:9))
+                       #(offset-fret 3 (chord-shape 'f:9 guitar-tuning))
 \storePredefinedDiagram \chordmode {aes:9}
                         #guitar-tuning
-                       #(offset-fret 3 (chord-shape 'f:9))
+                       #(offset-fret 3 (chord-shape 'f:9 guitar-tuning))
 \storePredefinedDiagram \chordmode {a:9}
                         #guitar-tuning
-                       #(offset-fret 4 (chord-shape 'f:9))
+                       #(offset-fret 4 (chord-shape 'f:9 guitar-tuning))
 \storePredefinedDiagram \chordmode {ais:9}
                         #guitar-tuning
-                       #(offset-fret 5 (chord-shape 'f:9))
+                       #(offset-fret 5 (chord-shape 'f:9 guitar-tuning))
 \storePredefinedDiagram \chordmode {bes:9}
                         #guitar-tuning
-                       #(offset-fret 5 (chord-shape 'f:9))
+                       #(offset-fret 5 (chord-shape 'f:9 guitar-tuning))
 \storePredefinedDiagram \chordmode {b:9}
                         #guitar-tuning
-                       #(offset-fret -1 (chord-shape 'c:9))
+                       #(offset-fret -1 (chord-shape 'c:9 guitar-tuning))
index c0d43eb980f74b66856e5a2fa8c559320b89e8a4..2d50a6c6019569271214b6c1ca09e0acada8552d 100644 (file)
@@ -1,6 +1,6 @@
 % property-init.ly
 
-\version "2.11.53"
+\version "2.12.0"
 
 stemUp = \override Stem #'direction = #UP
 stemDown = \override Stem #'direction = #DOWN 
@@ -10,7 +10,6 @@ slurUp = \override Slur #'direction = #UP
 slurDown = \override Slur #'direction = #DOWN
 slurNeutral = \revert Slur #'direction
 
-%% There's also dash, but setting dash period/length should be fixed.
 slurDashed = {
   \override Slur #'dash-period = #0.75
   \override Slur #'dash-fraction = #0.4
@@ -29,6 +28,19 @@ phrasingSlurUp = \override PhrasingSlur #'direction = #UP
 phrasingSlurDown = \override PhrasingSlur #'direction = #DOWN
 phrasingSlurNeutral = \revert PhrasingSlur #'direction
 
+phrasingSlurDashed = {
+  \override PhrasingSlur #'dash-period = #0.75
+  \override PhrasingSlur #'dash-fraction = #0.4
+}
+phrasingSlurDotted = {
+  \override PhrasingSlur #'dash-period = #0.75
+  \override PhrasingSlur #'dash-fraction = #0.1
+}
+phrasingSlurSolid = {
+  \revert PhrasingSlur #'dash-period
+  \revert PhrasingSlur #'dash-fraction
+}
+
 mergeDifferentlyDottedOn = {
   \override Staff.NoteCollision #'merge-differently-dotted = ##t
 }
index c462deb82d88696056c1cb09dcec2de9c0a19655..450092024944478d429e4f9701c4c2b91a5c16e5 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.10.0"
+\version "2.12.0"
 
 
 major = #`(
index ab96dad9f19a04c087550df24c3bacf68efbf964..f54994a307c9fdc5df8a1e4adb8ab2bcaf32608d 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.10.0"
+\version "2.12.0"
 
 
 % code char abbreviations
@@ -52,4 +52,5 @@ downprall = #(make-articulation "downprall")
 segno = #(make-articulation "segno")
 coda = #(make-articulation "coda")
 varcoda = #(make-articulation "varcoda")
+snappizzicato = #(make-articulation "snappizzicato")
 
index 28c4574019a118a068e14ddb6ebf83a45abb7b79..7b26094e497fbbfdf81c6b5fe20cc271644344c0 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.52"
+\version "2.12.0"
 
 startGroup = #(make-span-event 'NoteGroupingEvent START)
 stopGroup = #(make-span-event 'NoteGroupingEvent STOP)
index 153281e413590f72496fcdd728bfec4e940c008c..10e1cbf8cb29a0eb2e988ba13954feefd0ccae6e 100644 (file)
@@ -49,6 +49,6 @@ pitchnamesSuomi = #`(
 
 pitchnames = \pitchnamesSuomi
 
-\version "2.10.0"
+\version "2.12.0"
 
 #(ly:parser-set-note-names parser pitchnames)
index ee341ac76c910f4ec406e156244a8e07a937787a..260638994f180f5b7356f4d4853ab61d0d6a1dae 100644 (file)
@@ -42,6 +42,6 @@ pitchnamesSvenska = #`(
 )
 
 pitchnames = \pitchnamesSvenska
-\version "2.10.0"
+\version "2.12.0"
 
 #(ly:parser-set-note-names parser pitchnames)
index 9ef8cd48dd9b598f6d8f8a216474c6e117518781..60c07e6ef0776102b59cbdcdedd2b07a5bd9db3e 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.57"
+\version "2.12.0"
 
 slashSeparator = \markup {
   \center-align
@@ -69,22 +69,48 @@ scoreTitleMarkup = \markup { \column {
 }
 }
 
+%% Book first page and last page predicates
 #(define (first-page layout props arg)
+  (define (ancestor layout)
+    "Return the topmost layout ancestor"
+    (let ((parent (ly:output-def-parent layout)))
+       (if (not (ly:output-def? parent))
+           layout
+           (ancestor parent))))
   (if (= (chain-assoc-get 'page:page-number props -1)
-         (ly:output-def-lookup layout 'first-page-number))
+         (ly:output-def-lookup (ancestor layout) 'first-page-number))
       (interpret-markup layout props arg)
       empty-stencil))
 
 #(define (last-page layout props arg)
-  (if (chain-assoc-get 'page:last? props #f)
-   (interpret-markup layout props arg)
-   empty-stencil))
+  (if (and (chain-assoc-get 'page:is-bookpart-last-page props #f)
+           (chain-assoc-get 'page:is-last-bookpart props #f))
+      (interpret-markup layout props arg)
+      empty-stencil))
 
 #(define (not-first-page layout props arg)
+  (define (ancestor layout)
+    "Return the topmost layout ancestor"
+    (let ((parent (ly:output-def-parent layout)))
+       (if (not (ly:output-def? parent))
+           layout
+           (ancestor parent))))
   (if (not (= (chain-assoc-get 'page:page-number props -1)
-              (ly:output-def-lookup layout 'first-page-number)))
-   (interpret-markup layout props arg)
-   empty-stencil))
+              (ly:output-def-lookup (ancestor layout) 'first-page-number)))
+      (interpret-markup layout props arg)
+      empty-stencil))
+
+%% Bookpart first page and last page predicates
+#(define (part-first-page layout props arg)
+  (if (= (chain-assoc-get 'page:page-number props -1)
+         (ly:output-def-lookup layout 'first-page-number))
+      (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)
+      (interpret-markup layout props arg)
+      empty-stencil))
 
 %% unused
 #(define (not-single-page layout props arg)
index 334c983d0b793d5fb81630658a3c6cd5f7b53749..dda4f31ab4d13250336decea7f2c3e57c87485e6 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.11.26"
+\version "2.12.0"
 
 %% defined later, in a closure
 #(define-public (add-toc-item! markup-symbol text)
 }
 
 #(define-markup-list-command (table-of-contents layout props) ()
-  "Outputs the table of contents, using the paper variable
+  ( _i "Outputs the table of contents, using the paper variable
 @code{tocTitleMarkup} for its title, then the list of lines
 built using the @code{tocItem} music function
-Usage: @code{\\markuplines \\table-of-contents}"
+Usage: @code{\\markuplines \\table-of-contents}" )
   (cons (interpret-markup layout props
                          (ly:output-def-lookup layout 'tocTitleMarkup))
        (space-lines (chain-assoc-get 'baseline-skip props)
index 37d9a912718a6febe6b3e5466494d2efdc697f29..eb35589af46fd4958895db99645d28971277c4c9 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.10.0" %hier stond 2.1.36, mocht ik dat wel veranderen?
+\version "2.12.0" %hier stond 2.1.36, mocht ik dat wel veranderen?
 
 %{
 
index 8afe50af8442ffd541fc05052c3e00fead754aa0..3b97883dfd129fc3da7a85827ddcbc9736467d0b 100644 (file)
@@ -1,4 +1,4 @@
 default:
 
 local-WWW-2: $(OUT_HTML_FILES)
-       $(PYTHON) $(buildscript-dir)/mass-link.py --prepend-suffix .$(ISOLANG) hard $(outdir) $(top-build-dir)/Documentation/$(outdir) $(HTML_FILES)
+       $(buildscript-dir)/mass-link --prepend-suffix .$(ISOLANG) hard $(outdir) $(top-build-dir)/Documentation/$(outdir) $(HTML_FILES)
diff --git a/make/doc-i18n-topdocs-rules.make b/make/doc-i18n-topdocs-rules.make
new file mode 100644 (file)
index 0000000..874e7d5
--- /dev/null
@@ -0,0 +1,14 @@
+$(outdir)/%.html: $(outdir)/%.texi
+       $(TEXI2HTML) --I=$(src-dir) --I=$(outdir) $(TEXI2HTML_FLAGS) --output=$@ $(TEXI2HTML_INIT) $<
+       cp $(top-src-dir)/Documentation/lilypond*.css $(dir $@)
+
+$(outdir)/%.pdf: $(outdir)/%.texi
+       cd $(outdir); texi2pdf $(TEXI2PDF_FLAGS) $(TEXINFO_PAPERSIZE_OPTION) $(notdir $*).texi
+
+$(outdir)/version.%: $(top-src-dir)/VERSION
+       echo '@macro version'> $@
+       echo $(TOPLEVEL_VERSION)>> $@
+       echo '@end macro'>> $@
+
+$(outdir)/%.txt: $(outdir)/%.texi
+       $(MAKEINFO) -I$(src-dir) -I$(outdir) -P $(outdir) --output=$@ --no-split --no-headers $< 
diff --git a/make/doc-i18n-topdocs-targets.make b/make/doc-i18n-topdocs-targets.make
new file mode 100644 (file)
index 0000000..0c0a018
--- /dev/null
@@ -0,0 +1,5 @@
+local-WWW-1: $(MASTER_TEXI_FILES) $(PDF_FILES)
+
+local-WWW-2: $(HTML_FILES)
+       find $(outdir) -name '*.html' | sed 's!$(outdir)/!!g' | xargs $(buildscript-dir)/mass-link --prepend-suffix .$(ISOLANG) hard $(outdir) $(top-build-dir)/Documentation/topdocs/$(outdir) NEWS.pdf
+       find $(outdir) \( -name 'lily-*.png' -o -name 'lily-*.ly' \) | sed 's!$(outdir)/!!g' | xargs $(buildscript-dir)/mass-link hard $(outdir) $(top-build-dir)/Documentation/topdocs/$(outdir)
diff --git a/make/doc-i18n-topdocs-vars.make b/make/doc-i18n-topdocs-vars.make
new file mode 100644 (file)
index 0000000..456f79d
--- /dev/null
@@ -0,0 +1,26 @@
+OUTTXT_FILES= $(outdir)/NEWS.txt
+
+TELY_FILES := $(call src-wildcard,*.tely)
+MASTER_TEXI_FILES := $(TELY_FILES:%.tely=$(outdir)/%.texi)
+HTML_FILES := $(TELY_FILES:%.tely=$(outdir)/%.html)
+PDF_FILES := $(TELY_FILES:%.tely=$(outdir)/%.pdf)
+
+DOCUMENTATION_INCLUDES = \
+  -I $(top-src-dir)/Documentation/user \
+  -I $(top-build-dir)/Documentation/user/$(outdir)
+
+LILYPOND_BOOK_INCLUDES += $(DOCUMENTATION_INCLUDES)
+MAKEINFO_FLAGS += --force --enable-encoding $(DOCUMENTATION_INCLUDES)
+MAKEINFO = LANG= $(MAKEINFO_PROGRAM) $(MAKEINFO_FLAGS)
+
+# texi2html flags
+TEXI2HTML_INIT= --init-file=$(top-src-dir)/lilypond-texi2html.init
+TEXI2HTML_LANG=--lang=$(ISOLANG)
+TEXI2HTML_FLAGS += $(TEXI2HTML_LANG) $(DOCUMENTATION_INCLUDES)
+TEXI2HTML = LANG= $(TEXI2HTML_PROGRAM)
+
+TEXI2PDF_FLAGS += --batch $(DOCUMENTATION_INCLUDES)
+
+ifdef QUIET_BUILD
+TEXI2PDF_FLAGS += -q
+endif
index 41a05390bc85fa01e6322d877ec7132da27be68e..4b59115ecd60deb25b254b56152a2f0698c3e9ec 100644 (file)
@@ -1,25 +1,16 @@
-ifeq (,$(findstring texi2html,$(MISSING_OPTIONAL)))
-$(outdir)/%/index.html: $(outdir)/%.texi $(XREF_MAPS_DIR)/%.$(ISOLANG).xref-map $(OUT_PNG_IMAGES) $(outdir)/version.itexi
+$(outdir)/%/index.html: $(outdir)/%.texi $(XREF_MAPS_DIR)/%.$(ISOLANG).xref-map $(OUT_PNG_IMAGES)
        mkdir -p $(dir $@)
-       $(TEXI2HTML) --I=$(outdir) $(TEXI2HTML_FLAGS) --output=$(dir $@) --prefix=index --split=section $(TEXI2HTML_INIT) $<
+       $(TEXI2HTML) --I=$(src-dir) --I=$(outdir) $(TEXI2HTML_FLAGS) --output=$(dir $@) --prefix=index --split=section $(TEXI2HTML_INIT) $<
        cp $(top-src-dir)/Documentation/lilypond*.css $(dir $@)
 
-$(outdir)/%-big-page.html: $(outdir)/%.texi $(XREF_MAPS_DIR)/%.$(ISOLANG).xref-map $(OUT_PNG_IMAGES) $(outdir)/version.itexi
-       $(TEXI2HTML) --I=$(outdir) -D bigpage $(TEXI2HTML_FLAGS) --output=$@ $(TEXI2HTML_INIT) $<
+$(outdir)/%-big-page.html: $(outdir)/%.texi $(XREF_MAPS_DIR)/%.$(ISOLANG).xref-map $(OUT_PNG_IMAGES)
+       $(TEXI2HTML) --I=$(src-dir) --I=$(outdir) -D bigpage $(TEXI2HTML_FLAGS) --output=$@ $(TEXI2HTML_INIT) $<
        cp $(top-src-dir)/Documentation/lilypond*.css $(dir $@)
-else # Rules using makeinfo follow
-$(outdir)/%/index.html: $(outdir)/%.texi $(outdir)/version.itexi
-       mkdir -p $(dir $@)
-       $(MAKEINFO) -P $(outdir) --output=$(outdir)/$* --css-include=$(top-src-dir)/Documentation/texinfo.css --html $<
-
-$(outdir)/%-big-page.html: $(outdir)/%.texi $(outdir)/version.itexi
-       $(MAKEINFO) -P $(outdir) --output=$@ --css-include=$(top-src-dir)/Documentation/texinfo.css --html --no-split --no-headers $< 
-endif
 
-$(outdir)/%.pdftexi: $(outdir)/%.texi $(outdir)/version.itexi
-       $(PYTHON) $(buildscript-dir)/texi-gettext.py $(ISOLANG) $<
+$(outdir)/%.pdftexi: $(outdir)/%.texi
+       $(buildscript-dir)/texi-gettext $(ISOLANG) $<
 
-$(outdir)/%.pdf: $(outdir)/%.pdftexi $(outdir)/version.itexi
+$(outdir)/%.pdf: $(outdir)/%.pdftexi
        cd $(outdir); texi2pdf $(TEXI2PDF_FLAGS) $(TEXINFO_PAPERSIZE_OPTION) $(notdir $*).pdftexi
 
 $(outdir)/version.%: $(top-src-dir)/VERSION
@@ -31,11 +22,7 @@ $(outdir)/%.png: $(top-build-dir)/Documentation/user/$(outdir)/%.png
        ln -f $< $@
 
 $(XREF_MAPS_DIR)/%.$(ISOLANG).xref-map: $(outdir)/%.texi
-       $(PYTHON) $(buildscript-dir)/extract_texi_filenames.py -o $(XREF_MAPS_DIR) $<
-
-# This makes sure lilypond-doc gettext domain has been compiled
-# before lilypond-book runs
-$(TELY_FILES): doc-po
+       $(buildscript-dir)/extract_texi_filenames -o $(XREF_MAPS_DIR) $<
 
 $(MASTER_TEXI_FILES): $(ITELY_FILES) $(ITEXI_FILES)
 
index 7f8f6799b00b506e2563c0349dfe1d1cccc5fd20..4bb7c5b9c9d78acacec8a1ac3badc3a2dce8061c 100644 (file)
@@ -2,13 +2,11 @@ default:
 
 local-WWW-1: $(MASTER_TEXI_FILES) $(PDF_FILES) $(XREF_MAPS_FILES)
 
-# BIG_PAGE_HTML_FILES is defined differently in each language makefile
-local-WWW-2: $(DEEP_HTML_FILES) $(BIG_PAGE_HTML_FILES)
-       find $(outdir) -name '*.html' | xargs grep -L 'UNTRANSLATED NODE: IGNORE ME' | xargs $(PYTHON) $(buildscript-dir)/html-gettext.py $(ISOLANG)
-       find $(outdir) -name '*.html' | xargs grep -L --label="" 'UNTRANSLATED NODE: IGNORE ME' | sed 's!$(outdir)/!!g' | xargs $(PYTHON) $(buildscript-dir)/mass-link.py --prepend-suffix .$(ISOLANG) hard $(outdir) $(top-build-dir)/Documentation/user/$(outdir) $(TELY_FILES:%.tely=%.pdf)
-       find $(outdir) \( -name 'lily-*.png' -o -name 'lily-*.ly' \) | sed 's!$(outdir)/!!g' | xargs $(PYTHON) $(buildscript-dir)/mass-link.py hard $(outdir) $(top-build-dir)/Documentation/user/$(outdir)
+local-WWW-2: $(DEEP_HTML_FILES) $(BIG_PAGE_HTML_FILES) $(DOCUMENTATION_LOCALE_TARGET)
+       find $(outdir) -name '*.html' | xargs grep -L 'UNTRANSLATED NODE: IGNORE ME' | xargs $(buildscript-dir)/html-gettext $(ISOLANG)
+       find $(outdir) -name '*.html' | xargs grep -L --label="" 'UNTRANSLATED NODE: IGNORE ME' | sed 's!$(outdir)/!!g' | xargs $(buildscript-dir)/mass-link --prepend-suffix .$(ISOLANG) hard $(outdir) $(top-build-dir)/Documentation/user/$(outdir) $(TELY_FILES:%.tely=%.pdf)
+       find $(outdir) \( -name 'lily-*.png' -o -name 'lily-*.ly' \) | sed 's!$(outdir)/!!g' | xargs $(buildscript-dir)/mass-link hard $(outdir) $(top-build-dir)/Documentation/user/$(outdir)
 
-doc-po:
+$(DOCUMENTATION_LOCALE_TARGET):
        $(MAKE) -C $(depth)/Documentation/po out=www messages
-
-.PHONY: doc-po
+       touch $@
index 193c54245ceea8650704476d19d1e61030219f61..2170d43f40ed1b7c4b3e53a07896bfef914b60c2 100644 (file)
@@ -7,7 +7,7 @@ OUT_PNG_IMAGES=$(SOURCE_PNG_IMAGES:$(top-src-dir)/Documentation/user/%.png=$(out
 
 TELY_FILES := $(call src-wildcard,*.tely)
 MASTER_TEXI_FILES := $(TELY_FILES:%.tely=$(outdir)/%.texi)
-BIG_PAGE_HTML_FILES := $(BIG_PAGE_MANUALS:%=$(outdir)/%-big-page.html)
+BIG_PAGE_HTML_FILES := $(TELY_FILES:%.tely=$(outdir)/%-big-page.html)
 DEEP_HTML_FILES := $(TELY_FILES:%.tely=$(outdir)/%/index.html)
 PDF_FILES := $(TELY_FILES:%.tely=$(outdir)/%.pdf)
 
@@ -38,3 +38,5 @@ TEXI2PDF_FLAGS += --batch $(DOCUMENTATION_INCLUDES)
 ifdef QUIET_BUILD
 TEXI2PDF_FLAGS += -q
 endif
+
+DOCUMENTATION_LOCALE_TARGET = $(outdir)/doc-po
index 428e5b900a939f4441e78c79710bc56ad64f9012..44cb80ccaaf055e0cbdb64c300ef6c62be8b7b73 100644 (file)
@@ -8,7 +8,9 @@
 # you do make dist
 #
 
-buildscript-dir = $(src-depth)/buildscripts
+buildscript-dir = $(top-build-dir)/scripts/build/$(outconfbase)
+auxpython-dir = $(src-depth)/python/auxiliar
+auxscript-dir = $(src-depth)/scripts/auxiliar
 script-dir = $(src-depth)/scripts
 input-dir = $(src-depth)/input
 
@@ -18,7 +20,7 @@ mi2mu-dir = $(src-depth)/mi2mu
 make-dir = $(src-depth)/make
 include-flower = $(src-depth)/flower/include
 
-export PYTHONPATH:=$(buildscript-dir):$(PYTHONPATH)
+export PYTHONPATH:=$(auxpython-dir):$(PYTHONPATH)
 
 LILYPOND_INCLUDES = $(include-flower) $(depth)/flower/$(outdir)
 
index 10b82d8d9fd78c8af991d68ae7b4c59f48bf6586..4faeb8fcd582d838515110355ec0e06388791969 100644 (file)
@@ -3,7 +3,7 @@
 ifeq ($(LILYPOND_EXTERNAL_BINARY),)
 
 # environment settings.
-export PATH:=$(top-build-dir)/lily/$(outconfbase):$(top-build-dir)/buildscripts/$(outconfbase):$(top-build-dir)/scripts/$(outconfbase):$(PATH):
+export PATH:=$(top-build-dir)/lily/$(outconfbase):$(buildscript-dir):$(top-build-dir)/scripts/$(outconfbase):$(PATH):
 export LILYPOND_BINARY=$(top-build-dir)/$(outconfbase)/bin/lilypond
 else
 
@@ -77,5 +77,5 @@ export LYDOC_LOCALEDIR:= $(top-build-dir)/Documentation/po/out-www
 #texi-html for www only:
 LILYPOND_BOOK_FORMAT=$(if $(subst out-www,,$(notdir $(outdir))),texi,texi-html)
 LY2DVI = $(LILYPOND_BINARY)
-LYS_TO_TELY = $(buildscript-dir)/lys-to-tely.py
+LYS_TO_TELY = $(buildscript-dir)/lys-to-tely
 
index fe849db405729d138aae85bc6de929d523145dfc..52ee4b015ed731b0a46d47e3fa3f62dfc6d604d4 100644 (file)
@@ -4,19 +4,28 @@
 LYS_OUTPUT_OPTION= --lily-output-dir $(LYS_OUTPUT_DIR)
 LYS_OUTPUT_DIR=$(top-build-dir)/out/lybook-db/
 LILYPOND_BOOK_FLAGS += $(LYS_OUTPUT_OPTION)
-$(outdir)/%.latex:  %.doc
-       $(PYTHON) $(LILYPOND_BOOK) $(LILYPOND_BOOK_INCLUDES) --process='$(LILYPOND_BOOK_PROCESS) $(LILYPOND_BOOK_LILYPOND_FLAGS)' --output=$(outdir) $(LILYPOND_BOOK_FLAGS) $<
+$(outdir)/%.latex: %.doc $(INIT_LY_SOURCES) $(SCHEME_SOURCES)
+       LILYPOND_VERSION=$(TOPLEVEL_VERSION) $(PYTHON) $(LILYPOND_BOOK) $(LILYPOND_BOOK_INCLUDES) --process='$(LILYPOND_BOOK_PROCESS) $(LILYPOND_BOOK_LILYPOND_FLAGS)' --output=$(outdir) $(LILYPOND_BOOK_FLAGS) $<
 
 
+# This allows -j make option while making sure only one lilypond-book instance
+# is running at the same time
+define CHAIN_RULE
+$(i)
+$(i): 
+endef
+
+$(eval $(firstword $(MASTER_TEXI_FILES)): $(foreach i, $(wordlist 2, $(words $(MASTER_TEXI_FILES)), $(MASTER_TEXI_FILES)),$(CHAIN_RULE)))
 
 # don't do ``cd $(outdir)'', and assume that $(outdir)/.. is the src dir.
 # it is not, for --srcdir builds
-$(outdir)/%.texi: %.tely $(outdir)/version.itexi
-       $(PYTHON) $(LILYPOND_BOOK) $(LILYPOND_BOOK_INCLUDES) --process='$(LILYPOND_BOOK_PROCESS) $(LILYPOND_BOOK_LILYPOND_FLAGS)' --output=$(outdir) --format=$(LILYPOND_BOOK_FORMAT) $(LILYPOND_BOOK_FLAGS) $<
+$(outdir)/%.texi: %.tely $(outdir)/version.itexi $(DOCUMENTATION_LOCALE_TARGET) $(INIT_LY_SOURCES) $(SCHEME_SOURCES)
+       LILYPOND_VERSION=$(TOPLEVEL_VERSION) $(PYTHON) $(LILYPOND_BOOK) $(LILYPOND_BOOK_INCLUDES) --process='$(LILYPOND_BOOK_PROCESS) $(LILYPOND_BOOK_LILYPOND_FLAGS)' --output=$(outdir) --format=$(LILYPOND_BOOK_FORMAT) $(LILYPOND_BOOK_FLAGS) $<
+
 
+$(outdir)/%.texi: $(outdir)/%.tely $(outdir)/version.itexi $(DOCUMENTATION_LOCALE_TARGET) $(INIT_LY_SOURCES) $(SCHEME_SOURCES)
+       LILYPOND_VERSION=$(TOPLEVEL_VERSION) $(PYTHON) $(LILYPOND_BOOK) $(LILYPOND_BOOK_INCLUDES) --process='$(LILYPOND_BOOK_PROCESS) $(LILYPOND_BOOK_INCLUDES) $(LILYPOND_BOOK_LILYPOND_FLAGS)' --output=$(outdir) --format=$(LILYPOND_BOOK_FORMAT) $(LILYPOND_BOOK_FLAGS) $<
 
-$(outdir)/%.texi: $(outdir)/%.tely $(outdir)/version.itexi
-       $(PYTHON) $(LILYPOND_BOOK) $(LILYPOND_BOOK_INCLUDES) --process='$(LILYPOND_BOOK_PROCESS) $(LILYPOND_BOOK_INCLUDES) $(LILYPOND_BOOK_LILYPOND_FLAGS)' --output=$(outdir) --format=$(LILYPOND_BOOK_FORMAT) $(LILYPOND_BOOK_FLAGS) $<
 
 $(outdir)/%.html.omf: %.tely
        $(call GENERATE_OMF,html)
index 3cbdd81b6df5b17d2a394b4572d6089d3ae1fdba..2c5ddcc107bacc2ba08eba2875078c6f51c26785 100644 (file)
@@ -1,7 +1 @@
-convert-ly: local-convert-ly
-       $(LOOP)
-
-local-convert-ly:
-       $(PYTHON) $(CONVERT_LY) --edit --assume-old *ly
-
 local-help:
index 61b61ef13bf5ad3518fe9309a4b0b579f6a33403..c3c8a24ba4be7a12edb6422211431e07388e1681 100644 (file)
@@ -1,9 +1,8 @@
 # rules for directories with LilyPond files.
 
-# empty
-
-# huh ? these are for documentation?!
 TELY_FILES := $(call src-wildcard,*.tely)
+MASTER_TEXI_FILES := $(sort $(TELY_FILES:%.tely=$(outdir)/%.texi))\
+ $(OUT_MASTER_TEXI_FILES)
 
 OMF_FILES += $(foreach format, html pdf, $(foreach f, $(TELY_FILES), $(outdir)/$(f:.tely=.$(format)).omf))
 
@@ -16,3 +15,8 @@ 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)
+SCHEME_SOURCES = $(wildcard $(top-src-dir)/ly/*.ly)
+endif
index be960222b784b92c7b5a7fa382453bf562848be0..67458875144156866e71c8ccbc31121e529470c0 100644 (file)
@@ -1,3 +1,3 @@
-$(outdir)/collated-files.tely: $(LY_FILES) $(OUT_LY_FILES)
-       $(PYTHON) $(buildscript-dir)/lys-to-tely.py --name=$(outdir)/collated-files.tely --title="$(TITLE)" $^
+$(outdir)/collated-files.tely: $(COLLATED_FILES)
+       $(LYS_TO_TELY) --name=$(outdir)/collated-files.tely --title="$(TITLE)" $^
 
index 96d44b12f3855a5746be979e11b8330e08c5ea7d..a2874b271b80bb99b9fc56aa8e64cdcf71a21c96 100644 (file)
@@ -1,2 +1,6 @@
 TITLE=LYs Doc
 
+
+ifeq ($(COLLATED_FILES),)
+COLLATED_FILES = $(sort $(TEXINFO_SOURCES) $(LY_FILES) $(OUT_LY_FILES) )
+endif
index c00d2da87a189c4220c5bcd8da81ec8bee7fbb13..d0c46511975aed0cf1adad8f8cc08e4b14818258 100644 (file)
@@ -1,5 +1,8 @@
-.SUFFIXES: .xml
+.SUFFIXES: .xml .mxl
 
 
 $(outdir)/%.ly:  %.xml
        $(PYTHON) $(MUSICXML2LY) -o $@ $<
+
+$(outdir)/%.ly:  %.mxl
+       $(PYTHON) $(MUSICXML2LY) -z -o $@ $<
index a0668ce825711a246965c8030774350235ebe615..0f63330a210764038c4b195bbdd52f56b7d396a9 100644 (file)
@@ -1 +1 @@
-default: $(OUT_LY_FILES)
+default:
index 0844fa730e8e27fdb128494413e67e170a7a4ee5..7706e58151a5cd1cc7619e8bc2a48ec71a55fa49 100644 (file)
@@ -1,10 +1,8 @@
 # rules for directories with MusicXML files.
 
-MUSICXML_FILES := $(call src-wildcard,*.xml)
-# LY_FILES=$(addprefix $(outdir)/, $(addsuffix .ly, $(MUSICXML_FILE)))
-# LY_FILES = $(MUSICXML_FILES:%.xml=$(outdir)/%.ly)
-OUT_LY_FILES = $(MUSICXML_FILES:%.xml=$(outdir)/%.ly)
-
+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)
+EXTRA_DIST_FILES += $(MUSICXML_FILES) $(MUSICMXL_FILES) $(call src-wildcard,*.broken)
index 28636f7de0368e76fe3eb1b5c98d7cd96d7f9440..6b069a8900ec00498b04a20ca1cf552ffd6d5768 100644 (file)
@@ -2,7 +2,6 @@
 ifndef MUTOPIA_INCLUSIONS
 STEPMAKE_TEMPLATES := tex $(STEPMAKE_TEMPLATES)
 
--include $(stepdir)/tex-inclusions
 MUTOPIA_INCLUSIONS=done
 
 
index de5152e7d270752130e6e0208e95e583c4e14f6c..82bc3ee13ce6c978fa99e3ea922f3942bf2a6519 100644 (file)
@@ -1,15 +1,18 @@
 $(outdir)/%.ly: %.ly
        cp $< $@
 
+$(outdir)/%.ily: %.ily
+       cp $< $@
+
 $(outdir)/%.ly: %.abc
 #which file to show here -- abc seems more cute?
-       ln -f $< $@
+       cp $< $@
 
 $(outdir)/%.ly: %.abc
        $(PYTHON) $(ABC2LY) --strict -o $@ $<
 
 # hmm. notdir builds src-dir builds?
-$(outdir)/%.png $(outdir)/%.pdf $(outdir)/%.ly $(outdir)/%.ps: $(outdir)/%.ly
+$(outdir)/%.png $(outdir)/%.pdf $(outdir)/%.ly $(outdir)/%.ps: $(outdir)/%.ly $(INIT_LY_SOURCES) $(SCHEME_SOURCES)
        cd $(outdir); $(LILYPOND_BINARY) --pdf --png -dlog-file="'$(basename $(notdir $<)).log"   -ddump-signatures -danti-alias-factor=2 -ddelete-intermediate-files -dno-point-and-click -I $(call absdir,$(src-dir))/ $(notdir $<)
        touch $(outdir)/$(basename $(notdir $<)).png
 
index 1e09d8dcec224621f5941b5fc8d5ab2837982578..3cd87a7d05d6f2a5427726c8d565321934eb6c88 100644 (file)
@@ -6,11 +6,13 @@ include $(make-dir)/lilypond-vars.make
 
 SCORE_LY_FILES = $(shell cd $(src-dir) && fgrep -l score *.ly)
 
+ILY_FILES = $(call src-wildcard,*.ily)
 M4_FILES = $(call src-wildcard,*.m4)
 LYM4_FILES = $(call src-wildcard,*.lym4)
 EXTRA_DIST_FILES += $(M4_FILES) $(LYM4_FILES)
 
 ly_examples=$(addprefix $(outdir)/, $(addsuffix .ly, $(examples)))
+ly_examples+= $(ILY_FILES:%.ily=$(outdir)/%.ily)
 all_examples=$(examples)
 ps_examples=$(addprefix $(outdir)/, $(addsuffix .ps.gz, $(all_examples)))
 pdf_examples=$(addprefix $(outdir)/, $(addsuffix .pdf, $(all_examples)))
diff --git a/make/ports-rules.make b/make/ports-rules.make
deleted file mode 100644 (file)
index 5e509ee..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-ifeq ($(zipped),)
-%.ly:
-       wget $(MUTOPIA_MIRROR)/$(mutopia-dir)/$@
-       $(MAKE) local-convert-ly
-else
-%.zip:
-       wget $(MUTOPIA_MIRROR)/$(mutopia-dir)/$@
-
-%.ly:  %-lys.zip
-       unzip -n $<
-       $(MAKE) local-convert-ly
-endif
-
-%/GNUmakefile:
-       mkdir -p $(@D)
-       $(if $(shell grep '[.]ly' $(@D)/index.html), \
-               echo 'mutopia-name = $(@D)' > $@, \
-               $(if $(shell grep '[.]zip' $(@D)/index.html), \
-                       echo -e 'zipped = true\nmutopia-name = $(@D)' > $@))
-       echo -e $(GNUmakefile) >> $@
-
-
diff --git a/make/ports-targets.make b/make/ports-targets.make
deleted file mode 100644 (file)
index 529672c..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-
-local-ly-clean:
-       $(if $(wildcard *.ly), -mv -f $(wildcard *.ly) $(outdir))
-
-ly-clean: local-ly-clean
-       $(LOOP)
-
-local-download: $(mutopia-examples:%=%.ly)
-       @echo downloading $<
-
-download: local-download
-       $(LOOP)
-
-#
-# Lots smarter would be to do one recursive wget, getting all index.html,
-# parse those with python script to setup tree.
-#
-local-sync:
-       wget --recursive --no-parent --level=1 --timestamping --dont-remove-listing --no-host-directories --accept=index.html $(MUTOPIA_MIRROR)/$(mutopia-dir)/
-# ugh
-# -mv ./ftp/$(mutopia-dir)/* .
-       cp -r ./ftp/$(mutopia-dir)/* .
-       rm -rf ./ftp
-       $(MAKE) 'dirs-before=$(dirs-before)' generate-GNUmakefiles
-
-#
-# should we dowload .ly and .zip just to fill-in tree?
-#
-sync: local-sync
-#      wget --recursive --no-parent --timestamping --dont-remove-listing --no-host-directories --cut-dirs=2 --accept=foo $(MUTOPIA_MIRROR)/$(mutopia-dir)/
-       $(LOOP)
-
-generate-GNUmakefiles: $(dirs-after:%=%/GNUmakefile)
-
-truncate = $(filter-out %/GNUmakefile , $(wildcard */*))
-trunc:
-       rm -fr $(truncate)
-
-# too time-consuming?
-# local-dist: local-ly-clean
-
-local-help: local-ports-help
-
-local-ports-help:
-       @echo -e "\
-  download    download .lys from $(MUTOPIA_MIRROR)\n\
-  ly-clean    move all .lys to $(outdir)\n\
-  sync        generate missing parts of tree\n\
-  trunc       truncate tree\n\
-"\
-
diff --git a/make/ports-vars.make b/make/ports-vars.make
deleted file mode 100644 (file)
index e443089..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-
-# -> mutopia-vars.make
-MUTOPIA_MIRROR = http://www.mutopiaproject.org/ftp
-# ugh: doesn't work
-# mutopia-dir = $(pwd:%/mutopia/%=mutopia)
-mutopia-dir = $(shell pwd | sed 's@.*mutopia@@')
-
-
-wget-list = $(mutopia-examples:%=$(mutopia-dir)/%)
-
-dirs-ignore = GNUmakefile out out-% index.html ftp
-dirs-before = $(SUBDIRS)
-dirs-after = $(filter-out .,$(shell find . -maxdepth 1 -type d -not -name 'out*'))
-
-
-GNUmakefile = '\
-depth = $(depth)/..\n\
-include $$(depth)/ports/ports.make\n\
-'
-
-
-#
-# scores for target local-WWW (duh)
-#
-examples=
-
-
-#
-# scores for target mutopia
-#
-# Hairy hack to support name `score.ly' inside zipfile.
-# This will fail to download and build mutopia in one go,
-# either download first, or issue `make mutopia' twice.
-# How to really fix this?
-#
-mutopia-parts = $(patsubst %.ly,%,$(wildcard *-part.ly))
-mutopia-scores = $(patsubst %.ly,%,$(wildcard $(mutopia-name).ly score.ly))
-ifeq ($(mutopia-scores),)
-mutopia-scores = $(patsubst %.ly,%, $(shell grep -l '\\score' *.ly))
-ifeq ($(mutopia-scores),)
-mutopia-scores = $(mutopia-name)
-endif
-endif
-mutopia-examples = $(sort $(mutopia-scores) $(mutopia-parts))
-
index fc175ece72f684ee9ed462e76f0b93dfb91b24a2..74ba9f67d9455afba614e8652d7f4e00f36cb62d 100644 (file)
@@ -36,3 +36,5 @@ ATVARIABLES = \
   program_prefix\
   program_suffix\
   sharedstatedir\
+  src-dir\
+  top-src-dir\
index 898a4c245b132bce3aa155ee0260f6c3d837dc76..389f7b9baf88a3720e8e0f23ebf6a4ea929539ab 100644 (file)
@@ -120,8 +120,8 @@ $(outdir)/aybabtu.fontname:
 $(outdir)/aybabtu.subfonts:
        echo $(subst .mf,,$(call src-wildcard,feta-braces-[a-z].mf)) > $@
 
-$(PE_SCRIPTS): $(top-build-dir)/buildscripts/$(outdir)/gen-emmentaler-scripts
-       $(PYTHON) $< --dir=$(outdir)
+$(PE_SCRIPTS): $(buildscript-dir)/gen-emmentaler-scripts
+       $< --dir=$(outdir)
 
 ALL_FONTS = $(FETA_FONTS)
 PFB_FILES = $(ALL_FONTS:%=$(outdir)/%.pfb)
@@ -174,12 +174,12 @@ $(outdir)/%.lisp \
 $(outdir)/%.otf-gtable \
 $(outdir)/%.enc \
 $(outdir)/%.pe: $(outdir)/%.log
-       $(PYTHON) $(buildscript-dir)/mf-to-table.py \
-                 --global-lisp=$(outdir)/$(<F:.log=.otf-gtable) \
-                 --lisp=$(outdir)/$(<F:.log=.lisp) \
-                 --outdir=$(outdir) \
-                 --enc $(outdir)/$(<F:.log=.enc) \
-                 $<
+       $(buildscript-dir)/mf-to-table \
+               --global-lisp=$(outdir)/$(<F:.log=.otf-gtable) \
+               --lisp=$(outdir)/$(<F:.log=.lisp) \
+               --outdir=$(outdir) \
+               --enc $(outdir)/$(<F:.log=.enc) \
+               $<
 
 local-clean:
        rm -f mfplain.mem mfplain.log
@@ -190,9 +190,9 @@ $(outdir)/fonts.conf:
        echo '<fontconfig><dir>'$(shell cd $(outdir); pwd)'</dir></fontconfig>' > $@
 
 $(NCSB_OTFS): $(NCSB_SOURCE_FILES) \
-             $(buildscript-dir)/pfx2ttf.fontforge
+             $(auxscript-dir)/pfx2ttf.fontforge
        $(foreach i, $(basename $(NCSB_SOURCE_FILES)), \
-               $(FONTFORGE) -script $(buildscript-dir)/pfx2ttf.fontforge \
+               $(FONTFORGE) -script $(auxscript-dir)/pfx2ttf.fontforge \
                        $(i).pfb $(i).afm $(outdir)/ && ) true
 
 # eof
diff --git a/mf/SConscript b/mf/SConscript
deleted file mode 100644 (file)
index 1a5f281..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
-# -*-python-*-
-
-import os
-import re
-import string
-
-Import ('env', 'base_glob', 'install')
-feta = reduce (lambda x, y: x + y,
-              map (lambda x: base_glob (x),
-                   ('feta[0-9]*.mf',
-                    'feta-alphabet*[0-9].mf',
-                    'feta-braces-[a-z]*.mf',
-                    'parmesan[0-9]*.mf',)))
-feta = base_glob ('feta[0-9][0-9]*.mf')
-feta_alphabet = base_glob ('feta-alphabet[0-9][0-9]*.mf')
-feta_braces = base_glob ('feta-braces-[a-z].mf')
-parmesan = base_glob ('parmesan[0-9][0-9]*.mf')
-
-fonts = feta + feta_alphabet + feta_braces + parmesan
-
-feta_sizes = map (lambda x: re.sub ('feta([0-9]+)', '\\1', x), feta)
-otfs = map (lambda x: 'emmentaler-' + x, feta_sizes) + ['aybabtu']
-
-t = map (env.TFM, fonts)
-g = map (env.GTABLE, fonts)
-p = map (env.PFA, fonts)
-e = map (lambda x: x + '.enc', fonts)
-s = map (lambda x: x + '.svg', fonts)
-o = map (env.OTF, otfs)
-
-# Emmentaler
-a = '''cat ${SOURCE} \
-$$(echo ${SOURCE} | grep -v brace | sed s/feta/parmesan/) \
-$$(echo ${SOURCE} | grep -v brace | sed s/feta/feta-alphabet/) \
-> ${TARGET}'''
-otf_table = Builder (action = a, suffix = '.otf-table',
-                    # barf
-                    src_suffix = '.lisp')
-env.Append (BUILDERS = {'OTF_TABLE': otf_table})
-f = map (env.OTF_TABLE, feta)
-g = map (env.OTF_TABLE, feta_braces)
-
-map (lambda x: env.Depends ('feta' + x + '.otf-table',
-                           ['parmesan' + x + '.lisp',
-                           'feta-alphabet' + x + '.lisp']), feta_sizes)
-
-map (lambda x: env.Depends ('emmentaler-' + x + '.otf',
-                           'feta' + x + '.otf-table'),
-     feta_sizes)
-
-map (lambda x: env.Depends ('emmentaler-' + x + '.otf',
-                           ['feta' + x + '.pfa',
-                            'parmesan' + x + '.pfa',
-                            'feta-alphabet' + x + '.pfa']), feta_sizes)
-
-for i in feta_sizes:
-       env.Command ('emmentaler-%(i)s.pe' % locals (),
-                    '$srcdir/buildscripts/gen-emmentaler-scripts.py',
-                    '$PYTHON $srcdir/buildscripts/gen-emmentaler-scripts.py --dir=${TARGET.dir}')
-
-map (lambda x: env.Depends (x + '.pfa', x + '.enc'), feta)
-
-
-# Aybabtu
-
-feta_braces_pfa = map (lambda x: x + '.pfa', feta_braces)
-
-env.AT_COPY ('aybabtu.pe.in')
-env.Command ('aybabtu.fontname', '', 'echo -n aybabtu > $TARGET')
-env.Command ('aybabtu.subfonts',
-            map (lambda x: x + '.mf', feta_braces),
-            'echo ${SOURCES.filebase} > $TARGET')
-
-env.Command ('aybabtu.otf-table',
-            map (lambda x: x + '.otf-table', feta_braces),
-            'cd ${TARGET.dir} && cat ${SOURCES.file} > ${TARGET.file}')
-
-env.Command ('aybabtu.otf-gtable',
-            map (lambda x: x + '.otf-gtable', feta_braces),
-            'echo "(design_size . 20)" > $TARGET')
-
-env.Depends ('aybabtu.otf',
-            feta_braces_pfa
-            + ['aybabtu.subfonts',
-               'aybabtu.fontname',
-               'aybabtu.otf-table',
-               'aybabtu.otf-gtable'])
-
-## FIXME: building only a few fonts does not seem to work anymore.
-## what is essential these days, aybabtu/emmentaler are needed always?
-mf_essential = ['feta16', 'feta20', 'parmesan16', ]
-pfa_essential = map (env.PFA, mf_essential) + ['emmentaler-20.otf']
-env.Alias ('mf-essential', pfa_essential)
-env.Alias ('mf-essential', 'fonts.cache-1')
-
-env['fonts'] = string.join (fonts)
-env['feta_sizes'] = string.join (feta_sizes)
-
-env.Alias ('mf', pfa_essential + p + map (lambda x: x[0], o))
-env.Alias ('mf', s)
-env.Alias ('mf', 'fonts.cache-1')
-
-install (t, env['sharedir_package_version'] + '/fonts/tfm')
-install (p, env['sharedir_package_version'] + '/fonts/type1')
-install (o, env['sharedir_package_version'] + '/fonts/otf')
-install (e, env['sharedir_package_version'] + '/ps')
-install (s, env['sharedir_package_version'] + '/fonts/svg')
-
index a91b035f03763912c1a67099fd67f2aa39876f8f..f1058000873bdf7039b5987b5ee1cbf80f5e4736 100644 (file)
@@ -3,7 +3,7 @@
 %
 % source file of the GNU LilyPond music typesetter
 %
-% (c) 1998--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+% (c) 1998--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 
 fet_begingroup ("accordion");
 
index a89a8b1d12184a6dd90e067f79d93b83b6fd6cb1..f0c39c783f18754894030d7e1c24b105f88cec52 100644 (file)
@@ -3,7 +3,7 @@
 %
 % source file of the GNU LilyPond music typesetter
 %
-% (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+% (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 
 fet_begingroup ("arrowheads");
 
index f189360df1507bdc0e62d40a8bd3a9383cbd7374..24a0e1b9ddc410dc5f47e5b4a1908f5bb177a087 100644 (file)
@@ -4,12 +4,12 @@
 % source file of the Feta (not an acronym for Font-En-Tja)
 % pretty-but-neat music font
 %
-% (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+% (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 %          Jan Nieuwenhuizen <janneke@gnu.org>
 %
-% these macros help create ascii logging output
-% to automate generation of lily tables and tex backend
-% The output should be parsed by the mf-to-table script
+% These macros help create ascii logging output
+% to automate generation of the lily tables.
+% The output should be parsed by the mf-to-table script.
 
 
 message "******************************************************";
index e3d56375c685c83f18f9627058e6f6f42b36d90f..46b3b0617b9c6102460b6d75328f687317ab1101 100644 (file)
@@ -3,7 +3,7 @@
 %
 % source file of the GNU LilyPond music typesetter
 %
-% (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+% (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 
 fet_begingroup ("flags");
 
@@ -247,6 +247,45 @@ fet_beginchar ("64th Flag (up)", "u6");
 fet_endchar;
 
 
+fet_beginchar ("128th Flag (up)", "u7");
+       save flare, hip_depth_ratio, hip_width, foot_depth, foot_width_ratio;
+       save flagspace, total_depth, flag_count;
+
+       flag_count = 5;
+       flare = .85 staff_space;
+       flagspace# = .93 staff_space#;
+       hip_depth_ratio = .72;
+       hip_width# = upflag_width# - hip_thickness# / 2;
+       total_depth# = 6.25 staff_space#;
+       foot_width_ratio = .8;
+
+       (flag_count - 1) * flagspace# + foot_depth# = total_depth#;
+
+       define_pixels (hip_width, foot_depth);
+       define_whole_vertical_pixels (flagspace);
+
+       set_char_box (0, hip_width# + right_upflag_space#,
+                     total_depth# + foot_thickness# / 2, stemthickness# / 2);
+
+       draw_flag ((0, -(flag_count - 1) * flagspace), flare,
+                  (hip_width, foot_depth),
+                  hip_depth_ratio, foot_width_ratio,
+                  hip_thickness, foot_thickness, 1);
+
+       add_flag (flagspace, flare, .97, 1.00, 1.3,
+                 hip_thickness, foot_thickness);
+       add_flag (flagspace, flare, 1.00, 1.00, 1.25,
+                 hip_thickness, foot_thickness);
+       add_flag (flagspace, flare, 1.00, 1.00, 1.25,
+                 hip_thickness, foot_thickness);
+       add_flag (flagspace, flare, 0.95, 1.05, 1.25,
+                 hip_thickness, foot_thickness);
+
+       draw_square_block ((-0.5 stemthickness_rounded, 0),
+                          (0, -5 staff_space_rounded));
+fet_endchar;
+
+
 fet_beginchar ("8th (down)", "d3");
        save flare, hip_depth_ratio, hip_width, foot_depth, foot_width_ratio;
        save flagspace, total_depth, flag_count;
@@ -468,4 +507,44 @@ fet_beginchar ("64th (down)", "d6");
        y_mirror_char;
 fet_endchar;
 
+
+fet_beginchar ("128th (down)", "d7");
+       save flare, hip_depth_ratio, hip_width, foot_depth, foot_width_ratio;
+       save flagspace, total_depth, flag_count;
+
+       flag_count = 5;
+       flare = .8 staff_space;
+       flagspace# = .9 staff_space#;
+       hip_depth_ratio = .85;
+       hip_width# = downflag_width# - hip_thickness# / 2;
+       total_depth# = 5.25 staff_space#;
+       foot_width_ratio = .98;
+
+       (flag_count - 1) * flagspace# + foot_depth# = total_depth#;
+       define_pixels (hip_width, foot_depth);
+       define_whole_vertical_pixels (flagspace);
+
+       set_char_box (0, hip_width# + right_downflag_space#,
+                     total_depth# + foot_thickness# / 2, stemthickness# / 2);
+
+       draw_flag ((0, -(flag_count - 1) * flagspace), flare,
+                  (hip_width, foot_depth),
+                  hip_depth_ratio, foot_width_ratio,
+                  hip_thickness, foot_thickness, 0);
+
+       add_flag (flagspace, flare, .97, 1.20, 1.175,
+                 hip_thickness, foot_thickness);
+       add_flag (flagspace, flare, .97, 1.10, 1.175,
+                 hip_thickness, foot_thickness);
+       add_flag (.98 flagspace, flare, .91, 1.05, 1.2,
+                 hip_thickness, foot_thickness);
+       add_flag (.98 flagspace, flare, .91, 1.05, 1.2,
+                 hip_thickness, foot_thickness);
+
+       draw_square_block ((-0.5 stemthickness_rounded, 0),
+                          (0, -5 staff_space_rounded));
+
+       y_mirror_char;
+fet_endchar;
+
 fet_endgroup ("flags");
index 30bd20c3adc2b2163eb7e93f8f1c80101287924e..c61f756d38273c14a0300065c38c005dc6282dc8 100644 (file)
@@ -4,7 +4,7 @@
 % source file of the Feta (not an acronym for Font-En-Tja)
 % pretty-but-neat music font
 %
-% (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+% (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 %                Jan Nieuwenhuizen <janneke@gnu.org>
 
 
index 7fa4a368d5e811d9a9941bc1de0b32b5583ce7fd..fcda600978cc99541031ab051d7ed902cfdb48c2 100644 (file)
@@ -3,7 +3,7 @@
 %
 % source file of LilyPond's pretty-but-neat music font
 %
-% (c) 1997--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+% (c) 1997--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 % & Han-Wen Nienhuys <hanwen@xs4all.nl>
 % & Juergen Reuter <reuter@ipd.uka.de>
 %
index 834de28259f6bf05cdb9331a89c47a35f9433dcb..9d8a9d83652343f81be6b47e8ea9c8f18411046d 100644 (file)
@@ -3,7 +3,7 @@
 % 
 % source file of the Feta (Font-En-Tja) music font
 % 
-% (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+% (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 % 
 
 font_count := 0;
index 82d26573b122e9f7ac7148e873158c84ca2881cf..e74606dcfb1b46889a4b7cdef04a77e0420c8fec 100644 (file)
@@ -3,7 +3,7 @@
 % 
 % source file of the Feta (Font-En-Tja) music font
 % 
-% (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+% (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 % 
 
 font_count := 1;
index 88924f57f388507eb89f06f2f4252136fb04a65c..06a273ed6798c252802d90b705ab6a6347506b63 100644 (file)
@@ -3,7 +3,7 @@
 % 
 % source file of the Feta (Font-En-Tja) music font
 % 
-% (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+% (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 % 
 
 font_count := 2;
index 23e476383c967fd17975798630a7717f599dec23..d926a595e643de0d45e30d98066aab934a9fe27c 100644 (file)
@@ -3,7 +3,7 @@
 % 
 % source file of the Feta (Font-En-Tja) music font
 % 
-% (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+% (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 % 
 
 font_count := 3;
index e12d7e5685b87c52cec6057af0386ee1b0fa6b66..ed89fc5a31d535439dfb59e5de6fee0498e979cf 100644 (file)
@@ -3,7 +3,7 @@
 % 
 % source file of the Feta (Font-En-Tja) music font
 % 
-% (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+% (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 % 
 
 font_count := 4;
index 21cedda8e2793b334e40c31ddb51811b63bece2a..4a96744e3ba073e8d2ca9010a91e8d79b78505d6 100644 (file)
@@ -3,7 +3,7 @@
 % 
 % source file of the Feta (Font-En-Tja) music font
 % 
-% (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+% (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 % 
 
 font_count := 5;
index 5f2fdd34064158e528edd1995145f53b67a64b83..3a12239cc0a152bdffbc7be5753f86d27605cb28 100644 (file)
@@ -3,7 +3,7 @@
 % 
 % source file of the Feta (Font-En-Tja) music font
 % 
-% (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+% (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 % 
 
 font_count := 6;
index 61e195b6003d97c1ae1f75537fd53d82e59e7b9e..9d4988e792970a803d27b2b731cf0443fff6c567 100644 (file)
@@ -3,7 +3,7 @@
 % 
 % source file of the Feta (Font-En-Tja) music font
 % 
-% (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+% (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 % 
 
 font_count := 7;
index c99b79d7b672b7aee80d6fa61bc6adf95cc07f85..7089e60c2af04c86c5193043dbe0d0ff7dac225d 100644 (file)
@@ -3,7 +3,7 @@
 % 
 % source file of the Feta (Font-En-Tja) music font
 % 
-% (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+% (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 % 
 
 font_count := 8;
index e2cf7bb6da20b91acf5f01fa385e33d4523beee8..809227de450e8462e7fa94c16141e6e10da27586 100644 (file)
@@ -4,7 +4,7 @@
 %
 % source file of the Feta (not the Font-En-Tja) music font
 %
-% (c) 1997--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+% (c) 1997--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 
 
 ex# := (dynamic_design_size / 2.4) * pt#;
index f16494b26c1f9ac1c8447c86eb6fcf08c70f53ca..de97f1867763cb4debb3200474fd4a28cd08bcc4 100644 (file)
@@ -4,7 +4,7 @@
 %
 % source file of the Feta (not the Font-En-Tja) music font
 %
-% (c) 1997--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+% (c) 1997--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 
 fet_begingroup ("rests");
 
index ab7ff5bb30e70c793c8f85450e9ae85f1c577ee4..f2c90cdf616c78fe03e19c1f4da2747477811d6b 100644 (file)
@@ -5,7 +5,7 @@
 % source file of the Feta (defintively not an abbreviation for Font-En-Tja)
 % music font
 % 
-% (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+% (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 % 
 
 
index 2e8e83275ae6c7623786c3e2c973537eff66b77a..ddc01c0847015bfc2bd7724520d43744598541d4 100644 (file)
@@ -4,7 +4,7 @@
 %
 % source file of the Feta (not the Font-En-Tja) music font
 %
-% (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+% (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 
 fet_begingroup ("brackettips");
 
index efcca040a91f2ace7f27596631538afa8e64549e..15008d848eda96114025e53b0e4927bd65db4fdd 100644 (file)
@@ -4,7 +4,7 @@
 %
 % source file of the Feta (not the Font-En-Tja) music font
 %
-% (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>,
+% (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>,
 % Jan Nieuwenhuizen <janneke@gnu.org>,
 % Juergen Reuter <reuter@ipd.uka.de>
 
index 944c8cd5b42dc6e0de913585fcd3c20b395612fd..19cc379a422933dbca915cc0e2062c4eac6d27e4 100644 (file)
@@ -3,7 +3,7 @@
 %
 % source file of the GNU LilyPond music typesetter
 %
-% (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+% (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 
 
 %
index b0fca2d4824281e71a6f5422e71ba4685376bbfc..ab8fe9f01179b83cfe2b001eb9941775590a0f05 100644 (file)
@@ -4,7 +4,7 @@
 %
 % source file of the Feta (not the Font-En-Tja) music font
 %
-% (c) 1997--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+% (c) 1997--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 
 
 height# := number_design_size;
index a751c2ad6c1fd502cee7add5c9657ff65ebb7f3a..96d9862897c280ad5600b618e3b894d4aaed787f 100644 (file)
@@ -3,7 +3,7 @@
 %
 % source file of the GNU LilyPond music typesetter
 %
-% (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+% (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 
 stafflines := 5;
 
index 6071009325190f300691a835929a94ffb558ad67..fded9ecb3e4496da1b11bfb4404850e932a49e8d 100644 (file)
@@ -5,7 +5,7 @@
 %
 % source file of the Feta (not the Font-En-Tja) music font
 %
-% (c) 2000--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+% (c) 2000--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 %
 % Voor Cup
 
index 5466c24668ad4e323fe34d6cbb5470eb1a486116..a24e36938c9d1c68ec30c753c85f108d437837c7 100644 (file)
@@ -1,9 +1,9 @@
 %
-% feta-puntke.mf -- a duration dot
+% feta-puntje.mf -- a duration dot
 %
 % source file of the GNU LilyPond music typesetter
 %
-% (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+% (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 
 fet_begingroup ("dots");
 
index 70fd516c5893a6a1d77ff9eb8954a3932c57841d..7fd09c134199d7cc69dd90e0279e9e16f12be6ea 100644 (file)
@@ -4,7 +4,7 @@
 % source file of the Feta (defintively not an abbreviation for Font-En-Tja)
 % music font
 %
-% (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+% (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 %      Jan Nieuwenhuizen <janneke@gnu.org>
 %
 
@@ -1557,4 +1557,54 @@ fet_beginchar ("Straight caesura", "caesura.straight");
        labels(1a, 1b, 2a, 2b, 3a, 3b, 4a, 4b);
 fet_endchar;
 
+
+fet_beginchar ("snap pizzicato (Bartok pizzicato)", "snappizzicato");
+       save height, width, thickness, superness;
+
+       height# = 4/15 staffsize#;
+       width# = height#;
+       thickness# = 1.3 linethickness#;
+       define_pixels (height, width);
+       define_whole_blacker_pixels (thickness);
+
+       set_char_box (width# / 2, width# / 2, height# / 2, height# / 2);
+
+       penpos1 (thickness, 90);
+       penpos2 (thickness, 180);
+       penpos3 (thickness, 270);
+       penpos4 (thickness, 0);
+
+       x1 = 0;
+       y1r = h;
+       x3 = x1;
+       y3r = -y1r;
+       x4r = w;
+       y4 = 0;
+       x2r = -x4r;
+       y2 = y4;
+
+       penlabels (1, 2, 3, 4);
+
+       % mf doesn't handle pixel dropouts in outline objects, so we use
+       % `draw' if not called by mpost
+       if known miterlimit:
+               penstroke z1e
+                         .. z2e
+                         .. z3e
+                         .. z4e
+                         .. cycle;
+       else:
+               pickup pencircle scaled thickness;
+               draw z1
+                    .. z2
+                    .. z3
+                    .. z4
+                    .. cycle;
+       fi;
+       z5 = (0, 0);
+       z6 = (x5, 1.5*y1r);
+       pickup pencircle scaled thickness;
+        draw z5 -- z6;
+fet_endchar;
+
 fet_endgroup ("scripts");
index 46004e2e9f85f65c094c603174c2e26fe4d0df63..3b054103cd22f0ebcc5a7bdecb7efbb3939994bc 100644 (file)
@@ -4,7 +4,7 @@
 % source file of the Feta (definitely not an abbreviation for Font-En-Tja)
 % music font
 %
-% (c) 1998--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+% (c) 1998--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 %
 
 % this file is included by feta-scripts.mf
index fb86e19bdb7a914173b20cf9299b4ed9aa9cc5f5..ffaa1883f99ed17bf4df7152fb32a5820c94ca32 100644 (file)
@@ -3,7 +3,7 @@
 %
 % source file of the Feta (not an abbreviation of Font-En-Tja) music font
 %
-% (c) 1998--2007 Mats Bengtsson <matsb@s3.kth.se>,
+% (c) 1998--2009 Mats Bengtsson <matsb@s3.kth.se>,
 %               Christian Mondrup <scancm@biobase.dk>
 
 fet_begingroup ("timesig");
index 1f2690dd5e1d7f55c2ba1001c6023d0c049f082c..48061fcd0533eaae09d74208ce95addde680720e 100644 (file)
@@ -1,7 +1,7 @@
 %
 % feta-toevallig.mf -- implement Accidentals
 %
-% (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+% (c) 1997--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 %
 
 
@@ -44,6 +44,87 @@ enddef;
 
 fet_begingroup ("accidentals");
 
+%
+% Draw an arrow
+%
+% * `stemslant' gives the direction of the stem's left boundary
+%   (needed for brushed stems, equals "up" for straight stems)
+% * `extend' is used to make the stem longer or shorter (if negative);
+%   different kinds of accidentals need different values here
+%
+def draw_arrow (expr attach, stemwidth, stemslant, extend, pointingdown) =
+begingroup;
+       save htip;  % tip height
+       save wwing; % wing `radius'
+       save angle_wing_bot, angle_wing_top, angle_tip;
+       save upshift;
+       clearxy;
+
+       wwing := 0.26 stemwidth;
+       htip := staff_space * 0.85 + stafflinethickness - wwing;
+
+       % `flip' is used to reflect the arrow vertically
+       % if arrow points downward
+       transform flip;
+       if pointingdown:
+               flip = identity reflectedabout (origin, right);
+       else:
+               flip = identity;
+       fi;
+
+       z1 = attach shifted (-stemwidth / 2, 0);
+       upshift := max (0, wwing + 0.1 staff_space + extend);
+       z2 = z1 shifted (((unitvector stemslant)
+                         scaled upshift) transformed flip);
+
+       z7 = attach shifted ((stemwidth/2),0);
+       z6 = z7 shifted (((unitvector (-xpart stemslant, ypart stemslant))
+                         scaled upshift) transformed flip);
+       z2 - z3 = ( 0.38 staff_space, 0.05 htip) transformed flip;
+       z6 - z5 = (-0.38 staff_space, 0.05 htip) transformed flip;
+
+       z4 = attach shifted ((-0.2 stemwidth, upshift + htip)
+                            transformed flip);
+       z4'= attach shifted (( 0.2 stemwidth, upshift + htip)
+                            transformed flip);
+
+       % `angle_wing_bot' is the angle at which the arc
+       % from z2 to z3a enters z3a
+       % `angle_wing_top' is the angle at which the arc
+       % from z3b to z4 leaves z3b
+       % `angle_tip' is the angle at which the arc
+       % from z4 to z4' leaves z4
+       angle_wing_bot = 30;
+       angle_wing_top = 55;
+       angle_tip = 68;
+
+       z3a = z3 shifted ((((dir angle_wing_bot) rotated -90)
+                          scaled wwing) transformed flip);
+       z3b = z3 shifted ((((dir angle_wing_top) rotated 90)
+                          scaled wwing) transformed flip);
+
+       z5a = z5 shifted ((((dir (180 - angle_wing_bot)) rotated 90)
+                          scaled wwing) transformed flip);
+       z5b = z5 shifted ((((dir (180 - angle_wing_top)) rotated -90)
+                          scaled wwing) transformed flip);
+
+       % Draw the arrow
+       pickup pencircle scaled 1;
+       fill z1
+            -- z2{stemslant transformed flip}
+            .. {(-dir angle_wing_bot) transformed flip}z3a
+            .. z3b{(dir angle_wing_top) transformed flip}
+            .. z4{(dir angle_tip) transformed flip}
+            .. z4'{(dir (-angle_tip)) transformed flip}
+            .. {(dir (-angle_wing_top)) transformed flip}z5b
+            .. z5a{(-dir (-angle_wing_bot)) transformed flip}
+            .. z6{((-stemslant) reflectedabout (origin, up)) transformed flip}
+            -- z7
+            -- cycle;
+
+       labels (range 0 thru 7, 4', 3a, 3b, 5a, 5b);
+endgroup;
+enddef;
 
 save remember_pic;
 picture remember_pic;
@@ -97,17 +178,33 @@ def draw_meta_sharp (expr width, offset) =
 enddef;
 
 
-fet_beginchar ("Sharp", "sharp");
+def draw_sharp(expr arrowup, arrowdown) =
        save stem, stemx, stemwidth;
        save outer_space, interbeam;
+       save stemlength, extendleft, extendright, height, depth;
 
        stemwidth# := stafflinethickness# + .05 staff_space#;
        define_whole_blacker_pixels (stemwidth);
 
        interbeam := 1.05 staff_space_rounded;
 
-       set_char_box (0, 1.1 staff_space#,
-                     1.5 staff_space#, 1.5 staff_space#);
+       stemlength# := 1.5 staff_space#;
+       define_pixels (stemlength);
+
+       height# = stemlength#;
+       depth# = stemlength#;
+       extendright# = 0;
+       extendleft# = 0;
+       if arrowup:
+               height# := height# + 1.2 staff_space#;
+               extendright# := extendright# + 1.5 stafflinethickness#;
+       fi;
+       if arrowdown:
+               depth# := depth# + 1.2 staff_space#;
+               extendleft# := extendleft# + 1.5 stafflinethickness#;
+       fi;
+       define_pixels (extendleft, extendright);
+       set_char_box (extendleft#, 1.1 staff_space#, depth#, height#);
 
        stem := 7 / 16 * w;
        stemx := hround stem;
@@ -119,23 +216,66 @@ fet_beginchar ("Sharp", "sharp");
        draw_meta_sharp (w, -.5 interbeam);
        draw_meta_sharp (w, -.5 interbeam + vround interbeam);
 
+       % expand the charbox so that it encloses the whole arrow;
+       % this must not happen earlier because some commands above
+       % still rely on the old width
+       w := w + extendright;
+
        pickup pencircle scaled stemwidth;
 
        lft x5 = lft x6 = outer_space;
        lft x7 = lft x8 = outer_space + stemx;
-       bot y5 = -d;
+       bot y5 = -stemlength;
        top y6 = vround (1.5 staff_space - stem * beamslope);
        bot y7 = -top y6 + feta_space_shift;
-       top y8 = h;
+       top y8 = stemlength;
 
-       labels (5, 6, 7, 8);    
+       labels (5, 6, 7, 8);
 
        draw_gridline (z5, z6, stemwidth);
        draw_gridline (z7, z8, stemwidth);
 
+       if arrowup:
+               draw_arrow (z8, stemwidth, up,
+                           stafflinethickness / 2 + stemwidth / 2, false);
+       fi;
+       if arrowdown:
+               draw_arrow (z5, stemwidth, up,
+                           stafflinethickness / 2 + stemwidth / 2, true);
+       fi;
+
        remember_pic := currentpicture;
 
        draw_staff (-2, 2, 0);
+enddef;
+
+
+fet_beginchar ("Sharp", "sharp");
+       draw_sharp (false, false);
+fet_endchar;
+
+
+draw_shifted_too;
+
+
+fet_beginchar ("Arrowed Sharp (arrow up)", "sharp.arrowup");
+       draw_sharp (true, false);
+fet_endchar;
+
+
+draw_shifted_too;
+
+
+fet_beginchar ("Arrowed Sharp (arrow down)", "sharp.arrowdown");
+       draw_sharp (false, true);
+fet_endchar;
+
+
+draw_shifted_too;
+
+
+fet_beginchar ("Arrowed Sharp (arrows up and down)", "sharp.arrowboth");
+       draw_sharp (true, true);
 fet_endchar;
 
 
@@ -329,9 +469,11 @@ draw_shifted_too;
 % The stems of the natural are brushed (at least, in Barenreiter SCS)
 %
 
-fet_beginchar ("Natural", "natural");
+def draw_natural (expr arrowup, arrowdown) =
        save stemwidth, top_stem_thick;
        save ne, pat_top, pat_bottom;
+       save depth, height, extendleft, extendright, stemlength;
+       save brush_scale_up, brush_scale_down;
        pair ne;
        path pat_top, pat_bottom;
 
@@ -339,39 +481,68 @@ fet_beginchar ("Natural", "natural");
        stemwidth# = 0.09 staff_space# + .5 stafflinethickness#;
        define_whole_blacker_pixels (top_stem_thick, stemwidth);
 
-       set_char_box (0, 2/3 staff_space#,
-                     1.5 staff_space#, 1.5 staff_space#);
+       stemlength# = 1.5 staff_space#;
+       define_pixels (stemlength);
+
+       height# = stemlength#;
+       depth# = stemlength#;
+       extendleft# = 0;
+       extendright# = 0;
+       if arrowup:
+               extendleft# := 3 stafflinethickness#;
+               height# := height# + 1.2 staff_space#;
+       fi;
+       if arrowdown:
+               extendright# := 3.15 stafflinethickness#;
+               depth# := depth# + 1.2 staff_space#;
+       fi;
+       define_pixels (extendright);
+
+       set_char_box (extendleft#, 2/3 staff_space#, depth#, height#);
 
        d := d - feta_space_shift;
 
        pickup pencircle scaled stemwidth;
 
+       brush_scale_up := 1.0;
+       brush_scale_down := 1.0;
+       % to look nice, arrowed stems must be less brushed
+       if arrowup:
+               brush_scale_up := 0.85;
+       fi;
+       if arrowdown:
+               brush_scale_down := 0.85;
+       fi;
+
        penpos1 (top_stem_thick, 0);
        penpos3 (top_stem_thick, 0);
        penpos2 (stemwidth, 0);
        penpos4 (stemwidth, 0);
+       % z1' and z3' are needed for the arrowed accidentals
+       penpos1' (top_stem_thick * brush_scale_up, 0);
+       penpos3' (top_stem_thick * brush_scale_down, 0);
 
        x2r = w;
        x4l = 0;
-       x3 = x2;
-       x1 = x4;
+       x3 = x3' = x2;
+       x1 = x1' = x4;
 
-       y1 = h;
-       y3 = -d;
+       y1 = y1' = stemlength;
+       y3 = y3' = -stemlength;
        top y2 = vround (staff_space - 3/2 stafflinethickness);
        y4 = -y2 + feta_space_shift;
 
        pat_bottom := z4r{z4r - z1r}
                      .. bot z4
                      .. z4l{z1l - z4l};
-       fill simple_serif (z1l, z1r, -30)
+       fill simple_serif (z1'l, z1'r, -30)
             -- pat_bottom
             -- cycle;
 
        pat_top := z2r{z2r - z3r}
                   .. top z2
                   .. z2l{z3l - z2l};
-       fill simple_serif (z3l, z3r, 30)
+       fill simple_serif (z3'l, z3'r, 30)
             -- pat_top
             -- cycle;
 
@@ -408,12 +579,51 @@ fet_beginchar ("Natural", "natural");
             -- z24
             -- cycle;
 
-       penlabels (1, 2, 3, 4);
+       penlabels (1, 1', 2, 3, 3', 4);
        labels (11, 11', 12, 13, 14, 21, 21', 22, 23, 24);
 
+       if arrowup:
+               draw_arrow (z1, top_stem_thick * brush_scale_up,
+                           z1'l - z4l, stafflinethickness / 2, false);
+       fi;
+       if arrowdown:
+               draw_arrow (z3, top_stem_thick * brush_scale_down,
+                           z2r - z3'r, stafflinethickness / 2, true);
+               w := w + extendright;
+       fi;
+
        remember_pic := currentpicture;
 
        draw_staff (-2, 2, 0);
+enddef;
+
+
+fet_beginchar ("Natural", "natural");
+       draw_natural (false, false);
+fet_endchar;
+
+
+draw_shifted_too;
+
+
+fet_beginchar ("Arrowed Natural (arrow up)", "natural.arrowup");
+       draw_natural (true, false);
+fet_endchar;
+
+
+draw_shifted_too;
+
+
+fet_beginchar ("Arrowed Natural (arrow down)", "natural.arrowdown");
+       draw_natural (false, true);
+fet_endchar;
+
+
+draw_shifted_too;
+
+
+fet_beginchar ("Arrowed Natural (arrows up and down)", "natural.arrowboth");
+       draw_natural (true, true);
 fet_endchar;
 
 
@@ -431,15 +641,16 @@ draw_shifted_too;
 % TODO: document, simplify!
 %
 
-def draw_meta_flat (expr xcenter, w, crook_fatness) =
+def draw_meta_flat (expr xcenter, w, crook_fatness, arrowup, arrowdown) =
        save crook_thinness;
        save bottom_overshoot, bot_crook_dir;
-       save top_stem_thick, bottom_stem_thick, hair, smaller_hole;
+       save top_stem_thick, top_stem_thick_orig;
+       save bottom_stem_thick, hair, smaller_hole;
        save top_crook_thinness;
        save zwiep;
        save center;
        pair center, bot_crook_dir;
-       save clearing;
+       save clearing, clearing_orig;
 
        clearxy;
 
@@ -453,18 +664,31 @@ def draw_meta_flat (expr xcenter, w, crook_fatness) =
        else:
                smaller_hole = 0;
        fi;
-       clearing = 1.7 stafflinethickness;
        crook_thinness = .7 stafflinethickness + .06 staff_space;
        top_crook_thinness = 1 stafflinethickness + .065 staff_space;
+       clearing = 1.7 stafflinethickness;
+       clearing_orig = clearing;
+       if arrowup:
+               clearing := 0.5 staff_space;
+       fi;
        bottom_overshoot = stafflinethickness;
 
        bottom_stem_thick# = 0.06 staff_space# + 0.6 stafflinethickness#;
        top_stem_thick# = 0.1 staff_space# + 1.2 stafflinethickness#;
-       define_whole_blacker_pixels (bottom_stem_thick, top_stem_thick);
+       top_stem_thick_orig# = top_stem_thick#;
+       if arrowup:
+               % to look nice, arrowed stems should be less brushed
+               top_stem_thick# := top_stem_thick# * 0.8;
+       fi;
+       define_whole_blacker_pixels (bottom_stem_thick, top_stem_thick,
+                                    top_stem_thick_orig);
 
        if odd (top_stem_thick - bottom_stem_thick):
                top_stem_thick := top_stem_thick - 1;
        fi;
+       if odd (top_stem_thick_orig - bottom_stem_thick):
+               top_stem_thick_orig := top_stem_thick_orig - 1;
+       fi;
 
        center = (xcenter, 0);
 
@@ -472,13 +696,22 @@ def draw_meta_flat (expr xcenter, w, crook_fatness) =
        y1 = vround (2 staff_space - clearing);
        x2l = hround (xcenter - .5 bottom_stem_thick);
        y2 = -.5 staff_space - .5 stafflinethickness;
+       % z16 and the `*_orig' variables are needed for arrowed accidentals
+       % because their inner part should be unchanged from plain ones but
+       % the points z3l, z3r, and z10 depend on values that are different
+       % for arrowed accidentals
+       x16l = hround (xcenter -.5 top_stem_thick_orig);
+       y16 = vround (2 staff_space - clearing_orig);
 
        penpos1 (top_stem_thick, 0);
+       penpos16 (top_stem_thick_orig, 0);
        penpos2 (bottom_stem_thick, 0);
 
        y3l = vfloor ((staff_space - stafflinethickness) / 2);
        z3l = whatever [z2r, z1r];
-       z3r = .3 [z2r, z1r] + (smaller_hole, 0);
+       z3r = .3 [z2r,
+                 (z16r shifted (0, clearing_orig - 1.7 stafflinethickness))]
+             + (smaller_hole, 0);
        x3r := hceiling x3r;
 
        % we insert z3l to get better conversion with mf2pt1
@@ -488,7 +721,7 @@ def draw_meta_flat (expr xcenter, w, crook_fatness) =
             -- z3l
             -- cycle;
 
-       z10 = whatever [z2r, z1r] + (smaller_hole, 0);
+       z10 = whatever [z2r, z16r] + (smaller_hole, 0);
        y10 = -1/10 staff_space;
        x10 := hceiling x10;
 
@@ -496,6 +729,9 @@ def draw_meta_flat (expr xcenter, w, crook_fatness) =
        y11 = -vround (.5 (staff_space + stafflinethickness)
                       + bottom_overshoot);
 
+       x2a = 0.2[x2r, x7];
+       y2a = 1.5[y2, y11];
+
        penpos4 (whatever, 53);
 
        y4l - y4r = top_crook_thinness;
@@ -524,25 +760,62 @@ def draw_meta_flat (expr xcenter, w, crook_fatness) =
               .. z10{z3r - z10}
               -- cycle;
 
-       fill z2l{down}
-            .. z11{right}
-            .. z8{bot_crook_dir}
-            .. z5l{up}
-            .. z4l{left}
-            .. z3l
-            -- cycle;
+       if arrowdown:
+               fill z2l{down}
+                    .. z2a{up}
+                    .. z8{bot_crook_dir}
+                    .. z5l{up}
+                    .. z4l{left}
+                    .. z3l
+                    -- cycle;
+       else:
+               fill z2l{down}
+                    .. z11{right}
+                    .. z8{bot_crook_dir}
+                    .. z5l{up}
+                    .. z4l{left}
+                    .. z3l
+                    -- cycle;
+       fi;
+
+       if arrowup:
+               draw_arrow (z1, top_stem_thick, z1l - z2l,
+                           0.5 stafflinethickness, false);
+       fi;
+       if arrowdown:
+               draw_arrow ((0.5 [x2l, x2a], y2), x2a - x2l, up,
+                           staff_space / 2, true);
+       fi;
 enddef;
 
 
+def draw_arrowed_meta_flat (expr xcenter, width, crook_fatness,
+                                arrowup, arrowdown) =
+       save depth, height, extendleft;
+
+       depth# = 0.6 staff_space#;
+       height# = 1.9 staff_space#;
+       extendleft# := 1.2 stafflinethickness#;
+       if arrowup:
+               extendleft# := 3.45 stafflinethickness#;
+               height# := height# + 0.8 staff_space#;
+       fi;
+       if arrowdown:
+               extendleft# := 3.45 stafflinethickness#;
+               depth# := depth# + 1.6 staff_space#;
+       fi;
+
+       set_char_box (extendleft#, width, depth#, height#);
+       draw_meta_flat(xcenter, w, crook_fatness, arrowup, arrowdown);
+enddef;
+
 %
 % unfortunately, 600dpi is not enough to show the brush of the stem.
 %
 
 fet_beginchar ("Flat", "flat");
-       set_char_box (1.2 stafflinethickness#, .8 staff_space#,
-                     0.6 staff_space#, 1.9 staff_space#);
-
-       draw_meta_flat (0, w, 0.31 staff_space);
+       draw_arrowed_meta_flat (0, 0.8 staff_space#, 0.31 staff_space,
+                               false, false);
        penlabels (range 0 thru 11);
 
        remember_pic := currentpicture;
@@ -554,11 +827,53 @@ fet_endchar;
 draw_shifted_too;
 
 
+fet_beginchar ("Arrowed Flat (arrow up)", "flat.arrowup");
+       draw_arrowed_meta_flat (0, 0.8 staff_space#, 0.31 staff_space,
+                               true, false);
+       penlabels (range 0 thru 23);
+
+       remember_pic := currentpicture;
+
+       draw_staff (-2, 2, 0);
+fet_endchar;
+
+
+draw_shifted_too;
+
+
+fet_beginchar ("Arrowed Flat (arrow down)", "flat.arrowdown");
+       draw_arrowed_meta_flat (0, 0.8 staff_space#, 0.31 staff_space,
+                               false, true);
+       penlabels (range 0 thru 23);
+
+       remember_pic := currentpicture;
+
+       draw_staff (-2, 2, 0);
+fet_endchar;
+
+
+draw_shifted_too;
+
+
+fet_beginchar ("Arrowed Flat (arrow up and down)", "flat.arrowboth");
+       draw_arrowed_meta_flat (0, 0.8 staff_space#, 0.31 staff_space,
+                               true, true);
+       penlabels (range 0 thru 23);
+
+       remember_pic := currentpicture;
+
+       draw_staff (-2, 2, 0);
+fet_endchar;
+
+
+draw_shifted_too;
+
+
 fet_beginchar ("Flat (slashed)", "flat.slash");
        set_char_box (.4 staff_space#, .8 staff_space#,
                      0.6 staff_space#, 1.9 staff_space#);
 
-       draw_meta_flat (0, w, 0.31 staff_space);
+       draw_meta_flat (0, w, 0.31 staff_space, false, false);
 
        clearxy;
 
@@ -597,7 +912,7 @@ fet_beginchar ("Flat (slashed twice)", "flat.slashslash");
        set_char_box (.4 staff_space#, .8 staff_space#,
                      0.6 staff_space#, 1.9 staff_space#);
 
-       draw_meta_flat (0, w, 0.31 staff_space);
+       draw_meta_flat (0, w, 0.31 staff_space, false, false);
 
        clearxy;
 
@@ -776,7 +1091,7 @@ fet_beginchar ("Semi flat", "mirroredflat");
        set_char_box (1.2 stafflinethickness#, .8 staff_space#,
                      0.6 staff_space#, 1.9 staff_space#);
 
-       draw_meta_flat (0, w, 0.31 staff_space);
+       draw_meta_flat (0, w, 0.31 staff_space, false, false);
        currentpicture := currentpicture xscaled -1 shifted (w - b, 0);
 fet_endchar;
 
@@ -785,7 +1100,7 @@ fet_beginchar ("Semi flat", "mirroredflat.backslash");
        set_char_box (.4 staff_space#, .8 staff_space#,
                      0.6 staff_space#, 1.9 staff_space#);
 
-       draw_meta_flat (0, w, 0.31 staff_space);
+       draw_meta_flat (0, w, 0.31 staff_space, false, false);
 
        clearxy;
 
@@ -827,9 +1142,11 @@ fet_beginchar ("Double Flat", "flatflat");
        set_char_box (1.2 stafflinethickness#,
                      (left_wid + right_wid - overlap) * staff_space#,
                      .6 staff_space#, 1.9 staff_space#);
-       draw_meta_flat (0, left_wid * staff_space, 1/3 staff_space);
+       draw_meta_flat (0, left_wid * staff_space, 1/3 staff_space,
+                       false, false);
        draw_meta_flat (hround ((left_wid - overlap) * staff_space),
-                       right_wid * staff_space, 1/3 staff_space);
+                       right_wid * staff_space, 1/3 staff_space,
+                       false, false);
 fet_endchar;
 
 
@@ -843,9 +1160,11 @@ fet_beginchar ("3/4 Flat", "flatflat.slash");
        set_char_box (1.2 stafflinethickness#,
                      (left_wid + right_wid - overlap) * staff_space#,
                      .6 staff_space#, 1.9 staff_space#);
-       draw_meta_flat (0, left_wid * staff_space, 1/3 staff_space);
+       draw_meta_flat (0, left_wid * staff_space, 1/3 staff_space,
+                       false, false);
        draw_meta_flat (hround ((left_wid - overlap) * staff_space),
-                       right_wid * staff_space, 1/3 staff_space);
+                       right_wid * staff_space, 1/3 staff_space,
+                       false, false);
 
        %% maybe we should clip part of the stems?
        %% or make the 1st flat smaller?
index ba4bf7886884ea3ef58f16bbf21ba11233f38dc3..b5fe66306128aa5cc837cf5d242a38101a874c61 100644 (file)
@@ -3,7 +3,7 @@
 % 
 % source file of LilyPond's pretty-but-neat music font
 % 
-% (c) 2001--2007 Juergen Reuter <reuter@ipd.uka.de>
+% (c) 2001--2009 Juergen Reuter <reuter@ipd.uka.de>
 % 
 
 fet_begingroup ("accidentals");
index 5b6d21f802179c7af9080718195c39d94cea61b8..afd5058e7da507709cc8a77d3e5a9eddb2ead8c9 100644 (file)
@@ -3,7 +3,7 @@
 % 
 % source file of LilyPond's pretty-but-neat music font
 %
-% (c) 2001--2007 Juergen Reuter <reuter@ipd.uka.de>
+% (c) 2001--2009 Juergen Reuter <reuter@ipd.uka.de>
 %
 
 fet_begingroup ("clefs");
index 47848b7db0fb37c87a4db06b08f113e9febb3ebf..d1a2d6c7586eac332c5f92890eea8690a8c9a9a1 100644 (file)
@@ -3,7 +3,7 @@
 % 
 % source file of LilyPond's pretty-but-neat music font
 % 
-% (c) 2000--2007 Juergen Reuter <reuter@ipd.uka.de>
+% (c) 2000--2009 Juergen Reuter <reuter@ipd.uka.de>
 % 
 
 save black_notehead_width;
index e1ada66381e5ab0ebfaed963a315f8b56e091bf9..826dabe2c86cc6a5e68407b395e03e30c533b50a 100644 (file)
@@ -3,7 +3,7 @@
 % 
 % source file of LilyPond's pretty-but-neat music font
 % 
-% (c) 2006--2007 Juergen Reuter <reuter@ipd.uka.de>
+% (c) 2006--2009 Juergen Reuter <reuter@ipd.uka.de>
 % 
 
 fet_begingroup ("dots");
index 737a39b65fb9865c29d5047a2181e7b77594b5e9..32a55df0e2fd9c4a808f36e71f029c80579a8362 100644 (file)
@@ -3,7 +3,7 @@
 % 
 % source file of LilyPond's pretty-but-neat music font
 % 
-% (c) 2001--2007 Juergen Reuter <reuter@ipd.uka.de>
+% (c) 2001--2009 Juergen Reuter <reuter@ipd.uka.de>
 % 
 
 fet_begingroup ("flags");
index 8a26d1dc654f3b6d068e8a546ff2a98c04163f4f..6ffb53aad5134259919acc8de565f5aa14ccde85 100644 (file)
@@ -4,7 +4,7 @@
 %
 % source file of LilyPond's pretty-but-neat music font
 %
-% (c) 2002--2007 Juergen Reuter <reuter@ipd.uka.de>
+% (c) 2002--2009 Juergen Reuter <reuter@ipd.uka.de>
 %
 
 
index b69c378ffce6e04be36034b6ab12bc6466b8188d..b897554d883a7f53b96aa2f281674e7e9e20429a 100644 (file)
@@ -3,7 +3,7 @@
 % 
 % source file of LilyPond's pretty-but-neat music font
 % 
-% (c) 2001--2007 Juergen Reuter <reuter@ipd.uka.de>
+% (c) 2001--2009 Juergen Reuter <reuter@ipd.uka.de>
 % 
 % Neo-mensural heads originally by
 % Christian Mondrup and Mats Bengtsson
index 1f0b4ad5356ebba06933930c064dfaaee177de78..94d728a3e225da548d288f4af953b6447f77a700 100644 (file)
@@ -3,7 +3,7 @@
 % 
 % source file of LilyPond's pretty-but-neat music font
 % 
-% (c) 2001--2007 Juergen Reuter <reuter@ipd.uka.de>
+% (c) 2001--2009 Juergen Reuter <reuter@ipd.uka.de>
 % 
 
 
index 5beeedc1b2da7e5703bec6f87d9a53c600062976..060307db7133da96b959cc07a812e8717c53a1d1 100644 (file)
@@ -3,7 +3,7 @@
 % 
 % source file of LilyPond's pretty-but-neat music font
 % 
-% (c) 2001--2007 Juergen Reuter <reuter@ipd.uka.de>
+% (c) 2001--2009 Juergen Reuter <reuter@ipd.uka.de>
 % 
 % Neo-mensural rests originally by
 % Christian Mondrup and Mats Bengtsson.
index 1aebbe5c57e24fe23117fafaa9addffb395682d6..3a43a46aecbb50f717807b7a76c8f45f73e209b4 100644 (file)
@@ -3,7 +3,7 @@
 % 
 % source file of LilyPond's pretty-but-neat music font
 % 
-% (c) 2002--2007 Juergen Reuter <reuter@ipd.uka.de>
+% (c) 2002--2009 Juergen Reuter <reuter@ipd.uka.de>
 % 
 
 fet_begingroup ("scripts");
index 538016d9eacdb9005f9b0552039c3e1df82cdf71..8d0ab9d45cfb2ba9216b9c6deba36cbfecf8135f 100644 (file)
@@ -3,9 +3,9 @@
 % 
 % source file of LilyPond's pretty-but-neat music font
 % 
-% (c) 1998--2007 Mats Bengtsson <matsb@s3.kth.se>,
+% (c) 1998--2009 Mats Bengtsson <matsb@s3.kth.se>,
 %               Christian Mondrup <scancm@biobase.dk>
-% (c) 2002--2007 Juergen Reuter <reuter@ipd.uka.de>
+% (c) 2002--2009 Juergen Reuter <reuter@ipd.uka.de>
 % 
 
 fet_begingroup ("timesig");
diff --git a/po/SConscript b/po/SConscript
deleted file mode 100644 (file)
index ac2534b..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*-python-*-
-
-Import ('env', 'base_glob', 'install')
-pos = base_glob ('*.po')
-mos = map (env.MO, pos)
-
-install (mos, env['localedir'])
-
-env.Depends ('po', 'po-update')
-# map (lambda x: env.Depends (x + '.mo', x + '.pom'), pos)
-poms = map (env.POMERGE, pos)
-env.Alias ('po-update', poms)
-env.Alias ('po', mos)
-#env.Alias ('all', mos)
-
diff --git a/po/TODO b/po/TODO
index bf0e29e069f138680c7ba34afe082bf7a948ce9b..fd7f1c31e772d267c8c39c3401b1f8a9509624c7 100644 (file)
--- a/po/TODO
+++ b/po/TODO
@@ -27,8 +27,7 @@ FIX OR STANDARDISE TARGETS
   the file may accumulate the list of obsolete translations, which may 
   help to translate some changed entries and may be safely dropped out.
 
-* because I never install LilyPond, I (check-out buildscripts/set-lily.sh) 
-  made these links:
+* because I never install LilyPond, I made these links:
 
     ln -s $LILYPOND_SOURCEDIR/po/out/nl.mo 
         $PREFIX/usr/share/locale/nl/LC_MESSAGES/lilypond.mo
index b14f9714280574ec1db744307832b1ed2babc5fb..efcc72da8e481496f8ab059882ba5bd072c671f8 100644 (file)
--- a/po/de.po
+++ b/po/de.po
@@ -7,10 +7,10 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: lilypond 2.11.57\n"
+"Project-Id-Version: lilypond 2.12.0\n"
 "Report-Msgid-Bugs-To: http://post.gmane.org/post.php?group=gmane.comp.gnu.lilypond.bugs\n"
-"POT-Creation-Date: 2008-08-23 18:49+0200\n"
-"PO-Revision-Date: 2008-08-31 11:07+0300\n"
+"POT-Creation-Date: 2008-12-20 11:58+0100\n"
+"PO-Revision-Date: 2009-01-06 20:11+0200\n"
 "Last-Translator: Till Rettig <till.rettig@gmx.de>\n"
 "Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
 "MIME-Version: 1.0\n"
@@ -31,7 +31,7 @@ msgstr "Für Details Benutzerhandbuch lesen und manuell aktualisieren."
 msgid "%s has been replaced by %s"
 msgstr "%s wurde durch %s ersetzt"
 
-#: convertrules.py:24 musicexp.py:16 convert-ly.py:48 lilypond-book.py:82
+#: convertrules.py:24 musicexp.py:16 convert-ly.py:50 lilypond-book.py:94
 #: warn.cc:48 input.cc:90
 #, c-format, python-format
 msgid "warning: %s"
@@ -425,6 +425,22 @@ msgstr "Achse und Richtung jetzt vor die Beschriftung setzen:\n"
 msgid "\\put-adjacent axis dir markup markup."
 msgstr "\\put-adjacent Achse Richtung Beschriftung Beschriftung."
 
+#: convertrules.py:2832
+msgid "re-definition of InnerStaffGroup.\n"
+msgstr "Neudefinition von InnerStaffGroup.\n"
+
+#: convertrules.py:2838
+msgid "re-definition of InnerChoirStaff.\n"
+msgstr "Neudefinition von InnerChoirStaff.\n"
+
+#: convertrules.py:2851
+msgid "stringTuning must be added to addChordShape call.\n"
+msgstr "stringTuning·muss zu einem·addChordShape -Aufruf hinzugefügt werden.\n"
+
+#: convertrules.py:2857
+msgid "stringTuning must be added to chord-shape call.\n"
+msgstr "stringTuning muss zu dem·chord-shape -Aufruf hinzugefügt werden.\n"
+
 #: fontextract.py:25
 #, python-format
 msgid "Scanning %s"
@@ -440,56 +456,90 @@ msgstr "%s ausgepackt"
 msgid "Writing fonts to %s"
 msgstr "Schreiben der Schriftarten nach %s"
 
-#: lilylib.py:101 lilylib.py:152
+#: lilylib.py:91 lilylib.py:142
 #, python-format
 msgid "Invoking `%s'"
 msgstr "`%s' wird aufgerufen"
 
-#: lilylib.py:103 lilylib.py:154
+#: lilylib.py:93 lilylib.py:144
 #, python-format
 msgid "Running %s..."
 msgstr "%s wird ausgeführt..."
 
-#: lilylib.py:219
+#: lilylib.py:209
 #, python-format
 msgid "Usage: %s"
 msgstr "Aufruf: %s"
 
-#: musicexp.py:585
+#: musicexp.py:215 musicexp.py:220
+msgid "Language does not support microtones contained in the piece"
+msgstr "Die Sprache unterstützt nicht die Mikrotöne in diesem Stück"
+
+#: musicexp.py:482
+msgid "Tuplet brackets of curved shape are not correctly implemented"
+msgstr "N-tolen-Klammern mit gekrümmten Klammern sind nicht richtig implementiert"
+
+#. TODO: Implement this using actual_type and normal_type!
+#: musicexp.py:511
+msgid "Tuplet brackets displaying both note durations are not implemented, using default"
+msgstr "N-tolen-Klammern, die beide Notendauern darstellen, sind nicht implementiert, benutze Standard"
+
+#: musicexp.py:656
 #, python-format
 msgid "unable to set the music %(music)s for the repeat %(repeat)s"
 msgstr "kann die Noten %(music)s für die Wiederholung %(repeat)s nicht setzen"
 
-#: musicexp.py:594
+#: musicexp.py:665
 msgid "encountered repeat without body"
 msgstr "Wiederholung ohne Body angetroffen"
 
-#: musicxml.py:13 convert-ly.py:51 lilypond-book.py:85 warn.cc:54 input.cc:96
+#. no self.elements!
+#: musicexp.py:835
+#, python-format
+msgid "Grace note with no following music: %s"
+msgstr "Verzierungsnoten ohne folgende Noten: %s"
+
+#: musicexp.py:997
+#, python-format
+msgid "Invalid octave shift size found: %s. Using no shift."
+msgstr "Ungültige Oktavenversetzungsgröße gefunden: %s. Versetzung wird nicht angewendet."
+
+#: musicexp.py:1455
+#, python-format
+msgid "Unable to convert alteration %s to a lilypond expression"
+msgstr "Kann Alteration %s nicht in einen LilyPond-Ausdruck umwandeln"
+
+#: musicxml.py:13 convert-ly.py:53 lilypond-book.py:97 warn.cc:54 input.cc:96
 #: input.cc:104
 #, c-format, python-format
 msgid "error: %s"
 msgstr "Fehler: %s"
 
-#: musicxml.py:298
-msgid "requested time signature, but time sig is unknown"
-msgstr "Taktangabe angefragt, aber Taktart ist unbekannt"
+#. TODO: Handle pieces without a time signature!
+#: musicxml.py:357
+msgid "Senza-misura time signatures are not yet supported!"
+msgstr "Senza-misura-Taktarten sind noch nicht unterstützt!"
+
+#: musicxml.py:375
+msgid "Unable to interpret time signature! Falling back to 4/4."
+msgstr "Unfähig, die Taktart zu interpretieren! Benutze 4/4-Takt."
 
-#: musicxml.py:354
+#: musicxml.py:431
 #, python-format
-msgid "Encountered note at %s with %s duration (no <type> element):"
-msgstr "Note bei %s mit Dauer %s angetroffen (kein <type>-Element):"
+msgid "Key alteration octave given for a non-existing alteration nr. %s, available numbers: %s!"
+msgstr "Tonartalterationsoktave für eine nicht existente Alteration Nr. %s angegeben, mögliche Nummern: %s!"
 
-#: musicxml.py:388
+#: musicxml.py:519
 #, python-format
 msgid "Unable to find instrument for ID=%s\n"
 msgstr "Kann kein Instrument für ID=%s finden\n"
 
-#: abc2ly.py:1342 convert-ly.py:72 lilypond-book.py:109 midi2ly.py:846
+#: abc2ly.py:1341 convert-ly.py:74 lilypond-book.py:121 midi2ly.py:845
 #, python-format
 msgid "%s [OPTION]... FILE"
 msgstr "%s [OPTIONEN]... DATEI"
 
-#: abc2ly.py:1343
+#: abc2ly.py:1342
 #, python-format
 msgid ""
 "abc2ly converts ABC music files (see\n"
@@ -498,34 +548,39 @@ msgstr ""
 "abc2ly wandelt ABC-Musikdateien in LilyPond-Eingabe um\n"
 "(siehe auch %s).\n"
 
-#: abc2ly.py:1351 convert-ly.py:79 etf2ly.py:1190 lilypond-book.py:195
-#: midi2ly.py:882 musicxml2ly.py:2185 main.cc:161
+#: abc2ly.py:1350 convert-ly.py:81 etf2ly.py:1190 lilypond-book.py:207
+#: midi2ly.py:881 musicxml2ly.py:2590 main.cc:156
 msgid "show version number and exit"
 msgstr "Versionsnummer ausgeben und beenden"
 
-#: abc2ly.py:1355 convert-ly.py:83 etf2ly.py:1186 lilypond-book.py:126
-#: midi2ly.py:861 musicxml2ly.py:2167 main.cc:150
+#: abc2ly.py:1354 convert-ly.py:85 etf2ly.py:1186 lilypond-book.py:138
+#: midi2ly.py:860 musicxml2ly.py:2572 main.cc:145
 msgid "show this help and exit"
 msgstr "diese Hilfe anzeigen und beenden"
 
-#: abc2ly.py:1357 etf2ly.py:1191 midi2ly.py:865
+#: abc2ly.py:1356 etf2ly.py:1191 midi2ly.py:864
 msgid "write output to FILE"
 msgstr "Ausgabe in DATEI schreiben"
 
-#: abc2ly.py:1359
+#: abc2ly.py:1358
 msgid "be strict about success"
 msgstr "bzgl. Erfolg streng sein"
 
-#: abc2ly.py:1361
+#: abc2ly.py:1360
 msgid "preserve ABC's notion of beams"
 msgstr "ABCs Prinzip der Balken beibehalten"
 
-#: abc2ly.py:1363 convert-ly.py:120 etf2ly.py:1199 lilypond-book.py:202
-#: midi2ly.py:894 musicxml2ly.py:2240
-msgid "Report bugs via"
-msgstr "Melden Sie Fehler an"
+#. Translators, please translate this string as
+#. "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:1363 convert-ly.py:123 etf2ly.py:1200 lilypond-book.py:214
+#: midi2ly.py:894 musicxml2ly.py:2646 main.cc:265
+#, c-format, python-format
+msgid "Report bugs via %s"
+msgstr "Melden Sie Fehler an %s"
 
-#: convert-ly.py:31
+#: convert-ly.py:33
 msgid ""
 "Update LilyPond input to newer version.  By default, update from the\n"
 "version taken from the \\version command, to the current LilyPond version."
@@ -533,72 +588,72 @@ msgstr ""
 "LilyPond-Eingabe auf neuere Version bringen. Standardmäßig wird von der\n"
 "Version vom Kommando \\version zur aktuellen LilyPond-Version gegangen."
 
-#: convert-ly.py:33 lilypond-book.py:59
+#: convert-ly.py:35 lilypond-book.py:71
 msgid "Examples:"
 msgstr "Beispiele:"
 
-#: convert-ly.py:67 etf2ly.py:1173 lilypond-book.py:105 midi2ly.py:77
+#: convert-ly.py:69 etf2ly.py:1173 lilypond-book.py:117 midi2ly.py:76
 msgid "Distributed under terms of the GNU General Public License."
 msgstr "Vertrieben unter den Bedingungen der GNU General Public License."
 
-#: convert-ly.py:68 etf2ly.py:1174 lilypond-book.py:106 midi2ly.py:78
+#: convert-ly.py:70 etf2ly.py:1174 lilypond-book.py:118 midi2ly.py:77
 msgid "It comes with NO WARRANTY."
 msgstr "Es wird OHNE GARANTIE ausgeliefert."
 
-#: convert-ly.py:87 convert-ly.py:114
+#: convert-ly.py:89 convert-ly.py:116
 msgid "VERSION"
 msgstr "VERSION"
 
-#: convert-ly.py:89
+#: convert-ly.py:91
 msgid "start from VERSION [default: \\version found in file]"
 msgstr "bei VERSION anfangen [Standard: \\version in Datei gefunden]"
 
-#: convert-ly.py:92
+#: convert-ly.py:94
 msgid "edit in place"
 msgstr "vor Ort ändern"
 
-#: convert-ly.py:96
+#: convert-ly.py:98
 msgid "do not add \\version command if missing"
 msgstr "keinen \\version-Befehl hinzufügen, falls es fehlt"
 
-#: convert-ly.py:102
+#: convert-ly.py:104
 #, python-format
 msgid "force updating \\version number to %s"
 msgstr "erzwinge Aktualisierung von \\version nach %s"
 
-#: convert-ly.py:108
+#: convert-ly.py:110
 #, python-format
 msgid "show rules [default: -f 0, -t %s]"
 msgstr "Regeln anzeigen [Standard: -f 0, -t %s]"
 
-#: convert-ly.py:113
+#: convert-ly.py:115
 #, python-format
 msgid "convert to VERSION [default: %s]"
 msgstr "zu VERSION konvertieren [Standard: %s]"
 
-#: convert-ly.py:160
+#: convert-ly.py:163
 msgid "Applying conversion: "
 msgstr "Anwenden der Umwandlung: "
 
-#: convert-ly.py:173
+#: convert-ly.py:176
 msgid "Error while converting"
 msgstr "Fehler beim Umwandeln"
 
-#: convert-ly.py:175
-msgid "Stopping at last succesful rule"
+#: convert-ly.py:178
+msgid "Stopping at last successful rule"
 msgstr "Abbruch bei letzter erfolgreicher Regel"
 
-#: convert-ly.py:196
+#: convert-ly.py:199
 #, python-format
 msgid "Processing `%s'... "
 msgstr "»%s« wird verarbeitet..."
 
-#: convert-ly.py:286 relocate.cc:362 source-file.cc:59
+#: convert-ly.py:289 relocate.cc:362 source-file.cc:59
 #, c-format, python-format
 msgid "cannot open file: `%s'"
 msgstr "Datei kann nicht geöffnet werden: »%s«"
 
-#: convert-ly.py:293
+#: convert-ly.py:296
 #, python-format
 msgid "cannot determine version for `%s'.  Skipping"
 msgstr "Version für »%s« kann nicht erkannt werden. Wird übersprungen"
@@ -617,276 +672,276 @@ msgstr ""
 "verwendetes Format. etf2ly wandelt eine Teilmenge von ETF in\n"
 "eine von Lilypond verwendbare Datei um.\n"
 
-#: etf2ly.py:1192 midi2ly.py:866 musicxml2ly.py:2233 main.cc:154 main.cc:159
+#: etf2ly.py:1192 midi2ly.py:865 musicxml2ly.py:2638 main.cc:149 main.cc:154
 msgid "FILE"
 msgstr "DATEI"
 
-#: etf2ly.py:1194 lilypond-book.py:198 midi2ly.py:883 main.cc:163
+#: etf2ly.py:1194 lilypond-book.py:210 midi2ly.py:882 main.cc:158
 msgid "show warranty and copyright"
 msgstr "Informationen zu Gewährleistung und Copyright anzeigen"
 
-#: lilypond-book.py:57
+#: lilypond-book.py:69
 msgid "Process LilyPond snippets in hybrid HTML, LaTeX, texinfo or DocBook document."
 msgstr "LilyPond-Schnipsel in Mischdatei (HTML, LaTeX, texinfo oder DocBook) verarbeiten"
 
-#: lilypond-book.py:64
+#: lilypond-book.py:76
 msgid "BOOK"
 msgstr "BUCH"
 
-#: lilypond-book.py:72
+#: lilypond-book.py:84
 #, python-format
 msgid "Exiting (%d)..."
 msgstr "Beenden (%d)..."
 
-#: lilypond-book.py:103
+#: lilypond-book.py:115
 #, python-format
 msgid "Copyright (c) %s by"
 msgstr "Copyright (c) %s bei"
 
-#: lilypond-book.py:113
+#: lilypond-book.py:125
 msgid "FILTER"
 msgstr "FILTER"
 
-#: lilypond-book.py:116
+#: lilypond-book.py:128
 msgid "pipe snippets through FILTER [default: `convert-ly -n -']"
 msgstr "Auszüge durch FILTER [Standard: »convert-ly -n -«] leiten (Pipe)"
 
-#: lilypond-book.py:120
+#: lilypond-book.py:132
 msgid "use output format FORMAT (texi [default], texi-html, latex, html, docbook)"
 msgstr "Ausgabeformat FORMAT (texi [Vorgabe], texi-html, latex, html, docbook) verwenden"
 
-#: lilypond-book.py:121
+#: lilypond-book.py:133
 msgid "FORMAT"
 msgstr "FORMAT"
 
-#: lilypond-book.py:128
+#: lilypond-book.py:140
 msgid "add DIR to include path"
 msgstr "VERZ zum Einfügepfad hinzufügen"
 
-#: lilypond-book.py:129 lilypond-book.py:136 lilypond-book.py:154
-#: lilypond-book.py:160 lilypond-book.py:166 lilypond-book.py:172 main.cc:153
+#: lilypond-book.py:141 lilypond-book.py:148 lilypond-book.py:166
+#: lilypond-book.py:172 lilypond-book.py:178 lilypond-book.py:184 main.cc:148
 msgid "DIR"
 msgstr "VERZ"
 
-#: lilypond-book.py:134
+#: lilypond-book.py:146
 msgid "format Texinfo output so that Info will look for images of music in DIR"
 msgstr "Formatiere Texinfo-Ausgabe so, dass Info nach Bildern und Noten im VERZ suchen kann"
 
-#: lilypond-book.py:141
+#: lilypond-book.py:153
 msgid "run executable PROG instead of latex"
 msgstr "benutze ausführbare Datei PROG anstelle von latex"
 
-#: lilypond-book.py:142
+#: lilypond-book.py:154
 msgid "PROG"
 msgstr "PROG"
 
-#: lilypond-book.py:147
+#: lilypond-book.py:159
 msgid "PAD"
 msgstr "FÜLLUNG"
 
-#: lilypond-book.py:149
+#: lilypond-book.py:161
 msgid "pad left side of music to align music inspite of uneven bar numbers (in mm)"
 msgstr "verschiebe linken Rand der Noten um an den Noten auszurichten, obwohl Taktnummer ungerade ist (in mm)"
 
-#: lilypond-book.py:153
+#: lilypond-book.py:165
 msgid "write output to DIR"
 msgstr "Ausgabe in DATEI schreiben"
 
-#: lilypond-book.py:159
+#: lilypond-book.py:171
 msgid "do not fail if no lilypond output is found"
 msgstr "nicht abbrechen wenn keine lilypond-Ausgabe gefunden wird"
 
-#: lilypond-book.py:165
+#: lilypond-book.py:177
 msgid "do not fail if no PNG images are found for EPS files"
 msgstr "nicht abbrechen wenn, keine PNG-Bilder für EPS-Dateien gefunden werden"
 
-#: lilypond-book.py:171
+#: lilypond-book.py:183
 msgid "write lily-XXX files to DIR, link into --output dir"
 msgstr "schreibe lily-XXX-Dateien nach VERZ, verlinke nach --output dir"
 
-#: lilypond-book.py:176
+#: lilypond-book.py:188
 msgid "COMMAND"
 msgstr "BEFEHL"
 
-#: lilypond-book.py:177
+#: lilypond-book.py:189
 msgid "process ly_files using COMMAND FILE..."
 msgstr "ly_files mit BEFEHL DATEI... verarbeiten"
 
-#: lilypond-book.py:184
+#: lilypond-book.py:196
 msgid "create PDF files for use with PDFTeX"
 msgstr "PDF-Dateien für Verwendung mit PDFTeX erzeugen"
 
-#: lilypond-book.py:187 midi2ly.py:876 musicxml2ly.py:2190 main.cc:162
+#: lilypond-book.py:199 midi2ly.py:875 musicxml2ly.py:2595 main.cc:157
 msgid "be verbose"
 msgstr "wortreich sein"
 
-#: lilypond-book.py:825
+#: lilypond-book.py:871
 #, python-format
 msgid "file not found: %s"
 msgstr "Datei `%s' nicht gefunden"
 
-#: lilypond-book.py:1087
+#: lilypond-book.py:1142
 #, python-format
 msgid "deprecated ly-option used: %s=%s"
 msgstr "veraltete ly-option verwendet: %s=%s"
 
-#: lilypond-book.py:1089
+#: lilypond-book.py:1144
 #, python-format
 msgid "compatibility mode translation: %s=%s"
 msgstr "Übersetzung im Kompatibilitätsmodus: %s=%s"
 
-#: lilypond-book.py:1092
+#: lilypond-book.py:1147
 #, python-format
 msgid "deprecated ly-option used: %s"
 msgstr "veraltete ly-option verwendet: %s"
 
-#: lilypond-book.py:1094
+#: lilypond-book.py:1149
 #, python-format
 msgid "compatibility mode translation: %s"
 msgstr "Übersetzung im Kompatibilitätsmodus: %s"
 
-#: lilypond-book.py:1112
+#: lilypond-book.py:1167
 #, python-format
 msgid "ignoring unknown ly option: %s"
 msgstr "unbekannte Option ignoriert: %s"
 
-#: lilypond-book.py:1538
+#: lilypond-book.py:1604
 #, python-format
 msgid "Opening filter `%s'"
 msgstr "Filter »%s« wird geöffnet"
 
-#: lilypond-book.py:1555
+#: lilypond-book.py:1621
 #, python-format
 msgid "`%s' failed (%d)"
 msgstr "»%s« gescheitert (%d)"
 
-#: lilypond-book.py:1556
+#: lilypond-book.py:1622
 msgid "The error log is as follows:"
 msgstr "Das Fehlerprotokoll lautet wie folgt:"
 
-#: lilypond-book.py:1618
+#: lilypond-book.py:1684
 msgid "cannot find \\begin{document} in LaTeX document"
 msgstr "\\begin{document} im LaTeX-Dokument kann nicht gefunden werden"
 
-#: lilypond-book.py:1718
+#: lilypond-book.py:1784
 msgid "Writing snippets..."
 msgstr "Auszüge werden geschrieben..."
 
-#: lilypond-book.py:1724
+#: lilypond-book.py:1790
 msgid "Processing..."
 msgstr "Verarbeiten..."
 
-#: lilypond-book.py:1730
+#: lilypond-book.py:1796
 msgid "All snippets are up to date..."
 msgstr "Alle Auszüge sind auf dem neuesten Stand..."
 
-#: lilypond-book.py:1764
+#: lilypond-book.py:1830
 #, python-format
 msgid "cannot determine format for: %s"
 msgstr "Format für %s kann nicht ermittelt werden"
 
-#: lilypond-book.py:1775
+#: lilypond-book.py:1841
 #, python-format
 msgid "%s is up to date."
 msgstr "%s ist aktuell."
 
-#: lilypond-book.py:1789
+#: lilypond-book.py:1855
 #, python-format
 msgid "Writing `%s'..."
 msgstr "»%s« wird geschrieben..."
 
-#: lilypond-book.py:1847
+#: lilypond-book.py:1913
 msgid "Output would overwrite input file; use --output."
 msgstr "Ausgabe würde Eingabedatei überschreiben; verwenden Sie --output."
 
-#: lilypond-book.py:1851
+#: lilypond-book.py:1917
 #, python-format
 msgid "Reading %s..."
 msgstr "%s lesen..."
 
-#: lilypond-book.py:1870
+#: lilypond-book.py:1937
 msgid "Dissecting..."
 msgstr "Zerlegen..."
 
-#: lilypond-book.py:1886
+#: lilypond-book.py:1953
 #, python-format
 msgid "Compiling %s..."
 msgstr "%s kompilieren..."
 
-#: lilypond-book.py:1895
+#: lilypond-book.py:1962
 #, python-format
 msgid "Processing include: %s"
 msgstr "Einfügung wird verarbeitet: %s"
 
-#: lilypond-book.py:1907
+#: lilypond-book.py:1974
 #, python-format
 msgid "Removing `%s'"
 msgstr "»%s« wird gelöscht"
 
-#: midi2ly.py:85 lily-library.scm:620 lily-library.scm:629
+#: midi2ly.py:84 lily-library.scm:634 lily-library.scm:643
 msgid "warning: "
 msgstr "Warnung: "
 
-#: midi2ly.py:88 midi2ly.py:907
+#: midi2ly.py:87 midi2ly.py:907
 msgid "error: "
 msgstr "Fehler: "
 
-#: midi2ly.py:89
+#: midi2ly.py:88
 msgid "Exiting... "
 msgstr "Beenden... "
 
-#: midi2ly.py:834
+#: midi2ly.py:833
 #, python-format
 msgid "%s output to `%s'..."
 msgstr "%s nach »%s« ausgeben..."
 
-#: midi2ly.py:847
+#: midi2ly.py:846
 #, python-format
 msgid "Convert %s to LilyPond input.\n"
 msgstr "%s in LilyPond-Quelltext umwandeln.\n"
 
-#: midi2ly.py:852
+#: midi2ly.py:851
 msgid "print absolute pitches"
 msgstr "Absolute Tonhöhen ausgeben"
 
-#: midi2ly.py:854 midi2ly.py:869
+#: midi2ly.py:853 midi2ly.py:868
 msgid "DUR"
 msgstr "DAUER"
 
-#: midi2ly.py:855
+#: midi2ly.py:854
 msgid "quantise note durations on DUR"
 msgstr "Notenlängen auf DAUER quantisieren"
 
-#: midi2ly.py:858
+#: midi2ly.py:857
 msgid "print explicit durations"
 msgstr "Explizite Notenlängen ausgeben"
 
-#: midi2ly.py:862
+#: midi2ly.py:861
 msgid "set key: ALT=+sharps|-flats; MINOR=1"
 msgstr "Tonart setzen: VORZ=+Kreuze|-B's; MOLL=1"
 
-#: midi2ly.py:863
+#: midi2ly.py:862
 msgid "ALT[:MINOR]"
 msgstr "VORZ[:MOLL]"
 
-#: midi2ly.py:868
+#: midi2ly.py:867
 msgid "quantise note starts on DUR"
 msgstr "Notenanfänge auf DAUER quantisieren"
 
-#: midi2ly.py:871
+#: midi2ly.py:870
 msgid "DUR*NUM/DEN"
 msgstr "DAUER*ZÄHLER/NENNER"
 
 # tuplet = Wertaufteilung nach: Peter Giger: Die Kunst des Rhythmus, Seite 25
-#: midi2ly.py:874
+#: midi2ly.py:873
 msgid "allow tuplet durations DUR*NUM/DEN"
 msgstr "Wertaufteilungsdauern DAUER*ZÄHLER/NENNER erlauben"
 
-#: midi2ly.py:886
+#: midi2ly.py:885
 msgid "treat every text as a lyric"
 msgstr "Jeden Text als Liedtext behandeln"
 
-#: midi2ly.py:889
+#: midi2ly.py:888
 msgid "Examples"
 msgstr "Beispiele"
 
@@ -894,96 +949,121 @@ msgstr "Beispiele"
 msgid "no files specified on command line."
 msgstr "Keine Dateien auf der Kommandozeile angegeben."
 
-#: musicxml2ly.py:213
+#: musicxml2ly.py:343
 msgid "Encountered file created by Dolet 3.4 for Sibelius, containing wrong beaming information. All beaming information in the MusicXML file will be ignored"
 msgstr "Die Datei wurde von Dolet 3.4 für SIbelius erstellt und enthält falsche Balkeninformation. Alle Balkeninformation in der MusicXML-Datei wird ignoriert"
 
-#: musicxml2ly.py:229 musicxml2ly.py:231
+#: musicxml2ly.py:346
+msgid "Encountered file created by Noteworthy Composer's nwc2xml, containing wrong beaming information. All beaming information in the MusicXML file will be ignored"
+msgstr "Die Datei wurde von Noteworthy·Composer's·nwc2xml erstellt und enthält falsche Balkeninformation. Alle Balkeninformation in der MusicXML-Datei wird ignoriert"
+
+#: musicxml2ly.py:362 musicxml2ly.py:364
 #, python-format
 msgid "Unprocessed PartGroupInfo %s encountered"
 msgstr "Unverarbeitetes PartGroupInfo %s angetroffen"
 
-#: musicxml2ly.py:471
+#: musicxml2ly.py:594
+#, python-format
+msgid "Encountered note at %s without type and duration (=%s)"
+msgstr "Note bei %s ohne Art und Dauer angetroffen (=%s)"
+
+#: musicxml2ly.py:613
 #, python-format
 msgid "Encountered rational duration with denominator %s, unable to convert to lilypond duration"
 msgstr "Rationale Dauer mit Nenner %s angetroffen, kann nicht in lilypond-Dauer umgewandelt werden"
 
-#: musicxml2ly.py:654
+#: musicxml2ly.py:868
+msgid "Unable to extract key signature!"
+msgstr "Kann die Tonart nicht extrahieren!"
+
+#: musicxml2ly.py:895
 #, python-format
-msgid "unknown mode %s, expecting 'major' or 'minor'"
-msgstr "unbekannter Modus %s, 'major' (Dur) oder 'minor' (Moll) wird erwartet"
+msgid "unknown mode %s, expecting 'major' or 'minor' or a church mode!"
+msgstr "unbekannter Modus %s, 'major' (Dur) oder 'minor' (Moll) oder eine Kirchentonart wird erwartet"
 
-#: musicxml2ly.py:692
+#: musicxml2ly.py:968
 #, python-format
 msgid "Encountered unprocessed marker %s\n"
 msgstr "Unverarbeiteter Marker %s angetroffen\n"
 
-#: musicxml2ly.py:786
+#: musicxml2ly.py:1062
 #, python-format
 msgid "unknown span event %s"
 msgstr "Unbekannte Spannerklasse »%s«"
 
-#: musicxml2ly.py:796
+#: musicxml2ly.py:1072
 #, python-format
 msgid "unknown span type %s for %s"
 msgstr "Unbekannter Spannertyp %s für %s"
 
-#: musicxml2ly.py:1222
+#: musicxml2ly.py:1498
 msgid "Unknown metronome mark, ignoring"
 msgstr "Unbekanntes Metronom-Zeichen, wird ignoriert"
 
 #. TODO: Implement the other (more complex) way for tempo marks!
-#: musicxml2ly.py:1227
+#: musicxml2ly.py:1503
 msgid "Metronome marks with complex relations (<metronome-note> in MusicXML) are not yet implemented."
 msgstr "Metronommakern mit komplexen Beziehungen (<metronome-note> in MusicXML) sind noch nicht implementiert."
 
-#: musicxml2ly.py:1383
+#: musicxml2ly.py:1703
 #, python-format
 msgid "Unable to convert chord type %s to lilypond."
 msgstr "Kann Akkordtyp %s nicht nach lilypond umwandeln"
 
-#: musicxml2ly.py:1529
+#: musicxml2ly.py:1849
 #, python-format
 msgid "drum %s type unknown, please add to instrument_drumtype_dict"
 msgstr "Schlagzeug %s Typ unbekannt, bitte zum instrument_drumtype_dict hinzufügen"
 
-#: musicxml2ly.py:1533
+#: musicxml2ly.py:1853
 msgid "cannot find suitable event"
 msgstr "passendes Ereignis kann nicht gefunden werden"
 
-#: musicxml2ly.py:1623
+#: musicxml2ly.py:1994
 #, python-format
-msgid "Negative skip %s"
-msgstr "Negativer Sprung (skip) %s"
+msgid "Negative skip %s (from position %s to %s)"
+msgstr "Negativer Sprung (skip) %s (von Position %s bis %s)"
 
-#: musicxml2ly.py:1775
+#: musicxml2ly.py:2134
 #, python-format
 msgid "Negative skip found: from %s to %s, difference is %s"
 msgstr "Negativer Sprung (skip) gefunden: von %s bis %s, Differenz ist %s"
 
-#: musicxml2ly.py:1802
+#: musicxml2ly.py:2205
 #, python-format
 msgid "unexpected %s; expected %s or %s or %s"
 msgstr "unerwartetes %s; %s oder %s oder %s erwartet"
 
-#: musicxml2ly.py:1912
-msgid "cannot have two simultaneous slurs"
-msgstr "Zwei gleichzeitige Legatobögen haben"
+#: musicxml2ly.py:2311
+msgid "Encountered closing slur, but no slur is open"
+msgstr "Auf schließenden Legatobogen gestoßen, aber es wurde kein Bogen begonnen"
 
-#: musicxml2ly.py:2050
+#: musicxml2ly.py:2314
+msgid "Cannot have two simultaneous (closing) slurs"
+msgstr "Zwei gleichzeitige (schließende) Legatobögen sind nicht möglich"
+
+#: musicxml2ly.py:2324
+msgid "Cannot have a slur inside another slur"
+msgstr "Ein Legatobogen innerhalb eines anderen Legatobogens ist nicht möglich"
+
+#: musicxml2ly.py:2327
+msgid "Cannot have two simultaneous slurs"
+msgstr "Zwei gleichzeitige Legatobögen sind nicht möglich"
+
+#: musicxml2ly.py:2455
 #, python-format
 msgid "cannot simultaneously have more than one mode: %s"
 msgstr "Kann nicht gleichzeitig mehr als einen Modus haben: %s"
 
-#: musicxml2ly.py:2148
+#: musicxml2ly.py:2553
 msgid "Converting to LilyPond expressions..."
 msgstr "In LilyPond-Ausdrücke umwandeln..."
 
-#: musicxml2ly.py:2159
+#: musicxml2ly.py:2564
 msgid "musicxml2ly [OPTION]... FILE.xml"
 msgstr "musicxml2ly [Optionen]... DATEI.xml"
 
-#: musicxml2ly.py:2161
+#: musicxml2ly.py:2566
 msgid ""
 "Convert MusicXML from FILE.xml to LilyPond input.\n"
 "If the given filename is -, musicxml2ly reads from the command line.\n"
@@ -991,7 +1071,7 @@ msgstr ""
 "Wandle MusicXML-Datei von DAT.xml nach LilyPond-Eingabe um.\n"
 "Wenn der angegebene Dateiname - ist, list musicxml2ly von der Kommandozeile.\n"
 
-#: musicxml2ly.py:2171
+#: musicxml2ly.py:2576
 msgid ""
 "Copyright (c) 2005--2008 by\n"
 "    Han-Wen Nienhuys <hanwen@xs4all.nl>,\n"
@@ -1003,71 +1083,71 @@ msgstr ""
 "····Jan·Nieuwenhuizen·<janneke@gnu.org>·and\n"
 "····Reinhold·Kainhofer·<reinhold@kainhofer.com>\n"
 
-#: musicxml2ly.py:2196
+#: musicxml2ly.py:2601
 msgid "use lxml.etree; uses less memory and cpu time"
 msgstr "lxml.etree verwenden; benötigt weniger Speicher und Prozessorzeit"
 
-#: musicxml2ly.py:2202
+#: musicxml2ly.py:2607
 msgid "input file is a zip-compressed MusicXML file"
 msgstr "Eingabedatei ist eine zip-komprimierte MusicXML-Datei"
 
-#: musicxml2ly.py:2208
+#: musicxml2ly.py:2613
 msgid "convert pitches in relative mode (default)"
 msgstr "Tonhöhen im relativen Modus konvertieren (Standard)"
 
-#: musicxml2ly.py:2213
+#: musicxml2ly.py:2618
 msgid "convert pitches in absolute mode"
 msgstr "Tonhöhen im absoluten Modus konvertieren"
 
-#: musicxml2ly.py:2216
+#: musicxml2ly.py:2621
 msgid "LANG"
 msgstr "SPRA"
 
-#: musicxml2ly.py:2218
+#: musicxml2ly.py:2623
 msgid "use a different language file 'LANG.ly' and corresponding pitch names, e.g. 'deutsch' for deutsch.ly"
 msgstr "benutze eine andere Sprach-Datei 'SPRA.ly' und entsprechende Notenbezeichnungen, etwa 'deutsch' für deutsch.ly"
 
-#: musicxml2ly.py:2224
+#: musicxml2ly.py:2629
 msgid "do not convert directions (^, _ or -) for articulations, dynamics, etc."
 msgstr "Richtungen (^, _ oder -) for Artikulationen, Dynamik usw. nicht konvertieren"
 
-#: musicxml2ly.py:2230
+#: musicxml2ly.py:2635
 msgid "do not convert beaming information, use lilypond's automatic beaming instead"
 msgstr "Balkeninformation nicht konvertieren, benutze die automatischen Balken von lilypond statt dessen"
 
-#: musicxml2ly.py:2238
+#: musicxml2ly.py:2643
 msgid "set output filename to FILE, stdout if -"
 msgstr "Ausgabedateiname auf DATEI setzen, stout if -"
 
-#: musicxml2ly.py:2320
+#: musicxml2ly.py:2726
 #, python-format
 msgid "unknown part in part-list: %s"
 msgstr "unbekannte Stimme in part-list (Stimmen-Liste): %s"
 
-#: musicxml2ly.py:2382
+#: musicxml2ly.py:2788
 msgid "Input is compressed, extracting raw MusicXML data from stdin"
 msgstr "Eingabedatei %s ist komprimiert, entpacke die MusicXML-Daten von stdin"
 
-#: musicxml2ly.py:2385
+#: musicxml2ly.py:2791
 #, python-format
 msgid "Input file %s is compressed, extracting raw MusicXML data"
 msgstr "Eingabedatei %s ist komprimiert, entpacke die MusicXML-Daten"
 
-#: musicxml2ly.py:2415
+#: musicxml2ly.py:2821
 msgid "Reading MusicXML from Standard input ..."
 msgstr "MusicXML von standard input lesen..."
 
-#: musicxml2ly.py:2417
+#: musicxml2ly.py:2823
 #, python-format
 msgid "Reading MusicXML from %s ..."
 msgstr "MusicXML aus %s lesen..."
 
-#: musicxml2ly.py:2450
+#: musicxml2ly.py:2856
 #, python-format
 msgid "Output to `%s'"
 msgstr "Ausgabe nach »%s«"
 
-#: musicxml2ly.py:2512
+#: musicxml2ly.py:2922
 #, python-format
 msgid "Unable to find input file %s"
 msgstr "Eingabedatei kann nicht gefunden werden %s"
@@ -1101,20 +1181,15 @@ msgstr "Programmierfehler: %s"
 msgid "continuing, cross fingers"
 msgstr "Fortsetzung, die Daumen drücken"
 
-#: accidental-engraver.cc:249
+#: accidental-engraver.cc:298
 #, c-format
 msgid "accidental typesetting list must begin with context-name: %s"
 msgstr "Versetzungszeichensatzliste muss mit Kontextnamen beginnen: %s"
 
-#: accidental-engraver.cc:276
+#: accidental-engraver.cc:328
 #, c-format
-msgid "ignoring unknown accidental rule: %s"
-msgstr "unbekannte Versetzungszeichenregel wird ignoriert: %s"
-
-#: accidental-engraver.cc:292
-#, c-format
-msgid "pair or context-name expected for accidental rule, found %s"
-msgstr "Paar oder Kontextname für Versetzungszeichenregel erwartet, %s gefunden"
+msgid "procedure or context-name expected for accidental rule, found %s"
+msgstr "Prozedur oder Kontextname für Versetzungszeichenregel erwartet, %s gefunden"
 
 #: accidental.cc:187
 #, c-format
@@ -1335,6 +1410,26 @@ msgstr "unbegrenztes (De-) Crescendo"
 msgid "unterminated extender"
 msgstr "unbegrenzter Textunterstrich"
 
+#: font-config-scheme.cc:140 font-config.cc:57
+#, c-format
+msgid "failed adding font directory: %s"
+msgstr "Schriftartverzeichnis konnte nicht hinzugefügt werden: %s"
+
+#: font-config-scheme.cc:142 font-config.cc:59
+#, c-format
+msgid "adding font directory: %s"
+msgstr "Schriftartverzeichnis wird hinzugefügt: %s"
+
+#: font-config-scheme.cc:156
+#, c-format
+msgid "failed adding font file: %s"
+msgstr "Schriftartdatei konnte nicht hinzugefügt werden: %s"
+
+#: font-config-scheme.cc:158
+#, c-format
+msgid "adding font file: %s"
+msgstr "Schriftartdatei wird hinzugefügt: %s"
+
 #: font-config.cc:28
 msgid "Initializing FontConfig..."
 msgstr "FontConfig wird initialisiert..."
@@ -1344,15 +1439,9 @@ msgstr "FontConfig wird initialisiert..."
 msgid "Rebuilding FontConfig cache %s, this may take a while..."
 msgstr "FontConfig-Cache %s wird erneuert. Dies kann eine Weile dauern..."
 
-#: font-config.cc:57
-#, c-format
-msgid "failed adding font directory: %s"
-msgstr "Schriftartverzeichnis konnte nicht hinzugefügt werden: %s"
-
-#: font-config.cc:59
-#, c-format
-msgid "adding font directory: %s"
-msgstr "Schriftartverzeichnis wird hinzugefügt: %s"
+#: font-config.cc:63
+msgid "Building font database."
+msgstr "Schriftartendatenbank aufbauen..."
 
 #: general-scheme.cc:202
 msgid "infinity or NaN encountered while converting Real number"
@@ -1362,7 +1451,7 @@ msgstr "Unendlichkeit oder NaN bei Umwandlung einer Realen Zahl gefunden"
 msgid "setting to zero"
 msgstr "auf Null gesetzt"
 
-#: general-scheme.cc:422 output-ps.scm:62
+#: general-scheme.cc:422 output-ps.scm:63
 msgid "Found infinity or nan in output. Substituting 0.0"
 msgstr "Unendlich oder NaN in Ausgabe gefunden. Wird durch 0.0 ersetzt"
 
@@ -1521,16 +1610,16 @@ msgstr "Zuweisung wird trotzdem durchgeführt"
 msgid "type check for `%s' failed; value `%s' must be of type `%s'"
 msgstr "Typprüfung für »%s« gescheitert; Wert »%s« muss vom Typ »%s« sein"
 
-#: lily-lexer.cc:251
+#: lily-lexer.cc:252
 msgid "include files are not allowed in safe mode"
 msgstr "eingefügte Dateien sind im abgesicherten Modus nicht erlaubt"
 
-#: lily-lexer.cc:270
+#: lily-lexer.cc:271
 #, c-format
 msgid "identifier name is a keyword: `%s'"
 msgstr "Bezeichnername ist ein Schlüsselwort: »%s«"
 
-#: lily-lexer.cc:285
+#: lily-lexer.cc:286
 #, c-format
 msgid "error at EOF: %s"
 msgstr "Fehler am Dateiende (EOF): %s"
@@ -1555,11 +1644,11 @@ msgstr "Init-Datei kann nicht gefunden werden: »%s«"
 msgid "Processing `%s'"
 msgstr "»%s« wird verarbeitet"
 
-#: lily-parser.cc:99
+#: lily-parser.cc:95
 msgid "Parsing..."
 msgstr "Analysieren..."
 
-#: lily-parser.cc:127
+#: lily-parser.cc:123
 msgid "braces do not match"
 msgstr "Klammern passen nicht zueinander"
 
@@ -1572,7 +1661,7 @@ msgstr "Stimme kann nicht gefunden werden: »%s«"
 msgid "Lyric syllable does not have note. Use \\lyricsto or associatedVoice."
 msgstr "Textsilbe hat keine Note. \\lyricsto oder associatedVoice verwenden."
 
-#: main.cc:100
+#: main.cc:97
 #, c-format
 msgid ""
 "This program is free software.  It is covered by the GNU General Public\n"
@@ -1585,7 +1674,7 @@ msgstr ""
 "Bedingungen weitergeben. Rufen Sie »%s --warranty« für weitere\n"
 "Informationen auf.\n"
 
-#: main.cc:106
+#: main.cc:103
 msgid ""
 "    This program is free software; you can redistribute it and/or\n"
 "modify it under the terms of the GNU General Public License version 2\n"
@@ -1616,11 +1705,11 @@ msgstr ""
 "Sie bitte an die Free Software Foundation, Inc., 59 Temple Place - Suite 330,\n"
 "Boston, MA 02111-1307, USA.\n"
 
-#: main.cc:137
+#: main.cc:134
 msgid "SYM[=VAL]"
 msgstr "SYM[=WERT]"
 
-#: main.cc:138
+#: main.cc:135
 msgid ""
 "set Scheme option SYM to VAL (default: #t).\n"
 "Use -dhelp for help."
@@ -1628,67 +1717,59 @@ msgstr ""
 "Scheme-Option SYM auf WERT setzen (Vorgabe: #t).\n"
 "-dhelp für Hilfe verwenden."
 
-#: main.cc:141
+#: main.cc:138
 msgid "EXPR"
 msgstr "AUSD"
 
-#: main.cc:141
+#: main.cc:138
 msgid "evaluate scheme code"
 msgstr "Scheme-Code auswerten"
 
 #. Bug in option parser: --output =foe is taken as an abbreviation
 #. for --output-format.
-#: main.cc:144
+#: main.cc:141
 msgid "FORMATs"
 msgstr "FORMATe"
 
-#: main.cc:144
+#: main.cc:141
 msgid "dump FORMAT,...  Also as separate options:"
 msgstr "dump FORMAT,... Auch als separate Optionen:"
 
-#: main.cc:145
-msgid "generate DVI (tex backend only)"
-msgstr "DVI erzeugen (nur TeX-Backend)"
-
-#: main.cc:146
+#: main.cc:142
 msgid "generate PDF (default)"
 msgstr "PDF erzeugen (Standard)"
 
-#: main.cc:147
+#: main.cc:143
 msgid "generate PNG"
 msgstr "PNG erzeugen"
 
-#: main.cc:148
+#: main.cc:144
 msgid "generate PostScript"
 msgstr "PostScript erzeugen"
 
-#: main.cc:149
-msgid "generate TeX (tex backend only)"
-msgstr "TeX erzeugen (nur TeX-Backend)"
-
-#: main.cc:151
+#: main.cc:146
 msgid "FIELD"
 msgstr "FELD"
 
-#: main.cc:151
+#: main.cc:146
 msgid ""
 "dump header field FIELD to file\n"
 "named BASENAME.FIELD"
 msgstr "Header-Feld FELD in Datei BASISNAME.FELD schreiben"
 
-#: main.cc:153
+#: main.cc:148
 msgid "add DIR to search path"
 msgstr "VERZ zum Suchpfad hinzufügen"
 
-#: main.cc:154
+#: main.cc:149
 msgid "use FILE as init file"
 msgstr "DATEI als Anfangsdatei verwenden"
 
-#: main.cc:156
+#: main.cc:151
 msgid "USER, GROUP, JAIL, DIR"
 msgstr "BENUTZER,GRUPPE,KERKER,VERZ"
 
-#: main.cc:156
+#: main.cc:151
 msgid ""
 "chroot to JAIL, become USER:GROUP\n"
 "and cd into DIR"
@@ -1696,15 +1777,15 @@ msgstr ""
 "chroot in KERKER, wird BENUTZER:GRUPPE\n"
 "und cd in VERZ"
 
-#: main.cc:159
+#: main.cc:154
 msgid "write output to FILE (suffix will be added)"
 msgstr "Ausgabe in DATEI schreiben (Endung wird hinzugefügt)"
 
-#: main.cc:160
+#: main.cc:155
 msgid "relocate using directory of lilypond program"
 msgstr "wiederfinden mit Hilfe des Lilypond-Programmverzeichnisses"
 
-#: main.cc:226
+#: main.cc:221
 #, c-format
 msgid ""
 "Copyright (c) %s by\n"
@@ -1714,82 +1795,77 @@ msgstr ""
 "%s und anderen."
 
 #. No version number or newline here.  It confuses help2man.
-#: main.cc:254
+#: main.cc:249
 #, c-format
 msgid "Usage: %s [OPTION]... FILE..."
 msgstr "Aufruf: %s [OPTION]... DATEI..."
 
-#: main.cc:256
+#: main.cc:251
 #, c-format
 msgid "Typeset music and/or produce MIDI from FILE."
 msgstr "Musiksatz und/oder MIDI aus DATEI erzeugen."
 
-#: main.cc:258
+#: main.cc:253
 #, c-format
 msgid "LilyPond produces beautiful music notation."
 msgstr "LilyPond erzeugt ansprechenden Notensatz."
 
-#: main.cc:260
+#: main.cc:255
 #, c-format
 msgid "For more information, see %s"
 msgstr "Für weitere Informationen siehe %s"
 
-#: main.cc:262
+#: main.cc:257
 #, c-format
 msgid "Options:"
 msgstr "Optionen:"
 
-#: main.cc:266
-#, c-format
-msgid "Report bugs via %s"
-msgstr "Melden Sie Fehler an %s"
-
-#: main.cc:312
+#: main.cc:311
 #, c-format
 msgid "expected %d arguments with jail, found: %u"
 msgstr "%d Argumente mit Kerker erwartet, %u gefunden"
 
-#: main.cc:326
+#: main.cc:325
 #, c-format
 msgid "no such user: %s"
 msgstr "kein solcher Benutzer: %s"
 
-#: main.cc:328
+#: main.cc:327
 #, c-format
 msgid "cannot get user id from user name: %s: %s"
 msgstr "Benutzer-ID von Benutzername kann nicht gefunden werden: %s: %s"
 
-#: main.cc:343
+#: main.cc:342
 #, c-format
 msgid "no such group: %s"
 msgstr "keine solche Gruppe: %s"
 
-#: main.cc:345
+#: main.cc:344
 #, c-format
 msgid "cannot get group id from group name: %s: %s"
 msgstr "Gruppen-ID kann nicht von Gruppenname ermittelt werden: %s: %s"
 
-#: main.cc:353
+#: main.cc:352
 #, c-format
 msgid "cannot chroot to: %s: %s"
 msgstr "kein chroot möglich nach: %s: %s"
 
-#: main.cc:360
+#: main.cc:359
 #, c-format
 msgid "cannot change group id to: %d: %s"
 msgstr "Gruppen-ID kann nicht geändert werden in: %d: %s"
 
-#: main.cc:366
+#: main.cc:365
 #, c-format
 msgid "cannot change user id to: %d: %s"
 msgstr "Benutzer-ID kann nicht geändert werden in: %d: %s"
 
-#: main.cc:372
+#: main.cc:371
 #, c-format
 msgid "cannot change working directory to: %s: %s"
 msgstr "aktuelles Verzeichnis kann nicht geändert werden in: %s: %s"
 
-#: main.cc:619
+#: main.cc:611
 #, c-format
 msgid "exception caught: %s"
 msgstr "Ausnahme gefangen: %s"
@@ -1874,9 +1950,13 @@ msgstr "Es kann nicht zum Schreiben geöffnet werden: %s: %s"
 msgid "cannot write to file: `%s'"
 msgstr "Es kann nicht in Datei geschrieben werden: »%s«"
 
-#: minimal-page-breaking.cc:42
-msgid "Computing page breaks..."
-msgstr "Seitenumbrüche werden berechnet..."
+#: minimal-page-breaking.cc:38 paper-score.cc:105
+msgid "Calculating line breaks..."
+msgstr "Zeilenumbrüche werden berechnet..."
+
+#: minimal-page-breaking.cc:42 layout-page-layout.scm:463
+msgid "Calculating page breaks..."
+msgstr "Zeilenumbrüche werden berechnet..."
 
 #: music-iterator.cc:171
 msgid "Sending non-event to context"
@@ -1892,7 +1972,7 @@ msgstr "Oktavenüberprüfung gescheitert; »%s« erwartet, »%s« gefunden"
 msgid "transposition by %s makes alteration larger than double"
 msgstr "Transponieren um %s erzeugt Vorzeichen größer als ein doppeltes"
 
-#: new-dynamic-engraver.cc:128
+#: new-dynamic-engraver.cc:129
 #, c-format
 msgid ""
 "unknown crescendo style: %s\n"
@@ -1970,21 +2050,21 @@ msgstr "FT_Get_Glyph_Name() Fehler: %s"
 msgid "Finding the ideal number of pages..."
 msgstr "Ideale Seitenanzahl wird gefunden..."
 
-#: optimal-page-breaking.cc:76
+#: optimal-page-breaking.cc:78
 msgid "Fitting music on 1 page..."
 msgstr "Musik wird auf eine Seite angepasst..."
 
-#: optimal-page-breaking.cc:78
+#: optimal-page-breaking.cc:80
 #, c-format
 msgid "Fitting music on %d pages..."
 msgstr "Musik wird auf %d Seiten angepasst..."
 
-#: optimal-page-breaking.cc:80
+#: optimal-page-breaking.cc:82
 #, c-format
 msgid "Fitting music on %d or %d pages..."
 msgstr "Musik wird auf %d oder %d Seiten angepasst..."
 
-#: optimal-page-breaking.cc:157 page-turn-page-breaking.cc:226
+#: optimal-page-breaking.cc:159 page-turn-page-breaking.cc:226
 #: paper-score.cc:146
 msgid "Drawing systems..."
 msgstr "Systeme erstellen..."
@@ -2055,10 +2135,6 @@ msgstr "erzwungener Umbruch war durch anderes Ereignis aufgehoben, sollten Takt
 msgid "Layout output to `%s'..."
 msgstr "Layout nach »%s« ausgeben..."
 
-#: paper-score.cc:105
-msgid "Calculating line breaks..."
-msgstr "Zeilenumbrüche werden berechnet..."
-
 #: paper-score.cc:118
 #, c-format
 msgid "Element count %d (spanners %d) "
@@ -2072,7 +2148,7 @@ msgstr "Vorverarbeitung der grafischen Elemente..."
 msgid "GUILE signaled an error for the expression beginning here"
 msgstr "GUILE signalisierte einen Fehler für den hier beginnenden Ausdruck"
 
-#: percent-repeat-engraver.cc:200
+#: percent-repeat-engraver.cc:202
 msgid "unterminated percent repeat"
 msgstr "unbegrenzte Prozentwiederholung"
 
@@ -2088,12 +2164,12 @@ msgstr "MIDI-Kanal zurückgesprungen"
 msgid "remapping modulo 16"
 msgstr "modulo 16 neu zuordnen"
 
-#: performance.cc:101
+#: performance.cc:100
 #, c-format
 msgid "MIDI output to `%s'..."
 msgstr "MIDI-Ausgabe nach »%s«..."
 
-#: phrasing-slur-engraver.cc:139
+#: phrasing-slur-engraver.cc:146
 msgid "unterminated phrasing slur"
 msgstr "nicht beendeter Phrasierungsbogen"
 
@@ -2260,7 +2336,7 @@ msgstr "unbegrenzter Legatobogen"
 msgid "cannot end slur"
 msgstr "Legatobogen kann nicht beendet werden"
 
-#: slur.cc:357
+#: slur.cc:359
 #, c-format
 msgid "Ignoring grob for slur: %s. avoid-slur not set?"
 msgstr "Grob für Legatobogen wird ignoriert: %s. avoid-slur nicht gesetzt?"
@@ -2297,12 +2373,12 @@ msgstr "vielleicht sollte die Eingabe mehrere Stimmen erstellen"
 msgid "weird stem size, check for narrow beams"
 msgstr "Eigenartige Notenhalslänge; auf enge Balken überprüfen"
 
-#: stem.cc:627
+#: stem.cc:623
 #, c-format
 msgid "flag `%s' not found"
 msgstr "Fähnchen »%s« nicht gefunden"
 
-#: stem.cc:638
+#: stem.cc:639
 #, c-format
 msgid "flag stroke `%s' not found"
 msgstr "Fähnchenstrich »%s« nicht gefunden"
@@ -2416,7 +2492,7 @@ msgstr "Volta-Klammer kann nicht beendet werden"
 
 #: volta-engraver.cc:110
 msgid "already have a volta spanner, ending that one prematurely"
-msgstr "Wiederholungskasten bereits vorhanden, wird vorzeitig beendet"
+msgstr "Wiederholungsklammer bereits vorhanden, wird vorzeitig beendet"
 
 #: volta-engraver.cc:114
 msgid "also already have an ended spanner"
@@ -2426,40 +2502,40 @@ msgstr "endende Textklammer auch bereits vorhanden"
 msgid "giving up"
 msgstr "aufgeben"
 
-#: parser.yy:729
+#: parser.yy:804
 msgid "\\paper cannot be used in \\score, use \\layout instead"
 msgstr "\\paper kann nicht in \\source verwendet werden; stattdessen \\layout verwenden"
 
-#: parser.yy:753
+#: parser.yy:828
 msgid "need \\paper for paper block"
 msgstr "Für Papier-Block wird \\paper benötigt"
 
-#: parser.yy:1224
+#: parser.yy:1299
 msgid "Grob name should be alphanumeric"
 msgstr "Grob-Name sollte alphanumerisch sein"
 
-#: parser.yy:1522
+#: parser.yy:1597
 msgid "second argument must be pitch list"
 msgstr "zweites Argument muss eine Tonhöhenliste sein"
 
-#: parser.yy:1549 parser.yy:1554 parser.yy:2026
+#: parser.yy:1624 parser.yy:1629 parser.yy:2101
 msgid "have to be in Lyric mode for lyrics"
 msgstr "muss in Liedtextmodus sein um Liedtext setzen zu können"
 
-#: parser.yy:1651
+#: parser.yy:1726
 msgid "expecting string as script definition"
 msgstr "Zeichenkette als Skriptdefinition erwartet"
 
-#: parser.yy:1806 parser.yy:1856
+#: parser.yy:1881 parser.yy:1931
 #, c-format
 msgid "not a duration: %d"
 msgstr "keine gültige Dauer: %d"
 
-#: parser.yy:1980
+#: parser.yy:2055
 msgid "have to be in Note mode for notes"
 msgstr "Muss im Notenmodus sein für Noten"
 
-#: parser.yy:2041
+#: parser.yy:2116
 msgid "have to be in Chord mode for chords"
 msgstr "Muss im Akkordmodus sein für Akkorde"
 
@@ -2519,26 +2595,26 @@ msgstr "Klammer am Ende des Auszugs gefunden. Haben Sie ein Leerzeichen vergesse
 msgid "invalid character: `%c'"
 msgstr "Ungültiges Zeichen: »%c«"
 
-#: lexer.ll:803 lexer.ll:804
+#: lexer.ll:803
 #, c-format
 msgid "unknown escaped string: `\\%s'"
 msgstr "Ungültige Fluchtsequenz: »\\%s«"
 
-#: lexer.ll:910 lexer.ll:911
+#: lexer.ll:910
 #, c-format
 msgid "file too old: %s (oldest supported: %s)"
 msgstr "Datei zu alt: %s (älteste unterstützte: %s)"
 
-#: lexer.ll:911 lexer.ll:912
+#: lexer.ll:911
 msgid "consider updating the input with the convert-ly script"
 msgstr "Erwägen Sie die Aktualisierung der Eingabe mit dem Skript convert-ly"
 
-#: lexer.ll:917 lexer.ll:918
+#: lexer.ll:917
 #, c-format
 msgid "program too old: %s (file requires: %s)"
 msgstr "Programm zu alt: %s (Datei erfordert: %s)"
 
-#: backend-library.scm:19 lily.scm:777 ps-to-png.scm:58
+#: backend-library.scm:19 lily.scm:761 ps-to-png.scm:58
 #, scheme-format
 msgid "Invoking `~a'..."
 msgstr "»~s« wird aufgerufen..."
@@ -2548,7 +2624,7 @@ msgstr "»~s« wird aufgerufen..."
 msgid "`~a' failed (~a)"
 msgstr "»~a« gescheitert (~a)"
 
-#: backend-library.scm:116 framework-tex.scm:344 framework-tex.scm:369
+#: backend-library.scm:116
 #, scheme-format
 msgid "Converting to `~a'..."
 msgstr "Konvertierung nach »~a«..."
@@ -2582,16 +2658,16 @@ msgstr "Ereignisklasse ~A scheint ungenutzt zu sein"
 msgid "translator listens to nonexisting event class ~A"
 msgstr "Übersetzer hört auf fehlende Ereignisklasse ~A"
 
-#: define-markup-commands.scm:599
+#: define-markup-commands.scm:569
 msgid "no systems found in \\score markup, does it have a \\layout block?"
 msgstr "keine Systeme in \\score-Markup gefunden, hat es einen \\layout-Block?"
 
-#: define-markup-commands.scm:2428
+#: define-markup-commands.scm:2387
 #, scheme-format
 msgid "Cannot find glyph ~a"
-msgstr "Kann ein Zeichen ~a finden"
+msgstr "Kann kein Zeichen ~a finden"
 
-#: define-markup-commands.scm:2737
+#: define-markup-commands.scm:2696
 #, scheme-format
 msgid "not a valid duration string: ~a"
 msgstr "keine gültige Dauer: ~a"
@@ -2612,8 +2688,8 @@ msgid "unknown repeat type `~S'"
 msgstr "unbekannter Wiederholungstyp »~S«"
 
 #: define-music-types.scm:693
-msgid "See music-types.scm for supported repeats"
-msgstr "Siehe music-types.scm für unterstützte Wiederholungen"
+msgid "See define-music-types.scm for supported repeats"
+msgstr "Siehe define-music-types.scm für unterstützte Wiederholungen"
 
 #: document-backend.scm:99
 #, scheme-format
@@ -2630,57 +2706,57 @@ msgstr "Schnittstelle für Eigenschaft ~S kann nicht gefunden werden"
 msgid "unknown Grob interface: ~S"
 msgstr "Unbekannte Grob-Schnittstelle: ~S"
 
-#: documentation-lib.scm:48
+#: documentation-lib.scm:49
 #, scheme-format
 msgid "Processing ~S..."
 msgstr "~S wird verarbeitet..."
 
-#: documentation-lib.scm:164
+#: documentation-lib.scm:165
 #, scheme-format
 msgid "Writing ~S..."
 msgstr "~S wird geschrieben..."
 
-#: documentation-lib.scm:186
+#: documentation-lib.scm:187
 #, scheme-format
 msgid "cannot find description for property ~S (~S)"
 msgstr "Beschreibung für Eigenschaft ~S (~S) kann nicht gefunden werden"
 
+#: flag-styles.scm:145
+#, scheme-format
+msgid "flag stroke `~a' or `~a' not found"
+msgstr "Fähnchenstrich »~a«·or·»~a« nicht gefunden"
+
 #: framework-eps.scm:90
 #, scheme-format
 msgid "Writing ~a..."
 msgstr "~a wird geschrieben..."
 
-#: framework-ps.scm:282
+#: framework-ps.scm:277
 #, scheme-format
 msgid "cannot embed ~S=~S"
 msgstr "~S=~S kann nicht eingebettet werden"
 
-#: framework-ps.scm:335
+#: framework-ps.scm:330
 #, scheme-format
 msgid "cannot extract file matching ~a from ~a"
 msgstr "Eine zu ~a passende Datei kann nicht aus ~a gewonnen werden"
 
-#: framework-ps.scm:352
+#: framework-ps.scm:347
 #, scheme-format
 msgid "do not know how to embed ~S=~S"
 msgstr "Unbekannte Einbettung ~S=~S"
 
-#: framework-ps.scm:383
+#: framework-ps.scm:378
 #, scheme-format
 msgid "do not know how to embed font ~s ~s ~s"
 msgstr "Unbekannte Schriftsatzeinbettung ~s ~s ~s"
 
-#: framework-ps.scm:753
+#: framework-ps.scm:748
 #, scheme-format
 msgid "cannot convert <stdout> to ~S"
 msgstr "<stdout> kann nicht in ~S konvertiert werden"
 
-#: framework-ps.scm:772 framework-ps.scm:775
-#, scheme-format
-msgid "cannot generate ~S using the postscript back-end"
-msgstr "~S kann nicht mit PostScript-Backend erzeugt werden"
-
-#: framework-ps.scm:782
+#: framework-ps.scm:771
 msgid ""
 "\n"
 "The PostScript backend does not support the system-by-system \n"
@@ -2710,11 +2786,6 @@ msgstr ""
 "entfernt werden\n"
 "\n"
 
-#: framework-tex.scm:361
-#, scheme-format
-msgid "TeX file name must not contain whitespace: `~a'"
-msgstr "TeX-Dateiname darf keine Leerzeichen enthalten: »~a«"
-
 #: graphviz.scm:53
 #, scheme-format
 msgid "Writing graph `~a'..."
@@ -2730,44 +2801,40 @@ msgstr "Fehler bei Balkenzuschnitt. (~S,~S) erwartet, ~S gefunden."
 msgid "Error in beam quanting.  Expected ~S 0, found ~S."
 msgstr "Fehler bei Balkenzuschnitt. ~S 0 erwartet, ~S gefunden."
 
-#: layout-page-layout.scm:124
+#: layout-page-layout.scm:126
 msgid "Can't fit systems on page -- ignoring between-system-padding"
 msgstr "Systeme passen nicht auf Seite -- Zwischen-System-Abstand wird ignoriert"
 
-#: layout-page-layout.scm:458
-msgid "Calculating page breaks..."
-msgstr "Zeilenumbrüche werden berechnet..."
-
-#: lily-library.scm:588
+#: lily-library.scm:602
 #, scheme-format
 msgid "unknown unit: ~S"
 msgstr "unbekannte Einheit: ~S"
 
-#: lily-library.scm:622
+#: lily-library.scm:636
 #, scheme-format
 msgid "no \\version statement found, please add~afor future compatibility"
 msgstr "keine \\version-Anweisung gefunden, ~a für zukünftige Kompatibilität hinzufügen"
 
-#: lily-library.scm:630
+#: lily-library.scm:644
 msgid "old relative compatibility not used"
 msgstr "alte relative Kompatibilität nicht verwendet"
 
-#: lily.scm:178
+#: lily.scm:179
 #, scheme-format
 msgid "cannot find: ~A"
 msgstr "~A kann nicht gefunden werden"
 
-#: lily.scm:243
+#: lily.scm:228
 #, scheme-format
 msgid "wrong type for argument ~a.  Expecting ~a, found ~s"
 msgstr "falscher Typ für Argument ~a; ~a erwartet, ~s gefunden"
 
-#: lily.scm:641
+#: lily.scm:625
 #, scheme-format
 msgid "job ~a terminated with signal: ~a"
 msgstr "Auftrag ~a mit Signal ~a beendet"
 
-#: lily.scm:644
+#: lily.scm:628
 #, scheme-format
 msgid ""
 "logfile ~a (exit ~a):\n"
@@ -2776,12 +2843,12 @@ msgstr ""
 "Logdatei ~a (Ende ~a):\n"
 "~a"
 
-#: lily.scm:669 lily.scm:767
+#: lily.scm:653 lily.scm:751
 #, scheme-format
 msgid "failed files: ~S"
 msgstr "gescheiterte Dateien: ~S"
 
-#: lily.scm:757
+#: lily.scm:741
 #, scheme-format
 msgid "Redirecting output to ~a..."
 msgstr "Ausgabeumleitung nach ~a..."
@@ -2790,7 +2857,7 @@ msgstr "Ausgabeumleitung nach ~a..."
 msgid "Music head function must return Music object"
 msgstr "Musikkopf-Funktion muss Musikobjekt zurückliefern."
 
-#: ly-syntax-constructors.scm:150
+#: ly-syntax-constructors.scm:154
 #, scheme-format
 msgid "Invalid property operation ~a"
 msgstr "Ungültige Eigenschaftsoperation ~a"
@@ -2840,12 +2907,12 @@ msgstr "Taktüberprüfung gescheitert. bei ~a erwartet, stattdessen bei ~a"
 msgid "cannot find quoted music: `~S'"
 msgstr "zitierte Musik »~S« kann nicht gefunden werden"
 
-#: music-functions.scm:990
+#: music-functions.scm:1198
 #, scheme-format
 msgid "unknown accidental style: ~S"
 msgstr "unbekannter Versetzungszeichenstil: ~S"
 
-#: output-ps.scm:285
+#: output-ps.scm:294
 msgid "utf-8-string encountered in PS backend"
 msgstr "UTF-8-Zeichenkette in PostScript-Backend gefunden"
 
@@ -2859,28 +2926,23 @@ msgstr "nicht definiert: ~S"
 msgid "cannot decypher Pango description: ~a"
 msgstr "Pango-Beschreibung kann nicht entschlüsselt werden: ~a"
 
-#: output-tex.scm:96
-#, scheme-format
-msgid "cannot find ~a in ~a"
-msgstr "~a kann nicht in ~a gefunden werden"
-
-#: paper.scm:86
+#: paper.scm:104
 msgid "set-global-staff-size: not in toplevel scope"
 msgstr "set-global-staff-size: Nicht auf höchster Ebene im Gültigkeitsbereich"
 
-#: paper.scm:226
+#: paper.scm:244
 #, scheme-format
 msgid "This is not a \\layout {} object, ~S"
 msgstr "Dies ist kein \\layout {} Objekt, ~S"
 
-#: paper.scm:238
+#: paper.scm:256
 #, scheme-format
-msgid "Unknown papersize: ~a"
+msgid "Unknown paper size: ~a"
 msgstr "Unbekannte Papiergröße: ~a"
 
 #. TODO: should raise (generic) exception with throw, and catch
 #. that in parse-scm.cc
-#: paper.scm:253
+#: paper.scm:271
 msgid "Must use #(set-paper-size .. ) within \\paper { ... }"
 msgstr "#(set-paper-size ..) muss innerhalb von \\paper { ... } verwendet werden"
 
@@ -2904,6 +2966,36 @@ msgstr "~a mit Rückgabewert ~S beendet"
 msgid "assertion failed: ~S"
 msgstr "Behauptung gescheitert: ~S"
 
+#~ msgid "requested time signature, but time sig is unknown"
+#~ msgstr "Taktangabe angefragt, aber Taktart ist unbekannt"
+
+#~ msgid "Report bugs via"
+#~ msgstr "Melden Sie Fehler an"
+
+#~ msgid "Negative skip %s"
+#~ msgstr "Negativer Sprung (skip) %s"
+
+#~ msgid "ignoring unknown accidental rule: %s"
+#~ msgstr "unbekannte Versetzungszeichenregel wird ignoriert: %s"
+
+#~ msgid "generate DVI (tex backend only)"
+#~ msgstr "DVI erzeugen (nur TeX-Backend)"
+
+#~ msgid "generate TeX (tex backend only)"
+#~ msgstr "TeX erzeugen (nur TeX-Backend)"
+
+#~ msgid "Computing page breaks..."
+#~ msgstr "Seitenumbrüche werden berechnet..."
+
+#~ msgid "cannot generate ~S using the postscript back-end"
+#~ msgstr "~S kann nicht mit PostScript-Backend erzeugt werden"
+
+#~ msgid "TeX file name must not contain whitespace: `~a'"
+#~ msgstr "TeX-Dateiname darf keine Leerzeichen enthalten: »~a«"
+
+#~ msgid "cannot find ~a in ~a"
+#~ msgstr "~a kann nicht in ~a gefunden werden"
+
 #~ msgid "Bugs"
 #~ msgstr "Fehler"
 
index 9a04639c0ceddcf17216219c7e6e2a5cfc5dd396..e93b1ddf46cb1e19d68b4775dc12da29c4b69fa6 100644 (file)
--- a/po/es.po
+++ b/po/es.po
@@ -1,17 +1,19 @@
-# translation of lilypond-2.11.57.po to Spanish
+# translation of lilypond-2.12.0.po to Español
 # Spanish translation of GNU Lilypond - http://lilypond.org
 # Copyright (C) 2002, 2007, 2008 Free Software Foundation, Inc.
 #
 # This file is distributed under the same license as the lilypond package.
+#
 # Quique <quique@sindominio.net>, 2002, 2004.
 # Daniel Tonda <daniel dot tonda (at) gmail dot com>, 2006.
 # Francisco Vila <francisco.vila@hispalinux.es>, 2007, 2008.
+# This file is distributed under the same license as the lilypond package.
 msgid ""
 msgstr ""
-"Project-Id-Version: lilypond-2.11.57\n"
+"Project-Id-Version: lilypond-2.12.0\n"
 "Report-Msgid-Bugs-To: http://post.gmane.org/post.php?group=gmane.comp.gnu.lilypond.bugs\n"
-"POT-Creation-Date: 2008-08-23 18:49+0200\n"
-"PO-Revision-Date: 2008-08-31 00:52+0200\n"
+"POT-Creation-Date: 2008-12-20 11:58+0100\n"
+"PO-Revision-Date: 2008-12-30 01:36+0100\n"
 "Last-Translator: Francisco Vila <francisco.vila@hispalinux.es>\n"
 "Language-Team: Spanish <es@li.org>\n"
 "MIME-Version: 1.0\n"
@@ -34,7 +36,7 @@ msgstr "Consulte el manual para ver los detalles, y efectúe una actualización
 msgid "%s has been replaced by %s"
 msgstr "%s se ha sustituido por %s"
 
-#: convertrules.py:24 musicexp.py:16 convert-ly.py:48 lilypond-book.py:82
+#: convertrules.py:24 musicexp.py:16 convert-ly.py:50 lilypond-book.py:94
 #: warn.cc:48 input.cc:90
 #, c-format, python-format
 msgid "warning: %s"
@@ -425,6 +427,22 @@ msgstr "El eje y la dirección ahora van antes de los marcados:\n"
 msgid "\\put-adjacent axis dir markup markup."
 msgstr "\\put-adjacent eje dirección marcado marcado."
 
+#: convertrules.py:2832
+msgid "re-definition of InnerStaffGroup.\n"
+msgstr "redefinición de InnerStaffGroup.\n"
+
+#: convertrules.py:2838
+msgid "re-definition of InnerChoirStaff.\n"
+msgstr "redefinición de InnerChoirStaff.\n"
+
+#: convertrules.py:2851
+msgid "stringTuning must be added to addChordShape call.\n"
+msgstr "stringTuning se debe añadir a la llamada a addChordShape.\n"
+
+#: convertrules.py:2857
+msgid "stringTuning must be added to chord-shape call.\n"
+msgstr "stringTuning se debe añadir a la llamada a chord-shape.\n"
+
 #: fontextract.py:25
 #, python-format
 msgid "Scanning %s"
@@ -440,56 +458,90 @@ msgstr "Se ha extraído %s"
 msgid "Writing fonts to %s"
 msgstr "Escribiendo las tipografías en %s"
 
-#: lilylib.py:101 lilylib.py:152
+#: lilylib.py:91 lilylib.py:142
 #, python-format
 msgid "Invoking `%s'"
 msgstr "Invocando «%s»"
 
-#: lilylib.py:103 lilylib.py:154
+#: lilylib.py:93 lilylib.py:144
 #, python-format
 msgid "Running %s..."
 msgstr "Ejecutando %s..."
 
-#: lilylib.py:219
+#: lilylib.py:209
 #, python-format
 msgid "Usage: %s"
 msgstr "uso: %s"
 
-#: musicexp.py:585
+#: musicexp.py:215 musicexp.py:220
+msgid "Language does not support microtones contained in the piece"
+msgstr "El lenguaje no contempla los microtonos de la pieza"
+
+#: musicexp.py:482
+msgid "Tuplet brackets of curved shape are not correctly implemented"
+msgstr "Los corchetes curvos de grupo especial no están implementados correctamente"
+
+#. TODO: Implement this using actual_type and normal_type!
+#: musicexp.py:511
+msgid "Tuplet brackets displaying both note durations are not implemented, using default"
+msgstr "Los corchetes de grupo especial que muestran las dos duraciones de nota no están implementados, se usa el predeterminado"
+
+#: musicexp.py:656
 #, python-format
 msgid "unable to set the music %(music)s for the repeat %(repeat)s"
 msgstr "no se ha podido establecer el fragmento de música %(music)s para la repetición %(repeat)s"
 
-#: musicexp.py:594
+#: musicexp.py:665
 msgid "encountered repeat without body"
 msgstr "se ha encontrado una repetición sin cuerpo"
 
-#: musicxml.py:13 convert-ly.py:51 lilypond-book.py:85 warn.cc:54 input.cc:96
+#. no self.elements!
+#: musicexp.py:835
+#, python-format
+msgid "Grace note with no following music: %s"
+msgstr "Nota de adorno sin música que le siga: %s"
+
+#: musicexp.py:997
+#, python-format
+msgid "Invalid octave shift size found: %s. Using no shift."
+msgstr "Se ha encontrado un tamaño de desplazamiento de octava no válido: %s. No se usará ningún desplazamiento."
+
+#: musicexp.py:1455
+#, python-format
+msgid "Unable to convert alteration %s to a lilypond expression"
+msgstr "No se pudo convertir la alteración %s a una expresión de lilypond"
+
+#: musicxml.py:13 convert-ly.py:53 lilypond-book.py:97 warn.cc:54 input.cc:96
 #: input.cc:104
 #, c-format, python-format
 msgid "error: %s"
 msgstr "error: %s"
 
-#: musicxml.py:298
-msgid "requested time signature, but time sig is unknown"
-msgstr "se requiere una indicación de compás, pero ésta es desconocida"
+#. TODO: Handle pieces without a time signature!
+#: musicxml.py:357
+msgid "Senza-misura time signatures are not yet supported!"
+msgstr "¡Los compases senza-misura no están contemplados aún!"
+
+#: musicxml.py:375
+msgid "Unable to interpret time signature! Falling back to 4/4."
+msgstr "¡Ha sido imposible interpretar la indicación de compás! Se va a usar 4/4 como opción de retroceso."
 
-#: musicxml.py:354
+#: musicxml.py:431
 #, python-format
-msgid "Encountered note at %s with %s duration (no <type> element):"
-msgstr "Se ha encontrado una nota en %s con la duración %s (sin ningún elemento de <type> ):"
+msgid "Key alteration octave given for a non-existing alteration nr. %s, available numbers: %s!"
+msgstr "¡Se ha proporcionado una octava de alteración de tonalidad para un número de alteraciones inexistente %s, números disponibles: %s!"
 
-#: musicxml.py:388
+#: musicxml.py:519
 #, python-format
 msgid "Unable to find instrument for ID=%s\n"
 msgstr "No se ha podido encontrar el instrumento con el ID=%s\n"
 
-#: abc2ly.py:1342 convert-ly.py:72 lilypond-book.py:109 midi2ly.py:846
+#: abc2ly.py:1341 convert-ly.py:74 lilypond-book.py:121 midi2ly.py:845
 #, python-format
 msgid "%s [OPTION]... FILE"
 msgstr "%s [OPCIÓN]... ARCHIVO"
 
-#: abc2ly.py:1343
+#: abc2ly.py:1342
 #, python-format
 msgid ""
 "abc2ly converts ABC music files (see\n"
@@ -498,34 +550,39 @@ msgstr ""
 "abc2ly convierte archivos de música de ABC\n"
 "(véase %s) en código de entrada de LilyPond.\n"
 
-#: abc2ly.py:1351 convert-ly.py:79 etf2ly.py:1190 lilypond-book.py:195
-#: midi2ly.py:882 musicxml2ly.py:2185 main.cc:161
+#: abc2ly.py:1350 convert-ly.py:81 etf2ly.py:1190 lilypond-book.py:207
+#: midi2ly.py:881 musicxml2ly.py:2590 main.cc:156
 msgid "show version number and exit"
 msgstr "mostrar el número de versión y salir"
 
-#: abc2ly.py:1355 convert-ly.py:83 etf2ly.py:1186 lilypond-book.py:126
-#: midi2ly.py:861 musicxml2ly.py:2167 main.cc:150
+#: abc2ly.py:1354 convert-ly.py:85 etf2ly.py:1186 lilypond-book.py:138
+#: midi2ly.py:860 musicxml2ly.py:2572 main.cc:145
 msgid "show this help and exit"
 msgstr "mostrar esta ayuda y salir"
 
-#: abc2ly.py:1357 etf2ly.py:1191 midi2ly.py:865
+#: abc2ly.py:1356 etf2ly.py:1191 midi2ly.py:864
 msgid "write output to FILE"
 msgstr "escribir la salida en el ARCHIVO"
 
-#: abc2ly.py:1359
+#: abc2ly.py:1358
 msgid "be strict about success"
 msgstr "ser estricto respecto al éxito"
 
-#: abc2ly.py:1361
+#: abc2ly.py:1360
 msgid "preserve ABC's notion of beams"
 msgstr "preservar la noción de las barras de ABC"
 
-#: abc2ly.py:1363 convert-ly.py:120 etf2ly.py:1199 lilypond-book.py:202
-#: midi2ly.py:894 musicxml2ly.py:2240
-msgid "Report bugs via"
-msgstr "Informe de los fallos a través de"
+#. Translators, please translate this string as
+#. "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:1363 convert-ly.py:123 etf2ly.py:1200 lilypond-book.py:214
+#: midi2ly.py:894 musicxml2ly.py:2646 main.cc:265
+#, c-format, python-format
+msgid "Report bugs via %s"
+msgstr "Informe de los fallos a %s"
 
-#: convert-ly.py:31
+#: convert-ly.py:33
 msgid ""
 "Update LilyPond input to newer version.  By default, update from the\n"
 "version taken from the \\version command, to the current LilyPond version."
@@ -534,72 +591,72 @@ msgstr ""
 "De manera predeterminada, actualizarlo desde la versión sacada de\n"
 "la instrucción \\version, a la versión actual de LilyPond."
 
-#: convert-ly.py:33 lilypond-book.py:59
+#: convert-ly.py:35 lilypond-book.py:71
 msgid "Examples:"
 msgstr "Ejemplos:"
 
-#: convert-ly.py:67 etf2ly.py:1173 lilypond-book.py:105 midi2ly.py:77
+#: convert-ly.py:69 etf2ly.py:1173 lilypond-book.py:117 midi2ly.py:76
 msgid "Distributed under terms of the GNU General Public License."
 msgstr "Distribuido bajo los términos de la Licencia Pública General de GNU."
 
-#: convert-ly.py:68 etf2ly.py:1174 lilypond-book.py:106 midi2ly.py:78
+#: convert-ly.py:70 etf2ly.py:1174 lilypond-book.py:118 midi2ly.py:77
 msgid "It comes with NO WARRANTY."
 msgstr "Se distribuye SIN NINGUNA GARANTÍA."
 
-#: convert-ly.py:87 convert-ly.py:114
+#: convert-ly.py:89 convert-ly.py:116
 msgid "VERSION"
 msgstr "VERSIÓN"
 
-#: convert-ly.py:89
+#: convert-ly.py:91
 msgid "start from VERSION [default: \\version found in file]"
 msgstr "comenzar a partir de VERSIÓN [predeterminado: \\version del archivo]"
 
-#: convert-ly.py:92
+#: convert-ly.py:94
 msgid "edit in place"
 msgstr "editar in situ"
 
-#: convert-ly.py:96
+#: convert-ly.py:98
 msgid "do not add \\version command if missing"
 msgstr "no añadir la instrucción \\version si no está presente"
 
-#: convert-ly.py:102
+#: convert-ly.py:104
 #, python-format
 msgid "force updating \\version number to %s"
 msgstr "forzar la actualización del número de  \\version a %s"
 
-#: convert-ly.py:108
+#: convert-ly.py:110
 #, python-format
 msgid "show rules [default: -f 0, -t %s]"
 msgstr "mostrar las reglas [predeterminado: -f 0, -t %s]"
 
-#: convert-ly.py:113
+#: convert-ly.py:115
 #, python-format
 msgid "convert to VERSION [default: %s]"
 msgstr "convertir a VERSIÓN [predeterminado: %s]"
 
-#: convert-ly.py:160
+#: convert-ly.py:163
 msgid "Applying conversion: "
 msgstr "Aplicando la conversión: "
 
-#: convert-ly.py:173
+#: convert-ly.py:176
 msgid "Error while converting"
 msgstr "Error al convertir"
 
-#: convert-ly.py:175
-msgid "Stopping at last succesful rule"
-msgstr "Detención en la primera regla satisfactoria"
+#: convert-ly.py:178
+msgid "Stopping at last successful rule"
+msgstr "Detención en la última regla satisfactoria"
 
-#: convert-ly.py:196
+#: convert-ly.py:199
 #, python-format
 msgid "Processing `%s'... "
 msgstr "Procesando «%s»... "
 
-#: convert-ly.py:286 relocate.cc:362 source-file.cc:59
+#: convert-ly.py:289 relocate.cc:362 source-file.cc:59
 #, c-format, python-format
 msgid "cannot open file: `%s'"
 msgstr "no se puede abrir el archivo: «%s»"
 
-#: convert-ly.py:293
+#: convert-ly.py:296
 #, python-format
 msgid "cannot determine version for `%s'.  Skipping"
 msgstr "no se puede determinar la versión de «%s»;  se salta"
@@ -618,275 +675,275 @@ msgstr ""
 "Finale de Coda Music Technology.  etf2ly convierte un subconjunto de ETF a un\n"
 "archivo de LilyPond listo para usar.\n"
 
-#: etf2ly.py:1192 midi2ly.py:866 musicxml2ly.py:2233 main.cc:154 main.cc:159
+#: etf2ly.py:1192 midi2ly.py:865 musicxml2ly.py:2638 main.cc:149 main.cc:154
 msgid "FILE"
 msgstr "ARCHIVO"
 
-#: etf2ly.py:1194 lilypond-book.py:198 midi2ly.py:883 main.cc:163
+#: etf2ly.py:1194 lilypond-book.py:210 midi2ly.py:882 main.cc:158
 msgid "show warranty and copyright"
 msgstr "mostrar los avisos de garantía y de copyright"
 
-#: lilypond-book.py:57
+#: lilypond-book.py:69
 msgid "Process LilyPond snippets in hybrid HTML, LaTeX, texinfo or DocBook document."
 msgstr "Procesar los fragmentos de LylyPond en un documento de HTML híbrido, LaTeX, texinfo o DocBook."
 
-#: lilypond-book.py:64
+#: lilypond-book.py:76
 msgid "BOOK"
 msgstr "LIBRO"
 
-#: lilypond-book.py:72
+#: lilypond-book.py:84
 #, python-format
 msgid "Exiting (%d)..."
 msgstr "Saliendo (%d)..."
 
-#: lilypond-book.py:103
+#: lilypond-book.py:115
 #, python-format
 msgid "Copyright (c) %s by"
 msgstr "Copyright (c) %s por"
 
-#: lilypond-book.py:113
+#: lilypond-book.py:125
 msgid "FILTER"
 msgstr "FILTRO"
 
-#: lilypond-book.py:116
+#: lilypond-book.py:128
 msgid "pipe snippets through FILTER [default: `convert-ly -n -']"
 msgstr "redirigir fragmentos a través de FILTRO [predeterminado: `convert-ly -n -']"
 
-#: lilypond-book.py:120
+#: lilypond-book.py:132
 msgid "use output format FORMAT (texi [default], texi-html, latex, html, docbook)"
 msgstr "usar el formato de salida FORMATO (texi [predeterminado], texi-html, latex, html, docbook)"
 
-#: lilypond-book.py:121
+#: lilypond-book.py:133
 msgid "FORMAT"
 msgstr "FORMATO"
 
-#: lilypond-book.py:128
+#: lilypond-book.py:140
 msgid "add DIR to include path"
 msgstr "añadir DIRECTORIO a la ruta de inclusión"
 
-#: lilypond-book.py:129 lilypond-book.py:136 lilypond-book.py:154
-#: lilypond-book.py:160 lilypond-book.py:166 lilypond-book.py:172 main.cc:153
+#: lilypond-book.py:141 lilypond-book.py:148 lilypond-book.py:166
+#: lilypond-book.py:172 lilypond-book.py:178 lilypond-book.py:184 main.cc:148
 msgid "DIR"
 msgstr "DIRECTORIO"
 
-#: lilypond-book.py:134
+#: lilypond-book.py:146
 msgid "format Texinfo output so that Info will look for images of music in DIR"
 msgstr "formatear la salida de Texinfo de manera que Info busque las imágenes de música en DIRECTORIO"
 
-#: lilypond-book.py:141
+#: lilypond-book.py:153
 msgid "run executable PROG instead of latex"
 msgstr "ejecutar el programa PROGRAMA en lugar de latex"
 
-#: lilypond-book.py:142
+#: lilypond-book.py:154
 msgid "PROG"
 msgstr "PROGRAMA"
 
-#: lilypond-book.py:147
+#: lilypond-book.py:159
 msgid "PAD"
 msgstr "RELLENAR"
 
-#: lilypond-book.py:149
+#: lilypond-book.py:161
 msgid "pad left side of music to align music inspite of uneven bar numbers (in mm)"
 msgstr "rellenar el lado izquierdo de la música para alinear la música aunque haya un número desigual de compases (en mm)"
 
-#: lilypond-book.py:153
+#: lilypond-book.py:165
 msgid "write output to DIR"
 msgstr "escribir la salida en el DIRECTORIO"
 
-#: lilypond-book.py:159
+#: lilypond-book.py:171
 msgid "do not fail if no lilypond output is found"
 msgstr "no fracasar si no se encuentra ninguna salida de lilypond"
 
-#: lilypond-book.py:165
+#: lilypond-book.py:177
 msgid "do not fail if no PNG images are found for EPS files"
 msgstr "no fracasar si no se encuentra ninguna imagen PNG para los archivos EPS"
 
-#: lilypond-book.py:171
+#: lilypond-book.py:183
 msgid "write lily-XXX files to DIR, link into --output dir"
 msgstr "escribir archivos lily-XXX en DIR, enlazar al directorio de --output"
 
-#: lilypond-book.py:176
+#: lilypond-book.py:188
 msgid "COMMAND"
 msgstr "INSTRUCCIÓN"
 
-#: lilypond-book.py:177
+#: lilypond-book.py:189
 msgid "process ly_files using COMMAND FILE..."
 msgstr "procesar ly_files utilizando INSTRUCCIÓN ARCHIVO..."
 
-#: lilypond-book.py:184
+#: lilypond-book.py:196
 msgid "create PDF files for use with PDFTeX"
 msgstr "crear archivos PDF para su utilización con PDFTeX"
 
-#: lilypond-book.py:187 midi2ly.py:876 musicxml2ly.py:2190 main.cc:162
+#: lilypond-book.py:199 midi2ly.py:875 musicxml2ly.py:2595 main.cc:157
 msgid "be verbose"
 msgstr "ser prolijo"
 
-#: lilypond-book.py:825
+#: lilypond-book.py:871
 #, python-format
 msgid "file not found: %s"
 msgstr "archivo no encontrado: %s"
 
-#: lilypond-book.py:1087
+#: lilypond-book.py:1142
 #, python-format
 msgid "deprecated ly-option used: %s=%s"
 msgstr "se ha usado una ly-option obsoleta: %s=%s"
 
-#: lilypond-book.py:1089
+#: lilypond-book.py:1144
 #, python-format
 msgid "compatibility mode translation: %s=%s"
 msgstr "traducción en modo de compatibilidad: %s=%s"
 
-#: lilypond-book.py:1092
+#: lilypond-book.py:1147
 #, python-format
 msgid "deprecated ly-option used: %s"
 msgstr "se usó una ly-option obsoleta: %s"
 
-#: lilypond-book.py:1094
+#: lilypond-book.py:1149
 #, python-format
 msgid "compatibility mode translation: %s"
 msgstr "traducción en modo compatible: %s"
 
-#: lilypond-book.py:1112
+#: lilypond-book.py:1167
 #, python-format
 msgid "ignoring unknown ly option: %s"
 msgstr "opción ly desconocida e ignorada: %s"
 
-#: lilypond-book.py:1538
+#: lilypond-book.py:1604
 #, python-format
 msgid "Opening filter `%s'"
 msgstr "Filtro de apertura «%s»"
 
-#: lilypond-book.py:1555
+#: lilypond-book.py:1621
 #, python-format
 msgid "`%s' failed (%d)"
 msgstr "«%s» ha fallado (%d)"
 
-#: lilypond-book.py:1556
+#: lilypond-book.py:1622
 msgid "The error log is as follows:"
 msgstr "El registro de errores es como sigue:"
 
-#: lilypond-book.py:1618
+#: lilypond-book.py:1684
 msgid "cannot find \\begin{document} in LaTeX document"
 msgstr "no se encuentra \\begin{document} en el documento de LaTeX"
 
-#: lilypond-book.py:1718
+#: lilypond-book.py:1784
 msgid "Writing snippets..."
 msgstr "Escribiendo fragmentos..."
 
-#: lilypond-book.py:1724
+#: lilypond-book.py:1790
 msgid "Processing..."
 msgstr "Procesando..."
 
-#: lilypond-book.py:1730
+#: lilypond-book.py:1796
 msgid "All snippets are up to date..."
 msgstr "Todos los fragmentos están actualizados..."
 
-#: lilypond-book.py:1764
+#: lilypond-book.py:1830
 #, python-format
 msgid "cannot determine format for: %s"
 msgstr "no se puede determinar el formato de: %s"
 
-#: lilypond-book.py:1775
+#: lilypond-book.py:1841
 #, python-format
 msgid "%s is up to date."
 msgstr "%s está actualizado."
 
-#: lilypond-book.py:1789
+#: lilypond-book.py:1855
 #, python-format
 msgid "Writing `%s'..."
 msgstr "Escribiendo «%s»..."
 
-#: lilypond-book.py:1847
+#: lilypond-book.py:1913
 msgid "Output would overwrite input file; use --output."
 msgstr "La salida sobreescribiría el archivo de entrada; utilice --output."
 
-#: lilypond-book.py:1851
+#: lilypond-book.py:1917
 #, python-format
 msgid "Reading %s..."
 msgstr "Leyendo %s..."
 
-#: lilypond-book.py:1870
+#: lilypond-book.py:1937
 msgid "Dissecting..."
 msgstr "Diseccionando..."
 
-#: lilypond-book.py:1886
+#: lilypond-book.py:1953
 #, python-format
 msgid "Compiling %s..."
 msgstr "Compilando %s..."
 
-#: lilypond-book.py:1895
+#: lilypond-book.py:1962
 #, python-format
 msgid "Processing include: %s"
 msgstr "Procesando el archivo de inclusión: %s"
 
-#: lilypond-book.py:1907
+#: lilypond-book.py:1974
 #, python-format
 msgid "Removing `%s'"
 msgstr "Suprimiendo «%s»"
 
-#: midi2ly.py:85 lily-library.scm:620 lily-library.scm:629
+#: midi2ly.py:84 lily-library.scm:634 lily-library.scm:643
 msgid "warning: "
 msgstr "advertencia: "
 
-#: midi2ly.py:88 midi2ly.py:907
+#: midi2ly.py:87 midi2ly.py:907
 msgid "error: "
 msgstr "error: "
 
-#: midi2ly.py:89
+#: midi2ly.py:88
 msgid "Exiting... "
 msgstr "Saliendo... "
 
-#: midi2ly.py:834
+#: midi2ly.py:833
 #, python-format
 msgid "%s output to `%s'..."
 msgstr "salida de %s hacia «%s»..."
 
-#: midi2ly.py:847
+#: midi2ly.py:846
 #, python-format
 msgid "Convert %s to LilyPond input.\n"
 msgstr "Convertir %s a entrada de LilyPond.\n"
 
-#: midi2ly.py:852
+#: midi2ly.py:851
 msgid "print absolute pitches"
 msgstr "mostrar las alturas absolutas"
 
-#: midi2ly.py:854 midi2ly.py:869
+#: midi2ly.py:853 midi2ly.py:868
 msgid "DUR"
 msgstr "DURACIÓN"
 
-#: midi2ly.py:855
+#: midi2ly.py:854
 msgid "quantise note durations on DUR"
 msgstr "cuantizar las duraciones de las notas sobre DURACIÓN"
 
-#: midi2ly.py:858
+#: midi2ly.py:857
 msgid "print explicit durations"
 msgstr "mostrar las duraciones explícitas"
 
-#: midi2ly.py:862
+#: midi2ly.py:861
 msgid "set key: ALT=+sharps|-flats; MINOR=1"
 msgstr "establecer la tonalidad: ALT=+sostenidos|-bemoles; MENOR=1"
 
-#: midi2ly.py:863
+#: midi2ly.py:862
 msgid "ALT[:MINOR]"
 msgstr "ALT[:MENOR]"
 
-#: midi2ly.py:868
+#: midi2ly.py:867
 msgid "quantise note starts on DUR"
 msgstr "cuantizar los comienzos de las notras sobre DUR"
 
-#: midi2ly.py:871
+#: midi2ly.py:870
 msgid "DUR*NUM/DEN"
 msgstr "DURACIÓN*NUMERADOR/DENOMINADOR"
 
-#: midi2ly.py:874
+#: midi2ly.py:873
 msgid "allow tuplet durations DUR*NUM/DEN"
 msgstr "permitir duraciones de grupos irregulares DURACIÓN*NUMERADOR/DENOMINADOR"
 
-#: midi2ly.py:886
+#: midi2ly.py:885
 msgid "treat every text as a lyric"
 msgstr "tratar todos los textos como letra"
 
-#: midi2ly.py:889
+#: midi2ly.py:888
 msgid "Examples"
 msgstr "Ejemplos"
 
@@ -894,96 +951,121 @@ msgstr "Ejemplos"
 msgid "no files specified on command line."
 msgstr "no se ha especificado ningún archivo en la línea de órdenes."
 
-#: musicxml2ly.py:213
+#: musicxml2ly.py:343
 msgid "Encountered file created by Dolet 3.4 for Sibelius, containing wrong beaming information. All beaming information in the MusicXML file will be ignored"
 msgstr "Se encontró un archivo creado mediante Dolet 3.4 para Sibelius que contiene información de barrados errónea. Toda la información de barrado en el archivo MusicXML se ignorará"
 
-#: musicxml2ly.py:229 musicxml2ly.py:231
+#: musicxml2ly.py:346
+msgid "Encountered file created by Noteworthy Composer's nwc2xml, containing wrong beaming information. All beaming information in the MusicXML file will be ignored"
+msgstr "Se encontró un archivo creado mediante Noteworthy Composer's nwc2xml que contiene información de barrados errónea. Toda la información de barrado en el archivo MusicXML se ignorará"
+
+#: musicxml2ly.py:362 musicxml2ly.py:364
 #, python-format
 msgid "Unprocessed PartGroupInfo %s encountered"
 msgstr "Se ha encontrado el PartGroupInfo sin procesar %s"
 
-#: musicxml2ly.py:471
+#: musicxml2ly.py:594
+#, python-format
+msgid "Encountered note at %s without type and duration (=%s)"
+msgstr "Se ha encontrado una nota en %s sin typo y duración (=%s)"
+
+#: musicxml2ly.py:613
 #, python-format
 msgid "Encountered rational duration with denominator %s, unable to convert to lilypond duration"
 msgstr "Se ha encontrado una duración racional con denominador %s, no se puede convertir a duracion de lilypond"
 
-#: musicxml2ly.py:654
+#: musicxml2ly.py:868
+msgid "Unable to extract key signature!"
+msgstr "¡No se ha podido extraer la armadura de la tonalidad!"
+
+#: musicxml2ly.py:895
 #, python-format
-msgid "unknown mode %s, expecting 'major' or 'minor'"
-msgstr "modo %s desconocido, se esperaba «major» or «minor»"
+msgid "unknown mode %s, expecting 'major' or 'minor' or a church mode!"
+msgstr "¡Modo %s desconocido, se esperaba «major», «minor» o un modo eclesiástico!"
 
-#: musicxml2ly.py:692
+#: musicxml2ly.py:968
 #, python-format
 msgid "Encountered unprocessed marker %s\n"
 msgstr "Se ha encontrado el marcador sin procesar %s\n"
 
-#: musicxml2ly.py:786
+#: musicxml2ly.py:1062
 #, python-format
 msgid "unknown span event %s"
 msgstr "evento de extensión %s desconocido"
 
-#: musicxml2ly.py:796
+#: musicxml2ly.py:1072
 #, python-format
 msgid "unknown span type %s for %s"
 msgstr "tipo de extensión %s deconocido para %s"
 
-#: musicxml2ly.py:1222
+#: musicxml2ly.py:1498
 msgid "Unknown metronome mark, ignoring"
 msgstr "Marca de metrónomo desconocida, se ignora"
 
 #. TODO: Implement the other (more complex) way for tempo marks!
-#: musicxml2ly.py:1227
+#: musicxml2ly.py:1503
 msgid "Metronome marks with complex relations (<metronome-note> in MusicXML) are not yet implemented."
 msgstr "Las marcas metronómicas con relaciones complejas (<metronome-note> en MusicXML) no se encuentran implementadas aún."
 
-#: musicxml2ly.py:1383
+#: musicxml2ly.py:1703
 #, python-format
 msgid "Unable to convert chord type %s to lilypond."
 msgstr "No se pudo convertir el acorde de tipo %s a lilypond."
 
-#: musicxml2ly.py:1529
+#: musicxml2ly.py:1849
 #, python-format
 msgid "drum %s type unknown, please add to instrument_drumtype_dict"
 msgstr "tipo de percusión %s desconocido, añádalo al diccionario instrument_drumtype_dict"
 
-#: musicxml2ly.py:1533
+#: musicxml2ly.py:1853
 msgid "cannot find suitable event"
 msgstr "no se encuentra un evento adecuado"
 
-#: musicxml2ly.py:1623
+#: musicxml2ly.py:1994
 #, python-format
-msgid "Negative skip %s"
-msgstr "Desplazamiento %s negativo"
+msgid "Negative skip %s (from position %s to %s)"
+msgstr "Desplazamiento negativo %s (desde la posición %s hasta la %s)"
 
-#: musicxml2ly.py:1775
+#: musicxml2ly.py:2134
 #, python-format
 msgid "Negative skip found: from %s to %s, difference is %s"
 msgstr "Se ha encontrado un desplazamiento negativo: desde %s hasta %s, la diferencia es %s"
 
-#: musicxml2ly.py:1802
+#: musicxml2ly.py:2205
 #, python-format
 msgid "unexpected %s; expected %s or %s or %s"
 msgstr "%s inesperado; se esperaba %s o %s o %s"
 
-#: musicxml2ly.py:1912
-msgid "cannot have two simultaneous slurs"
-msgstr "no puede haber dos ligaduras de expresión simultáneas"
+#: musicxml2ly.py:2311
+msgid "Encountered closing slur, but no slur is open"
+msgstr "Se ha encontrado el cierre de una ligadura de expresión, pero no hay ninguna abierta"
+
+#: musicxml2ly.py:2314
+msgid "Cannot have two simultaneous (closing) slurs"
+msgstr "No puede haber dos ligaduras de expresión (cerrándose) simultáneas"
+
+#: musicxml2ly.py:2324
+msgid "Cannot have a slur inside another slur"
+msgstr "No puede haber una ligadura de expresión dentro de otra"
 
-#: musicxml2ly.py:2050
+#: musicxml2ly.py:2327
+msgid "Cannot have two simultaneous slurs"
+msgstr "No puede haber dos ligaduras de expresión simultáneas"
+
+#: musicxml2ly.py:2455
 #, python-format
 msgid "cannot simultaneously have more than one mode: %s"
 msgstr "no puede haber más de un modo al mismo tiempo: %s"
 
-#: musicxml2ly.py:2148
+#: musicxml2ly.py:2553
 msgid "Converting to LilyPond expressions..."
 msgstr "Conversión a expresiones de LilyPond..."
 
-#: musicxml2ly.py:2159
+#: musicxml2ly.py:2564
 msgid "musicxml2ly [OPTION]... FILE.xml"
 msgstr "musicxml2ly [OPCIÓN]... ARCHIVO.xml"
 
-#: musicxml2ly.py:2161
+#: musicxml2ly.py:2566
 msgid ""
 "Convert MusicXML from FILE.xml to LilyPond input.\n"
 "If the given filename is -, musicxml2ly reads from the command line.\n"
@@ -991,83 +1073,83 @@ msgstr ""
 "Convertir MusicXML desde ARCHIVO.xml a entrada de LilyPond.\n"
 "SI el nombre de archivo aportado es -, musicxml2ly lee de la línea de órdenes.\n"
 
-#: musicxml2ly.py:2171
+#: musicxml2ly.py:2576
 msgid ""
-"Copyright (c) 2005--2008 by\n"
+"Copyright (c) 2005--2009 by\n"
 "    Han-Wen Nienhuys <hanwen@xs4all.nl>,\n"
 "    Jan Nieuwenhuizen <janneke@gnu.org> and\n"
 "    Reinhold Kainhofer <reinhold@kainhofer.com>\n"
 msgstr ""
-"Copyright (c) 2005--2008 por\n"
+"Copyright (c) 2005--2009 por\n"
 "    Han-Wen Nienhuys <hanwen@xs4all.nl>,\n"
 "    Jan Nieuwenhuizen <janneke@gnu.org> y\n"
 "    Reinhold Kainhofer <reinhold@kainhofer.com>\n"
 
-#: musicxml2ly.py:2196
+#: musicxml2ly.py:2601
 msgid "use lxml.etree; uses less memory and cpu time"
 msgstr "usar lxml.etree; utiliza menos memoria y tiempo de procesador"
 
-#: musicxml2ly.py:2202
+#: musicxml2ly.py:2607
 msgid "input file is a zip-compressed MusicXML file"
 msgstr "el archivo de entrada es un archivo MusicXML comprimido en zip"
 
-#: musicxml2ly.py:2208
+#: musicxml2ly.py:2613
 msgid "convert pitches in relative mode (default)"
 msgstr "convertir las notas al modo relativo (por omisión)"
 
-#: musicxml2ly.py:2213
+#: musicxml2ly.py:2618
 msgid "convert pitches in absolute mode"
 msgstr "convertir las notas al modo absoluto"
 
-#: musicxml2ly.py:2216
+#: musicxml2ly.py:2621
 msgid "LANG"
 msgstr "IDIOMA"
 
-#: musicxml2ly.py:2218
+#: musicxml2ly.py:2623
 msgid "use a different language file 'LANG.ly' and corresponding pitch names, e.g. 'deutsch' for deutsch.ly"
 msgstr "usar un archivo de idioma distinto 'IDIOMA.ly' y los nombres de nota correspondientes, p.ej. 'deutsch' (alemán) para deutsch.ly"
 
-#: musicxml2ly.py:2224
+#: musicxml2ly.py:2629
 msgid "do not convert directions (^, _ or -) for articulations, dynamics, etc."
 msgstr "no convertir las direcciones (^, _ o -) para las articulaciones, expresiones de dinámica, etc."
 
-#: musicxml2ly.py:2230
+#: musicxml2ly.py:2635
 msgid "do not convert beaming information, use lilypond's automatic beaming instead"
 msgstr "no convertir la información de barrado, en vez de ello utilizar el barrado automático de lilypond"
 
-#: musicxml2ly.py:2238
+#: musicxml2ly.py:2643
 msgid "set output filename to FILE, stdout if -"
 msgstr "establecer el nombre del archivo de salida a ARCHIVO, y a la salida estándar si es -"
 
-#: musicxml2ly.py:2320
+#: musicxml2ly.py:2726
 #, python-format
 msgid "unknown part in part-list: %s"
 msgstr "parte desconocida en la lista part-list: %s"
 
-#: musicxml2ly.py:2382
+#: musicxml2ly.py:2788
 msgid "Input is compressed, extracting raw MusicXML data from stdin"
 msgstr "El archivo de entrada está comprimido, extrayendo los datos de MusicXML en bruto a partir de la entrada estándar"
 
-#: musicxml2ly.py:2385
+#: musicxml2ly.py:2791
 #, python-format
 msgid "Input file %s is compressed, extracting raw MusicXML data"
 msgstr "El archivo de entrada %s está comprimido, extrayendo los datos de MusicXML en bruto"
 
-#: musicxml2ly.py:2415
+#: musicxml2ly.py:2821
 msgid "Reading MusicXML from Standard input ..."
 msgstr "Leyendo MusicXML desde la entrada estándar..."
 
-#: musicxml2ly.py:2417
+#: musicxml2ly.py:2823
 #, python-format
 msgid "Reading MusicXML from %s ..."
 msgstr "Leyendo MusicXML desde %s ..."
 
-#: musicxml2ly.py:2450
+#: musicxml2ly.py:2856
 #, python-format
 msgid "Output to `%s'"
 msgstr "La salida se dirige hacia `%s'"
 
-#: musicxml2ly.py:2512
+#: musicxml2ly.py:2922
 #, python-format
 msgid "Unable to find input file %s"
 msgstr "No se encuentra el archivo de entrada %s"
@@ -1101,20 +1183,15 @@ msgstr "error de programación: %s"
 msgid "continuing, cross fingers"
 msgstr "continuamos; cruce los dedos"
 
-#: accidental-engraver.cc:249
+#: accidental-engraver.cc:298
 #, c-format
 msgid "accidental typesetting list must begin with context-name: %s"
 msgstr "la lista de tippografiado de alteraciones accidentales debe comenzar con context-name: %s"
 
-#: accidental-engraver.cc:276
-#, c-format
-msgid "ignoring unknown accidental rule: %s"
-msgstr "se ignora la regla desconocida de alteración accidental: %s"
-
-#: accidental-engraver.cc:292
+#: accidental-engraver.cc:328
 #, c-format
-msgid "pair or context-name expected for accidental rule, found %s"
-msgstr "se esperaba una pareja o un nombre de contexto para la regla de alteración accidental, se ha encontrado %s"
+msgid "procedure or context-name expected for accidental rule, found %s"
+msgstr "se esperaba un procedimiento o un nombre de contexto para la regla de alteración accidental, se ha encontrado %s"
 
 #: accidental.cc:187
 #, c-format
@@ -1335,6 +1412,26 @@ msgstr "(de)crescendo sin terminar"
 msgid "unterminated extender"
 msgstr "prolongación sin terminar"
 
+#: font-config-scheme.cc:140 font-config.cc:57
+#, c-format
+msgid "failed adding font directory: %s"
+msgstr "fallo al añadir la carpeta de tipografías: %s"
+
+#: font-config-scheme.cc:142 font-config.cc:59
+#, c-format
+msgid "adding font directory: %s"
+msgstr "añadiendo carpeta de tipografías: %s"
+
+#: font-config-scheme.cc:156
+#, c-format
+msgid "failed adding font file: %s"
+msgstr "fallo al añadir el archivo de fuente tipográfica: %s"
+
+#: font-config-scheme.cc:158
+#, c-format
+msgid "adding font file: %s"
+msgstr "añadiendo archivo de fuente tipográfica: %s"
+
 #: font-config.cc:28
 msgid "Initializing FontConfig..."
 msgstr "Inicializando FontConfig..."
@@ -1344,15 +1441,9 @@ msgstr "Inicializando FontConfig..."
 msgid "Rebuilding FontConfig cache %s, this may take a while..."
 msgstr "Reconstruyendo la caché de FontConfig %s, puede tardar un rato..."
 
-#: font-config.cc:57
-#, c-format
-msgid "failed adding font directory: %s"
-msgstr "fallo al añadir la carpeta de tipografías: %s"
-
-#: font-config.cc:59
-#, c-format
-msgid "adding font directory: %s"
-msgstr "añadiendo carpeta de tipografías: %s"
+#: font-config.cc:63
+msgid "Building font database."
+msgstr "Construyendo la base de datos de fuentes tipográficas."
 
 #: general-scheme.cc:202
 msgid "infinity or NaN encountered while converting Real number"
@@ -1362,7 +1453,7 @@ msgstr "se ha encontrado infinito o NaN durante la conversión de un número Rea
 msgid "setting to zero"
 msgstr "estableciendo al valor cero"
 
-#: general-scheme.cc:422 output-ps.scm:62
+#: general-scheme.cc:422 output-ps.scm:63
 msgid "Found infinity or nan in output. Substituting 0.0"
 msgstr "Se ha encontrado Infinito o NaN en la salida. Se sustituye por 0.0"
 
@@ -1522,16 +1613,16 @@ msgstr "se hace la asignación de todas formas"
 msgid "type check for `%s' failed; value `%s' must be of type `%s'"
 msgstr "ha fallado la comprobación de tipo para «%s»; el valor «%s» debe ser del tipo «%s»"
 
-#: lily-lexer.cc:251
+#: lily-lexer.cc:252
 msgid "include files are not allowed in safe mode"
 msgstr "no se permiten los archivos de inclusión en el modo seguro"
 
-#: lily-lexer.cc:270
+#: lily-lexer.cc:271
 #, c-format
 msgid "identifier name is a keyword: `%s'"
 msgstr "el nombre del identificativo es una palabra clave: «%s»"
 
-#: lily-lexer.cc:285
+#: lily-lexer.cc:286
 #, c-format
 msgid "error at EOF: %s"
 msgstr "error al final del archivo (EOF): %s"
@@ -1556,11 +1647,11 @@ msgstr "no se encuentra el archivo de inicio: «%s»"
 msgid "Processing `%s'"
 msgstr "Procesando «%s»"
 
-#: lily-parser.cc:99
+#: lily-parser.cc:95
 msgid "Parsing..."
 msgstr "Analizando..."
 
-#: lily-parser.cc:127
+#: lily-parser.cc:123
 msgid "braces do not match"
 msgstr "las llaves no concuerdan"
 
@@ -1573,7 +1664,7 @@ msgstr "no se encuentra la Voz «%s»"
 msgid "Lyric syllable does not have note. Use \\lyricsto or associatedVoice."
 msgstr "La sílaba de la letra no tiene nota. Utilice \\lyricsto o associatedVoice."
 
-#: main.cc:100
+#: main.cc:97
 #, c-format
 msgid ""
 "This program is free software.  It is covered by the GNU General Public\n"
@@ -1586,7 +1677,7 @@ msgstr ""
 "él bajo ciertas condiciones. Invóquelo como `%s --warranty' para obtener\n"
 "más información.\n"
 
-#: main.cc:106
+#: main.cc:103
 msgid ""
 "    This program is free software; you can redistribute it and/or\n"
 "modify it under the terms of the GNU General Public License version 2\n"
@@ -1628,11 +1719,11 @@ msgstr ""
 "59 Temple Place - Suite 330,\n"
 "Boston, MA 02111-1307, USA.\n"
 
-#: main.cc:137
+#: main.cc:134
 msgid "SYM[=VAL]"
 msgstr "SÍMBOLO[=VALOR]"
 
-#: main.cc:138
+#: main.cc:135
 msgid ""
 "set Scheme option SYM to VAL (default: #t).\n"
 "Use -dhelp for help."
@@ -1640,49 +1731,41 @@ msgstr ""
 "establecer la opción de Scheme SÍMBOLO a VALOR (por omisión: #t).\n"
 "Use -dhelp para obtener ayuda."
 
-#: main.cc:141
+#: main.cc:138
 msgid "EXPR"
 msgstr "EXPRESIÓN"
 
-#: main.cc:141
+#: main.cc:138
 msgid "evaluate scheme code"
 msgstr "evaluar código de Scheme"
 
 #. Bug in option parser: --output =foe is taken as an abbreviation
 #. for --output-format.
-#: main.cc:144
+#: main.cc:141
 msgid "FORMATs"
 msgstr "FORMATOs"
 
-#: main.cc:144
+#: main.cc:141
 msgid "dump FORMAT,...  Also as separate options:"
 msgstr "volcar FORMATO,...  También como opciones separadas:"
 
-#: main.cc:145
-msgid "generate DVI (tex backend only)"
-msgstr "generar un DVI (sólo para el 'backend' tex)"
-
-#: main.cc:146
+#: main.cc:142
 msgid "generate PDF (default)"
 msgstr "generar un PDF (predeterminado)"
 
-#: main.cc:147
+#: main.cc:143
 msgid "generate PNG"
 msgstr "generar un PNG"
 
-#: main.cc:148
+#: main.cc:144
 msgid "generate PostScript"
 msgstr "generar un PostScript"
 
-#: main.cc:149
-msgid "generate TeX (tex backend only)"
-msgstr "generar un TeX (sólo para el 'backend' tex)"
-
-#: main.cc:151
+#: main.cc:146
 msgid "FIELD"
 msgstr "CAMPO"
 
-#: main.cc:151
+#: main.cc:146
 msgid ""
 "dump header field FIELD to file\n"
 "named BASENAME.FIELD"
@@ -1690,19 +1773,19 @@ msgstr ""
 "volcar el campo de cabecera CAMPO a un archivo\n"
 "llamado NOMBRE_BASE.CAMPO"
 
-#: main.cc:153
+#: main.cc:148
 msgid "add DIR to search path"
 msgstr "añadir DIRECTORIO a la ruta de búsqueda"
 
-#: main.cc:154
+#: main.cc:149
 msgid "use FILE as init file"
 msgstr "usar ARCHIVO como archivo de inicialización"
 
-#: main.cc:156
+#: main.cc:151
 msgid "USER, GROUP, JAIL, DIR"
 msgstr "USUARIO, GRUPO, JAULA, DIRECTORIO"
 
-#: main.cc:156
+#: main.cc:151
 msgid ""
 "chroot to JAIL, become USER:GROUP\n"
 "and cd into DIR"
@@ -1710,15 +1793,15 @@ msgstr ""
 "chroot a JAULA, convertirse en USUARIO:GRUPO\n"
 "y cd al DIRECTORIO"
 
-#: main.cc:159
+#: main.cc:154
 msgid "write output to FILE (suffix will be added)"
 msgstr "escribir la salida en el ARCHIVO (se añadirá el sufijo)"
 
-#: main.cc:160
+#: main.cc:155
 msgid "relocate using directory of lilypond program"
 msgstr "relocalizar utilizando el directorio del programa lilypond"
 
-#: main.cc:226
+#: main.cc:221
 #, c-format
 msgid ""
 "Copyright (c) %s by\n"
@@ -1728,82 +1811,77 @@ msgstr ""
 "%s y otros."
 
 #. No version number or newline here.  It confuses help2man.
-#: main.cc:254
+#: main.cc:249
 #, c-format
 msgid "Usage: %s [OPTION]... FILE..."
 msgstr "Uso: %s [OPCIÓN]... ARCHIVO..."
 
-#: main.cc:256
+#: main.cc:251
 #, c-format
 msgid "Typeset music and/or produce MIDI from FILE."
 msgstr "Componer tipográficamente la música y/o producir MIDI a partir de ARCHIVO."
 
-#: main.cc:258
+#: main.cc:253
 #, c-format
 msgid "LilyPond produces beautiful music notation."
 msgstr "LilyPond produce una notación musical bella y hermosa."
 
-#: main.cc:260
+#: main.cc:255
 #, c-format
 msgid "For more information, see %s"
 msgstr "Para ver más información, consulte %s"
 
-#: main.cc:262
+#: main.cc:257
 #, c-format
 msgid "Options:"
 msgstr "Opciones:"
 
-#: main.cc:266
-#, c-format
-msgid "Report bugs via %s"
-msgstr "Informe de los fallos a %s"
-
-#: main.cc:312
+#: main.cc:311
 #, c-format
 msgid "expected %d arguments with jail, found: %u"
 msgstr "se esperaban %d argumentos con la jaula, se han encontrado: %u"
 
-#: main.cc:326
+#: main.cc:325
 #, c-format
 msgid "no such user: %s"
 msgstr "no existe el usuario %s"
 
-#: main.cc:328
+#: main.cc:327
 #, c-format
 msgid "cannot get user id from user name: %s: %s"
 msgstr "no se puede obtener el identificador de usuario a partir del nombre: %s: %s"
 
-#: main.cc:343
+#: main.cc:342
 #, c-format
 msgid "no such group: %s"
 msgstr "no existe este grupo: %s"
 
-#: main.cc:345
+#: main.cc:344
 #, c-format
 msgid "cannot get group id from group name: %s: %s"
 msgstr "no se puede obtener el id de grupo a partir del nombre: %s: %s"
 
-#: main.cc:353
+#: main.cc:352
 #, c-format
 msgid "cannot chroot to: %s: %s"
 msgstr "no se puede hacer chroot a: %s: %s"
 
-#: main.cc:360
+#: main.cc:359
 #, c-format
 msgid "cannot change group id to: %d: %s"
 msgstr "no se puede cambiar el grupo del usuario a %d: %s"
 
-#: main.cc:366
+#: main.cc:365
 #, c-format
 msgid "cannot change user id to: %d: %s"
 msgstr "no se puede cambiar el identificador de usuario a %d: %s"
 
-#: main.cc:372
+#: main.cc:371
 #, c-format
 msgid "cannot change working directory to: %s: %s"
 msgstr "no se puede cambiar el directorio de trabajo a: %s: %s"
 
-#: main.cc:619
+#: main.cc:611
 #, c-format
 msgid "exception caught: %s"
 msgstr "se ha capturado una excepción: %s"
@@ -1888,8 +1966,12 @@ msgstr "no se puede abrir el archivo en modo de escritura: %s: %s"
 msgid "cannot write to file: `%s'"
 msgstr "no se puede escribir el archivo: «%s»"
 
-#: minimal-page-breaking.cc:42
-msgid "Computing page breaks..."
+#: minimal-page-breaking.cc:38 paper-score.cc:105
+msgid "Calculating line breaks..."
+msgstr "Calculando los saltos de línea..."
+
+#: minimal-page-breaking.cc:42 layout-page-layout.scm:463
+msgid "Calculating page breaks..."
 msgstr "Calculando saltos de página..."
 
 #: music-iterator.cc:171
@@ -1906,7 +1988,7 @@ msgstr "fallo en la comprobación de octava; se esperaba \"%s\", se ha encontrad
 msgid "transposition by %s makes alteration larger than double"
 msgstr "la transposición de %s transforma la alteración en más que doble"
 
-#: new-dynamic-engraver.cc:128
+#: new-dynamic-engraver.cc:129
 #, c-format
 msgid ""
 "unknown crescendo style: %s\n"
@@ -1984,21 +2066,21 @@ msgstr "error en FT_Get_Glyph_Name (): %s"
 msgid "Finding the ideal number of pages..."
 msgstr "Buscando el número de páginas ideal..."
 
-#: optimal-page-breaking.cc:76
+#: optimal-page-breaking.cc:78
 msgid "Fitting music on 1 page..."
 msgstr "Disponiendo la música en una página..."
 
-#: optimal-page-breaking.cc:78
+#: optimal-page-breaking.cc:80
 #, c-format
 msgid "Fitting music on %d pages..."
 msgstr "Disponiendo la música en %d páginas..."
 
-#: optimal-page-breaking.cc:80
+#: optimal-page-breaking.cc:82
 #, c-format
 msgid "Fitting music on %d or %d pages..."
 msgstr "Disponiendo la música en %d o %d páginas..."
 
-#: optimal-page-breaking.cc:157 page-turn-page-breaking.cc:226
+#: optimal-page-breaking.cc:159 page-turn-page-breaking.cc:226
 #: paper-score.cc:146
 msgid "Drawing systems..."
 msgstr "Dibujando los sistemas..."
@@ -2069,10 +2151,6 @@ msgstr "el salto forzado ha sido sobreestablecido por algún otro evento, ¿quiz
 msgid "Layout output to `%s'..."
 msgstr "Salida de la página hacia «%s»..."
 
-#: paper-score.cc:105
-msgid "Calculating line breaks..."
-msgstr "Calculando los saltos de línea..."
-
 #: paper-score.cc:118
 #, c-format
 msgid "Element count %d (spanners %d) "
@@ -2086,7 +2164,7 @@ msgstr "Preprocesando los objetos gráficos..."
 msgid "GUILE signaled an error for the expression beginning here"
 msgstr "GUILE ha señalado un error para la expresión que comienza aquí"
 
-#: percent-repeat-engraver.cc:200
+#: percent-repeat-engraver.cc:202
 msgid "unterminated percent repeat"
 msgstr "repetición de porcentaje sin terminar"
 
@@ -2102,12 +2180,12 @@ msgstr "ha dado la vuelta el número de canal MIDI"
 msgid "remapping modulo 16"
 msgstr "se reasigna módulo 16"
 
-#: performance.cc:101
+#: performance.cc:100
 #, c-format
 msgid "MIDI output to `%s'..."
 msgstr "Salida MIDI hacia «%s»..."
 
-#: phrasing-slur-engraver.cc:139
+#: phrasing-slur-engraver.cc:146
 msgid "unterminated phrasing slur"
 msgstr "ligadura de fraseo sin terminar"
 
@@ -2274,7 +2352,7 @@ msgstr "ligadura de expresión sin terminar"
 msgid "cannot end slur"
 msgstr "no se puede terminar la ligadura de expresión"
 
-#: slur.cc:357
+#: slur.cc:359
 #, c-format
 msgid "Ignoring grob for slur: %s. avoid-slur not set?"
 msgstr "Se ignora el objeto gráfico para la ligadura: %s. ¿No está establecido avoid-slur?"
@@ -2311,12 +2389,12 @@ msgstr "quizá la entrada debiera especificar voces polifónicas"
 msgid "weird stem size, check for narrow beams"
 msgstr "tamaño de plica extraño, compruebe que no haya barras estrechas"
 
-#: stem.cc:627
+#: stem.cc:623
 #, c-format
 msgid "flag `%s' not found"
 msgstr "no se encuentra el indicador «%s»"
 
-#: stem.cc:638
+#: stem.cc:639
 #, c-format
 msgid "flag stroke `%s' not found"
 msgstr "no se encuentra el impacto «%s» de indicador"
@@ -2441,40 +2519,40 @@ msgstr "ya hay un trazador finalizado"
 msgid "giving up"
 msgstr "abandonando"
 
-#: parser.yy:729
+#: parser.yy:804
 msgid "\\paper cannot be used in \\score, use \\layout instead"
 msgstr "no se puede usar \\paper dentro de \\score, utilice \\layout en su lugar"
 
-#: parser.yy:753
+#: parser.yy:828
 msgid "need \\paper for paper block"
 msgstr "es necesario \\paper para el bloque 'paper'"
 
-#: parser.yy:1224
+#: parser.yy:1299
 msgid "Grob name should be alphanumeric"
 msgstr "El nombre del objeto gráfico ha de ser alfanumérico"
 
-#: parser.yy:1522
+#: parser.yy:1597
 msgid "second argument must be pitch list"
 msgstr "el segundo argumento debe ser una lista de notas"
 
-#: parser.yy:1549 parser.yy:1554 parser.yy:2026
+#: parser.yy:1624 parser.yy:1629 parser.yy:2101
 msgid "have to be in Lyric mode for lyrics"
 msgstr "para la letra se debe estar en el modo Lyric"
 
-#: parser.yy:1651
+#: parser.yy:1726
 msgid "expecting string as script definition"
 msgstr "se espera una cadena como definición del guión"
 
-#: parser.yy:1806 parser.yy:1856
+#: parser.yy:1881 parser.yy:1931
 #, c-format
 msgid "not a duration: %d"
 msgstr "no es una duración: %d"
 
-#: parser.yy:1980
+#: parser.yy:2055
 msgid "have to be in Note mode for notes"
 msgstr "para las notas se debe estar en el modo Note"
 
-#: parser.yy:2041
+#: parser.yy:2116
 msgid "have to be in Chord mode for chords"
 msgstr "para los acordes se debe estar en el modo Chord"
 
@@ -2535,26 +2613,26 @@ msgstr "Se ha encontrado una llave al final del marcado, ¿Olvidó un espacio?"
 msgid "invalid character: `%c'"
 msgstr "carácter no válido: «%c»"
 
-#: lexer.ll:803 lexer.ll:804
+#: lexer.ll:803
 #, c-format
 msgid "unknown escaped string: `\\%s'"
 msgstr "cadena de escape desconocida: `\\%s'"
 
-#: lexer.ll:910 lexer.ll:911
+#: lexer.ll:910
 #, c-format
 msgid "file too old: %s (oldest supported: %s)"
 msgstr "archivo demasiado antiguo: %s (el más antiguo que se puede tratar es: %s)"
 
-#: lexer.ll:911 lexer.ll:912
+#: lexer.ll:911
 msgid "consider updating the input with the convert-ly script"
 msgstr "considere la actualización de la entrada mediante el guión (script) convert-ly"
 
-#: lexer.ll:917 lexer.ll:918
+#: lexer.ll:917
 #, c-format
 msgid "program too old: %s (file requires: %s)"
 msgstr "el programa es demasiado antiguo: %s (el archivo necesita: %s)"
 
-#: backend-library.scm:19 lily.scm:777 ps-to-png.scm:58
+#: backend-library.scm:19 lily.scm:761 ps-to-png.scm:58
 #, scheme-format
 msgid "Invoking `~a'..."
 msgstr "Invocando «~a»..."
@@ -2564,7 +2642,7 @@ msgstr "Invocando «~a»..."
 msgid "`~a' failed (~a)"
 msgstr "«~a» ha fallado (~a)"
 
-#: backend-library.scm:116 framework-tex.scm:344 framework-tex.scm:369
+#: backend-library.scm:116
 #, scheme-format
 msgid "Converting to `~a'..."
 msgstr "Convirtiendo en «~a»..."
@@ -2598,16 +2676,16 @@ msgstr "parece que la clase de evento ~A está sin usar"
 msgid "translator listens to nonexisting event class ~A"
 msgstr "el traductor está escuchando a una clase de evento ~A que no existe"
 
-#: define-markup-commands.scm:599
+#: define-markup-commands.scm:569
 msgid "no systems found in \\score markup, does it have a \\layout block?"
 msgstr "no se ha encontrado ningún sistema en el marcado \\score, ¿tiene un bloque \\layout?"
 
-#: define-markup-commands.scm:2428
+#: define-markup-commands.scm:2387
 #, scheme-format
 msgid "Cannot find glyph ~a"
 msgstr "No se encuentra el glifo ~a"
 
-#: define-markup-commands.scm:2737
+#: define-markup-commands.scm:2696
 #, scheme-format
 msgid "not a valid duration string: ~a"
 msgstr "no es una cadena válida de duración: ~a"
@@ -2628,8 +2706,8 @@ msgid "unknown repeat type `~S'"
 msgstr "tipo de repetición «~S» desconocido"
 
 #: define-music-types.scm:693
-msgid "See music-types.scm for supported repeats"
-msgstr "Consulte el archivo music-types.scm para ver los tipos de repetición soportados"
+msgid "See define-music-types.scm for supported repeats"
+msgstr "Consulte el archivo define-music-types.scm para ver los tipos de repetición soportados"
 
 #: document-backend.scm:99
 #, scheme-format
@@ -2646,57 +2724,57 @@ msgstr "no se encuentra un interface para la propiedad ~S"
 msgid "unknown Grob interface: ~S"
 msgstr "interfaz de Objeto gráfico desconocido: ~S"
 
-#: documentation-lib.scm:48
+#: documentation-lib.scm:49
 #, scheme-format
 msgid "Processing ~S..."
 msgstr "Procesando ~S..."
 
-#: documentation-lib.scm:164
+#: documentation-lib.scm:165
 #, scheme-format
 msgid "Writing ~S..."
 msgstr "Escribiendo ~S..."
 
-#: documentation-lib.scm:186
+#: documentation-lib.scm:187
 #, scheme-format
 msgid "cannot find description for property ~S (~S)"
 msgstr "no se encuentra la descripción de la propiedad ~S (~S)"
 
+#: flag-styles.scm:145
+#, scheme-format
+msgid "flag stroke `~a' or `~a' not found"
+msgstr "no se encuentra el impacto `~a' o `~a' de indicador"
+
 #: framework-eps.scm:90
 #, scheme-format
 msgid "Writing ~a..."
 msgstr "Escribiendo «~a»..."
 
-#: framework-ps.scm:282
+#: framework-ps.scm:277
 #, scheme-format
 msgid "cannot embed ~S=~S"
 msgstr "no se puede empotrar ~S=~S"
 
-#: framework-ps.scm:335
+#: framework-ps.scm:330
 #, scheme-format
 msgid "cannot extract file matching ~a from ~a"
 msgstr "no se puede extraer la coincidencia de archivos ~a a partir de ~a"
 
-#: framework-ps.scm:352
+#: framework-ps.scm:347
 #, scheme-format
 msgid "do not know how to embed ~S=~S"
 msgstr "no sabemos cómo empotrar ~S=~S"
 
-#: framework-ps.scm:383
+#: framework-ps.scm:378
 #, scheme-format
 msgid "do not know how to embed font ~s ~s ~s"
 msgstr "no sabemos cómo empotrar la tipografía ~s ~s ~s"
 
-#: framework-ps.scm:753
+#: framework-ps.scm:748
 #, scheme-format
 msgid "cannot convert <stdout> to ~S"
 msgstr "no se puede convertir <stdout> a ~S"
 
-#: framework-ps.scm:772 framework-ps.scm:775
-#, scheme-format
-msgid "cannot generate ~S using the postscript back-end"
-msgstr "no se puede generar ~S usando el 'back-end' de postscript"
-
-#: framework-ps.scm:782
+#: framework-ps.scm:771
 msgid ""
 "\n"
 "The PostScript backend does not support the system-by-system \n"
@@ -2724,11 +2802,6 @@ msgstr ""
 "  %% Start cut-&-pastable-section\n"
 "  %% ****************************************************************\n"
 
-#: framework-tex.scm:361
-#, scheme-format
-msgid "TeX file name must not contain whitespace: `~a'"
-msgstr "El nombre del archivo de TeX no debe contener espacios: «~a»"
-
 #: graphviz.scm:53
 #, scheme-format
 msgid "Writing graph `~a'..."
@@ -2744,44 +2817,40 @@ msgstr "Error en la cuantización de la barra.  Se esperaba (~S,~S), se ha encon
 msgid "Error in beam quanting.  Expected ~S 0, found ~S."
 msgstr "Error en la cuantización de la barra.  Se esperaba ~S 0, se ha encontrado ~S."
 
-#: layout-page-layout.scm:124
+#: layout-page-layout.scm:126
 msgid "Can't fit systems on page -- ignoring between-system-padding"
 msgstr "No se pueden dar cabida a todos los sistemas en la página; se ignora between-system-padding"
 
-#: layout-page-layout.scm:458
-msgid "Calculating page breaks..."
-msgstr "Calculando saltos de página..."
-
-#: lily-library.scm:588
+#: lily-library.scm:602
 #, scheme-format
 msgid "unknown unit: ~S"
 msgstr "unidad desconocida: ~S "
 
-#: lily-library.scm:622
+#: lily-library.scm:636
 #, scheme-format
 msgid "no \\version statement found, please add~afor future compatibility"
 msgstr "no se ha encontrado ninguna instrucción \\version, escriba~apara disponer de compatibilidad en el futuro"
 
-#: lily-library.scm:630
+#: lily-library.scm:644
 msgid "old relative compatibility not used"
 msgstr "no se ha usado la compatibilidad con el modo relativo antiguo"
 
-#: lily.scm:178
+#: lily.scm:179
 #, scheme-format
 msgid "cannot find: ~A"
 msgstr "no se encuentra: ~A"
 
-#: lily.scm:243
+#: lily.scm:228
 #, scheme-format
 msgid "wrong type for argument ~a.  Expecting ~a, found ~s"
 msgstr "tipo equivocado para el argumento ~a.  Se esperaba ~a, se encontró ~s"
 
-#: lily.scm:641
+#: lily.scm:625
 #, scheme-format
 msgid "job ~a terminated with signal: ~a"
 msgstr "la tarea ~a ha terminado con la señal: ~a"
 
-#: lily.scm:644
+#: lily.scm:628
 #, scheme-format
 msgid ""
 "logfile ~a (exit ~a):\n"
@@ -2790,12 +2859,12 @@ msgstr ""
 "archivo de registro ~a (salida ~a):\n"
 "~a"
 
-#: lily.scm:669 lily.scm:767
+#: lily.scm:653 lily.scm:751
 #, scheme-format
 msgid "failed files: ~S"
 msgstr "archivos que han fallado: ~S"
 
-#: lily.scm:757
+#: lily.scm:741
 #, scheme-format
 msgid "Redirecting output to ~a..."
 msgstr "Redirigiendo la salida hacia ~a..."
@@ -2804,7 +2873,7 @@ msgstr "Redirigiendo la salida hacia ~a..."
 msgid "Music head function must return Music object"
 msgstr "La función principal de música debe devolver un objeto musical"
 
-#: ly-syntax-constructors.scm:150
+#: ly-syntax-constructors.scm:154
 #, scheme-format
 msgid "Invalid property operation ~a"
 msgstr "Operación de propiedad ~a inválida"
@@ -2854,12 +2923,12 @@ msgstr "Ha fallado la comprobación de compás.  Se esperaba que estuviera en ~a
 msgid "cannot find quoted music: `~S'"
 msgstr "no se encuentra la música citada: «~S»"
 
-#: music-functions.scm:990
+#: music-functions.scm:1198
 #, scheme-format
 msgid "unknown accidental style: ~S"
 msgstr "estilo de alteración ~S desconocido"
 
-#: output-ps.scm:285
+#: output-ps.scm:294
 msgid "utf-8-string encountered in PS backend"
 msgstr "se ha encontrado una cadena UTF-8 en el 'backend' de PostScript"
 
@@ -2873,28 +2942,23 @@ msgstr "no definido: ~S"
 msgid "cannot decypher Pango description: ~a"
 msgstr "no se puede descifrar la descripción de Pango: ~a"
 
-#: output-tex.scm:96
-#, scheme-format
-msgid "cannot find ~a in ~a"
-msgstr "no se encuentra ~a dentro de ~a"
-
-#: paper.scm:86
+#: paper.scm:104
 msgid "set-global-staff-size: not in toplevel scope"
 msgstr "set-global-staff-size: no está en el ámbito de nivel más alto"
 
-#: paper.scm:226
+#: paper.scm:244
 #, scheme-format
 msgid "This is not a \\layout {} object, ~S"
 msgstr "Esto no es un objeto de \\layout {} , ~S"
 
-#: paper.scm:238
+#: paper.scm:256
 #, scheme-format
-msgid "Unknown papersize: ~a"
+msgid "Unknown paper size: ~a"
 msgstr "Tamaño de papel desconocido: ~a"
 
 #. TODO: should raise (generic) exception with throw, and catch
 #. that in parse-scm.cc
-#: paper.scm:253
+#: paper.scm:271
 msgid "Must use #(set-paper-size .. ) within \\paper { ... }"
 msgstr "Debe usar #(set-paper-size .. ) dentro de \\paper { ... }"
 
index 561104374807ec5fdf21a2c51368d0c6561ea083..c642c85aef68535a62e7d1d212b3e6fa4b3e7547 100644 (file)
--- a/po/fr.po
+++ b/po/fr.po
@@ -3,14 +3,14 @@
 # French translation of GNU/lilypond - http//lilypond.org
 # Copyright © 2004 Free Software Foundation, Inc.
 # Michel Robitaille <robitail@IRO.UMontreal.CA>, 1996-2007.
-# Jean-Charles Malahieude <lolyfan@wanadoo.fr>, 2008
+# Jean-Charles Malahieude <lilyfan@orange.fr>, 2008
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: lilypond 2.11.57\n"
+"Project-Id-Version: lilypond 2.12.0\n"
 "Report-Msgid-Bugs-To: http://post.gmane.org/post.php?group=gmane.comp.gnu.lilypond.bugs\n"
-"POT-Creation-Date: 2008-08-23 18:49+0200\n"
-"PO-Revision-Date: 2008-08-31 23:33+0200\n"
+"POT-Creation-Date: 2008-12-20 11:58+0100\n"
+"PO-Revision-Date: 2008-12-31 13:53+0100\n"
 "Last-Translator: Jean-Charles Malahieude <lilyfan@orange.fr>\n"
 "Language-Team: French <traduc@traduc.org>\n"
 "MIME-Version: 1.0\n"
@@ -34,7 +34,7 @@ msgstr ""
 msgid "%s has been replaced by %s"
 msgstr "%s a été remplacé par %s"
 
-#: convertrules.py:24 musicexp.py:16 convert-ly.py:48 lilypond-book.py:82
+#: convertrules.py:24 musicexp.py:16 convert-ly.py:50 lilypond-book.py:94
 #: warn.cc:48 input.cc:90
 #, c-format, python-format
 msgid "warning: %s"
@@ -431,6 +431,22 @@ msgstr "Axe et direction doivent précéder les étiquettes :\n"
 msgid "\\put-adjacent axis dir markup markup."
 msgstr "\\put-adjacent axe direction étiquette étiquette."
 
+#: convertrules.py:2832
+msgid "re-definition of InnerStaffGroup.\n"
+msgstr "redéfinition de InnerStaffGroup.\n"
+
+#: convertrules.py:2838
+msgid "re-definition of InnerChoirStaff.\n"
+msgstr "redéfinition de InnerChoirStaff.\n"
+
+#: convertrules.py:2851
+msgid "stringTuning must be added to addChordShape call.\n"
+msgstr "stringTuning est requis lors de l'appel à addChordShape. \n"
+
+#: convertrules.py:2857
+msgid "stringTuning must be added to chord-shape call.\n"
+msgstr "stringTuning est requis lors de l'appel à chord-shape.\n"
+
 #: fontextract.py:25
 #, python-format
 msgid "Scanning %s"
@@ -446,56 +462,92 @@ msgstr "Extraction de %s"
 msgid "Writing fonts to %s"
 msgstr "Écriture des fontes vers %s"
 
-#: lilylib.py:101 lilylib.py:152
+#: lilylib.py:91 lilylib.py:142
 #, python-format
 msgid "Invoking `%s'"
 msgstr "Appel de « %s »"
 
-#: lilylib.py:103 lilylib.py:154
+#: lilylib.py:93 lilylib.py:144
 #, python-format
 msgid "Running %s..."
 msgstr "Exécution de %s..."
 
-#: lilylib.py:219
+#: lilylib.py:209
 #, python-format
 msgid "Usage: %s"
 msgstr "Utilisation : %s"
 
-#: musicexp.py:585
+#: musicexp.py:215 musicexp.py:220
+msgid "Language does not support microtones contained in the piece"
+msgstr "Le langage ne prend pas en charge les microintervalles de ce morceau"
+
+#: musicexp.py:482
+msgid "Tuplet brackets of curved shape are not correctly implemented"
+msgstr "La courbure des crochets de nolet n'est pas implémentée de manière optimale"
+
+#. TODO: Implement this using actual_type and normal_type!
+#: musicexp.py:511
+msgid "Tuplet brackets displaying both note durations are not implemented, using default"
+msgstr "Les crochets de nolet indiquant le deux valeurs rythmiques ne sont pas implémentés ; utilisation du style par défaut"
+
+#: musicexp.py:656
 #, python-format
 msgid "unable to set the music %(music)s for the repeat %(repeat)s"
 msgstr "impossible d'affecter le fragment %(music)s à la répétition %(repeat)s"
 
-#: musicexp.py:594
+#: musicexp.py:665
 msgid "encountered repeat without body"
 msgstr "réprise vide détectée"
 
-#: musicxml.py:13 convert-ly.py:51 lilypond-book.py:85 warn.cc:54 input.cc:96
+#. no self.elements!
+#: musicexp.py:835
+#, python-format
+msgid "Grace note with no following music: %s"
+msgstr "Apoggiature non suivie de musique :%s"
+
+#: musicexp.py:997
+#, python-format
+msgid "Invalid octave shift size found: %s. Using no shift."
+msgstr "Décalage d'octave invalide : %s. Décalage non appliqué."
+
+#: musicexp.py:1455
+#, python-format
+msgid "Unable to convert alteration %s to a lilypond expression"
+msgstr "Impossible de convertir l'altération %s en expression LilyPond"
+
+#: musicxml.py:13 convert-ly.py:53 lilypond-book.py:97 warn.cc:54 input.cc:96
 #: input.cc:104
 #, c-format, python-format
 msgid "error: %s"
 msgstr "Erreur : %s"
 
-#: musicxml.py:298
-msgid "requested time signature, but time sig is unknown"
-msgstr "Une métrique est obligatoire, mais la définition trouvée est inconnue"
+#. TODO: Handle pieces without a time signature!
+#: musicxml.py:357
+msgid "Senza-misura time signatures are not yet supported!"
+msgstr "Les métriques « senza-misura » ne sont pas prises en charge."
+
+#: musicxml.py:375
+msgid "Unable to interpret time signature! Falling back to 4/4."
+msgstr "Métrique non interprétable ; retour au 4/4."
 
-#: musicxml.py:354
+#: musicxml.py:431
 #, python-format
-msgid "Encountered note at %s with %s duration (no <type> element):"
-msgstr "Une note se trouve en %s, avec une durée de %s (élément sans <type>) :"
+msgid "Key alteration octave given for a non-existing alteration nr. %s, available numbers: %s!"
+msgstr ""
+"Octave d'altération indiquée pour une altération numéro %s inexistante ;\n"
+"index d'altération disponibles : 1 à %s"
 
-#: musicxml.py:388
+#: musicxml.py:519
 #, python-format
 msgid "Unable to find instrument for ID=%s\n"
 msgstr "Aucun instrument ne correspond à l'ID=%s\n"
 
-#: abc2ly.py:1342 convert-ly.py:72 lilypond-book.py:109 midi2ly.py:846
+#: abc2ly.py:1341 convert-ly.py:74 lilypond-book.py:121 midi2ly.py:845
 #, python-format
 msgid "%s [OPTION]... FILE"
 msgstr "%s [OPTIONS]... FICHIER"
 
-#: abc2ly.py:1343
+#: abc2ly.py:1342
 #, python-format
 msgid ""
 "abc2ly converts ABC music files (see\n"
@@ -504,34 +556,41 @@ msgstr ""
 "abc2ly convertit les fichiers musicaux ABC (voir\n"
 "%s) au format LilyPond.\n"
 
-#: abc2ly.py:1351 convert-ly.py:79 etf2ly.py:1190 lilypond-book.py:195
-#: midi2ly.py:882 musicxml2ly.py:2185 main.cc:161
+#: abc2ly.py:1350 convert-ly.py:81 etf2ly.py:1190 lilypond-book.py:207
+#: midi2ly.py:881 musicxml2ly.py:2590 main.cc:156
 msgid "show version number and exit"
 msgstr "afficher le numéro de version et quitter"
 
-#: abc2ly.py:1355 convert-ly.py:83 etf2ly.py:1186 lilypond-book.py:126
-#: midi2ly.py:861 musicxml2ly.py:2167 main.cc:150
+#: abc2ly.py:1354 convert-ly.py:85 etf2ly.py:1186 lilypond-book.py:138
+#: midi2ly.py:860 musicxml2ly.py:2572 main.cc:145
 msgid "show this help and exit"
 msgstr "visualiser cette aide et quitter"
 
-#: abc2ly.py:1357 etf2ly.py:1191 midi2ly.py:865
+#: abc2ly.py:1356 etf2ly.py:1191 midi2ly.py:864
 msgid "write output to FILE"
 msgstr "produire la sortie dans le FICHIER"
 
-#: abc2ly.py:1359
+#: abc2ly.py:1358
 msgid "be strict about success"
 msgstr "être strict sur la réussite"
 
-#: abc2ly.py:1361
+#: abc2ly.py:1360
 msgid "preserve ABC's notion of beams"
 msgstr "préserver la notion de lien de croches propre à ABC"
 
-#: abc2ly.py:1363 convert-ly.py:120 etf2ly.py:1199 lilypond-book.py:202
-#: midi2ly.py:894 musicxml2ly.py:2240
-msgid "Report bugs via"
-msgstr "Rapporter toute anomalie à"
+#. Translators, please translate this string as
+#. "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:1363 convert-ly.py:123 etf2ly.py:1200 lilypond-book.py:214
+#: midi2ly.py:894 musicxml2ly.py:2646 main.cc:265
+#, c-format, python-format
+msgid "Report bugs via %s"
+msgstr ""
+"Signaler toute anomalie à \n"
+"%s"
 
-#: convert-ly.py:31
+#: convert-ly.py:33
 msgid ""
 "Update LilyPond input to newer version.  By default, update from the\n"
 "version taken from the \\version command, to the current LilyPond version."
@@ -540,72 +599,72 @@ msgstr ""
 "Par défaut, de la version indiquée par la commande \\version \n"
 "vers la version courante de LilyPond."
 
-#: convert-ly.py:33 lilypond-book.py:59
+#: convert-ly.py:35 lilypond-book.py:71
 msgid "Examples:"
 msgstr "Exemples :"
 
-#: convert-ly.py:67 etf2ly.py:1173 lilypond-book.py:105 midi2ly.py:77
+#: convert-ly.py:69 etf2ly.py:1173 lilypond-book.py:117 midi2ly.py:76
 msgid "Distributed under terms of the GNU General Public License."
 msgstr "Distribué selon les termes de la GNU General Public License."
 
-#: convert-ly.py:68 etf2ly.py:1174 lilypond-book.py:106 midi2ly.py:78
+#: convert-ly.py:70 etf2ly.py:1174 lilypond-book.py:118 midi2ly.py:77
 msgid "It comes with NO WARRANTY."
 msgstr "Le logiciel est distribué SANS GARANTIE."
 
-#: convert-ly.py:87 convert-ly.py:114
+#: convert-ly.py:89 convert-ly.py:116
 msgid "VERSION"
 msgstr "VERSION"
 
-#: convert-ly.py:89
+#: convert-ly.py:91
 msgid "start from VERSION [default: \\version found in file]"
 msgstr "partir de la VERSION [par défaut : \\version trouvée dans le fichier]"
 
-#: convert-ly.py:92
+#: convert-ly.py:94
 msgid "edit in place"
 msgstr "éditer le fichier d'origine"
 
-#: convert-ly.py:96
+#: convert-ly.py:98
 msgid "do not add \\version command if missing"
 msgstr "ne pas ajouter la commande \\version si elle est absente"
 
-#: convert-ly.py:102
+#: convert-ly.py:104
 #, python-format
 msgid "force updating \\version number to %s"
 msgstr "forcer la mise à jour de \\version à %s"
 
-#: convert-ly.py:108
+#: convert-ly.py:110
 #, python-format
 msgid "show rules [default: -f 0, -t %s]"
 msgstr "afficher les règles [par défaut : -f 0, -t %s]"
 
-#: convert-ly.py:113
+#: convert-ly.py:115
 #, python-format
 msgid "convert to VERSION [default: %s]"
 msgstr "convertir jusqu'à la VERSION [par défaut : %s]"
 
-#: convert-ly.py:160
+#: convert-ly.py:163
 msgid "Applying conversion: "
 msgstr "Conversion en cours : "
 
-#: convert-ly.py:173
+#: convert-ly.py:176
 msgid "Error while converting"
 msgstr "Erreur lors de la conversion"
 
-#: convert-ly.py:175
-msgid "Stopping at last succesful rule"
-msgstr "Arrêt après la dernière règle appliquée avec succès"
+#: convert-ly.py:178
+msgid "Stopping at last successful rule"
+msgstr "Arrêt à la dernière règle appliquée avec succès"
 
-#: convert-ly.py:196
+#: convert-ly.py:199
 #, python-format
 msgid "Processing `%s'... "
 msgstr "Traitement de « %s »..."
 
-#: convert-ly.py:286 relocate.cc:362 source-file.cc:59
+#: convert-ly.py:289 relocate.cc:362 source-file.cc:59
 #, c-format, python-format
 msgid "cannot open file: `%s'"
 msgstr "Impossible d'ouvrir le fichier : « %s »"
 
-#: convert-ly.py:293
+#: convert-ly.py:296
 #, python-format
 msgid "cannot determine version for `%s'.  Skipping"
 msgstr "impossible de déterminer la version  de « %s ». Au suivant !"
@@ -624,281 +683,281 @@ msgstr ""
 "etf2ly convertit partiellement un fichier ETF en un fichier LilyPond \n"
 "exploitable.\n"
 
-#: etf2ly.py:1192 midi2ly.py:866 musicxml2ly.py:2233 main.cc:154 main.cc:159
+#: etf2ly.py:1192 midi2ly.py:865 musicxml2ly.py:2638 main.cc:149 main.cc:154
 msgid "FILE"
 msgstr "FICHIER"
 
-#: etf2ly.py:1194 lilypond-book.py:198 midi2ly.py:883 main.cc:163
+#: etf2ly.py:1194 lilypond-book.py:210 midi2ly.py:882 main.cc:158
 msgid "show warranty and copyright"
 msgstr "afficher les notices de garantie et du droit d'auteur"
 
-#: lilypond-book.py:57
+#: lilypond-book.py:69
 msgid "Process LilyPond snippets in hybrid HTML, LaTeX, texinfo or DocBook document."
 msgstr ""
 "Traiter les extraits LilyPond dans un document HTML hybride, LaTeX, \n"
 "texinfo ou Docbook."
 
-#: lilypond-book.py:64
+#: lilypond-book.py:76
 msgid "BOOK"
 msgstr "LIVRE"
 
-#: lilypond-book.py:72
+#: lilypond-book.py:84
 #, python-format
 msgid "Exiting (%d)..."
 msgstr "Fin d'exécution (%d)..."
 
-#: lilypond-book.py:103
+#: lilypond-book.py:115
 #, python-format
 msgid "Copyright (c) %s by"
 msgstr "Copyright (c) %s détenu par"
 
-#: lilypond-book.py:113
+#: lilypond-book.py:125
 msgid "FILTER"
 msgstr "FILTRE"
 
-#: lilypond-book.py:116
+#: lilypond-book.py:128
 msgid "pipe snippets through FILTER [default: `convert-ly -n -']"
 msgstr "passer les extraits à travers le FILTRE [par défaut : `convert-ly -n -']"
 
-#: lilypond-book.py:120
+#: lilypond-book.py:132
 msgid "use output format FORMAT (texi [default], texi-html, latex, html, docbook)"
 msgstr ""
 "utiliser le format de sortie FORMAT (texi (par défaut), texi-html, latex, \n"
 "html, docbook)"
 
-#: lilypond-book.py:121
+#: lilypond-book.py:133
 msgid "FORMAT"
 msgstr "FORMAT"
 
-#: lilypond-book.py:128
+#: lilypond-book.py:140
 msgid "add DIR to include path"
 msgstr "ajouter le RÉPERTOIRE au chemin de recherche des inclusions"
 
-#: lilypond-book.py:129 lilypond-book.py:136 lilypond-book.py:154
-#: lilypond-book.py:160 lilypond-book.py:166 lilypond-book.py:172 main.cc:153
+#: lilypond-book.py:141 lilypond-book.py:148 lilypond-book.py:166
+#: lilypond-book.py:172 lilypond-book.py:178 lilypond-book.py:184 main.cc:148
 msgid "DIR"
 msgstr "RÉP"
 
-#: lilypond-book.py:134
+#: lilypond-book.py:146
 msgid "format Texinfo output so that Info will look for images of music in DIR"
 msgstr "formater la sortie Texinfo pour qu'Info cherche les images dans RÉP"
 
-#: lilypond-book.py:141
+#: lilypond-book.py:153
 msgid "run executable PROG instead of latex"
 msgstr "lancer l'exécutable PROG plutôt que latex"
 
-#: lilypond-book.py:142
+#: lilypond-book.py:154
 msgid "PROG"
 msgstr "PROG"
 
-#: lilypond-book.py:147
+#: lilypond-book.py:159
 msgid "PAD"
 msgstr "PAD"
 
-#: lilypond-book.py:149
+#: lilypond-book.py:161
 msgid "pad left side of music to align music inspite of uneven bar numbers (in mm)"
 msgstr ""
 "Tasser la musique par la gauche pour la répartir en dépit du nombre irrégulier \n"
 "de mesures (en mm)"
 
-#: lilypond-book.py:153
+#: lilypond-book.py:165
 msgid "write output to DIR"
 msgstr "produire la sortie dans le RÉPERTOIRE"
 
-#: lilypond-book.py:159
+#: lilypond-book.py:171
 msgid "do not fail if no lilypond output is found"
 msgstr "poursuivre même s'il n'y a pas de sortie lilypond"
 
-#: lilypond-book.py:165
+#: lilypond-book.py:177
 msgid "do not fail if no PNG images are found for EPS files"
 msgstr "poursuivre même s'il n'y a pas d'image PNG pour les fichiers EPS"
 
-#: lilypond-book.py:171
+#: lilypond-book.py:183
 msgid "write lily-XXX files to DIR, link into --output dir"
 msgstr "écrire les fichiers lily-XXX dans RÉP, et lier à --output rép"
 
-#: lilypond-book.py:176
+#: lilypond-book.py:188
 msgid "COMMAND"
 msgstr "COMMANDE"
 
-#: lilypond-book.py:177
+#: lilypond-book.py:189
 msgid "process ly_files using COMMAND FILE..."
 msgstr "Traîter ly_files en utilisant COMMANDE FICHIER..."
 
-#: lilypond-book.py:184
+#: lilypond-book.py:196
 msgid "create PDF files for use with PDFTeX"
 msgstr "Créer des fichiers PDF pour utilisation par PDFTeX"
 
-#: lilypond-book.py:187 midi2ly.py:876 musicxml2ly.py:2190 main.cc:162
+#: lilypond-book.py:199 midi2ly.py:875 musicxml2ly.py:2595 main.cc:157
 msgid "be verbose"
 msgstr "Passer en mode verbeux"
 
-#: lilypond-book.py:825
+#: lilypond-book.py:871
 #, python-format
 msgid "file not found: %s"
 msgstr "fichier non trouvé : %s"
 
-#: lilypond-book.py:1087
+#: lilypond-book.py:1142
 #, python-format
 msgid "deprecated ly-option used: %s=%s"
 msgstr "option ly-option obsolète : %s=%s"
 
-#: lilypond-book.py:1089
+#: lilypond-book.py:1144
 #, python-format
 msgid "compatibility mode translation: %s=%s"
 msgstr "bascule en mode de compatibilité : %s=%s"
 
-#: lilypond-book.py:1092
+#: lilypond-book.py:1147
 #, python-format
 msgid "deprecated ly-option used: %s"
 msgstr "option ly-option obsolète : %s"
 
-#: lilypond-book.py:1094
+#: lilypond-book.py:1149
 #, python-format
 msgid "compatibility mode translation: %s"
 msgstr "bascule en mode de compatibilité : %s"
 
-#: lilypond-book.py:1112
+#: lilypond-book.py:1167
 #, python-format
 msgid "ignoring unknown ly option: %s"
 msgstr "option ly inconnue et ignorée : %s"
 
-#: lilypond-book.py:1538
+#: lilypond-book.py:1604
 #, python-format
 msgid "Opening filter `%s'"
 msgstr "Ouverture du filtre « %s »"
 
-#: lilypond-book.py:1555
+#: lilypond-book.py:1621
 #, python-format
 msgid "`%s' failed (%d)"
 msgstr "« %s » a échoué (%d)"
 
-#: lilypond-book.py:1556
+#: lilypond-book.py:1622
 msgid "The error log is as follows:"
 msgstr "Voici le journal d'erreurs :"
 
-#: lilypond-book.py:1618
+#: lilypond-book.py:1684
 msgid "cannot find \\begin{document} in LaTeX document"
 msgstr "Impossible de trouver \\begin{document} dans le document LaTeX."
 
-#: lilypond-book.py:1718
+#: lilypond-book.py:1784
 msgid "Writing snippets..."
 msgstr "Écriture des extraits..."
 
-#: lilypond-book.py:1724
+#: lilypond-book.py:1790
 msgid "Processing..."
 msgstr "Traitement..."
 
-#: lilypond-book.py:1730
+#: lilypond-book.py:1796
 msgid "All snippets are up to date..."
 msgstr "Tous les extraits sont à jour..."
 
-#: lilypond-book.py:1764
+#: lilypond-book.py:1830
 #, python-format
 msgid "cannot determine format for: %s"
 msgstr "format indéterminé pour %s"
 
-#: lilypond-book.py:1775
+#: lilypond-book.py:1841
 #, python-format
 msgid "%s is up to date."
 msgstr "%s est à jour."
 
-#: lilypond-book.py:1789
+#: lilypond-book.py:1855
 #, python-format
 msgid "Writing `%s'..."
 msgstr "Écriture de « %s »..."
 
-#: lilypond-book.py:1847
+#: lilypond-book.py:1913
 msgid "Output would overwrite input file; use --output."
 msgstr "La sortie va écraser le fichier d'entrée ; utiliser --output"
 
-#: lilypond-book.py:1851
+#: lilypond-book.py:1917
 #, python-format
 msgid "Reading %s..."
 msgstr "Lecture en cours de %s..."
 
-#: lilypond-book.py:1870
+#: lilypond-book.py:1937
 msgid "Dissecting..."
 msgstr "Dissection en cours..."
 
-#: lilypond-book.py:1886
+#: lilypond-book.py:1953
 #, python-format
 msgid "Compiling %s..."
 msgstr "Compilation de %s..."
 
-#: lilypond-book.py:1895
+#: lilypond-book.py:1962
 #, python-format
 msgid "Processing include: %s"
 msgstr "Traitement d'inclusion : %s"
 
-#: lilypond-book.py:1907
+#: lilypond-book.py:1974
 #, python-format
 msgid "Removing `%s'"
 msgstr "Suppression de « %s »"
 
-#: midi2ly.py:85 lily-library.scm:620 lily-library.scm:629
+#: midi2ly.py:84 lily-library.scm:634 lily-library.scm:643
 msgid "warning: "
 msgstr "Avertissement : "
 
-#: midi2ly.py:88 midi2ly.py:907
+#: midi2ly.py:87 midi2ly.py:907
 msgid "error: "
 msgstr "Erreur : "
 
-#: midi2ly.py:89
+#: midi2ly.py:88
 msgid "Exiting... "
 msgstr "Fin d'exécution... "
 
-#: midi2ly.py:834
+#: midi2ly.py:833
 #, python-format
 msgid "%s output to `%s'..."
 msgstr "%s reproduit dans « %s »..."
 
-#: midi2ly.py:847
+#: midi2ly.py:846
 #, python-format
 msgid "Convert %s to LilyPond input.\n"
 msgstr "Convertir %s au format source LilyPond.\n"
 
-#: midi2ly.py:852
+#: midi2ly.py:851
 msgid "print absolute pitches"
 msgstr "afficher des tons absolus"
 
-#: midi2ly.py:854 midi2ly.py:869
+#: midi2ly.py:853 midi2ly.py:868
 msgid "DUR"
 msgstr "DUR"
 
-#: midi2ly.py:855
+#: midi2ly.py:854
 msgid "quantise note durations on DUR"
 msgstr "quantifier les durées de note d'après DUR"
 
-#: midi2ly.py:858
+#: midi2ly.py:857
 msgid "print explicit durations"
 msgstr "écrire des durées explicites"
 
-#: midi2ly.py:862
+#: midi2ly.py:861
 msgid "set key: ALT=+sharps|-flats; MINOR=1"
 msgstr "définir l'armure : ALT=+dièse|-bémol; MINEUR=1"
 
-#: midi2ly.py:863
+#: midi2ly.py:862
 msgid "ALT[:MINOR]"
 msgstr "ALT[:MINEUR]"
 
-#: midi2ly.py:868
+#: midi2ly.py:867
 msgid "quantise note starts on DUR"
 msgstr "quantifier les débuts de note sur DUR"
 
-#: midi2ly.py:871
+#: midi2ly.py:870
 msgid "DUR*NUM/DEN"
 msgstr "DUR*NUM/DEN"
 
-#: midi2ly.py:874
+#: midi2ly.py:873
 msgid "allow tuplet durations DUR*NUM/DEN"
 msgstr "permettre des n-olets de durée DUR*NUM/DEN"
 
-#: midi2ly.py:886
+#: midi2ly.py:885
 msgid "treat every text as a lyric"
 msgstr "traiter chaque texte comme des paroles"
 
-#: midi2ly.py:889
+#: midi2ly.py:888
 msgid "Examples"
 msgstr "Exemples"
 
@@ -906,105 +965,133 @@ msgstr "Exemples"
 msgid "no files specified on command line."
 msgstr "aucun fichier spéficié sur la ligne de commande."
 
-#: musicxml2ly.py:213
+#: musicxml2ly.py:343
 msgid "Encountered file created by Dolet 3.4 for Sibelius, containing wrong beaming information. All beaming information in the MusicXML file will be ignored"
 msgstr ""
 "Détection d'un fichier créé par Dolet 3.4 pour Sibelius et contenant des \n"
 "informations de lien erronées. Toutes les informations de ligature du fichier \n"
 "MusicXML seront ignorées"
 
-#: musicxml2ly.py:229 musicxml2ly.py:231
+#: musicxml2ly.py:346
+msgid "Encountered file created by Noteworthy Composer's nwc2xml, containing wrong beaming information. All beaming information in the MusicXML file will be ignored"
+msgstr ""
+"Détection d'un fichier créé par Noteworthy Composer's nwc2xml et contenant des \n"
+"informations de lien erronées. Toutes les informations de ligature du fichier \n"
+"MusicXML seront ignorées"
+
+#: musicxml2ly.py:362 musicxml2ly.py:364
 #, python-format
 msgid "Unprocessed PartGroupInfo %s encountered"
 msgstr "PartGroupInfo %s détecté, mais non traité"
 
-#: musicxml2ly.py:471
+#: musicxml2ly.py:594
+#, python-format
+msgid "Encountered note at %s without type and duration (=%s)"
+msgstr "Une note se trouve en %s, sans type ni durée (=%s)"
+
+#: musicxml2ly.py:613
 #, python-format
 msgid "Encountered rational duration with denominator %s, unable to convert to lilypond duration"
 msgstr ""
 "Durée rationnelle au dénominateur de %s détectée ; \n"
 "impossible de traduire en durée LilyPond"
 
-#: musicxml2ly.py:654
+#: musicxml2ly.py:868
+msgid "Unable to extract key signature!"
+msgstr "Impossible de trouver l'armure."
+
+#: musicxml2ly.py:895
 #, python-format
-msgid "unknown mode %s, expecting 'major' or 'minor'"
-msgstr "%s : mode inconnu. Devrait être « majeur » ou « mineur »"
+msgid "unknown mode %s, expecting 'major' or 'minor' or a church mode!"
+msgstr "%s : mode inconnu. Devrait être « majeur », « mineur » ou « mode d'église »"
 
-#: musicxml2ly.py:692
+#: musicxml2ly.py:968
 #, python-format
 msgid "Encountered unprocessed marker %s\n"
 msgstr "Détection d'un marqueur non traité : %s\n"
 
-#: musicxml2ly.py:786
+#: musicxml2ly.py:1062
 #, python-format
 msgid "unknown span event %s"
 msgstr "Événement de prolongation inconnu : « %s »"
 
-#: musicxml2ly.py:796
+#: musicxml2ly.py:1072
 #, python-format
 msgid "unknown span type %s for %s"
 msgstr "%s n'est pas un type de prolongateur reconnu pour %s"
 
-#: musicxml2ly.py:1222
+#: musicxml2ly.py:1498
 msgid "Unknown metronome mark, ignoring"
 msgstr "Indication métronomique inconnue et ignorée."
 
 #. TODO: Implement the other (more complex) way for tempo marks!
-#: musicxml2ly.py:1227
+#: musicxml2ly.py:1503
 msgid "Metronome marks with complex relations (<metronome-note> in MusicXML) are not yet implemented."
 msgstr ""
 "Les indications métronomiques aux relations complexes (<metronome-note> pour \n"
 "MusicXML) n'ont pas encore été implémentées."
 
-#: musicxml2ly.py:1383
+#: musicxml2ly.py:1703
 #, python-format
 msgid "Unable to convert chord type %s to lilypond."
 msgstr "Impossible de convertir le type d'accord %s au format LilyPond"
 
-#: musicxml2ly.py:1529
+#: musicxml2ly.py:1849
 #, python-format
 msgid "drum %s type unknown, please add to instrument_drumtype_dict"
 msgstr ""
 "%s n'est pas un type de percussion connu. \n"
 "L'ajouter à instrument_drumtype_dict"
 
-#: musicxml2ly.py:1533
+#: musicxml2ly.py:1853
 msgid "cannot find suitable event"
 msgstr "Aucun événement correspondant"
 
-#: musicxml2ly.py:1623
+#: musicxml2ly.py:1994
 #, python-format
-msgid "Negative skip %s"
-msgstr "Retour en arrière de %s"
+msgid "Negative skip %s (from position %s to %s)"
+msgstr "Retour en arrière de %s (partant de %s et jusqu'à %s)"
 
-#: musicxml2ly.py:1775
+#: musicxml2ly.py:2134
 #, python-format
 msgid "Negative skip found: from %s to %s, difference is %s"
 msgstr "Retour en arrière, de %s à %s ; différence = %s"
 
-#: musicxml2ly.py:1802
+#: musicxml2ly.py:2205
 #, python-format
 msgid "unexpected %s; expected %s or %s or %s"
 msgstr "%s détecté, au lieu de %s, %s ou %s"
 
-#: musicxml2ly.py:1912
-msgid "cannot have two simultaneous slurs"
+#: musicxml2ly.py:2311
+msgid "Encountered closing slur, but no slur is open"
+msgstr "Terminaison d'une liaison qui n'a pas été débutée"
+
+#: musicxml2ly.py:2314
+msgid "Cannot have two simultaneous (closing) slurs"
+msgstr "deux liaisons ne peuvent se terminer simultanément"
+
+#: musicxml2ly.py:2324
+msgid "Cannot have a slur inside another slur"
+msgstr "des liaisons ne peuvent s'imbriquer"
+
+#: musicxml2ly.py:2327
+msgid "Cannot have two simultaneous slurs"
 msgstr "deux liaisons ne peuvent intervenir simultanément"
 
-#: musicxml2ly.py:2050
+#: musicxml2ly.py:2455
 #, python-format
 msgid "cannot simultaneously have more than one mode: %s"
 msgstr "SVP, un seul mode à la fois : %s"
 
-#: musicxml2ly.py:2148
+#: musicxml2ly.py:2553
 msgid "Converting to LilyPond expressions..."
 msgstr "Conversion en expressions LilyPond..."
 
-#: musicxml2ly.py:2159
+#: musicxml2ly.py:2564
 msgid "musicxml2ly [OPTION]... FILE.xml"
 msgstr "musicxml2ly [options]... FICHIER.xml"
 
-#: musicxml2ly.py:2161
+#: musicxml2ly.py:2566
 msgid ""
 "Convert MusicXML from FILE.xml to LilyPond input.\n"
 "If the given filename is -, musicxml2ly reads from the command line.\n"
@@ -1012,93 +1099,93 @@ msgstr ""
 "Convertit FICHIER.xml (MusicXML) au format LilyPnd.\n"
 "Si le nom du fichier est « - », musicxml2ly lira la ligne de commande.\n"
 
-#: musicxml2ly.py:2171
+#: musicxml2ly.py:2576
 msgid ""
-"Copyright (c) 2005--2008 by\n"
+"Copyright (c) 2005--2009 by\n"
 "    Han-Wen Nienhuys <hanwen@xs4all.nl>,\n"
 "    Jan Nieuwenhuizen <janneke@gnu.org> and\n"
 "    Reinhold Kainhofer <reinhold@kainhofer.com>\n"
 msgstr ""
-"Copyright (c) 2005--2008 by\n"
+"Copyright (c) 2005--2009 by\n"
 "    Han-Wen Nienhuys <hanwen@xs4all.nl>,\n"
 "    Jan Nieuwenhuizen <janneke@gnu.org> and\n"
 "    Reinhold Kainhofer <reinhold@kainhofer.com>\n"
 
-#: musicxml2ly.py:2196
+#: musicxml2ly.py:2601
 msgid "use lxml.etree; uses less memory and cpu time"
 msgstr ""
 "Utiliser lxml.etree pour consommer moins de mémoire \n"
 "et de temps processeur."
 
-#: musicxml2ly.py:2202
+#: musicxml2ly.py:2607
 msgid "input file is a zip-compressed MusicXML file"
 msgstr "le fichier d'entrée est un fichier MusicXML compressé"
 
-#: musicxml2ly.py:2208
+#: musicxml2ly.py:2613
 msgid "convert pitches in relative mode (default)"
 msgstr "convertir les hauteurs en mode relatif (par défaut)"
 
-#: musicxml2ly.py:2213
+#: musicxml2ly.py:2618
 msgid "convert pitches in absolute mode"
 msgstr "convertir les hauteurs en mode absolu"
 
-#: musicxml2ly.py:2216
+#: musicxml2ly.py:2621
 msgid "LANG"
 msgstr "LANG"
 
-#: musicxml2ly.py:2218
+#: musicxml2ly.py:2623
 msgid "use a different language file 'LANG.ly' and corresponding pitch names, e.g. 'deutsch' for deutsch.ly"
 msgstr ""
 "utiliser un autre fichier linguistique « lang.ly » et ses noms de notes, \n"
 "comme « deutsch » pour deutsch.ly"
 
-#: musicxml2ly.py:2224
+#: musicxml2ly.py:2629
 msgid "do not convert directions (^, _ or -) for articulations, dynamics, etc."
 msgstr ""
 "ne pas convertir les emplacements (^, _ ou -) des articulations, \n"
 "nuances, etc."
 
-#: musicxml2ly.py:2230
+#: musicxml2ly.py:2635
 msgid "do not convert beaming information, use lilypond's automatic beaming instead"
 msgstr ""
 "ne pas convertir les informations de ligature ; \n"
 "laisser LilyPond gérer les ligatures automatiques"
 
-#: musicxml2ly.py:2238
+#: musicxml2ly.py:2643
 msgid "set output filename to FILE, stdout if -"
 msgstr "produire la sortie dans FICHIER (stdout si -)"
 
-#: musicxml2ly.py:2320
+#: musicxml2ly.py:2726
 #, python-format
 msgid "unknown part in part-list: %s"
 msgstr "la partie %s n'est pas mentionnée dans part-list"
 
-#: musicxml2ly.py:2382
+#: musicxml2ly.py:2788
 msgid "Input is compressed, extracting raw MusicXML data from stdin"
 msgstr "Le fichier d'entrée est compressé. Extraction des données MusicXML brutes"
 
-#: musicxml2ly.py:2385
+#: musicxml2ly.py:2791
 #, python-format
 msgid "Input file %s is compressed, extracting raw MusicXML data"
 msgstr ""
 "Le fichier d'entrée (%s) est compressé. \n"
 "Extraction des données MusicXML brutes"
 
-#: musicxml2ly.py:2415
+#: musicxml2ly.py:2821
 msgid "Reading MusicXML from Standard input ..."
 msgstr "Lecture du fichier MusicXML à partir de l'entrée standard..."
 
-#: musicxml2ly.py:2417
+#: musicxml2ly.py:2823
 #, python-format
 msgid "Reading MusicXML from %s ..."
 msgstr "Lecture du fichier MusicXML %s..."
 
-#: musicxml2ly.py:2450
+#: musicxml2ly.py:2856
 #, python-format
 msgid "Output to `%s'"
 msgstr "Fichier de sortie : « %s »"
 
-#: musicxml2ly.py:2512
+#: musicxml2ly.py:2922
 #, python-format
 msgid "Unable to find input file %s"
 msgstr "impossible de trouver le fichier d'entrée : « %s »"
@@ -1132,23 +1219,18 @@ msgstr "erreur de programmation : %s"
 msgid "continuing, cross fingers"
 msgstr "poursuite ; croisons les doigts."
 
-#: accidental-engraver.cc:249
+#: accidental-engraver.cc:298
 #, c-format
 msgid "accidental typesetting list must begin with context-name: %s"
 msgstr ""
 "La saisie d'une liste d'altérations accidentelles doit débuter \n"
 "par un nom de contexte : %s"
 
-#: accidental-engraver.cc:276
+#: accidental-engraver.cc:328
 #, c-format
-msgid "ignoring unknown accidental rule: %s"
-msgstr "altération accidentelle inconnue, donc ignorée : %s"
-
-#: accidental-engraver.cc:292
-#, c-format
-msgid "pair or context-name expected for accidental rule, found %s"
+msgid "procedure or context-name expected for accidental rule, found %s"
 msgstr ""
-"paire ou nom de contexte requis pour la règle d'altération accidentelle,\n"
+"procédure ou nom de contexte requis pour la règle d'altération accidentelle,\n"
 "%s trouvé"
 
 #: accidental.cc:187
@@ -1374,6 +1456,26 @@ msgstr "(de)crescendo non terminé"
 msgid "unterminated extender"
 msgstr "prolongation non terminée"
 
+#: font-config-scheme.cc:140 font-config.cc:57
+#, c-format
+msgid "failed adding font directory: %s"
+msgstr "échec lors de l'ajout d'un répertoire de fontes : « %s »"
+
+#: font-config-scheme.cc:142 font-config.cc:59
+#, c-format
+msgid "adding font directory: %s"
+msgstr "ajout d'un répertoire de fontes : « %s »"
+
+#: font-config-scheme.cc:156
+#, c-format
+msgid "failed adding font file: %s"
+msgstr "échec lors de l'ajout d'un fichier de fontes : « %s »"
+
+#: font-config-scheme.cc:158
+#, c-format
+msgid "adding font file: %s"
+msgstr "ajout d'un fichier de fontes : « %s »"
+
 #: font-config.cc:28
 msgid "Initializing FontConfig..."
 msgstr "Initialisation de FontConfig..."
@@ -1383,15 +1485,9 @@ msgstr "Initialisation de FontConfig..."
 msgid "Rebuilding FontConfig cache %s, this may take a while..."
 msgstr "Reconstitution du cache FontConfig %s. Patientez..."
 
-#: font-config.cc:57
-#, c-format
-msgid "failed adding font directory: %s"
-msgstr "échec lors de l'ajout d'un répertoire de fontes : « %s »"
-
-#: font-config.cc:59
-#, c-format
-msgid "adding font directory: %s"
-msgstr "ajout d'un répertoire de fontes : « %s »"
+#: font-config.cc:63
+msgid "Building font database."
+msgstr "Construction de la base de donnée des fontes."
 
 #: general-scheme.cc:202
 msgid "infinity or NaN encountered while converting Real number"
@@ -1401,7 +1497,7 @@ msgstr "Infini ou valeur non numérique rencontré lors de la conversion d'un no
 msgid "setting to zero"
 msgstr "initialisation à zéro"
 
-#: general-scheme.cc:422 output-ps.scm:62
+#: general-scheme.cc:422 output-ps.scm:63
 msgid "Found infinity or nan in output. Substituting 0.0"
 msgstr ""
 "La sortie contient l'infini ou une valeur non numérique. \n"
@@ -1564,16 +1660,16 @@ msgstr ""
 "la vérification du type de « %s » a échoué ; \n"
 "   la valeur « %s » doit être du type « %s »"
 
-#: lily-lexer.cc:251
+#: lily-lexer.cc:252
 msgid "include files are not allowed in safe mode"
 msgstr "l'inclusion de fichiers n'est pas permise en mode sans échec"
 
-#: lily-lexer.cc:270
+#: lily-lexer.cc:271
 #, c-format
 msgid "identifier name is a keyword: `%s'"
 msgstr "Le nom de l'identificateur est un mot clé : « %s »"
 
-#: lily-lexer.cc:285
+#: lily-lexer.cc:286
 #, c-format
 msgid "error at EOF: %s"
 msgstr "erreur à la fin du fichier (EOF) : %s"
@@ -1598,11 +1694,11 @@ msgstr "impossible de trouver le fichier d'initialisation : « %s »"
 msgid "Processing `%s'"
 msgstr "Traitement de « %s »"
 
-#: lily-parser.cc:99
+#: lily-parser.cc:95
 msgid "Parsing..."
 msgstr "Analyse..."
 
-#: lily-parser.cc:127
+#: lily-parser.cc:123
 msgid "braces do not match"
 msgstr "accolades non pairées"
 
@@ -1615,7 +1711,7 @@ msgstr "impossible de repérer la voix (Voice) « %s »"
 msgid "Lyric syllable does not have note. Use \\lyricsto or associatedVoice."
 msgstr "Syllabe sans note de rattachement. Utiliser \\lyricsto ou associatedVoice."
 
-#: main.cc:100
+#: main.cc:97
 #, c-format
 msgid ""
 "This program is free software.  It is covered by the GNU General Public\n"
@@ -1628,7 +1724,7 @@ msgstr ""
 "sous certaines conditions.\n"
 "Invoquez « %s --warranty » pour plus d'informations.\n"
 
-#: main.cc:106
+#: main.cc:103
 msgid ""
 "    This program is free software; you can redistribute it and/or\n"
 "modify it under the terms of the GNU General Public License version 2\n"
@@ -1658,11 +1754,11 @@ msgstr ""
 " écrire à la Free Software Foundation, Inc., 59 Temple Place - Suite 330, \n"
 "Boston, MA 02111-1307, USA.\n"
 
-#: main.cc:137
+#: main.cc:134
 msgid "SYM[=VAL]"
 msgstr "SYM[=VAL]"
 
-#: main.cc:138
+#: main.cc:135
 msgid ""
 "set Scheme option SYM to VAL (default: #t).\n"
 "Use -dhelp for help."
@@ -1671,51 +1767,43 @@ msgstr ""
 "à l'option Scheme SYM.\n"
 "Utiliser -dhelp pour avoir de l'aide."
 
-#: main.cc:141
+#: main.cc:138
 msgid "EXPR"
 msgstr "EXPR"
 
-#: main.cc:141
+#: main.cc:138
 msgid "evaluate scheme code"
 msgstr "évaluation du code Scheme"
 
 #. Bug in option parser: --output =foe is taken as an abbreviation
 #. for --output-format.
-#: main.cc:144
+#: main.cc:141
 msgid "FORMATs"
 msgstr "FORMATs"
 
-#: main.cc:144
+#: main.cc:141
 msgid "dump FORMAT,...  Also as separate options:"
 msgstr ""
 "produire FORMAT,...\n"
 "Aussi comme options séparées :"
 
-#: main.cc:145
-msgid "generate DVI (tex backend only)"
-msgstr "générer le DVI (uniquement pour tex)"
-
-#: main.cc:146
+#: main.cc:142
 msgid "generate PDF (default)"
 msgstr "générer le PDF (par défaut)"
 
-#: main.cc:147
+#: main.cc:143
 msgid "generate PNG"
 msgstr "générer le PNG"
 
-#: main.cc:148
+#: main.cc:144
 msgid "generate PostScript"
 msgstr "générer le PostScript"
 
-#: main.cc:149
-msgid "generate TeX (tex backend only)"
-msgstr "générer le TeX (uniquement pour tex)"
-
-#: main.cc:151
+#: main.cc:146
 msgid "FIELD"
 msgstr "CHAMP"
 
-#: main.cc:151
+#: main.cc:146
 msgid ""
 "dump header field FIELD to file\n"
 "named BASENAME.FIELD"
@@ -1723,21 +1811,21 @@ msgstr ""
 "écrire le champ d'en-tête CHAMP dans le\n"
 "fichier nommé BASENAME.CHAMP"
 
-#: main.cc:153
+#: main.cc:148
 msgid "add DIR to search path"
 msgstr "ajouter RÉPERTOIRE au chemin de recherche"
 
-#: main.cc:154
+#: main.cc:149
 msgid "use FILE as init file"
 msgstr ""
 "utiliser FICHIER comme\n"
 "fichier d'initialisation"
 
-#: main.cc:156
+#: main.cc:151
 msgid "USER, GROUP, JAIL, DIR"
 msgstr "USER,GROUP,CAGE,RÉP"
 
-#: main.cc:156
+#: main.cc:151
 msgid ""
 "chroot to JAIL, become USER:GROUP\n"
 "and cd into DIR"
@@ -1745,19 +1833,19 @@ msgstr ""
 "chroot dans CAGE, devenir UTILISATEUR:GROUPE\n"
 "et cd dans RÉPERTOIRE"
 
-#: main.cc:159
+#: main.cc:154
 msgid "write output to FILE (suffix will be added)"
 msgstr ""
 "produire la sortie dans FICHIER \n"
 "(adjonction automatique du suffixe)"
 
-#: main.cc:160
+#: main.cc:155
 msgid "relocate using directory of lilypond program"
 msgstr ""
 "redétermine le chemin d'exécution\n"
 "des composants de LilyPond"
 
-#: main.cc:226
+#: main.cc:221
 #, c-format
 msgid ""
 "Copyright (c) %s by\n"
@@ -1767,88 +1855,81 @@ msgstr ""
 "%s et autres."
 
 #. No version number or newline here.  It confuses help2man.
-#: main.cc:254
+#: main.cc:249
 #, c-format
 msgid "Usage: %s [OPTION]... FILE..."
 msgstr "Utilisation : %s [OPTIONS]... FICHIER..."
 
-#: main.cc:256
+#: main.cc:251
 #, c-format
 msgid "Typeset music and/or produce MIDI from FILE."
 msgstr "Composer la musique ou jouer en format MIDI à partir du FICHIER"
 
-#: main.cc:258
+#: main.cc:253
 #, c-format
 msgid "LilyPond produces beautiful music notation."
 msgstr "LilyPond produit une jolie notation musicale"
 
-#: main.cc:260
+#: main.cc:255
 #, c-format
 msgid "For more information, see %s"
 msgstr "Pour plus d'informations, voir %s"
 
-#: main.cc:262
+#: main.cc:257
 #, c-format
 msgid "Options:"
 msgstr "Options :"
 
-#: main.cc:266
-#, c-format
-msgid "Report bugs via %s"
-msgstr ""
-"Signaler toute anomalie à \n"
-"%s"
-
-#: main.cc:312
+#: main.cc:311
 #, c-format
 msgid "expected %d arguments with jail, found: %u"
 msgstr "une cage requiert %d arguments, il y en a %u"
 
-#: main.cc:326
+#: main.cc:325
 #, c-format
 msgid "no such user: %s"
 msgstr "utilisateur inconnu : « %s »"
 
-#: main.cc:328
+#: main.cc:327
 #, c-format
 msgid "cannot get user id from user name: %s: %s"
 msgstr ""
 "impossible de repérer l'identifiant utilisateur à partir du nom d'utilisateur :\n"
 "%s : %s"
 
-#: main.cc:343
+#: main.cc:342
 #, c-format
 msgid "no such group: %s"
 msgstr "groupe inconnu : %s"
 
-#: main.cc:345
+#: main.cc:344
 #, c-format
 msgid "cannot get group id from group name: %s: %s"
 msgstr ""
 "impossible de repérer l'identifiant groupe à partir du nom de groupe :\n"
 "%s : %s "
 
-#: main.cc:353
+#: main.cc:352
 #, c-format
 msgid "cannot chroot to: %s: %s"
 msgstr "impossible de chrooter vers : %s : %s"
 
-#: main.cc:360
+#: main.cc:359
 #, c-format
 msgid "cannot change group id to: %d: %s"
 msgstr "impossible de changer l'identifiant de groupe en : %d : %s"
 
-#: main.cc:366
+#: main.cc:365
 #, c-format
 msgid "cannot change user id to: %d: %s"
 msgstr "impossible de changer l'identifiant utilisateur en : %d : %s"
 
-#: main.cc:372
+#: main.cc:371
 #, c-format
 msgid "cannot change working directory to: %s: %s"
 msgstr "impossible de changer le répertoire de travail en : %s : %s"
 
-#: main.cc:619
+#: main.cc:611
 #, c-format
 msgid "exception caught: %s"
 msgstr "exception capturée : %s"
@@ -1933,8 +2014,12 @@ msgstr "impossible d'ouvrir le fichier en écriture : %s : %s"
 msgid "cannot write to file: `%s'"
 msgstr "impossible d'écrire dans le fichier : « %s »"
 
-#: minimal-page-breaking.cc:42
-msgid "Computing page breaks..."
+#: minimal-page-breaking.cc:38 paper-score.cc:105
+msgid "Calculating line breaks..."
+msgstr "Calcul des sauts de ligne..."
+
+#: minimal-page-breaking.cc:42 layout-page-layout.scm:463
+msgid "Calculating page breaks..."
 msgstr "Calcul des sauts de page..."
 
 #: music-iterator.cc:171
@@ -1951,7 +2036,7 @@ msgstr "Échec de vérification d'octave. Aurait dû être \"%s\", \"%s\" obtenu
 msgid "transposition by %s makes alteration larger than double"
 msgstr "La transposition de %s crée des altérations supérieures aux doubles"
 
-#: new-dynamic-engraver.cc:128
+#: new-dynamic-engraver.cc:129
 #, c-format
 msgid ""
 "unknown crescendo style: %s\n"
@@ -2029,21 +2114,21 @@ msgstr "FT_Get_Glyph_Name () erreur : %s"
 msgid "Finding the ideal number of pages..."
 msgstr "Détermination du nombre optimal de pages..."
 
-#: optimal-page-breaking.cc:76
+#: optimal-page-breaking.cc:78
 msgid "Fitting music on 1 page..."
 msgstr "Répartition de la musique sur une page..."
 
-#: optimal-page-breaking.cc:78
+#: optimal-page-breaking.cc:80
 #, c-format
 msgid "Fitting music on %d pages..."
 msgstr "Répartition de la musique sur %d pages..."
 
-#: optimal-page-breaking.cc:80
+#: optimal-page-breaking.cc:82
 #, c-format
 msgid "Fitting music on %d or %d pages..."
 msgstr "Répartition de la musique sur %d ou %d pages..."
 
-#: optimal-page-breaking.cc:157 page-turn-page-breaking.cc:226
+#: optimal-page-breaking.cc:159 page-turn-page-breaking.cc:226
 #: paper-score.cc:146
 msgid "Drawing systems..."
 msgstr "Dessin des systèmes..."
@@ -2118,10 +2203,6 @@ msgstr ""
 msgid "Layout output to `%s'..."
 msgstr "Sortie mise en page vers « %s »..."
 
-#: paper-score.cc:105
-msgid "Calculating line breaks..."
-msgstr "Calcul des sauts de ligne..."
-
 #: paper-score.cc:118
 #, c-format
 msgid "Element count %d (spanners %d) "
@@ -2135,7 +2216,7 @@ msgstr "Pré-traitement des éléments graphiques..."
 msgid "GUILE signaled an error for the expression beginning here"
 msgstr "GUILE a signalé une erreur pour l'expression débutant ici"
 
-#: percent-repeat-engraver.cc:200
+#: percent-repeat-engraver.cc:202
 msgid "unterminated percent repeat"
 msgstr "répétition en pourcent non terminée"
 
@@ -2151,12 +2232,12 @@ msgstr "Bouclage du canal MIDI"
 msgid "remapping modulo 16"
 msgstr "réaffectation modulo 16"
 
-#: performance.cc:101
+#: performance.cc:100
 #, c-format
 msgid "MIDI output to `%s'..."
 msgstr "Sortie MIDI vers « %s »..."
 
-#: phrasing-slur-engraver.cc:139
+#: phrasing-slur-engraver.cc:146
 msgid "unterminated phrasing slur"
 msgstr "liaison de phrasé non terminée"
 
@@ -2323,7 +2404,7 @@ msgstr "liaison non terminée"
 msgid "cannot end slur"
 msgstr "impossible de terminer la liaison"
 
-#: slur.cc:357
+#: slur.cc:359
 #, c-format
 msgid "Ignoring grob for slur: %s. avoid-slur not set?"
 msgstr ""
@@ -2362,12 +2443,12 @@ msgstr "la source devrait spécifier des voix polyphoniques"
 msgid "weird stem size, check for narrow beams"
 msgstr "taille de hampe bizarre ; vérifier la présence de liens étroits"
 
-#: stem.cc:627
+#: stem.cc:623
 #, c-format
 msgid "flag `%s' not found"
 msgstr "crochet inconnu : « %s »"
 
-#: stem.cc:638
+#: stem.cc:639
 #, c-format
 msgid "flag stroke `%s' not found"
 msgstr "type de crochet inconnu : « %s »"
@@ -2493,40 +2574,40 @@ msgstr "a déjà une extension terminée"
 msgid "giving up"
 msgstr "abandon"
 
-#: parser.yy:729
+#: parser.yy:804
 msgid "\\paper cannot be used in \\score, use \\layout instead"
 msgstr "dans la section \\score, utiliser \\layout au lieu de \\paper"
 
-#: parser.yy:753
+#: parser.yy:828
 msgid "need \\paper for paper block"
 msgstr "\\paper est nécessaire pour définir les paramètres de la page"
 
-#: parser.yy:1224
+#: parser.yy:1299
 msgid "Grob name should be alphanumeric"
 msgstr "Un nom de Grob devrait être alphanumérique"
 
-#: parser.yy:1522
+#: parser.yy:1597
 msgid "second argument must be pitch list"
 msgstr "le second argument doit être une liste de hauteurs"
 
-#: parser.yy:1549 parser.yy:1554 parser.yy:2026
+#: parser.yy:1624 parser.yy:1629 parser.yy:2101
 msgid "have to be in Lyric mode for lyrics"
 msgstr "doit être en mode Lyric pour des paroles"
 
-#: parser.yy:1651
+#: parser.yy:1726
 msgid "expecting string as script definition"
 msgstr "chaîne requise pour définir un script"
 
-#: parser.yy:1806 parser.yy:1856
+#: parser.yy:1881 parser.yy:1931
 #, c-format
 msgid "not a duration: %d"
 msgstr "%d n'est pas une durée"
 
-#: parser.yy:1980
+#: parser.yy:2055
 msgid "have to be in Note mode for notes"
 msgstr "doit être en mode Note pour des notes"
 
-#: parser.yy:2041
+#: parser.yy:2116
 msgid "have to be in Chord mode for chords"
 msgstr "doit être en mode Chord pour des accords"
 
@@ -2586,28 +2667,28 @@ msgstr "Accolade repérée à la fin d'un \"markup\". Manquerait-il un espace ?"
 msgid "invalid character: `%c'"
 msgstr "caractère invalide : « %c »"
 
-#: lexer.ll:803 lexer.ll:804
+#: lexer.ll:803
 #, c-format
 msgid "unknown escaped string: `\\%s'"
 msgstr "chaîne d'échappement inconnue : « \\%s »"
 
-#: lexer.ll:910 lexer.ll:911
+#: lexer.ll:910
 #, c-format
 msgid "file too old: %s (oldest supported: %s)"
 msgstr ""
 "%s est plus qu'obsolète ; \n"
 "le plus ancien pouvant être supporté est : %s"
 
-#: lexer.ll:911 lexer.ll:912
+#: lexer.ll:911
 msgid "consider updating the input with the convert-ly script"
 msgstr "Envisagez la mise à jour de la source à l'aide du script convert-ly"
 
-#: lexer.ll:917 lexer.ll:918
+#: lexer.ll:917
 #, c-format
 msgid "program too old: %s (file requires: %s)"
 msgstr "Programme plus qu'obsolète : %s (le fichier requiert %s)"
 
-#: backend-library.scm:19 lily.scm:777 ps-to-png.scm:58
+#: backend-library.scm:19 lily.scm:761 ps-to-png.scm:58
 #, scheme-format
 msgid "Invoking `~a'..."
 msgstr "Appel de « ~a »..."
@@ -2617,7 +2698,7 @@ msgstr "Appel de « ~a »..."
 msgid "`~a' failed (~a)"
 msgstr "échec de « ~a » (~a)"
 
-#: backend-library.scm:116 framework-tex.scm:344 framework-tex.scm:369
+#: backend-library.scm:116
 #, scheme-format
 msgid "Converting to `~a'..."
 msgstr "Conversion à « ~a »..."
@@ -2651,16 +2732,16 @@ msgstr "la classe d'événement ~A semble être inutilisée"
 msgid "translator listens to nonexisting event class ~A"
 msgstr "le traducteur écoute la classe d'événements ~A inexistante"
 
-#: define-markup-commands.scm:599
+#: define-markup-commands.scm:569
 msgid "no systems found in \\score markup, does it have a \\layout block?"
 msgstr "pas de système trouvé dans le bloc \\score, contient-il un bloc \\layout ?"
 
-#: define-markup-commands.scm:2428
+#: define-markup-commands.scm:2387
 #, scheme-format
 msgid "Cannot find glyph ~a"
 msgstr "impossible de trouver le glyphe ~a"
 
-#: define-markup-commands.scm:2737
+#: define-markup-commands.scm:2696
 #, scheme-format
 msgid "not a valid duration string: ~a"
 msgstr "chaîne de durée invalide : ~a"
@@ -2681,8 +2762,8 @@ msgid "unknown repeat type `~S'"
 msgstr "type de répétition inconnu : « ~S »"
 
 #: define-music-types.scm:693
-msgid "See music-types.scm for supported repeats"
-msgstr "Consulter music-types.scm pour connaître les types de répétitions reconnus"
+msgid "See define-music-types.scm for supported repeats"
+msgstr "Consulter define-music-types.scm pour connaître les répétitions prises en charge"
 
 #: document-backend.scm:99
 #, scheme-format
@@ -2699,57 +2780,57 @@ msgstr "impossible de trouver l'interface pour la propriété ~S"
 msgid "unknown Grob interface: ~S"
 msgstr "interface d'objet graphique (Grob) inconnue : ~S"
 
-#: documentation-lib.scm:48
+#: documentation-lib.scm:49
 #, scheme-format
 msgid "Processing ~S..."
 msgstr "Traitement de ~S..."
 
-#: documentation-lib.scm:164
+#: documentation-lib.scm:165
 #, scheme-format
 msgid "Writing ~S..."
 msgstr "Écriture de ~S..."
 
-#: documentation-lib.scm:186
+#: documentation-lib.scm:187
 #, scheme-format
 msgid "cannot find description for property ~S (~S)"
 msgstr "impossible de trouver une description de la propriété ~S (~S)"
 
+#: flag-styles.scm:145
+#, scheme-format
+msgid "flag stroke `~a' or `~a' not found"
+msgstr "type de crochet inconnu : « ~a » ou « ~a »"
+
 #: framework-eps.scm:90
 #, scheme-format
 msgid "Writing ~a..."
 msgstr "Écriture de ~a..."
 
-#: framework-ps.scm:282
+#: framework-ps.scm:277
 #, scheme-format
 msgid "cannot embed ~S=~S"
 msgstr "intégration impossible : ~S=~S"
 
-#: framework-ps.scm:335
+#: framework-ps.scm:330
 #, scheme-format
 msgid "cannot extract file matching ~a from ~a"
 msgstr "impossible d'extraire le fichier ~a à partir de ~a"
 
-#: framework-ps.scm:352
+#: framework-ps.scm:347
 #, scheme-format
 msgid "do not know how to embed ~S=~S"
 msgstr "imposible de réaliser l'intégration ~S=~S"
 
-#: framework-ps.scm:383
+#: framework-ps.scm:378
 #, scheme-format
 msgid "do not know how to embed font ~s ~s ~s"
 msgstr "impossible d'intégrer les fontes ~s ~s ~s"
 
-#: framework-ps.scm:753
+#: framework-ps.scm:748
 #, scheme-format
 msgid "cannot convert <stdout> to ~S"
 msgstr "impossible de convertir <stdout> en ~S"
 
-#: framework-ps.scm:772 framework-ps.scm:775
-#, scheme-format
-msgid "cannot generate ~S using the postscript back-end"
-msgstr "impossible de générer ~S à l'aide du support postscript"
-
-#: framework-ps.scm:782
+#: framework-ps.scm:771
 msgid ""
 "\n"
 "The PostScript backend does not support the system-by-system \n"
@@ -2778,11 +2859,6 @@ msgstr ""
 "  %% ****************************************************************\n"
 "\n"
 
-#: framework-tex.scm:361
-#, scheme-format
-msgid "TeX file name must not contain whitespace: `~a'"
-msgstr "un nom de fichier TeX ne peut contenir d'espace : « ~a »"
-
 #: graphviz.scm:53
 #, scheme-format
 msgid "Writing graph `~a'..."
@@ -2798,46 +2874,42 @@ msgstr "Erreur de définition du lien : attendait (~S,~S), ~S trouvé."
 msgid "Error in beam quanting.  Expected ~S 0, found ~S."
 msgstr "Erreur de définition du lien : attendait ~S 0, repéré ~S."
 
-#: layout-page-layout.scm:124
+#: layout-page-layout.scm:126
 msgid "Can't fit systems on page -- ignoring between-system-padding"
 msgstr "Les système ne tiennent pas sur la page ; between-system-padding ignoré"
 
-#: layout-page-layout.scm:458
-msgid "Calculating page breaks..."
-msgstr "Calcul des sauts de page..."
-
-#: lily-library.scm:588
+#: lily-library.scm:602
 #, scheme-format
 msgid "unknown unit: ~S"
 msgstr "unité inconnue : ~S"
 
-#: lily-library.scm:622
+#: lily-library.scm:636
 #, scheme-format
 msgid "no \\version statement found, please add~afor future compatibility"
 msgstr ""
 "déclaration de \\version absente ;\n"
 "ajoutez ~a pour une compatibilité future"
 
-#: lily-library.scm:630
+#: lily-library.scm:644
 msgid "old relative compatibility not used"
 msgstr "compatibilité avec l'ancien mode relatif non utilisée"
 
-#: lily.scm:178
+#: lily.scm:179
 #, scheme-format
 msgid "cannot find: ~A"
 msgstr "impossible de trouver ~A"
 
-#: lily.scm:243
+#: lily.scm:228
 #, scheme-format
 msgid "wrong type for argument ~a.  Expecting ~a, found ~s"
 msgstr "type d'argument erroné pour ~a. Attendait ~a, ~s trouvé"
 
-#: lily.scm:641
+#: lily.scm:625
 #, scheme-format
 msgid "job ~a terminated with signal: ~a"
 msgstr "le travail ~a s'est terminé avec le signal ~a"
 
-#: lily.scm:644
+#: lily.scm:628
 #, scheme-format
 msgid ""
 "logfile ~a (exit ~a):\n"
@@ -2846,12 +2918,12 @@ msgstr ""
 "fichier journal ~a (sortie ~a) :\n"
 "~a"
 
-#: lily.scm:669 lily.scm:767
+#: lily.scm:653 lily.scm:751
 #, scheme-format
 msgid "failed files: ~S"
 msgstr "erreur sur les fichiers : ~S"
 
-#: lily.scm:757
+#: lily.scm:741
 #, scheme-format
 msgid "Redirecting output to ~a..."
 msgstr "Redirection de la sortie vers ~a..."
@@ -2860,7 +2932,7 @@ msgstr "Redirection de la sortie vers ~a..."
 msgid "Music head function must return Music object"
 msgstr "Une fonction musicale primitive devrait renvoyer un objet Music"
 
-#: ly-syntax-constructors.scm:150
+#: ly-syntax-constructors.scm:154
 #, scheme-format
 msgid "Invalid property operation ~a"
 msgstr "Opération de propriété invalide : ~a"
@@ -2914,12 +2986,12 @@ msgstr ""
 msgid "cannot find quoted music: `~S'"
 msgstr "impossible de trouver la citation de musique « ~S »"
 
-#: music-functions.scm:990
+#: music-functions.scm:1198
 #, scheme-format
 msgid "unknown accidental style: ~S"
 msgstr "style d'altération inconnu : ~S"
 
-#: output-ps.scm:285
+#: output-ps.scm:294
 msgid "utf-8-string encountered in PS backend"
 msgstr "le support PS a rencontré une chaîne utf8"
 
@@ -2933,28 +3005,23 @@ msgstr "~S indéfini(e)"
 msgid "cannot decypher Pango description: ~a"
 msgstr "la description de Pango ne peut être déchiffrée : ~a"
 
-#: output-tex.scm:96
-#, scheme-format
-msgid "cannot find ~a in ~a"
-msgstr "impossible de trouver ~a dans ~a"
-
-#: paper.scm:86
+#: paper.scm:104
 msgid "set-global-staff-size: not in toplevel scope"
 msgstr "set-global-staff-size n'est pas à un niveau de portée globale"
 
-#: paper.scm:226
+#: paper.scm:244
 #, scheme-format
 msgid "This is not a \\layout {} object, ~S"
 msgstr "~S n'est pas un objet de \\layout {}"
 
-#: paper.scm:238
+#: paper.scm:256
 #, scheme-format
-msgid "Unknown papersize: ~a"
+msgid "Unknown paper size: ~a"
 msgstr "Taille de papier inconnue : ~a"
 
 #. TODO: should raise (generic) exception with throw, and catch
 #. that in parse-scm.cc
-#: paper.scm:253
+#: paper.scm:271
 msgid "Must use #(set-paper-size .. ) within \\paper { ... }"
 msgstr "#(set-paper-size ..) doit être dans la section \\paper { ... }"
 
@@ -2977,3 +3044,33 @@ msgstr "~a s'est terminé avec le statut ~S"
 #, scheme-format
 msgid "assertion failed: ~S"
 msgstr "erreur d'assertion : ~S"
+
+#~ msgid "requested time signature, but time sig is unknown"
+#~ msgstr "Une métrique est obligatoire, mais la définition trouvée est inconnue"
+
+#~ msgid "Report bugs via"
+#~ msgstr "Rapporter toute anomalie à"
+
+#~ msgid "Negative skip %s"
+#~ msgstr "Retour en arrière de %s"
+
+#~ msgid "ignoring unknown accidental rule: %s"
+#~ msgstr "altération accidentelle inconnue, donc ignorée : %s"
+
+#~ msgid "generate DVI (tex backend only)"
+#~ msgstr "générer le DVI (uniquement pour tex)"
+
+#~ msgid "generate TeX (tex backend only)"
+#~ msgstr "générer le TeX (uniquement pour tex)"
+
+#~ msgid "Computing page breaks..."
+#~ msgstr "Calcul des sauts de page..."
+
+#~ msgid "cannot generate ~S using the postscript back-end"
+#~ msgstr "impossible de générer ~S à l'aide du support postscript"
+
+#~ msgid "TeX file name must not contain whitespace: `~a'"
+#~ msgstr "un nom de fichier TeX ne peut contenir d'espace : « ~a »"
+
+#~ msgid "cannot find ~a in ~a"
+#~ msgstr "impossible de trouver ~a dans ~a"
index 5df28854d1e512146f672af3febc6bf50402e451..3ab8e15a72bd149df6d411703b49b3b27596e20c 100644 (file)
@@ -1,17 +1,17 @@
 # Translation of LilyPond.
-# Copyright (C) 2008 Han-Wen Nienhuys, Jan Nieuwenhuizen
+# Copyright (C) 2008--2009 Han-Wen Nienhuys, Jan Nieuwenhuizen
 # This file is distributed under the same license as lilypond package.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: lilypond 2.11.57\n"
+"Project-Id-Version: lilypond 2.12.0\n"
 "Report-Msgid-Bugs-To: http://post.gmane.org/post.php?group=gmane.comp.gnu.lilypond.bugs\n"
-"POT-Creation-Date: 2008-08-23 18:49+0200\n"
+"POT-Creation-Date: 2008-12-20 11:58+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
 "MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
 #: convertrules.py:12
@@ -28,7 +28,7 @@ msgstr ""
 msgid "%s has been replaced by %s"
 msgstr ""
 
-#: convertrules.py:24 musicexp.py:16 convert-ly.py:48 lilypond-book.py:82
+#: convertrules.py:24 musicexp.py:16 convert-ly.py:50 lilypond-book.py:94
 #: warn.cc:48 input.cc:90
 #, c-format, python-format
 msgid "warning: %s"
@@ -383,6 +383,22 @@ msgstr ""
 msgid "\\put-adjacent axis dir markup markup."
 msgstr ""
 
+#: convertrules.py:2832
+msgid "re-definition of InnerStaffGroup.\n"
+msgstr ""
+
+#: convertrules.py:2838
+msgid "re-definition of InnerChoirStaff.\n"
+msgstr ""
+
+#: convertrules.py:2851
+msgid "stringTuning must be added to addChordShape call.\n"
+msgstr ""
+
+#: convertrules.py:2857
+msgid "stringTuning must be added to chord-shape call.\n"
+msgstr ""
+
 #: fontextract.py:25
 #, python-format
 msgid "Scanning %s"
@@ -398,161 +414,204 @@ msgstr ""
 msgid "Writing fonts to %s"
 msgstr ""
 
-#: lilylib.py:101 lilylib.py:152
+#: lilylib.py:91 lilylib.py:142
 #, python-format
 msgid "Invoking `%s'"
 msgstr ""
 
-#: lilylib.py:103 lilylib.py:154
+#: lilylib.py:93 lilylib.py:144
 #, python-format
 msgid "Running %s..."
 msgstr ""
 
-#: lilylib.py:219
+#: lilylib.py:209
 #, python-format
 msgid "Usage: %s"
 msgstr ""
 
-#: musicexp.py:585
+#: musicexp.py:215 musicexp.py:220
+msgid "Language does not support microtones contained in the piece"
+msgstr ""
+
+#: musicexp.py:482
+msgid "Tuplet brackets of curved shape are not correctly implemented"
+msgstr ""
+
+#. TODO: Implement this using actual_type and normal_type!
+#: musicexp.py:511
+msgid ""
+"Tuplet brackets displaying both note durations are not implemented, using "
+"default"
+msgstr ""
+
+#: musicexp.py:656
 #, python-format
 msgid "unable to set the music %(music)s for the repeat %(repeat)s"
 msgstr ""
 
-#: musicexp.py:594
+#: musicexp.py:665
 msgid "encountered repeat without body"
 msgstr ""
 
-#: musicxml.py:13 convert-ly.py:51 lilypond-book.py:85 warn.cc:54 input.cc:96
+#. no self.elements!
+#: musicexp.py:835
+#, python-format
+msgid "Grace note with no following music: %s"
+msgstr ""
+
+#: musicexp.py:997
+#, python-format
+msgid "Invalid octave shift size found: %s. Using no shift."
+msgstr ""
+
+#: musicexp.py:1455
+#, python-format
+msgid "Unable to convert alteration %s to a lilypond expression"
+msgstr ""
+
+#: musicxml.py:13 convert-ly.py:53 lilypond-book.py:97 warn.cc:54 input.cc:96
 #: input.cc:104
 #, c-format, python-format
 msgid "error: %s"
 msgstr ""
 
-#: musicxml.py:298
-msgid "requested time signature, but time sig is unknown"
+#. TODO: Handle pieces without a time signature!
+#: musicxml.py:357
+msgid "Senza-misura time signatures are not yet supported!"
+msgstr ""
+
+#: musicxml.py:375
+msgid "Unable to interpret time signature! Falling back to 4/4."
 msgstr ""
 
-#: musicxml.py:354
+#: musicxml.py:431
 #, python-format
-msgid "Encountered note at %s with %s duration (no <type> element):"
+msgid ""
+"Key alteration octave given for a non-existing alteration nr. %s, available "
+"numbers: %s!"
 msgstr ""
 
-#: musicxml.py:388
+#: musicxml.py:519
 #, python-format
 msgid "Unable to find instrument for ID=%s\n"
 msgstr ""
 
-#: abc2ly.py:1342 convert-ly.py:72 lilypond-book.py:109 midi2ly.py:846
+#: abc2ly.py:1341 convert-ly.py:74 lilypond-book.py:121 midi2ly.py:845
 #, python-format
 msgid "%s [OPTION]... FILE"
 msgstr ""
 
-#: abc2ly.py:1343
+#: abc2ly.py:1342
 #, python-format
 msgid ""
 "abc2ly converts ABC music files (see\n"
 "%s) to LilyPond input.\n"
 msgstr ""
 
-#: abc2ly.py:1351 convert-ly.py:79 etf2ly.py:1190 lilypond-book.py:195
-#: midi2ly.py:882 musicxml2ly.py:2185 main.cc:161
+#: abc2ly.py:1350 convert-ly.py:81 etf2ly.py:1190 lilypond-book.py:207
+#: midi2ly.py:881 musicxml2ly.py:2590 main.cc:156
 msgid "show version number and exit"
 msgstr ""
 
-#: abc2ly.py:1355 convert-ly.py:83 etf2ly.py:1186 lilypond-book.py:126
-#: midi2ly.py:861 musicxml2ly.py:2167 main.cc:150
+#: abc2ly.py:1354 convert-ly.py:85 etf2ly.py:1186 lilypond-book.py:138
+#: midi2ly.py:860 musicxml2ly.py:2572 main.cc:145
 msgid "show this help and exit"
 msgstr ""
 
-#: abc2ly.py:1357 etf2ly.py:1191 midi2ly.py:865
+#: abc2ly.py:1356 etf2ly.py:1191 midi2ly.py:864
 msgid "write output to FILE"
 msgstr ""
 
-#: abc2ly.py:1359
+#: abc2ly.py:1358
 msgid "be strict about success"
 msgstr ""
 
-#: abc2ly.py:1361
+#: abc2ly.py:1360
 msgid "preserve ABC's notion of beams"
 msgstr ""
 
-#: abc2ly.py:1363 convert-ly.py:120 etf2ly.py:1199 lilypond-book.py:202
-#: midi2ly.py:894 musicxml2ly.py:2240
-msgid "Report bugs via"
+#. Translators, please translate this string as
+#. "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:1363 convert-ly.py:123 etf2ly.py:1200 lilypond-book.py:214
+#: midi2ly.py:894 musicxml2ly.py:2646 main.cc:265
+#, c-format, python-format
+msgid "Report bugs via %s"
 msgstr ""
 
-#: convert-ly.py:31
+#: convert-ly.py:33
 msgid ""
 "Update LilyPond input to newer version.  By default, update from the\n"
 "version taken from the \\version command, to the current LilyPond version."
 msgstr ""
 
-#: convert-ly.py:33 lilypond-book.py:59
+#: convert-ly.py:35 lilypond-book.py:71
 msgid "Examples:"
 msgstr ""
 
-#: convert-ly.py:67 etf2ly.py:1173 lilypond-book.py:105 midi2ly.py:77
+#: convert-ly.py:69 etf2ly.py:1173 lilypond-book.py:117 midi2ly.py:76
 msgid "Distributed under terms of the GNU General Public License."
 msgstr ""
 
-#: convert-ly.py:68 etf2ly.py:1174 lilypond-book.py:106 midi2ly.py:78
+#: convert-ly.py:70 etf2ly.py:1174 lilypond-book.py:118 midi2ly.py:77
 msgid "It comes with NO WARRANTY."
 msgstr ""
 
-#: convert-ly.py:87 convert-ly.py:114
+#: convert-ly.py:89 convert-ly.py:116
 msgid "VERSION"
 msgstr ""
 
-#: convert-ly.py:89
+#: convert-ly.py:91
 msgid "start from VERSION [default: \\version found in file]"
 msgstr ""
 
-#: convert-ly.py:92
+#: convert-ly.py:94
 msgid "edit in place"
 msgstr ""
 
-#: convert-ly.py:96
+#: convert-ly.py:98
 msgid "do not add \\version command if missing"
 msgstr ""
 
-#: convert-ly.py:102
+#: convert-ly.py:104
 #, python-format
 msgid "force updating \\version number to %s"
 msgstr ""
 
-#: convert-ly.py:108
+#: convert-ly.py:110
 #, python-format
 msgid "show rules [default: -f 0, -t %s]"
 msgstr ""
 
-#: convert-ly.py:113
+#: convert-ly.py:115
 #, python-format
 msgid "convert to VERSION [default: %s]"
 msgstr ""
 
-#: convert-ly.py:160
+#: convert-ly.py:163
 msgid "Applying conversion: "
 msgstr ""
 
-#: convert-ly.py:173
+#: convert-ly.py:176
 msgid "Error while converting"
 msgstr ""
 
-#: convert-ly.py:175
-msgid "Stopping at last succesful rule"
+#: convert-ly.py:178
+msgid "Stopping at last successful rule"
 msgstr ""
 
-#: convert-ly.py:196
+#: convert-ly.py:199
 #, python-format
 msgid "Processing `%s'... "
 msgstr ""
 
-#: convert-ly.py:286 relocate.cc:362 source-file.cc:59
+#: convert-ly.py:289 relocate.cc:362 source-file.cc:59
 #, c-format, python-format
 msgid "cannot open file: `%s'"
 msgstr ""
 
-#: convert-ly.py:293
+#: convert-ly.py:296
 #, python-format
 msgid "cannot determine version for `%s'.  Skipping"
 msgstr ""
@@ -569,278 +628,278 @@ msgid ""
 "file.\n"
 msgstr ""
 
-#: etf2ly.py:1192 midi2ly.py:866 musicxml2ly.py:2233 main.cc:154 main.cc:159
+#: etf2ly.py:1192 midi2ly.py:865 musicxml2ly.py:2638 main.cc:149 main.cc:154
 msgid "FILE"
 msgstr ""
 
-#: etf2ly.py:1194 lilypond-book.py:198 midi2ly.py:883 main.cc:163
+#: etf2ly.py:1194 lilypond-book.py:210 midi2ly.py:882 main.cc:158
 msgid "show warranty and copyright"
 msgstr ""
 
-#: lilypond-book.py:57
+#: lilypond-book.py:69
 msgid ""
 "Process LilyPond snippets in hybrid HTML, LaTeX, texinfo or DocBook document."
 msgstr ""
 
-#: lilypond-book.py:64
+#: lilypond-book.py:76
 msgid "BOOK"
 msgstr ""
 
-#: lilypond-book.py:72
+#: lilypond-book.py:84
 #, python-format
 msgid "Exiting (%d)..."
 msgstr ""
 
-#: lilypond-book.py:103
+#: lilypond-book.py:115
 #, python-format
 msgid "Copyright (c) %s by"
 msgstr ""
 
-#: lilypond-book.py:113
+#: lilypond-book.py:125
 msgid "FILTER"
 msgstr ""
 
-#: lilypond-book.py:116
+#: lilypond-book.py:128
 msgid "pipe snippets through FILTER [default: `convert-ly -n -']"
 msgstr ""
 
-#: lilypond-book.py:120
+#: lilypond-book.py:132
 msgid ""
 "use output format FORMAT (texi [default], texi-html, latex, html, docbook)"
 msgstr ""
 
-#: lilypond-book.py:121
+#: lilypond-book.py:133
 msgid "FORMAT"
 msgstr ""
 
-#: lilypond-book.py:128
+#: lilypond-book.py:140
 msgid "add DIR to include path"
 msgstr ""
 
-#: lilypond-book.py:129 lilypond-book.py:136 lilypond-book.py:154
-#: lilypond-book.py:160 lilypond-book.py:166 lilypond-book.py:172 main.cc:153
+#: lilypond-book.py:141 lilypond-book.py:148 lilypond-book.py:166
+#: lilypond-book.py:172 lilypond-book.py:178 lilypond-book.py:184 main.cc:148
 msgid "DIR"
 msgstr ""
 
-#: lilypond-book.py:134
+#: lilypond-book.py:146
 msgid "format Texinfo output so that Info will look for images of music in DIR"
 msgstr ""
 
-#: lilypond-book.py:141
+#: lilypond-book.py:153
 msgid "run executable PROG instead of latex"
 msgstr ""
 
-#: lilypond-book.py:142
+#: lilypond-book.py:154
 msgid "PROG"
 msgstr ""
 
-#: lilypond-book.py:147
+#: lilypond-book.py:159
 msgid "PAD"
 msgstr ""
 
-#: lilypond-book.py:149
+#: lilypond-book.py:161
 msgid ""
 "pad left side of music to align music inspite of uneven bar numbers (in mm)"
 msgstr ""
 
-#: lilypond-book.py:153
+#: lilypond-book.py:165
 msgid "write output to DIR"
 msgstr ""
 
-#: lilypond-book.py:159
+#: lilypond-book.py:171
 msgid "do not fail if no lilypond output is found"
 msgstr ""
 
-#: lilypond-book.py:165
+#: lilypond-book.py:177
 msgid "do not fail if no PNG images are found for EPS files"
 msgstr ""
 
-#: lilypond-book.py:171
+#: lilypond-book.py:183
 msgid "write lily-XXX files to DIR, link into --output dir"
 msgstr ""
 
-#: lilypond-book.py:176
+#: lilypond-book.py:188
 msgid "COMMAND"
 msgstr ""
 
-#: lilypond-book.py:177
+#: lilypond-book.py:189
 msgid "process ly_files using COMMAND FILE..."
 msgstr ""
 
-#: lilypond-book.py:184
+#: lilypond-book.py:196
 msgid "create PDF files for use with PDFTeX"
 msgstr ""
 
-#: lilypond-book.py:187 midi2ly.py:876 musicxml2ly.py:2190 main.cc:162
+#: lilypond-book.py:199 midi2ly.py:875 musicxml2ly.py:2595 main.cc:157
 msgid "be verbose"
 msgstr ""
 
-#: lilypond-book.py:825
+#: lilypond-book.py:871
 #, python-format
 msgid "file not found: %s"
 msgstr ""
 
-#: lilypond-book.py:1087
+#: lilypond-book.py:1142
 #, python-format
 msgid "deprecated ly-option used: %s=%s"
 msgstr ""
 
-#: lilypond-book.py:1089
+#: lilypond-book.py:1144
 #, python-format
 msgid "compatibility mode translation: %s=%s"
 msgstr ""
 
-#: lilypond-book.py:1092
+#: lilypond-book.py:1147
 #, python-format
 msgid "deprecated ly-option used: %s"
 msgstr ""
 
-#: lilypond-book.py:1094
+#: lilypond-book.py:1149
 #, python-format
 msgid "compatibility mode translation: %s"
 msgstr ""
 
-#: lilypond-book.py:1112
+#: lilypond-book.py:1167
 #, python-format
 msgid "ignoring unknown ly option: %s"
 msgstr ""
 
-#: lilypond-book.py:1538
+#: lilypond-book.py:1604
 #, python-format
 msgid "Opening filter `%s'"
 msgstr ""
 
-#: lilypond-book.py:1555
+#: lilypond-book.py:1621
 #, python-format
 msgid "`%s' failed (%d)"
 msgstr ""
 
-#: lilypond-book.py:1556
+#: lilypond-book.py:1622
 msgid "The error log is as follows:"
 msgstr ""
 
-#: lilypond-book.py:1618
+#: lilypond-book.py:1684
 msgid "cannot find \\begin{document} in LaTeX document"
 msgstr ""
 
-#: lilypond-book.py:1718
+#: lilypond-book.py:1784
 msgid "Writing snippets..."
 msgstr ""
 
-#: lilypond-book.py:1724
+#: lilypond-book.py:1790
 msgid "Processing..."
 msgstr ""
 
-#: lilypond-book.py:1730
+#: lilypond-book.py:1796
 msgid "All snippets are up to date..."
 msgstr ""
 
-#: lilypond-book.py:1764
+#: lilypond-book.py:1830
 #, python-format
 msgid "cannot determine format for: %s"
 msgstr ""
 
-#: lilypond-book.py:1775
+#: lilypond-book.py:1841
 #, python-format
 msgid "%s is up to date."
 msgstr ""
 
-#: lilypond-book.py:1789
+#: lilypond-book.py:1855
 #, python-format
 msgid "Writing `%s'..."
 msgstr ""
 
-#: lilypond-book.py:1847
+#: lilypond-book.py:1913
 msgid "Output would overwrite input file; use --output."
 msgstr ""
 
-#: lilypond-book.py:1851
+#: lilypond-book.py:1917
 #, python-format
 msgid "Reading %s..."
 msgstr ""
 
-#: lilypond-book.py:1870
+#: lilypond-book.py:1937
 msgid "Dissecting..."
 msgstr ""
 
-#: lilypond-book.py:1886
+#: lilypond-book.py:1953
 #, python-format
 msgid "Compiling %s..."
 msgstr ""
 
-#: lilypond-book.py:1895
+#: lilypond-book.py:1962
 #, python-format
 msgid "Processing include: %s"
 msgstr ""
 
-#: lilypond-book.py:1907
+#: lilypond-book.py:1974
 #, python-format
 msgid "Removing `%s'"
 msgstr ""
 
-#: midi2ly.py:85 lily-library.scm:620 lily-library.scm:629
+#: midi2ly.py:84 lily-library.scm:634 lily-library.scm:643
 msgid "warning: "
 msgstr ""
 
-#: midi2ly.py:88 midi2ly.py:907
+#: midi2ly.py:87 midi2ly.py:907
 msgid "error: "
 msgstr ""
 
-#: midi2ly.py:89
+#: midi2ly.py:88
 msgid "Exiting... "
 msgstr ""
 
-#: midi2ly.py:834
+#: midi2ly.py:833
 #, python-format
 msgid "%s output to `%s'..."
 msgstr ""
 
-#: midi2ly.py:847
+#: midi2ly.py:846
 #, python-format
 msgid "Convert %s to LilyPond input.\n"
 msgstr ""
 
-#: midi2ly.py:852
+#: midi2ly.py:851
 msgid "print absolute pitches"
 msgstr ""
 
-#: midi2ly.py:854 midi2ly.py:869
+#: midi2ly.py:853 midi2ly.py:868
 msgid "DUR"
 msgstr ""
 
-#: midi2ly.py:855
+#: midi2ly.py:854
 msgid "quantise note durations on DUR"
 msgstr ""
 
-#: midi2ly.py:858
+#: midi2ly.py:857
 msgid "print explicit durations"
 msgstr ""
 
-#: midi2ly.py:862
+#: midi2ly.py:861
 msgid "set key: ALT=+sharps|-flats; MINOR=1"
 msgstr ""
 
-#: midi2ly.py:863
+#: midi2ly.py:862
 msgid "ALT[:MINOR]"
 msgstr ""
 
-#: midi2ly.py:868
+#: midi2ly.py:867
 msgid "quantise note starts on DUR"
 msgstr ""
 
-#: midi2ly.py:871
+#: midi2ly.py:870
 msgid "DUR*NUM/DEN"
 msgstr ""
 
-#: midi2ly.py:874
+#: midi2ly.py:873
 msgid "allow tuplet durations DUR*NUM/DEN"
 msgstr ""
 
-#: midi2ly.py:886
+#: midi2ly.py:885
 msgid "treat every text as a lyric"
 msgstr ""
 
-#: midi2ly.py:889
+#: midi2ly.py:888
 msgid "Examples"
 msgstr ""
 
@@ -848,183 +907,211 @@ msgstr ""
 msgid "no files specified on command line."
 msgstr ""
 
-#: musicxml2ly.py:213
+#: musicxml2ly.py:343
 msgid ""
 "Encountered file created by Dolet 3.4 for Sibelius, containing wrong beaming "
 "information. All beaming information in the MusicXML file will be ignored"
 msgstr ""
 
-#: musicxml2ly.py:229 musicxml2ly.py:231
+#: musicxml2ly.py:346
+msgid ""
+"Encountered file created by Noteworthy Composer's nwc2xml, containing wrong "
+"beaming information. All beaming information in the MusicXML file will be "
+"ignored"
+msgstr ""
+
+#: musicxml2ly.py:362 musicxml2ly.py:364
 #, python-format
 msgid "Unprocessed PartGroupInfo %s encountered"
 msgstr ""
 
-#: musicxml2ly.py:471
+#: musicxml2ly.py:594
+#, python-format
+msgid "Encountered note at %s without type and duration (=%s)"
+msgstr ""
+
+#: musicxml2ly.py:613
 #, python-format
 msgid ""
 "Encountered rational duration with denominator %s, unable to convert to "
 "lilypond duration"
 msgstr ""
 
-#: musicxml2ly.py:654
+#: musicxml2ly.py:868
+msgid "Unable to extract key signature!"
+msgstr ""
+
+#: musicxml2ly.py:895
 #, python-format
-msgid "unknown mode %s, expecting 'major' or 'minor'"
+msgid "unknown mode %s, expecting 'major' or 'minor' or a church mode!"
 msgstr ""
 
-#: musicxml2ly.py:692
+#: musicxml2ly.py:968
 #, python-format
 msgid "Encountered unprocessed marker %s\n"
 msgstr ""
 
-#: musicxml2ly.py:786
+#: musicxml2ly.py:1062
 #, python-format
 msgid "unknown span event %s"
 msgstr ""
 
-#: musicxml2ly.py:796
+#: musicxml2ly.py:1072
 #, python-format
 msgid "unknown span type %s for %s"
 msgstr ""
 
-#: musicxml2ly.py:1222
+#: musicxml2ly.py:1498
 msgid "Unknown metronome mark, ignoring"
 msgstr ""
 
 #. TODO: Implement the other (more complex) way for tempo marks!
-#: musicxml2ly.py:1227
+#: musicxml2ly.py:1503
 msgid ""
 "Metronome marks with complex relations (<metronome-note> in MusicXML) are "
 "not yet implemented."
 msgstr ""
 
-#: musicxml2ly.py:1383
+#: musicxml2ly.py:1703
 #, python-format
 msgid "Unable to convert chord type %s to lilypond."
 msgstr ""
 
-#: musicxml2ly.py:1529
+#: musicxml2ly.py:1849
 #, python-format
 msgid "drum %s type unknown, please add to instrument_drumtype_dict"
 msgstr ""
 
-#: musicxml2ly.py:1533
+#: musicxml2ly.py:1853
 msgid "cannot find suitable event"
 msgstr ""
 
-#: musicxml2ly.py:1623
+#: musicxml2ly.py:1994
 #, python-format
-msgid "Negative skip %s"
+msgid "Negative skip %s (from position %s to %s)"
 msgstr ""
 
-#: musicxml2ly.py:1775
+#: musicxml2ly.py:2134
 #, python-format
 msgid "Negative skip found: from %s to %s, difference is %s"
 msgstr ""
 
-#: musicxml2ly.py:1802
+#: musicxml2ly.py:2205
 #, python-format
 msgid "unexpected %s; expected %s or %s or %s"
 msgstr ""
 
-#: musicxml2ly.py:1912
-msgid "cannot have two simultaneous slurs"
+#: musicxml2ly.py:2311
+msgid "Encountered closing slur, but no slur is open"
+msgstr ""
+
+#: musicxml2ly.py:2314
+msgid "Cannot have two simultaneous (closing) slurs"
+msgstr ""
+
+#: musicxml2ly.py:2324
+msgid "Cannot have a slur inside another slur"
+msgstr ""
+
+#: musicxml2ly.py:2327
+msgid "Cannot have two simultaneous slurs"
 msgstr ""
 
-#: musicxml2ly.py:2050
+#: musicxml2ly.py:2455
 #, python-format
 msgid "cannot simultaneously have more than one mode: %s"
 msgstr ""
 
-#: musicxml2ly.py:2148
+#: musicxml2ly.py:2553
 msgid "Converting to LilyPond expressions..."
 msgstr ""
 
-#: musicxml2ly.py:2159
+#: musicxml2ly.py:2564
 msgid "musicxml2ly [OPTION]... FILE.xml"
 msgstr ""
 
-#: musicxml2ly.py:2161
+#: musicxml2ly.py:2566
 msgid ""
 "Convert MusicXML from FILE.xml to LilyPond input.\n"
 "If the given filename is -, musicxml2ly reads from the command line.\n"
 msgstr ""
 
-#: musicxml2ly.py:2171
+#: musicxml2ly.py:2576
 msgid ""
-"Copyright (c) 2005--2008 by\n"
+"Copyright (c) 2005--2009 by\n"
 "    Han-Wen Nienhuys <hanwen@xs4all.nl>,\n"
 "    Jan Nieuwenhuizen <janneke@gnu.org> and\n"
 "    Reinhold Kainhofer <reinhold@kainhofer.com>\n"
 msgstr ""
 
-#: musicxml2ly.py:2196
+#: musicxml2ly.py:2601
 msgid "use lxml.etree; uses less memory and cpu time"
 msgstr ""
 
-#: musicxml2ly.py:2202
+#: musicxml2ly.py:2607
 msgid "input file is a zip-compressed MusicXML file"
 msgstr ""
 
-#: musicxml2ly.py:2208
+#: musicxml2ly.py:2613
 msgid "convert pitches in relative mode (default)"
 msgstr ""
 
-#: musicxml2ly.py:2213
+#: musicxml2ly.py:2618
 msgid "convert pitches in absolute mode"
 msgstr ""
 
-#: musicxml2ly.py:2216
+#: musicxml2ly.py:2621
 msgid "LANG"
 msgstr ""
 
-#: musicxml2ly.py:2218
+#: musicxml2ly.py:2623
 msgid ""
 "use a different language file 'LANG.ly' and corresponding pitch names, e.g. "
 "'deutsch' for deutsch.ly"
 msgstr ""
 
-#: musicxml2ly.py:2224
+#: musicxml2ly.py:2629
 msgid "do not convert directions (^, _ or -) for articulations, dynamics, etc."
 msgstr ""
 
-#: musicxml2ly.py:2230
+#: musicxml2ly.py:2635
 msgid ""
 "do not convert beaming information, use lilypond's automatic beaming instead"
 msgstr ""
 
-#: musicxml2ly.py:2238
+#: musicxml2ly.py:2643
 msgid "set output filename to FILE, stdout if -"
 msgstr ""
 
-#: musicxml2ly.py:2320
+#: musicxml2ly.py:2726
 #, python-format
 msgid "unknown part in part-list: %s"
 msgstr ""
 
-#: musicxml2ly.py:2382
+#: musicxml2ly.py:2788
 msgid "Input is compressed, extracting raw MusicXML data from stdin"
 msgstr ""
 
-#: musicxml2ly.py:2385
+#: musicxml2ly.py:2791
 #, python-format
 msgid "Input file %s is compressed, extracting raw MusicXML data"
 msgstr ""
 
-#: musicxml2ly.py:2415
+#: musicxml2ly.py:2821
 msgid "Reading MusicXML from Standard input ..."
 msgstr ""
 
-#: musicxml2ly.py:2417
+#: musicxml2ly.py:2823
 #, python-format
 msgid "Reading MusicXML from %s ..."
 msgstr ""
 
-#: musicxml2ly.py:2450
+#: musicxml2ly.py:2856
 #, python-format
 msgid "Output to `%s'"
 msgstr ""
 
-#: musicxml2ly.py:2512
+#: musicxml2ly.py:2922
 #, python-format
 msgid "Unable to find input file %s"
 msgstr ""
@@ -1058,19 +1145,14 @@ msgstr ""
 msgid "continuing, cross fingers"
 msgstr ""
 
-#: accidental-engraver.cc:249
+#: accidental-engraver.cc:298
 #, c-format
 msgid "accidental typesetting list must begin with context-name: %s"
 msgstr ""
 
-#: accidental-engraver.cc:276
+#: accidental-engraver.cc:328
 #, c-format
-msgid "ignoring unknown accidental rule: %s"
-msgstr ""
-
-#: accidental-engraver.cc:292
-#, c-format
-msgid "pair or context-name expected for accidental rule, found %s"
+msgid "procedure or context-name expected for accidental rule, found %s"
 msgstr ""
 
 #: accidental.cc:187
@@ -1292,23 +1374,37 @@ msgstr ""
 msgid "unterminated extender"
 msgstr ""
 
-#: font-config.cc:28
-msgid "Initializing FontConfig..."
+#: font-config-scheme.cc:140 font-config.cc:57
+#, c-format
+msgid "failed adding font directory: %s"
 msgstr ""
 
-#: font-config.cc:44
+#: font-config-scheme.cc:142 font-config.cc:59
 #, c-format
-msgid "Rebuilding FontConfig cache %s, this may take a while..."
+msgid "adding font directory: %s"
 msgstr ""
 
-#: font-config.cc:57
+#: font-config-scheme.cc:156
 #, c-format
-msgid "failed adding font directory: %s"
+msgid "failed adding font file: %s"
 msgstr ""
 
-#: font-config.cc:59
+#: font-config-scheme.cc:158
 #, c-format
-msgid "adding font directory: %s"
+msgid "adding font file: %s"
+msgstr ""
+
+#: font-config.cc:28
+msgid "Initializing FontConfig..."
+msgstr ""
+
+#: font-config.cc:44
+#, c-format
+msgid "Rebuilding FontConfig cache %s, this may take a while..."
+msgstr ""
+
+#: font-config.cc:63
+msgid "Building font database."
 msgstr ""
 
 #: general-scheme.cc:202
@@ -1319,7 +1415,7 @@ msgstr ""
 msgid "setting to zero"
 msgstr ""
 
-#: general-scheme.cc:422 output-ps.scm:62
+#: general-scheme.cc:422 output-ps.scm:63
 msgid "Found infinity or nan in output. Substituting 0.0"
 msgstr ""
 
@@ -1478,16 +1574,16 @@ msgstr ""
 msgid "type check for `%s' failed; value `%s' must be of type `%s'"
 msgstr ""
 
-#: lily-lexer.cc:251
+#: lily-lexer.cc:252
 msgid "include files are not allowed in safe mode"
 msgstr ""
 
-#: lily-lexer.cc:270
+#: lily-lexer.cc:271
 #, c-format
 msgid "identifier name is a keyword: `%s'"
 msgstr ""
 
-#: lily-lexer.cc:285
+#: lily-lexer.cc:286
 #, c-format
 msgid "error at EOF: %s"
 msgstr ""
@@ -1512,11 +1608,11 @@ msgstr ""
 msgid "Processing `%s'"
 msgstr ""
 
-#: lily-parser.cc:99
+#: lily-parser.cc:95
 msgid "Parsing..."
 msgstr ""
 
-#: lily-parser.cc:127
+#: lily-parser.cc:123
 msgid "braces do not match"
 msgstr ""
 
@@ -1529,7 +1625,7 @@ msgstr ""
 msgid "Lyric syllable does not have note. Use \\lyricsto or associatedVoice."
 msgstr ""
 
-#: main.cc:100
+#: main.cc:97
 #, c-format
 msgid ""
 "This program is free software.  It is covered by the GNU General Public\n"
@@ -1538,7 +1634,7 @@ msgid ""
 "information.\n"
 msgstr ""
 
-#: main.cc:106
+#: main.cc:103
 msgid ""
 "    This program is free software; you can redistribute it and/or\n"
 "modify it under the terms of the GNU General Public License version 2\n"
@@ -1555,91 +1651,83 @@ msgid ""
 "Boston, MA 02111-1307, USA.\n"
 msgstr ""
 
-#: main.cc:137
+#: main.cc:134
 msgid "SYM[=VAL]"
 msgstr ""
 
-#: main.cc:138
+#: main.cc:135
 msgid ""
 "set Scheme option SYM to VAL (default: #t).\n"
 "Use -dhelp for help."
 msgstr ""
 
-#: main.cc:141
+#: main.cc:138
 msgid "EXPR"
 msgstr ""
 
-#: main.cc:141
+#: main.cc:138
 msgid "evaluate scheme code"
 msgstr ""
 
 #. Bug in option parser: --output =foe is taken as an abbreviation
 #. for --output-format.
-#: main.cc:144
+#: main.cc:141
 msgid "FORMATs"
 msgstr ""
 
-#: main.cc:144
+#: main.cc:141
 msgid "dump FORMAT,...  Also as separate options:"
 msgstr ""
 
-#: main.cc:145
-msgid "generate DVI (tex backend only)"
-msgstr ""
-
-#: main.cc:146
+#: main.cc:142
 msgid "generate PDF (default)"
 msgstr ""
 
-#: main.cc:147
+#: main.cc:143
 msgid "generate PNG"
 msgstr ""
 
-#: main.cc:148
+#: main.cc:144
 msgid "generate PostScript"
 msgstr ""
 
-#: main.cc:149
-msgid "generate TeX (tex backend only)"
-msgstr ""
-
-#: main.cc:151
+#: main.cc:146
 msgid "FIELD"
 msgstr ""
 
-#: main.cc:151
+#: main.cc:146
 msgid ""
 "dump header field FIELD to file\n"
 "named BASENAME.FIELD"
 msgstr ""
 
-#: main.cc:153
+#: main.cc:148
 msgid "add DIR to search path"
 msgstr ""
 
-#: main.cc:154
+#: main.cc:149
 msgid "use FILE as init file"
 msgstr ""
 
-#: main.cc:156
+#: main.cc:151
 msgid "USER, GROUP, JAIL, DIR"
 msgstr ""
 
-#: main.cc:156
+#: main.cc:151
 msgid ""
 "chroot to JAIL, become USER:GROUP\n"
 "and cd into DIR"
 msgstr ""
 
-#: main.cc:159
+#: main.cc:154
 msgid "write output to FILE (suffix will be added)"
 msgstr ""
 
-#: main.cc:160
+#: main.cc:155
 msgid "relocate using directory of lilypond program"
 msgstr ""
 
-#: main.cc:226
+#: main.cc:221
 #, c-format
 msgid ""
 "Copyright (c) %s by\n"
@@ -1647,82 +1735,77 @@ msgid ""
 msgstr ""
 
 #. No version number or newline here.  It confuses help2man.
-#: main.cc:254
+#: main.cc:249
 #, c-format
 msgid "Usage: %s [OPTION]... FILE..."
 msgstr ""
 
-#: main.cc:256
+#: main.cc:251
 #, c-format
 msgid "Typeset music and/or produce MIDI from FILE."
 msgstr ""
 
-#: main.cc:258
+#: main.cc:253
 #, c-format
 msgid "LilyPond produces beautiful music notation."
 msgstr ""
 
-#: main.cc:260
+#: main.cc:255
 #, c-format
 msgid "For more information, see %s"
 msgstr ""
 
-#: main.cc:262
+#: main.cc:257
 #, c-format
 msgid "Options:"
 msgstr ""
 
-#: main.cc:266
-#, c-format
-msgid "Report bugs via %s"
-msgstr ""
-
-#: main.cc:312
+#: main.cc:311
 #, c-format
 msgid "expected %d arguments with jail, found: %u"
 msgstr ""
 
-#: main.cc:326
+#: main.cc:325
 #, c-format
 msgid "no such user: %s"
 msgstr ""
 
-#: main.cc:328
+#: main.cc:327
 #, c-format
 msgid "cannot get user id from user name: %s: %s"
 msgstr ""
 
-#: main.cc:343
+#: main.cc:342
 #, c-format
 msgid "no such group: %s"
 msgstr ""
 
-#: main.cc:345
+#: main.cc:344
 #, c-format
 msgid "cannot get group id from group name: %s: %s"
 msgstr ""
 
-#: main.cc:353
+#: main.cc:352
 #, c-format
 msgid "cannot chroot to: %s: %s"
 msgstr ""
 
-#: main.cc:360
+#: main.cc:359
 #, c-format
 msgid "cannot change group id to: %d: %s"
 msgstr ""
 
-#: main.cc:366
+#: main.cc:365
 #, c-format
 msgid "cannot change user id to: %d: %s"
 msgstr ""
 
-#: main.cc:372
+#: main.cc:371
 #, c-format
 msgid "cannot change working directory to: %s: %s"
 msgstr ""
 
-#: main.cc:619
+#: main.cc:611
 #, c-format
 msgid "exception caught: %s"
 msgstr ""
@@ -1801,8 +1884,12 @@ msgstr ""
 msgid "cannot write to file: `%s'"
 msgstr ""
 
-#: minimal-page-breaking.cc:42
-msgid "Computing page breaks..."
+#: minimal-page-breaking.cc:38 paper-score.cc:105
+msgid "Calculating line breaks..."
+msgstr ""
+
+#: minimal-page-breaking.cc:42 layout-page-layout.scm:463
+msgid "Calculating page breaks..."
 msgstr ""
 
 #: music-iterator.cc:171
@@ -1819,7 +1906,7 @@ msgstr ""
 msgid "transposition by %s makes alteration larger than double"
 msgstr ""
 
-#: new-dynamic-engraver.cc:128
+#: new-dynamic-engraver.cc:129
 #, c-format
 msgid ""
 "unknown crescendo style: %s\n"
@@ -1895,21 +1982,21 @@ msgstr ""
 msgid "Finding the ideal number of pages..."
 msgstr ""
 
-#: optimal-page-breaking.cc:76
+#: optimal-page-breaking.cc:78
 msgid "Fitting music on 1 page..."
 msgstr ""
 
-#: optimal-page-breaking.cc:78
+#: optimal-page-breaking.cc:80
 #, c-format
 msgid "Fitting music on %d pages..."
 msgstr ""
 
-#: optimal-page-breaking.cc:80
+#: optimal-page-breaking.cc:82
 #, c-format
 msgid "Fitting music on %d or %d pages..."
 msgstr ""
 
-#: optimal-page-breaking.cc:157 page-turn-page-breaking.cc:226
+#: optimal-page-breaking.cc:159 page-turn-page-breaking.cc:226
 #: paper-score.cc:146
 msgid "Drawing systems..."
 msgstr ""
@@ -1982,10 +2069,6 @@ msgstr ""
 msgid "Layout output to `%s'..."
 msgstr ""
 
-#: paper-score.cc:105
-msgid "Calculating line breaks..."
-msgstr ""
-
 #: paper-score.cc:118
 #, c-format
 msgid "Element count %d (spanners %d) "
@@ -1999,7 +2082,7 @@ msgstr ""
 msgid "GUILE signaled an error for the expression beginning here"
 msgstr ""
 
-#: percent-repeat-engraver.cc:200
+#: percent-repeat-engraver.cc:202
 msgid "unterminated percent repeat"
 msgstr ""
 
@@ -2015,12 +2098,12 @@ msgstr ""
 msgid "remapping modulo 16"
 msgstr ""
 
-#: performance.cc:101
+#: performance.cc:100
 #, c-format
 msgid "MIDI output to `%s'..."
 msgstr ""
 
-#: phrasing-slur-engraver.cc:139
+#: phrasing-slur-engraver.cc:146
 msgid "unterminated phrasing slur"
 msgstr ""
 
@@ -2185,7 +2268,7 @@ msgstr ""
 msgid "cannot end slur"
 msgstr ""
 
-#: slur.cc:357
+#: slur.cc:359
 #, c-format
 msgid "Ignoring grob for slur: %s. avoid-slur not set?"
 msgstr ""
@@ -2222,12 +2305,12 @@ msgstr ""
 msgid "weird stem size, check for narrow beams"
 msgstr ""
 
-#: stem.cc:627
+#: stem.cc:623
 #, c-format
 msgid "flag `%s' not found"
 msgstr ""
 
-#: stem.cc:638
+#: stem.cc:639
 #, c-format
 msgid "flag stroke `%s' not found"
 msgstr ""
@@ -2353,40 +2436,40 @@ msgstr ""
 msgid "giving up"
 msgstr ""
 
-#: parser.yy:729
+#: parser.yy:804
 msgid "\\paper cannot be used in \\score, use \\layout instead"
 msgstr ""
 
-#: parser.yy:753
+#: parser.yy:828
 msgid "need \\paper for paper block"
 msgstr ""
 
-#: parser.yy:1224
+#: parser.yy:1299
 msgid "Grob name should be alphanumeric"
 msgstr ""
 
-#: parser.yy:1522
+#: parser.yy:1597
 msgid "second argument must be pitch list"
 msgstr ""
 
-#: parser.yy:1549 parser.yy:1554 parser.yy:2026
+#: parser.yy:1624 parser.yy:1629 parser.yy:2101
 msgid "have to be in Lyric mode for lyrics"
 msgstr ""
 
-#: parser.yy:1651
+#: parser.yy:1726
 msgid "expecting string as script definition"
 msgstr ""
 
-#: parser.yy:1806 parser.yy:1856
+#: parser.yy:1881 parser.yy:1931
 #, c-format
 msgid "not a duration: %d"
 msgstr ""
 
-#: parser.yy:1980
+#: parser.yy:2055
 msgid "have to be in Note mode for notes"
 msgstr ""
 
-#: parser.yy:2041
+#: parser.yy:2116
 msgid "have to be in Chord mode for chords"
 msgstr ""
 
@@ -2446,26 +2529,26 @@ msgstr ""
 msgid "invalid character: `%c'"
 msgstr ""
 
-#: lexer.ll:803 lexer.ll:804
+#: lexer.ll:803
 #, c-format
 msgid "unknown escaped string: `\\%s'"
 msgstr ""
 
-#: lexer.ll:910 lexer.ll:911
+#: lexer.ll:910
 #, c-format
 msgid "file too old: %s (oldest supported: %s)"
 msgstr ""
 
-#: lexer.ll:911 lexer.ll:912
+#: lexer.ll:911
 msgid "consider updating the input with the convert-ly script"
 msgstr ""
 
-#: lexer.ll:917 lexer.ll:918
+#: lexer.ll:917
 #, c-format
 msgid "program too old: %s (file requires: %s)"
 msgstr ""
 
-#: backend-library.scm:19 lily.scm:777 ps-to-png.scm:58
+#: backend-library.scm:19 lily.scm:761 ps-to-png.scm:58
 #, scheme-format
 msgid "Invoking `~a'..."
 msgstr ""
@@ -2475,7 +2558,7 @@ msgstr ""
 msgid "`~a' failed (~a)"
 msgstr ""
 
-#: backend-library.scm:116 framework-tex.scm:344 framework-tex.scm:369
+#: backend-library.scm:116
 #, scheme-format
 msgid "Converting to `~a'..."
 msgstr ""
@@ -2509,16 +2592,16 @@ msgstr ""
 msgid "translator listens to nonexisting event class ~A"
 msgstr ""
 
-#: define-markup-commands.scm:599
+#: define-markup-commands.scm:569
 msgid "no systems found in \\score markup, does it have a \\layout block?"
 msgstr ""
 
-#: define-markup-commands.scm:2428
+#: define-markup-commands.scm:2387
 #, scheme-format
 msgid "Cannot find glyph ~a"
 msgstr ""
 
-#: define-markup-commands.scm:2737
+#: define-markup-commands.scm:2696
 #, scheme-format
 msgid "not a valid duration string: ~a"
 msgstr ""
@@ -2539,7 +2622,7 @@ msgid "unknown repeat type `~S'"
 msgstr ""
 
 #: define-music-types.scm:693
-msgid "See music-types.scm for supported repeats"
+msgid "See define-music-types.scm for supported repeats"
 msgstr ""
 
 #: document-backend.scm:99
@@ -2557,57 +2640,57 @@ msgstr ""
 msgid "unknown Grob interface: ~S"
 msgstr ""
 
-#: documentation-lib.scm:48
+#: documentation-lib.scm:49
 #, scheme-format
 msgid "Processing ~S..."
 msgstr ""
 
-#: documentation-lib.scm:164
+#: documentation-lib.scm:165
 #, scheme-format
 msgid "Writing ~S..."
 msgstr ""
 
-#: documentation-lib.scm:186
+#: documentation-lib.scm:187
 #, scheme-format
 msgid "cannot find description for property ~S (~S)"
 msgstr ""
 
+#: flag-styles.scm:145
+#, scheme-format
+msgid "flag stroke `~a' or `~a' not found"
+msgstr ""
+
 #: framework-eps.scm:90
 #, scheme-format
 msgid "Writing ~a..."
 msgstr ""
 
-#: framework-ps.scm:282
+#: framework-ps.scm:277
 #, scheme-format
 msgid "cannot embed ~S=~S"
 msgstr ""
 
-#: framework-ps.scm:335
+#: framework-ps.scm:330
 #, scheme-format
 msgid "cannot extract file matching ~a from ~a"
 msgstr ""
 
-#: framework-ps.scm:352
+#: framework-ps.scm:347
 #, scheme-format
 msgid "do not know how to embed ~S=~S"
 msgstr ""
 
-#: framework-ps.scm:383
+#: framework-ps.scm:378
 #, scheme-format
 msgid "do not know how to embed font ~s ~s ~s"
 msgstr ""
 
-#: framework-ps.scm:753
+#: framework-ps.scm:748
 #, scheme-format
 msgid "cannot convert <stdout> to ~S"
 msgstr ""
 
-#: framework-ps.scm:772 framework-ps.scm:775
-#, scheme-format
-msgid "cannot generate ~S using the postscript back-end"
-msgstr ""
-
-#: framework-ps.scm:782
+#: framework-ps.scm:771
 msgid ""
 "\n"
 "The PostScript backend does not support the system-by-system \n"
@@ -2623,11 +2706,6 @@ msgid ""
 "  %% ****************************************************************\n"
 msgstr ""
 
-#: framework-tex.scm:361
-#, scheme-format
-msgid "TeX file name must not contain whitespace: `~a'"
-msgstr ""
-
 #: graphviz.scm:53
 #, scheme-format
 msgid "Writing graph `~a'..."
@@ -2643,56 +2721,52 @@ msgstr ""
 msgid "Error in beam quanting.  Expected ~S 0, found ~S."
 msgstr ""
 
-#: layout-page-layout.scm:124
+#: layout-page-layout.scm:126
 msgid "Can't fit systems on page -- ignoring between-system-padding"
 msgstr ""
 
-#: layout-page-layout.scm:458
-msgid "Calculating page breaks..."
-msgstr ""
-
-#: lily-library.scm:588
+#: lily-library.scm:602
 #, scheme-format
 msgid "unknown unit: ~S"
 msgstr ""
 
-#: lily-library.scm:622
+#: lily-library.scm:636
 #, scheme-format
 msgid "no \\version statement found, please add~afor future compatibility"
 msgstr ""
 
-#: lily-library.scm:630
+#: lily-library.scm:644
 msgid "old relative compatibility not used"
 msgstr ""
 
-#: lily.scm:178
+#: lily.scm:179
 #, scheme-format
 msgid "cannot find: ~A"
 msgstr ""
 
-#: lily.scm:243
+#: lily.scm:228
 #, scheme-format
 msgid "wrong type for argument ~a.  Expecting ~a, found ~s"
 msgstr ""
 
-#: lily.scm:641
+#: lily.scm:625
 #, scheme-format
 msgid "job ~a terminated with signal: ~a"
 msgstr ""
 
-#: lily.scm:644
+#: lily.scm:628
 #, scheme-format
 msgid ""
 "logfile ~a (exit ~a):\n"
 "~a"
 msgstr ""
 
-#: lily.scm:669 lily.scm:767
+#: lily.scm:653 lily.scm:751
 #, scheme-format
 msgid "failed files: ~S"
 msgstr ""
 
-#: lily.scm:757
+#: lily.scm:741
 #, scheme-format
 msgid "Redirecting output to ~a..."
 msgstr ""
@@ -2701,7 +2775,7 @@ msgstr ""
 msgid "Music head function must return Music object"
 msgstr ""
 
-#: ly-syntax-constructors.scm:150
+#: ly-syntax-constructors.scm:154
 #, scheme-format
 msgid "Invalid property operation ~a"
 msgstr ""
@@ -2751,12 +2825,12 @@ msgstr ""
 msgid "cannot find quoted music: `~S'"
 msgstr ""
 
-#: music-functions.scm:990
+#: music-functions.scm:1198
 #, scheme-format
 msgid "unknown accidental style: ~S"
 msgstr ""
 
-#: output-ps.scm:285
+#: output-ps.scm:294
 msgid "utf-8-string encountered in PS backend"
 msgstr ""
 
@@ -2770,28 +2844,23 @@ msgstr ""
 msgid "cannot decypher Pango description: ~a"
 msgstr ""
 
-#: output-tex.scm:96
-#, scheme-format
-msgid "cannot find ~a in ~a"
-msgstr ""
-
-#: paper.scm:86
+#: paper.scm:104
 msgid "set-global-staff-size: not in toplevel scope"
 msgstr ""
 
-#: paper.scm:226
+#: paper.scm:244
 #, scheme-format
 msgid "This is not a \\layout {} object, ~S"
 msgstr ""
 
-#: paper.scm:238
+#: paper.scm:256
 #, scheme-format
-msgid "Unknown papersize: ~a"
+msgid "Unknown paper size: ~a"
 msgstr ""
 
 #. TODO: should raise (generic) exception with throw, and catch
 #. that in parse-scm.cc
-#: paper.scm:253
+#: paper.scm:271
 msgid "Must use #(set-paper-size .. ) within \\paper { ... }"
 msgstr ""
 
index 3eaa1a535db4ca49e13960c07ad8c283f38beedd..4640fa8528bda9885672789f585958c16844343c 100644 (file)
--- a/po/uk.po
+++ b/po/uk.po
@@ -1,6 +1,6 @@
 # Ukrainian translations for lilypond package
 # Переклад українською для пакету lilypond.
-# Copyright (C) 2007 THE PACKAGE'S COPYRIGHT HOLDER
+# Copyright (C) 2007--2009 THE PACKAGE'S COPYRIGHT HOLDER
 # This file is distributed under the same license as the PACKAGE package.
 # Youri Bulka <jblk@icmail.net>, 2007.
 #
index b2dd24cf717c8a20e45ddc86a06f9fc2188e0e72..02d3dcb191c96ab98c39b0d73deef92a3c435201 100644 (file)
--- a/po/vi.po
+++ b/po/vi.po
@@ -1,21 +1,21 @@
 # Vietnamese translation for Lilypond.
-# Copyright © 2008 Free Software Foundation, Inc.
+# Copyright © 2009 Free Software Foundation, Inc.
 # This file is distributed under the same license as the lilypond package.
-# Clytie Siddall <clytie@riverland.net.au>, 2007-2008.
+# Clytie Siddall <clytie@riverland.net.au>, 2007-2009.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: lilypond 2.11.57\n"
+"Project-Id-Version: lilypond 2.12.0\n"
 "Report-Msgid-Bugs-To: http://post.gmane.org/post.php?group=gmane.comp.gnu.lilypond.bugs\n"
-"POT-Creation-Date: 2008-08-23 18:49+0200\n"
-"PO-Revision-Date: 2008-09-08 18:16+0930\n"
+"POT-Creation-Date: 2008-12-20 11:58+0100\n"
+"PO-Revision-Date: 2009-01-27 00:20+1030\n"
 "Last-Translator: Clytie Siddall <clytie@riverland.net.au>\n"
 "Language-Team: Vietnamese <vi-VN@googlegroups.com>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: LocFactoryEditor 1.7b3\n"
+"X-Generator: LocFactoryEditor 1.8\n"
 
 #: convertrules.py:12
 #, python-format
@@ -31,7 +31,7 @@ msgstr "Xem sổ tay để tìm chi tiết, và tự cập nhật."
 msgid "%s has been replaced by %s"
 msgstr "%s đã bị thay thế bằng %s"
 
-#: convertrules.py:24 musicexp.py:16 convert-ly.py:48 lilypond-book.py:82
+#: convertrules.py:24 musicexp.py:16 convert-ly.py:50 lilypond-book.py:94
 #: warn.cc:48 input.cc:90
 #, c-format, python-format
 msgid "warning: %s"
@@ -427,6 +427,22 @@ msgstr "Trục và hướng lúc bây giờ nằm trước mã định dạng:\n
 msgid "\\put-adjacent axis dir markup markup."
 msgstr "mã định dạng thư mục trục \\put-adjacent."
 
+#: convertrules.py:2832
+msgid "re-definition of InnerStaffGroup.\n"
+msgstr "định nghĩa lại InnerStaffGroup.\n"
+
+#: convertrules.py:2838
+msgid "re-definition of InnerChoirStaff.\n"
+msgstr "định nghĩa lại InnerChoirStaff.\n"
+
+#: convertrules.py:2851
+msgid "stringTuning must be added to addChordShape call.\n"
+msgstr "Phải thêm stringTuning vào cuộc gọi addChordShape.\n"
+
+#: convertrules.py:2857
+msgid "stringTuning must be added to chord-shape call.\n"
+msgstr "Phải thêm stringTuning vào cuộc gọi hình hợp âm.\n"
+
 #: fontextract.py:25
 #, python-format
 msgid "Scanning %s"
@@ -442,56 +458,90 @@ msgstr "Đã giải nén %s"
 msgid "Writing fonts to %s"
 msgstr "Đang ghi các phông vào %s"
 
-#: lilylib.py:101 lilylib.py:152
+#: lilylib.py:91 lilylib.py:142
 #, python-format
 msgid "Invoking `%s'"
 msgstr "Đang gọi « %s »"
 
-#: lilylib.py:103 lilylib.py:154
+#: lilylib.py:93 lilylib.py:144
 #, python-format
 msgid "Running %s..."
 msgstr "Đang chạy %s..."
 
-#: lilylib.py:219
+#: lilylib.py:209
 #, python-format
 msgid "Usage: %s"
 msgstr "Cách sử dụng: %s"
 
-#: musicexp.py:585
+#: musicexp.py:215 musicexp.py:220
+msgid "Language does not support microtones contained in the piece"
+msgstr "Ngôn ngữ không hỗ trợ âm vi nằm trong bản nhạc"
+
+#: musicexp.py:482
+msgid "Tuplet brackets of curved shape are not correctly implemented"
+msgstr "Dấu ngoặc liên tư có hình cong chưa được thực hiện đúng"
+
+#. TODO: Implement this using actual_type and normal_type!
+#: musicexp.py:511
+msgid "Tuplet brackets displaying both note durations are not implemented, using default"
+msgstr "Dấu ngoặc liên tư hiển thị cả hai trường độ nốt nhạc chưa được thực hiện nên dùng giá trị mặc định "
+
+#: musicexp.py:656
 #, python-format
 msgid "unable to set the music %(music)s for the repeat %(repeat)s"
 msgstr "không thể đặt âm nhạc %(music)s cho lần lặp lại %(repeat)s"
 
-#: musicexp.py:594
+#: musicexp.py:665
 msgid "encountered repeat without body"
 msgstr "gặp lần lặp lại không có thân"
 
-#: musicxml.py:13 convert-ly.py:51 lilypond-book.py:85 warn.cc:54 input.cc:96
+#. no self.elements!
+#: musicexp.py:835
+#, python-format
+msgid "Grace note with no following music: %s"
+msgstr "Âm hiệu hoa mỹ không có nhạc theo sau : %s"
+
+#: musicexp.py:997
+#, python-format
+msgid "Invalid octave shift size found: %s. Using no shift."
+msgstr "Tìm thấy kích cỡ dịch quãng tám không hợp lệ: %s. Vì thế không dịch."
+
+#: musicexp.py:1455
+#, python-format
+msgid "Unable to convert alteration %s to a lilypond expression"
+msgstr "Không thể chuyển đổi sự sửa đổi %s sang một biểu thức lilypond"
+
+#: musicxml.py:13 convert-ly.py:53 lilypond-book.py:97 warn.cc:54 input.cc:96
 #: input.cc:104
 #, c-format, python-format
 msgid "error: %s"
 msgstr "lỗi: %s"
 
-#: musicxml.py:298
-msgid "requested time signature, but time sig is unknown"
-msgstr "đã yêu cầu ký hiệu nhịp điệu, nhưng không rõ loại nhịp"
+#. TODO: Handle pieces without a time signature!
+#: musicxml.py:357
+msgid "Senza-misura time signatures are not yet supported!"
+msgstr "Chưa hỗ trợ ký hiệu nhịp điệu kiểu senza-misura."
+
+#: musicxml.py:375
+msgid "Unable to interpret time signature! Falling back to 4/4."
+msgstr "Không thể giải thích ký hiệu nhịp điệu nên trả lại 4/4."
 
-#: musicxml.py:354
+#: musicxml.py:431
 #, python-format
-msgid "Encountered note at %s with %s duration (no <type> element):"
-msgstr "Gặp nốt ở %s với thời lượng %s (không có phần tử <type>):"
+msgid "Key alteration octave given for a non-existing alteration nr. %s, available numbers: %s!"
+msgstr "Quãng tám sửa đổi khoá được nhập cho một số sửa đổi mà không tồn tại %s, những số sẵn có : %s"
 
-#: musicxml.py:388
+#: musicxml.py:519
 #, python-format
 msgid "Unable to find instrument for ID=%s\n"
 msgstr "Không tìm thấy nhạc khí cho ID=%s\n"
 
-#: abc2ly.py:1342 convert-ly.py:72 lilypond-book.py:109 midi2ly.py:846
+#: abc2ly.py:1341 convert-ly.py:74 lilypond-book.py:121 midi2ly.py:845
 #, python-format
 msgid "%s [OPTION]... FILE"
 msgstr "%s [TÙY_CHỌN]... TẬP_TIN"
 
-#: abc2ly.py:1343
+#: abc2ly.py:1342
 #, python-format
 msgid ""
 "abc2ly converts ABC music files (see\n"
@@ -500,105 +550,110 @@ msgstr ""
 "abc2ly chuyển đổi tập tin âm nhạc kiểu ABC\n"
 "(xem %s) sang dữ liệu nhập vào LilyPond.\n"
 
-#: abc2ly.py:1351 convert-ly.py:79 etf2ly.py:1190 lilypond-book.py:195
-#: midi2ly.py:882 musicxml2ly.py:2185 main.cc:161
+#: abc2ly.py:1350 convert-ly.py:81 etf2ly.py:1190 lilypond-book.py:207
+#: midi2ly.py:881 musicxml2ly.py:2590 main.cc:156
 msgid "show version number and exit"
 msgstr "hiển thị số phiên bản rồi thoát"
 
-#: abc2ly.py:1355 convert-ly.py:83 etf2ly.py:1186 lilypond-book.py:126
-#: midi2ly.py:861 musicxml2ly.py:2167 main.cc:150
+#: abc2ly.py:1354 convert-ly.py:85 etf2ly.py:1186 lilypond-book.py:138
+#: midi2ly.py:860 musicxml2ly.py:2572 main.cc:145
 msgid "show this help and exit"
 msgstr "hiển thị trợ giúp này rồi thoát"
 
-#: abc2ly.py:1357 etf2ly.py:1191 midi2ly.py:865
+#: abc2ly.py:1356 etf2ly.py:1191 midi2ly.py:864
 msgid "write output to FILE"
 msgstr "xuất ra TẬP_TIN"
 
-#: abc2ly.py:1359
+#: abc2ly.py:1358
 msgid "be strict about success"
 msgstr "chặt chẽ về thành công"
 
-#: abc2ly.py:1361
+#: abc2ly.py:1360
 msgid "preserve ABC's notion of beams"
 msgstr "bảo tồn ý kiến ABC về tia"
 
-#: abc2ly.py:1363 convert-ly.py:120 etf2ly.py:1199 lilypond-book.py:202
-#: midi2ly.py:894 musicxml2ly.py:2240
-msgid "Report bugs via"
-msgstr "Thông báo lỗi thông qua"
+#. Translators, please translate this string as
+#. "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:1363 convert-ly.py:123 etf2ly.py:1200 lilypond-book.py:214
+#: midi2ly.py:894 musicxml2ly.py:2646 main.cc:265
+#, c-format, python-format
+msgid "Report bugs via %s"
+msgstr "Hãy thông báo lỗi cho %s"
 
-#: convert-ly.py:31
+#: convert-ly.py:33
 msgid ""
 "Update LilyPond input to newer version.  By default, update from the\n"
 "version taken from the \\version command, to the current LilyPond version."
 msgstr "Cập nhật kết nhập Lilypond lên phiên bản mới hơn. Mặc định là cập nhật từ phiên bản đưa ra bằng lệnh « \\version », lên phiên bản Lilypond hiện thời."
 
-#: convert-ly.py:33 lilypond-book.py:59
+#: convert-ly.py:35 lilypond-book.py:71
 msgid "Examples:"
 msgstr "Thí dụ :"
 
-#: convert-ly.py:67 etf2ly.py:1173 lilypond-book.py:105 midi2ly.py:77
+#: convert-ly.py:69 etf2ly.py:1173 lilypond-book.py:117 midi2ly.py:76
 msgid "Distributed under terms of the GNU General Public License."
 msgstr "Được phát hành với điều kiện của Giấy phép Công cộng GNU (GPL)"
 
-#: convert-ly.py:68 etf2ly.py:1174 lilypond-book.py:106 midi2ly.py:78
+#: convert-ly.py:70 etf2ly.py:1174 lilypond-book.py:118 midi2ly.py:77
 msgid "It comes with NO WARRANTY."
 msgstr "Nó KHÔNG BẢO HÀNH GÌ CẢ."
 
-#: convert-ly.py:87 convert-ly.py:114
+#: convert-ly.py:89 convert-ly.py:116
 msgid "VERSION"
 msgstr "PHIÊN BẢN"
 
-#: convert-ly.py:89
+#: convert-ly.py:91
 msgid "start from VERSION [default: \\version found in file]"
 msgstr "bắt đầu từ PHIÊN BẢN [mặc định: \\version được tìm trong tập tin]"
 
-#: convert-ly.py:92
+#: convert-ly.py:94
 msgid "edit in place"
 msgstr "sửa tại chỗ"
 
-#: convert-ly.py:96
+#: convert-ly.py:98
 msgid "do not add \\version command if missing"
 msgstr "không thêm lệnh \\version nếu còn thiếu"
 
-#: convert-ly.py:102
+#: convert-ly.py:104
 #, python-format
 msgid "force updating \\version number to %s"
 msgstr "ép buộc cập nhật số thứ tự \\version (phiên bản) lên %s"
 
-#: convert-ly.py:108
+#: convert-ly.py:110
 #, python-format
 msgid "show rules [default: -f 0, -t %s]"
 msgstr "hiện các quy tắc [mặc định: -f 0, -t %s]"
 
-#: convert-ly.py:113
+#: convert-ly.py:115
 #, python-format
 msgid "convert to VERSION [default: %s]"
 msgstr "chuyển đổi sang PHIÊN_BẢN [mặc định: %s]"
 
-#: convert-ly.py:160
+#: convert-ly.py:163
 msgid "Applying conversion: "
 msgstr "Đang áp dụng sự chuyển đổi: "
 
-#: convert-ly.py:173
+#: convert-ly.py:176
 msgid "Error while converting"
 msgstr "Gặp lỗi trong khi chuyển đổi"
 
-#: convert-ly.py:175
-msgid "Stopping at last succesful rule"
+#: convert-ly.py:178
+msgid "Stopping at last successful rule"
 msgstr "Đang dừng ở quy tắc thành công cuối cùng"
 
-#: convert-ly.py:196
+#: convert-ly.py:199
 #, python-format
 msgid "Processing `%s'... "
 msgstr "Đang xử lý « %s »... "
 
-#: convert-ly.py:286 relocate.cc:362 source-file.cc:59
+#: convert-ly.py:289 relocate.cc:362 source-file.cc:59
 #, c-format, python-format
 msgid "cannot open file: `%s'"
 msgstr "không thể mở tập tin « %s »"
 
-#: convert-ly.py:293
+#: convert-ly.py:296
 #, python-format
 msgid "cannot determine version for `%s'.  Skipping"
 msgstr "không thể quyết định phiên bản cho « %s » nên bỏ qua"
@@ -618,275 +673,275 @@ msgstr ""
 "etf2ly chuyển đổi một tập hợp con của ETF\n"
 "sang một tập tin Lilypond sẵn sàng dùng.\n"
 
-#: etf2ly.py:1192 midi2ly.py:866 musicxml2ly.py:2233 main.cc:154 main.cc:159
+#: etf2ly.py:1192 midi2ly.py:865 musicxml2ly.py:2638 main.cc:149 main.cc:154
 msgid "FILE"
 msgstr "TẬP TIN"
 
-#: etf2ly.py:1194 lilypond-book.py:198 midi2ly.py:883 main.cc:163
+#: etf2ly.py:1194 lilypond-book.py:210 midi2ly.py:882 main.cc:158
 msgid "show warranty and copyright"
 msgstr "hiện bảo hành và tác quyền"
 
-#: lilypond-book.py:57
+#: lilypond-book.py:69
 msgid "Process LilyPond snippets in hybrid HTML, LaTeX, texinfo or DocBook document."
 msgstr "Xử lý các đoạn LilyPond theo tài liệu HTML, LaTeX, texinfo hay DocBook pha giống."
 
-#: lilypond-book.py:64
+#: lilypond-book.py:76
 msgid "BOOK"
 msgstr "SỔ"
 
-#: lilypond-book.py:72
+#: lilypond-book.py:84
 #, python-format
 msgid "Exiting (%d)..."
 msgstr "Đang thoát (%d)..."
 
-#: lilypond-book.py:103
+#: lilypond-book.py:115
 #, python-format
 msgid "Copyright (c) %s by"
 msgstr "Tác quyền © năm %s của"
 
-#: lilypond-book.py:113
+#: lilypond-book.py:125
 msgid "FILTER"
 msgstr "LỌC"
 
-#: lilypond-book.py:116
+#: lilypond-book.py:128
 msgid "pipe snippets through FILTER [default: `convert-ly -n -']"
 msgstr "gửi các đoạn qua ống dẫn và bộ LỌC [mặc định: « convert-ly -n - »]"
 
-#: lilypond-book.py:120
+#: lilypond-book.py:132
 msgid "use output format FORMAT (texi [default], texi-html, latex, html, docbook)"
 msgstr "dùng định dạng xuất ĐỊNH DẠNG (texi [mặc định], texi-html, latex, html, docbook)"
 
-#: lilypond-book.py:121
+#: lilypond-book.py:133
 msgid "FORMAT"
 msgstr "ĐỊNH_DẠNG"
 
-#: lilypond-book.py:128
+#: lilypond-book.py:140
 msgid "add DIR to include path"
 msgstr "thêm THƯ_MỤC vào đường dẫn bao gồm"
 
-#: lilypond-book.py:129 lilypond-book.py:136 lilypond-book.py:154
-#: lilypond-book.py:160 lilypond-book.py:166 lilypond-book.py:172 main.cc:153
+#: lilypond-book.py:141 lilypond-book.py:148 lilypond-book.py:166
+#: lilypond-book.py:172 lilypond-book.py:178 lilypond-book.py:184 main.cc:148
 msgid "DIR"
 msgstr "THƯ_MỤC"
 
-#: lilypond-book.py:134
+#: lilypond-book.py:146
 msgid "format Texinfo output so that Info will look for images of music in DIR"
 msgstr "định dạng kết xuất Texinfo để mà Info sẽ tìm ảnh nhạc trong THƯ_MỤC"
 
-#: lilypond-book.py:141
+#: lilypond-book.py:153
 msgid "run executable PROG instead of latex"
 msgstr "chạy PROG (chương trình) có thể thực thi, thay cho latex"
 
-#: lilypond-book.py:142
+#: lilypond-book.py:154
 msgid "PROG"
 msgstr "PROG"
 
-#: lilypond-book.py:147
+#: lilypond-book.py:159
 msgid "PAD"
 msgstr "ĐỆM"
 
-#: lilypond-book.py:149
+#: lilypond-book.py:161
 msgid "pad left side of music to align music inspite of uneven bar numbers (in mm)"
 msgstr "đệm bên trái của bản nhạc để sắp hàng nhạc, bất chấp các số thứ tự gạch nhịp (theo mili-mét)"
 
-#: lilypond-book.py:153
+#: lilypond-book.py:165
 msgid "write output to DIR"
 msgstr "xuất ra THƯ_MỤC"
 
-#: lilypond-book.py:159
+#: lilypond-book.py:171
 msgid "do not fail if no lilypond output is found"
 msgstr "không tìm thấy kết xuất lilypond thì vẫn thành công"
 
-#: lilypond-book.py:165
+#: lilypond-book.py:177
 msgid "do not fail if no PNG images are found for EPS files"
 msgstr "không tìm thấy ảnh PNG cho tập tin EPS thì vẫn thành công"
 
-#: lilypond-book.py:171
+#: lilypond-book.py:183
 msgid "write lily-XXX files to DIR, link into --output dir"
 msgstr "ghi các tập tin lily-XXX vào TMỤC, liên kết vào thư mục --output (xuất)"
 
-#: lilypond-book.py:176
+#: lilypond-book.py:188
 msgid "COMMAND"
 msgstr "LỆNH"
 
-#: lilypond-book.py:177
+#: lilypond-book.py:189
 msgid "process ly_files using COMMAND FILE..."
 msgstr "xử lý các tập tin ly_file dùng LỆNH TẬP TIN..."
 
-#: lilypond-book.py:184
+#: lilypond-book.py:196
 msgid "create PDF files for use with PDFTeX"
 msgstr "tạo tập tin PDF để sử dụng với PDFTeX"
 
-#: lilypond-book.py:187 midi2ly.py:876 musicxml2ly.py:2190 main.cc:162
+#: lilypond-book.py:199 midi2ly.py:875 musicxml2ly.py:2595 main.cc:157
 msgid "be verbose"
 msgstr "xuất chi tiết"
 
-#: lilypond-book.py:825
+#: lilypond-book.py:871
 #, python-format
 msgid "file not found: %s"
 msgstr "không tìm thấy tập tin: %s"
 
-#: lilypond-book.py:1087
+#: lilypond-book.py:1142
 #, python-format
 msgid "deprecated ly-option used: %s=%s"
 msgstr "dùng tùy chọn ly-option bị phản đối: %s=%s"
 
-#: lilypond-book.py:1089
+#: lilypond-book.py:1144
 #, python-format
 msgid "compatibility mode translation: %s=%s"
 msgstr "dịch chế độ khả năng tương thích: %s=%s"
 
-#: lilypond-book.py:1092
+#: lilypond-book.py:1147
 #, python-format
 msgid "deprecated ly-option used: %s"
 msgstr "dùng tùy chọn ly-option bị phản đối: %s"
 
-#: lilypond-book.py:1094
+#: lilypond-book.py:1149
 #, python-format
 msgid "compatibility mode translation: %s"
 msgstr "dịch chế độ khả năng tương thích: %s"
 
-#: lilypond-book.py:1112
+#: lilypond-book.py:1167
 #, python-format
 msgid "ignoring unknown ly option: %s"
 msgstr "đang bỏ qua tùy chọn ly lạ: %s"
 
-#: lilypond-book.py:1538
+#: lilypond-book.py:1604
 #, python-format
 msgid "Opening filter `%s'"
 msgstr "Đang mở bộ lọc « %s »"
 
-#: lilypond-book.py:1555
+#: lilypond-book.py:1621
 #, python-format
 msgid "`%s' failed (%d)"
 msgstr "« %s » bị lỗi (%d)"
 
-#: lilypond-book.py:1556
+#: lilypond-book.py:1622
 msgid "The error log is as follows:"
 msgstr "Bản ghi lỗi bên dưới:"
 
-#: lilypond-book.py:1618
+#: lilypond-book.py:1684
 msgid "cannot find \\begin{document} in LaTeX document"
 msgstr "không tìm thấy tài liệu bắt đầu « \\begin{document} » trong tài liệu LaTeX"
 
-#: lilypond-book.py:1718
+#: lilypond-book.py:1784
 msgid "Writing snippets..."
 msgstr "Đang ghi các đoạn..."
 
-#: lilypond-book.py:1724
+#: lilypond-book.py:1790
 msgid "Processing..."
 msgstr "Đang xử lý..."
 
-#: lilypond-book.py:1730
+#: lilypond-book.py:1796
 msgid "All snippets are up to date..."
 msgstr "Mọi đoạn là hiện thời..."
 
-#: lilypond-book.py:1764
+#: lilypond-book.py:1830
 #, python-format
 msgid "cannot determine format for: %s"
 msgstr "không thể xác định định dạng cho : %s"
 
-#: lilypond-book.py:1775
+#: lilypond-book.py:1841
 #, python-format
 msgid "%s is up to date."
 msgstr "%s là hiện thời."
 
-#: lilypond-book.py:1789
+#: lilypond-book.py:1855
 #, python-format
 msgid "Writing `%s'..."
 msgstr "Đang ghi « %s »..."
 
-#: lilypond-book.py:1847
+#: lilypond-book.py:1913
 msgid "Output would overwrite input file; use --output."
 msgstr "Kết xuất sẽ ghi đè lên tập tin nhập vào : dùng tùy chọn « --output »."
 
-#: lilypond-book.py:1851
+#: lilypond-book.py:1917
 #, python-format
 msgid "Reading %s..."
 msgstr "Đang đọc %s..."
 
-#: lilypond-book.py:1870
+#: lilypond-book.py:1937
 msgid "Dissecting..."
 msgstr "Đang phân chia..."
 
-#: lilypond-book.py:1886
+#: lilypond-book.py:1953
 #, python-format
 msgid "Compiling %s..."
 msgstr "Đang biên dịch %s..."
 
-#: lilypond-book.py:1895
+#: lilypond-book.py:1962
 #, python-format
 msgid "Processing include: %s"
 msgstr "Đang xử lý đồ bao gồm: %s"
 
-#: lilypond-book.py:1907
+#: lilypond-book.py:1974
 #, python-format
 msgid "Removing `%s'"
 msgstr "Đang gỡ bỏ « %s »"
 
-#: midi2ly.py:85 lily-library.scm:620 lily-library.scm:629
+#: midi2ly.py:84 lily-library.scm:634 lily-library.scm:643
 msgid "warning: "
 msgstr "cảnh báo : "
 
-#: midi2ly.py:88 midi2ly.py:907
+#: midi2ly.py:87 midi2ly.py:907
 msgid "error: "
 msgstr "lỗi: "
 
-#: midi2ly.py:89
+#: midi2ly.py:88
 msgid "Exiting... "
 msgstr "Đang thoát... "
 
-#: midi2ly.py:834
+#: midi2ly.py:833
 #, python-format
 msgid "%s output to `%s'..."
 msgstr "kết xuất %s vào « %s »..."
 
-#: midi2ly.py:847
+#: midi2ly.py:846
 #, python-format
 msgid "Convert %s to LilyPond input.\n"
 msgstr "Chuyển đổi %s sang dữ liệu nhập vào Lilypond.\n"
 
-#: midi2ly.py:852
+#: midi2ly.py:851
 msgid "print absolute pitches"
 msgstr "in ra độ cao thấp tuyệt đối"
 
-#: midi2ly.py:854 midi2ly.py:869
+#: midi2ly.py:853 midi2ly.py:868
 msgid "DUR"
 msgstr "THỜI_LƯỢNG"
 
-#: midi2ly.py:855
+#: midi2ly.py:854
 msgid "quantise note durations on DUR"
 msgstr "lượng tử hoá các thời gian nốt trong THỜI_LƯỢNG"
 
-#: midi2ly.py:858
+#: midi2ly.py:857
 msgid "print explicit durations"
 msgstr "in ra các thời lượng dứt khoát"
 
-#: midi2ly.py:862
+#: midi2ly.py:861
 msgid "set key: ALT=+sharps|-flats; MINOR=1"
 msgstr "đặt khoá: ALT=+thăng|-giáng; THỨ=1"
 
-#: midi2ly.py:863
+#: midi2ly.py:862
 msgid "ALT[:MINOR]"
 msgstr "ALT[:THỨ]"
 
-#: midi2ly.py:868
+#: midi2ly.py:867
 msgid "quantise note starts on DUR"
 msgstr "lượng tử hoá sự bắt đầu nốt trong THỜI_LƯỢNG"
 
-#: midi2ly.py:871
+#: midi2ly.py:870
 msgid "DUR*NUM/DEN"
 msgstr "THỜI_LƯỢNG*SỐ/MẬT_ĐỘ"
 
-#: midi2ly.py:874
+#: midi2ly.py:873
 msgid "allow tuplet durations DUR*NUM/DEN"
 msgstr "cho phép thời gian nhiều nốt THỜI_LƯỢNG*SỐ/MẬT_ĐỘ"
 
-#: midi2ly.py:886
+#: midi2ly.py:885
 msgid "treat every text as a lyric"
 msgstr "xử lý mọi văn bản là lời nhạc"
 
-#: midi2ly.py:889
+#: midi2ly.py:888
 msgid "Examples"
 msgstr "Ví dụ"
 
@@ -894,96 +949,121 @@ msgstr "Ví dụ"
 msgid "no files specified on command line."
 msgstr "chưa xác định tập tin trên dòng lệnh."
 
-#: musicxml2ly.py:213
+#: musicxml2ly.py:343
 msgid "Encountered file created by Dolet 3.4 for Sibelius, containing wrong beaming information. All beaming information in the MusicXML file will be ignored"
 msgstr "Gặp tập tin tạo bởi Dolet 3.4 cho Sibelius, mà chứa thông tin sai về gửi chùm: tất cả các thông tin về gửi chùm trong tập tin MusicXML đều bị bở qua."
 
-#: musicxml2ly.py:229 musicxml2ly.py:231
+#: musicxml2ly.py:346
+msgid "Encountered file created by Noteworthy Composer's nwc2xml, containing wrong beaming information. All beaming information in the MusicXML file will be ignored"
+msgstr "Gặp tập tin tạo bởi nwc2xml của Noteworthy Composer, mà chứa thông tin sai về gửi chùm: tất cả các thông tin về gửi chùm trong tập tin MusicXML đều bị bở qua."
+
+#: musicxml2ly.py:362 musicxml2ly.py:364
 #, python-format
 msgid "Unprocessed PartGroupInfo %s encountered"
 msgstr "Gặp PartGroupInfo %s chưa được xử lý"
 
-#: musicxml2ly.py:471
+#: musicxml2ly.py:594
+#, python-format
+msgid "Encountered note at %s without type and duration (=%s)"
+msgstr "Gặp nốt ở %s mà không có kiểu và trường độ (=%s)"
+
+#: musicxml2ly.py:613
 #, python-format
 msgid "Encountered rational duration with denominator %s, unable to convert to lilypond duration"
 msgstr "Gặp thời lượng hợp lý hữu tỷ với mẫu số %s, không thể chuyển đổi sang thời lượng kiểu Lilypond"
 
-#: musicxml2ly.py:654
+#: musicxml2ly.py:868
+msgid "Unable to extract key signature!"
+msgstr "Không thể giải phóng dấu hóa đầu dòng."
+
+#: musicxml2ly.py:895
 #, python-format
-msgid "unknown mode %s, expecting 'major' or 'minor'"
-msgstr "không rõ chế độ %s, đợi « trưởng » hoặc « thứ »"
+msgid "unknown mode %s, expecting 'major' or 'minor' or a church mode!"
+msgstr "không rõ chế độ %s, mong đợi « trưởng » hoặc « thứ » hoặc một chế độ nhà thờ."
 
-#: musicxml2ly.py:692
+#: musicxml2ly.py:968
 #, python-format
 msgid "Encountered unprocessed marker %s\n"
 msgstr "Gặp dấu vết chưa được xử lý %s\n"
 
-#: musicxml2ly.py:786
+#: musicxml2ly.py:1062
 #, python-format
 msgid "unknown span event %s"
 msgstr "không rõ dữ kiện nhịp cầu %s"
 
-#: musicxml2ly.py:796
+#: musicxml2ly.py:1072
 #, python-format
 msgid "unknown span type %s for %s"
 msgstr "không rõ kiểu nhịp cầu %s cho %s"
 
-#: musicxml2ly.py:1222
+#: musicxml2ly.py:1498
 msgid "Unknown metronome mark, ignoring"
 msgstr "Không rõ dấu máy đánh nhịp nên bỏ qua"
 
 #. TODO: Implement the other (more complex) way for tempo marks!
-#: musicxml2ly.py:1227
+#: musicxml2ly.py:1503
 msgid "Metronome marks with complex relations (<metronome-note> in MusicXML) are not yet implemented."
 msgstr "Chưa thực hiện dấu máy đánh nhịp có quan hệ phức tạp (<metronome-note> in MusicXML)."
 
-#: musicxml2ly.py:1383
+#: musicxml2ly.py:1703
 #, python-format
 msgid "Unable to convert chord type %s to lilypond."
 msgstr "Không thể chuyển đổi kiểu hợp âm %s sang lilypond."
 
-#: musicxml2ly.py:1529
+#: musicxml2ly.py:1849
 #, python-format
 msgid "drum %s type unknown, please add to instrument_drumtype_dict"
 msgstr "không rõ kiểu cái trống %s, hãy thêm vào instrument_drumtype_dict"
 
-#: musicxml2ly.py:1533
+#: musicxml2ly.py:1853
 msgid "cannot find suitable event"
 msgstr "không tìm thấy dữ kiện thích hợp"
 
-#: musicxml2ly.py:1623
+#: musicxml2ly.py:1994
 #, python-format
-msgid "Negative skip %s"
-msgstr "Nhảy âm %s"
+msgid "Negative skip %s (from position %s to %s)"
+msgstr "Gặp nơi nhảy âm %s (từ vị trí %s đến %s)"
 
-#: musicxml2ly.py:1775
+#: musicxml2ly.py:2134
 #, python-format
 msgid "Negative skip found: from %s to %s, difference is %s"
 msgstr "Gặp nơi nhảy âm: từ %s đến %s, hiệu là %s"
 
-#: musicxml2ly.py:1802
+#: musicxml2ly.py:2205
 #, python-format
 msgid "unexpected %s; expected %s or %s or %s"
 msgstr "gặp %s bất thường; đợi %s hoặc %s hoặc %s"
 
-#: musicxml2ly.py:1912
-msgid "cannot have two simultaneous slurs"
+#: musicxml2ly.py:2311
+msgid "Encountered closing slur, but no slur is open"
+msgstr "Gặp dấu luyến âm đóng, mà không có dấu luyến âm còn mở"
+
+#: musicxml2ly.py:2314
+msgid "Cannot have two simultaneous (closing) slurs"
+msgstr "không thể có hai dấu luyến âm đồng thời (đóng)"
+
+#: musicxml2ly.py:2324
+msgid "Cannot have a slur inside another slur"
+msgstr "không thể có một dấu luyến âm bên trong dấu luyến âm khác"
+
+#: musicxml2ly.py:2327
+msgid "Cannot have two simultaneous slurs"
 msgstr "không thể có hai dấu luyến âm đồng thời"
 
-#: musicxml2ly.py:2050
+#: musicxml2ly.py:2455
 #, python-format
 msgid "cannot simultaneously have more than one mode: %s"
 msgstr "không thể có nhiều chế độ đồng thời: %s"
 
-#: musicxml2ly.py:2148
+#: musicxml2ly.py:2553
 msgid "Converting to LilyPond expressions..."
 msgstr "Đang chuyển đổi sang biểu thức Lilypond..."
 
-#: musicxml2ly.py:2159
+#: musicxml2ly.py:2564
 msgid "musicxml2ly [OPTION]... FILE.xml"
 msgstr "musicxml2ly [TÙY_CHỌN]... TẬP_TIN.xml"
 
-#: musicxml2ly.py:2161
+#: musicxml2ly.py:2566
 msgid ""
 "Convert MusicXML from FILE.xml to LilyPond input.\n"
 "If the given filename is -, musicxml2ly reads from the command line.\n"
@@ -991,7 +1071,7 @@ msgstr ""
 "Chuyển đổi MusicXML từ TẬP_TIN.xml sang dữ liệu nhập vào LilyPond.\n"
 "Nếu tập tin đưa ra là « - » thì musicxml2ly đọc từ dòng lệnh.\n"
 
-#: musicxml2ly.py:2171
+#: musicxml2ly.py:2576
 msgid ""
 "Copyright (c) 2005--2008 by\n"
 "    Han-Wen Nienhuys <hanwen@xs4all.nl>,\n"
@@ -1003,71 +1083,71 @@ msgstr ""
 "    Jan Nieuwenhuizen <janneke@gnu.org>\n"
 "    Reinhold Kainhofer <reinhold@kainhofer.com>\n"
 
-#: musicxml2ly.py:2196
+#: musicxml2ly.py:2601
 msgid "use lxml.etree; uses less memory and cpu time"
 msgstr "dùng « lxml.etree »; nó chiếm ít bộ nhớ và thời gian CPU hơn"
 
-#: musicxml2ly.py:2202
+#: musicxml2ly.py:2607
 msgid "input file is a zip-compressed MusicXML file"
 msgstr "tập tin nhập vào là một tập tin MusicXML đã nén ZIP"
 
-#: musicxml2ly.py:2208
+#: musicxml2ly.py:2613
 msgid "convert pitches in relative mode (default)"
 msgstr "chuyển đổi các độ cao giọng ở chế độ tương đối (mặc định)"
 
-#: musicxml2ly.py:2213
+#: musicxml2ly.py:2618
 msgid "convert pitches in absolute mode"
 msgstr "chuyển đổi các độ cao giọng ở chế độ tuyệt đối"
 
-#: musicxml2ly.py:2216
+#: musicxml2ly.py:2621
 msgid "LANG"
 msgstr "VIỆT"
 
-#: musicxml2ly.py:2218
+#: musicxml2ly.py:2623
 msgid "use a different language file 'LANG.ly' and corresponding pitch names, e.g. 'deutsch' for deutsch.ly"
 msgstr "dùng một tập tin ngôn ngữ khác « VIỆT/ly » và các tên độ cao giọng tương ứng, v.d. « việt » ngụ ý tiếng Việt cho « việt.ly »."
 
-#: musicxml2ly.py:2224
+#: musicxml2ly.py:2629
 msgid "do not convert directions (^, _ or -) for articulations, dynamics, etc."
 msgstr "đừng chuyển đổi ký hiệu hướng dẫn (dấu mũ, dấu gạch dưới hoặc dấu gạch nối) cho các cách phát âm và biến cường."
 
-#: musicxml2ly.py:2230
+#: musicxml2ly.py:2635
 msgid "do not convert beaming information, use lilypond's automatic beaming instead"
 msgstr "không chuyển đổi thông tin về gửi chùm: dùng chức năng tự động gửi chùm để thay thế"
 
-#: musicxml2ly.py:2238
+#: musicxml2ly.py:2643
 msgid "set output filename to FILE, stdout if -"
 msgstr "đặt tên tập tin kết xuất thành TẬP_TIN, nếu « - » thì đầu ra tiêu chuẩn"
 
-#: musicxml2ly.py:2320
+#: musicxml2ly.py:2726
 #, python-format
 msgid "unknown part in part-list: %s"
 msgstr "không rõ phần trong part-list: %s"
 
-#: musicxml2ly.py:2382
+#: musicxml2ly.py:2788
 msgid "Input is compressed, extracting raw MusicXML data from stdin"
 msgstr "Nhập liệu được nén nên giải nén dữ liệu MusicXML thô từ đầu vào tiêu chuẩn"
 
-#: musicxml2ly.py:2385
+#: musicxml2ly.py:2791
 #, python-format
 msgid "Input file %s is compressed, extracting raw MusicXML data"
 msgstr "Tập tin nhập liệu %s đã được nén nên giải nén dữ liệu MusicXML thô"
 
-#: musicxml2ly.py:2415
+#: musicxml2ly.py:2821
 msgid "Reading MusicXML from Standard input ..."
 msgstr "Đang đọc MusicXML từ đầu vào tiêu chuẩn ..."
 
-#: musicxml2ly.py:2417
+#: musicxml2ly.py:2823
 #, python-format
 msgid "Reading MusicXML from %s ..."
 msgstr "Đang đọc MusicXML từ %s..."
 
-#: musicxml2ly.py:2450
+#: musicxml2ly.py:2856
 #, python-format
 msgid "Output to `%s'"
 msgstr "Xuất vào « %s »"
 
-#: musicxml2ly.py:2512
+#: musicxml2ly.py:2922
 #, python-format
 msgid "Unable to find input file %s"
 msgstr "Không tìm thấy tập tin nhập vào %s"
@@ -1101,20 +1181,15 @@ msgstr "lỗi lập trình: %s"
 msgid "continuing, cross fingers"
 msgstr "đang tiếp tục, hy vọng"
 
-#: accidental-engraver.cc:249
+#: accidental-engraver.cc:298
 #, c-format
 msgid "accidental typesetting list must begin with context-name: %s"
 msgstr "danh sách sắp chữ dấu thăng giáng bất thường phải bắt đầu với tên ngữ cảnh: %s"
 
-#: accidental-engraver.cc:276
+#: accidental-engraver.cc:328
 #, c-format
-msgid "ignoring unknown accidental rule: %s"
-msgstr "đang bỏ qua quy tắc dấu thăng giáng bất thường lạ: %s"
-
-#: accidental-engraver.cc:292
-#, c-format
-msgid "pair or context-name expected for accidental rule, found %s"
-msgstr "mong đợi tên cặp hay ngữ cảnh cho quy tắc dấu thăng giáng bất thường, còn tìm %s"
+msgid "procedure or context-name expected for accidental rule, found %s"
+msgstr "mong đợi thủ tục hoặc tên ngữ cảnh cho quy tắc dấu thăng, còn tìm %s"
 
 #: accidental.cc:187
 #, c-format
@@ -1335,6 +1410,26 @@ msgstr "sự mạnh/nhẹ dần chưa chấm dứt"
 msgid "unterminated extender"
 msgstr "bộ kéo dài chưa chấm dứt"
 
+#: font-config-scheme.cc:140 font-config.cc:57
+#, c-format
+msgid "failed adding font directory: %s"
+msgstr "lỗi thêm thư mục phông: %s"
+
+#: font-config-scheme.cc:142 font-config.cc:59
+#, c-format
+msgid "adding font directory: %s"
+msgstr "đang thêm thư mục phông: %s"
+
+#: font-config-scheme.cc:156
+#, c-format
+msgid "failed adding font file: %s"
+msgstr "lỗi thêm tập tin phông chữ : %s"
+
+#: font-config-scheme.cc:158
+#, c-format
+msgid "adding font file: %s"
+msgstr "đang thêm thư mục phông chữ : %s"
+
 #: font-config.cc:28
 msgid "Initializing FontConfig..."
 msgstr "Đang sở khởi phần mềm cấu hình phông FontConfig..."
@@ -1344,15 +1439,9 @@ msgstr "Đang sở khởi phần mềm cấu hình phông FontConfig..."
 msgid "Rebuilding FontConfig cache %s, this may take a while..."
 msgstr "Đang xây dựng lại bộ nhớ tạm FontConfig %s. Có thể hơi lâu..."
 
-#: font-config.cc:57
-#, c-format
-msgid "failed adding font directory: %s"
-msgstr "lỗi thêm thư mục phông: %s"
-
-#: font-config.cc:59
-#, c-format
-msgid "adding font directory: %s"
-msgstr "đang thêm thư mục phông: %s"
+#: font-config.cc:63
+msgid "Building font database."
+msgstr "Đang xây dựng cơ sở dữ liệu phông chữ."
 
 #: general-scheme.cc:202
 msgid "infinity or NaN encountered while converting Real number"
@@ -1362,7 +1451,7 @@ msgstr "gặp vô cực hay NaN (không phải con số) khi chuyển đổi s
 msgid "setting to zero"
 msgstr "đang đặt thành số không"
 
-#: general-scheme.cc:422 output-ps.scm:62
+#: general-scheme.cc:422 output-ps.scm:63
 msgid "Found infinity or nan in output. Substituting 0.0"
 msgstr "gặp vô cực hay NaN (không phải con số) trong kết xuất nên thay thế bằng 0.0"
 
@@ -1522,16 +1611,16 @@ msgstr "vẫn đang làm việc gán"
 msgid "type check for `%s' failed; value `%s' must be of type `%s'"
 msgstr "lỗi kiểm tra kiểu « %s »; giá trị « %s » phải có kiểu « %s »"
 
-#: lily-lexer.cc:251
+#: lily-lexer.cc:252
 msgid "include files are not allowed in safe mode"
 msgstr "không cho phép tập tin bao gồm (include) trong chế độ an toàn"
 
-#: lily-lexer.cc:270
+#: lily-lexer.cc:271
 #, c-format
 msgid "identifier name is a keyword: `%s'"
 msgstr "tên bộ nhận diện là từ khoá: « %s »"
 
-#: lily-lexer.cc:285
+#: lily-lexer.cc:286
 #, c-format
 msgid "error at EOF: %s"
 msgstr "gặp lỗi ở EOF (kết thúc tập tin): %s"
@@ -1556,11 +1645,11 @@ msgstr "không tìm thấy tập tin sở khởi: « %s »"
 msgid "Processing `%s'"
 msgstr "Đang xử lý « %s »"
 
-#: lily-parser.cc:99
+#: lily-parser.cc:95
 msgid "Parsing..."
 msgstr "Đang phân tách..."
 
-#: lily-parser.cc:127
+#: lily-parser.cc:123
 msgid "braces do not match"
 msgstr "hai dấu ngoặc móc không khớp"
 
@@ -1573,7 +1662,7 @@ msgstr "không tìm thấy giọng nói « %s »"
 msgid "Lyric syllable does not have note. Use \\lyricsto or associatedVoice."
 msgstr "Âm tiết lời nhạc không có nốt. Hãy dùng « \\lyricsto » hay « associatedVoice »."
 
-#: main.cc:100
+#: main.cc:97
 #, c-format
 msgid ""
 "This program is free software.  It is covered by the GNU General Public\n"
@@ -1585,7 +1674,7 @@ msgstr ""
 "\n"
 "Hãy gọi lệnh « %s --warranty » để xem thêm thông tin.\n"
 
-#: main.cc:106
+#: main.cc:103
 msgid ""
 "    This program is free software; you can redistribute it and/or\n"
 "modify it under the terms of the GNU General Public License version 2\n"
@@ -1610,11 +1699,11 @@ msgstr ""
 "51 Franklin Street, Fifth Floor,\n"
 "Boston, MA  02110-1301, USA (Mỹ).\n"
 
-#: main.cc:137
+#: main.cc:134
 msgid "SYM[=VAL]"
 msgstr "SYM[=GIÁ_TRỊ]"
 
-#: main.cc:138
+#: main.cc:135
 msgid ""
 "set Scheme option SYM to VAL (default: #t).\n"
 "Use -dhelp for help."
@@ -1622,49 +1711,41 @@ msgstr ""
 "đặt tùy chọn Scheme SYM thành GIÁ_TRỊ (mặc định: #t).\n"
 "Dùng « -dhelp » để xem trợ giúp."
 
-#: main.cc:141
+#: main.cc:138
 msgid "EXPR"
 msgstr "BTHỨC"
 
-#: main.cc:141
+#: main.cc:138
 msgid "evaluate scheme code"
 msgstr "ước lượng mã scheme"
 
 #. Bug in option parser: --output =foe is taken as an abbreviation
 #. for --output-format.
-#: main.cc:144
+#: main.cc:141
 msgid "FORMATs"
 msgstr "ĐỊNH_DẠNG"
 
-#: main.cc:144
+#: main.cc:141
 msgid "dump FORMAT,...  Also as separate options:"
 msgstr "đổ ĐỊNH_DẠNG,... Cũng làm với các tùy chọn riêng:"
 
-#: main.cc:145
-msgid "generate DVI (tex backend only)"
-msgstr "tạo ra DVI (chỉ hậu phương tex)"
-
-#: main.cc:146
+#: main.cc:142
 msgid "generate PDF (default)"
 msgstr "tạo ra PDF (mặc định)"
 
-#: main.cc:147
+#: main.cc:143
 msgid "generate PNG"
 msgstr "tạo ra PNG"
 
-#: main.cc:148
+#: main.cc:144
 msgid "generate PostScript"
 msgstr "tạo ra PostScript"
 
-#: main.cc:149
-msgid "generate TeX (tex backend only)"
-msgstr "tạo ra TeX (chỉ hậu phương tex)"
-
-#: main.cc:151
+#: main.cc:146
 msgid "FIELD"
 msgstr "TRƯỜNG"
 
-#: main.cc:151
+#: main.cc:146
 msgid ""
 "dump header field FIELD to file\n"
 "named BASENAME.FIELD"
@@ -1672,19 +1753,19 @@ msgstr ""
 "đổ trường phần đầu TRƯỜNG\n"
 "vào tập tin tên BASENAME.FIELD"
 
-#: main.cc:153
+#: main.cc:148
 msgid "add DIR to search path"
 msgstr "Thêm THƯ MỤC vào đường dẫn tìm kiếm"
 
-#: main.cc:154
+#: main.cc:149
 msgid "use FILE as init file"
 msgstr "dùng TẬP TIN là tập tin sở khởi"
 
-#: main.cc:156
+#: main.cc:151
 msgid "USER, GROUP, JAIL, DIR"
 msgstr "NGƯỜI DÙNG, NHÓM, JAIL, THƯ MỤC"
 
-#: main.cc:156
+#: main.cc:151
 msgid ""
 "chroot to JAIL, become USER:GROUP\n"
 "and cd into DIR"
@@ -1692,15 +1773,15 @@ msgstr ""
 "chroot vào JAIL, trở thành NGƯỜI DÙNG:NHÓM\n"
 "và cd vào THƯ MỤC"
 
-#: main.cc:159
+#: main.cc:154
 msgid "write output to FILE (suffix will be added)"
 msgstr "xuất ra TẬP TIN (hậu tố cũng được thêm)"
 
-#: main.cc:160
+#: main.cc:155
 msgid "relocate using directory of lilypond program"
 msgstr "định vị lại dùng thư mục của chương trình lilypond"
 
-#: main.cc:226
+#: main.cc:221
 #, c-format
 msgid ""
 "Copyright (c) %s by\n"
@@ -1710,82 +1791,77 @@ msgstr ""
 "của %s và người khác."
 
 #. No version number or newline here.  It confuses help2man.
-#: main.cc:254
+#: main.cc:249
 #, c-format
 msgid "Usage: %s [OPTION]... FILE..."
 msgstr "Cách sử dụng: %s [TÙY_CHỌN]... TẬP_TIN..."
 
-#: main.cc:256
+#: main.cc:251
 #, c-format
 msgid "Typeset music and/or produce MIDI from FILE."
 msgstr "Sắp chữ âm nhạc và/hay tạo MIDI từ TẬP TIN"
 
-#: main.cc:258
+#: main.cc:253
 #, c-format
 msgid "LilyPond produces beautiful music notation."
 msgstr "Lilypong tạo kiểu ghi âm nhạc rất đẹp."
 
-#: main.cc:260
+#: main.cc:255
 #, c-format
 msgid "For more information, see %s"
 msgstr "Để tìm thấy thông tin thêm xem %s"
 
-#: main.cc:262
+#: main.cc:257
 #, c-format
 msgid "Options:"
 msgstr "Tùy chọn:"
 
-#: main.cc:266
-#, c-format
-msgid "Report bugs via %s"
-msgstr "Hãy thông báo lỗi cho %s"
-
-#: main.cc:312
+#: main.cc:311
 #, c-format
 msgid "expected %d arguments with jail, found: %u"
 msgstr "mong đợi %d đối số với jail, còn tìm: %u"
 
-#: main.cc:326
+#: main.cc:325
 #, c-format
 msgid "no such user: %s"
 msgstr "không có người dùng như vậy: %s"
 
-#: main.cc:328
+#: main.cc:327
 #, c-format
 msgid "cannot get user id from user name: %s: %s"
 msgstr "không thể lấy ID người dùng từ tên người dùng: %s: %s"
 
-#: main.cc:343
+#: main.cc:342
 #, c-format
 msgid "no such group: %s"
 msgstr "không có nhóm như vậy: %s"
 
-#: main.cc:345
+#: main.cc:344
 #, c-format
 msgid "cannot get group id from group name: %s: %s"
 msgstr "không thể lấy ID nhóm từ tên nhóm: %s: %s"
 
-#: main.cc:353
+#: main.cc:352
 #, c-format
 msgid "cannot chroot to: %s: %s"
 msgstr "không thể chroot vào : %s: %s"
 
-#: main.cc:360
+#: main.cc:359
 #, c-format
 msgid "cannot change group id to: %d: %s"
 msgstr "không thể thay đổi ID nhóm thành: %d: %s"
 
-#: main.cc:366
+#: main.cc:365
 #, c-format
 msgid "cannot change user id to: %d: %s"
 msgstr "không thể thay đổi ID người dùng thành: %d: %s"
 
-#: main.cc:372
+#: main.cc:371
 #, c-format
 msgid "cannot change working directory to: %s: %s"
 msgstr "không thể thay đổi thư mục hoạt động thành: %s: %s"
 
-#: main.cc:619
+#: main.cc:611
 #, c-format
 msgid "exception caught: %s"
 msgstr "bắt ngoài lệ: %s"
@@ -1870,8 +1946,12 @@ msgstr "không thể mở đề ghi: %s: %s"
 msgid "cannot write to file: `%s'"
 msgstr "không thể ghi vào tập tin: « %s »"
 
-#: minimal-page-breaking.cc:42
-msgid "Computing page breaks..."
+#: minimal-page-breaking.cc:38 paper-score.cc:105
+msgid "Calculating line breaks..."
+msgstr "Đang tính các chỗ ngắt dòng..."
+
+#: minimal-page-breaking.cc:42 layout-page-layout.scm:463
+msgid "Calculating page breaks..."
 msgstr "Đang tính các chỗ ngắt trang..."
 
 #: music-iterator.cc:171
@@ -1888,7 +1968,7 @@ msgstr "lỗi kiểm tra quãng tám: mong đợi « %s » còn tìm: « %s »"
 msgid "transposition by %s makes alteration larger than double"
 msgstr "dịch giọng theo %s làm sự sửa đổi lớn hơn đôi"
 
-#: new-dynamic-engraver.cc:128
+#: new-dynamic-engraver.cc:129
 #, c-format
 msgid ""
 "unknown crescendo style: %s\n"
@@ -1966,21 +2046,21 @@ msgstr "Lỗi FT_Get_Glyph_Name (): %s"
 msgid "Finding the ideal number of pages..."
 msgstr "Đang tìm tổng số trang thích hợp..."
 
-#: optimal-page-breaking.cc:76
+#: optimal-page-breaking.cc:78
 msgid "Fitting music on 1 page..."
 msgstr "Đang vừa âm nhạc khít 1 trang..."
 
-#: optimal-page-breaking.cc:78
+#: optimal-page-breaking.cc:80
 #, c-format
 msgid "Fitting music on %d pages..."
 msgstr "Đang vừa âm nhạc khít %d trang..."
 
-#: optimal-page-breaking.cc:80
+#: optimal-page-breaking.cc:82
 #, c-format
 msgid "Fitting music on %d or %d pages..."
 msgstr "Đang vừa âm nhạc khít %d hoặc %d trang..."
 
-#: optimal-page-breaking.cc:157 page-turn-page-breaking.cc:226
+#: optimal-page-breaking.cc:159 page-turn-page-breaking.cc:226
 #: paper-score.cc:146
 msgid "Drawing systems..."
 msgstr "Hệ thống vẽ..."
@@ -2051,10 +2131,6 @@ msgstr "chỗ ngắt bị buộc đã bị ghi đè bởi dữ kiện khác, b
 msgid "Layout output to `%s'..."
 msgstr "Xuất bố trí ra « %s »..."
 
-#: paper-score.cc:105
-msgid "Calculating line breaks..."
-msgstr "Đang tính các chỗ ngắt dòng..."
-
 #: paper-score.cc:118
 #, c-format
 msgid "Element count %d (spanners %d) "
@@ -2068,7 +2144,7 @@ msgstr "Đang tiền xử lý các đối tượng đồ họa..."
 msgid "GUILE signaled an error for the expression beginning here"
 msgstr "GUILE đã thông báo lỗi cho biểu thức bắt đầu ở đây"
 
-#: percent-repeat-engraver.cc:200
+#: percent-repeat-engraver.cc:202
 msgid "unterminated percent repeat"
 msgstr "sự lặp lại dấu phần trăm chưa chấm dứt"
 
@@ -2084,12 +2160,12 @@ msgstr "Kênh MIDI đã cuộn vòng"
 msgid "remapping modulo 16"
 msgstr "đang ánh xạ lại mô-đun 16"
 
-#: performance.cc:101
+#: performance.cc:100
 #, c-format
 msgid "MIDI output to `%s'..."
 msgstr "xuất MIDI ra « %s »..."
 
-#: phrasing-slur-engraver.cc:139
+#: phrasing-slur-engraver.cc:146
 msgid "unterminated phrasing slur"
 msgstr "dấu luyến âm phân nhịp chưa chấm dứt"
 
@@ -2256,7 +2332,7 @@ msgstr "dấu luyến âm chưa chấm dứt"
 msgid "cannot end slur"
 msgstr "không thể kết thúc dấu luyến âm"
 
-#: slur.cc:357
+#: slur.cc:359
 #, c-format
 msgid "Ignoring grob for slur: %s. avoid-slur not set?"
 msgstr "Đang bỏ qua grob cho dấu luyến âm: %s. Chưa đặt « avoid-slur » ?"
@@ -2293,12 +2369,12 @@ msgstr "có lẽ kết nhập vào nên xác định các giọng nói đối â
 msgid "weird stem size, check for narrow beams"
 msgstr "kích cỡ cọng lạ, hãy kiểm tra có tia hẹp không"
 
-#: stem.cc:627
+#: stem.cc:623
 #, c-format
 msgid "flag `%s' not found"
 msgstr "không tìm thấy cờ « %s »"
 
-#: stem.cc:638
+#: stem.cc:639
 #, c-format
 msgid "flag stroke `%s' not found"
 msgstr "không tìm thấy nét cờ « %s »"
@@ -2422,40 +2498,40 @@ msgstr "cũng đã có thanh ngang đã kết thúc"
 msgid "giving up"
 msgstr "đang chịu thua"
 
-#: parser.yy:729
+#: parser.yy:804
 msgid "\\paper cannot be used in \\score, use \\layout instead"
 msgstr "« \\paper » không thể được dùng trong « \\score », hãy dùng « \\layout » thay vào đó"
 
-#: parser.yy:753
+#: parser.yy:828
 msgid "need \\paper for paper block"
 msgstr "cần thiết « \\paper » cho khối giấy"
 
-#: parser.yy:1224
+#: parser.yy:1299
 msgid "Grob name should be alphanumeric"
 msgstr "Tên grob nên có dạng chữ số"
 
-#: parser.yy:1522
+#: parser.yy:1597
 msgid "second argument must be pitch list"
 msgstr "đối số thứ hai phải là danh sách các độ cao thấp"
 
-#: parser.yy:1549 parser.yy:1554 parser.yy:2026
+#: parser.yy:1624 parser.yy:1629 parser.yy:2101
 msgid "have to be in Lyric mode for lyrics"
 msgstr "ghi lời nhạc thì phải trong chế độ Lời nhạc"
 
-#: parser.yy:1651
+#: parser.yy:1726
 msgid "expecting string as script definition"
 msgstr "mong đợi chuỗi xác định văn lệnh"
 
-#: parser.yy:1806 parser.yy:1856
+#: parser.yy:1881 parser.yy:1931
 #, c-format
 msgid "not a duration: %d"
 msgstr "không phải thời gian: %d"
 
-#: parser.yy:1980
+#: parser.yy:2055
 msgid "have to be in Note mode for notes"
 msgstr "ghi nốt thì phải trong chế độ Nốt"
 
-#: parser.yy:2041
+#: parser.yy:2116
 msgid "have to be in Chord mode for chords"
 msgstr "ghi hợp âm thì phải trong chế độ Hợp âm"
 
@@ -2515,26 +2591,26 @@ msgstr "Gặp dấu ngoặc móc ở kết thúc mã định dạng. Bạn đã
 msgid "invalid character: `%c'"
 msgstr "ký tự không hợp lệ: « %c »"
 
-#: lexer.ll:803 lexer.ll:804
+#: lexer.ll:803
 #, c-format
 msgid "unknown escaped string: `\\%s'"
 msgstr "chuỗi đã thoát lạ: « \\%s »"
 
-#: lexer.ll:910 lexer.ll:911
+#: lexer.ll:910
 #, c-format
 msgid "file too old: %s (oldest supported: %s)"
 msgstr "tập tin quá cũ : %s (cũ nhất được hỗ trợ : %s)"
 
-#: lexer.ll:911 lexer.ll:912
+#: lexer.ll:911
 msgid "consider updating the input with the convert-ly script"
 msgstr "đề nghị bạn cập nhật kết nhập bằng văn lệnh « convert-ly »"
 
-#: lexer.ll:917 lexer.ll:918
+#: lexer.ll:917
 #, c-format
 msgid "program too old: %s (file requires: %s)"
 msgstr "chương trình quá cũ : %s (tập tin cần thiết: %s)"
 
-#: backend-library.scm:19 lily.scm:777 ps-to-png.scm:58
+#: backend-library.scm:19 lily.scm:761 ps-to-png.scm:58
 #, scheme-format
 msgid "Invoking `~a'..."
 msgstr "đang gọi « ~a »..."
@@ -2544,7 +2620,7 @@ msgstr "đang gọi « ~a »..."
 msgid "`~a' failed (~a)"
 msgstr "lỗi « ~a » (~a)"
 
-#: backend-library.scm:116 framework-tex.scm:344 framework-tex.scm:369
+#: backend-library.scm:116
 #, scheme-format
 msgid "Converting to `~a'..."
 msgstr "Đang chuyển đổi sang « ~a »"
@@ -2578,16 +2654,16 @@ msgstr "hạng dữ kiện ~A có vẻ là không dùng"
 msgid "translator listens to nonexisting event class ~A"
 msgstr "bộ dịch lắng nghe hạng dữ kiện không tồn tại ~A"
 
-#: define-markup-commands.scm:599
+#: define-markup-commands.scm:569
 msgid "no systems found in \\score markup, does it have a \\layout block?"
 msgstr "không tìm thấy hệ thống trong mã định dạng « \\score », nó có khối « \\layout » không?"
 
-#: define-markup-commands.scm:2428
+#: define-markup-commands.scm:2387
 #, scheme-format
 msgid "Cannot find glyph ~a"
 msgstr "không tìm thấy hình tượng ~a"
 
-#: define-markup-commands.scm:2737
+#: define-markup-commands.scm:2696
 #, scheme-format
 msgid "not a valid duration string: ~a"
 msgstr "không phải chuỗi thời gian hợp lệ: ~a"
@@ -2608,8 +2684,8 @@ msgid "unknown repeat type `~S'"
 msgstr "kiểu lặp lại lạ: ~S"
 
 #: define-music-types.scm:693
-msgid "See music-types.scm for supported repeats"
-msgstr "Xem « music-types.scm » để tìm các kiểu lặp lại được hỗ trợ"
+msgid "See define-music-types.scm for supported repeats"
+msgstr "Xem « define-music-types.scm » để tìm các kiểu lặp lại được hỗ trợ"
 
 #: document-backend.scm:99
 #, scheme-format
@@ -2626,57 +2702,57 @@ msgstr "không tìm thấy giao diện cho thuộc tính: ~S"
 msgid "unknown Grob interface: ~S"
 msgstr "giao diện Grob lạ: ~S"
 
-#: documentation-lib.scm:48
+#: documentation-lib.scm:49
 #, scheme-format
 msgid "Processing ~S..."
 msgstr "Đang xử lý ~S..."
 
-#: documentation-lib.scm:164
+#: documentation-lib.scm:165
 #, scheme-format
 msgid "Writing ~S..."
 msgstr "Đang ghi ~S..."
 
-#: documentation-lib.scm:186
+#: documentation-lib.scm:187
 #, scheme-format
 msgid "cannot find description for property ~S (~S)"
 msgstr "không tìm thấy mô tả cho thuộc tính ~S (~S)"
 
+#: flag-styles.scm:145
+#, scheme-format
+msgid "flag stroke `~a' or `~a' not found"
+msgstr "không tìm thấy nét cờ « ~a » hoặc « ~a »"
+
 #: framework-eps.scm:90
 #, scheme-format
 msgid "Writing ~a..."
 msgstr "Đang ghi ~a..."
 
-#: framework-ps.scm:282
+#: framework-ps.scm:277
 #, scheme-format
 msgid "cannot embed ~S=~S"
 msgstr "không thể nhúng ~S=~S"
 
-#: framework-ps.scm:335
+#: framework-ps.scm:330
 #, scheme-format
 msgid "cannot extract file matching ~a from ~a"
 msgstr "không thể giải nén tập tin khớp với ~a từ ~a"
 
-#: framework-ps.scm:352
+#: framework-ps.scm:347
 #, scheme-format
 msgid "do not know how to embed ~S=~S"
 msgstr "không biết cách nhúng ~S=~S"
 
-#: framework-ps.scm:383
+#: framework-ps.scm:378
 #, scheme-format
 msgid "do not know how to embed font ~s ~s ~s"
 msgstr "không biết cách nhúng phông ~s ~s ~s"
 
-#: framework-ps.scm:753
+#: framework-ps.scm:748
 #, scheme-format
 msgid "cannot convert <stdout> to ~S"
 msgstr "không thể chuyển đổi <stdout> sang ~S"
 
-#: framework-ps.scm:772 framework-ps.scm:775
-#, scheme-format
-msgid "cannot generate ~S using the postscript back-end"
-msgstr "không thể tạo ra ~S bằng hậu phương postscript"
-
-#: framework-ps.scm:782
+#: framework-ps.scm:771
 msgid ""
 "\n"
 "The PostScript backend does not support the system-by-system \n"
@@ -2703,11 +2779,6 @@ msgstr ""
 "  %% Start cut-&-pastable-section\n"
 "  %% ****************************************************************\n"
 
-#: framework-tex.scm:361
-#, scheme-format
-msgid "TeX file name must not contain whitespace: `~a'"
-msgstr "Tên tập tin TeX không thể chứa khoảng trắng: « ~a »"
-
 #: graphviz.scm:53
 #, scheme-format
 msgid "Writing graph `~a'..."
@@ -2723,44 +2794,40 @@ msgstr "Lỗi trong khi lượng tử hoá tia. Mong đợi (~S,~S), còn tìm ~
 msgid "Error in beam quanting.  Expected ~S 0, found ~S."
 msgstr "Lỗi trong khi lượng tử hoá tia. Mong đợi ~S 0, còn tìm ~S"
 
-#: layout-page-layout.scm:124
+#: layout-page-layout.scm:126
 msgid "Can't fit systems on page -- ignoring between-system-padding"
 msgstr "Không thể vừa các hệ thống trong tập tin nên bỏ qua vùng đệm giữa các hệ thống"
 
-#: layout-page-layout.scm:458
-msgid "Calculating page breaks..."
-msgstr "Đang tính các chỗ ngắt trang..."
-
-#: lily-library.scm:588
+#: lily-library.scm:602
 #, scheme-format
 msgid "unknown unit: ~S"
 msgstr "đơn vị lạ: ~S"
 
-#: lily-library.scm:622
+#: lily-library.scm:636
 #, scheme-format
 msgid "no \\version statement found, please add~afor future compatibility"
 msgstr "không tìm thấy câu lệnh « \\version », hãy thêm ~a để tương thích sau"
 
-#: lily-library.scm:630
+#: lily-library.scm:644
 msgid "old relative compatibility not used"
 msgstr "không dùng khả năng tương thích tương đối cũ"
 
-#: lily.scm:178
+#: lily.scm:179
 #, scheme-format
 msgid "cannot find: ~A"
 msgstr "không tìm thấy: ~A"
 
-#: lily.scm:243
+#: lily.scm:228
 #, scheme-format
 msgid "wrong type for argument ~a.  Expecting ~a, found ~s"
 msgstr "sai kiểu cho đối số ~a. Mong đợi ~a, còn tìm ~s"
 
-#: lily.scm:641
+#: lily.scm:625
 #, scheme-format
 msgid "job ~a terminated with signal: ~a"
 msgstr "công việc ~a đã kết thúc với tín hiệu : ~a"
 
-#: lily.scm:644
+#: lily.scm:628
 #, scheme-format
 msgid ""
 "logfile ~a (exit ~a):\n"
@@ -2769,12 +2836,12 @@ msgstr ""
 "tập tin ghi lưu ~a (thoát ~a):\n"
 "~a"
 
-#: lily.scm:669 lily.scm:767
+#: lily.scm:653 lily.scm:751
 #, scheme-format
 msgid "failed files: ~S"
 msgstr "tập tin đã thất bại: ~S"
 
-#: lily.scm:757
+#: lily.scm:741
 #, scheme-format
 msgid "Redirecting output to ~a..."
 msgstr "Đang chuyển hướng kết xuất tới ~a ..."
@@ -2783,7 +2850,7 @@ msgstr "Đang chuyển hướng kết xuất tới ~a ..."
 msgid "Music head function must return Music object"
 msgstr "Hàm đầu âm nhạc phải trả lại đối tượng Âm nhạc"
 
-#: ly-syntax-constructors.scm:150
+#: ly-syntax-constructors.scm:154
 #, scheme-format
 msgid "Invalid property operation ~a"
 msgstr "Thao tác thuộc tính không hợp lệ: ~a"
@@ -2833,12 +2900,12 @@ msgstr "Lỗi kiểm tra gạch nhịp. Mong đợi ở ~a, còn ở ~a"
 msgid "cannot find quoted music: `~S'"
 msgstr "không tìm thấy âm nhạc đã trích dẫn: « ~S »"
 
-#: music-functions.scm:990
+#: music-functions.scm:1198
 #, scheme-format
 msgid "unknown accidental style: ~S"
 msgstr "kiểu dáng dấu thăng giáng bất thường lạ: ~S"
 
-#: output-ps.scm:285
+#: output-ps.scm:294
 msgid "utf-8-string encountered in PS backend"
 msgstr "gặp chuỗi UTF-8 trong hậu phương PS"
 
@@ -2852,28 +2919,23 @@ msgstr "chưa xác định: ~S"
 msgid "cannot decypher Pango description: ~a"
 msgstr "Không thể giải thích mô tả Pango: ~a"
 
-#: output-tex.scm:96
-#, scheme-format
-msgid "cannot find ~a in ~a"
-msgstr "không tìm thấy ~a trong ~a"
-
-#: paper.scm:86
+#: paper.scm:104
 msgid "set-global-staff-size: not in toplevel scope"
 msgstr "set-global-staff-size: không phải trong phạm vị cấp đầu"
 
-#: paper.scm:226
+#: paper.scm:244
 #, scheme-format
 msgid "This is not a \\layout {} object, ~S"
 msgstr "Đây không phải đối tượng « \\layout {} », ~S"
 
-#: paper.scm:238
+#: paper.scm:256
 #, scheme-format
-msgid "Unknown papersize: ~a"
-msgstr "Kích cỡ giấy lạ: ~a"
+msgid "Unknown paper size: ~a"
+msgstr "Không rõ kích cỡ giấy: ~a"
 
 #. TODO: should raise (generic) exception with throw, and catch
 #. that in parse-scm.cc
-#: paper.scm:253
+#: paper.scm:271
 msgid "Must use #(set-paper-size .. ) within \\paper { ... }"
 msgstr "Phải dùng #(set-paper-size .. ) bên trong \\paper { ... }"
 
diff --git a/ps/SConscript b/ps/SConscript
deleted file mode 100644 (file)
index 917e9f9..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-# -*-python-*-
-
-Import ('env')
-
-dir = env['DESTDIR'] + env['sharedir_package_version'] + '/ps'
-env.Install (dir, ['lilyponddefs.ps',])
-env.Alias ('install', dir)
-
-dir = env['DESTDIR'] + env['sharedir_package_version'] + '/tex'
-env.Install (dir, ['music-drawing-routines.ps',])
-env.Alias ('install', dir)
index c6f4423615f8f4ea1715b3400e9f1695c3594f28..762657508449c1ef4cff795575fc9be9dc26f26b 100644 (file)
@@ -59,11 +59,6 @@ bind def
   b4_Inc_state restore
 } bind def 
 
-/set_tex_dimen
-{
-       cvr def
-} bind def
-
 /stroke_and_fill {
        gsave
                stroke
index a520a5efd6504e16a20d2078a93b24085bc1f86e..14060aed61dc35bbf482c003fbfbb06b527e54dc 100644 (file)
@@ -1,5 +1,7 @@
 depth = ..
 
+SUBDIRS=auxiliar
+
 STEPMAKE_TEMPLATES=c python-module install-out po
 
 include $(depth)/make/stepmake.make
diff --git a/python/SConscript b/python/SConscript
deleted file mode 100644 (file)
index 52c4e1d..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-# -*-python-*-
-
-Import ('env', 'install', 'src_glob')
-py = src_glob ('*.py')
-c = src_glob ('*.c')
-
-cm = map (env.SharedObject, c)
-
-py
-cm
-
-install (py, env['sharedir_package_version'] + '/python')
-install (cm, env['libdir_package_version'] + '/python')
diff --git a/python/auxiliar/GNUmakefile b/python/auxiliar/GNUmakefile
new file mode 100644 (file)
index 0000000..665812d
--- /dev/null
@@ -0,0 +1,10 @@
+depth=../..
+
+EXTRA_DIST_FILES = $(call src-wildcard,*.py)
+
+include $(depth)/make/stepmake.make
+
+default:
+
+local-clean:
+       rm -f *.pyc
diff --git a/python/auxiliar/buildlib.py b/python/auxiliar/buildlib.py
new file mode 100644 (file)
index 0000000..cd99586
--- /dev/null
@@ -0,0 +1,42 @@
+#!@PYTHON@
+
+import subprocess
+import re
+import sys
+
+verbose = False
+
+def read_pipe (command):
+    child = subprocess.Popen (command,
+                              stdout = subprocess.PIPE,
+                              stderr = subprocess.PIPE,
+                              shell = True)
+    (output, error) = child.communicate ()
+    code = str (child.wait ())
+    if not child.stdout or child.stdout.close ():
+        print "pipe failed: %(command)s" % locals ()
+    if code != '0':
+        error = code + ' ' + error
+    return (output, error)
+
+revision_re = re.compile ('GIT [Cc]ommittish:\s+([a-f0-9]+)')
+vc_diff_cmd = 'git diff %(color_flag)s %(revision)s HEAD -- %(original)s | cat'
+
+def check_translated_doc (original, translated_file, translated_contents, color=False):
+    m = revision_re.search (translated_contents)
+    if not m:
+        sys.stderr.write ('error: ' + translated_file + \
+                          ": no 'GIT committish: <hash>' found.\nPlease check " + \
+                          'the whole file against the original in English, then ' + \
+                          'fill in HEAD committish in the header.\n')
+        sys.exit (1)
+    revision = m.group (1)
+
+    if color:
+        color_flag = '--color'
+    else:
+        color_flag = '--no-color'
+    c = vc_diff_cmd % vars ()
+    if verbose:
+        sys.stderr.write ('running: ' + c)
+    return read_pipe (c)
diff --git a/python/auxiliar/manuals_definitions.py b/python/auxiliar/manuals_definitions.py
new file mode 100644 (file)
index 0000000..e8e6d50
--- /dev/null
@@ -0,0 +1,11 @@
+#!/usr/bin/python
+
+# This module is imported by check_texi_refs.py
+
+references_dict = {
+    'lilypond': 'ruser',
+    'lilypond-learning': 'rlearning',
+    'lilypond-program': 'rprogram',
+    'lilypond-snippets': 'rlsr',
+    'music-glossary': 'rglos',
+    'lilypond-internals': 'rinternals' }
diff --git a/python/auxiliar/mirrortree.py b/python/auxiliar/mirrortree.py
new file mode 100644 (file)
index 0000000..0aa0bc8
--- /dev/null
@@ -0,0 +1,62 @@
+#!@PYTHON@
+
+import re
+import os
+
+def new_link_path (link, dir, r):
+    l = link.split ('/')
+    d = dir.split ('/')
+    i = 0
+    while i < len(d) and i < len(l) and l[i] == '..':
+        if r.match (d[i]):
+            del l[i]
+        else:
+            i += 1
+    return '/'.join ([x for x in l if not r.match (x)])
+
+def walk_tree (tree_roots = [],
+               process_dirs = '.*',
+               exclude_dirs = '',
+               find_files = '.*',
+               exclude_files = ''):
+    """Walk directory trees and.returns (dirs, symlinks, files, extra_files) tuple.
+
+    Arguments:
+     tree_roots=DIRLIST      use DIRLIST as tree roots list
+     process_dir=PATTERN      only process files in directories named PATTERN
+     exclude_dir=PATTERN      don't recurse into directories named PATTERN
+     find_files=PATTERN    filters files which are hardlinked
+     exclude_files=PATTERN    exclude files named PATTERN
+    """
+    find_files_re = re.compile (find_files)
+    exclude_dirs_re = re.compile (exclude_dirs)
+    exclude_files_re = re.compile (exclude_files)
+    process_dirs_re = re.compile (process_dirs)
+
+    dirs_paths = []
+    symlinks_paths = []
+    files_paths = []
+
+    for d in tree_roots:
+        for current_dir, dirs, files in os.walk(d):
+            i = 0
+            while i < len(dirs):
+                if exclude_dirs_re.search (os.path.join (current_dir, dirs[i])):
+                    del dirs[i]
+                else:
+                    p = os.path.join (current_dir, dirs[i])
+                    if os.path.islink (p):
+                        symlinks_paths.append (p)
+                    i += 1
+            if not process_dirs_re.search (current_dir):
+                continue
+            dirs_paths.append (current_dir)
+            for f in files:
+                if exclude_files_re.match (f):
+                    continue
+                p = os.path.join (current_dir, f)
+                if os.path.islink (p):
+                    symlinks_paths.append (p)
+                elif find_files_re.match (f):
+                    files_paths.append (p)
+    return (dirs_paths, symlinks_paths, files_paths)
diff --git a/python/auxiliar/postprocess_html.py b/python/auxiliar/postprocess_html.py
new file mode 100644 (file)
index 0000000..0da3623
--- /dev/null
@@ -0,0 +1,362 @@
+#!@PYTHON@
+
+"""
+Postprocess HTML files:
+add footer, tweak links, add language selection menu.
+"""
+import re
+import os
+import time
+import operator
+
+import langdefs
+
+# This is to try to make the docball not too big with almost duplicate files
+# see process_links()
+non_copied_pages = ['Documentation/user/out-www/lilypond-big-page',
+                    'Documentation/user/out-www/lilypond-internals-big-page',
+                    'Documentation/user/out-www/lilypond-learning-big-page',
+                    'Documentation/user/out-www/lilypond-program-big-page',
+                    'Documentation/user/out-www/music-glossary-big-page',
+                    'out-www/examples',
+                    'Documentation/topdocs',
+                    'Documentation/bibliography',
+                    'Documentation/out-www/THANKS',
+                    'Documentation/out-www/DEDICATION',
+                    'Documentation/out-www/devel',
+                    'input/']
+
+def _doc (s):
+    return s
+
+header = r"""
+"""
+
+footer = '''
+<div class="footer">
+<p class="footer_version">
+%(footer_name_version)s
+</p>
+<p class="footer_report">
+%(footer_report_links)s
+</p>
+</div>
+'''
+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
+footer_report_links = _doc ('Your <a href="%(suggest_Docs_url)s">suggestions for the documentation</a> are welcome, please report errors to our <a href="%(mail_address_url)s">bug list</a>.')
+
+
+mail_address = 'http://post.gmane.org/post.php?group=gmane.comp.gnu.lilypond.bugs'
+suggest_Docs_url = 'http://lilypond.org/web/devel/participating/documentation-adding'
+
+header_tag = '<!-- header_tag -->'
+header_tag_re = re.compile (header_tag)
+
+footer_tag = '<!-- footer_tag -->'
+footer_tag_re = re.compile (footer_tag)
+
+lang_available = _doc ("Other languages: %s.")
+browser_lang = _doc ('About <A HREF="%s">automatic language selection</A>.')
+browser_language_url = "/web/about/browser-language"
+
+LANGUAGES_TEMPLATE = '''
+<p id="languages">
+ %(language_available)s
+ <br/>
+ %(browser_language)s
+</p>
+'''
+
+
+html_re = re.compile ('(.*?)(?:[.]([^/.]*))?[.]html$')
+pages_dict = {}
+
+def build_pages_dict (filelist):
+    """Build dictionary of available translations of each page"""
+    global pages_dict
+    for f in filelist:
+        m = html_re.match (f)
+        if m:
+            g = m.groups()
+            if len (g) <= 1 or g[1] == None:
+                e = ''
+            else:
+                e = g[1]
+            if not g[0] in pages_dict:
+                pages_dict[g[0]] = [e]
+            else:
+                pages_dict[g[0]].append (e)
+
+def source_links_replace (m, source_val):
+    return 'href="' + os.path.join (source_val, m.group (1)) + '"'
+
+splitted_docs_re = re.compile ('(input/lsr/out-www/lilypond-snippets|\
+Documentation/user/out-www/(lilypond|music-glossary|lilypond-program|\
+lilypond-learning))/')
+
+snippets_ref_re = re.compile (r'href="(\.\./)?lilypond-snippets')
+user_ref_re = re.compile ('href="(?:\.\./)?lilypond\
+(-internals|-learning|-program|(?!-snippets))')
+
+docindex_link_re = re.compile (r'href="index.html"')
+
+
+## Windows does not support symlinks.
+# This function avoids creating symlinks for splitted HTML manuals
+# Get rid of symlinks in GNUmakefile.in (local-WWW-post)
+# this also fixes missing PNGs only present in translated docs
+def hack_urls (s, prefix):
+    if splitted_docs_re.match (prefix):
+        s = re.sub ('(href|src)="(../lily-.*?|.*?[.]png)"', '\\1="../\\2"', s)
+
+    # fix xrefs between documents in different directories ad hoc
+    if 'user/out-www/lilypond' in prefix:
+        s = snippets_ref_re.sub ('href="source/input/lsr/lilypond-snippets', s)
+    elif 'input/lsr' in prefix:
+        s = user_ref_re.sub ('href="source/Documentation/user/lilypond\\1', s)
+    
+    # we also need to replace in the lsr, which is already processed above!
+    if 'input/' in prefix or 'Documentation/topdocs' in prefix:
+        # fix the link from the regtest, lsr and topdoc pages to the doc index 
+        # (rewrite prefix to obtain the relative path of the doc index page)
+        rel_link = re.sub (r'out-www/.*$', '', prefix)
+        rel_link = re.sub (r'[^/]*/', '../', rel_link)
+        if 'input/regression' in prefix:
+            indexfile = "Documentation/devel/index"
+        else:
+            indexfile = "index"
+        s = docindex_link_re.sub ('href="' + rel_link + indexfile + '.html\"', s)
+
+    source_path = os.path.join (os.path.dirname (prefix), 'source')
+    if not os.path.islink (source_path):
+        return s
+    source_val = os.readlink (source_path)
+    return re.sub ('href="source/(.*?)"', lambda m: source_links_replace (m, source_val), s)
+
+body_tag_re = re.compile ('(?i)<body([^>]*)>')
+html_tag_re = re.compile ('(?i)<html>')
+doctype_re = re.compile ('(?i)<!DOCTYPE')
+doctype = '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">\n'
+css_re = re.compile ('(?i)<link rel="stylesheet" type="text/css" ([^>]*)href="[^">]*?lilypond.*\.css"([^>]*)>')
+end_head_tag_re = re.compile ('(?i)</head>')
+css_link = """    <link rel="stylesheet" type="text/css" title="Patrick McCarty's design" href="%(rel)sDocumentation/lilypond-mccarty.css">
+    <link rel="alternate stylesheet" type="text/css" href="%(rel)sDocumentation/lilypond.css" title="Andrew Hawryluk's design">
+    <link rel="alternate stylesheet" type="text/css" href="%(rel)sDocumentation/lilypond-blue.css" title="Kurt Kroon's blue design">
+    <!--[if lte IE 7]>
+    <link href="%(rel)sDocumentation/lilypond-ie-fixes.css" rel="stylesheet" type="text/css">
+    <![endif]-->
+"""
+
+
+def add_header (s, prefix):
+    """Add header (<body>, doctype and CSS)"""
+    if header_tag_re.search (s) == None:
+        body = '<body\\1>'
+        (s, n) = body_tag_re.subn (body + header, s, 1)
+        if not n:
+            (s, n) = html_tag_re.subn ('<html>' + header, s, 1)
+            if not n:
+                s = header + s
+
+        s = header_tag + '\n' + s
+
+        if doctype_re.search (s) == None:
+            s = doctype + s
+
+        if css_re.search (s) == None:
+            depth = (prefix.count ('/') - 1) * '../'
+            s = end_head_tag_re.sub ((css_link % {'rel': depth}) + '</head>', s)
+    return s
+
+title_tag_re = re.compile ('.*?<title>(.*?)</title>', re.DOTALL)
+AT_web_title_re = re.compile ('@WEB-TITLE@')
+
+def add_title (s):
+    # urg
+    # maybe find first node?
+    fallback_web_title = '-- --'
+    m = title_tag_re.match (s)
+    if m:
+        fallback_web_title = m.group (1)
+    s = AT_web_title_re.sub (fallback_web_title, s)
+    return s
+
+footer_insert_re = re.compile ('<!--\s*FOOTER\s*-->')
+end_body_re = re.compile ('(?i)</body>')
+end_html_re = re.compile ('(?i)</html>')
+
+def add_footer (s, footer_text):
+    """add footer"""
+    (s, n) = footer_insert_re.subn (footer_text + '\n' + '<!-- FOOTER -->', s, 1)
+    if not n:
+        (s, n) = end_body_re.subn (footer_text + '\n' + '</body>', s, 1)
+    if not n:
+        (s, n) = end_html_re.subn (footer_text + '\n' + '</html>', s, 1)
+    if not n:
+        s += footer_text + '\n'
+    return s
+
+def find_translations (prefix, lang_ext):
+    """find available translations of a page"""
+    available = []
+    missing = []
+    for l in langdefs.LANGUAGES:
+        e = l.webext
+        if lang_ext != e:
+            if e in pages_dict[prefix]:
+                available.append (l)
+            elif lang_ext == '' and l.enabled and reduce (operator.and_,
+                                                          [not prefix.startswith (s)
+                                                           for s in non_copied_pages]):
+                # English version of missing translated pages will be written
+                missing.append (e)
+    return available, missing
+
+online_links_re = re.compile ('''(href|src)=['"]\
+((?!Compiling-from-source.html")[^/][.]*[^.:'"]*)\
+([.]html)(#[^"']*|)['"]''')
+offline_links_re = re.compile ('href=[\'"]\
+((?!Compiling-from-source.html")[^/][.]*[^.:\'"]*)([.]html)(#[^"\']*|)[\'"]')
+big_page_name_re = re.compile ('''(.+?)-big-page''')
+
+def process_i18n_big_page_links (match, prefix, lang_ext):
+    big_page_name = big_page_name_re.match (match.group (1))
+    if big_page_name:
+        destination_path = os.path.normpath (os.path.join (os.path.dirname (prefix),
+                                                           big_page_name.group (0)))
+        if not lang_ext in pages_dict[destination_path]:
+            return match.group (0)
+    return 'href="' + match.group (1) + '.' + lang_ext \
+        + match.group (2) + match.group (3) + '"'
+
+def process_links (s, prefix, lang_ext, file_name, missing, target):
+    page_flavors = {}
+    if target == 'online':
+        # Strip .html, suffix for auto language selection (content
+        # negotiation).  The menu must keep the full extension, so do
+        # this before adding the menu.
+        page_flavors[file_name] = \
+            [lang_ext, online_links_re.sub ('\\1="\\2\\4"', s)]
+    elif target == 'offline':
+        # in LANG doc index: don't rewrite .html suffixes
+        # as not all .LANG.html pages exist;
+        # the doc index should be translated and contain links with the right suffixes
+        # idem for NEWS
+        if prefix in ('Documentation/out-www/index', 'Documentation/topdocs/out-www/NEWS'):
+            page_flavors[file_name] = [lang_ext, s]
+        elif lang_ext == '':
+            page_flavors[file_name] = [lang_ext, s]
+            for e in missing:
+                page_flavors[langdefs.lang_file_name (prefix, e, '.html')] = \
+                    [e, offline_links_re.sub ('href="\\1.' + e + '\\2\\3"', s)]
+        else:
+            # For saving bandwidth and disk space, we don't duplicate big pages
+            # in English, so we must process translated big pages links differently.
+            if 'big-page' in prefix:
+                page_flavors[file_name] = \
+                    [lang_ext,
+                     offline_links_re.sub \
+                         (lambda match: process_i18n_big_page_links (match, prefix, lang_ext),
+                          s)]
+            else:
+                page_flavors[file_name] = \
+                    [lang_ext,
+                     offline_links_re.sub ('href="\\1.' + lang_ext + '\\2\\3"', s)]
+    return page_flavors
+
+def add_menu (page_flavors, prefix, available, target, translation):
+    for k in page_flavors:
+        language_menu = ''
+        languages = ''
+        if page_flavors[k][0] != '':
+            t = translation[page_flavors[k][0]]
+        else:
+            t = _doc
+        for lang in available:
+            lang_file = lang.file_name (os.path.basename (prefix), '.html')
+            if language_menu != '':
+                language_menu += ', '
+            language_menu += '<a href="%s">%s</a>' % (lang_file, t (lang.name))
+        if target == 'offline':
+            browser_language = ''
+        elif target == 'online':
+            browser_language = t (browser_lang) % browser_language_url
+        if language_menu:
+            language_available = t (lang_available) % language_menu
+            languages = LANGUAGES_TEMPLATE % vars ()
+        page_flavors[k][1] = add_footer (page_flavors[k][1], languages)
+    return page_flavors
+
+
+def process_html_files (package_name = '',
+                        package_version = '',
+                        target = 'offline',
+                        name_filter = lambda s: s):
+    """Add header, footer and tweak links to a number of HTML files
+
+    Arguments:
+     package_name=NAME         set package_name to NAME
+     package_version=VERSION   set package version to VERSION
+     targets=offline|online    set page processing depending on the target
+          offline is for reading HTML pages locally
+          online is for hosting the HTML pages on a website with content
+            negotiation
+     name_filter               a HTML file name filter
+    """
+    translation = langdefs.translation
+    localtime = time.strftime ('%c %Z', time.localtime (time.time ()))
+
+    if "http://" in mail_address:
+        mail_address_url = mail_address
+    else:
+        mail_address_url= 'mailto:' + mail_address
+
+    versiontup = package_version.split ('.')
+    branch_str = _doc ('stable-branch')
+    if int (versiontup[1]) %  2:
+        branch_str = _doc ('development-branch')
+
+    # Initialize dictionaries for string formatting
+    subst = {}
+    subst[''] = dict ([i for i in globals ().items() if type (i[1]) is str])
+    subst[''].update (dict ([i for i in locals ().items() if type (i[1]) is str]))
+    for l in translation:
+        e = langdefs.LANGDICT[l].webext
+        if e:
+            subst[e] = {}
+            for name in subst['']:
+                subst[e][name] = translation[l] (subst[''][name])
+    # Do deeper string formatting as early as possible,
+    # so only one '%' formatting pass is needed later
+    for e in subst:
+        subst[e]['footer_name_version'] = subst[e]['footer_name_version'] % subst[e]
+        subst[e]['footer_report_links'] = subst[e]['footer_report_links'] % subst[e]
+
+    for prefix, ext_list in pages_dict.items ():
+        for lang_ext in ext_list:
+            file_name = langdefs.lang_file_name (prefix, lang_ext, '.html')
+            in_f = open (file_name)
+            s = in_f.read()
+            in_f.close()
+
+            s = s.replace ('%', '%%')
+            s = hack_urls (s, prefix)
+            s = add_header (s, prefix)
+
+            ### add footer
+            if footer_tag_re.search (s) == None:
+                s = add_footer (s, footer_tag + footer)
+
+                available, missing = find_translations (prefix, lang_ext)
+                page_flavors = process_links (s, prefix, lang_ext, file_name, missing, target)
+                # Add menu after stripping: must not have autoselection for language menu.
+                page_flavors = add_menu (page_flavors, prefix, available, target, translation)
+            for k in page_flavors:
+                page_flavors[k][1] = page_flavors[k][1] % subst[page_flavors[k][0]]
+                out_f = open (name_filter (k), 'w')
+                out_f.write (page_flavors[k][1])
+                out_f.close()
+        # if the page is translated, a .en.html symlink is necessary for content negotiation
+        if target == 'online' and ext_list != ['']:
+            os.symlink (os.path.basename (prefix) + '.html', name_filter (prefix + '.en.html'))
index e94bf30e7625c5c5d6cd0863d46607805d9b13e0..45ade153967a1b2aacc6c30557c537e2a7295299 100644 (file)
@@ -374,7 +374,7 @@ def conv (str):
     return str
 
 
-# TODO: lots of other syntax change should be done here as well
+# TODO: lots of other syntax changes should be done here as well
 @rule ((1, 3, 92), 'basicXXXProperties -> XXX, Repeat_engraver -> Volta_engraver')
 def conv (str):
     str = re.sub ('basicCollisionProperties', 'NoteCollision', str)
@@ -418,7 +418,7 @@ def conv (str):
     str = re.sub ('\\\\voicefour', '\\\\voiceFour', str)
 
     # I don't know exactly when these happened...
-    # ugh, we loose context setting here...
+    # ugh, we lose context setting here...
     str = re.sub ('\\\\property *[^ ]*verticalDirection[^=]*= *#?"?(1|(\\\\up))"?', '\\\\stemUp\\\\slurUp\\\\tieUp', str)
     str = re.sub ('\\\\property *[^ ]*verticalDirection[^=]*= *#?"?((-1)|(\\\\down))"?', '\\\\stemDown\\\\slurDown\\\\tieDown', str)
     str = re.sub ('\\\\property *[^ ]*verticalDirection[^=]*= *#?"?(0|(\\\\center))"?', '\\\\stemBoth\\\\slurBoth\\\\tieBoth', str)
@@ -431,7 +431,7 @@ def conv (str):
     str = re.sub ('\\\\property *[^ .]*[.]?([a-z]+)VerticalDirection[^=]*= *#?"?((-1)|(\\\\down))"?', '\\\\\\1Down', str)
     str = re.sub ('\\\\property *[^ .]*[.]?([a-z]+)VerticalDirection[^=]*= *#?"?(0|(\\\\center))"?', '\\\\\\1Both', str)
 
-    # (lacks capitalisation slur -> Slur)
+    # (lacks capitalization slur -> Slur)
     str = re.sub ('([a-z]+)VerticalDirection[^=]*= *#?"?(1|(\\\\up))"?', '\\1 \\\\override #\'direction = #1', str)
     str = re.sub ('([a-z]+)VerticalDirection[^=]*= *#?"?((-1)|(\\\\down))"?', '\\1 \\override #\'direction = #-1', str)
     str = re.sub ('([a-z]+)VerticalDirection[^=]*= *#?"?(0|(\\\\center))"?', '\\1 \\\\override #\'direction = #0', str)
@@ -1821,7 +1821,6 @@ def conv (str):
        a = g - lower_pitches [-1]
 
 
-       print s , lower_pitches, g, a, s
        str = 'cdefgab' [s]
        str += ['eses', 'es', '', 'is', 'isis'][a + 2]
        if o < 0:
@@ -2650,7 +2649,7 @@ def conv (str):
     return str
 
 
-@rule ((2, 11, 15), "#'edge-height -> #'bound-details #'right/left #'text = ...")
+@rule ((2, 11, 15), "TextSpanner #'edge-height -> #'bound-details #'right/left #'text = ...")
 def conv (str):
     def sub_edge_height (m):
         s = ''
@@ -2658,20 +2657,22 @@ def conv (str):
                          ('right', m.group (4))]:
 
             if h and float (h):
-                once = m.group(1)
+                once = m.group (1)
                 if not once:
                     once = ''
+                context = m.group (2)
+                if not context:
+                    context = ''
                     
-                s += (r"%s \override %s #'bound-details #'%s #'text = \markup { \draw-line #'(0 . %s) }"
-                      % (once, m.group (2), var, h))
+                s += (r"%s \override %sTextSpanner #'bound-details #'%s #'text = \markup { \draw-line #'(0 . %s) }"
+                      % (once, context, var, h))
 
                 s += '\n'
             
         return s
     
                   
-    str = re.sub (r"(\\once)?\s*\\override\s*([a-zA-Z.]+)\s*#'edge-height\s*=\s*#'\(([0-9.-]+)\s+[.]\s+([0-9.-]+)\)",
-                  sub_edge_height, str)
+    str = re.sub (r"(\\once)?\s*\\override\s*([a-zA-Z]+\s*[.]\s*)?TextSpanner\s*#'edge-height\s*=\s*#'\(\s*([0-9.-]+)\s+[.]\s+([0-9.-]+)\s*\)", sub_edge_height, str)
     return str
 
 
@@ -2820,7 +2821,76 @@ def conv (str):
 @rule ((2, 11, 62), "makam-init.ly -> makam.ly, \\bigger -> \\larger")
 def conv (str):
     str = re.sub (r'\\include(\s+)"makam-init.ly"', r'\\include\1"makam.ly"', str)
-    str = re.sub (r"\\bigger", r"\\larger", str)
+    str = re.sub (r"([\\:])bigger", r"\1larger", str)
+    return str
+
+@rule ((2, 11, 64), "systemSeparatorMarkup -> system-separator-markup,\n\
+InnerStaffGroup -> StaffGroup, InnerChoirStaff -> ChoirStaff")
+def conv (str):
+    str = re.sub (r'systemSeparatorMarkup', r'system-separator-markup', str)
+    if re.search (r'\\InnerStaffGroup', str):
+        stderr_write ("\n")
+        stderr_write (NOT_SMART % _("re-definition of InnerStaffGroup.\n"))
+        stderr_write (FROM_TO % ("InnerStaffGroup", "StaffGroup.\n"))
+        stderr_write (UPDATE_MANUALLY)
+        raise FatalConversionError ()
+    if re.search (r'\\InnerChoirStaff', str):
+        stderr_write ("\n")
+        stderr_write (NOT_SMART % _("re-definition of InnerChoirStaff.\n"))
+        stderr_write (FROM_TO % ("InnerChoirStaff", "ChoirStaff.\n"))
+        stderr_write (UPDATE_MANUALLY)
+        raise FatalConversionError ()
+    else:
+        str = re.sub ('InnerStaffGroup', 'StaffGroup', str)
+        str = re.sub ('InnerChoirStaff', 'ChoirStaff', str)
+    return str
+
+@rule ((2, 12, 0),
+       _ ("Syntax changes for \\addChordShape and \\chord-shape") + "\n" + \
+       _ ("bump version for release"))
+def conv(str):
+    if re.search(r'\\addChordShape', str):
+        stderr_write ("\n")
+        stderr_write (NOT_SMART % _("stringTuning must be added to \
+addChordShape call.\n"))
+        stderr_write (UPDATE_MANUALLY)
+        raise FatalConversionError ()
+    if re.search (r'\\chord-shape', str):
+        stderr_write ("\n")
+        stderr_write (NOT_SMART % _("stringTuning must be added to \
+chord-shape call.\n"))
+        stderr_write (UPDATE_MANUALLY)
+        raise FatalConversionError ()
+    return str
+
+@rule ((2,12,3),
+    _ ("Remove oldaddlyrics"))
+def conv(str):
+    if re.search(r'\\oldaddlyrics', str):
+        stderr_write ("\n")
+        stderr_write (NOT_SMART % _("oldaddlyrics is no longer supported. \n \
+        Use addlyrics or lyrsicsto instead.\n"))
+        stderr_write (UPDATE_MANUALLY)
+        raise FatalConversionError ()
+    return str
+
+@rule ((2, 13, 0), _ ("keySignature property not reversed any more\n\
+MIDI 47: orchestral strings -> orchestral harp"))
+def conv(str):
+    if re.search(r'\set Staff.keySignature', str):
+        stderr_write ("\n")
+        stderr_write (NOT_SMART % _("The alist for Staff.keySignature is no \
+longer in reversed order.\n"))
+    str = str.replace('"orchestral strings"', '"orchestral harp"')
+    return str
+
+@rule ((2, 13, 1),
+       _ ("\\bar \".\" now produces a thick barline"))
+def conv(str):
+    if re.search(r'\\bar\s*"."', str):
+        stderr_write ("\n")
+        stderr_write (NOT_SMART % _("\\bar \".\" now produces a thick barline.\n"))
+        stderr_write (UPDATE_MANUALLY)
     return str
 
 # Guidelines to write rules (please keep this at the end of this file)
index 37159c519854bbfad079017f4f45ad16fed0bae2..c6d608ccb84ee40259c573c760dbabeead13dbeb 100644 (file)
@@ -15,7 +15,7 @@ def lang_file_name (p, langext, ext):
     return p + ext
 
 class LanguageDef:
-    def __init__ (self, code, name, webext=None, double_punct_char_sep='', html_filter=lambda s: s):
+    def __init__ (self, code, name, webext=None, double_punct_char_sep='', html_filter=lambda s: s, enable_ly_identifier_l10n=True):
         self.code = code
         self.name = name
         self.enabled = True
@@ -25,7 +25,7 @@ class LanguageDef:
             self.webext = webext
         self.double_punct_char_sep = double_punct_char_sep
         self.html_filter = html_filter
-    
+        self.enable_ly_identifier_l10n = enable_ly_identifier_l10n
     def file_name (self, prefix, ext):
         return lang_file_name (prefix, self.webext, ext)
 
@@ -62,12 +62,13 @@ def french_html_filter (page):
 fr = LanguageDef ('fr', 'français', double_punct_char_sep='&nbsp;', html_filter = french_html_filter)
 es = LanguageDef ('es', 'español')
 de = LanguageDef ('de', 'deutsch')
+ja = LanguageDef ('ja', '日本語', enable_ly_identifier_l10n=False)
 
 # Outdated or broken translations may be disabled
 # (please run 'make web-clean' before doing that):
 #fr.enabled = False
 
-LANGUAGES = (site, fr, es, de)
+LANGUAGES = (site, fr, es, de, ja)
 
 if __name__ == '__main__':
     print ' '.join ([l.code for l in LANGUAGES if l.enabled and l.code != 'en'])
index 27dd98deabeea5ee439f538467a2065a537c37cb..b34c632f36100846b6068c0c04083e456acee735 100644 (file)
@@ -3,7 +3,7 @@
 # 
 # source file of the GNU LilyPond music typesetter
 #
-# (c) 1998--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+# (c) 1998--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 #                 Jan Nieuwenhuizen <janneke@gnu.org>
 
 import __main__
@@ -18,24 +18,6 @@ import optparse
 # Users of python modules should include this snippet
 # and customize variables below.
 
-# We'll suffer this path init stuff as long as we don't install our
-# python packages in <prefix>/lib/pythonx.y (and don't kludge around
-# it as we do with teTeX on Red Hat Linux: set some environment var
-# (PYTHONPATH) in profile)
-
-# If set, LILYPOND_DATADIR must take prevalence
-# if datadir is not set, we're doing a build and LILYPOND_DATADIR
-
-datadir = '@local_lilypond_datadir@'
-if not os.path.isdir (datadir):
-    datadir = '@lilypond_datadir@'
-if os.environ.has_key ('LILYPOND_DATADIR') :
-    datadir = os.environ['LILYPOND_DATADIR']
-    while datadir[-1] == os.sep:
-       datadir= datadir[:-1]
-
-sys.path.insert (0, os.path.join (datadir, 'python'))
-
 
 # Python 2.5 only accepts strings with proper Python internal encoding
 # (i.e. ASCII or Unicode) when writing to stdout/stderr, so we must
index d9febf7aa3c0173765228b1e27b032b682bf561c..ec57ef72841f0cb2b3721e2918ec8c1ff9ca7a7f 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2001--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2001--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
             Jan Nieuwenhuizen <janneke@gnu.org>
 
 */
index df54f70106c113f3e30681093e043511d3e2e59f..0e8b212c85360c7ffb309e51244eb37db5867720 100644 (file)
@@ -43,7 +43,6 @@ class Output_printer:
     Music expression as a .ly file.
     
     """
-    ## TODO: support for \relative.
     
     def __init__ (self):
         self._line = ''
@@ -205,10 +204,20 @@ class Duration:
 # Implement the different note names for the various languages
 def pitch_generic (pitch, notenames, accidentals):
     str = notenames[pitch.step]
-    if pitch.alteration < 0:
-        str += accidentals[0] * (-pitch.alteration)
+    halftones = int (pitch.alteration)
+    if halftones < 0:
+        str += accidentals[0] * (-halftones)
     elif pitch.alteration > 0:
-        str += accidentals[3] * (pitch.alteration)
+        str += accidentals[3] * (halftones)
+    # Handle remaining fraction to pitch.alteration (for microtones)
+    if (halftones != pitch.alteration):
+        if None in accidentals[1:3]:
+            warning (_ ("Language does not support microtones contained in the piece"))
+        else:
+            try:
+                str += {-0.5: accidentals[1], 0.5: accidentals[2]}[pitch.alteration-halftones]
+            except KeyError:
+                warning (_ ("Language does not support microtones contained in the piece"))
     return str
 
 def pitch_general (pitch):
@@ -230,7 +239,7 @@ def pitch_norsk (pitch):
     return pitch_deutsch (pitch)
 
 def pitch_svenska (pitch):
-    str = pitch_generic (pitch, ['c', 'd', 'e', 'f', 'g', 'a', 'h'], ['ess', '', '', 'iss'])
+    str = pitch_generic (pitch, ['c', 'd', 'e', 'f', 'g', 'a', 'h'], ['ess', None, None, 'iss'])
     return str.replace ('hess', 'b').replace ('aes', 'as').replace ('ees', 'es')
 
 def pitch_italiano (pitch):
@@ -241,11 +250,11 @@ def pitch_catalan (pitch):
     return pitch_italiano (pitch)
 
 def pitch_espanol (pitch):
-    str = pitch_generic (pitch, ['do', 're', 'mi', 'fa', 'sol', 'la', 'si'], ['b', '', '', 's'])
+    str = pitch_generic (pitch, ['do', 're', 'mi', 'fa', 'sol', 'la', 'si'], ['b', None, None, 's'])
     return str
 
 def pitch_vlaams (pitch):
-    str = pitch_generic (pitch, ['do', 're', 'mi', 'fa', 'sol', 'la', 'si'], ['b', '', '', 'k'])
+    str = pitch_generic (pitch, ['do', 're', 'mi', 'fa', 'sol', 'la', 'si'], ['b', None, None, 'k'])
     return str
 
 def set_pitch_language (language):
@@ -271,6 +280,7 @@ class Pitch:
         self.alteration = 0
         self.step = 0
         self.octave = 0
+        self._force_absolute_pitch = False
         
     def __repr__(self):
         return self.ly_expression()
@@ -340,7 +350,7 @@ class Pitch:
 
     def ly_expression (self):
         str = self.ly_step_expression ()
-        if relative_pitches:
+        if relative_pitches and not self._force_absolute_pitch:
             str += self.relative_pitch ()
         else:
             str += self.absolute_pitch ()
@@ -451,7 +461,80 @@ class RelativeMusic (MusicWrapper):
         relative_pitches = prev_relative_pitches
 
 class TimeScaledMusic (MusicWrapper):
+    def __init__ (self):
+        MusicWrapper.__init__ (self)
+        self.numerator = 1
+        self.denominator = 1
+        self.display_number = "actual" # valid values "actual" | "both" | None
+        # Display the basic note length for the tuplet:
+        self.display_type = None       # value values "actual" | "both" | None
+        self.display_bracket = "bracket" # valid values "bracket" | "curved" | None
+        self.actual_type = None   # The actually played unit of the scaling
+        self.normal_type = None   # The basic unit of the scaling
+        self.display_numerator = None
+        self.display_denominator = None
+
     def print_ly (self, func):
+        if self.display_bracket == None:
+            func ("\\once \\override TupletBracket #'stencil = ##f")
+            func.newline ()
+        elif self.display_bracket == "curved":
+            warning (_ ("Tuplet brackets of curved shape are not correctly implemented"))
+            func ("\\once \\override TupletBracket #'stencil = #ly:slur::print")
+            func.newline ()
+
+        base_number_function = {None: "#f", 
+             "actual": "tuplet-number::calc-denominator-text", 
+             "both": "tuplet-number::calc-fraction-text"}.get (self.display_number, None)
+        # If we have non-standard numerator/denominator, use our custom function
+        if self.display_number == "actual" and self.display_denominator:
+            base_number_function = "(tuplet-number::non-default-tuplet-denominator-text %s)" % self.display_denominator
+        elif self.display_number == "both" and (self.display_denominator or self.display_numerator):
+            if self.display_numerator:
+                num = self.display_numerator
+            else:
+                num = "#f"
+            if self.display_denominator:
+                den = self.display_denominator
+            else:
+                den = "#f"
+            base_number_function = "(tuplet-number::non-default-tuplet-fraction-text %s %s)" % (den, num)
+
+
+        if self.display_type == "actual" and self.normal_type:
+            # Obtain the note duration in scheme-mode, i.e. \longa as \\longa
+            base_duration = self.normal_type.ly_expression (None, True)
+            func ("\\once \\override TupletNumber #'text = #(tuplet-number::append-note-wrapper %s \"%s\")" %
+                (base_number_function, base_duration))
+            func.newline ()
+        elif self.display_type == "both": # TODO: Implement this using actual_type and normal_type!
+            if self.display_number == None:
+                func ("\\once \\override TupletNumber #'stencil = ##f")
+                func.newline ()
+            elif self.display_number == "both":
+                den_duration = self.normal_type.ly_expression (None, True)
+                # If we don't have an actual type set, use the normal duration!
+                if self.actual_type:
+                    num_duration = self.actual_type.ly_expression (None, True)
+                else:
+                    num_duration = den_duration
+                if (self.display_denominator or self.display_numerator):
+                    func ("\\once \\override TupletNumber #'text = #(tuplet-number::non-default-fraction-with-notes %s \"%s\" %s \"%s\")" % 
+                                (self.display_denominator, den_duration,
+                                 self.display_numerator, num_duration))
+                    func.newline ()
+                else:
+                    func ("\\once \\override TupletNumber #'text = #(tuplet-number::fraction-with-notes \"%s\" \"%s\")" % 
+                                (den_duration, num_duration))
+                    func.newline ()
+        else:
+            if self.display_number == None:
+                func ("\\once \\override TupletNumber #'stencil = ##f")
+                func.newline ()
+            elif self.display_number == "both":
+                func ("\\once \\override TupletNumber #'text = #%s" % base_number_function)
+                func.newline ()
+
         func ('\\times %d/%d ' %
            (self.numerator, self.denominator))
         func.add_factor (Rational (self.numerator, self.denominator))
@@ -582,8 +665,8 @@ class RepeatedMusic:
             self.music = SequentialMusic ()
             self.music.elements = music
         else:
-            warning (_ ("unable to set the music %(music)s for the repeat %(repeat)s" % \
-                            {'music':music, 'repeat':self}))
+            warning (_ ("unable to set the music %(music)s for the repeat %(repeat)s") % \
+                            {'music':music, 'repeat':self})
     def add_ending (self, music):
         self.endings.append (music)
     def print_ly (self, printer):
@@ -706,6 +789,7 @@ class Layout:
 class ChordEvent (NestedMusic):
     def __init__ (self):
         NestedMusic.__init__ (self)
+        self.after_grace_elements = None
         self.grace_elements = None
         self.grace_type = None
     def append_grace (self, element):
@@ -713,6 +797,16 @@ class ChordEvent (NestedMusic):
             if not self.grace_elements:
                 self.grace_elements = SequentialMusic ()
             self.grace_elements.append (element)
+    def append_after_grace (self, element):
+        if element:
+            if not self.after_grace_elements:
+                self.after_grace_elements = SequentialMusic ()
+            self.after_grace_elements.append (element)
+
+    def has_elements (self):
+        return [e for e in self.elements if
+               isinstance (e, NoteEvent) or isinstance (e, RestEvent)] != []
+
 
     def get_length (self):
         l = Rational (0)
@@ -739,6 +833,9 @@ class ChordEvent (NestedMusic):
         other_events = [e for e in self.elements if
                 not isinstance (e, RhythmicEvent)]
 
+        if self.after_grace_elements:
+            printer ('\\afterGrace {')
+
         if self.grace_elements and self.elements:
             if self.grace_type:
                 printer ('\\%s' % self.grace_type)
@@ -746,6 +843,15 @@ class ChordEvent (NestedMusic):
                 printer ('\\grace')
             # don't print newlines after the { and } braces
             self.grace_elements.print_ly (printer, False)
+        elif self.grace_elements: # no self.elements!
+            warning (_ ("Grace note with no following music: %s") % self.grace_elements)
+            if self.grace_type:
+                printer ('\\%s' % self.grace_type)
+            else:
+                printer ('\\grace')
+            self.grace_elements.print_ly (printer, False)
+            printer ('{}')
+
         # Print all overrides and other settings needed by the 
         # articulations/ornaments before the note
         for e in other_events:
@@ -760,7 +866,7 @@ class ChordEvent (NestedMusic):
             pitches = []
             basepitch = None
             for x in note_events:
-                pitches.append (x.pitch.ly_expression ())
+                pitches.append (x.chord_element_ly ())
                 if not basepitch:
                     basepitch = previous_pitch
             printer ('<%s>' % string.join (pitches))
@@ -777,6 +883,10 @@ class ChordEvent (NestedMusic):
         for e in other_events:
             e.print_after_note (printer)
 
+        if self.after_grace_elements:
+            printer ('}')
+            self.after_grace_elements.print_ly (printer, False)
+
         self.print_comment (printer)
             
 class Partial (Music):
@@ -794,10 +904,10 @@ class BarLine (Music):
         self.type = None
         
     def print_ly (self, printer):
-        bar_symbol = { 'regular': "|", 'dotted': ":", 'dashed': ":",
+        bar_symbol = { 'regular': "|", 'dotted': ":", 'dashed': "dashed",
                        'heavy': "|", 'light-light': "||", 'light-heavy': "|.",
                        'heavy-light': ".|", 'heavy-heavy': ".|.", 'tick': "'",
-                       'short': "'", 'none': "" }.get (self.type, None)
+                       'short': "'|", 'none': "" }.get (self.type, None)
         if bar_symbol <> None:
             printer.dump ('\\bar "%s"' % bar_symbol)
         else:
@@ -805,7 +915,7 @@ class BarLine (Music):
 
         if self.bar_number > 0 and (self.bar_number % 10) == 0:
             printer.dump ("\\barNumberCheck #%d " % self.bar_number)
-        else:
+        elif self.bar_number > 0:
             printer.print_verbatim (' %% %d' % self.bar_number)
         printer.newline ()
 
@@ -893,7 +1003,11 @@ class OctaveShiftEvent (SpanEvent):
         self.span_type = {'up': 1, 'down': -1}.get (type, 0)
     def ly_octave_shift_indicator (self):
         # convert 8/15 to lilypond indicators (+-1/+-2)
-        value = {8: 1, 15: 2}.get (self.size, 0)
+        try:
+            value = {8: 1, 15: 2}[self.size]
+        except KeyError:
+            warning (_ ("Invalid octave shift size found: %s. Using no shift.") % self.size)
+            value = 0
         # negative values go up!
         value *= -1*self.span_type
         return value
@@ -1099,6 +1213,47 @@ class FretEvent (MarkupEvent):
         else:
             return ''
 
+
+class FunctionWrapperEvent (Event):
+    def __init__ (self, function_name = None):
+        Event.__init__ (self)
+        self.function_name = function_name
+    def pre_note_ly (self, is_chord_element):
+        if self.function_name:
+            return "\\%s" % self.function_name
+        else:
+            return ''
+    def pre_chord_ly (self):
+        return ''
+    def ly_expression (self):
+        if self.function_name:
+            return "\\%s" % self.function_name
+        else:
+            return ''
+
+class ParenthesizeEvent (FunctionWrapperEvent):
+    def __init__ (self):
+        FunctionWrapperEvent.__init__ (self, "parenthesize")
+
+class NotestyleEvent (Event):
+    def __init__ (self):
+        Event.__init__ (self)
+        self.style = None
+        self.filled = None
+    def pre_chord_ly (self):
+        if self.style:
+            return "\\once \\override NoteHead #'style = #%s" % self.style
+        else:
+            return ''
+    def pre_note_ly (self, is_chord_element):
+        if self.style and is_chord_element:
+            return "\\tweak #'style #%s" % self.style
+        else:
+            return ''
+    def ly_expression (self):
+        return self.pre_chord_ly ()
+
+
 class ChordPitch:
     def __init__ (self):
         self.alteration = 0
@@ -1167,9 +1322,9 @@ class TremoloEvent (ArticulationEvent):
 class BendEvent (ArticulationEvent):
     def __init__ (self):
         Event.__init__ (self)
-        self.alter = 0
+        self.alter = None
     def ly_expression (self):
-        if self.alter:
+        if self.alter != None:
             return "-\\bendAfter #%s" % self.alter
         else:
             return ''
@@ -1178,7 +1333,24 @@ class RhythmicEvent(Event):
     def __init__ (self):
         Event.__init__ (self)
         self.duration = Duration()
-        
+        self.associated_events = []
+
+    def add_associated_event (self, ev):
+        if ev:
+            self.associated_events.append (ev)
+
+    def pre_chord_ly (self):
+        return [ev.pre_chord_ly () for ev in self.associated_events]
+
+    def pre_note_ly (self, is_chord_element):
+        return [ev.pre_note_ly (is_chord_element) for ev in self.associated_events]
+
+    def ly_expression_pre_note (self, is_chord_element):
+        res = string.join (self.pre_note_ly (is_chord_element), ' ')
+        if res != '':
+            res = res + ' '
+        return res
+
     def get_length (self):
         return self.duration.get_length()
         
@@ -1190,13 +1362,17 @@ class RestEvent (RhythmicEvent):
     def __init__ (self):
         RhythmicEvent.__init__ (self)
         self.pitch = None
+
     def ly_expression (self):
+        res = self.ly_expression_pre_note (False)
         if self.pitch:
-            return "%s%s\\rest" % (self.pitch.ly_expression (), self.duration.ly_expression ())
+            return res + "%s%s\\rest" % (self.pitch.ly_expression (), self.duration.ly_expression ())
         else:
             return 'r%s' % self.duration.ly_expression ()
     
     def print_ly (self, printer):
+        for ev in self.associated_events:
+            ev.print_ly (printer)
         if self.pitch:
             self.pitch.print_ly (printer)
             self.duration.print_ly (printer)
@@ -1216,7 +1392,7 @@ class NoteEvent(RhythmicEvent):
         self.drum_type = None
         self.cautionary = False
         self.forced_accidental = False
-        
+
     def get_properties (self):
         str = RhythmicEvent.get_properties (self)
         
@@ -1235,17 +1411,31 @@ class NoteEvent(RhythmicEvent):
             excl_question += '!'
 
         return excl_question
-    
+
     def ly_expression (self):
+        # obtain all stuff that needs to be printed before the note:
+        res = self.ly_expression_pre_note (True)
         if self.pitch:
-            return '%s%s%s' % (self.pitch.ly_expression (),
+            return res + '%s%s%s' % (self.pitch.ly_expression (),
                                self.pitch_mods(),
                                self.duration.ly_expression ())
         elif self.drum_type:
-            return '%s%s' (self.drum_type,
+            return res + '%s%s' (self.drum_type,
                            self.duration.ly_expression ())
 
+    def chord_element_ly (self):
+        # obtain all stuff that needs to be printed before the note:
+        res = self.ly_expression_pre_note (True)
+        if self.pitch:
+            return res + '%s%s' % (self.pitch.ly_expression (),
+                               self.pitch_mods())
+        elif self.drum_type:
+            return res + '%s%s' (self.drum_type)
+
+
     def print_ly (self, printer):
+        for ev in self.associated_events:
+            ev.print_ly (printer)
         if self.pitch:
             self.pitch.print_ly (printer)
             printer (self.pitch_mods ())
@@ -1257,27 +1447,76 @@ class NoteEvent(RhythmicEvent):
 class KeySignatureChange (Music):
     def __init__ (self):
         Music.__init__ (self)
-        self.scale = []
-        self.tonic = Pitch()
+        self.tonic = None
         self.mode = 'major'
-        
+        self.non_standard_alterations = None
+
+    def format_non_standard_alteration (self, a):
+        alter_dict = { -2:   ",DOUBLE-FLAT",
+                       -1.5: ",THREE-Q-FLAT",
+                       -1:   ",FLAT",
+                       -0.5: ",SEMI-FLAT",
+                        0:   ",NATURAL",
+                        0.5: ",SEMI-SHARP",
+                        1:   ",SHARP",
+                        1.5: ",THREE-Q-SHARP",
+                        2:   ",DOUBLE-SHARP"}
+        try:
+            accidental = alter_dict[a[1]]
+        except KeyError:
+            warning (_ ("Unable to convert alteration %s to a lilypond expression") % a[1])
+            return ''
+        if len (a) == 2:
+            return "( %s . %s )" % (a[0], accidental)
+        elif len (a) == 3:
+            return "(( %s . %s ) . %s )" % (a[2], a[0], accidental)
+        else:
+            return ''
+
     def ly_expression (self):
-        return '\\key %s \\%s' % (self.tonic.ly_step_expression (),
+        if self.tonic:
+            return '\\key %s \\%s' % (self.tonic.ly_step_expression (),
                      self.mode)
-    
-    def lisp_expression (self):
-        pairs = ['(%d . %d)' % (i , self.scale[i]) for i in range (0,7)]
-        scale_str = ("'(%s)" % string.join (pairs))
-
-        return """ (make-music 'KeyChangeEvent
-     'pitch-alist %s) """ % scale_str
+        elif self.non_standard_alterations:
+            alterations = [self.format_non_standard_alteration (a) for
+                                        a in self.non_standard_alterations]
+            return "\\set Staff.keySignature = #`(%s)" % string.join (alterations, " ")
+        else:
+            return ''
 
 class TimeSignatureChange (Music):
     def __init__ (self):
         Music.__init__ (self)
-        self.fraction = (4,4)
+        self.fractions = [4,4]
+        self.style = None
+    def format_fraction (self, frac):
+        if isinstance (frac, list):
+            l = [self.format_fraction (f) for f in frac]
+            return "(" + string.join (l, " ") + ")"
+        else:
+            return "%s" % frac
+
     def ly_expression (self):
-        return '\\time %d/%d ' % self.fraction
+        st = ''
+        # Print out the style if we have ome, but the '() should only be 
+        # forced for 2/2 or 4/4, since in all other cases we'll get numeric 
+        # signatures anyway despite the default 'C signature style!
+        is_common_signature = self.fractions in ([2,2], [4,4], [4,2])
+        if self.style:
+            if self.style == "common":
+                st = "\\defaultTimeSignature"
+            elif (self.style != "'()"):
+                st = "\\once \\override Staff.TimeSignature #'style = #%s " % self.style
+            elif (self.style != "'()") or is_common_signature:
+                st = "\\numericTimeSignature"
+
+        # Easy case: self.fractions = [n,d] => normal \time n/d call:
+        if len (self.fractions) == 2 and isinstance (self.fractions[0], int):
+            return st + '\\time %d/%d ' % tuple (self.fractions)
+        elif self.fractions:
+            return st + "\\compoundMeter #'%s" % self.format_fraction (self.fractions)
+        else:
+            return st + ''
     
 class ClefChange (Music):
     def __init__ (self):
@@ -1327,6 +1566,13 @@ class ClefChange (Music):
 """ % (glyph, pos, c0)
         return clefsetting
 
+class Transposition (Music):
+    def __init__ (self):
+        Music.__init__ (self)
+        self.pitch = None
+    def ly_expression (self):
+        self.pitch._force_absolute_pitch = True
+        return '\\transposition %s' % self.pitch.ly_expression ()
 
 class StaffChange (Music):
     def __init__ (self, staff):
index a7cf59730ff1de9c6886816df7b42abdcb5bfb23..b6a5bbeac87fde3fbef733ffde49c03d318a722a 100644 (file)
@@ -35,6 +35,13 @@ def musicxml_duration_to_log (dur):
              'longa': -2,
              'long': -2}.get (dur, 0)
 
+def interpret_alter_element (alter_elm):
+    alter = 0
+    if alter_elm:
+        val = eval(alter_elm.get_text ())
+        if type (val) in (int, float):
+            alter = val
+    return alter
 
 
 class Xml_node:
@@ -74,6 +81,18 @@ class Xml_node:
             sys.stderr.write ('  In: <%s %s>\n' % (p._name, ' '.join (['%s=%s' % item for item in p._attribute_dict.items ()])))
             p = p.get_parent ()
         
+    def dump (self, indent = ''):
+        sys.stderr.write ('%s<%s%s>' % (indent, self._name, ''.join ([' %s=%s' % item for item in self._attribute_dict.items ()])))
+        non_text_children = [c for c in self._children if not isinstance (c, Hash_text)]
+        if non_text_children:
+            sys.stderr.write ('\n')
+        for c in self._children:
+            c.dump (indent + "    ")
+        if non_text_children:
+            sys.stderr.write (indent)
+        sys.stderr.write ('</%s>\n' % self._name)
+
+        
     def get_typed_children (self, klass):
         if not klass:
             return []
@@ -143,11 +162,11 @@ class Work (Xml_node):
 
 class Identification (Xml_node):
     def get_rights (self):
-        rights = self.get_maybe_exist_named_child ('rights')
-        if rights:
-            return rights.get_text ()
-        else:
-            return ''
+        rights = self.get_named_children ('rights')
+        ret = []
+        for r in rights:
+          ret.append (r.get_text ())
+        return string.join (ret, "\n")
 
     def get_creator (self, type):
         creators = self.get_named_children ('creator')
@@ -205,6 +224,15 @@ class Identification (Xml_node):
                 software.append (s.get_text ())
         return software
 
+    def get_file_description (self):
+        misc = self.get_named_children ('miscellaneous')
+        for m in misc:
+            misc_fields = m.get_named_children ('miscellaneous-field')
+            for mf in misc_fields:
+                if hasattr (mf, 'name') and mf.name == 'description':
+                    return mf.get_text () 
+        return None
+
 
 
 class Duration (Music_xml_node):
@@ -215,7 +243,8 @@ class Duration (Music_xml_node):
 class Hash_comment (Music_xml_node):
     pass
 class Hash_text (Music_xml_node):
-    pass
+    def dump (self, indent = ''):
+        sys.stderr.write ('%s' % string.strip (self._data))
 
 class Pitch (Music_xml_node):
     def get_step (self):
@@ -230,10 +259,7 @@ class Pitch (Music_xml_node):
 
     def get_alteration (self):
        ch = self.get_maybe_exist_typed_child (get_class (u'alter'))
-       alter = 0
-       if ch:
-           alter = int (ch.get_text ().strip ())
-       return alter
+       return interpret_alter_element (ch)
 
 class Unpitched (Music_xml_node):
     def get_step (self):
@@ -259,15 +285,28 @@ class Measure_element (Music_xml_node):
            return None
 
     def is_first (self):
-       cn = self._parent.get_typed_children (self.__class__)
-       cn = [c for c in cn if c.get_voice_id () == self.get_voice_id ()]
+        # Look at all measure elements (previously we had self.__class__, which
+        # only looked at objects of the same type!
+       cn = self._parent.get_typed_children (Measure_element)
+        # But only look at the correct voice; But include Attributes, too, which
+        # are not tied to any particular voice
+       cn = [c for c in cn if (c.get_voice_id () == self.get_voice_id ()) or isinstance (c, Attributes)]
        return cn[0] == self
 
 class Attributes (Measure_element):
     def __init__ (self):
        Measure_element.__init__ (self)
        self._dict = {}
+        self._original_tag = None
+        self._time_signature_cache = None
 
+    def is_first (self):
+       cn = self._parent.get_typed_children (self.__class__)
+        if self._original_tag:
+            return cn[0] == self._original_tag
+        else:
+            return cn[0] == self
+    
     def set_attributes_from_previous (self, dict):
        self._dict.update (dict)
         
@@ -277,25 +316,63 @@ class Attributes (Measure_element):
 
     def get_named_attribute (self, name):
        return self._dict.get (name)
+        
+    def single_time_sig_to_fraction (self, sig):
+        if len (sig) < 2:
+            return 0
+        n = 0
+        for i in sig[0:-1]:
+          n += i
+        return Rational (n, sig[-1])
 
     def get_measure_length (self):
-        (n,d) = self.get_time_signature ()
-        return Rational (n,d)
+        sig = self.get_time_signature ()
+        if not sig or len (sig) == 0:
+            return 1
+        if isinstance (sig[0], list):
+            # Complex compound time signature
+            l = 0
+            for i in sig:
+                l += self.single_time_sig_to_fraction (i)
+            return l
+        else:
+           # Simple (maybe compound) time signature of the form (beat, ..., type)
+            return self.single_time_sig_to_fraction (sig)
+        return 0
         
     def get_time_signature (self):
-        "return time sig as a (beat, beat-type) tuple"
+        "Return time sig as a (beat, beat-type) tuple. For compound signatures,"
+        "return either (beat, beat,..., beat-type) or ((beat,..., type), "
+        "(beat,..., type), ...)."
+        if self._time_signature_cache:
+            return self._time_signature_cache
 
         try:
             mxl = self.get_named_attribute ('time')
-            if mxl:
-                beats = mxl.get_maybe_exist_named_child ('beats')
-                type = mxl.get_maybe_exist_named_child ('beat-type')
-                return (int (beats.get_text ()),
-                        int (type.get_text ()))
-            else:
+            if not mxl:
+                return None
+
+            if mxl.get_maybe_exist_named_child ('senza-misura'):
+                # TODO: Handle pieces without a time signature!
+                error (_ ("Senza-misura time signatures are not yet supported!"))
                 return (4, 4)
-        except KeyError:
-            error (_ ("requested time signature, but time sig is unknown"))
+            else:
+                signature = []
+                current_sig = []
+                for i in mxl.get_all_children ():
+                    if isinstance (i, Beats):
+                        beats = string.split (i.get_text ().strip (), "+")
+                        current_sig = [int (j) for j in beats]
+                    elif isinstance (i, BeatType):
+                        current_sig.append (int (i.get_text ()))
+                        signature.append (current_sig)
+                        current_sig = []
+                if isinstance (signature[0], list) and len (signature) == 1:
+                    signature = signature[0]
+                self._time_signature_cache = signature
+                return signature
+        except (KeyError, ValueError):
+            self.message (_ ("Unable to interpret time signature! Falling back to 4/4."))
             return (4, 4)
 
     # returns clef information in the form ("cleftype", position, octave-shift)
@@ -316,16 +393,55 @@ class Attributes (Measure_element):
         return clefinfo
 
     def get_key_signature (self):
-        "return (fifths, mode) tuple"
+        "return (fifths, mode) tuple if the key signatures is given as "
+        "major/minor in the Circle of fifths. Otherwise return an alterations"
+        "list of the form [[step,alter<,octave>], [step,alter<,octave>], ...], "
+        "where the octave values are optional."
 
         key = self.get_named_attribute ('key')
-        mode_node = key.get_maybe_exist_named_child ('mode')
-        mode = 'major'
-        if mode_node:
-            mode = mode_node.get_text ()
+        if not key:
+            return None
+        fifths_elm = key.get_maybe_exist_named_child ('fifths')
+        if fifths_elm:
+            mode_node = key.get_maybe_exist_named_child ('mode')
+            mode = None
+            if mode_node:
+                mode = mode_node.get_text ()
+            if not mode or mode == '':
+                mode = 'major'
+            fifths = int (fifths_elm.get_text ())
+            # TODO: Shall we try to convert the key-octave and the cancel, too?
+            return (fifths, mode)
+        else:
+            alterations = []
+            current_step = 0
+            for i in key.get_all_children ():
+                if isinstance (i, KeyStep):
+                    current_step = int (i.get_text ())
+                elif isinstance (i, KeyAlter):
+                    alterations.append ([current_step, interpret_alter_element (i)])
+                elif isinstance (i, KeyOctave):
+                    nr = -1
+                    if hasattr (i, 'number'):
+                        nr = int (i.number)
+                    if (nr > 0) and (nr <= len (alterations)):
+                        # MusicXML Octave 4 is middle C -> shift to 0
+                        alterations[nr-1].append (int (i.get_text ())-4)
+                    else:
+                        i.message (_ ("Key alteration octave given for a "
+                            "non-existing alteration nr. %s, available numbers: %s!") % (nr, len(alterations)))
+            return alterations
+
+    def get_transposition (self):
+        return self.get_named_attribute ('transpose')
+
+class KeyAlter (Music_xml_node):
+    pass
+class KeyStep (Music_xml_node):
+    pass
+class KeyOctave (Music_xml_node):
+    pass
 
-        fifths = int (key.get_maybe_exist_named_child ('fifths').get_text ())
-        return (fifths, mode)
 
 class Barline (Measure_element):
     pass
@@ -340,7 +456,15 @@ class Note (Measure_element):
     def __init__ (self):
         Measure_element.__init__ (self)
         self.instrument_name = ''
-        
+        self._after_grace = False
+    def is_grace (self):
+        return self.get_maybe_exist_named_child (u'grace')
+    def is_after_grace (self):
+        if not self.is_grace():
+            return False;
+        gr = self.get_maybe_exist_typed_child (Grace)
+        return self._after_grace or hasattr (gr, 'steal-time-previous');
+
     def get_duration_log (self):
         ch = self.get_maybe_exist_named_child (u'type')
 
@@ -351,8 +475,15 @@ class Note (Measure_element):
            # FIXME: is it ok to default to eight note for grace notes?
            return 3
         else:
-            self.message (_ ("Encountered note at %s with %s duration (no <type> element):") % (self.start, self.duration) )
-            return 0
+            return None
+    
+    def get_duration_info (self):
+        log = self.get_duration_log ()
+        if log != None:
+            dots = len (self.get_typed_children (Dot))
+            return (log, dots)
+        else:
+            return None
 
     def get_factor (self):
         return 1
@@ -406,6 +537,10 @@ class Syllabic (Music_xml_node):
     def continued (self):
         text = self.get_text()
         return (text == "begin") or (text == "middle")
+class Elision (Music_xml_node):
+    pass
+class Extend (Music_xml_node):
+    pass
 class Text (Music_xml_node):
     pass
 
@@ -416,32 +551,6 @@ class Lyric (Music_xml_node):
         else:
             return -1
 
-    def lyric_to_text (self):
-        continued = False
-        syllabic = self.get_maybe_exist_typed_child (Syllabic)
-        if syllabic:
-            continued = syllabic.continued ()
-        text = self.get_maybe_exist_typed_child (Text)
-        
-        if text:
-            text = text.get_text()
-            # We need to convert soft hyphens to -, otherwise the ascii codec as well
-            # as lilypond will barf on that character
-            text = string.replace( text, u'\xad', '-' )
-        
-        if text == "-" and continued:
-            return "--"
-        elif text == "_" and continued:
-            return "__"
-        elif continued and text:
-            return escape_ly_output_string (text) + " --"
-        elif continued:
-            return "--"
-        elif text:
-            return escape_ly_output_string (text)
-        else:
-            return ""
-
 class Musicxml_voice:
     def __init__ (self):
        self._elements = []
@@ -480,6 +589,13 @@ class Musicxml_voice:
             return self._lyrics
 
 
+def graces_to_aftergraces (pending_graces):
+    for gr in pending_graces:
+        gr._when = gr._prev_when
+        gr._measure_position = gr._prev_measure_position
+        gr._after_grace = True
+
+
 class Part (Music_xml_node):
     def __init__ (self):
         Music_xml_node.__init__ (self)
@@ -492,7 +608,7 @@ class Part (Music_xml_node):
             n = n._parent
 
         return n.get_named_child ('part-list')
-        
+       
     def interpret (self):
        """Set durations and starting points."""
         """The starting point of the very first note is 0!"""
@@ -510,6 +626,9 @@ class Part (Music_xml_node):
         measure_start_moment = now
         is_first_measure = True
         previous_measure = None
+        # Graces at the end of a measure need to have their position set to the
+        # previous number!
+        pending_graces = []
        for m in measures:
             # implicit measures are used for artificial measures, e.g. when
             # a repeat bar line splits a bar into two halves. In this case,
@@ -539,6 +658,8 @@ class Part (Music_xml_node):
                 # and should not change the current measure position!
                 if isinstance (n, FiguredBass):
                     n._divisions = factor.denominator ()
+                    n._when = now
+                    n._measure_position = measure_position
                     continue
 
                 if isinstance (n, Hash_text):
@@ -561,6 +682,9 @@ class Part (Music_xml_node):
                     
                    if n.get_name() == 'backup':
                        dur = - dur
+                        # reset all graces before the backup to after-graces:
+                        graces_to_aftergraces (pending_graces)
+                        pending_graces = []
                    if n.get_maybe_exist_typed_child (Grace):
                        dur = Rational (0)
 
@@ -571,13 +695,30 @@ class Part (Music_xml_node):
 
                         rest._is_whole_measure = True
 
-                if (dur > Rational (0) 
+                if (dur > Rational (0)
                     and n.get_maybe_exist_typed_child (Chord)):
                     now = last_moment
                     measure_position = last_measure_position
 
                 n._when = now
                 n._measure_position = measure_position
+
+                # For all grace notes, store the previous note,  in case need
+                # to turn the grace note into an after-grace later on!
+                if isinstance(n, Note) and n.is_grace ():
+                    n._prev_when = last_moment
+                    n._prev_measure_position = last_measure_position
+                # After-graces are placed at the same position as the previous note
+                if isinstance(n, Note) and  n.is_after_grace ():
+                    # TODO: We should do the same for grace notes at the end of 
+                    # a measure with no following note!!!
+                    n._when = last_moment
+                    n._measure_position = last_measure_position
+                elif isinstance(n, Note) and n.is_grace ():
+                    pending_graces.append (n)
+                elif (dur > Rational (0)):
+                    pending_graces = [];
+
                 n._duration = dur
                 if dur > Rational (0):
                     last_moment = now
@@ -599,6 +740,9 @@ class Part (Music_xml_node):
                     if instrument:
                         n.instrument_name = part_list.get_instrument (instrument.id)
 
+            # reset all graces at the end of the measure to after-graces:
+            graces_to_aftergraces (pending_graces)
+            pending_graces = []
             # Incomplete first measures are not padded, but registered as partial
             if is_first_measure:
                 is_first_measure = False
@@ -615,6 +759,7 @@ class Part (Music_xml_node):
         attributes = copy.copy (attr)
         attributes._children = [];
         attributes._dict = attr._dict.copy ()
+        attributes._original_tag = attr
         # copy only the relevant children over for the given staff
         for c in attr._children:
             if (not (hasattr (c, 'number') and (c.number != staff)) and
@@ -641,6 +786,8 @@ class Part (Music_xml_node):
             vid = None
             if voice_id:
                 vid = voice_id.get_text ()
+            elif isinstance (n, Note):
+                vid = "None"
 
             staff_id = n.get_maybe_exist_named_child (u'staff')
             sid = None
@@ -670,8 +817,15 @@ class Part (Music_xml_node):
         id = None
        for n in elements:
            voice_id = n.get_maybe_exist_typed_child (get_class ('voice'))
+            if voice_id:
+                id = voice_id.get_text ()
+            else:
+                id = "None"
 
-           if not (voice_id or isinstance (n, Attributes) or
+            # We don't need backup/forward any more, since we have already 
+            # assigned the correct onset times. 
+            # TODO: Let Grouping through. Also: link, print, bokmark sound
+           if not (isinstance (n, Note) or isinstance (n, Attributes) or
                     isinstance (n, Direction) or isinstance (n, Partial) or
                     isinstance (n, Barline) or isinstance (n, Harmony) or
                     isinstance (n, FiguredBass) ):
@@ -713,7 +867,6 @@ class Part (Music_xml_node):
                 assign_to_next_note.append (n)
                 continue
 
-           id = voice_id.get_text ()
             if hasattr (n, 'print-object') and getattr (n, 'print-object') == "no":
                 #Skip this note. 
                 pass
@@ -763,6 +916,16 @@ class Time_modification(Music_xml_node):
        a = self.get_maybe_exist_named_child ('normal-notes')
        return (int(a.get_text ()), int (b.get_text ()))
 
+    def get_normal_type (self):
+        tuplet_type = self.get_maybe_exist_named_child ('normal-type')
+        if tuplet_type:
+            dots = self.get_named_children ('normal-dot')
+            log = musicxml_duration_to_log (tuplet_type.get_text ().strip ())
+            return (log , len (dots))
+        else:
+            return None
+
+
 class Accidental (Music_xml_node):
     def __init__ (self):
        Music_xml_node.__init__ (self)
@@ -785,7 +948,40 @@ class Wedge (Music_xml_spanner):
     pass
 
 class Tuplet (Music_xml_spanner):
-    pass
+    def duration_info_from_tuplet_note (self, tuplet_note):
+        tuplet_type = tuplet_note.get_maybe_exist_named_child ('tuplet-type')
+        if tuplet_type:
+            dots = tuplet_note.get_named_children ('tuplet-dot')
+            log = musicxml_duration_to_log (tuplet_type.get_text ().strip ())
+            return (log, len (dots))
+        else:
+            return None
+
+    # Return tuplet note type as (log, dots)
+    def get_normal_type (self):
+        tuplet = self.get_maybe_exist_named_child ('tuplet-normal')
+        if tuplet:
+            return self.duration_info_from_tuplet_note (tuplet)
+        else:
+            return None
+
+    def get_actual_type (self):
+        tuplet = self.get_maybe_exist_named_child ('tuplet-actual')
+        if tuplet:
+            return self.duration_info_from_tuplet_note (tuplet)
+        else:
+            return None
+
+    def get_tuplet_note_count (self, tuplet_note):
+        if tuplet_note:
+            tuplet_nr = tuplet_note.get_maybe_exist_named_child ('tuplet-number')
+            if tuplet_nr: 
+                return int (tuplet_nr.get_text ())
+        return None
+    def get_normal_nr (self):
+        return self.get_tuplet_note_count (self.get_maybe_exist_named_child ('tuplet-normal'))
+    def get_actual_nr (self):
+        return self.get_tuplet_note_count (self.get_maybe_exist_named_child ('tuplet-actual'))
 
 class Bracket (Music_xml_spanner):
     pass
@@ -867,10 +1063,7 @@ class DirType (Music_xml_node):
 class Bend (Music_xml_node):
     def bend_alter (self):
         alter = self.get_maybe_exist_named_child ('bend-alter')
-        if alter:
-            return alter.get_text()
-        else:
-            return 0
+        return interpret_alter_element (alter)
 
 class Words (Music_xml_node):
     pass
@@ -888,10 +1081,7 @@ class ChordPitch (Music_xml_node):
         return ch.get_text ().strip ()
     def get_alteration (self):
         ch = self.get_maybe_exist_typed_child (get_class (self.alter_class_name ()))
-        alter = 0
-        if ch:
-            alter = int (ch.get_text ().strip ())
-        return alter
+        return interpret_alter_element (ch)
 
 class Root (ChordPitch):
     pass
@@ -914,10 +1104,7 @@ class ChordModification (Music_xml_node):
         return value
     def get_alter (self):
         ch = self.get_maybe_exist_typed_child (get_class (u'degree-alter'))
-        value = 0
-        if ch:
-            value = int (ch.get_text ().strip ())
-        return value
+        return interpret_alter_element (ch)
 
 
 class Frame (Music_xml_node):
@@ -945,6 +1132,12 @@ class Frame_Note (Music_xml_node):
 class FiguredBass (Music_xml_node):
     pass
 
+class Beats (Music_xml_node):
+    pass
+
+class BeatType (Music_xml_node):
+    pass
+
 class BeatUnit (Music_xml_node):
     pass
 
@@ -968,6 +1161,8 @@ class_dict = {
         'bar-style': BarStyle,
         'bass': Bass,
        'beam' : Beam,
+        'beats': Beats,
+        'beat-type': BeatType,
         'beat-unit': BeatUnit,
         'beat-unit-dot': BeatUnitDot,
         'bend' : Bend,
@@ -979,6 +1174,8 @@ class_dict = {
        'direction': Direction,
         'direction-type': DirType,
        'duration': Duration,
+        'elision': Elision,
+        'extend': Extend,
         'frame': Frame,
         'frame-note': Frame_Note,
         'figured-bass': FiguredBass,
@@ -986,6 +1183,9 @@ class_dict = {
        'grace': Grace,
         'harmony': Harmony,
         'identification': Identification,
+        'key-alter': KeyAlter,
+        'key-octave': KeyOctave,
+        'key-step': KeyStep,
         'lyric': Lyric,
        'measure': Measure,
        'notations': Notations,
diff --git a/scm/SConscript b/scm/SConscript
deleted file mode 100644 (file)
index 396bafb..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-# -*-python-*-
-
-Import ('env', 'install', 'src_glob')
-sources = src_glob ('*.scm')
-install (sources, env['sharedir_package_version'] + '/scm')
index adc7a1dc1dce06ff8683a2bf39a83f3517aa5327..6479969eb8deb1c2b39b2387f8da0600df5ceb1f 100644 (file)
@@ -1,10 +1,10 @@
 ;;;; auto-beam.scm -- Auto-beam-engraver settings
 ;;;;
 ;;;; source file of the GNU LilyPond music typesetter
-;;;; 
-;;;; (c) 2000--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+;;;;
+;;;; (c) 2000--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 
-;;; specify generic beam begin and end times
+;;; specify generic beam end times
 
 ;;; format:
 ;;;
 
 (define-public default-auto-beam-settings
   `(
-    ;; in 3 2 time:
-    ;;   end beams each 1 2 note
-    ;;   end beams with 16th notes each 1 4 note
-    ;;   end beams with 32nd notes each 1 8 note
+    ;; in 2 2 time:
+    ;;  use beatLength for all except 32nd notes
+    ;;  end beams with 32nd notes each 1 4 beat
 
-    ((end * * 3 2) . ,(ly:make-moment 1 2))
-    ((end * * 3 2) . ,(ly:make-moment 2 2))
+    ((end 1 32 2 2) . ,(ly:make-moment 1 4))
+    ((end 1 32 2 2) . ,(ly:make-moment 2 4))
+    ((end 1 32 2 2) . ,(ly:make-moment 3 4))
+
+    ;; in 3 2 time:
+    ;;   use beatLength for all except 16th and 32nd notes
+    ;;   end beams with 16th notes each 1 4 beat
+    ;;   end beams with 32nd notes each 1 8 beat
 
     ((end 1 16 3 2) . ,(ly:make-moment 1 4))
-    ((end 1 16 3 2) . ,(ly:make-moment 1 2))
+    ((end 1 16 3 2) . ,(ly:make-moment 2 4))
     ((end 1 16 3 2) . ,(ly:make-moment 3 4))
+    ((end 1 16 3 2) . ,(ly:make-moment 4 4))
     ((end 1 16 3 2) . ,(ly:make-moment 5 4))
 
     ((end 1 32 3 2) . ,(ly:make-moment 1 8))
-    ((end 1 32 3 2) . ,(ly:make-moment 1 4))
+    ((end 1 32 3 2) . ,(ly:make-moment 2 8))
     ((end 1 32 3 2) . ,(ly:make-moment 3 8))
-    ((end 1 32 3 2) . ,(ly:make-moment 1 2))
+    ((end 1 32 3 2) . ,(ly:make-moment 4 8))
     ((end 1 32 3 2) . ,(ly:make-moment 5 8))
-    ((end 1 32 3 2) . ,(ly:make-moment 3 4))
+    ((end 1 32 3 2) . ,(ly:make-moment 6 8))
     ((end 1 32 3 2) . ,(ly:make-moment 7 8))
+    ((end 1 32 3 2) . ,(ly:make-moment 8 8))
     ((end 1 32 3 2) . ,(ly:make-moment 9 8))
-    ((end 1 32 3 2) . ,(ly:make-moment 5 4))
+    ((end 1 32 3 2) . ,(ly:make-moment 10 8))
     ((end 1 32 3 2) . ,(ly:make-moment 11 8))
 
-    ((end * * 3 4) . ,(ly:make-moment 3 4))
+    ;; in 2 4 time:
+    ;;   use beatLength for all except 32nd notes
+    ;;   end beams with 32nd notes each 1 8 beat
 
-    ((end 1 16 3 4) . ,(ly:make-moment 1 4))
-    ((end 1 16 3 4) . ,(ly:make-moment 1 2))
+    ((end 1 32 2 4) . ,(ly:make-moment 1 8))
+    ((end 1 32 2 4) . ,(ly:make-moment 2 8))
+    ((end 1 32 2 4) . ,(ly:make-moment 3 8))
+
+    ;; in 3 4 time:
+    ;;   override beatLength which would end beams at 1 4 beats
+    ;;   end beams with 16th notes each 1 4 beat
+    ;;   end beams with 32nd notes each 1 8 beat
 
+    ((end * * 3 4) . ,(ly:make-moment 3 4))
+    ((end 1 16 3 4) . ,(ly:make-moment 1 4))
+    ((end 1 16 3 4) . ,(ly:make-moment 2 4))
     ((end 1 32 3 4) . ,(ly:make-moment 1 8))
-    ((end 1 32 3 4) . ,(ly:make-moment 1 4))
+    ((end 1 32 3 4) . ,(ly:make-moment 2 8))
     ((end 1 32 3 4) . ,(ly:make-moment 3 8))
-    ((end 1 32 3 4) . ,(ly:make-moment 1 2))
+    ((end 1 32 3 4) . ,(ly:make-moment 4 8))
     ((end 1 32 3 4) . ,(ly:make-moment 5 8))
 
-    ((end * * 3 8) . ,(ly:make-moment 3 8))
-
     ;; in common time:
-    ;;   end beams each 1 2 note
-    ;;   end beams with 32nd notes each 1 8 note
-    ;;   end beams with 1 8 triplets each 1 4 note
+    ;;   override beatLength which would end beams at 1 4 beats
+    ;;   end all beams at 1 2 beat
+    ;;   end beams with 8th triplets each 1 4 beat
+    ;;   end beams with 16th notes each 1 4 beat
+    ;;   end beams with 32nd notes each 1 8 beat
 
     ((end * * 4 4) . ,(ly:make-moment 1 2))
+
     ((end 1 12 4 4) . ,(ly:make-moment 1 4))
     ((end 1 12 4 4) . ,(ly:make-moment 3 4))
 
     ((end 1 16 4 4) . ,(ly:make-moment 3 4))
 
     ((end 1 32 4 4) . ,(ly:make-moment 1 8))
-    ((end 1 32 4 4) . ,(ly:make-moment 1 4))
+    ((end 1 32 4 4) . ,(ly:make-moment 2 8))
     ((end 1 32 4 4) . ,(ly:make-moment 3 8))
     ((end 1 32 4 4) . ,(ly:make-moment 5 8))
-    ((end 1 32 4 4) . ,(ly:make-moment 3 4))
+    ((end 1 32 4 4) . ,(ly:make-moment 6 8))
     ((end 1 32 4 4) . ,(ly:make-moment 7 8))
 
-    ((end * * 2 4) . ,(ly:make-moment 1 4))
-    ((end 1 32 2 4) . ,(ly:make-moment 1 8))
-    ((end 1 32 2 4) . ,(ly:make-moment 3 8))
+    ;; in 3 8 time:
+    ;;   override beatLength which would end beams at 1 8 beats
+
+    ((end * * 3 8) . ,(ly:make-moment 3 8))
+
+    ;; in 4 8 time
+    ;;   override beatLength which would end beams at 1 8 beats
+    ;;   end all beams at 1 4 beat
+    ;;   end beams with 32nd notes each 1 8 beat
 
     ((end * * 4 8) . ,(ly:make-moment 1 4))
     ((end 1 32 4 8) . ,(ly:make-moment 1 8))
     ((end 1 32 4 8) . ,(ly:make-moment 3 8))
 
-    ((end * * 4 16) . ,(ly:make-moment 1 8))
-
     ;; in 6 8, 9 8 and 12 8 time:
-    ;;   use beatGrouping for all except 32nd notes
-    ;;   end beams with 32nd notes every 1 8 note
+    ;;   use beatGrouping for all except 32nd notes
+    ;;   end beams with 32nd notes each 1 8 beat
 
     ((end 1 32 6 8) . ,(ly:make-moment 1 8))
     ((end 1 32 6 8) . ,(ly:make-moment 2 8))
     ((end 1 32 12 8) . ,(ly:make-moment 9 8))
     ((end 1 32 12 8) . ,(ly:make-moment 10 8))
     ((end 1 32 12 8) . ,(ly:make-moment 11 8))
+
+    ;; in 4 16 time
+    ;;   end all beams each 1 8 beat
+
+    ((end * * 4 16) . ,(ly:make-moment 1 8))
+
     ))
 
 (define (override-property-setting context property setting value)
@@ -148,12 +177,12 @@ a fresh copy of the list-head is made."
   (ly:export
    (context-spec-music
     (make-apply-context (lambda (c)
-                         (override-property-setting
-                          c 'autoBeamSettings
-                          setting (ly:make-moment num den))))
+        (override-property-setting
+         c 'autoBeamSettings
+         setting (ly:make-moment num den))))
     (if (and (pair? rest) (symbol? (car rest)))
-       (car rest)
-       'Voice))))
+        (car rest)
+        'Voice))))
 
 (define-public (score-override-auto-beam-setting setting num den)
   (override-auto-beam-setting setting num den 'Score))
@@ -161,13 +190,14 @@ a fresh copy of the list-head is made."
 (define-public (revert-auto-beam-setting setting num den . rest)
   (ly:export
    (context-spec-music
-    (make-apply-context (lambda (c)
-                         (revert-property-setting
-                          c 'autoBeamSettings
-                          (cons setting (ly:make-moment num den)))))
+    (make-apply-context
+      (lambda (c)
+        (revert-property-setting
+         c 'autoBeamSettings
+         (cons setting (ly:make-moment num den)))))
     (if (and (pair? rest) (symbol? (car rest)))
-       (car rest)
-       'Voice))))
+        (car rest)
+        'Voice))))
 
 ;;  Determine end moment for auto beaming (or begin moment, but mostly
 ;;  0== anywhere).  In order of decreasing priority:
@@ -201,11 +231,11 @@ a fresh copy of the list-head is made."
       (if (not (null? value)) value default)))
 
   (define (ending-moments group-list start-beat beat-length)
-  (if (null? group-list)
-      '()
-      (let ((new-start (+ start-beat (car group-list))))
-        (cons (ly:moment-mul (ly:make-moment new-start 1) beat-length)
-              (ending-moments (cdr group-list) new-start beat-length)))))
+    (if (null? group-list)
+        '()
+        (let ((new-start (+ start-beat (car group-list))))
+          (cons (ly:moment-mul (ly:make-moment new-start 1) beat-length)
+                (ending-moments (cdr group-list) new-start beat-length)))))
 
   (define (make-end-settings time ending-list moment-den)
     (if (null? ending-list)
@@ -216,60 +246,60 @@ a fresh copy of the list-head is made."
   
   ;; Don't start auto beams on grace notes
   (if (and (!= (ly:moment-grace-numerator (ly:context-now context)) 0)
-          (= dir START))
+           (= dir START))
       #f
       (let* ((beat-length (get 'beatLength (ly:make-moment 1 4)))
-            (measure-length (get 'measureLength (ly:make-moment 1 1)))
-            (measure-pos (get 'measurePosition ZERO-MOMENT))
+             (measure-length (get 'measureLength (ly:make-moment 1 1)))
+             (measure-pos (get 'measurePosition ZERO-MOMENT))
              (beat-grouping (get 'beatGrouping '()))
-            (settings (get 'autoBeamSettings '()))
-            (function (list (if (= dir START) 'begin 'end)))
+             (settings (get 'autoBeamSettings '()))
+             (function (list (if (= dir START) 'begin 'end)))
              ;; Calculate implied time signature based on measureLength
              ;; and beatLength for default value in get
-            (num-mom (ly:moment-div measure-length beat-length))
-            (num (inexact->exact
-                  (round (/ (ly:moment-main-numerator num-mom)
-                            (ly:moment-main-denominator num-mom)))))
-            (den (ly:moment-main-denominator beat-length))
+             (num-mom (ly:moment-div measure-length beat-length))
+             (num (inexact->exact
+                    (round (/ (ly:moment-main-numerator num-mom)
+                              (ly:moment-main-denominator num-mom)))))
+             (den (ly:moment-main-denominator beat-length))
              (time-signature-fraction 
                (get 'timeSignatureFraction (cons num den)))
-            (time (list (car time-signature-fraction)
+             (time (list (car time-signature-fraction)
                          (cdr time-signature-fraction)))
-            (type (list (ly:moment-main-numerator test)
-                        (ly:moment-main-denominator test)))
-            (pos (if (>= (ly:moment-main-numerator measure-pos) 0)
-                     measure-pos
-                     (ly:moment-add measure-length measure-pos)))
+             (type (list (ly:moment-main-numerator test)
+                         (ly:moment-main-denominator test)))
+             (pos (if (>= (ly:moment-main-numerator measure-pos) 0)
+                      measure-pos
+                      (ly:moment-add measure-length measure-pos)))
              (grouping-moments (ending-moments beat-grouping 0 beat-length))
              ;; Calculate implied measure length from beatGrouping
              ;; and beatLength
-            (grouping-length (if (null? grouping-moments)
+             (grouping-length (if (null? grouping-moments)
                                   ZERO-MOMENT
                                   (list-ref grouping-moments 
                                             (1- (length grouping-moments)))))
              (lst (list
-                  ;; Hmm, should junk user-override feature,
-                  ;; or split this in user-override and config section?
-                  (append function type '(* *))
-                  (append function '(* * * *))
-                  (append function type time)
-                  (append function '(* *) time)))
+                    ;; Hmm, should junk user-override feature,
+                    ;; or split this in user-override and config section?
+                    (append function type '(* *))
+                    (append function '(* * * *))
+                    (append function type time)
+                    (append function '(* *) time)))
              (predefined-setting (first-assoc lst settings)))
          (if (or
-            ;; always begin or end beams at beginning/ending of measure
-            (= (ly:moment-main-numerator pos) 0)
-            (first-member (map (lambda (x) (cons x pos)) lst) settings))
-           #t
-           (if (= dir START)
-               ;; if no entry matches our function + time or type,
-               ;; start anywhere
-               (not predefined-setting)
-               ;; if entry matches our function + time or type, check moment
-               (if predefined-setting
+                ;; always begin or end beams at beginning/ending of measure
+                (= (ly:moment-main-numerator pos) 0)
+                (first-member (map (lambda (x) (cons x pos)) lst) settings))
+             #t
+             (if (= dir START)
+                 ;; if no entry matches our function + time or type,
+                 ;; start anywhere
+                 (not predefined-setting)
+                 ;; if entry matches our function + time or type, check moment
+                 (if predefined-setting
                     (equal? measure-pos (cdr predefined-setting))
                     ;; if measure-length matches grouping-length, use
                     ;; grouping moments, else use beat-length
                     (if (equal? measure-length grouping-length)
-                       (member measure-pos grouping-moments)
+                        (member measure-pos grouping-moments)
                         (= (ly:moment-main-denominator
-                            (ly:moment-div pos beat-length)) 1))))))))
+                           (ly:moment-div pos beat-length)) 1))))))))
index c2c89eed77ed71f90a327b2f9b77f502636850c3..6be7b13e937c0bd5d7028b8777c2dd2430a7e48c 100644 (file)
@@ -2,7 +2,7 @@
 ;;;;
 ;;;;  source file of the GNU LilyPond music typesetter
 ;;;; 
-;;;; (c) 2005--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+;;;; (c) 2005--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 ;;;; Han-Wen Nienhuys <hanwen@xs4all.nl>
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
       (set! formats (cons "ps" formats)))
   (for-each (lambda (x)
              (if (member x formats) (set! new-fmts (cons x new-fmts))))
-           '("tex" "dvi" "ps" "pdf" "png"))
+           '("ps" "pdf" "png"))
   (uniq-list (reverse new-fmts)))
 
 (define (header-to-file file-name key value)
index 17586d1f385a1683935260b045194cf407c47a5c..b6ec6a4ee7602c31e8daca2ac365102bd64a12e7 100644 (file)
@@ -2,7 +2,7 @@
 ;;;;
 ;;;;  source file of the GNU LilyPond music typesetter
 ;;;; 
-;;;; (c) 1998--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+;;;; (c) 1998--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 ;;;;                 Han-Wen Nienhuys <hanwen@xs4all.nl>
 
 ;;; Note: this file can't be used without LilyPond executable
@@ -33,6 +33,9 @@
 (define-public (number-or-string? x)
   (or (number? x) (string? x)))
 
+(define-public (string-or-pair? x)
+  (or (string? x) (pair? x)))
+
 (define-public (scheme? x) #t)
 
 
index 80a473acb177118d0cccc6b02fef78ed4c9e91f0..45c395ba4e6081d929580f0450a1825bcf98102d 100644 (file)
@@ -2,7 +2,7 @@
 ;;;;
 ;;;; source file of the GNU LilyPond music typesetter
 ;;;;
-;;;; (c) 2004--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+;;;; (c) 2004--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 
 (define-public (construct-chord-elements root duration modifications)
   " Build a chord on root using modifiers in MODIFICATIONS. NoteEvents
index 923cddd2cfa027d9be00302d9aeeb44e8ea37e04..190ef7d43736cc9bc173a141cdc92c9ce261030d 100644 (file)
@@ -2,7 +2,7 @@
 ;;;;
 ;;;;  source file of the GNU LilyPond music typesetter
 ;;;;
-;;;; (c) 2003--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+;;;; (c) 2003--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 
 
 ;;;; NOTE: this is experimental code
index fb1a534342a66864f678b494c10687c74f26ea79..0621716d17e7c12094b8c64140e0dd2845fb7526 100644 (file)
@@ -2,7 +2,7 @@
 ;;;;
 ;;;; source file of the GNU LilyPond music typesetter
 ;;;; 
-;;;; (c) 2000--2007  Han-Wen Nienhuys <hanwen@xs4all.nl>
+;;;; (c) 2000--2009  Han-Wen Nienhuys <hanwen@xs4all.nl>
 
 
 
index c49443f2ef6e719a9e9cceed856fee193eba9e0d..718a3c9e3b35cc3cd99bbc1f9de4bf5116ab474f 100644 (file)
@@ -2,7 +2,7 @@
 ;;;;
 ;;;; source file of the GNU LilyPond music typesetter
 ;;;; 
-;;;; (c) 2000--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+;;;; (c) 2000--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 ;;;;                 Han-Wen Nienhuys <hanwen@xs4all.nl>
 
 (define (natural-chord-alteration p)
index e3245477eedf5c1d6860405b16c09c2339f24228..9dfef89e2d557ebcdb47b313d7d55212b88a5307 100644 (file)
@@ -2,7 +2,7 @@
 ;;;;
 ;;;;  source file of the GNU LilyPond music typesetter
 ;;;; 
-;;;; (c) 1998--2007  Han-Wen Nienhuys <hanwen@xs4all.nl>
+;;;; (c) 1998--2009  Han-Wen Nienhuys <hanwen@xs4all.nl>
 ;;;;                  Jan Nieuwenhuizen <janneke@gnu.org>
 
 
@@ -99,11 +99,11 @@ automatically.")
 but it controls cautionary accidentals rather than normal ones.  Both
 lists are tried, and the one giving the most accidentals wins.  In
 case of draw, a normal accidental is typeset.")
-     (automaticBars ,boolean? "If set to true then bar lines will not
+     (automaticBars ,boolean? "If set to false then bar lines will not
 be printed automatically; they must be explicitly created with a
-@code{\\bar} command.  Unlike the @code{\\cadenza} keyword, measures
-are still counted.  Bar generation will resume according to that count
-if this property is unset.")
+@code{\\bar} command.  Unlike the @code{\\cadenzaOn} keyword, measures
+are still counted.  Bar line generation will resume according to that
+count if this property is unset.")
 
      
      (barAlways ,boolean? "If set to true a bar line is drawn after
@@ -162,14 +162,15 @@ Should be set for staves.")
      (crescendoText ,markup? "The text to print at start of non-hairpin
 crescendo, i.e., @samp{cresc.}.")
      (crescendoSpanner ,symbol? "The type of spanner to be used for
-crescendi.  Available values are @samp{hairpin}, @samp{line},
-@samp{dashed-line}, @samp{dotted-line}.  If unset, a hairpin crescendo
-is used.")
+crescendi.  Available values are @samp{hairpin} and @samp{text}.  If unset,
+a hairpin crescendo is used.")
      (currentBarNumber ,integer? "Contains the current barnumber.
 This property is incremented at every bar line.")
 
 
-     (decrescendoSpanner ,symbol? "See @code{crescendoSpanner}.")
+     (decrescendoSpanner ,symbol? "The type of spanner to be used for
+decrescendi.  Available values are @samp{hairpin} and @samp{text}.  If
+unset, a hairpin decrescendo is used.")
      (decrescendoText ,markup? "The text to print at start of
 non-hairpin decrescendo, i.e., @samp{dim.}.")
      (defaultBarType ,string? "Set the default type of bar line.  See
@@ -374,6 +375,10 @@ context.")
      (repeatCommands ,list? "This property is a list of commands
 of the form @code{(list 'volta @var{x})}, where @var{x} is a string or
 @code{#f}.  @code{'end-repeat} is also accepted as a command.")
+     (repeatCountVisibility ,procedure? "A procedure taking as
+arguments an integer and context, returning whether the corresponding
+percent repeat number should be printed when @code{countPercentRepeats}
+is set.")
      (restNumberThreshold ,number? "If a multimeasure rest has more
 measures than this, a number is printed.")
 
index b5ffda6574faa9f1fc4ed998284a1b62448b7e08..a2ee15276fce6a91866e6a3cc3a08c9b9cc730ba 100644 (file)
@@ -2,7 +2,7 @@
 ;;;;
 ;;;;  source file of the GNU LilyPond music typesetter
 ;;;;
-;;;; (c) 1998--2007  Han-Wen Nienhuys <hanwen@xs4all.nl>
+;;;; (c) 1998--2009  Han-Wen Nienhuys <hanwen@xs4all.nl>
 ;;;;                 Jan Nieuwenhuizen <janneke@gnu.org>
 
 
@@ -109,7 +109,7 @@ note)."
 (ly:add-interface
  'note-name-interface
  "Note names."
- '(style))
+ '())
 
 (ly:add-interface
  'only-prebreak-interface
@@ -124,7 +124,7 @@ note)."
 (ly:add-interface
  'percent-repeat-interface
  "Beat, Double and single measure repeats."
- '(slope thickness))
+ '(dot-negative-kern slash-negative-kern slope thickness))
 
 (ly:add-interface
  'piano-pedal-interface
index ed1837c8c6329cce8ab341579435b3dd5eec873e..7e276078368810a5bf627623cd92ec2e4fc411eb 100644 (file)
@@ -1,14 +1,14 @@
-;;;; grob-property-description.scm -- part of generated backend documentation
+;;;; define-grob-properties.scm -- part of generated backend documentation
 ;;;;
 ;;;;  source file of the GNU LilyPond music typesetter
-;;;; 
-;;;; (c) 1998--2007  Han-Wen Nienhuys <hanwen@xs4all.nl>
+;;;;
+;;;; (c) 1998--2009  Han-Wen Nienhuys <hanwen@xs4all.nl>
 ;;;;                 Jan Nieuwenhuizen <janneke@gnu.org>
 
 (define (define-grob-property symbol type? description)
   (if (not (equal? (object-property symbol 'backend-doc) #f))
       (ly:error (_ "symbol ~S redefined") symbol))
-  
+
   (set-object-property! symbol 'backend-type? type?)
   (set-object-property! symbol 'backend-doc description)
   symbol)
      (apply define-grob-property x))
 
    `(
-     (X-extent ,number-pair? "Hard coded extent in X@tie{}direction.")
-     (X-offset ,number? "The horizontal amount that this object is
-moved relative to its X-parent.")
-     (Y-extent ,number-pair? "Hard coded extent in Y@tie{}direction.")
-     (Y-offset ,number? "The vertical amount that this object is moved
-relative to its Y-parent.")
-
+;;
+;; a
+;;
      (add-stem-support ,boolean? "If set, the @code{Stem} object is
-included in this script's support.") 
+included in this script's support.")
      (after-line-breaking ,boolean? "Dummy property, used to trigger
 callback for @code{after-line-breaking}.")
      (align-dir ,ly:dir? "Which side to align? @code{-1}: left side,
@@ -50,8 +46,8 @@ arpeggio squiggly line.")
      (auto-knee-gap ,ly:dimension? "If a gap is found between note
 heads where a horizontal beam fits that is larger than this number,
 make a kneed beam.")
-     (average-spacing-wishes ,boolean? "If set, the spacing wishes
-are averaged over staves.")
+     (average-spacing-wishes ,boolean? "If set, the spacing wishes are
+averaged over staves.")
      (avoid-note-head ,boolean? "If set, the stem of a chord does not
 pass through all note heads, but starts at the last note head.")
      (avoid-slur ,symbol? "Method of handling slur collisions.
@@ -62,10 +58,14 @@ script.")
      (axes ,list? "List of axis numbers.  In the case of alignment
 grobs, this should contain only one number.")
 
+
+;;
+;; b
+;;
      (bar-size ,ly:dimension? "The size of a bar line.")
      (base-shortest-duration ,ly:moment? "Spacing is based on the
-shortest notes in a piece.  Normally, pieces are spaced as if notes
-at least as short as this are present.")
+shortest notes in a piece.  Normally, pieces are spaced as if notes at
+least as short as this are present.")
      (baseline-skip ,ly:dimension? "Distance between base lines of
 multiple lines of text.")
      (beam-thickness ,ly:dimension? "Beam thickness, measured in
@@ -76,9 +76,18 @@ when their direction is forced.  It is a list, since the value is
 different depending on the number of flags and beams.")
      (beaming ,pair? "Pair of number lists.  Each number list
 specifies which beams to make.  @code{0}@tie{}is the central beam,
-@code{1}@tie{}is the next beam toward the note, etc.  This
-information is used to determine how to connect the beaming patterns
-from stem to stem inside a beam.")
+@code{1}@tie{}is the next beam toward the note, etc.  This information
+is used to determine how to connect the beaming patterns from stem to
+stem inside a beam.")
+     (beamlet-default-length ,pair? "A pair of numbers.  The first
+number specifies the default length of a beamlet that sticks out of
+the left hand side of this stem; the second number specifies the
+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.")
+     (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
 a callback function.")
      (between-cols ,pair? "Where to attach a loose column to.")
@@ -99,14 +108,14 @@ grob will have their X-offsets shifted by this number.  In bar lines,
 for example, this is used to position grobs relative to the (visual)
 center of the bar line.")
      (break-align-anchor-alignment ,number? "Read by
-@code{ly:break-aligned-interface::calc-extent-aligned-anchor} for aligning
-an anchor to a grob's extent")
+@code{ly:break-aligned-interface::calc-extent-aligned-anchor} for
+aligning an anchor to a grob's extent")
      (break-align-symbol ,symbol? "This key is used for aligning and
 spacing breakable items.")
      (break-align-symbols ,list? "A list of symbols that determine
 which break-aligned grobs to align this to.  If the grob selected by
-the first symbol in the list is invisible due to break-visibility,
-we will align to the next grob (and so on).")
+the first symbol in the list is invisible due to break-visibility, we
+will align to the next grob (and so on).")
      (break-align-orders ,vector? "Defines the order in which
 prefatory matter (clefs, key signatures) appears.  The format is a
 vector of length@tie{}3, where each element is one order for
@@ -131,8 +140,14 @@ stick out of its bounds?")
 @code{#t} means visible, @code{#f} means killed.")
      (breakable ,boolean? "Allow breaks here.")
 
+
+;;
+;; c
+;;
      (c0-position ,integer? "An integer indicating the position of
 middle@tie{}C.")
+     (circled-tip ,boolean? "Put a circle at start/end of
+hairpins (al/del niente).")
      (clip-edges ,boolean? "Allow outward pointing beamlets at the
 edges of beams?")
      (collapse-height ,ly:dimension? "Minimum height of system start
@@ -151,6 +166,10 @@ this grob looks as a continued break.")
 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.")
 
+
+;;
+;; d
+;;
      (damping ,number? "Amount of beam slope damping.")
      (dash-fraction ,number? "Size of the dashes, relative to
 @code{dash-period}.  Should be between @code{0.0} (no line) and
@@ -166,15 +185,22 @@ positions.")
 other object.  Otherwise, it determines whether the object is placed
 @code{#UP}, @code{#CENTER} or @code{#DOWN}.  Numerical values may also
 be used: @code{#UP}=@code{1}, @code{#DOWN}=@code{-1},
-@code{#LEFT}=@code{-1}, @code{#RIGHT}=@code{1}, @code{#CENTER}=@code{0}.")
+@code{#LEFT}=@code{-1}, @code{#RIGHT}=@code{1},
+@code{#CENTER}=@code{0}.")
      (dot-count ,integer? "The number of dots.")
-     (dot-placement-list ,list? "List 
-consisting of @code{(@var{description} @var{string-number} 
-@var{fret-number} @var{finger-number})} 
-entries used to define fret diagrams.")
+     (dot-negative-kern ,number? "The space to remove between a dot
+and a slash in percent repeat glyphs.  Larger values bring the two
+elements closer together.")
+     (dot-placement-list ,list? "List consisting of
+@code{(@var{description} @var{string-number} @var{fret-number}
+@var{finger-number})} entries used to define fret diagrams.")
      (duration-log ,integer? "The 2-log of the note head duration,
 i.e., @code{0} = whole note, @code{1} = half note, etc.")
 
+
+;;
+;; e
+;;
      (eccentricity ,number? "How asymmetrical to make a slur.
 Positive means move the center to the right.")
      (edge-height ,pair? "A pair of numbers specifying the heights of
@@ -195,34 +221,41 @@ engine is completely oblivious to it.  The values are measured in
 @code{staff-space} units of the staff's @code{StaffSymbol}.")
      (extra-spacing-height ,number-pair? "In the horizontal spacing
 problem, we increase the height of each item by this amount (by adding
-the @q{car} to the bottom of the item and adding the @q{cdr} to the top
-of the item. In order to make a grob infinitely high (to prevent the
-horizontal spacing problem from placing any other grobs above or below
-this grob), set this to @code{(-inf.0 . +inf.0)}.")
+the @q{car} to the bottom of the item and adding the @q{cdr} to the
+top of the item).  In order to make a grob infinitely high (to prevent
+the horizontal spacing problem from placing any other grobs above or
+below this grob), set this to @code{(-inf.0 . +inf.0)}.")
      (extra-spacing-width ,number-pair? "In the horizontal spacing
 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)}.")
-     (flag ,ly:stencil? "A function returning the full flag stencil for
-the @code{Stem}, which is passed to the function as the only argument.
-The default ly:stem::calc-stencil function uses the @code{flag-style}
-property to determine the correct glyph for the
-flag. By providing your own function, you can create arbitrary flags.")
+
+
+;;
+;; f
+;;
+     (flag ,ly:stencil? "A function returning the full flag stencil
+for the @code{Stem}, which is passed to the function as the only
+argument.  The default ly:stem::calc-stencil function uses the
+@code{flag-style} property to determine the correct glyph for the
+flag.  By providing your own function, you can create arbitrary
+flags.")
      (flag-count ,number? "The number of tremolo beams.")
      (flag-style ,symbol? "A symbol determining what style of flag
-glyph is typeset on a @code{Stem}.  Valid options include @code{'()} for
-standard flags, @code{'mensural} and @code{'no-flag}, which switches off 
-the flag.")
+glyph is typeset on a @code{Stem}.  Valid options include @code{'()}
+for standard flags, @code{'mensural} and @code{'no-flag}, which
+switches off the flag.")
      (font-encoding ,symbol? "The font encoding is the broadest
-category for selecting a font.  Options include: @code{fetaMusic},
-@code{fetaNumber}, @code{TeX-text}, @code{TeX-math},
-@code{fetaBraces}, @code{fetaDynamic}.")
+category for selecting a font.  Currently, only lilypond's system
+fonts (Emmentaler and Aybabtu) are using this property.  Available
+values are @code{fetaMusic} (Emmentaler), @code{fetaBraces} (Aybabtu),
+@code{fetaNumber} (Emmentaler), and @code{fetaDynamic} (Emmentaler).")
      (font-family ,symbol? "The font family is the broadest category
 for selecting text fonts.  Options include: @code{sans},
 @code{roman}.")
-     (font-name ,string? "Specifies a file name (without extension)
-of the font to load.  This setting overrides selection using
+     (font-name ,string? "Specifies a file name (without extension) of
+the font to load.  This setting overrides selection using
 @code{font-family}, @code{font-series} and @code{font-shape}.")
      (font-series ,symbol? "Select the series of a font.  Choices
 include @code{medium}, @code{bold}, @code{bold-narrow}, etc.")
@@ -231,8 +264,8 @@ include @code{upright}, @code{italic}, @code{caps}.")
      (font-size ,number? "The font size, compared to the
 @q{normal}@tie{}size.  @code{0}@tie{}is style-sheet's normal size,
 @code{-1} is smaller, @code{+1} is bigger.  Each step of@tie{}1 is
-approximately 12% larger; 6@tie{}steps are exactly a factor@tie{}2 larger.
-Fractional values are allowed.")
+approximately 12% larger; 6@tie{}steps are exactly a factor@tie{}2
+larger.  Fractional values are allowed.")
      (force-hshift ,number? "This specifies a manual shift for notes
 in collisions.  The unit is the note head width of the first voice
 note.  This is used by @rinternals{note-collision-interface}.")
@@ -240,80 +273,100 @@ note.  This is used by @rinternals{note-collision-interface}.")
 signature object.")
      (french-beaming ,boolean? "Use French beaming style for this
 stem.  The stem stops at the innermost beams.")
+     (fret-diagram-details ,list? "An alist of detailed grob
+properties for fret diagrams.  Each alist entry consists of a
+@code{(@var{property} .  @var{value})} pair.  The properties which can
+be included in @code{fret-diagram-details} include the following:
 
-     (fret-diagram-details ,list? "An alist of detailed grob properties
-for fret diagrams.  Each alist entry consists of a
-(@code{property} . @code{value}) pair.
-The properties which can be included in fret-diagram-details
-include the following:
 @itemize @bullet
 @item
-@code{barre-type} -- Type of barre indication used.
-Choices include @code{curved}, @code{straight}, and
-@code{none}.  Default @code{curved}.
+@code{barre-type} -- Type of barre indication used.  Choices include
+@code{curved}, @code{straight}, and @code{none}.  Default
+@code{curved}.
+@item
+@code{capo-thickness} -- Thickness of capo indicator, in multiples of
+fret-space.  Default value@tie{}0.5.
 @item
-@code{dot-color} -- Color of dots.  Options include
-@code{black} and @code{white}.  Default @code{black}.
+@code{dot-color} -- Color of dots.  Options include @code{black} and
+@code{white}.  Default @code{black}.
 @item
-@code{dot-label-font-mag} -- Magnification for font used to
-label fret dots.  Default value 1.
+@code{dot-label-font-mag} -- Magnification for font used to label fret
+dots.  Default value@tie{}1.
 @item
-@code{dot-radius} -- Radius of dots, in terms of fret spaces.  
-Default value 0.425 for labeled dots, 0.25 for unlabeled dots.
+@code{dot-position} -- Location of dot in fret space.  Default 0.6 for
+dots without labels, 0.95-@code{dot-radius} for dots with labels.
+@item
+@code{dot-radius} -- Radius of dots, in terms of fret spaces.  Default
+value 0.425 for labeled dots, 0.25 for unlabeled dots.
 @item
 @code{finger-code} -- Code for the type of fingering indication used.
-Options include @code{none}, @code{in-dot}, and
-@code{below-string}.  Default @code{none} for markup fret diagrams, 
-@code{below-string} for @code{FretBoards} fret diagrams.
+Options include @code{none}, @code{in-dot}, and @code{below-string}.
+Default @code{none} for markup fret diagrams, @code{below-string} for
+@code{FretBoards} fret diagrams.
 @item
-@code{fret-count} -- The number of frets.  Default 4.
+@code{fret-count} -- The number of frets.  Default@tie{}4.
 @item
-@code{fret-label-font-mag} -- The magnification of the font used to label
-the lowest fret number.  Default 0.5
+@code{fret-label-font-mag} -- The magnification of the font used to
+label the lowest fret number.  Default@tie{}0.5.
 @item
-@code{fret-label-vertical-offset} -- The vertical offset of the fret label
-from the fret.  Default -0.2
+@code{fret-label-vertical-offset} -- The offset of the fret label from
+the center of the fret in direction parallel to strings.
+Default@tie{}0.
 @item
 @code{label-dir} -- Side to which the fret label is attached.
-@code{-1}, @code{#LEFT}, or @code{#DOWN} for left or down;
-@code{1}, @code{#RIGHT}, or @code{#UP} for right or up.
-Default @code{#RIGHT}.
+@code{-1}, @code{#LEFT}, or @code{#DOWN} for left or down; @code{1},
+@code{#RIGHT}, or @code{#UP} for right or up.  Default @code{#RIGHT}.
 @item
-@code{mute-string} -- Character string to be used to indicate muted 
-string.  Default \"x\".
+@code{mute-string} -- Character string to be used to indicate muted
+string.  Default @code{\"x\"}.
 @item
 @code{number-type} -- Type of numbers to use in fret label.  Choices
-include @code{roman-lower}, @code{roman-upper}, and @code{arabic}.  Default
-@code{roman-lower}.
+include @code{roman-lower}, @code{roman-upper}, and @code{arabic}.
+Default @code{roman-lower}.
 @item
-@code{open-string} -- Character string to be used to indicate open 
-string.  Default \"o\".
+@code{open-string} -- Character string to be used to indicate open
+string.  Default @code{\"o\"}.
 @item
 @code{orientation} -- Orientation of fret-diagram.  Options include
-@code{normal} and @code{landscape}.  Default @code{normal}.
+@code{normal}, @code{landscape}, and @code{opposing-landscape}.
+Default @code{normal}.
 @item
-@code{string-count} -- The number of strings.  Default 6.
+@code{string-count} -- The number of strings.  Default@tie{}6.
 @item
-@code{string-label-font-mag} -- The magnification of the font used to label 
-fingerings at the string, rather than in the dot.  Default value 0.6.
+@code{string-label-font-mag} -- The magnification of the font used to
+label fingerings at the string, rather than in the dot.  Default value
+0.6 for @code{normal} orientation, 0.5 for @code{landscape} and
+@code{opposing-landscape}.
 @item
-@code{top-fret-thickness} -- The thickness of the top fret line, as a multiple
-of the standard thickness.   Default value 3.
+@code{string-thickness-factor} -- Factor for changing thickness of
+each string in the fret diagram.  Thickness of string @var{k} is given
+by @code{thickness}
+* (1+@code{string-thickness-factor})@tie{}^ (@var{k}-1).
+Default@tie{}0.
 @item
-@code{xo-font-magnification} -- Magnification used for mute and
-open string indicators.  Default value 0.5.
+@code{top-fret-thickness} -- The thickness of the top fret line, as a
+multiple of the standard thickness.  Default value@tie{}3.
 @item
-@code{xo-padding} -- Padding for open and mute indicators from top fret.  
-Default value 0.25.
-@end itemize")      ;"
-
-
-    ;; ugh: double, change.
-     (full-length-padding ,number? "How much padding to use at the right side of a full-length tuplet bracket.")
-     (full-length-to-extent ,boolean? "Run to the extent of the column for a full-length tuplet bracket.")
-     
+@code{xo-font-magnification} -- Magnification used for mute and open
+string indicators.  Default value@tie{}0.5.
+@item
+@code{xo-padding} -- Padding for open and mute indicators from top
+fret.  Default value 0.25.
+@end itemize")
+     ;; ugh: double, change.
+     (full-length-padding ,number? "How much padding to use at the
+right side of a full-length tuplet bracket.")
+     (full-length-to-extent ,boolean? "Run to the extent of the column
+for a full-length tuplet bracket.")
+     (full-measure-extra-space ,number? "Extra space that is allocated
+at the beginning of a measure with only one note.  This property is
+read from the NonMusicalPaperColumn that begins the measure.")
      (full-size-change ,boolean? "Don't make a change clef smaller.")
 
+
+;;
+;; g
+;;
      (gap ,ly:dimension? "Size of a gap in a variable symbol.")
      (gap-count ,integer? "Number of gapped beams for tremolo.")
      (glyph ,string? "A string determining what @q{style} of glyph is
@@ -322,42 +375,46 @@ property.")
      (glyph-name-alist ,list? "An alist of key-string pairs.")
      (grow-direction ,ly:dir? "Crescendo or decrescendo?")
 
+
+;;
+;; h
+;;
      (hair-thickness ,number? "Thickness of the thin line in a bar
 line.")
      (harp-pedal-details ,list? "An alist of detailed grob properties
 for harp pedal diagrams.  Each alist entry consists of a
-(@code{property} . @code{value}) pair.
-The properties which can be included in harp-pedal-details
-include the following:
+@code{(@var{property} . @var{value})} pair.  The properties which can
+be included in harp-pedal-details include the following:
+
 @itemize @bullet
 @item
-@code{box-offset} -- Vertical shift of the center of flat / sharp pedal
-boxes above / below the horizontal line. Default value 0.8.
+@code{box-offset} -- Vertical shift of the center of flat/sharp pedal
+boxes above/below the horizontal line.  Default value@tie{}0.8.
 @item
-@code{box-width} -- Width of each pedal box. Default value 0.4.
+@code{box-width} -- Width of each pedal box.  Default value@tie{}0.4.
 @item
-@code{box-height} -- Height of each pedal box. Default value 1.0.
+@code{box-height} -- Height of each pedal box.  Default value@tie{}1.0.
 @item
-@code{space-before-divider} -- Space between boxes before the first divider
-(so that the diagram can be made symmetric). Default value 0.8.
+@code{space-before-divider} -- Space between boxes before the first
+divider (so that the diagram can be made symmetric).  Default
+value@tie{}0.8.
 @item
-@code{space-after-divider} -- Space between boxes after the first divider.
-Default value 0.8.
+@code{space-after-divider} -- Space between boxes after the first
+divider.  Default value@tie{}0.8.
 @item
-@code{circle-thickness} -- Thickness (in unit of the line-thickness) of the
-ellipse around circled pedals. Default value 0.5.
+@code{circle-thickness} -- Thickness (in unit of the line-thickness)
+of the ellipse around circled pedals.  Default value@tie{}0.5.
 @item
-@code{circle-x-padding} -- Padding in X direction of the ellipse around
-circled pedals. Default value 0.15.
+@code{circle-x-padding} -- Padding in X direction of the ellipse
+around circled pedals.  Default value 0.15.
 @item
-@code{circle-y-padding} -- Padding in Y direction of the ellipse around
-circled pedals. Default value 0.2.
+@code{circle-y-padding} -- Padding in Y direction of the ellipse
+around circled pedals.  Default value@tie{}0.2.
 @end itemize")
-
      (head-direction ,ly:dir? "Are the note heads left or right in a
 semitie?")
-     (height ,ly:dimension? "Height of an object in
-@code{staff-space} units.")
+     (height ,ly:dimension? "Height of an object in @code{staff-space}
+units.")
      (height-limit ,ly:dimension? "Maximum slur height: The longer the
 slur, the closer it is to this height.")
      (horizontal-shift ,integer? "An integer that identifies ranking
@@ -366,15 +423,22 @@ of @code{NoteColumn}s for horizontal shifting.  This is used by
      (horizontal-skylines ,ly:skyline-pair? "Two skylines, one to the
 left and one to the right of this grob.")
 
+
+;;
+;; i
+;;
      (ignore-collision ,boolean? "If set, don't do note collision
 resolution on this @code{NoteColumn}.")
      (implicit ,boolean? "Is this an implicit bass figure?")
      (inspect-index ,integer? "If debugging is set, set beam and slur
 configuration to this index, and print the respective scores.")
-     (inspect-quants ,number-pair? "If debugging is set,
-set beam and slur quants to this position, and print the respective
-scores.")
+     (inspect-quants ,number-pair? "If debugging is set, set beam and
+slur quants to this position, and print the respective scores.")
+
 
+;;
+;; k
+;;
      (keep-fixed-while-stretching ,boolean? "A grob with this property
 set to true is fixed relative to the staff above it when systems are
 stretched.")
@@ -387,10 +451,14 @@ bar lines, this is the amount of space after a thick line.")
 correction amount for kneed beams.  Set between @code{0} for no
 correction and @code{1} for full correction.")
 
+
+;;
+;; l
+;;
      (labels ,list? "List of labels (symbols) placed on a column")
-     (layer ,integer? "The output layer (a value between 0 and@tie{}2:
-Layers define the order of printing objects.  Objects in lower layers
-are overprinted by objects in higher layers.")
+     (layer ,integer? "The output layer (a value between 0
+and@tie{}2): Layers define the order of printing objects.  Objects in
+lower layers are overprinted by objects in higher layers.")
      (ledger-line-thickness ,number-pair? "The thickness of ledger
 lines.  It is the sum of 2@tie{}numbers: The first is the factor for
 line thickness, and the second for staff space.  Both contributions
@@ -405,8 +473,8 @@ unbeamed stems.")
 determining ledger lines and stem lengths.")
      (line-break-penalty ,number? "Penalty for a line break at this
 column.  This affects the choices of the line breaker; it avoids a
-line break at a column with a positive penalty and prefers a line break
-at a column with a negative penalty.")
+line break at a column with a positive penalty and prefers a line
+break at a column with a negative penalty.")
      (line-break-permission ,symbol? "Instructs the line breaker on
 whether to put a line break at this column.  Can be @code{force} or
 @code{allow}.")
@@ -416,9 +484,12 @@ if this column is the start of a system.")
      (line-positions ,list? "Vertical positions of staff lines.")
      (line-thickness ,number? "The thickness of the tie or slur
 contour.")
-     (long-text ,markup? "Text markup.  See @ruser{Formatting
-text}.")
+     (long-text ,markup? "Text markup.  See @ruser{Formatting text}.")
 
+
+;;
+;; m
+;;
      (max-beam-connect ,integer? "Maximum number of beams to connect
 to beams from this stem.  Further beams are typeset as beamlets.")
      (max-stretch ,number? "The maximum amount that this
@@ -435,9 +506,9 @@ normal notation for some types of polyphonic music.
 @code{merge-differently-dotted} only applies to opposing stem
 directions (i.e., voice 1 &@tie{}2).")
      (merge-differently-headed ,boolean? "Merge note heads in
-collisions, even if they have different note heads.  The
-smaller of the two heads is rendered invisible.  This is used in
-polyphonic guitar notation.  The value of this setting is used by
+collisions, even if they have different note heads.  The smaller of
+the two heads is rendered invisible.  This is used in polyphonic
+guitar notation.  The value of this setting is used by
 @rinternals{note-collision-interface}.
 
 @code{merge-differently-headed} only applies to opposing stem
@@ -458,15 +529,19 @@ as fraction of note head size.")
      (minimum-space ,ly:dimension? "Minimum distance that the victim
 should move (after padding).")
 
+
+;;
+;; n
+;;
      (neutral-direction ,ly:dir? "Which direction to take in the
 center of the staff.")
      (neutral-position ,number? "Position (in half staff spaces) where
 to flip the direction of custos stem.")
      (next ,ly:grob? "Object that is next relation (e.g., the lyric
-syllable following an extender.")
+syllable following an extender).")
      (no-alignment ,boolean? "If set, don't place this grob in a
-@code{VerticalAlignment}; rather, place it using its own @code{Y-offset}
-callback.")
+@code{VerticalAlignment}; rather, place it using its own
+@code{Y-offset} callback.")
      (no-ledgers ,boolean? "If set, don't draw ledger lines on this
 object.")
      (no-stem-extend ,boolean? "If set, notes with ledger lines do not
@@ -477,6 +552,10 @@ get stems extending to the middle staff line.")
      (note-names ,vector? "Vector of strings containing names for
 easy-notation note heads.")
 
+
+;;
+;; o
+;;
      (outside-staff-horizontal-padding ,number? "By default, an
 outside-staff-object can be placed so that is it very close to another
 grob horizontally.  If this property is set, the outside-staff-object
@@ -485,18 +564,24 @@ is raised so that it is not so close to its neighbor.")
 this grob and the staff when spacing according to
 @code{outside-staff-priority}.")
      (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
+outside the staff in such a way as to avoid all collisions.  In case
+of a potential collision, the grob with the smaller
 @code{outside-staff-priority} is closer to the staff.")
 
+
+;;
+;; p
+;;
      (packed-spacing ,boolean? "If set, the notes are spaced as
 tightly as possible.")
      (padding ,ly:dimension? "Add this much extra space between
 objects that are next to each other.")
+     (padding-pairs ,list? "An alist mapping @code{(@var{name}
+. @var{name})} to distances.")
      (page-break-penalty ,number? "Penalty for page break at this
 column.  This affects the choices of the page breaker; it avoids a
-page break at a column with a positive penalty and prefers a page break
-at a column with a negative penalty.")
+page break at a column with a positive penalty and prefers a page
+break at a column with a negative penalty.")
      (page-break-permission ,symbol? "Instructs the page breaker on
 whether to put a page break at this column.  Can be @code{force} or
 @code{allow}.")
@@ -510,18 +595,22 @@ whether to put a page turn at this column.  Can be @code{force} or
      (parenthesized ,boolean? "Parenthesize this grob.")
      (positions ,number-pair? "Pair of staff coordinates
 @code{(@var{left} . @var{right})}, where both @var{left} and
-@var{right} are in @code{staff-space} units of the current staff.
-For slurs, this value selects which slur candidate to use; if
-extreme positions are requested, the closest one is taken.")
+@var{right} are in @code{staff-space} units of the current staff.  For
+slurs, this value selects which slur candidate to use; if extreme
+positions are requested, the closest one is taken.")
      (prefer-dotted-right ,boolean? "For note collisions, prefer to
 shift dotted up-note to the right, rather than shifting just the
 dot.")
 
+
+;;
+;; r
+;;
      (ratio ,number? "Parameter for slur shape.  The higher this
 number, the quicker the slur attains its @code{height-limit}.")
      (remove-empty ,boolean? "If set, remove group if it contains no
 interesting items.")
-     (remove-first ,boolean? "Remove the first staff of a orchestral
+     (remove-first ,boolean? "Remove the first staff of an orchestral
 score?")
      (restore-first ,boolean? "Print a natural before the
 accidental.")
@@ -535,6 +624,10 @@ of an object (e.g., between note and its accidentals).")
 what point to rotate around.  For example, @code{#'(45 0 0)} rotates
 by 45 degrees around the center of this object.")
 
+
+;;
+;; s
+;;
      (same-direction-correction ,number? "Optical correction amount
 for stems that are placed in tight configurations.  This amount is
 used for stems with the same direction to compensate for note head to
@@ -547,6 +640,11 @@ value @code{-1} means left aligned, @code{0}@tie{}centered, and
 values may also be specified.")
      (self-alignment-Y ,number? "Like @code{self-alignment-X} but for
 the Y@tie{}axis.")
+     (toward-stem-shift ,number? "Amount by which scripts are shifted
+toward the stem if their direction coincides with the stem direction.
+@code{0.0} means keep the default position (centered on the note
+head), @code{1.0} means centered on the stem.  Interpolated values are
+possible.")
      (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.")
@@ -559,13 +657,21 @@ shortest note playing here.")
      (shortest-starter-duration ,ly:moment? "The duration of the
 shortest note that starts here.")
      (side-axis ,number? "If the value is @code{#X} (or
-equivalently@tie{}@code{0}), the object is placed horizontally next
-to the other object.  If the value is @code{#Y} or@tie{}@code{1}, it
-is placed vertically.")
+equivalently@tie{}@code{0}), the object is placed horizontally next to
+the other object.  If the value is @code{#Y} or@tie{}@code{1}, it is
+placed vertically.")
      (side-relative-direction ,ly:dir? "Multiply direction of
 @code{direction-source} with this to get the direction of this
 object.")
      (size ,number? "Size of object, relative to standard size.")
+     (skyline-horizontal-padding ,number? "For determining the
+vertical distance between two staves, it is possible to have a
+configuration which would result in a tight interleaving of grobs from
+the top staff and the bottom staff.  The larger this parameter is, the
+farther apart the staves are placed in such a configuration.")
+     (slash-negative-kern ,number? "The space to remove between
+slashes in percent repeat glyphs.  Larger values bring the two
+elements closer together.")
      (slope ,number? "The slope of this object.")
      (slur-padding ,number? "Extra distance between slur and script.")
      (space-alist ,list? "A table that specifies distances between
@@ -576,8 +682,9 @@ of spacing tuples: @code{(@var{break-align-symbol} @var{type}
      (space-to-barline ,boolean? "If set, the distance between a note
 and the following non-musical column will be measured to the bar line
 instead of to the beginning of the non-musical column.  If there is a
-clef change followed by a bar line, for example, this means that we will
-try to space the non-musical column as though the clef is not there.")
+clef change followed by a bar line, for example, this means that we
+will try to space the non-musical column as though the clef is not
+there.")
      (spacing-increment ,number? "Add this much space for a doubled
 duration.  Typically, the width of a note head.  See also
 @rinternals{spacing-spanner-interface}.")
@@ -592,8 +699,8 @@ baselines.")
 staff spaces, counted from the middle line.")
      (staff-space ,ly:dimension? "Amount of space between staff lines,
 expressed in global @code{staff-space}.")
-     (stem-attachment ,number-pair? "An @code{(@var{x} . @var{y})} pair
-where the stem attaches to the notehead.")
+     (stem-attachment ,number-pair? "An @code{(@var{x} . @var{y})}
+pair where the stem attaches to the notehead.")
      (stem-end-position ,number? "Where does the stem end (the end is
 opposite to the support-head)?")
      ;;[TODO: doco]
@@ -601,15 +708,16 @@ opposite to the support-head)?")
 stems that are placed in tight configurations.  For opposite
 directions, this amount is the correction for two normal sized stems
 that overlap completely.")
-     (stemlet-length ,number? "How long should a stem over a rest
-be?")
+     (stemlet-length ,number? "How long should be a stem over a
+rest?")
      (stencil ,ly:stencil? "The symbol to print.")
      (stencils ,list? "Multiple stencils, used as intermediate
 value.")
      (strict-grace-spacing ,boolean? "If set, main notes are spaced
-normally, then grace notes are put left of the musical columns fot the main notes.")
-     (strict-note-spacing ,boolean? "If set, unbroken columns
-with non-musical material (clefs, bar lines, etc.) are not spaced
+normally, then grace notes are put left of the musical columns fot the
+main notes.")
+     (strict-note-spacing ,boolean? "If set, unbroken columns with
+non-musical material (clefs, bar lines, etc.) are not spaced
 separately, but put before musical columns.")
      (stroke-style ,string? "Set to @code{\"grace\"} to turn stroke
 through flag on.")
@@ -617,6 +725,10 @@ through flag on.")
 typeset.  Valid choices depend on the @code{stencil} callback reading
 this property.")
 
+
+;;
+;; t
+;;
      (text ,markup? "Text markup.  See @ruser{Formatting text}.")
 ;;FIXME -- Should both be the same?
      (text-direction ,ly:dir? "This controls the ordering of the
@@ -629,8 +741,6 @@ should use @code{LEFT}.")
      (thin-kern ,number? "The space after a hair-line in a bar line.")
      (threshold ,number-pair? "@code{(@var{min} . @var{max})}, where
 @var{min} and @var{max} are dimensions in staff space.")
-     (to-barline ,boolean? "If true, the spanner will stop at the bar line
-just before it would otherwise stop.")
      (tie-configuration ,list? "List of @code{(@var{position} .
 @var{dir})} pairs, indicating the desired tie configuration, where
 @var{position} is the offset from the center of the staff in staff
@@ -638,17 +748,31 @@ space and @var{dir} indicates the direction of the tie
 (@code{1}=>up, @code{-1}=>down, @code{0}=>center).  A non-pair entry
 in the list causes the corresponding tie to be formatted
 automatically.")
+     (to-barline ,boolean? "If true, the spanner will stop at the bar
+line just before it would otherwise stop.")
      (transparent ,boolean? "This makes the grob invisible.")
 
+
+;;
+;; u
+;;
      (uniform-stretching ,boolean? "If set, items stretch
 proportionally to their durations.  This looks better in complex
 polyphonic patterns.")
      (used ,boolean? "If set, this spacing column is kept in the
 spacing problem.")
 
+
+;;
+;; v
+;;
      (vertical-skylines ,ly:skyline-pair? "Two skylines, one above and
 one below this grob.")
 
+
+;;
+;; w
+;;
      (when ,ly:moment? "Global time step associated with this column
 happen?")
      (width ,ly:dimension? "The width of a grob measured in staff
@@ -656,12 +780,31 @@ space.")
      (word-space ,ly:dimension? "Space to insert between words in
 texts.")
 
+
+;;
+;; x
+;;
+     (X-extent ,number-pair? "Hard coded extent in X@tie{}direction.")
+     (X-offset ,number? "The horizontal amount that this object is
+moved relative to its X-parent.")
+
+
+;;
+;; y
+;;
+     (Y-extent ,number-pair? "Hard coded extent in Y@tie{}direction.")
+     (Y-offset ,number? "The vertical amount that this object is moved
+relative to its Y-parent.")
+
+;;
+;; z
+;;
      (zigzag-length ,ly:dimension? "The length of the lines of a
 zigzag, relative to @code{zigzag-width}.  A value of@tie{}@code{1}
 gives 60-degree zigzags.")
      (zigzag-width ,ly:dimension? "The width of one zigzag squiggle.
-This number is adjusted slightly so that the glissando line can
-be constructed from a whole number of squiggles.")
+This number is adjusted slightly so that the glissando line can be
+constructed from a whole number of squiggles.")
      )))
 
 
@@ -683,7 +826,7 @@ be constructed from a whole number of squiggles.")
 
    `(
      ;;;;;;;;;;;;;;;;
-     ;; grobs & grob arrays. (alphabetical)
+     ;; grobs & grob arrays.  (alphabetical)
      (X-common ,ly:grob? "Common reference point for axis group.")
 
      (Y-common ,ly:grob? "See @code{X-common}.")
@@ -751,9 +894,6 @@ columns.")
      (note-columns ,pair? "A list of @code{NoteColumn} grobs.")
      (note-head ,ly:grob? "A single note head.")
      (note-heads ,ly:grob-array? "A list of note head grobs.")
-
-     (padding-pairs ,list? "An alist mapping @code{(@var{name} . @var{name})}
-to distances.")
      (pedal-text ,ly:grob? "A pointer to the text of a mixed-style piano
 pedal.")
      (pure-Y-common ,ly:grob? "A cache of the
@@ -792,14 +932,12 @@ notes that the arpeggio has to be before.")
 
      ;;;;;;;;;;;;;;;;
      ;; other
-     (begin-of-line-visible ,boolean? "Used for marking @code{ChordNames}
-that should only show changes.")
+     (begin-of-line-visible ,boolean? "Set to make @code{ChordName} or 
+@code{FretBoard} be visible only at beginning of line or at 
+chord changes.")
 
      (cause ,scheme? "Any kind of causation objects (i.e., music, or perhaps
 translator) that was the cause for this grob.")
-     (circled-tip ,boolean? "Put a circle at start/end of hairpins (al/del
-niente).")
-
      (delta-position ,number? "The vertical position difference.")
      (details ,list? "Alist of parameters for detailed grob behavior.
 
@@ -812,7 +950,7 @@ useful clues.")
      (font ,ly:font-metric? "A cached font metric object.")
 
      (head-width ,ly:dimension? "The width of this ligature head.")
-     
+
      (ideal-distances ,list? "@code{(@var{obj} . (@var{dist} .
 @var{strength}))} pairs.")
      (interfaces ,list? "A list of symbols indicating the interfaces
@@ -824,7 +962,7 @@ supported by this object.  It is initialized from the @code{meta} field.")
 entries @code{name} and @code{interfaces}.")
      (minimum-distances ,list? "A list of rods that have the format
 @code{(@var{obj} . @var{dist})}.")
-     
+
      (positioning-done ,boolean? "Used to signal that a positioning element
 did its job.  This ensures that a positioning is only done once.")
      (pure-Y-extent ,number-pair? "The estimated height of a system.")
@@ -835,18 +973,13 @@ debugging.")
 to be within staff spaces.")
      (quantized-positions ,number-pair? "The beam positions after
 quanting.")
-     
+
      (script-stencil ,pair? "A pair @code{(@var{type} . @var{arg})} which
 acts as an index for looking up a @code{Stencil} object.")
      (shorten ,ly:dimension? "The amount of space that a stem is shortened.
 Internally used to distribute beam shortening over stems.")
      (skyline-distance ,number? "The distance between this staff and the
 next one, as determined by a skyline algorithm.")
-     (skyline-horizontal-padding ,number? "For determining the vertical
-distance between two staves, it is possible to have a configuration which
-would result in a tight interleaving of grobs from the top staff and the
-bottom staff.  The larger this parameter is, the farther apart the staves
-are placed in such a configuration.")
      (stem-info ,pair? "A cache of stem parameters.")
 
      (use-breve-rest ,boolean? "Use breve rests for measures longer
index 975d42582ffbd2544bcba886724cbe5dbf63f8f3..adea7e63d6c21f359a76c63c772a9c044aae5b59 100644 (file)
@@ -2,7 +2,7 @@
 ;;;;
 ;;;;  source file of the GNU LilyPond music typesetter
 ;;;;
-;;;; (c) 1998--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+;;;; (c) 1998--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 ;;;;                 Jan Nieuwenhuizen <janneke@gnu.org>
 
 ;;;; distances are given in line-thickness (thicknesses) and
        (X-offset . ,(grob::calc-property-by-copy 'X-offset)) 
        (Y-offset . ,(grob::calc-property-by-copy 'Y-offset)) 
        (meta . ((class . Item)
-                (interfaces . (text-interface
+                (interfaces . (balloon-interface
+                               text-interface
                                font-interface))))))
     (BarLine
      . (
                        ,(ly:make-simple-closure
                          (list ly:self-alignment-interface::x-aligned-on-self)))))
 
-       (self-alignment-X . 1)
+       (self-alignment-X . ,RIGHT)
 
        ;; want the bar number before the clef at line start. 
        (break-align-symbols . (left-edge staff-bar))
                 (object-callbacks . ((normal-stems . ,ly:beam::calc-normal-stems))) 
                 (interfaces . (staff-symbol-referencer-interface
                                unbreakable-spanner-interface
-                               beam-interface))))))
+                               beam-interface
+                               font-interface))))))
 
     (BendAfter
      . (
                        (first-note . (minimum-fixed-space . 0.0))
                        (right-edge . (extra-space . 0.1))))
        (meta . ((class . Item)
-                (interfaces
-                 . (custos-interface
-                    staff-symbol-referencer-interface
-                    font-interface
-                    break-aligned-interface))))))
+                (interfaces  . (custos-interface
+                                staff-symbol-referencer-interface
+                                font-interface
+                                break-aligned-interface))))))
 
     (DotColumn
      . (
        (stencil . ,ly:percent-repeat-item-interface::double-percent)
        (non-musical . #t)
        (slope . 1.0)
+       (dot-negative-kern . 0.75)
+       (slash-negative-kern . 1.6)
        (font-encoding . fetaMusic)
        (width . 2.0)
        (thickness . 0.48)
 
     (FretBoard
      . ((stencil . ,fret-board::calc-stencil)
+       (after-line-breaking . ,ly:chord-name::after-line-breaking)
        (fret-diagram-details . ((finger-code . below-string)))
        (meta . ((class . Item)
                 (interfaces . (fret-diagram-interface
+                               rhythmic-grob-interface
+                                chord-name-interface
                                font-interface))))))
 
 
        (shortest-duration-space . 1.6)
        (meta . ((class . Spanner)
                 (interfaces . (grace-spacing-interface
-                               
                                spacing-options-interface
                                spanner-interface))))))
+
     (GridPoint
      . (
        (X-extent . (0 . 0))
        (meta . ((class . Spanner)
                 (interfaces . (system-start-text-interface
                                side-position-interface
+                               self-alignment-interface
                                font-interface))))))
 
     (InstrumentSwitch
        (side-axis . ,Y)
        (self-alignment-X . ,LEFT)
        (outside-staff-priority . 500)
-       (extra-spacing-width . '(+inf.0 . -inf.0))
+       (extra-spacing-width . (+inf.0 . -inf.0))
        (meta . ((class . Item)
                 (interfaces . (side-position-interface
+                               self-alignment-interface
+                               text-interface
                                font-interface))))))
 
     
        (meta . ((class . Item)
                 (interfaces . (key-cancellation-interface
                                key-signature-interface
+                               staff-symbol-referencer-interface
                                font-interface
                                break-aligned-interface))))))
 
        (non-musical . #t)
        (meta . ((class . Item)
                 (interfaces . (key-signature-interface
+                               staff-symbol-referencer-interface
                                font-interface
                                break-aligned-interface))))))
     
        (non-musical . #t)
        (line-break-permission . allow)
        (page-break-permission . allow)
+       (full-measure-extra-space . 1.0)
 
        ;; debugging stuff: print column number.
        ;;               (font-size . -6) (font-name . "sans")  (Y-extent . #f)
                 (interfaces . (paper-column-interface
                                axis-group-interface
                                separation-item-interface
-                               spaceable-grob-interface))))))
+                               spaceable-grob-interface
+                               font-interface))))))
 
     (NoteCollision
      . (
                                font-interface
                                note-head-interface
                                ledgered-interface
-                               staff-symbol-referencer-interface))))))
+                               staff-symbol-referencer-interface
+                               gregorian-ligature-interface
+                               mensural-ligature-interface
+                               vaticana-ligature-interface))))))
 
     (NoteSpacing
      . (
                 (interfaces . (paper-column-interface
                                separation-item-interface
                                axis-group-interface
-                               spaceable-grob-interface))))))
+                               spaceable-grob-interface
+                               font-interface))))))
 
     (ParenthesesItem
      . ((stencil . ,parentheses-item::print)
        (stencil . ,ly:multi-measure-rest::percent)
        (slope . 1.0)
        (thickness . 0.48)
+       (dot-negative-kern . 0.75)
        (font-encoding . fetaMusic)
        (meta . ((class . Spanner)
                 (interfaces . (multi-measure-rest-interface
                                font-interface
-                               percent-repeat-interface
-                               ))))))
+                               percent-repeat-interface))))))
 
     (PercentRepeatCounter
      . (
        (horizontal-skylines . ,ly:separation-item::calc-skylines)
        (stencil . ,ly:separation-item::print)
        (meta . ((class . Item)
-                (interfaces . (
-                               separation-item-interface))))))
+                (interfaces . (separation-item-interface))))))
 
     (Slur
-     . ((details . ,default-slur-details)
+     . (
+       (details . ,default-slur-details)
        (control-points . ,ly:slur::calc-control-points)
        (direction . ,ly:slur::calc-direction)
        (springs-and-rods . ,ly:spanner::set-spacing-rods)
        
        (base-shortest-duration . ,(ly:make-moment 3 16))
        (meta . ((class . Spanner)
-                (interfaces . (
-                               spacing-options-interface                               
+                (interfaces . (spacing-options-interface
                                spacing-spanner-interface))))))
 
     (SpanBar
        (thickness . 1.3)
        (cross-staff . ,ly:stem::calc-cross-staff)
        (flag . ,ly:stem::calc-flag)
+       (beamlet-default-length . (1.1 . 1.1))
+       (beamlet-max-length-proportion . (0.75 . 0.75))
        (details
         . (
            ;; 3.5 (or 3 measured from note head) is standard length
-           ;; 32nd, 64th flagged stems should be longer
-           (lengths . (3.5 3.5 3.5 4.5 5.0))
+           ;; 32nd, 64th, 128th flagged stems should be longer
+           (lengths . (3.5 3.5 3.5 4.5 5.0 6.0))
 
            ;; FIXME.  3.5 yields too long beams (according to Ross and
            ;; looking at Baerenreiter examples) for a number of common
        (stem-attachment . (0.0 . 1.35))
        (font-series . bold)
        (meta . ((class . Item)
-                (interfaces
-                 . (rhythmic-head-interface
-                    font-interface rhythmic-grob-interface
-                    note-head-interface
-                    staff-symbol-referencer-interface
-                    text-interface))))))
+                (interfaces  . (rhythmic-head-interface
+                                font-interface
+                                rhythmic-grob-interface
+                                note-head-interface
+                                staff-symbol-referencer-interface
+                                text-interface))))))
 
     (TextScript
      . (
                                text-interface
                                instrument-specific-markup-interface
                                side-position-interface
+                               self-alignment-interface
                                font-interface))))))
 
     (TextSpanner
                                   ))
                          (right . ((Y . 0)
                                    (padding . 0.25)
-                                  ))
+                                   ))
                          ))
        (stencil . ,ly:line-spanner::print)
 
        (meta . ((class . Spanner)
                 (interfaces . (line-spanner-interface
+                               line-interface
                                side-position-interface
                                font-interface))))))
 
index 32053cce2913e76b1a71ba2f5eab5047362ef809..e9537744660d4b3623341c44f27c1b716f834d4b 100644 (file)
@@ -2,7 +2,7 @@
 ;;;;
 ;;;;  source file of the GNU LilyPond music typesetter
 ;;;; 
-;;;; (c) 2000--2007  Han-Wen Nienhuys <hanwen@xs4all.nl>
+;;;; (c) 2000--2009  Han-Wen Nienhuys <hanwen@xs4all.nl>
 ;;;;                  Jan Nieuwenhuizen <janneke@gnu.org>
 
 
@@ -466,60 +466,27 @@ Inline an EPS image.  The image is scaled along @var{axis} to
   ()
   "
 @cindex inserting PostScript directly into text
-
 This inserts @var{str} directly into the output as a PostScript
-command string.  Due to technicalities of the output backends,
-different scales should be used for the @TeX{} and PostScript backend,
-selected with @code{-f}. 
-
-For the @TeX{} backend, the following string prints a rotated text
-
-@example
-0 0 moveto /ecrm10 findfont 
-1.75 scalefont setfont 90 rotate (hello) show
-@end example
-
-@noindent
-The magical constant 1.75 scales from LilyPond units (staff spaces) to
-@TeX{} dimensions.
-
-For the postscript backend, use the following
-
-@example
-gsave /ecrm10 findfont 
- 10.0 output-scale div 
- scalefont setfont 90 rotate (hello) show grestore 
-@end example
+command string.
 
 @lilypond[verbatim,quote]
-eyeglassesps = #\"
+ringsps = #\"
   0.15 setlinewidth
-  -0.9 0 translate
-  1.1 1.1 scale
-  1.2 0.7 moveto
-  0.7 0.7 0.5 0 361 arc
-  stroke
-  2.20 0.70 0.50 0 361 arc
-  stroke
-  1.45 0.85 0.30 0 180 arc
+  0.9 0.6 moveto
+  0.4 0.6 0.5 0 361 arc
   stroke
-  0.20 0.70 moveto
-  0.80 2.00 lineto
-  0.92 2.26 1.30 2.40 1.15 1.70 curveto
+  1.0 0.6 0.5 0 361 arc
   stroke
-  2.70 0.70 moveto
-  3.30 2.00 lineto
-  3.42 2.26 3.80 2.40 3.65 1.70 curveto
-  stroke\"
+  \"
 
-eyeglasses = \\markup {
-  \\with-dimensions #'(0 . 4.4) #'(0 . 2.5)
-  \\postscript #eyeglassesps
+rings = \\markup {
+  \\with-dimensions #'(-0.2 . 1.6) #'(0 . 1.2)
+  \\postscript #ringsps
 }
 
 \\relative c'' {
-  c2^\\eyeglasses
-  a2_\\eyeglasses
+  c2^\\rings
+  a2_\\rings
 }
 @end lilypond"
   ;; FIXME
@@ -2601,6 +2568,36 @@ figured bass notation.
 @end lilypond"
   (slashed-digit-internal layout props num #f font-size thickness))
 
+;; eyeglasses
+(define eyeglassesps 
+     "0.15 setlinewidth
+      -0.9 0 translate
+      1.1 1.1 scale
+      1.2 0.7 moveto
+      0.7 0.7 0.5 0 361 arc
+      stroke
+      2.20 0.70 0.50 0 361 arc
+      stroke
+      1.45 0.85 0.30 0 180 arc
+      stroke
+      0.20 0.70 moveto
+      0.80 2.00 lineto
+      0.92 2.26 1.30 2.40 1.15 1.70 curveto
+      stroke
+      2.70 0.70 moveto
+      3.30 2.00 lineto
+      3.42 2.26 3.80 2.40 3.65 1.70 curveto
+      stroke")
+
+(define-builtin-markup-command (eyeglasses layout props) () other ()
+  "Prints out eyeglasses, indicating strongly to look at the conductor.
+@lilypond[verbatim,quote]
+\\markup { \\eyeglasses }
+@end lilypond"
+  (interpret-markup layout props
+    (make-with-dimensions-markup '(-0.55 . 2.9) '(0.4 . 2.4)
+      (make-postscript-markup eyeglassesps))))
+
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; the note command.
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
index e7b258dfed37fd15c0538b30ad01858a170ab5d6..f76b335af2d3a0ae95dcd7275a313c842f0faec8 100644 (file)
@@ -1,7 +1,7 @@
 ;;; define-music-display-methods.scm -- data for displaying music
 ;;; expressions using LilyPond notation.
 ;;;
-;;; (c) 2005--2007 Nicolas Sceaux  <nicolas.sceaux@free.fr>
+;;; (c) 2005--2009 Nicolas Sceaux  <nicolas.sceaux@free.fr>
 ;;;
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 (define-span-event-display-method CrescendoEvent (event parser) #f "\\<" "\\!")
 (define-span-event-display-method DecrescendoEvent (event parser) #f "\\>" "\\!")
 (define-span-event-display-method PhrasingSlurEvent (event parser) #f "\\(" "\\)")
-(define-span-event-display-method SustainEvent (event parser) #f "\\sustainDown" "\\sustainUp")
-(define-span-event-display-method SostenutoEvent (event parser) #f "\\sostenutoDown" "\\sostenutoUp")
+(define-span-event-display-method SustainEvent (event parser) #f "\\sustainOn" "\\sustainOff")
+(define-span-event-display-method SostenutoEvent (event parser) #f "\\sostenutoOn" "\\sostenutoOff")
 (define-span-event-display-method TextSpanEvent (event parser) #f "\\startTextSpan" "\\stopTextSpan")
 (define-span-event-display-method TrillSpanEvent (event parser) #f "\\startTrillSpan" "\\stopTrillSpan")
 (define-span-event-display-method StaffSpanEvent (event parser) #f "\\startStaff" "\\stopStaff")
@@ -576,7 +576,7 @@ Otherwise, return #f."
 
 (define-display-method RelativeOctaveCheck (octave parser)
   (let ((pitch (ly:music-property octave 'pitch)))
-    (format #f "\\octave ~a~a"
+    (format #f "\\octaveCheck ~a~a"
            (note-name->lily-string pitch parser)
            (octave->lily-string pitch))))
 
index 357dd73f04f4d4fbfb6bb50c149556bfa3d81642..c89a519576f82e2945ba3178b8c842f293df20d7 100644 (file)
@@ -2,7 +2,7 @@
 ;;;;
 ;;;;  source file of the GNU LilyPond music typesetter
 ;;;;
-;;;; (c) 1998--2007  Han-Wen Nienhuys <hanwen@xs4all.nl>
+;;;; (c) 1998--2009  Han-Wen Nienhuys <hanwen@xs4all.nl>
 ;;;;                 Jan Nieuwenhuizen <janneke@gnu.org>
 
 (define (music-property-description symbol type? description)
index 3bad4d832c451ff54d68cc74b920e1a640a1db38..c454cfd3a61a07b1ae33dea76393f3237cf3f15c 100644 (file)
@@ -2,7 +2,7 @@
 ;;;;
 ;;;;  source file of the GNU LilyPond music typesetter
 ;;;;
-;;;; (c) 1998--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+;;;; (c) 1998--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 ;;;;                Jan Nieuwenhuizen <janneke@gnu.org>
 
 ;; TODO: should link back into user manual.
index 132686ce47243588f0917d268243931a361fc937..2e816ccaa2fff4846138ac9e62fe5e9c91c3d9c2 100644 (file)
@@ -3,7 +3,7 @@
 ;;
 ;; source file of the GNU LilyPond music typesetter
 ;;
-;; (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+;; (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 ;;
 
 (map ly:register-stencil-expression
@@ -46,7 +46,7 @@
 ;; TODO:
 ;;  - generate this list by registering the output-backend-commands
 ;;    output-backend-commands should have docstrings.
-;;  - remove hard copies in output-ps output-tex
+;;  - remove hard copies in output-ps
 
 (define-public (ly:all-output-backend-commands)
   "Return list of output backend commands."
index c53da4680a80e4149b117722cfceec3ca3907b55..21ed3a93f65597c1418b71f0d2a5e59f593a9d09 100644 (file)
@@ -2,7 +2,7 @@
 ;;;
 ;;;
 ;;;
-;;; (c) 2005--2007 Nicolas Sceaux  <nicolas.sceaux@free.fr>
+;;; (c) 2005--2009 Nicolas Sceaux  <nicolas.sceaux@free.fr>
 ;;;
 
 ;;; - This file defines the procedures used to define display methods for each
index 8d7bb3bc25c001b99634efb1e47298ebd6843bf3..d77a194d3194c3d79e0d1387d31e05bc444c27bb 100644 (file)
@@ -2,7 +2,7 @@
 ;;;;
 ;;;; source file of the GNU LilyPond music typesetter
 ;;;;
-;;;; (c) 2000--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+;;;; (c) 2000--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 ;;;; Jan Nieuwenhuizen <janneke@gnu.org>
 
 (define (interface-doc-string interface grob-description)
@@ -120,9 +120,9 @@ node."
            engraver-list))
        "."
 
-       "\n\nStandard settings: \n\n"
+       "\n\nStandard settings:\n\n"
        (grob-alist->texi description)
-       "\n\nThis object supports the following interface(s): \n"
+       "\n\nThis object supports the following interface(s):\n"
        (human-listify ifacedoc)
        "."))))
 
index 1e473f107ac3b61e444fa243abe41ed4927e3a41..34d406f89fca40763d05f36fd5bef0c704a5bfa3 100644 (file)
@@ -2,7 +2,7 @@
 ;;;;
 ;;;;  source file of the GNU LilyPond music typesetter
 ;;;; 
-;;;; (c) 1998--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+;;;; (c) 1998--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 ;;;;                 Jan Nieuwenhuizen <janneke@gnu.org>
 
 (use-modules
index 7dcab30e3d5e642363f06a0fa855962a1b09c9af..af4a65d7c67cd51f10714d78226652e75d625562 100644 (file)
@@ -2,7 +2,7 @@
 ;;;;
 ;;;;  source file of the GNU LilyPond music typesetter
 ;;;; 
-;;;; (c) 1998--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+;;;; (c) 1998--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 ;;;;                 Jan Nieuwenhuizen <janneke@gnu.org>
 
 
index e0c9106f49d0a3e8096bf3012cce5f32808226f9..b8190d95f441967bf17cf7ab654af91943b95f03 100644 (file)
@@ -2,7 +2,7 @@
 ;;;;
 ;;;;  source file of the GNU LilyPond music typesetter
 ;;;;
-;;;; (c) 1998--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+;;;; (c) 1998--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 ;;;;                 Jan Nieuwenhuizen <janneke@gnu.org>
 
 (define (music-props-doc)
index 01ae8a777f31dd1c46ce859cec2ee11ebd0bd4d1..5bfc83a5383ba166cc6048e4c7d8fb47c9b03fcc 100644 (file)
@@ -2,7 +2,7 @@
 ;;;;
 ;;;; source file of the GNU LilyPond music typesetter
 ;;;;
-;;;; (c) 2000--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+;;;; (c) 2000--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 ;;;;                 Jan Nieuwenhuizen <janneke@gnu.org>
 
 (define (engraver-makes-grob? name-symbol grav)
index 6158fbb21c1b2771262520584cfa5adcc282ff69..04b0a599426c6db713491b2d1056910cf4f8d0cf 100644 (file)
@@ -2,7 +2,7 @@
 ;;;;
 ;;;; source file of the GNU LilyPond music typesetter
 ;;;; 
-;;;; (c) 2000--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+;;;; (c) 2000--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 ;;;; Jan Nieuwenhuizen <janneke@gnu.org>
 
 ;;; File entry point for generated documentation
@@ -70,7 +70,7 @@
                  "(lilypond/lilypond-internals.info)")
   "
 
-@include macros.texi
+@include macros.itexi
 
 @ignore
 @omftitle LilyPond internals
@@ -98,7 +98,7 @@
 @titlefont{Internals Reference}
 @author The LilyPond development team
 
-Copyright @copyright{} 1999--2008 by the authors
+Copyright @copyright{} 1999--2009 by the authors
 
 @vskip 20pt
 
@@ -117,9 +117,16 @@ For LilyPond version @version{}
     (string-append  "@end ifnottex
 
 @ifhtml
+@ifclear bigpage
 This document is also available as a
 @uref{source/Documentation/user/lilypond-internals.pdf,PDF} and as
 @uref{source/Documentation/user/lilypond-internals-big-page.html,one big page}.
+@end ifclear
+@ifset bigpage
+This document is also available as a
+@uref{source/Documentation/user/lilypond-internals.pdf,PDF} and as a
+@uref{source/Documentation/user/lilypond-internals/index.html,HTML indexed multiple pages}.
+@end ifset
 @end ifhtml
 
 This is the Internals Reference (IR) for version "
index 148728abb6e2e78d48ed44b5b8c8d7a824f7ecee..ba434f1947e89bcbbb907c18ffa97371e290274b 100644 (file)
@@ -3,7 +3,7 @@
 ;;;;
 ;;;; source file of the GNU LilyPond music typesetter
 ;;;; 
-;;;; (c) 2000--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+;;;; (c) 2000--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 ;;;;                 Jan Nieuwenhuizen <janneke@gnu.org>
 
 (use-modules (oop goops)
index c22ff25a717c7f4baafce4a2c026df08199fdbf3..01e924476197f5329a2f2d17feb0b00820483b49 100644 (file)
@@ -2,7 +2,7 @@
 ;;;;
 ;;;;  source file of the GNU LilyPond music typesetter
 ;;;; 
-;;;; (c) 2005--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+;;;; (c) 2005--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 
 (define-module (scm editor))
 
index a5aaa8d19a035b871ce747fdd297ba322e59468f..9a441ac8816aa8ce1a58a4e84f9823b60fbb66e8 100644 (file)
@@ -1,12 +1,49 @@
 ;;;; encoding.scm -- font encoding
 ;;;;
 ;;;;  source file of the GNU LilyPond music typesetter
-;;;; 
-;;;; (c) 2004--2007 Jan Nieuwenhuizen <janneke@gnu.org>
-
-
+;;;;
+;;;; (c) 2004--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 
-(define-public latin1-coding-vector #(.notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef space exclam quotedbl numbersign dollar percent ampersand quoteright parenleft parenright asterisk plus comma hyphen period slash zero one two three four five six seven eight nine colon semicolon less equal greater question at A B C D E F G H I J K L M N O P Q R S T U V W X Y Z bracketleft backslash bracketright asciicircum underscore quoteleft a b c d e f g h i j k l m n o p q r s t u v w x y z braceleft bar braceright asciitilde .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef dotlessi grave acute circumflex tilde macron breve dotaccent dieresis .notdef ring cedilla .notdef hungarumlaut ogonek caron space exclamdown cent sterling currency yen brokenbar section dieresis copyright ordfeminine guillemotleft logicalnot hyphen registered macron degree plusminus twosuperior threesuperior acute mu paragraph periodcentered cedilla onesuperior ordmasculine guillemotright onequarter onehalf threequarters questiondown Agrave Aacute Acircumflex Atilde Adieresis Aring AE Ccedilla Egrave Eacute Ecircumflex Edieresis Igrave Iacute Icircumflex Idieresis Eth Ntilde Ograve Oacute Ocircumflex Otilde Odieresis multiply Oslash Ugrave Uacute Ucircumflex Udieresis Yacute Thorn germandbls agrave aacute acircumflex atilde adieresis aring ae ccedilla egrave eacute ecircumflex edieresis igrave iacute icircumflex idieresis eth ntilde ograve oacute ocircumflex otilde odieresis divide oslash ugrave uacute ucircumflex udieresis yacute thorn ydieresis))
+(define-public latin1-coding-vector
+  #(.notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef
+    .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef
+    .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef
+    .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef
+    %% 0x20
+    space exclam quotedbl numbersign dollar percent ampersand quoteright
+    parenleft parenright asterisk plus comma hyphen period slash
+    zero one two three four five six seven
+    eight nine colon semicolon less equal greater question
+    %% 0x40
+    at A B C D E F G
+    H I J K L M N O
+    P Q R S T U V W
+    X Y Z bracketleft backslash bracketright asciicircum underscore
+    %% 0x60
+    `quoteleft a b c d e f g
+    h i j k l m n o
+    p q r s t u v w
+    x y z braceleft bar braceright asciitilde .notdef
+    %% 0x80
+    .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef
+    .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef
+    dotlessi grave acute circumflex tilde macron breve dotaccent
+    dieresis .notdef ring cedilla .notdef hungarumlaut ogonek caron
+    %% 0xA0
+    space exclamdown cent sterling currency yen brokenbar section
+    dieresis copyright ordfeminine guillemotleft logicalnot hyphen registered macron
+    degree plusminus twosuperior threesuperior acute mu paragraph periodcentered
+    cedilla onesuperior ordmasculine guillemotright onequarter onehalf threequarters questiondown
+    %% 0xC0
+    Agrave Aacute Acircumflex Atilde Adieresis Aring AE Ccedilla
+    Egrave Eacute Ecircumflex Edieresis Igrave Iacute Icircumflex Idieresis
+    Eth Ntilde Ograve Oacute Ocircumflex Otilde Odieresis multiply
+    Oslash Ugrave Uacute Ucircumflex Udieresis Yacute Thorn germandbls
+    %% 0xE0
+    agrave aacute acircumflex atilde adieresis aring ae ccedilla
+    egrave eacute ecircumflex edieresis igrave iacute icircumflex idieresis
+    eth ntilde ograve oacute ocircumflex otilde odieresis divide
+    oslash ugrave uacute ucircumflex udieresis yacute thorn ydieresis))
 
 
 (define-public (decode-byte-string str)
@@ -15,10 +52,9 @@ assuming that STR is byte-coded using ENCODING-NAME."
 
   (let* ((len (string-length str))
         (output-vector (make-vector len '.notdef)))
-
     (do
        ((idx 0 (1+ idx)))
        ((>= idx len) output-vector)
       (vector-set! output-vector idx
-                    (vector-ref latin1-coding-vector
-                                (char->integer (string-ref str idx)))))))
+                  (vector-ref latin1-coding-vector
+                              (char->integer (string-ref str idx)))))))
index 2dfed77686e4b02421a2b3b90b2660c144368d47..7df106891e0c53ef9ae8d5693bf35db2ffbb27ae 100644 (file)
@@ -2,7 +2,7 @@
 ;;;;
 ;;;;  source file of the GNU LilyPond music typesetter
 ;;;;
-;;;; (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+;;;; (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 
 
 (define cache-hash-tab  (make-hash-table 11))
index 4a6db49d13c5c5d73e403901193c690317949dd0..ae671db8ba25d24221012fdb5532548b4e47d66c 100644 (file)
@@ -2,6 +2,10 @@
 ;;;;
 ;;;;  source file of the GNU LilyPOnd music typesetter
 ;;;;
+;;;;  This file implements different flag styles in Scheme / GUILE, most
+;;;;  notably the old-straight-flag and the modern-straight-flag styles.
+;;;;
+
 
 (define-public (no-flag stem-grob)
   "No flag: Simply return empty stencil"
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 
-;; ;; TODO
-;; (define-public (add-stroke-straight stencil dir stroke-style)
-;;   stencil
-;; )
-;;
-;; ;; Create a stencil for a straight flag
-;; ;; flag-thickness, -spacing are given in staff spaces
-;; ;; *flag-length are given in black notehead widths
-;; ;; TODO
-;; (define-public (straight-flag flag-thickness flag-spacing
-;;                        upflag-angle upflag-length
-;;                        downflag-angle downflag-length)
-;;   (lambda (stem-grob)
-;;     (let* ((log (ly:grob-property stem-grob 'duration-log))
-;;            (staff-space 1) ; TODO
-;;            (black-notehead-width 1) ; TODO
-;;            (stem-thickness 1) ; TODO: get rid of
-;;            (half-stem-thickness (/ stem-thickness 2))
-;;            (staff-space 1) ; TODO
-;;            (up-length (+ (* upflag-length black-notehead-width) half-stem-thickness))
-;;            (down-length (+ (* downflag-length black-notehead-width) half-stem-thickness))
-;;            (thickness (* flag-thickness staff-space))
-;;            (spacing (* flag-spacing staff-space)))
-;;       empty-stencil
-;;     )
-;;   )
-;; )
-;;
-;; ;; Modern straight flags: angles are not so large as with the old style
-;; (define-public (modern-straight-flag stem-grob)
-;;   ((straight-flag 0.55 0.9 -18 0.95 22 1.0) stem-grob))
-;;
-;; ;; Old-straight flags (Bach, etc.): quite large flag angles
-;; (define-public (old-straight-flag stem-grob)
-;;   ((straight-flag 0.55 0.9 -45 0.95 45 1.0) stem-grob))
+(define-public (add-stroke-straight stencil stem-grob dir log stroke-style offset length thickness stroke-thickness)
+  "Add the stroke for acciaccatura to the given flag stencil.
+  The stroke starts for up-flags at upper-end-of-flag+(0,length/2) and 
+  ends at (0, vertical-center-of-flag-end) - (flag-x-width/2, flag-x-width + flag-thickness).
+  Here length is the whole length, while flag-x-width is just the 
+  x-extent and thus depends on the angle! Other combinations don't look as 
+  good... For down-stems the y-coordinates are simply mirrored."
+  (let* ((start (offset-add offset (cons 0  (* (/ length 2) dir))))
+         (end (offset-add (cons 0 (cdr offset)) 
+                          (cons (- (/ (car offset) 2)) (* (- (+ thickness (car offset))) dir))))
+         (stroke (make-line-stencil stroke-thickness (car start) (cdr start) (car end) (cdr end))))
+  (ly:stencil-add stencil stroke)))
+
+(define PI-OVER-180  (/ (atan 1 1) 45))
+(define (degrees->radians angle-degrees)
+  "Convert the given angle from degrees to radians"
+  (* angle-degrees PI-OVER-180))
+
+(define (polar->rectangular radius angle-in-degrees)
+  "Convert polar coordinate @code{radius} and @code{angle-in-degrees}
+   to (x-length . y-length)"
+  (let* ((complex (make-polar
+                    radius
+                    (degrees->radians angle-in-degrees))))
+     (cons
+       (real-part complex)
+       (imag-part complex))))
+
+(define (buildflag flag-stencil remain curr-stencil spacing)
+  "Internal function to recursively create a stencil with @code{remain} flags
+   from the single-flag stencil curr-stencil, which is already translated to
+   the position of the previous flag position."
+  (if (> remain 0)
+      (let* ((translated-stencil (ly:stencil-translate-axis curr-stencil spacing Y))
+             (new-stencil (ly:stencil-add flag-stencil translated-stencil)))
+        (buildflag new-stencil (- remain 1) translated-stencil spacing))
+      flag-stencil))
+
+(define-public (straight-flag flag-thickness flag-spacing
+                       upflag-angle upflag-length
+                       downflag-angle downflag-length)
+    "Create a stencil for a straight flag.
+     flag-thickness, -spacing are given in staff spaces,
+     *flag-angle is given in degree, *flag-length is given in staff spaces. 
+     All lengths will be scaled according to the font size of the note."
+  (lambda (stem-grob)
+    (let* ((log (ly:grob-property stem-grob 'duration-log))
+           (dir (ly:grob-property stem-grob 'direction))
+           (stem-up (eqv? dir UP))
+           (layout (ly:grob-layout stem-grob))
+           ; scale with the note size (e.g. for grace notes)
+           (factor (magstep (ly:grob-property stem-grob 'font-size 0)))
+           (grob-stem-thickness (ly:grob-property stem-grob 'thickness))
+           (line-thickness (ly:output-def-lookup layout 'line-thickness))
+           (half-stem-thickness (/ (* grob-stem-thickness line-thickness) 2))
+           (raw-length (if stem-up upflag-length downflag-length))
+           (angle (if stem-up upflag-angle downflag-angle))
+           (flag-length (+ (* raw-length factor) half-stem-thickness))
+           (flag-end (polar->rectangular flag-length angle))
+           (thickness (* flag-thickness factor))
+           (thickness-offset (cons 0 (* -1 thickness dir)))
+           (spacing (* -1 flag-spacing factor dir ))
+           (start (cons (- half-stem-thickness) (* half-stem-thickness dir)))
+           ; The points of a round-filled-polygon need to be given in clockwise
+           ; order, otherwise the polygon will be enlarged by blot-size*2!
+           (points (if stem-up (list start flag-end
+                                     (offset-add flag-end thickness-offset)
+                                     (offset-add start thickness-offset))
+                               (list start
+                                     (offset-add start thickness-offset)
+                                     (offset-add flag-end thickness-offset)
+                                     flag-end)))
+           (stencil (ly:round-filled-polygon points half-stem-thickness))
+           ; Log for 1/8 is 3, so we need to subtract 3
+           (flag-stencil (buildflag stencil (- log 3) stencil spacing))
+           (stroke-style (ly:grob-property stem-grob 'stroke-style)))
+    (if (equal? stroke-style "grace")
+      (add-stroke-straight flag-stencil stem-grob
+                           dir log
+                           stroke-style
+                           flag-end flag-length
+                           thickness
+                           (* half-stem-thickness 2))
+      flag-stencil))))
+
+(define-public (modern-straight-flag stem-grob)
+  "Modern straight flag style (for composers like Stockhausen, Boulez, etc.).
+   The angles are 18 and 22 degrees and thus smaller than for the ancient style
+   of Bach etc."
+  ((straight-flag 0.55 1 -18 1.1 22 1.2) stem-grob))
+
+(define-public (old-straight-flag stem-grob)
+  "Old straight flag style (for composers like Bach). The angles of the flags
+   are both 45 degrees."
+  ((straight-flag 0.55 1 -45 1.2 45 1.4) stem-grob))
 
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                                tmpstencil)))
       (if (ly:stencil-empty? stroke-stencil)
         (begin
-          (ly:warning (_ "flag stroke `~a' or `~a'not found") font-char alt-font-char)
+          (ly:warning (_ "flag stroke `~a' or `~a' not found") font-char alt-font-char)
           stencil)
         (ly:stencil-add stencil stroke-stencil)))))
 
index eefc1c26ee9627316e43e11e09101d9e4ceebbe2..c29258860c2a6cabedf3623a3ec7c25da3fb21d8 100644 (file)
@@ -2,7 +2,7 @@
 ;;;;
 ;;;;  source file of the GNU LilyPond music typesetter
 ;;;; 
-;;;; (c) 2004--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+;;;; (c) 2004--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 
 ;; TODO:
 ;;
 (define-method (display (leaf <Font-tree-leaf>) port)
   (map (lambda (x) (display x port))
        (list
-       "#<Font-size-family: \n"
+       "#<Font-size-family:\n"
        (slot-ref leaf 'default-size) 
        (slot-ref leaf 'size-vector)
        "#>"
        )))
 
 (define-method (display (node <Font-tree-node>) port)
-
   (map
    (lambda (x)
      (display x port))
-
    (list
-    "Font_node { \nqual: "
+    "Font_node {\nqual: "
     (font-qualifier node)
     "(def: "
     (font-default node)
@@ -59,8 +57,7 @@
      (display "=" port)
      (display (cdr x) port))
    (hash-table->alist (font-children node)))
-  (display "} } \n"))
-
+  (display "} }\n"))
 
 (define default-qualifier-order
   '(font-encoding font-family font-shape font-series))
@@ -93,8 +90,6 @@
         (new-fprops (assoc-delete q fprops))
         (child (hashq-ref (slot-ref node 'children)
                           v #f)))
-
-
     (if (not child)
        (begin
          (set! child (make-node new-fprops size-family))
     (if (pair? new-fprops)
        (add-font child new-fprops size-family))))
 
-
 (define-method (add-font (node <Font-tree-leaf>) fprops size-family)
   (throw "must add to node, not leaf"))
 
-
 (define-method (g-lookup-font (node <Font-tree-node>) alist-chain)
   (let* ((qual (font-qualifier node))
         (def (font-default node))
        (g-lookup-font desired-child alist-chain)
        (g-lookup-font (hashq-ref (font-children node) def) alist-chain))))
 
-
 (define-method (g-lookup-font (node <Font-tree-leaf>) alist-chain)
   node)
 
-;; two step call  is handy for debugging.
+;; two step call is handy for debugging.
 (define (lookup-font node alist-chain)
   (g-lookup-font node alist-chain))
 
-;; Each size family is a vector of fonts, loaded with a delay.  The
-;; vector should be sorted according to ascending design size.
+
+;; Ugh.  Currently, we load the PFB Feta fonts for `fetaDynamic' with
+;; Pango.  This should be changed to load the Emmentaler fonts instead
+;; (with Pango too), but then we need support for a `font-style'
+;; property which isn't implemented yet.
 (define feta-alphabet-size-vector
-  (if (defined? 'ly:kpathsea-find-file)
-      `#(,(delay  (ly:font-load "feta-alphabet11"))
-        ,(delay  (ly:font-load "feta-alphabet13"))
-        ,(delay  (ly:font-load "feta-alphabet14"))
-        ,(delay  (ly:font-load "feta-alphabet16"))
-        ,(delay  (ly:font-load "feta-alphabet18"))
-        ,(delay  (ly:font-load "feta-alphabet20"))
-        ,(delay  (ly:font-load "feta-alphabet23"))
-        ,(delay  (ly:font-load "feta-alphabet26")))
-      (list->vector
-       (map (lambda (tup)
-             (cons (ly:pt (cdr tup))
-                   (format "feta-alphabet~a ~a"
-                           (car tup)
-                           (ly:pt (cdr tup)))))
-           '((11 . 11.22)
-             (13 . 12.60)
-             (14 .  14.14)
-             (16 . 15.87)
-             (18 . 17.82)
-             (20 . 20)
-             (23 . 22.45)
-             (26 . 25.20))))))
+  (list->vector
+   (map (lambda (tup)
+         (cons (ly:pt (cdr tup))
+               (format "feta-alphabet~a ~a"
+                       (car tup)
+                       (ly:pt (cdr tup)))))
+       '((11 . 11.22)
+         (13 . 12.60)
+         (14 .  14.14)
+         (16 . 15.87)
+         (18 . 17.82)
+         (20 . 20)
+         (23 . 22.45)
+         (26 . 25.20)))))
 
+;; Each size family is a vector of fonts, loaded with a delay.  The
+;; vector should be sorted according to ascending design size.
 (define-public (add-music-fonts node factor)
   (for-each
    (lambda (x)
               (list (cons 'font-encoding (car x)))
               (cons (* factor (cadr x))
                     (caddr x))))
-   `((fetaDynamic ,(ly:pt 20.0)  ,feta-alphabet-size-vector)
-     (fetaNumber ,(ly:pt 20.0)  ,feta-alphabet-size-vector)
+   `((fetaDynamic ,(ly:pt 20.0) ,feta-alphabet-size-vector)
+     (fetaNumber ,(ly:pt 20.0) ,feta-alphabet-size-vector)
      (fetaMusic ,(ly:pt 20.0)
-               #(,(delay  (ly:font-load "emmentaler-11"))
-                 ,(delay  (ly:font-load "emmentaler-13"))                
-                 ,(delay  (ly:font-load "emmentaler-14"))
-                 ,(delay  (ly:font-load "emmentaler-16"))                
-                 ,(delay  (ly:font-load "emmentaler-18"))
-                 ,(delay  (ly:font-load "emmentaler-20"))                
-                 ,(delay  (ly:font-load "emmentaler-23"))                
-                 ,(delay  (ly:font-load "emmentaler-26"))))
-
-     (fetaBraces ,(ly:pt 20.0) #(,(delay
-                           (ly:font-load "aybabtu")))))))
-
-(define-public (add-cmr-fonts node factor)
-  (add-font node '((font-encoding . TeX-math))
-           `(,(* factor 10) . #(,(delay (ly:font-load "msam10")))))
-  (for-each
-   (lambda (x)
-     (add-font node `((font-encoding . TeX-text)
-                     (font-series . ,(vector-ref (car x) 2))
-                     (font-shape . ,(vector-ref (car x) 1))
-                     (font-family . ,(vector-ref (car x) 0)))
-              (cons (* factor (cadr x))
-                    (cddr x))))
-   `((#(roman upright medium) 
-      . (,(ly:pt 10.0) . #(,(delay (ly:font-load "cmr6"))
-                 ,(delay (ly:font-load "cmr8")) 
-                 ,(delay (ly:font-load "cmr10"))
-                 ,(delay (ly:font-load "cmr17")))))
-     (#(roman upright bold) 
-      . (,(ly:pt 10.0) . #(,(delay (ly:font-load "cmbx6"))
-                 ,(delay (ly:font-load "cmbx8"))
-                 ,(delay (ly:font-load "cmbx10"))
-                 ,(delay (ly:font-load "cmbx12")))))
-     (#(roman italic medium) 
-      . (,(ly:pt 10.0) . #(,(delay (ly:font-load "cmti7"))
-                 ,(delay (ly:font-load "cmti10"))
-                 ,(delay (ly:font-load "cmti12")))))
-     (#(roman italic bold) 
-      . (,(ly:pt 10.0) . #(,(delay (ly:font-load "cmbxti8"))
-                 ,(delay (ly:font-load "cmbxti10"))
-                 ,(delay (ly:font-load "cmbxti14")))))
-     (#(roman caps medium) 
-      . (,(ly:pt 10.0) . #(,(delay (ly:font-load "cmcsc10")))))
-     (#(roman upright bold-narrow ) 
-      . (,(ly:pt 10.0) . #(,(delay (ly:font-load "cmb10")))))
-     (#(sans upright medium) 
-      . (,(ly:pt 10.0)  . #(,(delay (ly:font-load "cmss8"))
-                  ,(delay (ly:font-load "cmss10"))
-                  ,(delay (ly:font-load "cmss12"))
-                  ,(delay (ly:font-load "cmss17")))))
-     (#(typewriter upright medium) 
-      . (,(ly:pt 10.0) . #(,(delay (ly:font-load "cmtt8"))
-                 ,(delay (ly:font-load "cmtt10"))
-                 ,(delay (ly:font-load "cmtt12"))))))))
-
-;; Debian lmodern font support.
-(define-public (add-cork-lm-fonts node factor)
-  (for-each
-   (lambda (x)
-     (add-font node `((font-encoding . cork-lm)
-                     (font-series . ,(vector-ref (car x) 2))
-                     (font-shape . ,(vector-ref (car x) 1))
-                     (font-family . ,(vector-ref (car x) 0)))
-              (cons (* factor (cadr x)) (cddr x))))
-   `((#(roman upright medium) 
-      . (,(ly:pt 10.0) . #(,(delay (ly:font-load "lmr6"))
-                 ,(delay (ly:font-load "lmr8"))
-                 ,(delay (ly:font-load "lmr10"))
-                 ,(delay (ly:font-load "lmr17")))))
-     (#(roman upright bold) 
-      . (,(ly:pt 10.0) . #(,(delay (ly:font-load "lmbx6"))
-                 ,(delay (ly:font-load "lmbx8"))
-                 ,(delay (ly:font-load "lmbx10"))
-                 ,(delay (ly:font-load "lmbx12")))))
-     (#(roman italic medium) 
-      . (,(ly:pt 10.0) . #(,(delay (ly:font-load "lmri7"))
-                 ,(delay (ly:font-load "lmri10"))
-                 ,(delay (ly:font-load "lmri12")))))
-     (#(roman italic bold)
-      . (,(ly:pt 10.0) . #(,(delay (ly:font-load "lmbxi10")))))
-     (#(roman caps medium)
-      . (,(ly:pt 10.0) . #(,(delay (ly:font-load "lmcsc10")))))
-     (#(roman upright bold-narrow ) 
-      . (,(ly:pt 10.0) . #(,(delay (ly:font-load "lmb10")))))
-     (#(sans upright medium) 
-      . (,(ly:pt 10.0)  . #(,(delay (ly:font-load "lmss8"))
-                  ,(delay (ly:font-load "lmss10"))
-                  ,(delay (ly:font-load "lmss12"))
-                  ,(delay (ly:font-load "lmss17")))))
-     (#(sans upright bold) 
-      . (,(ly:pt 10.0)  . #(,(delay (ly:font-load "lmssbx10")))))
-
-     (#(typewriter upright medium) 
-      . (,(ly:pt 10.0) . #(,(delay (ly:font-load "lmtt8"))
-                 ,(delay (ly:font-load "lmtt10"))
-                 ,(delay (ly:font-load "lmtt12"))))))))
-
-;; ec-fonts-mftraced font support.
-(define-public (add-ec-fonts node factor)
-  (for-each
-   (lambda (x) (add-font node
-                        `((font-encoding . Extended-TeX-Font-Encoding---Latin)
-                          (font-series . ,(vector-ref (car x) 2))
-                          (font-shape . ,(vector-ref (car x) 1))
-                          (font-family . ,(vector-ref (car x) 0)))
-                        (cons (* factor (cadr x)) (cddr x))))
-
-   `((#(roman upright medium) 
-      . (,(ly:pt 10.0) . #(,(delay (ly:font-load "ecrm6"))
-                 ,(delay (ly:font-load "ecrm8"))
-                 ,(delay (ly:font-load "ecrm10"))
-                 ,(delay (ly:font-load "ecrm17")))))
-     (#(roman upright bold) 
-      . (,(ly:pt 10.0) . #(,(delay (ly:font-load "ecbx6"))
-                 ,(delay (ly:font-load "ecbx8"))
-                 ,(delay (ly:font-load "ecbx10"))
-                 ,(delay (ly:font-load "ecbx12")))))
-     (#(roman italic medium) 
-      . (,(ly:pt 10.0) . #(,(delay (ly:font-load "ecti7"))
-                 ,(delay (ly:font-load "ecti10"))
-                 ,(delay (ly:font-load "ecti12")))))
-     (#(roman italic bold) 
-      . (,(ly:pt 10.0) . #(,(delay (ly:font-load "ecbi8"))
-                 ,(delay (ly:font-load "ecbi10"))
-                 ,(delay (ly:font-load "ecbi14")))))
-     (#(roman caps medium) 
-      . (,(ly:pt 10.0) . #(,(delay (ly:font-load "eccc10")))))
-     (#(roman slanted-caps medium) 
-      . (,(ly:pt 10.0) . #(,(delay (ly:font-load "ecsc10")))))
-     (#(roman upright bold-narrow ) 
-      . (,(ly:pt 10.0) . #(,(delay (ly:font-load "ecrb10")))))
-     (#(sans upright medium) 
-      . (,(ly:pt 10.0)  . #(,(delay (ly:font-load "ecss8"))
-                  ,(delay (ly:font-load "ecss10"))
-                  ,(delay (ly:font-load "ecss12"))
-                  ,(delay (ly:font-load "ecss17")))))
-     (#(typewriter upright medium) 
-      . (,(ly:pt 10.0) . #(,(delay (ly:font-load "ectt8"))
-                 ,(delay (ly:font-load "ectt10"))
-                 ,(delay (ly:font-load "ectt12"))))))))
+               #(,(delay (ly:system-font-load "emmentaler-11"))
+                 ,(delay (ly:system-font-load "emmentaler-13"))                  
+                 ,(delay (ly:system-font-load "emmentaler-14"))
+                 ,(delay (ly:system-font-load "emmentaler-16"))                  
+                 ,(delay (ly:system-font-load "emmentaler-18"))
+                 ,(delay (ly:system-font-load "emmentaler-20"))                  
+                 ,(delay (ly:system-font-load "emmentaler-23"))                  
+                 ,(delay (ly:system-font-load "emmentaler-26"))))
+     (fetaBraces ,(ly:pt 20.0)
+                #(,(delay (ly:system-font-load "aybabtu")))))))
 
 (define-public (add-pango-fonts node lily-family family factor)
   (define (add-node shape series)
                (font-series . ,series)
                (font-encoding . latin1) ;; ugh.
                )
-             
              `(,(ly:pt (* factor 11.0))
                . #(,(cons
                     (ly:pt 12)
   (add-node 'italic 'normal)
   (add-node 'italic 'bold))
 
-(define-public (make-cmr-tree factor)
-  (let*
-      ((n (make-font-tree-node 'font-encoding 'fetaMusic))
-       (module (resolve-module '(scm kpathsea)))
-       (find (eval 'ly:kpathsea-find-file module))
-       )
-    (add-music-fonts n factor)
-    (add-cmr-fonts n factor)
-    
-    (if (find "lmr10.pfb")
-       (add-cork-lm-fonts n factor))
-    (if (find "ecrm10.pfa")
-       (add-ec-fonts n factor))
-    n))
-
-
-
-
 (define-public (make-pango-font-tree roman-str sans-str typewrite-str factor)
   (let ((n (make-font-tree-node 'font-encoding 'fetaMusic)))
     (add-music-fonts n factor)
     (add-pango-fonts n 'typewriter typewrite-str factor)
     n))
 
-
 (define-public (make-century-schoolbook-tree factor)
   (make-pango-font-tree
     "Century Schoolbook L" 
index fcd0779198792f6e0483c70a8a0b915c016d2b02..7383f3181cbef2111efabe0e0bc39c168b964369 100644 (file)
@@ -2,7 +2,7 @@
 ;;;;
 ;;;;  source file of the GNU LilyPond music typesetter
 ;;;;
-;;;; (c) 2004--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+;;;; (c) 2004--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 
 (define-module (scm framework-eps))
 
             (srfi srfi-13)
             (lily))
 
-(define format ergonomic-simple-format)
-
-(define framework-eps-module (current-module))
+(define format
+  ergonomic-simple-format)
 
+(define framework-eps-module
+  (current-module))
 
 (define (widen-left-stencil-edges stencils)
   "Change STENCILS to use the union for the left extents in every
-stencil, so LaTeX includegraphics doesn't fuck up the alignment."
-
+stencil so that LaTeX's \\includegraphics command doesn't modify the
+alignment."
   (define left
     (if (pair? stencils)
-
        (apply min
               (map (lambda (stc)
                      (interval-start (ly:stencil-extent stc X)))
                    stencils))
        0.0))
-    
+
   (map (lambda (stil)
-        
         (ly:make-stencil
          (ly:stencil-expr stil)
-         (cons
-          left
-          (cdr (ly:stencil-extent stil X)))
-         (ly:stencil-extent stil Y)
-         ))
+         (cons left
+               (cdr (ly:stencil-extent stil X)))
+         (ly:stencil-extent stil Y)))
        stencils))
 
 (define (dump-stencils-as-EPSes stencils book basename)
-  (define do-pdf (member  "pdf" (ly:output-formats)))
-  (define paper (ly:paper-book-paper book))
+  (define do-pdf
+    (member  "pdf" (ly:output-formats)))
+
+  (define paper
+    (ly:paper-book-paper book))
+
   (define (dump-infinite-stack-EPS stencils)
     (let* ((dump-me (stack-stencils Y DOWN 2.0 stencils)))
       (dump-stencil-as-EPS paper dump-me basename #t)))
 
   (define (dump-counted-stencil stencil-count-pair)
-    "Return EPS filename" 
-    (let*
-       ((stencil (car stencil-count-pair))
-        (number (cdr stencil-count-pair))
-        (name (format "~a-~a" basename number)))
-
-      (dump-stencil-as-EPS
-       paper stencil name
-       (ly:get-option 'include-eps-fonts))
-
+    "Return EPS filename."
+    (let* ((stencil (car stencil-count-pair))
+          (number (cdr stencil-count-pair))
+          (name (format "~a-~a" basename number)))
+      (dump-stencil-as-EPS paper stencil name
+                          (ly:get-option 'include-eps-fonts))
       (string-append name ".eps")))
-  
+
   (define (dump-stencils-as-separate-EPS stencils count)
     (if (pair? stencils)
        (let* ((line (car stencils))
               (rest (cdr stencils))
-              (system-base-name (format "~a-~a" basename count))
-              )
-
-         (dump-stencil-as-EPS
-          paper line system-base-name)
-
+              (system-base-name (format "~a-~a" basename count)))
+         (dump-stencil-as-EPS paper line system-base-name)
          (if do-pdf
-             (postscript->pdf  0 0  (string-append system-base-name ".eps")))
+             (postscript->pdf 0 0
+                              (string-append system-base-name ".eps")))
          (dump-stencils-as-separate-EPS rest (1+ count)))))
 
-  ;; main body 
+  ;; main body
   (let* ((write-file (lambda (str-port ext)
-                      (let*
-                          ((name (format "~a-systems.~a" basename ext))
-                           (port (open-output-file name)))
+                      (let* ((name (format "~a-systems.~a" basename ext))
+                             (port (open-output-file name)))
                         (ly:message (_ "Writing ~a...") name)
                         (display (get-output-string str-port) port)
-                        (close-output-port port)
-                        )))
-        
+                        (close-output-port port))))
         (tex-system-port (open-output-string))
         (texi-system-port (open-output-string))
         (count-system-port (open-output-string))
         (widened-stencils (widen-left-stencil-edges stencils))
         (counted-systems  (count-list widened-stencils))
-        (eps-files (map dump-counted-stencil  counted-systems))
-        )
-    
+        (eps-files (map dump-counted-stencil counted-systems)))
     (if do-pdf
-
-       ;; par-for-each: a bit faster ...  
-       (for-each
-        (lambda (y)
-          (postscript->pdf 0 0 y))
-        eps-files))
-
+       ;; par-for-each: a bit faster ...
+       (for-each (lambda (y)
+                   (postscript->pdf 0 0 y))
+                 eps-files))
     (for-each (lambda (c)
                (if (< 0 c)
-                   (display (format "\\ifx\\betweenLilyPondSystem \\undefined
+                   (display (format
+                             "\\ifx\\betweenLilyPondSystem \\undefined
   \\linebreak
 \\else
-  \\betweenLilyPondSystem{~a}
+  \\expandafter\\betweenLilyPondSystem{~a}%
 \\fi
-" c) tex-system-port))
-               (display (format "\\includegraphics{~a-~a}\n"
+" c)
+                            tex-system-port))
+               (display (format "\\includegraphics{~a-~a}%\n"
                                 basename (1+ c)) tex-system-port)
                (display (format "@image{~a-~a}\n"
                                 basename (1+ c)) texi-system-port))
              (iota (length stencils)))
-    
-    (display "@c eof." texi-system-port)
-    (display "% eof. " tex-system-port)
+    (display "@c eof\n" texi-system-port)
+    (display "% eof\n" tex-system-port)
     (display (format "~a" (length stencils)) count-system-port)
     (dump-infinite-stack-EPS stencils)
     (postprocess-output book framework-eps-module
                        (format "~a.eps" basename) (ly:output-formats))
-
     (write-file texi-system-port "texi")
     (write-file tex-system-port "tex")
-
     ;; do this as the last action so we know the rest is complete if
     ;; this file is present.
-    (write-file count-system-port "count")
-    ))
-
-
+    (write-file count-system-port "count")))
 
 (define-public (output-classic-framework basename book scopes fields)
   (output-scopes scopes fields basename)
-
   (if (ly:get-option 'dump-signatures)
       (write-system-signatures basename (ly:paper-book-systems book) 1))
-  
-  (dump-stencils-as-EPSes
-   (map paper-system-stencil (ly:paper-book-systems book))
-   book
-   basename))
+  (dump-stencils-as-EPSes (map paper-system-stencil
+                              (ly:paper-book-systems book))
+                         book
+                         basename))
 
 (define-public (output-framework basename book scopes fields)
   (output-scopes scopes fields basename)
   (if (ly:get-option 'clip-systems)
       (clip-system-EPSes basename book))
-
-  (dump-stencils-as-EPSes
-   (map page-stencil (ly:paper-book-pages book)) book basename))
-  
+  (dump-stencils-as-EPSes (map page-stencil
+                              (ly:paper-book-pages book))
+                         book
+                         basename))
 
 ; redefine to imports from framework-ps
-(define convert-to-pdf convert-to-pdf)
-(define convert-to-ps convert-to-ps)
-(define convert-to-png convert-to-png)
-(define convert-to-tex convert-to-tex)
-(define convert-to-dvi convert-to-dvi)
+(define convert-to-pdf
+  convert-to-pdf)
 
+(define convert-to-ps
+  convert-to-ps)
 
+(define convert-to-png
+  convert-to-png)
index a035dc9b927049226604c7d545402455011cde90..a552b5e7076bd0a7f4d49ce5ffeca48621bd8f1c 100644 (file)
@@ -23,5 +23,3 @@
 (define-public (convert-to-ps . args) #t)
 (define-public (convert-to-pdf . args) #t)
 (define-public (convert-to-png . args) #t)
-(define-public (convert-to-dvi . args) #t)
-(define-public (convert-to-tex . args) #t)
index c7214da3c597d25c5dcf49210a1f90efe829ab1c..c183fb0de5a463616bafc262d107eceb3131c627 100644 (file)
@@ -2,7 +2,7 @@
 ;;;;
 ;;;;  source file of the GNU LilyPond music typesetter
 ;;;;
-;;;; (c) 2004--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+;;;; (c) 2004--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 
 (define-module (scm framework-ps))
 
@@ -27,7 +27,6 @@
 (define-public (ps-font-command font)
   (let* ((name (ly:font-file-name font))
         (magnify (ly:font-magnification font)))
-
     (string-append
      "magfont"
      (ly:string-substitute
        "%" "_" name)))
      "m" (string-encode-integer (inexact->exact (round (* 1000 magnify)))))))
 
-(define (tex-font? fontname)
-  (or
-   (equal? (substring fontname 0 2) "cm")
-   (equal? (substring fontname 0 2) "ec")))
-
 (define (define-fonts paper)
   (define font-list (ly:paper-fonts paper))
+
   (define (define-font command fontname scaling)
     (string-append
-      "/" command " { /" fontname " " (ly:number->string scaling) " output-scale div selectfont } bind def\n"))
+      "/" command
+      " { /" fontname
+      " " (ly:number->string scaling) " output-scale div selectfont }"
+      " bind def\n"))
 
   (define (font-load-command font)
     (let* ((specced-font-name (ly:font-name font))
           (fontname (if specced-font-name
-                         specced-font-name
+                        specced-font-name
                         (ly:font-file-name font)))
           (command (ps-font-command font))
 
-          ;; FIXME -- see (ps-font-command )
+          ;; FIXME -- see (ps-font-command)
           (plain (ps-font-command font))
           (designsize (ly:font-design-size font))
           (magnification (* (ly:font-magnification font)))
           (ops (ly:output-def-lookup paper 'output-scale))
           (scaling (* ops magnification designsize)))
-
       (if (equal? fontname "unknown")
          (display (list font fontname)))
       (define-font plain fontname scaling)))
 
   (string-append
    "/lily-output-units "
-     (number->string (/ (ly:bp 1)))
-     " def %% millimeter\n"
+     (number->string (/ (ly:bp 1))) " def %% millimeter\n"
    (output-entry "staff-line-thickness" 'line-thickness)
    (output-entry "line-width" 'line-width)
    (output-entry "paper-size" 'papersizename)
    (output-entry "staff-height" 'staff-height) ;junkme.
    "/output-scale "
-     (number->string (ly:output-def-lookup layout 'output-scale))
-     " def\n"
+     (number->string (ly:output-def-lookup layout 'output-scale)) " def\n"
    (output-entry "page-height" 'paper-height)
    (output-entry "page-width" 'paper-width)))
 
        "page-width output-scale lily-output-units mul mul 0 translate 90 rotate\n"
        "")
     "%%EndPageSetup\n"
-    
+    "\n"
     "true setstrokeadjust\n"
-    "gsave 0 paper-height translate "
-    "set-ps-scale-to-lily-scale "
-    "\n"))
+    "gsave 0 paper-height translate set-ps-scale-to-lily-scale\n"))
   (ly:outputter-dump-stencil outputter page)
-  (ly:outputter-dump-string outputter "stroke grestore \nshowpage\n"))
+  (ly:outputter-dump-string outputter "stroke grestore\nshowpage\n"))
 
 (define (supplies-or-needs paper load-fonts?)
   (define (extract-names font)
     (if (ly:pango-font? font)
        (map car (ly:pango-font-physical-fonts font))
-       (list  (ly:font-name font))))
+       (list (ly:font-name font))))
 
   (let* ((fonts (ly:paper-fonts paper))
         (names (apply append (map extract-names fonts))))
-
     (apply string-append
           (map (lambda (f)
                  (format
                   (if load-fonts?
-                   "%%DocumentSuppliedResources: font ~a\n"
-                   "%%DocumentNeededResources: font ~a\n")
+                      "%%DocumentSuppliedResources: font ~a\n"
+                      "%%DocumentNeededResources: font ~a\n")
                   f))
                (uniq-list (sort names string<?))))))
 
 (define (eps-header paper bbox load-fonts?)
   (string-append "%!PS-Adobe-2.0 EPSF-2.0\n"
-                "%%Creator: LilyPond "
-                (lilypond-version)
-                "\n"
+                "%%Creator: LilyPond " (lilypond-version) "\n"
                 "%%BoundingBox: "
-                (string-join (map ly:number->string bbox) " ") "\n"
+                  (string-join (map ly:number->string bbox) " ") "\n"
                 "%%Orientation: "
-                (if (eq? (ly:output-def-lookup paper 'landscape) #t)
-                    "Landscape\n"
-                    "Portrait\n")
+                  (if (eq? (ly:output-def-lookup paper 'landscape) #t)
+                      "Landscape\n"
+                      "Portrait\n")
                 (supplies-or-needs paper load-fonts?)
                 "%%EndComments\n"))
 
-(define (ps-document-media paper) 
- (let* ((w (/ (*
-              (ly:output-def-lookup paper 'output-scale)
-              (ly:output-def-lookup paper 'paper-width)) (ly:bp 1)))
-       (h (/ (*
-              (ly:output-def-lookup paper 'paper-height)
-              (ly:output-def-lookup paper 'output-scale))
-           (ly:bp 1)))
-       (landscape? (eq? (ly:output-def-lookup paper 'landscape) #t)))
-  (ly:format "%%DocumentMedia: ~a ~2f ~2f ~a ~a ~a\n"
-            (ly:output-def-lookup paper 'papersizename)
-            (if landscape? h w)
-            (if landscape? w h)
-            80  ;; weight
-            "()" ;; color
-            "()"  ;; type
-  )))
-
+(define (ps-document-media paper)
+  (let* ((w (/ (*
+               (ly:output-def-lookup paper 'output-scale)
+               (ly:output-def-lookup paper 'paper-width)) (ly:bp 1)))
+        (h (/ (*
+               (ly:output-def-lookup paper 'paper-height)
+               (ly:output-def-lookup paper 'output-scale))
+              (ly:bp 1)))
+        (landscape? (eq? (ly:output-def-lookup paper 'landscape) #t)))
+    (ly:format "%%DocumentMedia: ~a ~2f ~2f ~a ~a ~a\n"
+              (ly:output-def-lookup paper 'papersizename)
+              (if landscape? h w)
+              (if landscape? w h)
+              80   ;; weight
+              "()" ;; color
+              "()" ;; type
+    )))
 
 (define (file-header paper page-count load-fonts?)
   (string-append "%!PS-Adobe-3.0\n"
-                "%%Creator: LilyPond "
-                (lilypond-version)
-                "\n"
-                
+                "%%Creator: LilyPond " (lilypond-version) "\n"
                 "%%Pages: " (number->string page-count) "\n"
                 "%%PageOrder: Ascend\n"
                 "%%Orientation: "
-                (if (eq? (ly:output-def-lookup paper 'landscape) #t)
-                    "Landscape\n"
-                    "Portrait\n")
+                  (if (eq? (ly:output-def-lookup paper 'landscape) #t)
+                      "Landscape\n"
+                      "Portrait\n")
                 (ps-document-media paper)
                 (supplies-or-needs paper load-fonts?)
                 "%%EndComments\n"))
 
 (define (procset file-name)
   (format
-    "%%BeginResource: procset (~a) 1 0
+   "%%BeginResource: procset (~a) 1 0
 ~a
 %%EndResource
 "
-    file-name (cached-file-contents file-name)))
+   file-name (cached-file-contents file-name)))
 
 (define (embed-document file-name)
   (format "%%BeginDocument: ~a
 ~a
 %%EndDocument
-" 
-    file-name (cached-file-contents file-name)))
+"
+   file-name (cached-file-contents file-name)))
 
 (define (setup-variables paper)
   (string-append
    "\n"
    (define-fonts paper)
-   (output-variables paper)
-   ))
+   (output-variables paper)))
 
 (define (cff-font? font)
-  (let*
-      ((cff-string (ly:otf-font-table-data font "CFF ")))
+  (let* ((cff-string (ly:otf-font-table-data font "CFF ")))
     (> (string-length cff-string) 0)))
 
 (define-public (ps-embed-cff body font-set-name version)
          (string-append
           (format "/~a ~s StartData " font-set-name (string-length body))
           body))
-
         (header
          (format
           "%%BeginResource: font ~a
         (footer "\n%%EndData
 %%EndResource
 %%EndResource\n"))
-
-    (string-append
-     header
-     binary-data
-     footer)))
-
+    (string-append header
+                  binary-data
+                  footer)))
 
 (define (write-preamble paper load-fonts? port)
   (define (internal-font? file-name)
        (string-startswith file-name "emmentaler")
        (string-startswith file-name "aybabtu")
        (string-startswith file-name "Aybabtu")))
-  (define (load-font-via-GS font-name-filename)       
+
+  (define (load-font-via-GS font-name-filename)
     (define (ps-load-file file-name)
       (if (string? file-name)
          (if (string-contains file-name (ly:get-option 'datadir))
              (begin
-               (set! file-name (ly:string-substitute (ly:get-option 'datadir) "" file-name))
-               (format "lilypond-datadir (~a) concatstrings (r) file .loadfont" file-name))
-             
+               (set! file-name (ly:string-substitute (ly:get-option 'datadir)
+                                                     "" file-name))
+               (format
+                "lilypond-datadir (~a) concatstrings (r) file .loadfont\n"
+                file-name))
              (format "(~a) (r) file .loadfont\n" file-name))
          (format "% cannot find font file: ~a\n" file-name)))
 
           (name (cadr font-name-filename))
           (file-name (caddr font-name-filename))
           (bare-file-name (ly:find-file file-name)))
-
-      (cons
-       name
-       
-       (if (mac-font? bare-file-name)
-          (handle-mac-font name bare-file-name)
-          (cond
-           ((internal-font? file-name)
-            (ps-load-file (ly:find-file
-                           (format "~a.otf"  file-name))))
-           ((string? bare-file-name)
-            (ps-load-file file-name))
-           (else
-            (ly:warning (_ "cannot embed ~S=~S") name file-name)
-            "")))
-
-         )))
+      (cons name
+           (if (mac-font? bare-file-name)
+               (handle-mac-font name bare-file-name)
+               (cond
+                ((internal-font? file-name)
+                 (ps-load-file (ly:find-file
+                                (format "~a.otf" file-name))))
+                ((string? bare-file-name)
+                 (ps-load-file file-name))
+                (else
+                 (ly:warning (_ "cannot embed ~S=~S") name file-name)
+                 ""))))))
 
   (define (dir-join a b)
     (if (equal? a "")
        b
        (string-append a "/" b)))
-    
+
   (define (dir-listing dir-name)
     (define (dir-helper dir lst)
       (let ((e (readdir dir)))
-       (if (eof-object? e) lst (dir-helper dir (cons e lst)))))
+       (if (eof-object? e)
+           lst
+           (dir-helper dir (cons e lst)))))
     (reverse (dir-helper (opendir dir-name) '())))
-      
-  (define (handle-mac-font name filename)
-    (let*
-       ((dir-name  (tmpnam))
-        (files '())
-        (status 0)
-        (embed #f))
 
+  (define (handle-mac-font name filename)
+    (let* ((dir-name (tmpnam))
+          (files '())
+          (status 0)
+          (embed #f))
       (mkdir dir-name #o700)
       (set! status (ly:system
                    (format "cd ~a && fondu -force '~a'" dir-name filename)))
-      
       (set! files (dir-listing dir-name))
-      
       (for-each
        (lambda (f)
-        (let*
-            ((full-name  (dir-join dir-name f)))
-          
+        (let* ((full-name (dir-join dir-name f)))
           (if (and (not embed)
                    (equal? 'regular (stat:type (stat full-name)))
                    (equal? name (ly:ttf-ps-name full-name)))
-              
-              (set! embed
-                    (font-file-as-ps-string name full-name)))
-          
-          (if (or (equal? "." f) 
+              (set! embed (font-file-as-ps-string name full-name 0)))
+          (if (or (equal? "." f)
                   (equal? ".." f))
               #t
               (delete-file full-name))))
-
-
        files)
       (rmdir dir-name)
-
       (if (not embed)
          (begin
-           (set! embed "% failed \n")
-           (ly:warning (_ "cannot extract file matching ~a from ~a") name filename)))
+           (set! embed "% failed\n")
+           (ly:warning (_ "cannot extract file matching ~a from ~a")
+                       name filename)))
       embed))
 
-    (define (font-file-as-ps-string name file-name)
-      (let*
-         ((downcase-file-name (string-downcase file-name)))
-       
+  (define (font-file-as-ps-string name file-name font-index)
+    (let* ((downcase-file-name (string-downcase file-name)))
       (cond
        ((and file-name (string-endswith downcase-file-name ".pfa"))
        (embed-document file-name))
        (ly:pfb->pfa file-name))
        ((and file-name (string-endswith downcase-file-name ".ttf"))
        (ly:ttf->pfa file-name))
+       ((and file-name (string-endswith downcase-file-name ".ttc"))
+       (ly:ttf->pfa file-name font-index))
        ((and file-name (string-endswith downcase-file-name ".otf"))
        (ps-embed-cff (ly:otf->cff file-name) name 0))
        (else
        (ly:warning (_ "do not know how to embed ~S=~S") name file-name)
        ""))))
 
-    (define (mac-font? bare-file-name)
-      (and
-       (eq? PLATFORM 'darwin)
-       bare-file-name
-       (or
-       (string-endswith  bare-file-name ".dfont")
-       (= (stat:size (stat bare-file-name)) 0))))
-
-  (define (load-font font-name-filename)
-    (let* ((font (car font-name-filename))
-          (name (cadr font-name-filename))
-          (file-name (caddr font-name-filename))
+  (define (mac-font? bare-file-name)
+    (and (eq? PLATFORM 'darwin)
+        bare-file-name
+        (or (string-endswith bare-file-name ".dfont")
+            (= (stat:size (stat bare-file-name)) 0))))
+
+  (define (load-font font-psname-filename-fontindex)
+    (let* ((font (list-ref font-psname-filename-fontindex 0))
+          (name (list-ref font-psname-filename-fontindex 1))
+          (file-name (list-ref font-psname-filename-fontindex 2))
+          (font-index (list-ref font-psname-filename-fontindex 3))
           (bare-file-name (ly:find-file file-name)))
-      
-      (cons
-       name
-       (cond
-
-       ((mac-font? bare-file-name)
-        (handle-mac-font name bare-file-name))
-
-       ((and font (cff-font? font))
-        (ps-embed-cff (ly:otf-font-table-data font "CFF ")
-                      name
-                      0))
-
-       (bare-file-name (font-file-as-ps-string name bare-file-name))
-       (else
-        (ly:warning (_ "do not know how to embed font ~s ~s ~s")
-                    name file-name font))))))
+      (cons name
+           (cond ((mac-font? bare-file-name)
+                  (handle-mac-font name bare-file-name))
+                 ((and font (cff-font? font))
+                  (ps-embed-cff (ly:otf-font-table-data font "CFF ")
+                                name
+                                0))
+                 (bare-file-name (font-file-as-ps-string
+                                  name bare-file-name font-index))
+                 (else
+                  (ly:warning (_ "do not know how to embed font ~s ~s ~s")
+                              name file-name font))))))
        
-
   (define (load-fonts paper)
     (let* ((fonts (ly:paper-fonts paper))
 
           (all-font-names
            (map
             (lambda (font)
-              (cond
-               ((string? (ly:font-file-name font))
-                (list (list
-                       font
-                       (ly:font-name font)
-                       (ly:font-file-name font))))
-               ((ly:pango-font? font)
-                (map
-                 (lambda (name-psname-pair)
-                   (list #f
-                         (car name-psname-pair)
-                         (cdr name-psname-pair)))
-                 (ly:pango-font-physical-fonts font)))
-
-               (else
-                (ly:font-sub-fonts font))))
-
+              (cond ((string? (ly:font-file-name font))
+                     (list (list font
+                                 (ly:font-name font)
+                                 (ly:font-file-name font)
+                                 #f)))
+                    ((ly:pango-font? font)
+                     (map (lambda (psname-filename-fontindex)
+                            (list #f
+                                  (list-ref psname-filename-fontindex 0)
+                                  (list-ref psname-filename-fontindex 1)
+                                  (list-ref psname-filename-fontindex 2)))
+                          (ly:pango-font-physical-fonts font)))
+                    (else
+                     (ly:font-sub-fonts font))))
             fonts))
-          (font-names
-           (uniq-list
-            (sort (apply append all-font-names)
-                  (lambda (x y) (string<? (cadr x) (cadr y))))))
+          (font-names (uniq-list
+                       (sort (apply append all-font-names)
+                             (lambda (x y) (string<? (cadr x) (cadr y))))))
 
           ;; slightly spaghetti-ish: deciding what to load where
           ;; is smeared out.
-          (font-loader (lambda (name)
-                         (cond
-                          ((ly:get-option 'gs-load-fonts) 
-                           (load-font-via-GS name))
-                          ((ly:get-option 'gs-load-lily-fonts)
-                           (if (or
-                                (string-contains (caddr name) (ly:get-option 'datadir))
-                                (internal-font? (caddr name)))
-
-                               (load-font-via-GS name)
-                               (load-font name)))
-                          (else (load-font name)))))
-                        
+          (font-loader
+           (lambda (name)
+             (cond ((ly:get-option 'gs-load-fonts)
+                    (load-font-via-GS name))
+                   ((ly:get-option 'gs-load-lily-fonts)
+                    (if (or (string-contains (caddr name)
+                                             (ly:get-option 'datadir))
+                            (internal-font? (caddr name)))
+                        (load-font-via-GS name)
+                        (load-font name)))
+                   (else
+                    (load-font name)))))
           (pfas (map font-loader font-names)))
       pfas))
 
   (display "%%BeginProlog\n" port)
-
-  (format port
-           "/lilypond-datadir where {pop} {userdict /lilypond-datadir (~a) put } ifelse"
-           (ly:get-option 'datadir))
-  
+  (format
+   port
+   "/lilypond-datadir where {pop} {userdict /lilypond-datadir (~a) put } ifelse"
+   (ly:get-option 'datadir))
   (if load-fonts?
-      (for-each
-       (lambda (f)
-        (format port "\n%%BeginFont: ~a\n" (car f))
-        (display (cdr f) port)
-        (display "\n%%EndFont\n" port))
-       (load-fonts paper)))
-
+      (for-each (lambda (f)
+                 (format port "\n%%BeginFont: ~a\n" (car f))
+                 (display (cdr f) port)
+                 (display "%%EndFont\n" port))
+               (load-fonts paper)))
   (display (setup-variables paper) port)
 
   ;; adobe note 5002: should initialize variables before loading routines.
   (display (procset "music-drawing-routines.ps") port)
   (display (procset "lilyponddefs.ps") port)
-
   (display "%%EndProlog\n" port)
-  
   (display "%%BeginSetup\ninit-lilypond-parameters\n%%EndSetup\n\n" port))
 
 (define-public (output-framework basename book scopes fields)
         (paper (ly:paper-book-paper book))
         (systems (ly:paper-book-systems book))
         (page-stencils (map page-stencil (ly:paper-book-pages book)))
-        
         (landscape? (eq? (ly:output-def-lookup paper 'landscape) #t))
         (page-number (1- (ly:output-def-lookup paper 'first-page-number)))
         (page-count (length page-stencils))
         (port (ly:outputter-port outputter)))
-
-
     (if (ly:get-option 'clip-systems)
        (clip-system-EPSes basename book))
-
     (if (ly:get-option 'dump-signatures)
        (write-system-signatures basename (ly:paper-book-systems book) 1))
-  
     (output-scopes scopes fields basename)
     (display (file-header paper page-count #t) port)
-    
-    ;; don't do BeginDefaults PageMedia: A4 
+    ;; don't do BeginDefaults PageMedia: A4
     ;; not necessary and wrong
-    
     (write-preamble paper #t port)
-
     (for-each
      (lambda (page)
        (set! page-number (1+ page-number))
        (dump-page outputter page page-number page-count landscape?))
      page-stencils)
-
     (display "%%Trailer\n%%EOF\n" port)
     (ly:outputter-close outputter)
     (postprocess-output book framework-ps-module filename
-                        (ly:output-formats))))
+                       (ly:output-formats))))
 
 (define-public (dump-stencil-as-EPS paper dump-me filename
                                    load-fonts)
-  
-  (let*
-      ((xext (ly:stencil-extent dump-me X))
-       (yext (ly:stencil-extent dump-me Y))
-       (padding (ly:get-option 'eps-box-padding))
-       (left-overshoot (if (number? padding)
-                          (* -1 padding (ly:output-def-lookup paper 'mm))
-                          #f))
-       (bbox
-       (map
-        (lambda (x)
-          (if (or (nan? x) (inf? x)
+  (let* ((xext (ly:stencil-extent dump-me X))
+        (yext (ly:stencil-extent dump-me Y))
+        (padding (ly:get-option 'eps-box-padding))
+        (left-overshoot (if (number? padding)
+                            (* -1 padding (ly:output-def-lookup paper 'mm))
+                            #f))
+        (bbox
+         (map
+          (lambda (x)
+            (if (or (nan? x) (inf? x)
                     ;; FIXME: huh?
-                  (equal? (format #f "~S" x) "+#.#")
-                  (equal? (format #f "~S" x) "-#.#"))
-              0.0 x))
+                    (equal? (format #f "~S" x) "+#.#")
+                    (equal? (format #f "~S" x) "-#.#"))
+                0.0 x))
 
           ;; the left-overshoot is to make sure that
-          ;; bar numbers  stick out of margin uniformly.
+          ;; bar numbers stick out of margin uniformly.
           ;;
           (list
-           
            (if (number? left-overshoot)
                (min left-overshoot (car xext))
                (car xext))
            (car yext) (cdr xext) (cdr yext)))))
+    (dump-stencil-as-EPS-with-bbox paper dump-me filename load-fonts bbox)))
 
-       (dump-stencil-as-EPS-with-bbox paper dump-me filename load-fonts bbox)
-       ))
-        
-          
 (define-public (dump-stencil-as-EPS-with-bbox paper dump-me filename
                                              load-fonts
                                              bbox)
-  "Create an EPS file from stencil DUMP-ME to FILENAME. BBOX has format
-   (left-x, lower-y, right x, up-y).  If LOAD-FONTS set, include fonts inline." 
-
+  "Create an EPS file from stencil DUMP-ME to FILENAME. BBOX has
+format (left-x, lower-y, right x, up-y).  If LOAD-FONTS set, include
+fonts inline."
   (define (to-rounded-bp-box box)
     "Convert box to 1/72 inch with rounding to enlarge the box."
     (let* ((scale (ly:output-def-lookup paper 'output-scale))
           (strip-non-number (lambda (x)
-                              (if (or (nan? x) (inf? x)) 0.0 x)))
+                              (if (or (nan? x)
+                                      (inf? x))
+                                  0.0
+                                  x)))
           (directed-round (lambda (x rounder)
                             (inexact->exact
                              (rounder (/ (* (strip-non-number x) scale)
       (list (directed-round (car box) floor)
            (directed-round (cadr box) floor)
            (directed-round (max (1+ (car box)) (caddr box)) ceiling)
-           (directed-round (max (1+ (cadr box)) (cadddr box)) ceiling)
-         )))
+           (directed-round (max (1+ (cadr box)) (cadddr box)) ceiling))))
 
   (let* ((outputter (ly:make-paper-outputter
                     ;; FIXME: better wrap open/open-file,
                     ;; MINGW hack: need to have "b"inary for embedding CFFs
                     (open-file (format "~a.eps" filename) "wb")
                     'ps))
-
         (port (ly:outputter-port outputter))
         (rounded-bbox (to-rounded-bp-box bbox))
         (port (ly:outputter-port outputter))
         (header (eps-header paper rounded-bbox load-fonts)))
-
     (display header port)
     (write-preamble paper load-fonts port)
-    (display "gsave set-ps-scale-to-lily-scale \n" port)
+    (display "gsave set-ps-scale-to-lily-scale\n" port)
     (ly:outputter-dump-stencil outputter dump-me)
     (display "stroke grestore\n%%Trailer\n%%EOF\n" port)
     (ly:outputter-close outputter)))
 
-
-
-(define (clip-systems-to-region
-        basename paper systems region
-        do-pdf)
-
-  (let*
-      ((extents-system-pairs
-       (filtered-map
-        (lambda (paper-system)
-          (let*
-              ((x-ext (system-clipped-x-extent
-                       (paper-system-system-grob paper-system)
-                       region)))
-
-            (if x-ext
-                (cons x-ext paper-system)
-                #f)))
-        
-        systems))
-       (count 0))
-    
+(define (clip-systems-to-region basename paper systems region do-pdf)
+  (let* ((extents-system-pairs
+         (filtered-map (lambda (paper-system)
+                         (let* ((x-ext (system-clipped-x-extent
+                                        (paper-system-system-grob paper-system)
+                                        region)))
+                           (if x-ext
+                               (cons x-ext paper-system)
+                               #f)))
+                       systems))
+        (count 0))
     (for-each
      (lambda (ext-system-pair)
-       (let*
-          ((xext (car ext-system-pair))
-           (paper-system (cdr ext-system-pair))
-           (yext (paper-system-extent paper-system Y))
-           (bbox (list (car xext) (car yext)
-                       (cdr xext) (cdr yext)))
-           (filename (if (< 0 count)
-                         (format "~a-~a" basename count)
-                         basename)))
-
+       (let* ((xext (car ext-system-pair))
+             (paper-system (cdr ext-system-pair))
+             (yext (paper-system-extent paper-system Y))
+             (bbox (list (car xext) (car yext)
+                         (cdr xext) (cdr yext)))
+             (filename (if (< 0 count)
+                           (format "~a-~a" basename count)
+                           basename)))
         (set! count (1+ count))
-        (dump-stencil-as-EPS-with-bbox
-         paper
-         (paper-system-stencil paper-system)
-         filename
-         (ly:get-option 'include-eps-fonts)
-         bbox)
-
+        (dump-stencil-as-EPS-with-bbox paper
+                                       (paper-system-stencil paper-system)
+                                       filename
+                                       (ly:get-option 'include-eps-fonts)
+                                       bbox)
         (if do-pdf
-            (postscript->pdf  0 0  (format "~a.eps" filename)))
-        ))
-
-     extents-system-pairs)
-    ))
-
+            (postscript->pdf 0 0 (format "~a.eps" filename)))))
+     extents-system-pairs)))
 
 (define-public (clip-system-EPSes basename paper-book)
-  (define do-pdf (member  "pdf" (ly:output-formats)))
+  (define do-pdf
+    (member "pdf" (ly:output-formats)))
 
   (define (clip-score-systems basename systems)
-    (let*
-       ((layout (ly:grob-layout (paper-system-system-grob (car systems))))
-        (regions (ly:output-def-lookup layout 'clip-regions)))
-      
+    (let* ((layout (ly:grob-layout (paper-system-system-grob (car systems))))
+          (regions (ly:output-def-lookup layout 'clip-regions)))
       (for-each
        (lambda (region)
         (clip-systems-to-region
                  (rhythmic-location->file-string (cdr region)))
          layout systems region
          do-pdf))
-       
        regions)))
-  
 
   ;; partition in system lists sharing their layout blocks
-  (let*
-      ((systems (ly:paper-book-systems paper-book))
-       (count 0)
-       (score-system-list '()))
-
-    (fold 
+  (let* ((systems (ly:paper-book-systems paper-book))
+        (count 0)
+        (score-system-list '()))
+    (fold
      (lambda (system last-system)
-    
-       
        (if (not (and last-system
                     (equal? (paper-system-layout last-system)
                             (paper-system-layout system))))
           (set! score-system-list (cons '() score-system-list)))
-       
        (if (paper-system-layout system)
           (set-car! score-system-list (cons system (car score-system-list))))
-
        ;; pass value.
        system)
-
-     #f 
+     #f
      systems)
-
-    (for-each
-     (lambda (system-list)
-       (clip-score-systems
-       (if (> count 0)
-           (format "~a-~a" basename count)
-           basename)
-       system-list))
-
-     score-system-list)))
-
+    (for-each (lambda (system-list)
+               (clip-score-systems
+                (if (> count 0)
+                    (format "~a-~a" basename count)
+                    basename)
+                system-list))
+             score-system-list)))
 
 (define-public (output-preview-framework basename book scopes fields)
   (let* ((paper (ly:paper-book-paper book))
         (systems (ly:paper-book-systems book))
         (scale (ly:output-def-lookup paper 'output-scale))
         (to-dump-systems '()))
-
     ;; skip booktitles.
-    (if (and
-        (not (ly:get-option 'include-book-title-preview))
-        (pair? systems)
-        (ly:prob-property (car systems) 'is-book-title #f))
-
+    (if (and (not (ly:get-option 'include-book-title-preview))
+            (pair? systems)
+            (ly:prob-property (car systems) 'is-book-title #f))
        (set! systems (cdr systems)))
-
     (for-each
      (lambda (sys)
-       (if (or
-           (paper-system-title? sys)
-           (not (pair? to-dump-systems))
-           (paper-system-title? (car to-dump-systems)))
+       (if (or (paper-system-title? sys)
+              (not (pair? to-dump-systems))
+              (paper-system-title? (car to-dump-systems)))
           (set! to-dump-systems (cons sys to-dump-systems))))
      systems)
-
-    (dump-stencil-as-EPS
-     paper
-     (stack-stencils Y DOWN 0.0
-                    (map paper-system-stencil (reverse to-dump-systems)))
-     (format "~a.preview" basename)
-     #t)
-
+    (dump-stencil-as-EPS paper
+                        (stack-stencils Y DOWN 0.0
+                                        (map paper-system-stencil
+                                             (reverse to-dump-systems)))
+                        (format "~a.preview" basename)
+                        #t)
     (postprocess-output book framework-ps-module
                        (format "~a.preview.eps" basename)
                        (cons "png" (ly:output-formats)))))
 
 (if #f
     (define-public (output-preview-framework basename book scopes fields)
-
       (let* ((paper (ly:paper-book-paper book))
             (systems (ly:paper-book-systems book))
             (scale (ly:output-def-lookup paper 'output-scale))
        (dump-stencil-as-EPS paper dump-me
                             (format "~a.preview" basename)
                             #t)
-
        (postprocess-output book framework-ps-module
                            (format "~a.preview.eps" basename)
-                            (ly:output-formats)))))
+                           (ly:output-formats)))))
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
   (let* ((defs (ly:paper-book-paper book))
         (landscape (ly:output-def-lookup defs 'landscape))
         (output-scale (ly:output-def-lookup defs 'output-scale))
-        (convert (lambda (x) (* x output-scale (/ (ly:bp 1)))))
-        
+        (convert (lambda (x)
+                   (* x output-scale (/ (ly:bp 1)))))
         (paper-width (convert (ly:output-def-lookup defs 'paper-width)))
         (paper-height (convert (ly:output-def-lookup defs 'paper-height)))
-
         (w (if landscape paper-height paper-width))
-        (h (if landscape paper-width paper-height))
-        )
-
+        (h (if landscape paper-width paper-height)))
     (if (equal? (basename name ".ps") "-")
        (ly:warning (_ "cannot convert <stdout> to ~S" "PDF"))
        (postscript->pdf w h name))))
         (paper-width (ly:output-def-lookup defs 'paper-width))
         (paper-height (ly:output-def-lookup defs 'paper-height))
         (output-scale (ly:output-def-lookup defs 'output-scale)))
-
     (postscript->png resolution
                     (* paper-width output-scale (/ (ly:bp 1)))
                     (* paper-height output-scale (/ (ly:bp 1)))
                     name)))
 
-(define-public (convert-to-dvi book name)
-  (ly:warning (_ "cannot generate ~S using the postscript back-end") "DVI"))
-
-(define-public (convert-to-tex book name)
-  (ly:warning (_ "cannot generate ~S using the postscript back-end") "TeX"))
-
 (define-public (convert-to-ps book name)
   #t)
 
 (define-public (output-classic-framework basename book scopes fields)
-
-  (ly:error (_ "\nThe PostScript backend does not support the system-by-system 
-output. For that, use the EPS backend instead,
+  (ly:error (_ "\nThe PostScript backend does not support the
+system-by-system output.  For that, use the EPS backend instead,
 
   lilypond -dbackend=eps FILE
 
index 53905e087dcf56f6f93b1b94680c8b51d8feb8a0..5cb3a67490f43e9013375ea6964e34acf87f4ad0 100644 (file)
@@ -34,5 +34,3 @@
 (define-public (convert-to-ps . args) #t)
 (define-public (convert-to-pdf . args) #t)
 (define-public (convert-to-png . args) #t)
-(define-public (convert-to-dvi . args) #t)
-(define-public (convert-to-tex . args) #t)
index 45cbfb96397f40ac2636d5ddbf087b8855ff7b4f..69b48db8a15788d651a0da6cdb05359be2c48734 100644 (file)
@@ -33,5 +33,3 @@
 (define-public (convert-to-ps . args) #t)
 (define-public (convert-to-pdf . args) #t)
 (define-public (convert-to-png . args) #t)
-(define-public (convert-to-dvi . args) #t)
-(define-public (convert-to-tex . args) #t)
index 4b723e0135b2e95c2234d4d6b06d4d06285fa2a3..b2e0b5604d8edbfd599c0e4af6b5f72ca44451cd 100644 (file)
@@ -3,7 +3,7 @@
 ;;;;
 ;;;;  source file of the GNU LilyPond music typesetter
 ;;;; 
-;;;; (c) 2004--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+;;;; (c) 2004--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 
 (define-module (scm framework-svg))
 
diff --git a/scm/framework-tex.scm b/scm/framework-tex.scm
deleted file mode 100644 (file)
index 8cfa09b..0000000
+++ /dev/null
@@ -1,380 +0,0 @@
-;;;; framework-tex.scm -- structure for TeX output
-;;;;
-;;;; source file of the GNU LilyPond music typesetter
-;;;;
-;;;; (c) 2004--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
-
-(define-module (scm framework-tex)
-  #:export (output-framework-tex       
-           output-classic-framework-tex))
-
-(use-modules (ice-9 regex)
-            (ice-9 string-fun)
-            (scm page)
-            (scm paper-system)
-            (guile)
-            (srfi srfi-1)
-            (srfi srfi-13)
-            (srfi srfi-14)
-            (scm kpathsea)
-            (lily))
-
-(define format ergonomic-simple-format)
-
-(define (output-formats)
-  (define formats (ly:output-formats))
-  (set! formats (completize-formats formats))
-  (if (member "ps" formats)
-      (set! formats (cons "dvi" formats)))
-  (if (member "dvi" formats)
-      (set! formats (cons "tex" formats)))
-
-  (uniq-list formats))
-
-(define framework-tex-module (current-module))
-(define-public (sanitize-tex-string s)
-  (if (ly:get-option 'safe)
-      (regexp-substitute/global
-       #f "\\\\"
-       (regexp-substitute/global #f "([{}])" s 'pre  "\\" 1 'post)
-       'pre "$\\backslash$" 'post)
-      s))
-
-(define (symbol->tex-key sym)
-  (regexp-substitute/global
-   #f "_" (sanitize-tex-string (symbol->string sym)) 'pre "X" 'post))
-
-(define (tex-number-def prefix key number)
-  (string-append
-   "\\def\\" prefix (symbol->tex-key key) "{" number "}%\n"))
-
-(define-public (digits->letters str)
-  (regexp-substitute/global
-   #f "[-\\._]"
-   (regexp-substitute/global
-    #f "([0-9])" str
-    'pre
-    (lambda (match)
-      (make-string
-       1
-       (integer->char
-       (+ (char->integer #\A)
-          (- (char->integer #\0))
-          (char->integer (string-ref (match:substring match 1) 0)))
-       )))
-    'post)
-   'pre ""
-   'post))
-
-(define-public (tex-font-command-raw name magnification)
-  (string-append
-   "magfont"
-   (digits->letters (format "~a" name))
-   "m"
-   (string-encode-integer
-    (inexact->exact (round (* 1000 magnification))))))
-
-(define-public (tex-font-command font)
-  (tex-font-command-raw
-   (ly:font-file-name font) (ly:font-magnification font)))
-
-(define (otf-font-load-command paper font)
-  (let* ((sub-fonts (ly:font-sub-fonts font)))
-    (string-append
-     (apply string-append
-           (map
-            (lambda (sub-name)
-              (format "\\font\\~a=~a scaled ~a%\n"
-                      (tex-font-command-raw
-                       sub-name (ly:font-magnification font))
-                      sub-name
-                      (ly:number->string
-                       (inexact->exact
-                        (round (* 1000
-                                  (ly:font-magnification font)
-                                  (ly:paper-output-scale paper)))))))
-            sub-fonts)))))
-
-(define (simple-font-load-command paper font)
-   (format
-    "\\font\\~a=~a scaled ~a%\n"
-    (tex-font-command font)
-    (ly:font-file-name font)
-    (inexact->exact
-     (round (* 1000
-              (ly:font-magnification font)
-              (ly:paper-output-scale paper))))))
-
-(define (font-load-command paper font)
-  (if (pair? (ly:font-sub-fonts font))
-      (otf-font-load-command paper font)
-      (simple-font-load-command paper font)))
-
-(define (define-fonts paper)
-  (string-append
-   ;; UGH. FIXME.
-   "\\def\\lilypondpaperunit{mm}%\n"
-   (tex-number-def "lilypondpaper" 'output-scale
-                  (number->string (exact->inexact
-                                   (ly:paper-output-scale paper))))
-   (tex-string-def "lilypondpaper" 'papersize
-                  (eval 'papersizename (ly:output-def-scope paper)))
-   ;; paper/layout?
-   (tex-string-def "lilypondpaper" 'input-encoding
-                  (eval 'input-encoding (ly:output-def-scope paper)))
-
-   (apply string-append
-         (map (lambda (x) (font-load-command paper x))
-              (ly:paper-fonts paper)))))
-
-(define (tex-string-def prefix key str)
-  (if (equal? "" (sans-surrounding-whitespace (sanitize-tex-string str)))
-      (string-append "\\let\\" prefix (symbol->tex-key key) "\\undefined%\n")
-      (string-append "\\def\\" prefix (symbol->tex-key key)
-                    "{" (sanitize-tex-string str) "}%\n")))
-
-(define (header paper page-count classic?)
-  (let ((scale (ly:output-def-lookup paper 'output-scale))
-       (texpaper (string-append
-                  (ly:output-def-lookup paper 'papersizename)
-                  "paper"))
-       (landscape? (eq? #t (ly:output-def-lookup paper 'landscape))))
-    (string-append
-     "% Generated by LilyPond "
-     (lilypond-version) "\n"
-     "% at " "time-stamp,FIXME" "\n"
-     (if classic?
-        (tex-string-def "lilypond" 'classic "1")
-        "")
-
-     (if (ly:get-option 'safe)
-        "\\nofiles\n"
-        "")
-
-     (tex-string-def
-      "lilypondpaper" 'line-width
-      (ly:number->string (* scale (ly:output-def-lookup paper 'line-width))))
-     "\\def\\lilyponddocumentclassoptions{"
-     (sanitize-tex-string texpaper)
-     (if landscape? ",landscape" "")
-     "}%\n"
-     )))
-
-(define (header-end)
-  (string-append
-   "\\def\\scaletounit{ "
-   (number->string lily-unit->bigpoint-factor)
-   " mul }%\n"
-   "\\ifx\\lilypondstart\\undefined\n"
-   "  \\input lilyponddefs\n"
-   "\\fi\n"
-   "\\lilypondstart\n"
-   "\\lilypondspecial\n"
-   "\\lilypondpostscript\n"))
-
-(define (dump-page putter page last? with-extents?)
-  (ly:outputter-dump-string
-   putter
-   (format "\\lybox{~a}{~a}{%\n"
-          (if with-extents?
-              (interval-start (ly:stencil-extent page X))
-              0.0)
-          (if with-extents?
-              (- (interval-start (ly:stencil-extent page Y)))
-              0.0)))
-  (ly:outputter-dump-stencil putter page)
-  (ly:outputter-dump-string
-   putter
-   (if last?
-       "}%\n\\vfill\n"
-       "}%\n\\vfill\n\\lilypondpagebreak\n")))
-
-(define-public (output-framework basename book scopes fields)
-  (let* ((filename (format "~a.tex" basename))
-        (outputter  (ly:make-paper-outputter (open-file filename "wb") 'tex))
-        (paper (ly:paper-book-paper book))
-        (page-stencils (map page-stencil (ly:paper-book-pages book)))
-        (last-page (car (last-pair pages)))
-        (with-extents
-         (eq? #t (ly:output-def-lookup paper 'dump-extents))))
-    (for-each
-     (lambda (x)
-       (ly:outputter-dump-string outputter x))
-     (list
-      (header paper (length page-stencils) #f)
-      (define-fonts paper)
-      (header-end)))
-    (ly:outputter-dump-string outputter "\\lilypondnopagebreak\n")
-    (for-each
-     (lambda (page)
-       (dump-page outputter page (eq? last-page page) with-extents))
-     page-stencils)
-    (ly:outputter-dump-string outputter "\\lilypondend\n")
-    (ly:outputter-close outputter)
-    (postprocess-output book framework-tex-module filename
-                       (output-formats))))
-
-(define (dump-line putter line last?)
-  (ly:outputter-dump-string
-   putter
-   (format "\\lybox{~a}{~a}{%\n"
-          (ly:number->string
-           (max 0 (interval-end (paper-system-extent line X))))
-          (ly:number->string
-           (interval-length (paper-system-extent line Y)))))
-
-  (ly:outputter-dump-stencil putter (paper-system-stencil line))
-  (ly:outputter-dump-string
-   putter
-   (if last?
-       "}%\n"
-       "}\\interscoreline\n")))
-
-(define-public (output-classic-framework
-               basename book scopes fields)
-  (let* ((filename (format "~a.tex" basename))
-        (outputter  (ly:make-paper-outputter
-                     (open-file filename "w") 'tex))
-        (paper (ly:paper-book-paper book))
-        (lines (ly:paper-book-systems book))
-        (last-line (car (last-pair lines))))
-    (for-each
-     (lambda (x)
-       (ly:outputter-dump-string outputter x))
-     (list
-      ;;FIXME
-      (header paper (length lines) #f)
-      "\\def\\lilypondclassic{1}%\n"
-      (output-scopes scopes fields basename)
-      (define-fonts paper)
-      (header-end)))
-
-    (for-each
-     (lambda (line) (dump-line outputter line (eq? line last-line))) lines)
-    (ly:outputter-dump-string outputter "\\lilypondend\n")
-    (ly:outputter-close outputter)
-    (postprocess-output book framework-tex-module filename
-                       (output-formats))
-    ))
-
-(define-public (output-preview-framework
-               basename book scopes fields)
-  (let* ((filename (format "~a.tex" basename))
-        (outputter  (ly:make-paper-outputter (open-file filename "wb")
-                                             'tex))
-        (paper (ly:paper-book-paper book))
-        (lines (ly:paper-book-systems book))
-        (first-notes-index (list-index
-                            (lambda (s) (not (ly:paper-system-title? s)))
-                            lines)))
-
-    (for-each
-     (lambda (x)
-       (ly:outputter-dump-string outputter x))
-     (list
-      
-      ;;FIXME
-      (header paper (length lines) #f)
-      "\\def\\lilypondclassic{1}%\n"
-      (output-scopes scopes fields basename)
-      (define-fonts paper)
-      (header-end)))
-
-    (for-each
-     (lambda (lst)
-       (dump-line outputter lst (not (ly:paper-system-title? lst))))
-     (take lines (1+ first-notes-index)))
-    (ly:outputter-dump-string outputter "\\lilypondend\n")
-    (ly:outputter-close outputter)
-    (postprocess-output book framework-tex-module filename
-                       (output-formats))))
-
-(define-public (convert-to-pdf book name)
-  (let* ((defs (ly:paper-book-paper book))
-        (paper-width (ly:output-def-lookup defs 'paper-width))
-        (paper-height (ly:output-def-lookup defs 'paper-height))
-        (output-scale (ly:output-def-lookup defs 'output-scale)))
-    (postscript->pdf (* paper-width output-scale (/ (ly:bp 1)))
-                    (* paper-height output-scale (/ (ly:bp 1)))
-                    (string-append (dir-basename name ".tex") ".ps"))))
-
-(define-public (convert-to-png book name)
-  (let* ((defs (ly:paper-book-paper book))
-        (resolution (ly:output-def-lookup defs 'pngresolution))
-        (paper-width (ly:output-def-lookup defs 'paper-width))
-        (paper-height (ly:output-def-lookup defs 'paper-height))
-        (output-scale (ly:output-def-lookup defs 'output-scale)))
-    (postscript->png
-     (if (number? resolution)
-        resolution
-        (ly:get-option 'resolution))
-
-     (* paper-width output-scale (/ (ly:bp 1)))
-     (* paper-height output-scale (/ (ly:bp 1)))
-
-     (string-append (dir-basename name ".tex") ".ps"))))
-
-(define-public (convert-to-ps book name)
-  (let* ((paper (ly:paper-book-paper book))
-        (preview? (string-contains name ".preview"))
-        (papersizename (ly:output-def-lookup paper 'papersizename))
-        (landscape? (eq? #t (ly:output-def-lookup paper 'landscape)))
-        (base (dir-basename name ".tex"))
-        (ps-name (format "~a.ps"  base ".ps"))
-        (cmd (string-append "dvips"
-                            (if preview?
-                                " -E"
-                                (string-append
-                                 " -t"
-                                 ;; careful: papersizename is user-set.
-                                 (sanitize-command-option papersizename)
-                                 ""))
-                            (if landscape? " -tlandscape" "")
-                            (if (ly:kpathsea-find-file "lm.map")
-                                " -u+lm.map" "")
-                            (if (ly:kpathsea-find-file "ecrm10.pfa")
-                                " -u+ec-mftrace.map" "")
-                            " -u+lilypond.map -Ppdf" ""
-                            " -o" ps-name
-                            " " base)))
-    (if (access? ps-name W_OK)
-       (delete-file ps-name))
-    (if (not (ly:get-option 'verbose))
-       (begin
-         (ly:message (_ "Converting to `~a'...") (string-append base ".ps"))
-         (ly:progress "\n")))
-    (ly:system cmd)))
-
-(define-public (convert-to-dvi book name)
-  (let* ((curr-extra-mem
-         (string->number
-          (regexp-substitute/global
-           #f " *%.*\n?"
-           (ly:kpathsea-expand-variable "extra_mem_top")
-           'pre "" 'post)))
-        (base (dir-basename name ".tex"))
-        (cmd (format
-              #f "latex \\\\nonstopmode \\\\input '~a'" name)))
-
-    ;; FIXME: latex 'foo bar' works, but \input 'foe bar' does not?
-    (if (string-index name (char-set #\space #\ht #\newline #\cr))
-       (ly:error (_"TeX file name must not contain whitespace: `~a'") name))
-
-    (setenv "extra_mem_top" (number->string (max curr-extra-mem 1024000)))
-    (let ((dvi-name (string-append base ".dvi")))
-      (if (access? dvi-name W_OK)
-         (delete-file dvi-name)))
-    (if (not (ly:get-option 'verbose))
-       (begin
-         (ly:message (_ "Converting to `~a'...") (string-append base ".dvi"))
-         (ly:progress "\n")))
-
-    ;; FIXME: set in environment?
-    (if (ly:get-option 'safe)
-       (set! cmd (string-append "openout_any=p " cmd)))
-
-    (ly:system cmd)))
-
-(define-public (convert-to-tex book name)
-  #t)
-
diff --git a/scm/framework-texstr.scm b/scm/framework-texstr.scm
deleted file mode 100644 (file)
index 3f61aea..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-;;;; framework-tex.scm --
-;;;;
-;;;;  source file of the GNU LilyPond music typesetter
-;;;;
-;;;; (c) 2004--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
-
-(define-module (scm framework-texstr)
-  #:export (output-framework-tex       
-           output-classic-framework-tex))
-
-(use-modules (ice-9 regex)
-            (scm paper-system)
-            (ice-9 string-fun)
-            (guile)
-            (srfi srfi-1)
-            (srfi srfi-13)
-            (lily))
-
-(define format ergonomic-simple-format)
-
-(define (header filename)
-  (format  "% header
-\\input{lilypond-tex-metrics}
-\\documentclass{article}
-\\lilyglobalscale{1.0}
-\\lilymetricsfile{~a.textmetrics}
-\\begin{document}
-" filename))
-
-(define (footer)
-  "
-\\end{document}
-")
-
-(define-public (output-classic-framework basename book scopes fields)
-  (let* ((filename (format #f "~a.texstr" basename))
-        (outputter (ly:make-paper-outputter
-                    (open-file filename "wb")
-                    (ly:get-option 'backend)))
-        (paper (ly:paper-book-paper book))
-        (lines (ly:paper-book-systems book)))
-    (ly:outputter-dump-string outputter (header basename))
-    (for-each
-     (lambda (system)
-       (ly:outputter-dump-stencil outputter (paper-system-stencil system)))
-     lines)
-    (ly:outputter-dump-string outputter (footer))))
-
-(define-public (output-framework basename book scopes fields )
-  (let* ((filename (format #f "~a.texstr" basename))
-        (outputter
-         (ly:make-paper-outputter
-          (open-file filename "wb")
-          (ly:get-option 'backend)))
-        (paper (ly:paper-book-paper book))
-        (pages (ly:paper-book-pages book)))
-    (ly:outputter-dump-string outputter (header basename))
-    (for-each
-     (lambda (page)
-       (ly:outputter-dump-stencil outputter page))
-     pages)
-    (ly:outputter-dump-string outputter (footer))))
-
-(define-public (convert-to-ps . args) #t)
-(define-public (convert-to-pdf . args) #t)
-(define-public (convert-to-png . args) #t)
-(define-public (convert-to-dvi . args) #t)
-(define-public (convert-to-tex . args) #t)
index 5e713e5d712258f89523db347471dda98e861d35..0bf9d6bda717f42ca4ca07c32c3679599836b516 100644 (file)
@@ -2,45 +2,59 @@
 ;;;;
 ;;;;  source file of the GNU LilyPond music typesetter
 ;;;;
-;;;; (c) 2004--2008 Carl D. Sorensen <c_sorensen@byu.edu>
+;;;; (c) 2004--2009 Carl D. Sorensen <c_sorensen@byu.edu>
+
+;
+;  Utility functions
+;
+;
+    
+(define (string-x-extent start-point end-point)
+  "Return the x-extent of a string that goes from start-point
+to end-point."
+  (let ((x1 (car start-point))
+         (x2 (car end-point)))
+    (if (> x1 x2)
+        (cons x2 x1)
+        (cons x1 x2))))
+
+(define (string-y-extent start-point end-point)
+  "Return the y-extent of a string that goes from start-point
+to end-point."
+  (let ((y1 (cdr start-point))
+         (y2 (cdr end-point)))
+    (if (> y1 y2)
+        (cons y2 y1)
+        (cons y1 y2))))
 
-(define (fret-parse-marking-list marking-list fret-count)
-  (let* ((fret-range (list 1 fret-count))
-         (barre-list '())
-         (dot-list '())
-         (xo-list '())
-         (output-alist '()))
-    (let parse-item ((mylist marking-list))
-      (if (not (null? mylist))
-          (let* ((my-item (car mylist)) (my-code (car my-item)))
-            (cond
-             ((or (eq? my-code 'open)(eq? my-code 'mute))
-              (set! xo-list (cons* my-item xo-list)))
-             ((eq? my-code 'barre)
-              (set! barre-list (cons* (cdr my-item) barre-list)))
-             ((eq? my-code 'place-fret)
-              (set! dot-list (cons* (cdr my-item) dot-list))))
-            (parse-item (cdr mylist)))))
-    ;; calculate fret-range
-    (let ((maxfret 0) (minfret 99))
-      (let updatemax ((fret-list dot-list))
-        (if (null? fret-list)
-            '()
-            (let ((fretval (second (car fret-list))))
-              (if (> fretval maxfret) (set! maxfret fretval))
-              (if (< fretval minfret) (set! minfret fretval))
-              (updatemax (cdr fret-list)))))
-      (if (> maxfret fret-count)
-          (set! fret-range
-                (list minfret
-                      (let ((upfret (- (+ minfret fret-count) 1)))
-                        (if (> maxfret upfret) maxfret upfret)))))
-      ; subtract fret from dots
-      (set! dot-list (subtract-base-fret (- (car fret-range) 1) dot-list)))
-    (acons 'fret-range fret-range
-           (acons 'barre-list barre-list
-                  (acons 'dot-list dot-list
-                         (acons 'xo-list xo-list '()))))))
+
+(define (cons-fret new-value old-list)
+  "Put together a fret-list in the format desired by parse-string"
+  (if (eq? old-list '())
+      (list new-value)
+      (cons* new-value old-list)))
+
+(define (get-numeric-from-key keystring)
+  "Get the numeric value from a key of the form k:val"
+  (string->number (substring keystring 2 (string-length keystring))))
+
+(define (numerify mylist)
+  "Convert string values to numeric or character"
+  (if (null? mylist)
+      '()
+      (let ((numeric-value (string->number (car mylist))))
+        (if numeric-value
+            (cons* numeric-value (numerify (cdr mylist)))
+            (cons* (car (string->list (car mylist)))
+                   (numerify (cdr mylist)))))))
+
+(define (stepmag mag)
+  "Calculate the font step necessary to get a desired magnification"
+  (* 6 (/ (log mag) (log 2))))
+
+(define (fret-count fret-range)
+ "Calculate the fret count for the diagram given the range of frets in the diagram."
+ (1+ (- (cdr fret-range) (car fret-range))))
 
 (define (subtract-base-fret base-fret dot-list)
   "Subtract @var{base-fret} from every fret in @var{dot-list}"
                          (third this-list)))
                (subtract-base-fret base-fret (cdr dot-list))))))
 
+(define (make-bezier-sandwich-list start stop base height 
+         half-thickness orientation)
+  "Make the argument list for a bezier sandwich from
+string coordinate @var{start} to string-coordinate @var{stop} with a 
+baseline at fret coordinate @var{base}, a height of
+@var{height}, and a half thickness of @var{half-thickness}."
+  (let* ((width (+ (- stop start) 1))
+         (cp-left-width (+ (* width half-thickness) start))
+         (cp-right-width (- stop (* width half-thickness)))
+         (bottom-control-point-height 
+           (- base (- height half-thickness)))
+         (top-control-point-height
+           (- base height))
+         (left-end-point 
+          (stencil-coordinates base start orientation))
+         (right-end-point
+          (stencil-coordinates base stop orientation))
+         (left-upper-control-point
+          (stencil-coordinates 
+            top-control-point-height cp-left-width orientation))
+         (left-lower-control-point
+          (stencil-coordinates 
+            bottom-control-point-height cp-left-width orientation))
+         (right-upper-control-point
+          (stencil-coordinates 
+            top-control-point-height cp-right-width orientation))
+         (right-lower-control-point
+          (stencil-coordinates 
+            bottom-control-point-height cp-right-width orientation)))
+    ; order of bezier control points is:
+    ;    left cp low, right cp low, right end low, left end low
+    ;    right cp high, left cp high, left end high, right end high.
+    ;
+   (list left-lower-control-point
+         right-lower-control-point
+         right-end-point
+         left-end-point
+         right-upper-control-point
+         left-upper-control-point
+         left-end-point
+         right-end-point)))
+
+(define (drop-paren item-list)
+  "Drop a final parentheses from a fret indication list
+@code{item-list} resulting from a terse string specification of barre."
+  (if (> (length item-list) 0)
+      (let* ((max-index (- (length item-list) 1))
+             (last-element (car (list-tail item-list max-index))))
+        (if (or (equal? last-element ")") (equal? last-element "("))
+            (list-head item-list max-index)
+            item-list))
+      item-list))
+
+(define (get-sub-list value master-list)
+  "Get a sub-list whose cadr is equal to @var{value} from @var{master-list}"
+  (if (eq? master-list '())
+      #f
+      (let ((sublist (car master-list)))
+        (if (equal? (cadr sublist) value)
+            sublist
+            (get-sub-list value (cdr master-list))))))
+
+(define (merge-details key alist-list . default)
+  "Return @code{alist-list} entries for @code{key}, in one combined alist.
+There can be two @code{alist-list} entries for a given key. The first
+comes from the override-markup function, the second comes
+from property settings during a regular override.
+This is necessary because some details can be set in one
+place, while others are set in the other.  Both details
+lists must be merged into a single alist.
+Return @code{default} (optional, else #f) if not
+found."
+
+  (define (helper key alist-list default)
+    (if (null? alist-list)
+        default
+        (let* ((handle (assoc key (car alist-list))))
+          (if (pair? handle)
+              (append (cdr handle) (chain-assoc-get key (cdr alist-list) '()))
+              (helper key (cdr alist-list) default)))))
+
+  (helper key alist-list
+          (if (pair? default) (car default) #f)))
+
+;
+;  Conversions between fret/string coordinate system and x-y coordinate
+;  system.
+;  
+;  Fret coordinates are measured down the fretboard from the nut,
+;   starting at 0.
+;
+; String coordinates are measured from the lowest string, starting at 0.
+;
+; The x-y origin is at the intersection of the nut and the lowest string.
+;
+; X coordinates are positive to the right.
+; Y coordinates are positive up.
+;
+
+(define (negate-extent extent)
+  "Return the extent in an axis opposite to the axis of @code{extent}."
+   (cons (- (cdr extent)) (- (car extent))))
+
+(define (stencil-fretboard-extent stencil fretboard-axis orientation)
+  "Return the extent of @code{stencil} in the @code{fretboard-axis} 
+direction."
+  (if (eq? fretboard-axis 'fret)
+  (cond ((eq? orientation 'landscape)
+         (ly:stencil-extent stencil X))
+        ((eq? orientation 'opposing-landscape)
+         (negate-extent (ly:stencil-extent stencil X)))
+        (else
+         (negate-extent (ly:stencil-extent stencil Y))))
+        ; else -- eq? fretboard-axis 'string
+  (cond ((eq? orientation 'landscape)
+         (ly:stencil-extent stencil Y))
+        ((eq? orientation 'opposing-landscape)
+         (negate-extent (ly:stencil-extent stencil Y)))
+        (else
+         (ly:stencil-extent stencil Y)))))
+
+
+(define (stencil-fretboard-offset stencil fretboard-axis orientation)
+ "Return a the stencil coordinates of the center of @code{stencil}
+in the @code{fretboard-axis} direction."
+  (* 0.5 (interval-length 
+           (stencil-fretboard-extent stencil fretboard-axis orientation))))
+
+(define (stencil-coordinates fret-coordinate string-coordinate orientation)
+ "Return a pair @code{(x-coordinate . y-coordinate)} in stencil coordinate 
+system."
+  (cond
+   ((eq? orientation 'landscape)
+    (cons fret-coordinate string-coordinate))
+   ((eq? orientation 'opposing-landscape)
+    (cons (- fret-coordinate) (- string-coordinate)))
+   (else
+    (cons string-coordinate (- fret-coordinate)))))
+(define (string-thickness string thickness-factor)
+  (expt (1+ thickness-factor) (1- string)))
+  
+;
+;  Functions that create stencils used in the fret diagram
+;
+
 (define (sans-serif-stencil layout props mag text)
   "Create a stencil in sans-serif font based on @var{layout} and @var{props}
 with magnification @var{mag} of the string @var{text}."
@@ -62,371 +222,720 @@ with magnification @var{mag} of the string @var{text}."
            (prepend-alist-chain 'font-family 'sans props))))
     (interpret-markup layout my-props text)))
 
-(define (draw-strings string-count fret-range th size orientation)
+
+(define (string-stencil string string-count fret-range
+                        th thickness-factor size orientation)
+ "Make a stencil for @code{string}, given the fret-diagram
+overall parameters."
+  (let* ((string-coordinate (- string-count string))
+         (current-string-thickness 
+           (* th size (string-thickness string thickness-factor)))
+         (fret-half-thickness (* size th 0.5))
+         (half-string (* current-string-thickness 0.5))
+         (start-coordinates
+           (stencil-coordinates
+             (- fret-half-thickness)
+             (- (* size string-coordinate) half-string)
+             orientation))
+         (end-coordinates
+           (stencil-coordinates
+            (+ fret-half-thickness (* size (1+ (fret-count fret-range))))
+            (+ half-string (* size string-coordinate))
+            orientation)))
+   (ly:round-filled-box (string-x-extent start-coordinates end-coordinates)
+                        (string-y-extent start-coordinates end-coordinates)
+                        (* th size))))
+   
+(define (fret-stencil fret string-count th 
+                      thickness-factor size orientation)
+ "Make a stencil for @code{fret}, given the fret-diagram overall parameters."
+ (let* ((low-string-half-thickness 
+          (* 0.5 size th (string-thickness string-count thickness-factor)))
+        (fret-half-thickness (* 0.5 size th)) 
+        (start-coordinates 
+         (stencil-coordinates
+           (* size fret)
+           (- fret-half-thickness low-string-half-thickness)
+           orientation))
+        (end-coordinates
+         (stencil-coordinates
+          (* size fret)
+          (* size (1- string-count))
+          orientation)))
+  (make-line-stencil
+   (* size th)
+   (car start-coordinates) (cdr start-coordinates)
+   (car end-coordinates) (cdr end-coordinates))))
+
+(define (make-straight-barre-stencil 
+          size half-thickness fret-coordinate
+          start-string-coordinate end-string-coordinate orientation)
+  "Create a straight barre stencil."
+  (let ((start-point 
+         (stencil-coordinates
+          (* size fret-coordinate)
+          (* size start-string-coordinate)
+          orientation))
+        (end-point
+         (stencil-coordinates
+          (* size fret-coordinate)
+          (* size end-string-coordinate)
+          orientation)))
+   (make-line-stencil
+     half-thickness
+     (car start-point)
+     (cdr start-point)
+     (car end-point)
+     (cdr end-point))))
+
+(define (make-curved-barre-stencil 
+          size half-thickness fret-coordinate
+          start-string-coordinate end-string-coordinate orientation)
+  "Create a curved barre stencil."
+  (let* ((bezier-thick 0.1)
+         (bezier-height 0.5)
+         (bezier-list 
+           (make-bezier-sandwich-list
+            (* size start-string-coordinate)
+            (* size end-string-coordinate)
+            (* size fret-coordinate)
+            (* size bezier-height)
+            (* size bezier-thick)
+            orientation))
+         (box-lower-left
+          (stencil-coordinates 
+           (+ (* size fret-coordinate) half-thickness)
+           (- (* size start-string-coordinate) half-thickness)
+           orientation))
+         (box-upper-right
+          (stencil-coordinates
+           (- (* size fret-coordinate) (* size bezier-height) half-thickness)
+           (+ (* size end-string-coordinate) half-thickness)
+           orientation))
+         (x-extent (cons (car box-lower-left) (car box-upper-right)))
+         (y-extent (cons (cdr box-lower-left) (cdr box-upper-right))))
+    (ly:make-stencil
+      (list 'bezier-sandwich
+            `(quote ,bezier-list)
+            (* size bezier-thick))
+      x-extent
+      y-extent)))
+
+
+;
+;
+;  Functions used to draw fret-diagram elements
+;
+;
+
+(define (draw-strings string-count fret-range th 
+                      thickness-factor size orientation)
   "Draw the string lines for a fret diagram with
 @var{string-count} strings and frets as indicated in @var{fret-range}.
 Line thickness is given by @var{th}, fret & string spacing by
 @var{size}.  Orientation is determined by @var{orientation}. "
-  (let* ((fret-count (+ (- (cadr fret-range) (car fret-range)) 1))
-         (sl (* (+ fret-count 1) size))
-         (sth (* size th))
-         (gap (- size sth))
-         (string-stencil
-          (if (eq? orientation 'normal)
-              (make-line-stencil sth 0 0 0 sl)
-              (make-line-stencil sth 0 0 sl 0))))
-    (if (= string-count 1)
-        string-stencil
-        (if (eq? orientation 'normal)
-            (ly:stencil-combine-at-edge
-             (draw-strings (- string-count 1) fret-range th size orientation)
-             X RIGHT
-             string-stencil
-             gap)
-            (ly:stencil-combine-at-edge
-             (draw-strings (- string-count 1) fret-range th size orientation)
-             Y UP
-             string-stencil
-             gap)))))
-
-(define (draw-fret-lines fret-count string-count th size orientation)
+
+  (define (helper x)
+     (if (null? (cdr x))
+         (string-stencil 
+          (car x) string-count fret-range th
+          thickness-factor size orientation)
+         (ly:stencil-add 
+           (string-stencil 
+            (car x) string-count fret-range th
+            thickness-factor size orientation)
+           (helper (cdr x)))))
+
+  (let* ( (string-list (map 1+ (iota string-count))))
+   (helper string-list)))
+
+(define (draw-fret-lines fret-count string-count th 
+                         thickness-factor size orientation)
   "Draw @var{fret-count} fret lines for a fret diagram
 with @var{string-count} strings.  Line thickness is given by @var{th},
 fret & string spacing by @var{size}. Orientation is given by @var{orientation}"
-  (let* ((sth (* size th))
-         (gap (- size sth))
-         (fret-line (draw-fret-line string-count th size orientation)))
-    (if (= fret-count 1)
-        fret-line
-        (if (eq? orientation 'normal)
-            (ly:stencil-combine-at-edge
-             (draw-fret-lines
-              (- fret-count 1) string-count th size orientation)
-             Y UP
-             fret-line
-             gap 0)
-            (ly:stencil-combine-at-edge
-             (draw-fret-lines
-              (- fret-count 1) string-count th size orientation)
-             X RIGHT
-             fret-line
-             gap 0)))))
-
-(define (draw-fret-line string-count th size orientation)
-  "Draw a fret line for a fret diagram."
-  (let* ((fret-length (* (- string-count 1) size))
-         (sth (* size th))
-         (half-thickness (* sth 0.5)))
-    (if (eq? orientation 'normal)
-        (make-line-stencil sth half-thickness size
-               (- fret-length half-thickness) size)
-        (make-line-stencil sth 0 half-thickness
-               0 (- fret-length half-thickness)))))
-
-(define (draw-thick-zero-fret details string-count th size orientation)
-  "Draw a thick zeroth fret for a fret diagram whose base fret is not 1."
+  (define (helper x)
+     (if (null? (cdr x))
+         (fret-stencil 
+          (car x) string-count th thickness-factor
+           size orientation)
+         (ly:stencil-add 
+           (fret-stencil 
+            (car x) string-count th thickness-factor
+            size orientation)
+           (helper (cdr x)))))
+
+  (let* ( (fret-list (iota (1+ fret-count))))
+   (helper fret-list)))
+
+(define (draw-thick-zero-fret details string-count th 
+                              thickness-factor size orientation)
+  "Draw a thick zeroth fret for a fret diagram whose base fret is 1."
   (let* ((sth (* th size))
+         (half-lowest-string-thickness 
+           (* 0.5 th (string-thickness string-count thickness-factor))) 
+         (half-thick (* 0.5 sth))
          (top-fret-thick
-          (* sth (assoc-get 'top-fret-thickness details 3.0)))
-         (half-thick (* sth 0.5))
-         (x1 half-thick)
-         (x2 (+ half-thick (* size (- string-count 1))))
-         (y1 (- half-thick))
-         (y2 (+ top-fret-thick half-thick))
-         (x-extent (cons (- x1) x2))
-         (y-extent (cons sth top-fret-thick)))
-    (if (eq? orientation 'normal)
-        (ly:make-stencil (list 'round-filled-box x1 x2 y1 y2 sth)
-                         x-extent y-extent)
-        (ly:make-stencil (list 'round-filled-box y1 y2 x1 x2 sth)
-                         y-extent x-extent))))
-
-(define (draw-frets fret-range string-count th size orientation)
+           (* sth (assoc-get 'top-fret-thickness details 3.0)))
+         (start-string-coordinate (- half-lowest-string-thickness))
+         (end-string-coordinate (+ (* size (1- string-count)) half-thick))
+         (start-fret-coordinate half-thick)
+         (end-fret-coordinate (- half-thick top-fret-thick))
+         (lower-left 
+          (stencil-coordinates 
+            start-fret-coordinate start-string-coordinate orientation))
+         (upper-right 
+          (stencil-coordinates 
+            end-fret-coordinate end-string-coordinate orientation)))
+   (ly:round-filled-box 
+     (cons (car lower-left) (car upper-right))
+     (cons (cdr lower-left) (cdr upper-right))
+     sth)))
+  
+
+(define (draw-capo details string-count fret fret-count th size 
+                   dot-pos orientation)
+  "Draw a capo indicator across the full width of the fret-board
+at @var{fret}."
+(let* ((capo-thick
+         (* size (assoc-get 'capo-thickness details 0.5)))
+       (half-thick (* capo-thick 0.5))
+       (last-string-pos 0)
+       (first-string-pos (* size (- string-count 1)))
+       (fret-pos ( * size (1- (+ dot-pos fret))))
+       (start-point 
+         (stencil-coordinates fret-pos first-string-pos orientation))
+       (end-point 
+         (stencil-coordinates fret-pos last-string-pos orientation)))
+  (make-line-stencil
+     capo-thick 
+     (car start-point) (cdr start-point)
+     (car end-point) (cdr end-point))))
+
+(define (draw-frets fret-range string-count th 
+                    thickness-factor size orientation)
   "Draw the fret lines for a fret diagram with
 @var{string-count} strings and frets as indicated in @var{fret-range}.
 Line thickness is given by @var{th}, fret & string spacing by
 @var{size}. Orientation is given by @var{orientation}."
-  (let* ((fret-count (+ (- (cadr fret-range) (car fret-range)) 1))
-         (fret-length (* (- string-count 1) size))
-         (half-thickness (* th 0.5))
-         (base-fret (car fret-range))
-         (fret-zero (draw-fret-line string-count th size orientation)))
-    (if (eq? orientation 'normal)
-        (ly:stencil-combine-at-edge
-         (draw-fret-lines fret-count string-count th size orientation)
-         Y UP
-         fret-zero
-         (- size th))
-        (ly:stencil-combine-at-edge
-         fret-zero X RIGHT
-         (draw-fret-lines fret-count string-count th size orientation)
-         (- size th)))))
+  (let* ((my-fret-count (fret-count fret-range)))
+   (draw-fret-lines 
+     my-fret-count string-count th thickness-factor size orientation)))
 
 (define (draw-dots layout props string-count fret-count
                    size finger-code
                    dot-position dot-radius dot-thickness dot-list orientation)
   "Make dots for fret diagram."
 
-  (let* ((details (chain-assoc-get 'fret-diagram-details props '()))
+  (let* ((details (merge-details 'fret-diagram-details props '()))
          (scale-dot-radius (* size dot-radius))
          (scale-dot-thick (* size dot-thickness))
          (dot-color (assoc-get 'dot-color details 'black))
-         (finger-xoffset -0.25)
-         (finger-yoffset (* -0.5 size ))
+         (finger-label-padding 0.3)
          (dot-label-font-mag
-          (* scale-dot-radius (assoc-get 'dot-label-font-mag details 1.0)))
+           (* scale-dot-radius (assoc-get 'dot-label-font-mag details 1.0)))
          (string-label-font-mag
-          (* size (assoc-get 'string-label-font-mag details 0.6)))
+           (* size 
+             (assoc-get 'string-label-font-mag details 
+                        (cond ((or (eq? orientation 'landscape)
+                                   (eq? orientation 'opposing-landscape))
+                               0.5)
+                              (else  0.6)))))
          (mypair (car dot-list))
          (restlist (cdr dot-list))
          (string (car mypair))
          (fret (cadr mypair))
-         (xpos (* size (if (eq? orientation 'normal)
-                           (- string-count string)
-                           (+ (- fret 1 ) dot-position))))
-         (ypos (* size (if (eq? orientation 'normal)
-                           (+ 2 (- fret-count fret dot-position ))
-                           (- string-count string))))
+         (fret-coordinate (* size (+ (1- fret) dot-position)))
+         (string-coordinate (* size (- string-count string)))
+         (dot-coordinates 
+          (stencil-coordinates fret-coordinate string-coordinate orientation))
          (extent (cons (- scale-dot-radius) scale-dot-radius))
          (finger (caddr mypair))
          (finger (if (number? finger) (number->string finger) finger))
-         (dotstencil (if (eq? dot-color 'white)
-                         (ly:stencil-add
-                          (make-circle-stencil
+         (dot-stencil (if (eq? dot-color 'white)
+                       (ly:stencil-add
+                         (make-circle-stencil
                            scale-dot-radius scale-dot-thick #t)
-                          (ly:stencil-in-color
+                         (ly:stencil-in-color
                            (make-circle-stencil
-                            (- scale-dot-radius (* 0.5 scale-dot-thick))
-                            0  #t)
+                             (- scale-dot-radius (* 0.5 scale-dot-thick))
+                             0  #t)
                            1 1 1))
-                         (make-circle-stencil
-                          scale-dot-radius scale-dot-thick #t)))
-         (positioned-dot (begin
-                           (ly:stencil-translate-axis
-                            (ly:stencil-translate-axis dotstencil xpos X)
-                            ypos Y)))
-         (labeled-dot-stencil
-          (if (or (eq? finger '())(eq? finger-code 'none))
-              positioned-dot
-              (if (eq? finger-code 'in-dot)
-                  (let* ((finger-label
-                          (centered-stencil
-                           (sans-serif-stencil
-                            layout props dot-label-font-mag finger))))
-                    (ly:stencil-translate-axis
-                     (ly:stencil-translate-axis
-                      (ly:stencil-add
-                       dotstencil
-                       (if (eq? dot-color 'white)
-                           finger-label
-                           (ly:stencil-in-color finger-label 1 1 1)))
-                      xpos X)
-                     ypos Y))
-                  (if (eq? finger-code 'below-string)
-                      (ly:stencil-add
-                       positioned-dot
-                       (if (eq? orientation 'normal)
-                           (ly:stencil-translate-axis
-                            (ly:stencil-translate-axis
-                             (centered-stencil
-                              (sans-serif-stencil
-                               layout props string-label-font-mag finger))
-                             xpos X)
-                            (* size finger-yoffset) Y)
-                           (ly:stencil-translate-axis
-                            (ly:stencil-translate-axis
-                             (centered-stencil
-                              (sans-serif-stencil
-                               layout props string-label-font-mag finger))
-                             (* size (+ 2 fret-count finger-yoffset)) X)
-                            ypos Y)))
-                      ;unknown finger-code
-                      positioned-dot)))))
+                       (make-circle-stencil
+                         scale-dot-radius scale-dot-thick #t)))
+         (positioned-dot (ly:stencil-translate dot-stencil dot-coordinates))
+         (labeled-dot-stencil 
+           (cond 
+             ((or (eq? finger '())(eq? finger-code 'none))
+              positioned-dot)
+             ((eq? finger-code 'in-dot)
+              (let ((finger-label 
+                     (centered-stencil
+                       (sans-serif-stencil
+                         layout props dot-label-font-mag finger))))
+              (ly:stencil-translate
+                (ly:stencil-add
+                  dot-stencil
+                  (if (eq? dot-color 'white)
+                      finger-label
+                      (ly:stencil-in-color finger-label 1 1 1)))
+                dot-coordinates)))
+             ((eq? finger-code 'below-string)
+              (let* ((label-stencil 
+                       (centered-stencil 
+                         (sans-serif-stencil
+                           layout props string-label-font-mag
+                           finger)))
+                     (label-fret-offset
+                       (stencil-fretboard-offset 
+                         label-stencil 'fret orientation))
+                     (label-fret-coordinate 
+                       (+ (* size (+ 1 fret-count finger-label-padding))
+                          label-fret-offset))
+                     (label-string-coordinate string-coordinate)
+                     (label-translation 
+                       (stencil-coordinates 
+                         label-fret-coordinate
+                         label-string-coordinate
+                         orientation)))
+                (ly:stencil-add
+                  positioned-dot
+                  (ly:stencil-translate label-stencil label-translation))))
+             (else ;unknown finger-code
+               positioned-dot))))
     (if (null? restlist)
-        labeled-dot-stencil
-        (ly:stencil-add
-         (draw-dots
+      labeled-dot-stencil
+      (ly:stencil-add
+        (draw-dots
           layout props string-count fret-count size finger-code
           dot-position dot-radius dot-thickness restlist orientation)
-         labeled-dot-stencil))))
+        labeled-dot-stencil))))
 
-(define (draw-xo layout props string-count fret-range size xo-list orientation)
+(define (draw-xo 
+          layout props string-count fret-range size xo-list orientation)
   "Put open and mute string indications on diagram, as contained in
 @var{xo-list}."
-  (let* ((details (chain-assoc-get 'fret-diagram-details props '()))
-         (fret-count (+ (- (cadr fret-range) (car fret-range) 1)))
+  (let* ((details (merge-details 'fret-diagram-details props '()))
          (xo-font-mag
-          (* size (assoc-get 'xo-font-magnification details 0.5)))
-         (xo-horizontal-offset (* size -0.35))
+           (* size (assoc-get 
+                    'xo-font-magnification details 
+                    (cond ((or (eq? orientation 'landscape)
+                            (eq? orientation 'opposing-landscape))
+                           0.4)
+                     (else 0.4)))))
          (mypair (car xo-list))
          (restlist (cdr xo-list))
          (glyph-string (if (eq? (car mypair) 'mute)
-                           (assoc-get 'mute-string details "X")
-                           (assoc-get 'open-string details "O")))
-         (xpos
-          (+ (* (- string-count (cadr mypair)) size) xo-horizontal-offset ))
-         (glyph-stencil (if (eq? orientation 'normal)
-                            (ly:stencil-translate-axis
-                             (sans-serif-stencil
-                              layout props (* size xo-font-mag) glyph-string)
-                             xpos X)
-                            (ly:stencil-translate-axis
-                             (sans-serif-stencil
-                              layout props (* size xo-font-mag) glyph-string)
-                             xpos Y))))
+                         (assoc-get 'mute-string details "X")
+                         (assoc-get 'open-string details "O")))
+         (glyph-string-coordinate (* (- string-count (cadr mypair)) size))
+         (glyph-stencil 
+           (centered-stencil
+             (sans-serif-stencil 
+               layout props (* size xo-font-mag) glyph-string)))
+         (glyph-stencil-coordinates 
+           (stencil-coordinates 0 glyph-string-coordinate orientation))
+         (positioned-glyph
+           (ly:stencil-translate glyph-stencil glyph-stencil-coordinates)))
     (if (null? restlist)
-        glyph-stencil
+        positioned-glyph
         (ly:stencil-add
          (draw-xo
           layout props string-count fret-range size restlist orientation)
-         glyph-stencil))))
-
-(define (make-bezier-sandwich-list start stop base height thickness orientation)
-  "Make the argument list for a bezier sandwich from
-@var{start} to @var{stop} with a baseline at @var{base}, a height of
-@var{height}, and a thickness of @var{thickness}.  If @var{orientation} is
-@var{'normal}, @var{base} is a y coordinate, otherwise it's an x coordinate."
-  (let* ((width (+ (- stop start) 1))
-         (x1 (+ (* width thickness) start))
-         (x2 (- stop (* width thickness)))
-         (bottom-control-point-height
-          (if (eq? orientation 'normal)
-              (+ base (- height thickness))
-              (- base (- height thickness))))
-         (top-control-point-height
-          (if (eq? orientation 'normal)
-             (+ base height)
-             (- base height))))
- ; order of bezier control points is:
- ;    left cp low, right cp low, right end low, left end low
- ;    right cp high, left cp high, left end high, right end high.
-    (if (eq? orientation 'normal)
-       (list (cons x1 bottom-control-point-height)
-             (cons x2 bottom-control-point-height)
-             (cons stop base)
-             (cons start base)
-             (cons x2 top-control-point-height)
-             (cons x1 top-control-point-height)
-             (cons start base)
-             (cons stop base))
-       (list (cons bottom-control-point-height x1)
-             (cons bottom-control-point-height x2)
-             (cons base stop)
-             (cons base start)
-             (cons top-control-point-height x2)
-             (cons top-control-point-height x1)
-             (cons base start)
-             (cons base stop)))))
+         positioned-glyph))))
 
 (define (draw-barre layout props string-count fret-range
-                   size finger-code dot-position dot-radius
-                   barre-list orientation)
+                    size finger-code dot-position dot-radius
+                    barre-list orientation)
   "Create barre indications for a fret diagram"
   (if (not (null? barre-list))
-      (let* ((details (chain-assoc-get 'fret-diagram-details props '()))
-            (string1 (caar barre-list))
-            (string2 (cadar barre-list))
-            (fret (caddar barre-list))
-            (top-fret (cadr fret-range))
-            (low-fret (car fret-range))
-            (barre-type (assoc-get 'barre-type details 'curved))
-            (scale-dot-radius (* size dot-radius))
-            (barre-vertical-offset 0.5)
-            ;; 2 is 1 for empty fret at bottom of figure + 1 for interval
-            ;; (top-fret - fret + 1) -- not an arbitrary constant
-            (dot-center-y
-             (* size (- (+ 2 (- (cadr fret-range) fret)) dot-position)))
-            (dot-center-fret-coordinate (+ (- fret low-fret) dot-position))
-            (barre-fret-coordinate
-             (+ dot-center-fret-coordinate
-                (* (- barre-vertical-offset 0.5) dot-radius)))
-            (barre-start-string-coordinate (- string-count string1))
-            (barre-end-string-coordinate (- string-count string2))
-            (bottom
-             (+ dot-center-y (* barre-vertical-offset scale-dot-radius)))
-            (left (* size (- string-count string1)))
-            (right (* size (- string-count string2)))
-            (bezier-thick 0.1)
-            (bezier-height 0.5)
-            (bezier-list
-             (if (eq? orientation 'normal)
-                 (make-bezier-sandwich-list
-                  (* size barre-start-string-coordinate)
-                  (* size barre-end-string-coordinate)
-                   (* size (+ 2 (- top-fret 
-                                   (+ low-fret barre-fret-coordinate))))
-                  (* size bezier-height)
-                  (* size bezier-thick)
-                  orientation)
-                 (make-bezier-sandwich-list
-                  (* size barre-start-string-coordinate)
-                  (* size barre-end-string-coordinate)
-                  (* size barre-fret-coordinate)
-                  (* size bezier-height)
-                  (* size bezier-thick)
-                  orientation)))
-             (barre-stencil
-              (if (eq? barre-type 'straight)
-                  (if (eq? orientation 'normal)
-                      (make-line-stencil scale-dot-radius left dot-center-y
-                                         right dot-center-y)
-                      (make-line-stencil scale-dot-radius
-                             (* size barre-fret-coordinate)
-                             (* size barre-start-string-coordinate)
-                             (* size barre-fret-coordinate)
-                             (* size barre-end-string-coordinate)))
-                  (if (eq? orientation 'normal)
-                      (ly:make-stencil
-                       (list 'bezier-sandwich
-                             `(quote ,bezier-list)
-                             (* size bezier-thick))
-                       (cons left right)
-                       (cons bottom (+ bottom (* size bezier-height))))
-                      (ly:make-stencil
-                       (list 'bezier-sandwich
-                             `(quote ,bezier-list)
-                             (* size bezier-thick))
-                       (cons bottom (+ bottom (* size bezier-height)))
-                       (cons left right))))))
-        (if (not (null? (cdr barre-list)))
-            (ly:stencil-add
-            barre-stencil
-            (draw-barre layout props string-count fret-range size finger-code
-                        dot-position dot-radius (cdr barre-list)))
-            barre-stencil ))))
-
-(define (stepmag mag)
-  "Calculate the font step necessary to get a desired magnification"
-  (* 6 (/ (log mag) (log 2))))
+    (let* ((details (merge-details 'fret-diagram-details props '()))
+           (string1 (caar barre-list))
+           (string2 (cadar barre-list))
+           (barre-fret (caddar barre-list))
+           (top-fret (cdr fret-range))
+           (low-fret (car fret-range))
+           (fret (1+ (- barre-fret low-fret)))
+           (barre-vertical-offset 0.5)
+           (dot-center-fret-coordinate (+ (1- fret) dot-position))
+           (barre-fret-coordinate
+             (+ dot-center-fret-coordinate
+                (* (- barre-vertical-offset 0.5) dot-radius)))
+           (barre-start-string-coordinate (- string-count string1))
+           (barre-end-string-coordinate (- string-count string2))
+           (scale-dot-radius (* size dot-radius))
+           (barre-type (assoc-get 'barre-type details 'curved))
+           (barre-stencil
+             (cond 
+               ((eq? barre-type 'straight)
+                (make-straight-barre-stencil 
+                  size scale-dot-radius 
+                  barre-fret-coordinate barre-start-string-coordinate
+                  barre-end-string-coordinate orientation))
+               ((eq? barre-type 'curved)
+                (make-curved-barre-stencil 
+                  size scale-dot-radius
+                  barre-fret-coordinate barre-start-string-coordinate
+                  barre-end-string-coordinate orientation)))))
+      (if (not (null? (cdr barre-list)))
+        (ly:stencil-add
+          barre-stencil
+          (draw-barre layout props string-count fret-range size finger-code
+                      dot-position dot-radius (cdr barre-list) orientation))
+        barre-stencil ))))
 
 (define (label-fret layout props string-count fret-range size orientation)
   "Label the base fret on a fret diagram"
-  (let* ((details (chain-assoc-get 'fret-diagram-details props '()))
-        (base-fret (car fret-range))
-        (label-font-mag (assoc-get 'fret-label-font-mag details 0.5))
-        (label-vertical-offset
-         (assoc-get 'fret-label-vertical-offset details -0.2))
-        (number-type (assoc-get 'number-type details 'roman-lower))
-        (fret-count (+ (- (cadr fret-range) (car fret-range)) 1))
-        (label-text
-         (cond
-           ((equal? number-type 'roman-lower)
-           (fancy-format #f "~(~@r~)" base-fret))
-           ((equal? number-type 'roman-upper)
-           (fancy-format #f "~@r" base-fret))
-           ((equal? 'arabic number-type)
-           (fancy-format #f "~d" base-fret))
-           (else (fancy-format #f "~(~@r~)" base-fret)))))
-    (if (eq? orientation 'normal)
-       (ly:stencil-translate-axis
-        (sans-serif-stencil layout props (* size label-font-mag) label-text)
-        (* size (+ fret-count label-vertical-offset)) Y)
-       (ly:stencil-translate-axis
-        (sans-serif-stencil layout props (* size label-font-mag) label-text)
-        (* size (+ 1 label-vertical-offset)) X))))
-
-(define-builtin-markup-command (fret-diagram-verbose layout props marking-list)
-  (list?) ; argument type
+  (let* ((details (merge-details 'fret-diagram-details props '()))
+         (base-fret (car fret-range))
+         (label-font-mag (assoc-get 'fret-label-font-mag details 0.5))
+         (label-space (* 0.5 size))
+         (label-dir (assoc-get 'label-dir details RIGHT))
+         (label-vertical-offset
+           (assoc-get 'fret-label-vertical-offset details 0))
+         (number-type
+           (assoc-get 'number-type details 'roman-lower))
+         (label-text
+           (cond
+             ((equal? number-type 'roman-lower)
+              (fancy-format #f "~(~@r~)" base-fret))
+             ((equal? number-type 'roman-upper)
+              (fancy-format #f "~@r" base-fret))
+             ((equal? 'arabic number-type)
+              (fancy-format #f "~d" base-fret))
+             (else (fancy-format #f "~(~@r~)" base-fret))))
+         (label-stencil
+           (centered-stencil
+             (sans-serif-stencil 
+               layout props (* size label-font-mag) label-text)))
+         (label-half-width 
+           (stencil-fretboard-offset label-stencil 'string orientation))
+         (label-outside-diagram (+ label-space label-half-width)))
+    (ly:stencil-translate
+      label-stencil
+      (stencil-coordinates 
+        (1+ (* size label-vertical-offset))
+        (if (eq? label-dir LEFT)
+            (- label-outside-diagram)
+            (+ (* size (1- string-count)) label-outside-diagram))
+        orientation))))
+
+;;
+;;
+;;  markup commands and associated functions
+;;
+;;
+;;
+
+(define (fret-parse-marking-list marking-list my-fret-count)
+ "Parse a fret-diagram-verbose marking list into component sublists"
+ (let* ((fret-range (cons 1 my-fret-count))
+         (capo-fret 0)
+         (barre-list '())
+         (dot-list '())
+         (xo-list '())
+         (output-alist '()))
+    (let parse-item ((mylist marking-list))
+      (if (not (null? mylist))
+          (let* ((my-item (car mylist)) (my-code (car my-item)))
+            (cond
+             ((or (eq? my-code 'open)(eq? my-code 'mute))
+              (set! xo-list (cons* my-item xo-list)))
+             ((eq? my-code 'barre)
+              (set! barre-list (cons* (cdr my-item) barre-list)))
+             ((eq? my-code 'capo)
+               (set! capo-fret (cadr my-item)))
+             ((eq? my-code 'place-fret)
+              (set! dot-list (cons* (cdr my-item) dot-list))))
+            (parse-item (cdr mylist)))))
+    ;; calculate fret-range
+    (let ((maxfret 0) 
+          (minfret (if (> capo-fret 0) capo-fret 99)))
+      (let updatemax ((fret-list dot-list))  ;CHANGE THIS TO HELPER FUNCTION?
+        (if (null? fret-list)
+            '()
+            (let ((fretval (second (car fret-list))))
+              (if (> fretval maxfret) (set! maxfret fretval))
+              (if (< fretval minfret) (set! minfret fretval))
+              (updatemax (cdr fret-list)))))
+      (if (> maxfret my-fret-count)
+          (set! fret-range
+                (cons minfret
+                      (let ((upfret (- (+ minfret my-fret-count) 1)))
+                        (if (> maxfret upfret) maxfret upfret)))))
+      (set! capo-fret (1+ (- capo-fret minfret)))
+      ; subtract fret from dots
+      (set! dot-list (subtract-base-fret (- (car fret-range) 1) dot-list)))
+    (acons 'fret-range fret-range
+           (acons 'barre-list barre-list
+                  (acons 'dot-list dot-list
+                         (acons 'xo-list xo-list 
+                                (acons 'capo-fret capo-fret '())))))))
+
+(define (make-fret-diagram layout props marking-list)
+  "Make a fret diagram markup"
+  (let* (
+         ; note: here we get items from props that are needed in this routine,
+         ; or that are needed in more than one of the procedures
+         ; called from this routine.  If they're only used in one of the
+         ; sub-procedure, they're obtained in that procedure
+         (size (chain-assoc-get 'size props 1.0)) ; needed for everything
+;TODO -- get string-count directly from length of stringTunings;
+;         from FretBoard engraver, but not from markup call
+         (details (merge-details 'fret-diagram-details props '()))
+         (string-count
+          (assoc-get 'string-count details 6)) ; needed for everything
+         (my-fret-count
+          (assoc-get 'fret-count details 4)) ; needed for everything
+         (orientation
+          (assoc-get 'orientation details 'normal)) ; needed for everything
+         (finger-code
+          (assoc-get
+           'finger-code details 'none)) ; needed for draw-dots and draw-barre
+         (default-dot-radius
+           (if (eq? finger-code 'in-dot) 0.425 0.25)) ; bigger dots if labeled
+         (default-dot-position
+           (if (eq? finger-code 'in-dot)
+               (- 0.95 default-dot-radius)
+               0.6)) ; move up to make room for bigger if labeled
+         (dot-radius
+          (assoc-get
+           'dot-radius details default-dot-radius))  ; needed for draw-dots
+                                                     ; and draw-barre
+         (dot-position
+          (assoc-get
+           'dot-position details default-dot-position)) ; needed for draw-dots
+                                                        ; and draw-barre
+         (th
+          (* (ly:output-def-lookup layout 'line-thickness)
+             (chain-assoc-get 'thickness props 0.5))) ; needed for draw-frets
+                                                      ; and draw-strings
+         (thickness-factor (assoc-get 'string-thickness-factor details 0))
+         (alignment
+          (chain-assoc-get 'align-dir props -0.4)) ; needed only here
+         (xo-padding
+          (* size (assoc-get 'xo-padding details 0.2))) ; needed only here
+         (parameters (fret-parse-marking-list marking-list my-fret-count))
+         (capo-fret (assoc-get 'capo-fret parameters 0))
+         (dot-list (cdr (assoc 'dot-list parameters)))
+         (xo-list (cdr (assoc 'xo-list parameters)))
+         (fret-range (cdr (assoc 'fret-range parameters)))
+         (my-fret-count (fret-count fret-range))
+         (barre-list (cdr (assoc 'barre-list parameters)))
+         (barre-type
+          (assoc-get 'barre-type details 'curved))
+         (fret-diagram-stencil
+          (ly:stencil-add
+           (draw-strings 
+             string-count fret-range th thickness-factor size orientation)
+           (draw-frets 
+             fret-range string-count th thickness-factor size orientation))))
+    (if (and (not (null? barre-list))
+             (not (eq? 'none barre-type)))
+        (set! fret-diagram-stencil
+              (ly:stencil-add
+               (draw-barre layout props string-count fret-range size
+                           finger-code dot-position dot-radius
+                           barre-list orientation)
+               fret-diagram-stencil)))
+    (if (not (null? dot-list))
+        (set! fret-diagram-stencil
+              (ly:stencil-add
+               fret-diagram-stencil
+               (draw-dots layout props string-count my-fret-count 
+                          size finger-code dot-position dot-radius
+                          th dot-list orientation))))
+    (if (= (car fret-range) 1)
+        (set! fret-diagram-stencil
+                  (ly:stencil-add
+                     fret-diagram-stencil 
+                     (draw-thick-zero-fret
+                       details string-count th 
+                       thickness-factor size orientation))))
+    (if (not (null? xo-list))
+     (let* ((diagram-fret-top 
+              (car (stencil-fretboard-extent
+                     fret-diagram-stencil
+                     'fret
+                     orientation)))
+            (xo-stencil 
+              (draw-xo layout props string-count fret-range
+                       size xo-list orientation))
+            (xo-fret-offset
+              (stencil-fretboard-offset
+                xo-stencil 'fret orientation)))
+      (set! fret-diagram-stencil
+        (ly:stencil-add
+          fret-diagram-stencil
+          (ly:stencil-translate
+            xo-stencil
+            (stencil-coordinates
+             (- diagram-fret-top
+                xo-fret-offset
+                (* size xo-padding))
+             0 ; no string offset
+             orientation))))))
+               
+    (if (> capo-fret 0)
+        (set! fret-diagram-stencil
+              (ly:stencil-add
+                fret-diagram-stencil
+                (draw-capo details string-count capo-fret my-fret-count
+                           th size dot-position orientation))))
+    (if (> (car fret-range) 1)
+      (set! fret-diagram-stencil
+        (ly:stencil-add
+           fret-diagram-stencil
+           (label-fret 
+             layout props string-count fret-range size orientation))))
+      (ly:stencil-aligned-to fret-diagram-stencil X alignment)))
+
+(define (fret-parse-definition-string props definition-string)
+ "Parse a fret diagram string and return a pair containing:
+@var{props}, modified as necessary by the definition-string
+a fret-indication list with the appropriate values"
+ (let* ((fret-count 4)
+        (string-count 6)
+        (fret-range (cons 1 fret-count))
+        (barre-list '())
+        (dot-list '())
+        (xo-list '())
+        (output-list '())
+        (new-props '())
+        (details (merge-details 'fret-diagram-details props '()))
+        (items (string-split definition-string #\;)))
+   (let parse-item ((myitems items))
+     (if (not (null? (cdr myitems)))
+         (let ((test-string (car myitems)))
+           (case (car (string->list (substring test-string 0 1)))
+             ((#\s) (let ((size (get-numeric-from-key test-string)))
+                      (set! props (prepend-alist-chain 'size size props))))
+             ((#\f) (let* ((finger-code (get-numeric-from-key test-string))
+                           (finger-id (case finger-code
+                                        ((0) 'none)
+                                        ((1) 'in-dot)
+                                        ((2) 'below-string))))
+                      (set! details
+                            (acons 'finger-code finger-id details))))
+             ((#\c) (set! output-list
+                          (cons-fret
+                           (cons
+                            'barre
+                            (numerify
+                             (string-split (substring test-string 2) #\-)))
+                           output-list)))
+             ((#\h) (let ((fret-count (get-numeric-from-key test-string)))
+                      (set! details
+                            (acons 'fret-count fret-count details))))
+             ((#\w) (let ((string-count (get-numeric-from-key test-string)))
+                      (set! details
+                            (acons 'string-count string-count details))))
+             ((#\d) (let ((dot-size (get-numeric-from-key test-string)))
+                      (set! details
+                            (acons 'dot-radius dot-size details))))
+             ((#\p) (let ((dot-position (get-numeric-from-key test-string)))
+                      (set! details
+                            (acons 'dot-position dot-position details))))
+             (else
+              (let ((this-list (string-split test-string #\-)))
+                (if (string->number (cadr this-list))
+                    (set! output-list
+                          (cons-fret
+                           (cons 'place-fret (numerify this-list))
+                           output-list))
+                    (if (equal? (cadr this-list) "x" )
+                        (set! output-list
+                              (cons-fret
+                               (list 'mute (string->number (car this-list)))
+                               output-list))
+                        (set! output-list
+                              (cons-fret
+                               (list 'open (string->number (car this-list)))
+                               output-list)))))))
+           (parse-item (cdr myitems)))))
+   ;  add the modified details
+   (set! props
+         (prepend-alist-chain 'fret-diagram-details details props))
+   `(,props . ,output-list))) ;ugh -- hard-coded spell -- procedure better
+
+(define-public 
+  (fret-parse-terse-definition-string props definition-string)
+  "Parse a fret diagram string that uses terse syntax; 
+return a pair containing:
+@var{props}, modified to include the string-count determined by the
+definition-string, and
+a fret-indication list with the appropriate values"
+;TODO -- change syntax to fret\string-finger
+
+  (let* ((details (merge-details 'fret-diagram-details props '()))
+         (barre-start-list '())
+         (output-list '())
+         (new-props '())
+         (items (string-split definition-string #\;))
+         (string-count (- (length items) 1)))
+    (let parse-item ((myitems items))
+      (if (not (null? (cdr myitems)))
+          (let* ((test-string (car myitems))
+                 (current-string (- (length myitems) 1))
+                 (indicators (string-split test-string #\ )))
+            (let parse-indicators ((myindicators indicators))
+              (if (not (eq? '() myindicators))
+                  (let* ((this-list (string-split (car myindicators) #\-))
+                         (max-element-index (- (length this-list) 1))
+                         (last-element
+                          (car (list-tail this-list max-element-index)))
+                         (fret
+                          (if (string->number (car this-list))
+                              (string->number (car this-list))
+                              (car this-list))))
+                    (if (equal? last-element "(")
+                        (begin
+                          (set! barre-start-list
+                                (cons-fret (list current-string fret)
+                                           barre-start-list))
+                          (set! this-list
+                                (list-head this-list max-element-index))))
+                    (if (equal? last-element ")")
+                        (let* ((this-barre
+                                (get-sub-list fret barre-start-list))
+                               (insert-index (- (length this-barre) 1)))
+                          (set! output-list
+                                (cons-fret (cons* 'barre
+                                                  (car this-barre)
+                                                  current-string
+                                                  (cdr this-barre))
+                                           output-list))
+                          (set! this-list
+                                (list-head this-list max-element-index))))
+                    (if (number? fret)
+                        (set!
+                         output-list
+                         (cons-fret (cons*
+                                     'place-fret
+                                     current-string
+                                     (drop-paren (numerify this-list)))
+                                    output-list))
+                        (if (equal? (car this-list) "x" )
+                            (set!
+                             output-list
+                             (cons-fret
+                              (list 'mute current-string)
+                              output-list))
+                            (set!
+                             output-list
+                             (cons-fret
+                              (list 'open current-string)
+                              output-list))))
+                    (parse-indicators (cdr myindicators)))))
+            (parse-item (cdr myitems)))))
+    (set! details (acons 'string-count string-count details))
+    (set! props (prepend-alist-chain 'fret-diagram-details details props))
+    `(,props . ,output-list))) ; ugh -- hard coded; proc is better
+
+
+(define-builtin-markup-command 
+  (fret-diagram-verbose layout props marking-list)
+  (pair?) ; argument type (list, but use pair? for speed)
   instrument-specific-markup ; markup type
   ((align-dir -0.4) ; properties and defaults
    (size 1.0)
@@ -458,6 +967,11 @@ Place a small @q{o} at the top of string @var{string-number}.
 Place a barre indicator (much like a tie) from string @var{start-string}
 to string @var{end-string} at fret @var{fret-number}.
 
+@item (capo @var{fret-number})
+Place a capo indicator (a large solid bar) across the entire fretboard
+at fret location @var{fret-number}.  Also, set fret @var{fret-number}
+to be the lowest fret on the fret diagram.
+
 @item (place-fret @var{string-number} @var{fret-number} @var{finger-value})
 Place a fret playing indication on string @var{string-number} at fret
 @var{fret-number} with an optional fingering label @var{finger-value}.
@@ -471,118 +985,6 @@ indications per string.
 
   (make-fret-diagram layout props marking-list))
 
-(define (make-fret-diagram layout props marking-list)
-  "Make a fret diagram markup"
-  (let* (
-         ; note: here we get items from props that are needed in this routine,
-        ; or that are needed in more than one of the procedures
-        ; called from this routine.  If they're only used in one of the
-        ; sub-procedure, they're obtained in that procedure
-         (size (chain-assoc-get 'size props 1.0)) ; needed for everything
-;TODO -- get string-count directly from length of stringTunings;
-;         from FretBoard engraver, but not from markup call
-;TODO -- adjust padding for fret label?  it appears to be too close to dots
-         (details
-         (chain-assoc-get
-          'fret-diagram-details props '())) ; fret diagram details
-         (string-count
-         (assoc-get 'string-count details 6)) ; needed for everything
-         (fret-count
-         (assoc-get 'fret-count details 4)) ; needed for everything
-         (orientation
-         (assoc-get 'orientation details 'normal)) ; needed for everything
-         (finger-code
-         (assoc-get
-          'finger-code details 'none)) ; needed for draw-dots and draw-barre
-         (default-dot-radius
-          (if (eq? finger-code 'in-dot) 0.425 0.25)) ; bigger dots if labeled
-         (default-dot-position
-          (if (eq? finger-code 'in-dot)
-              (- 0.95 default-dot-radius)
-              0.6)) ; move up to make room for bigger if labeled
-         (dot-radius
-         (assoc-get
-          'dot-radius details default-dot-radius))  ; needed for draw-dots
-                                                     ; and draw-barre
-         (dot-position
-         (assoc-get
-          'dot-position details default-dot-position)) ; needed for draw-dots
-                                                        ; and draw-barre
-         (th
-         (* (ly:output-def-lookup layout 'line-thickness)
-            (chain-assoc-get 'thickness props 0.5))) ; needed for draw-frets
-                                                      ; and draw-strings
-         (alignment
-         (chain-assoc-get 'align-dir props -0.4)) ; needed only here
-         (xo-padding
-         (* size (assoc-get 'xo-padding details 0.2))) ; needed only here
-         (label-space (* 0.25 size))
-         (label-dir (assoc-get 'label-dir details RIGHT))
-         (parameters (fret-parse-marking-list marking-list fret-count))
-         (dot-list (cdr (assoc 'dot-list parameters)))
-         (xo-list (cdr (assoc 'xo-list parameters)))
-         (fret-range (cdr (assoc 'fret-range parameters)))
-         (fret-count (1+ (- (cadr fret-range) (car fret-range))))
-         (barre-list (cdr (assoc 'barre-list parameters)))
-         (barre-type
-          (assoc-get 'barre-type details 'curved))
-         (fret-diagram-stencil
-         (ly:stencil-add
-          (draw-strings string-count fret-range th size orientation)
-          (draw-frets fret-range string-count th size orientation))))
-    (if (and (not (null? barre-list))
-             (not (eq? 'none barre-type)))
-       (set! fret-diagram-stencil
-             (ly:stencil-add
-              (draw-barre layout props string-count fret-range size
-                          finger-code dot-position dot-radius
-                          barre-list orientation)
-              fret-diagram-stencil)))
-    (if (not (null? dot-list))
-        (set! fret-diagram-stencil
-             (ly:stencil-add
-              fret-diagram-stencil
-              (draw-dots layout props string-count fret-count 
-                         size finger-code dot-position dot-radius
-                         th dot-list orientation))))
-    (if (= (car fret-range) 1)
-       (set! fret-diagram-stencil
-             (if (eq? orientation 'normal)
-                 (ly:stencil-combine-at-edge
-                  fret-diagram-stencil Y UP
-                  (draw-thick-zero-fret
-                   props string-count th size orientation))
-                 (ly:stencil-combine-at-edge
-                  fret-diagram-stencil X LEFT
-                  (draw-thick-zero-fret
-                   props string-count th size orientation)))))
-    (if (not (null? xo-list))
-       (set! fret-diagram-stencil
-             (if (eq? orientation 'normal)
-                 (ly:stencil-combine-at-edge
-                  fret-diagram-stencil Y UP
-                  (draw-xo layout props string-count fret-range
-                           size xo-list orientation)
-                  xo-padding )
-                 (ly:stencil-combine-at-edge
-                  fret-diagram-stencil X LEFT
-                  (draw-xo layout props string-count fret-range
-                           size xo-list orientation)
-                  xo-padding))))
-    (if (> (car fret-range) 1)
-       (set! fret-diagram-stencil
-             (if (eq? orientation 'normal)
-                 (ly:stencil-combine-at-edge
-                  fret-diagram-stencil X label-dir
-                  (label-fret layout props string-count fret-range
-                              size orientation)
-                  label-space)
-                 (ly:stencil-combine-at-edge
-                  fret-diagram-stencil Y label-dir
-                  (label-fret layout props string-count fret-range
-                              size orientation)
-                  label-space))))
-    (ly:stencil-aligned-to fret-diagram-stencil X alignment)))
 
 (define-builtin-markup-command (fret-diagram layout props definition-string)
   (string?) ; argument type
@@ -657,98 +1059,10 @@ by the @code{f:} code.
 Note: There is no limit to the number of fret indications per string.
 @end itemize"
   (let ((definition-list
-         (fret-parse-definition-string props definition-string)))
+          (fret-parse-definition-string props definition-string)))
     (fret-diagram-verbose-markup
      layout (car definition-list) (cdr definition-list))))
 
-(define (fret-parse-definition-string props definition-string)
- "Parse a fret diagram string and return a pair containing:
-  props, modified as necessary by the definition-string
-  a fret-indication list with the appropriate values"
- (let* ((fret-count 4)
-       (string-count 6)
-       (fret-range (list 1 fret-count))
-       (barre-list '())
-       (dot-list '())
-       (xo-list '())
-       (output-list '())
-       (new-props '())
-       (details (merge-details 'fret-diagram-details props '()))
-       (items (string-split definition-string #\;)))
-   (let parse-item ((myitems items))
-     (if (not (null? (cdr myitems)))
-        (let ((test-string (car myitems)))
-          (case (car (string->list (substring test-string 0 1)))
-            ((#\s) (let ((size (get-numeric-from-key test-string)))
-                     (set! props (prepend-alist-chain 'size size props))))
-            ((#\f) (let* ((finger-code (get-numeric-from-key test-string))
-                          (finger-id (case finger-code
-                                       ((0) 'none)
-                                       ((1) 'in-dot)
-                                       ((2) 'below-string))))
-                     (set! details
-                           (acons 'finger-code finger-id details))))
-            ((#\c) (set! output-list
-                         (cons-fret
-                          (cons
-                           'barre
-                           (numerify
-                            (string-split (substring test-string 2) #\-)))
-                          output-list)))
-            ((#\h) (let ((fret-count (get-numeric-from-key test-string)))
-                     (set! details
-                           (acons 'fret-count fret-count details))))
-            ((#\w) (let ((string-count (get-numeric-from-key test-string)))
-                     (set! details
-                           (acons 'string-count string-count details))))
-            ((#\d) (let ((dot-size (get-numeric-from-key test-string)))
-                     (set! details
-                           (acons 'dot-radius dot-size details))))
-            ((#\p) (let ((dot-position (get-numeric-from-key test-string)))
-                     (set! details
-                           (acons 'dot-position dot-position details))))
-            (else
-             (let ((this-list (string-split test-string #\-)))
-               (if (string->number (cadr this-list))
-                   (set! output-list
-                         (cons-fret
-                          (cons 'place-fret (numerify this-list))
-                          output-list))
-                   (if (equal? (cadr this-list) "x" )
-                       (set! output-list
-                             (cons-fret
-                              (list 'mute (string->number (car this-list)))
-                              output-list))
-                       (set! output-list
-                             (cons-fret
-                              (list 'open (string->number (car this-list)))
-                              output-list)))))))
-          (parse-item (cdr myitems)))))
-   ;  add the modified details
-   (set! props
-        (prepend-alist-chain 'fret-diagram-details details props))
-   `(,props . ,output-list))) ;ugh -- hard-coded spell -- procedure better
-
-(define (cons-fret new-value old-list)
-  "Put together a fret-list in the format desired by parse-string"
-  (if (eq? old-list '())
-      (list new-value)
-      (cons* new-value old-list)))
-
-(define (get-numeric-from-key keystring)
-  "Get the numeric value from a key of the form k:val"
-  (string->number (substring keystring 2 (string-length keystring))))
-
-(define (numerify mylist)
-  "Convert string values to numeric or character"
-  (if (null? mylist)
-      '()
-      (let ((numeric-value (string->number (car mylist))))
-       (if numeric-value
-           (cons* numeric-value (numerify (cdr mylist)))
-           (cons* (car (string->list (car mylist)))
-                  (numerify (cdr mylist)))))))
-
 (define-builtin-markup-command
   (fret-diagram-terse layout props definition-string)
   (string?) ; argument type
@@ -798,122 +1112,9 @@ with @code{-(} to start a barre and @code{-)} to end the barre.
 @end itemize"
   ;; TODO -- change syntax to fret\string-finger
   (let ((definition-list
-         (fret-parse-terse-definition-string props definition-string)))
+          (fret-parse-terse-definition-string props definition-string)))
     (fret-diagram-verbose-markup layout
-                                (car definition-list)
-                                (cdr definition-list))))
-
-(define-public 
-  (fret-parse-terse-definition-string props definition-string)
-  "Parse a fret diagram string that uses terse syntax; return a pair containing:
-    props, modified to include the string-count determined by the
-    definition-string, and
-    a fret-indication list with the appropriate values"
-;TODO -- change syntax to fret\string-finger
-
-  (let* ((details (merge-details 'fret-diagram-details props '()))
-        (barre-start-list '())
-        (output-list '())
-        (new-props '())
-        (items (string-split definition-string #\;))
-        (string-count (- (length items) 1)))
-    (let parse-item ((myitems items))
-      (if (not (null? (cdr myitems)))
-         (let* ((test-string (car myitems))
-                (current-string (- (length myitems) 1))
-                (indicators (string-split test-string #\ )))
-           (let parse-indicators ((myindicators indicators))
-             (if (not (eq? '() myindicators))
-                 (let* ((this-list (string-split (car myindicators) #\-))
-                        (max-element-index (- (length this-list) 1))
-                        (last-element
-                         (car (list-tail this-list max-element-index)))
-                        (fret
-                         (if (string->number (car this-list))
-                             (string->number (car this-list))
-                             (car this-list))))
-                   (if (equal? last-element "(")
-                       (begin
-                         (set! barre-start-list
-                               (cons-fret (list current-string fret)
-                                          barre-start-list))
-                         (set! this-list
-                               (list-head this-list max-element-index))))
-                   (if (equal? last-element ")")
-                       (let* ((this-barre
-                               (get-sub-list fret barre-start-list))
-                              (insert-index (- (length this-barre) 1)))
-                         (set! output-list
-                               (cons-fret (cons* 'barre
-                                                 (car this-barre)
-                                                 current-string
-                                                 (cdr this-barre))
-                                          output-list))
-                         (set! this-list
-                               (list-head this-list max-element-index))))
-                   (if (number? fret)
-                       (set!
-                        output-list
-                        (cons-fret (cons*
-                                    'place-fret
-                                    current-string
-                                    (drop-paren (numerify this-list)))
-                                   output-list))
-                       (if (equal? (car this-list) "x" )
-                           (set!
-                            output-list
-                            (cons-fret
-                             (list 'mute current-string)
-                             output-list))
-                           (set!
-                            output-list
-                            (cons-fret
-                             (list 'open current-string)
-                             output-list))))
-                   (parse-indicators (cdr myindicators)))))
-           (parse-item (cdr myitems)))))
-    (set! details (acons 'string-count string-count details))
-    (set! props (prepend-alist-chain 'fret-diagram-details details props))
-    `(,props . ,output-list))) ; ugh -- hard coded; proc is better
+                                 (car definition-list)
+                                 (cdr definition-list))))
 
-(define (drop-paren item-list)
-  "Drop a final parentheses from a fret indication list
-   resulting from a terse string specification of barre."
-  (if (> (length item-list) 0)
-      (let* ((max-index (- (length item-list) 1))
-            (last-element (car (list-tail item-list max-index))))
-       (if (or (equal? last-element ")") (equal? last-element "("))
-           (list-head item-list max-index)
-           item-list))
-      item-list))
 
-(define (get-sub-list value master-list)
-  "Get a sub-list whose cadr is equal to @var{value} from @var{master-list}"
-  (if (eq? master-list '())
-      #f
-      (let ((sublist (car master-list)))
-       (if (equal? (cadr sublist) value)
-           sublist
-           (get-sub-list value (cdr master-list))))))
-
-(define (merge-details key alist-list . default)
-  "Return ALIST-LIST entries for key, in one combined alist.
-  There can be two ALIST-LIST entries for a given key. The first
-  comes from the override-markup function, the second comes
-  from property settings during a regular override.
-  This is necessary because some details can be set in one
-  place, while others are set in the other.  Both details
-  lists must be merged into a single alist.
-  Return DEFAULT (optional, else #f) if not
-  found."
-
-  (define (helper key alist-list default)
-    (if (null? alist-list)
-       default
-       (let* ((handle (assoc key (car alist-list))))
-         (if (pair? handle)
-             (append (cdr handle) (chain-assoc-get key (cdr alist-list) '()))
-             (helper key (cdr alist-list) default)))))
-
-  (helper key alist-list
-         (if (pair? default) (car default) #f)))
index c2801633a80dc4e70d86cfc1b451957a5f05a715..5144977644d7536de0656ffb6898a3df8968a595 100644 (file)
@@ -2,7 +2,7 @@
 ;;;;
 ;;;;  source file of the GNU LilyPond music typesetter
 ;;;;
-;;;; (c) 2007 Joe Neeman <joeneeman@gmail.com>
+;;;; (c) 2007--2009 Joe Neeman <joeneeman@gmail.com>
 
 
 (define-module (scm graphviz)
index 9af6e04dd2f98c4781574281e2a9a9a18878eb03..876e392bf0597ab16e89c09626dfd86eb22ceee3 100644 (file)
@@ -2,7 +2,7 @@
 ;;;;
 ;;;;  source file of the GNU LilyPond music typesetter
 ;;;;
-;;;; (c) 2008 Reinhold Kainhofer <reinhold@kainhofer.com>
+;;;; (c) 2008--2009 Reinhold Kainhofer <reinhold@kainhofer.com>
 
 
 
index a4df921a9f9fcfa64bc0f1fe5395af861f4411ea..5b655f6cb6115b1a4b1a553af044ecd82c15dc65 100644 (file)
@@ -4,7 +4,7 @@
 ;;
 ;; source file of the GNU LilyPond music typesetter
 ;;
-;; (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+;; (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 ;;
 
 (define-module (scm kpathsea))
index 9f1840dd33d3197007467a45f7f2f0e374651b1e..09dc09fd8e379407cf1087f214f59fe0e359cbee 100644 (file)
@@ -3,7 +3,7 @@
 ;;;;
 ;;;; source file of the GNU LilyPond music typesetter
 ;;;; 
-;;;; (c) 2000--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+;;;; (c) 2000--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 ;;;;
 
 (define ((check-beam-quant posl posr) beam posns)
index 1686d9613a11d7ac097e484f797f462282feb372..ffd6d632c4d2d8e4bdd4ba4536eb0652e6b9d6fd 100644 (file)
@@ -2,7 +2,7 @@
 ;;;;
 ;;;;  source file of the GNU LilyPond music typesetter
 ;;;;
-;;;; (c) 2004--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+;;;; (c) 2004--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 ;;;;         Han-Wen Nienhuys <hanwen@xs4all.nl>
 
 (define-module (scm layout-page-layout)
@@ -31,7 +31,8 @@
             (= (interval-start system-extent)
                (interval-end   system-extent))))))
 
-(define (stretch-and-draw-page paper-book systems page-number ragged last)
+(define (stretch-and-draw-page paper-book systems page-number ragged
+                               is-last-bookpart is-bookpart-last-page)
   (define (max-stretch sys)
     (if (ly:grob? sys)
        (ly:grob-property sys 'max-stretch)
@@ -78,7 +79,8 @@
 
   (let* ((page (make-page paper-book
                          'page-number page-number
-                         'is-last last))
+                         'is-last-bookpart is-last-bookpart
+                         'is-bookpart-last-page is-bookpart-last-page))
         (paper (ly:paper-book-paper paper-book))
         (height (page-printable-height page))
         ; there is a certain amount of impreciseness going on here:
@@ -351,8 +353,8 @@ is what have collected so far, and has ascending page numbers."
                                       inter-system-space))
        user)))
 
-(define (walk-paths done-lines best-paths current-lines last current-best
-                   paper-book page-alist)
+(define (walk-paths done-lines best-paths current-lines is-last-bookpart
+                   is-bookpart-last-page current-best paper-book page-alist)
   "Return the best optimal-page-break-node that contains
 CURRENT-LINES. DONE-LINES.reversed ++ CURRENT-LINES is a consecutive
 ascending range of lines, and BEST-PATHS contains the optimal breaks
@@ -362,18 +364,19 @@ CURRENT-BEST is the best result sofar, or #f."
   (let* ((paper (ly:paper-book-paper paper-book))
         (this-page (make-page
                     paper-book
-                    'is-last last
+                    'is-last-bookpart is-last-bookpart
+                    'is-bookpart-last-page is-bookpart-last-page
                     'page-number (if (null? best-paths)
                                      (ly:output-def-lookup paper 'first-page-number)
                                      (1+ (page-page-number (first best-paths))))))
         (ragged-all (eq? #t (ly:output-def-lookup paper 'ragged-bottom)))
         (ragged-last (eq? #t (ly:output-def-lookup paper 'ragged-last-bottom)))
-        (ragged (or ragged-all (and ragged-last last)))
+        (ragged (or ragged-all (and ragged-last is-bookpart-last-page)))
         (space-to-fill (page-maximum-space-to-fill this-page current-lines paper))
         (vertical-spacing (space-systems space-to-fill current-lines ragged paper #f))
         (satisfied-constraints (car vertical-spacing))
         (force (if satisfied-constraints
-                   (if (and last ragged-last)
+                   (if (and is-bookpart-last-page ragged-last)
                        0.0
                        satisfied-constraints)
                    10000))
@@ -411,7 +414,7 @@ CURRENT-BEST is the best result sofar, or #f."
         (list
          "\nuser pen " user-penalty
          "\nsatisfied-constraints" satisfied-constraints
-         "\nlast? " last "ragged?" ragged
+         "\nlast? " is-bookpart-last-page "ragged?" ragged
          "\nis-better " is-better " total-penalty " total-penalty "\n"
          "\nconfig " positions
          "\nforce " force
@@ -427,11 +430,11 @@ CURRENT-BEST is the best result sofar, or #f."
             satisfied-constraints)
        (walk-paths (cdr done-lines) (cdr best-paths)
                    (cons (car done-lines) current-lines)
-                   last new-best
+                   is-last-bookpart is-bookpart-last-page new-best
                    paper-book page-alist)
        new-best)))
 
-(define (walk-lines done best-paths todo paper-book page-alist)
+(define (walk-lines done best-paths todo paper-book page-alist is-last-bookpart)
   "Return the best page breaking as a single
 page node for optimally breaking TODO ++
 DONE.reversed. BEST-PATHS is a list of break nodes corresponding to
@@ -439,14 +442,15 @@ DONE."
   (if (null? todo)
       (car best-paths)
       (let* ((this-line (car todo))
-            (last (null? (cdr todo)))
-            (next (walk-paths done best-paths (list this-line) last #f
-                              paper-book page-alist)))
+            (is-bookpart-last-page (null? (cdr todo)))
+            (next (walk-paths done best-paths (list this-line) is-last-bookpart
+                              is-bookpart-last-page #f paper-book page-alist)))
        (walk-lines (cons this-line done)
                    (cons next best-paths)
                    (cdr todo)
                    paper-book
-                   page-alist))))
+                   page-alist
+                   is-last-bookpart))))
 
 (define-public (optimal-page-breaks paper-book)
   "Return pages as a list starting with 1st page. Each page is a 'page Prob."
@@ -454,11 +458,11 @@ DONE."
         (lines (ly:paper-book-systems paper-book))
         (page-alist (layout->page-init paper)) 
         (force-equalization-factor (ly:output-def-lookup
-                                    paper 'verticalequalizationfactor 0.3)))
+                                    paper 'verticalequalizationfactor 0.3))
+         (is-last-bookpart (ly:output-def-lookup paper 'is-last-bookpart)))
     (ly:message (_ "Calculating page breaks..."))
-    (let* ((best-break-node (walk-lines '() '() lines paper-book page-alist))
+    (let* ((best-break-node (walk-lines '() '() lines paper-book page-alist is-last-bookpart))
           (break-nodes (get-path best-break-node '())))
-      (page-set-property! (car (last-pair break-nodes)) 'is-last #t)
       (if #f; (ly:get-option 'verbose)
          (begin
            (display (list
index d458506f179320884ff8a701d48f74c753be984f..e153c0cf79d2370d013d4c578983a2cfa6354e5a 100644 (file)
@@ -2,7 +2,7 @@
 ;;;;
 ;;;; source file of the GNU LilyPond music typesetter
 ;;;; 
-;;;; (c) 2000--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+;;;; (c) 2000--2009 Jan Nieuwenhuizen <janneke@gnu.org>
                                ;
 ; this is put into the slur-details property of Slur and PhrasingSlur
 (define default-slur-details
index f772d0527e931efa53cdf0917fcf359012e911bb..3cc4c5201bea4c9028dcf7106d9b2eb61f6e40cc 100644 (file)
@@ -3,7 +3,7 @@
 ;;;;
 ;;;;  source file of the GNU LilyPond music typesetter
 ;;;; 
-;;;; (c) 1998--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+;;;; (c) 1998--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 ;;;; Han-Wen Nienhuys <hanwen@xs4all.nl>
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; parser <-> output hooks.
-
                
+(define-public (collect-bookpart-for-book parser book-part)
+  "Toplevel book-part handler"
+  (define (add-bookpart book-part)
+    (ly:parser-define!
+       parser 'toplevel-bookparts
+       (cons book-part (ly:parser-lookup parser 'toplevel-bookparts))))
+  ;; If toplevel scores have been found before this \bookpart,
+  ;; add them first to a dedicated bookpart
+  (if (pair? (ly:parser-lookup parser 'toplevel-scores))
+      (begin
+       (add-bookpart (ly:make-book-part
+                      (ly:parser-lookup parser 'toplevel-scores)))
+       (ly:parser-define! parser 'toplevel-scores (list))))
+  (add-bookpart book-part))
+
 (define-public (collect-scores-for-book parser score)
   (ly:parser-define!
    parser 'toplevel-scores
    (cons score (ly:parser-lookup parser 'toplevel-scores))))
 
-(define (collect-music-aux score-handler parser music)
+(define-public (collect-music-aux score-handler parser music)
   (define (music-property symbol)
     (let ((value (ly:music-property music symbol)))
       (if (not (null? value))
@@ -572,11 +586,19 @@ possibly turned off."
 ;; don't confuse users with #<procedure .. > syntax. 
 ;; 
 (define-public (scm->string val)
-  (if (and (procedure? val) (symbol? (procedure-name val)))
+  (if (and (procedure? val)
+          (symbol? (procedure-name val)))
       (symbol->string (procedure-name val))
       (string-append
-       (if (self-evaluating? val) "" "'")
-       (call-with-output-string (lambda (port) (display val port))))))
+       (if (self-evaluating? val)
+          (if (string? val)
+              "\""
+              "")
+          "'")
+       (call-with-output-string (lambda (port) (display val port)))
+       (if (string? val)
+          "\""
+          ""))))
 
 (define-public (!= lst r)
   (not (= lst r)))
index 8344f80a8efa6ef8f382163c42e950c3d3e6db1c..c39b243648613d4a0f475f8e40aca3a0b8dfa17c 100644 (file)
@@ -1,17 +1,19 @@
-;;;; lily.scm -- toplevel Scheme stuff
+;;;; lily.scm -- top-level Scheme stuff
 ;;;;
 ;;;;  source file of the GNU LilyPond music typesetter
-;;;; 
-;;;; (c) 1998--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+;;;;
+;;;; (c) 1998--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 ;;;; Han-Wen Nienhuys <hanwen@xs4all.nl>
 
 ;; Internationalisation: (_i "to be translated") gets an entry in the
-;; POT file (gettext ) must be invoked explicitely to do the actual
+;; POT file; (gettext ...) must be invoked explicitly to do the actual
 ;; "translation".
-;;(define-macro (_i x) x)
-;;(define-macro-public _i (x) x)
-;;(define-public-macro _i (x) x)
+;;
+;; (define-macro (_i x) x)
+;; (define-macro-public _i (x) x)
+;; (define-public-macro _i (x) x)
 ;; Abbrv-PWR!
+
 (defmacro-public _i (x) x)
 
 (read-enable 'positions)
 
 (define scheme-options-definitions
   `(
-
     ;; NAMING: either
 
     ;; - [subject-]object-object-verb +"ing"
     ;; - [subject-]-verb-object-object
 
-    (anti-alias-factor 1 "render at higher resolution and scale down result\nto prevent jaggies in PNG")
-    (backend ps "which backend to use by default; Options: eps, ps [default], scm, svg, tex, texstr)")
-    (check-internal-types #f "check every property assignment for types")
-    (clip-systems #f "Generate cut-out snippets of a score")
-    (datadir #f "LilyPond prefix for data files (Readonly).")
-    (debug-gc #f "dump memory debugging statistics")
-    (debug-gc-assert-parsed-dead #f "for memory debugging:
-ensure that all refs to parsed objects are dead.  This is an internal option, and is switched on automatically for -ddebug-gc.") 
-    (debug-lexer #f "debug the flex lexer")
-    (debug-page-breaking-scoring #f "dump scores for many different page breaking configurations")
-    (debug-parser #f "debug the bison parser")
-    (debug-property-callbacks #f "debug cyclic callback chains")
-    (debug-skylines #f "debug skylines")
+    ;; Avoid overlong lines in `lilypond -dhelp'!  Strings should not
+    ;; be longer than 48 characters per line.
+
+    (anti-alias-factor 1
+"Render at higher resolution (using given factor)
+and scale down result to prevent jaggies in
+PNG images.")
+    (backend ps
+"Select backend.  Possible values: 'eps, 'null,
+'ps, 'scm, 'svg.")
+    (check-internal-types #f
+"Check every property assignment for types.")
+    (clip-systems #f
+"Generate cut-out snippets of a score.")
+    (datadir #f
+"LilyPond prefix for data files (read-only).")
+    (debug-gc #f
+"Dump memory debugging statistics.")
+    (debug-gc-assert-parsed-dead #f
+"For memory debugging: Ensure that all
+references to parsed objects are dead.  This is
+an internal option, and is switched on
+automatically for `-ddebug-gc'.")
+    (debug-lexer #f
+"Debug the flex lexer.")
+    (debug-page-breaking-scoring #f
+"Dump scores for many different page breaking
+configurations.")
+    (debug-parser #f
+"Debug the bison parser.")
+    (debug-property-callbacks #f
+"Debug cyclic callback chains.")
+    (debug-skylines #f
+"Debug skylines.")
     (delete-intermediate-files #f
-                              "delete unusable PostScript files")
-    (dump-profile #f "dump memory and time information for each file")
-    (dump-cpu-profile #f "dump timing information (system-dependent)")
-    (dump-signatures #f "dump output signatures of each system.  Used for regression testing.")
-    
-    (eps-box-padding #f "Pad EPS bounding box left edge.  Guarantee alignment between systems in LaTeX.")
+"Delete unusable, intermediate PostScript files.")
+    (dump-profile #f
+"Dump memory and time information for each file.")
+    (dump-cpu-profile #f
+"Dump timing information (system-dependent).")
+    (dump-signatures #f
+"Dump output signatures of each system.  Used for
+regression testing.")
+    (eps-box-padding #f
+"Pad left edge of the output EPS bounding box by
+given amount (in mm).")
     (gs-load-fonts #f
-                  "load fonts via Ghostscript.")
+"Load fonts via Ghostscript.")
     (gs-load-lily-fonts #f
-                       "load only lilypond fonts via Ghostscript.")
-    (gui #f "running from gui; redirect stderr to log file")
-    (help #f "show this help.") 
-    (include-book-title-preview #t "include book-titles in preview images.")
-    (include-eps-fonts #t "Include fonts in separate-system EPS files.")
-    (job-count #f "Process in parallel") 
-    (log-file #f "redirect output to log FILE.log")
+"Load only LilyPond fonts via Ghostscript.")
+    (gui #f
+"Run LilyPond from a GUI and redirect stderr to
+a log file.")
+    (help #f
+"Show this help.")
+    (include-book-title-preview #t
+"Include book titles in preview images.")
+    (include-eps-fonts #t
+"Include fonts in separate-system EPS files.")
+    (job-count #f
+"Process in parallel, using the given number of
+jobs.")
+    (log-file #f
+"If string FOO is given as argument, redirect
+output to log file `FOO.log'.")
     (midi-extension ,(if (eq? PLATFORM 'windows)
                         "mid"
                         "midi")
-                   "set the default file extension for MIDI")
-
+"Set the default file extension for MIDI output
+file to given string.")
     (old-relative #f
-                 "relative for simultaneous music works
-similar to chord syntax")
-    (point-and-click #t "use point & click")
-    (paper-size "a4" "the default paper size")
-    (pixmap-format "png16m" "GS format to use for pixel images")
-    (preview #f "make a incipit image. ")
-    (print-pages #t "print pages normally. ")
-    (protected-scheme-parsing #t "continue when finding errors in inline
-scheme are caught in the parser. If off, halt 
-on errors, and print a stack trace.")
-    (profile-property-accesses #f "keep statistics of get_property() calls.")
-    
-    (resolution 101 "resolution for generating PNG bitmaps")
-    (read-file-list #f "Read files to be processed from command line arguments")
-
-    (safe #f "Run safely")
-    (strict-infinity-checking #f "If yes, crash on encountering Inf/NaN.")
-    (strip-output-dir #t "If yes, strip directories from input files.")
-    (separate-log-files #f "Output to FILE.log per file.")
-    (trace-memory-frequency #f "Record Scheme cell usage this many times per second, and dump to file.")
-    (trace-scheme-coverage #f "Record coverage of Scheme files") 
-    (ttf-verbosity 0
-                  "how much verbosity for TTF font embedding?")
+"Make \\relative mode for simultaneous music work
+similar to chord syntax.")
+    (point-and-click #t
+"Add point & click links to PDF output.")
+    (paper-size "a4"
+"Set default paper size.")
+    (pixmap-format "png16m"
+"Set GhostScript's output format for pixel images.")
+    (preview #f
+"Create PNG and EPS preview images also.")
+    (print-pages #t
+"Print pages in the normal way.")
+    (protected-scheme-parsing #t
+"Continue when errors in inline scheme are caught
+in the parser.  If #f, halt on errors and print
+a stack trace.")
+    (profile-property-accesses #f
+"Keep statistics of get_property() calls.")
+    (resolution 101
+"Set resolution for generating PNG pixmaps to
+given value (in dpi).")
+    (read-file-list #f
+"Specify name of a file which contains a list of
+input files to be processed.")
+    (relative-includes #f
+"When processing an \\include command, look for
+the included file relative to the current file
+(instead of the root file)")
+    (safe #f
+"Run in safer mode.")
+    (strict-infinity-checking #f
+"Force a crash on encountering Inf and NaN
+floating point exceptions.")
+    (strip-output-dir #t
+"Don't use directories from input files while
+constructing output file names.")
+    (separate-log-files #f
+"For input files `FILE1.ly', `FILE2.ly', ...
+output log data to files `FILE1.log',
+`FILE2.log', ...")
+    (trace-memory-frequency #f
+"Record Scheme cell usage this many times per
+second.  Dump results to `FILE.stacks' and
+`FILE.graph'.")
+    (trace-scheme-coverage #f
+"Record coverage of Scheme files in `FILE.cov'.")
     (show-available-fonts #f
-                         "List font names available.")
-    (verbose ,(ly:command-line-verbose?) "value for the --verbose flag")
+"List available font names.")
+    (verbose ,(ly:command-line-verbose?)
+"Value of the --verbose flag (read-only).")
     ))
 
-;; need to do this in the beginning. Other parts of the
-;; Scheme init depend on these options.
-;;
-(for-each
- (lambda (x)
-   (ly:add-option (car x) (cadr x) (caddr x)))
- scheme-options-definitions)
+;; Need to do this in the beginning.  Other parts of the Scheme
+;; initialization depend on these options.
+
+(for-each (lambda (x)
+           (ly:add-option (car x) (cadr x) (caddr x)))
+         scheme-options-definitions)
 
-(for-each
- (lambda (x)
-   (ly:set-option (car x) (cdr x)))
- (eval-string (ly:command-line-options)))
+(for-each (lambda (x)
+           (ly:set-option (car x) (cdr x)))
+         (eval-string (ly:command-line-options)))
 
 (debug-set! stack 0)
 
@@ -125,55 +183,52 @@ on errors, and print a stack trace.")
             (srfi srfi-14)
             (scm clip-region)
             (scm memory-trace)
-            (scm coverage)
-            )
-(define-public fancy-format format)
+            (scm coverage))
+
+(define-public fancy-format
+  format)
+
 (define-public (ergonomic-simple-format dest . rest)
   "Like ice-9 format, but without the memory consumption."
-  
   (if (string? dest)
       (apply simple-format (cons #f (cons dest rest)))
       (apply simple-format (cons dest rest))))
 
-(define format ergonomic-simple-format)
+(define format
+  ergonomic-simple-format)
 
 ;; my display
-(define-public (myd k v) (display k) (display ": ") (display v) (display ", ")
+(define-public (myd k v)
+  (display k)
+  (display ": ")
+  (display v)
+  (display ", ")
   v)
 
 (define-public (print . args)
   (apply format (cons (current-output-port) args)))
 
 
-;;; General settings
-;;; debugging evaluator is slower.  This should
-;;; have a more sensible default.
+;;; General settings.
+;;;
+;;; Debugging evaluator is slower.  This should have a more sensible
+;;; default.
 
 (if (or (ly:get-option 'verbose)
        (ly:get-option 'trace-memory-frequency)
-       (ly:get-option 'trace-scheme-coverage)
-       )
+       (ly:get-option 'trace-scheme-coverage))
     (begin
       (ly:set-option 'protected-scheme-parsing #f)
       (debug-enable 'debug)
       (debug-enable 'backtrace)
       (read-enable 'positions)))
 
-
 (if (ly:get-option 'trace-scheme-coverage)
     (coverage:enable))
 
-(define-public tex-backend?
-  (member (ly:get-option 'backend) '(texstr tex)))
-
 (define-public parser #f)
 
 
-;; TeX C++ code actually hooks into TEX_STRING_HASHLIMIT 
-(define-public TEX_STRING_HASHLIMIT 10000000)
-
-
-
 ;; gettext wrapper for guile < 1.7.2
 (if (defined? 'gettext)
     (define-public _ gettext)
@@ -197,17 +252,23 @@ on errors, and print a stack trace.")
 
 (case PLATFORM
   ((windows)
-   (define native-getcwd getcwd)
+   (define native-getcwd
+     getcwd)
+
    (define (slashify x)
      (if (string-index x #\\)
         x
         (string-regexp-substitute
          "//*" "/"
          (string-regexp-substitute "\\\\" "/" x))))
+
    ;; FIXME: this prints a warning.
    (define-public (ly-getcwd)
      (slashify (native-getcwd))))
-  (else (define-public ly-getcwd getcwd)))
+
+  (else
+   (define-public ly-getcwd
+     getcwd)))
 
 (define-public (is-absolute? file-name)
   (let ((file-name-length (string-length file-name)))
@@ -222,13 +283,11 @@ on errors, and print a stack trace.")
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 (define (type-check-list location signature arguments)
-  "Typecheck a list of arguments against a list of type
-predicates. Print a message at LOCATION if any predicate failed."
-
-  (define (recursion-helper signature arguments count) 
-    (define (helper pred? arg count) 
+  "Typecheck a list of arguments against a list of type predicates.
+Print a message at LOCATION if any predicate failed."
+  (define (recursion-helper signature arguments count)
+    (define (helper pred? arg count)
       (if (not (pred? arg))
-
          (begin
            (ly:input-message
             location
@@ -242,17 +301,13 @@ predicates. Print a message at LOCATION if any predicate failed."
        #t
        (and (helper (car signature) (car arguments) count)
             (recursion-helper (cdr signature) (cdr arguments) (1+ count)))))
-
   (recursion-helper signature arguments 1))
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;  output
 
+;; (define-public (output-framework) (write "hello\n"))
 
-;;(define-public (output-framework) (write "hello\n"))
-
-(define output-tex-module
-  (make-module 1021 (list (resolve-interface '(scm output-tex)))))
 (define output-ps-module
   (make-module 1021 (list (resolve-interface '(scm output-ps)))))
 
@@ -261,15 +316,18 @@ predicates. Print a message at LOCATION if any predicate failed."
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; Safe definitions utility
-(define safe-objects (list))
+
+(define safe-objects
+  (list))
 
 (define-macro (define-safe-public arglist . body)
-  "Define a variable, export it, and mark it as safe, ie usable in LilyPond safe mode.
-The syntax is the same as `define*-public'."
+  "Define a variable, export it, and mark it as safe, i.e. usable in
+LilyPond safe mode.  The syntax is the same as `define*-public'."
   (define (get-symbol arg)
     (if (pair? arg)
         (get-symbol (car arg))
         arg))
+
   (let ((safe-symbol (get-symbol arglist)))
     `(begin
        (define*-public ,arglist
@@ -291,70 +349,63 @@ The syntax is the same as `define*-public'."
 
 (ly:set-default-scale (ly:make-scale #(0 1 2 5/2 7/2 9/2 11/2)))
 
-
-
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; other files.
 
-
-(define
-  init-scheme-files
+(define init-scheme-files
   '("lily-library.scm"
-           "file-cache.scm"
-           "define-event-classes.scm"
-           "define-music-types.scm"
-           "output-lib.scm"
-           "c++.scm"
-           "chord-ignatzek-names.scm"
-           "chord-entry.scm"
-           "chord-generic-names.scm"
-           "stencil.scm"
-           "markup.scm"
-           "music-functions.scm"
-           "part-combiner.scm"
-           "autochange.scm"
-           "define-music-properties.scm"
-           "auto-beam.scm"
-           "chord-name.scm"
-
-           "parser-ly-from-scheme.scm"
-           "ly-syntax-constructors.scm"
-           
-           "define-context-properties.scm"
-           "translation-functions.scm"
-           "script.scm"
-           "midi.scm"
-           "layout-beam.scm"
-           "parser-clef.scm"
-           "layout-slur.scm"
-           "font.scm"
-           "encoding.scm"
-           
-           "flag-styles.scm"
-           "fret-diagrams.scm"
-           "harp-pedals.scm"
-           "predefined-fretboards.scm"
-            "define-markup-commands.scm"
-           "define-grob-properties.scm"
-           "define-grobs.scm"
-           "define-grob-interfaces.scm"
-           "define-stencil-commands.scm"
-           "titling.scm"
-           
-           "paper.scm"
-           "backend-library.scm"
-           "x11-color.scm"
-
-           ;; must be after everything has been defined
-           "safe-lily.scm"))
-
+    "file-cache.scm"
+    "define-event-classes.scm"
+    "define-music-types.scm"
+    "output-lib.scm"
+    "c++.scm"
+    "chord-ignatzek-names.scm"
+    "chord-entry.scm"
+    "chord-generic-names.scm"
+    "stencil.scm"
+    "markup.scm"
+    "music-functions.scm"
+    "part-combiner.scm"
+    "autochange.scm"
+    "define-music-properties.scm"
+    "auto-beam.scm"
+    "chord-name.scm"
+
+    "parser-ly-from-scheme.scm"
+    "ly-syntax-constructors.scm"
+
+    "define-context-properties.scm"
+    "translation-functions.scm"
+    "script.scm"
+    "midi.scm"
+    "layout-beam.scm"
+    "parser-clef.scm"
+    "layout-slur.scm"
+    "font.scm"
+    "encoding.scm"
+
+    "flag-styles.scm"
+    "fret-diagrams.scm"
+    "harp-pedals.scm"
+    "predefined-fretboards.scm"
+    "define-markup-commands.scm"
+    "define-grob-properties.scm"
+    "define-grobs.scm"
+    "define-grob-interfaces.scm"
+    "define-stencil-commands.scm"
+    "titling.scm"
+
+    "paper.scm"
+    "backend-library.scm"
+    "x11-color.scm"
+
+    ;; must be after everything has been defined
+    "safe-lily.scm"))
 
 (for-each ly:load init-scheme-files)
 
-
 (set! type-p-name-alist
-      `(
-       (,boolean-or-symbol? . "boolean or symbol")
+      `((,boolean-or-symbol? . "boolean or symbol")
        (,boolean? . "boolean")
        (,char? . "char")
        (,grob-list? . "list of grobs")
@@ -381,7 +432,7 @@ The syntax is the same as `define*-public'."
        (,number-or-string? . "number or string")
        (,number-pair? . "pair of numbers")
        (,number? . "number")
-       (,output-port? . "output port")   
+       (,output-port? . "output port")
        (,pair? . "pair")
        (,procedure? . "procedure")
        (,rhythmic-location? . "rhythmic location")
@@ -396,77 +447,67 @@ The syntax is the same as `define*-public'."
 (define (profile-measurements)
   (let* ((t (times))
         (stats (gc-stats)))
-    
-    (list
-     (- (+ (tms:cutime t)
-          (tms:utime t))
-       (ly:assoc-get 'gc-time-taken stats))
-     
-     (ly:assoc-get 'total-cells-allocated  stats 0)
-     )))
+    (list (- (+ (tms:cutime t)
+               (tms:utime t))
+            (ly:assoc-get 'gc-time-taken stats))
+         (ly:assoc-get 'total-cells-allocated  stats 0))))
 
 (define (dump-profile base last this)
-  (let*
-      ((outname (format "~a.profile" (dir-basename base ".ly")))
-       (diff (map (lambda (y) (apply - y)) (zip this last))))
-    
+  (let* ((outname (format "~a.profile" (dir-basename base ".ly")))
+        (diff (map (lambda (y) (apply - y)) (zip this last))))
     (ly:progress "\nWriting timing to ~a..." outname)
     (format (open-file outname "w")
            "time: ~a\ncells: ~a\n"
            (if (ly:get-option 'dump-cpu-profile)
                (car diff)
                0)
-           (cadr diff)
-           )))
-
+           (cadr diff))))
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;; debug mem leaks
+;; debug memory leaks
 
-(define gc-dumping #f)
-(define gc-protect-stat-count 0)
+(define gc-dumping
+  #f)
+
+(define gc-protect-stat-count
+  0)
 
 (define-public (dump-live-object-stats outfile)
-  (for-each
-   (lambda (x)
-     (format outfile "~a: ~a\n" (car x) (cdr x)))
-   (sort (gc-live-object-stats)
-        (lambda (x y)
-          (string<? (car x) (car y))))))
+  (for-each (lambda (x)
+             (format outfile "~a: ~a\n" (car x) (cdr x)))
+           (sort (gc-live-object-stats)
+                 (lambda (x y)
+                   (string<? (car x) (car y))))))
 
 (define-public (dump-gc-protects)
   (set! gc-protect-stat-count (1+ gc-protect-stat-count))
-  (let* ((protects (sort
-                   (hash-table->alist (ly:protects))
-                   (lambda (a b)
-                     (< (object-address (car a))
-                        (object-address (car b))))))
-
+  (let* ((protects (sort (hash-table->alist (ly:protects))
+                        (lambda (a b)
+                          (< (object-address (car a))
+                             (object-address (car b))))))
         (out-file-name (string-append
                         "gcstat-" (number->string gc-protect-stat-count)
                         ".scm"))
-        (outfile    (open-file  out-file-name  "w")))
-
+        (outfile (open-file out-file-name "w")))
     (set! gc-dumping #t)
     (display (format "Dumping GC statistics ~a...\n" out-file-name))
-    (display
-     (map (lambda (y)
-           (let ((x (car y))
-                 (c (cdr y)))
-             (display 
-              (format "~a (~a) = ~a\n" (object-address x) c x)
-              outfile)))
-         (filter
-          (lambda (x)
-            (not (symbol? (car x))))
-          protects))
-     outfile)
-
+    (display (map (lambda (y)
+                   (let ((x (car y))
+                         (c (cdr y)))
+                     (display
+                      (format "~a (~a) = ~a\n" (object-address x) c x)
+                      outfile)))
+                 (filter
+                  (lambda (x)
+                    (not (symbol? (car x))))
+                  protects))
+            outfile)
     (format outfile "\nprotected symbols: ~a\n"
-           (apply + (map (lambda (obj-count) (if (symbol? (car obj-count))
-                                                 (cdr obj-count)
-                                                 0))
-                            protects)))             
+           (apply + (map (lambda (obj-count)
+                           (if (symbol? (car obj-count))
+                               (cdr obj-count)
+                               0))
+                         protects)))
 
     ;; (display (ly:smob-protects))
     (newline outfile)
@@ -480,188 +521,146 @@ The syntax is the same as `define*-public'."
          (ly:set-option 'debug-gc-assert-parsed-dead #t)
          (gc)
          (ly:set-option 'debug-gc-assert-parsed-dead #f)
-
          (set! stats (gc-live-object-stats))
          (display "Dumping live object statistics.\n")
          (dump-live-object-stats outfile)))
-
     (newline outfile)
-    (let*
-       ((stats (gc-stats)))
-      
-      (for-each
-       (lambda (sym)
-        (display
-         (format "~a ~a ~a\n"
-                 gc-protect-stat-count
-                 sym
-                 (let ((sym-stat (assoc sym stats)))
-                   (if sym-stat 
-                       (cdr sym-stat)
-                       "?")))
-         outfile))
-       '(protected-objects bytes-malloced cell-heap-size
-                          
-                          )))
-
+    (let* ((stats (gc-stats)))
+      (for-each (lambda (sym)
+                 (display
+                  (format "~a ~a ~a\n"
+                          gc-protect-stat-count
+                          sym
+                          (let ((sym-stat (assoc sym stats)))
+                            (if sym-stat
+                                (cdr sym-stat)
+                                "?")))
+                  outfile))
+               '(protected-objects bytes-malloced cell-heap-size)))
     (set! gc-dumping #f)
-    (close-port outfile)
-    
-    ))
-
+    (close-port outfile)))
 
 (define (check-memory)
-  "read /proc/self to check up on memory use." 
+  "Read `/proc/self' to check up on memory use."
   (define (gulp-file name)
     (let* ((file (open-input-file name))
           (text (read-delimited "" file)))
       (close file)
       text))
-  (let*
-      ((stat (gulp-file "/proc/self/status"))
-       (lines (string-split stat #\newline))
-       (interesting (filter identity
-                           (map
-                            (lambda (l)
-                              (string-match "^VmData:[ \t]*([0-9]*) kB" l))
-                            lines)))
-       (mem (string->number (match:substring (car interesting) 1)))
-       )
-
-    
+
+  (let* ((stat (gulp-file "/proc/self/status"))
+        (lines (string-split stat #\newline))
+        (interesting (filter identity
+                             (map
+                              (lambda (l)
+                                (string-match "^VmData:[ \t]*([0-9]*) kB" l))
+                              lines)))
+        (mem (string->number (match:substring (car interesting) 1))))
     (display (format  "VMDATA: ~a\n" mem))
     (display (gc-stats))
     (if (> mem 100000)
-       (begin
-         (dump-gc-protects)
-         (raise 1)))
-    
-    ))
+       (begin (dump-gc-protects)
+              (raise 1)))))
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
-
 (define (multi-fork count)
-  "Split this process in COUNT helpers. Returns either a list of pids,
-or the number of the process."
+  "Split this process into COUNT helpers.  Returns either a list of
+PIDs or the number of the process."
   (define (helper count acc)
     (if (> count 0)
-      (let*
-         ((pid  (primitive-fork)))
-       (if (= pid 0)
-           (1- count)
-           (helper (1- count) (cons pid acc))))
-      acc))
+       (let* ((pid (primitive-fork)))
+         (if (= pid 0)
+             (1- count)
+             (helper (1- count) (cons pid acc))))
+       acc))
+
   (helper count '()))
 
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 (define-public (lilypond-main files)
   "Entry point for LilyPond."
-
   (eval-string (ly:command-line-code))
-
   (if (ly:get-option 'help)
-      (begin
-       (ly:option-usage)
-       (exit 0)))
-
+      (begin (ly:option-usage)
+            (exit 0)))
   (if (ly:get-option 'show-available-fonts)
-      (begin
-       (ly:font-config-display-fonts)
-       (exit 0)
-       ))
-  
-  
+      (begin (ly:font-config-display-fonts)
+            (exit 0)))
   (if (ly:get-option 'gui)
       (gui-main files))
-
   (if (null? files)
-      (begin
-       (ly:usage)
-       (exit 2)))
-
+      (begin (ly:usage)
+            (exit 2)))
   (if (ly:get-option 'read-file-list)
       (set! files
            (filter (lambda (s)
                      (> (string-length s) 0))
                    (apply append
-                          (map (lambda (f) (string-split (ly:gulp-file f) #\nl))
-                               files)))
-           ))
-  
+                          (map (lambda (f)
+                                 (string-split (ly:gulp-file f) #\nl))
+                               files)))))
   (if (and (number? (ly:get-option 'job-count))
           (>= (length files) (ly:get-option 'job-count)))
-      (let*
-         ((count (ly:get-option 'job-count))
-          (split-todo (split-list files count)) 
-          (joblist (multi-fork count))
-          (errors '()))
-
+      (let* ((count (ly:get-option 'job-count))
+            (split-todo (split-list files count))
+            (joblist (multi-fork count))
+            (errors '()))
        (if (not (string-or-symbol? (ly:get-option 'log-file)))
            (ly:set-option 'log-file "lilypond-multi-run"))
-       
        (if (number? joblist)
-           (begin
-             (ly:set-option
-              'log-file (format "~a-~a"
-                                (ly:get-option 'log-file) joblist))
-             (set! files (vector-ref split-todo joblist)))
-
-           (begin
-             (ly:progress "\nForking into jobs:  ~a\n" joblist)
-             (for-each
-              (lambda (pid)
-                (let* ((stat (cdr (waitpid pid))))
-                  
-                  (if (not (= stat 0))
-                      (set! errors
-                            (acons (list-element-index joblist pid)
-                                   stat errors)))))
-              joblist)
-
-             (for-each
-              (lambda (x)
-                (let* ((job (car x))
-                       (state (cdr x))
-                       (logfile (format "~a-~a.log"
-                                         (ly:get-option 'log-file) job))
-                       (log (ly:gulp-file logfile))
-                       (len (string-length log))
-                       (tail (substring  log (max 0 (- len 1024)))))
-
-                  (if (status:term-sig state)
-                      (ly:message
-                       "\n\n~a\n"
-                       (format (_ "job ~a terminated with signal: ~a")
-                               job (status:term-sig state)))
-                      (ly:message
-                       (_ "logfile ~a (exit ~a):\n~a")
-                       logfile (status:exit-val state) tail))))
-
-              errors)
-
-             (if (pair? errors)
-                 (ly:error "Children ~a exited with errors." (map car errors)))
-
-             ;; must overwrite individual entries
-             (if (ly:get-option 'dump-profile)
-                 (dump-profile "lily-run-total" '(0 0) (profile-measurements)))
-
-           (exit (if (null? errors) 0 1))))))
-          
+           (begin (ly:set-option
+                   'log-file (format "~a-~a"
+                                     (ly:get-option 'log-file) joblist))
+                  (set! files (vector-ref split-todo joblist)))
+           (begin (ly:progress "\nForking into jobs:  ~a\n" joblist)
+                  (for-each
+                   (lambda (pid)
+                     (let* ((stat (cdr (waitpid pid))))
+                       (if (not (= stat 0))
+                           (set! errors
+                                 (acons (list-element-index joblist pid)
+                                        stat errors)))))
+                   joblist)
+                  (for-each
+                   (lambda (x)
+                     (let* ((job (car x))
+                            (state (cdr x))
+                            (logfile (format "~a-~a.log"
+                                             (ly:get-option 'log-file) job))
+                            (log (ly:gulp-file logfile))
+                            (len (string-length log))
+                            (tail (substring  log (max 0 (- len 1024)))))
+                       (if (status:term-sig state)
+                           (ly:message
+                            "\n\n~a\n"
+                            (format (_ "job ~a terminated with signal: ~a")
+                                    job (status:term-sig state)))
+                           (ly:message
+                            (_ "logfile ~a (exit ~a):\n~a")
+                            logfile (status:exit-val state) tail))))
+                   errors)
+                  (if (pair? errors)
+                      (ly:error "Children ~a exited with errors."
+                                (map car errors)))
+                  ;; must overwrite individual entries
+                  (if (ly:get-option 'dump-profile)
+                      (dump-profile "lily-run-total"
+                                    '(0 0) (profile-measurements)))
+                  (exit (if (null? errors)
+                            0
+                            1))))))
   (if (string-or-symbol? (ly:get-option 'log-file))
       (ly:stderr-redirect (format "~a.log" (ly:get-option 'log-file)) "w"))
-  
   (let ((failed (lilypond-all files)))
     (if (ly:get-option 'trace-scheme-coverage)
        (begin
-         (coverage:show-all (lambda (f) (string-contains f "lilypond"))
-                            )))
-    
+         (coverage:show-all (lambda (f)
+                              (string-contains f "lilypond")))))
     (if (pair? failed)
-       (begin
-         (ly:error (_ "failed files: ~S") (string-join failed))
-         (exit 1))
+       (begin (ly:error (_ "failed files: ~S") (string-join failed))
+              (exit 1))
        (begin
          ;; HACK: be sure to exit with single newline
          (ly:message "")
@@ -678,59 +677,44 @@ or the number of the process."
         (do-measurements (ly:get-option 'dump-profile))
         (handler (lambda (key failed-file)
                    (set! failed (append (list failed-file) failed)))))
-
     (gc)
     (for-each
      (lambda (x)
-       (let*
-          ((start-measurements (if do-measurements
-                                   (profile-measurements)
-                                   #f))
-           (base (dir-basename x ".ly"))
-           (all-settings (ly:all-options)))
-
+       (let* ((start-measurements (if do-measurements
+                                     (profile-measurements)
+                                     #f))
+             (base (dir-basename x ".ly"))
+             (all-settings (ly:all-options)))
         (if separate-logs
             (ly:stderr-redirect (format "~a.log" base) "w"))
         (if ping-log
             (format ping-log "Procesing ~a\n" base))
-             
-        (if (ly:get-option 'trace-memory-frequency) 
+        (if (ly:get-option 'trace-memory-frequency)
             (mtrace:start-trace  (ly:get-option 'trace-memory-frequency)))
-        
         (lilypond-file handler x)
         (if start-measurements
             (dump-profile x start-measurements (profile-measurements)))
-
         (if (ly:get-option 'trace-memory-frequency)
-            (begin
-              (mtrace:stop-trace)
-              (mtrace:dump-results base)))
-                
-        (for-each
-         (lambda (s)
-           (ly:set-option (car s) (cdr s)))
-         all-settings)
-
+            (begin (mtrace:stop-trace)
+                   (mtrace:dump-results base)))
+        (for-each (lambda (s)
+                    (ly:set-option (car s) (cdr s)))
+                  all-settings)
         (ly:clear-anonymous-modules)
         (ly:set-option 'debug-gc-assert-parsed-dead #t)
         (gc)
         (ly:set-option 'debug-gc-assert-parsed-dead #f)
-
-        
         (if (ly:get-option 'debug-gc)
             (dump-gc-protects)
             (if (= (random 40) 1)
                 (ly:reset-all-fonts)))))
-
      files)
 
     ;; we want the failed-files notice in the aggregrate logfile.
     (if ping-log
        (format ping-log "Failed files: ~a\n" failed))
-        
     (if (ly:get-option 'dump-profile)
        (dump-profile "lily-run-total" '(0 0) (profile-measurements)))
-
     failed))
 
 (define (lilypond-file handler file-name)
@@ -743,7 +727,6 @@ or the number of the process."
 (define-public (gui-main files)
   (if (null? files)
       (gui-no-files-handler))
-
   (if (not (string? (ly:get-option 'log-file)))
       (let* ((base (dir-basename (car files) ".ly"))
             (log-name (string-append base ".log")))
@@ -751,17 +734,16 @@ or the number of the process."
            (ly:message (_ "Redirecting output to ~a...") log-name))
        (ly:stderr-redirect log-name "w")
        (ly:message "# -*-compilation-*-"))
-    
-    (let ((failed (lilypond-all files)))
-      (if (pair? failed)
-         (begin
-           ;; ugh
-           (ly:stderr-redirect "foo" "r")
-           (system (get-editor-command log-name 0 0 0))
-           (ly:error (_ "failed files: ~S") (string-join failed))
-           ;; not reached?
-           (exit 1))
-         (exit 0)))))
+      (let ((failed (lilypond-all files)))
+       (if (pair? failed)
+           (begin
+             ;; ugh
+             (ly:stderr-redirect "foo" "r")
+             (system (get-editor-command log-name 0 0 0))
+             (ly:error (_ "failed files: ~S") (string-join failed))
+             ;; not reached?
+             (exit 1))
+           (exit 0)))))
 
 (define (gui-no-files-handler)
   (let* ((ly (string-append (ly:effective-prefix) "/ly/"))
index 584dd6b3e17943623010c56e969c406ca94d3674..ee798233611a6a65361f1fae414962848a9f3cfa 100644 (file)
                  ((PropertySet) (list 'value (car args)))
                  ((PropertyUnset) '())
                  ((OverrideProperty) (list 'grob-value (car args)
-                                           'grob-property-path (cdr args)
+                                           'grob-property-path (if (list? (cadr args))
+                                                                   (cadr args)
+                                                                   (cdr args))
                                            'pop-first #t))
                  ((RevertProperty)
                   (if (list? (car args))
index 81614a68839fcddf458fd105d841fc4301ccd2dc..89eba1a42bf93a3beee192e80398b6ac94011aa8 100644 (file)
@@ -2,7 +2,7 @@
 ;;;;
 ;;;;  source file of the GNU LilyPond music typesetter
 ;;;; 
-;;;; (c) 2003--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+;;;; (c) 2003--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 
 "
 Internally markup is stored as lists, whose head is a function.
index 0b636377cceb580f793aa39d68e4141bf12a6963..39bedc18047c8b6f1e37dfeb7460727217bd216f 100644 (file)
         (format graph-out "~a ~a\n" time mem)
         (if stack
             (begin
-              (format stacks-out "~5a t = ~5a - delta-mem: ~15a - ~a \n" i
+              (format stacks-out "~5a t = ~5a - delta-mem: ~15a - ~a\n" i
                       time
                       (- mem last-mem) proc)
               (do
index 5d3277d820095e2c4deca9cd5ebc76bbd53c83a3..358fa0accaa7ea7d22cdc8812388c83e77b97464 100644 (file)
@@ -2,7 +2,7 @@
 ;;;;
 ;;;;  source file of the GNU LilyPond music typesetter
 ;;;; 
-;;;; (c) 2000--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+;;;; (c) 2000--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 
 
 
          ("electric guitar (muted)" . ,(- 29 1))
          ("overdriven guitar" . ,(- 30 1))
          ("distorted guitar" . ,(- 31 1))
-         ("guitar harmo(dinics" . ,(- 32 1))
+         ("guitar harmonics" . ,(- 32 1))
 
          ; (33-40 bass)
          ("acoustic bass" . ,(- 33 1))
          ("contrabass" . ,(- 44 1))
          ("tremolo strings" . ,(- 45 1))
          ("pizzicato strings" . ,(- 46 1))
-         ("orchestral strings" . ,(- 47 1))
+         ("orchestral harp" . ,(- 47 1))
          ("timpani" . ,(- 48 1))
 
          ; (49-56 ensemble)
@@ -284,14 +284,12 @@ returns the program of the instrument
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;
 
-(define-public (write-performances-midis performances basename)
+(define-public (write-performances-midis performances basename . rest)
   (let ((midi-ext (ly:get-option 'midi-extension)))
     (let
        loop
       ((perfs performances)
-       (count 0))
-
-
+       (count (if (null? rest) 0 (car rest))))
       (if (pair?  perfs)
          (begin
            (ly:performance-write
index be24b74579aed713f720e6ff13ab4e63d9d24dd2..42a08cc344c0ec8731d3c1f428f0d7a06a6a5c4b 100644 (file)
@@ -2,7 +2,7 @@
 ;;;;
 ;;;;  source file of the GNU LilyPond music typesetter
 ;;;; 
-;;;; (c) 1998--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+;;;; (c) 1998--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 ;;;;                 Han-Wen Nienhuys <hanwen@xs4all.nl>
 
 ;; (use-modules (ice-9 optargs)) 
@@ -720,8 +720,10 @@ SkipEvent. Useful for extracting parts from crowded scores"
 
 
 
-(defmacro-public def-grace-function (start stop)
+(defmacro-public def-grace-function (start stop . docstring)
+  "Helper macro for defining grace music"
   `(define-music-function (parser location music) (ly:music?)
+     ,@docstring
      (make-music 'GraceMusic
                 'origin location
                 'element (make-music 'SequentialMusic
@@ -735,9 +737,18 @@ Syntax:
   (define-music-function (parser location arg1 arg2 ...) (arg1-type? arg2-type? ...)
     ...function body...)
 "
-  `(ly:make-music-function (list ,@signature)
-                          (lambda (,@args)
-                            ,@body)))
+(if (and (pair? body) (pair? (car body)) (eqv? '_i (caar body)))
+      ;; When the music function definition contains a i10n doc string,
+      ;; (_i "doc string"), keep the literal string only
+      (let ((docstring (cadar body))
+           (body (cdr body)))
+       `(ly:make-music-function (list ,@signature)
+                                (lambda (,@args)
+                                  ,docstring
+                                  ,@body)))
+      `(ly:make-music-function (list ,@signature)
+                              (lambda (,@args)
+                                ,@body))))
 
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
index 22e4377046c47ed3034bea7a7c52ebc9a055a2a3..fdd52531156a083e95919efb1d1144611ace2f2d 100644 (file)
@@ -2,7 +2,7 @@
 ;;;;
 ;;;;  source file of the GNU LilyPond music typesetter
 ;;;; 
-;;;; (c) 1998--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+;;;; (c) 1998--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 ;;;; Han-Wen Nienhuys <hanwen@xs4all.nl>
 
 
@@ -202,6 +202,15 @@ centered, X==1 is at the right, X == -1 is at the left."
 
 (define-public (first-bar-number-invisible barnum) (> barnum 1))
 
+(define-public (all-bar-numbers-visible barnum) #t)
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; percent repeat counters
+
+(define-public ((every-nth-repeat-count-visible n) count context) (= 0 (modulo count n)))
+
+(define-public (all-repeat-counts-visible count context) #t)
+
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; break visibility
 
@@ -243,6 +252,7 @@ centered, X==1 is at the right, X == -1 is at the left."
     ("" . ("" . ""))
     (":" . (":" . ""))
     ("." . ("." . ()))
+    ("'" . ("'" . ()))
     ("empty" . (() . ()))
     ("brace" . (() . "brace"))
     ("bracket" . (() . "bracket")) 
@@ -290,6 +300,53 @@ centered, X==1 is at the right, X == -1 is at the left."
            (ly:event-property ev 'denominator)
            (ly:event-property ev 'numerator))))
 
+
+; a formatter function, which is simply a wrapper around an existing 
+; tuplet formatter function. It takes the value returned by the given
+; function and appends a note of given length. 
+(define-public ((tuplet-number::append-note-wrapper function note) grob)
+  (let* ((txt (if function (function grob) #f)))
+    (if txt 
+      (markup txt #:fontsize -5 #:note note UP)
+      (markup #:fontsize -5 #:note note UP))))
+
+; Print a tuplet denominator with a different number than the one derived from 
+; the actual tuplet fraction
+(define-public ((tuplet-number::non-default-tuplet-denominator-text denominator) grob)
+(number->string (if denominator 
+                    denominator 
+                    (ly:event-property (event-cause grob) 'denominator))))
+
+; Print a tuplet fraction with different numbers than the ones derived from 
+; the actual tuplet fraction
+(define-public ((tuplet-number::non-default-tuplet-fraction-text denominator numerator) grob)
+  (let* ((ev (event-cause grob))
+         (den (if denominator denominator (ly:event-property ev 'denominator)))
+         (num (if numerator numerator (ly:event-property ev 'numerator))))
+     (format "~a:~a" den num)))
+
+; Print a tuplet fraction with note durations appended to the numerator and the 
+; denominator
+(define-public ((tuplet-number::fraction-with-notes denominatornote numeratornote) grob)
+  (let* ((ev (event-cause grob))
+         (denominator (ly:event-property ev 'denominator))
+         (numerator (ly:event-property ev 'numerator)))
+    ((tuplet-number::non-default-fraction-with-notes denominator denominatornote numerator numeratornote) grob)))
+
+; Print a tuplet fraction with note durations appended to the numerator and the 
+; denominator
+(define-public ((tuplet-number::non-default-fraction-with-notes denominator denominatornote numerator numeratornote) grob)
+  (let* ((ev (event-cause grob))
+         (den (if denominator denominator (ly:event-property ev 'denominator)))
+         (num (if numerator numerator (ly:event-property ev 'numerator))))
+     (make-concat-markup (list 
+          (make-simple-markup (format "~a" den)) 
+          (markup #:fontsize -5 #:note denominatornote UP)
+          (make-simple-markup " : ")
+          (make-simple-markup (format "~a" num)) 
+          (markup #:fontsize -5 #:note numeratornote UP)))))
+
+
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; Color
 
@@ -662,4 +719,21 @@ centered, X==1 is at the right, X == -1 is at the left."
 
 (define-public (script-interface::calc-x-offset grob)
   (ly:grob-property grob 'positioning-done)
-  (ly:self-alignment-interface::centered-on-x-parent grob))
+  (let* ((shift (ly:grob-property grob 'toward-stem-shift 0.0))
+        (note-head-location (ly:self-alignment-interface::centered-on-x-parent grob))
+        (note-head-grob (ly:grob-parent grob X))
+        (stem-grob (ly:grob-object note-head-grob 'stem)))
+    (+ note-head-location
+       ;; If the property 'toward-stem-shift is defined and the script has the
+       ;; same direction as the stem, move the script accordingly. Since scripts can
+       ;; also be over skips, we need to check whether the grob has a stem at all.
+       (if (ly:grob? stem-grob)
+          (let ((dir1 (ly:grob-property grob 'direction))
+                (dir2 (ly:grob-property stem-grob 'direction)))
+            (if (equal? dir1 dir2)
+                (let* ((common-refp (ly:grob-common-refpoint grob stem-grob X))
+                       (stem-location (ly:grob-relative-coordinate stem-grob common-refp X)))
+                  (* shift (- stem-location
+                              note-head-location)))
+                0.0))
+          0.0))))
index 9274279a2cf732f61d2db234c88b5d9c586e7bfe..6b2e3cff6bc9e98c8ce6f942599a44bced56ea89 100644 (file)
@@ -2,7 +2,7 @@
 ;;;;
 ;;;;  source file of the GNU LilyPond music typesetter
 ;;;; 
-;;;; (c) 1998--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+;;;; (c) 1998--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 ;;;;                 Han-Wen Nienhuys <hanwen@xs4all.nl>
 
 ;;;; Note: currently misused as testbed for titles with markup, see
              (list r g b)))
 
 ;; restore color from stack
-(define (resetcolor) "grestore \n")
+(define (resetcolor) "grestore\n")
 
 ;; rotation around given point
 (define (setrotation ang x y)
index f1af2a927485f246f4374390e5f53fd41d53a3bb..716f0f13559aa794d6e96da97f93ca4c98dc3d57 100644 (file)
@@ -2,7 +2,7 @@
 ;;;;
 ;;;;  source file of the GNU LilyPond music typesetter
 ;;;;
-;;;; (c) 2002--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+;;;; (c) 2002--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 
 ;;;; http://www.w3.org/TR/SVG11
 ;;;; http://www.w3.org/TR/SVG12/ -- page, pageSet in draft
diff --git a/scm/output-tex.scm b/scm/output-tex.scm
deleted file mode 100644 (file)
index af663cb..0000000
+++ /dev/null
@@ -1,178 +0,0 @@
-;;;; tex.scm -- implement Scheme output routines for TeX
-;;;;
-;;;;  source file of the GNU LilyPond music typesetter
-;;;; 
-;;;; (c) 1998--2007 Jan Nieuwenhuizen <janneke@gnu.org>
-;;;;                 Han-Wen Nienhuys <hanwen@xs4all.nl>
-
-
-;; The public interface is tight.
-;; It has to be, because user-code is evalled with this module.
-
-;; ***It should also be clean, well defined, documented and reviewed***
-
-;; To be reasonably safe, you probably do not want to use the TeX
-;; backend anyway, but rather the PostScript backend.  You may want
-;; to run gs in a uml sandbox too.
-
-
-(define-module (scm output-tex)
-  #:re-export (quote)
-
-  ;; JUNK this -- see lily.scm: ly:all-output-backend-commands
-  #:export (unknown
-           blank
-           circle
-           dot
-           dashed-slur
-           named-glyph
-           dashed-line
-           comment
-           repeat-slash
-           placebox
-           bezier-sandwich
-           round-filled-box
-           text
-           setcolor
-           resetcolor
-           polygon
-           draw-line
-           no-origin
-           grob-cause))
-
-(use-modules (ice-9 regex)
-            (ice-9 string-fun)
-            (guile)
-            (srfi srfi-13)
-            (scm framework-tex)
-            (lily))
-
-
-
-;;;;;;;;
-;;;;;;;; DOCUMENT ME!
-;;;;;;;;
-
-
-(define (char font i)
-  (string-append "\\" (tex-font-command font)
-                "\\char" (ly:inexact->string i 10) " "))
-
-(define (unknown) 
-  "%\n\\unknown\n")
-
-(define (url-link url x y)
-  "")
-
-(define (blank)
-  "")
-
-(define (circle radius thick)
-  (embedded-ps (list 'circle radius thick)))
-
-(define (dot x y radius)
-  (embedded-ps (list 'dot x y radius)))
-
-(define (embedded-ps string)
-  (embedded-ps (list 'embedded-ps string)))
-
-(define (dashed-slur thick on off lst)
-  (embedded-ps (list 'dashed-slur thick on off `(quote ,lst))))
-
-(define (named-glyph font name)
-  (let* ((info (ly:otf-font-glyph-info font name))
-        (subfont (assoc-get 'subfont info))
-        (subidx  (assoc-get 'subfont-index info)))
-    
-    ;;(stderr "INFO: ~S\n" info)
-    ;;(stderr "FONT: ~S\n" font)
-    (if (and subfont subidx)
-       (string-append "\\" (tex-font-command-raw
-                            subfont
-                            (ly:font-magnification font))
-                      "\\char" (number->string subidx))
-
-       (begin
-         (ly:warning (_ "cannot find ~a in ~a" name font))
-         ""))))
-
-(define (dashed-line thick on off dx dy phase)
-  (embedded-ps (list 'dashed-line  thick on off dx dy phase)))
-
-(define (embedded-ps expr)
-  (let ((ps-string
-        (with-output-to-string
-          (lambda () (ps-output-expression expr (current-output-port))))))
-    (string-append "\\embeddedps{" ps-string "}")))
-
-(define (repeat-slash w a t)
-  (embedded-ps (list 'repeat-slash  w a t)))
-
-(define (number->dim x)
-  (string-append
-   ;;ugh ly:* in backend needs compatibility func for standalone output
-   (ly:number->string x) " \\output-scale "))
-
-(define (placebox x y s) 
-  (string-append
-   "\\lyitem{" (ly:number->string x) "}{" (ly:number->string y) "}{" s "}%\n"))
-
-(define (bezier-sandwich lst thick)
-  (embedded-ps (list 'bezier-sandwich `(quote ,lst) thick)))
-
-
-(define (round-filled-box x y width height blotdiam)
-  (embedded-ps (list 'round-filled-box  x y width height blotdiam)))
-
-(define (text font s)
-  (format #f
-   "\\hbox{\\~a{}~a}" (tex-font-command font)
-   (sanitize-tex-string s)))
-
-(define (setcolor r g b)
-  (string-append "\\color[rgb]{"
-  (number->string r) ", "
-  (number->string g) ", "
-  (number->string b) "}"))
-
-;; FIXME
-;; The PostScript backend saves the current color
-;; during setcolor and restores it during resetcolor.
-;; We don't do that here.
-(define (resetcolor)
-  (string-append "\\color[rgb]{0,0,0}\n"))
-
-(define (polygon points blot-diameter fill)
-  (embedded-ps (list 'polygon `(quote ,points) blot-diameter fill)))
-
-(define (draw-line thick fx fy tx ty)
-  (embedded-ps (list 'draw-line thick fx fy tx ty)))
-
-;; no-origin not yet supported by Xdvi
-(define (no-origin) "")
-
-
-(define-public (line-location  file line col)
-  "Print an input location, without column number ."
-  (string-append (number->string line) " " file))
-
-(define-public point-and-click #f)
-
-(define (grob-cause offset grob)
-  (define (line-column-location file line col)
-    "Print an input location, including column number ."
-    (string-append (number->string line) ":"
-                  (number->string col) " " file))
-
-  (if (procedure? point-and-click)
-      (let* ((cause (ly:grob-property grob 'cause))
-            (music-origin (if (ly:stream-event? cause)
-                              (ly:event-property cause 'origin)))
-            (location (if (ly:input-location? music-origin)
-                          (ly:input-file-line-column music-origin))))
-       (if (pair? location)
-            ;;; \\string ? 
-           (string-append "\\special{src:"
-                          (line-column-location location) "}")
-           ""))
-      ""))
diff --git a/scm/output-texstr.scm b/scm/output-texstr.scm
deleted file mode 100644 (file)
index 841e71a..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-;;;; texstr.scm -- implement Scheme output routines for TeX strings
-;;;;
-;;;;  source file of the GNU LilyPond music typesetter
-;;;; 
-;;;; (c) 2004--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
-
-(define-module (scm output-texstr))
-(define this-module (current-module))
-
-(use-modules
- (guile)
- (ice-9 regex)
- (srfi srfi-13)
- (scm framework-tex)
- (lily))
-
-(define (dummy . foo) #f)
-
-(map (lambda (x) (module-define! this-module x dummy))
-     (ly:all-stencil-expressions))
-
-(define-public (grob-cause . x) "")
-(define-public (no-origin . x) "")
-(define-public (placebox
-               x y what)
-  (if (string? what)
-      what
-      ""))
-
-
-(define-public (text font str)
-  (call-with-output-string
-   (lambda (port)
-     (display (format "\\lilygetmetrics{~a~a}{~a}{1.0}{~a}\n"
-                     
-                     (hash str TEX_STRING_HASHLIMIT)
-                   (ly:font-file-name font)
-                   (ly:font-file-name font)
-                   (sanitize-tex-string str))
-             port)
-     )))
index 3e25bdaaee3b46059ce22a90eb1578cb8b7b6426..a4862198010c206a36b72febae29b8d3ee3aeefa 100644 (file)
 \f
 
 
-(define (page-headfoot layout scopes number
-                      sym separation-symbol dir last?)
+(define (page-headfoot layout scopes number sym separation-symbol dir
+                      is-last-bookpart is-bookpart-last-page)
   
   "Create a stencil including separating space."
 
         (stencil (ly:make-stencil "" '(0 . 0) '(0 . 0)))
         (head-stencil
          (if (procedure? header-proc)
-             (header-proc layout scopes number last?)
-             #f))
-        )
+             (header-proc layout scopes number is-last-bookpart is-bookpart-last-page)
+             #f)))
     
     (if (and (number? sep)
             (ly:stencil? head-stencil)
        (layout (ly:paper-book-paper paper-book))
        (scopes (ly:paper-book-scopes paper-book))
        (number (page-page-number page))
-       (last? (page-property page 'is-last))
-       )
+       (is-last-bookpart (page-property page 'is-last-bookpart))
+       (is-bookpart-last-page (page-property page 'is-bookpart-last-page)))
        
       (page-headfoot layout scopes number
                (if (= dir UP)
                (if (= dir UP)
                    'head-separation
                    'foot-separation)
-               dir last?)))
+               dir is-last-bookpart is-bookpart-last-page)))
 
 (define (page-header page)
   (page-header-or-footer page UP))
        ;; TODO: naming paper-height/paper-width not analogous to TeX.
        
        (system-xoffset (ly:output-def-lookup layout 'horizontal-shift 0.0))
-       (system-separator-markup (ly:output-def-lookup layout 'systemSeparatorMarkup))
+       (system-separator-markup (ly:output-def-lookup layout 'system-separator-markup))
        (system-separator-stencil (if (markup? system-separator-markup)
                                     (interpret-markup layout
                                                       (layout-extract-page-properties layout)
index d4a1f42f3f3949c6452cda7b1d0402fa2d9be124..d3e299ddd80c4bd4d0646b16101067f9e014620d 100644 (file)
@@ -2,7 +2,7 @@
 ;;;;
 ;;;;  source file of the GNU LilyPond music typesetter
 ;;;; 
-;;;; (c) 2004--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+;;;; (c) 2004--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 
 (define-public (set-paper-dimension-variables mod)
   (module-define! mod 'dimension-variables
     (setm! 'text-font-size (* 12 factor))
     
     (setm! 'output-scale ss)
-    (setm! 'fonts
-                   (if tex-backend?
-                       (make-cmr-tree factor)
-                       (make-century-schoolbook-tree factor)))
+    (setm! 'fonts (make-century-schoolbook-tree factor))
     (setm! 'staff-height staff-height)
     (setm! 'staff-space ss)
 
index ede242b4aa9cb29056bb61198b960745563ee75b..b3de9fc405876ce6fe7212b2e3d158210cded146 100644 (file)
@@ -2,7 +2,7 @@
 ;;;;
 ;;;; source file of the GNU LilyPond music typesetter
 ;;;;
-;;;; (c) 2004--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+;;;; (c) 2004--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 
 
 ;; (name . (glyph clef-position octavation))
index 31f04444378af967be319ecc1c475997405aa8b8..cfbdcd7cffa6b023f0137c0a82bfe9672c297e12 100644 (file)
@@ -2,7 +2,7 @@
 ;;;;
 ;;;;  source file of the GNU LilyPond music typesetter
 ;;;; 
-;;;; (c) 2004--2007  Nicolas Sceaux  <nicolas.sceaux@free.fr>
+;;;; (c) 2004--2009  Nicolas Sceaux  <nicolas.sceaux@free.fr>
 ;;;;           Jan Nieuwenhuizen <janneke@gnu.org>
 
 (define gen-lily-sym
index 2f4d37a434b784cc231956aaae056cbc96688240..81beaf6ae7d83c6dab583c1297dcd061fe775f3c 100644 (file)
@@ -2,7 +2,7 @@
 ;;;;
 ;;;;  source file of the GNU LilyPond music typesetter
 ;;;; 
-;;;; (c) 2004--2007    Han-Wen Nienhuys <hanwen@xs4all.nl>
+;;;; (c) 2004--2009    Han-Wen Nienhuys <hanwen@xs4all.nl>
 
 ;; todo: figure out how to make module,
 ;; without breaking nested ly scopes
index 7040add95ee10eb3d0258f30a23a0651f5cc29aa..6db63bd90a9ca3205f627b985757e2ca76eea9d0 100644 (file)
@@ -2,67 +2,45 @@
 ;;;;
 ;;;;  source file of the GNU LilyPOnd music typesetter
 ;;;;
-;;;; (c) 2008 Carl D. Sorensen <c_sorensen@byu.edu>
+;;;; (c) 2008--2009 Carl D. Sorensen <c_sorensen@byu.edu>
 
 
 (define-public (parse-terse-string terse-definition)
 "Parse a fret-diagram-terse definition string @code{terse-definition} and
-return a marking list, which can be used as with a fretboard grob."
+return a marking list, which can be used with a fretboard grob."
    (cdr (fret-parse-terse-definition-string (list '()) terse-definition)))
 
-(define-public (get-chord-shape shape-code base-chord-shapes)
-"Return the chord shape associated with key @code{shape-code} in
-the alist @code{base-chord-shapes}."
-   (assoc-get shape-code base-chord-shapes #f))
-
-(define-public (offset-fret fret-offset terse-string)
-"Add @code{fret-offset} to each fret indication in @code{terse-string}
-and return the resulting fret-diagram-terse definition string."
-
-   (define (split-fretstring fret-string)
-     (map (lambda (x) (split-item x))
-          (string-split fret-string #\sp )))
-
-   (define (split-item item-string)
-     (string-split item-string #\- ))
-
-   (define (split-terse-string terse-string)
-      (let ((long-list
-               (string-split terse-string #\;)))
-        (map (lambda (x) (split-fretstring x))
-           (list-head long-list (1- (length long-list))))))
-
-   (define (join-terse-string terse-string-list)
-     (string-join
-        (map (lambda (x) (join-fretstring x)) terse-string-list)
-        ";" 'suffix))
-
-   (define (join-item item-list)
-     (string-join item-list "-" ))
-
-   (define (join-fretstring fretstring-list)
-     (string-join
-       (map (lambda (x) (join-item x)) fretstring-list)
-       " " ))
-
-  (define (add-item-fret-offset fret-offset item-list)
-     (let ((fretval (string->number (car item-list))))
-       (if fretval
-           (cons (number->string (+ fretval fret-offset))
-                 (cdr item-list))
-           item-list)))
-
-  (define (add-fretstring-fret-offset fret-offset fretstring-list)
-    (map (lambda (x) (add-item-fret-offset fret-offset x))
-         fretstring-list))
-
-  (define (add-terse-fret-offset fret-offset terse-string-list)
-    (map (lambda (x) (add-fretstring-fret-offset fret-offset x))
-         terse-string-list))
-
-;; body
-  (join-terse-string
-    (add-terse-fret-offset
-      fret-offset
-      (split-terse-string terse-string))))
+(define-public (get-chord-shape shape-code tuning base-chord-shapes)
+"Return the chord shape associated with @code{shape-code} and
+@code{tuning} in the hash-table @code{base-chord-shapes}."
+  (let ((hash-handle (hash-get-handle base-chord-shapes
+                                       (cons shape-code tuning))))
+     (if hash-handle
+         (cdr hash-handle)
+         '())))
+
+(define-public (offset-fret fret-offset diagram-definition)
+"Add @code{fret-offset} to each fret indication in @code{diagram-definition}
+and return the resulting verbose fret-diagram-definition."
+   (let ((verbose-definition 
+           (if (string? diagram-definition)
+               (parse-terse-string diagram-definition)
+               diagram-definition)))
+     (map (lambda(item) 
+            (let ((code (car item)))
+              (cond
+                ((eq? code 'barre)
+                  (list-set! item 3
+                     (+ fret-offset (list-ref item 3)))
+                  item)
+                ((eq? code 'capo)
+                  (list-set! item 1
+                     (+ fret-offset (list-ref item 1)))
+                  item)
+                ((eq? code 'place-fret)
+                  (list-set! item 2
+                     (+ fret-offset (list-ref item 2)))
+                  item)
+                (else item))))
+            verbose-definition)))
 
index 474a89628adad1fe968adfa9724618595629868d..cb20163c01e2062f495a7b95fa076e8975c74f5b 100644 (file)
@@ -2,7 +2,7 @@
 ;;;;
 ;;;;  source file of the GNU LilyPond music typesetter
 ;;;; 
-;;;; (c) 2005--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+;;;; (c) 2005--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 
 (define-module (scm ps-to-png))
 
index 5c79bba09093d27facfc162def12c2717369abdd..43442c975fc697da16b44ac8aaa6102d507f44a2 100644 (file)
@@ -2,7 +2,7 @@
 ;;;;
 ;;;; source file of the GNU LilyPond music typesetter
 ;;;; 
-;;;; (c) 2004--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+;;;; (c) 2004--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 
 (map
  (lambda (sym)
index 9df3e8905ceeea724e104e830c6de23816713758..966024f2d2324915cd676edf2eb87a24952c4518 100644 (file)
@@ -2,7 +2,7 @@
 ;;;;
 ;;;; source file of the GNU LilyPond music typesetter
 ;;;; 
-;;;; (c) 2000--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+;;;; (c) 2000--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 
 (define-public default-script-alist
   '(("thumb" .
       (side-relative-direction .  -1)
       (quantize-position . #t)
       (avoid-slur . inside) 
+      (toward-stem-shift . 0.5)
       (padding . 0.20)    
       (script-priority . -100)))
     ("tenuto" .
      ((script-stencil . (feta . ("varcoda" . "varcoda")))
       (padding . 0.20)    
       (avoid-slur . outside)
-      (direction  . 1)))))
+      (direction  . 1)))
+    ("snappizzicato" .
+     ((script-stencil . (feta . ("snappizzicato" . "snappizzicato")))
+      (padding . 0.20)
+      (avoid-slur . outside)
+      (direction  . 1)))
+      ))
index 1bed6c7f5e3b1ece0a36bb80cfa38dd2ada7bb16..e7617816417a22365f87729370f1997b048d6407 100644 (file)
@@ -2,7 +2,7 @@
 ;;;;
 ;;;;  source file of the GNU LilyPond music typesetter
 ;;;; 
-;;;; (c) 1998--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+;;;; (c) 1998--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 ;;;;                 Han-Wen Nienhuys <hanwen@xs4all.nl>
 
 
index c0e56cd86e8d4613ab63d34856430aec6307962f..105f6f5893555deade31e7f9b5e5e97aed13d8ff 100644 (file)
@@ -2,7 +2,7 @@
 ;;;;
 ;;;;  source file of the GNU LilyPond music typesetter
 ;;;; 
-;;;; (c) 2003--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+;;;; (c) 2003--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 
 (define-public (stack-stencils axis dir padding stils)
   "Stack stencils STILS in direction AXIS, DIR, using PADDING."
@@ -81,6 +81,7 @@
       (interval-widen xext (/ width 2))
       (interval-widen yext (/ width 2)))))
 
+
 (define-public (make-filled-box-stencil xext yext)
   "Make a filled box."
   
index 23fdce87752f5415d1f6d4626c7e6df7d061219a..66f45fc8a5566e2d5de7dfbb0f460abde6db5e8c 100644 (file)
@@ -2,7 +2,7 @@
 ;;;;
 ;;;;  source file of the GNU LilyPond music typesetter
 ;;;;
-;;;; (c) 2004--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+;;;; (c) 2004--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 ;;;;          Han-Wen Nienhuys <hanwen@xs4all.nl>
 
 (define-public (layout-extract-page-properties layout)
 
 ;;;;;;;;;;;;;;;;;;
 
-(define-public ((marked-up-headfoot what-odd what-even) layout scopes page-number last?)
+(define-public ((marked-up-headfoot what-odd what-even)
+                layout scopes page-number is-last-bookpart is-bookpart-last-page)
 
   "Read variables WHAT-ODD, WHAT-EVEN from LAYOUT, and interpret them
 as markup. The PROPS argument will include variables set in SCOPES and
-page:last?, page:page-number-string and page:page-number
-" 
+page:is-bookpart-last-page, page:is-last-bookpart, page:page-number-string
+and page:page-number
 
   (define (get sym)
     (ly:output-def-lookup layout sym))
@@ -41,7 +42,8 @@ page:last?, page:page-number-string and page:page-number
                 (cons 'header:tagline
                       (ly:modules-lookup scopes 'tagline
                                          (ly:output-def-lookup layout 'tagline)))
-                (cons 'page:last? last?)
+                (cons 'page:is-last-bookpart is-last-bookpart)
+                (cons 'page:is-bookpart-last-page is-bookpart-last-page)
                 (cons 'page:page-number-string
                       (number->string page-number))
                 (cons 'page:page-number page-number)))
@@ -49,7 +51,6 @@ page:last?, page:page-number-string and page:page-number
                       (list pgnum-alist)
                       prefixed-alists
                       (layout-extract-page-properties layout))))
-         
          (interpret-markup layout props potential-markup))
 
        empty-stencil))
index 09acee7a65f2e9c1036bb18363d3e5276247c8f2..82c563da6b33d72dffebcd559b604d13bbb05d12 100644 (file)
@@ -2,7 +2,7 @@
 ;;;;
 ;;;;  source file of the GNU LilyPond music typesetter
 ;;;; 
-;;;; (c) 2003--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+;;;; (c) 2003--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 ;;;;                 Jan Nieuwenhuizen <janneke@gnu.org>
 
 (define-module (scm to-xml))
index 901bff0944e40e0385d8ce81443de09a569fe599..902da1287d3390fc0fdd757df6773ca1bfbecb48 100644 (file)
@@ -2,23 +2,26 @@
 ;;;;
 ;;;;  source file of the GNU LilyPond music typesetter
 ;;;; 
-;;;; (c) 1998--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+;;;; (c) 1998--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 ;;;;                Jan Nieuwenhuizen <janneke@gnu.org>
 
 ;; metronome marks
 (define-public (format-metronome-markup text dur count context)
-  (let* ((hide-note (eq? #t (ly:context-property context 'tempoHideNote)))
-        (note-mark (if (and (not hide-note) (ly:duration? dur))
+  (let* ((hide-note (eq? #t (ly:context-property context 'tempoHideNote))))
+    (metronome-markup text dur count hide-note)))
+
+(define-public (metronome-markup text dur count hide-note)
+  (let* ((note-mark (if (and (not hide-note) (ly:duration? dur))
                       (make-smaller-markup
                       (make-note-by-number-markup (ly:duration-log dur)
                                                   (ly:duration-dot-count dur)
                                                   1))
-                     (make-null-markup)))
+                     #f))
          (note-markup (if (and (not hide-note) (number? count) (> count 0) )
                         (make-concat-markup (list
                           (make-general-align-markup Y DOWN note-mark)
                           (make-simple-markup " ")
-                          (make-simple-markup  "=")
+                          (make-simple-markup "=")
                           (make-simple-markup " ")
                           (make-simple-markup (number->string count))))
                       #f))
index 9454a8fe7760c790881be88751b16eecad0a82ae..dee58506bee36a4f0c0df307a042372d68cfff80 100644 (file)
@@ -3,7 +3,7 @@
 ;;;;
 ;;;;  source file of the GNU LilyPond music typesetter
 ;;;; 
-;;;; (c) 2005--2007 Bernard Hurley <bernard@fong-hurley.org.uk>
+;;;; (c) 2005--2009 Bernard Hurley <bernard@fong-hurley.org.uk>
 ;;;;
 
 (define x11-color-list             
index bae147532ade79d073169488ffc97e07ad888164..b3170cdbf95ad51766b98e4f88d8a6d5da8238de 100644 (file)
@@ -1,5 +1,7 @@
 depth = ..
 
+SUBDIRS=auxiliar build
+
 SEXECUTABLES=convert-ly lilypond-book abc2ly etf2ly midi2ly lilypond-invoke-editor musicxml2ly lilysong lilymidi
 
 STEPMAKE_TEMPLATES=script help2man po
diff --git a/scripts/SConscript b/scripts/SConscript
deleted file mode 100644 (file)
index a69a637..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-# -*-python-*-
-
-Import ('env', 'install', 'src_glob')
-sources = src_glob ('*.py')
-scripts = map (env.AT_COPY, sources)
-
-install (scripts, env['bindir'])
-
-po = env.Command ('lilypond.po', sources, env['pocommand'])
-env.Alias ('po-update', po)
index 749baed3c84f3cc0914d591c9cd2ca4ad2dc3f0f..9107b8b8665903738a68586851738831d5a5b666 100644 (file)
@@ -216,7 +216,7 @@ def dump_slyrics (outf):
             m = k
         for i in range (len(slyrics[voice_idx_dict[k]])):
             l= alphabet(i)
-            outf.write ("\nwords%sV%s = \lyricmode {" % (m, l))
+            outf.write ("\nwords%sV%s = \\lyricmode {" % (m, l))
             outf.write ("\n" + slyrics [voice_idx_dict[k]][i])
             outf.write ("\n}")
 
@@ -254,7 +254,7 @@ def try_parse_q(a):
         denominator=array2[0]
         perminute=array2[1]
         duration = str (int (denominator) / int (numerator))
-        midi_specs = ' '.join(["    \n\t\t\context {\n\t\t \Score tempoWholesPerMinute = #(ly:make-moment ", perminute, " ", duration, ")\n\t\t }\n"])
+        midi_specs = ' '.join(["\n\t\t\\context {\n\t\t \\Score tempoWholesPerMinute = #(ly:make-moment ", perminute, " ", duration, ")\n\t\t }\n"])
     else:
         sys.stderr.write("abc2ly: Warning, unable to parse Q specification: %s\n" % a)
 
@@ -282,7 +282,7 @@ def dump_score (outf):
 
         l = ord( 'A' )
         for lyrics in slyrics [voice_idx_dict[k]]:
-            outf.write ("\n\t\\addlyrics { \n")
+            outf.write ("\n\t\\addlyrics {\n")
             if re.match('[1-9]',k):
                 m = alphabet (int (k))
             else:
@@ -650,12 +650,12 @@ def try_parse_header_line (ln, state):
             if a == 'C':
                 if not state.common_time:
                     state.common_time = 1
-                    voices_append (" \\override Staff.TimeSignature #\'style = #'C\n")
+                    voices_append (" \\override Staff.TimeSignature #'style = #'C\n")
                 a = '4/4'
             if a == 'C|':
                 if not state.common_time:
                     state.common_time = 1
-                    voices_append ("\\override Staff.TimeSignature #\'style = #'C\n")
+                    voices_append ("\\override Staff.TimeSignature #'style = #'C\n")
                 a = '2/2'
             if not length_specified:
                 set_default_len_from_time_sig (a)
@@ -779,7 +779,7 @@ def duration_to_lilypond_duration  (multiply_tup, defaultlen, dots):
             base = '\\breve'
             dots = 1
         if (multiply_tup[0] / multiply_tup[1]) == 4:
-            base = '\longa'
+            base = '\\longa'
     return '%s%s' % ( base, '.'* dots)
 
 class Parser_state:
@@ -1359,9 +1359,10 @@ def get_option_parser ():
                   action='store_true')
     p.add_option ('-b', '--beams', help=_ ("preserve ABC's notion of beams"))
     p.add_option_group ('',
-                        description=(_ ('Report bugs via')
-                                     + ''' http://post.gmane.org/post.php'''
-                                     '''?group=gmane.comp.gnu.lilypond.bugs\n'''))
+                        description=(
+            _ ('Report bugs via %s')
+            % 'http://post.gmane.org/post.php'
+            '?group=gmane.comp.gnu.lilypond.bugs') + '\n')
     return p
 
 
diff --git a/scripts/auxiliar/GNUmakefile b/scripts/auxiliar/GNUmakefile
new file mode 100644 (file)
index 0000000..a80126d
--- /dev/null
@@ -0,0 +1,8 @@
+depth=../..
+
+EXTRA_DIST_FILES = $(call src-wildcard,*.sh) $(call src-wildcard,*.py)
+EXTRA_DIST_FILES += pfx2ttf.fontforge
+
+include $(depth)/make/stepmake.make
+
+default:
diff --git a/scripts/auxiliar/build-coverage.sh b/scripts/auxiliar/build-coverage.sh
new file mode 100755 (executable)
index 0000000..f61ff64
--- /dev/null
@@ -0,0 +1,67 @@
+#!/bin/sh
+
+if test "$1" == "--fresh"; then
+  fresh=yes
+fi
+
+if test ! -f config-cov.make; then
+  fresh=yes
+fi
+
+if test "$fresh" = "yes";
+then
+  ./configure --enable-config=cov --disable-optimising \
+   &&   make conf=cov -j2 clean \
+   &&   perl -i~ -pe 's/-pipe /-fprofile-arcs -ftest-coverage -pipe /g' config-cov.make \
+   &&   perl -i~ -pe 's/ -ldl / -lgcov -ldl /g' config-cov.make
+else
+  find -name '*.gcda' -exec rm  '{}' ';'
+fi
+
+mkdir -p scripts/out-cov/
+touch scripts/out-cov/midi2ly scripts/out-cov/midi2ly.1
+make conf=cov -j2 &&  \
+  make conf=cov test-clean OUT_TEST=testcov LILYPOND_JOBS= && \
+  make conf=cov test OUT_TEST=testcov LILYPOND_JOBS='-dtrace-scheme-coverage '
+
+if test "$?" != "0"; then
+  tail -100 out-cov/test-run.log
+  exit 1
+fi
+
+depth=../..
+resultdir=out/coverage-results
+
+rm -rf $resultdir
+mkdir $resultdir
+cd $resultdir
+
+ln $depth/lily/* .
+ln $depth/scm/*.scm .
+mv $depth/input/regression/out-testcov/*.scm.cov .
+ln $depth/ly/*.ly .
+ln $depth/lily/out-cov/*[ch] .
+mkdir include
+ln $depth/lily/include/* include/
+ln $depth/flower/include/* include/
+for a in *[cl] *.yy
+do
+   gcov -o $depth/lily/out-cov/  -p $a > $a.gcov-summary
+done 
+
+$depth/scripts/auxiliar/coverage.py --uncovered *.cc > uncovered.txt
+$depth/scripts/auxiliar/coverage.py --hotspots *.cc > hotspots.txt
+$depth/scripts/auxiliar/coverage.py --summary *.cc > summary.txt
+$depth/scripts/auxiliar/coverage.py --uncovered *.scm > uncovered-scheme.txt
+
+head -20 summary.txt
+
+cat <<EOF
+results in
+
+  out/coverage-results/summary.txt
+  out/coverage-results/uncovered.txt
+  out/coverage-results/uncovered-scheme.txt
+  out/coverage-results/hotspots.txt
+
+EOF
diff --git a/scripts/auxiliar/build-profile.sh b/scripts/auxiliar/build-profile.sh
new file mode 100755 (executable)
index 0000000..072cf64
--- /dev/null
@@ -0,0 +1,87 @@
+#!/bin/sh
+
+if test "$1" == "--fresh"; then
+  fresh=yes
+fi
+
+if test ! -f config-prof.make; then
+  fresh=yes
+fi
+
+if test "$fresh" = "yes";
+then
+  ./configure --enable-config=prof --enable-optimising \
+   &&   perl -i~ -pe 's/-pipe /-pg -pipe /g' config-prof.make \
+   &&   perl -i~ -pe 's/ -ldl / -pg -ldl /g' config-prof.make
+fi
+
+make conf=prof -j2
+
+if test "$?" != "0"; then
+  exit 2
+fi
+
+depth=../..
+resultdir=out/profile-results
+
+rm -rf $resultdir
+mkdir $resultdir
+cd $resultdir
+
+
+cat > long-score.ly << EOF
+\version "2.10.0"
+foo = \new Staff \new Voice \repeat unfold 50 \relative { c4 d8[ d16( e]~ e16[ e e) f] g8  }
+\score { 
+  \new ChoirStaff << 
+    \foo \foo \foo \foo 
+    \foo \foo \foo \foo 
+
+  >>
+  \midi {}
+  \layout {}
+}
+EOF
+
+rm gmon.sum
+
+exe=$depth/out-prof/bin/lilypond
+
+## todo: figure out representative sample.
+files="wtk1-fugue2 wtk1-fugue2 wtk1-fugue2 wtk1-fugue2 mozart-hrn-3  mozart-hrn-3  long-score"
+
+
+
+$exe -ddump-profile --formats=ps -I $depth/input/ -I  $depth/input/mutopia/J.S.Bach/ \
+    -I $depth/input/mutopia/W.A.Mozart/ \
+    $files
+
+
+for a in *.profile; do
+  echo $a
+  cat $a
+done
+
+echo 'running gprof' 
+gprof $exe > profile
+
+exit 0
+
+
+## gprof -s takes forever.
+for a in seq 1 3; do
+  for f in $files ; do
+    $exe -ddump-profile --formats=ps -I $depth/input/ -I  $depth/input/mutopia/J.S.Bach/ \
+       -I $depth/input/mutopia/W.A.Mozart/ \
+       $f
+
+    echo 'running gprof' 
+    if test -f gmon.sum ; then
+      gprof -s $exe gmon.out gmon.sum
+    else
+      mv gmon.out gmon.sum
+    fi
+  done
+done
+
+gprof $exe gmon.sum > profile
diff --git a/scripts/auxiliar/check_texi_refs.py b/scripts/auxiliar/check_texi_refs.py
new file mode 100755 (executable)
index 0000000..dff7e33
--- /dev/null
@@ -0,0 +1,521 @@
+#!/usr/bin/env python
+
+"""
+check_texi_refs.py
+Interactive Texinfo cross-references checking and fixing tool
+
+"""
+
+
+import sys
+import re
+import os
+import optparse
+import imp
+
+outdir = 'out-www'
+
+log = sys.stderr
+stdout = sys.stdout
+
+file_not_found = 'file not found in include path'
+
+warn_not_fixed = '*** Warning: this broken x-ref has not been fixed!\n'
+
+opt_parser = optparse.OptionParser (usage='check_texi_refs.py [OPTION]... FILE',
+                                    description='''Check and fix \
+cross-references in a collection of Texinfo
+documents heavily cross-referenced each other.
+''')
+
+opt_parser.add_option ('-a', '--auto-fix',
+                       help="Automatically fix cross-references whenever \
+it is possible",
+                       action='store_true',
+                       dest='auto_fix',
+                       default=False)
+
+opt_parser.add_option ('-b', '--batch',
+                       help="Do not run interactively",
+                       action='store_false',
+                       dest='interactive',
+                       default=True)
+
+opt_parser.add_option ('-c', '--check-comments',
+                       help="Also check commented out x-refs",
+                       action='store_true',
+                       dest='check_comments',
+                       default=False)
+
+opt_parser.add_option ('-p', '--check-punctuation',
+                       help="Check punctuation after x-refs",
+                       action='store_true',
+                       dest='check_punctuation',
+                       default=False)
+
+opt_parser.add_option ("-I", '--include', help="add DIR to include path",
+                       metavar="DIR",
+                       action='append', dest='include_path',
+                       default=[os.path.abspath (os.getcwd ())])
+
+(options, files) = opt_parser.parse_args ()
+
+class InteractionError (Exception):
+    pass
+
+
+manuals_defs = imp.load_source ('manuals_defs', files[0])
+manuals = {}
+
+def find_file (name, prior_directory='.'):
+    p = os.path.join (prior_directory, name)
+    out_p = os.path.join (prior_directory, outdir, name)
+    if os.path.isfile (p):
+        return p
+    elif os.path.isfile (out_p):
+        return out_p
+
+    # looking for file in include_path
+    for d in options.include_path:
+        p = os.path.join (d, name)
+        if os.path.isfile (p):
+            return p
+
+    # file not found in include_path: looking in `outdir' subdirs
+    for d in options.include_path:
+        p = os.path.join (d, outdir, name)
+        if os.path.isfile (p):
+            return p
+
+    raise EnvironmentError (1, file_not_found, name)
+
+
+exit_code = 0
+
+def set_exit_code (n):
+    global exit_code
+    exit_code = max (exit_code, n)
+
+
+if options.interactive:
+    try:
+        import readline
+    except:
+        pass
+
+    def yes_prompt (question, default=False, retries=3):
+        d = {True: 'y', False: 'n'}.get (default, False)
+        while retries:
+            a = raw_input ('%s [default: %s]' % (question, d) + '\n')
+            if a.lower ().startswith ('y'):
+                return True
+            if a.lower ().startswith ('n'):
+                return False
+            if a == '' or retries < 0:
+                return default
+            stdout.write ("Please answer yes or no.\n")
+            retries -= 1
+
+    def search_prompt ():
+        """Prompt user for a substring to look for in node names.
+
+If user input is empty or matches no node name, return None,
+otherwise return a list of (manual, node name, file) tuples.
+
+"""
+        substring = raw_input ("Enter a substring to search in node names \
+(press Enter to skip this x-ref):\n")
+        if not substring:
+            return None
+        substring = substring.lower ()
+        matches = []
+        for k in manuals:
+            matches += [(k, node, manuals[k]['nodes'][node][0])
+                        for node in manuals[k]['nodes']
+                        if substring in node.lower ()]
+        return matches
+
+else:
+    def yes_prompt (question, default=False, retries=3):
+        return default
+
+    def search_prompt ():
+        return None
+
+
+ref_re = re.compile \
+    ('@(ref|ruser|rlearning|rprogram|rglos)(?:\\{(?P<ref>[^,\\\\\\}]+?)|\
+named\\{(?P<refname>[^,\\\\]+?),(?P<display>[^,\\\\\\}]+?))\\}(?P<last>.)',
+     re.DOTALL)
+node_include_re = re.compile (r'(?m)^@(node|include)\s+(.+?)$')
+
+whitespace_re = re.compile (r'\s+')
+line_start_re = re.compile ('(?m)^')
+
+def which_line (index, newline_indices):
+    """Calculate line number of a given string index
+
+Return line number of string index index, where
+newline_indices is an ordered iterable of all newline indices.
+"""
+    inf = 0
+    sup = len (newline_indices) - 1
+    n = len (newline_indices)
+    while inf + 1 != sup:
+        m = (inf + sup) / 2
+        if index >= newline_indices [m]:
+            inf = m
+        else:
+            sup = m
+    return inf + 1
+
+
+comments_re = re.compile ('(?<!@)(@c(?:omment)? \
+.*?\\n|^@ignore\\n.*?\\n@end ignore\\n)', re.M | re.S)
+
+def calc_comments_boundaries (texinfo_doc):
+    return [(m.start (), m.end ()) for m in comments_re.finditer (texinfo_doc)]
+
+
+def is_commented_out (start, end, comments_boundaries):
+    for k in range (len (comments_boundaries)):
+        if (start > comments_boundaries[k][0]
+            and end <= comments_boundaries[k][1]):
+            return True
+        elif end <= comments_boundaries[k][0]:
+            return False
+    return False
+
+
+def read_file (f, d):
+    s = open (f).read ()
+    base = os.path.basename (f)
+    dir = os.path.dirname (f)
+
+    d['contents'][f] = s
+
+    d['newline_indices'][f] = [m.end () for m in line_start_re.finditer (s)]
+    if options.check_comments:
+        d['comments_boundaries'][f] = []
+    else:
+        d['comments_boundaries'][f] = calc_comments_boundaries (s)
+
+    for m in node_include_re.finditer (s):
+        if m.group (1) == 'node':
+            line = which_line (m.start (), d['newline_indices'][f])
+            d['nodes'][m.group (2)] = (f, line)
+
+        elif m.group (1) == 'include':
+            try:
+                p = find_file (m.group (2), dir)
+            except EnvironmentError, (errno, strerror):
+                if strerror == file_not_found:
+                    continue
+                else:
+                    raise
+            read_file (p, d)
+
+
+def read_manual (name):
+    """Look for all node names and cross-references in a Texinfo document
+
+Return a (manual, dictionary) tuple where manual is the cross-reference
+macro name defined by references_dict[name], and dictionary
+has the following keys:
+
+  'nodes' is a dictionary of `node name':(file name, line number),
+
+  'contents' is a dictionary of file:`full file contents',
+
+  'newline_indices' is a dictionary of
+file:[list of beginning-of-line string indices],
+
+  'comments_boundaries' is a list of (start, end) tuples,
+which contain string indices of start and end of each comment.
+
+Included files that can be found in the include path are processed too.
+
+"""
+    d = {}
+    d['nodes'] = {}
+    d['contents'] = {}
+    d['newline_indices'] = {}
+    d['comments_boundaries'] = {}
+    manual = manuals_defs.references_dict.get (name, '')
+    try:
+        f = find_file (name + '.tely')
+    except EnvironmentError, (errno, strerror):
+        if not strerror == file_not_found:
+            raise
+        else:
+            try:
+                f = find_file (name + '.texi')
+            except EnvironmentError, (errno, strerror):
+                if strerror == file_not_found:
+                    sys.stderr.write (name + '.{texi,tely}: ' +
+                                      file_not_found + '\n')
+                    return (manual, d)
+                else:
+                    raise
+
+    log.write ("Processing manual %s (%s)\n" % (f, manual))
+    read_file (f, d)
+    return (manual, d)
+
+
+log.write ("Reading files...\n")
+
+manuals = dict ([read_manual (name)
+                 for name in manuals_defs.references_dict.keys ()])
+
+ref_fixes = set ()
+bad_refs_count = 0
+fixes_count = 0
+
+def add_fix (old_type, old_ref, new_type, new_ref):
+    ref_fixes.add ((old_type, old_ref, new_type, new_ref))
+
+
+def lookup_fix (r):
+    found = []
+    for (old_type, old_ref, new_type, new_ref) in ref_fixes:
+        if r == old_ref:
+            found.append ((new_type, new_ref))
+    return found
+
+
+def preserve_linebreak (text, linebroken):
+    if linebroken:
+        if ' ' in text:
+            text = text.replace (' ', '\n', 1)
+            n = ''
+        else:
+            n = '\n'
+    else:
+        n = ''
+    return (text, n)
+
+
+def choose_in_numbered_list (message, string_list, sep=' ', retries=3):
+    S = set (string_list)
+    S.discard ('')
+    string_list = list (S)
+    numbered_list = sep.join ([str (j + 1) + '. ' + string_list[j]
+                               for j in range (len (string_list))]) + '\n'
+    t = retries
+    while t > 0:
+        value = ''
+        stdout.write (message +
+                      "(press Enter to discard and start a new search)\n")
+        input = raw_input (numbered_list)
+        if not input:
+            return ''
+        try:
+            value = string_list[int (input) - 1]
+        except IndexError:
+            stdout.write ("Error: index number out of range\n")
+        except ValueError:
+            matches = [input in v for v in string_list]
+            n = matches.count (True)
+            if n == 0:
+                stdout.write ("Error: input matches no item in the list\n")
+            elif n > 1:
+                stdout.write ("Error: ambiguous input (matches several items \
+in the list)\n")
+            else:
+                value = string_list[matches.index (True)]
+        if value:
+            return value
+        t -= 1
+    raise InteractionError ("%d retries limit exceeded" % retries)
+
+refs_count = 0
+
+def check_ref (manual, file, m):
+    global fixes_count, bad_refs_count, refs_count
+    refs_count += 1
+    bad_ref = False
+    fixed = True
+    type = m.group (1)
+    original_name = m.group ('ref') or m.group ('refname')
+    name = whitespace_re.sub (' ', original_name). strip ()
+    newline_indices = manuals[manual]['newline_indices'][file]
+    line = which_line (m.start (), newline_indices)
+    linebroken = '\n' in original_name
+    original_display_name = m.group ('display')
+    next_char = m.group ('last')
+    if original_display_name: # the xref has an explicit display name
+        display_linebroken = '\n' in original_display_name
+        display_name = whitespace_re.sub (' ', original_display_name). strip ()
+    commented_out = is_commented_out \
+        (m.start (), m.end (), manuals[manual]['comments_boundaries'][file])
+    useful_fix = not outdir in file
+
+    # check puncuation after x-ref
+    if options.check_punctuation and not next_char in '.,;:!?':
+        stdout.write ("Warning: %s: %d: `%s': x-ref \
+not followed by punctuation\n" % (file, line, name))
+
+    # validate xref
+    explicit_type = type
+    new_name = name
+
+    if type != 'ref' and type == manual and not commented_out:
+        if useful_fix:
+            fixed = False
+            bad_ref = True
+            stdout.write ("\n%s: %d: `%s': external %s x-ref should be internal\n"
+                          % (file, line, name, type))
+            if options.auto_fix or yes_prompt ("Fix this?"):
+                type = 'ref'
+
+    if type == 'ref':
+        explicit_type = manual
+
+    if not name in manuals[explicit_type]['nodes'] and not commented_out:
+        bad_ref = True
+        fixed = False
+        stdout.write ('\n')
+        if type == 'ref':
+            stdout.write ("\e[1;31m%s: %d: `%s': wrong internal x-ref\e[0m\n"
+                          % (file, line, name))
+        else:
+            stdout.write ("\e[1;31m%s: %d: `%s': wrong external `%s' x-ref\e[0m\n"
+                          % (file, line, name, type))
+        # print context
+        stdout.write ('--\n' + manuals[manual]['contents'][file]
+                      [newline_indices[max (0, line - 2)]:
+                       newline_indices[min (line + 3,
+                                            len (newline_indices) - 1)]] +
+                      '--\n')
+
+        # try to find the reference in other manuals
+        found = []
+        for k in [k for k in manuals if k != explicit_type]:
+            if name in manuals[k]['nodes']:
+                if k == manual:
+                    found = ['ref']
+                    stdout.write ("\e[1;32m  found as internal x-ref\e[0m\n")
+                    break
+                else:
+                    found.append (k)
+                    stdout.write ("\e[1;32m  found as `%s' x-ref\e[0m\n" % k)
+
+        if (len (found) == 1
+            and (options.auto_fix or yes_prompt ("Fix this x-ref?"))):
+            add_fix (type, name, found[0], name)
+            type = found[0]
+            fixed = True
+
+        elif len (found) > 1 and useful_fix:
+            if options.interactive or options.auto_fix:
+                stdout.write ("* Several manuals contain this node name, \
+cannot determine manual automatically.\n")
+            if options.interactive:
+                t = choose_in_numbered_list ("Choose manual for this x-ref by \
+index number or beginning of name:\n", found)
+                if t:
+                    add_fix (type, name, t, name)
+                    type = t
+                    fixed = True
+
+        if not fixed:
+            # try to find a fix already made
+            found = lookup_fix (name)
+
+            if len (found) == 1:
+                stdout.write ("Found one previous fix: %s `%s'\n" % found[0])
+                if options.auto_fix or yes_prompt ("Apply this fix?"):
+                    type, new_name = found[0]
+                    fixed = True
+
+            elif len (found) > 1:
+                if options.interactive or options.auto_fix:
+                    stdout.write ("* Several previous fixes match \
+this node name, cannot fix automatically.\n")
+                if options.interactive:
+                    concatened = choose_in_numbered_list ("Choose new manual \
+and x-ref by index number or beginning of name:\n", [''.join ([i[0], ' ', i[1]])
+                                                     for i in found],
+                                                    sep='\n')
+                    if concatened:
+                        type, new_name = concatenated.split (' ', 1)
+                        fixed = True
+
+        if not fixed:
+            # all previous automatic fixing attempts failed,
+            # ask user for substring to look in node names
+            while True:
+                node_list = search_prompt ()
+                if node_list == None:
+                    if options.interactive:
+                        stdout.write (warn_not_fixed)
+                    break
+                elif not node_list:
+                    stdout.write ("No matched node names.\n")
+                else:
+                    concatenated = choose_in_numbered_list ("Choose \
+node name and manual for this x-ref by index number or beginning of name:\n", \
+                            [' '.join ([i[0], i[1], '(in %s)' % i[2]])
+                             for i in node_list],
+                                                            sep='\n')
+                    if concatenated:
+                        t, z = concatenated.split (' ', 1)
+                        new_name = z.split (' (in ', 1)[0]
+                        add_fix (type, name, t, new_name)
+                        type = t
+                        fixed = True
+                        break
+
+    if fixed and type == manual:
+        type = 'ref'
+    bad_refs_count += int (bad_ref)
+    if bad_ref and not useful_fix:
+        stdout.write ("*** Warning: this file is automatically generated, \
+please fix the code source instead of generated documentation.\n")
+
+    # compute returned string
+    if new_name == name:
+        if bad_ref and (options.interactive or options.auto_fix):
+            # only the type of the ref was fixed
+            fixes_count += int (fixed)
+        if original_display_name:
+            return ('@%snamed{%s,%s}' % (type, original_name, original_display_name)) + next_char
+        else:
+            return ('@%s{%s}' % (type, original_name)) + next_char
+    else:
+        fixes_count += int (fixed)
+        (ref, n) = preserve_linebreak (new_name, linebroken)
+        if original_display_name:
+            if bad_ref:
+                stdout.write ("Current display name is `%s'\n")
+                display_name = raw_input \
+                    ("Enter a new display name or press enter to keep the existing name:\n") \
+                    or display_name
+                (display_name, n) = preserve_linebreak (display_name, display_linebroken)
+            else:
+                display_name = original_display_name
+            return ('@%snamed{%s,%s}' % (type, ref, display_name)) + \
+                next_char + n
+        else:
+            return ('@%s{%s}' % (type, ref)) + next_char + n
+
+
+log.write ("Checking cross-references...\n")
+
+try:
+    for key in manuals:
+        for file in manuals[key]['contents']:
+            s = ref_re.sub (lambda m: check_ref (key, file, m),
+                            manuals[key]['contents'][file])
+            if s != manuals[key]['contents'][file]:
+                open (file, 'w').write (s)
+except KeyboardInterrupt:
+    log.write ("Operation interrupted, exiting.\n")
+    sys.exit (2)
+except InteractionError, instance:
+    log.write ("Operation refused by user: %s\nExiting.\n" % instance)
+    sys.exit (3)
+
+log.write ("\e[1;36mDone: %d x-refs found, %d bad x-refs found, fixed %d.\e[0m\n" %
+           (refs_count, bad_refs_count, fixes_count))
diff --git a/scripts/auxiliar/check_translation.py b/scripts/auxiliar/check_translation.py
new file mode 100755 (executable)
index 0000000..090b1fb
--- /dev/null
@@ -0,0 +1,117 @@
+#!/usr/bin/env python
+
+import __main__
+import optparse
+import os
+import sys
+
+import langdefs
+import buildlib
+
+verbose = 0
+use_colors = False
+lang = 'C'
+C = lang
+
+def dir_lang (file, lang, lang_dir_index):
+    path_components = file.split ('/')
+    path_components[lang_dir_index] = lang
+    return os.path.join (*path_components)
+
+def do_file (file_name, lang_codes, buildlib):
+    if verbose:
+        sys.stderr.write ('%s...\n' % file_name)
+    split_file_name = file_name.split ('/')
+    d1, d2 = split_file_name[0:2]
+    if d1 in lang_codes:
+        check_lang = d1
+        lang_dir_index = 0
+    elif d2 in lang_codes:
+        check_lang = d2
+        lang_dir_index = 1
+    else:
+        check_lang = lang
+    if check_lang == C:
+        raise Exception ('cannot determine language for ' + file_name)
+    
+    original = dir_lang (file_name, '', lang_dir_index)
+    translated_contents = open (file_name).read ()
+    (diff_string, error) \
+        = buildlib.check_translated_doc (original,
+                                         file_name,
+                                         translated_contents,
+                                         color=use_colors and not update_mode)
+
+    if error:
+        sys.stderr.write ('warning: %s: %s' % (file_name, error))
+
+    if update_mode:
+        if error or len (diff_string) >= os.path.getsize (original):
+            buildlib.read_pipe (text_editor + ' ' + file_name + ' ' + original)
+        elif diff_string:
+            diff_file = original + '.diff'
+            f = open (diff_file, 'w')
+            f.write (diff_string)
+            f.close ()
+            buildlib.read_pipe (text_editor + ' ' + file_name + ' ' + diff_file)
+            os.remove (diff_file)
+    else:
+        sys.stdout.write (diff_string)
+
+def usage ():
+    sys.stdout.write (r'''
+Usage:
+check-translation [--language=LANG] [--verbose] [--update] FILE...
+
+This script is licensed under the GNU GPL.
+''')
+
+def do_options ():
+    global lang, verbose, update_mode, use_colors
+
+    p = optparse.OptionParser (usage="check-translation [--language=LANG] [--verbose] FILE...",
+                               description="This script is licensed under the GNU GPL.")
+    p.add_option ("--language",
+                  action='store',
+                  default='site',
+                  dest="language")
+    p.add_option ("--no-color",
+                  action='store_false',
+                  default=True,
+                  dest="color",
+                  help="do not print ANSI-cooured output")
+    p.add_option ("--verbose",
+                  action='store_true',
+                  default=False,
+                  dest="verbose",
+                  help="print details, including executed shell commands")
+    p.add_option ('-u', "--update",
+                  action='store_true',
+                  default=False,
+                  dest='update_mode',
+                  help='call $EDITOR to update the translation')
+    
+    (options, files) = p.parse_args ()
+    verbose = options.verbose
+    lang = options.language
+    use_colors = options.color
+    update_mode = options.update_mode
+    
+    return files
+
+def main ():
+    global update_mode, text_editor
+
+    files = do_options ()
+    if 'EDITOR' in os.environ:
+        text_editor = os.environ['EDITOR']
+    else:
+        update_mode = False
+    
+    buildlib.verbose = verbose
+
+    for i in files:
+        do_file (i, langdefs.LANGDICT.keys (), buildlib)
+
+if __name__ == '__main__':
+    main ()
diff --git a/scripts/auxiliar/coverage.py b/scripts/auxiliar/coverage.py
new file mode 100755 (executable)
index 0000000..9ff86b0
--- /dev/null
@@ -0,0 +1,248 @@
+#!/usr/bin/env python
+
+import os
+import glob
+import re
+import sys
+import optparse
+
+#File 'accidental-engraver.cc'
+#Lines executed:87.70% of 252
+
+def summary (args):
+    results = []
+    for f in args:
+        str = open (f).read ()
+        m = re.search ("File '([^']+.cc)'\s*Lines executed:([0-9.]+)% of ([0-9]+)", str)
+
+        if m and '/usr/lib' in m.group (1):
+            continue
+
+        if m:
+            cov = float (m.group (2))
+            lines = int (m.group (3))
+            pain = lines * (100.0 - cov)
+            file = m.group (1)
+            tup = (pain, locals ().copy())
+
+            results.append(tup)
+
+    results.sort ()
+    results.reverse()
+
+    print 'files sorted by number of untested lines (decreasing)'
+    print
+    print '%5s (%6s): %s' % ('cov %', 'lines', 'file')
+    print '----------------------------------------------'
+
+    for (pain, d) in results:
+        print '%(cov)5.2f (%(lines)6d): %(file)s' % d
+
+class Chunk:
+    def __init__ (self, range, coverage_count, all_lines, file):
+        assert coverage_count >= 0
+        assert type (range) == type (())
+        
+        self.coverage_count = coverage_count
+        self.range = range
+        self.all_lines = all_lines
+        self.file = file
+
+    def length (self):
+        return self.range[1] - self.range[0]
+
+    def text (self):
+        return ''.join ([l[2] for l in self.lines()])
+        
+    def lines (self):
+        return self.all_lines[self.range[0]:
+                              self.range[1]]
+    def widen (self):
+        self.range = (min (self.range[0] -1, 0),
+                      self.range[0] +1)
+    def write (self):
+        print 'chunk in', self.file
+        for (c, n, l) in self.lines ():
+            cov = '%d' % c
+            if c == 0:
+                cov = '#######'
+            elif c < 0:
+                cov = ''
+            sys.stdout.write ('%8s:%8d:%s' % (cov, n, l))
+            
+    def uncovered_score (self):
+        return self.length ()
+    
+class SchemeChunk (Chunk):
+    def uncovered_score (self):
+        text = self.text ()
+        if (text.startswith  ('(define ')
+            and not text.startswith ('(define (')):
+            return 0
+
+        if text.startswith  ('(use-modules '):
+            return 0
+
+        if (text.startswith  ('(define-public ')
+            and not text.startswith ('(define-public (')):
+            return 0
+
+        return len ([l for (c,n,l) in self.lines() if (c == 0)]) 
+
+def read_gcov (f):
+    ls = []
+
+    in_lines = [l for l in open (f).readlines ()]
+    (count_len, line_num_len) = tuple (map (len, in_lines[0].split (':')[:2]))
+    
+    for l in in_lines:
+        c = l[:count_len].strip ()
+        l = l[count_len+1:]
+        n = int (l[:line_num_len].strip ())
+
+        if n == 0:
+            continue
+
+        if '#' in c:
+            c = 0
+        elif c == '-':
+            c = -1
+        else:
+            c = int (c)
+        
+        l = l[line_num_len+1:]
+
+        ls.append ((c,n,l))
+        
+    return ls
+
+def get_c_chunks (ls, file):
+    chunks = []
+    chunk = []
+
+    last_c = -1
+    for (c, n, l) in ls:
+        if not (c == last_c or c < 0 and l != '}\n'):
+            if chunk and last_c >= 0:
+                nums = [n-1 for (n, l) in chunk]
+                chunks.append (Chunk ((min (nums), max (nums)+1),
+                                      last_c, ls, file))
+                chunk = []
+
+        chunk.append ((n,l))
+        if c >= 0:
+            last_c = c
+            
+    return chunks
+
+def get_scm_chunks (ls, file):
+    chunks = []
+    chunk = []
+
+    def new_chunk ():
+        if chunk:
+            nums = [n-1 for (n, l) in chunk]
+            chunks.append (SchemeChunk ((min (nums), max (nums)+1),
+                                        max (last_c, 0), ls, file))
+            chunk[:] = []
+        
+    last_c = -1
+    for (cov_count, line_number, line) in ls:
+        if line.startswith ('('):
+            new_chunk ()
+            last_c = -1
+        
+        chunk.append ((line_number, line))
+        if cov_count >= 0:
+            last_c = cov_count
+
+    return chunks
+
+def widen_chunk (ch, ls):
+    a -= 1
+    b += 1
+
+    return [(n, l)  for (c, n, l) in ls[a:b]]
+    
+
+def extract_chunks (file):
+    try:
+        ls = read_gcov (file)
+    except IOError, s :
+        print s
+        return []
+        
+    cs = []
+    if 'scm' in file:
+        cs = get_scm_chunks (ls, file)
+    else:
+        cs = get_c_chunks (ls, file)
+    return cs
+
+
+def filter_uncovered (chunks):
+    def interesting (c):
+        if c.coverage_count > 0:
+            return False
+        
+        t = c.text()
+        for stat in  ('warning', 'error', 'print', 'scm_gc_mark'):
+            if stat in t:
+                return False
+        return True
+   
+    return [c for c in chunks if interesting (c)]
+    
+
+def main ():
+    p = optparse.OptionParser (usage="usage coverage.py [options] files",
+                               description="")
+    p.add_option ("--summary",
+                  action='store_true',
+                  default=False,
+                  dest="summary")
+    
+    p.add_option ("--hotspots",
+                  default=False,
+                  action='store_true',
+                  dest="hotspots")
+    
+    p.add_option ("--uncovered",
+                  default=False,
+                  action='store_true',
+                  dest="uncovered")
+
+    
+    (options, args) = p.parse_args ()
+    
+
+    if options.summary:
+        summary (['%s.gcov-summary' % s for s in args])
+
+    if options.uncovered or options.hotspots:
+        chunks = []
+        for a in args:
+            name = a
+            if name.endswith ('scm'):
+                name += '.cov'
+            else:
+                name += '.gcov'
+            
+            chunks += extract_chunks  (name)
+
+        if options.uncovered:
+            chunks = filter_uncovered (chunks)
+            chunks = [(c.uncovered_score (), c) for c in chunks if c.uncovered_score() > 0]
+        elif options.hotspots:
+            chunks = [((c.coverage_count, -c.length()), c) for c in chunks]
+            
+            
+        chunks.sort ()
+        chunks.reverse ()
+        for (score, c) in chunks:
+            c.write ()
+
+            
+        
+if __name__ == '__main__':
+    main ()
diff --git a/scripts/auxiliar/find-superfluous-includes.py b/scripts/auxiliar/find-superfluous-includes.py
new file mode 100755 (executable)
index 0000000..de40df0
--- /dev/null
@@ -0,0 +1,44 @@
+#!/usr/bin/env python
+import sys
+import re
+import os
+
+
+full_paths = {}
+incs = {}
+inc_re = re.compile ('^#include "([^"]+)"')
+def parse_file (fn):
+    lst = []
+
+    lc = 0
+    for l in open (fn).readlines():
+        lc += 1
+        m = inc_re.search (l)
+        if m:
+            lst.append ((lc, m.group (1)))
+
+    base = os.path.split (fn)[1]
+    full_paths[base] = fn
+    incs[base] = lst
+    
+
+def has_include (f, name):
+    try:
+        return name in [b for (a,b) in incs[f]]
+    except KeyError:
+        return False
+
+for a in sys.argv:
+    parse_file (a)
+
+print '-*-compilation-*-'
+for (f, lst) in incs.items ():
+    for (n, inc) in lst:
+        for (n2, inc2) in lst:
+            if has_include (inc2, inc):
+                print "%s:%d: already have %s from %s" % (full_paths[f], n,
+                                                          inc, inc2)
+                break
+
+        
+    
diff --git a/scripts/auxiliar/fixcc.py b/scripts/auxiliar/fixcc.py
new file mode 100755 (executable)
index 0000000..34e9a89
--- /dev/null
@@ -0,0 +1,625 @@
+#!/usr/bin/env python
+
+# fixcc -- nitpick lily's c++ code
+
+# TODO
+#  * maintainable rules: regexp's using whitespace (?x) and match names
+#    <identifier>)
+#  * trailing `*' vs. function definition
+#  * do not break/change indentation of fixcc-clean files
+#  * check lexer, parser
+#  * rewrite in elisp, add to cc-mode
+#  * using regexes is broken by design
+#  * ?
+#  * profit
+
+import __main__
+import getopt
+import os
+import re
+import string
+import sys
+import time
+
+COMMENT = 'COMMENT'
+STRING = 'STRING'
+GLOBAL_CXX = 'GC++'
+CXX = 'C++'
+verbose_p = 0
+indent_p = 0
+
+rules = {
+    GLOBAL_CXX:
+    [
+    # delete gratuitous block
+    ('''\n(    |\t)\s*{\n\s*(.*?)(?![{}]|\b(do|for|else|if|switch|while)\b);\n\s*}''',
+    '\n\\2;'),
+    ],
+    CXX:
+    [
+    # space before parenthesis open
+    ('([^\( \]])[ \t]*\(', '\\1 ('),
+    # space after comma
+    ("\([^'],\)[ \t]*", '\1 '),
+    # delete gratuitous block
+    ('''\n(    |\t)\s*{\n\s*(.*?)(?![{}]|\b(do|for|else|if|switch|while)\b);\n\s*}''',
+    '\n\\2;'),
+    # delete inline tabs
+    ('(\w)\t+', '\\1 '),
+    # delete inline double spaces
+    ('   *', ' '),
+    # delete space after parenthesis open
+    ('\([ \t]*', '('),
+    # delete space before parenthesis close
+    ('[ \t]*\)', ')'),
+    # delete spaces after prefix
+    ('(--|\+\+)[ \t]*([\w\)])', '\\1\\2'),
+    # delete spaces before postfix
+    ('([\w\)\]])[ \t]*(--|\+\+)', '\\1\\2'),
+    # delete space after parenthesis close
+    #('\)[ \t]*([^\w])', ')\\1'),
+    # delete space around operator
+    # ('([\w\(\)\]])([ \t]*)(::|\.)([ \t]*)([\w\(\)])', '\\1\\3\\5'),
+    ('([\w\(\)\]])([ \t]*)(\.|->)([ \t]*)([\w\(\)])', '\\1\\3\\5'),
+    # delete space after operator
+    ('(::)([ \t]*)([\w\(\)])', '\\1\\3'),
+    # delete superflous space around operator
+    ('([\w\(\)\]])([ \t]+)(&&|\|\||<=|>=|!=|\|=|==|\+=|-=|\*=|/=|\?|<|>|\+|-|=|/|:|&|\||\*)([ \t]+)([\w\(\)])', '\\1 \\3 \\5'),
+    # space around operator1
+    ('([\w\)\]]) *(&&|\|\||<=|>=|!=|\|=|==|\+=|-=|\*=|/=|\?|<|>|=|/|:|&|\||\*) *([\w\(])', '\\1 \\2 \\3'),
+    # space around operator2
+    ('([\w\)\]]) *(&&|\|\||<=|>=|!=|\|=|==|\+=|-=|\*=|/=|\?|<|>|=|/|:|&|\||\*) ([^\w\s])', '\\1 \\2 \\3'),
+    # space around operator3
+    ('([^\w\s]) (&&|\|\||<=|>=|!=|\|=|==|\+=|-=|\*=|/=|\?|<|[^-]>|=|/|:|&|\||\*) *([\w\(])', '\\1 \\2 \\3'),
+    # space around operator4
+    ('([\w\(\)\]]) (\*|/|\+|-) *([-:])', '\\1 \\2 \\3'),
+    # space around +/-; exponent
+    ('([\w\)\]])(\+|-)([_A-Za-z\(])', '\\1 \\2 \\3'),
+    ('([_\dA-Za-df-z\)\]])(\+|-)([\w\(])', '\\1 \\2 \\3'),
+    # trailing operator
+    (' (::|&&|\|\||<=|>=|!=|\|=|==|\+=|-=|\*=|/=|\?|<|>|\+|-|=|/|:|&XXX|\||\*XXX)[ \t]*\n([ \t]*)',         '\n\\2\\1 '),
+    # pointer
+    ##('(bool|char|const|delete|int|stream|unsigned|void|size_t|struct \w+|[A-Z]\w*|,|;|&&|<|[^-]>|\|\||-|\+)[ \t]*(\*|&)[ \t]*', '\\1 \\2'),
+    ('(bool|char|const|delete|int|stream|unsigned|void|size_t|struct \w+|[A-Z]\w*|,|;|:|=|\?\)|&&|<|[^-]>|\|\||-|\+)[ \t]*(\*|&)[ \t]*', '\\1 \\2'),
+    #to#('(bool|char|const|delete|int|stream|unsigned|void|([A-Z]\w*)|[,])[ \n\t]*(\*|&)[ \t]*', '\\1 \\3'),
+    # pointer with template
+    ('(( *((bool|char|const|delete|int|stream|unsigned|void|size_t|class[ \t]+\w*|[A-Z]\w*|\w+::\w+|[,])[ \*&],*)+)>) *(\*|&) *', '\\1 \\5'),
+    #to#('(( *((bool|char|delete|int|stream|unsigned|void|(class[ \t]+\w*)|([A-Z]\w*)|[,])[ \*&],*)+)>)[ \t\n]*(\*|&) *', '\\1 \\7'),
+    # unary pointer, minus, not
+    ('(return|=) (\*|&|-|!) ([\w\(])', '\\1 \\2\\3'),
+    # space after `operator'
+    ('(\Woperator) *([^\w\s])', '\\1 \\2'),
+    # dangling brace close
+    ('\n[ \t]*(\n[ \t]*})', '\\1'),
+    # dangling newline
+    ('\n[ \t]*\n[ \t]*\n', '\n\n'),
+    # dangling parenthesis open
+    #('[ \t]*\n[ \t]*\([ \t]*\n', '('),
+    ('\([ \t]*\n', '('),
+    # dangling parenthesis close
+    ('\n[ \t]*\)', ')'),
+    # dangling comma
+    ('\n[ \t]*,', ','),
+    # dangling semicolon
+    ('\n[ \t]*;', ';'),
+    # brace open
+    ('(\w)[ \t]*([^\s]*){([ \t]*\n)', '\\1\\2\n{\n'),
+    # brace open backslash
+    ('(\w[^\n]*){[ \t]*\\\\\n', '\\1\\\n{\\\n'),
+    # brace close
+    ("}[ \t]*([^'\n]*\w[^\n\\\]*)\n", '}\n\\1\n'),
+    # brace close backslash
+    ("}[ \t]*([^'\n]*\w[^\n\\\]*)", '\n}\n\\1'),
+    # delete space after `operator'
+    #('(\Woperator) (\W)', '\\1\\2'),
+    # delete space after case, label
+    ('(\W(case|label) ([\w]+)) :', '\\1:'),
+    # delete space before comma
+    ('[ \t]*,', ','),
+    # delete space before semicolon
+    ('[ \t]*;', ';'),
+    # delete space before eol-backslash
+    ('[ \t]*\\\\\n', '\\\n'),
+    # delete trailing whitespace
+    ('[ \t]*\n', '\n'),
+
+    ## Deuglify code that also gets ugly by rules above.
+    # delete newline after typedef struct
+    ('(typedef struct\s+([\w]*\s){([^}]|{[^}]*})*})\s*\n\s*(\w[\w\d]*;)', '\\1 \\4'),
+    # delete spaces around template brackets
+    #('(dynamic_cast|template|([A-Z]\w*))[ \t]*<[ \t]*(( *(bool|char|int|unsigned|void|(class[ \t]+\w*)|([A-Z]\w*)),?)+)[ \t]?(| [\*&])[ \t]*>', '\\1<\\3\\8>'),
+    ('(dynamic_cast|template|typedef|\w+::\w+|[A-Z]\w*)[ \t]*<[ \t]*(( *(bool|char|const|int|unsigned|void|size_t|class[ \t]+\w*|[A-Z]\w*)( *[\*&]?,|[\*&])*)+)[ \t]?(| [\*&])[ \t]*>', '\\1<\\2\\6>'),
+    ('(\w+::\w+|[A-Z]\w*) < ((\w+::\w+|[A-Z]\w*)<[A-Z]\w*>) >', '\\1<\\2 >'),
+    ('((if|while)\s+\(([^\)]|\([^\)]*\))*\))\s*;', '\\1\n;'),
+    ('(for\s+\(([^;]*;[^;]*;([^\)]|\([^\)]*\))*)\))\s*;', '\\1\n;'),
+    # do {..} while
+    ('(}\s*while\s*)(\(([^\)]|\([^\)]*\))*\))\s*;', '\\1\\2;'),
+
+    ## Fix code that gets broken by rules above.
+    ##('->\s+\*', '->*'),
+    # delete space before #define x()
+    ('#[ \t]*define (\w*)[ \t]*\(', '#define \\1('),
+    # add space in #define x ()
+    ('#[ \t]*define (\w*)(\(([^\(\)]|\([^\(\)]*\))*\)\\n)',
+    '#define \\1 \\2'),
+    # delete space in #include <>
+    ('#[ \t]*include[ \t]*<[ \t]*([^ \t>]*)[ \t]*(/?)[ \t]*([^ \t>]*)[ \t]*>',
+    '#include <\\1\\2\\3>'),
+    # delete backslash before empty line (emacs' indent region is broken)
+    ('\\\\\n\n', '\n\n'),
+    ],
+
+    COMMENT:
+    [
+    # delete trailing whitespace
+    ('[ \t]*\n', '\n'),
+    # delete empty first lines
+    ('(/\*\n)\n*', '\\1'),
+    # delete empty last lines
+    ('\n*(\n\*/)', '\\1'),
+    ## delete newline after start?
+    #('/(\*)\n', '\\1'),
+    ## delete newline before end?
+    #('\n(\*/)', '\\1'),
+    ],
+    }
+
+# Recognize special sequences in the input.
+#
+#   (?P<name>regex) -- Assign result of REGEX to NAME.
+#   *? -- Match non-greedily.
+#   (?m) -- Multiline regex: Make ^ and $ match at each line.
+#   (?s) -- Make the dot match all characters including newline.
+#   (?x) -- Ignore whitespace in patterns.
+no_match = 'a\ba'
+snippet_res = {
+    CXX: {
+    'multiline_comment':
+    r'''(?sx)
+    (?P<match>
+    (?P<code>
+    [ \t]*/\*.*?\*/))''',
+    
+    'singleline_comment':
+    r'''(?mx)
+    ^.*
+    (?P<match>
+    (?P<code>
+    [ \t]*//([ \t][^\n]*|)\n))''',
+
+    'string':
+    r'''(?x)
+    (?P<match>
+    (?P<code>
+    "([^\"\n](\")*)*"))''',
+    
+    'char':
+    r'''(?x)
+    (?P<match>
+    (?P<code>
+    '([^']+|\')))''',
+     
+     'include':
+     r'''(?x)
+     (?P<match>
+     (?P<code>
+     "#[ \t]*include[ \t]*<[^>]*>''',
+     },
+     }
+
+class Chunk:
+    def replacement_text (self):
+        return ''
+
+    def filter_text (self):
+        return self.replacement_text ()
+
+class Substring (Chunk):
+    def __init__ (self, source, start, end):
+        self.source = source
+        self.start = start
+        self.end = end
+
+    def replacement_text (self):
+        s = self.source[self.start:self.end]
+        if verbose_p:
+            sys.stderr.write ('CXX Rules')
+        for i in rules[CXX]:
+            if verbose_p:
+                sys.stderr.write ('.')
+                #sys.stderr.write ('\n\n***********\n')
+                #sys.stderr.write (i[0])
+                #sys.stderr.write ('\n***********\n')
+                #sys.stderr.write ('\n=========>>\n')
+                #sys.stderr.write (s)
+                #sys.stderr.write ('\n<<=========\n')
+            s = re.sub (i[0], i[1], s)
+        if verbose_p:
+            sys.stderr.write ('done\n')
+        return s
+        
+
+class Snippet (Chunk):
+    def __init__ (self, type, match, format):
+        self.type = type
+        self.match = match
+        self.hash = 0
+        self.options = []
+        self.format = format
+
+    def replacement_text (self):
+        return self.match.group ('match')
+
+    def substring (self, s):
+        return self.match.group (s)
+
+    def __repr__ (self):
+        return `self.__class__` + ' type = ' + self.type
+
+class Multiline_comment (Snippet):
+    def __init__ (self, source, match, format):
+        self.type = type
+        self.match = match
+        self.hash = 0
+        self.options = []
+        self.format = format
+
+    def replacement_text (self):
+        s = self.match.group ('match')
+        if verbose_p:
+            sys.stderr.write ('COMMENT Rules')
+        for i in rules[COMMENT]:
+            if verbose_p:
+                sys.stderr.write ('.')
+            s = re.sub (i[0], i[1], s)
+        return s
+
+snippet_type_to_class = {
+    'multiline_comment': Multiline_comment,
+#        'string': Multiline_comment,
+#        'include': Include_snippet,
+}
+
+def find_toplevel_snippets (s, types):
+    if verbose_p:
+        sys.stderr.write ('Dissecting')
+
+    res = {}
+    for i in types:
+        res[i] = re.compile (snippet_res[format][i])
+
+    snippets = []
+    index = 0
+    ## found = dict (map (lambda x: (x, None),
+    ##                      types))
+    ## urg python2.1
+    found = {}
+    map (lambda x, f = found: f.setdefault (x, None),
+      types)
+
+    # We want to search for multiple regexes, without searching
+    # the string multiple times for one regex.
+    # Hence, we use earlier results to limit the string portion
+    # where we search.
+    # Since every part of the string is traversed at most once for
+    # every type of snippet, this is linear.
+
+    while 1:
+        if verbose_p:
+            sys.stderr.write ('.')
+        first = None
+        endex = 1 << 30
+        for type in types:
+            if not found[type] or found[type][0] < index:
+                found[type] = None
+                m = res[type].search (s[index:endex])
+                if not m:
+                    continue
+
+                cl = Snippet
+                if snippet_type_to_class.has_key (type):
+                    cl = snippet_type_to_class[type]
+                snip = cl (type, m, format)
+                start = index + m.start ('match')
+                found[type] = (start, snip)
+
+            if found[type] \
+             and (not first \
+                or found[type][0] < found[first][0]):
+                first = type
+
+                # FIXME.
+
+                # Limiting the search space is a cute
+                # idea, but this *requires* to search
+                # for possible containing blocks
+                # first, at least as long as we do not
+                # search for the start of blocks, but
+                # always/directly for the entire
+                # @block ... @end block.
+
+                endex = found[first][0]
+
+        if not first:
+            snippets.append (Substring (s, index, len (s)))
+            break
+
+        (start, snip) = found[first]
+        snippets.append (Substring (s, index, start))
+        snippets.append (snip)
+        found[first] = None
+        index = start + len (snip.match.group ('match'))
+
+    return snippets
+
+def nitpick_file (outdir, file):
+    s = open (file).read ()
+
+    for i in rules[GLOBAL_CXX]:
+        s = re.sub (i[0], i[1], s)
+
+    # FIXME: Containing blocks must be first, see
+    #        find_toplevel_snippets.
+    #        We leave simple strings be part of the code
+    snippet_types = (
+        'multiline_comment',
+        'singleline_comment',
+        'string',
+#                'char',
+        )
+
+    chunks = find_toplevel_snippets (s, snippet_types)
+    #code = filter (lambda x: is_derived_class (x.__class__, Substring),
+    #               chunks)
+
+    t = string.join (map (lambda x: x.filter_text (), chunks), '')
+    fixt = file
+    if s != t:
+        if not outdir:
+            os.system ('mv %s %s~' % (file, file))
+        else: 
+            fixt = os.path.join (outdir,
+                      os.path.basename (file))
+        h = open (fixt, "w")
+        h.write (t)
+        h.close ()
+    if s != t or indent_p:
+        indent_file (fixt)
+
+def indent_file (file):
+    emacs = '''emacs\
+    --no-window-system\
+    --batch\
+    --no-site-file\
+    --no-init-file\
+    %(file)s\
+    --eval '(let ((error nil)
+           (version-control nil))
+        (load-library "cc-mode")
+        (c++-mode)
+        (indent-region (point-min) (point-max))
+        (if (buffer-modified-p (current-buffer))
+         (save-buffer)))' ''' % vars ()
+    emacsclient = '''emacsclient\
+    --socket-name=%(socketdir)s/%(socketname)s\
+    --no-wait\
+    --eval '(let ((error nil)
+           (version-control nil))
+        (load-library "cc-mode")
+        (find-file "%(file)s")
+        (c++-mode)
+        (indent-region (point-min) (point-max))
+        (if (buffer-modified-p (current-buffer))
+         (save-buffer)))' ''' \
+         % { 'file': file,
+           'socketdir' : socketdir,
+           'socketname' : socketname, }
+    if verbose_p:
+        sys.stderr.write (emacs)
+        sys.stderr.write ('\n')
+    os.system (emacs)
+
+
+def usage ():
+    sys.stdout.write (r'''
+Usage:
+fixcc [OPTION]... FILE...
+
+Options:
+ --help
+ --indent   reindent, even if no changes
+ --verbose
+ --test
+
+Typical use with LilyPond:
+
+ fixcc $(find flower kpath-guile lily -name '*cc' -o -name '*hh' | grep -v /out)
+
+This script is licensed under the GNU GPL
+''')
+
+def do_options ():
+    global indent_p, outdir, verbose_p
+    (options, files) = getopt.getopt (sys.argv[1:], '',
+                     ['help', 'indent', 'outdir=',
+                     'test', 'verbose'])
+    for (o, a) in options:
+        if o == '--help':
+            usage ()
+            sys.exit (0)
+        elif o == '--indent':
+            indent_p = 1
+        elif o == '--outdir':
+            outdir = a
+        elif o == '--verbose':
+            verbose_p = 1
+        elif o == '--test':
+            test ()
+            sys.exit (0)
+        else:
+            assert unimplemented
+    if not files:
+        usage ()
+        sys.exit (2)
+    return files
+
+
+outdir = 0
+format = CXX
+socketdir = '/tmp/fixcc'
+socketname = 'fixcc%d' % os.getpid ()
+
+def setup_client ():
+    #--no-window-system\
+    #--batch\
+    os.unlink (os.path.join (socketdir, socketname))
+    os.mkdir (socketdir, 0700)
+    emacs='''emacs\
+        --no-site-file\
+        --no-init-file\
+        --eval '(let ((error nil)
+               (version-control nil))
+            (load-library "server")
+            (setq server-socket-dir "%(socketdir)s")
+            (setq server-name "%(socketname)s")
+            (server-start)
+            (while t) (sleep 1000))' ''' \
+            % { 'socketdir' : socketdir,
+              'socketname' : socketname, }
+              
+    if not os.fork ():
+        os.system (emacs)
+        sys.exit (0)
+    while not os.path.exists (os.path.join (socketdir, socketname)):
+        time.sleep (1)
+
+def main ():
+    #emacsclient should be faster, but this does not work yet
+    #setup_client ()
+    files = do_options ()
+    if outdir and not os.path.isdir (outdir):
+        os.makedirs (outdir)
+    for i in files:
+        sys.stderr.write ('%s...\n' % i)
+        nitpick_file (outdir, i)
+
+
+## TODO: make this compilable and check with g++
+TEST = '''
+#include <libio.h>
+#include <map>
+class
+ostream ;
+
+class Foo {
+public: static char* foo ();
+std::map<char*,int>* bar (char, char) { return 0; }
+};
+typedef struct
+{
+ Foo **bar;
+} String;
+
+ostream &
+operator << (ostream & os, String d);
+
+typedef struct _t_ligature
+{
+ char *succ, *lig;
+ struct _t_ligature * next;
+}  AFM_Ligature;
+typedef std::map < AFM_Ligature const *, int > Bar;
+
+ /**
+ (c) 1997--2009 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+ */
+/*      ||
+*      vv
+* !OK  OK
+*/
+/*     ||
+   vv
+ !OK  OK
+*/
+char *
+Foo:: foo ()
+{
+int
+i
+;
+ char* a= &++ i ;
+ a [*++ a] = (char*) foe (*i, &bar) *
+ 2;
+ int operator double ();
+ std::map<char*,int> y =*bar(-*a ,*b);
+ Interval_t<T> & operator*= (T r);
+ Foo<T>*c;
+ int compare (Pqueue_ent < K, T > const& e1, Pqueue_ent < K,T> *e2);
+ delete *p;
+ if (abs (f)*2 > abs (d) *FUDGE)
+  ;
+ while (0);
+ for (; i<x foo(); foo>bar);
+ for (; *p && > y;
+   foo > bar)
+;
+ do {
+ ;;;
+ }
+ while (foe);
+
+ squiggle. extent;
+ 1 && * unsmob_moment (lf);
+ line_spanner_ = make_spanner ("DynamicLineSpanner", rq ? rq->*self_scm
+(): SCM_EOL);
+ case foo: k;
+
+ if (0) {a=b;} else {
+ c=d;
+ }
+
+ cookie_io_functions_t Memory_out_stream::functions_ = {
+  Memory_out_stream::reader,
+  ...
+ };
+
+ int compare (Array < Pitch> *, Array < Pitch> *);
+ original_ = (Grob *) & s;
+ Drul_array< Link_array<Grob> > o;
+}
+
+ header_.char_info_pos = (6 + header_length) * 4;
+ return ly_bool2scm (*ma < * mb);
+
+ 1 *::sign(2);
+
+ (shift) *-d;
+
+ a = 0 ? *x : *y;
+
+a = "foo() 2,2,4";
+{
+ if (!span_)
+  {
+   span_ = make_spanner ("StaffSymbol", SCM_EOL);
+  }
+}
+{
+ if (!span_)
+  {
+   span_ = make_spanner (StaffSymbol, SCM_EOL);
+  }
+}
+'''
+
+def test ():
+    test_file = 'fixcc.cc'
+    open (test_file, 'w').write (TEST)
+    nitpick_file (outdir, test_file)
+    sys.stdout.write (open (test_file).read ())
+
+if __name__ == '__main__':
+    main ()
+
diff --git a/scripts/auxiliar/makelsr.py b/scripts/auxiliar/makelsr.py
new file mode 100755 (executable)
index 0000000..cb0619f
--- /dev/null
@@ -0,0 +1,176 @@
+#!/usr/bin/env python
+
+import sys
+import os
+import glob
+import re
+
+USAGE = '''  Usage: makelsr.py LSR_SNIPPETS_DIR
+This script must be run from top of the source tree;
+it updates snippets input/lsr with snippets in input/new or LSR_SNIPPETS_DIR.
+'''
+
+LY_HEADER_LSR = '''%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
+%% This file is in the public domain.
+'''
+
+LY_HEADER_NEW = '''%% Do not edit this file; it is auto-generated from input/new
+%% This file is in the public domain.
+'''
+
+DEST = os.path.join ('input', 'lsr')
+NEW_LYS = os.path.join ('input', 'new')
+TEXIDOCS = os.path.join ('input', 'texidocs')
+
+TAGS = []
+# NR 1
+TAGS.extend (['pitches', 'rhythms', 'expressive-marks',
+'repeats', 'simultaneous-notes', 'staff-notation',
+'editorial-annotations', 'text'])
+# NR 2
+TAGS.extend (['vocal-music', 'chords', 'keyboards',
+'percussion', 'fretted-strings', 'unfretted-strings',
+'ancient-notation', 'winds', 'world-music'
+])
+
+# other
+TAGS.extend (['contexts-and-engravers', 'tweaks-and-overrides',
+'paper-and-layout', 'breaks', 'spacing', 'midi', 'titles', 'template'])
+
+def exit_with_usage (n=0):
+       sys.stderr.write (USAGE)
+       sys.exit (n)
+
+try:
+       in_dir = sys.argv[1]
+except:
+       exit_with_usage (2)
+
+if not (os.path.isdir (DEST) and os.path.isdir (NEW_LYS)):
+       exit_with_usage (3)
+
+unsafe = []
+unconverted = []
+notags_files = []
+
+# mark the section that will be printed verbatim by lilypond-book
+end_header_re = re.compile ('(\\header {.+?doctitle = ".+?})\n', re.M | re.S)
+
+def mark_verbatim_section (ly_code):
+       return end_header_re.sub ('\\1 % begin verbatim\n\n', ly_code, 1)
+
+# '% LSR' comments are to be stripped
+lsr_comment_re = re.compile (r'\s*%+\s*LSR.*')
+
+begin_header_re = re.compile (r'\\header\s*{', re.M)
+
+# add tags to ly files from LSR
+def add_tags (ly_code, tags):
+       return begin_header_re.sub ('\\g<0>\n  lsrtags = "' + tags + '"\n', ly_code, 1)
+
+def copy_ly (srcdir, name, tags):
+       global unsafe
+       global unconverted
+       dest = os.path.join (DEST, name)
+       tags = ', '.join (tags)
+       s = open (os.path.join (srcdir, name)).read ()
+
+       texidoc_translations_path = os.path.join (TEXIDOCS,
+                                                 os.path.splitext (name)[0] + '.texidoc')
+       if os.path.exists (texidoc_translations_path):
+               texidoc_translations = open (texidoc_translations_path).read ()
+               # Since we want to insert the translations verbatim using a 
+               # regexp, \\ is understood as ONE escaped backslash. So we have
+               # to escape those backslashes once more...
+               texidoc_translations = texidoc_translations.replace ('\\', '\\\\')
+               s = begin_header_re.sub ('\\g<0>\n' + texidoc_translations, s, 1)
+
+       if in_dir in srcdir:
+               s = LY_HEADER_LSR + add_tags (s, tags)
+       else:
+               s = LY_HEADER_NEW + s
+
+       s = mark_verbatim_section (s)
+       s = lsr_comment_re.sub ('', s)
+       open (dest, 'w').write (s)
+
+       e = os.system ("convert-ly -e '%s'" % dest)
+       if e:
+               unconverted.append (dest)
+       if os.path.exists (dest + '~'):
+               os.remove (dest + '~')
+       # -V seems to make unsafe snippets fail nicer/sooner
+       e = os.system ("lilypond -V -dno-print-pages -dsafe -o /tmp/lsrtest '%s'" % dest)
+       if e:
+               unsafe.append (dest)
+
+def read_source_with_dirs (src):
+       s = {}
+       l = {}
+       for tag in TAGS:
+               srcdir = os.path.join (src, tag)
+               l[tag] = set (map (os.path.basename, glob.glob (os.path.join (srcdir, '*.ly'))))
+               for f in l[tag]:
+                       if f in s:
+                               s[f][1].append (tag)
+                       else:
+                               s[f] = (srcdir, [tag])
+       return s, l
+
+
+tags_re = re.compile ('lsrtags\\s*=\\s*"(.+?)"')
+
+def read_source (src):
+       s = {}
+       l = dict ([(tag, set()) for tag in TAGS])
+       for f in glob.glob (os.path.join (src, '*.ly')):
+               basename = os.path.basename (f)
+               m = tags_re.search (open (f, 'r').read ())
+               if m:
+                       file_tags = [tag.strip() for tag in m.group (1). split(',')]
+                       s[basename] = (src, file_tags)
+                       [l[tag].add (basename) for tag in file_tags if tag in TAGS]
+               else:
+                       notags_files.append (f)
+       return s, l
+
+
+def dump_file_list (file, list):
+       f = open (file, 'w')
+       f.write ('\n'.join (list) + '\n')
+
+## clean out existing lys and generated files
+map (os.remove, glob.glob (os.path.join (DEST, '*.ly')) +
+     glob.glob (os.path.join (DEST, '*.snippet-list')))
+
+# read LSR source where tags are defined by subdirs
+snippets, tag_lists = read_source_with_dirs (in_dir)
+# read input/new where tags are directly
+s, l = read_source (NEW_LYS)
+snippets.update (s)
+for t in TAGS:
+       tag_lists[t].update (l[t])
+
+for (name, (srcdir, tags)) in snippets.items ():
+       copy_ly (srcdir, name, tags)
+
+for (tag, file_set) in tag_lists.items ():
+       dump_file_list (os.path.join (DEST, tag + '.snippet-list'), sorted(file_set))
+
+if unconverted:
+       sys.stderr.write ('These files could not be converted successfully by convert-ly:\n')
+       sys.stderr.write ('\n'.join (unconverted) + '\n\n')
+
+if notags_files:
+       sys.stderr.write ('No tags could be found in these files:\n')
+       sys.stderr.write ('\n'.join (notags_files) + '\n\n')
+
+dump_file_list ('lsr-unsafe.txt', unsafe)
+sys.stderr.write ('''
+
+Unsafe files printed in lsr-unsafe.txt: CHECK MANUALLY!
+  git add input/lsr/*.ly
+  xargs git-diff HEAD < lsr-unsafe.txt
+
+''')
+
diff --git a/scripts/auxiliar/musicxml_generate_intervals.py b/scripts/auxiliar/musicxml_generate_intervals.py
new file mode 100755 (executable)
index 0000000..3c00715
--- /dev/null
@@ -0,0 +1,58 @@
+#!/usr/bin/env python
+
+notes = "CDEFGAB"
+alterations = [-1, 0, 1]
+
+def print_note (octave, note, alteration):
+    print "      <note>\n        <pitch>\n          <step>%s</step>" % notes[note]
+    if alteration <> 0:
+        print "          <alter>%s</alter>" % alteration
+    print "          <octave>%s</octave>\n        </pitch>\n        <duration>1</duration>\n        <voice>1</voice>\n        <type>quarter</type>\n      </note>" % octave
+
+
+print """<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+  <movement-title>Various piches and interval sizes</movement-title>
+  <part-list>
+    <score-part id="P1">
+      <part-name>MusicXML Part</part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">
+    <measure number="1">
+      <attributes>
+        <divisions>1</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+        <time symbol="common">
+          <beats>2</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+      </attributes>
+"""
+
+start_octave = 5
+
+for octave in (start_octave, start_octave+1):
+    for note in (0,1,2,3,4,5,6):
+        for alteration in alterations:
+            if octave == start_octave and note == 0 and alteration == -1:
+                continue
+            print_note (octave, note, alteration)
+#             if octave == start_octave and note == 0 and alteration == 0:
+#                 continue
+            print_note (start_octave-(octave-start_octave)-(1-(7-note)/7), (7-note)%7, -alteration)
+
+print """    </measure>
+  </part>
+</score-partwise>
+"""
diff --git a/scripts/auxiliar/musicxml_generate_keys.py b/scripts/auxiliar/musicxml_generate_keys.py
new file mode 100755 (executable)
index 0000000..7a16ac9
--- /dev/null
@@ -0,0 +1,78 @@
+#!/usr/bin/env python
+
+notes = "CDEFGAB"
+alterations = [-1, 0, 1]
+
+def print_measure (nr, fifth, mode, atts1 = "", atts = "", final = ""):
+    print """    <measure number="%s">
+      <attributes>
+%s        <key>
+          <fifths>%s</fifths>
+          <mode>%s</mode>
+        </key>
+%s      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>4</octave>
+        </pitch>
+        <duration>2</duration>
+        <voice>1</voice>
+        <type>half</type>
+      </note>
+%s    </measure>""" % (nr, atts1, fifth, mode, atts, final)
+
+first_div = """        <divisions>1</divisions>
+"""
+first_atts = """        <time symbol="common">
+          <beats>2</beats>
+          <beat-type>4</beat-type>
+        </time>
+        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+"""
+
+final_barline = """      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+"""
+
+print """<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+  <movement-title>Different Key signatures</movement-title>
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">Various key signature: from 11
+            flats to 11 sharps (each one first one measure in major, then one
+            measure in minor)</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name>MusicXML Part</part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">"""
+
+max_range = 11
+measure = 0
+for fifth in range(-max_range, max_range+1):
+    measure += 1
+    if fifth == -max_range:
+        print_measure (measure, fifth, "major", first_div, first_atts)
+    else:
+        print_measure (measure, fifth, "major")
+    measure += 1
+    if fifth == max_range:
+        print_measure (measure, fifth, "minor", "", "", final_barline)
+    else:
+        print_measure (measure, fifth, "minor")
+    
+
+print """  </part>
+</score-partwise>"""
diff --git a/scripts/auxiliar/musicxml_generate_timesignatures.py b/scripts/auxiliar/musicxml_generate_timesignatures.py
new file mode 100755 (executable)
index 0000000..c4cc78a
--- /dev/null
@@ -0,0 +1,141 @@
+#!/usr/bin/env python
+
+notes = "CDEFGAB"
+alterations = [-1, 0, 1]
+
+dot_xml = """        <dot/>
+"""
+tie_xml = """        <tie type="%s"/>
+"""
+tie_notation_xml = """        <notations><tied type="%s"/></notations>
+"""
+
+
+def generate_note (duration, end_tie = False):
+    if duration < 2:
+      (notetype, dur) = ("8th", 1)
+    elif duration < 4:
+      (notetype, dur) = ("quarter", 2)
+    elif duration < 8:
+      (notetype, dur) = ("half", 4)
+    else:
+      (notetype, dur) = ("whole", 8)
+    dur_processed = dur
+    dot = ""
+    if (duration - dur_processed >= dur/2):
+      dot = dot_xml
+      dur_processed += dur/2
+      if (duration - dur_processed >= max(dur/4, 1)):
+        dot += dot_xml
+        dur_processed += dur/4
+    tie = ""
+    tie_notation = ""
+    if end_tie:
+        tie += tie_xml % "stop"
+        tie_notation += tie_notation_xml % "stop"
+    second_note = None
+    if duration - dur_processed > 0:
+        second_note = generate_note (duration-dur_processed, True)
+        tie += tie_xml % "start"
+        tie_notation += tie_notation_xml % "start"
+    note = """      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>%s</duration>
+%s        <voice>1</voice>
+        <type>%s</type>
+%s%s      </note>""" % (dur_processed, tie, notetype, dot, tie_notation)
+    if second_note:
+        return "%s\n%s" % (note, second_note)
+    else:
+        return note
+
+def print_measure (nr, beats, type, params = "", attr = "", attr2 = "", barline = ""):
+    duration = 8*beats/type
+    note = generate_note (duration)
+
+    print """    <measure number="%s">
+      <attributes>
+%s        <time%s>
+          <beats>%s</beats>
+          <beat-type>%s</beat-type>
+        </time>
+%s      </attributes>
+%s
+%s    </measure>""" % (nr, attr, params, beats, type, attr2, note, barline)
+
+first_key = """        <divisions>2</divisions>
+        <key>
+          <fifths>0</fifths>
+          <mode>major</mode>
+        </key>
+"""
+first_clef = """        <clef>
+          <sign>G</sign>
+          <line>2</line>
+        </clef>
+"""
+
+final_barline = """      <barline location="right">
+        <bar-style>light-heavy</bar-style>
+      </barline>
+"""
+
+print """<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
+                                "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+  <identification>
+    <miscellaneous>
+      <miscellaneous-field name="description">Various time signatures: 2/2 
+            (alla breve), 4/4 (C), 2/2, 3/2, 2/4, 3/4, 4/4, 5/4, 3/8, 6/8, 
+            12/8</miscellaneous-field>
+    </miscellaneous>
+  </identification>
+  <part-list>
+    <score-part id="P1">
+      <part-name>MusicXML Part</part-name>
+    </score-part>
+  </part-list>
+  <!--=========================================================-->
+  <part id="P1">"""
+
+measure = 1
+
+print_measure (measure, 2, 2, " symbol=\"common\"", first_key, first_clef)
+measure += 1
+
+print_measure (measure, 4, 4, " symbol=\"common\"")
+measure += 1
+
+print_measure (measure, 2, 2)
+measure += 1
+
+print_measure (measure, 3, 2)
+measure += 1
+
+print_measure (measure, 2, 4)
+measure += 1
+
+print_measure (measure, 3, 4)
+measure += 1
+
+print_measure (measure, 4, 4)
+measure += 1
+
+print_measure (measure, 5, 4)
+measure += 1
+
+print_measure (measure, 3, 8)
+measure += 1
+
+print_measure (measure, 6, 8)
+measure += 1
+
+print_measure (measure, 12, 8, "", "", "", final_barline)
+measure += 1
+
+print """  </part>
+</score-partwise>"""
diff --git a/scripts/auxiliar/pfx2ttf.fontforge b/scripts/auxiliar/pfx2ttf.fontforge
new file mode 100644 (file)
index 0000000..7d87fae
--- /dev/null
@@ -0,0 +1,29 @@
+Open($1);
+MergeKern($2)
+
+
+# The AFM files of `New Century Schoolbook' family as distributed within the
+# urw-fonts-1.0.7pre41.tar.bz2 archive contain a bunch of ligatures which
+# shouldn't be active by default:
+#
+#   T + M -> trademark
+#   N + o -> afii61352
+#   i + j -> ij
+#   I + J -> IJ
+#
+# This font bundle is shipped by Fedora Core 6 and other GNU/Linux
+# distributions; we simply remove those ligatures.
+
+SelectIf("trademark", "trademark", \
+         "afii61352", "afii61352", \
+         "ij", "ij", \
+         "IJ", "IJ");
+if (Strtol($version) < 20070501)
+  RemoveATT("Ligature", "*", "*");
+else
+  RemovePosSub("*");
+endif
+
+Generate($3 + $fontname + ".otf");
+
+# EOF
diff --git a/scripts/auxiliar/readlink.py b/scripts/auxiliar/readlink.py
new file mode 100755 (executable)
index 0000000..70267ff
--- /dev/null
@@ -0,0 +1,6 @@
+#!/usr/bin/env python
+import os
+import sys
+
+for i in sys.argv[1:]:
+    print os.path.realpath (i)
diff --git a/scripts/auxiliar/tely-gettext.py b/scripts/auxiliar/tely-gettext.py
new file mode 100755 (executable)
index 0000000..341816a
--- /dev/null
@@ -0,0 +1,71 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+
+# Temporary script that helps translated docs sources conversion
+# for texi2html processing
+
+# USAGE:  tely-gettext.py PYTHON-DIR LOCALEDIR LANG FILES
+
+print "tely-gettext.py"
+
+import sys
+import re
+import os
+import gettext
+
+if len (sys.argv) > 3:
+    buildscript_dir, localedir, lang = sys.argv[1:4]
+else:
+    print """USAGE:  tely-gettext.py PYTHON-DIR LOCALEDIR LANG FILES
+  For example scripts/auxiliar/tely-gettext.py python/out Documentation/po/out-www de Documentation/de/user/*.tely"""
+    sys.exit (1)
+
+sys.path.append (buildscript_dir)
+import langdefs
+
+double_punct_char_separator = langdefs.LANGDICT[lang].double_punct_char_sep
+t = gettext.translation('lilypond-doc', localedir, [lang])
+_doc = t.gettext
+
+include_re = re.compile (r'@include (.*?)$', re.M)
+whitespaces = re.compile (r'\s+')
+ref_re = re.compile (r'(?ms)@(ruser|rprogram|ref|rlearning)\{(.*?)\}')
+node_section_re = re.compile (r'@node (.*?)\n@((?:unnumbered|appendix)(?:(?:sub){0,2}sec)?|top|chapter|(?:sub){0,2}section|(?:major|chap|(?:sub){0,2})heading) (.*?)\n')
+menu_entry_re = re.compile (r'\* (.*?)::')
+
+def ref_gettext (m):
+    r = whitespaces.sub (' ', m.group (2))
+    return '@' + m.group (1) + '{' + _doc (r) + '}'
+
+def node_gettext (m):
+    return '@node ' + _doc (m.group (1)) + '\n@' + \
+        m.group (2) + ' ' + _doc (m.group (3)) + \
+       '\n@translationof ' + m.group (1) + '\n'
+
+def menu_entry_gettext (m):
+    return '* ' + _doc (m.group (1)) + '::'
+
+def process_file (filename):
+    print "Processing %s" % filename
+    f = open (filename, 'r')
+    page = f.read ()
+    f.close()
+    page = node_section_re.sub (node_gettext, page)
+    page = ref_re.sub (ref_gettext, page)
+    page = menu_entry_re.sub (menu_entry_gettext, page)
+    page = page.replace ("""-- SKELETON FILE --
+When you actually translate this file, please remove these lines as
+well as all `UNTRANSLATED NODE: IGNORE ME' lines.""", """@c -- SKELETON FILE --""")
+    page = page.replace ('UNTRANSLATED NODE: IGNORE ME', "@c UNTRANSLATED NODE: IGNORE ME")
+    includes = [whitespaces.sub ('', f) for f in include_re.findall (page)]
+    f = open (filename, 'w')
+    f.write (page)
+    f.close ()
+    dir = os.path.dirname (filename)
+    for file in includes:
+        p = os.path.join (dir, file)
+        if os.path.exists (p):
+            process_file (p)
+
+for filename in sys.argv[4:]:
+    process_file (filename)
diff --git a/scripts/auxiliar/texi-langutils.py b/scripts/auxiliar/texi-langutils.py
new file mode 100755 (executable)
index 0000000..0c01d10
--- /dev/null
@@ -0,0 +1,176 @@
+#!/usr/bin/env python
+# texi-langutils.py
+
+# WARNING: this script can't find files included in a different directory
+
+import sys
+import re
+import getopt
+import os
+
+import langdefs
+
+def read_pipe (command):
+    print command
+    pipe = os.popen (command)
+    output = pipe.read ()
+    if pipe.close ():
+        print "pipe failed: %(command)s" % locals ()
+    return output
+
+
+optlist, texi_files = getopt.getopt(sys.argv[1:],'no:d:b:i:l:',['skeleton', 'gettext'])
+process_includes = not ('-n', '') in optlist # -n   don't process @include's in texinfo files
+
+make_gettext = ('--gettext', '') in optlist   # --gettext    generate a node list from a Texinfo source
+make_skeleton = ('--skeleton', '') in optlist # --skeleton   extract the node tree from a Texinfo source
+
+output_name = 'doc.pot'
+
+# @untranslated should be defined as a macro in Texinfo source
+node_blurb = '''@untranslated
+'''
+doclang = ''
+head_committish = read_pipe ('git-rev-parse HEAD')
+intro_blurb = '''@c -*- coding: utf-8; mode: texinfo%(doclang)s -*-
+@c This file is part of %(topfile)s
+@ignore
+    Translation of GIT committish: %(head_committish)s
+    When revising a translation, copy the HEAD committish of the
+    version that you are working on.  See TRANSLATION for details.
+@end ignore
+'''
+
+end_blurb = """
+@c -- SKELETON FILE --
+"""
+
+for x in optlist:
+    if x[0] == '-o': # -o NAME   set PO output file name to NAME
+        output_name = x[1]
+    elif x[0] == '-d': # -d DIR    set working directory to DIR
+        os.chdir (x[1])
+    elif x[0] == '-b': # -b BLURB  set blurb written at each node to BLURB
+        node_blurb = x[1]
+    elif x[0] == '-i': # -i BLURB  set blurb written at beginning of each file to BLURB
+        intro_blurb = x[1]
+    elif x[0] == '-l': # -l ISOLANG  set documentlanguage to ISOLANG
+        doclang = '; documentlanguage: ' + x[1]
+
+texinfo_with_menus_re = re.compile (r"^(\*) +([^:\n]+)::.*?$|^@(include|menu|end menu|node|(?:unnumbered|appendix)(?:(?:sub){0,2}sec)?|top|chapter|(?:sub){0,2}section|(?:major|chap|(?:sub){0,2})heading) *(.*?)$|@(rglos){(.+?)}", re.M)
+
+texinfo_re = re.compile (r"^@(include|node|(?:unnumbered|appendix)(?:(?:sub){0,2}sec)?|top|chapter|(?:sub){0,2}section|(?:major|chap|(?:sub){0,2})heading) *(.+?)$|@(rglos){(.+?)}", re.M)
+
+ly_string_re = re.compile (r'^([a-zA-Z]+)[\t ]*=|%+[\t ]*(.*)$|\\(?:new|context)\s+(?:[a-zA-Z]*?(?:Staff(?:Group)?|Voice|FiguredBass|FretBoards|Names|Devnull))\s+=\s+"?([a-zA-Z]+)"?\s+')
+lsr_verbatim_ly_re = re.compile (r'% begin verbatim$')
+texinfo_verbatim_ly_re = re.compile (r'^@lilypond\[.*?verbatim')
+
+def process_texi (texifilename, i_blurb, n_blurb, write_skeleton, topfile, output_file=None, scan_ly=False):
+    try:
+        f = open (texifilename, 'r')
+        texifile = f.read ()
+        f.close ()
+        printedfilename = texifilename.replace ('../','')
+        includes = []
+
+        # process ly var names and comments
+        if output_file and (scan_ly or texifilename.endswith ('.ly')):
+            lines = texifile.splitlines ()
+            i = 0
+            in_verb_ly_block = False
+            if texifilename.endswith ('.ly'):
+                verbatim_ly_re = lsr_verbatim_ly_re
+            else:
+                verbatim_ly_re = texinfo_verbatim_ly_re
+            for i in range (len (lines)):
+                if verbatim_ly_re.search (lines[i]):
+                    in_verb_ly_block = True
+                elif lines[i].startswith ('@end lilypond'):
+                    in_verb_ly_block = False
+                elif in_verb_ly_block:
+                    for (var, comment, context_id) in ly_string_re.findall (lines[i]):
+                        if var:
+                            output_file.write ('# ' + printedfilename + ':' + \
+                                               str (i + 1) + ' (variable)\n_(r"' + var + '")\n')
+                        elif comment:
+                            output_file.write ('# ' + printedfilename + ':' + \
+                                               str (i + 1) + ' (comment)\n_(r"' + \
+                                               comment.replace ('"', '\\"') + '")\n')
+                        elif context_id:
+                            output_file.write ('# ' + printedfilename + ':' + \
+                                               str (i + 1) + ' (context id)\n_(r"' + \
+                                               context_id + '")\n')
+
+        # process Texinfo node names and section titles
+        if write_skeleton:
+            g = open (os.path.basename (texifilename), 'w')
+            subst = globals ()
+            subst.update (locals ())
+            g.write (i_blurb % subst)
+            tutu = texinfo_with_menus_re.findall (texifile)
+            node_trigger = False
+            for item in tutu:
+                if item[0] == '*':
+                    g.write ('* ' + item[1] + '::\n')
+                elif output_file and item[4] == 'rglos':
+                    output_file.write ('_(r"' + item[5] + '") # @rglos in ' + printedfilename + '\n')
+                elif item[2] == 'menu':
+                    g.write ('@menu\n')
+                elif item[2] == 'end menu':
+                    g.write ('@end menu\n\n')
+                else:
+                    g.write ('@' + item[2] + ' ' + item[3] + '\n')
+                    if node_trigger:
+                        g.write (n_blurb)
+                        node_trigger = False
+                    elif item[2] == 'include':
+                        includes.append (item[3])
+                    else:
+                        if output_file:
+                            output_file.write ('# @' + item[2] + ' in ' + \
+                                printedfilename + '\n_(r"' + item[3].strip () + '")\n')
+                        if item[2] == 'node':
+                            node_trigger = True
+            g.write (end_blurb)
+            g.close ()
+
+        elif output_file:
+            toto = texinfo_re.findall (texifile)
+            for item in toto:
+                if item[0] == 'include':
+                    includes.append(item[1])
+                elif item[2] == 'rglos':
+                    output_file.write ('# @rglos in ' + printedfilename + '\n_(r"' + item[3] + '")\n')
+                else:
+                    output_file.write ('# @' + item[0] + ' in ' + printedfilename + '\n_(r"' + item[1].strip () + '")\n')
+
+        if process_includes:
+            dir = os.path.dirname (texifilename)
+            for item in includes:
+                process_texi (os.path.join (dir, item.strip ()), i_blurb, n_blurb, write_skeleton, topfile, output_file, scan_ly)
+    except IOError, (errno, strerror):
+        sys.stderr.write ("I/O error(%s): %s: %s\n" % (errno, texifilename, strerror))
+
+
+if intro_blurb != '':
+    intro_blurb += '\n\n'
+if node_blurb != '':
+    node_blurb = '\n' + node_blurb + '\n\n'
+if make_gettext:
+    node_list_filename = 'node_list'
+    node_list = open (node_list_filename, 'w')
+    node_list.write ('# -*- coding: utf-8 -*-\n')
+    for texi_file in texi_files:
+        # Urgly: scan ly comments and variable names only in English doco
+        is_english_doc = 'Documentation/user' in texi_file
+        process_texi (texi_file, intro_blurb, node_blurb, make_skeleton,
+                      os.path.basename (texi_file), node_list,
+                      scan_ly=is_english_doc)
+    for word in ('Up:', 'Next:', 'Previous:', 'Appendix ', 'Footnotes', 'Table of Contents'):
+        node_list.write ('_(r"' + word + '")\n')
+    node_list.close ()
+    os.system ('xgettext -c -L Python --no-location -o ' + output_name + ' ' + node_list_filename)
+else:
+    for texi_file in texi_files:
+        process_texi (texi_file, intro_blurb, node_blurb, make_skeleton,
+                      os.path.basename (texi_file))
diff --git a/scripts/auxiliar/texi-skeleton-update.py b/scripts/auxiliar/texi-skeleton-update.py
new file mode 100755 (executable)
index 0000000..250b52e
--- /dev/null
@@ -0,0 +1,25 @@
+#!/usr/bin/env python
+# texi-skeleton-update.py
+
+import sys
+import glob
+import os
+import shutil
+
+sys.stderr.write ('texi-skeleton-update.py\n')
+
+orig_skeletons = set ([os.path.basename (f) for f in glob.glob (sys.argv[1] + '/*.ite??')])
+new_skeletons = set ([os.path.basename (f) for f in glob.glob (sys.argv[2] + '/*.ite??')])
+
+for f in new_skeletons:
+    if f in orig_skeletons:
+        g = open (os.path.join (sys.argv[1], f), 'r').read ()
+        if '-- SKELETON FILE --' in g:
+            sys.stderr.write ("Updating %s...\n" % f)
+            shutil.copy (os.path.join (sys.argv[2], f), sys.argv[1])
+    elif f != 'fdl.itexi':
+        sys.stderr.write ("Copying new file %s...\n" % f)
+        shutil.copy (os.path.join (sys.argv[2], f), sys.argv[1])
+
+for f in orig_skeletons.difference (new_skeletons):
+    sys.stderr.write ("Warning: outdated skeleton file %s\n" % f)
diff --git a/scripts/auxiliar/translations-status.py b/scripts/auxiliar/translations-status.py
new file mode 100755 (executable)
index 0000000..591e385
--- /dev/null
@@ -0,0 +1,591 @@
+#!/usr/bin/env python
+
+"""
+USAGE: translations-status.py BUILDSCRIPT-DIR LOCALEDIR
+
+  This script must be run from Documentation/
+
+  Reads template files translations.template.html.in
+and for each LANG in LANGUAGES LANG/translations.template.html.in
+  Writes translations.html.in and for each LANG in LANGUAGES
+translations.LANG.html.in
+  Writes out/translations-status.txt
+  Updates word counts in TRANSLATION
+"""
+
+import sys
+import re
+import string
+import os
+
+import langdefs
+import buildlib
+
+def progress (str):
+    sys.stderr.write (str + '\n')
+
+exit_code = 0
+
+def error (str, update_status=1):
+    global exit_code
+    sys.stderr.write ('translations-status.py: %s\n' % str)
+    exit_code = max (exit_code, update_status)
+
+progress ("translations-status.py")
+
+_doc = lambda s: s
+
+# load gettext messages catalogs
+translation = langdefs.translation
+
+
+language_re = re.compile (r'^@documentlanguage (.+)', re.M)
+comments_re = re.compile (r'^@ignore\n(.|\n)*?\n@end ignore$|@c .*?$', re.M)
+space_re = re.compile (r'\s+', re.M)
+lilypond_re = re.compile (r'@lilypond({.*?}|(.|\n)*?\n@end lilypond$)', re.M)
+node_re = re.compile ('^@node .*?$', re.M)
+title_re = re.compile ('^@(top|chapter|(?:sub){0,2}section|' + \
+'(?:unnumbered|appendix)(?:(?:sub){0,2}sec)?) (.*?)$', re.M)
+include_re = re.compile ('^@include (.*?)$', re.M)
+
+translators_re = re.compile (r'^@c\s+Translators\s*:\s*(.*?)$', re.M | re.I)
+checkers_re = re.compile (r'^@c\s+Translation\s*checkers\s*:\s*(.*?)$',
+                          re.M | re.I)
+status_re = re.compile (r'^@c\s+Translation\s*status\s*:\s*(.*?)$', re.M | re.I)
+post_gdp_re = re.compile ('post.GDP', re.I)
+untranslated_node_str = '@untranslated'
+skeleton_str = '-- SKELETON FILE --'
+
+section_titles_string = _doc ('Section titles')
+last_updated_string = _doc (' <p><i>Last updated %s</i></p>\n')
+detailed_status_heads = [_doc ('Translators'), _doc ('Translation checkers'),
+                         _doc ('Translated'), _doc ('Up to date'),
+                         _doc ('Other info')]
+format_table = {
+    'not translated': {'color':'d0f0f8', 'short':_doc ('no'), 'abbr':'NT',
+                       'long':_doc ('not translated')},
+    'partially translated': {'color':'dfef77',
+                             'short':_doc ('partially (%(p)d %%)'),
+                             'abbr':'%(p)d%%',
+                             'long':_doc ('partially translated (%(p)d %%)')},
+    'fully translated': {'color':'1fff1f', 'short':_doc ('yes'), 'abbr':'FT',
+                         'long': _doc ('translated')},
+    'up to date': {'short':_doc ('yes'), 'long':_doc ('up to date'),
+                   'abbr':'100%%', 'vague':_doc ('up to date')},
+    'outdated': {'short':_doc ('partially'), 'abbr':'%(p)d%%',
+                 'vague':_doc ('partially up to date')},
+    'N/A': {'short':_doc ('N/A'), 'abbr':'N/A', 'color':'d587ff', 'vague':''},
+    'pre-GDP':_doc ('pre-GDP'),
+    'post-GDP':_doc ('post-GDP')
+}
+
+texi_level = {
+# (Unumbered/Numbered/Lettered, level)
+    'top': ('u', 0),
+    'unnumbered': ('u', 1),
+    'unnumberedsec': ('u', 2),
+    'unnumberedsubsec': ('u', 3),
+    'chapter': ('n', 1),
+    'section': ('n', 2),
+    'subsection': ('n', 3),
+    'appendix': ('l', 1)
+}
+
+appendix_number_trans = string.maketrans ('@ABCDEFGHIJKLMNOPQRSTUVWXY',
+                                          'ABCDEFGHIJKLMNOPQRSTUVWXYZ')
+
+class SectionNumber (object):
+    def __init__ (self):
+        self.__data = [[0,'u']]
+
+    def __increase_last_index (self):
+        type = self.__data[-1][1]
+        if type == 'l':
+            self.__data[-1][0] = \
+                self.__data[-1][0].translate (appendix_number_trans)
+        elif type == 'n':
+            self.__data[-1][0] += 1
+
+    def format (self):
+        if self.__data[-1][1] == 'u':
+            return ''
+        return '.'.join ([str (i[0]) for i in self.__data if i[1] != 'u']) + ' '
+
+    def increase (self, (type, level)):
+        if level == 0:
+            self.__data = [[0,'u']]
+        while level + 1 < len (self.__data):
+            del self.__data[-1]
+        if level + 1 > len (self.__data):
+            self.__data.append ([0, type])
+            if type == 'l':
+                self.__data[-1][0] = '@'
+        if type == self.__data[-1][1]:
+            self.__increase_last_index ()
+        else:
+            self.__data[-1] = ([0, type])
+            if type == 'l':
+                self.__data[-1][0] = 'A'
+            elif type == 'n':
+                self.__data[-1][0] = 1
+        return self.format ()
+
+
+def percentage_color (percent):
+    p = percent / 100.0
+    if p < 0.33:
+        c = [hex (int (3 * p * b + (1 - 3 * p) * a))[2:]
+             for (a, b) in [(0xff, 0xff), (0x5c, 0xa6), (0x5c, 0x4c)]]
+    elif p < 0.67:
+        c = [hex (int ((3 * p - 1) * b + (2 - 3 * p) * a))[2:]
+             for (a, b) in [(0xff, 0xff), (0xa6, 0xff), (0x4c, 0x3d)]]
+    else:
+        c = [hex (int ((3 * p - 2) * b + 3 * (1 - p) * a))[2:]
+             for (a, b) in [(0xff, 0x1f), (0xff, 0xff), (0x3d, 0x1f)]]
+    return ''.join (c)
+
+
+def update_word_count (text, filename, word_count):
+    return re.sub (r'(?m)^(\d+) *' + filename,
+                   str (word_count).ljust (6) + filename,
+                   text)
+
+po_msgid_re = re.compile (r'^msgid "(.*?)"(?:\n"(.*?)")*', re.M)
+
+def po_word_count (po_content):
+    s = ' '.join ([''.join (t) for t in po_msgid_re.findall (po_content)])
+    return len (space_re.split (s))
+
+sgml_tag_re = re.compile (r'<.*?>', re.S)
+
+def sgml_word_count (sgml_doc):
+    s = sgml_tag_re.sub ('', sgml_doc)
+    return len (space_re.split (s))
+
+def tely_word_count (tely_doc):
+    '''
+    Calculate word count of a Texinfo document node by node.
+
+    Take string tely_doc as an argument.
+    Return a list of integers.
+
+    Texinfo comments and @lilypond blocks are not included in word counts.
+    '''
+    tely_doc = comments_re.sub ('', tely_doc)
+    tely_doc = lilypond_re.sub ('', tely_doc)
+    nodes = node_re.split (tely_doc)
+    return [len (space_re.split (n)) for n in nodes]
+
+
+class TelyDocument (object):
+    def __init__ (self, filename):
+        self.filename = filename
+        self.contents = open (filename).read ()
+
+        ## record title and sectionning level of first Texinfo section
+        m = title_re.search (self.contents)
+        if m:
+            self.title = m.group (2)
+            self.level = texi_level [m.group (1)]
+        else:
+            self.title = 'Untitled'
+            self.level = ('u', 1)
+
+        m = language_re.search (self.contents)
+        if m:
+            self.language = m.group (1)
+
+        included_files = [os.path.join (os.path.dirname (filename), t)
+                          for t in include_re.findall (self.contents)]
+        self.included_files = [p for p in included_files if os.path.exists (p)]
+
+    def print_title (self, section_number):
+        return section_number.increase (self.level) + self.title
+
+
+class TranslatedTelyDocument (TelyDocument):
+    def __init__ (self, filename, masterdocument, parent_translation=None):
+        TelyDocument.__init__ (self, filename)
+
+        self.masterdocument = masterdocument
+        if not hasattr (self, 'language') \
+                and hasattr (parent_translation, 'language'):
+            self.language = parent_translation.language
+        if hasattr (self, 'language'):
+            self.translation = translation[self.language]
+        else:
+            self.translation = lambda x: x
+        self.title = self.translation (self.title)
+
+        ## record authoring information
+        m = translators_re.search (self.contents)
+        if m:
+            self.translators = [n.strip () for n in m.group (1).split (',')]
+        else:
+            try:
+                self.translators = parent_translation.translators
+            except:
+                error ('%s: no translator name found, \nplease \
+specify at least one in the master file as a line containing\n\
+@c Translators: FirstName1 LastName1, FirstName2 LastName2' % self.filename)
+        m = checkers_re.search (self.contents)
+        if m:
+            self.checkers = [n.strip () for n in m.group (1).split (',')]
+        elif isinstance (parent_translation, TranslatedTelyDocument):
+            self.checkers = parent_translation.checkers
+        else:
+            self.checkers = []
+
+        ## check whether translation is pre- or post-GDP
+        m = status_re.search (self.contents)
+        if m:
+            self.post_gdp = bool (post_gdp_re.search (m.group (1)))
+        else:
+            self.post_gdp = False
+
+        ## record which parts (nodes) of the file are actually translated
+        self.partially_translated = not skeleton_str in self.contents
+        nodes = node_re.split (self.contents)
+        self.translated_nodes = [not untranslated_node_str in n for n in nodes]
+
+        ## calculate translation percentage
+        master_total_word_count = sum (masterdocument.word_count)
+        translation_word_count = \
+            sum ([masterdocument.word_count[k] * self.translated_nodes[k]
+                  for k in range (min (len (masterdocument.word_count),
+                                       len (self.translated_nodes)))])
+        self.translation_percentage = \
+            100 * translation_word_count / master_total_word_count
+
+        ## calculate how much the file is outdated
+        (diff_string, git_error) = \
+            buildlib.check_translated_doc (masterdocument.filename, self.filename, self.contents)
+        if git_error:
+            sys.stderr.write ('warning: %s: %s' % (self.filename, git_error))
+            self.uptodate_percentage = None
+        else:
+            diff = diff_string.splitlines ()
+            insertions = sum ([len (l) - 1 for l in diff
+                               if l.startswith ('+')
+                               and not l.startswith ('+++')])
+            deletions = sum ([len (l) - 1 for l in diff
+                              if l.startswith ('-')
+                              and not l.startswith ('---')])
+            outdateness_percentage = 50.0 * (deletions + insertions) / \
+                (masterdocument.size + 0.5 * (deletions - insertions))
+            self.uptodate_percentage = 100 - int (outdateness_percentage)
+            if self.uptodate_percentage > 100:
+                alternative = 50
+                progress ("%s: strange uptodateness percentage %d %%, \
+setting to %d %%" % (self.filename, self.uptodate_percentage, alternative))
+                self.uptodate_percentage = alternative
+            elif self.uptodate_percentage < 1:
+                alternative = 1
+                progress ("%s: strange uptodateness percentage %d %%, \
+setting to %d %%" % (self.filename, self.uptodate_percentage, alternative))
+                self.uptodate_percentage = alternative
+
+    def completeness (self, formats=['long'], translated=False):
+        if translated:
+            translation = self.translation
+        else:
+            translation = lambda x: x
+
+        if isinstance (formats, str):
+            formats = [formats]
+        p = self.translation_percentage
+        if p == 0:
+            status = 'not translated'
+        elif p == 100:
+            status = 'fully translated'
+        else:
+            status = 'partially translated'
+        return dict ([(f, translation (format_table[status][f]) % locals())
+                      for f in formats])
+
+    def uptodateness (self, formats=['long'], translated=False):
+        if translated:
+            translation = self.translation
+        else:
+            translation = lambda x: x
+
+        if isinstance (formats, str):
+            formats = [formats]
+        p = self.uptodate_percentage
+        if p == None:
+            status = 'N/A'
+        elif p == 100:
+            status = 'up to date'
+        else:
+            status = 'outdated'
+        l = {}
+        for f in formats:
+            if f == 'color' and p != None:
+                l['color'] = percentage_color (p)
+            else:
+                l[f] = translation (format_table[status][f]) % locals ()
+        return l
+
+    def gdp_status (self):
+        if self.post_gdp:
+            return self.translation (format_table['post-GDP'])
+        else:
+            return self.translation (format_table['pre-GDP'])
+
+    def short_html_status (self):
+        s = '  <td>'
+        if self.partially_translated:
+            s += '<br>\n   '.join (self.translators) + '<br>\n'
+            if self.checkers:
+                s += '   <small>' + \
+                    '<br>\n   '.join (self.checkers) + '</small><br>\n'
+
+        c = self.completeness (['color', 'long'])
+        s += '   <span style="background-color: #%(color)s">\
+%(long)s</span><br>\n' % c
+
+        if self.partially_translated:
+            u = self.uptodateness (['vague', 'color'])
+            s += '   <span style="background-color: #%(color)s">\
+%(vague)s</span><br>\n' % u
+
+        s += '  </td>\n'
+        return s
+
+    def text_status (self):
+        s = self.completeness ('abbr')['abbr'] + ' '
+
+        if self.partially_translated:
+            s += self.uptodateness ('abbr')['abbr'] + ' '
+        return s
+
+    def html_status (self, numbering=SectionNumber ()):
+        if self.title == 'Untitled':
+            return ''
+
+        if self.level[1] == 0: # if self is a master document
+            s = '''<table align="center" border="2">
+ <tr align="center">
+  <th>%s</th>''' % self.print_title (numbering)
+            s += ''.join (['  <th>%s</th>\n' % self.translation (h)
+                           for h in detailed_status_heads])
+            s += ' </tr>\n'
+            s += ' <tr align="left">\n  <td>%s<br>(%d)</td>\n' \
+                % (self.translation (section_titles_string),
+                   sum (self.masterdocument.word_count))
+
+        else:
+            s = ' <tr align="left">\n  <td>%s<br>(%d)</td>\n' \
+                % (self.print_title (numbering),
+                   sum (self.masterdocument.word_count))
+
+        if self.partially_translated:
+            s += '  <td>' + '<br>\n   '.join (self.translators) + '</td>\n'
+            s += '  <td>' + '<br>\n   '.join (self.checkers) + '</td>\n'
+        else:
+            s += '  <td></td>\n' * 2
+
+        c = self.completeness (['color', 'short'], translated=True)
+        s += '  <td><span style="background-color: #%(color)s">\
+%(short)s</span></td>\n' % {'color': c['color'],
+                           'short': c['short']}
+
+        if self.partially_translated:
+            u = self.uptodateness (['short', 'color'], translated=True)
+            s += '  <td><span style="background-color: #%(color)s">\
+%(short)s</span></td>\n' % {'color': u['color'],
+                           'short': u['short']}
+        else:
+            s += '  <td></td>\n'
+
+        s += '  <td>' + self.gdp_status () + '</td>\n </tr>\n'
+        s += ''.join ([i.translations[self.language].html_status (numbering)
+                       for i in self.masterdocument.includes
+                       if self.language in i.translations])
+
+        if self.level[1] == 0:  # if self is a master document
+            s += '</table>\n<p></p>\n'
+        return s
+
+class MasterTelyDocument (TelyDocument):
+    def __init__ (self,
+                  filename,
+                  parent_translations=dict ([(lang, None)
+                                             for lang in langdefs.LANGDICT])):
+        TelyDocument.__init__ (self, filename)
+        self.size = len (self.contents)
+        self.word_count = tely_word_count (self.contents)
+        translations = dict ([(lang, os.path.join (lang, filename))
+                              for lang in langdefs.LANGDICT])
+        self.translations = \
+            dict ([(lang,
+                    TranslatedTelyDocument (translations[lang],
+                                            self, parent_translations.get (lang)))
+                   for lang in langdefs.LANGDICT
+                   if os.path.exists (translations[lang])])
+        if self.translations:
+            self.includes = [MasterTelyDocument (f, self.translations)
+                             for f in self.included_files]
+        else:
+            self.includes = []
+
+    def update_word_counts (self, s):
+        s = update_word_count (s, self.filename, sum (self.word_count))
+        for i in self.includes:
+            s = i.update_word_counts (s)
+        return s
+
+    def html_status (self, numbering=SectionNumber ()):
+        if self.title == 'Untitled' or not self.translations:
+            return ''
+        if self.level[1] == 0: # if self is a master document
+            s = '''<table align="center" border="2">
+ <tr align="center">
+  <th>%s</th>''' % self.print_title (numbering)
+            s += ''.join (['  <th>%s</th>\n' % l for l in self.translations])
+            s += ' </tr>\n'
+            s += ' <tr align="left">\n  <td>Section titles<br>(%d)</td>\n' \
+                % sum (self.word_count)
+
+        else:  # if self is an included file
+            s = ' <tr align="left">\n  <td>%s<br>(%d)</td>\n' \
+                % (self.print_title (numbering), sum (self.word_count))
+
+        s += ''.join ([t.short_html_status ()
+                       for t in self.translations.values ()])
+        s += ' </tr>\n'
+        s += ''.join ([i.html_status (numbering) for i in self.includes])
+
+        if self.level[1] == 0:  # if self is a master document
+            s += '</table>\n<p></p>\n'
+        return s
+
+    def text_status (self, numbering=SectionNumber (), colspec=[48,12]):
+        if self.title == 'Untitled' or not self.translations:
+            return ''
+
+        s = ''
+        if self.level[1] == 0: # if self is a master document
+            s += (self.print_title (numbering) + ' ').ljust (colspec[0])
+            s += ''.join (['%s'.ljust (colspec[1]) % l
+                           for l in self.translations])
+            s += '\n'
+            s += ('Section titles (%d)' % \
+                      sum (self.word_count)).ljust (colspec[0])
+
+        else:
+            s = '%s (%d) ' \
+                % (self.print_title (numbering), sum (self.word_count))
+            s = s.ljust (colspec[0])
+
+        s += ''.join ([t.text_status ().ljust(colspec[1])
+                       for t in self.translations.values ()])
+        s += '\n\n'
+        s += ''.join ([i.text_status (numbering) for i in self.includes])
+
+        if self.level[1] == 0:
+            s += '\n'
+        return s
+
+
+update_category_word_counts_re = re.compile (r'(?ms)^-(\d+)-(.*?\n)\d+ *total')
+
+counts_re = re.compile (r'(?m)^(\d+) ')
+
+def update_category_word_counts_sub (m):
+    return '-' + m.group (1) + '-' + m.group (2) + \
+        str (sum ([int (c)
+                   for c in counts_re.findall (m.group (2))])).ljust (6) + \
+        'total'
+
+
+progress ("Reading documents...")
+
+tely_files = \
+    buildlib.read_pipe ("find -maxdepth 2 -name '*.tely'")[0].splitlines ()
+tely_files.sort ()
+master_docs = [MasterTelyDocument (os.path.normpath (filename))
+               for filename in tely_files]
+master_docs = [doc for doc in master_docs if doc.translations]
+
+main_status_page = open ('translations.template.html.in').read ()
+
+enabled_languages = [l for l in langdefs.LANGDICT
+                     if langdefs.LANGDICT[l].enabled
+                     and l != 'en']
+lang_status_pages = \
+    dict ([(l, open (os.path.join (l, 'translations.template.html.in')). read ())
+           for l in enabled_languages])
+
+progress ("Generating status pages...")
+
+date_time = buildlib.read_pipe ('LANG= date -u')[0]
+
+main_status_html = last_updated_string % date_time
+main_status_html += '\n'.join ([doc.html_status () for doc in master_docs])
+
+html_re = re.compile ('<html>', re.I)
+end_body_re = re.compile ('</body>', re.I)
+
+html_header = '''<html>
+<!-- This page is automatically generated by translation-status.py from
+translations.template.html.in; DO NOT EDIT !-->'''
+
+main_status_page = html_re.sub (html_header, main_status_page)
+
+main_status_page = end_body_re.sub (main_status_html + '\n</body>',
+                                    main_status_page)
+
+open ('translations.html.in', 'w').write (main_status_page)
+
+for l in enabled_languages:
+    date_time = buildlib.read_pipe ('LANG=%s date -u' % l)[0]
+    lang_status_pages[l] = translation[l] (last_updated_string) % date_time + lang_status_pages[l]
+    lang_status_page = html_re.sub (html_header, lang_status_pages[l])
+    html_status = '\n'.join ([doc.translations[l].html_status ()
+                              for doc in master_docs
+                              if l in doc.translations])
+    lang_status_page = end_body_re.sub (html_status + '\n</body>',
+                                        lang_status_page)
+    open (os.path.join (l, 'translations.html.in'), 'w').write (lang_status_page)
+
+main_status_txt = '''Documentation translations status
+Generated %s
+NT = not translated
+FT = fully translated
+
+''' % date_time
+
+main_status_txt += '\n'.join ([doc.text_status () for doc in master_docs])
+
+status_txt_file = 'out/translations-status.txt'
+progress ("Writing %s..." % status_txt_file)
+open (status_txt_file, 'w').write (main_status_txt)
+
+translation_instructions_file = 'devel/doc-translation-list.itexi'
+progress ("Updating %s..." % translation_instructions_file)
+translation_instructions = open (translation_instructions_file).read ()
+
+for doc in master_docs:
+    translation_instructions = doc.update_word_counts (translation_instructions)
+
+for html_file in re.findall (r'(?m)^\d+ *(\S+?\.html\S*?)(?: |$)',
+                             translation_instructions):
+    word_count = sgml_word_count (open (html_file).read ())
+    translation_instructions = update_word_count (translation_instructions,
+                                                  html_file,
+                                                  word_count)
+
+for po_file in re.findall (r'(?m)^\d+ *(\S+?\.po\S*?)(?: |$)',
+                           translation_instructions):
+    word_count = po_word_count (open (po_file).read ())
+    translation_instructions = update_word_count (translation_instructions,
+                                                  po_file,
+                                                  word_count)
+
+translation_instructions = \
+    update_category_word_counts_re.sub (update_category_word_counts_sub,
+                                        translation_instructions)
+
+open (translation_instructions_file, 'w').write (translation_instructions)
+sys.exit (exit_code)
diff --git a/scripts/auxiliar/update-snippets.py b/scripts/auxiliar/update-snippets.py
new file mode 100755 (executable)
index 0000000..6ccdbc1
--- /dev/null
@@ -0,0 +1,102 @@
+#!/usr/bin/env python
+# update-snippets.py
+
+# USAGE:  update-snippets.py REFERENCE-DIR TARGET-DIR FILES
+#
+# update ly snippets in TARGET-DIR/FILES with snippets from REFERENCE-DIR/FILES
+#
+# More precisely, each existing FILE in TARGET-DIR is matched to the FILE in
+# REFERENCE-DIR (it the latter does not exist, a warning is given).
+#
+# Shell wildcards expansion is performed on FILES.
+# This script currently supports Texinfo format.
+# Ly snippets preceded with a line containing '@c KEEP LY' in TARGET-DIR/FILES
+# will not be updated.
+# An error occurs if REFERENCE-DIR/FILE and TARGET-DIR/FILE do not have the
+# same snippets count.
+
+import sys
+import os
+import glob
+import re
+
+print "update-snippets.py"
+
+comment_re = re.compile (r'(?<!@)(@c(?:omment)? .*?\n|^@ignore\n.*?\n@end ignore\n)', re.M | re.S)
+snippet_re = re.compile (r'^(@lilypond(?:file)?(?:\[.*?\])?\s*\{.+?\}|@lilypond(?:\[.*?\])?(?:.|\n)+?@end lilypond)', re.M)
+
+
+def snippet_split (l):
+    r = []
+    for s in [s for s in l if s]:
+        if s.startswith ('@c ') or s.startswith ('@ignore\n') or s.startswith ('@comment '):
+            r.append(s)
+        else:
+            r += [t for t in snippet_re.split (s) if t]
+    return r
+
+def count_snippet (l):
+    k = 0
+    for s in l:
+        if s.startswith ('@lilypond'):
+            k += 1
+    return k
+
+def find_next_snippet (l, k):
+    while not l[k].startswith ('@lilypond'):
+        k += 1
+    return k
+
+exit_code = 0
+
+def update_exit_code (code):
+    global exit_code
+    exit_code = max (code, exit_code)
+
+ref_dir, target_dir = sys.argv [1:3]
+file_patterns = sys.argv[3:]
+
+total_snippet_count = 0
+changed_snippets_count = 0
+
+for pattern in file_patterns:
+    files = glob.glob (os.path.join (target_dir, pattern))
+    for file in files:
+        ref_file = os.path.join (ref_dir, os.path.basename (file))
+        if not os.path.isfile (ref_file):
+            sys.stderr.write ("Warning: %s: no such file.\nReference file for %s not found.\n" % (ref_file, file))
+            continue
+        f = open (file, 'r')
+        target_source = comment_re.split (f.read ())
+        f.close ()
+        if reduce (lambda x, y: x or y, ['-- SKELETON FILE --' in s for s in target_source]):
+            sys.stderr.write ("Skipping skeleton file %s\n" % file)
+            continue
+        g = open (ref_file, 'r')
+        ref_source = comment_re.split (g.read ())
+        target_source = snippet_split (target_source)
+        ref_source = snippet_split (ref_source)
+        if '' in target_source or '' in ref_source:
+            raise "AAAAARGH: unuseful empty string"
+        snippet_count = count_snippet (target_source)
+        if not snippet_count == count_snippet (ref_source):
+            update_exit_code (1)
+            sys.stderr.write ("Error: %s and %s have different snippet counts.\n\
+Update translation by at least adding a @lilypond block where necessary, then rerun this script.\n" % (ref_file, file))
+            continue
+        total_snippet_count += snippet_count
+        c = 0
+        k = -1
+        for j in range (len (target_source)):
+            if target_source[j].startswith ('@lilypond'):
+                k = find_next_snippet (ref_source, k+1)
+                if j > 0 and (not target_source[j-1].startswith ('@c KEEP LY')) and target_source[j] != ref_source[k]:
+                    target_source[j] = ref_source[k]
+                    c += 1
+                    changed_snippets_count += 1
+        f = open (file, 'w')
+        f.write (''.join (target_source))
+        sys.stderr.write ('%s: %d/%d snippets updated\n' % (file, c, snippet_count))
+
+sys.stderr.write ('\nTotal: %d snippets, %d updated snippets.\n' % (total_snippet_count, changed_snippets_count))
+sys.exit (exit_code)
diff --git a/scripts/build/GNUmakefile b/scripts/build/GNUmakefile
new file mode 100644 (file)
index 0000000..5a62a47
--- /dev/null
@@ -0,0 +1,14 @@
+depth = ../..
+
+STEPMAKE_TEMPLATES=script install po
+
+include $(depth)/make/stepmake.make
+
+# Should we install these? This should be handled by sysadmin or
+# packager but if she forgets...
+#INSTALLATION_OUT_SUFFIXES=1
+#INSTALLATION_OUT_DIR1=$(local_lilypond_datadir)/scripts
+#INSTALLATION_OUT_FILES1=$(outdir)/lilypond-login $(outdir)/lilypond-profile
+
+all: $(INSTALLATION_FILES)
+
diff --git a/scripts/build/bib2html.py b/scripts/build/bib2html.py
new file mode 100644 (file)
index 0000000..c16f21c
--- /dev/null
@@ -0,0 +1,76 @@
+#!@PYTHON@
+import os
+import sys
+import getopt
+import tempfile
+
+# usage:
+def usage ():
+    print 'usage: %s [-s style] [-o <outfile>] BIBFILES...'
+
+(options, files) = getopt.getopt (sys.argv[1:], 's:o:', [])
+
+output = 'bib.html'
+style = 'long'
+
+for (o,a) in options:
+    if o == '-h' or o == '--help':
+        usage ()
+        sys.exit (0)
+    elif o == '-s' or o == '--style':
+        style = a
+    elif o == '-o' or o == '--output':
+        output = a
+    else:
+        raise Exception ('unknown option: %s' % o)
+
+
+if style not in ['alpha','index','long','longp','long-pario','short','short-pario','split']:
+    sys.stderr.write ("Unknown style \`%s'\n" % style)
+
+tempfile = tempfile.mktemp ('bib2html')
+
+if not files:
+   usage ()
+   sys.exit (2)
+
+
+def strip_extension (f, ext):
+    (p, e) = os.path.splitext (f)
+    if e == ext:
+        e = ''
+    return p + e
+
+nf = []
+for f in files:
+    nf.append (strip_extension (f, '.bib'))
+
+files = ','.join (nf)
+
+open (tempfile + '.aux', 'w').write (r'''
+\relax 
+\citation{*}
+\bibstyle{html-%(style)s}
+\bibdata{%(files)s}''' % vars ()) 
+
+cmd = "bibtex %s" % tempfile
+
+sys.stdout.write ("Invoking `%s'\n" % cmd)
+stat = os.system (cmd)
+if stat <> 0:
+    sys.exit(1)
+
+
+#TODO: do tex -> html on output 
+
+bbl = open (tempfile + '.bbl').read ()
+
+open (output, 'w').write  (bbl)
+
+
+def cleanup (tempfile):
+    for a in ['aux','bbl', 'blg']:
+        os.unlink (tempfile + '.' + a)
+
+cleanup (tempfile)
+
diff --git a/scripts/build/catmidi.py b/scripts/build/catmidi.py
new file mode 100644 (file)
index 0000000..c90d602
--- /dev/null
@@ -0,0 +1,12 @@
+#!@PYTHON@
+
+import sys
+import midi
+
+(h,tracks) = midi.parse (open (sys.argv[1]).read ())
+
+tracks = tracks[1:]
+
+for t in tracks:
+    for e in t:
+        print e
diff --git a/scripts/build/extract_texi_filenames.py b/scripts/build/extract_texi_filenames.py
new file mode 100644 (file)
index 0000000..8848b40
--- /dev/null
@@ -0,0 +1,229 @@
+#!@PYTHON@
+# -*- coding: utf-8 -*-
+# extract_texi_filenames.py
+
+# USAGE:  extract_texi_filenames.py [-o OUTDIR] FILES
+#
+# -o OUTDIR specifies that output files should rather be written in OUTDIR
+#
+# Description:
+# This script parses the .texi file given and creates a file with the
+# nodename <=> filename/anchor map.
+# The idea behind: Unnumbered subsections go into the same file as the
+# previous numbered section, @translationof gives the original node name,
+# which is then used for the filename/anchor.
+#
+# If this script is run on a file texifile.texi, it produces a file
+# texifile[.LANG].xref-map with tab-separated entries of the form
+#        NODE\tFILENAME\tANCHOR
+# LANG is the document language in case it's not 'en'
+# Note: The filename does not have any extension appended!
+# This file can then be used by our texi2html init script to determine
+# the correct file name and anchor for external refs
+
+import sys
+import re
+import os
+import getopt
+
+options_list, files = getopt.getopt (sys.argv[1:],'o:s:hI:',
+                               ['output=', 'split=', 'help', 'include='])
+
+help_text = r"""Usage: %(program_name)s [OPTIONS]... TEXIFILE...
+Extract files names for texinfo (sub)sections from the texinfo files.
+
+Options:
+ -h, --help                     print this help
+ -I, --include=DIRECTORY        append DIRECTORY to include search path
+ -o, --output=DIRECTORY         write .xref-map files to DIRECTORY
+ -s, --split=MODE               split manual according to MODE. Possible values
+                                are section and custom (default)
+"""
+
+def help (text):
+    sys.stdout.write ( text)
+    sys.exit (0)
+
+outdir = '.'
+split = "custom"
+include_path = []
+for opt in options_list:
+    o = opt[0]
+    a = opt[1]
+    if o == '-h' or o == '--help':
+        help (help_text % vars ())
+    if o == '-I' or o == '--include':
+        if os.path.isdir (a):
+            include_path.append (a)
+    elif o == '-o' or o == '--output':
+        outdir = a
+    elif o == '-s' or o == '--split':
+        split = a
+    else:
+        raise Exception ('unknown option: ' + o)
+
+
+if not os.path.isdir (outdir):
+    if os.path.exists (outdir):
+        os.unlink (outdir)
+    os.makedirs (outdir)
+
+include_re = re.compile (r'@include ((?!../lily-).*?\.i?texi)$', re.M)
+whitespaces = re.compile (r'\s+')
+section_translation_re = re.compile ('^@(node|(?:unnumbered|appendix)\
+(?:(?:sub){0,2}sec)?|top|chapter|(?:sub){0,2}section|\
+(?:major|chap|(?:sub){0,2})heading|translationof|lydoctitle) (.*?)\\s*$', re.MULTILINE)
+
+def expand_includes (m, filename):
+    filepath = os.path.join (os.path.dirname (filename), m.group(1))
+    if os.path.exists (filepath):
+        return extract_sections (filepath)[1]
+    else:
+        for directory in include_path:
+            filepath = os.path.join (directory, m.group(1))
+            if os.path.exists (filepath):
+                return extract_sections (filepath)[1]
+        print "Unable to locate include file " + filepath
+        return ''
+
+lang_re = re.compile (r'^@documentlanguage (.+)', re.M)
+
+def extract_sections (filename):
+    result = ''
+    f = open (filename, 'r')
+    page = f.read ()
+    f.close()
+    # Search document language
+    m = lang_re.search (page)
+    if m and m.group (1) != 'en':
+        lang_suffix = '.' + m.group (1)
+    else:
+        lang_suffix = ''
+    # Replace all includes by their list of sections and extract all sections
+    page = include_re.sub (lambda m: expand_includes (m, filename), page)
+    sections = section_translation_re.findall (page)
+    for sec in sections:
+        result += "@" + sec[0] + " " + sec[1] + "\n"
+    return (lang_suffix, result)
+
+# Convert a given node name to its proper file name (normalization as explained
+# in the texinfo manual:
+# http://www.gnu.org/software/texinfo/manual/texinfo/html_node/HTML-Xref-Node-Name-Expansion.html
+def texinfo_file_name(title):
+    # exception: The top node is always mapped to index.html
+    if title == "Top":
+        return "index"
+    # File name normalization by texinfo (described in the texinfo manual):
+    # 1/2: letters and numbers are left unchanged
+    # 3/4: multiple, leading and trailing whitespace is removed
+    title = title.strip ();
+    title = whitespaces.sub (' ', title)
+    # 5:   all remaining spaces are converted to '-'
+    # 6:   all other 7- or 8-bit chars are replaced by _xxxx (xxxx=ascii character code)
+    result = ''
+    for index in range(len(title)):
+        char = title[index]
+        if char == ' ': # space -> '-'
+            result += '-'
+        elif ( ('0' <= char and char <= '9' ) or
+               ('A' <= char and char <= 'Z' ) or
+               ('a' <= char and char <= 'z' ) ):  # number or letter
+            result += char
+        else:
+            ccode = ord(char)
+            if ccode <= 0xFFFF:
+                result += "_%04x" % ccode
+            else:
+                result += "__%06x" % ccode
+    # 7: if name begins with number, prepend 't_g' (so it starts with a letter)
+    if (result != '') and (ord(result[0]) in range (ord('0'), ord('9'))):
+        result = 't_g' + result
+    return result
+
+texinfo_re = re.compile (r'@.*{(.*)}')
+def remove_texinfo (title):
+    return texinfo_re.sub (r'\1', title)
+
+def create_texinfo_anchor (title):
+    return texinfo_file_name (remove_texinfo (title))
+
+unnumbered_re = re.compile (r'unnumbered.+|lydoctitle')
+file_name_section_level = {
+    'top': 4,
+    'chapter':3,
+    'unnumbered':3,
+    'appendix':3,
+    'section':2,
+    'unnumberedsec':2,
+    'appendixsec':2,
+    'subsection':1,
+    'unnumberedsubsec':1,
+    'appendixsubsec':1,
+    'subsubsection':0,
+    'unnumberedsubsubsec':0,
+    'appendixsubsubsec':0
+}
+if split in file_name_section_level:
+    splitting_level = file_name_section_level[split]
+else:
+    splitting_level = -1
+def process_sections (filename, lang_suffix, page):
+    sections = section_translation_re.findall (page)
+    basename = os.path.splitext (os.path.basename (filename))[0]
+    p = os.path.join (outdir, basename) + lang_suffix + '.xref-map'
+    f = open (p, 'w')
+
+    this_title = ''
+    this_filename = 'index'
+    this_anchor = ''
+    this_unnumbered = False
+    had_section = False
+    for sec in sections:
+        if sec[0] == "node":
+            # Write out the cached values to the file and start a new section:
+            if this_title and this_title != 'Top':
+                    f.write (this_title + "\t" + this_filename + "\t" + this_anchor + "\n")
+            had_section = False
+            this_title = remove_texinfo (sec[1])
+            this_anchor = create_texinfo_anchor (sec[1])
+        elif sec[0] == "translationof":
+            anchor = create_texinfo_anchor (sec[1])
+            # If @translationof is used, it gives the original node name, which
+            # we use for the anchor and the file name (if it is a numbered node)
+            this_anchor = anchor
+            if not this_unnumbered:
+                this_filename = anchor
+        else:
+            # Some pages might not use a node for every section, so treat this
+            # case here, too: If we already had a section and encounter another
+            # one before the next @node, we write out the old one and start
+            # with the new values
+            if had_section and this_title:
+                f.write (this_title + "\t" + this_filename + "\t" + this_anchor + "\n")
+                this_title = remove_texinfo (sec[1])
+                this_anchor = create_texinfo_anchor (sec[1])
+            had_section = True
+
+            if split == 'custom':
+                # unnumbered nodes use the previously used file name, only numbered
+                # nodes get their own filename! However, top-level @unnumbered
+                # still get their own file.
+                this_unnumbered = unnumbered_re.match (sec[0])
+                if not this_unnumbered:
+                    this_filename = this_anchor
+            elif split == 'node':
+                this_filename = this_anchor
+            else:
+                if sec[0] in file_name_section_level and \
+                        file_name_section_level[sec[0]] >= splitting_level:
+                    this_filename = this_anchor
+
+    if this_title and this_title != 'Top':
+        f.write (this_title + "\t" + this_filename + "\t" + this_anchor + "\n")
+    f.close ()
+
+
+for filename in files:
+    print "extract_texi_filenames.py: Processing %s" % filename
+    (lang_suffix, sections) = extract_sections (filename)
+    process_sections (filename, lang_suffix, sections)
diff --git a/scripts/build/gen-emmentaler-scripts.py b/scripts/build/gen-emmentaler-scripts.py
new file mode 100644 (file)
index 0000000..3da8840
--- /dev/null
@@ -0,0 +1,104 @@
+#!@PYTHON@
+import sys
+import getopt
+import re 
+import os
+
+(options, files) = \
+ getopt.getopt (sys.argv[1:],
+        '',
+        ['dir='])
+
+
+outdir = ''
+for opt in options:
+    o = opt[0]
+    a = opt[1]
+    if o == '--dir':
+        outdir = a
+    else:
+        print o
+        raise getopt.error
+
+# Ugh
+for design_size in [11,13,14,16,18,20,23,26]:
+    name = 'Emmentaler' 
+    filename = name.lower ()
+    script = '''#!@FONTFORGE@
+
+New();
+
+# Separate Feta versioning?
+#         *  using 20 as Weight works for gnome-font-select widget: gfs
+
+notice = "";
+notice += "This font is distributed under the GNU General Public License. ";
+notice += "As a special exception, if you create a document which uses ";
+notice += "this font, and embed this font or unaltered portions of this ";
+notice += "font into the document, this font does not by itself cause the ";
+notice += "resulting document to be covered by the GNU General Public License.";;
+
+SetFontNames("%(name)s-%(design_size)d", "%(name)s", "%(name)s %(design_size)d", "%(design_size)d", notice, "@TOPLEVEL_VERSION@");
+
+MergeFonts("feta%(design_size)d.pfb");
+MergeFonts("parmesan%(design_size)d.pfb");
+
+# load nummer/din after setting PUA.
+i = 0;
+while (i < CharCnt())
+ Select(i);
+# crashes fontforge, use PUA for now -- jcn
+# SetUnicodeValue(i + 0xF0000, 0);
+/*
+PRIVATE AREA
+   In the BMP, the range 0xe000 to 0xf8ff will never be  assigned  to  any
+   characters  by  the standard and is reserved for private usage. For the
+   Linux community, this private area has been subdivided further into the
+   range  0xe000  to 0xefff which can be used individually by any end-user
+   and the Linux zone in the range 0xf000 to 0xf8ff where  extensions  are
+   coordinated  among  all  Linux  users.  The  registry of the characters
+   assigned to the Linux zone is currently maintained by  H.  Peter  Anvin
+   <Peter.Anvin@linux.org>.
+*/
+ SetUnicodeValue(i + 0xE000, 0);
+ ++i;
+endloop
+
+
+MergeFonts("feta-alphabet%(design_size)d.pfb");
+MergeKern("feta-alphabet%(design_size)d.tfm");
+
+LoadTableFromFile("LILF", "%(filename)s-%(design_size)d.subfonts");
+LoadTableFromFile("LILC", "feta%(design_size)d.otf-table");
+LoadTableFromFile("LILY", "feta%(design_size)d.otf-gtable");
+
+Generate("%(filename)s-%(design_size)d.otf");
+Generate("%(filename)s-%(design_size)d.svg");
+''' % vars()
+
+    basename = '%s-%d' % (filename, design_size)
+    path = os.path.join (outdir, basename + '.pe')
+    open (path, 'w').write (script)
+
+    subfonts = ['feta%(design_size)d',
+          'parmesan%(design_size)d',
+          'feta-alphabet%(design_size)d']
+
+    ns = []
+    for s in subfonts:
+        ns.append ('%s' % (s % vars()))
+        
+    subfonts_str = ' '.join (ns)
+    
+    open (os.path.join (outdir, '%(filename)s-%(design_size)d.subfonts' % vars()), 'w').write (subfonts_str)
+
+    path = os.path.join (outdir, '%s-%d.dep' % (filename, design_size))
+
+    deps = r'''%(filename)s-%(design_size)d.otf: $(outdir)/feta%(design_size)d.pfa \
+ $(outdir)/parmesan%(design_size)d.pfa  \
+ $(outdir)/feta-alphabet%(design_size)d.pfa feta%(design_size)d.otf-table \
+ $(outdir)/feta-alphabet%(design_size)d.pfa feta%(design_size)d.otf-gtable
+''' % vars()
+    open (path, 'w').write (deps)
+
+    open (os.path.join (outdir, basename + '.fontname'), 'w').write ("%s-%d" % (name, design_size))
diff --git a/scripts/build/genicon.py b/scripts/build/genicon.py
new file mode 100644 (file)
index 0000000..5437352
--- /dev/null
@@ -0,0 +1,31 @@
+#!@PYTHON@
+import os
+import sys
+import tempfile
+
+base = os.path.splitext (os.path.split (sys.argv[1])[1])[0]
+input = os.path.abspath (sys.argv[1])
+output = os.path.abspath (sys.argv[2])
+program_name= os.path.split (sys.argv[0])[1]
+
+dir = tempfile.mktemp (program_name)
+os.mkdir (dir, 0777)
+os.chdir(dir)
+
+def system (c):
+    print c
+    if os.system (c):
+        raise 'barf'
+
+outputs = []
+for sz in [48,32,16] :
+    
+    for depth in [24,8]:
+        out = '%(base)s-%(sz)d-%(depth)d.png' % locals()
+        system ('convert -depth %(depth)d -sample %(sz)d %(input)s %(out)s' %
+            locals ())
+        outputs.append (out)
+        
+system('icotool --output %s --create %s' % (output, ' '.join (outputs)))
+system('rm -rf %(dir)s' % locals())                 
+
diff --git a/scripts/build/grand-replace.py b/scripts/build/grand-replace.py
new file mode 100644 (file)
index 0000000..dc0697d
--- /dev/null
@@ -0,0 +1,69 @@
+#! @PYTHON@
+
+'''
+    Copyright (c) 2009--210    Jan Nieuwenhuizen <janneke@gnu.org>
+
+    This program 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, 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+'''
+
+import datetime
+import os
+import re
+import sys
+#
+sys.path.insert (0, '@top-src-dir@/scripts/build')
+import pytt
+
+dry_run = False
+
+def read_pipe (cmd, ignore_errors=False):
+    pipe = os.popen (cmd)
+    val = pipe.read ()
+    if pipe.close () and not ignore_errors:
+        raise SystemFailed ('Pipe failed: %(cmd)s' % locals ())
+    return val
+
+def filter_out (p, lst):
+    return filter (lambda x: not p (x), lst)
+
+copied_files = [
+    'help2man.pl',
+    'mf2pt1.mp',
+    'mf2pt1.pl',
+    'texinfo.tex',
+    'txi-de.tex',
+    'txi-en.tex',
+    'txi-fr.tex',
+    'txi-sf.tex',
+    ]
+
+def main ():
+    files = filter_out (lambda x: (os.path.basename (x) in copied_files
+                                   or 'CHANGES' in x or 'ChangeLog' in x),
+                        read_pipe ('cd @top-src-dir@ && git ls-files').split ())
+    os.chdir ('@top-src-dir@')
+    year = datetime.datetime.now ().year
+    last_year = year - 1
+    last_year_1d = last_year % 10
+    for f in files:
+        pytt.pytt ('(Copyright|\(c\)|\(C\)|@copyright\{\})\s*%(last_year)s([^-]|$)' % locals (),
+                   r'\1 %(last_year)s--%(year)s' % locals (),
+                   f)
+        pytt.pytt ('(Copyright|\(c\)|\(C\)|@copyright\{\})\s*([^-]*)--(20[0-9][0-%(last_year_1d)s])' % locals (),
+                   r'\1 \2--%(year)s' % locals (),
+                   f)
+
+if __name__ == '__main__':
+    main ()
diff --git a/scripts/build/help2man.pl b/scripts/build/help2man.pl
new file mode 100644 (file)
index 0000000..9349010
--- /dev/null
@@ -0,0 +1,559 @@
+#!@PERL@ -w
+
+# Generate a short man page from --help and --version output.
+# Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Free Software
+# Foundation, Inc.
+
+# This program 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# Written by Brendan O'Dea <bod@debian.org>
+# Available from ftp://ftp.gnu.org/gnu/help2man/
+
+use 5.005;
+use strict;
+use Getopt::Long;
+use Text::Tabs qw(expand);
+use POSIX qw(strftime setlocale LC_TIME);
+
+my $this_program = 'help2man';
+my $this_version = '1.28';
+my $version_info = <<EOT;
+GNU $this_program $this_version
+
+Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 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.
+
+Written by Brendan O'Dea <bod\@debian.org>
+EOT
+
+my $help_info = <<EOT;
+`$this_program' generates a man page out of `--help' and `--version' output.
+
+Usage: $this_program [OPTIONS]... EXECUTABLE
+
+ -n, --name=STRING       description for the NAME paragraph
+ -s, --section=SECTION   section number for manual page (1, 6, 8)
+ -m, --manual=TEXT       name of manual (User Commands, ...)
+ -S, --source=TEXT       source of program (FSF, Debian, ...)
+ -i, --include=FILE      include material from `FILE'
+ -I, --opt-include=FILE  include material from `FILE' if it exists
+ -o, --output=FILE       send output to `FILE'
+ -p, --info-page=TEXT    name of Texinfo manual
+ -N, --no-info           suppress pointer to Texinfo manual
+     --help              print this help, then exit
+     --version           print version number, then exit
+
+EXECUTABLE should accept `--help' and `--version' options although
+alternatives may be specified using:
+
+ -h, --help-option=STRING     help option string
+ -v, --version-option=STRING  version option string
+
+Report bugs to <bug-help2man\@gnu.org>.
+EOT
+
+my $section = 1;
+my $manual = '';
+my $source = '';
+my $help_option = '--help';
+my $version_option = '--version';
+my ($opt_name, @opt_include, $opt_output, $opt_info, $opt_no_info);
+
+my %opt_def = (
+    'n|name=s'          => \$opt_name,
+    's|section=s'       => \$section,
+    'm|manual=s'        => \$manual,
+    'S|source=s'        => \$source,
+    'i|include=s'       => sub { push @opt_include, [ pop, 1 ] },
+    'I|opt-include=s'   => sub { push @opt_include, [ pop, 0 ] },
+    'o|output=s'        => \$opt_output,
+    'p|info-page=s'     => \$opt_info,
+    'N|no-info'                 => \$opt_no_info,
+    'h|help-option=s'   => \$help_option,
+    'v|version-option=s' => \$version_option,
+);
+
+# Parse options.
+Getopt::Long::config('bundling');
+GetOptions (%opt_def,
+    help    => sub { print $help_info; exit },
+    version => sub { print $version_info; exit },
+) or die $help_info;
+
+die $help_info unless @ARGV == 1;
+
+my %include = ();
+my %append = ();
+my @include = (); # retain order given in include file
+
+# Process include file (if given).  Format is:
+#
+#   [section name]
+#   verbatim text
+#
+# or
+#
+#   /pattern/
+#   verbatim text
+#
+
+while (@opt_include)
+{
+    my ($inc, $required) = @{shift @opt_include};
+
+    next unless -f $inc or $required;
+    die "$this_program: can't open `$inc' ($!)\n"
+       unless open INC, $inc;
+
+    my $key;
+    my $hash = \%include;
+
+    while (<INC>)
+    {
+       # [section]
+       if (/^\[([^]]+)\]/)
+       {
+           $key = uc $1;
+           $key =~ s/^\s+//;
+           $key =~ s/\s+$//;
+           $hash = \%include;
+           push @include, $key unless $include{$key};
+           next;
+       }
+
+       # /pattern/
+       if (m!^/(.*)/([ims]*)!)
+       {
+           my $pat = $2 ? "(?$2)$1" : $1;
+
+           # Check pattern.
+           eval { $key = qr($pat) };
+           if ($@)
+           {
+               $@ =~ s/ at .*? line \d.*//;
+               die "$inc:$.:$@";
+           }
+
+           $hash = \%append;
+           next;
+       }
+
+       # Check for options before the first section--anything else is
+       # silently ignored, allowing the first for comments and
+       # revision info.
+       unless ($key)
+       {
+           # handle options
+           if (/^-/)
+           {
+               local @ARGV = split;
+               GetOptions %opt_def;
+           }
+
+           next;
+       }
+
+       $hash->{$key} ||= '';
+       $hash->{$key} .= $_;
+    }
+
+    close INC;
+
+    die "$this_program: no valid information found in `$inc'\n"
+       unless $key;
+}
+
+# Compress trailing blank lines.
+for my $hash (\(%include, %append))
+{
+    for (keys %$hash) { $hash->{$_} =~ s/\n+$/\n/ }
+}
+
+# Turn off localisation of executable's output.
+@ENV{qw(LANGUAGE LANG LC_ALL)} = ('C') x 3;
+
+# Turn off localisation of date (for strftime).
+setlocale LC_TIME, 'C';
+
+# Grab help and version info from executable.
+my ($help_text, $version_text) = map {
+    join '', map { s/ +$//; expand $_ } `$ARGV[0] $_`
+       or die "$this_program: can't get `$_' info from $ARGV[0]\n"
+} $help_option, $version_option;
+
+my $date = strftime "%B %Y", localtime;
+(my $program = $ARGV[0]) =~ s!.*/!!;
+my $package = $program;
+my $version;
+
+if ($opt_output)
+{
+    unlink $opt_output
+       or die "$this_program: can't unlink $opt_output ($!)\n"
+       if -e $opt_output;
+
+    open STDOUT, ">$opt_output"
+       or die "$this_program: can't create $opt_output ($!)\n";
+}
+
+# The first line of the --version information is assumed to be in one
+# of the following formats:
+#
+#   <version>
+#   <program> <version>
+#   {GNU,Free} <program> <version>
+#   <program> ({GNU,Free} <package>) <version>
+#   <program> - {GNU,Free} <package> <version>
+#
+# and seperated from any copyright/author details by a blank line.
+
+($_, $version_text) = split /\n+/, $version_text, 2;
+
+if (/^(\S+) +\(((?:GNU|Free) +[^)]+)\) +(.*)/ or
+    /^(\S+) +- *((?:GNU|Free) +\S+) +(.*)/)
+{
+    $program = $1;
+    $package = $2;
+    $version = $3;
+}
+elsif (/^((?:GNU|Free) +)?(\S+) +(.*)/)
+{
+    $program = $2;
+    $package = $1 ? "$1$2" : $2;
+    $version = $3;
+}
+else
+{
+    $version = $_;
+}
+
+$program =~ s!.*/!!;
+
+# No info for `info' itself.
+$opt_no_info = 1 if $program eq 'info';
+
+# --name overrides --include contents.
+$include{NAME} = "$program \\- $opt_name\n" if $opt_name;
+
+# Default (useless) NAME paragraph.
+$include{NAME} ||= "$program \\- manual page for $program $version\n";
+
+# Man pages traditionally have the page title in caps.
+my $PROGRAM = uc $program;
+
+# Set default page head/footers
+$source ||= "$program $version";
+unless ($manual)
+{
+    for ($section)
+    {
+       if (/^(1[Mm]|8)/) { $manual = 'System Administration Utilities' }
+       elsif (/^6/)      { $manual = 'Games' }
+       else              { $manual = 'User Commands' }
+    }
+}
+
+# Extract usage clause(s) [if any] for SYNOPSIS.
+if ($help_text =~ s/^Usage:( +(\S+))(.*)((?:\n(?: {6}\1| *or: +\S).*)*)//m)
+{
+    my @syn = $2 . $3;
+
+    if ($_ = $4)
+    {
+       s/^\n//;
+       for (split /\n/) { s/^ *(or: +)?//; push @syn, $_ }
+    }
+
+    my $synopsis = '';
+    for (@syn)
+    {
+       $synopsis .= ".br\n" if $synopsis;
+       s!^\S*/!!;
+       s/^(\S+) *//;
+       $synopsis .= ".B $1\n";
+       s/\s+$//;
+       s/(([][]|\.\.+)+)/\\fR$1\\fI/g;
+       s/^/\\fI/ unless s/^\\fR//;
+       $_ .= '\fR';
+       s/(\\fI)( *)/$2$1/g;
+       s/\\fI\\fR//g;
+       s/^\\fR//;
+       s/\\fI$//;
+       s/^\./\\&./;
+
+       $synopsis .= "$_\n";
+    }
+
+    $include{SYNOPSIS} ||= $synopsis;
+}
+
+# Process text, initial section is DESCRIPTION.
+my $sect = 'DESCRIPTION';
+$_ = "$help_text\n\n$version_text";
+
+# Normalise paragraph breaks.
+s/^\n+//;
+s/\n*$/\n/;
+s/\n\n+/\n\n/g;
+
+# Temporarily exchange leading dots, apostrophes and backslashes for
+# tokens.
+s/^\./\x80/mg;
+s/^'/\x81/mg;
+s/\\/\x82/g;
+
+# Start a new paragraph (if required) for these.
+s/([^\n])\n(Report +bugs|Email +bug +reports +to|Written +by)/$1\n\n$2/g;
+
+sub convert_option;
+
+while (length)
+{
+    # Convert some standard paragraph names.
+    if (s/^(Options|Examples): *\n//)
+    {
+       $sect = uc $1;
+       next;
+    }
+
+    # Copyright section
+    if (/^Copyright +[(\xa9]/)
+    {
+       $sect = 'COPYRIGHT';
+       $include{$sect} ||= '';
+       $include{$sect} .= ".PP\n" if $include{$sect};
+
+       my $copy;
+       ($copy, $_) = split /\n\n/, $_, 2;
+
+       for ($copy)
+       {
+           # Add back newline
+           s/\n*$/\n/;
+
+           # Convert iso9959-1 copyright symbol or (c) to nroff
+           # character.
+           s/^Copyright +(?:\xa9|\([Cc]\))/Copyright \\(co/mg;
+
+           # Insert line breaks before additional copyright messages
+           # and the disclaimer.
+           s/(.)\n(Copyright |This +is +free +software)/$1\n.br\n$2/g;
+
+           # Join hyphenated lines.
+           s/([A-Za-z])-\n */$1/g;
+       }
+
+       $include{$sect} .= $copy;
+       $_ ||= '';
+       next;
+    }
+
+    # Catch bug report text.
+    if (/^(Report +bugs|Email +bug +reports +to) /)
+    {
+       $sect = 'REPORTING BUGS';
+    }
+
+    # Author section.
+    elsif (/^Written +by/)
+    {
+       $sect = 'AUTHOR';
+    }
+
+    # Examples, indicated by an indented leading $, % or > are
+    # rendered in a constant width font.
+    if (/^( +)([\$\%>] )\S/)
+    {
+       my $indent = $1;
+       my $prefix = $2;
+       my $break = '.IP';
+       $include{$sect} ||= '';
+       while (s/^$indent\Q$prefix\E(\S.*)\n*//)
+       {
+           $include{$sect} .= "$break\n\\f(CW$prefix$1\\fR\n";
+           $break = '.br';
+       }
+
+       next;
+    }
+
+    my $matched = '';
+    $include{$sect} ||= '';
+
+    # Sub-sections have a trailing colon and the second line indented.
+    if (s/^(\S.*:) *\n / /)
+    {
+       $matched .= $& if %append;
+       $include{$sect} .= qq(.SS "$1"\n);
+    }
+
+    my $indent = 0;
+    my $content = '';
+
+    # Option with description.
+    if (s/^( {1,10}([+-]\S.*?))(?:(  +(?!-))|\n( {20,}))(\S.*)\n//)
+    {
+       $matched .= $& if %append;
+       $indent = length ($4 || "$1$3");
+       $content = ".TP\n\x83$2\n\x83$5\n";
+       unless ($4)
+       {
+           # Indent may be different on second line.
+           $indent = length $& if /^ {20,}/;
+       }
+    }
+
+    # Option without description.
+    elsif (s/^ {1,10}([+-]\S.*)\n//)
+    {
+       $matched .= $& if %append;
+       $content = ".HP\n\x83$1\n";
+       $indent = 80; # not continued
+    }
+
+    # Indented paragraph with tag.
+    elsif (s/^( +(\S.*?)  +)(\S.*)\n//)
+    {
+       $matched .= $& if %append;
+       $indent = length $1;
+       $content = ".TP\n\x83$2\n\x83$3\n";
+    }
+
+    # Indented paragraph.
+    elsif (s/^( +)(\S.*)\n//)
+    {
+       $matched .= $& if %append;
+       $indent = length $1;
+       $content = ".IP\n\x83$2\n";
+    }
+
+    # Left justified paragraph.
+    else
+    {
+       s/(.*)\n//;
+       $matched .= $& if %append;
+       $content = ".PP\n" if $include{$sect};
+       $content .= "$1\n";
+    }
+
+    # Append continuations.
+    while (s/^ {$indent}(\S.*)\n//)
+    {
+       $matched .= $& if %append;
+       $content .= "\x83$1\n"
+    }
+
+    # Move to next paragraph.
+    s/^\n+//;
+
+    for ($content)
+    {
+       # Leading dot and apostrophe protection.
+       s/\x83\./\x80/g;
+       s/\x83'/\x81/g;
+       s/\x83//g;
+
+       # Convert options.
+       s/(^| )(-[][\w=-]+)/$1 . convert_option $2/mge;
+    }
+
+    # Check if matched paragraph contains /pat/.
+    if (%append)
+    {
+       for my $pat (keys %append)
+       {
+           if ($matched =~ $pat)
+           {
+               $content .= ".PP\n" unless $append{$pat} =~ /^\./;
+               $content .= $append{$pat};
+           }
+       }
+    }
+
+    $include{$sect} .= $content;
+}
+
+# Refer to the real documentation.
+unless ($opt_no_info)
+{
+    my $info_page = $opt_info || $program;
+
+    $sect = 'SEE ALSO';
+    $include{$sect} ||= '';
+    $include{$sect} .= ".PP\n" if $include{$sect};
+    $include{$sect} .= <<EOT;
+The full documentation for
+.B $program
+is maintained as a Texinfo manual.  If the
+.B info
+and
+.B $program
+programs are properly installed at your site, the command
+.IP
+.B info $info_page
+.PP
+should give you access to the complete manual.
+EOT
+}
+
+# Output header.
+print <<EOT;
+.\\" DO NOT MODIFY THIS FILE!  It was generated by $this_program $this_version.
+.TH $PROGRAM "$section" "$date" "$source" "$manual"
+EOT
+
+# Section ordering.
+my @pre = qw(NAME SYNOPSIS DESCRIPTION OPTIONS EXAMPLES);
+my @post = ('AUTHOR', 'REPORTING BUGS', 'COPYRIGHT', 'SEE ALSO');
+my $filter = join '|', @pre, @post;
+
+# Output content.
+for (@pre, (grep ! /^($filter)$/o, @include), @post)
+{
+    if ($include{$_})
+    {
+       my $quote = /\W/ ? '"' : '';
+       print ".SH $quote$_$quote\n";
+       
+       for ($include{$_})
+       {
+           # Replace leading dot, apostrophe and backslash tokens.
+           s/\x80/\\&./g;
+           s/\x81/\\&'/g;
+           s/\x82/\\e/g;
+           print;
+       }
+    }
+}
+
+exit;
+
+# Convert option dashes to \- to stop nroff from hyphenating 'em, and
+# embolden.  Option arguments get italicised.
+sub convert_option
+{
+    local $_ = '\fB' . shift;
+
+    s/-/\\-/g;
+    unless (s/\[=(.*)\]$/\\fR[=\\fI$1\\fR]/)
+    {
+       s/=(.)/\\fR=\\fI$1/;
+       s/ (.)/ \\fI$1/;
+       $_ .= '\fR';
+    }
+
+    $_;
+}
diff --git a/scripts/build/html-gettext.py b/scripts/build/html-gettext.py
new file mode 100644 (file)
index 0000000..ccfe693
--- /dev/null
@@ -0,0 +1,126 @@
+#!@PYTHON@
+# html-gettext.py
+
+# USAGE:  html-gettext.py [-o OUTDIR] LANG FILES
+#
+# -o OUTDIR specifies that output files should be written in OUTDIR
+#    rather than be overwritten
+#
+
+import sys
+import re
+import os
+import getopt
+
+import langdefs
+
+optlist, args = getopt.getopt(sys.argv[1:],'o:')
+lang = args[0]
+files = args [1:]
+
+outdir = '.'
+for x in optlist:
+    if x[0] == '-o':
+        outdir = x[1]
+
+double_punct_char_separator = langdefs.LANGDICT[lang].double_punct_char_sep
+my_gettext = langdefs.translation[lang]
+
+html_codes = ((' -- ', ' &ndash; '),
+              (' --- ', ' &mdash; '),
+              ("'", '&rsquo;'))
+texi_html_conversion = {
+    'command': {
+        'html2texi':
+            (re.compile (r'(?:<samp><span class="command">|<code>)(.*?)(?:</span></samp>|</code>)'),
+             r'@command{\1}'),
+        'texi2html':
+            (re.compile (r'@command{(.*?)}'),
+             r'<code>\1</code>'),
+        },
+    'code': {
+        'html2texi':
+            (re.compile (r'<code>(.*?)</code>'),
+             r'@code{\1}'),
+        'texi2html':
+            (re.compile (r'@code{(.*?)}'),
+             r'<code>\1</code>'),
+        },
+    }
+
+whitespaces = re.compile (r'\s+')
+
+
+def _ (s):
+    if not s:
+        return ''
+    str = whitespaces.sub (' ', s)
+    for c in html_codes:
+        str = str.replace (c[1], c[0])
+    for command in texi_html_conversion:
+        d = texi_html_conversion[command]
+        str = d['html2texi'][0].sub (d['html2texi'][1], str)
+        str = my_gettext (str)
+        str = d['texi2html'][0].sub (d['texi2html'][1], str)
+    for c in html_codes:
+        str = str.replace (c[0], c[1])
+    return str
+
+link_re =  re.compile (r'<link rel="(up|prev|next)" (.*?) title="([^"]*?)">')
+
+def link_gettext (m):
+    return '<link rel="' + m.group (1) + '" ' + m.group (2) \
+        + ' title="' + _ (m.group (3)) + '">'
+
+makeinfo_title_re = re.compile (r'<title>([^<]*?) - ([^<]*?)</title>')
+
+def makeinfo_title_gettext (m):
+    return '<title>' + _ (m.group (1)) + ' - ' + m.group (2) + '</title>'
+
+texi2html_title_re = re.compile (r'<title>(.+): ([A-Z\d.]+ |)(.+?)</title>')
+
+def texi2html_title_gettext (m):
+    return '<title>' + _ (m.group (1)) + double_punct_char_separator + ': ' \
+        + m.group (2) + _ (m.group (3)) + '</title>'
+
+a_href_re = re.compile ('(?s)<a (?P<attributes>[^>]*?href="[\\w.#-_]+"[^>]*?>)(?P<code><code>)?\
+(?P<appendix>Appendix )?(?P<leading>[A-Z0-9.]+ | (?:&lt;){1,2} |&nbsp;[^>:]+?:&nbsp;|&nbsp;|)\
+(?P<name>(?:<samp><span class="command">|</?code>|</span>|[^>])+?)(?P<end_code>(?(code)</code>|))\
+(?P<trailing> (?:&gt;){1,2} |&nbsp;|)</a>:?')
+
+def a_href_gettext (m):
+    s = ''
+    if m.group(0)[-1] == ':':
+        s = double_punct_char_separator + ':'
+    t = ''
+    if m.group ('appendix'):
+        t = _ (m.group ('appendix'))
+    return '<a ' + m.group ('attributes') + (m.group ('code') or '') + \
+        t + m.group ('leading') + _ (m.group ('name')) + \
+        m.group ('end_code') + m.group ('trailing') + '</a>' + s
+
+h_re = re.compile (r'<h(\d)( class="\w+"|)>\s*(Appendix |)([A-Z\d.]+ |)(.+?)\s*</h\1>')
+
+def h_gettext (m):
+    if m.group (3):
+        s = _ (m.group (3))
+    else:
+        s= ''
+    return '<h' + m.group (1) + m.group (2) + '>' + s +\
+           m.group (4) + _ (m.group (5)) + '</h' + m.group (1) + '>'
+
+for filename in files:
+    f = open (filename, 'r')
+    page = f.read ()
+    f.close ()
+    page = link_re.sub (link_gettext, page)
+    page = makeinfo_title_re.sub (makeinfo_title_gettext, page)
+    page = texi2html_title_re.sub (texi2html_title_gettext, page)
+    page = a_href_re.sub (a_href_gettext, page)
+    page = h_re.sub (h_gettext, page)
+    for w in ('Next:', 'Previous:', 'Up:'):
+        page = page.replace (w, _ (w))
+    page = langdefs.LANGDICT[lang].html_filter (page)
+    f = open (os.path.join (outdir, filename), 'w')
+    f.write (page)
+    f.close ()
diff --git a/scripts/build/install-info-html.sh b/scripts/build/install-info-html.sh
new file mode 100644 (file)
index 0000000..a116cd9
--- /dev/null
@@ -0,0 +1,157 @@
+#!@BASH@
+
+name=install-info-html
+version=1.0
+
+all=
+index_dir=.
+
+#
+# debugging
+#
+debug_echo=:
+
+
+#
+# print usage
+#
+help ()
+{
+       cat << EOF
+$name $version
+Install HTML info document.
+
+Usage: $name [OPTIONS]... [DOCUMENT-DIR]...
+
+Options:
+  -a, --all            assume all subdirectories of index to be DOCUMENT-DIRs
+  -d, --dir=DIR        set index directory to DIR (default=.)
+  -D, --debug          print debugging info
+  -h, --help           show this help text
+  -v, --version        show version
+EOF
+}
+
+cleanup ()
+{
+       $debug_echo "cleaning ($?)..."
+}
+
+trap cleanup 0 9 15
+
+#
+# Find command line options and switches
+#
+
+# "x:" x takes argument
+#
+options="adhvW:"
+#
+# ugh, "\-" is a hack to support long options
+# must be in double quotes for bash-2.0
+
+while getopts "\-:$options" O
+do
+       $debug_echo "O: \`$O'"
+       $debug_echo "arg: \`$OPTARG'"
+       case $O in
+               a)
+                       all=yes
+                       ;;
+               D)
+                       [ "$debug_echo" = "echo" ] && set -x
+                       debug_echo=echo
+                       ;;
+               h)
+                       help;
+                       exit 0
+                       ;;
+               v)
+                       echo $name $version
+                       exit 0
+                       ;;
+               d)
+                       index_dir=$OPTARG
+                       ;;
+       # a long option!
+       -)
+               case "$OPTARG" in
+                       a*|-a*)
+                               all=yes
+                               ;;
+                       de*|-de*)
+                               [ "$debug_echo" = "echo" ] && set -x
+                               debug_echo=echo
+                               ;;
+                       h*|-h*)
+                               help;
+                               exit 0
+                               ;;
+                       di*|-di*)
+                               index_dir="`expr \"$OPTARG\" ':' '[^=]*=\(.*\)'`"
+                               ;;
+                       version|-version)
+                               echo $name $version
+                               exit 0
+                               ;;
+                       *|-*)
+                               echo "$0: invalid option -- \"$OPTARG\""
+                               help;
+                               exit -1
+                               ;;
+               esac
+       esac
+done
+shift `expr $OPTIND - 1`
+
+#
+# Input file name
+#
+if [ -z "$all" -a -z "$1" ]; then
+       help
+       echo "$name: No HTML documents given"
+       exit 2
+fi
+
+if [ -n "$all" -a -n "$1" ]; then
+       echo "$name: --all specified, ignoring DIRECTORY-DIRs"
+fi
+
+if [ -n "$all" ]; then
+       document_dirs=`/bin/ls -d1 $index_dir`
+else
+       document_dirs=$*
+fi
+
+index_file=$index_dir/index.html
+rm -f $index_file
+echo -n "$name: Writing index: $index_file..."
+
+# head
+cat >> $index_file <<EOF
+<html> 
+<title>Info documentation index</title>
+<body>
+<h1>Info documentation index</h1>
+<p>
+This is the directory file \`index.html' a.k.a. \`DIR', which contains the
+topmost node of the HTML Info hierarchy.
+</p>
+<ul>
+EOF
+
+#list
+for i in $document_dirs; do
+    cat <<EOF
+<li> <a href="$i/index.html">$i</a> (<a href="$i.html">$i as one big page</a>)</li>
+EOF
+done >> $index_file
+
+# foot
+cat >> $index_file <<EOF
+</ul>
+</body>
+</html>
+EOF
+echo
diff --git a/scripts/build/lilypond-words.py b/scripts/build/lilypond-words.py
new file mode 100644 (file)
index 0000000..e9851f6
--- /dev/null
@@ -0,0 +1,149 @@
+#!@PYTHON@
+
+# Created 01 September 2003 by Heikki Junes.
+# Rewritten by John Mandereau
+
+# Generates lilypond-words.el for (X)Emacs and lilypond-words[.vim] for Vim.
+
+import re
+import sys
+import os
+import getopt
+
+keywords = []
+reserved_words = []
+note_names = []
+
+# keywords not otherwise found
+keywords += ['include', 'maininput', 'version']
+
+# the main keywords
+s = open ('lily/lily-lexer.cc', 'r').read ()
+keywords += [w for w in re.findall (r"\s*{\"(.+)\",\s*.*},\s*\n", s)]
+
+s = open ('scm/markup.scm', 'r').read ()
+keywords += [w for w in re.findall (r"(?m)^\s*\(cons\s*([a-z-]+)-markup", s)]
+
+# identifiers and keywords
+for name in ['ly/chord-modifiers-init.ly',
+             'ly/dynamic-scripts-init.ly',
+             'ly/engraver-init.ly',
+             'ly/grace-init.ly',
+             'ly/gregorian.ly',
+             'ly/music-functions-init.ly',
+             'ly/performer-init.ly',
+             'ly/property-init.ly',
+             'ly/scale-definitions-init.ly',
+             'ly/script-init.ly',
+             'ly/spanners-init.ly',
+             'ly/declarations-init.ly',
+             'ly/params-init.ly']:
+    s = open (name, 'r').read ()
+    keywords += [w for w in re.findall (r"(?m)^\s*\"?([a-zA-Z]+)\"?\s*=", s)]
+
+# note names
+for name in ['ly/catalan.ly',
+             'ly/deutsch.ly',
+             'ly/drumpitch-init.ly',
+             'ly/english.ly',
+             'ly/espanol.ly',
+             'ly/italiano.ly',
+             'ly/nederlands.ly',
+             'ly/norsk.ly',
+             'ly/portugues.ly',
+             'ly/suomi.ly',
+             'ly/svenska.ly',
+             'ly/vlaams.ly']:
+    s = open (name, 'r').read ()
+    note_names += [n for n in re.findall (r"(?m)^\s*\(([a-z]+)[^l]+ly:make-pitch", s)]
+
+# reserved words
+for name in ['ly/engraver-init.ly',
+             'ly/performer-init.ly']:
+    s = open (name, 'r').read ()
+    for pattern in [r"(?m)^\s*.consists\s+\"([a-zA-Z_]+)\"",
+                    r"[\\]name\s+[\"]?([a-zA-Z_]+)[\"]?",
+                    r"\s+([a-zA-Z_]+)\s*\\(?:set|override)"]:
+        reserved_words += [w for w in re.findall (pattern, s)]
+
+keywords = list (set (keywords))
+keywords.sort (reverse=True)
+
+reserved_words = list (set (reserved_words))
+reserved_words.sort (reverse=True)
+
+note_names = list (set (note_names))
+note_names.sort (reverse=True)
+
+
+# output
+outdir = ''
+out_words = False
+out_el = False
+out_vim = False
+
+options = getopt.getopt (sys.argv[1:],
+  '', ['words', 'el', 'vim', 'dir='])[0]
+
+for (o, a) in options:
+    if o == '--words':
+        out_words = True
+    elif o == '--el':
+        out_el = True
+    elif o == '--vim':
+        out_vim = True
+    elif o == '--dir':
+        outdir = a
+
+if out_words or out_el:
+    outstring = ''.join (['\\\\' + w + '\n' for w in keywords])
+    outstring += ''.join ([w + '\n' for w in reserved_words])
+    outstring += ''.join ([w + '\n' for w in note_names])
+
+if out_words:
+    f = open (os.path.join (outdir, 'lilypond-words'), 'w')
+    f.write (outstring)
+
+if out_el:
+    f = open (os.path.join (outdir, 'lilypond-words.el'), 'w')
+    f.write (outstring)
+
+    # the menu in lilypond-mode.el
+    # for easier typing of this list, replace '/' with '\' below
+    # when writing to file
+    elisp_menu = ['/( - _ /) -',
+                  '/[ - _ /] -',
+                  '< - _ > -',
+                  '<< - _ >> -',
+                  '///( - _ ///) -',
+                  '///[ - _ ///] -',
+                  '///< - _ ///! -',
+                  '///> - _ ///! -',
+                  '//center - / << _ >> -',
+                  '//column - / << _ >> -',
+                  '//context/ Staff/ = - % { _ } -',
+                  '//context/ Voice/ = - % { _ } -',
+                  '//markup - { _ } -',
+                  '//notes - { _ } -',
+                  '//relative - % { _ } -',
+                  '//score - { //n /? //simultaneous { //n _ //n } /! //n //paper {  } //n /? //midi {  } //n /! } //n -',
+                  '//simultaneous - { _ } -',
+                  '//sustainDown - _ //sustainUp -',
+                  '//times - % { _ } -',
+                  '//transpose - % { _ } -',
+                  '']
+    f.write ('\n'.join ([line.replace ('/', '\\') for line in elisp_menu]))
+
+if out_vim:
+    f = open (os.path.join (outdir, 'lilypond-words.vim'), 'w')
+    f.write ('syn match lilyKeyword \"[-_^]\\?\\\\\\(')
+    f.write (''.join ([w + '\\|' for w in keywords]))
+    f.write ('n\\)\\(\\A\\|\\n\\)\"me=e-1\n')
+
+    f.write ('syn match lilyReservedWord \"\\(\\A\\|\\n\\)\\(')
+    f.write (''.join ([w + '\\|' for w in reserved_words]))
+    f.write ('Score\\)\\(\\A\\|\\n\\)\"ms=s+1,me=e-1\n')
+
+    f.write ('syn match lilyNote \"\\<\\(\\(\\(')
+    f.write (''.join ([w + '\\|' for w in note_names]))
+    f.write ('a\\)\\([,\']\\)\\{,4}\\([?!]\\)\\?\\)\\|s\\|r\\)\\(\\(128\\|64\\|32\\|16\\|8\\|4\\|2\\|1\\|\\\\breve\\|\\\\longa\\|\\\\maxima\\)[.]\\{,8}\\)\\?\\(\\A\\|\\n\\)\"me=e-1\n')
diff --git a/scripts/build/lys-to-tely.py b/scripts/build/lys-to-tely.py
new file mode 100644 (file)
index 0000000..c9d698f
--- /dev/null
@@ -0,0 +1,125 @@
+#!@PYTHON@
+
+
+'''
+TODO:
+
+ * Add @nodes, split at sections?
+
+'''
+
+
+import sys
+import os
+import getopt
+import re
+
+program_name = 'lys-to-tely'
+
+include_snippets = '@lysnippets'
+fragment_options = 'printfilename,texidoc'
+help_text = r"""Usage: %(program_name)s [OPTIONS]... LY-FILE...
+Construct tely doc from LY-FILEs.
+
+Options:
+ -h, --help                     print this help
+ -f, --fragment-options=OPTIONS use OPTIONS as lilypond-book fragment
+   options
+ -o, --output=NAME              write tely doc to NAME
+ -t, --title=TITLE              set tely doc title TITLE
+     --template=TEMPLATE        use TEMPLATE as Texinfo template file,
+   instead of standard template; TEMPLATE should contain a command
+   '%(include_snippets)s' to tell where to insert LY-FILEs.  When this
+   option is used, NAME and TITLE are ignored.
+"""
+
+def help (text):
+    sys.stdout.write ( text)
+    sys.exit (0)
+
+(options, files) = getopt.getopt (sys.argv[1:], 'f:hn:t:',
+                     ['fragment-options=', 'help', 'name=', 'title=', 'template='])
+
+name = "ly-doc"
+title = "Ly Doc"
+template = '''\input texinfo
+@setfilename %%(name)s.info
+@settitle %%(title)s
+
+@documentencoding utf-8
+@iftex
+@afourpaper
+@end iftex
+
+@finalout @c we do not want black boxes.
+
+@c fool ls-latex
+@ignore
+@author Han-Wen Nienhuys and Jan Nieuwenhuizen
+@title %%(title)s
+@end ignore
+
+@node Top, , , (dir)
+@top %%(title)s
+
+%s
+
+@bye
+''' % include_snippets
+
+for opt in options:
+    o = opt[0]
+    a = opt[1]
+    if o == '-h' or o == '--help':
+        # We can't use vars () inside a function, as that only contains all 
+        # local variables and none of the global variables! Thus we have to 
+        # generate the help text here and pass it to the function...
+        help (help_text % vars ())
+    elif o == '-n' or o == '--name':
+        name = a
+    elif o == '-t' or o == '--title':
+        title = a
+    elif o == '-f' or o == '--fragment-options':
+        fragment_options = a
+    elif o == '--template':
+        template = open (a, 'r').read ()
+    else:
+        raise Exception ('unknown option: ' + o)
+
+texi_file_re = re.compile ('.*\.i?te(ly|xi)$')
+
+def name2line (n):
+    if texi_file_re.match (n):
+        # We have a texi include file, simply include it:
+        s = r"@include %s" % os.path.basename (n)
+    else:
+        # Assume it's a lilypond file -> create image etc.
+        s = r"""
+@ifhtml
+@html
+<a name="%s"></a>
+@end html
+@end ifhtml
+
+@lilypondfile[%s]{%s}
+""" % (os.path.basename (n), fragment_options, n)
+    return s
+
+if files:
+    dir = os.path.dirname (name) or "."
+# don't strip .tely extension, input/lsr uses .itely
+    name = os.path.basename (name)
+    template = template % vars ()
+
+    s = "\n".join (map (name2line, files))
+    s = template.replace (include_snippets, s, 1)
+    f = "%s/%s" % (dir, name)
+    sys.stderr.write ("%s: writing %s..." % (program_name, f))
+    h = open (f, "w")
+    h.write (s)
+    h.close ()
+    sys.stderr.write ('\n')
+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")
diff --git a/scripts/build/mass-link.py b/scripts/build/mass-link.py
new file mode 100644 (file)
index 0000000..17412e5
--- /dev/null
@@ -0,0 +1,67 @@
+#!@PYTHON@
+# mass-link.py
+
+# USAGE:  mass-link.py  [--prepend-suffix SUFFIX]   symbolic | hard   SOURCEDIR DESTDIR FILES
+#
+# 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.
+
+import sys
+import os
+import glob
+import getopt
+
+print "mass-link.py"
+
+optlist, args = getopt.getopt (sys.argv[1:], '', ['prepend-suffix='])
+link_type, source_dir, dest_dir = args[0:3]
+files = args[3:]
+
+source_dir = os.path.normpath (source_dir)
+dest_dir = os.path.normpath (dest_dir)
+
+prepended_suffix = ''
+for x in optlist:
+    if x[0] == '--prepend-suffix':
+        prepended_suffix = x[1]
+
+if prepended_suffix:
+    def insert_suffix (p):
+        l = p.split ('.')
+        if len (l) >= 2:
+            l[-2] += prepended_suffix
+            return '.'.join (l)
+        return p + prepended_suffix
+else:
+    insert_suffix = lambda p: p
+
+if link_type == 'symbolic':
+    link = os.symlink
+elif link_type == 'hard':
+    link = os.link
+else:
+    sys.stderr.write(sys.argv[0] + ': ' + link_type + ": wrong argument, expected 'symbolic' or 'hard'\n")
+    sys.exit (1)
+
+sourcefiles = []
+for pattern in files:
+    sourcefiles += (glob.glob (os.path.join (source_dir, pattern)))
+
+def relative_path (f):
+    if source_dir == '.':
+        return f
+    return f[len (source_dir) + 1:]
+
+destfiles = [os.path.join (dest_dir, insert_suffix (relative_path (f))) for f in sourcefiles]
+
+destdirs = set ([os.path.dirname (dest) for dest in destfiles])
+[os.makedirs (d) for d in destdirs if not os.path.exists (d)]
+
+def force_link (src,dest):
+    if os.path.exists (dest):
+        os.system ('rm -f ' + dest)
+    link (src, dest)
+
+map (force_link, sourcefiles, destfiles)
diff --git a/scripts/build/mf-to-table.py b/scripts/build/mf-to-table.py
new file mode 100644 (file)
index 0000000..2fe43d2
--- /dev/null
@@ -0,0 +1,244 @@
+#!@PYTHON@
+
+# mf-to-table.py -- convert spacing info in MF logs . 
+#
+# source file of the GNU LilyPond music typesetter
+#
+# (c) 1997--2009 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+
+import os
+import sys
+import getopt
+import re
+import time
+
+def read_log_file (fn):
+    str = open (fn).read ()
+    str = re.sub ('\n', '', str)
+    str = re.sub ('[\t ]+', ' ', str)
+
+    deps = []
+    autolines = []
+    def include_func (match, d = deps):
+        d.append (match.group (1))
+        return ''
+
+    def auto_func (match, a = autolines):
+        a.append (match.group (1))
+        return ''
+
+    str = re.sub ('\\(([/a-z.A-Z_0-9-]+\\.mf)', include_func, str)
+    str = re.sub ('@{(.*?)@}', auto_func, str)
+
+    return (autolines, deps)
+
+
+class Char_metric:
+    def __init__ (self):
+        pass
+
+font_family = 'feta'
+
+def parse_logfile (fn):
+    autolines, deps = read_log_file (fn)
+    charmetrics = []
+    
+    global_info = {
+        'filename' : os.path.splitext (os.path.basename (fn))[0]
+        }
+    group = ''
+
+    for l in autolines:
+        tags = l.split ('@:')
+        if tags[0] == 'group':
+            group = tags[1]
+        elif tags[0] == 'puorg':
+            group = ''
+        elif tags[0] == 'char':
+            name = tags[9]
+
+            if group:
+                name = group + '.' + name
+            m = {
+                'description': tags[1],
+                'name': name,
+                'code': int (tags[2]),
+                'breapth': float (tags[3]),
+                'width': float (tags[4]),
+                'depth': float (tags[5]),
+                'height': float (tags[6]),
+                'wx': float (tags[7]),
+                'wy': float (tags[8]),
+            }
+            charmetrics.append (m)
+        elif tags[0] == 'font':
+            global font_family
+            font_family = (tags[3])
+            # To omit 'GNU' (foundry) from font name proper:
+            # name = tags[2:]
+            #urg
+            if 0: # testing
+                tags.append ('Regular')
+
+            encoding = re.sub (' ','-', tags[5])
+            tags = tags[:-1]
+            name = tags[1:]
+            global_info['design_size'] = float (tags[4])
+            global_info['FontName'] = '-'.join (name)
+            global_info['FullName'] = ' '.join (name)
+            global_info['FamilyName'] = '-'.join (name[1:-1])
+            if 1:
+                global_info['Weight'] = tags[4]
+            else: # testing
+                global_info['Weight'] = tags[-1]
+
+            global_info['FontBBox'] = '0 0 1000 1000'
+            global_info['Ascender'] = '0'
+            global_info['Descender'] = '0'
+            global_info['EncodingScheme'] = encoding
+
+        elif tags[0] == 'parameter':
+            global_info[tags[1]] = tags[2];
+            
+    return (global_info, charmetrics, deps)
+
+
+
+def character_lisp_table (global_info, charmetrics):
+
+    def conv_char_metric (charmetric):
+        f = 1.0
+        s = """(%s .
+((bbox . (%f %f %f %f))
+(subfont . "%s")
+(subfont-index . %d)
+(attachment . (%f . %f))))
+""" %(charmetric['name'],
+   -charmetric['breapth'] * f,
+   -charmetric['depth'] * f,
+   charmetric['width'] * f,
+   charmetric['height'] * f,
+   global_info['filename'],
+   charmetric['code'],
+   charmetric['wx'],
+   charmetric['wy'])
+
+        return s
+
+    s = ''
+    for c in charmetrics:
+        s += conv_char_metric (c)
+
+    return s
+
+
+def global_lisp_table (global_info):
+    str = ''
+
+    keys = ['staffsize', 'stafflinethickness', 'staff_space',
+        'linethickness', 'black_notehead_width', 'ledgerlinethickness',
+        'design_size', 
+        'blot_diameter'
+        ]
+    for k in keys:
+        if global_info.has_key (k):
+            str = str + "(%s . %s)\n" % (k,global_info[k])
+
+    return str
+
+    
+def ps_encoding (name, global_info, charmetrics):
+    encs = ['.notdef'] * 256
+    for m in charmetrics:
+        encs[m['code']] = m['name']
+
+
+    s =  ('/%s [\n' % name)
+    for m in range (0, 256):
+        s += ('  /%s %% %d\n' % (encs[m], m))
+    s +=  ('] def\n')
+    return s
+
+def get_deps (deps, targets):
+    s = ''
+    for t in targets:
+        t = re.sub ( '^\\./', '', t)
+        s += ('%s '% t)
+    s += (": ")
+    for d in deps:
+        s += ('%s ' % d)
+    s += ('\n')
+    return s
+
+def help ():
+    sys.stdout.write(r"""Usage: mf-to-table [OPTIONS] LOGFILEs
+
+Generate feta metrics table from preparated feta log.
+
+Options:
+ -d, --dep=FILE         print dependency info to FILE
+ -h, --help             print this help
+ -l, --ly=FILE          name output table
+ -o, --outdir=DIR       prefix for dependency info
+ -p, --package=DIR      specify package
+
+ """)
+    sys.exit (0)
+
+
+(options, files) = \
+ getopt.getopt (sys.argv[1:],
+        'a:d:ho:p:t:',
+        ['enc=',  'outdir=', 'dep=', 'lisp=',
+         'global-lisp=',
+         'debug', 'help', 'package='])
+
+global_lisp_nm = ''
+char_lisp_nm = ''
+enc_nm = ''
+depfile_nm = ''
+lyfile_nm = ''
+outdir_prefix = '.'
+
+for opt in options:
+    o = opt[0]
+    a = opt[1]
+    if o == '--dep' or o == '-d':
+        depfile_nm = a
+    elif o == '--outdir' or o == '-o':
+        outdir_prefix = a
+    elif o == '--lisp': 
+        char_lisp_nm = a
+    elif o == '--global-lisp': 
+        global_lisp_nm = a
+    elif o == '--enc':
+        enc_nm = a
+    elif o== '--help' or o == '-h':
+        help()
+    elif o == '--debug':
+        debug_b = 1
+    else:
+        print o
+        raise getopt.error
+
+base = os.path.splitext (lyfile_nm)[0]
+
+for filenm in files:
+    (g, m, deps) = parse_logfile (filenm)
+
+    enc_name = 'FetaEncoding'
+    if re.search ('parmesan', filenm):
+        enc_name = 'ParmesanEncoding'
+    elif re.search ('feta-brace', filenm):
+        enc_name = 'FetaBraceEncoding'
+    elif re.search ('feta-alphabet', filenm):
+        enc_name = 'FetaAlphabetEncoding';
+
+    open (enc_nm, 'w').write (ps_encoding (enc_name, g, m))
+    open (char_lisp_nm, 'w').write (character_lisp_table (g, m))
+    open (global_lisp_nm, 'w').write (global_lisp_table (g))
+    if depfile_nm:
+        open (depfile_nm, 'wb').write (get_deps (deps,
+                                                 [base + '.log', base + '.dvi', base + '.pfa',
+                                                  depfile_nm,
+                                                  base + '.pfb']))
diff --git a/scripts/build/mf2pt1.pl b/scripts/build/mf2pt1.pl
new file mode 100644 (file)
index 0000000..95df0f8
--- /dev/null
@@ -0,0 +1,1090 @@
+#!@PERL@
+
+##################################################
+# Convert stylized Metafont to PostScript Type 1 #
+# By Scott Pakin <scott+mf@pakin.org>            #
+##################################################
+
+########################################################################
+# mf2pt1                                                               #
+# Copyright (C) 2008 Scott Pakin                                       #
+#                                                                      #
+# This program may be distributed and/or modified under the conditions #
+# of the LaTeX Project Public License, either version 1.3c of this     #
+# license or (at your option) any later version.                       #
+#                                                                      #
+# The latest version of this license is in:                            #
+#                                                                      #
+#    http://www.latex-project.org/lppl.txt                             #
+#                                                                      #
+# and version 1.3c or later is part of all distributions of LaTeX      #
+# version 2006/05/20 or later.                                         #
+########################################################################
+
+our $VERSION = "2.4.4";   # mf2pt1 version number
+require 5.6.1;            # I haven't tested mf2pt1 with older Perl versions
+
+use File::Basename;
+use File::Spec;
+use Getopt::Long;
+use Pod::Usage;
+use Math::Trig;
+use warnings;
+use strict;
+
+# Define some common encoding vectors.
+my @standardencoding =
+    ((map {"_a$_"} (0..31)),
+     qw (space exclam quotedbl numbersign dollar percent ampersand
+         quoteright parenleft parenright asterisk plus comma hyphen
+         period slash zero one two three four five six seven eight
+         nine colon semicolon less equal greater question at A B C D E
+         F G H I J K L M N O P Q R S T U V W X Y Z bracketleft
+         backslash bracketright asciicircum underscore quoteleft a b c
+         d e f g h i j k l m n o p q r s t u v w x y z braceleft bar
+         braceright asciitilde),
+     (map {"_a$_"} (127..160)),
+     qw (exclamdown cent sterling fraction yen florin section currency
+         quotesingle quotedblleft guillemotleft guilsinglleft
+         guilsinglright fi fl _a176 endash dagger daggerdbl
+         periodcentered _a181 paragraph bullet quotesinglbase
+         quotedblbase quotedblright guillemotright ellipsis
+         perthousand _a190 questiondown _a192 grave acute circumflex
+         tilde macron breve dotaccent dieresis _a201 ring cedilla
+         _a204 hungarumlaut ogonek caron emdash),
+     (map {"_a$_"} (209..224)),
+     qw (AE _a226 ordfeminine _a228 _a229 _a230 _a231 Lslash Oslash OE
+         ordmasculine _a236 _a237 _a238 _a239 _a240 ae _a242 _a243
+         _a244 dotlessi _a246 _a247 lslash oslash oe germandbls _a252
+         _a253 _a254 _a255));
+my @isolatin1encoding =
+    ((map {"_a$_"} (0..31)),
+     qw (space exclam quotedbl numbersign dollar percent ampersand
+         quoteright parenleft parenright asterisk plus comma minus
+         period slash zero one two three four five six seven eight
+         nine colon semicolon less equal greater question at A B C D E
+         F G H I J K L M N O P Q R S T U V W X Y Z bracketleft
+         backslash bracketright asciicircum underscore quoteleft a b c
+         d e f g h i j k l m n o p q r s t u v w x y z braceleft bar
+         braceright asciitilde),
+     (map {"_a$_"} (128..143)),
+     qw (dotlessi grave acute circumflex tilde macron breve dotaccent
+         dieresis _a153 ring cedilla _a156 hungarumlaut ogonek
+         caron space exclamdown cent sterling currency yen brokenbar
+         section dieresis copyright ordfeminine guillemotleft
+         logicalnot hyphen registered macron degree plusminus
+         twosuperior threesuperior acute mu paragraph periodcentered
+         cedilla onesuperior ordmasculine guillemotright onequarter
+         onehalf threequarters questiondown Agrave Aacute Acircumflex
+         Atilde Adieresis Aring AE Ccedilla Egrave Eacute Ecircumflex
+         Edieresis Igrave Iacute Icircumflex Idieresis Eth Ntilde
+         Ograve Oacute Ocircumflex Otilde Odieresis multiply Oslash
+         Ugrave Uacute Ucircumflex Udieresis Yacute Thorn germandbls
+         agrave aacute acircumflex atilde adieresis aring ae ccedilla
+         egrave eacute ecircumflex edieresis igrave iacute icircumflex
+         idieresis eth ntilde ograve oacute ocircumflex otilde
+         odieresis divide oslash ugrave uacute ucircumflex udieresis
+         yacute thorn ydieresis));
+my @ot1encoding =
+    qw (Gamma Delta Theta Lambda Xi Pi Sigma Upsilon Phi
+        Psi Omega ff fi fl ffi ffl dotlessi dotlessj grave acute caron
+        breve macron ring cedilla germandbls ae oe oslash AE OE Oslash
+        suppress exclam quotedblright numbersign dollar percent
+        ampersand quoteright parenleft parenright asterisk plus comma
+        hyphen period slash zero one two three four five six seven
+        eight nine colon semicolon exclamdown equal questiondown
+        question at A B C D E F G H I J K L M N O P Q R S T U V W X Y
+        Z bracketleft quotedblleft bracketright circumflex dotaccent
+        quoteleft a b c d e f g h i j k l m n o p q r s t u v w x y z
+        endash emdash hungarumlaut tilde dieresis);
+my @t1encoding =
+    qw (grave acute circumflex tilde dieresis hungarumlaut ring caron
+        breve macron dotaccent cedilla ogonek quotesinglbase
+        guilsinglleft guilsinglright quotedblleft quotedblright
+        quotedblbase guillemotleft guillemotright endash emdash cwm
+        perthousand dotlessi dotlessj ff fi fl ffi ffl space exclam
+        quotedbl numbersign dollar percent ampersand quoteright
+        parenleft parenright asterisk plus comma hyphen period slash
+        zero one two three four five six seven eight nine colon
+        semicolon less equal greater question at A B C D E F G H I J K L
+        M N O P Q R S T U V W X Y Z bracketleft backslash bracketright
+        asciicircum underscore quoteleft a b c d e f g h i j k l m n o p
+        q r s t u v w x y z braceleft bar braceright asciitilde
+        sfthyphen Abreve Aogonek Cacute Ccaron Dcaron Ecaron Eogonek
+        Gbreve Lacute Lcaron Lslash Nacute Ncaron Eng Ohungarumlaut
+        Racute Rcaron Sacute Scaron Scedilla Tcaron Tcedilla
+        Uhungarumlaut Uring Ydieresis Zacute Zcaron Zdotaccent IJ
+        Idotaccent dcroat section abreve aogonek cacute ccaron dcaron
+        ecaron eogonek gbreve lacute lcaron lslash nacute ncaron eng
+        ohungarumlaut racute rcaron sacute scaron scedilla tcaron
+        tcedilla uhungarumlaut uring ydieresis zacute zcaron zdotaccent
+        ij exclamdown questiondown sterling Agrave Aacute Acircumflex
+        Atilde Adieresis Aring AE Ccedilla Egrave Eacute Ecircumflex
+        Edieresis Igrave Iacute Icircumflex Idieresis Eth Ntilde Ograve
+        Oacute Ocircumflex Otilde Odieresis OE Oslash Ugrave Uacute
+        Ucircumflex Udieresis Yacute Thorn SS agrave aacute acircumflex
+        atilde adieresis aring ae ccedilla egrave eacute ecircumflex
+        edieresis igrave iacute icircumflex idieresis eth ntilde ograve
+        oacute ocircumflex otilde odieresis oe oslash ugrave uacute
+        ucircumflex udieresis yacute thorn germandbls);
+
+# Define font parameters that the user can override.
+my $fontversion;
+my $creationdate;
+my $comment;
+my $familyname;
+my $weight;
+my $fullname;
+my $fixedpitch;
+my $italicangle;
+my $underlinepos;
+my $underlinethick;
+my $fontname;
+my $uniqueID;
+my $designsize;
+my ($mffile, $pt1file, $pfbfile, $ffscript);
+my $encoding;
+my $rounding;
+my $bpppix;
+
+# Define all of our other global variables.
+my $progname = basename $0, ".pl";
+my $mag;
+my @fontbbox;
+my @charbbox;
+my @charwd;
+my @glyphname;
+my @charfiles;
+my $filebase;
+my $filedir;
+my $filenoext;
+my $versionmsg = "mf2pt1 version $VERSION
+
+Copyright (C) 2008 Scott Pakin
+
+This program may be distributed and/or modified under the conditions
+of the LaTeX Project Public License, either version 1.3c of this
+license or (at your option) any later version.
+
+The latest version of this license is in:
+
+   http://www.latex-project.org/lppl.txt
+
+and version 1.3c or later is part of all distributions of LaTeX
+version 2006/05/20 or later.
+";
+
+
+######################################################################
+
+# The routines to compute the fractional approximation of a real number
+# are heavily based on code posted by Ben Tilly
+# <http://www.perlmonks.org/?node_id=26179> on Nov 16th, 2000, to the
+# PerlMonks list.  See <http://www.perlmonks.org/index.pl?node_id=41961>.
+
+
+# Takes numerator/denominator pairs.
+# Returns a PS fraction string representation (with a trailing space).
+sub frac_string (@)
+{
+    my $res = "";
+
+    while (@_) {
+        my $n = shift;
+        my $d = shift;
+        $res .= $n . " ";
+        $res .= $d . " div " if $d > 1;
+    }
+
+    return $res;
+}
+
+
+# Takes a number.
+# Returns a numerator and denominator with the smallest denominator
+# so that the difference of the resulting fraction to the number is
+# smaller or equal to $rounding.
+sub frac_approx ($)
+{
+    my $num = shift;
+    my $f = ret_frac_iter ($num);
+
+    while (1) {
+        my ($n, $m) = $f->();
+        my $approx = $n / $m;
+        my $delta = abs ($num - $approx);
+        return ($n, $m) if ($delta <= $rounding);
+    }
+}
+
+
+# Takes a number, returns the best integer approximation and (in list
+# context) the error.
+sub best_int ($)
+{
+    my $x = shift;
+    my $approx = sprintf '%.0f', $x;
+    if (wantarray) {
+        return ($approx, $x - $approx);
+    }
+    else {
+        return $approx;
+    }
+}
+
+
+# Takes a numerator and denominator, in scalar context returns
+# the best fraction describing them, in list the numerator and
+# denominator.
+sub frac_standard ($$)
+{
+    my $n = best_int(shift);
+    my $m = best_int(shift);
+    my $k = gcd($n, $m);
+    $n /= $k;
+    $m /= $k;
+    if ($m < 0) {
+        $n *= -1;
+        $m *= -1;
+    }
+    if (wantarray) {
+        return ($n, $m);
+    }
+    else {
+        return "$n/$m";
+    }
+}
+
+
+# Euclidean algorithm for calculating a GCD.
+# Takes two integers, returns the greatest common divisor.
+sub gcd ($$)
+{
+    my ($n, $m) = @_;
+    while ($m) {
+        my $k = $n % $m;
+        ($n, $m) = ($m, $k);
+    }
+    return $n;
+}
+
+
+# Takes a list of terms in a continued fraction, and converts it
+# into a fraction.
+sub ints_to_frac (@)
+{
+    my ($n, $m) = (0, 1);     # Start with 0
+    while (@_) {
+        my $k = pop;
+        if ($n) {
+            # Want frac for $k + 1/($n/$m)
+            ($n, $m) = frac_standard($k*$n + $m, $n);
+        }
+        else {
+            # Want $k
+            ($n, $m) = frac_standard($k, 1);
+        }
+    }
+    return frac_standard($n, $m);
+}
+
+
+# Takes a number, returns an anon sub which iterates through a set of
+# fractional approximations that converges very quickly to the number.
+sub ret_frac_iter ($)
+{
+    my $x = shift;
+    my $term_iter = ret_next_term_iter($x);
+    my @ints;
+    return sub {
+        push @ints, $term_iter->();
+        return ints_to_frac(@ints);
+    }
+}
+
+
+# Terms of a continued fraction converging on that number.
+sub ret_next_term_iter ($)
+{
+    my $x = shift;
+    return sub {
+        (my $n, $x) = best_int($x);
+        if (0 != $x) {
+            $x = 1/$x;
+        }
+        return $n;
+    }
+}
+
+######################################################################
+
+# Round a number to the nearest integer.
+sub round ($)
+{
+    return int($_[0] + 0.5*($_[0] <=> 0));
+}
+
+
+# Round a number to a given precision.
+sub prec ($)
+{
+  return round ($_[0] / $rounding) * $rounding;
+}
+
+
+# Set a variable's value to the first defined value in the given list.
+# If the variable was not previously defined and no value in the list
+# is defined, do nothing.
+sub assign_default (\$@)
+{
+    my $varptr = shift;        # Pointer to variable to define
+    return if defined $$varptr && $$varptr ne "UNSPECIFIED";
+    foreach my $val (@_) {
+        next if !defined $val;
+        $$varptr = $val;
+        return;
+    }
+}
+
+
+# Print and execute a shell command.  An environment variable with the
+# same name as the command overrides the command name.  Return 1 on
+# success, 0 on failure.  Optionally abort if the command fails, based
+# on the first argument to execute_command.
+sub execute_command ($@)
+{
+    my $abort_on_failure = shift;
+    my @command = @_;
+    $command[0] = $ENV{uc $command[0]} || $command[0];
+    my $prettyargs = join (" ", map {/[\\ ]/ ? "'$_'" : $_} @command);
+    print "Invoking \"$prettyargs\"...\n";
+    my $result = system @command;
+    die "${progname}: \"$prettyargs\" failed ($!)\n" if $result && $abort_on_failure;
+    return !$result;
+}
+
+
+# Output the font header.
+sub output_header ()
+{
+    # Show the initial boilerplate.
+    print OUTFILE <<"ENDHEADER";
+%!FontType1-1.0: $fontname $fontversion
+%%CreationDate: $creationdate
+% Font converted to Type 1 by mf2pt1, written by Scott Pakin.
+11 dict begin
+/FontInfo 11 dict dup begin
+/version ($fontversion) readonly def
+/Notice ($comment) readonly def
+/FullName ($fullname) readonly def
+/FamilyName ($familyname) readonly def
+/Weight ($weight) readonly def
+/ItalicAngle $italicangle def
+/isFixedPitch $fixedpitch def
+/UnderlinePosition $underlinepos def
+/UnderlineThickness $underlinethick def
+end readonly def
+/FontName /$fontname def
+ENDHEADER
+
+    # If we're not using an encoding that PostScript knows about, then
+    # create an encoding vector.
+    if ($encoding==\@standardencoding) {
+        print OUTFILE "/Encoding StandardEncoding def\n";
+    }
+    else {
+        print OUTFILE "/Encoding 256 array\n";
+        print OUTFILE "0 1 255 {1 index exch /.notdef put} for\n";
+        foreach my $charnum (0 .. $#{$encoding}) {
+            if ($encoding->[$charnum] && $encoding->[$charnum]!~/^_a\d+$/) {
+                print OUTFILE "dup $charnum /$encoding->[$charnum] put\n";
+            }
+        }
+        print OUTFILE "readonly def\n";
+    }
+
+    # Show the final boilerplate.
+    print OUTFILE <<"ENDHEADER";
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/UniqueID $uniqueID def
+/FontBBox{@fontbbox}readonly def
+currentdict end
+currentfile eexec
+dup /Private 5 dict dup begin
+/RD{string currentfile exch readstring pop}executeonly def
+/ND{noaccess def}executeonly def
+/NP{noaccess put}executeonly def
+ENDHEADER
+}
+
+
+# Use MetaPost to generate one PostScript file per character.  We
+# calculate the font bounding box from these characters and store them
+# in @fontbbox.  If the input parameter is 1, set other font
+# parameters, too.
+sub get_bboxes ($)
+{
+    execute_command 1, ("mpost", "-mem=mf2pt1", "-progname=mpost",
+                        "\\mode:=localfont; mag:=$mag; bpppix $bpppix; input $mffile");
+    opendir (CURDIR, ".") || die "${progname}: $! ($filedir)\n";
+    @charfiles = sort
+                   { ($a=~ /\.(\d+)$/)[0] <=> ($b=~ /\.(\d+)$/)[0] }
+                   grep /^$filebase.*\.\d+$/, readdir(CURDIR);
+    close CURDIR;
+    @fontbbox = (1000000, 1000000, -1000000, -1000000);
+    foreach my $psfile (@charfiles) {
+        # Read the character number from the output file's extension.
+        $psfile =~ /\.(\d+)$/;
+        my $charnum = $1;
+
+        # Process in turn each line of the current PostScript file.
+        my $havebbox = 0;
+        open (PSFILE, "<$psfile") || die "${progname}: $! ($psfile)\n";
+        while (<PSFILE>) {
+            my @tokens = split " ";
+            if ($tokens[0] eq "%%BoundingBox:") {
+                # Store the MetaPost-produced bounding box, just in case
+                # the given font doesn't use beginchar.
+                @tokens = ("%", "MF2PT1:", "glyph_dimensions", @tokens[1..4]);
+                $havebbox--;
+            }
+            next if $#tokens<1 || $tokens[1] ne "MF2PT1:";
+
+            # Process a "special" inserted into the generated PostScript.
+          MF2PT1_CMD:
+            {
+                # glyph_dimensions llx lly urx ury -- specified glyph dimensions
+                $tokens[2] eq "glyph_dimensions" && do {
+                    my @bbox = @tokens[3..6];
+                    $fontbbox[0]=$bbox[0] if $bbox[0]<$fontbbox[0];
+                    $fontbbox[1]=$bbox[1] if $bbox[1]<$fontbbox[1];
+                    $fontbbox[2]=$bbox[2] if $bbox[2]>$fontbbox[2];
+                    $fontbbox[3]=$bbox[3] if $bbox[3]>$fontbbox[3];
+                    $charbbox[$charnum] = \@bbox;
+                    $havebbox++;
+                    last MF2PT1_CMD;
+                };
+
+                # If all we want is the bounding box, exit the loop now.
+                last MF2PT1_CMD if !$_[0];
+
+                # glyph_name name -- glyph name
+                $tokens[2] eq "glyph_name" && do {
+                    $glyphname[$charnum] = $tokens[3];
+                    last MF2PT1_CMD;
+                };
+
+                # charwd wd -- character width as in TFM
+                $tokens[2] eq "charwd" && do {
+                    $charwd[$charnum] = $tokens[3];
+                    last MF2PT1_CMD;
+                };
+
+                # font_identifier name -- full font name
+                $tokens[2] eq "font_identifier" && do {
+                    $fullname = $tokens[3];
+                    last MF2PT1_CMD;
+                };
+
+                # font_size number -- font design size (pt, not bp)
+                $tokens[2] eq "font_size" && $tokens[3] && do {
+                    $designsize = $tokens[3] * 72 / 72.27;
+                    last MF2PT1_CMD;
+                };
+
+                # font_slant number -- italic amount
+                $tokens[2] eq "font_slant" && do {
+                    $italicangle = 0 + rad2deg (atan(-$tokens[3]));
+                    last MF2PT1_CMD;
+                };
+
+                # font_coding_scheme string -- font encoding
+                $tokens[2] eq "font_coding_scheme" && do {
+                    $encoding = $tokens[3];
+                    last MF2PT1_CMD;
+                };
+
+                # font_version string -- font version number (xxx.yyy)
+                $tokens[2] eq "font_version" && do {
+                    $fontversion = $tokens[3];
+                    last MF2PT1_CMD;
+                };
+
+                # font_comment string -- font comment notice
+                $tokens[2] eq "font_comment" && do {
+                    $comment = join (" ", @tokens[3..$#tokens]);
+                    last MF2PT1_CMD;
+                };
+
+                # font_family string -- font family name
+                $tokens[2] eq "font_family" && do {
+                    $familyname = $tokens[3];
+                    last MF2PT1_CMD;
+                };
+
+                # font_weight string -- font weight (e.g., "Book" or "Heavy")
+                $tokens[2] eq "font_weight" && do {
+                    $weight = $tokens[3];
+                    last MF2PT1_CMD;
+                };
+
+                # font_fixed_pitch number -- fixed width font (0=false, 1=true)
+                $tokens[2] eq "font_fixed_pitch" && do {
+                    $fixedpitch = $tokens[3];
+                    last MF2PT1_CMD;
+                };
+
+                # font_underline_position number -- vertical underline position
+                $tokens[2] eq "font_underline_position" && do {
+                    # We store $underlinepos in points and later
+                    # scale it by 1000/$designsize.
+                    $underlinepos = $tokens[3];
+                    last MF2PT1_CMD;
+                };
+
+                # font_underline_thickness number -- thickness of underline
+                $tokens[2] eq "font_underline_thickness" && do {
+                    # We store $underlinethick in points and later
+                    # scale it by 1000/$designsize.
+                    $underlinethick = $tokens[3];
+                    last MF2PT1_CMD;
+                };
+
+                # font_name string -- font name
+                $tokens[2] eq "font_name" && do {
+                    $fontname = $tokens[3];
+                    last MF2PT1_CMD;
+                };
+
+                # font_unique_id number (as string) -- globally unique font ID
+                $tokens[2] eq "font_unique_id" && do {
+                    $uniqueID = 0+$tokens[3];
+                    last MF2PT1_CMD;
+                };
+            }
+        }
+        close PSFILE;
+        if (!$havebbox) {
+            warn "${progname}: No beginchar in character $charnum; glyph dimensions are probably incorrect\n";
+        }
+    }
+}
+
+
+# Convert ordinary, MetaPost-produced PostScript files into Type 1
+# font programs.
+sub output_font_programs ()
+{
+    # Iterate over all the characters.  We convert each one, line by
+    # line and token by token.
+    print "Converting PostScript graphics to Type 1 font programs...\n";
+    foreach my $psfile (@charfiles) {
+        # Initialize the font program.
+        $psfile =~ /\.(\d+)$/;
+        my $charnum = $1;
+        my $gname = $glyphname[$charnum] || $encoding->[$charnum];
+        my @fontprog;
+        push @fontprog, ("/$gname {",
+                         frac_string (frac_approx ($charbbox[$charnum]->[0]),
+                                      frac_approx ($charwd[$charnum] * $mag))
+                         . "hsbw");
+        my ($cpx, $cpy) =
+            ($charbbox[$charnum]->[0], 0);  # Current point (PostScript)
+
+        # Iterate over every line in the current file.
+        open (PSFILE, "<$psfile") || die "${progname}: $! ($psfile)\n";
+        while (my $oneline=<PSFILE>) {
+            next if $oneline=~/^\%/;
+            next if $oneline=~/set/;   # Fortunately, "set" never occurs on "good" lines.
+            my @arglist;   # Arguments to current PostScript function
+
+            # Iterate over every token in the current line.
+          TOKENLOOP:
+            foreach my $token (split " ", $oneline) {
+                # Number: Round and push on the argument list.
+                $token =~ /^[-.\d]+$/ && do {
+                    push @arglist, prec ($&);
+                    next TOKENLOOP;
+                };
+
+                # curveto: Convert to vhcurveto, hvcurveto, or rrcurveto.
+                $token eq "curveto" && do {
+                    my ($dx1, $dy1) = ($arglist[0] - $cpx,
+                                       $arglist[1] - $cpy);
+                    my ($dx1n, $dx1d) = frac_approx ($dx1);
+                    my ($dy1n, $dy1d) = frac_approx ($dy1);
+                    $cpx += $dx1n / $dx1d;
+                    $cpy += $dy1n / $dy1d;
+
+                    my ($dx2, $dy2) = ($arglist[2] - $cpx,
+                                       $arglist[3] - $cpy);
+                    my ($dx2n, $dx2d) = frac_approx ($dx2);
+                    my ($dy2n, $dy2d) = frac_approx ($dy2);
+                    $cpx += $dx2n / $dx2d;
+                    $cpy += $dy2n / $dy2d;
+
+                    my ($dx3, $dy3) = ($arglist[4] - $cpx,
+                                       $arglist[5] - $cpy);
+                    my ($dx3n, $dx3d) = frac_approx ($dx3);
+                    my ($dy3n, $dy3d) = frac_approx ($dy3);
+                    $cpx += $dx3n / $dx3d;
+                    $cpy += $dy3n / $dy3d;
+
+                    if (!$dx1n && !$dy3n) {
+                        push @fontprog, frac_string ($dy1n, $dy1d,
+                                                     $dx2n, $dx2d,
+                                                     $dy2n, $dy2d,
+                                                     $dx3n, $dx3d)
+                                        . "vhcurveto";
+                    }
+                    elsif (!$dy1n && !$dx3n) {
+                        push @fontprog, frac_string ($dx1n, $dx1d,
+                                                     $dx2n, $dx2d,
+                                                     $dy2n, $dy2d,
+                                                     $dy3n, $dy3d)
+                                        . "hvcurveto";
+                    }
+                    else {
+                        push @fontprog, frac_string ($dx1n, $dx1d,
+                                                     $dy1n, $dy1d,
+                                                     $dx2n, $dx2d,
+                                                     $dy2n, $dy2d,
+                                                     $dx3n, $dx3d,
+                                                     $dy3n, $dy3d)
+                                        . "rrcurveto";
+                    }
+                    next TOKENLOOP;
+                };
+
+                # lineto: Convert to vlineto, hlineto, or rlineto.
+                $token eq "lineto" && do {
+                    my ($dx, $dy) = ($arglist[0] - $cpx,
+                                     $arglist[1] - $cpy);
+                    my ($dxn, $dxd) = frac_approx ($dx);
+                    my ($dyn, $dyd) = frac_approx ($dy);
+                    $cpx += $dxn / $dxd;
+                    $cpy += $dyn / $dyd;
+
+                    if (!$dxn) {
+                        push @fontprog, frac_string ($dyn, $dyd)
+                                        . "vlineto" if $dyn;
+                    }
+                    elsif (!$dyn) {
+                        push @fontprog, frac_string ($dxn, $dxd)
+                                        . "hlineto";
+                    }
+                    else {
+                        push @fontprog, frac_string ($dxn, $dxd, $dyn, $dyd)
+                                        . "rlineto";
+                    }
+                    next TOKENLOOP;
+                };
+
+                # moveto: Convert to vmoveto, hmoveto, or rmoveto.
+                $token eq "moveto" && do {
+                    my ($dx, $dy) = ($arglist[0] - $cpx,
+                                     $arglist[1] - $cpy);
+                    my ($dxn, $dxd) = frac_approx ($dx);
+                    my ($dyn, $dyd) = frac_approx ($dy);
+                    $cpx += $dxn / $dxd;
+                    $cpy += $dyn / $dyd;
+
+                    if (!$dxn) {
+                        push @fontprog, frac_string ($dyn, $dyd)
+                                        . "vmoveto";
+                    }
+                    elsif (!$dyn) {
+                        push @fontprog, frac_string ($dxn, $dxd)
+                                        . "hmoveto";
+                    }
+                    else {
+                        push @fontprog, frac_string ($dxn, $dxd, $dyn, $dyd)
+                                        . "rmoveto";
+                    }
+                    next TOKENLOOP;
+                };
+
+                # closepath: Output as is.
+                $token eq "closepath" && do {
+                    push @fontprog, $token;
+                    next TOKENLOOP;
+                };
+            }
+        }
+        close PSFILE;
+        push @fontprog, ("endchar",
+                         "} ND");
+        print OUTFILE join ("\n\t", @fontprog), "\n";
+    }
+}
+
+
+# Output the final set of code for the Type 1 font.
+sub output_trailer ()
+{
+    print OUTFILE <<"ENDTRAILER";
+/.notdef {
+        0 @{[$fontbbox[2]-$fontbbox[0]]} hsbw
+        endchar
+        } ND
+end
+end
+readonly put
+noaccess put
+dup/FontName get exch definefont pop
+mark currentfile closefile
+cleartomark
+ENDTRAILER
+}
+
+######################################################################
+
+# Parse the command line.  Asterisks in the following represents
+# commands also defined by Plain Metafont.
+my %opthash = ();
+GetOptions (\%opthash,
+            "fontversion=s",       # font_version
+            "comment=s",           # font_comment
+            "family=s",            # font_family
+            "weight=s",            # font_weight
+            "fullname=s",          # font_identifier (*)
+            "fixedpitch!",         # font_fixed_pitch
+            "italicangle=f",       # font_slant (*)
+            "underpos=f",          # font_underline_position
+            "underthick=f",        # font_underline_thickness
+            "name=s",              # font_name
+            "uniqueid=i",          # font_unique_id
+            "designsize=f",        # font_size (*)
+            "encoding=s",          # font_coding_scheme (*)
+            "rounding=f",
+            "bpppix=f",
+            "ffscript=s",
+            "h|help",
+            "V|version") || pod2usage(2);
+if (defined $opthash{"h"}) {
+    pod2usage(-verbose => 1,
+              -output  => \*STDOUT,    # Bug workaround for Pod::Usage
+              -exitval => "NOEXIT");
+    print "Please e-mail bug reports to scott+mf\@pakin.org.\n";
+    exit 1;
+}
+do {print $versionmsg; exit 1} if defined $opthash{"V"};
+pod2usage(2) if $#ARGV != 0;
+
+# Extract the filename from the command line.
+$mffile = $ARGV[0];
+my @fileparts = fileparse $mffile, ".mf";
+$filebase = $fileparts[0];
+$filedir = $fileparts[1];
+$filenoext = File::Spec->catfile ($filedir, $filebase);
+$pt1file = $filebase . ".pt1";
+$pfbfile = $filebase . ".pfb";
+
+assign_default $bpppix, $opthash{bpppix}, 0.02;
+
+# Make our first pass through the input, to set values for various options.
+$mag = 100;           # Get a more precise bounding box.
+get_bboxes(1);        # This might set $designsize.
+
+# Sanity-check the specified precision.
+assign_default $rounding, $opthash{rounding}, 1;
+if ($rounding<=0.0 || $rounding>1.0) {
+    die sprintf "%s: Invalid rounding amount \"%g\"; value must be a positive number no greater than 1.0\n", $progname, $rounding;
+}
+
+# Ensure that every user-definable parameter is assigned a value.
+assign_default $fontversion, $opthash{fontversion}, "001.000";
+assign_default $creationdate, scalar localtime;
+assign_default $comment, $opthash{comment}, "Font converted to Type 1 by mf2pt1, written by Scott Pakin.";
+assign_default $weight, $opthash{weight}, "Medium";
+assign_default $fixedpitch, $opthash{fixedpitch}, 0;
+assign_default $uniqueID, $opthash{uniqueid}, int(rand(1000000)) + 4000000;
+assign_default $designsize, $opthash{designsize};
+die "${progname}: a design size must be specified in $mffile or on the command line\n" if !defined $designsize;
+die "${progname}: the design size must be a positive number\n" if $designsize<=0.0;
+assign_default $underlinepos, $opthash{underpos}, -1;
+$underlinepos = round(1000*$underlinepos/$designsize);
+assign_default $underlinethick, $opthash{underthick}, 0.5;
+$underlinethick = round(1000*$underlinethick/$designsize);
+assign_default $fullname, $opthash{fullname}, $filebase;
+assign_default $familyname, $opthash{family}, $fullname;
+assign_default $italicangle, $opthash{italicangle}, 0;
+assign_default $fontname, $opthash{name}, "$familyname-$weight";
+$fontname =~ s/\s//g;
+assign_default $encoding, $opthash{encoding}, "standard";
+my $encoding_name = $encoding;
+ENCODING:
+{
+    if (-e $encoding) {
+        # Filenames take precedence over built-in encodings.
+        my @enc_array;
+        open (ENCFILE, "<$encoding") || die "${progname}: $! ($encoding)\n";
+        while (my $oneline = <ENCFILE>) {
+            $oneline =~ s/\%.*$//;
+            foreach my $word (split " ", $oneline) {
+                push @enc_array, substr($word, 1) if substr($word, 0, 1) eq "/";
+            }
+        }
+        close ENCFILE;
+        $encoding_name = substr (shift @enc_array, 1);
+        $encoding = \@enc_array;
+        last ENCODING;
+    }
+    $encoding=\@standardencoding,  last ENCODING  if $encoding eq "standard";
+    $encoding=\@isolatin1encoding, last ENCODING  if $encoding eq "isolatin1";
+    $encoding=\@ot1encoding,       last ENCODING  if $encoding eq "ot1";
+    $encoding=\@t1encoding,        last ENCODING  if $encoding eq "t1";
+    $encoding=\@glyphname,         last ENCODING  if $encoding eq "asis";
+    warn "${progname}: Unknown encoding \"$encoding\"; using standard Adobe encoding\n";
+    $encoding=\@standardencoding;     # Default to standard encoding
+}
+assign_default $fixedpitch, $opthash{fixedpitch}, 0;
+$fixedpitch = $fixedpitch ? "true" : "false";
+assign_default $ffscript, $opthash{ffscript};
+
+# Output the final values of all of our parameters.
+print "\n";
+print <<"PARAMVALUES";
+mf2pt1 is using the following font parameters:
+    font_version:              $fontversion
+    font_comment:              $comment
+    font_family:               $familyname
+    font_weight:               $weight
+    font_identifier:           $fullname
+    font_fixed_pitch:          $fixedpitch
+    font_slant:                $italicangle
+    font_underline_position:   $underlinepos
+    font_underline_thickness:  $underlinethick
+    font_name:                 $fontname
+    font_unique_id:            $uniqueID
+    font_size:                 $designsize (bp)
+    font_coding_scheme:        $encoding_name
+PARAMVALUES
+    ;
+print "\n";
+
+# Scale by a factor of 1000/design size.
+$mag = 1000.0 / $designsize;
+get_bboxes(0);
+print "\n";
+
+# Output the font in disassembled format.
+open (OUTFILE, ">$pt1file") || die "${progname}: $! ($pt1file)\n";
+output_header();
+printf OUTFILE "2 index /CharStrings %d dict dup begin\n",
+               1+scalar(grep {defined($_)} @charbbox);
+output_font_programs();
+output_trailer();
+close OUTFILE;
+unlink @charfiles;
+print "\n";
+
+# Convert from the disassembled font format to Type 1 binary format.
+if (!execute_command 0, ("t1asm", $pt1file, $pfbfile)) {
+    die "${progname}: You'll need either to install t1utils and rerun $progname or find another way to convert $pt1file to $pfbfile\n";
+    exit 1;
+}
+print "\n";
+unlink $pt1file;
+
+# Use FontForge to autohint the result.
+my $user_script = 0;   # 1=script file was provided by the user; 0=created here
+if (defined $ffscript) {
+    # The user provided his own script.
+    $user_script = 1;
+}
+else {
+    # Create a FontForge script file.
+    $ffscript = $filebase . ".pe";
+    open (FFSCRIPT, ">$ffscript") || die "${progname}: $! ($ffscript)\n";
+    print FFSCRIPT <<'AUTOHINT';
+Open($1);
+SelectAll();
+RemoveOverlap();
+AddExtrema();
+Simplify(0, 2);
+CorrectDirection();
+Simplify(0, 2);
+RoundToInt();
+AutoHint();
+Generate($1);
+Quit(0);
+AUTOHINT
+    ;
+    close FFSCRIPT;
+}
+if (!execute_command 0, ("fontforge", "-script", $ffscript, $pfbfile)) {
+    warn "${progname}: You'll need to install FontForge if you want $pfbfile autohinted (not required, but strongly recommended)\n";
+}
+unlink $ffscript if !$user_script;
+print "\n";
+
+# Finish up.
+print "*** Successfully generated $pfbfile! ***\n";
+exit 0;
+
+######################################################################
+
+__END__
+
+=head1 NAME
+
+mf2pt1 - produce a PostScript Type 1 font program from a Metafont source
+
+
+=head1 SYNOPSIS
+
+mf2pt1
+[B<--help>]
+[B<--version>]
+[B<--comment>=I<string>]
+[B<--designsize>=I<number>]
+[B<--encoding>=I<encoding>]
+[B<--family>=I<name>]
+[B<-->[B<no>]B<fixedpitch>]
+[B<--fontversion>=I<MMM.mmm>]
+[B<--fullname>=I<name>]
+[B<--italicangle>=I<number>]
+[B<--name>=I<name>]
+[B<--underpos>=I<number>]
+[B<--underthick>=I<number>]
+[B<--uniqueid>=I<number>]
+[B<--weight>=I<weight>]
+[B<--rounding>=I<number>]
+[B<--bpppix>=I<number>]
+[B<--ffscript>=I<file.pe>]
+I<infile>.mf
+
+
+=head1 WARNING
+
+The B<mf2pt1> Info file is the main source of documentation for
+B<mf2pt1>.  This man page is merely a brief summary.
+
+
+=head1 DESCRIPTION
+
+B<mf2pt1> facilitates producing PostScript Type 1 fonts from a
+Metafont source file.  It is I<not>, as the name may imply, an
+automatic converter of arbitrary Metafont fonts to Type 1 format.
+B<mf2pt1> imposes a number of restrictions on the Metafont input.  If
+these restrictions are met, B<mf2pt1> will produce valid Type 1
+output.  (Actually, it produces "disassembled" Type 1; the B<t1asm>
+program from the B<t1utils> suite will convert this to a true Type 1
+font.)
+
+=head2 Usage
+
+    mf2pt1 myfont.mf
+
+=head1 OPTIONS
+
+Font parameters are best specified within a Metafont program.  If
+necessary, though, command-line options can override any of these
+parameters.  The B<mf2pt1> Info page, the primary source of B<mf2pt1>
+documentation, describes the following in greater detail.
+
+=over 4
+
+=item B<--help>
+
+Provide help on B<mf2pt1>'s command-line options.
+
+=item B<--version>
+
+Output the B<mf2pt1> version number, copyright, and license.
+
+=item B<--comment>=I<string>
+
+Include a font comment, usually a copyright notice.
+
+=item B<--designsize>=I<number>
+
+Specify the font design size in points.
+
+=item B<--encoding>=I<encoding>
+
+Designate the font encoding, either the name of a---typically
+F<.enc>---file which contains a PostScript font-encoding vector or one
+of C<standard> (the default), C<ot1>, C<t1>, or C<isolatin1>.
+
+=item B<--family>=I<name>
+
+Specify the font family.
+
+=item B<--fixedpitch>, B<--nofixedpitch>
+
+Assert that the font uses either monospaced (B<--fixedpitch>) or
+proportional (B<--nofixedpitch>) character widths.
+
+=item B<--fontversion>=I<MMM.mmm>
+
+Specify the font's major and minor version number.
+
+=item B<--fullname>=I<name>
+
+Designate the full font name (family plus modifiers).
+
+=item B<--italicangle>=I<number>
+
+Designate the italic angle in degrees counterclockwise from vertical.
+
+=item B<--name>=I<name>
+
+Provide the font name.
+
+=item B<--underpos>=I<number>
+
+Specify the vertical position of the underline in thousandths of the
+font height.
+
+=item B<--underthick>=I<number>
+
+Specify the thickness of the underline in thousandths of the font
+height.
+
+=item B<--uniqueid>=I<number>
+
+Specify a globally unique font identifier.
+
+=item B<--weight>=I<weight>
+
+Provide a description of the font weight (e.g., ``Heavy'').
+
+=item B<--rounding>=I<number>
+
+Specify the fraction of a font unit (0.0 < I<number> <= 1.0) to which
+to round coordinate values [default: 1.0].
+
+=item B<--bpppix>=I<number>
+
+Redefine the number of big points per pixel from 0.02 to I<number>.
+
+=item B<--ffscript>=I<file.pe>
+
+Name a script to pass to FontForge.
+
+=back
+
+
+=head1 FILES
+
+F<mf2pt1.mem> (which is generated from F<mf2pt1.mp> and F<mfplain.mp>)
+
+
+=head1 NOTES
+
+As stated in L</"WARNING">, the complete source of documentation for
+B<mf2pt1> is the Info page, not this man page.
+
+
+=head1 SEE ALSO
+
+mf(1), mpost(1), t1asm(1), fontforge(1)
+
+
+=head1 AUTHOR
+
+Scott Pakin, I<scott+mf@pakin.org>
diff --git a/scripts/build/mutopia-index.py b/scripts/build/mutopia-index.py
new file mode 100644 (file)
index 0000000..31fa6ac
--- /dev/null
@@ -0,0 +1,197 @@
+#!@PYTHON@
+# mutopia-index.py
+
+import fnmatch
+import getopt
+import os
+import re
+import stat
+import sys
+
+def find (pat, dir):
+    f = os.popen ('find %s -name "%s"'% (dir, pat))
+    lst = []
+    for a in f.readlines():
+        a = a[:-1]
+        lst.append (a)
+    return lst
+
+
+junk_prefix = 'out-www/'
+
+headertext= r"""
+
+<h1>LilyPond samples</h1>
+
+
+<p>You are looking at a page with some LilyPond samples.  These files
+are also included in the distribution. The output is completely
+generated from the source file, without any further touch up.
+
+<p>
+
+The pictures are 90 dpi anti-aliased snapshots of the printed output.
+For a good impression of the quality print out the PDF file.
+"""
+
+headertext_nopics= r"""
+<p>No examples were found in this directory. 
+"""
+
+#
+# FIXME breaks on multiple strings.
+#
+def read_lilypond_header (fn):
+    s = open (fn).read ()
+    s = re.sub ('%.*$', '', s)
+    s = re.sub ('\n', ' ', s)                
+
+    dict = {}
+    m = re.search (r"""\\header\s*{([^}]*)}""", s)
+
+    if m:
+            s = m.group (1)
+    else:
+            return dict
+
+    while s:
+        m = re.search (r'''\s*(\S+)\s*=\s*"([^"]+)"''', s)
+        if m == None:
+            s = ''
+        else:
+            s = s[m.end (0):]
+            left  = m.group         (1)
+            right = m.group (2)
+
+            left = re.sub ('"', '', left)
+            right = re.sub ('"', '', right)
+            dict[left] = right
+
+    return dict
+
+def help ():
+    sys.stdout.write (r'''Usage: mutopia-index [OPTIONS] INFILE OUTFILE
+Generate index for mutopia.
+
+Options:
+ -h, --help                 print this help
+ -o, --output=FILE          write output to file
+ -s, --subdirs=DIR             add subdir
+   --suffix=SUF             specify suffix
+   
+''')
+    sys.exit (0)
+
+# ugh.
+def gen_list (inputs, file_name):
+    sys.stderr.write ("generating HTML list %s" % file_name)
+    sys.stderr.write ('\n')
+    if file_name:
+        list = open (file_name, 'w')
+    else:
+        list = sys.stdout
+    list.write ('''<html><head><title>Rendered Examples</title>
+<style type="text/css">
+hr { border:0; height:1; color: #000000; background-color: #000000; }\n
+</style>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+</head>''')
+
+    list.write ('<body bgcolor=white>\n')
+    
+    if inputs:
+        list.write (headertext)
+    else:
+        list.write (headertext_nopics)
+
+    for ex in inputs:
+        print ex
+        
+        (base, ext) = os.path.splitext (ex)
+        (base, ext2) = os.path.splitext (base)                
+        ext = ext2 + ext
+        
+        header = read_lilypond_header (ex)
+        head = header.get ('title', os.path.basename (base))
+        composer = header.get ('composer', '')
+        desc = header.get ('description', '')
+        list.write ('<hr>\n')
+        list.write ('<h1>%s</h1>\n' % head);
+        if composer:
+            list.write ('<h2>%s</h2>\n' % composer)
+        if desc:
+            list.write ('%s<p>' % desc)
+        list.write ('<ul>\n')
+
+        def list_item (file_name, desc, type, lst = list):
+            if os.path.isfile (file_name):
+                lst.write ('<li><a href="%s">%s</a>'
+                     % (re.sub (junk_prefix, '', file_name), desc))
+
+                # FIXME: include warning if it uses \include
+                # files.
+                
+                size = os.stat (file_name)[stat.ST_SIZE]
+                kB = (size + 512) / 1024
+                if kB:
+                    lst.write (' (%s %d kB)' % (type, kB))
+                else:
+                    lst.write (' (%s %d characters)'
+                         % (type, size))
+                pictures = ['jpeg', 'png', 'xpm']
+                lst.write ('\n')
+            else:
+                print "cannot find" , `file_name`
+
+        list_item (base + ext, 'The input', 'ASCII')
+
+        pages_found = 0
+        for page in range (1, 100):
+            f = base + '-page%d.png' % page
+            
+            if not os.path.isfile (f):
+                break
+            pages_found += 1
+            list_item (f, 'See a picture of page %d' % page, 'png')
+
+        if pages_found == 0 and os.path.exists (base + '.png'):
+            list_item (base + ".png",
+                 'See a picture', 'png')
+
+            
+        list_item (base + '.pdf', 'Print', 'PDF')
+        list_item (base + '.midi', 'Listen', 'MIDI')
+        list.write ('</ul>\n');
+
+    list.write ('</body></html>\n');
+    list.close ()
+
+(options, files) = getopt.getopt (sys.argv[1:],
+ 'ho:', ['help', 'output='])
+outfile = 'examples.html'
+
+subdirs = []
+for (o, a) in options:
+    if o == '--help' or o == '-h':
+        help ()
+    elif o == '--output' or o == '-o':
+        outfile = a
+
+dirs  = []
+for f in files:
+    dirs += find ('out-www', f)
+
+if not dirs:
+    dirs = ['.']
+
+allfiles = []
+
+for d in dirs:
+    allfiles += find ('*.ly', d)
+
+allfiles = [f for f in allfiles
+            if not f.endswith ('snippet-map.ly')
+            and not re.search ('lily-[0-9a-f]+', f)
+            and 'musicxml' not in f]
+
+gen_list (allfiles, outfile)
diff --git a/scripts/build/output-distance.py b/scripts/build/output-distance.py
new file mode 100644 (file)
index 0000000..2b49689
--- /dev/null
@@ -0,0 +1,1262 @@
+#!@PYTHON@
+import sys
+import optparse
+import os
+import math
+
+## so we can call directly as scripts/build/output-distance.py
+me_path = os.path.abspath (os.path.split (sys.argv[0])[0])
+sys.path.insert (0, me_path + '/../python/')
+sys.path.insert (0, me_path + '/../python/out/')
+
+
+X_AXIS = 0
+Y_AXIS = 1
+INFTY = 1e6
+
+OUTPUT_EXPRESSION_PENALTY = 1
+ORPHAN_GROB_PENALTY = 1
+options = None
+
+################################################################
+# system interface.
+temp_dir = None
+class TempDirectory:
+    def __init__ (self):
+        import tempfile
+        self.dir = tempfile.mkdtemp ()
+        print 'dir is', self.dir
+    def __del__ (self):
+        print 'rm -rf %s' % self.dir 
+        os.system ('rm -rf %s' % self.dir)
+    def __call__ (self):
+        return self.dir
+
+
+def get_temp_dir  ():
+    global temp_dir
+    if not temp_dir:
+        temp_dir = TempDirectory ()
+    return temp_dir ()
+
+def read_pipe (c):
+    print 'pipe' , c
+    return os.popen (c).read ()
+
+def system (c):
+    print 'system' , c
+    s = os.system (c)
+    if s :
+        raise Exception ("failed")
+    return
+
+def shorten_string (s):
+    threshold = 15 
+    if len (s) > 2*threshold:
+        s = s[:threshold] + '..' + s[-threshold:]
+    return s
+
+def max_distance (x1, x2):
+    dist = 0.0
+
+    for (p,q) in zip (x1, x2):
+        dist = max (abs (p-q), dist)
+        
+    return dist
+
+
+def compare_png_images (old, new, dest_dir):
+    def png_dims (f):
+        m = re.search ('([0-9]+) x ([0-9]+)', read_pipe ('file %s' % f))
+        
+        return tuple (map (int, m.groups ()))
+
+    dest = os.path.join (dest_dir, new.replace ('.png', '.compare.jpeg'))
+    try:
+        dims1 = png_dims (old)
+        dims2 = png_dims (new)
+    except AttributeError:
+        ## hmmm. what to do?
+        system ('touch %(dest)s' % locals ())
+        return
+    
+    dims = (min (dims1[0], dims2[0]),
+            min (dims1[1], dims2[1]))
+
+    dir = get_temp_dir ()
+    system ('convert -depth 8 -crop %dx%d+0+0 %s %s/crop1.png' % (dims + (old, dir)))
+    system ('convert -depth 8 -crop %dx%d+0+0 %s %s/crop2.png' % (dims + (new, dir)))
+
+    system ('compare -depth 8 %(dir)s/crop1.png %(dir)s/crop2.png %(dir)s/diff.png' % locals ())
+
+    system ("convert  -depth 8 %(dir)s/diff.png -blur 0x3 -negate -channel alpha,blue -type TrueColorMatte -fx 'intensity'    %(dir)s/matte.png" % locals ())
+
+    system ("composite -compose atop -quality 65 %(dir)s/matte.png %(new)s %(dest)s" % locals ())
+
+
+################################################################
+# interval/bbox arithmetic.
+
+empty_interval = (INFTY, -INFTY)
+empty_bbox = (empty_interval, empty_interval)
+
+def interval_is_empty (i):
+    return i[0] > i[1]
+
+def interval_length (i):
+    return max (i[1]-i[0], 0) 
+    
+def interval_union (i1, i2):
+    return (min (i1[0], i2[0]),
+            max (i1[1], i2[1]))
+
+def interval_intersect (i1, i2):
+    return (max (i1[0], i2[0]),
+            min (i1[1], i2[1]))
+
+def bbox_is_empty (b):
+    return (interval_is_empty (b[0])
+            or interval_is_empty (b[1]))
+
+def bbox_union (b1, b2):
+    return (interval_union (b1[X_AXIS], b2[X_AXIS]),
+            interval_union (b1[Y_AXIS], b2[Y_AXIS]))
+            
+def bbox_intersection (b1, b2):
+    return (interval_intersect (b1[X_AXIS], b2[X_AXIS]),
+            interval_intersect (b1[Y_AXIS], b2[Y_AXIS]))
+
+def bbox_area (b):
+    return interval_length (b[X_AXIS]) * interval_length (b[Y_AXIS])
+
+def bbox_diameter (b):
+    return max (interval_length (b[X_AXIS]),
+                interval_length (b[Y_AXIS]))
+                
+
+def difference_area (a, b):
+    return bbox_area (a) - bbox_area (bbox_intersection (a,b))
+
+class GrobSignature:
+    def __init__ (self, exp_list):
+        (self.name, self.origin, bbox_x,
+         bbox_y, self.output_expression) = tuple (exp_list)
+        
+        self.bbox = (bbox_x, bbox_y)
+        self.centroid = (bbox_x[0] + bbox_x[1], bbox_y[0] + bbox_y[1])
+
+    def __repr__ (self):
+        return '%s: (%.2f,%.2f), (%.2f,%.2f)\n' % (self.name,
+                                                   self.bbox[0][0],
+                                                   self.bbox[0][1],
+                                                   self.bbox[1][0],
+                                                   self.bbox[1][1])
+                                                 
+    def axis_centroid (self, axis):
+        return apply (sum, self.bbox[axis])  / 2 
+    
+    def centroid_distance (self, other, scale):
+        return max_distance (self.centroid, other.centroid) / scale 
+        
+    def bbox_distance (self, other):
+        divisor = bbox_area (self.bbox) + bbox_area (other.bbox)
+
+        if divisor:
+            return (difference_area (self.bbox, other.bbox) +
+                    difference_area (other.bbox, self.bbox)) / divisor
+        else:
+            return 0.0
+        
+    def expression_distance (self, other):
+        if self.output_expression == other.output_expression:
+            return 0
+        else:
+            return 1
+
+################################################################
+# single System.
+
+class SystemSignature:
+    def __init__ (self, grob_sigs):
+        d = {}
+        for g in grob_sigs:
+            val = d.setdefault (g.name, [])
+            val += [g]
+
+        self.grob_dict = d
+        self.set_all_bbox (grob_sigs)
+
+    def set_all_bbox (self, grobs):
+        self.bbox = empty_bbox
+        for g in grobs:
+            self.bbox = bbox_union (g.bbox, self.bbox)
+
+    def closest (self, grob_name, centroid):
+        min_d = INFTY
+        min_g = None
+        try:
+            grobs = self.grob_dict[grob_name]
+
+            for g in grobs:
+                d = max_distance (g.centroid, centroid)
+                if d < min_d:
+                    min_d = d
+                    min_g = g
+
+
+            return min_g
+
+        except KeyError:
+            return None
+    def grobs (self):
+        return reduce (lambda x,y: x+y, self.grob_dict.values(), [])
+
+################################################################
+## comparison of systems.
+
+class SystemLink:
+    def __init__ (self, system1, system2):
+        self.system1 = system1
+        self.system2 = system2
+        
+        self.link_list_dict = {}
+        self.back_link_dict = {}
+
+
+        ## pairs
+        self.orphans = []
+
+        ## pair -> distance
+        self.geo_distances = {}
+
+        ## pairs
+        self.expression_changed = []
+
+        self._geometric_distance = None
+        self._expression_change_count = None
+        self._orphan_count = None
+        
+        for g in system1.grobs ():
+
+            ## skip empty bboxes.
+            if bbox_is_empty (g.bbox):
+                continue
+            
+            closest = system2.closest (g.name, g.centroid)
+            
+            self.link_list_dict.setdefault (closest, [])
+            self.link_list_dict[closest].append (g)
+            self.back_link_dict[g] = closest
+
+
+    def calc_geometric_distance (self):
+        total = 0.0
+        for (g1,g2) in self.back_link_dict.items ():
+            if g2:
+                d = g1.bbox_distance (g2)
+                if d:
+                    self.geo_distances[(g1,g2)] = d
+
+                total += d
+
+        self._geometric_distance = total
+    
+    def calc_orphan_count (self):
+        count = 0
+        for (g1, g2) in self.back_link_dict.items ():
+            if g2 == None:
+                self.orphans.append ((g1, None))
+                
+                count += 1
+
+        self._orphan_count = count
+    
+    def calc_output_exp_distance (self):
+        d = 0
+        for (g1,g2) in self.back_link_dict.items ():
+            if g2:
+                d += g1.expression_distance (g2)
+
+        self._expression_change_count = d
+
+    def output_expression_details_string (self):
+        return ', '.join ([g1.name for g1 in self.expression_changed])
+    
+    def geo_details_string (self):
+        results = [(d, g1,g2) for ((g1, g2), d) in self.geo_distances.items()]
+        results.sort ()
+        results.reverse ()
+        
+        return ', '.join (['%s: %f' % (g1.name, d) for (d, g1, g2) in results])
+
+    def orphan_details_string (self):
+        return ', '.join (['%s-None' % g1.name for (g1,g2) in self.orphans if g2==None])
+
+    def geometric_distance (self):
+        if self._geometric_distance == None:
+            self.calc_geometric_distance ()
+        return self._geometric_distance
+    
+    def orphan_count (self):
+        if self._orphan_count == None:
+            self.calc_orphan_count ()
+            
+        return self._orphan_count
+    
+    def output_expression_change_count (self):
+        if self._expression_change_count == None:
+            self.calc_output_exp_distance ()
+        return self._expression_change_count
+        
+    def distance (self):
+        return (self.output_expression_change_count (),
+                self.orphan_count (),
+                self.geometric_distance ())
+    
+def read_signature_file (name):
+    print 'reading', name
+    
+    entries = open (name).read ().split ('\n')
+    def string_to_tup (s):
+        return tuple (map (float, s.split (' '))) 
+
+    def string_to_entry (s):
+        fields = s.split('@')
+        fields[2] = string_to_tup (fields[2])
+        fields[3] = string_to_tup (fields[3])
+
+        return tuple (fields)
+    
+    entries = [string_to_entry (e) for e in entries
+               if e and not e.startswith ('#')]
+
+    grob_sigs = [GrobSignature (e) for e in entries]
+    sig = SystemSignature (grob_sigs)
+    return sig
+
+
+################################################################
+# different systems of a .ly file.
+
+hash_to_original_name = {}
+
+class FileLink:
+    def __init__ (self, f1, f2):
+        self._distance = None
+        self.file_names = (f1, f2)
+        
+    def text_record_string (self):
+        return '%-30f %-20s\n' % (self.distance (),
+                                  self.name ()
+                                  + os.path.splitext (self.file_names[1])[1]
+                                  )
+    
+    def calc_distance (self):
+        return 0.0
+
+    def distance (self):
+        if self._distance == None:
+           self._distance = self.calc_distance ()
+
+        return self._distance
+    
+    def source_file (self):
+        for ext in ('.ly', '.ly.txt'):
+            base = os.path.splitext (self.file_names[1])[0]
+            f = base + ext
+            if os.path.exists (f):
+                return f
+            
+        return ''
+        
+    def name (self):
+        base = os.path.basename (self.file_names[1])
+        base = os.path.splitext (base)[0]
+        base = hash_to_original_name.get (base, base)
+        base = os.path.splitext (base)[0]
+        return base
+    
+    def extension (self):
+        return os.path.splitext (self.file_names[1])[1]
+
+    def link_files_for_html (self, dest_dir):
+        for f in self.file_names:
+            link_file (f, os.path.join (dest_dir, f))
+
+    def get_distance_details (self):
+        return ''
+
+    def get_cell (self, oldnew):
+        return ''
+    
+    def get_file (self, oldnew):
+        return self.file_names[oldnew]
+    
+    def html_record_string (self, dest_dir):
+        dist = self.distance()
+        
+        details = self.get_distance_details ()
+        if details:
+            details_base = os.path.splitext (self.file_names[1])[0]
+            details_base += '.details.html'
+            fn = dest_dir + '/'  + details_base
+            open_write_file (fn).write (details)
+
+            details = '<br>(<a href="%(details_base)s">details</a>)' % locals ()
+
+        cell1 = self.get_cell (0)
+        cell2 = self.get_cell (1)
+
+        name = self.name () + self.extension ()
+        file1 = self.get_file (0)
+        file2 = self.get_file (1)
+        
+        return '''<tr>
+<td>
+%(dist)f
+%(details)s
+</td>
+<td>%(cell1)s<br><font size=-2><a href="%(file1)s"><tt>%(name)s</tt></font></td>
+<td>%(cell2)s<br><font size=-2><a href="%(file2)s"><tt>%(name)s</tt></font></td>
+</tr>''' % locals ()
+
+
+class FileCompareLink (FileLink):
+    def __init__ (self, f1, f2):
+        FileLink.__init__ (self, f1, f2)
+        self.contents = (self.get_content (self.file_names[0]),
+                         self.get_content (self.file_names[1]))
+        
+
+    def calc_distance (self):
+        ## todo: could use import MIDI to pinpoint
+        ## what & where changed.
+
+        if self.contents[0] == self.contents[1]:
+            return 0.0
+        else:
+            return 100.0;
+        
+    def get_content (self, f):
+        print 'reading', f
+        s = open (f).read ()
+        return s
+
+
+class GitFileCompareLink (FileCompareLink):
+    def get_cell (self, oldnew):
+        str = self.contents[oldnew]
+
+        # truncate long lines
+        str = '\n'.join ([l[:80] for l in str.split ('\n')])
+
+        
+        str = '<font size="-2"><pre>%s</pre></font>' % str
+        return str
+    
+    def calc_distance (self):
+        if self.contents[0] == self.contents[1]:
+            d = 0.0
+        else:
+            d = 1.0001 *options.threshold
+
+        return d
+
+        
+class TextFileCompareLink (FileCompareLink):
+    def calc_distance (self):
+        import difflib
+        diff = difflib.unified_diff (self.contents[0].strip().split ('\n'),
+                                     self.contents[1].strip().split ('\n'),
+                                     fromfiledate = self.file_names[0],
+                                     tofiledate = self.file_names[1]
+                                     )
+        
+        self.diff_lines =  [l for l in diff]
+        self.diff_lines = self.diff_lines[2:]
+        
+        return math.sqrt (float (len ([l for l in self.diff_lines if l[0] in '-+'])))
+        
+    def get_cell (self, oldnew):
+        str = ''
+        if oldnew == 1:
+            str = '\n'.join ([d.replace ('\n','') for d in self.diff_lines])
+        str = '<font size="-2"><pre>%s</pre></font>' % str
+        return str
+
+class LogFileCompareLink (TextFileCompareLink):
+  def get_content (self, f):
+      c = TextFileCompareLink.get_content (self, f)
+      c = re.sub ("\nProcessing `[^\n]+'\n", '', c)
+      return c
+        
+class ProfileFileLink (FileCompareLink):
+    def __init__ (self, f1, f2):
+        FileCompareLink.__init__ (self, f1, f2)
+        self.results = [{}, {}]
+    
+    def get_cell (self, oldnew):
+        str = ''
+        for k in ('time', 'cells'):
+            if oldnew==0:
+                str += '%-8s: %d\n' %  (k, int (self.results[oldnew][k]))
+            else:
+                str += '%-8s: %8d (%5.3f)\n' % (k, int (self.results[oldnew][k]),
+                                                self.get_ratio (k))
+
+        return '<pre>%s</pre>' % str
+            
+    def get_ratio (self, key):
+        (v1,v2) = (self.results[0].get (key, -1),
+                   self.results[1].get (key, -1))
+
+        if v1 <= 0 or v2 <= 0:
+            return 0.0
+
+        return (v1 - v2) / float (v1+v2)
+    
+    def calc_distance (self):
+        for oldnew in (0,1):
+            def note_info (m):
+                self.results[oldnew][m.group(1)] = float (m.group (2))
+            
+            re.sub ('([a-z]+): ([-0-9.]+)\n',
+                    note_info, self.contents[oldnew])
+
+        dist = 0.0
+        factor = {
+            'time': 0.1,
+            'cells': 5.0,
+            }
+        
+        for k in ('time', 'cells'):
+            real_val = math.tan (self.get_ratio (k) * 0.5 * math.pi)
+            dist += math.exp (math.fabs (real_val) * factor[k])  - 1
+
+        dist = min (dist, 100)
+        return dist
+
+    
+class MidiFileLink (TextFileCompareLink):
+    def get_content (self, oldnew):
+        import midi
+        
+        data = FileCompareLink.get_content (self, oldnew)
+        midi = midi.parse (data)
+        tracks = midi[1]
+
+        str = ''
+        j = 0
+        for t in tracks:
+            str += 'track %d' % j
+            j += 1
+
+            for e in t:
+                ev_str = repr (e)
+                if re.search ('LilyPond [0-9.]+', ev_str):
+                    continue
+                
+                str += '  ev %s\n' % `e`
+        return str
+    
+
+
+class SignatureFileLink (FileLink):
+    def __init__ (self, f1, f2 ):
+        FileLink.__init__ (self, f1, f2)
+        self.system_links = {}
+
+    def add_system_link (self, link, number):
+        self.system_links[number] = link
+
+    def calc_distance (self):
+        d = 0.0
+
+        orphan_distance = 0.0
+        for l in self.system_links.values ():
+            d = max (d, l.geometric_distance ())
+            orphan_distance += l.orphan_count ()
+            
+        return d + orphan_distance
+
+    def add_file_compare (self, f1, f2):
+        system_index = [] 
+
+        def note_system_index (m):
+            system_index.append (int (m.group (1)))
+            return ''
+        
+        base1 = re.sub ("-([0-9]+).signature", note_system_index, f1)
+        base2 = re.sub ("-([0-9]+).signature", note_system_index, f2)
+
+        self.base_names = (os.path.normpath (base1),
+                           os.path.normpath (base2))
+
+        s1 = read_signature_file (f1)
+        s2 = read_signature_file (f2)
+
+        link = SystemLink (s1, s2)
+
+        self.add_system_link (link, system_index[0])
+
+    
+    def create_images (self, dest_dir):
+
+        files_created = [[], []]
+        for oldnew in (0, 1):
+            pat = self.base_names[oldnew] + '.eps'
+
+            for f in glob.glob (pat):
+                infile = f
+                outfile = (dest_dir + '/' + f).replace ('.eps', '.png')
+                data_option = ''
+                if options.local_data_dir:
+                    data_option = ('-slilypond-datadir=%s/../share/lilypond/current '
+                                   % os.path.dirname(infile))
+                
+                mkdir (os.path.split (outfile)[0])
+                cmd = ('gs -sDEVICE=png16m -dGraphicsAlphaBits=4 -dTextAlphaBits=4 '
+                       ' %(data_option)s '
+                       ' -r101 '
+                       ' -sOutputFile=%(outfile)s -dNOSAFER -dEPSCrop -q -dNOPAUSE '
+                       ' %(infile)s  -c quit ') % locals ()
+
+                files_created[oldnew].append (outfile)
+                system (cmd)
+
+        return files_created
+    
+    def link_files_for_html (self, dest_dir):
+        FileLink.link_files_for_html (self, dest_dir)
+        to_compare = [[], []]
+
+        exts = []
+        if options.create_images:
+            to_compare = self.create_images (dest_dir)
+        else:
+            exts += ['.png', '-page*png']
+        
+        for ext in exts:            
+            for oldnew in (0,1):
+                for f in glob.glob (self.base_names[oldnew] + ext):
+                    dst = dest_dir + '/' + f
+                    link_file (f, dst)
+
+                    if f.endswith ('.png'):
+                        to_compare[oldnew].append (f)
+                        
+        if options.compare_images:                
+            for (old, new) in zip (to_compare[0], to_compare[1]):
+                compare_png_images (old, new, dest_dir)
+
+
+    def get_cell (self, oldnew):
+        def img_cell (ly, img, name):
+            if not name:
+                name = 'source'
+            else:
+                name = '<tt>%s</tt>' % name
+                
+            return '''
+<a href="%(img)s">
+<img src="%(img)s" style="border-style: none; max-width: 500px;">
+</a><br>
+''' % locals ()
+        def multi_img_cell (ly, imgs, name):
+            if not name:
+                name = 'source'
+            else:
+                name = '<tt>%s</tt>' % name
+
+            imgs_str = '\n'.join (['''<a href="%s">
+<img src="%s" style="border-style: none; max-width: 500px;">
+</a><br>''' % (img, img) 
+                                  for img in imgs])
+
+
+            return '''
+%(imgs_str)s
+''' % locals ()
+
+
+
+        def cell (base, name):
+            pat = base + '-page*.png'
+            pages = glob.glob (pat)
+
+            if pages:
+                return multi_img_cell (base + '.ly', sorted (pages), name)
+            else:
+                return img_cell (base + '.ly', base + '.png', name)
+
+
+
+        str = cell (os.path.splitext (self.file_names[oldnew])[0], self.name ())  
+        if options.compare_images and oldnew == 1:
+            str = str.replace ('.png', '.compare.jpeg')
+            
+        return str
+
+
+    def get_distance_details (self):
+        systems = self.system_links.items ()
+        systems.sort ()
+
+        html = ""
+        for (c, link) in systems:
+            e = '<td>%d</td>' % c
+            for d in link.distance ():
+                e += '<td>%f</td>' % d
+            
+            e = '<tr>%s</tr>' % e
+
+            html += e
+
+            e = '<td>%d</td>' % c
+            for s in (link.output_expression_details_string (),
+                      link.orphan_details_string (),
+                      link.geo_details_string ()):
+                e += "<td>%s</td>" % s
+
+            
+            e = '<tr>%s</tr>' % e
+            html += e
+            
+        original = self.name ()
+        html = '''<html>
+<head>
+<title>comparison details for %(original)s</title>
+</head>
+<body>
+<table border=1>
+<tr>
+<th>system</th>
+<th>output</th>
+<th>orphan</th>
+<th>geo</th>
+</tr>
+
+%(html)s
+</table>
+
+</body>
+</html>
+''' % locals ()
+        return html
+
+
+################################################################
+# Files/directories
+
+import glob
+import re
+
+def compare_signature_files (f1, f2):
+    s1 = read_signature_file (f1)
+    s2 = read_signature_file (f2)
+    
+    return SystemLink (s1, s2).distance ()
+
+def paired_files (dir1, dir2, pattern):
+    """
+    Search DIR1 and DIR2 for PATTERN.
+
+    Return (PAIRED, MISSING-FROM-2, MISSING-FROM-1)
+
+    """
+
+    files = []
+    for d in (dir1,dir2):
+        found = [os.path.split (f)[1] for f in glob.glob (d + '/' + pattern)]
+        found = dict ((f, 1) for f in found)
+        files.append (found)
+        
+    pairs = []
+    missing = []
+    for f in files[0]:
+        try:
+            files[1].pop (f)
+            pairs.append (f)
+        except KeyError:
+            missing.append (f)
+
+    return (pairs, files[1].keys (), missing)
+    
+class ComparisonData:
+    def __init__ (self):
+        self.result_dict = {}
+        self.missing = []
+        self.added = []
+        self.file_links = {}
+
+    def read_sources (self):
+
+        ## ugh: drop the .ly.txt
+        for (key, val) in self.file_links.items ():
+            
+            def note_original (match, ln=val):
+                key = ln.name ()
+                hash_to_original_name[key] = match.group (1)
+                return ''
+
+            sf = val.source_file ()
+            if sf:
+                re.sub (r'\\sourcefilename "([^"]+)"',
+                        note_original, open (sf).read ())
+            else:
+                print 'no source for', val
+        
+    def compare_trees (self, dir1, dir2):
+        self.compare_directories (dir1, dir2)
+        
+        (root, dirs, files) = os.walk (dir1).next ()
+        for d in dirs:
+            d1 = os.path.join (dir1, d)
+            d2 = os.path.join (dir2, d)
+
+            if os.path.islink (d1) or os.path.islink (d2):
+                continue
+            
+            if os.path.isdir (d2):
+                self.compare_trees (d1, d2)
+    
+    def compare_directories (self, dir1, dir2):
+        for ext in ['signature',
+                    'midi',
+                    'log',
+                    'profile',
+                    'gittxt']:
+            (paired, m1, m2) = paired_files (dir1, dir2, '*.' + ext)
+
+            self.missing += [(dir1, m) for m in m1] 
+            self.added += [(dir2, m) for m in m2] 
+
+            for p in paired:
+                if (options.max_count
+                    and len (self.file_links) > options.max_count):
+                    continue
+                
+                f2 = dir2 +  '/' + p
+                f1 = dir1 +  '/' + p
+                self.compare_files (f1, f2)
+
+    def compare_files (self, f1, f2):
+        if f1.endswith ('signature'):
+            self.compare_signature_files (f1, f2)
+        else:
+            ext = os.path.splitext (f1)[1]
+            klasses = {
+                '.midi': MidiFileLink,
+                '.log' : LogFileCompareLink,
+                '.profile': ProfileFileLink,
+                '.gittxt': GitFileCompareLink, 
+                }
+            
+            if klasses.has_key (ext):
+                self.compare_general_files (klasses[ext], f1, f2)
+
+    def compare_general_files (self, klass, f1, f2):
+        name = os.path.split (f1)[1]
+
+        file_link = klass (f1, f2)
+        self.file_links[name] = file_link
+        
+    def compare_signature_files (self, f1, f2):
+        name = os.path.split (f1)[1]
+        name = re.sub ('-[0-9]+.signature', '', name)
+        
+        file_link = None
+        try:
+            file_link = self.file_links[name]
+        except KeyError:
+            generic_f1 = re.sub ('-[0-9]+.signature', '.ly', f1)
+            generic_f2 = re.sub ('-[0-9]+.signature', '.ly', f2)
+            file_link = SignatureFileLink (generic_f1, generic_f2)
+            self.file_links[name] = file_link
+
+        file_link.add_file_compare (f1, f2)
+
+    def write_changed (self, dest_dir, threshold):
+        (changed, below, unchanged) = self.thresholded_results (threshold)
+
+        str = '\n'.join ([os.path.splitext (link.file_names[1])[0]
+                        for link in changed])
+        fn = dest_dir + '/changed.txt'
+        
+        open_write_file (fn).write (str)
+                
+    def thresholded_results (self, threshold):
+        ## todo: support more scores.
+        results = [(link.distance(), link)
+                   for link in self.file_links.values ()]
+        results.sort ()
+        results.reverse ()
+
+        unchanged = [r for (d,r) in results if d == 0.0]
+        below = [r for (d,r) in results if threshold >= d > 0.0]
+        changed = [r for (d,r) in results if d > threshold]
+
+        return (changed, below, unchanged)
+                
+    def write_text_result_page (self, filename, threshold):
+        out = None
+        if filename == '':
+            out = sys.stdout
+        else:
+            print 'writing "%s"' % filename
+            out = open_write_file (filename)
+
+        (changed, below, unchanged) = self.thresholded_results (threshold)
+
+        
+        for link in changed:
+            out.write (link.text_record_string ())
+
+        out.write ('\n\n')
+        out.write ('%d below threshold\n' % len (below))
+        out.write ('%d unchanged\n' % len (unchanged))
+        
+    def create_text_result_page (self, dir1, dir2, dest_dir, threshold):
+        self.write_text_result_page (dest_dir + '/index.txt', threshold)
+        
+    def create_html_result_page (self, dir1, dir2, dest_dir, threshold):
+        dir1 = dir1.replace ('//', '/')
+        dir2 = dir2.replace ('//', '/')
+
+        (changed, below, unchanged) = self.thresholded_results (threshold)
+
+
+        html = ''
+        old_prefix = os.path.split (dir1)[1]
+        for link in changed:
+            html += link.html_record_string (dest_dir)
+
+
+        short_dir1 = shorten_string (dir1)
+        short_dir2 = shorten_string (dir2)
+        html = '''<html>
+<table rules="rows" border bordercolor="blue">
+<tr>
+<th>distance</th>
+<th>%(short_dir1)s</th>
+<th>%(short_dir2)s</th>
+</tr>
+%(html)s
+</table>
+</html>''' % locals()
+
+        html += ('<p>')
+        below_count = len (below)
+
+        if below_count:
+            html += ('<p>%d below threshold</p>' % below_count)
+            
+        html += ('<p>%d unchanged</p>' % len (unchanged))
+
+        dest_file = dest_dir + '/index.html'
+        open_write_file (dest_file).write (html)
+
+
+        for link in changed:
+            link.link_files_for_html (dest_dir)
+        
+
+    def print_results (self, threshold):
+        self.write_text_result_page ('', threshold)
+
+def compare_trees (dir1, dir2, dest_dir, threshold):
+    data = ComparisonData ()
+    data.compare_trees (dir1, dir2)
+    data.read_sources ()
+
+    
+    data.print_results (threshold)
+
+    if os.path.isdir (dest_dir):
+        system ('rm -rf %s '% dest_dir)
+
+    data.write_changed (dest_dir, threshold)
+    data.create_html_result_page (dir1, dir2, dest_dir, threshold)
+    data.create_text_result_page (dir1, dir2, dest_dir, threshold)
+    
+################################################################
+# TESTING
+
+def mkdir (x):
+    if not os.path.isdir (x):
+        print 'mkdir', x
+        os.makedirs (x)
+
+def link_file (x, y):
+    mkdir (os.path.split (y)[0])
+    try:
+        print x, '->', y
+        os.link (x, y)
+    except OSError, z:
+        print 'OSError', x, y, z
+        raise OSError
+    
+def open_write_file (x):
+    d = os.path.split (x)[0]
+    mkdir (d)
+    return open (x, 'w')
+
+
+def system (x):
+    
+    print 'invoking', x
+    stat = os.system (x)
+    assert stat == 0
+
+
+def test_paired_files ():
+    print paired_files (os.environ["HOME"] + "/src/lilypond/scripts/",
+                        os.environ["HOME"] + "/src/lilypond-stable/scripts/build/", '*.py')
+                  
+    
+def test_compare_trees ():
+    system ('rm -rf dir1 dir2')
+    system ('mkdir dir1 dir2')
+    system ('cp 20{-*.signature,.ly,.png,.eps,.log,.profile} dir1')
+    system ('cp 20{-*.signature,.ly,.png,.eps,.log,.profile} dir2')
+    system ('cp 20expr{-*.signature,.ly,.png,.eps,.log,.profile} dir1')
+    system ('cp 19{-*.signature,.ly,.png,.eps,.log,.profile} dir2/')
+    system ('cp 19{-*.signature,.ly,.png,.eps,.log,.profile} dir1/')
+    system ('cp 19-1.signature 19.sub-1.signature')
+    system ('cp 19.ly 19.sub.ly')
+    system ('cp 19.profile 19.sub.profile')
+    system ('cp 19.log 19.sub.log')
+    system ('cp 19.png 19.sub.png')
+    system ('cp 19.eps 19.sub.eps')
+
+    system ('cp 20multipage* dir1')
+    system ('cp 20multipage* dir2')
+    system ('cp 19multipage-1.signature dir2/20multipage-1.signature')
+
+    
+    system ('mkdir -p dir1/subdir/ dir2/subdir/')
+    system ('cp 19.sub{-*.signature,.ly,.png,.eps,.log,.profile} dir1/subdir/')
+    system ('cp 19.sub{-*.signature,.ly,.png,.eps,.log,.profile} dir2/subdir/')
+    system ('cp 20grob{-*.signature,.ly,.png,.eps,.log,.profile} dir2/')
+    system ('cp 20grob{-*.signature,.ly,.png,.eps,.log,.profile} dir1/')
+    system ('echo HEAD is 1 > dir1/tree.gittxt')
+    system ('echo HEAD is 2 > dir2/tree.gittxt')
+
+    ## introduce differences
+    system ('cp 19-1.signature dir2/20-1.signature')
+    system ('cp 19.profile dir2/20.profile')
+    system ('cp 19.png dir2/20.png')
+    system ('cp 19multipage-page1.png dir2/20multipage-page1.png')
+    system ('cp 20-1.signature dir2/subdir/19.sub-1.signature')
+    system ('cp 20.png dir2/subdir/19.sub.png')
+    system ("sed 's/: /: 1/g'  20.profile > dir2/subdir/19.sub.profile")
+
+    ## radical diffs.
+    system ('cp 19-1.signature dir2/20grob-1.signature')
+    system ('cp 19-1.signature dir2/20grob-2.signature')
+    system ('cp 19multipage.midi dir1/midi-differ.midi')
+    system ('cp 20multipage.midi dir2/midi-differ.midi')
+    system ('cp 19multipage.log dir1/log-differ.log')
+    system ('cp 19multipage.log dir2/log-differ.log &&  echo different >> dir2/log-differ.log &&  echo different >> dir2/log-differ.log')
+
+    compare_trees ('dir1', 'dir2', 'compare-dir1dir2', options.threshold)
+
+
+def test_basic_compare ():
+    ly_template = r"""
+
+\version "2.10.0"
+#(define default-toplevel-book-handler
+  print-book-with-defaults-as-systems )
+
+#(ly:set-option (quote no-point-and-click))
+
+\sourcefilename "my-source.ly"
+%(papermod)s
+\header { tagline = ##f }
+\score {
+<<
+\new Staff \relative c {
+  c4^"%(userstring)s" %(extragrob)s
+  }
+\new Staff \relative c {
+  c4^"%(userstring)s" %(extragrob)s
+  }
+>>
+\layout{}
+}
+
+"""
+
+    dicts = [{ 'papermod' : '',
+               'name' : '20',
+               'extragrob': '',
+               'userstring': 'test' },
+             { 'papermod' : '#(set-global-staff-size 19.5)',
+               'name' : '19',
+               'extragrob': '',
+               'userstring': 'test' },
+             { 'papermod' : '',
+               'name' : '20expr',
+               'extragrob': '',
+               'userstring': 'blabla' },
+             { 'papermod' : '',
+               'name' : '20grob',
+               'extragrob': 'r2. \\break c1',
+               'userstring': 'test' },
+             ]
+
+    for d in dicts:
+        open (d['name'] + '.ly','w').write (ly_template % d)
+        
+    names = [d['name'] for d in dicts]
+
+    system ('lilypond -ddump-profile -dseparate-log-files -ddump-signatures --png -dbackend=eps ' + ' '.join (names))
+    
+
+    multipage_str = r'''
+    #(set-default-paper-size "a6")
+    \score {
+      \relative {c1 \pageBreak c1 }
+      \layout {}
+      \midi {}
+    }
+    '''
+
+    open ('20multipage.ly', 'w').write (multipage_str.replace ('c1', 'd1'))
+    open ('19multipage.ly', 'w').write ('#(set-global-staff-size 19.5)\n' + multipage_str)
+    system ('lilypond -dseparate-log-files -ddump-signatures --png 19multipage 20multipage ')
+    test_compare_signatures (names)
+    
+def test_compare_signatures (names, timing=False):
+    import time
+
+    times = 1
+    if timing:
+        times = 100
+
+    t0 = time.clock ()
+
+    count = 0
+    for t in range (0, times):
+        sigs = dict ((n, read_signature_file ('%s-1.signature' % n)) for n in names)
+        count += 1
+
+    if timing:
+        print 'elapsed', (time.clock() - t0)/count
+
+
+    t0 = time.clock ()
+    count = 0
+    combinations = {}
+    for (n1, s1) in sigs.items():
+        for (n2, s2) in sigs.items():
+            combinations['%s-%s' % (n1, n2)] = SystemLink (s1,s2).distance ()
+            count += 1
+
+    if timing:
+        print 'elapsed', (time.clock() - t0)/count
+
+    results = combinations.items ()
+    results.sort ()
+    for k,v in results:
+        print '%-20s' % k, v
+
+    assert combinations['20-20'] == (0.0,0.0,0.0)
+    assert combinations['20-20expr'][0] > 0.0
+    assert combinations['20-19'][2] < 10.0
+    assert combinations['20-19'][2] > 0.0
+
+
+def run_tests ():
+    dir = 'test-output-distance'
+
+    do_clean = not os.path.exists (dir)
+
+    print 'test results in ', dir
+    if do_clean:
+        system ('rm -rf ' + dir)
+        system ('mkdir ' + dir)
+        
+    os.chdir (dir)
+    if do_clean:
+        test_basic_compare ()
+        
+    test_compare_trees ()
+    
+################################################################
+#
+
+def main ():
+    p = optparse.OptionParser ("output-distance - compare LilyPond formatting runs")
+    p.usage = 'output-distance.py [options] tree1 tree2'
+    
+    p.add_option ('', '--test-self',
+                  dest="run_test",
+                  action="store_true",
+                  help='run test method')
+    
+    p.add_option ('--max-count',
+                  dest="max_count",
+                  metavar="COUNT",
+                  type="int",
+                  default=0, 
+                  action="store",
+                  help='only analyze COUNT signature pairs')
+
+    p.add_option ('', '--threshold',
+                  dest="threshold",
+                  default=0.3,
+                  action="store",
+                  type="float",
+                  help='threshold for geometric distance')
+
+    p.add_option ('--no-compare-images',
+                  dest="compare_images",
+                  default=True,
+                  action="store_false",
+                  help="Don't run graphical comparisons")
+
+    p.add_option ('--create-images',
+                  dest="create_images",
+                  default=False,
+                  action="store_true",
+                  help="Create PNGs from EPSes")
+
+
+    p.add_option ('--local-datadir',
+                  dest="local_data_dir",
+                  default=False,
+                  action="store_true",
+                  help='whether to use the share/lilypond/ directory in the test directory')
+
+    p.add_option ('-o', '--output-dir',
+                  dest="output_dir",
+                  default=None,
+                  action="store",
+                  type="string",
+                  help='where to put the test results [tree2/compare-tree1tree2]')
+
+    global options
+    (options, args) = p.parse_args ()
+
+    if options.run_test:
+        run_tests ()
+        sys.exit (0)
+
+    if len (args) != 2:
+        p.print_usage()
+        sys.exit (2)
+
+    name = options.output_dir
+    if not name:
+        name = args[0].replace ('/', '')
+        name = os.path.join (args[1], 'compare-' + shorten_string (name))
+    
+    compare_trees (args[0], args[1], name, options.threshold)
+
+if __name__ == '__main__':
+    main()
+
diff --git a/scripts/build/pytt.py b/scripts/build/pytt.py
new file mode 100755 (executable)
index 0000000..8aee66b
--- /dev/null
@@ -0,0 +1,54 @@
+#! /usr/bin/python
+
+'''
+    Copyright (c) 2008--2009
+    Jan Nieuwenhuizen <janneke@gnu.org>
+
+    This program 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, 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+'''
+
+import os
+import re
+import stat
+import sys
+
+dry_run = False
+
+def pytt (from_re, to, file_name):
+    s = file (file_name).read ()
+    name = os.path.basename (file_name)
+    base, ext = os.path.splitext (name)
+    t = re.sub (from_re, to % locals (), s)
+    if s != t:
+        if dry_run:
+            sys.stdout.write (t)
+        else:
+            stat_info = os.stat (file_name)
+            mode = stat.S_IMODE (stat_info[stat.ST_MODE])
+            os.system ('mv --backup=t %(file_name)s %(file_name)s~' % locals ())
+            file (file_name, 'w').write (t)
+            os.chmod (file_name, mode)
+
+def main ():
+    from_re = re.compile (sys.argv[1], re.MULTILINE)
+    to = sys.argv[2]
+    if not sys.argv[3:] or sys.argv[3] == '-':
+        sys.stdout.write (re.sub (from_re, to, sys.stdin.read ()))
+    else:
+        for f in sys.argv[3:]:
+            pytt (from_re, to, f)
+    
+if __name__ == '__main__':
+    main ()
diff --git a/scripts/build/relative.py b/scripts/build/relative.py
new file mode 100755 (executable)
index 0000000..cb1da88
--- /dev/null
@@ -0,0 +1,17 @@
+#! @PYTHON@
+
+import os
+import sys
+
+def relative (dir, r=os.getcwd ()):
+    dir = os.path.normpath (dir) + '/'
+    r = os.path.normpath (r) + '/'
+    prefix = len (os.path.commonprefix ((dir, r)))
+    if prefix == len (dir):
+        return './'
+    if prefix > 1:
+        return '../' * len (r[prefix:].split ('/')) + dir[prefix:]
+    return dir
+
+if __name__ == '__main__':
+    print relative (sys.argv[1])
diff --git a/scripts/build/texi-gettext.py b/scripts/build/texi-gettext.py
new file mode 100644 (file)
index 0000000..546819b
--- /dev/null
@@ -0,0 +1,77 @@
+#!@PYTHON@
+# -*- coding: utf-8 -*-
+# texi-gettext.py
+
+# USAGE:  texi-gettext.py [-o OUTDIR] LANG FILES
+#
+# -o OUTDIR specifies that output files should rather be written in OUTDIR
+#
+
+print "texi_gettext.py"
+
+import sys
+import re
+import os
+import getopt
+
+import langdefs
+
+optlist, args = getopt.getopt (sys.argv[1:],'o:')
+lang = args[0]
+files = args[1:]
+
+outdir = '.'
+for x in optlist:
+    if x[0] == '-o':
+        outdir = x[1]
+
+double_punct_char_separator = langdefs.LANGDICT[lang].double_punct_char_sep
+_doc = langdefs.translation[lang]
+
+include_re = re.compile (r'@include ((?!../lily-).*?)\.texi$', re.M)
+whitespaces = re.compile (r'\s+')
+ref_re = re.compile (r'(?ms)@(rglos|ruser|rprogram|ref)(\{)(.*?)(\})')
+node_section_re = re.compile (r'@(node|(?:unnumbered|appendix)(?:(?:sub){0,2}sec)?|top|chapter|(?:sub){0,2}section|(?:major|chap|(?:sub){0,2})heading)( )(.*?)(\n)')
+menu_entry_re = re.compile (r'\* (.*?)::')
+
+def title_gettext (m):
+    if m.group (2) == '{':
+        r = whitespaces.sub (' ', m.group (3))
+    else:
+        r = m.group (3)
+    return '@' + m.group (1) + m.group (2) + _doc (r) + m.group (4)
+
+def menu_entry_gettext (m):
+    return '* ' + _doc (m.group (1)) + '::'
+
+def include_replace (m, filename):
+    if os.path.exists (os.path.join (os.path.dirname (filename), m.group(1)) + '.texi'):
+        return '@include ' + m.group(1) + '.pdftexi'
+    return m.group(0)
+
+def process_file (filename):
+    print "Processing %s" % filename
+    f = open (filename, 'r')
+    page = f.read ()
+    f.close()
+    page = node_section_re.sub (title_gettext, page)
+    page = ref_re.sub (title_gettext, page)
+    page = menu_entry_re.sub (menu_entry_gettext, page)
+    page = page.replace ("""-- SKELETON FILE --
+When you actually translate this file, please remove these lines as
+well as all `UNTRANSLATED NODE: IGNORE ME' lines.""", '')
+    page = page.replace ('UNTRANSLATED NODE: IGNORE ME', _doc ("This section has not been translated yet; please refer to the manual in English."))
+    includes = include_re.findall (page)
+    page = include_re.sub (lambda m: include_replace (m, filename), page)
+    p = os.path.join (outdir, filename) [:-4] + 'pdftexi'
+    f = open (p, 'w')
+    f.write (page)
+    f.close ()
+    dir = os.path.dirname (filename)
+    for file in includes:
+        p = os.path.join (dir, file) + '.texi'
+        if os.path.exists (p):
+            process_file (p)
+
+for filename in files:
+    process_file (filename)
diff --git a/scripts/build/texi2omf.py b/scripts/build/texi2omf.py
new file mode 100644 (file)
index 0000000..cc2603f
--- /dev/null
@@ -0,0 +1,154 @@
+#!@PYTHON@
+
+import getopt
+import os
+import re
+import sys
+import time
+
+def usage ():
+    sys.stderr.write ('''
+texi2omf [options] FILE.texi > FILE.omf
+
+Options:
+
+--format=FORM         set format FORM  (HTML, PS, PDF, [XML]).
+--location=FILE       file name as installed on disk.
+--version=VERSION
+
+Use the following commands (enclose in @ignore)
+
+@omfsubject . .
+@omfdescription . .
+@omftype . . 
+
+etc.
+
+
+''')
+    
+(options, files) = getopt.getopt (sys.argv[1:], '',
+                 ['format=', 'location=', 'version='])
+
+license = 'FDL'
+location = ''
+version = ''
+email = os.getenv ('MAILADDRESS')
+name = os.getenv ('USERNAME')
+format = 'xml'
+
+for (o, a) in options:
+    if o == '--format':
+        format = a
+    elif o == '--location':
+        location = 'file:%s' % a
+    elif o == '--version':
+        version = a
+    else:
+        assert 0
+
+        
+if not files:
+    usage ()
+    sys.exit (2)
+
+
+formats = {
+    'html' : 'text/html',
+    'pdf' : 'application/pdf',
+    'ps.gz' : 'application/postscript',
+    'ps' : 'application/postscript',
+    'xml' : 'text/xml',
+    }
+
+if not formats.has_key (format):
+    sys.stderr.write ("Format `%s' unknown\n" % format)
+    sys.exit (1)
+
+
+infile = files[0]
+
+today = time.localtime ()
+
+texi = open (infile).read ()
+
+if not location:
+    location = 'file:/%s' % re.sub (r'\..*', '.' + format, infile)
+
+omf_vars = {
+    'date': '%d-%d-%d' %  today[:3],
+    'mimeformat': formats[format],
+    'maintainer':  "%s (%s)" % (name, email),
+    'version' : version,
+    'location' : location,
+    'language' : 'C',
+    }
+
+omf_caterories = ['subject', 'creator', 'maintainer', 'contributor',
+         'title', 'subtitle', 'version', 'category', 'type',
+         'description', 'license', 'language',]
+    
+for a in omf_caterories:
+    m = re.search ('@omf%s (.*)\n'% a, texi)
+    if m:
+        omf_vars[a] = m.group (1)
+    elif not omf_vars.has_key (a):
+        omf_vars[a] = ''
+        
+if not omf_vars['title']:
+    title = ''
+    m = re.search ('@title (.*)\n', texi)
+    if m:
+        title = m.group (1)
+
+    subtitle = ''
+    m = re.search ('@subtitle (.*)\n', texi)
+    if m:
+        subtitle = m.group (1)
+
+    if subtitle:
+        title  = '%s -- %s' % (title, subtitle)
+
+    omf_vars['title'] = title
+    
+if not omf_vars['creator']:
+    m = re.search ('@author (.*)\n', texi)
+    if m:
+        omf_vars['creator'] = m.group (1)
+
+
+
+print r'''<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE omf PUBLIC "-//OMF//DTD Scrollkeeper OMF Variant V1.0//EN" "http://scrollkeeper.sourceforge.net/dtds/scrollkeeper-omf-1.0/scrollkeeper-omf.dtd">
+<omf>
+ <resource>
+  <creator>
+   %(creator)s
+  </creator>
+  <maintainer>
+   %(maintainer)s
+  </maintainer>
+  <title>
+   %(title)s
+  </title>
+  <date>
+   %(date)s
+  </date>
+  <version identifier="%(version)s" date="%(date)s" />
+  <subject category="%(category)s"/>
+  <description>
+  %(description)s
+  </description>
+  <type>
+  %(type)s
+  </type>
+  <format mime="%(mimeformat)s" />
+  <identifier url="%(location)s"/>
+  <language code="%(language)s"/>
+  <rights type="%(license)s" />
+ </resource>
+</omf>
+
+''' % omf_vars
+
+
diff --git a/scripts/build/www_post.py b/scripts/build/www_post.py
new file mode 100644 (file)
index 0000000..21ce380
--- /dev/null
@@ -0,0 +1,106 @@
+#!@PYTHON@
+
+## This is www_post.py. This script is the main stage
+## of toplevel GNUmakefile local-WWW-post target.
+
+# USAGE: www_post PACKAGE_NAME TOPLEVEL_VERSION OUTDIR TARGETS
+# please call me from top of the source directory
+
+import sys
+import os
+import re
+
+import langdefs
+
+import mirrortree
+import postprocess_html
+
+package_name, package_version, outdir, targets = sys.argv[1:]
+targets = targets.split (' ')
+outdir = os.path.normpath (outdir)
+doc_dirs = ['input', 'Documentation', outdir]
+target_pattern = os.path.join (outdir, '%s-root')
+
+# these redirection pages allow to go back to the documentation index
+# from HTML manuals/snippets page
+static_files = {
+    os.path.join (outdir, 'index.html'):
+        '''<META HTTP-EQUIV="refresh" content="0;URL=Documentation/index.html">
+<html><body>Redirecting to the documentation index...</body></html>\n''',
+    os.path.join (outdir, 'VERSION'):
+        package_version + '\n',
+    os.path.join ('input', 'lsr', outdir, 'index.html'):
+        '''<META HTTP-EQUIV="refresh" content="0;URL=../../index.html">
+<html><body>Redirecting to the documentation index...</body></html>\n'''
+    }
+
+for l in langdefs.LANGUAGES:
+    static_files[os.path.join (
+            'Documentation',
+            'user',
+            outdir,
+            l.file_name ('index', '.html'))] = \
+            '<META HTTP-EQUIV="refresh" content="0;URL=../' + l.file_name ('index', '.html') + \
+            '">\n<html><body>Redirecting to the documentation index...</body></html>\n'
+
+for f, contents in static_files.items ():
+    open (f, 'w').write (contents)
+
+sys.stderr.write ("Mirrorring...\n")
+dirs, symlinks, files = mirrortree.walk_tree (
+    tree_roots = doc_dirs,
+    process_dirs = outdir,
+    exclude_dirs = '(^|/)((' + \
+        r'po|out|out-test|out-cov|.*?[.]t2d|\w*?-root)|^Documentation/(' + \
+        '|'.join ([l.code for l in langdefs.LANGUAGES]) + '))(/|$)',
+    find_files = r'.*?\.(?:midi|html|pdf|png|txt|i?ly|signature|css)$|VERSION',
+    exclude_files = r'lily-[0-9a-f]+.*\.(pdf|txt)')
+
+# actual mirrorring stuff
+html_files = []
+hardlinked_files = []
+for f in files:
+    if f.endswith ('.html'):
+        html_files.append (f)
+    else:
+        hardlinked_files.append (f)
+dirs = [re.sub ('/' + outdir, '', d) for d in dirs]
+while outdir in dirs:
+    dirs.remove (outdir)
+dirs = list (set (dirs))
+dirs.sort ()
+
+strip_file_name = {}
+strip_re = re.compile (outdir + '/')
+for t in targets:
+    out_root = target_pattern % t
+    strip_file_name[t] = lambda s: os.path.join (target_pattern % t, (strip_re.sub ('', s)))
+    os.mkdir (out_root)
+    map (os.mkdir, [os.path.join (out_root, d) for d in dirs])
+    for f in hardlinked_files:
+        os.link (f, strip_file_name[t] (f))
+    for l in symlinks:
+        p = mirrortree.new_link_path (os.path.normpath (os.readlink (l)), os.path.dirname (l), strip_re)
+        dest = strip_file_name[t] (l)
+        if not os.path.exists (dest):
+            os.symlink (p, dest)
+
+    ## ad-hoc renaming to make xrefs between PDFs work
+    os.rename (os.path.join (out_root, 'input/lsr/lilypond-snippets.pdf'),
+               os.path.join (out_root, 'Documentation/user/lilypond-snippets.pdf'))
+
+# need this for content negotiation with documentation index
+if 'online' in targets:
+    f = open (os.path.join (target_pattern % 'online', 'Documentation/.htaccess'), 'w')
+    f.write ('#.htaccess\nDirectoryIndex index\n')
+    f.close ()
+
+postprocess_html.build_pages_dict (html_files)
+for t in targets:
+    sys.stderr.write ("Processing HTML pages for %s target...\n" % t)
+    postprocess_html.process_html_files (
+        package_name = package_name,
+        package_version = package_version,
+        target = t,
+        name_filter = strip_file_name[t])
+
index 7affd1bd255326f44dea783ead14fc295388a49e..cffd859ff72ef74900f01579fb3efdbc6bc6c66a 100644 (file)
@@ -4,7 +4,7 @@
 #
 # source file of the GNU LilyPond music typesetter
 #
-# (c) 1998--2007  Han-Wen Nienhuys <hanwen@xs4all.nl>
+# (c) 1998--2009  Han-Wen Nienhuys <hanwen@xs4all.nl>
 #                 Jan Nieuwenhuizen <janneke@gnu.org>
 #
 # converting rules are found in python/convertrules.py
@@ -44,6 +44,9 @@ copyright = ('Jan Nieuwenhuizen <janneke@gnu.org>',
 program_name = os.path.basename (sys.argv[0])
 program_version = '@TOPLEVEL_VERSION@'
 
+authors = ('Jan Nieuwenhuizen <janneke@gnu.org>',
+           'Han-Wen Nienhuys <hanwen@xs4all.nl>')
+
 error_file_write = ly.stderr_write
 
 def warning (s):
@@ -58,17 +61,16 @@ def identify (port=sys.stderr):
 def warranty ():
     identify ()
     ly.encoded_write (sys.stdout, '''
-Copyright (c) %s by
+%s
 
-  Han-Wen Nienhuys
-  Jan Nieuwenhuizen
+%s
 
 %s
 %s
-'''  ( '2001--2006',
-       _ ("Distributed under terms of the GNU General Public License."),
-       _ ('It comes with NO WARRANTY.')))
-
+''' % ( _ ('Copyright (c) %s by') % '2001--2009',
+        ' '.join (authors),
+        _ ('Distributed under terms of the GNU General Public License.'),
+        _ ('It comes with NO WARRANTY.')))
 
 def get_option_parser ():
     p = ly.get_option_parser (usage=_ ("%s [OPTION]... FILE") % 'convert-ly',
@@ -117,11 +119,14 @@ def get_option_parser ():
               action='store',
               dest="to_version",
               default='')
-
+    p.add_option ('-w', '--warranty', help=_ ("show warranty and copyright"),
+           action='store_true',
+           ),
     p.add_option_group ('',
-                        description=(_ ("Report bugs via")
-                                     + ''' http://post.gmane.org/post.php'''
-                                     '''?group=gmane.comp.gnu.lilypond.bugs\n'''))
+                        description=(
+            _ ("Report bugs via %s")
+            % 'http://post.gmane.org/post.php'
+            '?group=gmane.comp.gnu.lilypond.bugs') + '\n')
     
     return p
 
@@ -174,7 +179,7 @@ string."""
         error_file_write ('\n'
                           + _ ("Error while converting")
                           + '\n'
-                          + _ ("Stopping at last succesful rule")
+                          + _ ("Stopping at last successful rule")
                           + '\n')
 
     return (last_conversion, str)
@@ -255,6 +260,9 @@ def do_options ():
     opt_parser = get_option_parser()
     (options, args) = opt_parser.parse_args ()
 
+    if options.warranty:
+        warranty ()
+        sys.exit (0)
 
     if options.from_version:
         options.from_version = str_to_tuple (options.from_version)
index 39a6fba4abf08c2cc1a68c05aa95769539df7ec3..54daa94decea6db273a297308eaa815797fb1321 100644 (file)
@@ -34,6 +34,9 @@ import os
 
 program_name = sys.argv[0]
 
+authors = ('Jan Nieuwenhuizen <janneke@gnu.org>',
+           'Han-Wen Nienhuys <hanwen@xs4all.nl>')
+
 version = '@TOPLEVEL_VERSION@'
 if version == '@' + 'TOPLEVEL_VERSION' + '@':
     version = '(unknown version)'           # uGUHGUHGHGUGH
@@ -508,7 +511,7 @@ class Frame:
         if left[0]:
             str = str + rational_to_lily_skip (left)
 
-        str = str + '  | \n'
+        str = str + '  |\n'
         return str
         
 def encodeint (i):
@@ -615,7 +618,7 @@ class Staff:
                     fr = m.frames[x]
                 except IndexError:
                     sys.stderr.write ("Skipping nonexistent frame %d\n" % x)
-                    laystr = laystr + "%% non existent frame %d (skipped) \n" % x
+                    laystr = laystr + "%% non existent frame %d (skipped)\n" % x
                 if fr:
                     first_frame = fr
                     if gap <> (0,1):
@@ -1162,18 +1165,16 @@ def identify():
 def warranty ():
     identify ()
     sys.stdout.write ('''
-Copyright (c) %s by
+%s
 
- Han-Wen Nienhuys
- Jan Nieuwenhuizen
+  %s
 
 %s
 %s
-''' % ( '2001--2006',
-   _('Distributed under terms of the GNU General Public License.'),
-   _('It comes with NO WARRANTY.')))
-
-
+''' % ( _ ('Copyright (c) %s by') % '2001--2009',
+        '\n  '.join (authors),
+        _ ('Distributed under terms of the GNU General Public License.'),
+        _ ('It comes with NO WARRANTY.')))
 
 def get_option_parser ():
     p = ly.get_option_parser (usage=_ ("%s [OPTION]... ETF-FILE") % 'etf2ly',
@@ -1196,9 +1197,10 @@ Finale product.  etf2ly converts a subset of ETF to a ready-to-use LilyPond file
            ),
 
     p.add_option_group ('',
-                        description=(_ ('Report bugs via')
-                                     + ''' http://post.gmane.org/post.php'''
-                                     '''?group=gmane.comp.gnu.lilypond.bugs\n'''))
+                        description=(
+            _ ('Report bugs via %s')
+            % 'http://post.gmane.org/post.php'
+            '?group=gmane.comp.gnu.lilypond.bugs') + '\n')
     return p
 
 def do_options ():
index 22eb8e61f47b7ef8b05f6a7704bc1d748bbe5ccd..b8481b3457d5e54ea72d193270f6ce2e919f8f12 100644 (file)
@@ -1,6 +1,6 @@
 #!@TARGET_PYTHON@
 
-# Copyright (C) 2006, 2007 Brailcom, o.p.s.
+# Copyright (c) 2006--2009 Brailcom, o.p.s.
 #
 # Author: Milan Zamazal <pdm@brailcom.org>
 #
index be9fef694a5d81049d92799b4ecb39d18498fbc9..e851a40662c134302f7e5bb9508e1a103fd6e83f 100644 (file)
@@ -15,7 +15,7 @@ classic lilypond-book:
 TODO:
 
   *  this script is too complex. Modularize.
-  
+
   *  ly-options: intertext?
   *  --line-width?
   *  eps in latex / eps by lilypond -b ps?
@@ -51,6 +51,17 @@ ly.require_python_version ()
 program_version = '@TOPLEVEL_VERSION@'
 program_name = os.path.basename (sys.argv[0])
 
+# Check if program_version contains @ characters. This will be the case if
+# the .py file is called directly while building the lilypond documentation.
+# If so, try to check for the env var LILYPOND_VERSION, which is set by our
+# makefiles and use its value.
+at_re = re.compile (r'@')
+if at_re.match (program_version):
+    if os.environ.has_key('LILYPOND_VERSION'):
+        program_version = os.environ['LILYPOND_VERSION']
+    else:
+        program_version = "unknown"
+
 original_dir = os.getcwd ()
 backend = 'ps'
 
@@ -97,12 +108,12 @@ def warranty ():
     ly.encoded_write (sys.stdout, '''
 %s
 
-%s
+  %s
 
 %s
 %s
-''' % ( _ ('Copyright (c) %s by') % '2001--2007',
-        ' '.join (authors),
+''' % ( _ ('Copyright (c) %s by') % '2001--2009',
+        '\n  '.join (authors),
         _ ("Distributed under terms of the GNU General Public License."),
         _ ("It comes with NO WARRANTY.")))
 
@@ -144,18 +155,18 @@ def get_option_parser ():
                   action='store', dest='latex_program',
                   default='latex')
 
-    p.add_option ('--left-padding', 
+    p.add_option ('--left-padding',
                   metavar=_ ("PAD"),
                   dest="padding_mm",
                   help=_ ("pad left side of music to align music inspite of uneven bar numbers (in mm)"),
                   type="float",
                   default=3.0)
-    
+
     p.add_option ("-o", '--output', help=_ ("write output to DIR"),
                   metavar=_ ("DIR"),
                   action='store', dest='output_dir',
                   default='')
-    
+
     p.add_option ('--skip-lily-check',
                   help=_ ("do not fail if no lilypond output is found"),
                   metavar=_ ("DIR"),
@@ -167,16 +178,16 @@ def get_option_parser ():
                   metavar=_ ("DIR"),
                   action='store_true', dest='skip_png_check',
                   default=False)
-    
+
     p.add_option ('--lily-output-dir',
                   help=_ ("write lily-XXX files to DIR, link into --output dir"),
                   metavar=_ ("DIR"),
                   action='store', dest='lily_output_dir',
                   default=None)
-    
+
     p.add_option ('-P', '--process', metavar=_ ("COMMAND"),
                   help = _ ("process ly_files using COMMAND FILE..."),
-                  action='store', 
+                  action='store',
                   dest='process_cmd', default='')
 
     p.add_option ('--pdf',
@@ -200,8 +211,9 @@ def get_option_parser ():
                   action='store_true')
     p.add_option_group ('',
                         description=(
-        _ ("Report bugs via")
-        + ' http://post.gmane.org/post.php?group=gmane.comp.gnu.lilypond.bugs\n'))
+        _ ("Report bugs via %s")
+        % ' http://post.gmane.org/post.php'
+        '?group=gmane.comp.gnu.lilypond.bugs') + '\n')
     return p
 
 lilypond_binary = os.path.join ('@bindir@', 'lilypond')
@@ -241,6 +253,7 @@ LAYOUT = 'layout'
 LINE_WIDTH = 'line-width'
 LILYQUOTE = 'lilyquote'
 NOFRAGMENT = 'nofragment'
+NOGETTEXT = 'nogettext'
 NOINDENT = 'noindent'
 NOQUOTE = 'noquote'
 NORAGGED_RIGHT = 'noragged-right'
@@ -248,7 +261,6 @@ NOTES = 'body'
 NOTIME = 'notime'
 OUTPUT = 'output'
 OUTPUTIMAGE = 'outputimage'
-PACKED = 'packed'
 PAPER = 'paper'
 PREAMBLE = 'preamble'
 PRINTFILENAME = 'printfilename'
@@ -260,6 +272,7 @@ DOCTITLE = 'doctitle'
 TEXIDOC = 'texidoc'
 TEXINFO = 'texinfo'
 VERBATIM = 'verbatim'
+VERSION = 'lilypondversion'
 FONTLOAD = 'fontload'
 FILENAME = 'filename'
 ALT = 'alt'
@@ -277,6 +290,9 @@ no_options = {
 #
 #   (?P<name>regex) -- Assign result of REGEX to NAME.
 #   *? -- Match non-greedily.
+#   (?!...) -- Match if `...' doesn't match next (without consuming
+#              the string).
+#
 #   (?m) -- Multiline regex: Make ^ and $ match at each line.
 #   (?s) -- Make the dot match all characters including newline.
 #   (?x) -- Ignore whitespace in patterns.
@@ -290,17 +306,36 @@ snippet_res = {
         'lilypond':
          r'''(?smx)
           (?P<match>
-          <(?P<inline>(inline)?)mediaobject>\s*<textobject.*?>\s*<programlisting\s+language="lilypond".*?(role="(?P<options>.*?)")?>(?P<code>.*?)</programlisting\s*>\s*</textobject\s*>\s*</(inline)?mediaobject>)''',
+          <(?P<inline>(inline)?)mediaobject>\s*
+          <textobject.*?>\s*
+          <programlisting\s+language="lilypond".*?(role="(?P<options>.*?)")?>
+          (?P<code>.*?)
+          </programlisting\s*>\s*
+          </textobject\s*>\s*
+          </(inline)?mediaobject>)''',
 
         'lilypond_block':
          r'''(?smx)
           (?P<match>
-          <(?P<inline>(inline)?)mediaobject>\s*<textobject.*?>\s*<programlisting\s+language="lilypond".*?(role="(?P<options>.*?)")?>(?P<code>.*?)</programlisting\s*>\s*</textobject\s*>\s*</(inline)?mediaobject>)''',
+          <(?P<inline>(inline)?)mediaobject>\s*
+          <textobject.*?>\s*
+          <programlisting\s+language="lilypond".*?(role="(?P<options>.*?)")?>
+          (?P<code>.*?)
+          </programlisting\s*>\s*
+          </textobject\s*>\s*
+          </(inline)?mediaobject>)''',
 
         'lilypond_file':
          r'''(?smx)
           (?P<match>
-          <(?P<inline>(inline)?)mediaobject>\s*<imageobject.*?>\s*<imagedata\s+fileref="(?P<filename>.*?\.ly)"\s*(role="(?P<options>.*?)")?\s*(/>|>\s*</imagedata>)\s*</imageobject>\s*</(inline)?mediaobject>)''',
+          <(?P<inline>(inline)?)mediaobject>\s*
+          <imageobject.*?>\s*
+          <imagedata\s+
+           fileref="(?P<filename>.*?\.ly)"\s*
+           (role="(?P<options>.*?)")?\s*
+           (/>|>\s*</imagedata>)\s*
+          </imageobject>\s*
+          </(inline)?mediaobject>)''',
 
         'multiline_comment':
          r'''(?smx)
@@ -316,9 +351,11 @@ snippet_res = {
          no_match,
 
         'verbatim':
-       no_match,
-       
-    }, 
+         no_match,
+
+        'lilypondversion':
+         no_match,
+    },
     ##
     HTML: {
         'include':
@@ -370,6 +407,11 @@ snippet_res = {
           (?s)
           (?P<match>
            (?P<code><pre>\s.*?</pre>\s))''',
+
+        'lilypondversion':
+         r'''(?mx)
+          (?P<match>
+          <lilypondversion\s*/>)''',
     },
 
     ##
@@ -443,6 +485,12 @@ snippet_res = {
            \\begin\s*{verbatim}
             .*?
            \\end\s*{verbatim}))''',
+
+        'lilypondversion':
+         r'''(?smx)
+          (?P<match>
+          \\lilypondversion)[^a-zA-Z]''',
+
     },
 
     ##
@@ -509,17 +557,21 @@ snippet_res = {
            @example
             \s.*?
            @end\s+example\s))''',
-    },
-}
 
+        'lilypondversion':
+         r'''(?mx)
+         [^@](?P<match>
+          @lilypondversion)[^a-zA-Z]''',
 
+    },
+}
 
 
 format_res = {
-    DOCBOOK: {        
-       'intertext': r',?\s*intertext=\".*?\"',
+    DOCBOOK: {
+        'intertext': r',?\s*intertext=\".*?\"',
         'option_sep': '\s*',
-    }, 
+    },
     HTML: {
         'intertext': r',?\s*intertext=\".*?\"',
         'option_sep': '\s*',
@@ -536,11 +588,13 @@ format_res = {
     },
 }
 
+
 # Options without a pattern in ly_options.
 simple_options = [
     EXAMPLEINDENT,
     FRAGMENT,
     NOFRAGMENT,
+    NOGETTEXT,
     NOINDENT,
     PRINTFILENAME,
     DOCTITLE,
@@ -572,8 +626,6 @@ ly_options = {
         RAGGED_RIGHT: r'''ragged-right = ##t''',
 
         NORAGGED_RIGHT: r'''ragged-right = ##f''',
-
-        PACKED: r'''packed = ##t''',
     },
 
     ##
@@ -597,19 +649,37 @@ ly_options = {
 
 output = {
     ##
-    DOCBOOK: {                 
-        FILTER: r'''<mediaobject><textobject><programlisting language="lilypond" role="%(options)s">%(code)s</programlisting></textobject></mediaobject>''', 
-    
-        OUTPUT: r'''
-        <imageobject role="latex">
-               <imagedata fileref="%(base)s.pdf" format="PDF"/>
-               </imageobject>
-               <imageobject role="html">
-               <imagedata fileref="%(base)s.png" format="PNG"/></imageobject>''',
-    
-        VERBATIM: r'''<programlisting>%(verb)s</programlisting>''',
-    
-        PRINTFILENAME: '<textobject><simpara><ulink url="%(base)s.ly"><filename>%(filename)s</filename></ulink></simpara></textobject>'
+    DOCBOOK: {
+        FILTER: r'''<mediaobject>
+  <textobject>
+    <programlisting language="lilypond"
+                    role="%(options)s">
+%(code)s
+    </programlisting>
+  </textobject>
+</mediaobject>''',
+
+        OUTPUT: r'''<imageobject role="latex">
+  <imagedata fileref="%(base)s.pdf" format="PDF"/>
+</imageobject>
+<imageobject role="html">
+  <imagedata fileref="%(base)s.png" format="PNG"/>
+</imageobject>''',
+
+        VERBATIM: r'''<programlisting>
+%(verb)s</programlisting>''',
+
+        VERSION: program_version,
+
+        PRINTFILENAME: r'''<textobject>
+  <simpara>
+    <ulink url="%(base)s.ly">
+      <filename>
+        %(filename)s
+      </filename>
+    </ulink>
+  </simpara>
+</textobject>'''
     },
     ##
     HTML: {
@@ -626,8 +696,10 @@ output = {
  <a href="%(base)s.ly">''',
 
         OUTPUT: r'''
-  <img align="middle" 
-    border="0" src="%(image)s" alt="%(alt)s">''',
+  <img align="middle"
+       border="0"
+       src="%(image)s"
+       alt="%(alt)s">''',
 
         PRINTFILENAME: '<p><tt><a href="%(base)s.ly">%(filename)s</a></tt></p>',
 
@@ -638,34 +710,38 @@ output = {
 
         VERBATIM: r'''<pre>
 %(verb)s</pre>''',
+
+        VERSION: program_version,
     },
 
     ##
     LATEX: {
         OUTPUT: r'''{%%
-\parindent 0pt%%
-\ifx\preLilyPondExample \undefined%%
- \relax%%
-\else%%
- \preLilyPondExample%%
-\fi%%
+\parindent 0pt
+\ifx\preLilyPondExample \undefined
+\else
+  \expandafter\preLilyPondExample
+\fi
 \def\lilypondbook{}%%
-\input %(base)s-systems.tex%%
-\ifx\postLilyPondExample \undefined%%
- \relax%%
-\else%%
- \postLilyPondExample%%
-\fi%%
+\input %(base)s-systems.tex
+\ifx\postLilyPondExample \undefined
+\else
+  \expandafter\postLilyPondExample
+\fi
 }''',
 
         PRINTFILENAME: '''\\texttt{%(filename)s}
-    ''',
+''',
 
-        QUOTE: r'''\begin{quotation}%(str)s
+        QUOTE: r'''\begin{quotation}
+%(str)s
 \end{quotation}''',
 
         VERBATIM: r'''\noindent
-\begin{verbatim}%(verb)s\end{verbatim}''',
+\begin{verbatim}%(verb)s\end{verbatim}
+''',
+
+        VERSION: program_version,
 
         FILTER: r'''\begin{lilypond}[%(options)s]
 %(code)s
@@ -692,7 +768,9 @@ output = {
 <p>
  <a href="%(base)s.ly">
   <img align="middle"
-    border="0" src="%(image)s" alt="%(alt)s">
+       border="0"
+       src="%(image)s"
+       alt="%(alt)s">
  </a>
 </p>
 @end html
@@ -721,6 +799,8 @@ output = {
 %(verb)s@end verbatim
 ''',
 
+        VERSION: program_version,
+
         ADDVERSION: r'''@example
 \version @w{"@version{}"}
 @end example
@@ -745,7 +825,7 @@ PREAMBLE_LY = '''%%%% Generated by %(program_name)s
 
 
 %% ****************************************************************
-%% Start cut-&-pastable-section 
+%% Start cut-&-pastable-section
 %% ****************************************************************
 
 %(preamble_string)s
@@ -827,7 +907,7 @@ def find_file (name, raise_error=True):
         full = os.path.join (i, name)
         if os.path.exists (full):
             return full
-        
+
     if raise_error:
         error (_ ("file not found: %s") % name + '\n')
         exit (1)
@@ -840,6 +920,8 @@ def verbatim_html (s):
 
 ly_var_def_re = re.compile (r'^([a-zA-Z]+)[\t ]*=', re.M)
 ly_comment_re = re.compile (r'(%+[\t ]*)(.*)$', re.M)
+ly_context_id_re = re.compile ('\\\\(?:new|context)\\s+(?:[a-zA-Z]*?(?:Staff\
+(?:Group)?|Voice|FiguredBass|FretBoards|Names|Devnull))\\s+=\\s+"?([a-zA-Z]+)"?\\s+')
 
 def ly_comment_gettext (t, m):
     return m.group (1) + t (m.group (2))
@@ -853,11 +935,16 @@ def verb_ly_gettext (s):
         return s
 
     s = ly_comment_re.sub (lambda m: ly_comment_gettext (t, m), s)
-    
-    for v in ly_var_def_re.findall (s):
-        s = re.sub (r"(?m)(^|[' \\#])%s([^a-zA-Z])" % v,
-                    "\\1" + t (v) + "\\2",
-                    s)
+
+    if langdefs.LANGDICT[document_language].enable_ly_identifier_l10n:
+        for v in ly_var_def_re.findall (s):
+            s = re.sub (r"(?m)(^|[' \\#])%s([^a-zA-Z])" % v,
+                        "\\1" + t (v) + "\\2",
+                        s)
+        for id in ly_context_id_re.findall (s):
+            s = re.sub (r'(\s+|")%s(\s+|")' % id,
+                        "\\1" + t (id) + "\\2",
+                        s)
     return s
 
 texinfo_lang_re = re.compile ('(?m)^@documentlanguage (.*?)( |$)')
@@ -895,7 +982,7 @@ class Chunk:
 
     def is_plain (self):
         return False
-    
+
 class Substring (Chunk):
     """A string that does not require extra memory."""
     def __init__ (self, source, start, end, line_number):
@@ -904,7 +991,7 @@ class Substring (Chunk):
         self.end = end
         self.line_number = line_number
         self.override_text = None
-        
+
     def is_plain (self):
         return True
 
@@ -950,7 +1037,10 @@ class LilypondSnippet (Snippet):
         self.do_options (os, self.type)
 
     def verb_ly (self):
-        return verb_ly_gettext (self.substring ('code'))
+        if NOGETTEXT in self.option_dict:
+            return self.substring ('code')
+        else:
+            return verb_ly_gettext (self.substring ('code'))
 
     def ly (self):
         contents = self.substring ('code')
@@ -1149,7 +1239,7 @@ class LilypondSnippet (Snippet):
 
             ## let's not create too long names.
             self.checksum = hash.hexdigest ()[:10]
-            
+
         return self.checksum
 
     def basename (self):
@@ -1168,7 +1258,8 @@ class LilypondSnippet (Snippet):
         file (path + '.txt', 'w').write ('image of music')
 
     def relevant_contents (self, ly):
-        return re.sub (r'\\(version|sourcefileline|sourcefilename)[^\n]*\n', '', ly)
+        return re.sub (r'\\(version|sourcefileline|sourcefilename)[^\n]*\n|' +
+                       NOGETTEXT + '[,\]]', '', ly)
 
     def link_all_output_files (self, output_dir, output_dir_files, destination):
         existing, missing = self.all_output_files (output_dir, output_dir_files)
@@ -1188,7 +1279,7 @@ class LilypondSnippet (Snippet):
                 os.makedirs (dst_path)
             os.link (src, dst)
 
-        
+
     def all_output_files (self, output_dir, output_dir_files):
         """Return all files generated in lily_output_dir, a set.
 
@@ -1201,7 +1292,7 @@ class LilypondSnippet (Snippet):
         def consider_file (name):
             if name in output_dir_files:
                 result.add (name)
-             
+
         def require_file (name):
             if name in output_dir_files:
                 result.add (name)
@@ -1256,14 +1347,14 @@ class LilypondSnippet (Snippet):
             # markups do not output a signature.
             if 'ddump-signature' in global_options.process_cmd:
                 consider_file (systemfile + '.signature')
-             
-       
+
+
         return (result, missing)
-    
+
     def is_outdated (self, output_dir, current_files):
         found, missing = self.all_output_files (output_dir, current_files)
         return missing
-    
+
     def filter_text (self):
         """Run snippet bodies through a command (say: convert-ly).
 
@@ -1288,14 +1379,14 @@ class LilypondSnippet (Snippet):
         single = '%(base)s.png' % vars ()
         multiple = '%(base)s-page1.png' % vars ()
         images = (single,)
-        if (os.path.exists (multiple) 
+        if (os.path.exists (multiple)
             and (not os.path.exists (single)
                  or (os.stat (multiple)[stat.ST_MTIME]
                      > os.stat (single)[stat.ST_MTIME]))):
             count = ps_page_count ('%(base)s.eps' % vars ())
             images = ['%s-page%d.png' % (base, page) for page in range (1, count+1)]
             images = tuple (images)
-            
+
         return images
 
     def output_docbook (self):
@@ -1304,8 +1395,8 @@ class LilypondSnippet (Snippet):
         for image in self.get_images ():
             (base, ext) = os.path.splitext (image)
             str += output[DOCBOOK][OUTPUT] % vars ()
-           str += self.output_print_filename (DOCBOOK)
-            if (self.substring('inline') == 'inline'): 
+            str += self.output_print_filename (DOCBOOK)
+            if (self.substring('inline') == 'inline'):
                 str = '<inlinemediaobject>' + str + '</inlinemediaobject>'
             else:
                 str = '<mediaobject>' + str + '</mediaobject>'
@@ -1313,7 +1404,7 @@ class LilypondSnippet (Snippet):
                 verb = verbatim_html (self.verb_ly ())
                 str = output[DOCBOOK][VERBATIM] % vars () + str
         return str
-       
+
     def output_html (self):
         str = ''
         base = self.basename ()
@@ -1364,7 +1455,7 @@ class LilypondSnippet (Snippet):
         if 0:
             breaks = self.ly ().count ("\n")
             str += "".ljust (breaks, "\n").replace ("\n","%\n")
-        
+
         if QUOTE in self.option_dict:
             str = output[LATEX][QUOTE] % vars ()
         return str
@@ -1385,9 +1476,9 @@ class LilypondSnippet (Snippet):
             doctitle = base + '.doctitle'
             translated_doctitle = doctitle + document_language
             if os.path.exists (translated_doctitle):
-                str += '@lydoctitle %s\n' % open (translated_doctitle).read ()
+                str += '@lydoctitle %s\n\n' % open (translated_doctitle).read ()
             elif os.path.exists (doctitle):
-                str += '@lydoctitle %s\n' % open (doctitle).read ()
+                str += '@lydoctitle %s\n\n' % open (doctitle).read ()
         if TEXIDOC in self.option_dict:
             texidoc = base + '.texidoc'
             translated_texidoc = texidoc + document_language
@@ -1440,11 +1531,21 @@ class LilypondFileSnippet (LilypondSnippet):
                 % (name, self.contents))
 
 
+class LilyPondVersionString (Snippet):
+    """A string that does not require extra memory."""
+    def __init__ (self, type, match, format, line_number):
+        Snippet.__init__ (self, type, match, format, line_number)
+
+    def replacement_text (self):
+        return output[self.format][self.type]
+
+
 snippet_type_to_class = {
     'lilypond_file': LilypondFileSnippet,
     'lilypond_block': LilypondSnippet,
     'lilypond': LilypondSnippet,
     'include': IncludeSnippet,
+    'lilypondversion': LilyPondVersionString,
 }
 
 def find_linestarts (s):
@@ -1487,7 +1588,7 @@ def find_toplevel_snippets (input_string, format, types):
         for type in types:
             if not found[type] or found[type][0] < index:
                 found[type] = None
-                
+
                 m = res[type].search (input_string[index:endex])
                 if not m:
                     continue
@@ -1506,8 +1607,8 @@ def find_toplevel_snippets (input_string, format, types):
 
                 found[type] = (start, snip)
 
-            if (found[type] 
-                and (not first 
+            if (found[type]
+                and (not first
                      or found[type][0] < found[first][0])):
                 first = type
 
@@ -1540,7 +1641,7 @@ def find_toplevel_snippets (input_string, format, types):
 
 def filter_pipe (input, cmd):
     """Pass input through cmd, and return the result."""
-    
+
     if global_options.verbose:
         progress (_ ("Opening filter `%s'") % cmd)
 
@@ -1575,13 +1676,13 @@ def system_in_directory (cmd, directory):
 
     Because of win32 compatibility, we can't simply use subprocess.
     """
-    
+
     current = os.getcwd()
     os.chdir (directory)
-    ly.system(cmd, be_verbose=global_options.verbose, 
+    ly.system(cmd, be_verbose=global_options.verbose,
               progress_p=1)
     os.chdir (current)
-    
+
 
 def process_snippets (cmd, snippets,
                       format, lily_output_dir):
@@ -1589,14 +1690,14 @@ def process_snippets (cmd, snippets,
 
     if not snippets:
         return
-    
+
     if format in (HTML, TEXINFO) and '--formats' not in cmd:
         cmd += ' --formats=png '
     elif format in (DOCBOOK) and '--formats' not in cmd:
         cmd += ' --formats=png,pdf '
 
     checksum = snippet_list_checksum (snippets)
-    contents = '\n'.join (['snippet-map-%d.ly' % checksum] 
+    contents = '\n'.join (['snippet-map-%d.ly' % checksum]
                           + [snip.basename() + '.ly' for snip in snippets])
     name = os.path.join (lily_output_dir,
                          'snippet-names-%d.ly' % checksum)
@@ -1604,8 +1705,8 @@ def process_snippets (cmd, snippets,
 
     system_in_directory (' '.join ([cmd, ly.mkarg (name)]),
                          lily_output_dir)
-            
-        
+
+
 ###
 # Retrieve dimensions from LaTeX
 LATEX_INSPECTION_DOCUMENT = r'''
@@ -1623,13 +1724,13 @@ def get_latex_textwidth (source):
     m = re.search (r'''(?P<preamble>\\begin\s*{document})''', source)
     if m == None:
         warning (_ ("cannot find \\begin{document} in LaTeX document"))
-        
+
         ## what's a sensible default?
         return 550.0
-    
+
     preamble = source[:m.start (0)]
     latex_document = LATEX_INSPECTION_DOCUMENT % vars ()
-    
+
     (handle, tmpfile) = tempfile.mkstemp('.tex')
     logfile = os.path.splitext (tmpfile)[0] + '.log'
     logfile = os.path.split (logfile)[1]
@@ -1637,11 +1738,11 @@ def get_latex_textwidth (source):
     tmp_handle = os.fdopen (handle,'w')
     tmp_handle.write (latex_document)
     tmp_handle.close ()
-    
+
     ly.system ('%s %s' % (global_options.latex_program, tmpfile),
                be_verbose=global_options.verbose)
     parameter_string = file (logfile).read()
-    
+
     os.unlink (tmpfile)
     os.unlink (logfile)
 
@@ -1672,7 +1773,7 @@ def modify_preamble (chunk):
                r"\\usepackage{graphics}" + '\n'
                + r"\\begin{document}",
                str)
-        chunk.override_text = str 
+        chunk.override_text = str
 
 
 format2ext = {
@@ -1720,8 +1821,8 @@ def do_process_cmd (chunks, input_name, options):
 
     output_files = split_output_files (options.lily_output_dir)
     outdated = [c for c in snippets if c.is_outdated (options.lily_output_dir, output_files)]
-    
-    write_file_map (outdated, input_name)    
+
+    write_file_map (outdated, input_name)
     progress (_ ("Writing snippets..."))
     for snippet in outdated:
         snippet.write_ly()
@@ -1840,15 +1941,15 @@ def do_file (input_filename, included=False):
         global_options.output_dir = os.getcwd()
     else:
         global_options.output_dir = os.path.abspath(global_options.output_dir)
-        
+
         if not os.path.isdir (global_options.output_dir):
             os.mkdir (global_options.output_dir, 0777)
         os.chdir (global_options.output_dir)
 
     output_filename = os.path.join(global_options.output_dir,
                                    input_base + format2ext[global_options.format])
-    if (os.path.exists (input_filename) 
-        and os.path.exists (output_filename) 
+    if (os.path.exists (input_filename)
+        and os.path.exists (output_filename)
         and samefile (output_filename, input_fullname)):
      error (
      _ ("Output would overwrite input file; use --output."))
@@ -1873,6 +1974,7 @@ def do_file (input_filename, included=False):
             'lilypond_file',
             'include',
             'lilypond',
+            'lilypondversion',
         )
         progress (_ ("Dissecting..."))
         chunks = find_toplevel_snippets (source, global_options.format, snippet_types)
@@ -1895,7 +1997,7 @@ def do_file (input_filename, included=False):
             write_if_updated (output_filename,
                      [s.replacement_text ()
                      for s in chunks])
-        
+
         def process_include (snippet):
             os.chdir (original_dir)
             name = snippet.substring ('filename')
@@ -1908,7 +2010,7 @@ def do_file (input_filename, included=False):
                                       chunks))
 
         return chunks + reduce (lambda x, y: x + y, include_chunks, [])
-        
+
     except CompileError:
         os.chdir (original_dir)
         progress (_ ("Removing `%s'") % output_filename)
@@ -1924,14 +2026,14 @@ def do_options ():
         global_options.format = TEXINFO
 
     global_options.include_path =  map (os.path.abspath, global_options.include_path)
-    
+
     if global_options.warranty:
         warranty ()
         exit (0)
     if not args or len (args) > 1:
         opt_parser.print_help ()
         exit (2)
-        
+
     return args
 
 def main ():
@@ -1940,7 +2042,7 @@ def main ():
 
     basename = os.path.splitext (files[0])[0]
     basename = os.path.split (basename)[1]
-    
+
     if not global_options.format:
         global_options.format = guess_format (files[0])
 
@@ -1949,7 +2051,7 @@ def main ():
         formats += ',png'
 
     if global_options.process_cmd == '':
-        global_options.process_cmd = (lilypond_binary 
+        global_options.process_cmd = (lilypond_binary
                                       + ' --formats=%s -dbackend=eps ' % formats)
 
     if global_options.process_cmd:
@@ -1966,13 +2068,13 @@ def main ():
         global_options.process_cmd += ' --formats=eps '
         if global_options.create_pdf:
             global_options.process_cmd += "--pdf -dinclude-eps-fonts -dgs-load-fonts "
-    
+
     if global_options.verbose:
         global_options.process_cmd += " --verbose "
 
     if global_options.padding_mm:
         global_options.process_cmd += " -deps-box-padding=%f " % global_options.padding_mm
-        
+
     global_options.process_cmd += " -dread-file-list -dno-strip-output-dir"
 
     if global_options.lily_output_dir:
@@ -1981,7 +2083,7 @@ def main ():
             os.makedirs (global_options.lily_output_dir)
     else:
         global_options.lily_output_dir = os.path.abspath(global_options.output_dir)
-        
+
 
     identify ()
     try:
@@ -1997,7 +2099,7 @@ def main ():
     final_output_file = os.path.join (global_options.output_dir,
                      base_file_name
                      + '.%s' % global_options.format)
-    
+
     os.chdir (original_dir)
     file (dep_file, 'w').write ('%s: %s'
                                 % (final_output_file, ' '.join (inputs)))
index d847be27e9c0475e1063e1755e0b1166b686b930..2f4f3e84e54c9cfc5af90edc3675172093f634f4 100644 (file)
@@ -4,7 +4,7 @@
 ;;;;
 ;;;; source file of the GNU LilyPond music typesetter
 ;;;;
-;;;; (c) 2005--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+;;;; (c) 2005--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 
 ;; gui debug helper
 ;; (define (exit x) (system "sleep 10"))
@@ -42,7 +42,7 @@
     (define-public (_ x) x))
 
 (define (show-version port)
-  (format port "~a (GNU LilyPond) ~a \n" PROGRAM-NAME TOPLEVEL-VERSION))
+  (format port "~a (GNU LilyPond) ~a\n" PROGRAM-NAME TOPLEVEL-VERSION))
 
 (define (show-help port)
   (format port (_ "Usage: lilypond-invoke-editor [textedit://]FILE:LINE:CHAR:COLUMN
index adc6f57526cf8e608ca464b5df4f00628d2098ce..f02aca7903abac1d6e4b96fa8be23a6a4ecc7205 100644 (file)
@@ -1,6 +1,6 @@
 #!@TARGET_PYTHON@
 
-# Copyright (C) 2006, 2007 Brailcom, o.p.s.
+# Copyright (c) 2006--2009 Brailcom, o.p.s.
 #
 # Author: Milan Zamazal <pdm@brailcom.org>
 #
index d86ea1fd7f5ced4e84a86918f2af1792a5a3ccc0..c57c788d51d042fdf0f2ca42ece26edf6fc8c328 100644 (file)
@@ -4,7 +4,7 @@
 # 
 # source file of the GNU LilyPond music typesetter
 #
-# (c) 1998--2007  Han-Wen Nienhuys <hanwen@xs4all.nl>
+# (c) 1998--2009  Han-Wen Nienhuys <hanwen@xs4all.nl>
 #                 Jan Nieuwenhuizen <janneke@gnu.org>
 
 
@@ -57,6 +57,9 @@ allowed_tuplet_clocks = []
 program_name = sys.argv[0]
 program_version = '@TOPLEVEL_VERSION@'
 
+authors = ('Jan Nieuwenhuizen <janneke@gnu.org>',
+           'Han-Wen Nienhuys <hanwen@xs4all.nl>')
+
 errorport = sys.stderr
 
 def identify ():
@@ -65,17 +68,16 @@ def identify ():
 def warranty ():
     identify ()
     ly.encoded_write (sys.stdout, '''
-Copyright (c) %s by
+%s
 
- Han-Wen Nienhuys
- Jan Nieuwenhuizen
+  %s
 
 %s
 %s
-'''  ( '2001--2006',
-   _('Distributed under terms of the GNU General Public License.'),
-   _('It comes with NO WARRANTY.')))
-
+''' % ( _ ('Copyright (c) %s by') % '2001--2009',
+        '\n  '.join (authors),
+        _ ('Distributed under terms of the GNU General Public License.'),
+        _ ('It comes with NO WARRANTY.')))
 
 def progress (s):
     ly.encoded_write (errorport, s + '\n')
@@ -890,9 +892,10 @@ def get_option_parser ():
   $ midi2ly --key=-2:1 --duration-quant=32 --allow-tuplet=4*2/3 --allow-tuplet=2*4/3 foo.midi
 ''')
     p.add_option_group ('',
-                        description=(_ ('Report bugs via')
-                                     + ''' http://post.gmane.org/post.php'''
-                                     '''?group=gmane.comp.gnu.lilypond.bugs\n'''))
+                        description=(
+            _ ('Report bugs via %s')
+            % 'http://post.gmane.org/post.php'
+            '?group=gmane.comp.gnu.lilypond.bugs') + '\n')
     return p
 
 
index 2a48cd12c13f2cc752620ad31da23853e9ca68a9..52e697148786be8a306b4a50bd964bacfbd86e10 100644 (file)
@@ -1,5 +1,5 @@
 #!@TARGET_PYTHON@
-
+# -*- coding: utf-8 -*-
 import optparse
 import sys
 import re
@@ -44,35 +44,132 @@ def error_message (str):
 
 needed_additional_definitions = []
 additional_definitions = {
-  "snappizzicato": """#(define-markup-command (snappizzicato layout props) ()
-  (interpret-markup layout props
-    (markup #:stencil
-      (ly:stencil-translate-axis
-        (ly:stencil-add
-          (make-circle-stencil 0.7 0.1 #f)
-          (ly:make-stencil
-            (list 'draw-line 0.1 0 0.1 0 1)
-            '(-0.1 . 0.1) '(0.1 . 1)))
-        0.7 X))))""",
-  "eyeglasses": """eyeglassesps = #"0.15 setlinewidth
-      -0.9 0 translate
-      1.1 1.1 scale
-      1.2 0.7 moveto
-      0.7 0.7 0.5 0 361 arc
-      stroke
-      2.20 0.70 0.50 0 361 arc
-      stroke
-      1.45 0.85 0.30 0 180 arc
-      stroke
-      0.20 0.70 moveto
-      0.80 2.00 lineto
-      0.92 2.26 1.30 2.40 1.15 1.70 curveto
-      stroke
-      2.70 0.70 moveto
-      3.30 2.00 lineto
-      3.42 2.26 3.80 2.40 3.65 1.70 curveto
-      stroke"
-eyeglasses =  \markup { \with-dimensions #'(0 . 4.4) #'(0 . 2.5) \postscript #eyeglassesps }"""
+
+  "tuplet-note-wrapper": """      % a formatter function, which is simply a wrapper around an existing 
+      % tuplet formatter function. It takes the value returned by the given
+      % function and appends a note of given length. 
+  #(define-public ((tuplet-number::append-note-wrapper function note) grob)
+    (let* ((txt (if function (function grob) #f)))
+      (if txt 
+        (markup txt #:fontsize -5 #:note note UP)
+        (markup #:fontsize -5 #:note note UP)
+      )
+    )
+  )""",
+
+  "tuplet-non-default-denominator": """#(define ((tuplet-number::non-default-tuplet-denominator-text denominator) grob)
+  (number->string (if denominator 
+                      denominator 
+                      (ly:event-property (event-cause grob) 'denominator))))
+""",
+
+  "tuplet-non-default-fraction": """#(define ((tuplet-number::non-default-tuplet-fraction-text denominator numerator) grob)
+    (let* ((ev (event-cause grob))
+           (den (if denominator denominator (ly:event-property ev 'denominator)))
+           (num (if numerator numerator (ly:event-property ev 'numerator))))
+       (format "~a:~a" den num)))
+""",
+
+  "compound-time-signature": """%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Formatting of (possibly complex) compound time signatures
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+#(define-public (insert-markups l m)
+  (let* ((ll (reverse l)))
+    (let join-markups ((markups (list (car ll)))
+                       (remaining (cdr ll)))
+      (if (pair? remaining)
+        (join-markups (cons (car remaining) (cons m markups)) (cdr remaining))
+        markups))))
+
+% Use a centered-column inside a left-column, because the centered column 
+% moves its reference point to the center, which the left-column undoes. 
+% The center-column also aligns its contented centered, which is not undone...
+#(define-public (format-time-fraction time-sig-fraction)
+  (let* ((revargs (reverse (map number->string time-sig-fraction)))
+         (den (car revargs))
+         (nums (reverse (cdr revargs))))
+    (make-override-markup '(baseline-skip . 0)
+      (make-number-markup 
+        (make-left-column-markup (list
+          (make-center-column-markup (list
+            (make-line-markup (insert-markups nums "+"))
+            den))))))))
+
+#(define-public (format-complex-compound-time time-sig)
+  (let* ((sigs (map format-time-fraction time-sig)))
+    (make-override-markup '(baseline-skip . 0)
+      (make-number-markup
+        (make-line-markup 
+          (insert-markups sigs (make-vcenter-markup "+")))))))
+
+#(define-public (format-compound-time time-sig)
+  (cond
+    ((not (pair? time-sig)) (null-markup))
+    ((pair? (car time-sig)) (format-complex-compound-time time-sig))
+    (else (format-time-fraction time-sig))))
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Measure length calculation of (possibly complex) compound time signatures
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+#(define-public (calculate-time-fraction time-sig-fraction)
+  (let* ((revargs (reverse time-sig-fraction))
+         (den (car revargs))
+         (nums (cdr revargs)))
+    (ly:make-moment (apply + nums) den)))
+
+#(define-public (calculate-complex-compound-time time-sig)
+  (let* ((sigs (map calculate-time-fraction time-sig)))
+    (let add-moment ((moment ZERO-MOMENT)
+                     (remaining sigs))
+      (if (pair? remaining)
+        (add-moment (ly:moment-add moment (car remaining)) (cdr remaining))
+        moment))))
+
+#(define-public (calculate-compound-measure-length time-sig)
+  (cond
+    ((not (pair? time-sig)) (ly:make-moment 4 4))
+    ((pair? (car time-sig)) (calculate-complex-compound-time time-sig))
+    (else (calculate-time-fraction time-sig))))
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Base beat lenth
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+#(define-public (calculate-compound-base-beat-full time-sig)
+  (let* ((den (map last time-sig)))
+    (apply max den)))
+
+#(define-public (calculate-compound-base-beat time-sig)
+  (ly:make-moment 1 (cond
+    ((not (pair? time-sig)) 4)
+    ((pair? (car time-sig)) (calculate-compound-base-beat-full time-sig))
+    (else (calculate-compound-base-beat-full (list time-sig))))))
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% The music function to set the complex time signature
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+compoundMeter =
+#(define-music-function (parser location args) (pair?)
+  (let ((mlen (calculate-compound-measure-length args))
+        (beat (calculate-compound-base-beat args)))
+  #{
+\once \override Staff.TimeSignature #'stencil = #ly:text-interface::print
+\once \override Staff.TimeSignature #'text = #(format-compound-time $args)
+% \set Staff.beatGrouping = #(reverse (cdr (reverse $args)))
+\set Timing.measureLength = $mlen
+\set Timing.timeSignatureFraction = #(cons (ly:moment-main-numerator $mlen)
+                                           (ly:moment-main-denominator $mlen))
+\set Timing.beatLength = $beat
+
+% TODO: Implement beatGrouping and auto-beam-settings!!!
+#} ))
+"""
 }
 
 def round_to_two_digits (val):
@@ -199,6 +296,8 @@ def extract_score_information (tree):
         set_if_exists ('encodingdate', ids.get_encoding_date ())
         set_if_exists ('encoder', ids.get_encoding_person ())
         set_if_exists ('encodingdescription', ids.get_encoding_description ())
+        
+        set_if_exists ('texidoc', ids.get_file_description ());
 
         # Finally, apply the required compatibility modes
         # Some applications created wrong MusicXML files, so we need to 
@@ -211,6 +310,13 @@ def extract_score_information (tree):
         if "Dolet 3.4 for Sibelius" in software:
             conversion_settings.ignore_beaming = True
             progress (_ ("Encountered file created by Dolet 3.4 for Sibelius, containing wrong beaming information. All beaming information in the MusicXML file will be ignored"))
+        # ditto for Dolet 3.5
+        if "Dolet 3.5 for Sibelius" in software:
+            conversion_settings.ignore_beaming = True
+            progress (_ ("Encountered file created by Dolet 3.5 for Sibelius, containing wrong beaming information. All beaming information in the MusicXML file will be ignored"))
+        if "Noteworthy Composer" in software:
+            conversion_settings.ignore_beaming = True
+            progress (_ ("Encountered file created by Noteworthy Composer's nwc2xml, containing wrong beaming information. All beaming information in the MusicXML file will be ignored"))
         # TODO: Check for other unsupported features
 
     return header
@@ -419,8 +525,6 @@ def extract_score_structure (part_list, staffinfo):
                     del staves[pos]
                 # replace the staves with the whole group
                 for j in staves[(prev_start + 1):pos]:
-                    if j.is_group:
-                        j.stafftype = "InnerStaffGroup"
                     group.append_staff (j)
                 del staves[(prev_start + 1):pos]
                 staves.insert (prev_start + 1, group)
@@ -443,18 +547,26 @@ def extract_score_structure (part_list, staffinfo):
 
 
 def musicxml_duration_to_lily (mxl_note):
-    d = musicexp.Duration ()
-    # if the note has no Type child, then that method spits out a warning and 
-    # returns 0, i.e. a whole note
-    d.duration_log = mxl_note.get_duration_log ()
+    # if the note has no Type child, then that method returns None. In that case,
+    # use the <duration> tag instead. If that doesn't exist, either -> Error
+    dur = mxl_note.get_duration_info ()
+    if dur:
+        d = musicexp.Duration ()
+        d.duration_log = dur[0]
+        d.dots = dur[1]
+        # Grace notes by specification have duration 0, so no time modification 
+        # factor is possible. It even messes up the output with *0/1
+        if not mxl_note.get_maybe_exist_typed_child (musicxml.Grace):
+            d.factor = mxl_note._duration / d.get_length ()
+        return d
 
-    d.dots = len (mxl_note.get_typed_children (musicxml.Dot))
-    # Grace notes by specification have duration 0, so no time modification 
-    # factor is possible. It even messes up the output with *0/1
-    if not mxl_note.get_maybe_exist_typed_child (musicxml.Grace):
-        d.factor = mxl_note._duration / d.get_length ()
+    else:
+        if mxl_note._duration > 0:
+            return rational_to_lily_duration (mxl_note._duration)
+        else:
+            mxl_note.message (_ ("Encountered note at %s without type and duration (=%s)") % (mxl_note.start, mxl_note._duration) )
+            return None
 
-    return d
 
 def rational_to_lily_duration (rational_len):
     d = musicexp.Duration ()
@@ -585,6 +697,56 @@ def group_repeats (music_list):
     return music_list
 
 
+# Extract the settings for tuplets from the <notations><tuplet> and the 
+# <time-modification> elements of the note:
+def musicxml_tuplet_to_lily (tuplet_elt, time_modification):
+    tsm = musicexp.TimeScaledMusic ()
+    fraction = (1,1)
+    if time_modification:
+        fraction = time_modification.get_fraction ()
+    tsm.numerator = fraction[0]
+    tsm.denominator  = fraction[1]
+
+
+    normal_type = tuplet_elt.get_normal_type ()
+    if not normal_type and time_modification:
+        normal_type = time_modification.get_normal_type ()
+    if not normal_type and time_modification:
+        note = time_modification.get_parent ()
+        if note:
+            normal_type = note.get_duration_info ()
+    if normal_type:
+        normal_note = musicexp.Duration ()
+        (normal_note.duration_log, normal_note.dots) = normal_type
+        tsm.normal_type = normal_note
+
+    actual_type = tuplet_elt.get_actual_type ()
+    if actual_type:
+        actual_note = musicexp.Duration ()
+        (actual_note.duration_log, actual_note.dots) = actual_type
+        tsm.actual_type = actual_note
+
+    # Obtain non-default nrs of notes from the tuplet object!
+    tsm.display_numerator = tuplet_elt.get_normal_nr ()
+    tsm.display_denominator = tuplet_elt.get_actual_nr ()
+
+
+    if hasattr (tuplet_elt, 'bracket') and tuplet_elt.bracket == "no":
+        tsm.display_bracket = None
+    elif hasattr (tuplet_elt, 'line-shape') and getattr (tuplet_elt, 'line-shape') == "curved":
+        tsm.display_bracket = "curved"
+    else:
+        tsm.display_bracket = "bracket"
+
+    display_values = {"none": None, "actual": "actual", "both": "both"}
+    if hasattr (tuplet_elt, "show-number"):
+        tsm.display_number = display_values.get (getattr (tuplet_elt, "show-number"), "actual")
+
+    if hasattr (tuplet_elt, "show-type"):
+        tsm.display_type = display_values.get (getattr (tuplet_elt, "show-type"), None)
+
+    return tsm
+
 
 def group_tuplets (music_list, events):
 
@@ -595,22 +757,32 @@ def group_tuplets (music_list, events):
 
     
     indices = []
+    brackets = {}
 
     j = 0
-    for (ev_chord, tuplet_elt, fraction) in events:
+    for (ev_chord, tuplet_elt, time_modification) in events:
         while (j < len (music_list)):
             if music_list[j] == ev_chord:
                 break
             j += 1
+        nr = 0
+        if hasattr (tuplet_elt, 'number'):
+            nr = getattr (tuplet_elt, 'number')
         if tuplet_elt.type == 'start':
-            indices.append ((j, None, fraction))
+            tuplet_object = musicxml_tuplet_to_lily (tuplet_elt, time_modification)
+            tuplet_info = [j, None, tuplet_object]
+            indices.append (tuplet_info)
+            brackets[nr] = tuplet_info
         elif tuplet_elt.type == 'stop':
-            indices[-1] = (indices[-1][0], j, indices[-1][2])
+            bracket_info = brackets.get (nr, None)
+            if bracket_info:
+                bracket_info[1] = j # Set the ending position to j
+                del brackets[nr]
 
     new_list = []
     last = 0
-    for (i1, i2, frac) in indices:
-        if i1 >= i2:
+    for (i1, i2, tsm) in indices:
+        if i1 > i2:
             continue
 
         new_list.extend (music_list[last:i1])
@@ -618,13 +790,10 @@ def group_tuplets (music_list, events):
         last = i2 + 1
         seq.elements = music_list[i1:last]
 
-        tsm = musicexp.TimeScaledMusic ()
         tsm.element = seq
 
-        tsm.numerator = frac[0]
-        tsm.denominator  = frac[1]
-
         new_list.append (tsm)
+        #TODO: Handle nested tuplets!!!!
 
     new_list.extend (music_list[last:])
     return new_list
@@ -636,54 +805,125 @@ def musicxml_clef_to_lily (attributes):
     return change
     
 def musicxml_time_to_lily (attributes):
-    (beats, type) = attributes.get_time_signature ()
-
+    sig = attributes.get_time_signature ()
+    if not sig:
+        return None
     change = musicexp.TimeSignatureChange()
-    change.fraction = (beats, type)
-    
+    change.fractions = sig
+    if (len(sig) != 2) or isinstance (sig[0], list):
+        needed_additional_definitions.append ("compound-time-signature")
+
+    time_elm = attributes.get_maybe_exist_named_child ('time')
+    if time_elm and hasattr (time_elm, 'symbol'):
+        change.style = { 'single-number': "'single-digit",
+                         'cut': None,
+                         'common': None,
+                         'normal': "'()"}.get (time_elm.symbol, "'()")
+    else:
+        change.style = "'()"
+
+    # TODO: Handle senza-misura measures
+    # TODO: Handle hidden time signatures (print-object="no")
+    # TODO: What shall we do if the symbol clashes with the sig? e.g. "cut" 
+    #       with 3/8 or "single-number" with (2+3)/8 or 3/8+2/4?
+
     return change
 
 def musicxml_key_to_lily (attributes):
-    start_pitch  = musicexp.Pitch ()
-    (fifths, mode) = attributes.get_key_signature () 
-    try:
-        (n,a) = {
-            'major' : (0,0),
-            'minor' : (5,0),
-            }[mode]
-        start_pitch.step = n
-        start_pitch.alteration = a
-    except  KeyError:
-        error_message (_ ("unknown mode %s, expecting 'major' or 'minor'") % mode)
-
-    fifth = musicexp.Pitch()
-    fifth.step = 4
-    if fifths < 0:
-        fifths *= -1
-        fifth.step *= -1
-        fifth.normalize ()
+    key_sig = attributes.get_key_signature () 
+    if not key_sig or not (isinstance (key_sig, list) or isinstance (key_sig, tuple)):
+        error_message (_ ("Unable to extract key signature!"))
+        return None
+    
+    change = musicexp.KeySignatureChange()
     
-    for x in range (fifths):
-        start_pitch = start_pitch.transposed (fifth)
+    if len (key_sig) == 2 and not isinstance (key_sig[0], list):
+        # standard key signature, (fifths, mode)
+        (fifths, mode) = key_sig
+        change.mode = mode
 
-    start_pitch.octave = 0
+        start_pitch  = musicexp.Pitch ()
+        start_pitch.octave = 0
+        try:
+            (n,a) = {
+                'major'     : (0,0),
+                'minor'     : (5,0),
+                'ionian'    : (0,0),
+                'dorian'    : (1,0),
+                'phrygian'  : (2,0),
+                'lydian'    : (3,0),
+                'mixolydian': (4,0),
+                'aeolian'   : (5,0),
+                'locrian'   : (6,0),
+                }[mode]
+            start_pitch.step = n
+            start_pitch.alteration = a
+        except  KeyError:
+            error_message (_ ("unknown mode %s, expecting 'major' or 'minor' "
+                "or a church mode!") % mode)
+
+        fifth = musicexp.Pitch()
+        fifth.step = 4
+        if fifths < 0:
+            fifths *= -1
+            fifth.step *= -1
+            fifth.normalize ()
+        for x in range (fifths):
+            start_pitch = start_pitch.transposed (fifth)
+        change.tonic = start_pitch
 
-    change = musicexp.KeySignatureChange()
-    change.mode = mode
-    change.tonic = start_pitch
+    else:
+        # Non-standard key signature of the form [[step,alter<,octave>],...]
+        change.non_standard_alterations = key_sig
     return change
+
+def musicxml_transpose_to_lily (attributes):
+    transpose = attributes.get_transposition ()
+    if not transpose:
+        return None
+
+    shift = musicexp.Pitch ()
+    octave_change = transpose.get_maybe_exist_named_child ('octave-change')
+    if octave_change:
+        shift.octave = string.atoi (octave_change.get_text ())
+    chromatic_shift = string.atoi (transpose.get_named_child ('chromatic').get_text ())
+    chromatic_shift_normalized = chromatic_shift % 12;
+    (shift.step, shift.alteration) = [
+        (0,0), (0,1), (1,0), (2,-1), (2,0), 
+        (3,0), (3,1), (4,0), (5,-1), (5,0), 
+        (6,-1), (6,0)][chromatic_shift_normalized];
     
+    shift.octave += (chromatic_shift - chromatic_shift_normalized) / 12
+
+    diatonic = transpose.get_maybe_exist_named_child ('diatonic')
+    if diatonic:
+        diatonic_step = string.atoi (diatonic.get_text ()) % 7
+        if diatonic_step != shift.step:
+            # We got the alter incorrect!
+            old_semitones = shift.semitones ()
+            shift.step = diatonic_step
+            new_semitones = shift.semitones ()
+            shift.alteration += old_semitones - new_semitones
+
+    transposition = musicexp.Transposition ()
+    transposition.pitch = musicexp.Pitch ().transposed (shift)
+    return transposition
+
+
 def musicxml_attributes_to_lily (attrs):
     elts = []
     attr_dispatch =  {
         'clef': musicxml_clef_to_lily,
         'time': musicxml_time_to_lily,
-        'key': musicxml_key_to_lily
+        'key': musicxml_key_to_lily,
+        'transpose': musicxml_transpose_to_lily,
     }
     for (k, func) in attr_dispatch.items ():
         children = attrs.get_named_children (k)
         if children:
-            elts.append (func (attrs))
+            ev = func (attrs)
+            if ev:
+                elts.append (ev)
     
     return elts
 
@@ -867,12 +1107,6 @@ def musicxml_fingering_event (mxl_event):
     ev.type = mxl_event.get_text ()
     return ev
 
-def musicxml_snappizzicato_event (mxl_event):
-    needed_additional_definitions.append ("snappizzicato")
-    ev = musicexp.MarkupEvent ()
-    ev.contents = "\\snappizzicato"
-    return ev
-
 def musicxml_string_event (mxl_event):
     ev = musicexp.NoDirectionArticulationEvent ()
     ev.type = mxl_event.get_text ()
@@ -934,7 +1168,7 @@ articulations_dict = {
     #"schleifer": "?",
     #"scoop": "?",
     #"shake": "?",
-    "snap-pizzicato": musicxml_snappizzicato_event,
+    "snap-pizzicato": "snappizzicato",
     #"spiccato": "?",
     "staccatissimo": (musicexp.ShortArticulationEvent, "|"), # or "staccatissimo"
     "staccato": (musicexp.ShortArticulationEvent, "."), # or "staccato"
@@ -1177,7 +1411,7 @@ def musicxml_harp_pedals_to_ly (mxl_event):
 
 def musicxml_eyeglasses_to_ly (mxl_event):
     needed_additional_definitions.append ("eyeglasses")
-    return musicexp.MarkEvent ("\\eyeglasses")
+    return musicexp.MarkEvent ("\\markup { \\eyeglasses }")
 
 def next_non_hash_index (lst, pos):
     pos += 1
@@ -1328,6 +1562,50 @@ def musicxml_harmony_to_lily (n):
     return res
 
 
+notehead_styles_dict = {
+    'slash': '\'slash',
+    'triangle': '\'triangle',
+    'diamond': '\'diamond',
+    'square': '\'la', # TODO: Proper squared note head
+    'cross': None, # TODO: + shaped note head
+    'x': '\'cross',
+    'circle-x': '\'xcircle',
+    'inverted triangle': None, # TODO: Implement
+    'arrow down': None, # TODO: Implement
+    'arrow up': None, # TODO: Implement
+    'slashed': None, # TODO: Implement
+    'back slashed': None, # TODO: Implement
+    'normal': None,
+    'cluster': None, # TODO: Implement
+    'none': '#f',
+    'do': '\'do',
+    're': '\'re',
+    'mi': '\'mi',
+    'fa': '\'fa',
+    'so': None,
+    'la': '\'la',
+    'ti': '\'ti',
+    }
+
+def musicxml_notehead_to_lily (nh):
+    styles = []
+
+    # Notehead style
+    style = notehead_styles_dict.get (nh.get_text ().strip (), None)
+    style_elm = musicexp.NotestyleEvent ()
+    if style:
+        style_elm.style = style
+    if hasattr (nh, 'filled'):
+        style_elm.filled = (getattr (nh, 'filled') == "yes")
+    if style_elm.style or (style_elm.filled != None):
+        styles.append (style_elm)
+
+    # parentheses
+    if hasattr (nh, 'parentheses') and (nh.parentheses == "yes"):
+        styles.append (musicexp.ParenthesizeEvent ())
+
+    return styles
+
 def musicxml_chordpitch_to_lily (mxl_cpitch):
     r = musicexp.ChordPitch ()
     r.alteration = mxl_cpitch.get_alteration ()
@@ -1520,8 +1798,9 @@ def musicxml_note_to_lily_main_event (n):
         # treated like an ordinary note pitch
         rest = n.get_maybe_exist_typed_child (musicxml.Rest)
         event = musicexp.RestEvent ()
-        pitch = musicxml_restdisplay_to_lily (rest)
-        event.pitch = pitch
+        if options.convert_rest_positions:
+            pitch = musicxml_restdisplay_to_lily (rest)
+            event.pitch = pitch
 
     elif n.instrument_name:
         event = musicexp.NoteEvent ()
@@ -1536,10 +1815,54 @@ def musicxml_note_to_lily_main_event (n):
         n.message (_ ("cannot find suitable event"))
 
     if event:
-       event.duration = musicxml_duration_to_lily (n)
+        event.duration = musicxml_duration_to_lily (n)
+
+    noteheads = n.get_named_children ('notehead')
+    for nh in noteheads:
+        styles = musicxml_notehead_to_lily (nh)
+        for s in styles:
+            event.add_associated_event (s)
 
     return event
 
+def musicxml_lyrics_to_text (lyrics):
+    # TODO: Implement text styles for lyrics syllables
+    continued = False
+    extended = False
+    text = ''
+    for e in lyrics.get_all_children ():
+        if isinstance (e, musicxml.Syllabic):
+            continued = e.continued ()
+        elif isinstance (e, musicxml.Text):
+            # We need to convert soft hyphens to -, otherwise the ascii codec as well
+            # as lilypond will barf on that character
+            text += string.replace( e.get_text(), u'\xad', '-' )
+        elif isinstance (e, musicxml.Elision):
+            if text:
+                text += " "
+            continued = False
+            extended = False
+        elif isinstance (e, musicxml.Extend):
+            if text:
+                text += " "
+            extended = True
+
+    if text == "-" and continued:
+        return "--"
+    elif text == "_" and extended:
+        return "__"
+    elif continued and text:
+        return musicxml.escape_ly_output_string (text) + " --"
+    elif continued:
+        return "--"
+    elif extended and text:
+        return musicxml.escape_ly_output_string (text) + " __"
+    elif extended:
+        return "__"
+    elif text:
+        return musicxml.escape_ly_output_string (text)
+    else:
+        return ""
 
 ## TODO
 class NegativeSkip:
@@ -1556,17 +1879,24 @@ class LilyPondVoiceBuilder:
         self.pending_multibar = Rational (0)
         self.ignore_skips = False
         self.has_relevant_elements = False
+        self.measure_length = Rational (4, 4)
 
     def _insert_multibar (self):
+        layout_information.set_context_item ('Score', 'skipBars = ##t')
         r = musicexp.MultiMeasureRest ()
-        r.duration = musicexp.Duration()
-        r.duration.duration_log = 0
-        r.duration.factor = self.pending_multibar
+        lenfrac = self.measure_length
+        r.duration = rational_to_lily_duration (lenfrac)
+        r.duration.factor *= self.pending_multibar / lenfrac
         self.elements.append (r)
         self.begin_moment = self.end_moment
         self.end_moment = self.begin_moment + self.pending_multibar
         self.pending_multibar = Rational (0)
-        
+
+    def set_measure_length (self, mlen):
+        if (mlen != self.measure_length) and self.pending_multibar:
+            self._insert_multibar ()
+        self.measure_length = mlen
+
     def add_multibar_rest (self, duration):
         self.pending_multibar += duration
 
@@ -1632,6 +1962,8 @@ class LilyPondVoiceBuilder:
             duration_factor = 1
             duration_log = {1: 0, 2: 1, 4:2, 8:3, 16:4, 32:5, 64:6, 128:7, 256:8, 512:9}.get (diff.denominator (), -1)
             duration_dots = 0
+            # TODO: Use the time signature for skips, too. Problem: The skip 
+            #       might not start at a measure boundary!
             if duration_log > 0: # denominator is a power of 2...
                 if diff.numerator () == 3:
                     duration_log -= 1
@@ -1697,6 +2029,12 @@ def musicxml_step_to_lily (step):
     else:
        return None
 
+def measure_length_from_attributes (attr, current_measure_length):
+    len = attr.get_measure_length ()
+    if not len:
+        len = current_measure_length
+    return len
+
 def musicxml_voice_to_lily_voice (voice):
     tuplet_events = []
     modes_found = {}
@@ -1729,6 +2067,8 @@ def musicxml_voice_to_lily_voice (voice):
     voice_builder = LilyPondVoiceBuilder ()
     figured_bass_builder = LilyPondVoiceBuilder ()
     chordnames_builder = LilyPondVoiceBuilder ()
+    current_measure_length = Rational (4, 4)
+    voice_builder.set_measure_length (current_measure_length)
 
     for n in voice._elements:
         if n.get_name () == 'forward':
@@ -1746,6 +2086,50 @@ def musicxml_voice_to_lily_voice (voice):
                 voice_builder.add_partial (a)
             continue
 
+        is_chord = n.get_maybe_exist_named_child ('chord')
+        is_after_grace = (isinstance (n, musicxml.Note) and n.is_after_grace ());
+        if not is_chord and not is_after_grace:
+            try:
+                voice_builder.jumpto (n._when)
+            except NegativeSkip, neg:
+                voice_builder.correct_negative_skip (n._when)
+                n.message (_ ("Negative skip found: from %s to %s, difference is %s") % (neg.here, neg.dest, neg.dest - neg.here))
+
+        if isinstance (n, musicxml.Barline):
+            barlines = musicxml_barline_to_lily (n)
+            for a in barlines:
+                if isinstance (a, musicexp.BarLine):
+                    voice_builder.add_barline (a)
+                elif isinstance (a, RepeatMarker) or isinstance (a, EndingMarker):
+                    voice_builder.add_command (a)
+            continue
+
+        # Continue any multimeasure-rests before trying to add bar checks!
+        # Don't handle new MM rests yet, because for them we want bar checks!
+        rest = n.get_maybe_exist_typed_child (musicxml.Rest)
+        if (rest and rest.is_whole_measure ()
+                 and voice_builder.pending_multibar > Rational (0)):
+            voice_builder.add_multibar_rest (n._duration)
+            continue
+
+
+        # print a bar check at the beginning of each measure!
+        if n.is_first () and n._measure_position == Rational (0) and n != voice._elements[0]:
+            try:
+                num = int (n.get_parent ().number)
+            except ValueError:
+                num = 0
+            if num > 0:
+                voice_builder.add_bar_check (num)
+                figured_bass_builder.add_bar_check (num)
+                chordnames_builder.add_bar_check (num)
+
+        # Start any new multimeasure rests
+        if (rest and rest.is_whole_measure ()):
+            voice_builder.add_multibar_rest (n._duration)
+            continue
+
+
         if isinstance (n, musicxml.Direction):
             for a in musicxml_direction_to_lily (n):
                 if a.wait_for_note ():
@@ -1770,59 +2154,19 @@ def musicxml_voice_to_lily_voice (voice):
                 pending_figured_bass.append (a)
             continue
 
-        is_chord = n.get_maybe_exist_named_child ('chord')
-        if not is_chord:
-            try:
-                voice_builder.jumpto (n._when)
-            except NegativeSkip, neg:
-                voice_builder.correct_negative_skip (n._when)
-                n.message (_ ("Negative skip found: from %s to %s, difference is %s") % (neg.here, neg.dest, neg.dest - neg.here))
-            
         if isinstance (n, musicxml.Attributes):
-            if n.is_first () and n._measure_position == Rational (0):
-                try:
-                    number = int (n.get_parent ().number)
-                except ValueError:
-                    number = 0
-                if number > 0:
-                    voice_builder.add_bar_check (number)
-                    figured_bass_builder.add_bar_check (number)
-                    chordnames_builder.add_bar_check (number)
-
             for a in musicxml_attributes_to_lily (n):
                 voice_builder.add_command (a)
-            continue
-
-        if isinstance (n, musicxml.Barline):
-            barlines = musicxml_barline_to_lily (n)
-            for a in barlines:
-                if isinstance (a, musicexp.BarLine):
-                    voice_builder.add_barline (a)
-                elif isinstance (a, RepeatMarker) or isinstance (a, EndingMarker):
-                    voice_builder.add_command (a)
+            measure_length = measure_length_from_attributes (n, current_measure_length)
+            if current_measure_length != measure_length:
+                current_measure_length = measure_length
+                voice_builder.set_measure_length (current_measure_length)
             continue
 
         if not n.__class__.__name__ == 'Note':
-            error_message (_ ('unexpected %s; expected %s or %s or %s') % (n, 'Note', 'Attributes', 'Barline'))
+            n.message (_ ('unexpected %s; expected %s or %s or %s') % (n, 'Note', 'Attributes', 'Barline'))
             continue
-
-        rest = n.get_maybe_exist_typed_child (musicxml.Rest)
-        if (rest
-            and rest.is_whole_measure ()):
-
-            voice_builder.add_multibar_rest (n._duration)
-            continue
-
-        if n.is_first () and n._measure_position == Rational (0):
-            try: 
-                num = int (n.get_parent ().number)
-            except ValueError:
-                num = 0
-            if num > 0:
-                voice_builder.add_bar_check (num)
-                figured_bass_builder.add_bar_check (num)
-                chordnames_builder.add_bar_check (num)
-
+        
         main_event = musicxml_note_to_lily_main_event (n)
         if main_event and not first_pitch:
             first_pitch = main_event.pitch
@@ -1837,15 +2181,31 @@ def musicxml_voice_to_lily_voice (voice):
             ev_chord = musicexp.ChordEvent()
             voice_builder.add_music (ev_chord, n._duration)
 
+        # For grace notes:
         grace = n.get_maybe_exist_typed_child (musicxml.Grace)
-        if grace:
+        if n.is_grace ():
+            is_after_grace = ev_chord.has_elements () or n.is_after_grace ();
+            is_chord = n.get_maybe_exist_typed_child (musicxml.Chord)
+
             grace_chord = None
-            if n.get_maybe_exist_typed_child (musicxml.Chord) and ev_chord.grace_elements:
-                grace_chord = ev_chord.grace_elements.get_last_event_chord ()
-            if not grace_chord:
-                grace_chord = musicexp.ChordEvent ()
-                ev_chord.append_grace (grace_chord)
-            if hasattr (grace, 'slash'):
+
+            # after-graces and other graces use different lists; Depending on
+            # whether we have a chord or not, obtain either a new ChordEvent or 
+            # the previous one to create a chord
+            if is_after_grace:
+                if ev_chord.after_grace_elements and n.get_maybe_exist_typed_child (musicxml.Chord):
+                    grace_chord = ev_chord.after_grace_elements.get_last_event_chord ()
+                if not grace_chord:
+                    grace_chord = musicexp.ChordEvent ()
+                    ev_chord.append_after_grace (grace_chord)
+            elif n.is_grace ():
+                if ev_chord.grace_elements and n.get_maybe_exist_typed_child (musicxml.Chord):
+                    grace_chord = ev_chord.grace_elements.get_last_event_chord ()
+                if not grace_chord:
+                    grace_chord = musicexp.ChordEvent ()
+                    ev_chord.append_grace (grace_chord)
+
+            if hasattr (grace, 'slash') and not is_after_grace:
                 # TODO: use grace_type = "appoggiatura" for slurred grace notes
                 if grace.slash == "yes":
                     ev_chord.grace_type = "acciaccatura"
@@ -1890,7 +2250,6 @@ def musicxml_voice_to_lily_voice (voice):
                 chordnames_builder.add_music (cn, ev_chord.get_length ())
             pending_chordnames = []
 
-
         notations_children = n.get_typed_children (musicxml.Notations)
         tuplet_event = None
         span_events = []
@@ -1902,27 +2261,37 @@ def musicxml_voice_to_lily_voice (voice):
         #    accidental-mark | other-notation
         for notations in notations_children:
             for tuplet_event in notations.get_tuplets():
-                mod = n.get_maybe_exist_typed_child (musicxml.Time_modification)
-                frac = (1,1)
-                if mod:
-                    frac = mod.get_fraction ()
-                
-                tuplet_events.append ((ev_chord, tuplet_event, frac))
-
-            slurs = [s for s in notations.get_named_children ('slur')
-                if s.get_type () in ('start','stop')]
-            if slurs:
-                if len (slurs) > 1:
-                    error_message (_ ('cannot have two simultaneous slurs'))
+                time_mod = n.get_maybe_exist_typed_child (musicxml.Time_modification)
+                tuplet_events.append ((ev_chord, tuplet_event, time_mod))
+
+            # First, close all open slurs, only then start any new slur
+            # TODO: Record the number of the open slur to dtermine the correct
+            #       closing slur!
+            endslurs = [s for s in notations.get_named_children ('slur')
+                if s.get_type () in ('stop')]
+            if endslurs and not inside_slur:
+                endslurs[0].message (_ ('Encountered closing slur, but no slur is open'))
+            elif endslurs:
+                if len (endslurs) > 1:
+                    endslurs[0].message (_ ('Cannot have two simultaneous (closing) slurs'))
                 # record the slur status for the next note in the loop
-                if not grace:
-                    if slurs[0].get_type () == 'start':
-                        inside_slur = True
-                    elif slurs[0].get_type () == 'stop':
-                        inside_slur = False
-                lily_ev = musicxml_spanner_to_lily_event (slurs[0])
+                inside_slur = False
+                lily_ev = musicxml_spanner_to_lily_event (endslurs[0])
                 ev_chord.append (lily_ev)
 
+            startslurs = [s for s in notations.get_named_children ('slur')
+                if s.get_type () in ('start')]
+            if startslurs and inside_slur:
+                startslurs[0].message (_ ('Cannot have a slur inside another slur'))
+            elif startslurs:
+                if len (startslurs) > 1:
+                    startslurs[0].message (_ ('Cannot have two simultaneous slurs'))
+                # record the slur status for the next note in the loop
+                inside_slur = True
+                lily_ev = musicxml_spanner_to_lily_event (startslurs[0])
+                ev_chord.append (lily_ev)
+
+
             if not grace:
                 mxl_tie = notations.get_tie ()
                 if mxl_tie and mxl_tie.type == 'start':
@@ -1984,7 +2353,7 @@ def musicxml_voice_to_lily_voice (voice):
             for a in ornaments:
                 for ch in a.get_all_children ():
                     ev = musicxml_articulation_to_lily_event (ch)
-                    if ev: 
+                    if ev:
                         ev_chord.append (ev)
 
             dynamics = notations.get_named_children ('dynamics')
@@ -2006,14 +2375,6 @@ def musicxml_voice_to_lily_voice (voice):
                     is_beamed = True
                 elif beam_ev.span_direction == 1: # beam and thus melisma ends here
                     is_beamed = False
-            
-        if tuplet_event:
-            mod = n.get_maybe_exist_typed_child (musicxml.Time_modification)
-            frac = (1,1)
-            if mod:
-                frac = mod.get_fraction ()
-                
-            tuplet_events.append ((ev_chord, tuplet_event, frac))
 
         # Extract the lyrics
         if not rest and not ignore_lyrics:
@@ -2022,10 +2383,10 @@ def musicxml_voice_to_lily_voice (voice):
             for l in note_lyrics_elements:
                 if l.get_number () < 0:
                     for k in lyrics.keys ():
-                        lyrics[k].append (l.lyric_to_text ())
+                        lyrics[k].append (musicxml_lyrics_to_text (l))
                         note_lyrics_processed.append (k)
                 else:
-                    lyrics[l.number].append(l.lyric_to_text ())
+                    lyrics[l.number].append(musicxml_lyrics_to_text (l))
                     note_lyrics_processed.append (l.number)
             for lnr in lyrics.keys ():
                 if not lnr in note_lyrics_processed:
@@ -2172,7 +2533,7 @@ If the given filename is -, musicxml2ly reads from the command line.
 
     p.version = ('''%prog (LilyPond) @TOPLEVEL_VERSION@\n\n'''
 +
-_ ("""Copyright (c) 2005--2008 by
+_ ("""Copyright (c) 2005--2009 by
     Han-Wen Nienhuys <hanwen@xs4all.nl>,
     Jan Nieuwenhuizen <janneke@gnu.org> and
     Reinhold Kainhofer <reinhold@kainhofer.com>
@@ -2227,6 +2588,12 @@ information.""") % 'lilypond')
                   dest = "convert_directions",
                   help = _ ("do not convert directions (^, _ or -) for articulations, dynamics, etc."))
 
+    p.add_option ('--nrp', '--no-rest-positions', 
+                  action = "store_false",
+                  default = True,
+                  dest = "convert_rest_positions",
+                  help = _ ("do not convert exact vertical positions of rests"))
+
     p.add_option ('--no-beaming', 
                   action = "store_false",
                   default = True,
@@ -2241,9 +2608,10 @@ information.""") % 'lilypond')
                   dest = 'output_name',
                   help = _ ("set output filename to FILE, stdout if -"))
     p.add_option_group ('',
-                        description = (_ ("Report bugs via")
-                                     + ''' http://post.gmane.org/post.php'''
-                                     '''?group=gmane.comp.gnu.lilypond.bugs\n'''))
+                        description = (
+            _ ("Report bugs via %s")
+            % 'http://post.gmane.org/post.php'
+            '?group=gmane.comp.gnu.lilypond.bugs') + '\n')
     return p
 
 def music_xml_voice_name_to_lily_name (part_id, name):
@@ -2503,17 +2871,21 @@ def main ():
     conversion_settings.ignore_beaming = not options.convert_beaming
 
     # Allow the user to leave out the .xml or xml on the filename
-    if args[0]=="-": # Read from stdin
-        filename="-"
+    basefilename = args[0].decode('utf-8')
+    if basefilename == "-": # Read from stdin
+        basefilename = "-"
     else:
-        filename = get_existing_filename_with_extension (args[0], "xml")
+        filename = get_existing_filename_with_extension (basefilename, "xml")
         if not filename:
-            filename = get_existing_filename_with_extension (args[0], "mxl")
+            filename = get_existing_filename_with_extension (basefilename, "mxl")
             options.compressed = True
+    if filename and filename.endswith ("mxl"):
+        options.compressed = True
+
     if filename and (filename == "-" or os.path.exists (filename)):
         voices = convert (filename, options)
     else:
-        progress (_ ("Unable to find input file %s") % args[0])
+        progress (_ ("Unable to find input file %s") % basefilename)
 
 if __name__ == '__main__':
     main()
index b2e27613a4ed8bf796496ce5c05cea62ea5a8a6c..27dfb0b511786545fbac52cf8655f89f56b79b1b 100644 (file)
@@ -215,12 +215,12 @@ AC_DEFUN(STEPMAKE_COMPILE, [
        save_cflags="$CFLAGS"
        CFLAGS=" -pipe $CFLAGS";
        AC_CACHE_CHECK([whether compiler understands -pipe],
-           [stepmake_cflags_pipe],
+           [stepmake_cv_cflags_pipe],
            AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[/* -pipe test */]])],
-               [stepmake_cflags_pipe=yes],
-               [stepmake_cflags_pipe=no]))
+               [stepmake_cv_cflags_pipe=yes],
+               [stepmake_cv_cflags_pipe=no]))
        CFLAGS=$save_cflags
-       if test $stepmake_cflags_pipe = yes; then
+       if test $stepmake_cv_cflags_pipe = yes; then
            OPTIMIZE="$OPTIMIZE -pipe"
        fi
     fi
@@ -265,12 +265,12 @@ AC_DEFUN(STEPMAKE_CXX, [
 
 AC_DEFUN(STEPMAKE_CXXTEMPLATE, [
     AC_CACHE_CHECK([whether explicit instantiation is needed],
-       lily_cv_need_explicit_instantiation,
+       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; ]])],[lily_cv_need_explicit_instantiation=no],[lily_cv_need_explicit_instantiation=yes]))
-    if test x"$lily_cv_need_explicit_instantiation"x = x"yes"x; then
+    ]], [[ 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
 ])
@@ -317,7 +317,31 @@ AC_DEFUN(STEPMAKE_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)
     
@@ -421,7 +445,7 @@ AC_DEFUN(STEPMAKE_FLEXLEXER, [
     # in 2.5.4 <= flex < 2.5.29
     AC_LANG_PUSH(C++)
     AC_CACHE_CHECK([for yyFlexLexer.yy_current_buffer],
-       [stepmake_flexlexer_yy_current_buffer],
+       [stepmake_cv_flexlexer_yy_current_buffer],
        AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
 using namespace std;
 #include <FlexLexer.h>
@@ -434,9 +458,9 @@ class yy_flex_lexer: public yyFlexLexer
     }
 };
 ]])],
-           [stepmake_flexlexer_yy_current_buffer=yes],
-           [stepmake_flexlexer_yy_current_buffer=no]))
-    if test $stepmake_flexlexer_yy_current_buffer = yes; then
+           [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_LANG_POP(C++)
@@ -794,84 +818,6 @@ AC_DEFUN(STEPMAKE_INIT, [
 ])
 
     
-AC_DEFUN(STEPMAKE_KPATHSEA, [
-       
-    AC_ARG_WITH(kpathsea-include,
-       [  --with-kpathsea-include=DIR
-                         location of the kpathsea include dir],[
-           if test "$withval" = "yes" -o "$withval" = "no"; then
-               AC_MSG_WARN(Usage: --with-kpathsea-include=includedir)
-           else
-               CPPFLAGS="$CPPFLAGS -I${withval}"
-           fi
-           ])
-    
-    AC_ARG_WITH(kpathsea-lib,
-       [  --with-kpathsea-lib=DIR location of the kpathsea lib dir],[
-           if test "$withval" = "yes" -o "$withval" = "no"; then
-               AC_MSG_WARN(Usage: --with-kpathsea-lib=libdir)
-           else
-               LDFLAGS="$LDFLAGS -L${withval}"
-           fi
-           ])
-    
-    kpathsea_b=yes
-    AC_ARG_ENABLE(kpathsea,
-    [  --enable-kpathsea         use kpathsea lib.  Default: on],
-    [kpathsea_b=$enableval])
-
-    save_LIBS="$LIBS"
-    if test "$kpathsea_b" != "no"; then        
-       AC_CHECK_HEADERS([kpathsea/kpathsea.h],,kpathsea_b=no)
-       AC_CHECK_LIB(kpathsea, kpse_find_file)
-       AC_CHECK_FUNCS(kpse_find_file,,kpathsea_b=no)
-       if test "$kpathsea_b" = "no"; then
-           STEPMAKE_ADD_ENTRY(OPTIONAL, $warn)
-       fi
-    fi
-
-    save_CFLAGS="$CFLAGS"
-    CFLAGS=`echo "-shared $CFLAGS" | sed -e 's/ -g//'`
-    AC_MSG_CHECKING([for shared libkpathsea])
-    AC_TRY_LINK([#include <kpathsea/kpathsea.h>],
-                 [kpse_var_expand ("\$TEXMF");],
-                 [have_libkpathsea_so=maybe;
-                 shared_size=`wc -c conftest$ac_exeext`;
-                 shared_size=`echo $shared_size | sed -e 's/ .*//g'`],
-                 [have_libkpathsea_so=no])
-
-    if test "$have_libkpathsea_so" = "maybe"; then
-       if test "$shared_size" -lt 40000 ; then
-         have_libkpathsea_so=yes
-       else
-         have_libkpathsea_so=no
-       fi
-    fi
-    
-    AC_MSG_RESULT($have_libkpathsea_so)
-    if test "$have_libkpathsea_so" = "yes"; then
-       AC_DEFINE(HAVE_LIBKPATHSEA_SO)
-    fi
-    CFLAGS="$save_CFLAGS"
-
-    KPATHSEA_LIBS="$LIBS"
-    LIBS="$save_LIBS"
-    AC_MSG_CHECKING(whether to use kpathsea)
-    if test "$kpathsea_b" != no; then
-        AC_MSG_RESULT(yes)
-       KPATHSEA=1
-    else
-        AC_MSG_RESULT(no)
-       KPATHSEA=0
-    fi
-
-    AC_SUBST(KPATHSEA)
-    AC_SUBST(KPATHSEA_LIBS)
-    AC_SUBST(HAVE_LIBKPATHSEA_SO, $have_libkpathsea_so)
-    AC_DEFINE_UNQUOTED(KPATHSEA, $KPATHSEA)
-])
-
-
 AC_DEFUN(STEPMAKE_LIB, [
     STEPMAKE_PROGS(AR, ar, $1)
     AC_PROG_RANLIB
@@ -1034,7 +980,7 @@ AC_DEFUN(STEPMAKE_PYTHON_DEVEL, [
     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.
-       PYTHON_CFLAGS=`$PYTHON_CONFIG --cflags | sed -e 's/ -\(W\|D\|O\)\(\w\|-\)\+//g'`
+       PYTHON_CFLAGS=`$PYTHON_CONFIG --cflags | sed -e 's/ -\(W\|D\|O\|m\)\(\w\|-\|=\|,\)\+//g'`
        PYTHON_LDFLAGS=`$PYTHON_CONFIG --ldflags`
     fi
     
@@ -1063,16 +1009,16 @@ AC_DEFUN(STEPMAKE_PYTHON_DEVEL, [
 AC_DEFUN(STEPMAKE_STL_DATA_METHOD, [
     AC_LANG_PUSH(C++)
     AC_CACHE_CHECK([for stl.data () method],
-       [stepmake_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_stl_data_method=yes],
-           [stepmake_stl_data_method=no]))
-    if test $stepmake_stl_data_method = yes; then
+           [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_LANG_POP(C++)
index b73dfa56b05423981b66104d1ffb195854578560..d0c0bf44d14bd0e1284f2df603468097cf6ceb36 100644 (file)
@@ -1,6 +1,5 @@
 .PHONY : all clean bin-clean config default dist doc exe help html lib TAGS\
-        po web web-1 WWW-1 WWW-2 WWW-post local-WWW-1 local-WWW-2\
-        web-install
+        po web web-1 WWW-1 WWW-2 WWW-post local-WWW-1 local-WWW-2
 
 all:    default
        $(LOOP)
@@ -67,8 +66,6 @@ help: generic-help local-help
   uninstall*  uninstall programs and data\n\
   lib         update all libraries\n\
   web *       update website in directory \`out-www'\n\
-  web-install * install website documentation in (webdir=$(webdir))\n\
-              and Info documentation with images\n\
   web-clean * clean \`out-www' directory\n\
   TAGS        generate tagfiles\n\
 \n\
@@ -178,7 +175,6 @@ $(config_make): $(top-src-dir)/configure
 
 local-WWW-1:
 local-WWW-2:
-web-install:
 WWW-post:
 
 WWW-1: local-WWW-1
@@ -187,12 +183,12 @@ WWW-1: local-WWW-1
 WWW-2: local-WWW-2
        $(LOOP)
 
-web:
-       $(MAKE) out=www WWW-1
+web: web-1
        $(MAKE) out=www WWW-2
        $(MAKE) out=www WWW-post
 
 web-1:
+       $(MAKE) -C $(depth)/scripts/build out=
        $(MAKE) out=www WWW-1
 
 web-clean:
index 834a527409384fbc542e81f76f10f93254905297..31c81d20180ddb27c6c74c7dcf71003c45389d45 100644 (file)
@@ -24,6 +24,8 @@ src-dir = $(top-src-dir)$(tree-dir)
 VPATH = $(src-dir)
 endif
 
+abs-src-dir = $(top-src-dir)$(tree-dir)
+
 .UNEXPORT: build-dir src-dir tree-dir
 
 src-wildcard = $(subst $(src-dir)/,,$(wildcard $(src-dir)/$(1)))
index 51073c20b1e183aad51a215d54a13c73fa053159..6c176bac5e7b0995cf33ee66ed452cb4e2bc802a 100644 (file)
@@ -1,5 +1,5 @@
 # We must invoke the generated $(outdir)/help2man script instead of
-# the help2man.pl source, which means that the buildscripts directory
+# the help2man.pl source, which means that the scripts/build directory
 # must be built first.
 #
 # From the perlrun man-page:
 # cases.  Four more explaining what a line comment is, and that it may
 # be parsed, same here.
 
-HELP2MAN_COMMAND = $(PERL) $(top-build-dir)/buildscripts/$(outbase)/help2man $< > $@
+ifeq ($(PYTHON),$(TARGET_PYTHON))
+HELP2MAN_COMMAND = $(buildscript-dir)/help2man $< > $@
+else
+HELP2MAN_COMMAND = $(buildscript-dir)/help2man "env $$(basename $$(head -1 $<)) $<" > $@
+endif
 
 ifeq ($(strip $(CROSS)),no)
-$(outdir)/%.1: $(outdir)/%
+$(outdir)/%.1: $(outdir)/% $(buildscript-dir)/help2man
        $(HELP2MAN_COMMAND)
 else
 # When cross building, some manpages will not build because the
@@ -33,3 +37,6 @@ ifneq ($(outdir),./out)
 $(outdir)/%.1: out/%.1
        cp $< $@
 endif
+
+$(buildscript-dir)/help2man:
+       $(MAKE) -C $(depth)/scripts/build
index 592a47b35159fd5d64e54c328fbce5371729abf6..3a7b158aead63d394491bc66adf6813a6d6dee5e 100644 (file)
@@ -19,7 +19,7 @@ $(outdir)/%.pfb: %.mf $(outdir)/mf2pt1.mem
        TMP=`mktemp -d $(outdir)/pfbtemp.XXXXXXXXX` \
        && ( cd $$TMP \
                && ln -s ../mf2pt1.mem . \
-               && MFINPUTS=$(top-src-dir)/mf:..:: $(PERL) $(top-src-dir)/buildscripts/mf2pt1.pl $(MF2PT1_OPTIONS) $< $(METAFONT_QUIET)) \
+               && MFINPUTS=$(abs-src-dir):..:: $(buildscript-dir)/mf2pt1 $(MF2PT1_OPTIONS) $< $(METAFONT_QUIET)) \
        && mv $$TMP/*pfb $(outdir); \
        rm -rf $$TMP
 
diff --git a/stepmake/stepmake/metapost-rules.make b/stepmake/stepmake/metapost-rules.make
deleted file mode 100644 (file)
index 3bf28ca..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-# Don't remove $(outdir)/.log's.  Logs are a target!
-
-$(outdir)/%.0: %.mf $(outdir)/mfplain.mem
-       -$(METAPOST) "&$(outdir)/mfplain \mode=lowres; \mag=1.0; nonstopmode; input $<"
-
-$(outdir)/mfplain.mem: $(MFPLAIN_MP)
-       $(INIMETAPOST)  $(INIMETAPOST_FLAGS) $(MFPLAIN_MP) dump
-       mv mfplain.* $(outdir)
-
-$(outdir)/%.pfa: $(outdir)/%.0
-       $(PYTHON) $(depth)/buildscripts/ps-to-pfa.py --output $(basename $<).pfa $<
-       rm -f $(basename $(@F)).[0-9]*
-       rm -f $(basename $(@F)).tfm $(basename $(@F)).log
-
diff --git a/stepmake/stepmake/metapost-targets.make b/stepmake/stepmake/metapost-targets.make
deleted file mode 100644 (file)
index d976642..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-
-pfa: $(PFA_FILES)
diff --git a/stepmake/stepmake/metapost-vars.make b/stepmake/stepmake/metapost-vars.make
deleted file mode 100644 (file)
index 1dae6a2..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-
-MP_PFA_FILES = $(addprefix $(outdir)/, $(FONT_FILES:.mf=.pfa))
-PFA_FILES += $(MP_PFA_FILES)
-
index 4d1f06283f7f5b799aa4d2d4bdc3a582d1321bb5..3f605b2a28388f1694f349205bbbf044c3e9d816 100644 (file)
@@ -6,12 +6,12 @@
 # $(outdir)/$(INFO_IMAGES_DIR)/*.png symlinks are only needed to view
 # out-www/*.info with Emacs -- HTML docs no longer need these
 # symlinks, see replace_symlinks_urls in
-# buildscripts/add_html_footer.py.
+# python/auxiliar/postprocess_html.py.
 
 # make dereferences symlinks, and $(INFO_IMAGES_DIR) is a symlink
 # to $(outdir), so we can't use directly $(INFO_IMAGES_DIR) as a
 # prerequisite, otherwise %.info are always outdated (because older
-# than $(outdir), hence this .dep file
+# than $(outdir)), hence this .dep file
 
 $(outdir)/$(INFO_IMAGES_DIR).info-images-dir-dep: $(INFO_DOCS:%=$(outdir)/%.texi)
 ifneq ($(INFO_IMAGES_DIR),)
@@ -19,38 +19,26 @@ ifneq ($(INFO_IMAGES_DIR),)
        ln -s $(outdir) $(INFO_IMAGES_DIR)
        mkdir -p $(outdir)/$(INFO_IMAGES_DIR)
        rm -f $(outdir)/$(INFO_IMAGES_DIR)/[a-f0-9][a-f0-9]
-       cd $(outdir)/$(INFO_IMAGES_DIR) && $(PYTHON) $(top-src-dir)/buildscripts/mass-link.py symbolic .. . [a-f0-9][a-f0-9]
+       cd $(outdir)/$(INFO_IMAGES_DIR) && $(buildscript-dir)/mass-link symbolic .. . [a-f0-9][a-f0-9]
 endif
        touch $@
 
 $(outdir)/%.info: $(outdir)/%.texi $(outdir)/$(INFO_IMAGES_DIR).info-images-dir-dep $(outdir)/version.itexi
-       $(MAKEINFO) -I$(outdir) --output=$@ $<
+       $(MAKEINFO) -I$(src-dir) -I$(outdir) --output=$@ $<
 
-ifeq (,$(findstring texi2html,$(MISSING_OPTIONAL)))
 $(outdir)/%-big-page.html: $(outdir)/%.texi $(XREF_MAPS_DIR)/%.xref-map $(outdir)/version.itexi
-       $(TEXI2HTML) --I=$(outdir) -D bigpage --output=$@ $(TEXI2HTML_INIT) $<
+       $(TEXI2HTML) --I=$(src-dir) --I=$(outdir) -D bigpage --output=$@ $(TEXI2HTML_INIT) $<
        cp $(top-src-dir)/Documentation/lilypond*.css $(dir $@)
 
 $(outdir)/%.html: $(outdir)/%.texi $(XREF_MAPS_DIR)/%.xref-map $(outdir)/version.itexi
-       $(TEXI2HTML) --I=$(outdir) --output=$@ $(TEXI2HTML_INIT) $<
+       $(TEXI2HTML) --I=$(src-dir) --I=$(outdir) --output=$@ $(TEXI2HTML_INIT) $<
        cp $(top-src-dir)/Documentation/lilypond*.css $(dir $@)
 
 $(outdir)/%/index.html: $(outdir)/%.texi $(XREF_MAPS_DIR)/%.xref-map $(outdir)/version.itexi
        mkdir -p $(dir $@)
-       $(TEXI2HTML) --I=$(outdir) --output=$(dir $@) --prefix=index --split=section $(TEXI2HTML_INIT) $<
+       $(TEXI2HTML) --I=$(src-dir) --I=$(outdir) --output=$(dir $@) --prefix=index --split=section $(TEXI2HTML_INIT) $<
        cp $(top-src-dir)/Documentation/lilypond*.css $(dir $@)
 
-else # Rules using makeinfo follow
-$(outdir)/%-big-page.html: $(outdir)/%.texi $(outdir)/version.itexi
-       $(MAKEINFO) -I $(outdir) --output=$@ --css-include=$(top-src-dir)/Documentation/texinfo.css --html --no-split -D bigpage --no-headers $<
-
-$(outdir)/%.html: $(outdir)/%.texi $(outdir)/version.itexi
-       $(MAKEINFO) -I $(outdir) --output=$@ --css-include=$(top-src-dir)/Documentation/texinfo.css --html --no-split --no-headers $<
-
-$(outdir)/%/index.html: $(outdir)/%.texi $(outdir)/version.itexi
-       mkdir -p $(dir $@)
-       $(MAKEINFO) -I $(outdir) --output=$(dir $@) --css-include=$(top-src-dir)/Documentation/texinfo.css --html $<
-endif
 
 $(outdir)/%.html.omf: %.texi
        $(call GENERATE_OMF,html)
@@ -62,18 +50,16 @@ $(outdir)/%.ps.gz.omf: %.texi
        $(call GENERATE_OMF,ps.gz)
 
 $(outdir)/%.pdf: $(outdir)/%.texi $(outdir)/version.itexi
-       cd $(outdir); texi2pdf $(TEXI2PDF_FLAGS) --batch $(TEXINFO_PAPERSIZE_OPTION) $(<F)
+       cd $(outdir); texi2pdf $(TEXI2PDF_FLAGS) -I $(abs-src-dir) --batch $(TEXINFO_PAPERSIZE_OPTION) $(<F)
 
 $(outdir)/%.txt: $(outdir)/%.texi $(outdir)/version.itexi
-       $(MAKEINFO) -I $(src-dir) -I $(outdir) --no-split --no-headers --output $@ $<
-
-$(outdir)/%.texi: %.texi
-       rm -f $@
-       cp $< $@
+       $(MAKEINFO) -I$(src-dir) -I$(outdir) --no-split --no-headers --output $@ $<
 
 $(XREF_MAPS_DIR)/%.xref-map: $(outdir)/%.texi
-       $(PYTHON) $(buildscript-dir)/extract_texi_filenames.py -o $(XREF_MAPS_DIR) $<
+       $(buildscript-dir)/extract_texi_filenames $(XREF_MAP_FLAGS) -o $(XREF_MAPS_DIR) $<
 
+$(outdir)/%.texi: %.texi
+       cp -f $< $@
 
 $(outdir)/version.%: $(top-src-dir)/VERSION
        echo '@macro version'> $@
@@ -81,4 +67,5 @@ $(outdir)/version.%: $(top-src-dir)/VERSION
        echo '@end macro'>> $@
 
 .SECONDARY: $(outdir)/version.itexi $(outdir)/version.texi \
-  $(outdir)/$(INFO_IMAGES_DIR).info-images-dir-dep
+  $(outdir)/$(INFO_IMAGES_DIR).info-images-dir-dep \
+  $(outdir)/*.texi
index 492e1f636621a137c5687a030bf25664a5fac420..6754b77f5fe389bacd8ad48f64406e54e2c58dc4 100644 (file)
@@ -4,7 +4,7 @@ default: $(INFO_FILES)
 
 local-WWW-1: $(XREF_MAPS_FILES)
 
-local-doc: $(OUTTXT_FILES)
+local-doc:  $(OUTTXT_FILES)
 
 check-info: texinfo-all-menus-update
 
index 0fbf0f59199f72c29e0fb06d4fb04d484f1d5660..d3d237843cbf80f58e5144693dab43703510dbdc 100644 (file)
@@ -6,11 +6,11 @@ TEXINFO_SOURCES = $(TEXI_FILES)
 
 OUTTXT_FILES += $(addprefix $(outdir)/,$(TEXI_FILES:.texi=.txt))
 
-GENERATE_OMF = $(PYTHON) $(buildscript-dir)/texi2omf.py --format $(1) --location $(webdir)/$(tree-dir)/out-www/$(notdir $(basename $@))  --version $(TOPLEVEL_VERSION) $< > $@
+GENERATE_OMF = $(buildscript-dir)/texi2omf --format $(1) --location $(webdir)/$(tree-dir)/out-www/$(notdir $(basename $@))  --version $(TOPLEVEL_VERSION) $< > $@
 
 TEXINFO_PAPERSIZE_OPTION= $(if $(findstring $(PAPERSIZE),a4),,-t @afourpaper)
 
-MAKEINFO_FLAGS = --enable-encoding
+MAKEINFO_FLAGS += --enable-encoding $(DOCUMENTATION_INCLUDES)
 MAKEINFO = LANG= $(MAKEINFO_PROGRAM) $(MAKEINFO_FLAGS)
 
 # texi2html xref map files
@@ -25,6 +25,8 @@ TEXI2HTML_FLAGS += $(DOCUMENTATION_INCLUDES) --I=$(XREF_MAPS_DIR)
 TEXI2HTML_INIT = --init-file=$(top-src-dir)/lilypond-texi2html.init
 TEXI2HTML = $(TEXI2HTML_PROGRAM) $(TEXI2HTML_FLAGS) $(TEXI2HTML_LANG)
 
+TEXI2PDF_FLAGS += $(DOCUMENTATION_INCLUDES)
+
 ifdef QUIET_BUILD
 TEXI2PDF_FLAGS += -q
 endif
index 73adc870461bfd43cf3b0209dbe59ec18e41b2f7..89786ea768fd73945f137fc9a2a2290fbf4f04b9 100644 (file)
@@ -1,2 +1,3 @@
 TO_TOP_FILES=$(addprefix $(outdir)/, $(addsuffix .txt, $(README_TOP_FILES)))
 
+DOCUMENTATION_INCLUDES = -I $(top-src-dir)/Documentation/user
index bd2f3d7932ba848988966fb1334fd6c398d322b7..a9f8909fa6a53ad48856873c980d2584e98dae24 100644 (file)
@@ -1,3 +1,7 @@
+.PHONY: web-install
+web-install:
+web-uninstall:
+
 local-dist: configure
 
 local-distclean:
@@ -52,7 +56,6 @@ dist:
 
 local-help:
        @echo -e "\
-  web-uninstall  remove installed documentation with images\n\
   config      rerun configure\n\
   dist        roll tarball: $(depth)/$(outdir)/$(distname).tar.gz\n\
   distclean   also remove configure output\n\
@@ -62,6 +65,9 @@ local-help:
   po          make new translation Portable Object database\n\
   po-replace  do po-update and replace catalogs with msgmerged versions\n\
   po-update   update translation Portable Object database\n\
+  web-install * install website documentation in (webdir=$(webdir))\n\
+              and Info documentation with images\n\
+  web-uninstall *  remove installed documentation with images\n\
 \n\
 Some more targets are available for testing changes:\n\
   test-baseline  check  test-redo  test-clean\n\
index 51302a630905979712051da8bb09bc3092259b0f..64e2653bd9d227b0095c7f36e67df576d22317d9 100644 (file)
@@ -1,11 +1,12 @@
 depth = ..
 
-TEX_FILES = $(filter-out texinfo.tex, $(call src-wildcard,*.tex))
-EXTRA_DIST_FILES = $(TEX_FILES) texinfo.tex quotes.patch
-STEPMAKE_TEMPLATES=install install-out
+TEXINFO_FILES = texinfo.tex $(call src-wildcard,txi-*.tex)
+TEX_FILES = $(filter-out $(TEXINFO_FILES),$(call src-wildcard,*.tex))
+EXTRA_DIST_FILES = $(TEX_FILES) $(TEXINFO_FILES)
+STEPMAKE_TEMPLATES = install install-out
 
-INSTALLATION_DIR=$(local_lilypond_datadir)/tex/
-INSTALLATION_FILES=$(TEX_FILES)
+INSTALLATION_DIR = $(local_lilypond_datadir)/tex/
+INSTALLATION_FILES = $(TEX_FILES)
 
 include $(depth)/make/stepmake.make
 
@@ -13,4 +14,3 @@ local-uninstall:
        -rmdir $(DESTDIR)$(local_lilypond_datadir)/tex
 
 all: $(INSTALLATION_FILES)
-
diff --git a/tex/SConscript b/tex/SConscript
deleted file mode 100644 (file)
index e9feaa3..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-# -*-python-*-
-
-Import ('env', 'install', 'src_glob')
-sources = src_glob ('*.tex')
-install (sources, env['sharedir_package_version'] + '/tex')
diff --git a/tex/lily-ps-defs.tex b/tex/lily-ps-defs.tex
deleted file mode 100644 (file)
index 4a05f9d..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-%% lily-ps-defs.tex
-%%
-\edef\lilypsdefsELC{\the\endlinechar}%
-\endlinechar -1\relax
-
-%% Header info (macros/defs, etc) should go into a \special{! ... };
-%% note the ! sign.  See dvips.info for details.
-%%
-%% We protect punctuation characters with \string to avoid problems with
-%% language specific shorthands (e.g. `:' for French, `"' for German, etc.).
-
-\gdef\lilypondsetdimen#1{
-  \expandafter\gdef\csname #1ps\endcsname{}
-  \special{
-    \string!
-    /#1 (\csname #1\endcsname) set_tex_dimen}}
-
-\gdef\lilypondspace{ }
-
-\gdef\lilypondpostscript{
-  %% A document processed with lilypond-book can contain music fragments in
-  %% different sizes.  To reduce overhead, we define `lyscaleXXX' PS macros
-  %% only once.
-  \lilypondifundefined{lyscale\lilypondpaperoutputscale}
-    {\expandafter\gdef\csname lyscale\lilypondpaperoutputscale\endcsname{}
-     %% This sets CTM so that you get to the currentpoint
-     %% by executing a 0 0 moveto
-     \special{
-       \string!
-       /lyscale\lilypondpaperoutputscale
-         {\lilypondpaperoutputscale\lilypondspace\scaletounit %
-          dup scale} def}}
-    {}
-                      
-  \def\embeddedps##1{
-    \special{
-      \string"
-      lyscale\lilypondpaperoutputscale\lilypondspace ##1}}}
-
-\endlinechar \lilypsdefsELC
-\endinput
-
-%% end lily-ps-defs.tex
diff --git a/tex/lilyponddefs.tex b/tex/lilyponddefs.tex
deleted file mode 100644 (file)
index 467f563..0000000
+++ /dev/null
@@ -1,370 +0,0 @@
-%%% lilyponddefs.tex -- TeX macros for LilyPond output.
-%%%
-%%%  source file of the GNU LilyPond music typesetter
-%%% 
-%%% (c) 1998--2007 Jan Nieuwenhuizen <janneke@gnu.org>
-%%%                 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-%%%                 Mats Bengtsson <mats.bengtsson@s3.kth.se>
-%%%
-%%
-%% Avoid \par while reading this file.
-%%
-\edef\lilyponddefsELC{\the\endlinechar}%
-\endlinechar -1\relax
-
-%% This runs with plain TeX, LaTeX, pdftex, and texinfo.
-%%
-%% To avoid interferences, lilyponddefs.tex must be loaded within a group.
-%% It is loaded only once, so the definitions must be global.
-%%
-%% The overall structure of a file created by LilyPond is as follows:
-%%
-%%   <lilypond parameter definitions>
-%%   <font setup>
-%%   \ifx\lilypondstart \undefined
-%%     \input lilyponddefs
-%%   \fi
-%%   \lilypondstart
-%%   <note output>
-%%   \lilypondend
-
-%% A temporary variable.
-%%
-\newdimen\lytempdim
-
-%% The scaling factor for all dimensions.
-%%
-\newdimen\outputscale
-
-\long\gdef\lilypondfirst#1#2{#1}
-\long\gdef\lilypondsecond#1#2{#2}
-
-%% \lilypondundefined{xxx}{foo}{bar}
-%%
-%%   If `xxx' (without the leading backslash) is an undefined macro,
-%%   execute block `foo'.  Otherwise, execute block `bar'.  Based on
-%%   a similar macro from the LaTeX kernel.
-%%
-\gdef\lilypondifundefined#1{
-  \expandafter\ifx\csname#1\endcsname\relax
-    \expandafter\lilypondfirst
-  \else
-    \expandafter\lilypondsecond
-  \fi
-}
-
-%% Urgh.  LilyPond uses EC fonts, but texinfo is based on CM.  We thus
-%% have to handle T1 font encoding by ourselves; all manipulations are
-%% collected in the macro \lilypondECencoding.  Note that the following
-%% code only provides the texinfo interface, not complete access to all
-%% EC glyphs.
-%%
-%% All definitions are taken from texinfo or LaTeX (with modifications
-%% if necessary).
-%%
-\begingroup
-\catcode `\@=11\relax
-\gdef\lilypondECencoding{
-  \def\"##1{
-    {\accent4 ##1}}
-  \def\'##1{
-    {\accent1 ##1}}
-  \def\,##1{
-    {\leavevmode
-     \setbox\z@\hbox{##1}
-     \ifdim\ht\z@=1ex
-       \accent11 ##1
-     \else
-       {\ooalign{
-          \unhbox\z@
-          \crcr
-          \hidewidth
-          \char11
-          \hidewidth}}
-     \fi}}
-  \def\=##1{
-    {\accent9 ##1}}
-  \def\^##1{
-    {\accent2 ##1}}
-  \def\`##1{
-    {\accent0 ##1}}
-  \def\~##1{
-    {\accent3 ##1}}
-  \def\dotaccent##1{
-    {\accent10 ##1}}
-  \def\H##1{
-    {\accent5 ##1}}
-  \def\ringaccent##1{
-    {\accent6 ##1}}
-% \def\tieaccent##1{}        % unsupported: this is TS1
-  \def\u##1{
-    {\accent8 ##1}}
-  \def\ubaraccent##1{
-    {\o@lign{
-       \relax
-       ##1
-       \crcr
-       \hidewidth
-       \sh@ft{29}\vbox to.2ex{
-         \hbox{\char9}
-         \vss}
-       \hidewidth}}}
-  \def\udotaccent##1{
-    {\o@lign{
-       \relax
-       ##1
-       \crcr
-       \hidewidth
-       \sh@ft{10}.
-       \hidewidth}}}
-  \def\v##1{
-    {\accent7 ##1}}
-
-  \chardef\exclamdown=189
-  \chardef\questiondown=190
-
-  \def\aa{
-    \ringaccent{a}}
-  \def\AA{
-    \ringaccent{A}}
-  \chardef\AE=198
-  \chardef\ae=230
-  \chardef\ptexi=25
-  \chardef\j=26
-  \chardef\L=138
-  \chardef\l=170
-  \chardef\O=216
-  \chardef\o=248
-  \chardef\OE=215
-  \chardef\oe=247
-  \chardef\ss=255
-}
-\endgroup
-
-%% This macro provides the necessary setup to make the lilypond data
-%% work with plain TeX, LaTeX, and texinfo.
-%%
-%% The reason of using \begingroup and \endgroup is to make the macro \x
-%% immediately disappear after it has been executed.  Since we have \def
-%% within \def within \gdef, four hash signs (`#') are needed for
-%% parameters.
-%%
-%% \lilypondfontencoding is emitted by LilyPond to set the encoding of
-%% text strings.
-%%
-\gdef\lilypondstart{
-  \frenchspacing
-  \outputscale \lilypondpaperoutputscale\lilypondpaperunit
-
-  \begingroup
-  \catcode `\@=11\relax
-
-  %% \@nodocument is defined as \relax after `\begin{document}'
-  \lilypondifundefined{@nodocument}
-    {%% Either plain TeX or texinfo or not at the beginning of LaTeX input.
-     \def\x{
-       \endgroup
-
-       \def\lilypondfontencoding####1{
-         \lilypondECencoding}
-       \def\lilypondpagebreak{
-         \eject}
-       \def\lilypondnopagebreak{
-         \ifvmode
-           \penalty 10000\relax
-         \fi}}}
-
-    {%% LaTeX mode: Provide a complete preamble.
-     \def\x{
-       \endgroup
-
-       %% Indicate that we shall emit `\end{document}' while executing
-       %% \lilypondend.
-       \def\lilyponddocument{}
-
-       \def\lilypondfontencoding####1{
-         \fontencoding{####1}
-         \selectfont}
-       \def\lilypondpagebreak{
-         \newpage}
-       \def\lilypondnopagebreak{
-         \nopagebreak}
-
-       \documentclass[\lilyponddocumentclassoptions]{article}
-
-       %% As a safety guard, don't produce auxiliary files.
-       \nofiles
-
-       %% FIXME: workaround non-existent TeX.def.
-       \def\TeXdef{TeX}\ifx\TeXdef\lilypondpaperinputencoding
-         \usepackage[latin1]{inputenc}
-       \else
-         \usepackage[\lilypondpaperinputencoding]{inputenc}
-       \fi
-       \pagestyle{empty}
-
-       \usepackage{color}
-
-       \lilypondifundefined{lilypondclassic}
-         {%% If not in `classic' mode, undo LaTeX's page layout settings
-          %% since LilyPond does the layout by itself.
-          \topmargin-1in
-          \headheight0pt\headsep0pt
-          \oddsidemargin-1in
-          \evensidemargin\oddsidemargin}
-
-         {%% Otherwise center output horizontally, without changing the
-          %% vertical positioning.
-          \hsize\lilypondpaperlinewidth\lilypondpaperunit
-          \lytempdim \paperwidth
-          \advance\lytempdim -\the\hsize
-          \lytempdim 0.5\lytempdim
-          \advance\lytempdim -1in
-          \oddsidemargin \lytempdim
-          \evensidemargin \lytempdim}
-
-       \parindent 0pt
-
-       %% We can't directly say `\begin{document}' in this macro since
-       %% older versions of texinfo.tex define \begin as \outer; this
-       %% means that it causes an error if \begin is found within another
-       %% macro (even if the corresponding code will never be executed).
-       %% As a workaround we use \csname to call \begin.
-       \csname begin\endcsname{document}}}
-  \x}
-
-%% The opposite of \lilypondstart.
-%%
-\gdef\lilypondend{
-  %% Handle the `lastpagefill' parameter from the \layout block.
-  %% Ignore it if \lilypondbook is defined.
-  \lilypondifundefined{lilypondbook}
-    {\lilypondifundefined{lilypondpaperlastpagefill}
-       {\vskip 0pt plus\lilypondpaperinterscorelinefill00 fill}
-       {}}
-    {}
-
-  \begingroup
-  \lilypondifundefined{lilyponddocument}
-    {\def\x{
-       \endgroup}}
-    {\def\x{
-       \endgroup
-       \csname end\endcsname{document}}}
-  \x}
-
-%% Load the PostScript drawing routines.  This is done using \special.
-%% To avoid multiple inclusions, redefine \lilypondspecial to a no-op
-%% afterwards.
-%%
-\gdef\lilypondspecial{
-  \special{header=music-drawing-routines.ps}
-  \gdef\lilypondspecial{}}
-
-%% The most used macro in LilyPond output.  Put #3 into a zero-width box
-%% which is moved to the right by #1 (scaled by \outputscale) and moved
-%% up by #2 (also scaled by \outputscale).
-%%
-\gdef\lyitem#1#2#3{
-  \raise #2\outputscale \hbox to 0pt {
-    \kern #1\outputscale
-    #3
-    \hss}}
-
-%% All LilyPond music data is enclosed in this macro (as third argument).
-%% The data (which consists of boxes with zero width) gets an artificial
-%% width of #1 and a height of #2.  The resulting box is then centered
-%% vertically along the x-height of the current font.
-%%
-%% Parameters #1 and #2 are scaled by \outputscale.
-%%
-\gdef\lybox#1#2#3{
-  \lytempdim #2\outputscale
-  \lytempdim -0.5\lytempdim
-  \advance\lytempdim 1ex
-  \leavevmode
-  \raise \lytempdim \hbox to #1\outputscale {
-    %% Convert depth of #3 into height only.
-    \vbox to #2\outputscale {\hbox{#3}\vss}
-    \hss}}
-
-%% Produce a black bar (width #2, depth #3, height #4) with a vertical
-%% offset #1.  Everything is scaled by \outputscale.
-%%
-\gdef\lyvrule#1#2#3#4{
-  \kern#1\outputscale
-  \vrule width #2\outputscale depth #3\outputscale height #4\outputscale}
-
-%% FIXME: 'interscoreline' and 'lilypondPAPERinterscoreline
-%%
-\lilypondifundefined{lilypondpaperinterscorelinefill}
-  {\gdef\lilypondpaperinterscorelinefill{0}}
-  {\gdef\lilypondpaperinterscorelinefill{1}}
-
-%% Allow overriding of interscoreline, e.g., for LilyPond's --preview
-%%
-\lilypondifundefined{interscoreline}
-  {\lilypondifundefined{lilypondclassic}
-     {\gdef\interscoreline{}}
-     {\gdef\interscoreline{
-        \vskip\lilypondpaperinterscoreline\lilypondpaperunit
-        plus \lilypondpaperinterscorelinefill fill}}}
-  {}
-
-%% Include PostScript definitions (which are differently defined for
-%% TeX and pdfTeX).  This is loaded once only because the inputted files
-%% define \lilypondpostscript.
-%%
-%% (Don't remove the spaces after the arguments to \input!)
-%%
-%
-%% In teTeX-3.0, latex is actually pdfetex, and we need
-%% ifpdf.sty to determinine if we are really *tex or pdf*tex.
-%
-%% \input ifpdf.sty
-%
-%% However, ifpfd.sty is too smart for LilyPond, so we copy the
-%% logic here.  Using \input ifpdf.sty is a no-op when using latex,
-%% and the \ifpdf switch is needed before \documentclass, using
-%% \usepackage{ifpdf} is not an option.
-%
-\input lily-ps-defs 
-
-% barfs with texi 
-% Runaway argument?
-%{
-%! Forbidden control sequence found while scanning use of \lilypondfirst.
-%<inserted text>
-%                \par
-%<to be read again>
-%                   \newif
-%l.330   {\newif
-%               \ifpdf
-%?
-%
-%%
-%\lilypondifundefined{lilypondpostscript}
-%  {\newif\ifpdf
-%   \ifx\pdfoutput\undefined
-%   \else
-%     \ifx\pdfoutput\relax
-%     \else
-%       \ifcase\pdfoutput
-%       \else
-%         \pdftrue
-%       \fi
-%     \fi
-%   \fi
-%   \ifpdf
-%     {\input lily-pdf-defs }
-%   \else
-%     {\input lily-ps-defs }
-%   \fi}
-%  {}
-%
-%% Restore newline functionality (disabled to avoid \par).
-%%
-\endlinechar \lilyponddefsELC
-\endinput
-
-%% end lilyponddefs.tex
diff --git a/tex/quotes.patch b/tex/quotes.patch
deleted file mode 100644 (file)
index b7bba2e..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
---- texinfo/doc/texinfo.tex    2006-06-02 03:19:04.000000000 +0200
-+++ texinfo.tex        2006-06-02 03:19:10.000000000 +0200
-@@ -1878,9 +1878,12 @@
- {
-   \catcode`\-=\active
-   \catcode`\_=\active
-+  \catcode`\'=\active
-   %
-   \global\def\code{\begingroup
-     \catcode`\-=\active  \catcode`\_=\active
-+    \catcode`\'=\active
-+    \let'\singlequotechar
-     \ifallowcodebreaks
-      \let-\codedash
-      \let_\codeunder
-@@ -5059,11 +5062,10 @@
- %
- \maketwodispenvs {lisp}{example}{%
-   \nonfillstart
--  \tt
-+  \tt\quoteexpand
-   \let\kbdfont = \kbdexamplefont % Allow @kbd to do something special.
-   \gobble       % eat return
- }
--
- % @display/@smalldisplay: same as @lisp except keep current font.
- %
- \makedispenv {display}{%
-@@ -5191,6 +5193,12 @@
- \newdimen\tabw \setbox0=\hbox{\tt\space} \tabw=8\wd0 % tab amount
- %
- \def\starttabbox{\setbox0=\hbox\bgroup}
-+%
-+%
-+% Don't replace quotes with curly quotes. This makes cut & pasting
-+% from a PDF file problematic.
-+% 
-+\def\singlequotechar{\char'15\relax}
- \begingroup
-   \catcode`\^^I=\active
-   \gdef\tabexpand{%
-@@ -5203,6 +5211,11 @@
-       \wd0=\dimen0 \box0 \starttabbox
-     }%
-   }
-+  \catcode`\'=\active
-+  \gdef\quoteexpand{%
-+    \catcode`\'=\active
-+    \def'{\singlequotechar}
-+  }%
- \endgroup
- \def\setupverbatim{%
-   \let\nonarrowing = t%
-@@ -5212,6 +5225,7 @@
-   \def\par{\leavevmode\egroup\box0\endgraf}%
-   \catcode`\`=\active
-   \tabexpand
-+  \quoteexpand
-   % Respect line breaks,
-   % print special symbols as themselves, and
-   % make each space count
index 1db5426d254dea1e118a80b02ecd5b0cefc2e8c6..c7c92b8de7940f0cafbf0b77ec7da57b370e5016 100644 (file)
@@ -3,7 +3,7 @@
 % Load plain if necessary, i.e., if running under initex.
 \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
 %
-\def\texinfoversion{2008-10-16.09}
+\def\texinfoversion{2008-12-16.21}
 %
 % Copyright (C) 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995,
 % 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
@@ -98,6 +98,8 @@
 \let\ptexstar=\*
 \let\ptext=\t
 \let\ptextop=\top
+{\catcode`\'=\active
+\global\let\ptexquoteright'}% Math-mode def from plain.tex.
 
 % If this character appears in an error message or help string, it
 % starts a new line in the output.
@@ -926,6 +928,7 @@ where each line of input produces a line of output.}
   {%
     \makevalueexpandable  % we want to expand any @value in FILE.
     \turnoffactive        % and allow special characters in the expansion
+    \indexnofonts         % Allow `@@' and other weird things in file names.
     \edef\temp{\noexpand\input #1 }%
     %
     % This trickery is to read FILE outside of a group, in case it makes
@@ -944,6 +947,8 @@ where each line of input produces a line of output.}
   \catcode`>=\other
   \catcode`+=\other
   \catcode`-=\other
+  \catcode`\`=\other
+  \catcode`\'=\other
 }
 
 \def\pushthisfilestack{%
@@ -1142,11 +1147,13 @@ where each line of input produces a line of output.}
   \catcode`< = \active
   \catcode`> = \active
   \catcode`+ = \active
+  \catcode`' = \active
   \gdef\mathactive{%
     \let^ = \ptexhat
     \let< = \ptexless
     \let> = \ptexgtr
     \let+ = \ptexplus
+    \let' = \ptexquoteright
   }
 }
 
@@ -1328,7 +1335,10 @@ output) for that.)}
   \def\cmykDarkRed{0.28 1 1 0.35}
   \def\cmykBlack{0 0 0 1}
   %
-  \def\pdfsetcolor#1{\pdfliteral{#1 k}}
+  % k sets the color for filling (usual text, etc.);
+  % K sets the color for stroking (thin rules, e.g., normal _'s).
+  \def\pdfsetcolor#1{\pdfliteral{#1 k  #1 K}}
+  %
   % Set color, and create a mark which defines \thiscolor accordingly,
   % so that \makeheadline knows which color to restore.
   \def\setcolor#1{%
@@ -1597,6 +1607,7 @@ output) for that.)}
     \setcolor{\linkcolor}#1\endlink}
   \def\done{\edef\st{\global\noexpand\toksA={\the\toksB}}\st}
 \else
+  % non-pdf mode
   \let\pdfmkdest = \gobble
   \let\pdfurl = \gobble
   \let\endlink = \relax
@@ -1627,6 +1638,10 @@ output) for that.)}
 \def\bf{\fam=\bffam \setfontstyle{bf}}\def\bfstylename{bf}
 \def\tt{\fam=\ttfam \setfontstyle{tt}}
 
+% Unfortunately, we have to override this for titles and the like, since
+% in those cases "rm" is bold.  Sigh.
+\def\rmisbold{\rm\def\curfontstyle{bf}}
+
 % Texinfo sort of supports the sans serif font style, which plain TeX does not.
 % So we set up a \sf.
 \newfam\sffam
@@ -2024,8 +2039,6 @@ end
 \setfont\titlesc\scbshape{10}{\magstep4}{OT1}
 \font\titlei=cmmi12 scaled \magstep3
 \font\titlesy=cmsy10 scaled \magstep4
-\def\authorrm{\secrm}
-\def\authortt{\sectt}
 \def\titleecsize{2074}
 
 % Chapter (and unnumbered) fonts (17.28pt).
@@ -2157,8 +2170,6 @@ end
 \setfont\titlesc\scbshape{10}{\magstep4}{OT1}
 \font\titlei=cmmi12 scaled \magstep3
 \font\titlesy=cmsy10 scaled \magstep4
-\def\authorrm{\secrm}
-\def\authortt{\sectt}
 \def\titleecsize{2074}
 
 % Chapter fonts (14.4pt).
@@ -2290,7 +2301,7 @@ end
   \def\curfontsize{title}%
   \def\lsize{chap}\def\lllsize{subsec}%
   \resetmathfonts \setleading{25pt}}
-\def\titlefont#1{{\titlefonts\rm #1}}
+\def\titlefont#1{{\titlefonts\rmisbold #1}}
 \def\chapfonts{%
   \let\tenrm=\chaprm \let\tenit=\chapit \let\tensl=\chapsl
   \let\tenbf=\chapbf \let\tentt=\chaptt \let\smallcaps=\chapsc
@@ -2341,6 +2352,16 @@ end
   \def\lsize{smaller}\def\lllsize{smaller}%
   \resetmathfonts \setleading{9.5pt}}
 
+% Fonts for short table of contents.
+\setfont\shortcontrm\rmshape{12}{1000}{OT1}
+\setfont\shortcontbf\bfshape{10}{\magstep1}{OT1}  % no cmb12
+\setfont\shortcontsl\slshape{12}{1000}{OT1}
+\setfont\shortconttt\ttshape{12}{1000}{OT1TT}
+
+% Define these just so they can be easily changed for other fonts.
+\def\angleleft{$\langle$}
+\def\angleright{$\rangle$}
+
 % Set the fonts to use with the @small... environments.
 \let\smallexamplefonts = \smallfonts
 
@@ -2354,28 +2375,128 @@ end
 %
 % By the way, for comparison, here's what fits with @example (10pt):
 %   8.5x11=71  smallbook=60  a4=75  a5=58
-%
-% I wish the USA used A4 paper.
 % --karl, 24jan03.
 
-
 % Set up the default fonts, so we can use them for creating boxes.
 %
 \definetextfontsizexi
 
-% Define these so they can be easily changed for other fonts.
-\def\angleleft{$\langle$}
-\def\angleright{$\rangle$}
+
+\message{markup,}
+
+% Check if we are currently using a typewriter font.  Since all the
+% Computer Modern typewriter fonts have zero interword stretch (and
+% shrink), and it is reasonable to expect all typewriter fonts to have
+% this property, we can check that font parameter.
+%
+\def\ifmonospace{\ifdim\fontdimen3\font=0pt }
+
+% Markup style infrastructure.  \defmarkupstylesetup\INITMACRO will
+% define and register \INITMACRO to be called on markup style changes.
+% \INITMACRO can check \currentmarkupstyle for the innermost
+% style and the set of \ifmarkupSTYLE switches for all styles
+% currently in effect.
+\newif\ifmarkupvar
+\newif\ifmarkupsamp
+\newif\ifmarkupkey
+%\newif\ifmarkupfile % @file == @samp.
+%\newif\ifmarkupoption % @option == @samp.
+\newif\ifmarkupcode
+\newif\ifmarkupkbd
+%\newif\ifmarkupenv % @env == @code.
+%\newif\ifmarkupcommand % @command == @code.
+\newif\ifmarkuptex % @tex (and part of @math, for now).
+\newif\ifmarkupexample
+\newif\ifmarkupverb
+\newif\ifmarkupverbatim
+
+\let\currentmarkupstyle\empty
+
+\def\setupmarkupstyle#1{%
+  \csname markup#1true\endcsname
+  \def\currentmarkupstyle{#1}%
+  \markupstylesetup
+}
+
+\let\markupstylesetup\empty
+
+\def\defmarkupstylesetup#1{%
+  \expandafter\def\expandafter\markupstylesetup
+    \expandafter{\markupstylesetup #1}%
+  \def#1%
+}
+
+% Markup style setup for left and right quotes.
+\defmarkupstylesetup\markupsetuplq{%
+  \expandafter\let\expandafter \temp \csname markupsetuplq\currentmarkupstyle\endcsname
+  \ifx\temp\relax \markupsetuplqdefault \else \temp \fi
+}
+
+\defmarkupstylesetup\markupsetuprq{%
+  \expandafter\let\expandafter \temp \csname markupsetuprq\currentmarkupstyle\endcsname
+  \ifx\temp\relax \markupsetuprqdefault \else \temp \fi
+}
+
+{
+\catcode`\'=\active
+\catcode`\`=\active
+
+\gdef\markupsetuplqdefault{\let`\lq}
+\gdef\markupsetuprqdefault{\let'\rq}
+
+\gdef\markupsetcodequoteleft{\let`\codequoteleft}
+\gdef\markupsetcodequoteright{\let'\codequoteright}
+
+\gdef\markupsetnoligaturesquoteleft{\let`\noligaturesquoteleft}
+}
+
+\let\markupsetuplqcode \markupsetcodequoteleft
+\let\markupsetuprqcode \markupsetcodequoteright
+\let\markupsetuplqexample \markupsetcodequoteleft
+\let\markupsetuprqexample \markupsetcodequoteright
+\let\markupsetuplqverb \markupsetcodequoteleft
+\let\markupsetuprqverb \markupsetcodequoteright
+\let\markupsetuplqverbatim \markupsetcodequoteleft
+\let\markupsetuprqverbatim \markupsetcodequoteright
+
+\let\markupsetuplqsamp \markupsetnoligaturesquoteleft
+\let\markupsetuplqkbd \markupsetnoligaturesquoteleft
+
+% Allow an option to not replace quotes with a regular directed right
+% quote/apostrophe (char 0x27), but instead use the undirected quote
+% from cmtt (char 0x0d).  The undirected quote is ugly, so don't make it
+% the default, but it works for pasting with more pdf viewers (at least
+% evince), the lilypond developers report.  xpdf does work with the
+% regular 0x27.  
+% 
+\def\codequoteright{%
+  \expandafter\ifx\csname SETtxicodequoteundirected\endcsname\relax
+    \expandafter\ifx\csname SETcodequoteundirected\endcsname\relax
+      '%
+    \else \char'15 \fi
+  \else \char'15 \fi
+}
+%
+% and a similar option for the left quote char vs. a grave accent.
+% Modern fonts display ASCII 0x60 as a grave accent, so some people like
+% the code environments to do likewise.
+% 
+\def\codequoteleft{%
+  \expandafter\ifx\csname SETtxicodequotebacktick\endcsname\relax
+    \expandafter\ifx\csname SETcodequotebacktick\endcsname\relax
+      % [Knuth] pp. 380,381,391
+      % \relax disables Spanish ligatures ?` and !` of \tt font.
+      \relax`%
+    \else \char'22 \fi
+  \else \char'22 \fi
+}
+
+% [Knuth] pp. 380,381,391, disable Spanish ligatures ?` and !` of \tt font.
+\def\noligaturesquoteleft{\relax\lq}
 
 % Count depth in font-changes, for error checks
 \newcount\fontdepth \fontdepth=0
 
-% Fonts for short table of contents.
-\setfont\shortcontrm\rmshape{12}{1000}{OT1}
-\setfont\shortcontbf\bfshape{10}{\magstep1}{OT1}  % no cmb12
-\setfont\shortcontsl\slshape{12}{1000}{OT1}
-\setfont\shortconttt\ttshape{12}{1000}{OT1TT}
-
 %% Add scribe-like font environments, plus @l for inline lisp (usually sans
 %% serif) and @ii for TeX italic
 
@@ -2390,17 +2511,22 @@ end
 % @var is set to this for defun arguments.
 \def\ttslanted#1{{\ttsl #1}\futurelet\next\smartitalicx}
 
-% like \smartslanted except unconditionally use \sl.  We never want
+% @cite is like \smartslanted except unconditionally use \sl.  We never want
 % ttsl for book titles, do we?
 \def\cite#1{{\sl #1}\futurelet\next\smartitalicx}
 
 \let\i=\smartitalic
 \let\slanted=\smartslanted
-\let\var=\smartslanted
+\def\var#1{{\setupmarkupstyle{var}\smartslanted{#1}}}
 \let\dfn=\smartslanted
 \let\emph=\smartitalic
 
-% @b, explicit bold.
+% Explicit font changes: @r, @sc, undocumented @ii.
+\def\r#1{{\rm #1}}              % roman font
+\def\sc#1{{\smallcaps#1}}       % smallcaps font
+\def\ii#1{{\it #1}}             % italic font
+
+% @b, explicit bold.  Also @strong.
 \def\b#1{{\bf #1}}
 \let\strong=\b
 
@@ -2432,22 +2558,35 @@ end
 \catcode`@=\other
 \def\endofsentencespacefactor{3000}% default
 
+% @t, explicit typewriter.
 \def\t#1{%
   {\tt \rawbackslash \plainfrenchspacing #1}%
   \null
 }
-\def\samp#1{`\tclose{#1}'\null}
-\setfont\keyrm\rmshape{8}{1000}{OT1}
-\font\keysy=cmsy9
-\def\key#1{{\keyrm\textfont2=\keysy \leavevmode\hbox{%
-  \raise0.4pt\hbox{\angleleft}\kern-.08em\vtop{%
-    \vbox{\hrule\kern-0.4pt
-     \hbox{\raise0.4pt\hbox{\vphantom{\angleleft}}#1}}%
-    \kern-0.4pt\hrule}%
-  \kern-.06em\raise0.4pt\hbox{\angleright}}}}
-\def\key #1{{\nohyphenation \uppercase{#1}}\null}
-% The old definition, with no lozenge:
-%\def\key #1{{\ttsl \nohyphenation \uppercase{#1}}\null}
+
+% @samp.
+\def\samp#1{{\setupmarkupstyle{samp}\lq\tclose{#1}\rq\null}}
+
+% definition of @key that produces a lozenge.  Doesn't adjust to text size.
+%\setfont\keyrm\rmshape{8}{1000}{OT1}
+%\font\keysy=cmsy9
+%\def\key#1{{\keyrm\textfont2=\keysy \leavevmode\hbox{%
+%  \raise0.4pt\hbox{\angleleft}\kern-.08em\vtop{%
+%    \vbox{\hrule\kern-0.4pt
+%     \hbox{\raise0.4pt\hbox{\vphantom{\angleleft}}#1}}%
+%    \kern-0.4pt\hrule}%
+%  \kern-.06em\raise0.4pt\hbox{\angleright}}}}
+
+% definition of @key with no lozenge.  If the current font is already
+% monospace, don't change it; that way, we respect @kbdinputstyle.  But
+% if it isn't monospace, then use \tt.
+%
+\def\key#1{{\setupmarkupstyle{key}
+  \nohyphenation
+  \ifmonospace\else\tt\fi
+  #1}\null}
+
+% ctrl is no longer a Texinfo command.
 \def\ctrl #1{{\tt \rawbackslash \hat}#1}
 
 % @file, @option are the same as @samp.
@@ -2489,11 +2628,11 @@ end
 {
   \catcode`\-=\active \catcode`\_=\active
   \catcode`\'=\active \catcode`\`=\active
+  \global\let'=\rq \global\let`=\lq  % default definitions
   %
   \global\def\code{\begingroup
-    \catcode\rquoteChar=\active \catcode\lquoteChar=\active
-    \let'\codequoteright \let`\codequoteleft
-    %
+    \setupmarkupstyle{code}%
+    % The following should really be moved into \setupmarkupstyle handlers.
     \catcode\dashChar=\active  \catcode\underChar=\active
     \ifallowcodebreaks
      \let-\codedash
@@ -2545,6 +2684,7 @@ end
 
 % @kbd is like @code, except that if the argument is just one @key command,
 % then @kbd has no effect.
+\def\kbd#1{{\setupmarkupstyle{kbd}\def\look{#1}\expandafter\kbdfoo\look??\par}}
 
 % @kbdinputstyle -- arg is `distinct' (@kbd uses slanted tty font always),
 %   `example' (@kbd uses ttsl only inside of @example and friends),
@@ -2566,14 +2706,14 @@ end
 \def\wordexample{example}
 \def\wordcode{code}
 
-% Default is `distinct.'
+% Default is `distinct'.
 \kbdinputstyle distinct
 
 \def\xkey{\key}
 \def\kbdfoo#1#2#3\par{\def\one{#1}\def\three{#3}\def\threex{??}%
 \ifx\one\xkey\ifx\threex\three \key{#2}%
-\else{\tclose{\kbdfont\look}}\fi
-\else{\tclose{\kbdfont\look}}\fi}
+\else{\tclose{\kbdfont\setupmarkupstyle{kbd}\look}}\fi
+\else{\tclose{\kbdfont\setupmarkupstyle{kbd}\look}}\fi}
 
 % For @indicateurl, @env, @command quotes seem unnecessary, so use \code.
 \let\indicateurl=\code
@@ -2636,30 +2776,16 @@ end
   \let\email=\uref
 \fi
 
-% Check if we are currently using a typewriter font.  Since all the
-% Computer Modern typewriter fonts have zero interword stretch (and
-% shrink), and it is reasonable to expect all typewriter fonts to have
-% this property, we can check that font parameter.
-%
-\def\ifmonospace{\ifdim\fontdimen3\font=0pt }
-
 % Typeset a dimension, e.g., `in' or `pt'.  The only reason for the
 % argument is to make the input look right: @dmn{pt} instead of @dmn{}pt.
 %
 \def\dmn#1{\thinspace #1}
 
-\def\kbd#1{\def\look{#1}\expandafter\kbdfoo\look??\par}
-
 % @l was never documented to mean ``switch to the Lisp font'',
 % and it is not used as such in any manual I can find.  We need it for
 % Polish suppressed-l.  --karl, 22sep96.
 %\def\l#1{{\li #1}\null}
 
-% Explicit font changes: @r, @sc, undocumented @ii.
-\def\r#1{{\rm #1}}              % roman font
-\def\sc#1{{\smallcaps#1}}       % smallcaps font
-\def\ii#1{{\it #1}}             % italic font
-
 % @acronym for "FBI", "NATO", and the like.
 % We print this one point size smaller, since it's intended for
 % all-uppercase.
@@ -2685,6 +2811,44 @@ end
   \fi
 }
 
+
+\message{glyphs,}
+
+% @point{}, @result{}, @expansion{}, @print{}, @equiv{}.
+%
+% Since these characters are used in examples, they should be an even number of
+% \tt widths. Each \tt character is 1en, so two makes it 1em.
+%
+\def\point{$\star$}
+\def\arrow{\leavevmode\raise.05ex\hbox to 1em{\hfil$\rightarrow$\hfil}}
+\def\result{\leavevmode\raise.05ex\hbox to 1em{\hfil$\Rightarrow$\hfil}}
+\def\expansion{\leavevmode\hbox to 1em{\hfil$\mapsto$\hfil}}
+\def\print{\leavevmode\lower.1ex\hbox to 1em{\hfil$\dashv$\hfil}}
+\def\equiv{\leavevmode\hbox to 1em{\hfil$\ptexequiv$\hfil}}
+
+% The @error{} command.
+% Adapted from the TeXbook's \boxit.
+%
+\newbox\errorbox
+%
+{\tentt \global\dimen0 = 3em}% Width of the box.
+\dimen2 = .55pt % Thickness of rules
+% The text. (`r' is open on the right, `e' somewhat less so on the left.)
+\setbox0 = \hbox{\kern-.75pt \reducedsf error\kern-1.5pt}
+%
+\setbox\errorbox=\hbox to \dimen0{\hfil
+   \hsize = \dimen0 \advance\hsize by -5.8pt % Space to left+right.
+   \advance\hsize by -2\dimen2 % Rules.
+   \vbox{%
+      \hrule height\dimen2
+      \hbox{\vrule width\dimen2 \kern3pt          % Space to left of text.
+         \vtop{\kern2.4pt \box0 \kern2.4pt}% Space above/below.
+         \kern3pt\vrule width\dimen2}% Space to right.
+      \hrule height\dimen2}
+    \hfil}
+%
+\def\error{\leavevmode\lower.7ex\copy\errorbox}
+
 % @pounds{} is a sterling sign, which Knuth put in the CM italic font.
 %
 \def\pounds{{\it\$}}
@@ -2749,8 +2913,35 @@ end
 \def\quotedblbase{{\ecfont \char"12}}
 \def\quotesinglbase{{\ecfont \char"0D}}
 %
+% This positioning is not perfect (see the ogonek LaTeX package), but
+% we have the precomposed glyphs for the most common cases.  We put the
+% tests to use those glyphs in the single \ogonek macro so we have fewer
+% dummy definitions to worry about for index entries, etc.
+% 
+% ogonek is also used with other letters in Lithuanian (IOU), but using
+% the precomposed glyphs for those is not so easy since they aren't in
+% the same EC font.
+\def\ogonek#1{{%
+  \def\temp{#1}%
+  \ifx\temp\macrocharA\Aogonek
+  \else\ifx\temp\macrochara\aogonek
+  \else\ifx\temp\macrocharE\Eogonek
+  \else\ifx\temp\macrochare\eogonek
+  \else
+    \ecfont \setbox0=\hbox{#1}%
+    \ifdim\ht0=1ex\accent"0C #1%
+    \else\ooalign{\unhbox0\crcr\hidewidth\char"0C \hidewidth}%
+    \fi
+  \fi\fi\fi\fi
+  }%
+}
+\def\Aogonek{{\ecfont \char"81}}\def\macrocharA{A}
+\def\aogonek{{\ecfont \char"A1}}\def\macrochara{a}
+\def\Eogonek{{\ecfont \char"86}}\def\macrocharE{E}
+\def\eogonek{{\ecfont \char"A6}}\def\macrochare{e}
+%
 \def\ecfont{%
-  % We can't distinguish serif/sanserif and italic/slanted, but this
+  % We can't distinguish serif/sans and italic/slanted, but this
   % is used for crude hacks anyway (like adding French and German
   % quotes to documents typeset with CM, where we lose kerning), so
   % hopefully nobody will notice/care.
@@ -2878,12 +3069,9 @@ end
 \let\subtitlerm=\tenrm
 \def\subtitlefont{\subtitlerm \normalbaselineskip = 13pt \normalbaselines}
 
-\def\authorfont{\authorrm \normalbaselineskip = 16pt \normalbaselines
-               \let\tt=\authortt}
-
 \parseargdef\title{%
   \checkenv\titlepage
-  \leftline{\titlefonts\rm #1}
+  \leftline{\titlefonts\rmisbold #1}
   % print a rule at the page bottom also.
   \finishedtitlepagefalse
   \vskip4pt \hrule height 4pt width \hsize \vskip4pt
@@ -2904,7 +3092,7 @@ end
   \else
     \checkenv\titlepage
     \ifseenauthor\else \vskip 0pt plus 1filll \seenauthortrue \fi
-    {\authorfont \leftline{#1}}%
+    {\secfonts\rmisbold \leftline{#1}}%
   \fi
 }
 
@@ -4036,6 +4224,7 @@ end
   \definedummyword\guilsinglright
   \definedummyword\expansion
   \definedummyword\minus
+  \definedummyword\ogonek
   \definedummyword\pounds
   \definedummyword\point
   \definedummyword\print
@@ -4079,6 +4268,7 @@ end
   \definedummyword\v
   \definedummyword\H
   \definedummyword\dotaccent
+  \definedummyword\ogonek
   \definedummyword\ringaccent
   \definedummyword\tieaccent
   \definedummyword\ubaraccent
@@ -5061,7 +5251,6 @@ end
 %       3) Likewise, headings look best if no \parindent is used, and
 %          if justification is not attempted.  Hence \raggedright.
 
-
 \def\majorheading{%
   {\advance\chapheadingskip by 10pt \chapbreak }%
   \parsearg\chapheadingzzz
@@ -5071,7 +5260,7 @@ end
 \def\chapheadingzzz#1{%
   {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
                     \parindent=0pt\raggedright
-                    \rm #1\hfill}}%
+                    \rmisbold #1\hfill}}%
   \bigskip \par\penalty 200\relax
   \suppressfirstparagraphindent
 }
@@ -5190,7 +5379,7 @@ end
   \domark
   %
   {%
-    \chapfonts \rm
+    \chapfonts \rmisbold
     %
     % Have to define \lastsection before calling \donoderef, because the
     % xref code eventually uses it.  On the other hand, it has to be called
@@ -5252,7 +5441,7 @@ end
 \def\unnchfopen #1{%
 \chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
                        \parindent=0pt\raggedright
-                       \rm #1\hfill}}\bigskip \par\nobreak
+                       \rmisbold #1\hfill}}\bigskip \par\nobreak
 }
 \def\chfopen #1#2{\chapoddpage {\chapfonts
 \vbox to 3in{\vfil \hbox to\hsize{\hfil #2} \hbox to\hsize{\hfil #1} \vfil}}%
@@ -5261,7 +5450,7 @@ end
 \def\centerchfopen #1{%
 \chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
                        \parindent=0pt
-                       \hfill {\rm #1}\hfill}}\bigskip \par\nobreak
+                       \hfill {\rmisbold #1}\hfill}}\bigskip \par\nobreak
 }
 \def\CHAPFopen{%
   \global\let\chapmacro=\chfopen
@@ -5294,7 +5483,7 @@ end
 \def\sectionheading#1#2#3#4{%
   {%
     % Switch to the right set of fonts.
-    \csname #2fonts\endcsname \rm
+    \csname #2fonts\endcsname \rmisbold
     %
     \def\sectionlevel{#2}%
     \def\temptype{#3}%
@@ -5330,6 +5519,11 @@ end
       \fi
     \fi\fi\fi
     %
+    % Go into vertical mode.  Usually we'll already be there, but we
+    % don't want the following whatsit to end up in a preceding paragraph
+    % if the document didn't happen to have a blank line.
+    \par
+    %
     % Output the mark.  Pass it through \safewhatsit, to take care of
     % the preceding space.
     \safewhatsit\domark
@@ -5677,46 +5871,12 @@ end
 \message{environments,}
 % @foo ... @end foo.
 
-% @point{}, @result{}, @expansion{}, @print{}, @equiv{}.
-%
-% Since these characters are used in examples, they should be an even number of
-% \tt widths. Each \tt character is 1en, so two makes it 1em.
-%
-\def\point{$\star$}
-\def\arrow{\leavevmode\raise.05ex\hbox to 1em{\hfil$\rightarrow$\hfil}}
-\def\result{\leavevmode\raise.05ex\hbox to 1em{\hfil$\Rightarrow$\hfil}}
-\def\expansion{\leavevmode\hbox to 1em{\hfil$\mapsto$\hfil}}
-\def\print{\leavevmode\lower.1ex\hbox to 1em{\hfil$\dashv$\hfil}}
-\def\equiv{\leavevmode\hbox to 1em{\hfil$\ptexequiv$\hfil}}
-
-% The @error{} command.
-% Adapted from the TeXbook's \boxit.
-%
-\newbox\errorbox
-%
-{\tentt \global\dimen0 = 3em}% Width of the box.
-\dimen2 = .55pt % Thickness of rules
-% The text. (`r' is open on the right, `e' somewhat less so on the left.)
-\setbox0 = \hbox{\kern-.75pt \reducedsf error\kern-1.5pt}
-%
-\setbox\errorbox=\hbox to \dimen0{\hfil
-   \hsize = \dimen0 \advance\hsize by -5.8pt % Space to left+right.
-   \advance\hsize by -2\dimen2 % Rules.
-   \vbox{%
-      \hrule height\dimen2
-      \hbox{\vrule width\dimen2 \kern3pt          % Space to left of text.
-         \vtop{\kern2.4pt \box0 \kern2.4pt}% Space above/below.
-         \kern3pt\vrule width\dimen2}% Space to right.
-      \hrule height\dimen2}
-    \hfil}
-%
-\def\error{\leavevmode\lower.7ex\copy\errorbox}
-
 % @tex ... @end tex    escapes into raw Tex temporarily.
 % One exception: @ is still an escape character, so that @end tex works.
 % But \@ or @@ will get a plain tex @ character.
 
 \envdef\tex{%
+  \setupmarkupstyle{tex}%
   \catcode `\\=0 \catcode `\{=1 \catcode `\}=2
   \catcode `\$=3 \catcode `\&=4 \catcode `\#=6
   \catcode `\^=7 \catcode `\_=8 \catcode `\~=\active \let~=\tie
@@ -5726,6 +5886,8 @@ end
   \catcode `\|=\other
   \catcode `\<=\other
   \catcode `\>=\other
+  \catcode`\`=\other
+  \catcode`\'=\other
   \escapechar=`\\
   %
   \let\b=\ptexb
@@ -5861,6 +6023,7 @@ end
 
 % This macro is called at the beginning of all the @example variants,
 % inside a group.
+\newdimen\nonfillparindent
 \def\nonfillstart{%
   \aboveenvbreak
   \hfuzz = 12pt % Don't be fussy
@@ -5868,7 +6031,12 @@ end
   \let\par = \lisppar % don't ignore blank lines
   \obeylines % each line of input is a line of output
   \parskip = 0pt
+  % Turn off paragraph indentation but redefine \indent to emulate
+  % the normal \indent.
+  \nonfillparindent=\parindent
   \parindent = 0pt
+  \let\indent\nonfillindent
+  %
   \emergencystretch = 0pt % don't try to avoid overfull boxes
   \ifx\nonarrowing\relax
     \advance \leftskip by \lispnarrowing
@@ -5879,6 +6047,24 @@ end
   \let\exdent=\nofillexdent
 }
 
+\begingroup
+\obeyspaces
+% We want to swallow spaces (but not other tokens) after the fake
+% @indent in our nonfill-environments, where spaces are normally
+% active and set to @tie, resulting in them not being ignored after
+% @indent.
+\gdef\nonfillindent{\futurelet\temp\nonfillindentcheck}%
+\gdef\nonfillindentcheck{%
+\ifx\temp %
+\expandafter\nonfillindentgobble%
+\else%
+\leavevmode\nonfillindentbox%
+\fi%
+}%
+\endgroup
+\def\nonfillindentgobble#1{\nonfillindent}
+\def\nonfillindentbox{\hbox to \nonfillparindent{\hss}}
+
 % If you want all examples etc. small: @set dispenvsize small.
 % If you want even small examples the full size: @set dispenvsize nosmall.
 % This affects the following displayed environments:
@@ -5927,7 +6113,7 @@ end
 %
 \maketwodispenvs {lisp}{example}{%
   \nonfillstart
-  \tt\quoteexpand
+  \tt\setupmarkupstyle{example}%
   \let\kbdfont = \kbdexamplefont % Allow @kbd to do something special.
   \gobble       % eat return
 }
@@ -5970,7 +6156,7 @@ end
 % we're doing normal filling.  So, when using \aboveenvbreak and
 % \afterenvbreak, temporarily make \parskip 0.
 %
-\envdef\quotation{%
+\def\quotationstart{%
   {\parskip=0pt \aboveenvbreak}% because \aboveenvbreak inserts \parskip
   \parindent=0pt
   %
@@ -5985,6 +6171,17 @@ end
   \parsearg\quotationlabel
 }
 
+\envdef\quotation{%
+  \setnormaldispenv
+  \quotationstart
+}
+
+\envdef\smallquotation{%
+  \setsmalldispenv
+  \quotationstart
+}
+\let\Esmallquotation = \Equotation
+
 % We have retained a nonzero parskip for the environment, since we're
 % doing normal filling.
 %
@@ -6020,18 +6217,16 @@ end
   \do\ \do\\\do\{\do\}\do\$\do\&%
   \do\#\do\^\do\^^K\do\_\do\^^A\do\%\do\~%
   \do\<\do\>\do\|\do\@\do+\do\"%
+  % Don't do the quotes -- if we do, @set txicodequoteundirected and
+  % @set txicodequotebacktick will not have effect on @verb and
+  % @verbatim, and ?` and !` ligatures won't get disabled.
+  %\do\`\do\'%
 }
 %
 % [Knuth] p. 380
 \def\uncatcodespecials{%
   \def\do##1{\catcode`##1=\other}\dospecials}
 %
-% [Knuth] pp. 380,381,391
-% Disable Spanish ligatures ?` and !` of \tt font
-\begingroup
-  \catcode`\`=\active\gdef`{\relax\lq}
-\endgroup
-%
 % Setup for the @verb command.
 %
 % Eight spaces for a tab
@@ -6043,7 +6238,7 @@ end
 \def\setupverb{%
   \tt  % easiest (and conventionally used) font for verbatim
   \def\par{\leavevmode\endgraf}%
-  \catcode`\`=\active
+  \setupmarkupstyle{verb}%
   \tabeightspaces
   % Respect line breaks,
   % print special symbols as themselves, and
@@ -6058,33 +6253,6 @@ end
 \newdimen\tabw \setbox0=\hbox{\tt\space} \tabw=8\wd0 % tab amount
 %
 \def\starttabbox{\setbox0=\hbox\bgroup}
-
-% Allow an option to not replace quotes with a regular directed right
-% quote/apostrophe (char 0x27), but instead use the undirected quote
-% from cmtt (char 0x0d).  The undirected quote is ugly, so don't make it
-% the default, but it works for pasting with more pdf viewers (at least
-% evince), the lilypond developers report.  xpdf does work with the
-% regular 0x27.  
-% 
-\def\codequoteright{%
-  \expandafter\ifx\csname SETtxicodequoteundirected\endcsname\relax
-    \expandafter\ifx\csname SETcodequoteundirected\endcsname\relax
-      '%
-    \else \char'15 \fi
-  \else \char'15 \fi
-}
-%
-% and a similar option for the left quote char vs. a grave accent.
-% Modern fonts display ASCII 0x60 as a grave accent, so some people like
-% the code environments to do likewise.
-% 
-\def\codequoteleft{%
-  \expandafter\ifx\csname SETtxicodequotebacktick\endcsname\relax
-    \expandafter\ifx\csname SETcodequotebacktick\endcsname\relax
-      `%
-    \else \char'22 \fi
-  \else \char'22 \fi
-}
 %
 \begingroup
   \catcode`\^^I=\active
@@ -6098,13 +6266,6 @@ end
       \wd0=\dimen0 \box0 \starttabbox
     }%
   }
-  \catcode`\'=\active
-  \gdef\rquoteexpand{\catcode\rquoteChar=\active \def'{\codequoteright}}%
-  %
-  \catcode`\`=\active
-  \gdef\lquoteexpand{\catcode\lquoteChar=\active \def`{\codequoteleft}}%
-  %
-  \gdef\quoteexpand{\rquoteexpand \lquoteexpand}%
 \endgroup
 
 % start the verbatim environment.
@@ -6114,9 +6275,8 @@ end
   % Easiest (and conventionally used) font for verbatim
   \tt
   \def\par{\leavevmode\egroup\box0\endgraf}%
-  \catcode`\`=\active
   \tabexpand
-  \quoteexpand
+  \setupmarkupstyle{verbatim}%
   % Respect line breaks,
   % print special symbols as themselves, and
   % make each space count
@@ -6175,8 +6335,8 @@ end
 \def\doverbatiminclude#1{%
   {%
     \makevalueexpandable
-    \def\@{@}% we want to use \indexnofonts, but then verbatim ends prematurely
     \setupverbatim
+    \indexnofonts       % Allow `@@' and other weird things in file names.
     \input #1
     \afterenvbreak
   }%
@@ -6455,7 +6615,7 @@ end
   %
   % On the other hand, if an argument has two dashes (for instance), we
   % want a way to get ttsl.  Let's try @var for that.
-  \let\var=\ttslanted
+  \def\var##1{{\setupmarkupstyle{var}\ttslanted{##1}}}%
   #1%
   \sl\hyphenchar\font=45
 }
@@ -7904,7 +8064,7 @@ directory should work if nowhere else does.}
   \gdef^^a8{\"{}} 
   \gdef^^a9{\copyright} 
   \gdef^^aa{\ordf}
-  \gdef^^ab{\missingcharmsg{LEFT-POINTING DOUBLE ANGLE QUOTATION MARK}} 
+  \gdef^^ab{\guillemetleft}
   \gdef^^ac{$\lnot$}
   \gdef^^ad{\-} 
   \gdef^^ae{\registeredsymbol} 
@@ -7923,7 +8083,7 @@ directory should work if nowhere else does.}
   \gdef^^b9{$^1$}
   \gdef^^ba{\ordm}
   %
-  \gdef^^bb{\missingcharmsg{RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK}}
+  \gdef^^bb{\guilletright}
   \gdef^^bc{$1\over4$}
   \gdef^^bd{$1\over2$}
   \gdef^^be{$3\over4$}
@@ -8016,7 +8176,7 @@ directory should work if nowhere else does.}
 % Latin2 (ISO-8859-2) character definitions.
 \def\lattwochardefs{%
   \gdef^^a0{~}
-  \gdef^^a1{\missingcharmsg{LATIN CAPITAL LETTER A WITH OGONEK}}
+  \gdef^^a1{\ogonek{A}}
   \gdef^^a2{\u{}}
   \gdef^^a3{\L}
   \gdef^^a4{\missingcharmsg{CURRENCY SIGN}}
@@ -8033,8 +8193,8 @@ directory should work if nowhere else does.}
   \gdef^^af{\dotaccent Z}
   %
   \gdef^^b0{\textdegree}
-  \gdef^^b1{\missingcharmsg{LATIN SMALL LETTER A WITH OGONEK}}
-  \gdef^^b2{\missingcharmsg{OGONEK}}
+  \gdef^^b1{\ogonek{a}}
+  \gdef^^b2{\ogonek{ }}
   \gdef^^b3{\l}
   \gdef^^b4{\'{}}
   \gdef^^b5{\v l}
@@ -8059,7 +8219,7 @@ directory should work if nowhere else does.}
   \gdef^^c7{\cedilla C}
   \gdef^^c8{\v C}
   \gdef^^c9{\'E}
-  \gdef^^ca{\missingcharmsg{LATIN CAPITAL LETTER E WITH OGONEK}}
+  \gdef^^ca{\ogonek{E}}
   \gdef^^cb{\"E}
   \gdef^^cc{\v E}
   \gdef^^cd{\'I}
@@ -8093,7 +8253,7 @@ directory should work if nowhere else does.}
   \gdef^^e7{\cedilla c}
   \gdef^^e8{\v c}
   \gdef^^e9{\'e}
-  \gdef^^ea{\missingcharmsg{LATIN SMALL LETTER E WITH OGONEK}}
+  \gdef^^ea{\ogonek{e}}
   \gdef^^eb{\"e}
   \gdef^^ec{\v e}
   \gdef^^ed{\'\i}
@@ -8322,10 +8482,14 @@ directory should work if nowhere else does.}
   \DeclareUnicodeCharacter{0101}{\=a}
   \DeclareUnicodeCharacter{0102}{\u{A}}
   \DeclareUnicodeCharacter{0103}{\u{a}}
+  \DeclareUnicodeCharacter{0104}{\ogonek{A}}
+  \DeclareUnicodeCharacter{0105}{\ogonek{a}}
   \DeclareUnicodeCharacter{0106}{\'C}
   \DeclareUnicodeCharacter{0107}{\'c}
   \DeclareUnicodeCharacter{0108}{\^C}
   \DeclareUnicodeCharacter{0109}{\^c}
+  \DeclareUnicodeCharacter{0118}{\ogonek{E}}
+  \DeclareUnicodeCharacter{0119}{\ogonek{e}}
   \DeclareUnicodeCharacter{010A}{\dotaccent{C}}
   \DeclareUnicodeCharacter{010B}{\dotaccent{c}}
   \DeclareUnicodeCharacter{010C}{\v{C}}
@@ -8473,6 +8637,8 @@ directory should work if nowhere else does.}
   \DeclareUnicodeCharacter{0233}{\=y}
   \DeclareUnicodeCharacter{0237}{\dotless{j}}
 
+  \DeclareUnicodeCharacter{02DB}{\ogonek{ }}
+
   \DeclareUnicodeCharacter{1E02}{\dotaccent{B}}
   \DeclareUnicodeCharacter{1E03}{\dotaccent{b}}
   \DeclareUnicodeCharacter{1E04}{\udotaccent{B}}
@@ -8854,6 +9020,9 @@ directory should work if nowhere else does.}
 
 \message{and turning on texinfo input format.}
 
+% DEL is a comment character, in case @c does not suffice.
+\catcode`\^^? = 14
+
 % Define macros to output various characters with catcode for normal text.
 \catcode`\"=\other
 \catcode`\~=\other
@@ -8975,6 +9144,8 @@ directory should work if nowhere else does.}
   @let>=@normalgreater
   @let+=@normalplus
   @let$=@normaldollar %$ font-lock fix
+  @markupsetuplqdefault
+  @markupsetuprqdefault
   @unsepspaces
 }
 
@@ -9009,7 +9180,15 @@ directory should work if nowhere else does.}
 @catcode`@# = @other
 @catcode`@% = @other
 
-
+@c Finally, make ` and ' active, so that txicodequoteundirected and
+@c txicodequotebacktick work right in, e.g., @w{@code{`foo'}}.  If we
+@c don't make ` and ' active, @code will not get them as active chars.
+@c Do this last of all since we use ` in the previous @catcode assignments.
+@catcode`@'=@active
+@catcode`@`=@active
+@markupsetuplqdefault
+@markupsetuprqdefault
 @c Local variables:
 @c eval: (add-hook 'write-file-hooks 'time-stamp)
 @c page-delimiter: "^\\\\message"
index 4915eaef81f54fe7671c9227adcf402393ce3eae..4badeddcb809235240b3c9ab7a2c0be06cbd5edc 100644 (file)
@@ -1,4 +1,4 @@
-% $Id: txi-fr.tex,v 1.7 2008/10/16 17:13:10 karl Exp $
+% $Id: txi-fr.tex,v 1.8 2008/10/21 23:51:37 karl Exp $
 % txi-fr.tex -- French translations for texinfo.tex.
 %
 % Copyright (C) 1999, 2007, 2008 Free Software Foundation.
@@ -21,7 +21,7 @@
 % Translation date: le 10 décembre 1999.
 % Transmitted to: Karl Berry <karl@cs.umb.edu>
 
-\txisetlanguage{french}{2}{2}
+\txisetlanguage{french}{2}{3}
 
 \plainfrenchspacing
 
index fd82e40164ae545679ce9529ece1f13285148b3c..ad032e42fe75d5542147a7dd6e756e9557ace988 100644 (file)
@@ -9,7 +9,7 @@ EXTRA_DIST_FILES=$(call src-wildcard,*.vim) vimrc
 LILYPOND_WORDS = $(outdir)/lilypond-words $(outdir)/lilypond-words.vim
 LILYPOND_WORDS_DEPENDS =\
   $(top-src-dir)/lily/lily-lexer.cc \
-  $(buildscript-dir)/lilypond-words.py \
+  $(buildscript-dir)/lilypond-words \
   $(top-src-dir)/scm/markup.scm \
   $(top-src-dir)/ly/engraver-init.ly
 
@@ -31,8 +31,11 @@ local-uninstall:
        done
        -rmdir -p $(DESTDIR)$(vimdir)
 
+$(buildscript-dir)/lilypond-words:
+       make -C $(depth)/scripts/build
+
 $(LILYPOND_WORDS):
-       cd $(top-src-dir) && $(PYTHON) buildscripts/lilypond-words.py --words --vim --dir=$(top-build-dir)/vim/$(outconfbase)
+       cd $(top-src-dir) && $(buildscript-dir)/lilypond-words --words --vim --dir=$(top-build-dir)/vim/$(outconfbase)
 
 all: $(LILYPOND_WORDS)
 
diff --git a/vim/SConscript b/vim/SConscript
deleted file mode 100644 (file)
index 6896a7b..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*-python-*-
-
-Import ('env', 'install', 'src_glob')
-sources = src_glob ('*.vim') + ['lilypond-words.vim']
-
-e = env.Copy ()
-a = '$PYTHON $srcdir/buildscripts/lilypond-words.py --words --vim --dir=${TARGET.dir}'
-e.Command ('lilypond-words.vim',
-          ['#/lily/lily-lexer.cc',
-           '#/buildscripts/lilypond-words.py',
-           '#/scm/markup.scm',
-           '#/ly/engraver-init.ly',],
-          a)
-
-install (sources, env['sharedir_package_version'] + '/vim')